From 6452331ee7ca5da622179d811b474353e35a774e Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Thu, 27 Aug 2026 00:50:55 +0000 Subject: [PATCH 1/9] update tailwind to v4 --- bun.lockb | Bin 196936 -> 192739 bytes package.json | 5 +- postcss.config.js | 6 --- src/app.css | 130 +++++++++++++++++++-------------------------- src/index.test.ts | 7 --- tailwind.config.js | 64 ---------------------- vite.config.ts | 8 ++- 7 files changed, 63 insertions(+), 157 deletions(-) delete mode 100755 postcss.config.js delete mode 100755 src/index.test.ts delete mode 100755 tailwind.config.js diff --git a/bun.lockb b/bun.lockb index 508f4e554e89062f5461a65b8fb45cbd3bd00bbd..1975c7c2d2841d3a9a94de031c064daf3a29248d 100755 GIT binary patch delta 42018 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 JK2ARS{{e+Q^b!C7 delta 44589 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 diff --git a/package.json b/package.json index 3461051..fc8962b 100755 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "@playwright/test": "1.49.1", "@sveltejs/kit": "^2.15.2", "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@tailwindcss/vite": "^4.0.0", "@types/eslint": "9.6.1", "@types/pg": "^8.11.10", - "autoprefixer": "^10.4.20", "bits-ui": "^1.4.7", "clsx": "^2.1.1", "cmdk-sv": "^0.0.18", @@ -34,14 +34,13 @@ "eslint-plugin-svelte": "^2.46.1", "globals": "15.14.0", "lucide-svelte": "^0.473.0", - "postcss": "^8.4.49", "prettier": "3.4.2", "prettier-plugin-svelte": "3.3.2", "svelte": "^5.16.5", "svelte-check": "4.1.1", "tailwind-merge": "^2.6.0", "tailwind-variants": "^0.3.1", - "tailwindcss": "^3.4.17", + "tailwindcss": "^4.0.0", "typescript": "5.7.2", "typescript-eslint": "8.19.1", "vite": "^6.0.7", diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100755 index 2e7af2b..0000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/src/app.css b/src/app.css index 1460463..af36e8e 100755 --- a/src/app.css +++ b/src/app.css @@ -1,78 +1,56 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - :root { - --background: 0 0% 100%; - --foreground: 222.2 84% 4.9%; - - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; - - --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; - - --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; - - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; - - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; - - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; - - --destructive: 0 72.2% 50.6%; - --destructive-foreground: 210 40% 98%; - - --ring: 222.2 84% 4.9%; - - --radius: 0.5rem; - } - - .dark { - --background: 222.2 84% 4.9%; - --foreground: 210 40% 98%; - - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; - - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; - - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; - - --border: 217.2 32.6% 17.5%; - --input: 217.2 32.6% 17.5%; - - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; - - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; - - --accent: 217.2 32.6% 17.5%; - --accent-foreground: 210 40% 98%; - - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; - - --ring: 212.7 26.8% 83.9%; - } +@import 'tailwindcss'; + +@theme { + --color-bg: #f6f4f0; + --color-surface: #edeae4; + --color-surface-hover: #e4e0d8; + --color-border: #d6d2ca; + --color-border-light: #e8e5de; + --color-text: #2c2c2c; + --color-text-muted: #6b6b6b; + --color-text-dim: #999999; + --color-text-ghost: #c5c0b8; + --color-accent: #3d6b8e; + --color-accent-hover: #4d7fa6; + --color-danger: #b44; + + --font-heading: 'DM Serif Display', Georgia, serif; + --font-mono: 'IBM Plex Mono', 'Courier New', monospace; + --font-body: 'Source Sans 3', 'Helvetica Neue', sans-serif; } - + @layer base { - * { - @apply border-border; - } - body { - @apply bg-background text-foreground; - } -} \ No newline at end of file + * { + box-sizing: border-box; + margin: 0; + padding: 0; + } + + html { + scroll-behavior: smooth; + } + + section[id] { + scroll-margin-top: 88px; + } + + body { + background: var(--color-bg); + color: var(--color-text); + font-family: var(--font-body); + font-size: 15px; + line-height: 1.65; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + ::selection { + background: color-mix(in srgb, var(--color-accent) 20%, transparent); + } + + a { + color: inherit; + text-decoration: none; + } +} + diff --git a/src/index.test.ts b/src/index.test.ts deleted file mode 100755 index e07cbbd..0000000 --- a/src/index.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, it, expect } from 'vitest'; - -describe('sum test', () => { - it('adds 1 + 2 to equal 3', () => { - expect(1 + 2).toBe(3); - }); -}); diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100755 index fa1cb36..0000000 --- a/tailwind.config.js +++ /dev/null @@ -1,64 +0,0 @@ -import { fontFamily } from "tailwindcss/defaultTheme"; - -/** @type {import('tailwindcss').Config} */ -const config = { - darkMode: ["class"], - content: ["./src/**/*.{html,js,svelte,ts}"], - safelist: ["dark"], - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px" - } - }, - extend: { - colors: { - border: "hsl(var(--border) / )", - input: "hsl(var(--input) / )", - ring: "hsl(var(--ring) / )", - background: "hsl(var(--background) / )", - foreground: "hsl(var(--foreground) / )", - primary: { - DEFAULT: "hsl(var(--primary) / )", - foreground: "hsl(var(--primary-foreground) / )" - }, - secondary: { - DEFAULT: "hsl(var(--secondary) / )", - foreground: "hsl(var(--secondary-foreground) / )" - }, - destructive: { - DEFAULT: "hsl(var(--destructive) / )", - foreground: "hsl(var(--destructive-foreground) / )" - }, - muted: { - DEFAULT: "hsl(var(--muted) / )", - foreground: "hsl(var(--muted-foreground) / )" - }, - accent: { - DEFAULT: "hsl(var(--accent) / )", - foreground: "hsl(var(--accent-foreground) / )" - }, - popover: { - DEFAULT: "hsl(var(--popover) / )", - foreground: "hsl(var(--popover-foreground) / )" - }, - card: { - DEFAULT: "hsl(var(--card) / )", - foreground: "hsl(var(--card-foreground) / )" - } - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)" - }, - fontFamily: { - sans: [...fontFamily.sans] - } - } - }, -}; - -export default config; diff --git a/vite.config.ts b/vite.config.ts index 37b6a84..896d46e 100755 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; +import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vitest/config'; export default defineConfig({ - plugins: [sveltekit()], + plugins: [tailwindcss(), sveltekit()], test: { include: ['src/**/*.{test,spec}.{js,ts}'] + }, + server: { + host: '127.0.0.1', + allowedHosts: ['dev.stanrunge.dev'], + hmr: { host: 'dev.stanrunge.dev', protocol: 'wss', clientPort: 443 } } }); From 97ff9852cd7c75aad0734746357af35327276988 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Sat, 29 Aug 2026 11:38:16 +0000 Subject: [PATCH 2/9] update homepage draft and other pages --- src/lib/db/schema.ts | 12 + src/routes/+layout.svelte | 154 ++---- src/routes/+page.svelte | 105 ++++- src/routes/blog/+page.server.ts | 26 + src/routes/blog/+page.svelte | 28 ++ src/routes/blog/{slug}/+page.server.ts | 22 + src/routes/blog/{slug}/+page.svelte | 2 + src/routes/projects/animaldex/+layout.svelte | 15 + src/routes/projects/animaldex/+page.svelte | 356 ++++++++++++++ src/routes/projects/animaldex/+page.ts | 1 + .../projects/animaldex/admin/+page.server.ts | 53 +++ .../projects/animaldex/admin/+page.svelte | 170 +++++++ .../projects/animaldex/admin/login/+server.ts | 25 + .../projects/animaldex/api/animals/+server.ts | 73 +++ .../api/animals/[id]/moderate/+server.ts | 51 ++ .../api/animals/[id]/sightings/+server.ts | 78 +++ .../[id]/sightings/[id]/moderate/+server.ts | 36 ++ .../animaldex/api/detect-breed/+server.ts | 18 + .../projects/animaldex/api/map/+server.ts | 127 +++++ .../projects/animaldex/api/upload/+server.ts | 22 + src/routes/projects/animaldex/layout.css | 1 + .../projects/animaldex/register/+page.svelte | 444 ++++++++++++++++++ .../projects/animaldex/register/+page.ts | 1 + .../projects/catch-em-all/+layout.server.ts | 5 + .../projects/catch-em-all/+layout.svelte | 30 ++ .../projects/catch-em-all/+page.server.ts | 110 +++++ src/routes/projects/catch-em-all/+page.svelte | 330 +++++++++++++ src/routes/projects/catch-em-all/layout.css | 1 + .../{ => projects}/progress/+page.server.ts | 0 .../{ => projects}/progress/+page.svelte | 0 .../progress/[id]/+page.server.ts | 0 .../{ => projects}/progress/[id]/+page.svelte | 0 .../progress/create/+page.server.ts | 0 .../progress/create/+page.svelte | 0 .../progress/topics/+page.server.ts | 0 .../progress/topics/+page.svelte | 0 .../progress/topics/[id]/+page.server.ts | 0 .../progress/topics/[id]/+page.svelte | 0 38 files changed, 2185 insertions(+), 111 deletions(-) create mode 100644 src/routes/blog/+page.server.ts create mode 100644 src/routes/blog/+page.svelte create mode 100644 src/routes/blog/{slug}/+page.server.ts create mode 100644 src/routes/blog/{slug}/+page.svelte create mode 100644 src/routes/projects/animaldex/+layout.svelte create mode 100644 src/routes/projects/animaldex/+page.svelte create mode 100644 src/routes/projects/animaldex/+page.ts create mode 100644 src/routes/projects/animaldex/admin/+page.server.ts create mode 100644 src/routes/projects/animaldex/admin/+page.svelte create mode 100644 src/routes/projects/animaldex/admin/login/+server.ts create mode 100644 src/routes/projects/animaldex/api/animals/+server.ts create mode 100644 src/routes/projects/animaldex/api/animals/[id]/moderate/+server.ts create mode 100644 src/routes/projects/animaldex/api/animals/[id]/sightings/+server.ts create mode 100644 src/routes/projects/animaldex/api/animals/[id]/sightings/[id]/moderate/+server.ts create mode 100644 src/routes/projects/animaldex/api/detect-breed/+server.ts create mode 100644 src/routes/projects/animaldex/api/map/+server.ts create mode 100644 src/routes/projects/animaldex/api/upload/+server.ts create mode 100644 src/routes/projects/animaldex/layout.css create mode 100644 src/routes/projects/animaldex/register/+page.svelte create mode 100644 src/routes/projects/animaldex/register/+page.ts create mode 100644 src/routes/projects/catch-em-all/+layout.server.ts create mode 100644 src/routes/projects/catch-em-all/+layout.svelte create mode 100644 src/routes/projects/catch-em-all/+page.server.ts create mode 100644 src/routes/projects/catch-em-all/+page.svelte create mode 100644 src/routes/projects/catch-em-all/layout.css rename src/routes/{ => projects}/progress/+page.server.ts (100%) rename src/routes/{ => projects}/progress/+page.svelte (100%) rename src/routes/{ => projects}/progress/[id]/+page.server.ts (100%) rename src/routes/{ => projects}/progress/[id]/+page.svelte (100%) rename src/routes/{ => projects}/progress/create/+page.server.ts (100%) rename src/routes/{ => projects}/progress/create/+page.svelte (100%) rename src/routes/{ => projects}/progress/topics/+page.server.ts (100%) rename src/routes/{ => projects}/progress/topics/+page.svelte (100%) rename src/routes/{ => projects}/progress/topics/[id]/+page.server.ts (100%) rename src/routes/{ => projects}/progress/topics/[id]/+page.svelte (100%) diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts index 10445bc..f5a902f 100755 --- a/src/lib/db/schema.ts +++ b/src/lib/db/schema.ts @@ -71,3 +71,15 @@ export const publications = personalWebsiteSchema.table('publications', { createdAt: timestamp('created_at').defaultNow(), updatedAt: timestamp('updated_at').defaultNow() }); + +// Legacy ^ +// New + +export const blogArticles = personalWebsiteSchema.table('blog_articles', { + id: serial('id').primaryKey(), + title: varchar('title', { length: 256 }), + slug: varchar('slug', { length: 256 }), + content: varchar('content', { length: 8192 }), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}) \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2a56bb2..6b1e466 100755 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,108 +1,58 @@ -

- - - -
- - {@render children?.()} -
- - {#if !data.editable} -
- -
- {/if} -
- -{#if editModalVisible} -
(editModalVisible = false)} - > -
e.stopPropagation()} - action="/?/authenticate" - method="post" - > -

WHO ARE YOU?!?!?!??!

- - -
+
+ + osu + + + steam + + + email + + + twitch + + + spotify + + + signal + + + bluesky + +
+ discord
-{/if} + + whatsapp + + + threads + + + github + + + youtube + + + linkedin + + + instagram + + + facebook + + + x + +
+ +{@render children()} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 42db257..6d906a4 100755 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,10 +1,97 @@ -

Stan Runge

-Moon - -
-
Vash Software
- -
Hogeschool Inholland
- -
Junior
+
+ Blog
+ +
+
+

experience

+
+

2026 - ???

+

???

+
+
+

2021 - 2026

+
+

BSc. Computer Science (Software Engineering)

+

The Hague University of Applied Sciences

+
+
+
+

2026

+

internship at 3webapps

+
+
+

2023

+

internship at h5mag

+
+
+

2021 - 2023

+

junior IT specialist at Finance Plus

+
+
+

2020 - current

+

300+ IT problems solved in Netherlands

+
+
+ +
+

Stan Runge

+ stan runge +

+ me preparing for my presentation about quantum vision transformers +

+
+ +
+
+

projects

+
+ +
+ +

vash esports

+

automated osu! matchmaking/tournament platform

+
+
+

eudi-auth for 3webapps

+

+ plugin for WooCommerce/Magento2 that adds authentication with the European Digital + Identity (EUDI) wallet +

+
+
+

realtime collaboration for h5mag

+

+ socket.io server for h5mag (magazine web editor) that broadcasts user actions to other + editors, similar to writing a Google Doc together +

+
+
+

infra

+

server, project deployments and dev config as code with setup script

+
+ +

animaldex

+

world map with pets & other animals around the neighborhood 😼

+
+ +

catch em all

+

table of all 1025 pokemon across 38 games with checkboxes for catching them all

+
+ +

spotify osu! map finder

+

small tool for finding osu! maps using a spotify url of a song or playlist

+
+ +

beerio kart

+
Go
+

webserver in go with a double-elim bracket for a one-time mario kart tournament

+
+ +

+ a lot more planned (soon™)

+
+
+
+ diff --git a/src/routes/blog/+page.server.ts b/src/routes/blog/+page.server.ts new file mode 100644 index 0000000..ba87e87 --- /dev/null +++ b/src/routes/blog/+page.server.ts @@ -0,0 +1,26 @@ +import { db } from "$lib/db" +import { blogArticles } from "$lib/db/schema"; +import { redirect } from "@sveltejs/kit"; +import type { PageServerLoad } from "./$types.js"; + +export const load: PageServerLoad = async () => { + const articles = await db.select().from(blogArticles) + + return { + blogArticles: articles + } +} + +export const actions = { + default: async ({ request }): Promise => { + const formData = await request.formData(); + + const blogArticle = await db.insert(blogArticles).values({ + title: formData.get('title')?.toString(), + slug: formData.get('slug')?.toString(), + content: formData.get('content')?.toString() + }).returning(); + + return redirect(303, `/blog/${blogArticle[0].slug}`); + } +} diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte new file mode 100644 index 0000000..e148cb7 --- /dev/null +++ b/src/routes/blog/+page.svelte @@ -0,0 +1,28 @@ + + +
+

Blog (Stan's yapping corner)

+ +
+ + +{#each data.blogArticles as article} +
+ {article.title} +

{article.createdAt?.toDateString()}

+
+{/each} + +{#if createNewArticlePopup} +
+
+

Create New Article

+
+
+{/if} diff --git a/src/routes/blog/{slug}/+page.server.ts b/src/routes/blog/{slug}/+page.server.ts new file mode 100644 index 0000000..0688a34 --- /dev/null +++ b/src/routes/blog/{slug}/+page.server.ts @@ -0,0 +1,22 @@ +import { db } from "$lib/db" +import { blogArticles } from "$lib/db/schema"; +import { eq } from "drizzle-orm"; + +import type { PageServerLoad } from "./$types.js"; +import { fail } from "@sveltejs/kit"; + +export const load: PageServerLoad = async ({params }) => { + const article = await db.select().from(blogArticles).where(eq(blogArticles.slug, params.slug)) + + if (article.length === 0) { + return fail(404, { message: "Article not found" }); + } + + return { + blogArticle: article[0] + } +} + +export const actions = { + +} diff --git a/src/routes/blog/{slug}/+page.svelte b/src/routes/blog/{slug}/+page.svelte new file mode 100644 index 0000000..d3efcba --- /dev/null +++ b/src/routes/blog/{slug}/+page.svelte @@ -0,0 +1,2 @@ + +l \ No newline at end of file diff --git a/src/routes/projects/animaldex/+layout.svelte b/src/routes/projects/animaldex/+layout.svelte new file mode 100644 index 0000000..1e47fdb --- /dev/null +++ b/src/routes/projects/animaldex/+layout.svelte @@ -0,0 +1,15 @@ + + + + + + + + + + +{@render children()} diff --git a/src/routes/projects/animaldex/+page.svelte b/src/routes/projects/animaldex/+page.svelte new file mode 100644 index 0000000..14833f6 --- /dev/null +++ b/src/routes/projects/animaldex/+page.svelte @@ -0,0 +1,356 @@ + + + + Animaldex + + + +
+
+ +
+ + + Log a sighting + + +
+ + {#if showFilters} +
+
+

Filter sightings

+ +
+
+ + + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ {/if} + + {#if selected} +
+ {#if selected.trail[0]?.photoUrl} +
+ + +
+ {/if} +
+
+
+

+ {selected.animalName ?? selected.species} +

+

+ {selected.species}{selected.breed ? ` · ${selected.breed}` : ''} +

+
+ {selected.sightingCount} + {selected.sightingCount === 1 ? 'sighting' : 'sightings'} +
+
+ {#each [...selected.trail].sort((a, b) => new Date(b.seenAt).getTime() - new Date(a.seenAt).getTime()) as s (s.id)} +
+ {new Date(s.seenAt).toLocaleDateString('nl-NL', { + day: 'numeric', + month: 'short', + year: 'numeric' + })} + {#if s.reporterName}by {s.reporterName}{/if} +
+ {/each} +
+ + I saw this animal too! + +
+
+ {/if} +
diff --git a/src/routes/projects/animaldex/+page.ts b/src/routes/projects/animaldex/+page.ts new file mode 100644 index 0000000..a3d1578 --- /dev/null +++ b/src/routes/projects/animaldex/+page.ts @@ -0,0 +1 @@ +export const ssr = false; diff --git a/src/routes/projects/animaldex/admin/+page.server.ts b/src/routes/projects/animaldex/admin/+page.server.ts new file mode 100644 index 0000000..8fc901c --- /dev/null +++ b/src/routes/projects/animaldex/admin/+page.server.ts @@ -0,0 +1,53 @@ +import type { PageServerLoad } from './$types'; +import { db } from '$lib/server/db'; +import { animals, sightings } from '$lib/server/db/schema'; +import { isAdmin } from '$lib/server/auth'; +import { and, eq, isNull, sql } from 'drizzle-orm'; + +export const load: PageServerLoad = async (event) => { + const admin = isAdmin(event); + if (!admin) return { admin: false, queue: [] }; + + const pending = await db + .select({ + animalId: animals.id, + species: animals.species, + breed: animals.breed, + animalName: animals.animalName, + description: animals.description, + aiBreedSuggestion: animals.aiBreedSuggestion, + aiBreedConfidence: animals.aiBreedConfidence, + submittedAt: animals.submittedAt, + acceptedAt: animals.acceptedAt, + deniedAt: animals.deniedAt, + sightingId: sightings.id, + sightingLat: sightings.lat, + sightingLng: sightings.lng, + seenAt: sightings.seenAt, + reporterName: sightings.reporterName, + sightingAcceptedAt: sightings.acceptedAt, + sightingDeniedAt: sightings.deniedAt, + photoUrl: sql`( + SELECT url FROM photos + WHERE sighting_id = ${sightings.id} + ORDER BY sort_order ASC + LIMIT 1 + )` + }) + .from(animals) + .innerJoin( + sightings, + and( + eq(sightings.animalId, animals.id), + sql`${sightings.id} = ( + SELECT id FROM sightings + WHERE animal_id = ${animals.id} + ORDER BY submitted_at ASC + LIMIT 1 + )` + ) + ) + .orderBy(animals.submittedAt); + + return { admin: true, queue: pending }; +}; diff --git a/src/routes/projects/animaldex/admin/+page.svelte b/src/routes/projects/animaldex/admin/+page.svelte new file mode 100644 index 0000000..ca73304 --- /dev/null +++ b/src/routes/projects/animaldex/admin/+page.svelte @@ -0,0 +1,170 @@ + + +Animaldex - Admin + +{#if !data.admin} +
+
+

Admin login

+ e.key === 'Enter' && login()} + class="mb-3 w-full rounded-lg border border-gray-200 px-3 py-2 text-sm outline-none focus:border-orange-400" + /> + {#if loginError} +

{loginError}

+ {/if} + +
+
+{:else} +
+
+
+ +

Animaldex admin

+
+ + {queue.filter((r) => !r.acceptedAt && !r.deniedAt).length} pending + +
+ +
+ {#if queue.length === 0} +
+ No submissions yet +
+ {/if} + + {#each queue as item (item.animalId)} + {@const status = item.acceptedAt ? 'accepted' : item.deniedAt ? 'denied' : 'pending'} +
+
+
+ {#if item.photoUrl} + + {:else} +
🐾
+ {/if} +
+
+
+
+

{item.animalName ?? item.species}

+

+ {item.species}{item.breed ? ` · ${item.breed}` : ''} +

+
+ + {status} + +
+ {#if item.aiBreedSuggestion} +

+ 🤖 AI: {item.aiBreedSuggestion} ({Math.round( + (item.aiBreedConfidence ?? 0) * 100 + )}%) +

+ {/if} +

+ {new Date(item.submittedAt).toLocaleDateString('nl-NL', { + day: 'numeric', + month: 'short', + year: 'numeric', + hour: '2-digit', + minute: '2-digit' + })} + {#if item.reporterName}· by {item.reporterName}{/if} +

+

+ 📍 {item.sightingLat.toFixed(5)}, {item.sightingLng.toFixed(5)} +

+
+
+
+ + +
+
+ {/each} +
+
+{/if} diff --git a/src/routes/projects/animaldex/admin/login/+server.ts b/src/routes/projects/animaldex/admin/login/+server.ts new file mode 100644 index 0000000..e2cd02c --- /dev/null +++ b/src/routes/projects/animaldex/admin/login/+server.ts @@ -0,0 +1,25 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { env } from '$env/dynamic/private'; +import { z } from 'zod'; + +const loginSchema = z.object({ password: z.string().min(1) }); + +export const POST: RequestHandler = async ({ request, cookies }) => { + const body = await request.json().catch(() => null); + const parsed = loginSchema.safeParse(body); + + if (!parsed.success || parsed.data.password !== env.ADMIN_SECRET) { + throw error(401, { message: 'Invalid password' }); + } + + cookies.set('admin_token', env.ADMIN_SECRET, { + path: '/', + httpOnly: true, + sameSite: 'strict', + secure: process.env.NODE_ENV === 'production', + maxAge: 60 * 60 * 24 * 7 + }); + + return json({ ok: true }); +}; diff --git a/src/routes/projects/animaldex/api/animals/+server.ts b/src/routes/projects/animaldex/api/animals/+server.ts new file mode 100644 index 0000000..49b5028 --- /dev/null +++ b/src/routes/projects/animaldex/api/animals/+server.ts @@ -0,0 +1,73 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { db } from '$lib/server/db'; +import { animals, sightings, photos } from '$lib/server/db/schema'; +import { registerAnimalSchema } from '$lib/validation/sighting'; +import { sql } from 'drizzle-orm'; +import { env } from '$env/dynamic/private'; + +const MAX_DISTANCE_METERS = 30_000; + +export const POST: RequestHandler = async ({ request }) => { + const body = await request.json().catch(() => null); + const parsed = registerAnimalSchema.safeParse(body); + + if (!parsed.success) { + throw error(400, { message: parsed.error.issues[0]?.message ?? 'Invalid request' }); + } + + const data = parsed.data; + + const [distRow] = await db.execute(sql` + SELECT ST_Distance( + ST_MakePoint(${data.deviceLng}, ${data.deviceLat})::geography, + ST_MakePoint(${data.lng}, ${data.lat})::geography + ) AS dist + `); + + const dist = Number((distRow as Record).dist); + if (dist > MAX_DISTANCE_METERS) { + throw error(422, { + message: `Location is ${Math.round(dist / 1000)}km from your device. Maximum is 30km.` + }); + } + + const result = await db.transaction(async (tx) => { + const [animal] = await tx + .insert(animals) + .values({ + species: data.species, + breed: data.breed, + animalName: data.animalName, + description: data.description, + aiBreedSuggestion: data.aiBreedSuggestion, + aiBreedConfidence: data.aiBreedConfidence + }) + .returning({ id: animals.id }); + + const [sighting] = await tx + .insert(sightings) + .values({ + animalId: animal.id, + reporterName: data.reporterName, + seenAt: new Date(data.seenAt), + lat: data.lat, + lng: data.lng + }) + .returning({ id: sightings.id }); + + await tx.insert(photos).values( + data.photoKeys.map((key, i) => ({ + sightingId: sighting.id, + r2Key: key, + url: `${env.R2_PUBLIC_URL}/${key}`, + sortOrder: i + })) + ); + + return { animalId: animal.id, sightingId: sighting.id }; + }); + + console.log(`[animals] created animal ${result.animalId}, sighting ${result.sightingId}`); + return json(result, { status: 201 }); +}; diff --git a/src/routes/projects/animaldex/api/animals/[id]/moderate/+server.ts b/src/routes/projects/animaldex/api/animals/[id]/moderate/+server.ts new file mode 100644 index 0000000..7497f0d --- /dev/null +++ b/src/routes/projects/animaldex/api/animals/[id]/moderate/+server.ts @@ -0,0 +1,51 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { db } from '$lib/server/db'; +import { animals, sightings } from '$lib/server/db/schema'; +import { moderationActionSchema } from '$lib/validation/sighting'; +import { eq, isNull } from 'drizzle-orm'; +import { requireAdmin } from '$lib/server/auth'; + +export const POST: RequestHandler = async (event) => { + requireAdmin(event); + + const body = await event.request.json().catch(() => null); + const parsed = moderationActionSchema.safeParse(body); + + if (!parsed.success) { + throw error(400, { message: 'action must be "accept" or "deny"' }); + } + + const now = new Date(); + const isAccept = parsed.data.action === 'accept'; + + const [updated] = await db.transaction(async (tx) => { + const result = await tx + .update(animals) + .set({ + acceptedAt: isAccept ? now : null, + deniedAt: isAccept ? null : now + }) + .where(eq(animals.id, event.params.id)) + .returning({ id: animals.id }); + + if (result.length && isAccept) { + await tx + .update(sightings) + .set({ acceptedAt: now, deniedAt: null }) + .where(eq(sightings.animalId, event.params.id)); + } + + return result; + }); + + if (!updated) { + throw error(404, { message: 'Animal not found' }); + } + + console.log( + `[moderate] animal ${event.params.id} → ${parsed.data.action}, updated ${updated?.id}` + ); + + return json({ ok: true, action: parsed.data.action }); +}; diff --git a/src/routes/projects/animaldex/api/animals/[id]/sightings/+server.ts b/src/routes/projects/animaldex/api/animals/[id]/sightings/+server.ts new file mode 100644 index 0000000..9a0c875 --- /dev/null +++ b/src/routes/projects/animaldex/api/animals/[id]/sightings/+server.ts @@ -0,0 +1,78 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { db } from '$lib/server/db'; +import { animals, sightings, photos } from '$lib/server/db/schema'; +import { addSightingSchema } from '$lib/validation/sighting'; +import { eq, sql } from 'drizzle-orm'; +import { env } from '$env/dynamic/private'; + +const MAX_DISTANCE_METERS = 30_000; + +export const POST: RequestHandler = async ({ request, params }) => { + const body = await request.json().catch(() => null); + const parsed = addSightingSchema.safeParse({ ...body, animalId: params.id }); + + if (!parsed.success) { + throw error(400, { message: parsed.error.issues[0]?.message ?? 'Invalid request' }); + } + + const data = parsed.data; + + const [animal] = await db + .select({ id: animals.id, acceptedAt: animals.acceptedAt }) + .from(animals) + .where(eq(animals.id, params.id)) + .limit(1); + + if (!animal) { + throw error(404, { message: 'Animal not found' }); + } + + const [distRow] = await db.execute(sql` + SELECT ST_Distance( + ST_MakePoint(${data.deviceLng}, ${data.deviceLat})::geography, + ST_MakePoint(${data.lng}, ${data.lat})::geography + ) AS dist + `); + + const dist = Number((distRow as Record).dist); + if (dist > MAX_DISTANCE_METERS) { + throw error(422, { + message: `Location is ${Math.round(dist / 1000)}km from your device. Maximum is 30km.` + }); + } + + const animalAlreadyAccepted = animal.acceptedAt !== null; + + const result = await db.transaction(async (tx) => { + const [sighting] = await tx + .insert(sightings) + .values({ + animalId: data.animalId, + reporterName: data.reporterName, + seenAt: new Date(data.seenAt), + lat: data.lat, + lng: data.lng, + ...(animalAlreadyAccepted ? { acceptedAt: new Date() } : {}) + }) + .returning({ id: sightings.id }); + + if (data.photoKeys && data.photoKeys.length > 0) { + await tx.insert(photos).values( + data.photoKeys.map((key, i) => ({ + sightingId: sighting.id, + r2Key: key, + url: `${env.R2_PUBLIC_URL}/${key}`, + sortOrder: i + })) + ); + } + + return { sightingId: sighting.id }; + }); + + console.log( + `[sightings] created sighting ${result.sightingId} for animal ${params.id} (auto-accepted: ${animalAlreadyAccepted})` + ); + return json(result, { status: 201 }); +}; diff --git a/src/routes/projects/animaldex/api/animals/[id]/sightings/[id]/moderate/+server.ts b/src/routes/projects/animaldex/api/animals/[id]/sightings/[id]/moderate/+server.ts new file mode 100644 index 0000000..b1265e6 --- /dev/null +++ b/src/routes/projects/animaldex/api/animals/[id]/sightings/[id]/moderate/+server.ts @@ -0,0 +1,36 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { db } from '$lib/server/db'; +import { sightings } from '$lib/server/db/schema'; +import { moderationActionSchema } from '$lib/validation/sighting'; +import { eq } from 'drizzle-orm'; +import { requireAdmin } from '$lib/server/auth'; + +export const POST: RequestHandler = async (event) => { + requireAdmin(event); + + const body = await event.request.json().catch(() => null); + const parsed = moderationActionSchema.safeParse(body); + + if (!parsed.success) { + throw error(400, { message: 'action must be "accept" or "deny"' }); + } + + const now = new Date(); + const isAccept = parsed.data.action === 'accept'; + + const [updated] = await db + .update(sightings) + .set({ + acceptedAt: isAccept ? now : null, + deniedAt: isAccept ? null : now + }) + .where(eq(sightings.id, event.params.id)) + .returning({ id: sightings.id }); + + if (!updated) { + throw error(404, { message: 'Sighting not found' }); + } + + return json({ ok: true, action: parsed.data.action }); +}; diff --git a/src/routes/projects/animaldex/api/detect-breed/+server.ts b/src/routes/projects/animaldex/api/detect-breed/+server.ts new file mode 100644 index 0000000..9c58bf6 --- /dev/null +++ b/src/routes/projects/animaldex/api/detect-breed/+server.ts @@ -0,0 +1,18 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { detectBreed } from '$lib/server/breed-detector'; +import { z } from 'zod'; + +const schema = z.object({ imageUrl: z.string().url() }); + +export const POST: RequestHandler = async ({ request }) => { + const body = await request.json().catch(() => null); + const parsed = schema.safeParse(body); + + if (!parsed.success) { + throw error(400, { message: 'imageUrl is required' }); + } + + const result = await detectBreed(parsed.data.imageUrl); + return json(result ?? { breed: null, confidence: 0 }); +}; diff --git a/src/routes/projects/animaldex/api/map/+server.ts b/src/routes/projects/animaldex/api/map/+server.ts new file mode 100644 index 0000000..d3d1914 --- /dev/null +++ b/src/routes/projects/animaldex/api/map/+server.ts @@ -0,0 +1,127 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { db } from '$lib/server/db'; +import { animals, sightings } from '$lib/server/db/schema'; +import { mapQuerySchema } from '$lib/validation/sighting'; +import { and, eq, gte, ilike, isNotNull, isNull, lte, sql } from 'drizzle-orm'; + +export const GET: RequestHandler = async ({ url }) => { + const params = Object.fromEntries(url.searchParams); + const parsed = mapQuerySchema.safeParse(params); + + if (!parsed.success) { + throw error(400, { message: 'Invalid query parameters' }); + } + + const q = parsed.data; + + const conditions = [ + isNotNull(animals.acceptedAt), + isNull(animals.deniedAt), + isNotNull(sightings.acceptedAt), + isNull(sightings.deniedAt), + sql`ST_Within( + ${sightings}.location::geometry, + ST_MakeEnvelope(${q.minLng}, ${q.minLat}, ${q.maxLng}, ${q.maxLat}, 4326) + )` + ]; + + if (q.species) conditions.push(ilike(animals.species, `%${q.species}%`)); + if (q.breed) conditions.push(ilike(animals.breed, `%${q.breed}%`)); + if (q.name) conditions.push(ilike(animals.animalName, `%${q.name}%`)); + if (q.reporter) conditions.push(ilike(sightings.reporterName, `%${q.reporter}%`)); + if (q.fromDate) conditions.push(gte(sightings.seenAt, new Date(q.fromDate))); + if (q.toDate) conditions.push(lte(sightings.seenAt, new Date(q.toDate))); + + const rows = await db + .select({ + animalId: animals.id, + species: animals.species, + breed: animals.breed, + animalName: animals.animalName, + sightingId: sightings.id, + seenAt: sightings.seenAt, + reporterName: sightings.reporterName, + lat: sightings.lat, + lng: sightings.lng, + photoUrl: sql`( + SELECT url FROM photos + WHERE sighting_id = ${sightings.id} + ORDER BY sort_order ASC + LIMIT 1 + )` + }) + .from(sightings) + .innerJoin(animals, eq(sightings.animalId, animals.id)) + .where(and(...conditions)) + .orderBy(sightings.seenAt); + + const animalMap = new Map< + string, + { + animalId: string; + species: string; + breed: string | null; + animalName: string | null; + sightings: Array<{ + id: string; + lat: number; + lng: number; + seenAt: Date; + reporterName: string | null; + photoUrl: string | null; + }>; + } + >(); + + for (const row of rows) { + if (!animalMap.has(row.animalId)) { + animalMap.set(row.animalId, { + animalId: row.animalId, + species: row.species, + breed: row.breed, + animalName: row.animalName, + sightings: [] + }); + } + animalMap.get(row.animalId)!.sightings.push({ + id: row.sightingId, + lat: row.lat, + lng: row.lng, + seenAt: row.seenAt, + reporterName: row.reporterName, + photoUrl: row.photoUrl + }); + } + + const features = Array.from(animalMap.values()).map((animal) => { + const sorted = [...animal.sightings].sort((a, b) => b.seenAt.getTime() - a.seenAt.getTime()); + const latest = sorted[0]; + return { + type: 'Feature' as const, + geometry: { type: 'Point' as const, coordinates: [latest.lng, latest.lat] }, + properties: { + animalId: animal.animalId, + species: animal.species, + breed: animal.breed, + animalName: animal.animalName, + sightingCount: animal.sightings.length, + trail: animal.sightings.map((s) => ({ + id: s.id, + lng: s.lng, + lat: s.lat, + seenAt: s.seenAt.toISOString(), + reporterName: s.reporterName, + photoUrl: s.photoUrl + })) + } + }; + }); + + console.log( + `[map] query returned ${rows.length} rows for bbox ${q.minLng},${q.minLat} → ${q.maxLng},${q.maxLat}` + ); + console.log(`[map] built ${features.length} features`); + + return json({ type: 'FeatureCollection', features }); +}; diff --git a/src/routes/projects/animaldex/api/upload/+server.ts b/src/routes/projects/animaldex/api/upload/+server.ts new file mode 100644 index 0000000..8e34691 --- /dev/null +++ b/src/routes/projects/animaldex/api/upload/+server.ts @@ -0,0 +1,22 @@ +import { json, error } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { createPresignedUpload, isAllowedMimeType } from '$lib/server/r2'; +import { presignedUploadSchema } from '$lib/validation/sighting'; + +export const POST: RequestHandler = async ({ request }) => { + const body = await request.json().catch(() => null); + const parsed = presignedUploadSchema.safeParse(body); + + if (!parsed.success) { + throw error(400, { message: 'Invalid request body' }); + } + + const { mimeType } = parsed.data; + + if (!isAllowedMimeType(mimeType)) { + throw error(400, { message: 'Unsupported image type' }); + } + + const result = await createPresignedUpload(mimeType); + return json(result); +}; diff --git a/src/routes/projects/animaldex/layout.css b/src/routes/projects/animaldex/layout.css new file mode 100644 index 0000000..d4b5078 --- /dev/null +++ b/src/routes/projects/animaldex/layout.css @@ -0,0 +1 @@ +@import 'tailwindcss'; diff --git a/src/routes/projects/animaldex/register/+page.svelte b/src/routes/projects/animaldex/register/+page.svelte new file mode 100644 index 0000000..7e8fbc8 --- /dev/null +++ b/src/routes/projects/animaldex/register/+page.svelte @@ -0,0 +1,444 @@ + + + + Animaldex - Log a sighting + + + +
+
+ +

+ {isNewSighting ? 'Log another sighting' : 'Register an animal'} +

+
+ +
+ {#if locationError} +
+

📍 Location required

+

{locationError}

+

+ Go to Settings → Site permissions → Location and allow this site. +

+
+ {/if} + +
+

+ Photos + {#if isNewSighting} + (optional) + {:else} + * + {/if} +

+
+ {#each photoPreviews as preview, i (i)} +
+ + +
+ {/each} + {#if photoFiles.length < 10} + + {/if} +
+

Max 10 photos · JPEG, PNG, WebP, HEIC

+
+ + {#if aiLoading} +
+ Identifying breed… +
+ {:else if aiSuggestion && !aiDismissed} +
+

+ 🤖 AI thinks this is a {aiSuggestion.breed} + ({Math.round(aiSuggestion.confidence * 100)}% confident) +

+
+ + +
+
+ {/if} + + {#if !isNewSighting} +
+

+ Species * +

+
+ {#each COMMON_SPECIES as s (s)} + + {/each} + +
+ {#if species === '__custom__'} + + {/if} +
+ +
+

+ Breed (optional) +

+ +
+ +
+
+

+ Animal name (optional) +

+ +
+
+

+ Description (optional) +

+ +
+
+ {/if} + +
+
+

+ When did you see it? * +

+ +
+
+

+ Your name (optional) +

+ +
+
+ +
+

+ Location * +

+ {#if locationLoading} +
+ Getting your location… +
+ {:else if lat !== null} +
+

Drag the pin to fine-tune (max 30 km from you).

+ {/if} +
+ + {#if submitError} +
+ {submitError} +
+ {/if} + + + +

+ All submissions are reviewed before appearing on the map. +

+
+
diff --git a/src/routes/projects/animaldex/register/+page.ts b/src/routes/projects/animaldex/register/+page.ts new file mode 100644 index 0000000..a3d1578 --- /dev/null +++ b/src/routes/projects/animaldex/register/+page.ts @@ -0,0 +1 @@ +export const ssr = false; diff --git a/src/routes/projects/catch-em-all/+layout.server.ts b/src/routes/projects/catch-em-all/+layout.server.ts new file mode 100644 index 0000000..54048b3 --- /dev/null +++ b/src/routes/projects/catch-em-all/+layout.server.ts @@ -0,0 +1,5 @@ +import type { LayoutServerLoad } from './$types'; + +export const load: LayoutServerLoad = async ({ locals }) => { + return { user: locals.user ?? null }; +}; diff --git a/src/routes/projects/catch-em-all/+layout.svelte b/src/routes/projects/catch-em-all/+layout.svelte new file mode 100644 index 0000000..801d902 --- /dev/null +++ b/src/routes/projects/catch-em-all/+layout.svelte @@ -0,0 +1,30 @@ + + +
+
+
+ {#if data.user} + Logged in as {data.user.name} +
+ +
+ {:else} + Log in + {/if} +
+
+ +
{@render children()}
+
diff --git a/src/routes/projects/catch-em-all/+page.server.ts b/src/routes/projects/catch-em-all/+page.server.ts new file mode 100644 index 0000000..e710b6b --- /dev/null +++ b/src/routes/projects/catch-em-all/+page.server.ts @@ -0,0 +1,110 @@ +import { db } from '$lib/server/db'; +import { game, pokemonGameEntry, userEntry, userGame } from '$lib/server/db/schema'; +import { availabilityValues } from '$lib/availability'; +import { fail } from '@sveltejs/kit'; +import type { Actions, PageServerLoad } from './catchemall/$types'; +import { and, eq, inArray } from 'drizzle-orm'; + +// compact wire format for the ~19k game entries — full objects with repeated +// keys and availability strings add megabytes to the page payload +export type WireEntry = [id: number, gameId: number, availability: number, note?: string]; + +export const load: PageServerLoad = async ({ locals }) => { + const pokemonRows = await db.query.pokemon.findMany({ + with: { + entry: true + }, + orderBy: (pokemon) => pokemon.number + }); + const pokemon = pokemonRows.map(({ entry, ...rest }) => ({ + ...rest, + entries: entry.map((e): WireEntry => { + const code = availabilityValues.indexOf(e.availability); + return e.note === null ? [e.id, e.gameId, code] : [e.id, e.gameId, code, e.note]; + }) + })); + + const games = await db.query.game.findMany({ + orderBy: (game) => [game.generation, game.id] + }); + + let caughtIds: number[] = []; + let selectedGameIds: number[] = []; + if (locals.user) { + const caughtRows = await db + .select({ id: userEntry.pokemonGameEntryId }) + .from(userEntry) + .where(eq(userEntry.userId, locals.user.id)); + caughtIds = caughtRows.map((r) => r.id); + + const gameRows = await db + .select({ id: userGame.gameId }) + .from(userGame) + .where(eq(userGame.userId, locals.user.id)); + selectedGameIds = gameRows.map((r) => r.id); + } + + return { pokemon, games, caughtIds, selectedGameIds }; +}; + +export const actions = { + togglePokemonCaught: async ({ request, locals }) => { + if (!locals.user) return fail(401, { message: 'Log in to track your progress' }); + + const data = await request.formData(); + const entryId = Number(data.get('entryId')); + if (!Number.isInteger(entryId) || entryId <= 0) return fail(400, { message: 'Invalid entry' }); + + // only catchable entries can be toggled — the client disables these + // checkboxes but we can't trust that + const [entry] = await db + .select({ availability: pokemonGameEntry.availability }) + .from(pokemonGameEntry) + .where(eq(pokemonGameEntry.id, entryId)); + if (!entry) return fail(404, { message: 'Unknown entry' }); + if (entry.availability !== 'catchable') { + return fail(400, { message: 'This pokemon is not catchable in this game' }); + } + + const caught = data.get('caught') === 'on'; + + if (caught) { + await db + .insert(userEntry) + .values({ pokemonGameEntryId: entryId, userId: locals.user.id }) + .onConflictDoNothing(); + } else { + await db + .delete(userEntry) + .where( + and(eq(userEntry.pokemonGameEntryId, entryId), eq(userEntry.userId, locals.user.id)) + ); + } + }, + + setGames: async ({ request, locals }) => { + if (!locals.user) return fail(401, { message: 'Log in to set rules' }); + + const data = await request.formData(); + const gameIds = data + .getAll('gameIds') + .map(Number) + .filter((id) => Number.isInteger(id) && id > 0); + + if (gameIds.length > 0) { + const validGames = await db + .select({ id: game.id }) + .from(game) + .where(inArray(game.id, gameIds)); + if (validGames.length !== gameIds.length) return fail(400, { message: 'Unknown game' }); + } + + const userId = locals.user.id; + await db.transaction(async (tx) => { + await tx.delete(userGame).where(eq(userGame.userId, userId)); + if (gameIds.length > 0) { + await tx.insert(userGame).values(gameIds.map((gameId) => ({ userId, gameId }))); + } + }); + } +} satisfies Actions; diff --git a/src/routes/projects/catch-em-all/+page.svelte b/src/routes/projects/catch-em-all/+page.svelte new file mode 100644 index 0000000..beb229b --- /dev/null +++ b/src/routes/projects/catch-em-all/+page.svelte @@ -0,0 +1,330 @@ + + + + catchemall + + +
+

Gotta catch 'em all!

+
+ +
+

+ Below are all {data.pokemon.length} Pokemon across {data.games.length} games. Play through all generations + and catch all catchable pokemon in each. Use the "Set rules" button to pick which games you want to + complete. +

+
+ +{#if !data.user} +

+ Log in to save your progress. +

+{/if} + +
+ + +

{caughtCount}/{total} entries caught ({percentage} %)

+ 0 ? caughtCount / total : 0}> +
+ +
(scrollTop = scrollEl?.scrollTop ?? 0)} + class="max-h-[75vh] overflow-auto rounded-xl border border-gray-300" +> + + + + + {#each visibleGames as game (game.id)} + + {/each} + + + + {#if startIndex > 0} + + + + {/if} + {#each visiblePokemon as pokemon (pokemon.id)} + + + {#each visibleGames as game (game.id)} + {@const entry = entryMap.get(pokemon.id)?.get(game.id)} + {@const reason = tooltip(entry, game)} + + {/each} + + {/each} + {#if endIndex < data.pokemon.length} + + + + {/if} + +
Pokemon + {game.name} +
+
+ + {pokemon.number} + {pokemon.name} + {pokemon.type1} + {#if pokemon.type2} + {pokemon.type2} + {/if} +
+
+ {#if entry && reason === null} + toggleCaught(entry.id, e.currentTarget.checked)} + /> + {:else} + + + + {/if} +
+
+ + +

Set rules

+

+ Pick the games you want to catch 'em all in. Only those show up in the table and count towards + your progress. +

+ +
+ + +
+ +
{ + return async ({ result, update }) => { + await update(); + if (result.type === 'success') rulesDialog.close(); + }; + }} + > +
+ {#each gamesByGeneration as [generation, games] (generation)} +
+ + draft.has(g.id))} + onchange={(e) => { + for (const g of games) { + if (e.currentTarget.checked) draft.add(g.id); + else draft.delete(g.id); + } + }} + /> + Gen {generation} + + {#each games as game (game.id)} + + {/each} +
+ {/each} +
+ +
+ + +
+
+
diff --git a/src/routes/projects/catch-em-all/layout.css b/src/routes/projects/catch-em-all/layout.css new file mode 100644 index 0000000..d4b5078 --- /dev/null +++ b/src/routes/projects/catch-em-all/layout.css @@ -0,0 +1 @@ +@import 'tailwindcss'; diff --git a/src/routes/progress/+page.server.ts b/src/routes/projects/progress/+page.server.ts similarity index 100% rename from src/routes/progress/+page.server.ts rename to src/routes/projects/progress/+page.server.ts diff --git a/src/routes/progress/+page.svelte b/src/routes/projects/progress/+page.svelte similarity index 100% rename from src/routes/progress/+page.svelte rename to src/routes/projects/progress/+page.svelte diff --git a/src/routes/progress/[id]/+page.server.ts b/src/routes/projects/progress/[id]/+page.server.ts similarity index 100% rename from src/routes/progress/[id]/+page.server.ts rename to src/routes/projects/progress/[id]/+page.server.ts diff --git a/src/routes/progress/[id]/+page.svelte b/src/routes/projects/progress/[id]/+page.svelte similarity index 100% rename from src/routes/progress/[id]/+page.svelte rename to src/routes/projects/progress/[id]/+page.svelte diff --git a/src/routes/progress/create/+page.server.ts b/src/routes/projects/progress/create/+page.server.ts similarity index 100% rename from src/routes/progress/create/+page.server.ts rename to src/routes/projects/progress/create/+page.server.ts diff --git a/src/routes/progress/create/+page.svelte b/src/routes/projects/progress/create/+page.svelte similarity index 100% rename from src/routes/progress/create/+page.svelte rename to src/routes/projects/progress/create/+page.svelte diff --git a/src/routes/progress/topics/+page.server.ts b/src/routes/projects/progress/topics/+page.server.ts similarity index 100% rename from src/routes/progress/topics/+page.server.ts rename to src/routes/projects/progress/topics/+page.server.ts diff --git a/src/routes/progress/topics/+page.svelte b/src/routes/projects/progress/topics/+page.svelte similarity index 100% rename from src/routes/progress/topics/+page.svelte rename to src/routes/projects/progress/topics/+page.svelte diff --git a/src/routes/progress/topics/[id]/+page.server.ts b/src/routes/projects/progress/topics/[id]/+page.server.ts similarity index 100% rename from src/routes/progress/topics/[id]/+page.server.ts rename to src/routes/projects/progress/topics/[id]/+page.server.ts diff --git a/src/routes/progress/topics/[id]/+page.svelte b/src/routes/projects/progress/topics/[id]/+page.svelte similarity index 100% rename from src/routes/progress/topics/[id]/+page.svelte rename to src/routes/projects/progress/topics/[id]/+page.svelte From c9a7294d13d0722e4ebc92970f0ea0db3d278b62 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Sun, 30 Aug 2026 21:38:59 +0000 Subject: [PATCH 3/9] fix: build errors and merging projects and homepage --- README.md | 1 + bun.lock | 1128 ++ bun.lockb | Bin 192739 -> 0 bytes compose.yml | 4 +- drizzle.config.ts | 5 +- eslint.config.js | 20 - package-lock.json | 13593 ++++++++++------ package.json | 123 +- src/app.css | 1 - src/app.d.ts | 2 + src/app.html | 46 +- src/lib/assets/stan.jpg | Bin 0 -> 88824 bytes src/lib/availability.ts | 12 + src/lib/components/CopyButton.svelte | 51 + src/lib/components/ui/button/button.svelte | 14 +- src/lib/components/ui/button/index.ts | 43 +- .../ui/command/command-dialog.svelte | 12 +- .../ui/command/command-empty.svelte | 6 +- .../ui/command/command-group.svelte | 6 +- .../ui/command/command-input.svelte | 10 +- .../components/ui/command/command-item.svelte | 6 +- .../components/ui/command/command-list.svelte | 6 +- .../ui/command/command-separator.svelte | 6 +- .../ui/command/command-shortcut.svelte | 6 +- src/lib/components/ui/command/command.svelte | 8 +- src/lib/components/ui/command/index.ts | 22 +- .../ui/dialog/dialog-content.svelte | 18 +- .../ui/dialog/dialog-description.svelte | 8 +- .../components/ui/dialog/dialog-footer.svelte | 8 +- .../components/ui/dialog/dialog-header.svelte | 8 +- .../ui/dialog/dialog-overlay.svelte | 16 +- .../components/ui/dialog/dialog-portal.svelte | 2 +- .../components/ui/dialog/dialog-title.svelte | 8 +- src/lib/components/ui/dialog/index.ts | 18 +- src/lib/components/ui/popover/index.ts | 6 +- .../ui/popover/popover-content.svelte | 12 +- src/lib/components/ui/table/index.ts | 18 +- src/lib/components/ui/table/table-body.svelte | 8 +- .../components/ui/table/table-caption.svelte | 8 +- src/lib/components/ui/table/table-cell.svelte | 8 +- .../components/ui/table/table-footer.svelte | 8 +- src/lib/components/ui/table/table-head.svelte | 8 +- .../components/ui/table/table-header.svelte | 8 +- src/lib/components/ui/table/table-row.svelte | 8 +- src/lib/components/ui/table/table.svelte | 8 +- src/lib/db/schema.ts | 85 - src/lib/server/auth.ts | 38 + src/lib/server/breed-detector.ts | 50 + src/lib/server/db/auth.schema.ts | 73 + src/lib/{ => server}/db/index.ts | 5 +- src/lib/server/db/relations.ts | 99 + src/lib/server/db/schema.ts | 232 + src/lib/{ => server}/db/seed.ts | 11 +- src/lib/server/r2.ts | 86 + src/lib/utils.ts | 24 +- src/lib/validation/sighting.ts | 76 + src/routes/+layout.svelte | 105 +- src/routes/+page.svelte | 29 +- src/routes/blog/+page.server.ts | 29 +- src/routes/blog/+page.svelte | 11 +- src/routes/blog/{slug}/+page.server.ts | 24 +- src/routes/blog/{slug}/+page.svelte | 3 +- .../animaldex/api/detect-breed/+server.ts | 3 +- .../projects/catch-em-all/+page.server.ts | 7 +- src/routes/projects/catch-em-all/+page.svelte | 1 - src/routes/projects/progress/+page.server.ts | 8 +- .../projects/progress/[id]/+page.server.ts | 8 +- .../projects/progress/create/+page.server.ts | 17 +- .../projects/progress/topics/+page.server.ts | 2 +- .../progress/topics/[id]/+page.server.ts | 8 +- vite.config.ts | 4 +- 71 files changed, 10942 insertions(+), 5413 deletions(-) create mode 100644 bun.lock delete mode 100755 bun.lockb create mode 100644 src/lib/assets/stan.jpg create mode 100644 src/lib/availability.ts create mode 100644 src/lib/components/CopyButton.svelte delete mode 100755 src/lib/db/schema.ts create mode 100644 src/lib/server/auth.ts create mode 100644 src/lib/server/breed-detector.ts create mode 100644 src/lib/server/db/auth.schema.ts rename src/lib/{ => server}/db/index.ts (80%) create mode 100644 src/lib/server/db/relations.ts create mode 100755 src/lib/server/db/schema.ts rename src/lib/{ => server}/db/seed.ts (50%) create mode 100644 src/lib/server/r2.ts create mode 100644 src/lib/validation/sighting.ts diff --git a/README.md b/README.md index f2c3ea2..6958c8a 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Stan Website This is my personal website, including: + - Contact info / social links - About me - Blog posts + comments diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..1b0d0f3 --- /dev/null +++ b/bun.lock @@ -0,0 +1,1128 @@ +{ + "lockfileVersion": 2, + "configVersion": 0, + "workspaces": { + "": { + "name": "web", + "dependencies": { + "@ai-sdk/anthropic": "^4.0.46", + "@aws-sdk/client-s3": "^3.1121.0", + "@aws-sdk/s3-request-presigner": "^3.1121.0", + "@maptiler/sdk": "^4.1.0", + "@sveltejs/adapter-node": "^5.5.7", + "ai": "^7.0.85", + "drizzle-orm": "^1.0.0-rc.4", + "mode-watcher": "^1.1.0", + "postgres": "^3.4.9", + "zod": "^4.5.4", + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@iconify-json/simple-icons": "^1.2.94", + "@playwright/test": "^1.62.1", + "@sveltejs/enhanced-img": "^0.11.0", + "@sveltejs/kit": "^2.70.3", + "@sveltejs/vite-plugin-svelte": "^7.3.0", + "@tailwindcss/vite": "^4.3.3", + "@types/eslint": "9.6.1", + "@types/pg": "^8.23.1", + "@typescript/native": "npm:typescript@7", + "better-auth": "^1.7.2", + "bits-ui": "^2.19.0", + "clsx": "^2.1.1", + "cmdk-sv": "^0.0.19", + "drizzle-kit": "^1.0.0-rc.4", + "eslint": "^10.9.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.23.0", + "globals": "^17.11.0", + "lucide-svelte": "^1.0.1", + "prettier": "3.9.6", + "prettier-plugin-svelte": "^4.1.1", + "svelte": "^5.57.0", + "svelte-check": "4.7.6", + "tailwind-merge": "^3.6.0", + "tailwind-variants": "^3.3.1", + "tailwindcss": "^4.3.3", + "typescript": "~6", + "typescript-eslint": "8.68.0", + "unplugin-icons": "^23.0.1", + "vite": "^8.2.2", + "vitest": "^4.1.11", + }, + }, + }, + "packages": { + "@ai-sdk/anthropic": ["@ai-sdk/anthropic@4.0.46", "", { "dependencies": { "@ai-sdk/provider": "4.0.9", "@ai-sdk/provider-utils": "5.0.34" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-/q/wWLArkavQHeOYdv8kZyJRTuasTRwrzoAnvUaY0sHx/BGDYDWW9ENn7lu/H5iUeYId6NhtYAVv+TlqHpp9Cg=="], + + "@ai-sdk/gateway": ["@ai-sdk/gateway@4.0.69", "", { "dependencies": { "@ai-sdk/provider": "4.0.9", "@ai-sdk/provider-utils": "5.0.34", "@vercel/oidc": "3.2.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-W5MMdyqsaziQy/A4kxlK74iEQ+NuO6OaszH32cEQpUgBW0o15S2fAdP0aYSH2/5lrVZSMXLQLCzuMkRGHBua3A=="], + + "@ai-sdk/provider": ["@ai-sdk/provider@4.0.9", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-XnGXPWiBIfqjsVEud5pOaVneRByJQOu2sYNwlSVJTPCvakdCDkVuYKKfNuStkIpMUYl7JIkBZGBx+B5YfNeVjA=="], + + "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@5.0.34", "", { "dependencies": { "@ai-sdk/provider": "4.0.9", "@standard-schema/spec": "^1.1.0", "@workflow/serde": "4.1.0", "eventsource-parser": "^3.0.8", "undici": "^7.28.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-tRBdgRcys/4d8wyQdOdyYScq1AxfMdMd0hIlwolxJKVIbBwXUgClZuQT0VIsz4e7pylY8FE6utYCCZ494UAMJQ=="], + + "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], + + "@aws-sdk/checksums": ["@aws-sdk/checksums@3.1000.29", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-Dtu0gr4dnATZAPwEYbpCsG+MpLM7OAliy2gTepEFQwl1vZ6DL3QMH2FveMa3HLvPsOdhJsPRB3KtxVhph9T75A=="], + + "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.1121.0", "", { "dependencies": { "@aws-sdk/checksums": "^3.1000.29", "@aws-sdk/core": "^3.977.9", "@aws-sdk/credential-provider-node": "^3.972.81", "@aws-sdk/middleware-sdk-s3": "^3.972.75", "@aws-sdk/signature-v4-multi-region": "^3.996.46", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/fetch-http-handler": "^5.7.2", "@smithy/node-http-handler": "^4.11.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-hBnoqaVBeWdkgXcJElMXA2yUZWkBCBntu2qmN+tfqmzC+j4LzJC3ox8qIgS2WdMS1cb8UwyBogUVrkRXybNm0A=="], + + "@aws-sdk/core": ["@aws-sdk/core@3.977.9", "", { "dependencies": { "@aws-sdk/types": "^3.974.5", "@aws-sdk/xml-builder": "^3.972.40", "@aws/lambda-invoke-store": "^0.3.0", "@smithy/core": "^3.33.3", "@smithy/signature-v4": "^5.6.12", "@smithy/types": "^4.17.2", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-reqPFEQrZxDZpeGj4PFMepBeR5LGYHRqq/L0motTzgFkCRBA4rFdaVXDSLYyGHhxVz7sT2PDnPN9CluGSfgyJA=="], + + "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.972.70", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-H404B7dJl2mCrBqahDEYsanB0xhdDp6tXnXcTUnXmmpy2Q3J0Ho0bUajZ2jr/RdwzCyS59Gi8xXIFwPLGBl6Uw=="], + + "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.972.72", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/fetch-http-handler": "^5.7.2", "@smithy/node-http-handler": "^4.11.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-X98zYOrVOeuosCX+6ktf29FC2N2GHPLia7qv6mzPzTc+RPAuHWCDS++Z6JK7eGYqb/v6uaW7bAXaOvDBfol+0w=="], + + "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.973.15", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/credential-provider-env": "^3.972.70", "@aws-sdk/credential-provider-http": "^3.972.72", "@aws-sdk/credential-provider-login": "^3.972.77", "@aws-sdk/credential-provider-process": "^3.972.70", "@aws-sdk/credential-provider-sso": "^3.973.14", "@aws-sdk/credential-provider-web-identity": "^3.972.76", "@aws-sdk/nested-clients": "^3.997.44", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/credential-provider-imds": "^4.4.16", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-Rykg6s5ceBuynMOGWgoowO4N+27JfnqXAnVaSunZl0hOO1XodSrxGNz6sCEbnmS0lAfQZDKyb3fbr46gSuv6Sg=="], + + "@aws-sdk/credential-provider-login": ["@aws-sdk/credential-provider-login@3.972.77", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/nested-clients": "^3.997.44", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-Jb59xfEISoN5mmbnA+HYqdtrSX3CgCtJoof+V5D8/TgUI56W63GEEd5Y58WijU3Ou6+WEgaLD1feVzaRXV5IDQ=="], + + "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.972.81", "", { "dependencies": { "@aws-sdk/credential-provider-env": "^3.972.70", "@aws-sdk/credential-provider-http": "^3.972.72", "@aws-sdk/credential-provider-ini": "^3.973.15", "@aws-sdk/credential-provider-process": "^3.972.70", "@aws-sdk/credential-provider-sso": "^3.973.14", "@aws-sdk/credential-provider-web-identity": "^3.972.76", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/credential-provider-imds": "^4.4.16", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-Rml+WitoFvXmv6JZ18U/xGdGDGGvB/mOin0ya0lTnTrdC0Z1lrVxTYh7iNklZBcvcRMrs4DoEf6xy1KWyrLQQw=="], + + "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.972.70", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-2ry03fGRJr4sV3jI+ocjj5JqALnFD6ymM5KiNCDZMvq8bX2GSbE0vji4aM43TVCl2nXqqLRZaUxdq/KeWRAY4Q=="], + + "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.973.14", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/nested-clients": "^3.997.44", "@aws-sdk/token-providers": "3.1116.0", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-jkhg/8ocAAoc0RFyLMhCw+/zZh7gystQgd4F4hznNa8P4Cc501PQmxd+jGLiMHodPJ+7Zv/3znM62gZojyasmA=="], + + "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.972.76", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/nested-clients": "^3.997.44", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-d3AGyVu759PGr35mEB2s22xxlNEA5rpdxtSPJthfPFJvoQ8dt357iVPECqWfUxXp1toJAvKmbtcIYVGigaGsCA=="], + + "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.972.75", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/signature-v4-multi-region": "^3.996.46", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-wMIsNumRVKaNMKhvU/s9VrdEwE8S6gSzXp4RygFG5BEMnGkkXf8cjh8zf7cKJBpUDpqTWqwbz5isEgp9rH6Lng=="], + + "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.997.44", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/signature-v4-multi-region": "^3.996.46", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/fetch-http-handler": "^5.7.2", "@smithy/node-http-handler": "^4.11.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-NhEgryjlBF9w38ZXqGymQV28IhkYa1mKhlbYnqIis57AYwWGVYfUPgg/qC2rLRqOUfblxx++irvju10kVTa8Vw=="], + + "@aws-sdk/s3-request-presigner": ["@aws-sdk/s3-request-presigner@3.1121.0", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/signature-v4-multi-region": "^3.996.46", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-uudb+S0RTbdmBd2ChRCnDbjK1lbZsBwNtFeCnC1lusWUYpZJ12cYzf7E0HhJzhPV4W83RQgxFNDAh2ZNhuGSJw=="], + + "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.996.46", "", { "dependencies": { "@aws-sdk/types": "^3.974.5", "@smithy/signature-v4": "^5.6.12", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ=="], + + "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.1116.0", "", { "dependencies": { "@aws-sdk/core": "^3.977.9", "@aws-sdk/nested-clients": "^3.997.44", "@aws-sdk/types": "^3.974.5", "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-ygIivKqh8aHzNkucOCXHyIBgBpLPfrSI0mCqXF+vLBsPTUKqj0VSqAY0GFPe7lQl4HntjOcQ+KSyS7oUV2C54Q=="], + + "@aws-sdk/types": ["@aws-sdk/types@3.974.5", "", { "dependencies": { "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ=="], + + "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.972.40", "", { "dependencies": { "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA=="], + + "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.3.0", "", {}, "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ=="], + + "@better-auth/core": ["@better-auth/core@1.7.2", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.41.1", "@standard-schema/spec": "^1.1.0", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@cloudflare/workers-types": ">=4", "@opentelemetry/api": "^1.9.0", "better-call": "1.4.0", "jose": "^6.1.0", "kysely": "^0.28.5 || ^0.29.0", "nanostores": "^1.0.1" }, "optionalPeers": ["@cloudflare/workers-types", "@opentelemetry/api"] }, "sha512-j0nM4ygsWbF/fcYRoKtDn8gn8uLXkmC+075HqSqsJEAV828cJR9bvYBCUQ1zmxNyRBk6Iz/qXsA0Zm2oksiOTg=="], + + "@better-auth/drizzle-adapter": ["@better-auth/drizzle-adapter@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2", "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0" }, "optionalPeers": ["drizzle-orm"] }, "sha512-A5wE10PIv3aS5LGePecEHntQylKy6OOF17B4dqlE0DwJeqU/IOBSd7/LZhMop9cNJ3WFjKMpazVSf91yYM/NFg=="], + + "@better-auth/kysely-adapter": ["@better-auth/kysely-adapter@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2", "kysely": "^0.28.17 || ^0.29.0" }, "optionalPeers": ["kysely"] }, "sha512-LYdSRLOvZiF+6S0UThu+wE/Qxsq9P2jQs7ZKkY6BIBJqUjYyxVDmi8HFcantBvWWW1/BeQCSsD7YVDG4gICMIQ=="], + + "@better-auth/memory-adapter": ["@better-auth/memory-adapter@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2" } }, "sha512-0q1SXMzm5esH9L0xVuM6IxCk59E4G+3HySX4My9gvEwqtmUobykn+iuc/si3Y4xwUO7JODqQ5o+/pPcLDDMIrA=="], + + "@better-auth/mongo-adapter": ["@better-auth/mongo-adapter@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2", "mongodb": "^6.0.0 || ^7.0.0" }, "optionalPeers": ["mongodb"] }, "sha512-4879SmUWHUs0OYlvHoCFbycZ7i1bqytkcgAUdt9RLQMvZ5H3LRMTgax2YVlGZEXgwNjY/X7xAoXOecWLhlQWeA=="], + + "@better-auth/prisma-adapter": ["@better-auth/prisma-adapter@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@prisma/client", "prisma"] }, "sha512-mXTr/83WrNWLrvzIjtgDgdu9iXhOcSG1+qBQOAKlbGSFiOB+z4IMRneQ2wmMOiB8mKY9qGkClVUjKRFXqtHnFQ=="], + + "@better-auth/telemetry": ["@better-auth/telemetry@1.7.2", "", { "peerDependencies": { "@better-auth/core": "^1.7.2", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1" } }, "sha512-LcWu+O0zrxYDQj8E36vfkJwGPW4k9ZDA/rCo0zST6ihzL+juR7pBowoZIM9E6tK0Vit52mf6412bGT4XM4eTjQ=="], + + "@better-auth/utils": ["@better-auth/utils@0.4.2", "", { "dependencies": { "@noble/hashes": "^2.0.1" } }, "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A=="], + + "@better-fetch/fetch": ["@better-fetch/fetch@1.3.1", "", {}, "sha512-ABkD1WhyfPZprKRQI3bhATjeiFuNWC9PXhfGWqL+sg/gKrM977oFrYkdb4msM3hgUGonr7KlOsOFT5TU2rht9g=="], + + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.12.0", "", {}, "sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.10.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.23.5", "", { "dependencies": { "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", "minimatch": "^10.2.4" } }, "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.7.0", "", { "dependencies": { "@eslint/core": "^1.2.1" } }, "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw=="], + + "@eslint/core": ["@eslint/core@1.2.1", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ=="], + + "@eslint/js": ["@eslint/js@10.0.1", "", { "peerDependencies": { "eslint": "^10.0.0" }, "optionalPeers": ["eslint"] }, "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA=="], + + "@eslint/object-schema": ["@eslint/object-schema@3.0.5", "", {}, "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.7.2", "", { "dependencies": { "@eslint/core": "^1.2.1", "levn": "^0.4.1" } }, "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A=="], + + "@floating-ui/core": ["@floating-ui/core@1.8.0", "", { "dependencies": { "@floating-ui/utils": "^0.2.12" } }, "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.8.0", "", { "dependencies": { "@floating-ui/core": "^1.8.0", "@floating-ui/utils": "^0.2.12" } }, "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.12", "", {}, "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww=="], + + "@humanfs/core": ["@humanfs/core@0.19.2", "", { "dependencies": { "@humanfs/types": "^0.15.0" } }, "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA=="], + + "@humanfs/node": ["@humanfs/node@0.16.8", "", { "dependencies": { "@humanfs/core": "^0.19.2", "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ=="], + + "@humanfs/types": ["@humanfs/types@0.15.0", "", {}, "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.94", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-l8UWzVxKaqZd9ABsE/M/9p6NyGkQnmCnOoZyhQmjlXCtY5PuL2rcWxOFk2l9pk7ux3ERMPkTLE4jl6kQpTkwxA=="], + + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@iconify/utils": ["@iconify/utils@3.1.4", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", "import-meta-resolve": "^4.2.0" } }, "sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw=="], + + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + + "@internationalized/date": ["@internationalized/date@3.12.3", "", { "dependencies": { "@swc/helpers": "^0.5.0" } }, "sha512-fuLX+3ZKLsxI73y8b01EG/WjHb6gE6weCqlfawPO27kBWGMh9G1yH6Csv1uU7/cac9H2GHmOMt6CjmuQ1aia4Q=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@js-temporal/polyfill": ["@js-temporal/polyfill@0.5.1", "", { "dependencies": { "jsbi": "^4.3.0" } }, "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ=="], + + "@mapbox/jsonlint-lines-primitives": ["@mapbox/jsonlint-lines-primitives@2.0.3", "", {}, "sha512-0SElaV0uMxEnxzBhhX9WTuPyUeMsAN/SS0i16tjuba4/mio63MG9khjC1a0JAiPGXAwvwm4UfHJURCN7nyudQg=="], + + "@mapbox/point-geometry": ["@mapbox/point-geometry@1.1.0", "", {}, "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ=="], + + "@mapbox/tiny-sdf": ["@mapbox/tiny-sdf@2.2.0", "", {}, "sha512-LVL4wgI9YAum5V+LNVQO6QgFBPw7/MIIY4XJPNsPDMrjEwcE+JfKk1LuIl8GnF197ejVdC9QdPaxrx5gfgdGXg=="], + + "@mapbox/unitbezier": ["@mapbox/unitbezier@1.0.0", "", {}, "sha512-fqd515fjBmANKGGsQ286E2Wvj/XvDFpGzwJxq4CI6jMQue6Oy04uCKp+JWKF00xRTmk6cEu1jPJ9p3xqH8YWqQ=="], + + "@mapbox/vector-tile": ["@mapbox/vector-tile@2.0.5", "", { "dependencies": { "@mapbox/point-geometry": "~1.1.0", "@types/geojson": "^7946.0.16", "pbf": "^4.0.2" } }, "sha512-pXj8m7KTsqZt+1jsE0xIpGvqTSbblfkuEJL/NJmNePMtEwxO8V3XMDo9WMSfDeqHvCtBI9Lmt4mGcGR10zecmw=="], + + "@mapbox/whoots-js": ["@mapbox/whoots-js@3.1.0", "", {}, "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q=="], + + "@maplibre/geojson-vt": ["@maplibre/geojson-vt@6.1.1", "", { "dependencies": { "kdbush": "^4.1.0" } }, "sha512-FVMOcmSP/yqol45t7StApEyTL5/vmqBCuFhH9n+fFuINenhaX+YgHHIt1yJ86S8kln3uJLcMvmEU2cfn6E2eCQ=="], + + "@maplibre/maplibre-gl-style-spec": ["@maplibre/maplibre-gl-style-spec@24.10.0", "", { "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^1.0.0", "json-stringify-pretty-compact": "^4.0.0", "minimist": "^1.2.8", "quickselect": "^3.0.0", "tinyqueue": "^3.0.0" }, "bin": { "gl-style-format": "dist/gl-style-format.mjs", "gl-style-migrate": "dist/gl-style-migrate.mjs", "gl-style-validate": "dist/gl-style-validate.mjs" } }, "sha512-lichxSiagMEBBrqHF0trtMQH9RKh+9jUlIJl0qW0QHvt2H/tbvUWdE+ZzI2Jd0/pT7j/iavLonlPu7EQ/ixTOw=="], + + "@maplibre/mlt": ["@maplibre/mlt@1.2.0", "", { "dependencies": { "@mapbox/point-geometry": "^1.1.0" } }, "sha512-g45M8gEI4sMO3X9ib4K7n3ZKFf0qQOL+NMkHCnEK51lOrYFHiEssOuZncx1+miIgi1IEE2NcbRMcq8RBkL+QHA=="], + + "@maplibre/vt-pbf": ["@maplibre/vt-pbf@4.3.2", "", { "dependencies": { "@mapbox/point-geometry": "^1.1.0", "@types/geojson": "^7946.0.16", "pbf": "^5.1.0" } }, "sha512-j6p0AdjvAR19Z3XaCysle7A4ZSo08tYOzxD0Y9NQylwPAkwJJeYub5b2eVucdeDh7erhv69DahoLOevDRERRUw=="], + + "@maptiler/client": ["@maptiler/client@3.0.2", "", { "dependencies": { "quick-lru": "^7.0.0" } }, "sha512-zSM5kC/CX02kgpRHQxxKOzjaQjNBs8hqQueIJqwT9pzB2vsP9FTFHfnVrGCfUwM+s1n2bdGla+2hibPkVUf0fw=="], + + "@maptiler/sdk": ["@maptiler/sdk@4.1.0", "", { "dependencies": { "@maplibre/maplibre-gl-style-spec": "^24.7.0", "@maptiler/client": "^3.0.2", "eslint-plugin-compat": "^6.1.0", "events": "^3.3.0", "gl-matrix": "^3.4.4", "js-base64": "^3.7.7", "maplibre-gl": "5.24", "uuid": "^14.0.0" } }, "sha512-CPOxt0EUwE4iQTN721wZdFqBGyywHRwkSjN0WEzTt8fUIhRD+VzwtN1veGNVxK08vWkn12fhLbc4wJlt8pVHvA=="], + + "@mdn/browser-compat-data": ["@mdn/browser-compat-data@6.1.5", "", {}, "sha512-PzdZZzRhcXvKB0begee28n5lvwAcinGKYuLZOVxHAZm+n7y01ddEGfdS1ZXRuVcV+ndG6mSEAE8vgudom5UjYg=="], + + "@melt-ui/svelte": ["@melt-ui/svelte@0.76.2", "", { "dependencies": { "@floating-ui/core": "^1.3.1", "@floating-ui/dom": "^1.4.5", "@internationalized/date": "^3.5.0", "dequal": "^2.0.3", "focus-trap": "^7.5.2", "nanoid": "^5.0.4" }, "peerDependencies": { "svelte": ">=3 <5" } }, "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA=="], + + "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="], + + "@noble/ciphers": ["@noble/ciphers@2.4.0", "", {}, "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw=="], + + "@noble/hashes": ["@noble/hashes@2.4.0", "", {}, "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA=="], + + "@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.43.0", "", {}, "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg=="], + + "@oxc-project/types": ["@oxc-project/types@0.147.0", "", {}, "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg=="], + + "@playwright/test": ["@playwright/test@1.62.1", "", { "dependencies": { "playwright": "1.62.1" }, "bin": { "playwright": "cli.js" } }, "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ=="], + + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + + "@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.6", "", { "os": "android", "cpu": "arm" }, "sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ=="], + + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.6", "", { "os": "android", "cpu": "arm64" }, "sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.6", "", { "os": "freebsd", "cpu": "x64" }, "sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.6", "", { "os": "linux", "cpu": "arm" }, "sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw=="], + + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.6", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ=="], + + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.6", "", { "os": "linux", "cpu": "s390x" }, "sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.6", "", { "os": "none", "cpu": "arm64" }, "sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.6", "", { "os": "win32", "cpu": "x64" }, "sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], + + "@rollup/plugin-commonjs": ["@rollup/plugin-commonjs@29.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", "fdir": "^6.2.0", "is-reference": "1.2.1", "magic-string": "^0.30.3", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg=="], + + "@rollup/plugin-json": ["@rollup/plugin-json@6.1.0", "", { "dependencies": { "@rollup/pluginutils": "^5.1.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA=="], + + "@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@16.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.22.1" }, "peerDependencies": { "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg=="], + + "@rollup/plugin-replace": ["@rollup/plugin-replace@6.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA=="], + + "@rollup/pluginutils": ["@rollup/pluginutils@5.4.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.63.1", "", { "os": "android", "cpu": "arm" }, "sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.63.1", "", { "os": "android", "cpu": "arm64" }, "sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.63.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.63.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.63.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.63.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.63.1", "", { "os": "linux", "cpu": "arm" }, "sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.63.1", "", { "os": "linux", "cpu": "arm" }, "sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.63.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.63.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.63.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.63.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.63.1", "", { "os": "linux", "cpu": "none" }, "sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.63.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.63.1", "", { "os": "linux", "cpu": "x64" }, "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.63.1", "", { "os": "linux", "cpu": "x64" }, "sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.63.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.63.1", "", { "os": "none", "cpu": "arm64" }, "sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.63.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.63.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.63.1", "", { "os": "win32", "cpu": "x64" }, "sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.63.1", "", { "os": "win32", "cpu": "x64" }, "sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w=="], + + "@smithy/core": ["@smithy/core@3.33.3", "", { "dependencies": { "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg=="], + + "@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.5.2", "", { "dependencies": { "@smithy/core": "^3.33.2", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg=="], + + "@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.7.2", "", { "dependencies": { "@smithy/core": "^3.33.2", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-nZyWTmSpJEXl6VtWVMBJve/7x12DZu6sIX1z1a+ZMaHlQQRs9Zpu6NbTe/gmxYXVRpkjxyDYpZ5gx2IM6f/Wkw=="], + + "@smithy/node-http-handler": ["@smithy/node-http-handler@4.11.3", "", { "dependencies": { "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-2jY1tSpERfPfWqyBV2pH+iGFaghVsIJszJNsT7hxtQYhVJpWDyc0LqOWI+nXOxOAHaEfZ4PXXtp1wW1TGpHhkA=="], + + "@smithy/signature-v4": ["@smithy/signature-v4@5.7.3", "", { "dependencies": { "@smithy/core": "^3.33.3", "@smithy/types": "^4.17.2", "tslib": "^2.6.2" } }, "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow=="], + + "@smithy/types": ["@smithy/types@4.17.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA=="], + + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + + "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.13", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ=="], + + "@sveltejs/adapter-node": ["@sveltejs/adapter-node@5.5.7", "", { "dependencies": { "@rollup/plugin-commonjs": "^29.0.0", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-replace": "^6.0.3", "rollup": "^4.59.0" }, "peerDependencies": { "@sveltejs/kit": "^2.4.0" } }, "sha512-uOfc9eVlI3A37RRSaKcgrheBYPrfJwC9VMqDp8x/O6tlKdcLLvHThSWD0KNIbjQ/d+7bwLGx3vx6aowAcRfd2g=="], + + "@sveltejs/enhanced-img": ["@sveltejs/enhanced-img@0.11.0", "", { "dependencies": { "magic-string": "^0.30.5", "sharp": "^0.34.1", "svelte-parse-markup": "^0.1.5", "vite-imagetools": "^9.0.3", "zimmerframe": "^1.1.2" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0 || ^7.0.0", "svelte": "^5.0.0", "vite": "^6.3.0 || >=7.0.0" } }, "sha512-TN7VzGoqwFqvA4Faj1brUPHLtcEkyFa08nrn9bfm98yVrzr0g4bOZHjlBoPYHHX+sZNGE+cxznhTVgarECPQsA=="], + + "@sveltejs/kit": ["@sveltejs/kit@2.70.3", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.9", "@types/cookie": "^0.6.0", "acorn": "^8.16.0", "cookie": "^0.6.0", "devalue": "^5.8.1", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.3.3 || ^6.0.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-UDvEYuZqAMbfB/oXIoqKvbKcb7YczK5zYrzmsGV1zRJk03jntwp8dXiYoIJotxAndsKvcPFtx9H1GRSKFdSHgg=="], + + "@sveltejs/load-config": ["@sveltejs/load-config@0.2.3", "", {}, "sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ=="], + + "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@7.3.0", "", { "dependencies": { "deepmerge": "^4.3.1", "magic-string": "^1.0.0", "obug": "^2.1.0", "vitefu": "^1.1.2" }, "peerDependencies": { "svelte": "^5.46.4", "vite": "^8.0.0-beta.7 || ^8.0.0" } }, "sha512-QbRoJyD92e9R0ufeQIWRHrCC0ObcqSv/aBDdrQMoU+sypav3cDx5wytdQ6GLdXjEMO6xjrXGzfkUygng8JMv0A=="], + + "@swc/helpers": ["@swc/helpers@0.5.23", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.3.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.3" } }, "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.3", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.3", "@tailwindcss/oxide-darwin-arm64": "4.3.3", "@tailwindcss/oxide-darwin-x64": "4.3.3", "@tailwindcss/oxide-freebsd-x64": "4.3.3", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", "@tailwindcss/oxide-linux-x64-musl": "4.3.3", "@tailwindcss/oxide-wasm32-wasi": "4.3.3", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.3", "", { "os": "android", "cpu": "arm64" }, "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3", "", { "os": "linux", "cpu": "arm" }, "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.3", "", { "os": "linux", "cpu": "x64" }, "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.3", "", { "dependencies": { "@emnapi/runtime": "^1.11.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.3", "", { "os": "win32", "cpu": "x64" }, "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw=="], + + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.3", "", { "dependencies": { "@tailwindcss/node": "4.3.3", "@tailwindcss/oxide": "4.3.3", "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw=="], + + "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], + + "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], + + "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="], + + "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], + + "@types/esrecurse": ["@types/esrecurse@4.3.1", "", {}, "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/geojson": ["@types/geojson@7946.0.16", "", {}, "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/node": ["@types/node@26.4.0", "", { "dependencies": { "undici-types": "~8.3.0" } }, "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ=="], + + "@types/pg": ["@types/pg@8.23.1", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A=="], + + "@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.68.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.68.0", "@typescript-eslint/type-utils": "8.68.0", "@typescript-eslint/utils": "8.68.0", "@typescript-eslint/visitor-keys": "8.68.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.68.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.68.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.68.0", "@typescript-eslint/types": "8.68.0", "@typescript-eslint/typescript-estree": "8.68.0", "@typescript-eslint/visitor-keys": "8.68.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.68.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.68.0", "@typescript-eslint/types": "^8.68.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.68.0", "", { "dependencies": { "@typescript-eslint/types": "8.68.0", "@typescript-eslint/visitor-keys": "8.68.0" } }, "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.68.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.68.0", "", { "dependencies": { "@typescript-eslint/types": "8.68.0", "@typescript-eslint/typescript-estree": "8.68.0", "@typescript-eslint/utils": "8.68.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.68.0", "", {}, "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.68.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.68.0", "@typescript-eslint/tsconfig-utils": "8.68.0", "@typescript-eslint/types": "8.68.0", "@typescript-eslint/visitor-keys": "8.68.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.68.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.68.0", "@typescript-eslint/types": "8.68.0", "@typescript-eslint/typescript-estree": "8.68.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.68.0", "", { "dependencies": { "@typescript-eslint/types": "8.68.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A=="], + + "@typescript/native": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="], + + "@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="], + + "@typescript/typescript-darwin-arm64": ["@typescript/typescript-darwin-arm64@7.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=="], + + "@typescript/typescript-darwin-x64": ["@typescript/typescript-darwin-x64@7.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=="], + + "@typescript/typescript-freebsd-arm64": ["@typescript/typescript-freebsd-arm64@7.0.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=="], + + "@typescript/typescript-freebsd-x64": ["@typescript/typescript-freebsd-x64@7.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=="], + + "@typescript/typescript-linux-arm": ["@typescript/typescript-linux-arm@7.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=="], + + "@typescript/typescript-linux-arm64": ["@typescript/typescript-linux-arm64@7.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=="], + + "@typescript/typescript-linux-loong64": ["@typescript/typescript-linux-loong64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=="], + + "@typescript/typescript-linux-mips64el": ["@typescript/typescript-linux-mips64el@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=="], + + "@typescript/typescript-linux-ppc64": ["@typescript/typescript-linux-ppc64@7.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=="], + + "@typescript/typescript-linux-riscv64": ["@typescript/typescript-linux-riscv64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=="], + + "@typescript/typescript-linux-s390x": ["@typescript/typescript-linux-s390x@7.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=="], + + "@typescript/typescript-linux-x64": ["@typescript/typescript-linux-x64@7.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=="], + + "@typescript/typescript-netbsd-arm64": ["@typescript/typescript-netbsd-arm64@7.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=="], + + "@typescript/typescript-netbsd-x64": ["@typescript/typescript-netbsd-x64@7.0.2", "", { "os": "none", "cpu": "x64" }, "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=="], + + "@typescript/typescript-openbsd-arm64": ["@typescript/typescript-openbsd-arm64@7.0.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=="], + + "@typescript/typescript-openbsd-x64": ["@typescript/typescript-openbsd-x64@7.0.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=="], + + "@typescript/typescript-sunos-x64": ["@typescript/typescript-sunos-x64@7.0.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=="], + + "@typescript/typescript-win32-arm64": ["@typescript/typescript-win32-arm64@7.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=="], + + "@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="], + + "@vercel/oidc": ["@vercel/oidc@3.2.0", "", {}, "sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug=="], + + "@vitest/expect": ["@vitest/expect@4.1.11", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.11", "@vitest/utils": "4.1.11", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw=="], + + "@vitest/mocker": ["@vitest/mocker@4.1.11", "", { "dependencies": { "@vitest/spy": "4.1.11", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ=="], + + "@vitest/pretty-format": ["@vitest/pretty-format@4.1.11", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw=="], + + "@vitest/runner": ["@vitest/runner@4.1.11", "", { "dependencies": { "@vitest/utils": "4.1.11", "pathe": "^2.0.3" } }, "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw=="], + + "@vitest/snapshot": ["@vitest/snapshot@4.1.11", "", { "dependencies": { "@vitest/pretty-format": "4.1.11", "@vitest/utils": "4.1.11", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog=="], + + "@vitest/spy": ["@vitest/spy@4.1.11", "", {}, "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA=="], + + "@vitest/utils": ["@vitest/utils@4.1.11", "", { "dependencies": { "@vitest/pretty-format": "4.1.11", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ=="], + + "@workflow/serde": ["@workflow/serde@4.1.0", "", {}, "sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ=="], + + "acorn": ["acorn@8.18.0", "", { "bin": "bin/acorn" }, "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ai": ["ai@7.0.85", "", { "dependencies": { "@ai-sdk/gateway": "4.0.69", "@ai-sdk/provider": "4.0.9", "@ai-sdk/provider-utils": "5.0.34" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-HVtPz0qLbTUad+QBnWWReIUmwk+U4PcRENMx+9PsHGVoinoc5CLDiVjNR+VBXTKOSaNgce8kSU/Rtbb4kjZsSw=="], + + "ajv": ["ajv@6.15.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw=="], + + "aria-query": ["aria-query@5.3.1", "", {}, "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g=="], + + "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + + "ast-metadata-inferer": ["ast-metadata-inferer@0.8.1", "", { "dependencies": { "@mdn/browser-compat-data": "^5.6.19" } }, "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.11.20", "", { "bin": "dist/cli.cjs" }, "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw=="], + + "better-auth": ["better-auth@1.7.2", "", { "dependencies": { "@better-auth/core": "1.7.2", "@better-auth/drizzle-adapter": "1.7.2", "@better-auth/kysely-adapter": "1.7.2", "@better-auth/memory-adapter": "1.7.2", "@better-auth/mongo-adapter": "1.7.2", "@better-auth/prisma-adapter": "1.7.2", "@better-auth/telemetry": "1.7.2", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@noble/ciphers": "^2.2.0", "@noble/hashes": "^2.2.0", "better-call": "1.4.0", "defu": "^6.1.4", "jose": "^6.2.3", "kysely": "^0.28.17 || ^0.29.0", "nanostores": "^1.3.0", "zod": "^4.3.6" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4 || >=1.0.0-beta.1", "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-gKapKBEvYIGcMxi74RjQ7EbFLiqyQt58vdoJmL1qAlWSkY1Bc2Vqshl524/3u1NxauiOU03M/Ebh762Brmac9A=="], + + "better-call": ["better-call@1.4.0", "", { "dependencies": { "@better-auth/utils": "^0.5.0", "@better-fetch/fetch": "^1.3.1", "rou3": "^0.9.1", "set-cookie-parser": "^3.1.2" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA=="], + + "bits-ui": ["bits-ui@2.19.0", "", { "dependencies": { "@floating-ui/core": "^1.7.1", "@floating-ui/dom": "^1.7.1", "esm-env": "^1.1.2", "runed": "^0.35.1", "svelte-toolbelt": "^0.10.6", "tabbable": "^6.2.0" }, "peerDependencies": { "@internationalized/date": "^3.8.1", "svelte": "^5.33.0" } }, "sha512-dHDm5Jw2NZJgLRvHAwPeuR4BnZij+AqTIq33OqVfo+qiMXontoC/yIvGT5TZaviv7OuBdJ2QUy2JPQ2yKBvF6w=="], + + "bowser": ["bowser@2.14.1", "", {}, "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="], + + "brace-expansion": ["brace-expansion@5.0.9", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg=="], + + "browserslist": ["browserslist@4.28.8", "", { "dependencies": { "baseline-browser-mapping": "^2.11.12", "caniuse-lite": "^1.0.30001809", "electron-to-chromium": "^1.5.402", "node-releases": "^2.0.53", "update-browserslist-db": "^1.3.0" }, "bin": "cli.js" }, "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001810", "", {}, "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg=="], + + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], + + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "cmdk-sv": ["cmdk-sv@0.0.19", "", { "dependencies": { "bits-ui": "^0.21.12", "nanoid": "^5.0.7" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.1" } }, "sha512-Vm6+/up5nQbwGmNw0uYFbXTrbpF460/FhMohTskzzszMtIR/u/78haucSmJWjjp9bW0wxpHXZWa6fk+Lj1tKnA=="], + + "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], + + "confbox": ["confbox@0.2.4", "", {}, "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": "bin/cssesc" }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "devalue": ["devalue@5.9.2", "", {}, "sha512-po4PAY5c53tw5XMocSnf8A/5OHhbbUftpr93aEN6BBoAdntUmK7vu7wOATqvt7cXO7m1Cl4gMVn6p7n6n4mj0w=="], + + "drizzle-kit": ["drizzle-kit@1.0.0-rc.4", "", { "dependencies": { "@drizzle-team/brocli": "^0.12.0", "@js-temporal/polyfill": "^0.5.1", "esbuild": "^0.25.10", "get-tsconfig": "^4.13.6", "jiti": "^2.6.1" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-KZCpjRyu+oYHLj/UJogfFlOkWhHVkaEI2EOT1U3NDVXUzLoTyPjqwFxwOrlQxsY6jzRyxcz4EacqboGfhEeYrA=="], + + "drizzle-orm": ["drizzle-orm@1.0.0-rc.4", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@effect/sql-d1": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-libsql": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-mysql2": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-pg": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-pglite": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-sqlite-bun": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-sqlite-do": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-sqlite-node": ">=4.0.0-beta.83 || >=4.0.0", "@effect/sql-sqlite-wasm": ">=4.0.0-beta.83 || >=4.0.0", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@sinclair/typebox": ">=0.34.8", "@sqlitecloud/drivers": ">=1.0.653", "@tidbcloud/serverless": "*", "@tursodatabase/database": ">=0.6.0-pre.28 || >=0.6.0", "@tursodatabase/database-common": ">=0.6.0-pre.28 || >=0.6.0", "@tursodatabase/database-wasm": ">=0.6.0-pre.28 || >=0.6.0", "@tursodatabase/serverless": ">=1.1.3", "@tursodatabase/sync": ">=0.6.0-pre.28 || >=0.6.0", "@types/better-sqlite3": "*", "@types/mssql": "^9.1.4", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "arktype": ">=2.0.0", "better-sqlite3": ">=9.3.0", "bun-types": "*", "effect": ">=4.0.0-beta.83 || >=4.0.0", "expo-sqlite": ">=14.0.0", "mssql": "^11.0.1", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5", "typebox": ">=1.0.0", "valibot": ">=1.0.0-beta.7", "zod": "^3.25.0 || ^4.0.0" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@effect/sql-d1", "@effect/sql-libsql", "@effect/sql-mysql2", "@effect/sql-pg", "@effect/sql-pglite", "@effect/sql-sqlite-bun", "@effect/sql-sqlite-do", "@effect/sql-sqlite-node", "@effect/sql-sqlite-wasm", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@sinclair/typebox", "@sqlitecloud/drivers", "@tidbcloud/serverless", "@tursodatabase/database", "@tursodatabase/database-common", "@tursodatabase/database-wasm", "@tursodatabase/serverless", "@tursodatabase/sync", "@types/better-sqlite3", "@types/mssql", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "arktype", "better-sqlite3", "bun-types", "effect", "expo-sqlite", "mssql", "mysql2", "pg", "postgres", "sql.js", "sqlite3", "typebox", "valibot", "zod"] }, "sha512-BT+pf+qoiYHqltoA88Jmf6ilGMXPlpfE0hEJKc2adRtMCAl25Swk/t5gXcWxZNAwdtf3F5gCd2FpeOyP/pT0Hw=="], + + "earcut": ["earcut@3.2.3", "", {}, "sha512-vnS4AVwp1KHAF13i1vp1/2D5evWy3k5u/iW/B81QVsUZtV8cv2tU0b2VNFlqvh4kYwrFMDdjPCfAmfyJW9y14Q=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.416", "", {}, "sha512-K6bvB2BjnNrugtIih6ewlbBI9DXa976jIdiIlRLHhBoEI9a4JaQjjHyF+A1IQI543aQYR4LnmOrT/K5fZj0aPA=="], + + "enhanced-resolve": ["enhanced-resolve@5.24.5", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-module-lexer": ["es-module-lexer@2.3.2", "", {}, "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw=="], + + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": "bin/esbuild" }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@10.9.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": "bin/eslint.js" }, "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A=="], + + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": "bin/cli.js" }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + + "eslint-plugin-compat": ["eslint-plugin-compat@6.2.1", "", { "dependencies": { "@mdn/browser-compat-data": "^6.1.1", "ast-metadata-inferer": "^0.8.1", "browserslist": "^4.25.2", "find-up": "^5.0.0", "globals": "^15.7.0", "lodash.memoize": "^4.1.2", "semver": "^7.6.2" }, "peerDependencies": { "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" } }, "sha512-gLKqUH+lQcCL+HzsROUjBDvakc5Zaga51Y4ZAkPCXc41pzKBfyluqTr2j8zOx8QQQb7zyglu1LVoL5aSNWf2SQ=="], + + "eslint-plugin-svelte": ["eslint-plugin-svelte@3.23.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.6.1", "@jridgewell/sourcemap-codec": "^1.5.0", "esutils": "^2.0.3", "globals": "^16.0.0", "known-css-properties": "^0.37.0", "postcss": "^8.4.49", "postcss-load-config": "^3.1.4", "postcss-safe-parser": "^7.0.0", "semver": "^7.6.3", "svelte-eslint-parser": "^1.7.0" }, "peerDependencies": { "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-n9jRklDqy0+W834568a4ZIZTK7DHXxvvHHxxGP8nNq7N//pOZMubttskHOquyGgfTR4Z05q2NdGNlsTpIEA48w=="], + + "eslint-scope": ["eslint-scope@9.1.2", "", { "dependencies": { "@types/esrecurse": "^4.3.1", "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], + + "espree": ["espree@11.2.0", "", { "dependencies": { "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^5.0.1" } }, "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw=="], + + "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], + + "esrap": ["esrap@2.3.6", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, "peerDependencies": { "@typescript-eslint/types": "^8.2.0" }, "optionalPeers": ["@typescript-eslint/types"] }, "sha512-yc0OC12UjPqLoc+fe+v5GNs4TOjAigUw3sTikfC+xeBPGUw7gDRz3DtYaqEhxyMVJojcSWJw7jT0QWR+CbuE/A=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + + "eventsource-parser": ["eventsource-parser@3.1.1", "", {}, "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ=="], + + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], + + "exsolve": ["exsolve@1.1.1", "", {}, "sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.4.4", "", {}, "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q=="], + + "focus-trap": ["focus-trap@7.8.0", "", { "dependencies": { "tabbable": "^6.4.0" } }, "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "get-tsconfig": ["get-tsconfig@4.14.3", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA=="], + + "gl-matrix": ["gl-matrix@3.4.4", "", {}, "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@17.11.0", "", {}, "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "imagetools-core": ["imagetools-core@9.1.0", "", {}, "sha512-xQjs+2vrxLnAjCq+omuNkd5UQTld9/bP8+YT0LyYTlKfuSQtgUBvqhUwGugzSAh6sCdN+LnROMuLswn5hZ9Fhg=="], + + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], + + "is-core-module": ["is-core-module@2.16.2", "", { "dependencies": { "hasown": "^2.0.3" } }, "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="], + + "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "jiti": ["jiti@2.7.0", "", { "bin": "lib/jiti-cli.mjs" }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "jose": ["jose@6.2.10", "", {}, "sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g=="], + + "js-base64": ["js-base64@3.9.3", "", {}, "sha512-uwYQp+VJ38FVvtim6qNbit6e9uT6dwWQ4Y1+H9TxhW5hcHjpHwoxlR0nMpqUmIFOmu4VqMxwdJA88gIVuZJQ/g=="], + + "jsbi": ["jsbi@4.3.2", "", {}, "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json-stringify-pretty-compact": ["json-stringify-pretty-compact@4.0.0", "", {}, "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q=="], + + "kdbush": ["kdbush@4.1.0", "", {}, "sha512-e9vurzrXJQrFX6ckpHP3bvj5l+9CnYzkxDNnNQ1h2QTqdWsUAJgXiKdGNcOa1EY85dU8KbQ+z/FdQdB7P+9yfQ=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "known-css-properties": ["known-css-properties@0.37.0", "", {}, "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ=="], + + "kysely": ["kysely@0.29.5", "", {}, "sha512-ooa+eSbBNPTo3MycPEuW5jdrxQdQwdtB3LC3h43FiXQbIry5tR0C5lDG7eealK0E4D7XjrnOP5DIUg/LyjRMYQ=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], + + "lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + + "local-pkg": ["local-pkg@1.2.1", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q=="], + + "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="], + + "lucide-svelte": ["lucide-svelte@1.0.1", "", { "peerDependencies": { "svelte": "^3 || ^4 || ^5.0.0-next.42" } }, "sha512-WvzZgk0pqzgda+AErLvgWxHkfg/+GgUwqKMRHvzt0IqyMdmyEDzDCk3Z+Wo/3y753oIgx8u9Q4eUbWkghFa8Jg=="], + + "lz-string": ["lz-string@1.5.0", "", { "bin": "bin/bin.js" }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "maplibre-gl": ["maplibre-gl@5.24.0", "", { "dependencies": { "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/point-geometry": "^1.1.0", "@mapbox/tiny-sdf": "^2.1.0", "@mapbox/unitbezier": "^0.0.1", "@mapbox/vector-tile": "^2.0.4", "@mapbox/whoots-js": "^3.1.0", "@maplibre/geojson-vt": "^6.1.0", "@maplibre/maplibre-gl-style-spec": "^24.8.1", "@maplibre/mlt": "^1.1.8", "@maplibre/vt-pbf": "^4.3.0", "@types/geojson": "^7946.0.16", "earcut": "^3.0.2", "gl-matrix": "^3.4.4", "kdbush": "^4.0.2", "murmurhash-js": "^1.0.0", "pbf": "^4.0.1", "potpack": "^2.1.0", "quickselect": "^3.0.0", "tinyqueue": "^3.0.0" } }, "sha512-ALyFxgtd5R+65UqZ/++lOqwWcC0SNho9c27fYSyLmG7AfnAul2o46F05aDJGPbFU57wos9dgcIySHs0Xe6ia3A=="], + + "minimatch": ["minimatch@10.2.6", "", { "dependencies": { "brace-expansion": "^5.0.8" } }, "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "mlly": ["mlly@1.8.2", "", { "dependencies": { "acorn": "^8.16.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.3" } }, "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA=="], + + "mode-watcher": ["mode-watcher@1.1.0", "", { "dependencies": { "runed": "^0.25.0", "svelte-toolbelt": "^0.7.1" }, "peerDependencies": { "svelte": "^5.27.0" } }, "sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g=="], + + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "murmurhash-js": ["murmurhash-js@1.0.0", "", {}, "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw=="], + + "nanoid": ["nanoid@5.1.16", "", { "bin": "bin/nanoid.js" }, "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ=="], + + "nanostores": ["nanostores@1.5.2", "", {}, "sha512-B0UbxzK1s0CN8Xht6r+7iT5+xV8PTaRERR1nATeplRv1Rw5YLWfVAid0hkqY3EceqpG4RjTk8GAwIxQY39Rnwg=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-releases": ["node-releases@2.0.54", "", {}, "sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ=="], + + "obug": ["obug@2.1.4", "", {}, "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "package-manager-detector": ["package-manager-detector@1.8.0", "", {}, "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "pbf": ["pbf@4.0.2", "", { "dependencies": { "resolve-protobuf-schema": "^2.1.0" }, "bin": "bin/pbf" }, "sha512-J0ajxARhZfpUEebxYs1vhMGMuLSXtBe1e+fFPDrf2uA2hgo+UshKfNUWOz92HJNz6/NFEXseQPddnHkTreWRqg=="], + + "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="], + + "pg-protocol": ["pg-protocol@1.16.0", "", {}, "sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg=="], + + "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="], + + "pkg-types": ["pkg-types@2.3.1", "", { "dependencies": { "confbox": "^0.2.4", "exsolve": "^1.0.8", "pathe": "^2.0.3" } }, "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg=="], + + "playwright": ["playwright@1.62.1", "", { "dependencies": { "playwright-core": "1.62.1" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": "cli.js" }, "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg=="], + + "playwright-core": ["playwright-core@1.62.1", "", { "bin": "cli.js" }, "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw=="], + + "postcss": ["postcss@8.5.26", "", { "dependencies": { "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ=="], + + "postcss-load-config": ["postcss-load-config@3.1.4", "", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="], + + "postcss-safe-parser": ["postcss-safe-parser@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.31" } }, "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A=="], + + "postcss-scss": ["postcss-scss@4.0.9", "", { "peerDependencies": { "postcss": "^8.4.29" } }, "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A=="], + + "postcss-selector-parser": ["postcss-selector-parser@7.1.5", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw=="], + + "postgres": ["postgres@3.4.9", "", {}, "sha512-GD3qdB0x1z9xgFI6cdRD6xu2Sp2WCOEoe3mtnyB5Ee0XrrL5Pe+e4CCnJrRMnL1zYtRDZmQQVbvOttLnKDLnaw=="], + + "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], + + "postgres-bytea": ["postgres-bytea@1.0.1", "", {}, "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ=="], + + "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="], + + "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], + + "potpack": ["potpack@2.1.0", "", {}, "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.9.6", "", { "bin": "bin/prettier.cjs" }, "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g=="], + + "prettier-plugin-svelte": ["prettier-plugin-svelte@4.1.1", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^5.0.0" } }, "sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA=="], + + "protocol-buffers-schema": ["protocol-buffers-schema@3.6.1", "", {}, "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + + "quick-lru": ["quick-lru@7.3.0", "", {}, "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g=="], + + "quickselect": ["quickselect@3.0.0", "", {}, "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g=="], + + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "resolve": ["resolve@1.22.12", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": "bin/resolve" }, "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "resolve-protobuf-schema": ["resolve-protobuf-schema@2.1.0", "", { "dependencies": { "protocol-buffers-schema": "^3.3.1" } }, "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ=="], + + "rolldown": ["rolldown@1.2.6", "", { "dependencies": { "@oxc-project/types": "=0.147.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.6", "@rolldown/binding-android-arm64": "1.2.6", "@rolldown/binding-darwin-arm64": "1.2.6", "@rolldown/binding-darwin-x64": "1.2.6", "@rolldown/binding-freebsd-x64": "1.2.6", "@rolldown/binding-linux-arm-gnueabihf": "1.2.6", "@rolldown/binding-linux-arm64-gnu": "1.2.6", "@rolldown/binding-linux-arm64-musl": "1.2.6", "@rolldown/binding-linux-ppc64-gnu": "1.2.6", "@rolldown/binding-linux-s390x-gnu": "1.2.6", "@rolldown/binding-linux-x64-gnu": "1.2.6", "@rolldown/binding-linux-x64-musl": "1.2.6", "@rolldown/binding-openharmony-arm64": "1.2.6", "@rolldown/binding-win32-arm64-msvc": "1.2.6", "@rolldown/binding-win32-x64-msvc": "1.2.6" }, "bin": "bin/cli.mjs" }, "sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA=="], + + "rollup": ["rollup@4.63.1", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@napi-rs/lzma-linux-x64-gnu": "1.5.1", "@rollup/rollup-android-arm-eabi": "4.63.1", "@rollup/rollup-android-arm64": "4.63.1", "@rollup/rollup-darwin-arm64": "4.63.1", "@rollup/rollup-darwin-x64": "4.63.1", "@rollup/rollup-freebsd-arm64": "4.63.1", "@rollup/rollup-freebsd-x64": "4.63.1", "@rollup/rollup-linux-arm-gnueabihf": "4.63.1", "@rollup/rollup-linux-arm-musleabihf": "4.63.1", "@rollup/rollup-linux-arm64-gnu": "4.63.1", "@rollup/rollup-linux-arm64-musl": "4.63.1", "@rollup/rollup-linux-loong64-gnu": "4.63.1", "@rollup/rollup-linux-loong64-musl": "4.63.1", "@rollup/rollup-linux-ppc64-gnu": "4.63.1", "@rollup/rollup-linux-ppc64-musl": "4.63.1", "@rollup/rollup-linux-riscv64-gnu": "4.63.1", "@rollup/rollup-linux-riscv64-musl": "4.63.1", "@rollup/rollup-linux-s390x-gnu": "4.63.1", "@rollup/rollup-linux-x64-gnu": "4.63.1", "@rollup/rollup-linux-x64-musl": "4.63.1", "@rollup/rollup-openbsd-x64": "4.63.1", "@rollup/rollup-openharmony-arm64": "4.63.1", "@rollup/rollup-win32-arm64-msvc": "4.63.1", "@rollup/rollup-win32-ia32-msvc": "4.63.1", "@rollup/rollup-win32-x64-gnu": "4.63.1", "@rollup/rollup-win32-x64-msvc": "4.63.1", "fsevents": "~2.3.2" }, "bin": "dist/bin/rollup" }, "sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg=="], + + "rou3": ["rou3@0.9.2", "", {}, "sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ=="], + + "runed": ["runed@0.35.1", "", { "dependencies": { "dequal": "^2.0.3", "esm-env": "^1.0.0", "lz-string": "^1.5.0" }, "peerDependencies": { "@sveltejs/kit": "^2.21.0", "svelte": "^5.7.0" }, "optionalPeers": ["@sveltejs/kit"] }, "sha512-2F4Q/FZzbeJTFdIS/PuOoPRSm92sA2LhzTnv6FXhCoENb3huf5+fDuNOg1LNvGOouy3u/225qxmuJvcV3IZK5Q=="], + + "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], + + "semver": ["semver@7.8.5", "", { "bin": "bin/semver.js" }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "set-cookie-parser": ["set-cookie-parser@3.1.2", "", {}, "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw=="], + + "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], + + "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], + + "std-env": ["std-env@4.2.0", "", {}, "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw=="], + + "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "svelte": ["svelte@5.57.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.10", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", "esrap": "^2.2.12", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-NdbDn7fl4be1ViUG0oq/lvG6OZy3oENolV2ONjiqqsfVoeAfzaQAKUcEX3MrQod/Bebv1PgwET9rfXhgn9s4Kg=="], + + "svelte-check": ["svelte-check@4.7.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.3", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.0.0 || ^6.0.0" }, "bin": "bin/svelte-check" }, "sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw=="], + + "svelte-eslint-parser": ["svelte-eslint-parser@1.8.1", "", { "dependencies": { "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "postcss": "^8.4.49", "postcss-scss": "^4.0.9", "postcss-selector-parser": "^7.0.0", "semver": "^7.7.2" }, "peerDependencies": { "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-5zgKBqAf6V8Jyrmr1jViksyG4NKT8NheYwkdxRaMRDAqpGWi9wR8ktcGrAZbfMn/PHUp1BWzAp0cYQECkWuAMA=="], + + "svelte-parse-markup": ["svelte-parse-markup@0.1.5", "", { "peerDependencies": { "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" } }, "sha512-T6mqZrySltPCDwfKXWQ6zehipVLk4GWfH1zCMGgRtLlOIFPuw58ZxVYxVvotMJgJaurKi1i14viB2GIRKXeJTQ=="], + + "svelte-toolbelt": ["svelte-toolbelt@0.10.6", "", { "dependencies": { "clsx": "^2.1.1", "runed": "^0.35.1", "style-to-object": "^1.0.8" }, "peerDependencies": { "svelte": "^5.30.2" } }, "sha512-YWuX+RE+CnWYx09yseAe4ZVMM7e7GRFZM6OYWpBKOb++s+SQ8RBIMMe+Bs/CznBMc0QPLjr+vDBxTAkozXsFXQ=="], + + "tabbable": ["tabbable@6.5.0", "", {}, "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA=="], + + "tailwind-merge": ["tailwind-merge@3.6.0", "", {}, "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w=="], + + "tailwind-variants": ["tailwind-variants@3.3.1", "", { "peerDependencies": { "tailwind-merge": ">=3.0.0", "tailwindcss": "*" }, "optionalPeers": ["tailwind-merge", "tailwindcss"] }, "sha512-4pAvwUtM4HKBiRZftncAbpn6V9Hhwoa5Fl7O2u5zbp7Z5Cvu+/o/6+176WY3WCEES209543quG8zFIcXCsc5Jw=="], + + "tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + + "tinyexec": ["tinyexec@1.3.0", "", {}, "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "tinyqueue": ["tinyqueue@3.0.0", "", {}, "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g=="], + + "tinyrainbow": ["tinyrainbow@3.1.1", "", {}, "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw=="], + + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + + "ts-api-utils": ["ts-api-utils@2.5.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], + + "typescript-eslint": ["typescript-eslint@8.68.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.68.0", "@typescript-eslint/parser": "8.68.0", "@typescript-eslint/typescript-estree": "8.68.0", "@typescript-eslint/utils": "8.68.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ=="], + + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "undici": ["undici@7.29.0", "", {}, "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw=="], + + "undici-types": ["undici-types@8.3.0", "", {}, "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ=="], + + "unplugin": ["unplugin@2.3.11", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww=="], + + "unplugin-icons": ["unplugin-icons@23.0.1", "", { "dependencies": { "@antfu/install-pkg": "^1.1.0", "@iconify/utils": "^3.1.0", "local-pkg": "^1.1.2", "obug": "^2.1.1", "unplugin": "^2.3.11" }, "peerDependencies": { "@svgr/core": ">=7.0.0", "@svgx/core": "^1.0.1", "@vue/compiler-sfc": "^3.0.2", "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["@svgr/core", "@svgx/core", "@vue/compiler-sfc", "svelte"] }, "sha512-rv0XEJepajKzDLvRUWASM8K+8+/CCfZn2jtogXqg6RIp7kpatRc/aFrVJn8ANQA09e++lPEEv9yX8cC9enc+QQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.3.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": "cli.js" }, "sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@14.0.2", "", { "bin": "dist-node/bin/uuid" }, "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ=="], + + "vite": ["vite@8.2.2", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", "postcss": "^8.5.26", "rolldown": "~1.2.4", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.4.0 || ^0.5.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": "bin/vite.js" }, "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q=="], + + "vite-imagetools": ["vite-imagetools@9.0.3", "", { "dependencies": { "@rollup/pluginutils": "^5.0.5", "imagetools-core": "^9.1.0", "sharp": "^0.34.1" } }, "sha512-FwjApRNZyN+RucPW9Z9kf0dyzyi3r3zlDfrTnzHXNaYpmT3pZ5w//d6QkApy1iypbDm+3fq+Gwfv+PYA4j4uYw=="], + + "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], + + "vitest": ["vitest@4.1.11", "", { "dependencies": { "@vitest/expect": "4.1.11", "@vitest/mocker": "4.1.11", "@vitest/pretty-format": "4.1.11", "@vitest/runner": "4.1.11", "@vitest/snapshot": "4.1.11", "@vitest/spy": "4.1.11", "@vitest/utils": "4.1.11", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.11", "@vitest/browser-preview": "4.1.11", "@vitest/browser-webdriverio": "4.1.11", "@vitest/coverage-istanbul": "4.1.11", "@vitest/coverage-v8": "4.1.11", "@vitest/ui": "4.1.11", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": "vitest.mjs" }, "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw=="], + + "webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": "cli.js" }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + + "yaml": ["yaml@1.10.3", "", {}, "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="], + + "zod": ["zod@4.5.4", "", {}, "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@maplibre/vt-pbf/pbf": ["pbf@5.1.2", "", { "dependencies": { "resolve-protobuf-schema": "^2.1.0" }, "bin": "bin/pbf" }, "sha512-mnvGdvOrIvJOBGUEdGkrVXjN8E/VkIJCkf2eS1DH2yv82ORUlLttmDt0rWY38yYZmVwciZwBUvHM20qxBZf40w=="], + + "@rollup/plugin-commonjs/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "@rollup/plugin-commonjs/is-reference": ["is-reference@1.2.1", "", { "dependencies": { "@types/estree": "*" } }, "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ=="], + + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "@sveltejs/vite-plugin-svelte/magic-string": ["magic-string@1.2.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g=="], + + "@tailwindcss/node/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.7", "", {}, "sha512-dML0wP6oak21rsNYCJpJB6O1BJIEwNpGrTw0URPfAk4hm0e3pRfCtzkfB6olBcXcVlU2rouCyz7lCyRB0OMVCA=="], + + "ast-metadata-inferer/@mdn/browser-compat-data": ["@mdn/browser-compat-data@5.7.6", "", {}, "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg=="], + + "better-call/@better-auth/utils": ["@better-auth/utils@0.5.0", "", { "dependencies": { "@noble/hashes": "^2.0.1" } }, "sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA=="], + + "cmdk-sv/bits-ui": ["bits-ui@0.21.16", "", { "dependencies": { "@internationalized/date": "^3.5.1", "@melt-ui/svelte": "0.76.2", "nanoid": "^5.0.5" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.118" } }, "sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q=="], + + "eslint-plugin-compat/globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], + + "eslint-plugin-svelte/globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], + + "maplibre-gl/@mapbox/unitbezier": ["@mapbox/unitbezier@0.0.1", "", {}, "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw=="], + + "mlly/pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], + + "mode-watcher/runed": ["runed@0.25.0", "", { "dependencies": { "esm-env": "^1.0.0" }, "peerDependencies": { "svelte": "^5.7.0" } }, "sha512-7+ma4AG9FT2sWQEA0Egf6mb7PBT2vHyuHail1ie8ropfSjvZGtEAx8YTmUjv/APCsdRRxEVvArNjALk9zFSOrg=="], + + "mode-watcher/svelte-toolbelt": ["svelte-toolbelt@0.7.1", "", { "dependencies": { "clsx": "^2.1.1", "runed": "^0.23.2", "style-to-object": "^1.0.8" }, "peerDependencies": { "svelte": "^5.0.0" } }, "sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ=="], + + "playwright/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + + "postcss/nanoid": ["nanoid@3.3.18", "", { "bin": "bin/nanoid.cjs" }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="], + + "rollup/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], + + "svelte-eslint-parser/eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "svelte-eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "svelte-eslint-parser/espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "@tailwindcss/node/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "@tailwindcss/node/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "@tailwindcss/node/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "@tailwindcss/node/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "@tailwindcss/node/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "@tailwindcss/node/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "@tailwindcss/node/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "@tailwindcss/node/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "@tailwindcss/node/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "@tailwindcss/node/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + + "mlly/pkg-types/confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], + + "mode-watcher/svelte-toolbelt/runed": ["runed@0.23.4", "", { "dependencies": { "esm-env": "^1.0.0" }, "peerDependencies": { "svelte": "^5.7.0" } }, "sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 1975c7c2d2841d3a9a94de031c064daf3a29248d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192739 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 lC+i4FTa@Ji!#b diff --git a/compose.yml b/compose.yml index fd9e7fd..b6b7853 100755 --- a/compose.yml +++ b/compose.yml @@ -6,7 +6,7 @@ services: - POSTGRES_PASSWORD=postgres - POSTGRES_DB=postgres ports: - - "5432:5432" + - '5432:5432' volumes: - db-data:/var/lib/postgresql @@ -17,7 +17,7 @@ services: working_dir: /app command: sh -c "bun install & bun run dev --host" ports: - - "3000:5173" + - '3000:5173' env_file: .env develop: watch: diff --git a/drizzle.config.ts b/drizzle.config.ts index beab48b..fc368b0 100755 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -2,12 +2,11 @@ import { defineConfig } from 'drizzle-kit'; export default defineConfig({ dialect: 'postgresql', - schema: './src/lib/db/schema.ts', + schema: './src/lib/server/db/schema.ts', out: './drizzle', verbose: true, strict: true, dbCredentials: { url: process.env.DB_URL - }, - schemaFilter: 'personal_website' + } }); diff --git a/eslint.config.js b/eslint.config.js index df77625..a38fd6d 100755 --- a/eslint.config.js +++ b/eslint.config.js @@ -21,17 +21,6 @@ export default [ }, { files: ['**/*.svelte'], - - rules: { - '@typescript-eslint/explicit-function-return-type': [ - 'error', - { - allowExpressions: false, - allowTypedFunctionExpressions: true - } - ] - }, - languageOptions: { parserOptions: { parser: ts.parser @@ -42,15 +31,6 @@ export default [ files: ['**/*.ts'], languageOptions: { globals: globals.node - }, - rules: { - '@typescript-eslint/explicit-function-return-type': [ - 'error', - { - allowExpressions: false, - allowTypedFunctionExpressions: true - } - ] } }, { diff --git a/package-lock.json b/package-lock.json index 123d942..eb81508 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4921 +1,8676 @@ { - "name": "web", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "web", - "version": "0.0.1", - "dependencies": { - "@sveltejs/adapter-node": "^5.2.11", - "drizzle-orm": "^0.38.3", - "mode-watcher": "^0.5.0", - "postgres": "^3.4.5" - }, - "devDependencies": { - "@playwright/test": "1.49.1", - "@sveltejs/kit": "^2.15.2", - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@types/eslint": "9.6.1", - "@types/pg": "^8.11.10", - "autoprefixer": "^10.4.20", - "bits-ui": "^0.22.0", - "clsx": "^2.1.1", - "cmdk-sv": "^0.0.18", - "drizzle-kit": "^0.30.1", - "eslint": "9.17.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-svelte": "^2.46.1", - "globals": "15.14.0", - "lucide-svelte": "^0.473.0", - "postcss": "^8.4.49", - "prettier": "3.4.2", - "prettier-plugin-svelte": "3.3.2", - "svelte": "^5.16.5", - "svelte-check": "4.1.1", - "tailwind-merge": "^2.6.0", - "tailwind-variants": "^0.3.1", - "tailwindcss": "^3.4.17", - "typescript": "5.7.2", - "typescript-eslint": "8.19.1", - "vite": "^6.0.7", - "vitest": "2.1.8" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@drizzle-team/brocli": { - "version": "0.10.2", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@esbuild-kit/core-utils": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.18.20", - "source-map-support": "^0.5.21" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { - "version": "0.18.20", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/core-utils/node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild-kit/esm-loader": { - "version": "2.6.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@esbuild-kit/core-utils": "^3.3.2", - "get-tsconfig": "^4.7.0" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.5", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.9.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.17.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.5", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "dev": true, - "license": "MIT" - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@internationalized/date": { - "version": "3.7.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@melt-ui/svelte": { - "version": "0.76.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.3.1", - "@floating-ui/dom": "^1.4.5", - "@internationalized/date": "^3.5.0", - "dequal": "^2.0.3", - "focus-trap": "^7.5.2", - "nanoid": "^5.0.4" - }, - "peerDependencies": { - "svelte": ">=3 <5" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@playwright/test": { - "version": "1.49.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.49.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.25", - "license": "MIT" - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.2", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0 || 14 >= 14.17" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/@rollup/plugin-commonjs/node_modules/is-reference": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@rollup/plugin-json": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.0", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.30.1", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.30.1", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@sveltejs/adapter-node": { - "version": "5.2.11", - "license": "MIT", - "dependencies": { - "@rollup/plugin-commonjs": "^28.0.1", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.0", - "rollup": "^4.9.5" - }, - "peerDependencies": { - "@sveltejs/kit": "^2.4.0" - } - }, - "node_modules/@sveltejs/kit": { - "version": "2.15.2", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^0.6.0", - "devalue": "^5.1.0", - "esm-env": "^1.2.1", - "import-meta-resolve": "^4.1.0", - "kleur": "^4.1.5", - "magic-string": "^0.30.5", - "mrmime": "^2.0.0", - "sade": "^1.8.1", - "set-cookie-parser": "^2.6.0", - "sirv": "^3.0.0", - "tiny-glob": "^0.2.9" - }, - "bin": { - "svelte-kit": "svelte-kit.js" - }, - "engines": { - "node": ">=18.13" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0", - "svelte": "^4.0.0 || ^5.0.0-next.0", - "vite": "^5.0.3 || ^6.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "5.0.3", - "license": "MIT", - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", - "debug": "^4.4.0", - "deepmerge": "^4.3.1", - "kleur": "^4.1.5", - "magic-string": "^0.30.15", - "vitefu": "^1.0.4" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "svelte": "^5.0.0", - "vite": "^6.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "debug": "^4.3.7" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "svelte": "^5.0.0", - "vite": "^6.0.0" - } - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "license": "MIT" - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.5", - "devOptional": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/pg": { - "version": "8.11.10", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^4.0.1" - } - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/type-utils": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.19.1", - "@typescript-eslint/utils": "8.19.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/visitor-keys": "8.19.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.19.1", - "@typescript-eslint/types": "8.19.1", - "@typescript-eslint/typescript-estree": "8.19.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.19.1", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitest/expect": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.8", - "@vitest/utils": "2.1.8", - "chai": "^5.1.2", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "2.1.8", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.12" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^5.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "2.1.8", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.8", - "magic-string": "^0.30.12", - "pathe": "^1.1.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^3.0.2" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.1.8", - "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-typescript": { - "version": "1.4.13", - "license": "MIT", - "peerDependencies": { - "acorn": ">=8.9.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.2", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bits-ui": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@internationalized/date": "^3.5.1", - "@melt-ui/svelte": "0.76.2", - "nanoid": "^5.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/huntabyte" - }, - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.3", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cac": { - "version": "6.7.14", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001690", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/chai/node_modules/loupe": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cmdk-sv": { - "version": "0.0.18", - "dev": true, - "dependencies": { - "bits-ui": "^0.21.12", - "nanoid": "^5.0.7" - }, - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.1" - } - }, - "node_modules/cmdk-sv/node_modules/bits-ui": { - "version": "0.21.16", - "dev": true, - "license": "MIT", - "dependencies": { - "@internationalized/date": "^3.5.1", - "@melt-ui/svelte": "0.76.2", - "nanoid": "^5.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/huntabyte" - }, - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.118" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.6.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/devalue": { - "version": "5.1.1", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/drizzle-kit": { - "version": "0.30.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@drizzle-team/brocli": "^0.10.2", - "@esbuild-kit/esm-loader": "^2.5.5", - "esbuild": "^0.19.7", - "esbuild-register": "^3.5.0" - }, - "bin": { - "drizzle-kit": "bin.cjs" - } - }, - "node_modules/drizzle-orm": { - "version": "0.38.3", - "license": "Apache-2.0", - "peerDependencies": { - "@aws-sdk/client-rds-data": ">=3", - "@cloudflare/workers-types": ">=4", - "@electric-sql/pglite": ">=0.2.0", - "@libsql/client": ">=0.10.0", - "@libsql/client-wasm": ">=0.10.0", - "@neondatabase/serverless": ">=0.10.0", - "@op-engineering/op-sqlite": ">=2", - "@opentelemetry/api": "^1.4.1", - "@planetscale/database": ">=1", - "@prisma/client": "*", - "@tidbcloud/serverless": "*", - "@types/better-sqlite3": "*", - "@types/pg": "*", - "@types/react": ">=18", - "@types/sql.js": "*", - "@vercel/postgres": ">=0.8.0", - "@xata.io/client": "*", - "better-sqlite3": ">=7", - "bun-types": "*", - "expo-sqlite": ">=14.0.0", - "knex": "*", - "kysely": "*", - "mysql2": ">=2", - "pg": ">=8", - "postgres": ">=3", - "react": ">=18", - "sql.js": ">=1", - "sqlite3": ">=5" - }, - "peerDependenciesMeta": { - "@aws-sdk/client-rds-data": { - "optional": true - }, - "@cloudflare/workers-types": { - "optional": true - }, - "@electric-sql/pglite": { - "optional": true - }, - "@libsql/client": { - "optional": true - }, - "@libsql/client-wasm": { - "optional": true - }, - "@neondatabase/serverless": { - "optional": true - }, - "@op-engineering/op-sqlite": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@prisma/client": { - "optional": true - }, - "@tidbcloud/serverless": { - "optional": true - }, - "@types/better-sqlite3": { - "optional": true - }, - "@types/pg": { - "optional": true - }, - "@types/react": { - "optional": true - }, - "@types/sql.js": { - "optional": true - }, - "@vercel/postgres": { - "optional": true - }, - "@xata.io/client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "bun-types": { - "optional": true - }, - "expo-sqlite": { - "optional": true - }, - "knex": { - "optional": true - }, - "kysely": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "postgres": { - "optional": true - }, - "prisma": { - "optional": true - }, - "react": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - } - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.78", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.19.12", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, - "node_modules/esbuild-register/node_modules/debug": { - "version": "4.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.17.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.17.0", - "@eslint/plugin-kit": "^0.2.3", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-svelte": { - "version": "2.46.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@jridgewell/sourcemap-codec": "^1.4.15", - "eslint-compat-utils": "^0.5.1", - "esutils": "^2.0.3", - "known-css-properties": "^0.35.0", - "postcss": "^8.4.38", - "postcss-load-config": "^3.1.4", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.1.0", - "semver": "^7.6.2", - "svelte-eslint-parser": "^0.43.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "svelte": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/@types/estree": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/esm-env": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/espree": { - "version": "10.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "8.14.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrap": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect-type": { - "version": "1.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.17.1", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fdir": { - "version": "6.3.0", - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/focus-trap": { - "version": "7.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "tabbable": "^6.2.0" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/globals": { - "version": "15.14.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalyzer": { - "version": "0.1.0", - "license": "MIT" - }, - "node_modules/globrex": { - "version": "0.1.2", - "license": "MIT" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-meta-resolve": { - "version": "4.1.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-reference": { - "version": "3.0.3", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.6" - } - }, - "node_modules/is-reference/node_modules/@types/estree": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "devOptional": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/known-css-properties": { - "version": "0.35.0", - "dev": true, - "license": "MIT" - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-character": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/loupe": { - "version": "3.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "license": "ISC" - }, - "node_modules/lucide-svelte": { - "version": "0.473.0", - "dev": true, - "license": "ISC", - "peerDependencies": { - "svelte": "^3 || ^4 || ^5.0.0-next.42" - } - }, - "node_modules/magic-string": { - "version": "0.30.17", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mode-watcher": { - "version": "0.5.0", - "license": "MIT", - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.1" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mrmime": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "5.0.9", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^18 || >=20" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "devOptional": true, - "license": "MIT" - }, - "node_modules/optionator": { - "version": "0.9.4", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/pathval": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "devOptional": true, - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-numeric": { - "version": "1.0.2", - "devOptional": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/pg-protocol": { - "version": "1.7.0", - "devOptional": true, - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "4.0.2", - "devOptional": true, - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.1.0", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/playwright": { - "version": "1.49.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.49.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.49.1", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.9", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-scss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.4.29" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/postgres": { - "version": "3.4.5", - "license": "Unlicense", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/porsager" - } - }, - "node_modules/postgres-array": { - "version": "3.0.2", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-bytea": { - "version": "3.0.0", - "devOptional": true, - "license": "MIT", - "dependencies": { - "obuf": "~1.1.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postgres-date": { - "version": "2.1.0", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-interval": { - "version": "3.0.0", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/postgres-range": { - "version": "1.1.4", - "devOptional": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.4.2", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-svelte": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "prettier": "^3.0.0", - "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/read-cache": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.30.1", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.30.1", - "@rollup/rollup-android-arm64": "4.30.1", - "@rollup/rollup-darwin-arm64": "4.30.1", - "@rollup/rollup-darwin-x64": "4.30.1", - "@rollup/rollup-freebsd-arm64": "4.30.1", - "@rollup/rollup-freebsd-x64": "4.30.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", - "@rollup/rollup-linux-arm-musleabihf": "4.30.1", - "@rollup/rollup-linux-arm64-gnu": "4.30.1", - "@rollup/rollup-linux-arm64-musl": "4.30.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", - "@rollup/rollup-linux-riscv64-gnu": "4.30.1", - "@rollup/rollup-linux-s390x-gnu": "4.30.1", - "@rollup/rollup-linux-x64-gnu": "4.30.1", - "@rollup/rollup-linux-x64-musl": "4.30.1", - "@rollup/rollup-win32-arm64-msvc": "4.30.1", - "@rollup/rollup-win32-ia32-msvc": "4.30.1", - "@rollup/rollup-win32-x64-msvc": "4.30.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup/node_modules/@types/estree": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "license": "MIT", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.0", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sirv": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "3.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svelte": { - "version": "5.16.5", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@jridgewell/sourcemap-codec": "^1.5.0", - "@types/estree": "^1.0.5", - "acorn": "^8.12.1", - "acorn-typescript": "^1.4.13", - "aria-query": "^5.3.1", - "axobject-query": "^4.1.0", - "clsx": "^2.1.1", - "esm-env": "^1.2.1", - "esrap": "^1.3.2", - "is-reference": "^3.0.3", - "locate-character": "^3.0.0", - "magic-string": "^0.30.11", - "zimmerframe": "^1.1.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/svelte-check": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "chokidar": "^4.0.1", - "fdir": "^6.2.0", - "picocolors": "^1.0.0", - "sade": "^1.7.4" - }, - "bin": { - "svelte-check": "bin/svelte-check" - }, - "engines": { - "node": ">= 18.0.0" - }, - "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.0", - "typescript": ">=5.0.0" - } - }, - "node_modules/svelte-eslint-parser": { - "version": "0.43.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "postcss": "^8.4.39", - "postcss-scss": "^4.0.9" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "svelte": { - "optional": true - } - } - }, - "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/svelte-eslint-parser/node_modules/espree": { - "version": "9.6.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/svelte/node_modules/magic-string": { - "version": "0.30.11", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/tabbable": { - "version": "6.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwind-merge": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwind-variants": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "tailwind-merge": "2.5.4" - }, - "engines": { - "node": ">=16.x", - "pnpm": ">=7.x" - }, - "peerDependencies": { - "tailwindcss": "*" - } - }, - "node_modules/tailwind-variants/node_modules/tailwind-merge": { - "version": "2.5.4", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tailwindcss/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.2", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "license": "MIT", - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, - "node_modules/tinybench": { - "version": "2.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/tinypool": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/tinyrainbow": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ts-api-utils": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tslib": { - "version": "2.8.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.7.2", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.19.1", - "@typescript-eslint/parser": "8.19.1", - "@typescript-eslint/utils": "8.19.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "devOptional": true, - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "6.0.7", - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.7", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite-node/node_modules/vite": { - "version": "5.4.11", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node/node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/vite-node/node_modules/vite/node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/vite/node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite-node/node_modules/vite/node_modules/rollup": { - "version": "4.21.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.2", - "@rollup/rollup-android-arm64": "4.21.2", - "@rollup/rollup-darwin-arm64": "4.21.2", - "@rollup/rollup-darwin-x64": "4.21.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", - "@rollup/rollup-linux-arm-musleabihf": "4.21.2", - "@rollup/rollup-linux-arm64-gnu": "4.21.2", - "@rollup/rollup-linux-arm64-musl": "4.21.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", - "@rollup/rollup-linux-riscv64-gnu": "4.21.2", - "@rollup/rollup-linux-s390x-gnu": "4.21.2", - "@rollup/rollup-linux-x64-gnu": "4.21.2", - "@rollup/rollup-linux-x64-musl": "4.21.2", - "@rollup/rollup-win32-arm64-msvc": "4.21.2", - "@rollup/rollup-win32-ia32-msvc": "4.21.2", - "@rollup/rollup-win32-x64-msvc": "4.21.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/vite-node/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/vite-node/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite-node/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.24.2", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/vite/node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vite/node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/vitefu": { - "version": "1.0.5", - "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*" - ], - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "2.1.8", - "@vitest/mocker": "2.1.8", - "@vitest/pretty-format": "^2.1.8", - "@vitest/runner": "2.1.8", - "@vitest/snapshot": "2.1.8", - "@vitest/spy": "2.1.8", - "@vitest/utils": "2.1.8", - "chai": "^5.1.2", - "debug": "^4.3.7", - "expect-type": "^1.1.0", - "magic-string": "^0.30.12", - "pathe": "^1.1.2", - "std-env": "^3.8.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.1", - "tinypool": "^1.0.1", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.8", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.8", - "@vitest/ui": "2.1.8", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/vite": { - "version": "5.4.11", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vitest/node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/vitest/node_modules/vite/node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/vite/node_modules/esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vitest/node_modules/vite/node_modules/rollup": { - "version": "4.21.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.2", - "@rollup/rollup-android-arm64": "4.21.2", - "@rollup/rollup-darwin-arm64": "4.21.2", - "@rollup/rollup-darwin-x64": "4.21.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", - "@rollup/rollup-linux-arm-musleabihf": "4.21.2", - "@rollup/rollup-linux-arm64-gnu": "4.21.2", - "@rollup/rollup-linux-arm64-musl": "4.21.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", - "@rollup/rollup-linux-riscv64-gnu": "4.21.2", - "@rollup/rollup-linux-s390x-gnu": "4.21.2", - "@rollup/rollup-linux-x64-gnu": "4.21.2", - "@rollup/rollup-linux-x64-musl": "4.21.2", - "@rollup/rollup-win32-arm64-msvc": "4.21.2", - "@rollup/rollup-win32-ia32-msvc": "4.21.2", - "@rollup/rollup-win32-x64-msvc": "4.21.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/vitest/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/vitest/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vitest/node_modules/vite/node_modules/rollup/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "devOptional": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zimmerframe": { - "version": "1.1.2", - "license": "MIT" - } - } + "name": "web", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web", + "version": "0.0.1", + "dependencies": { + "@ai-sdk/anthropic": "^4.0.46", + "@aws-sdk/client-s3": "^3.1121.0", + "@aws-sdk/s3-request-presigner": "^3.1121.0", + "@maptiler/sdk": "^4.1.0", + "@sveltejs/adapter-node": "^5.5.7", + "ai": "^7.0.85", + "drizzle-orm": "^1.0.0-rc.4", + "mode-watcher": "^1.1.0", + "postgres": "^3.4.9", + "zod": "^4.5.4" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@iconify-json/simple-icons": "^1.2.94", + "@playwright/test": "^1.62.1", + "@sveltejs/enhanced-img": "^0.11.0", + "@sveltejs/kit": "^2.70.3", + "@sveltejs/vite-plugin-svelte": "^7.3.0", + "@tailwindcss/vite": "^4.3.3", + "@types/eslint": "9.6.1", + "@types/pg": "^8.23.1", + "@typescript/native": "npm:typescript@7", + "better-auth": "^1.7.2", + "bits-ui": "^2.19.0", + "clsx": "^2.1.1", + "cmdk-sv": "^0.0.19", + "drizzle-kit": "^1.0.0-rc.4", + "eslint": "^10.9.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.23.0", + "globals": "^17.11.0", + "lucide-svelte": "^1.0.1", + "prettier": "3.9.6", + "prettier-plugin-svelte": "^4.1.1", + "svelte": "^5.57.0", + "svelte-check": "4.7.6", + "tailwind-merge": "^3.6.0", + "tailwind-variants": "^3.3.1", + "tailwindcss": "^4.3.3", + "typescript": "~6", + "typescript-eslint": "8.68.0", + "unplugin-icons": "^23.0.1", + "vite": "^8.2.2", + "vitest": "^4.1.11" + } + }, + "node_modules/@ai-sdk/anthropic": { + "version": "4.0.46", + "resolved": "https://registry.npmjs.org/@ai-sdk/anthropic/-/anthropic-4.0.46.tgz", + "integrity": "sha512-/q/wWLArkavQHeOYdv8kZyJRTuasTRwrzoAnvUaY0sHx/BGDYDWW9ENn7lu/H5iUeYId6NhtYAVv+TlqHpp9Cg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "4.0.9", + "@ai-sdk/provider-utils": "5.0.34" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/gateway": { + "version": "4.0.69", + "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-4.0.69.tgz", + "integrity": "sha512-W5MMdyqsaziQy/A4kxlK74iEQ+NuO6OaszH32cEQpUgBW0o15S2fAdP0aYSH2/5lrVZSMXLQLCzuMkRGHBua3A==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "4.0.9", + "@ai-sdk/provider-utils": "5.0.34", + "@vercel/oidc": "3.2.0" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/provider": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-4.0.9.tgz", + "integrity": "sha512-XnGXPWiBIfqjsVEud5pOaVneRByJQOu2sYNwlSVJTPCvakdCDkVuYKKfNuStkIpMUYl7JIkBZGBx+B5YfNeVjA==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=22" + } + }, + "node_modules/@ai-sdk/provider-utils": { + "version": "5.0.34", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-5.0.34.tgz", + "integrity": "sha512-tRBdgRcys/4d8wyQdOdyYScq1AxfMdMd0hIlwolxJKVIbBwXUgClZuQT0VIsz4e7pylY8FE6utYCCZ494UAMJQ==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "4.0.9", + "@standard-schema/spec": "^1.1.0", + "@workflow/serde": "4.1.0", + "eventsource-parser": "^3.0.8", + "undici": "^7.28.0" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@aws-sdk/checksums": { + "version": "3.1000.29", + "resolved": "https://registry.npmjs.org/@aws-sdk/checksums/-/checksums-3.1000.29.tgz", + "integrity": "sha512-Dtu0gr4dnATZAPwEYbpCsG+MpLM7OAliy2gTepEFQwl1vZ6DL3QMH2FveMa3HLvPsOdhJsPRB3KtxVhph9T75A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.1121.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1121.0.tgz", + "integrity": "sha512-hBnoqaVBeWdkgXcJElMXA2yUZWkBCBntu2qmN+tfqmzC+j4LzJC3ox8qIgS2WdMS1cb8UwyBogUVrkRXybNm0A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/checksums": "^3.1000.29", + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/credential-provider-node": "^3.972.81", + "@aws-sdk/middleware-sdk-s3": "^3.972.75", + "@aws-sdk/signature-v4-multi-region": "^3.996.46", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/fetch-http-handler": "^5.7.2", + "@smithy/node-http-handler": "^4.11.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.977.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.9.tgz", + "integrity": "sha512-reqPFEQrZxDZpeGj4PFMepBeR5LGYHRqq/L0motTzgFkCRBA4rFdaVXDSLYyGHhxVz7sT2PDnPN9CluGSfgyJA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.5", + "@aws-sdk/xml-builder": "^3.972.40", + "@aws/lambda-invoke-store": "^0.3.0", + "@smithy/core": "^3.33.3", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.17.2", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.70", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.70.tgz", + "integrity": "sha512-H404B7dJl2mCrBqahDEYsanB0xhdDp6tXnXcTUnXmmpy2Q3J0Ho0bUajZ2jr/RdwzCyS59Gi8xXIFwPLGBl6Uw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.972.72", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.72.tgz", + "integrity": "sha512-X98zYOrVOeuosCX+6ktf29FC2N2GHPLia7qv6mzPzTc+RPAuHWCDS++Z6JK7eGYqb/v6uaW7bAXaOvDBfol+0w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/fetch-http-handler": "^5.7.2", + "@smithy/node-http-handler": "^4.11.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.973.15", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.15.tgz", + "integrity": "sha512-Rykg6s5ceBuynMOGWgoowO4N+27JfnqXAnVaSunZl0hOO1XodSrxGNz6sCEbnmS0lAfQZDKyb3fbr46gSuv6Sg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/credential-provider-env": "^3.972.70", + "@aws-sdk/credential-provider-http": "^3.972.72", + "@aws-sdk/credential-provider-login": "^3.972.77", + "@aws-sdk/credential-provider-process": "^3.972.70", + "@aws-sdk/credential-provider-sso": "^3.973.14", + "@aws-sdk/credential-provider-web-identity": "^3.972.76", + "@aws-sdk/nested-clients": "^3.997.44", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/credential-provider-imds": "^4.4.16", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-login": { + "version": "3.972.77", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.77.tgz", + "integrity": "sha512-Jb59xfEISoN5mmbnA+HYqdtrSX3CgCtJoof+V5D8/TgUI56W63GEEd5Y58WijU3Ou6+WEgaLD1feVzaRXV5IDQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/nested-clients": "^3.997.44", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.972.81", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.81.tgz", + "integrity": "sha512-Rml+WitoFvXmv6JZ18U/xGdGDGGvB/mOin0ya0lTnTrdC0Z1lrVxTYh7iNklZBcvcRMrs4DoEf6xy1KWyrLQQw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.70", + "@aws-sdk/credential-provider-http": "^3.972.72", + "@aws-sdk/credential-provider-ini": "^3.973.15", + "@aws-sdk/credential-provider-process": "^3.972.70", + "@aws-sdk/credential-provider-sso": "^3.973.14", + "@aws-sdk/credential-provider-web-identity": "^3.972.76", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/credential-provider-imds": "^4.4.16", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.972.70", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.70.tgz", + "integrity": "sha512-2ry03fGRJr4sV3jI+ocjj5JqALnFD6ymM5KiNCDZMvq8bX2GSbE0vji4aM43TVCl2nXqqLRZaUxdq/KeWRAY4Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.973.14", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.14.tgz", + "integrity": "sha512-jkhg/8ocAAoc0RFyLMhCw+/zZh7gystQgd4F4hznNa8P4Cc501PQmxd+jGLiMHodPJ+7Zv/3znM62gZojyasmA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/nested-clients": "^3.997.44", + "@aws-sdk/token-providers": "3.1116.0", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.972.76", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.76.tgz", + "integrity": "sha512-d3AGyVu759PGr35mEB2s22xxlNEA5rpdxtSPJthfPFJvoQ8dt357iVPECqWfUxXp1toJAvKmbtcIYVGigaGsCA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/nested-clients": "^3.997.44", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.972.75", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.75.tgz", + "integrity": "sha512-wMIsNumRVKaNMKhvU/s9VrdEwE8S6gSzXp4RygFG5BEMnGkkXf8cjh8zf7cKJBpUDpqTWqwbz5isEgp9rH6Lng==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/signature-v4-multi-region": "^3.996.46", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/nested-clients": { + "version": "3.997.44", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.44.tgz", + "integrity": "sha512-NhEgryjlBF9w38ZXqGymQV28IhkYa1mKhlbYnqIis57AYwWGVYfUPgg/qC2rLRqOUfblxx++irvju10kVTa8Vw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/signature-v4-multi-region": "^3.996.46", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/fetch-http-handler": "^5.7.2", + "@smithy/node-http-handler": "^4.11.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/s3-request-presigner": { + "version": "3.1121.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.1121.0.tgz", + "integrity": "sha512-uudb+S0RTbdmBd2ChRCnDbjK1lbZsBwNtFeCnC1lusWUYpZJ12cYzf7E0HhJzhPV4W83RQgxFNDAh2ZNhuGSJw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/signature-v4-multi-region": "^3.996.46", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.46", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.46.tgz", + "integrity": "sha512-L+2xZTye/2T96f3lwCws0Zw6GG2JHZW9e8FpVgGBeeExSKyeoZ6CWRpBml/7DNiK/O26jrgPM9F+Ay8VkgzUWQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.974.5", + "@smithy/signature-v4": "^5.6.12", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.1116.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1116.0.tgz", + "integrity": "sha512-ygIivKqh8aHzNkucOCXHyIBgBpLPfrSI0mCqXF+vLBsPTUKqj0VSqAY0GFPe7lQl4HntjOcQ+KSyS7oUV2C54Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.977.9", + "@aws-sdk/nested-clients": "^3.997.44", + "@aws-sdk/types": "^3.974.5", + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.974.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.5.tgz", + "integrity": "sha512-LkwLL2BLbC6wNNm4JaH9mbEqBMdOZCct6VAYqhdN4U1xrWM+fUJQEfbHwQgDypapOWTRtlk25akb5afM0P8CIQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.972.40", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.40.tgz", + "integrity": "sha512-wlFmCIGUlwF4zx/kncw+bmxTQh1HeSJq4mYV/V5cZUSJadDP3kXvGW8Rn21cimj/7y9ju+47oYWXi97vF7czaA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", + "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@better-auth/core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/core/-/core-1.7.2.tgz", + "integrity": "sha512-j0nM4ygsWbF/fcYRoKtDn8gn8uLXkmC+075HqSqsJEAV828cJR9bvYBCUQ1zmxNyRBk6Iz/qXsA0Zm2oksiOTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.41.1", + "@standard-schema/spec": "^1.1.0", + "zod": "^4.3.6" + }, + "peerDependencies": { + "@better-auth/utils": "0.4.2", + "@better-fetch/fetch": "1.3.1", + "@cloudflare/workers-types": ">=4", + "@opentelemetry/api": "^1.9.0", + "better-call": "1.4.0", + "jose": "^6.1.0", + "kysely": "^0.28.5 || ^0.29.0", + "nanostores": "^1.0.1" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + } + } + }, + "node_modules/@better-auth/drizzle-adapter": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/drizzle-adapter/-/drizzle-adapter-1.7.2.tgz", + "integrity": "sha512-A5wE10PIv3aS5LGePecEHntQylKy6OOF17B4dqlE0DwJeqU/IOBSd7/LZhMop9cNJ3WFjKMpazVSf91yYM/NFg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2", + "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0" + }, + "peerDependenciesMeta": { + "drizzle-orm": { + "optional": true + } + } + }, + "node_modules/@better-auth/kysely-adapter": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/kysely-adapter/-/kysely-adapter-1.7.2.tgz", + "integrity": "sha512-LYdSRLOvZiF+6S0UThu+wE/Qxsq9P2jQs7ZKkY6BIBJqUjYyxVDmi8HFcantBvWWW1/BeQCSsD7YVDG4gICMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2", + "kysely": "^0.28.17 || ^0.29.0" + }, + "peerDependenciesMeta": { + "kysely": { + "optional": true + } + } + }, + "node_modules/@better-auth/memory-adapter": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/memory-adapter/-/memory-adapter-1.7.2.tgz", + "integrity": "sha512-0q1SXMzm5esH9L0xVuM6IxCk59E4G+3HySX4My9gvEwqtmUobykn+iuc/si3Y4xwUO7JODqQ5o+/pPcLDDMIrA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2" + } + }, + "node_modules/@better-auth/mongo-adapter": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/mongo-adapter/-/mongo-adapter-1.7.2.tgz", + "integrity": "sha512-4879SmUWHUs0OYlvHoCFbycZ7i1bqytkcgAUdt9RLQMvZ5H3LRMTgax2YVlGZEXgwNjY/X7xAoXOecWLhlQWeA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2", + "mongodb": "^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "mongodb": { + "optional": true + } + } + }, + "node_modules/@better-auth/prisma-adapter": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/prisma-adapter/-/prisma-adapter-1.7.2.tgz", + "integrity": "sha512-mXTr/83WrNWLrvzIjtgDgdu9iXhOcSG1+qBQOAKlbGSFiOB+z4IMRneQ2wmMOiB8mKY9qGkClVUjKRFXqtHnFQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2", + "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", + "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "@prisma/client": { + "optional": true + }, + "prisma": { + "optional": true + } + } + }, + "node_modules/@better-auth/telemetry": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@better-auth/telemetry/-/telemetry-1.7.2.tgz", + "integrity": "sha512-LcWu+O0zrxYDQj8E36vfkJwGPW4k9ZDA/rCo0zST6ihzL+juR7pBowoZIM9E6tK0Vit52mf6412bGT4XM4eTjQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@better-auth/core": "^1.7.2", + "@better-auth/utils": "0.4.2", + "@better-fetch/fetch": "1.3.1" + } + }, + "node_modules/@better-auth/utils": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@better-auth/utils/-/utils-0.4.2.tgz", + "integrity": "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^2.0.1" + } + }, + "node_modules/@better-fetch/fetch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@better-fetch/fetch/-/fetch-1.3.1.tgz", + "integrity": "sha512-ABkD1WhyfPZprKRQI3bhATjeiFuNWC9PXhfGWqL+sg/gKrM977oFrYkdb4msM3hgUGonr7KlOsOFT5TU2rht9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@drizzle-team/brocli": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.12.0.tgz", + "integrity": "sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.94", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.94.tgz", + "integrity": "sha512-l8UWzVxKaqZd9ABsE/M/9p6NyGkQnmCnOoZyhQmjlXCtY5PuL2rcWxOFk2l9pk7ux3ERMPkTLE4jl6kQpTkwxA==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.4.tgz", + "integrity": "sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "import-meta-resolve": "^4.2.0" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@internationalized/date": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.3.tgz", + "integrity": "sha512-fuLX+3ZKLsxI73y8b01EG/WjHb6gE6weCqlfawPO27kBWGMh9G1yH6Csv1uU7/cac9H2GHmOMt6CjmuQ1aia4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@js-temporal/polyfill": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.5.1.tgz", + "integrity": "sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "jsbi": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.3.tgz", + "integrity": "sha512-0SElaV0uMxEnxzBhhX9WTuPyUeMsAN/SS0i16tjuba4/mio63MG9khjC1a0JAiPGXAwvwm4UfHJURCN7nyudQg==", + "license": "MIT", + "engines": { + "node": ">= 22" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-1.1.0.tgz", + "integrity": "sha512-YGcBz1cg4ATXDCM/71L9xveh4dynfGmcLDqufR+nQQy3fKwsAZsWd/x4621/6uJaeB9mwOHE6hPeDgXz9uViUQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.2.0.tgz", + "integrity": "sha512-LVL4wgI9YAum5V+LNVQO6QgFBPw7/MIIY4XJPNsPDMrjEwcE+JfKk1LuIl8GnF197ejVdC9QdPaxrx5gfgdGXg==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-1.0.0.tgz", + "integrity": "sha512-fqd515fjBmANKGGsQ286E2Wvj/XvDFpGzwJxq4CI6jMQue6Oy04uCKp+JWKF00xRTmk6cEu1jPJ9p3xqH8YWqQ==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-2.0.5.tgz", + "integrity": "sha512-pXj8m7KTsqZt+1jsE0xIpGvqTSbblfkuEJL/NJmNePMtEwxO8V3XMDo9WMSfDeqHvCtBI9Lmt4mGcGR10zecmw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^4.0.2" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/geojson-vt": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@maplibre/geojson-vt/-/geojson-vt-6.1.1.tgz", + "integrity": "sha512-FVMOcmSP/yqol45t7StApEyTL5/vmqBCuFhH9n+fFuINenhaX+YgHHIt1yJ86S8kln3uJLcMvmEU2cfn6E2eCQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.1.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "24.10.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-24.10.0.tgz", + "integrity": "sha512-lichxSiagMEBBrqHF0trtMQH9RKh+9jUlIJl0qW0QHvt2H/tbvUWdE+ZzI2Jd0/pT7j/iavLonlPu7EQ/ixTOw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^1.0.0", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/mlt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@maplibre/mlt/-/mlt-1.2.0.tgz", + "integrity": "sha512-g45M8gEI4sMO3X9ib4K7n3ZKFf0qQOL+NMkHCnEK51lOrYFHiEssOuZncx1+miIgi1IEE2NcbRMcq8RBkL+QHA==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0" + } + }, + "node_modules/@maplibre/vt-pbf": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@maplibre/vt-pbf/-/vt-pbf-4.3.2.tgz", + "integrity": "sha512-j6p0AdjvAR19Z3XaCysle7A4ZSo08tYOzxD0Y9NQylwPAkwJJeYub5b2eVucdeDh7erhv69DahoLOevDRERRUw==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "^1.1.0", + "@types/geojson": "^7946.0.16", + "pbf": "^5.1.0" + } + }, + "node_modules/@maplibre/vt-pbf/node_modules/pbf": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-5.1.2.tgz", + "integrity": "sha512-mnvGdvOrIvJOBGUEdGkrVXjN8E/VkIJCkf2eS1DH2yv82ORUlLttmDt0rWY38yYZmVwciZwBUvHM20qxBZf40w==", + "license": "BSD-3-Clause", + "dependencies": { + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/@maptiler/client": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@maptiler/client/-/client-3.0.2.tgz", + "integrity": "sha512-zSM5kC/CX02kgpRHQxxKOzjaQjNBs8hqQueIJqwT9pzB2vsP9FTFHfnVrGCfUwM+s1n2bdGla+2hibPkVUf0fw==", + "license": "BSD-3-Clause", + "dependencies": { + "quick-lru": "^7.0.0" + } + }, + "node_modules/@maptiler/sdk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@maptiler/sdk/-/sdk-4.1.0.tgz", + "integrity": "sha512-CPOxt0EUwE4iQTN721wZdFqBGyywHRwkSjN0WEzTt8fUIhRD+VzwtN1veGNVxK08vWkn12fhLbc4wJlt8pVHvA==", + "license": "BSD-3-Clause", + "dependencies": { + "@maplibre/maplibre-gl-style-spec": "^24.7.0", + "@maptiler/client": "^3.0.2", + "eslint-plugin-compat": "^6.1.0", + "events": "^3.3.0", + "gl-matrix": "^3.4.4", + "js-base64": "^3.7.7", + "maplibre-gl": "5.24", + "uuid": "^14.0.0" + } + }, + "node_modules/@mdn/browser-compat-data": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-6.1.5.tgz", + "integrity": "sha512-PzdZZzRhcXvKB0begee28n5lvwAcinGKYuLZOVxHAZm+n7y01ddEGfdS1ZXRuVcV+ndG6mSEAE8vgudom5UjYg==", + "license": "CC0-1.0" + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@noble/ciphers": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.4.0.tgz", + "integrity": "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz", + "integrity": "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", + "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@playwright/test": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", + "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.62.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.6.tgz", + "integrity": "sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.6.tgz", + "integrity": "sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.6.tgz", + "integrity": "sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.6.tgz", + "integrity": "sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.6.tgz", + "integrity": "sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.6.tgz", + "integrity": "sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.6.tgz", + "integrity": "sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.6.tgz", + "integrity": "sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.6.tgz", + "integrity": "sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.6.tgz", + "integrity": "sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.6.tgz", + "integrity": "sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.6.tgz", + "integrity": "sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.6.tgz", + "integrity": "sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.6.tgz", + "integrity": "sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.6.tgz", + "integrity": "sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.3.tgz", + "integrity": "sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.1.tgz", + "integrity": "sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.1.tgz", + "integrity": "sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.1.tgz", + "integrity": "sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.1.tgz", + "integrity": "sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.1.tgz", + "integrity": "sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.1.tgz", + "integrity": "sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.1.tgz", + "integrity": "sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.1.tgz", + "integrity": "sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.1.tgz", + "integrity": "sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.1.tgz", + "integrity": "sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.1.tgz", + "integrity": "sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.1.tgz", + "integrity": "sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.1.tgz", + "integrity": "sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.1.tgz", + "integrity": "sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.1.tgz", + "integrity": "sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.1.tgz", + "integrity": "sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.1.tgz", + "integrity": "sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.1.tgz", + "integrity": "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.1.tgz", + "integrity": "sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.1.tgz", + "integrity": "sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.1.tgz", + "integrity": "sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.1.tgz", + "integrity": "sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.1.tgz", + "integrity": "sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.1.tgz", + "integrity": "sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.1.tgz", + "integrity": "sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@smithy/core": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.33.3.tgz", + "integrity": "sha512-CsOeKq/9kA3y6VJHt+/+VTCtBaxJ4OTFpgrjIUhPpDIKxBci1k2bJaQASF2h/ELWrulGp+t97DZ0mevfAD8idg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.5.2.tgz", + "integrity": "sha512-A9uSdn72ozbRUSit0eib0TW7nXuNPlaeM0zcGkJ+nE6tFcSDbnmtwoxbTCFBukVQcszDAyvsd7+rTduPTXpygg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.7.2.tgz", + "integrity": "sha512-nZyWTmSpJEXl6VtWVMBJve/7x12DZu6sIX1z1a+ZMaHlQQRs9Zpu6NbTe/gmxYXVRpkjxyDYpZ5gx2IM6f/Wkw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.2", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.11.3.tgz", + "integrity": "sha512-2jY1tSpERfPfWqyBV2pH+iGFaghVsIJszJNsT7hxtQYhVJpWDyc0LqOWI+nXOxOAHaEfZ4PXXtp1wW1TGpHhkA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.7.3.tgz", + "integrity": "sha512-7ImGm+FkHRLcBaRttIAMZ6bzJZWb2cJGoYjq46F2UjycujWzrL9GEN9h4w7eQyXJYnltrUhxbbieBAIRrdqpow==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/core": "^3.33.3", + "@smithy/types": "^4.17.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.17.2.tgz", + "integrity": "sha512-FOKpVZob9MPTn2znRzGrnsMHv7BOsKVw3XiP/cOyYLDVZ9qKp4nifIiSCuUU/fIj5Vu0UOAxCFr+qRAtG0NUkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.13.tgz", + "integrity": "sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-node": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.5.7.tgz", + "integrity": "sha512-uOfc9eVlI3A37RRSaKcgrheBYPrfJwC9VMqDp8x/O6tlKdcLLvHThSWD0KNIbjQ/d+7bwLGx3vx6aowAcRfd2g==", + "license": "MIT", + "dependencies": { + "@rollup/plugin-commonjs": "^29.0.0", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-replace": "^6.0.3", + "rollup": "^4.59.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/enhanced-img": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@sveltejs/enhanced-img/-/enhanced-img-0.11.0.tgz", + "integrity": "sha512-TN7VzGoqwFqvA4Faj1brUPHLtcEkyFa08nrn9bfm98yVrzr0g4bOZHjlBoPYHHX+sZNGE+cxznhTVgarECPQsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.5", + "sharp": "^0.34.1", + "svelte-parse-markup": "^0.1.5", + "vite-imagetools": "^9.0.3", + "zimmerframe": "^1.1.2" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0 || ^7.0.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || >=7.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.70.3", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.70.3.tgz", + "integrity": "sha512-UDvEYuZqAMbfB/oXIoqKvbKcb7YczK5zYrzmsGV1zRJk03jntwp8dXiYoIJotxAndsKvcPFtx9H1GRSKFdSHgg==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.9", + "@types/cookie": "^0.6.0", + "acorn": "^8.16.0", + "cookie": "^0.6.0", + "devalue": "^5.8.1", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "set-cookie-parser": "^3.0.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": "^5.3.3 || ^6.0.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@sveltejs/load-config": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@sveltejs/load-config/-/load-config-0.2.3.tgz", + "integrity": "sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.3.0.tgz", + "integrity": "sha512-QbRoJyD92e9R0ufeQIWRHrCC0ObcqSv/aBDdrQMoU+sypav3cDx5wytdQ6GLdXjEMO6xjrXGzfkUygng8JMv0A==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "magic-string": "^1.0.0", + "obug": "^2.1.0", + "vitefu": "^1.1.2" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.46.4", + "vite": "^8.0.0-beta.7 || ^8.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", + "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz", + "integrity": "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/pg": { + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.23.1.tgz", + "integrity": "sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.68.0.tgz", + "integrity": "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/type-utils": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.68.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.7.tgz", + "integrity": "sha512-dML0wP6oak21rsNYCJpJB6O1BJIEwNpGrTw0URPfAk4hm0e3pRfCtzkfB6olBcXcVlU2rouCyz7lCyRB0OMVCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.68.0.tgz", + "integrity": "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.68.0.tgz", + "integrity": "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.68.0", + "@typescript-eslint/types": "^8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.68.0.tgz", + "integrity": "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz", + "integrity": "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.68.0.tgz", + "integrity": "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.68.0.tgz", + "integrity": "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.68.0.tgz", + "integrity": "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.68.0", + "@typescript-eslint/tsconfig-utils": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.68.0.tgz", + "integrity": "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.68.0.tgz", + "integrity": "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript/native": { + "name": "typescript", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc" + }, + "engines": { + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" + } + }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@vercel/oidc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vercel/oidc/-/oidc-3.2.0.tgz", + "integrity": "sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20" + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", + "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz", + "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.11", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/mocker/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz", + "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz", + "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.11", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz", + "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.11", + "@vitest/utils": "4.1.11", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz", + "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz", + "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.11", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@workflow/serde": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@workflow/serde/-/serde-4.1.0.tgz", + "integrity": "sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ==", + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ai": { + "version": "7.0.85", + "resolved": "https://registry.npmjs.org/ai/-/ai-7.0.85.tgz", + "integrity": "sha512-HVtPz0qLbTUad+QBnWWReIUmwk+U4PcRENMx+9PsHGVoinoc5CLDiVjNR+VBXTKOSaNgce8kSU/Rtbb4kjZsSw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/gateway": "4.0.69", + "@ai-sdk/provider": "4.0.9", + "@ai-sdk/provider-utils": "5.0.34" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/aria-query": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", + "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-metadata-inferer": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.1.tgz", + "integrity": "sha512-ht3Dm6Zr7SXv6t1Ra6gFo0+kLDglHGrEbYihTkcycrbHw7WCcuhBzPlJYHEsIpycaUwzsJHje+vUcxXUX4ztTA==", + "license": "MIT", + "dependencies": { + "@mdn/browser-compat-data": "^5.6.19" + } + }, + "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": { + "version": "5.7.6", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.7.6.tgz", + "integrity": "sha512-7xdrMX0Wk7grrTZQwAoy1GkvPMFoizStUoL+VmtUkAxegbCCec+3FKwOM6yc/uGU5+BEczQHXAlWiqvM8JeENg==", + "license": "CC0-1.0" + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz", + "integrity": "sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/better-auth": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/better-auth/-/better-auth-1.7.2.tgz", + "integrity": "sha512-gKapKBEvYIGcMxi74RjQ7EbFLiqyQt58vdoJmL1qAlWSkY1Bc2Vqshl524/3u1NxauiOU03M/Ebh762Brmac9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@better-auth/core": "1.7.2", + "@better-auth/drizzle-adapter": "1.7.2", + "@better-auth/kysely-adapter": "1.7.2", + "@better-auth/memory-adapter": "1.7.2", + "@better-auth/mongo-adapter": "1.7.2", + "@better-auth/prisma-adapter": "1.7.2", + "@better-auth/telemetry": "1.7.2", + "@better-auth/utils": "0.4.2", + "@better-fetch/fetch": "1.3.1", + "@noble/ciphers": "^2.2.0", + "@noble/hashes": "^2.2.0", + "better-call": "1.4.0", + "defu": "^6.1.4", + "jose": "^6.2.3", + "kysely": "^0.28.17 || ^0.29.0", + "nanostores": "^1.3.0", + "zod": "^4.3.6" + }, + "peerDependencies": { + "@lynx-js/react": "*", + "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", + "@sveltejs/kit": "^2.0.0", + "@tanstack/react-start": "^1.0.0", + "@tanstack/solid-start": "^1.0.0", + "better-sqlite3": "^12.0.0", + "drizzle-kit": ">=0.31.4 || >=1.0.0-beta.1", + "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0", + "mongodb": "^6.0.0 || ^7.0.0", + "mysql2": "^3.0.0", + "next": "^14.0.0 || ^15.0.0 || ^16.0.0", + "pg": "^8.0.0", + "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0", + "solid-js": "^1.0.0", + "svelte": "^4.0.0 || ^5.0.0", + "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", + "vue": "^3.0.0" + }, + "peerDependenciesMeta": { + "@lynx-js/react": { + "optional": true + }, + "@prisma/client": { + "optional": true + }, + "@sveltejs/kit": { + "optional": true + }, + "@tanstack/react-start": { + "optional": true + }, + "@tanstack/solid-start": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-kit": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "next": { + "optional": true + }, + "pg": { + "optional": true + }, + "prisma": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "solid-js": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vitest": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/better-call": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/better-call/-/better-call-1.4.0.tgz", + "integrity": "sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@better-auth/utils": "^0.5.0", + "@better-fetch/fetch": "^1.3.1", + "rou3": "^0.9.1", + "set-cookie-parser": "^3.1.2" + }, + "peerDependencies": { + "zod": "^4.0.0" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/better-call/node_modules/@better-auth/utils": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@better-auth/utils/-/utils-0.5.0.tgz", + "integrity": "sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^2.0.1" + } + }, + "node_modules/bits-ui": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-2.19.0.tgz", + "integrity": "sha512-dHDm5Jw2NZJgLRvHAwPeuR4BnZij+AqTIq33OqVfo+qiMXontoC/yIvGT5TZaviv7OuBdJ2QUy2JPQ2yKBvF6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.1", + "@floating-ui/dom": "^1.7.1", + "esm-env": "^1.1.2", + "runed": "^0.35.1", + "svelte-toolbelt": "^0.10.6", + "tabbable": "^6.2.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "@internationalized/date": "^3.8.1", + "svelte": "^5.33.0" + } + }, + "node_modules/bowser": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", + "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/browserslist": { + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk-sv": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/cmdk-sv/-/cmdk-sv-0.0.19.tgz", + "integrity": "sha512-Vm6+/up5nQbwGmNw0uYFbXTrbpF460/FhMohTskzzszMtIR/u/78haucSmJWjjp9bW0wxpHXZWa6fk+Lj1tKnA==", + "dev": true, + "dependencies": { + "bits-ui": "^0.21.12", + "nanoid": "^5.0.7" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/cmdk-sv/node_modules/bits-ui": { + "version": "0.21.16", + "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.16.tgz", + "integrity": "sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@internationalized/date": "^3.5.1", + "@melt-ui/svelte": "0.76.2", + "nanoid": "^5.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/huntabyte" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.118" + } + }, + "node_modules/cmdk-sv/node_modules/bits-ui/node_modules/@melt-ui/svelte": { + "version": "0.76.2", + "resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.76.2.tgz", + "integrity": "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.3.1", + "@floating-ui/dom": "^1.4.5", + "@internationalized/date": "^3.5.0", + "dequal": "^2.0.3", + "focus-trap": "^7.5.2", + "nanoid": "^5.0.4" + }, + "peerDependencies": { + "svelte": ">=3 <5" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.2.tgz", + "integrity": "sha512-po4PAY5c53tw5XMocSnf8A/5OHhbbUftpr93aEN6BBoAdntUmK7vu7wOATqvt7cXO7m1Cl4gMVn6p7n6n4mj0w==", + "license": "MIT" + }, + "node_modules/drizzle-kit": { + "version": "1.0.0-rc.5-ab785fc", + "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-1.0.0-rc.5-ab785fc.tgz", + "integrity": "sha512-TSg7sK1finOxdo48O9mDfyMY3lhi/aHCVIil5TFhthyq/H/89H/3nwX5V9Gdp7HYMUGFHyWJD5iowSn98l0elw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@drizzle-team/brocli": "^0.12.0", + "@js-temporal/polyfill": "^0.5.1", + "esbuild": "^0.25.10", + "get-tsconfig": "^4.13.6", + "jiti": "^2.6.1" + }, + "bin": { + "drizzle-kit": "bin.cjs" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/drizzle-kit/node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/drizzle-orm": { + "version": "1.0.0-rc.5-ab785fc", + "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-1.0.0-rc.5-ab785fc.tgz", + "integrity": "sha512-28PVt0PS/+4kPa8eKr4mqP8y/YcbdOgdVcGUa6LGl2Kd2bykNWuf/WUOFoSCoynagblbcRgMO1zChLvRcWD6Tg==", + "license": "Apache-2.0", + "peerDependencies": { + "@aws-sdk/client-rds-data": ">=3", + "@cloudflare/workers-types": ">=4", + "@effect/sql-d1": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-libsql": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-mysql2": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-pg": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-pglite": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-sqlite-bun": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-sqlite-do": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-sqlite-node": ">=4.0.0-beta.105 || >=4.0.0", + "@effect/sql-sqlite-wasm": ">=4.0.0-beta.105 || >=4.0.0", + "@electric-sql/pglite": ">=0.2.0", + "@libsql/client": ">=0.10.0", + "@libsql/client-wasm": ">=0.10.0", + "@neondatabase/serverless": ">=0.10.0", + "@op-engineering/op-sqlite": ">=17", + "@opentelemetry/api": "^1.4.1", + "@planetscale/database": ">=1.13", + "@sinclair/typebox": ">=0.34.8", + "@sqlitecloud/drivers": ">=1.0.653", + "@tidbcloud/serverless": "*", + "@tursodatabase/database": ">=0.7.1", + "@tursodatabase/database-common": ">=0.7.1", + "@tursodatabase/database-wasm": ">=0.7.1", + "@tursodatabase/serverless": ">=1.4.0", + "@tursodatabase/sync": ">=0.7.1", + "@types/better-sqlite3": "*", + "@types/mssql": "^9.1.4", + "@types/pg": "*", + "@types/sql.js": "*", + "@upstash/redis": ">=1.34.7", + "@vercel/postgres": ">=0.8.0", + "@xata.io/client": "*", + "arktype": ">=2.0.0", + "better-sqlite3": ">=9.3.0", + "bun-types": "*", + "effect": ">=4.0.0-beta.105 || >=4.0.0", + "expo-sqlite": ">=14.0.0", + "minipg": ">=0.2.0", + "mssql": "^11.0.1", + "mysql2": ">=2", + "pg": ">=8", + "postgres": ">=3", + "sql.js": ">=1", + "sqlite3": ">=5", + "typebox": ">=1.2.0", + "valibot": ">=1.0.0-beta.7", + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-rds-data": { + "optional": true + }, + "@cloudflare/workers-types": { + "optional": true + }, + "@effect/sql-d1": { + "optional": true + }, + "@effect/sql-libsql": { + "optional": true + }, + "@effect/sql-mysql2": { + "optional": true + }, + "@effect/sql-pg": { + "optional": true + }, + "@effect/sql-pglite": { + "optional": true + }, + "@effect/sql-sqlite-bun": { + "optional": true + }, + "@effect/sql-sqlite-do": { + "optional": true + }, + "@effect/sql-sqlite-node": { + "optional": true + }, + "@effect/sql-sqlite-wasm": { + "optional": true + }, + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@libsql/client-wasm": { + "optional": true + }, + "@neondatabase/serverless": { + "optional": true + }, + "@op-engineering/op-sqlite": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@sinclair/typebox": { + "optional": true + }, + "@sqlitecloud/drivers": { + "optional": true + }, + "@tidbcloud/serverless": { + "optional": true + }, + "@tursodatabase/database": { + "optional": true + }, + "@tursodatabase/database-common": { + "optional": true + }, + "@tursodatabase/database-wasm": { + "optional": true + }, + "@tursodatabase/serverless": { + "optional": true + }, + "@tursodatabase/sync": { + "optional": true + }, + "@types/better-sqlite3": { + "optional": true + }, + "@types/mssql": { + "optional": true + }, + "@types/pg": { + "optional": true + }, + "@types/sql.js": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/postgres": { + "optional": true + }, + "@xata.io/client": { + "optional": true + }, + "arktype": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "bun-types": { + "optional": true + }, + "effect": { + "optional": true + }, + "expo-sqlite": { + "optional": true + }, + "minipg": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "postgres": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "typebox": { + "optional": true + }, + "valibot": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/earcut": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.2.3.tgz", + "integrity": "sha512-vnS4AVwp1KHAF13i1vp1/2D5evWy3k5u/iW/B81QVsUZtV8cv2tU0b2VNFlqvh4kYwrFMDdjPCfAmfyJW9y14Q==", + "license": "ISC" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.416", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.416.tgz", + "integrity": "sha512-K6bvB2BjnNrugtIih6ewlbBI9DXa976jIdiIlRLHhBoEI9a4JaQjjHyF+A1IQI543aQYR4LnmOrT/K5fZj0aPA==", + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.1.tgz", + "integrity": "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==", + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-compat": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.2.1.tgz", + "integrity": "sha512-gLKqUH+lQcCL+HzsROUjBDvakc5Zaga51Y4ZAkPCXc41pzKBfyluqTr2j8zOx8QQQb7zyglu1LVoL5aSNWf2SQ==", + "license": "MIT", + "dependencies": { + "@mdn/browser-compat-data": "^6.1.1", + "ast-metadata-inferer": "^0.8.1", + "browserslist": "^4.25.2", + "find-up": "^5.0.0", + "globals": "^15.7.0", + "lodash.memoize": "^4.1.2", + "semver": "^7.6.2" + }, + "engines": { + "node": ">=18.x" + }, + "peerDependencies": { + "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-plugin-compat/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.23.0.tgz", + "integrity": "sha512-n9jRklDqy0+W834568a4ZIZTK7DHXxvvHHxxGP8nNq7N//pOZMubttskHOquyGgfTR4Z05q2NdGNlsTpIEA48w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.6.1", + "@jridgewell/sourcemap-codec": "^1.5.0", + "esutils": "^2.0.3", + "globals": "^16.0.0", + "known-css-properties": "^0.37.0", + "postcss": "^8.4.49", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^7.0.0", + "semver": "^7.6.3", + "svelte-eslint-parser": "^1.7.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "license": "MIT" + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrap": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.3.6.tgz", + "integrity": "sha512-yc0OC12UjPqLoc+fe+v5GNs4TOjAigUw3sTikfC+xeBPGUw7gDRz3DtYaqEhxyMVJojcSWJw7jT0QWR+CbuE/A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "peerDependencies": { + "@typescript-eslint/types": "^8.2.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/types": { + "optional": true + } + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/exsolve": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.1.tgz", + "integrity": "sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "license": "ISC" + }, + "node_modules/focus-trap": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", + "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tabbable": "^6.4.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.3.tgz", + "integrity": "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", + "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "license": "MIT" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/imagetools-core": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/imagetools-core/-/imagetools-core-9.1.0.tgz", + "integrity": "sha512-xQjs+2vrxLnAjCq+omuNkd5UQTld9/bP8+YT0LyYTlKfuSQtgUBvqhUwGugzSAh6sCdN+LnROMuLswn5hZ9Fhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jose": { + "version": "6.2.10", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.10.tgz", + "integrity": "sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-base64": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.9.3.tgz", + "integrity": "sha512-uwYQp+VJ38FVvtim6qNbit6e9uT6dwWQ4Y1+H9TxhW5hcHjpHwoxlR0nMpqUmIFOmu4VqMxwdJA88gIVuZJQ/g==", + "license": "BSD-3-Clause" + }, + "node_modules/jsbi": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.2.tgz", + "integrity": "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, + "node_modules/kdbush": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.1.0.tgz", + "integrity": "sha512-e9vurzrXJQrFX6ckpHP3bvj5l+9CnYzkxDNnNQ1h2QTqdWsUAJgXiKdGNcOa1EY85dU8KbQ+z/FdQdB7P+9yfQ==", + "license": "ISC" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kysely": { + "version": "0.29.5", + "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.29.5.tgz", + "integrity": "sha512-ooa+eSbBNPTo3MycPEuW5jdrxQdQwdtB3LC3h43FiXQbIry5tR0C5lDG7eealK0E4D7XjrnOP5DIUg/LyjRMYQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/local-pkg": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.2.1.tgz", + "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lucide-svelte": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-1.0.1.tgz", + "integrity": "sha512-WvzZgk0pqzgda+AErLvgWxHkfg/+GgUwqKMRHvzt0IqyMdmyEDzDCk3Z+Wo/3y753oIgx8u9Q4eUbWkghFa8Jg==", + "deprecated": "Package deprecated. Please use @lucide/svelte instead.", + "dev": true, + "license": "ISC", + "peerDependencies": { + "svelte": "^3 || ^4 || ^5.0.0-next.42" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/maplibre-gl": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.24.0.tgz", + "integrity": "sha512-ALyFxgtd5R+65UqZ/++lOqwWcC0SNho9c27fYSyLmG7AfnAul2o46F05aDJGPbFU57wos9dgcIySHs0Xe6ia3A==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^1.1.0", + "@mapbox/tiny-sdf": "^2.1.0", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^2.0.4", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/geojson-vt": "^6.1.0", + "@maplibre/maplibre-gl-style-spec": "^24.8.1", + "@maplibre/mlt": "^1.1.8", + "@maplibre/vt-pbf": "^4.3.0", + "@types/geojson": "^7946.0.16", + "earcut": "^3.0.2", + "gl-matrix": "^3.4.4", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^4.0.1", + "potpack": "^2.1.0", + "quickselect": "^3.0.0", + "tinyqueue": "^3.0.0" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/maplibre-gl/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mode-watcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-1.1.0.tgz", + "integrity": "sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g==", + "license": "MIT", + "dependencies": { + "runed": "^0.25.0", + "svelte-toolbelt": "^0.7.1" + }, + "peerDependencies": { + "svelte": "^5.27.0" + } + }, + "node_modules/mode-watcher/node_modules/runed": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.25.0.tgz", + "integrity": "sha512-7+ma4AG9FT2sWQEA0Egf6mb7PBT2vHyuHail1ie8ropfSjvZGtEAx8YTmUjv/APCsdRRxEVvArNjALk9zFSOrg==", + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/mode-watcher/node_modules/svelte-toolbelt": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.7.1.tgz", + "integrity": "sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==", + "funding": [ + "https://github.com/sponsors/huntabyte" + ], + "dependencies": { + "clsx": "^2.1.1", + "runed": "^0.23.2", + "style-to-object": "^1.0.8" + }, + "engines": { + "node": ">=18", + "pnpm": ">=8.7.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/mode-watcher/node_modules/svelte-toolbelt/node_modules/runed": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.23.4.tgz", + "integrity": "sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==", + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "dependencies": { + "esm-env": "^1.0.0" + }, + "peerDependencies": { + "svelte": "^5.7.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "5.1.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.16.tgz", + "integrity": "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/nanostores": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-1.5.2.tgz", + "integrity": "sha512-B0UbxzK1s0CN8Xht6r+7iT5+xV8PTaRERR1nATeplRv1Rw5YLWfVAid0hkqY3EceqpG4RjTk8GAwIxQY39Rnwg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "^20.0.0 || >=22.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.54", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.54.tgz", + "integrity": "sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pbf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-4.0.2.tgz", + "integrity": "sha512-J0ajxARhZfpUEebxYs1vhMGMuLSXtBe1e+fFPDrf2uA2hgo+UshKfNUWOz92HJNz6/NFEXseQPddnHkTreWRqg==", + "license": "BSD-3-Clause", + "dependencies": { + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.16.0.tgz", + "integrity": "sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/playwright": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.62.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz", + "integrity": "sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/postgres": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.9.tgz", + "integrity": "sha512-GD3qdB0x1z9xgFI6cdRD6xu2Sp2WCOEoe3mtnyB5Ee0XrrL5Pe+e4CCnJrRMnL1zYtRDZmQQVbvOttLnKDLnaw==", + "license": "Unlicense", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/porsager" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/potpack": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", + "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", + "license": "ISC" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-4.1.1.tgz", + "integrity": "sha512-wXvbXMjSvb4C9ENWTHXyd+ihakKCsJ6rJhLP6/8HFNj4GkZr48jqL9PoKsl2sk7SyCZRTnJ7O2TTowUpOxP/KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^5.0.0" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", + "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz", + "integrity": "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/rolldown": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.6.tgz", + "integrity": "sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.147.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.6", + "@rolldown/binding-android-arm64": "1.2.6", + "@rolldown/binding-darwin-arm64": "1.2.6", + "@rolldown/binding-darwin-x64": "1.2.6", + "@rolldown/binding-freebsd-x64": "1.2.6", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.6", + "@rolldown/binding-linux-arm64-gnu": "1.2.6", + "@rolldown/binding-linux-arm64-musl": "1.2.6", + "@rolldown/binding-linux-ppc64-gnu": "1.2.6", + "@rolldown/binding-linux-s390x-gnu": "1.2.6", + "@rolldown/binding-linux-x64-gnu": "1.2.6", + "@rolldown/binding-linux-x64-musl": "1.2.6", + "@rolldown/binding-openharmony-arm64": "1.2.6", + "@rolldown/binding-win32-arm64-msvc": "1.2.6", + "@rolldown/binding-win32-x64-msvc": "1.2.6" + } + }, + "node_modules/rollup": { + "version": "4.63.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.1.tgz", + "integrity": "sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.63.1", + "@rollup/rollup-android-arm64": "4.63.1", + "@rollup/rollup-darwin-arm64": "4.63.1", + "@rollup/rollup-darwin-x64": "4.63.1", + "@rollup/rollup-freebsd-arm64": "4.63.1", + "@rollup/rollup-freebsd-x64": "4.63.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.63.1", + "@rollup/rollup-linux-arm-musleabihf": "4.63.1", + "@rollup/rollup-linux-arm64-gnu": "4.63.1", + "@rollup/rollup-linux-arm64-musl": "4.63.1", + "@rollup/rollup-linux-loong64-gnu": "4.63.1", + "@rollup/rollup-linux-loong64-musl": "4.63.1", + "@rollup/rollup-linux-ppc64-gnu": "4.63.1", + "@rollup/rollup-linux-ppc64-musl": "4.63.1", + "@rollup/rollup-linux-riscv64-gnu": "4.63.1", + "@rollup/rollup-linux-riscv64-musl": "4.63.1", + "@rollup/rollup-linux-s390x-gnu": "4.63.1", + "@rollup/rollup-linux-x64-gnu": "4.63.1", + "@rollup/rollup-linux-x64-musl": "4.63.1", + "@rollup/rollup-openbsd-x64": "4.63.1", + "@rollup/rollup-openharmony-arm64": "4.63.1", + "@rollup/rollup-win32-arm64-msvc": "4.63.1", + "@rollup/rollup-win32-ia32-msvc": "4.63.1", + "@rollup/rollup-win32-x64-gnu": "4.63.1", + "@rollup/rollup-win32-x64-msvc": "4.63.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rou3": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.9.2.tgz", + "integrity": "sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/runed": { + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/runed/-/runed-0.35.1.tgz", + "integrity": "sha512-2F4Q/FZzbeJTFdIS/PuOoPRSm92sA2LhzTnv6FXhCoENb3huf5+fDuNOg1LNvGOouy3u/225qxmuJvcV3IZK5Q==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte", + "https://github.com/sponsors/tglide" + ], + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "esm-env": "^1.0.0", + "lz-string": "^1.5.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.21.0", + "svelte": "^5.7.0" + }, + "peerDependenciesMeta": { + "@sveltejs/kit": { + "optional": true + } + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.2.tgz", + "integrity": "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw==", + "license": "MIT" + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "dev": true, + "license": "MIT" + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "5.57.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.57.0.tgz", + "integrity": "sha512-NdbDn7fl4be1ViUG0oq/lvG6OZy3oENolV2ONjiqqsfVoeAfzaQAKUcEX3MrQod/Bebv1PgwET9rfXhgn9s4Kg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.10", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.8.1", + "esm-env": "^1.2.1", + "esrap": "^2.2.12", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.7.6.tgz", + "integrity": "sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "@sveltejs/load-config": "^0.2.3", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.8.1.tgz", + "integrity": "sha512-5zgKBqAf6V8Jyrmr1jViksyG4NKT8NheYwkdxRaMRDAqpGWi9wR8ktcGrAZbfMn/PHUp1BWzAp0cYQECkWuAMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.0", + "postcss": "^8.4.49", + "postcss-scss": "^4.0.9", + "postcss-selector-parser": "^7.0.0", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0", + "pnpm": "10.34.5" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-parse-markup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/svelte-parse-markup/-/svelte-parse-markup-0.1.5.tgz", + "integrity": "sha512-T6mqZrySltPCDwfKXWQ6zehipVLk4GWfH1zCMGgRtLlOIFPuw58ZxVYxVvotMJgJaurKi1i14viB2GIRKXeJTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://bjornlu.com/sponsor" + }, + "peerDependencies": { + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" + } + }, + "node_modules/svelte-toolbelt": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.10.6.tgz", + "integrity": "sha512-YWuX+RE+CnWYx09yseAe4ZVMM7e7GRFZM6OYWpBKOb++s+SQ8RBIMMe+Bs/CznBMc0QPLjr+vDBxTAkozXsFXQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/huntabyte" + ], + "dependencies": { + "clsx": "^2.1.1", + "runed": "^0.35.1", + "style-to-object": "^1.0.8" + }, + "engines": { + "node": ">=18", + "pnpm": ">=8.7.0" + }, + "peerDependencies": { + "svelte": "^5.30.2" + } + }, + "node_modules/svelte/node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/tabbable": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", + "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-3.3.1.tgz", + "integrity": "sha512-4pAvwUtM4HKBiRZftncAbpn6V9Hhwoa5Fl7O2u5zbp7Z5Cvu+/o/6+176WY3WCEES209543quG8zFIcXCsc5Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwind-merge": ">=3.0.0", + "tailwindcss": "*" + }, + "peerDependenciesMeta": { + "tailwind-merge": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, + "node_modules/tinyrainbow": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.23.13", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.13.tgz", + "integrity": "sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "esbuild": "~0.28.0" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.68.0.tgz", + "integrity": "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.68.0", + "@typescript-eslint/parser": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-icons": { + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-23.0.1.tgz", + "integrity": "sha512-rv0XEJepajKzDLvRUWASM8K+8+/CCfZn2jtogXqg6RIp7kpatRc/aFrVJn8ANQA09e++lPEEv9yX8cC9enc+QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/utils": "^3.1.0", + "local-pkg": "^1.1.2", + "obug": "^2.1.1", + "unplugin": "^2.3.11" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@svgr/core": ">=7.0.0", + "@svgx/core": "^1.0.1", + "@vue/compiler-sfc": "^3.0.2", + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@svgr/core": { + "optional": true + }, + "@svgx/core": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "svelte": { + "optional": true + } + } + }, + "node_modules/update-browserslist-db": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz", + "integrity": "sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz", + "integrity": "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-imagetools": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vite-imagetools/-/vite-imagetools-9.0.3.tgz", + "integrity": "sha512-FwjApRNZyN+RucPW9Z9kf0dyzyi3r3zlDfrTnzHXNaYpmT3pZ5w//d6QkApy1iypbDm+3fq+Gwfv+PYA4j4uYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.5", + "imagetools-core": "^9.1.0", + "sharp": "^0.34.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz", + "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.11", + "@vitest/mocker": "4.1.11", + "@vitest/pretty-format": "4.1.11", + "@vitest/runner": "4.1.11", + "@vitest/snapshot": "4.1.11", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.11", + "@vitest/browser-preview": "4.1.11", + "@vitest/browser-webdriverio": "4.1.11", + "@vitest/coverage-istanbul": "4.1.11", + "@vitest/coverage-v8": "4.1.11", + "@vitest/ui": "4.1.11", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "license": "MIT" + }, + "node_modules/zod": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz", + "integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } } diff --git a/package.json b/package.json index fc8962b..162aa99 100755 --- a/package.json +++ b/package.json @@ -1,56 +1,71 @@ { - "name": "web", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "test": "npm run test:integration && npm run test:unit", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --check . && eslint .", - "format": "prettier --write .", - "test:integration": "playwright test", - "test:unit": "vitest", - "generate": "drizzle-kit generate", - "migrate": "drizzle-kit migrate", - "studio": "drizzle-kit studio", - "seed": "bun src/lib/db/seed.ts" - }, - "devDependencies": { - "@playwright/test": "1.49.1", - "@sveltejs/kit": "^2.15.2", - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@tailwindcss/vite": "^4.0.0", - "@types/eslint": "9.6.1", - "@types/pg": "^8.11.10", - "bits-ui": "^1.4.7", - "clsx": "^2.1.1", - "cmdk-sv": "^0.0.18", - "drizzle-kit": "^0.30.1", - "eslint": "9.17.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-svelte": "^2.46.1", - "globals": "15.14.0", - "lucide-svelte": "^0.473.0", - "prettier": "3.4.2", - "prettier-plugin-svelte": "3.3.2", - "svelte": "^5.16.5", - "svelte-check": "4.1.1", - "tailwind-merge": "^2.6.0", - "tailwind-variants": "^0.3.1", - "tailwindcss": "^4.0.0", - "typescript": "5.7.2", - "typescript-eslint": "8.19.1", - "vite": "^6.0.7", - "vitest": "2.1.8" - }, - "type": "module", - "dependencies": { - "@sveltejs/adapter-node": "^5.2.11", - "drizzle-orm": "^0.38.3", - "mode-watcher": "^0.5.0", - "postgres": "^3.4.5" - } + "name": "web", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "test": "npm run test:integration && npm run test:unit", + "check": "svelte-kit sync && svelte-check --tsgo --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsgo --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "test:integration": "playwright test", + "test:unit": "vitest", + "db:push": "drizzle-kit push", + "db:generate": "drizzle-kit generate", + "db:migrate": "drizzle-kit migrate", + "db:studio": "drizzle-kit studio", + "db:seed": "bun scripts/seed.ts", + "db:reset": "bun scripts/reset.ts && drizzle-kit push --force && bun scripts/seed.ts", + "auth:schema": "bunx @better-auth/cli generate --config src/lib/server/auth.ts --output src/lib/server/db/auth.schema.ts --yes" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@iconify-json/simple-icons": "^1.2.94", + "@playwright/test": "^1.62.1", + "@sveltejs/enhanced-img": "^0.11.0", + "@sveltejs/kit": "^2.70.3", + "@sveltejs/vite-plugin-svelte": "^7.3.0", + "@tailwindcss/vite": "^4.3.3", + "@types/eslint": "9.6.1", + "@types/pg": "^8.23.1", + "@typescript/native": "npm:typescript@7", + "better-auth": "^1.7.2", + "bits-ui": "^2.19.0", + "clsx": "^2.1.1", + "cmdk-sv": "^0.0.19", + "drizzle-kit": "^1.0.0-rc.4", + "eslint": "^10.9.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.23.0", + "globals": "^17.11.0", + "lucide-svelte": "^1.0.1", + "prettier": "3.9.6", + "prettier-plugin-svelte": "^4.1.1", + "svelte": "^5.57.0", + "svelte-check": "4.7.6", + "tailwind-merge": "^3.6.0", + "tailwind-variants": "^3.3.1", + "tailwindcss": "^4.3.3", + "typescript": "~6", + "typescript-eslint": "8.68.0", + "unplugin-icons": "^23.0.1", + "vite": "^8.2.2", + "vitest": "^4.1.11" + }, + "type": "module", + "dependencies": { + "@ai-sdk/anthropic": "^4.0.46", + "@aws-sdk/client-s3": "^3.1121.0", + "@aws-sdk/s3-request-presigner": "^3.1121.0", + "@maptiler/sdk": "^4.1.0", + "@sveltejs/adapter-node": "^5.5.7", + "ai": "^7.0.85", + "drizzle-orm": "^1.0.0-rc.4", + "mode-watcher": "^1.1.0", + "postgres": "^3.4.9", + "zod": "^4.5.4" + } } diff --git a/src/app.css b/src/app.css index af36e8e..50b8e5e 100755 --- a/src/app.css +++ b/src/app.css @@ -53,4 +53,3 @@ text-decoration: none; } } - diff --git a/src/app.d.ts b/src/app.d.ts index 743f07b..585bebc 100755 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,3 +1,5 @@ +/// + // See https://kit.svelte.dev/docs/types#app // for information about these interfaces declare global { diff --git a/src/app.html b/src/app.html index 13a7919..4e11c43 100755 --- a/src/app.html +++ b/src/app.html @@ -1,29 +1,29 @@ + + + + - - gtag('config', 'G-7K10F5HJMQ'); - - - - - - - - Stan Runge - - %sveltekit.head% - - - -
%sveltekit.body%
- + + + + + + Stan Runge + + %sveltekit.head% + + +
%sveltekit.body%
+ diff --git a/src/lib/assets/stan.jpg b/src/lib/assets/stan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a0beabf06856b3adfcac8bcb51931ab92a3522c GIT binary patch literal 88824 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
11I@d3rBffhz``Ep*qg9$6`Tw6QRC*S1+ z2xb=|Df!zbFn5YHBPv<)lh_|>*0a@VT`tG2XA;YgC}V+XoTteY^Jc4z#NQ}`Y1JhG zINyhT#8HGLe#8S-i(if#`#9ixb({CF@5om1<>3dm)R@6<1@wT>uA~@k=ygE<3i?MM z4oVM;Oejv`nj?c=9u1c+f6PU1%70Zqh^^7wbWRXJ*Qzn1FAri6G8hlnIQz%3o4p}{ zyK3rOHZ=2-+IBBB8tUq2s@!=-A!-*kL=S?-Sej`(S~aWP2WEzwZ&d!x&^Ub;>~hBa zzTq*_k4x{?*Cgg}vWimNB2Fd3z6xHgs1caG+uGcky)yRZRz_5W{&r2p&euA#P*bWd z3Flag=C%R$j@$@sp^VXzs_QpU6DQ~N_BhEZC-`1D* z9`W1VF@49KQ6ot{tn#>FLIXI2wb$*=$4&``Vi+t^~ zbM7Vn*>2C@^n_?7us%qBxv5EB8u{dJL@V6)Swv^3W03EOe@@`JLBHY||9a??rW&4G zq4aM<%d$G&crH*)>mCQCoi|KJT!T(*7d!j>KFhKuy_l){a9%f}IEsnF2<`WNOLU}o zZ^nOYN!sCx<^20Wz>6zHHT3;QA^25d?y*}O;6QlllIbM2AxN0bl$nr=O5?L8x*Dgtz^8lu(&TEo1lmn7-?tKyavsLU6PFlQD}V1;(X+p zehqpL2%QN3y?JVfHku2E7gwfPJ)_QHK?S=-Y_%O%rg|kPyu2UtHRyEl8YGaPOu0_6 z@bKzgM?etS>$cQm{Y~0nofd(cy1j{!5^^|;QL~h3(TCtd+b9~Bm&S%w(!rrBF+@4N z31I~}Ykm4%{%c#kl8>eO-gif8aLCYg=T_4%66ZbtItU4{K;2vDQ&daH^>9l3bo0mk z`vJ)XvyGb)?xv@$1#Tav$v}-uI#0)>ZIa~7>aEVxO0_H<;_C^ip~;$4K4Z#N+BcuP z2U*#@Mk$(%hP>|)z1#g*^kvy-Nb>!ZK1cOL7X{s?M^ENhdrxL$^Ux&)ND*r#V^OtA zeez{p;jnMZ%pjj8+{es0ena#th2FKD?`I_`xw$kPJ(0ysdXv*361sg0lM5OO#_DsN zw!F{e?>^;ZIUekPluY-447Vv*e>=Km$@RJYPT-hH+N`ibi0ewINXVsG20iv=ZQE|B zSvo52=8m^-sMUSU=ja=1e0vNMDcdb~zB~`}d6OHz!KCLTdirE0L0?W@!X)e-o8pXK zq%GlZ!P3+2racZOZE%D5w~AMnbVX{VKXFCOMt9Cyu0hzgXUD;>+nnZ$QPF1Cpk_;z zxTJik=k#alRNQ@^X##}Uo`J34Y+PlEJJy70o@sNn9?$pXuR&Ieu>{s9yVk#xQ-7PN zQaT)*X4)kFG!B<$aEBgUnqsr^A98*(6)26VLkqdH2H>QqbnS)l1?cp+pCnjo$ar{X z)|vujFcFK6g zJNWZ|6i#n^?!ve9%p>h!)bhSEd{OKTEUo zy_=XHZk4-cWHwjbX&w^sYuTbHGygXFVm2>RjJ~<6I>-m1@FSwRv8AX|QC#>*r{BSX z-uMSj)nSqu4YY__hI zf7PuO{+ZD?Ud&g@d3k(8KKp<9XJ)&kL|1a{E9aFDN6^!S7cQ~pmc&|Z@oIq@&Vcg7HkFIj0 zxFYIUHLd+;Vt%ug?v4T1>F@6qT)lO3+;6&IC-bqUF_9Qe81v#}WoG(SzxA4Im!9#P z?& zd|36_-I@kRgjW>$2y-ka%2fH=e|ep}5y3Ap;KZU$)+uYJ&n-%K!>qpHD{Qgy*tm#y zsg@BN_ZJUbKI9n*uM8?wPZ_|zk!Xx==?*5FIj4i`<%X-;ZpNr zR`0+|iP=TEdVlq$->+B}-+xh0c~^F~lpS%{p6NcTf2P*VMfpRByvs_(vrPj{v?hiM zW(^nYXK$i?IB+p57qNez))w!i`~4cUT<+eQO6LJ8k>Qx|hFdA=g?FsjGNE0#VOW&4Y^KC)iH25{8If-4g=TB2KW&Hg9zF%Q!ckC7 zOv4ptdf&^$&?!N}n$8gWvdjX`3GO-guECaUx*dKtI5byJWJ<6=HV$EaY>HtyTrbjm z^_NjLI+kdjJ~}ydF8TybD%}hsCqYxQ;@}+kY)A^%Pl*v7HL8G?A_fFvoaE^&26p96 z5OIKH!KUg*2(+HIUW1AiaeEh~?>Y~i^{g!}>~5D@tdjB?YnCQng9;T>a~4Xr%uO$a zI=G;rncqu|J-)g}%MU6M2WT;j_}(Z>)1IX=9EQ`8oUx>S-G_Q}oS0sF`;3 zT<0GX6bWi4D=uxz5k9UAoU_MA{(6Hs^9goQC|#Nt=IoLc#msz7A9e~km#$@}+8&O& zaXOC=P?Y}Q#J&^UzLg$8WZdxR^@|&Unhs9yS#zwELi@f*1xnS0fFG4k(t$VXZ|!2U{(A9G*-5sd$HE(LC(M2|xDr1kJuq4D znBdM}b5rrM@Cw8bw*>Qln&0swZvP#5EFdR5zCzV7>sGrWd$p?YJU+*0ZZW9&_H$WA z-`U;TW*)UB3Jp%1x18eM-affDsiuSZws~z~EjPl7Feo-vC*hfBVkyu@-9cTo3eAUn zfwkE?TlJgFk?<2lfOWW>=;_ySM}~*akM1T@my>Fj_0BLyB*?CK9@KOca8$E5`g}+X z+X8Ps&N{3trb$QbAy?9Pg=T1L?oE=$SjtCYpuQ8_?^bE zEn!4|Zt)S+PSMmwfShZ(pYQ=yM9MC@%rmU4S0!LmN-=A^EBGpdk!i{rIwZ*Mq-)38 zCFRw8=&uw^&s+6!EPW=>awpu3dg25HQR)!MM@!_Di*6Io#Q45s`Ff?~5kD*J%GE<^ zlRgEzNW{*)Q+SQb{lpyLd-+j7wtVJ&QP=F+LQgUnb7)dqGV1a3Y2`(EnS_gtsx68MZ(@Ws!IV;& zI{B0H@@!mfuJSXXX|5NvlD6NtReXQx(;x}mJ3r=<#9Nl!uYMkk=brF_u*PXma2RQ2glk}j*RGkNFnFQVo30$zcO_YmZs68@EMh3pny6JCRL{`#Y_7u3xR3`w;6`u*i z$N2Io$ZS_$0oPV-=x?_9@o)Z7pdtRRc37DRz0&^OU%m`%leu`ju)~fTpRl_;EJ#M5 z+1|dgRpgx`y zm4(8ugp3-MEgadq1$}VJAm}>;>p_viO;Lwyng5Z zlIny$6yCsbzguD=SznOjKd*_1b)^W@6kYcfzZGF4+*l@f$0I31ga77Qz`1f~ZsfZI zvmWisp_Hc073AlW_sSd^5ew$TR!S5{oIve$tD9M> zWGLU&dvK&e%3d>khGjIgt~llS8G&_+eY)BV_*>WXHWPZ+a>W#hf5*^E`7@Kg`{uPP z`7k7x;mM~a8uA+QE3Hn8sM+opOrsW2x%Fjw_M-A?jVJdpDN|gVM6i^}u)!kZ!}cOo zE&tE1)8PD+_^l2F$q^4+@fi5IlU}|hci>R`o3}Gi5rRIx%~CUdM|lS028o*DD$(W) z@ax*4FqmD>D3J%tZmwPq#d%kt*Db3vcWW)~@dJ$`jvu5hwbG;K0@gW0R@3cR?BXf! zjddT&TdY<>bhrCC^~^ z%SMHr_uTHvC;#rqX-k?Nd!k;&{HCPKPMKWLVvQ!^FP!+sZK^#6Fa~m^ie+LEFgPK2 zML{)rMxjP!lOU5oaQEdpA;NFpN_9tTaaAUD7Qvi69cX5T+uSq%m0syHO_n=3*&E%h4t7-nlt1Ox_`OEOURs92fG~k;}6CU?oqtbjn}Q z#hu`Una%#l?1lDhzhm)`bVPMzs%^3d<1AWGJx{6m$SUaYn@<#LPd;_%knp;>!e@^R z=|3;3r*L0;UvM|xvL&C-w8%E6%{sTheY z1KIf8J8MY56u8SF7G(p8<%!hBRz(mA`Fq@Bh3~ATFx`kC%Iy7h&yowoaASA?9!pN} z%lgH5!LS!?af5cb&-y#nd4*Zrx?GZ}WwC_VlM?|ADg|>W9)vfASV(SS`1>;QV!>9# zG(bp+*z`FSbXQxty92#_@rokikO&OLP4MR6wPPO&{36G5q7fZ$Djx*!4YUY7d{h0L+=;ePAcju95 z#s4(zyim7iDN~9(v?MA;`{yd)=@wd~zmEQ8hmkM2{`6H*ee)!H}TPUxEMZn^O zU+KNjlkDz3va+9^E=UK_fcD##S>EkQD!XTjp9yMhLihR8zWZ6%XGSr zvvnSwIM>G%H*zfZY*x?E?})v4%Ht%KP&@3i{i|`;gO%*;FaJ)XZ0SbrrypzI7+;fB zFNGbDL;Va)DmirIb>>19Mto!#15#VVuFH?WcN;0#rEAL7__C~h zq+t#fkjFeF*)%p1@^EkGrP1>6!)p+zeaLxCb5d24+)IDbx>Xp}*eF5WQU5%n-Fr*tq4H)n2+uT80Nb(Hp0oc4}@ z9(_A)uzf={d}dm&ngQH+Xx;qd3AcovzcADxaA4N@;+61WT>XTe*Yq)Id!6Vo{Ra`4 z#e=*{lW!g#xqVsblOL;F+(zF#_SYf~8+M4sF}p+hZtK=oh95ug=^8~poA$~jk9^*G z-sQjgqU4ct*sqjLLEEWul^fiJ!f#{n5*NhM_dNY^t1l;l^boA_(k;a$cXyl)E1K3= zzIzo2?0(`IZTmn5pJdHr;@x0m8U3STwQMUTWqich`;*|C!%$yX?qpv^3dei8oz{+9 zYGGBMVq06oq#HYOY6ZTr6jRH~v?PM=DH!^^+j{tMCtf2|=9l=k1pR6Yvr6~tWp(Vy z$BVIdlAnWvx|{udy1V1rl7lWx>lxEWABdv{{fnC)ov2n)G`(A- zS5?^RyYR`|Seo)7K9?;-H&Ni%hxX&Kal!48DdSV$DZfE%y_=UJS-965N%Pm`0Tz=} zi8Yd)9=rJtKAdtHX%i`uQ%6>U0oL}WQuqpAzHAY<%ErQ#a(`Rrh#Ngh?H>i@k}b_B zr+mJ+`P=!JQK7$gR({wYWBF?C_|+?^{Z$BquXXJV*=Osh$;9B1y{LiuDuy&i`eyB2y#&HAT;x>yxdD_=UUb=tTAk(CC5 z;9X9@?t1O&u}pBUMA=tdzwR?@%q!huywYb}P#sB&Ss2QMMRL+M0#CYGMpkMZ1fqoz zE>}X2`Znz%cQvhu<|VWe#Mgcg;S7Zay{2OO&7 z@uWxhBn#jd0|!e=QrCsRH&lBGY({R2q zOu-x@H-cXA(hzMXQ{e%;t_fXSS?PT7+S3&7qPUt^+ZnWwmiVL}SYAV#HnqUjdQ&-3 zjygZZ^^vk6BVC*6buD|GH912-7aX=4B+50owK1`j^VU?oz%{I zrAJnNd>O5Ro;E$Q0A;fQyRtq;xu?$7K8v5MwOp}PaTgChI*ABr0Mj~09h;c!K1+|6 z2^ndLq^Wp&3}W&JG0d>m;EbZ)tC3c=E-}O*taVUn`eAp8j)ku}v=8LVPb+I>j%_e& zrS0<{CDw}91b?VSVe^a0aoFnqGW>VPScP$o)$GbxGO+y}um@bmOb+k)Ddfn%^(Na#Yw9A(VlZdwanZex-2T1Y4`j8VYkzd$e2 z>7{CZFHQr%+TdTJyoyx@HBL1E*tJ_qL)b1el;x20vE4Mb+D8{z#A??At9;W&)y|<7 z1hfYSTsx>xE#F!LS{yH9rG@MW{pcd&ttTOEvfEL6Af<+!H0iP5p+NX?C(8S5f?2Ay z+qgW?QqM+OORu@v0BraBHXN1We}xbLvA(+%q+?Z>lp&(yT^6`7$ypX5c9pb@?Puq! zEh_p`Yq}g*Gy-|5*ll}Fiab9f#A-?y?ta>*8J9PHeK$gNwMGwQ>m?O${gw%aQ;m|P>0n9a;-BfTge^uwb0X0w?cR*mE9X(Z~ z3&c;CdVG;Gjf3z|xIRq~k52n3yZF1mr9Z0jJg;v{f#}HIy!m}CpVN(Us>xJx*!&OV zwBnxApU2ML(FgIGpXp@&@m~J`3&-Si9?W=himsvt3`Pi(9Xv#Q~1+E3YVFSsLZRD5(}37^?N7PxCA!(LCjmk_7driMh@ zTM=32d22J8$CWsN_b!6p7V4Jz;meTzTr_Z;@I^ghx%O9e!aq1e`v2+V+_l-bOSn zCfD*r$a1O@d`yN$wZ`%IA7DS4>saa0J86B?a|6h}N4onG9O32x)O;1^EjBiX5vhNN zQG3~>eo6aXr)}pF@pC1oWI*P8tcBA9$iy_w(|&7D*xNmTW4+9+ke43`Zc(R%@*ls+ zTaTC8)7wjk@zigK#>PtA*@1JPn)l^ zmlF1sh*!0YtEqg=jNO6Y3p<_lx}2GRRkV?fJhuHp=dJKqLoKhai=QWMAta>jaI=nu z6<#3do=84}kyp@e3B-iBSUW7mhYgACaE znew>XZi}KYsB)XFG^MF=zd)#st*BtP?HkEi*xwqnYxch-or`TDn2-cmf)#XD z+LmzUjTdJhrw1)M7fX=fD6wrouoT2nuB8JVP))n>ON`;_XZh={~ zK-mZs(t%EDAWdp52JMtpV#8=XxA3L`J;d>rB3$X|QjSan@g5aM+Pnwz<~kZG>G!s(17Gsbij@XtFb zWHQr7Bby9|cgJ&Lw2bpV#e5$G5K>Ia$fkWj%_K|?%?6+l{{Wu0=%)Nv7WN-zaU&y= z3~LK5lr;Bml14r|k966jTr6^R;FVGAtBHpJ9wUa!d*v*vcp}41z_Q7?r+YZ@2zPeL zBYl8z?(rW9`IL%ez;VVIh*H1kRq{$pGP}An_tD>55OZ`_(+Z=Yr;y0O7Go)Q)rK25 zKHeJ>qUhs{IUAU8ym^k%wVAK3SFytWelN*(>Bh-bcct!Zfx>4$D}#om!N&ZdqnJtuMF_jJ1}z%+GY`;;?n>wY(m-;>VZU zl=qyhPPZ-CXly{gyXdj$)z>*19?*E2ny0!n@R)K&(IGao$nqNeK<1|;<92@@t)#4N zGbpJ3i!5x*Je}@lN^Pr%AZ0i6TzOw@WKvgfeM>YkjeXK2X$~Dh>ZWA8#XIE-adBl>94_7{xuV@9cXin1Ag zkYR3YrMYB>!DGFKp9M1|q#i4ePf}W69Bj+2qK@1ARc=b<4PliM_mP+d<<8K?ivnML zH_>l}VPi>44lMfD2t=*KP0mP*8zV)AZxQhAWu0BCmYa&)9LKj1aJ8Py@M_(xb?4-= ztGUg79V`!YQ^x3}Zm(ng;7+>o*r}fuSWvVQF0jd_DbKRx$?4(o0;;<%r1~gmqO7V9 zI;+6t4JhPQ1^i<$%HewhYj3ictzlgAn=Od(9XZ)(%B4#dXFaCDxkbHERE##91E#*a zA*P-PvW*I@jdp6Wq?>>=3YHo|6y?gRPePgk2G>`JwFYQSjkZ>2_s~$&=HHTwlJf?J zhYxYLhT&7QqF}jq4LRJbsoUB4s%v;v?Kid7*yg3OM&FAl39*rM1q6m_|L)>b-pu{8m}UrVa>Hi->$L$cqV>SR|d z>C`aS42`!%wk~>-*Di@z(wI@1Y;q*?T&4#ClmI}ujfnTP-zl-Oh$42B);1<(idI~Y z6pp?0D$sLQxoHC0u_6jvb$ z0w_}-bP8cNx5)#!z6cX=fb(pC%eO$8$|elCMP5BU?6~9fWBn=pSCP)`;IBnO<>vnY zT{r1ut!r9#6ThKT#r2L)o}7N~<266hzx&JH;`sA99V@cD3k#^Jf;?JBLq=jGxu(YL z11`Q~mD3nTM~mp-j(Ubtzr3f8M~GhS%op&VGi9V_l4lffbu=(iPZeV(mZ5~rPS${6 zu^#o0E8LAQWjEruwygGaq(H*V5so=9fVyL6U^SUwKIhDk+SwnJ%xrL_o zw>@pAC534mb+5|c=*byhnj`j`V|MB+E;Qt=$Cq2Q<&SBnb&IuZH@gxF++mes(j6G) z8h|o@9AYjExzq=2x-TrQNyTPPL4#t0=`l|%jsxieStI}#H^v-amf1-MTM)6iI`YR+ z=)d&O3odl6;wglk>!xGmq+xS&4;vio0_KsRX*L6vi=y++x^iQ~cek0ip^^8qh@|f$ zGRfV`Y=P`9BuST$JKFYK*Dbf{V#kj7o;t6h_jK&0?kU>?vXA9n({m%N8ctxTpT+o{ z2Li;|hzK1X64>ISbRw=wW|w^=?AE=xhFtc!I{quq&bx7od~<{+lCq*|JT9oymyz^y z87zk0^lT)M2;2}BQzuVfOx7=ln2VZP_6yr9g`CG9u{2WU0*p`S{rFKlNsM|8%YOR=rL z#_Bd`_6x)?O6Vi3W1RzJ4wl!<=2++m*P?bb==hZ{2LqXn#9MQ&M>vaf8x=j7S^ofD zd*cUF{VHcs85szZG$r@W8adopgXg;Ixjz>Ru)8hOv8FbKdGH4rKngkr03c6?lpb;t)E7Ts# z@_!aT(x26N9#5yC#WeIhWpK=0M_N*w+C&@t59F=I^-TUgc=7XpjMV=CO(*x4zr^zS z7L|@xPFQ%dP!ib?`mcQ)WwjF;0tM*+Udv>bg9L) zhp{{!SmTg!6*Oh-X>@Oe<;-#WCe7F`Y^$pUjDF0tS-@`*VU7;D4kIBNX_&Z=(PJxe zs=bxv4SVCo@R@@_c9jw4AZwuSFLTjtjb)T^*`L3KJ9!AxjlH%ds5*$I@wQ&P+%lS+EmrmTwt|3bB=Qc~{X(9JH zwbJ_Y*P7+zzT0C(85?T3?T(oaeyX2+LR%;Zf#veiTcr+LlAg6T+9KX+n*RW)l-oIT z)E!SD%h0Vc)G}W2rxl8}!UPS6y1uP9bBO}`^3&j_JGMA(IwuD45XI%Aqmnv$1~)8I zPfuvO;L&C}ZJJy+xz_8?&lh(cUva%O*hNgVl$eClL@e^N(xpB}l*Pz`u@kgzuV62u}> zGz(vt>wm#UFxJ=%Rm9IL85^GB;zL-{Tma{$wq1DLGyLkj;*A@EEuqZU0tnwrEoNJ1 z`Pf@=cAa^7ft*Mg4o@6AA zrP&yE9%>zz$wj(fM;*fMjrxOY=(Fv#YNr}pmnQ2;PPJWF{M!w>t#P|!o)pzC8eBpA z6DuOvVOxwF04CSna^;8oj~rTk09w{r+?(TsGyE5ROFXZ(y<|Gf z6UkSyw-~dg;m;*}a=T@5i)s!XYjs-oSEAx7LFA)xeH|bLO`~-drlCpgmc{%_Ok*7D z6^`N81$Ob*o6C;e#~Z^eZ|1x4$>wE*K$anIg5G51%}pQ+SmzW+Rey_@6t~eus!$C& z^#1@qg0F2WEqYI|IymYZ-I``pJ)-BlnXs@le>u)?FExf-mC-Pl>qXkn3z&PCih62x zn}WzHTTt>vtXu=#lrD}t+v}T?9eiMd-O5`^1*=4q(x=i629yue-tF4t^Vv}fe%Gp= zUl@3c!x{cY)+F0|dMzQk=MlS-w$gYM*i+u2J0-^I(kp6y9?dSajO|H;EUj$wnR4@; z<79{lgxLUj2Y=snXdq%dHx!$&59c>R6o?f#T=cQ`u*~N)ZyUON$_bcnXuyX3CKolY z9v9nAs&q78!LdvOp^>Kl0A}GdDk~`;8MB&4pCu}o&2?IW+Ip%hMB=XkMb(3m5`pWW zOG*WTfM!uZ?-T^RK=lu@{{Z^8{^38G@;tYt#`HrUvg60&tN2lRtx_aYJ70nPmAJmE zpU2NWJwL{3f2NcB%irO7oQs;Rnfnc0anDevIxQnQyy8qAft1veQ`Ejnmy6X#Ta-dZ zpaXqI{FQ3hx3qng@blQo4-g36@Y5t_n&qw|QG4tcHcqS)>V2Q^XCJHLYDWihd`@ZG zXIK@CZYp193U?9RaSjr1pu44LKE4&UEb^{j#ke2QXPTVN9L5)x31TJDxC?62YwLcC zc;(3p454(djyBji?yxR)R)gku3#$)|c^kO<7sLyQWb~!ivCCI)T}c|P+^ppe10$zx zA#+5pm9YmG0^H7UZOeu9*7xYRIlj6ujIkIe`rX*b)dDdR=o} zy5#hufrzg2Bp z?S;CcY19US;!S{PE+pDElE6BXg7HHq&1}QTzeP!c!)r*05jo38;=Gu_0V%v+p z2Wa}+5Z_8LvD-Nl=^AXqIW6!>-}A<>-m)Y{hP zdwvQn4^3L>HGGFn$v4}k%Fq;bWcV3-o!sNeO(N2TnKvZcerXn$+OvW-+eAH1g zXoLpmLvX>j$!Q7PNm$R1%BRh(5 z+|#qWb0GtfY+Gx1yC+!{utd=+maOgNi-D+0GA&vSLoHJ{L}Wu2`iDH2lLTm?&8 z$aV?=qNOZImX9d73KX#B2`+owTF9oBPLA6q>bf@PChBxzX%(eYNHs4uT1sh4RJ4_r zaZQL*+!fWwUUwvO9w(-?!tTbr+~W~bIR{@w)r-!~pj2Cy>!LZOG#~J?wO?fdcU7W( z9L&IivB{?%KHir0bl{iE6W!g?$Qf+kN|(ACfNh|4#wY{Yt;kaf2LhOyQEHSNVu~kWmC*uACM*c(}56Mo& zg(n+SMP^knNYB0n%59bUx}#(j8o?kAJho9pI_ej&+08z@m2@JP^H-1t@=_1H)dRP> z17S^tg&P6Mu$>eDU7~^NA7%smTl(kqUPqJd=y6@W2*)lAa-SWa!;Nybl!-LwUxECT z@qJf6kDi=-@8eY;(@Fj1^c*wR-e)4}vD!2GHm;{VL6+85l}#^rj)x9yJuB&^mGy3E z`cqy8NQlzSAPeqod!GGxdIh#DbFOO>M&Rpl zw_7dan)^<|sC(DP71+Y}<q3DIKWE)e2#Hp2T%>{LHR8D{{Yoyb8RzwV#RzUS5M$Mn{v~Xfs_{A zx@bHSoRV!xu)CL4b`yYlj_@yh8;#`k&!fp=Dmp; z3w&39A0KZ~=5umPcUuZx%_>;<-xR^K0?8t2W4pqA=Dn@v(bakw_&L{)mz|C^ZA-&= zvHD!m%@n^(i!D>YxN~y@mB!X%gP1l0@lH<%JY!rx^l-|u92*H?nU3A0G@iC5{{SW8 z^KsmLSG(io-`rW^6>VwG4V*U0NO#N;Z&l}4rSUb`oX-~TB@I7*Ss!t4x?N%Mx`k4B zQ-@=kcw=?TT>k(OCsI94?dUlu(CJ)V+2j$jSGKPXe|Fn88glVFdIyKOz@D}NS83Cb z#Z1!g7UXTn5UnYs_JN?}74~mQ5VF^~`4rnbckzgy8j321x>hN2(FH*9sxH%D(C zS~HAd@J!O!qMeSt$aK$n5F&ym54*3b z;^ePi$N9Rpei91jj{QnZI4~E{T2rhWFmcQ&wH*^FaGh_-Q*~*I-Wq!-XhZ4lQmqmL z2Fki=EGxKC)U_q8PORud2pbC~w5^26blRFna8v09o}EyETOuJ*IakKA&Z_IC(5~DZ zJdSC^`<2~;%+1en6TR1N5#@3#+AXTzT61XJic_MYklx&tYSOekJOFmKz4Yc4ENhMS z>O4P3B#~Ms$mX=1#ev17`P-tLVl%(-GD-);a>&O=CWN)Xhgj`!c`f8|Whp?bC|E$? zM4V~^anVIuIu-@lPk7jzY6*Md6Bwe4F>4LAB$2M8MU1O;a13q3zM9t{NLnr|dTO6PWg$Xz5@VlrXp0kRouaX#D9tIe-viu2vz*6ywdHs}l>a0CtG-^e@S zqK2^7{X`$Ie>G6djzEbUeZ|K^sw^6$EI^6m>a6g3_YhR`SIEdKaEs>O)vMCyTg5H=W;G9MvVTAtD(xS zsR%B(l;MJ&m*}Q%t~-;IwWphwvZE^!RS z=najob2sF4U9rl?O+aIj(PnIgugDzI3tVmhAf0S(xOqSNb#cwQ%{Q|SIzt^5Ja22- z9?t5hTEt&r_Pm0pczSi*Gy++ARF z)R$cR?7R;nF4gq@Hy>EFFlKRWngAB-xX`aL)tA$>uQo0FP1E3`NI4r`OG{i@_MZ-4 zct4T9MH&_r_?=bAs1fFSLC)4j9zZs`p3okCB&u9iiucAfJKN{`)X0>aHl3sr_t@J& ztgV{}smat>*z-Eu(M*YxOsxkHeG;wmeHJ>s91L?aylA*SD_H0{tt4$19hCNk{2eVs z(qZOy&MX;_2FK#f;SS_B7FcBTrySC!2I7wDTA5u$$(vE$WsX+=041Hyb=#)nH!g}X ztT{MiJKme03x=k{DbvVluw63k$)6M&n(o|IT4IF?UlJmJ9{{Rjj>amI? zlyqxH{)|+GMMQb1t3;+jZc3|Yw=oR^V?>O^fnkUe|7gaW%!&BvPAm)%4Dy z&oaKnRa~mIO021wTNui#D<7im<8ku2-xHnvS9T9GCpp9&sa}o`Gm#9fYnXX?s>JA+ zpKF9Pk%QJA^8A8|nd#s73$!}AT7K%9PU*4|Uv{y@*WSc}Mbu)7PA9|@R5;5~A(id` zIm7^T2Eba|E%9TOFv6vY))WqeS{4u+ii;MXTIf4ho*0_I*pGJ^W^A^3VAvM{du`2E z99q`~ZAND~$L%<~<8{2nj!5-P)T!2#F`WPdRWL}8Wnp7RbWkQS%A?K>cbejQ1c&eP zKu2T>4zdL_phi0X0I5IL{FG4|gndOf^kGyb#Q;}jO}zk=2MZB#y_CUF>@Crr@}1?U zdtXEFQZzU(9kNfUtY$}SB>hlaRPc$mXdEPN_U3}Vmj;>S*@Rnk1vV2S4V>3sd)rGY zg;3ExQ)YwebO?sm2khTC&g+(q&$}P?_6pGzEaFsjo&Y=7?`Q^cJzhLNin^Ot)p1=* z{{WJu4R0q%@DIyWHiGO^5I<%C@pt^HFCN$ZG;R3aB;9+M9q8f@;uS9pKUz9Y)oLNt z@JSxN^iFfX1zW``XDxJY2lk+qqybZySc4qHDYd$ll;QT$@-ZA+hDj^kGe~fGbM!h3 zo7i<-GYv;Q%W3uBW6Cz&SqL-iiCpm|MjP~cU!t;cSQ>tq=aG<`kL2~**W@`X)o0fB zjvfzuaTybF;3~OA_?qps-e+`#5Zrl=^!+aT-WyG;ofYvf~I@f>b&4v>t& zns1kNzZ(qO*gGu4+(>RSPB~rixNY#TE49wW*3bq$(V0V-AD6vuptj=f1Jh-}%4iEAK`v=^|kz%klrEaRuidAVftF~`yt7ul{ARo}@s5H*qsp2nGBc4=7B zLtS&Op-weiv1YjAfaxh@f;wzQD#lDee2fKx3+`WWu;#X7S6D}3&`$Z-++u--CjpvQ zWn|tELzqp4h4PzoMs}g`k73f##A*e8A3IoDa?{S!C9hyw+uv}fwwnEerS_G_8rC=I z@@0;}fz20dZD23H%JVv<#sz1zrZniEPHP8r@aDa_ZE$xUWcew%=x2B<3Yu##>?y z>~}oW1#uoC>1^UGTF@E-X=o}+=9V~?f=IUdi)g80QCjxi+K!4Mw&^~W;DxMGCYfr_Dy2Gnmnu?0(a>_-R-2+9F7B;n# zRbl3um_o_fU2-Z5kJY)oS}*!7qZ(*1O*3xb8jBRAXA#nyF69d06CCZvOxUHAEYz0EI9<9dN8H=vkmpCD~MYy~~N{ z6dHhxdLT*%n&5&b5WDJ6#YF`|{{X3{{)m2xp}7hK5>b$g5D*9u@UH`PG%b*Lg^wf5 zDZ9ARyZaxxJs_b*Z<`B}y#vC&O_LheZb~drHLa&R-C7|9_#HhEE~y>mLyy(cG=X8s^$#BJn*jK!Qq?9oUo}oqEA0p$ zR|H-Nm^QGtiR1Rk^jF1Q)F`Q1-2*`M0a+U;1U3cAq#HsnqN|3g$k62ybL^bZ;y}XePZx8W&HG;t8lxSjhj=1UMf@MqvzFk5I{7;GD&VrGY zwDLz)7(YyuxREYmG+@1lKSec6ezuhOzX;@v$w!F^gGYOj{u1tFUEhM|$=iy~nr;el z7j7=b+V0RhDLp(w>k85_{i0Lgt#dzt<*bpUeQ(m^47W_SI_qV=DrUzzMWdFc;I#3+ zMm9+daTi(dwqnuOFNW)*1}@3N-I?(Grcov^=&Zu%$%I+Y2TR=Pev4bQ`f}`6mN?$_ zM)t_YIDqg7?;1WP*Ya3p{{ZWLH(I3PJ{>GzpNDIE%#9C{C(IiC1>6m-u8Ysj--?fo z@lGF-1N<99T~Ak;w(qk^9$SFxonIqRjqzgNFD`-P!&asu`R0vA!1ANE>?x2W^>S zKA|4Bg1Bqw@;qY`eJBSOMco3|AFwZdFJ-hwobQ38khW$5?(Xd_YXh*Hp?n zF|ln7p`?r3s2U%U#HMBjtNTcG-rcwLNTSpdix5kO9MNYK?tyY0Z3CH}6(xx=LO~p0NpnFSV?i&z< zJ3%f$KmeQG+j3QreYkB27FtMb-AuZxsZh(&1cUjaVpw&;l&+}8ffA70U(~3h&F>nn z2WUP$5H>D>zz`Ec2>e8Tr{GjjF!S{=e?&h;Q5oZO3Ut~crk&Ij1WGGL<877V2OE`; zfsMV*$s;Zt!*D_>?bt7Fl{l3o6!ljAD&vvCtqyg?tXu|T=t)6$O^W>$qD-OHFSuZK z&@lf1w6W01()%r>^v@=5ZAmV1zGu5vxRdWVok>5Eoienm+fJu$UjfVDk`j`ARHRQH zXc7liRKu-z$r?f&LI|=mq6qS{;Da}e@S9)tk(`n@XSYN6AhY3)FcO1LP%_NToOJI! z5No*O6{B=CkwHjco*?g}&E9D_)0V@Xm2EMe+L~TD;eyD!%oefI27xJMU=4ZZ;5^qo zuIysYn}~QkxwpeHMl}1@styAEEY+6Nrem~!;3qaSgtoboXFcm`UzxczuwgA4?7A^i zHYy-F-+zed{{U5b@@Y zUvDrCa z2Tj**KNwnf4($c8Rm)oXDruPV@8YsYXj_k|W344jph^f>7D5u^sD$&iB*EDx$=G zAni8}sEP5zgVWN=-~%R(VsdpkPU>QoGSpL8vDX9#1Aj1nUP~TGw++@$NMRD)ppUu= z@_8feI4}CIU?Fq5lj8`yIh93Nf)zrV5Eak>P!M`8y%8kJ@+ophl0|)bXL2(kRMI;k z&*YjrE2p}JEmqFuc*81&;Ixcty0M#uwk$G?o-c%lUrlvgSmfo)7Amrgi?pu1GH~aL zH7z!_TH4BBv~>Y+unQ~6rjv_xq~Oj9c5d<70k(^mEcW#{yk`C^G8me4V7VldYuv1H z%F6U71k*Q(;c!Wq!bV}K0e11{w~OWY-|tm>~(_OBqV)(ky?K_8>BNAW^bfKZLIh7@?dxq}IaclVn zhEdfsKTpT}D(5u21gmQe^W~|zAF>PiEVR=fX*ljX!Y_(p1|NyXQDPy_K4{6dhbfT$ zOMGiQ+`x65@)Ave_zTmS;2uHP3M;DB8sA75@N;s`iYw*-~Zjx6nRxZc*5=GD2uco(^C^$T9CGRJMFX!yns`nqF96wIRy zXsKqRSDfB1?3)jFV|6zlMlqr_d>&2vj9@mxz(~?_b2`Ym`#O5LhZIRo-%0c~$|L;rvn1%>>c6 zynJ%8!Gv5$>x`n`YW){pF_mB7{iIJ%T`g;Ap?vNy4uV*F$eKwS2<&Z_)0tG{^%vv% z*wcGT)ilZf0EXek?seV#L>qZqCX0&SZt0HUQhQ3sNp#pg7T`s!>Ok9HOZ$o~R?Q+m z+9nf!{2K=s4g~is=cnA=M%6bLZ}i#^;A|Z7{zba~0Klz})iU)q%VT((WtvHu3{>rV zgM={Kx^9EqwY0vvfUTZ8M<3n0?+MO3sL4CEd0e~C9kgNHhtxu-o+@xo4vF4wgKU%W?08XJKjQ3gI zHNR?pJVBCst{)v0dg&eZZNUEk(Ml>iny)K5W!P{!t)@)uVmOBfvx&0b4o4< z>@!NWzgN(L-AxX~gb;%)4lSobZ9b1-!y(ZI!n@58#?MXr8+$ zsg%`8ZzT(D3?d0~BSf}S{(2#%d`sL^G`B`bZ0?snO0_b&?+tOK1sfhJuxe~U#o@wf zWihxk{hMTPu=VD#$aPBF@BbAS+?(;vp%wo=R2irGxZDFQ>+sv*`U#_kN5{^=JIZh1 z_ttj@FVegAw=+RH3b_k%C=k!*%l34>X$O36cq8jqMh+knM=WMj7gS3mBH7x zr$wG^u}b1T#5jJM!dzPur*XbRHXdWmZiLP*R#AGbsO-y!3~zK?K{%C+E)15C0V9C- zGk4A+=gD+N892Ki^0~3(eERCPjKk>w7LqeHt_988Ge+Y4t`?H3S}rc)TrNt8C8eN} zDoDWZ;4=87aCeI;uT@|}4qc|@SaJg%nQALOccd})CaoZH8#lYb@QZURd|9=44`>*S74ua?5p{FR`^dhI zWwpz5eNYC#S)%Hh*1T=KC$tVa47q6=n7Z;4hq#bzG_|zS%Z|<0R?bW99gGW^C}AMj z9Qb>{{_jN=B3-J#{Xy3YUWSZ}*|o#oqe~=B?H5+y=D!c20nIJ{08(=|7PxWQPBYs) z{yA)NZ?NA%pgE2H7FyqIc<;AB!@EYv#xRlL7B|s({J6dU03VY;dt(hY1*iJUm#eDs z-L0rQaK4ro^-s;VJk6c~+FN8AkO}it%Z<^GD@fiZW3&zzD=Uk6p3_@f%~wrjM8xZy zMulrJMPjjRLDo8(ttKpOV=;<(Ca?gT_1osR#~G(5CSK8E;Asfe!K2Y%taDguJ_&)Q z@2I~}2j*_6k~Y#%P|-A7!gSv1COcCs^sqQhE5?DOby1c&PC4vO;dlkIw%%(i7TN_? z3ig|^{{V;hs#v_K^wY_+h(ChQNwsSPJkl(b*p<5{s+$Y>MI5y+%P<)k50fkS(s}tTS9y!aen#%Lk5I1L}h#QNuH{ zb`$0nuvgDZBX?uIMM!n@?r08kNWRw!v`NAncVD87jRn+fXm~JvW$m|AlzB!#d2YC# zfF4K$fFNzVpjGX3PLTMq-&3bVL3Hx?A?w{Y@(N@T>L2E;BLrnZ0k~ZdQ9v3Li5OeH zx-;sp5nWpeIu&@wBZ1deQ65KfK#u<2h!AA_6F~-1%>ts3DOcIR>xA^5W+j^XbXBR8 zz>pBDr0m#L4BZXejTA2S;7^n!(sA-)H+-KE0rz2EkBIxaga zvQg1?4^H>W#^acFNS&mPHf!6I9W3#CZNA}NMD3p9?#vrWBoQ*clC854(IgM>M{)(^ zH#P&+UNf!d1n^Ed0jY-!#c87vy@EjBMNV8baQb64JvP~IBO1W*e+X3J@|t?4 zHIjfFLtY*%Z)-SuEh8$Y60{MR65EWxX>rV7%~~s39A}H^Upx}WhsMYu0j{SqI0=Au zxy`{BZkGfrTj^Q#r#-IVhhOw=5n--cxds0K{_5tn*Q1pEtnl#`e-5}3ZQ!eQgM9A( zt2)vd!aGRe@W--j3Hh@>yOEVf;ilz)g5!Gv74eE?9Lh?DlH$->$6qT+%v!_lf=1+Q zt)?~9_(P4jdKe;YW*JjaQr5UjBPR@NwHZr6<~31bC(?L}i8y*#UfN7Pwi=QNjq*;{ z#?#8+4TnWI#p@G*!X&`iRw<~~xCcf7jIjsaAOD43f%W;Cumrd=e zov9^ncmjr+RyfMg=MTIurpuR;Pfv#={vpBe#_tO=0e=V}{B>ON$EE)O^_7B3F`3MP z#iMf4NCV8-Z;m@x&z8G`O{d7DQBXQymx7rJbIj5z? zoUQCM?CGgl}e|(;lO{ppXqqvbjz+Y|37y_<-us&^z-B*W!s|KrrOca7wk52LSEBHu6^3!*-8T2o zR6*oC*CWw!Y3Lep{MEFs#^>ysHcDw}N@>56X*)#XsQ#@14_6=br~dy+=0vUQxRQj3wGnlUMWP`NF`nYuWx3%n=_S0GDWxE&AxY&As0Ipk8d%#Y0zv`!!dMDINk)o0g9?Ebg76tbA(m%DCm z?ob^Yzz)&vH`C08%bTMW>piCE3$vU925`B|8W`NiZc(mnx?>B)TvY{R#%L*FqHCM{ zga+*%dH@$rEHhT!UbBbjYFNj$?_icT>iF{phxr0*x8rA&xEv~3+vcN$H;DML1 zyYnZ+MfnR0*$smkZfD@1?5+nX+1BKIij^8ZAmfHqR6|qrII_jO5)kH0GiD-8xwIbW-pVS|>rwvzeKcg< z+&6`m+S*@J{{Y6b=-;rZdjQ`+Aire804F!zh!NAf*99J(h%vL*@Iy$n}um<0sU zm%O*{wXP(F=F5KwHX7^|raD&S&hh6JQPmjTM~1Tw?(=30kjdVYvDa+7SanmSEluEV zG@z!8#aD$#Ty9(?bMiaIw!7$l8m5u8o;$}_Ot3mQFjGrVM}~1wT-Kkxmo~QPWYR5U zFgh_TkizL36J(K$GCx5ZUO+M*OQw|mwKScd#Om2-PA5wYQ3qtLloJe@K-0oJ)il|o zhp_l{Z~8-o_k&iONEk<{3YHsSG0Z#Y^2rB(6!{1OSV=Ly;2XC5wNWA}3tTyydU>b`D-g{x^c!`n$b-$n>(Nn@i~?hk%_x z=RLTF9atPP_jIy3(mS2(?u(O?7hjEivAC8UB+~;ZA~Jp7y{|iM(Q{0Fy-fYPb~(X7 z;qQ)}fwy3DfCA(edyB4aG&&D5yslh!_Pl&_^j;Y_a{&XA;kfDSV?7o&RNB@vnAE$4d01r`Y1m1y z_?5mj&y@Cqi$jvZt#QA+=B=eGRls~^$be+AI5od&+Le8|IWX-s$ac4cGNw-UpDdBQ zhdMV49M&Oqap$L(pNs8`z<4F>xp-?qJ{C7|>Z{3~+VOa+2XM8Wm|QrU+p6ZdyQdzS z>@Ny%0_&GNn@kt#)lAuW{tbrW~% zTSpLyj}3ncA1{*RcI=aic`K{2oM_+OLu39L@$A5weGi(h*eO2PM9ZCox0DO1d0~X|f2C4?+X!#&1ExH0>KtaG< zppNF<5wkYcNwj=&n7l_5caiP+Tq;`E80_3BSM)bBaMn50(U-N48JhA1vX+g;tCKqF z!W|yf@)u`*4}+ZuaQZnH2YZ_xehZ#oZPk2l+w@q3A4P5xhta<I%@uvG0wtHI5gJ-WI=2ox0zROxp(bu|;#62BLPmcey|wUJY!! z9BfW4iMKnP7#PR8;egyQbRLV3m+Pw==+E$@IV@M%PQ@68%5Esmr45z*BEzyLWc@jv zQ5zrA8TXLb3dRq#rYmZ`wx;Jotgg{s>W~irju`@!w_*zDJo4qCT+FTO(FA$54)nJix%4E-`yK5>9X624v7;5{4M0CNg2ck zF?7&a#F}?#(MFe-(_h(zb4_J9uxN32_Z+!-Bd^83?CqG(4K$mL!CrN`uc4fK_LD>!tz*j`VF>GKM2DrW|gDKOZ@vW-U8RLd>8Fvm`pfkkFC zE*$cDTyW)lyn@GRv6-)ei&#hvSW-l8cs> z>k=6VI|YU0USlFeICc32jm;f>tm)`gE=^_$(L-ffcD7jP`BrC4J*cIq^%l3Hyk(N5 z<5i?(DRo$zV`+QH4FcY`P}(vzwU4WIXxc~`1JPPnUJVu(g@^`uU9Ux?t>~gBE2em{ zeaOEijg`2j@^E>1YZ}QuTaxajeGK&<1N0P4)$6=6wvD&peQ*3=2QiO zx+0lI>5l|!sN{UPE3qO*AYi!xO5_YSR1K1-8g#1g0-}b?{z{=%UGSM%uB2tLY2-ENu*ubg zTYvhh#IK#$b{^|rFgSagdy{hOAIi%q8f2p5&fX@(q3$K1!{8)`chExUMck|526Xb$#GqRN*^hT6_5w<^;d8!CN=qUN>P zjM0fyqM4QuQI&`_G(z60^CWavRA2z=2CG?`pOjb0gb=jui^ZsRIt5!<%qr5Flv~YZ zPL*LvLb0{gFq%(_lH8R|6D$bNB3l^dtt%udfV7P6m9j1M9Jy3%foUXGAY%MH+J@wD zHUt%09azoAg8{+gg}E947S#1BuAFgHVpvn3HJ$D>Ufhbew)>dP)n6OpAX+eOwu7Se zyly%De9xcHy~xW(_37n3K1VCMdM7HyigWI#VRucUh0|y(IZV4Yaa&6i(wYj)fKNVF zmvjXF3P&r1-Ph(^NllF-27oGy3=Wq(j30T{*JT6H-I-yG?{WiiaI3V(&A&^mU8EOX z5Of3qq@pMidH!gHUl(f?`VZ9v%9nT|9V2Jr(1HVyBsml*MyUgsf(%7?{Yl#^uW`(csnHPdL?{GPiIgcfIRLP;>UOcf7 zPHnJj&cl_8)-ZIbVI!gQ8xiEBL6N8!bh@6LkVkR?5~$E+=K7|>RBRbg78HpQw@p-4 zq&-K38ID%z7}iJfAI%*~&a{!U#w%jOqF?}b(zLRkEuF5J+&2J|an#vXtrNIcwca4Z z;%pE>BUoMDePsjO;$6Rq%(-dh$zhYH6^Zto;vB*M07s0LUo%c0p$D7%8jn?+UpT;a zgW4rtCnIO5r(|wu%W8UOM&5+DHKSFwE_)e?GY#72>$`zyK9>P+7+8^p;$7R>E=EXL z>wzOfm~F^|xLa|t$)}6AN8FP`hd$@+QxB7F-^q6|Vlmq8@Rx?QncQ8Knl-oN2Ot+V ze_KUENmwMH6+`VnlOhE*$OEo{7AOhMKxN1Y$PnZJtsq8Y$w)5qss**`G!3pz1+~fn z7bpf^qJj@l6d!F82O@fp>ht3JgKDx=)1H$we`&+_to)CTzZ)-aX;X~{qWO&S{{Uy% zaAUk>31PaYXQ43^R9YuwbsWsuR@So>><#dRMzSKkidmbLsLqmXRB3!@WU`NqC$eQ= zJe16HcHx)Wu%NPSJXzf zjB+&ifcO_rk($^#8tCP^;_>}Q(dVUJ7zmW$Q#SC#eQV9b~^1m%s+&K2h zRdb=}6xmS}WTK;Ln3K$U(P4st zZ9!kel^J1>^=*O4S>Xalx-B_F&2yIx@~<1tx-OQo>mFmc6^R!o(jiuMH`2tawH;vsd#2 zlF-td3ZAPm$mg>*{+>s0sc}s7*Wq}3V;fkTl6NGPow`<-uE8B4`nKkO-5;N-wmg&L zK8r3E?H+1l+|C?W(`N?@J-$R8eAisVYT2h%!zh`PKYfknqQ!t#8)YzT<{T8x++&Z*`S|5qhnWsa8uq#dAC4y`0@%i z)&~%Fi$_2VQ8l$yO}JzY{!S--=^bklJg%#y@1|D2hH(b>Rke}GA5-FjSGU4!K^@rp zpxWOB7ZghD@b;U=akeHgm6;mR-JhWc-L}(Qrt6<5>BfYexABH>=S5SQzhvRo2ll)+ zaPkFZ@x0YXo7zu`FJlP1cLxk3*5cZ&ajM-ieWiBWiehoc4j|Z?7U4sC5m|)?5Y5Dwm_hPLPQG&=o>CTK>`~803-`> zR_YSe>IK!p3%?Wyx|j?U*i&4a2Yo!$1s9+Is@MsVehNB=2=<5u)2WeFpg|#`GCG#mmOtaapGO$6Ijlx81*-! zt%+NzFRy6zKJW?_m2?G~6Ky0#aaPkCiMgAhO){z)yiYCsm8JeG4^ZQQ+9|lSmrID8 z3d+qjnG7*ip~%>ys2$z4R#fa$@93vYtu*PC1^2#^H0rRWMp_T(y@eCol2#yoHNry8{~h!EIKG@mo(OwJV{C3P|Crf0JvMIU4Avz zZx_tn#l)#!rn~xu?_urpdBnCkTPWtfkA+2w4nXE)MJyCFQ&hu4S}mf1MCjuRDxu?= zn?~0C=OD}A%^;F~3MjZ|nyB4&cR<%V_$b&t%QsoJ;BObS zr{dr7L}*{YkLNG^KjMkfL^u`y0Na7&S%1ecRjATjTp;IYDxwGZ(VzLy(sW&$&AF_n zw_K!u_fTmzpR!tlbgHI2^#mX96xt7e-3?hfO-z5TN9dal4#ulFKAieUe{zk72V)i1 z{{Ug|m;V6uQ?X&e{4t1OvYLSdB_=m8Wsny)H!-IADA?wlLrGmE#ht|6?5^;a3;V?G z;iigvXlU?%XIi$}NnZ=3BT!waJr3&EkX=pK)muf$io>B;-b%EJbHZh$2RLcbWpi&h zfbB(eBv8K2B<2be0`l@>Ml zcWG2I`^URK&e2AtXJu$9SxqRrC1Lb%{p&upDQ)4#AGY7^58k7#TW1FiL-wU;{w$lq)ygL(g zFJ!E64~^Gt@{ly<2-RuFbi&5M9^Ek^uYCzOC&dIueqQc@bllXj&v=6oGB~-!XLF04 zYg*@^002CfE>$sBsZyfmW!Y_xdUx-1vh0d84Ey}3ItsM2oeedvIR8( zX8!;`8{b5ET`K$M}9=F7ku-K3k5QytjOAC6hFKeX)%4}$ z$r_?XI&)emqtfXkDs{0fkU6Pt512t;K|&fVEuyVkW0?FAOILL8=ZWkl-A%8jJuWV_ z;<~PWS=uoay`5oY*?pAruh@TMIULDY3sGs+$tAd(Wu z#^-aj?WOFyG0$!c_~Rzkvy`;ZP(Zen&`@${49dpF*CDfwdJK;r&#X=Izv6;E9NPe* zi7s-e>fM-Oz}THGgVmfTLKz*KxwX8(SXJK~LxP7`oOyiFIvdc@kozjrK_s`n*F#7g zP}AMCgKYuO`KFO#eQfUVkmG!<*!cx+tkH%gF#iB({{Zc$RFvFyfA`P+(sc$nihuXg zeD0k>nZ$J)iRAgGQ6O=3SNr)d$ma&%1zP}%iz;vYv(Hn#&#KPCBr}WZxy<8!N;)+7 zOt{R4bE%vBbXzi=A71D69xl{I}yTb?%^1YPHu-n51V=XmqtAFxH%^gdnY(t!B8IFO?UwQ zi?1GLeHe=W0B0KZd#necYudE`03ssst0e4?7G{|y)1!sI1pVV1ff05$ipp$akp9#E z0L4%57RQIPq;NN}P9s!XoW~PR=}=G zLn3CH_*xnW^}6N%050Wpemz`owQkdkt8-z`G>}ubxu9WhwnwpME z@m~IssHd~@9l525?z5@JBewdg=^vvtiE%h#yWL>7=+C`HrQ=A6_s^B~PKobQ@xC)- zSaOhEZwMUjtJhT9J;T(a-Xm9PeR?fW(q7vvELtSf)_JPweWnVXROs2!P@_n+Zk1jz zw8?tDoV>Xj2IUxR>6Bi`og}fU>YXi3i0p#OwFs31bW*H%Zmgd}^B!O;;>#=PIzA)G z^p5_s5{4+tNR}E%pBq|QF4LM95(ABwRu4CqH!9;EEG~4>Q`S_~Q%>mQl+;GZoac*% z*{owNYn=dIuNE&WJlTe>%{j|zXc#G=GbV!WfffRN@t@L(vEeGJRtG*|Oe)UI8`VBu7W`#Y#AZVZ` zF%+m=P=2kW$bM+0O071_(bHV4&bZ9_}LxC>fAcH_xX z+S3O_rQ%p=+j8J7;^oU#jKbRJxq5kr+GE;f^$avrZgXRCw6iqo;d^BtiuE{nb?xQn zeW3e2$Re(WXJK+;(Zds5Y2$BrL$$GRIu5IB@N11j_Mzj};x&IrZ3A%P2XyLi14~@N zU|s;+*=fatE=uE#T~)?FB?6jC1!h1+$N@y?E{2L?BEr!c8X6EoLqkAOBDw;~3I$|9 zg5@w1oU{?-x&$?-BuC_c&=LYD10}H*KpGGkK%@t{1qG5IH=m+3c7D$|#8JA3HjJ6B zjozfT$L6@Xv3ni{eR6tcCuyO+m%pm;IWhM89`esf(!EwMFQGO~3bcyVHDqqSi%A(P zYOvDl6141zQL4Cf6z@%y#&*0&b%KcTmlj3ze_x}K*i^o~+Cb5c_j;|~w?fH6H zCN&nTs#>gqD5~<2>aUGcDe2BTZ|xeY89Spp%{0-lh=Z)(2m;pUuO;a5M~&n$SPneb z>U<#R0`z0f((JoJ;0{)h9C-kCzo}D>Ol~DzZ*tk9)@czcKn_58kSVS}wsrHr;Deo1 zJ3OyFT!Q{KY3PDZ7ffFx8ajm=9+vFFk>$*|(WN$*r??WF8C#}|ZeqEtZyyX_eF#)( z3wG+w348jWKtP)!m0QIvvm5H$dR-M+R{sF?Z{!ha5arbx87Rt+G9YB24IW5>fwCm) z1=C5{>n4qr5KSQSRE4vV2E=T7Ecy-C4EDD?J{d0dj(67HN|y%Mw$XOCO+CBD*p08c z%EwHbbgJ&lYK0Uyq-}Vlmi{&z-P>EJFBSw}?``C%c+bhstGJFxhHv2*V;kAQt{#^T zzTQhe&0e}(@Wwv+rsj^Z(l8vQ>}{IjH?g+MJh9RxXeOY{4a<*&>Ro&3(KzR|Gs)zh zDTl^Knfx4jFK-QXaog?f{{Uf+Xc39faj$F+ z)9Ep6N?OVw1P%>g(%H*E1=beSkhRBAoy%?+o2CA0D>8*iwUh++o@fd3bSMbP=81

6q);?E$YH2>$>JFBhAQ^&THDc-Ym83xjpRBh#6G3`IB&vFUZBi+w#SnYkff zOKA>TmOEkN9Dbb|FGzOpaA-zyG5-J_OQ#s)&m%Ke28+1c%;*oryd6ue9BYCm1o|llKw|e z$!qwz{{YCyx_&#XY4Fs@5A9|jD=hB<^T^52_+z#T%^5LdtvtZ9hvQ|ATn>ym_Z@2r z#-p8~%sTULHO-e6otSd$-D9oK)nO*9r?%sg_WdA|7@P&nZnw>P98W9Aj%~s67wOZc z;d&1?N2j|Bz~QTgzLrZD%@`4$k8Z8Eo$j#hstd{0ihT16Vu5ym!rEoqz&&Lb|5p=a^;(+7r{9kZOe6SBxUMW>`6ZqPhta+9f>X| zjjMR5U5)i`=7?BS4So&$kvm6oxgy=oH<~C=2npo?jSz8&lA2IFP&mM^G^Mob6na`5 zxK7&mogAm8bIqDJ(Nf*I`0#JIbA#H@A0P#DWpwng;f~AM=WUhPcx*yW`il8wq>wf7 zzBg#*fZ%Q6Ct?)L_UV{RzOntWdnVK3zxbX5VGHEVS%f zx%qfxZ8&d+qojryA{ki5hV8im&L`rzv%7irX?GkN9lh6S@H*XNh4$snJbQ>SuY7^m zxRK*SZJc^9V-I+_s$@0!Kpqorb{F;8X{1q{SNV<58)?^?mU$@%`u>Wo&=$ zne#ur0=}CO{{Un@4nMt4f}2wx`?39_`_oC#0U7@QXa4{ZDI#BnhSrl`H$S5%|lM5 zi~0WmhwfAC)Ej7G>i+=4_bJ^^SR;qU)!%}h)2t`>Iw8&9f}NtsY~k_pbCYMH%?k%I zn>7u-jh$WcRoyiP$`*A$f}PV)4Fr6g?~+rWe;5fIT=AE5-*R~@Z!s=N3qEnRZertSvwd4N)Z>MRg<+i0x+x~FOl(X^! z=9^k$q)DkNj+bcsRF@d8lLDwGS%@7Q{{Tfh)1Nt{>MqVp&D{4mbGa)l^YrD;wpf1) zLk^L)$C=;rSW2cltzH#NV6)5r0K)n?T_?$DhC5d*{{ZVH#yo8WBQr?tc`zM(m#4?U z>E&~CN%6sWv$UFu$7oD(Y#KBqd9Ln0DIPa3HLT2W+goebnO!nz%X76VD2ur*dn>fj zOjPz)W*o-?I$vK!U8D3b=@PfyAP%Zzm45!Vv%&b@t^;8A_5_pBgB41gEk`sAu{ z+bX$8=i`lNKl1Z#e%M{ND&)$G{W_ul0LsbzwNA*`-N#g1sUPuw_^Fv25A^nzl_&gX z_p5Cq{{T;^{{Zr1`)>W|v0uboX&jL{Hd8f(n`Q))@VQg9w9nu$klXH?LeM=$ras*R zvwAlG9uK_lo~mXjuU+uEH4zU ziFEnIM?b+?VX*>9K$3sK5CN!_ZxNpZe`&v(3Du(CCjLkw$r1#$fLRbdkswL}y^uW6 zfowqNK)A{$(Rr5m@mg*)cn=6kFN-c#`Hk039yO0VhQe(Anp(ZiTL+p%2SoSI?Dp5B$gsA0z9 zbwxOA7=UJJ==5tRAZsKb+s5r~z>%XD;4ub&GW|Ze|viJYA))8C=uMI2}d2*4Sj{ z$~>=%_Ctv_NsD0b8f0+}YlWN%y};dicydiS^2HPW?6EDri12*Ymy#*a-A`wA?6zuW z-0T3%enVAD%NLw!C$bDw>L_Xt^$+e(+9&g-o!Mq8H^b_F5jg&d`$O|be`eUA{{Z&- zul^VQH?(bai9@ z0O95T0Fggfeqinys{a7WRe$|7zw#&R56+F8J5&Dvm8l>901qJl0P3UlUSKhS)DQmv z8lZpdNCmo+mcRvRnzs{wM}H=h=s$AORV)Ka{{Xn}kx`Td^eKPcN=H`2_Yc9V8_A`* zoB9-%zjH7D02A-|D^5tS<}ac@{oKD8-TRZgN9GM<$Jlqpt{PdJ`(CSH?ZGF7ed&KpnHl%g`0Es_HjjDH@FkvC!XMwpnsXV*FY4uT1tO z+85GTAbB0+V#5CbX``54KR*-cJWhSxS5p0dF00MTSo$5yioY4dyTCe)lNydZwOP#0 zZiRGh=xlM<1lo3qB)N@-%67{vlW^QPUgc8c=F07V6n6CTSz5x3wNfoKkp*EIEj6}T z*unOb+Hj?9n`0w|nA?r|mFV$tJfA0?NvQMXeRPvJ$uqOL#`Zdf^Z|Q3cxpalK5KF` zFXmR6O&0oFQc!bpqMJ@LHKM@{nRQ6D$*@FJIk6CQ0K3d0lo?YiMSusT`69dYhcxqZ zx1d(u)SH8%#2mx-Pf>Lj_up~JN5*!UqN*%= z964|6d#YtNzimB7+CLB)tR5Hp#gXK8x40UM`Yfgzs@&dVjE#P4YKiRQZ^&QZRC-&f zz+Lx$1s;>swuf((-`PL8S8H`TB6r+(_DXEhJ!QcSAdY(Iw2Ia49tdb36)IDYa)o7g z4$P?l5jR7iclayBTJgv00vp|>h3{(7YB=H*v{nG zhTA|aJeQ^UVHw=0cS{`jWuBcpd6}A(cwR>iw)F7jh^@ig^I#3SubAbsH@vMr3&Zin zsk5Ecczpbk&vUhZL5xWYn0^cu4mF)h>cv_m4A>CCPrwKV*L8$@*7ELygLJV}30kxj#yD7to{s0CykuLH!i|l;{!Rv46Uc z`vE^%b%PjGKkj4xz*G9utOsEbf4PtQ0Y6Hw=3-11pZ&yN*$R8qbujD#oc{o@i~AvI zGgjjbyN9X2+(rG6r@A!}<>9JRy*yvp33)Vih8@CmpZR#du%q;+Sf=A%6Q?w_UDOe> zK@6pYH)l1Zg#9VjGrfu7)YUkBG_u1J+j;(>=DnIqxP-Zw%89{{S8@l8wcB)mAfy(|fFfJl#OiM`(4bU*N{Z9N`2~ z5Pj0#Uo}0HtY2xB8KZ0BreqlpjIp)^dG4O;Ju#d$#&Xlk6wM@LaLfnVZ!zYv<;T~z zZw6N!p4h^%u`FzryFH=9$a4$GbG-FI-E3Z|-c5MN7c>KwF) z(g|g^PiyHeI-(kN*;7?I8){2{$~7j!+ud8MpE~q+39<3e_cC*glGk#$(KO}#CiLT7 zogCFt>2{39#9VKp=j6J296sZzWpCYXzs(;dk7q`XGB*9z{{Untxtcy0KIr)c9oFhN z+By%AQ`qX}9Ai`7RJpokZHAp}3hBq=48Equ-dzTY%<23tn>3Bm;^O{_b+&Ixc6Wpa zNW#J489*PJzr;xD{jXwQN1}bd+Lo{nB0xWa=gzwDd9pcw&-n|FyKhel02e}}pgh*H z1b~1Rpn=3=`9Iok=7L3Yd_?*Fs3W^n2xGY*aiYi+i$O5kblW=%YmM|%uj^RreUke$ z;`q~mq^5gf(=|lRER0{6HUx#PI9$xVJN;j>MhSs2vSW3w#A>Z}(bACkn-uowzDJvzYj;Rw>&wg8+_Nf~hoz=lCOHTo zf?7eia3olbMx(CYt0^^8w{zfL)M;@xML~;YWXu+(uQm>8*hfF!Yqq&7yA1yThT42v zgFnipybr38yo)WRyslRLojiGI946g+8mggm4aii%9!IOi6_rvg6-08P#MuL| z!F!INk3Do+fByg~*Oohc;98tEDQ7h?80VWTakal%OToF!UG_lf&2{**+YIZA;eDA+ zH4RQ8$23Do=Ci~sUQMn;ul8@y?7f+Ny!-VhvWy;Ts+eJmAasGix$Vp{L(hl{^?xF`EisLzbuIKBmth}7=-iI91ptxJjb2m8D54EZ)Db}@BQKCt5 zy2i@9Wld&QXH2}JG;Ea>Fhr?|Hs%9yxNvh^Je&yqR*-UkXZqgn_(FvL0Qj|UEg#L3 zGq(7JWnDn3R4Z}A;a9-gssb(7mAcXvS!3i0J})gd+nVT? z(wlZiSGGvoBxma6Xmfm;M!KpeYU&DI`K;G=H4 z$wNN6uPZ61((vajS~;B7T6XMhg6i^xM5 zJRCgP>Npo@JV+nq(8NF;*((rg% z`sK@$Zz)&evdrg6ERT{$Zs+gt=)K-PDU5U5vqj_nt4o}|fbXr%bLTbe8)`h)mF0Pz zBTNsns_WytzdqK`ucWV@&ywd_LYr2(GsSHr!%=mF#L@QE*-lqWPe%o6&q*}-M^v7Z z9hb5`-}{#R0~EaUPSKCvYHR6u$kyD}lO_8)wmHKlFv+5GYAGcbhGsYrM)rNblaO-; z+O6ev@!hIH`2Gsb$Z`f`mdaqSs-0dauaV_wsS1l7iaVf~*!d4H-lu859ys>I<3FTT z$4ME?DVj5Z{`yUaz+2`Qsp7|<$x7{(A%@{NW)|HfsQxihIqTvV{M{`wL9Ec#78j6Zis-TGyy2hTb8B-vu zBSv22G-1U>DK1kLH5`R$2Oz+k^lW;jF{3MKM6L6490R`s71edgcUjacai@4z+;h^o zAXCC^qUelmMdE%Ej;a|Tlmf>K1I?uEZ;I9_w;1gA9FmG@Fv_PJ2Oj0eYhT?5Y@}HF zl8M`?K~NjNz%1#rkkc6md-lJDzo}6%+ev*hJaO7HVZ2cr$VH2W%{>;_;?Csb6XGs= z$#$fjPg1%unqigM?)mIFKt{blH)$l9K)NTzpm@X z<>P%XkI(7RaQ6b$!(-gWr8TQM-Wirq6{Aa0jY^j`c_?vet@T#Mdva&V>CZUR8_67& zKW5)G>G0vVi{x_paTw(U-19d+tJcP8^W3>^g-u(_$KCxElv+M}?1C+QZc(PLIs^rW zQe+oC@zkJ|Wg<0gUQy;%^eOwq&{Im77Ni(FkV~bi%X=NcA2deFfv9a^PZ?CLc<$EF z2Wewt$f{b;Deb4>{Ak1-;9+splYM?mI_RGh#~n-l=0Es~nG>-;kEZ1mW8hV~n*qla zA90%h05m9=skAIpi|R~ozFS)~igu^r*obL&R93CaMyeUtMC{iD%mcZT_$g97 zh1sqTk$~-XkI7@5Ym9mKwLEjbtf+qBuE^g;=(%#O<1p8%=`Rc1Yxu5^Kgd8F5D3+O zsfP*E^jdBjJB;w$*&(RzWe^zyTP{N~rND-P%t!Z~ZeZxJlHXCZn)>(d9TpA3 zRGr)bjFh*;;bT!d?a%E1PgULH_?cyQTV7mbd8duLdaA9Q$tVV&DQD4~No#|)bNOcT zUuEL>m}56%&E?M9>CS3o1d`AiFPH#tZ|096y_|88%pp3AtcdnQr(7JIxZ&+-5GKXO z!{WYk%l`n;{z~5*Vc06~&3vanm6l&?Ta1YetRLjBFFfT}X##c2a{mB{+I9hjOI0f% zg{AUH?5$|MujcDm1+F;Un(d(CzRmFrJ;9YU?`8ILd{Lk4jT1gA{8r?wrNSn6*j{#C zueD}NcsMp=&7 zlfxxD&Ss15_JeVMOD!?-ul;K|EOi`Xh9i7JvW4bqM_V&SvcON+dv~*WmFsc&80A0x zcj3$Fm2``*8MgB+pieT_QEa^{=8+khQ?w2^$xwSuh8rVDjgI3Criy9bqhXEjB>4?K zX2D+>y33O-JSo{W0{m+j&g+&wNh>EV)CRDztZR?#<;z;>ho`Zx{;fN@C4n zr?os|m(`m(!==TRx7FJxqrIMZbLjYdZg8`wyuNlO&Hn&|uOrFJZq7L)qdjqP{{Z^y zHngZY8Bip(MMWruRYpn#lCF)KkgLQam0;V#23%BBQXW*rOy*ia$~$6krmMnhfwAvh zO5!)PqnYX9S~GQdPN(qn{fc`+0sg z{p!;DQqN2eYa9~!nkplCbkGeAwIFH*)|+H5&p3tkVY%c5@%UWcWDm9Kpme&)@-goF ztZ_d8t&h~a!rHSVoZ?9&lXK5gW!sEpkW-Oy>ZOj?pF{;yCGlK#d&Tacs5iNWQFo3_ zc7Pi$K1_EVxN=#2SE;Z(SUI81b=pRT`W52kgXwsA_w{r1{T5a|AJfvls<)ukBC{)E zEmd8D)?(++CRY^2cU$4dHuL#&x^n(Kt|m7Qq%TX3Nb-3u+}=6Yp^SN%rkb(wOAuw1 z$}|&9;O7!{8(mC`MT2VrO&*R4l{!5rD(Z7Pb6~8`WacPrVc!K>yevFZGN$ z%2ioFg332}tf@VGPKsinSW?y7bz0LJzJZ{QWS*x_^W>{q$5X*Qn=vYiQCk%_Ft~Vb z>pjf|&Ney^nvK@7M5cQzV%ERW;{aTe`J-q8+|AXcR>>U0whjuL4>3bAj5<-6_cF3U zp#sMtJyw#ks%i*wun#3$SyJz)Z{9WvHmkk%bAV+rf^;KaTPws@rYkWf(^5K1+azC& zv|QYcuz40rti-tPNhI?moBk`Eq2`ruNqA*!6ytj$MI(?VITTgnsrDJzO-3^~0_>$> zYo?oES`G3w$D6Eq8!mjaYcYK|;4aN@+KNZulfc7F=H5L3a|jwauD8E^cDItZ72Znn zW2pK60PRKWdsTtR=~&lKLiZCK?H3H!-It*Qovgd&8*=UD*&^26K_lRz%^No7gYw_? z^jPIvNbWw(zRXi&Qhg$$H9i{&4whm7??BXs6ZUx>7Myro*0x8d`$6`Jq{5;YW(gZD z6LNQVf_WxpHY}iC2oYKX`z=zHcW@WM=EQoWDls(an74m*rb7 zn#>y97l7L<8z86-2XN7=Pn!6zBa;Z{HyPX2(daJTcGUT=so?Tuk3)}< z&uU(NAlQyz^SIMAL>xlC0Z?pi_2y`(6!P#FgBO%$WZjM}X$Cqcoh z`^aIF??l7@00=b_l_aAVPu~x_GUUR{QpmiH_3%WANDmbj~k2GS_Gnb;R zSzTWU%-i$O`KnxYzh;wzJ5-W^-PEATPUB(Ko}OO?#g_}Wi=N8vSU+g6OaWxAb;ay7 zD~~=0tA~<)ektj%MV#TW(>#f#U4Ikrx6N;l9+>6LD7}ag3J-cHuTEj3QZG)FM z#7IkALxqT5hA%gg9Flcw8JjZMMuEcp6v&EsldEYP9F=~mG;I~9$wCSU90uC&bvjPQ z2=h%FDJ)E-t{h;w!>4gM!8EJzH z0Ln9lxROA1{Q4~P-)dR=PQ)J4$5u>ObS=AVNA_>{sfyahp783!1Fr9YX~Jv&u*>QFSDgiGW_la zDmFXoB{vzsHZ5nV(PMd|d~tmY;T{sFp@o#x(Fo&=HoyUQ5IyG|&HUFUS-Nq>eTCwN z8Dp4zhg^n+@XaxQ#tMbQxxilfyeK_B;nR#A-SN(C)p?Jf(S;9X@b- zSbGUeMqgcpvC~rO=^@v=gQ*;gJc71(t3ABc*+*t{^)g8|Auy+*r8l2(ETn27j16-h zWqJ91bo`C~03Ul-Nl+O@M-idI;~8UyJ2CGAM!HhlZY)T;^*l=@_T}Ztn2u239MhWm z-u%w%>-afw*0l5T-7z)SU7Pn6+(CP?>bW!K>-A}d>Z20l0Kh{$PV2}oJD1FkiGw9R zAm^LBl79u^a`_#rc?QWoN22qy_R=-H55`8B)+g%Sqk%gUrPr6ugr=RFgv7NnFw?;L zma{9~#tV#>7Xf-d@|7B%LD?j9Eb;%lQj9sd9hi_ycy z(z;6E-Xt}lwODoNs(>u0!|HAznXNfp-L&{~i*C_#&2>&WiK4i>h^R1$-%$&k+L;BX zp<%r{iQU1z;3E8h3qDRsgf!zETiR^Zu6ZZ9i0arQvtk})qQf!Oc>KKm{Y7piaHnUr zHIYp;9ob|J%vfLJBXg0bQ`h3W{J8BVDV>?{B)E)^jgAqvCYMV0U%{r<>Zgx_+P7C} z;65IQ4QG5C4QzR=`lx(Qhn34+ds~?nunXPb@nrW)j-vXhlSo}1UP|09pch9{EuNg6 zgO2%nI2$SQIPj62aSk-W>1n3!>1qtk=efz`U9n#oJ+R~~wEn%XzU_eUd39^D+$H3V<)^Ipao%>Fv(vY~3y`c3qf(5Fjw*vr7w zn*c6v_glZrYP83XvYC2({p|}HlO4rGZ6(4m?L4z>&@WGq9+0tueisZ>)O&X z#QNyGysq8T(JMcNAhk}@vY5o$c6bE{EGR${ftQtaQJz+iHdLc#-Vqx|kfJRz_asKm zN)@(klI?E~GEh~wpL3euvO?B-Q%8F`OI!y=-u4>oK|HxD;}Nz- zoB-kEK>Pyi#%b2m0N}U>3~ovwNL1?@&P^`q`2MZ70#ZkvilyU~f7Z1ae-ceF@jKU(!^V;-etEXnjy}*(@I>5X;s>{EsRK; zh}{`|(`M2ss)l*1Lhy>~%4N>tHr{L4&cdD(eF|C8gFsr8UPIZAihN-1(Vem%hmG3)p zR%2QhIW((h*?tP=z0v`rZGOK68XmUndjc(KdD~Jix|!(K+~3*!adkqYjOqK zu6+Hr$J3cGu6uOfuFo}BOT09FS5p~5j<)4a*0J0@nmBF@Qej0_;{d}zJipvSBPQ;& zw3jxwU$d&^idLJ&1cd99Eus*{d5zPXwYD z64K}QhSm;X13 zHU5_tX1T?`ZGeDVo0vA{xijQTm%kKqjojxs+TG41lWnzLZh2ggw7?>kSG2_hv$czwRL_T#m8qH zR}FiORWt^Uy{&Xlfy{Gaoq!v*dy1eF|7f2(vax??V=GQ(!NBB8evqelC#~9^lW7=#(v>^O{HRtnq zxnkBIr>h``HN~!Ot#Hx6jfl6J^LypTTH{@t2;$0oS&XKwErzY2HX5;@kdLz|<#DCX zmtOw>iRIT$JdBP%!&6c}x|yY<6Or4tLDh~P7kmj{OUKJHjk|3Pj@!@l`8bQc!~4G#(UxDw zK0fZ){{U$YGx}yDGe`1tfK#+`y@T9-Znm8lM+{e*x+k(84dSV&Bi(Cb2h5Fs0=ayP z{A9f>1FbS5+CyND-Mzv`$1J$W+8rE?3f|1sV`| zhMT;Cp`Brnf5J%omY627y@gcf!|C<@Ou3HoxBXU?Oq#q-`F#~|W-K2PY=eD9mR&K5 zT#Z>@t!Kn}*cG;lsI9{%v_(sTeGyQon&5;G-!<9?K&Fb*7+Hpz-bwsSY&c!w!C{-Xjkcv+nL9B_bV?&m zryym%JFTWl^ilCg1qnfXW5hKhYprq3$)6jX$O}z~u?E&FqGz`TcnB$uc?!QJWwcOJ z4IGLRb_DztjU>Z{yzipUw2?YIBsW)XkX;&!000U^nrvD2w*LU4CM5p=2wy@GV{e}5 z8V~YC2H6li$rWj>orJ3Cd|I3b6TgMWZIexQcZuqIxS!PcN2%nYovMx+pvuejMtfK| zY&o424!7CWA&(<6pAZE90E!P;aHE6}7rMYTrNo`A0?(5AUl)^jj~sPG^2+VsBgnSd zZbN=x0=cbiA{$D^#*& zGYoXnMGHs|nn>blI|BEH-|<$%6=T#m{{XU95lHB$s`0+#5uPT#COw~2Tt&lk8+r0q zts`gIx3hgV7WmAPFk=8c^yY6B1zcy{WNx{;wkF^f-(sUnw|F-JNl`Jar-0$rl+_J5 zo*5&u(ABtDcg&K+J4-pFHMbyK4OK1BsqH)3a}J{wak0(k+#jtYw47Koz^oQrRdJe z`yQdGrVwJRl7^}BHPFoSZvHdLx`5JdG&-&41R72a#HGV(9e}nuY1<_I`CfneAgM32sWrfCtAIHXxFDUsX3!ZD{12W9;+&->Wn-O=7FKxxwslnp!>@@09 zVwqn2JTT$XJcrWML*kBXzUU}7Hj(Ii}=|e3n|fX+9-XWdOa#&2IPEYmN%n4dd?C-zju7 z&Mb%<7meT44uN#c8M&@qb@;A{8PIZ`s3^&$k5pEPvXG?!>Vkm`dYTgG?z0M#EtKgo zf5QiGx$}1Mw^U1(y645CTC23ospyy#duz1lN0y3q$0dF(z?AhGxuuRjZKq$6uv+oj z=F1sa4j|wr!+ezyKG*P)bN&|#zBx0-Ms_SM-0TO)PlGi4ZmrnZ|gQ|-I zyhC2;d$x5qKLwhrsG+k!@{ZRDkB^zUa_XL$SN8s+$DvV^)XZ5&40 zIuZ_sV%VGNY)!rZs%P#s!h3lM{Ao_y%`dSBr$TPB>ew5{bpHT+{FT2oc3ABWo9{d1 zqoDE=6i=y*uVS^ZvbGmY8)18A_d~8Ny5{m@(eQHCUf#{^2z@@0@jMGX~XDBDu*IiihZa#ZHKE9p6l{?#uFG@~1<63+= z2`cKI85C{4qz63m4IN2W!yVOf%hTp>Ze6xiV-vb*2@tfN;xKe;4vjvfTKX?fiwB*_ zlblgv?u_bg3hJ(1ZF=|_FwoiFOFMz3IdqVlJ8vzPb|Xzb6^}LGHQJBKQ+h>-71$=3 zo8oU?iqka31k?pzy8A|sH#D{2<#Sxuw2j)}K?OvqmFcPu)9|h%rjCakduXem8EJ7A z*aK?@i5x&Yt?w-*URO}zOdghl44Ri6#i^@lB70v$EHhrAmbn44W->L$O91PuZ9SY9 zv`=arLar%jVxC6PX9gnj1y^>{c8MlvYn`C`TG?l5+BnxUdy;N%xg_&0I+N2@3fxjr9VA7;u4j87_ZZS`n#WQ{s;}n1SFm^&v3eQ@&l_Ze7pP-eDrx=M;J6Mh zj1o_V`&#~K(SEIs2M@ZW8h1IEh7#tRzE@?e!`|IME_uxfU0=KLyi= zkH1Su+`W+D(zb!rE|!LSWUgh*xtu-b$kBTXUw&(^4i1YnXNTJ8CW^Xfs<7bF_-b7H zRK$5So7`pC5vsN2n5kGyW41O!7tpCmsEvZmshhTzxKAi^-kIc}E>>mk%cu$!(>@i3P)#1&Nh6=|G1y)-87GnBcspJ3j3qY$flf zb36P#f8{CUIe=-?G*`H5o8%X@<7fHRM^t>_BnyKUWr>2y6@=I-A z(Cr1rnlGWl$(cd-@%Ukmb|5b;m(ps<7m62 zdm1gs6SwBQi|ZFQy}pFt*jr(W7+bV)wVxrc;=B%7?cc}gV93@QZeMn%M#k1C&|70E zpraX6AR`%84NA`?76v4Ys>m3bX&{XvzwwPUT&X^w%Zlog(X(Y+tU;G3>i~f3ZzWA8 zxo2bJESQTrR5{-=w2bU@M>Jnk&+|)BttzqHC9?tuvxdcQjaIOAQOk!O_>tV5+kHv& zU0C~4)<2B9Q<|-&G4*jB9c{>4%rwT<6dP<7lNNNZUy6ynosG6z^4mqHbLq)hrPgyT z)N4fL(Om}IE`dSbh>ag(P|?EOke-)ZG|Q5?^L61{N`EEEl-sscqcK?gZ;4ROS%3Gw~atiyiXnPkh=<5N$ebD9q(k{3oeIdZDmY|f6UxL>U4R*WP zU@T`gL9Fbz4Rh!30PwUCe>J44{{UXA?56~Hyp96dultp4UOBh5pA%=Oqo!%NhVOfS zoZ(^dwbnT_#pN29&S&@>JZ?I){o_9p}g!BHkT7E*IgEJIw7*+ z2rWAsk0aGrmk!ZvGwGAne$QQ^x~expDZG(10oB7{ex-OE{91j7jnCT^<_S^!8;S>m zmKxs)=q6ykzqT81Rfim^^W(p7P-FaiOGO9Ls$>jiT-G`{=ElLJaxNF8$A;fO&FSG@ z)VQw_;(DDvqJl5vhr5^pNF}__LRY87!|mtipQjY#Zq28oaR3<^_qs0m$EPM)ZI7M{ zZnMg1d|{X?jArdRbl-lf3&{;MaN;eLS=ybCm9$a4p%SwUbVoZ4+Op3Q#)F4=jBH7_ zFjiVp#r1X=9y2oDioX@xGh0t%Vl`KlJ42F_Z!UW+C0nuh~+WkPJ&1ox%*!y@H*=>}a^se(vCT-@*p!^67kL zoy&+Q>76?wiXWgg?P0?)Y7gXOb+nGHvF~GVd={L?TdQraWB5e`POpSwL6Kuou=f+w zOOh()v|7?Nq-7*p?T`y{QMR3)e)fdMYoo85J6%EFx5X4QU9vQ2Oo4{M#{BhM+13tI z6Rme2i8klH``vl@ZnLd-0C0S@)fDv1`mX)fY?6mHmTvh;8BY5Jd^pyT=)M^2m|><$ zx;96Pmyzqki%lDHD%&*%IMuJ zQbkVfT`^%Hjkbp?K_>jPR>Q{H@zvdc;q-Lub1A-?1Dxj6R5s>VIbSL93waGKb=y2o zNwtdOPRU&xK9@rAJsaDc66-mfi*>O-n)3PleIjJ%^tGS#>2391RpZkAlVze34L2Jo z`|){8;Epk>!zb?`IZga=KUn8yHWr;MS4SRq73Ev@v)L^^F9evD3dWka!;MB6AOz|> zZ>MXtwztaOi{0_OuS;#^uV?NIe3*gnSXwEwx<THMc1V9o)&yZ=lbvA~0{s#X5v8dCe zZg=RNO_xjB1P{HTs%^gXE+3+GHg+yLfa%=S1JuOeKP49vY0ctjd9q*ZIDU#WY=Oiu zpR)1l(xXPrNsGm6>IcO{hS2_y*IvhEq&8+%YdtNad2XvCER`Hb#FW&H&rvI52WFd> z8*~F*S5`P&zA?FJgp=AI3K|I{BdBA@{6g39$xqN<_x**R_OgFq{^dW8N9bKYZ#ZWC z9=Akg|s3FeHEX9nd5p$>h49*aBVV;jyL&9pejvqm{g zFE$%e#({jz0zvUCCdbKEbK_OGX@#%h*<(3mW7z)yy5`vYL0uBd@s>*WP`SDhVx^I> zOJoM>G+4MP&`5MYxmKgD+FlyNY%guf<<7eJ@oT9t*Byf9wcUm*x-J(k-s=pqZ=?=2 z#-pSHIKXv58tLI+kN^dStz{$Mi3lr*2j_uA1Ng?tvno^P*^FX!iAAx2Wo*pgbEHotLlNrlnZQ% zFTtY1VanU}SP2zVlc(jX4#U{>9!SGTA8c6xZ!~IeFl=fFo zA~pR~){u!>uZ`N7d%oHp&p5r*H4#h=np_(txwN0pRmaW8E7{W9x3gLySXO(|n}uV`~-FGIRCYm+|jqR|W95Q_D+y zHrL5#pH`D`bJ(O9NT;ZwtEM8dZ8J*Id1Se;g~a_>0P1zwe5aG2Hx^d^03BFiFV+LJ z?!zi5Gt|?EO-9ml$kD8C2gK0Z-bS?PoOD}w-d}%L>UlWio|!Bo9}ci}wHki%y=j+c z23G9#ZV_)3XUzHfD|Ak_nSpT|n(VI7`RuW{v8{BlvS!>^6@~O|0+)w@d`*$ojnXl) zJMMyYR>v>;zT?#Vae-iXEHK3`82YLz*jne;FbN$S?YmDSbN9I|eL69|je9I{4L{Mb z3R*Tt9POCNOI1}4W=O&YSml19t|Lok=y|DWE2GrZO-oHSBP=n|%M-F!QU?do*GA)F z_?vqNog6IFrPSP&&*P18f3%A!<9#Lt367EAmv{TaB!Fl7J2ee$z}GO?XckvCQn)nO z)lraCx@ny#b=x^}?$-~x{#`v5lI}0Jd*I&6sO6yk9LB4vp4r`F-2*F{UH8dwum{jA z?Apuj8SFm^b?e(SxQ-qgGcr7)cs2K(77HbT^l!W7AP@ypbReF0F1p7) zO)G41KF~XGtF3d|&*HE>#_fl|Wp5)bt#Y`t=C)}|lLHjC=6BrLaNX4%Yq9Rkory&x z)U{$7>UlwAXF-zSW^p7PPPPpzr;m^RqfU#AHj=twNr}}KV$j$}Ic7*6SVlo}Yvy&X zNDHH+USS(%D&rE%UT?JlOMkX_uuU6@nC;@F#iE@!UG$mQhi^`FIM zEl2s}yv(sh&b2r!;^AkG5+ZU|gBs!CJbBq}@tT9wbWG!Xa;)DEV$xH{$zhSvOBv9% z;M{T}?E|%n=b79-HjdAO!$pj_@(AFg#oWQ2_G==n$$x#?T1|A`_wrr59$mLp*M)Ly zM+TM|%rz0Yk~F(B91W~CAdoH(Ck6BvWsS#w*G9#TVlq;-j$?bqJ8&#Z2?uNLF1N;Q zRa1LJkPG)NKh@P*CtAoH@rU2w-jW1IRCL zhY63jpO#j+_;YvV$#=~;?WvK}w<&I45jShITEgFU);|{oT(XgTcU@bs-)7899C#G* z_fUPRi9rmp-O-IR=(zIbjsE~YPosU7{{Y#gfkhjBnjKv(P#v2_U&*&2QfIX5MRAAy zm>4YCzKJxncexA=4`4kkT-yaV8B;6EJ*oQx<5+%S1VXNvq>%Veio=_uJnhhxGtwS& z$M{-$Vp}vbM&Y3khDLrRwm$`a`c}=)NqisKUL#)c%34WeCz)fJANJnXwR7joe~8D5 z{{UXO?1$K<3T%^NZ*20k<`m5riKmuhe-ZdDEV;9HVZlGIOj3~;YaxtB8%9>Kjmppl z)&k4S&n)fRzZs00PQmf%V|BxvdWUKcz}zi3?o4yT2JXMJEGrp`)s#>=OMCs>L&qzJ z0lM}$v#&do7~(uv{{Uu|8#Av@S2PVjWX2@<685gConzK8_^17rR?K3=?taL9I3GJo zRlA*B!-+ra<;LR7WBNTqMbFj9L(RH1%>(gK-lt9_#eIWf6eNm@N`??@Pjuqj{?G-s z_@{blQHO9Vi5I`8Pg`AOmnCVA7W{4Sz7PW66 zcRh;cKwf$U8b*^~fH!Z78a!AOq-==;gnyo>0C5AA&*Xt^YHeCuWaOJcSLTU;(u)u9 zK%k23VGWcJ*}zcQ*dn@KL6*;%b)op}*fBoz{6qk}an?pYzRUrHBqupbM3e zr;%nWRFKzQG4!rp$av-IKXRsXW;s~&SF+a~7w4go+P3eG``dB?@p<^KZN7)Z<=#4O zdtU6a3ela-4U_|w?H`!uvdfR3tMQuVL{*nHaU~7dut!?AYt6D0U z-5$VqBPsJ-nD|{k+0phg9C7T)F^RQQatZ2X4xR8s+b}Sjp6r(#trr>_l{|h-msQQ5 z8;{a)1LJphARw^ib54b%ZVL9e^O;9JSm|$9OxZ?ek(-j7qYSYY7mdCnk@|Ei9I;`h z;)1QR4qD%RLH_`vDbfG!{Q7J{t=h+?BsZ(>Dv3i0Yof6txpQfau4{=d^qY zJG+oBlvaQXX$;)P~k?wSl zadX~Dd)=unJ9=E{(Q{{Zg`W;#H8n0Qf+x)IS{;;JGcmBa8d-BpEu@a?gLWMzA2by; zv9hv~G7U^{9MZ*ca9qohb>-1?&L*05=&V|+|+xY~l!LEBu- z3t6m9D!7M;>1p2^aj0UNc-Z#EQBUJ^jUvOmXue53Z(^yRBv*QJt~Bk2qOvneEZSi2 z2qN+pk9RYT&Bv9wFF%u&oymlaw%dMpTv=yomm!&Lr~MW;bS^sUd3xxx>9lF0z^a_% zW;M<&7jOdP4yVa!j}2Bv2sU@}gYKSXzN>?mjn#%; zl(bbh%dLnv2KFG0kFWW%^6j|Ry`7hb_}-rrYiTiOWSM|6p1c4a2PVs5XM?r$(RcX% zUaqT5a&i9vYAzh9poNh?!q>>w#XAp%MuBix;ijN!IWMH(@+M6-^K{j-i~W4welu^K z*R_VK>YB`EqyGRgDD;v40KIhTGp4AqYOKTf#Qy;Nj{WJRC(n;n2^(sOv_J11Z_QIE zFaH3CDx`OYSxGh)4tMWaSRRU+tTw*0$bdZO1gGb8+O}J>hmu zSyb{!`pZ~(0KHy3o_{;%mU}+YO;a^1yT`)@ zS4ihIp|1tHHu-KdX|dAlhm)I5&OR-@e}UJsk&(kr*2NTHHKBkDH>XdHmyLPu-i_j# zcK*%#M-CZZZkN?{@p8C1IP~dl;s}ViaP%v;^mFv6HJm_fYylj-6T00i3B+`9PyDSs zPxEw4arux{a?jB*)!LE_4Xp68Fu~D{4Idz|?YBkFM3^vk5B7KFNmJKq{>z#Mu=~t! z$xY&nKU=esU{N^VDEMfzn0sm3v>ZE2-P+nN%rVm&cG$FYTSZ1k!CW3iP{no`9H6#F zHSIbO=7$f(2OQ&{WZWjNGoy>>(w%d~U@m!E>=Zp{kN;K9iUhn-(|`lE+})Ub?RQanpl5_RUVrwgYQ!yD_?QWwZlLnCr`BDx|h9 zNRbg_3TXKta7k^oK+$#37U$6be!C*H2}B-akub32SYh2z8Icqy6b{Bv8<1LHH1~FH zK~{|jHql}=9hKqibkBU72Hm#mgV!CC;B9k5+T(CGIvvp;*Esg9;#~66Qncw1GDtt1 zZD4%|G;NE6RXXm6u6C+q)+{HJUzq$>Nh7^Lm&u_%S4B4RF?m|8vh0Y4N!!&-Po?Jr z@jIyMVV$~VaBII|$6u1epBZs=_}S|%Jp5vjk;_k^@Q{kRn_F6gb| zu;v}6y**c}elqI5q{SIH*4o?$3vac7RF*KyQ9hcj&=GrLA7(W&8Nh*mW}Q<$_q{Vv+Hg5UEFcgBYlBW${jqCvML&&4}AAG{{Rof zBDRkJ47uFfT-z`=T4iKe%yBN?Xz=*zAj2t0l1Xz)*SWJ%1E?;EjxGQlbOCYRNXq9N z0npD|G>>d9e2yjMkj4N2^9^XTN2QimD_LKE5wP4kSs&dpDI|WQyK6~%Y-~y9EL2IA zPB^!EzVn`;=129pSCNZAe z$BBKSUzoEDW2oUb&O9y>6R98@uM9FyLKk~cBR_Gnn=9n4^Tl63%bTzr^+#BHXau923GW;vPL;cLMK!1Dm_ZhaS> z$;7<1LyJ)uoOSRUk^7g6&BI+7)S7C%!%=-U>*eIUyzt6=bbWL_ALB@*hxk7fi|Ldv zJ`(L_rYC2@-$SSbshdL^T0&-to?p}{*Jp9+! z_}*?APp#vGQ((l%GkcoqN9MiEc_oVVv@5CFC9`>SSL}<8i1cjFD@RhB+Kv4Sgi}Js zk9hms)^@iB5@J9HkY8~Q-`bMf{JvB|Je~9{@&17tXF4xh--5 zZM{$?SpNXeH5`+8wBx$T>%Pc%uunw@&38o68}-*gq4=+v=fdsvK0hSWQC&zR8(i6Q zOr3e-xWVJRDhMErHPLqQa%sWI#^QW$*{NwVL@m@WQyzDhp97tDu4}csT+^q+$#q#Q zdDhurRLpctNn*!~DBHE8F^|q^XQplM}YB&`!mZxb)Chs5bc ztUx*dH48j^Z)v%>uNUxZYkSEg@k;Veb8Y;&*z0BMadGvIYndIK@GMwe4Sp)hHsUq# z%G!7!k)7)yj!PFx_<$w(b6((bwbqq+eJT4{;o6$4E|V3gplv21>7U+3PYI7b9;8h8 zMc)_}X}h++ny*%Qv)vCz0{iDQ%o zn_Spf{^jNJON~aGj1v%&mEu?&a=4E6Abb)vt_LX{4VGB))v>yFJa^g(fWs_>vQGIJ z#(xLT82U7CZ`xykHoltcuv^Z3HvJqsi@Q#(uMA|bEr1(E13kv{1DW|M-fg1hr^L8o zczeF~86y(^0483-1N{ZARq>Ltk=Z?;FbqWwm=4d}M8=Rn<7- zc^m#6rJ<#%ekX@D^T9EEb)mY?PVCMmR>DSa331ZbHdpH+>9mb=%&e=dhI%m9O-oo@ z*lVD8@iDGpvD^V}niRQ6)3c9ui`!f^ak4+6vDJ}2-@+CRk=Y&Ldwp%LtCu|4Waik$ zIW_}yBRs7YV{2_80H7+&)YDwrk&qU}p z+&S4)@_lVlG?3g68%S|?AmByg4*Tw~9aZt+>_<+d;rQTYYAE1tQX{L1vqI?H!dy(G zWh^J%dvgofbz{ZVZ7{Xnt45Jb#MfDa)JoyaJpxxX_aRW z;<%gS4$pW;ee_p5xw9lC#KRNqnWS8eZFNO7?7g1wO#~sbLEgnt4V>rIN0vw*u>@>k zdHYwe1y;kUtYeO-8YhVNlgobqC9h;|=3WuBSh@wta`!O7%b zRi_t~(WI=eYTbdwJa5EsQ0ZU;G}N~ScnQ_kZsm>g8~$g>8;|b8>O%pqik4DiC%Kx8|YG@TsG;&Hj`B z0J5F>PuFweF9jSRas%;cT;z(#sxRI7GxSE1D<%Mg)D+q^?2ZbP>!lp5-|s79^%=O1 zChy}FHru{^{{V9D!bhK-wJQOte9}Wj6WwZwTEftD0mo9a)y=!ClzouqDf7vBN9`HtUzeFCSrZSE-p1Tx|x!i_U3$D z$4|its%zXH9O&7U2SZR=;?mnY!scmfk#Iq>xBmdHjB!EW-r9yT$=WI-r>?D#va9J2 z7KaZPE{=`1%dXmvd+e*(w_UJYf9(G0pDj)u7t!gM+rdpSJ?!mZIp?qr$_}m#F4PW6 zdoa%(IF&Xk=IAyC&IhQ_?oU57`sdQ-mc6$Qh~;qHE>2z@u*uRmPmRN@*P9)_E6C*H z>+O?z$|lG(18YF9w^OA)h}a|4t(1N$z~WiuV8hx<~G67Jx{a>Y>-uS-_O zg4Rj)SoXTj$W6H}{vL1RqBpP#**>PN#+Ig^$4iJp>r%`QDOsTL4J~8vUZmvo=!}06 z_Mb^fA)1|;u_uo1qDZu+d1u?ne58|m>GNFq^XVBlhZtgWR!HiJh%bM=lfvKZjW6c8 zFE-r$nRiER55Zbxwv*szQz8t>RtA^frl$QCkS@L%V=eDk_=Ce-GYb z8xk0FyLI1Hd}fm)A58p184eDatfi%HS#IJYfsSy~!)M9?uo=k>9*X-;oj4{{VUI7=a}4RKubvNmdWmb_|5*?W1iM(jZ!6?}5Me%j#B@lR(oxZ6!m9@f(04ZG?niOR|E ztBg0joqcU(?s&d+zMa!OJpTZT;l?RiB#g31^EJ(Q%I4S|2s+=-n)=TlJ;dMka?D2& zajgVq{MF@Q^`UMlrIxa@&U+=*N-b$2uK81HSap>pOsLWL z=UQz#KH7zOSmh7JTD8Wru|Ar$YqoYSX{)wcV_DXV53SjBN~W5;I=A4e{IkulUx#r$lhz}iowScFG_O) z2N=$1idD)gTSqho2|x?1fH~aIXt+v?-g)#3IxnPlmsF!?*=7J99W%wwxdrWWbpzMD z1B8&)KfH6?K->=xk_2|?h?uBqPJrbN_04hmBYbD4ilHBpB$~0TWBKh-QCSW$#vUe- zfyTh{QzJdIzf0;#_^mpPjtN%gum@@!-48{Ew6m39J(f=_vQxV>Q!qKsVQ<-BCB$FI z6-;?1Um9h{cGh-z?D701-**)^6s#|(b%R?Lzihj2!B-@-94+jQYo!$QweZU$hJmhW z9=8Q&j!9qekFdP;vd;xAbW=@CPkh#v_z2L0|=& z=j7s=_~SfJz*51P>;>_TnwFlnUAS|9*OAS^dwOYmEbY>-4ZLlY?xdE?ngZf8F#GL{ zgY{&K>MXjoY}%b<^z?=$T}h8Y8)J$whc*)&G-aU443|0O?>8*8{l;D$k1HJ1F`bG*Cg_`^e=}s@cevpRZ09q5})Yt)(GML7HIb%U_Vmv z?y>I|Z+WHf=ohEO&%dt^%JDDpXWEx!6t%SN?kNQ=L40)BQE3i+YZ}lbsg^eVgQJ6p z+nBoarQF-b%MQMtX6-k!`ivT+(o{LFlOT3z!N@`A>zk3!Ra~5TMtX}CHy7UeA4QeI zRc!R?+z;9fh-9YsAPrZ8<#@O3QP|+gGed=)ri5}|Ims>;*ojqx+goY4zm}mm`Lwdz z8sm!DVr4v&Ke=E4FdGXEuh-(c=RLFPcUhp(YiN^_o2F%O=CqkgjVf_i!?rq(i=zwe zXpw?&1$9e%$Y606IY|T=2-JwVNZ{KXqU*ODS~|yPy_-b`byXW#h(kYuK<4GCrEWV4Y9AJ&dJbQ*y63UqdDc#8LqrlvzN@m!R9FlU6??&xe%FCmyS;)A0 zYMemSQ&W9KD0k9jhrBJPg}Vm>a6?7)H?_%Cu_=5bh0x3nE06**Mw=Ey0?Tx=`0tfR??^yEx0RDAsb6??|snWjQGa2aR;&cB1;O9Oj zWp>?QnD9AehEEe*93+k2Cb(?jZFF89U-|r;71xGUzQyLH$K&qm+}cc0z8EU(11fq) zHrxH;Z+>gP#`11ARj+rE_`|cxygIG$)<)>0YwigLER8!khhocEf;z9Q@%)LD_OJf{ z)s7s%`5I2PaNEr8x6f619ge+$)N`BruV>^}J&h!0_;j_>MAAi^K-c{FtSdTGgxE8>gGRkFyBH*Q9g|;mBFCL z_NCe6IGrrivVr4iEOo9}@$R@^&+tL=o3(z+>M;4_r>SWYG1tv)9@Bd{zM{)WIW=nz z*4pFY$gMF&M00Ev)Tr{fB9#^85J`6=560wP9z2i}T!^KTijS8>0678O0S^%a%~p-o z6nR)0I%=p6LQR?l$u_W6gV9_8!qI^n2fdV7a=GTNw%&`usDx30ZN246tCM?7VuVr# z{rTgt>d~*uRSl=dm{?I`b?3zw?X^WkWH{Fk0$^|N-v0nK8$zmV90qrn(>0TI4dpd6 zd$x;g(5VNbIIpvqXS=dwn$8{Ld@dotf(^GC?7n-4$m{C8?6{ad&-fA8T|PY5JP}t+ z1UYvu2T^XNdOy6bJH)N_O2+Bv>tb~7FpF4cWB0b8>pPXC#UFyP8k!k#H%R9`D&qG?-9Q64>F8n0w%Qti?=ZQwW3L*mucs0M z7P76BWN{n{*SG{9^KV6Yo$Va=30zOK4$jLjBm&pf%^y8FFLw@U)#mc?dwLJqW~3S@ z^9;EkBTuh*<>GVy0Jcw{@a)G2Vd6*_<{gfU8ONt|^HR9iW5CGNHrftWR%h7cn^t>_e@SYjXpXrXO8~>tK~eLf7-fN6!u3+ zQ%6qR`LNhn>YBRZ{Pk|BlI4_<8<&i)Ed(0_=W@1rmOQiCFJd*=V&xW6Tg>qL zUqjHCCOH*L0bvJ4^BkNRV789cV56tSVTUHY8dFr^Sy!Qka{V-oh49qXPwt>@XYK{S zxEtE!Urs|+=<#(l=~y>q5YiZ=mA(9d&2cUc5Vw(vMmPf3T#TYz9`HN1cZSw7 zOQ6rS&F)IpWF6uE0A}{N(^J+NqN?|)XKP8Pm7%1$j?Jr`&cs}S&22MTsh^Ihs3U~d zwka!NYoPBatRE~MEVpQ|@el*!moK_E(NAQ!2Nm{~`qr`^qr*=OGD!9a*w(z64!P_B zX}8%IXyi(*sHzG#Se;J1$+vH1w6@Mdor~FRAKhTd1IEToeSJ;iNEHjx z$8JpF*3{q4Y1Y*tLU5n!eO8jD;kf*;o5drU>9P1PGs^IA<)0f&ohya=VrjE#0c*6h zjQ|7YZMUlV4=euwBI9?8^Cx%0c-oT?g|t|x64TrGy=yJs)04HI?>;}g(|rKYt{IM8 zUaM?to$()J6X7#3%I42aDYZRZW9lXs(#{|N{;f9hUWOe10LM--uHlXtnzkvTiLT2d znoO4Zwt#GPJD(wSd&udL)VNQv>Pm3W36?>--FpM3!1^pNBT0*0J{%j#bLDqdhGC}W zs+6$AfztacX)w*yX{1PFlr5yF=0o`Gh0h~Aa*GZ=$)2qhRX-$ zh$}JynE|kb7JNBJo%gnZR*iey6$Xd1Y#p=8;_r34e$u2KrR>v(Mc8x%XbI@1)Jp0S z$!yL403~N@X&!U-pT#fqSh@J!^4s-Ri@0cwNRNn(Vz)UP`KYL@?`SN%tQ~U?m8`0& z6vS5*U1M+TkI7aKYGOD^_^*h*?%!8goKFV5?gz;MsU>u^ zEM!H^5`gH-h3@9)ZE{7u6}+D-^1@s9{xtsp9^~=gwZ1O;cbM5#Aat^sTMTYKt}-&iD=W5e zhZoc|7S+QfKUm`^voqPjG0SZ1{;~MZ9h^CD zGE&|8Y>Y~{0;ltCUI=Qa|SlwZ6-iAJvSdAF&i1WY2CgL;IdFQk~ z4<>fWOeGbPxHm!dJ=nHqN=5C^5-z>ZACvuLe7Bj$tgStP_Nh~YREVl0Xc?O$;D3&u zVfJLTtaaJrm>Mrr8R_BuuKmLtO-GAF<4*QSYL9=43b$wOq5!@?LBEf9X`>_o$TrsW z)kRYK^zvlghg4z}HL}pe+B`l99hPdxcTusrctf^1x5_mDgNE+UvX|4+%@J(S(+i0){=ql%nkkL01le_q<~wd_EgK4s=H_SpR`Junqh}MJU0Y* z%#wmO`on8mZ3f*|f8;MRa*R&_B)FTKok`rC?oTs&>bf}jP0@WV zCUvdEm(^dV#dKqF%3Z}}X}C+Y37~UWL#1P^(HlW=AFu_<^j|UOc(W_HU3_nGc0EK-iiijjdxEEY`GG58iy%)zGlO z8eMWt^;p&Rn~IJ}1ydW*X`ryJqzUCTY{_zIZpUMCu9xgybs9y;p(1HZPO?POHg&Ql zjg(|ku%nR#hDfDjqGhCr(o|IoO=+H9mN3*=PT5+vqN=){%3N1CZEeUGTVaz7@zZmF zKTvkCUWPeo#h2C24UT7X+J4WP=$XomA@OZ!mKmEHt!5jzb=u22n*9>E7Yh*6!pmCB z1p1xHSH?4~0V?2-7F8M$@oY7dG4RL%WQ=nh4%u8RbW%P-_UXYUg07~RiwNX?U)XUj zXZ$29%(RN))zA4YrP`LFNE2+fPEpY|kdUUr15|?`jYizmqeF~b-v0muiA;yfosL=cmDvYqAS&$7lyHs zf?KV$@>SZnq}J36`5(bm(H>*=k*hALjfUS>A1^Xb>a>fwLtSMlk#)q}F39O9D#0c4 z)jA^HKr>tXR8r#S+;ZQojP!Z@Y@#Tu#|^vI4FMtGeir-`>0Pz>XuM4Qf%zQKG6W!AA{9&>HK^7~QEIPNtEu_@Z0yO5b z+e~qrY&$EU%N&67ke`CDXQPDl+`)&pqKRA2ip*XiViuCI&bUu%d|q(ZLsnQMiL)?E zABnlzeA+=a=xz^1>Tp-jd5x6(5r^Y(zNNv{Z>wuuB!ANa{HiJLBAuLCaF)F|ullF}Z-VhzCt#iVK% zcNZ?cqpDsr+9hO-%3Ri*wse4ASASUC50dmT@|C!;?xQYqoNiu5u6Cuzo@2TB*;79w zYFtvIrPFUkOnG}$Xo{R15wi3!$1Cw#$8in(7hX`{)pi+Tdrsim)+>_p;iSC*UzHED>AEV zM<}sw@MJb2*90HUbaBSmWu`9}!;CI0BTuq=j!V(QC#T1r{VOL6s~p;8$0`h~d7I1S zJ6T&&5Uoav=$#z>k$*2tO*4^1tyjH#n%8!EP! zh4-q-NQPxQQz^9QW!uS0ol{#}24i$OoZ;+HnFp%Z3d1<+pTc2`zmn_hY(fE_elv*RjSkPrk3dHj%k^Y;GW z(-mtfY&*J|a4r7;sTn!H;d4j9LMz2MoE9g@*>vKiilX&e&cjZ6*FiZGK~5+f5^_M? zmIWY@PgBUNY&u*MVF9;Q(3yu&=X*!ZR*lq+$^hgv3py8u(wSZw03;nj(0tWLqx&S` zr(6d$yN`#Wggp@}+Y<$a$O7Fj>as+NDv2&YzK+y-^z|3~e38?Pc^|d>PrR1=C5Tbjn}r)gIbTGz#~)iyU9(u891ZkV zoR%@TvG~pgIxd~ezN;l;>u~2V=4FMsTXkLQ;(DS!yg1p{YpuGT)~j#_RFEuuP3O&D z3sB~KciE%vCZ%JZUTk7$@i?8bfvH{i)^}{}9vg^Jc%`SAk&RuMuCN}q(%UL$Hs6ZZ zP2t`lWX%p7#>1fQrP32lJ=c7D-1cyGz^wIkR)KxwZLdW9ap)AQpba>eR`t< z;u>sczk4Db<7tIGCJ<#~X`c63cdc#mS)14k>U39A`rsX)`!3W)-kKxy=2JDlOfa_X zhDTh!D8;Pd9)Q~RxKgrjWM0wIQpnm|MeY=hjKKMs7!^&36KEdic!WdUa0d3|gRpUD z2~cAZ!yL_pwN;tjhs#F5O%@*$PPHXhGtfb4!=jY3+`2Jq_Wvd#FTFL34hG{>2{62zjyig-eb`$DmNn6iiNxB;*kgXjW9P|68QDy~{Bs(JyOLV#0@Gl6j!WC&%WS=*_tDPW zkKAnTcjUXJbYY&E99s%}2G7-}-FGh`b+$F>aq>$&pb!?)qda%;ra{k==*K6QmN$CS zZP|}w6RSe2v_^DF6S1gprBO16vFAw9HU8$<0mbamnL%xZ-l7~j}7YOrye`^Sn_H+#Wf9!Ix)5$tJK38BhAXE zw5?TxM1lZ-iVrn=b#Q>64`oJMzLoAE+h#lf>z+fx6c3mf>{(nzw$tN%*G4rJnVjmM z)^yXB`cRVX6G0)$v>RQ?KvYfM>H?lFE;muIaV&9d!-e$Uk`Gt*Wy4t;oyOPOormvGHMP^53+M3nk=d zDytgMTwDusmwbUF-;_I7ykhL zvwlTEYlHEQFeQ=914a@GNY1F4A-1IGR*c$=6NP)$cbV*NY%Rzr(?4&lm6Xfk?0rO4 zR6?=SNTJ1O1A*!hrr7$5Qf>-%(NtA*eO8k-EN1acKXs(bYDmjh;NYz`hD#X0ujOuP z@ttR7f=K<-r=GX;TgsLb7{@U>IYnJ7!^=o_cJ^ih+ki7R%SlGJhyAH3>)L5CSPWg~ zhDQgMG!y+tTk#%h`rAxylw5V${FqzYRZL9yeAX?Mj%&nRz;;v9s0%!>T4uT7&Lk39 zz}(v4@*#8O#p&6HBcb6qmFz*=lEbTOlG;XQ8?7W~YcIqU0D>+508Wde3d57!d8f5b z%)CZ;8d`UAN2>KWbJN4-<6&?fDV7I=ozc0c!seS6k<1?@=y%+4Tr~9eWnR!R%;;HI zT*tsmso52o4P`@yR+_V~$Ly(<8drAn*~JY+u{0J(iM^sq#!~p8FMo-GHrsm^-o@J8 zSW@6!p4IT|-Nq$UV#8}`$(tj4$GYAlPI8j!cR$@Owo`sw^P_Krab_8d8EImvWY9|p zjtUmUSa9eVM|nJwk!-_}8{7*h(BPb1*%ZwcO7#d4=;{Z~k@8 zT%>g4bo9;*kHt{d$s5CihK>h+A{WMU_}Ov&jiyP@YV$QetHTok$!m=1?H3)goN2=i zs%BH9jn$6odKLCR`Cs}SY>pmG92XFU(U&pcwap|DdHIhe`mc@T&U|Fsi#&9NC1Zu0 z-NMt!;NB?5EiT`Pcd>%se%>Lv`8@bFTgjOV5}|T17_`V1jlVX!hzY&3YVGD_q_h;>QqlaL|sHUY<5pcc#Y%#-osT zascM@2lVq=bxh?9W3s^E-ci2y-ZvZkijMkv99*pzWFF5oRnikXUj;J{jl^pEeVF>+ zYpP|;(_6cHSB7|I8aSIzPQe^a4bseFD6J z=B@Gg43%KpoTdUQ!45!|IZztsALr+R!koR$qos?gRkqUXsu5KL1kaf_!eZ%);Z|GJUZ5X~d ztua#7$Tba#;`aMQTVK1nX{31qoLmBTJFOxq_{aGA6)0Ho2NON?^t6Nk$Z8z+o_BEk zl*^&YE9k+JO*Jn+nN!-Uq6Q6=kbVi;i%cQzVGRV^T@`k%eQd-dUnySvRv3W`4K$TU ziPPHTa@91_R$CN=9~kGqkqaw5wVv7BLIpA+#RXg(mYBsVhQ6B1Sy`wt3LC8@XIY#> z3;Y(+rJt?B@5|L|D8lhKW{^*Nvd-k@=zcv`lPxbJpH}JD{rEui%Jz# z*9vi{tXC1?0JYZ}h0%_BbLYnMuN-hbu5(4TUEDeDyxvSS!9`T)&9=6j*L1E+9cQuL z+S`Z9=gkWyd1hGVlo!cQCc(|t&I8W+EjGpIp@z`c(n#r~bycE$O-?Lc1WlNNTLU8{ z*SXUv+f7qLg}<^aMv5bg(FQ>qnoC2R8}x|p;s!S~=3y2kw;o$2hTpS}*_~Jmsht!! z!I^T5!zh|ppBt(A zvNL+GsDN0f2>;^o}=K7(qOKPJ~wOjo2F(Sjtle8H^9q|`gLPkXQvDH0-;|_uO*_7NCxDW`j(CBo!Cvz}bG-q(J-hk&{8yjL!G6NUm?!-6T=?#cw zg7x??yY|m1xW!Uc5HEWHt@+=Wvh=KHF!uECv-f5d6)kN|Krz8_k*D92&fj%;9QoYe@qx(ZkFwAdnT{1xRhm zU?Qv#Zz8F9;N-}PDHHhu=~;XTYOZMC(^_xSPDc^O^RnW*twlGjQk z5`Z8G0sw*rKT01I%sVcoSGDBpvt8@Wl6mt~((%N7qqx3E zDEqk2^6~~a8wceZ=NmX}s8gnq<@RwbgHG&NX}?58I?gPA+z5fQ8g!40Iko}d{))L> zCOYeQX9{#>#nHA~Ugg&DTh&vtbh5*^a|Lr4>12q!v=igDzclQPDSJV{Fv#KWDIXtt z(`>DFVn@W4J7r%)>LR_@&RF)QO#Gm=#By2btfuPet^rY~(pD0(D?Raj;g}~_(p61# z7Z>I!j^U@YH9Z!6zxqZ>S;MGWl^5Qu;MO4yvS0|MSb~lOO;w( zE9z(iv^wAN>FBL9s=3D+_BRywe1BIa_X5D4UQ21oekX2yO*Kv*AQLp$9UL|wehSrW zZF)O|xUMXh^-UIBctEN`9l|YTwYk&Ht#jNcXlS<{bM-<_PycMv1XE!}RL2tZ>2N-uD^VeZbVJ^p#wsvF3gt z!6&7bN_pFsSe#n%ulzUng}PmBB$1q&N5HYksh{4!;>X`nuyE+%v0i_X>b^(G{{YYHZN@b2=rUA-E)Bx)bK}b!q;@eSPer!{>30z4 zd{5cTay-Z$V!rJf{B>Vt;r{^X=Y-X)a>7C?Bemb@7Uwy z$6pOUi6=L_j`0D%HQ$#99ysmAyuXg&?D_26XM1a_n&A(<6fPF;4fJ!xt_Lx&E5!0S zB>w>A=(~^u;eoAa0j(Bj13)?tCE{m$-)~M~G5D1W7JnBzkwK%ZY9~cmG=pwx zMF){-5@w`$qdsIS!0=kc3B^v4vRtM_lC7kW^w4iAE3hFAi4Bz0Hdt~S4CtMkB@wZ) zS7wJ*DwR;n)rfL}4r&%iHSGq#-1G`G9;C&j&0yOOrD2t-*}txp+4U@sdqa)$JAJGI z=-|Rzw>K_cwDc6RWM}nky`Aajt1xF5yL|?#cWBU(q$E6S3Xr7$AP6Wp{{R#a($z{` zlrjljewJak;-ak|82GOc&f@2L&Lz(Eak)P=Y*ef)0&ISrP&Q)E5KqhQ1a3Ltrr zFl;HMijEyX-ue$!I)ke4_7mO2)>~38O2W|XTS>5Pr=OC6);lu82*?->-S0P|tv2-! z2hf&BZHu(t--@lPOHt>jYvg=ortIYLl4kz^J~O9y(bH8+lJO53s2~Ceb8lxjHtjxB zGj@^pv{jXNmi?*mkot;xakMcx_P%Qu+Sc6tm2t$>YzDbn3mi8ObKKh&jdyXd_@##1 z=XMt9KqjJ-#p2RN+!NQuqNiAmv;0x)_$lIi&ZvNf{g%CsC-EuP8*}^i_J|_)`D9uk@Pt8u$R?P*~DrTqF>d+#hp5bUHD=;{x z2021bHr;a$%I)nPc1(4asO-IPy6%;&Of@;UdyY2cO5E z&2>ziSB;vWo>(Mo%sC}t1*X>;ZE>;qt?|ojY}35gFM2%$BQLwt6 zw73e&j79pqIYzkU z>DK!_?WxVn4N>wEay>JC_47Vgf&Ty^-JNY+eOJ}j> zP3%0+Pl~+d>gUgoZ%=zadp#GHS68!32SW+@g7M^aw>5{6<$tD_;lu6f+Gv2V0>BFZ zGy~z&$#@y^T%Lv)$duMB&LCY1hyyopDw{{Uy?@6Y~=Ndv`R zD@k&YhZQjdsWwZRhQi2_To5FL1c2^&6+H5yOx8husdQkjxQfvNrKY$3{U=jraZ z^Hf5P_%rZ$EUe*=1srD=C#HvSy>&aTSgTf#a)>MAUmKydIjcEm{1BT%l-_*JIMvb z!!=p<9WtV%3tOd?0bwwb@NJlHVa-7F$78rP$dT3;+f9YGDk@!$yxG1NGiw0iTGyYt z9cu?3SF)vAMIAfNV%Zu-ml4c-O+8|nw{5yytlDV@zqu#G<8yFq*+3t7d$Kdk8>+;- zaoQWcmse3feGBZ{3s?;;`K=(U!+0pl=CDc|nAj38{wgS)+W!D$@?hcvB#oFrJaGSffkKlsJVxo=TQBmuy}o23L73>|Rv`do?PWX|*kKlGS!8 z729-CQ0CkwmC~wc?5t@HuA4J#tp-%bxIBus&}17cY*tmrl!p$gvaPl2aLDSSd@{5- zj}|u^`uQu&m3eQpKF?;trn?J_4t3b@4Vlj?is{D77Mo~zU$l2<*K6l>YlBH^reT~^ z$JgWlV+DGR@rnS$NnXxYSq(l2tFT1Q3g z3xn{Q-~2+Nf1}cdntDlMb93SqBwRktXlP(90iXhPJE&gIUYrk$cp9pLIGa%`S>HL& zG=1SRvtrpE!{Hglt!9E&xY-=}-7>!pSMyfB+_vl*6yv${_-)YM`t#fTc_w&FqPuH2 zTeNwp{15TQZK*o6FDIMBm1yaBe;Tq-2zSEk$>i~D_||Ov_}?$dWjOgF-G|?T)2iPL zTVl!Lz!TQXvm9)6wjVQZcA`7BmQrDgtVevPjQ z;Ww5$jr#d1!xkL1-}rKqAtT5yO9`m+ZT4m;%#*$3cv=7-3#;Wns{N>3al~PRBTl|c zhdxI}II(mS7r1k}rWspPob>B>MJ7gp&35AEP6c$x0djyq-3N_-?HJ+$*r+M5VE4@_ z^T;E&;!$Y%&5P7rm9$c+C6RPU=d~ThLNo>ZkkGUIkkG@B(88FQS9qf&x~B!%;#!bzXC3)-C0+?sTxn9m903Gvr!@lKjC)C} z#CwraOS_ikj^kl%m8BI_bT;Is)Ku2O6?SO9qx4OhC`IJ2wR*m`(P+FUt(8f0)^tXx z3Y1e~8(Bu0vGD?1v>%;JG(V*60mF;qcwZr32BiK@c7wmnJ)A&$z?TF+zj zSx#<8btqBK8VI#5xIrg}YcdcCL80QF7K*MT9E}cZhR3f_=C6)gS>+Bd?DAR}JUO2o z^fuUD)+@Ihwru_ZiTT-AIjFuafreua9M&6Xy@wMH8m7~w4mCK}UaI)jbH~$=agH6B zn+51$o}O1O4rNt?mK(0zGuwvaq%zCseL5R+-~5%f)!S*=&ubImt`}n};9z-*nrj%N zc^(;K2i%dav9`&680GEVu@>R@r8C|;ncYzUag<4)7Ik}wYeQkaW<~86#ZWl`-Pem*PCQ;2__S zx$_+s)@nA!?dVTuk7v^c)PELKH%8cH&+qS9Q{(w3WXO*6Ect7!=J-tVCw znrKQZNE>njL{SwoDj>zCf=E}`ZNX3^s`Uk`j-Y@gPK0@Dn%ysR&}vk~N)CISq417? zeyd2*8+1XxnT%@;L>*Bm!NoD$KfeydDkwR~Cv4V!i=OHTFhH%p?p|;VsE>yK=VS7Mm zXxIgvp}ZmioD-)@svCDc&GE|r! z#%DHEsZwGNQoc2wu4V2#uB&56%2&s5vdN@p>*KgtEP+lhapZ!6_9S_q%~(aMWza)& z4(icbMkhy|j`9~$h8?Zt%pi?8iY0-b+Rv<@`kR?5?Mf)3)}incju z+s}B%1NTpHk5PYhZJt|;<5Dn+u-z_L?qS<3T^P00&^&?RYp>>wz4^Icfv;m-#?#&~B_rPqHJUYs15dt>o_73MT6uNvgb25Njc&D>pW{9%;W zw5}K8I*J*aQA;DClnaM5LP5}jw&6rpWwy(-KG_{v1vMNHGL{J3W|@sSoi$6eeEFyk#hj*FueGs(|4S5x>V^a~8DOd|6N!tG}jjmhb7;E>sH(H_j6&d#eWudZdO!3GGNKb3P%j&=UeHuceQa^}Al8+%p?Kmf1+asxm< z9G91#d#_I%brYheSnX{lM-qf2vNR60s0=l48VrS`jO`?aZ4!v4ifTZbP}_>Ol4h^n zccA>!LH2F%QWE7LibPQWw2@J(hMcqA339v*g)~QfP}#mC)2EuKakS2NzHC0|QBg-6 zAZ#t?%|vEe(lnJ4tSoQTnu%UfBAz99n6_!KSy-)a`yj(}nwHx3%Hi=A{T7(H^2ypT z%n&j0I@a*6t|;ZouW^h(F@@ZKSLXE-gxztRXB9Fyo?oKzIWpaLW9cJ>uroA(TFu?Z z(OZih)Mt~i;h}+`GTBC-CGO#bk>}jEQY04|El?3M!pI%^wk)z&NafV!sH&>$5EYQwLFE7? zMfkQqT|2W}6C`FstE9cX0?M>$E1Y!m(#tzV=MGYW=-TF;_X6mn)m@Ze3~LM8?YX;f zQF&S(JmN<|8yRT6!=g+R#mrt~H&)+Y!5(*n7kF;D6DiKCC%y<`rt^C3lGC zeai-KuNfZOYk1`sYmZBnLE~Q2IPH~nb4=$Fa~1-9?2Yh^dTD#88Npu{-axiiMb!hM zqCTh>-^b0t0^>2Cw1LL5KfDx&TLTZ<3WMq_Qm-ZG(u2CHX#r5(lS4g z6j|xrk;hBvb(MBwn@-xy!s|7$yG5#{54h^4Rjg&PJOpc^-wsVVGQ(_+E5nCtF8)4O zCVXs;GsA|*McX-c<+v*!NJ8t!IL6>*r&}uAnd8THxx#S!c#6u` zr^Uw5QBuBF2;&zgZEQX(n>n|kG0|1DPKm{?+;3xXb(dAm7j;(o6|TeB2Vu^{UMgx@ z;Ykzj#*uFLjcuPE4xV*qO!0B9Nj27~ZketEAV(g>F&tE?l5OcGfd zybiUBLYmYDR`cLUQVGiVrVy-(L(xJU#8irg_+99MH15!PD@5$K1*D1DIaPqlh@=!# zWEb0BT~SSp zt2m>*hnQGp^?&2H_Cdp@8C>!$-a5qM-R}iTZvVeX_lbvEKJuReHTef#Hl}TG3%) zspso&C0e|}kjE+}l2Z1^As*{{%-AV@= zhm*|w?1A>-$E%0M0R9d?e4u%hj{C(2)_N%yi1jLT%(zV|jVzjaDA3MgGv4ajX+9`t zDwZ!4n5o#RX>}D-m2Ns(RYRTP3mUvv@kCa0T(6~218HtMaW(z5(BkAr47>NG1W9hg?aGC3@-r%i&Yq7N3b&$60~?M@gkl&!JO zvbe<+e+*vzS5`cXbK{mW_`e0-_5%FZUOcWl#KPj7AmMv*U3l`ayh=K3F{1Yxt-I|r zk4c$qr?aaFate~ucAGnqSB+~yL5jyP5ljPJe+-*z=0^Vj6_$5OH~o=ZDZ=V^W^kBvx8u9!p21tLs-#fv}geMZ|YZ-a#k)OfoH9+BEp^pT@^Yw zm83!Zit++2R?q|{fFWoLDg@Ia$R@5if+}Wb%uO%u{JByzg_zk}W2}lunThRbxP%6k0LIgA_kR7r#h&2ILq{MGf zEh!mfOltUF2{O$Te|f|3)l#dK^zSt|%OG`z;hBC7gi8fwuDIu(@rnAL_fpXnu^_Xz5-x@(1!-@#1plw)cl{%#99qt|H}n zm}98mwQl9C^ctwD3^e0qD_8?s zEC8?rMbRgq>Ve8Vr1)S}(K;6o3$rwn_HNw|%~LAAFOM8sggTyCAb-CT%x?G{KLypt zeJPY?W^(9qSc@#0sZ>B9AXRD#1Mx+ppmt$_+`4CN?zhXTrcE6Nw2gwuNW(aLF^mqk zaprm;^w(sZFxD_jYjPJ0O0=$lj$;j`f>#%1bc8XF49}MP-Mtknqa9Wfl4eNnmqSm<2O4_LvS5#sfC`&z1^;_*K=X=3tc-Go4 z7q`OG=9)Hv7NB}5(Y0+;6lmHcZm}M!4X*f-k32sFHo;N0;PncDbjY(_jekpvuOIsO)$sA)=MFq-b_T2&>2tTBREpYMBj^=BvnkHufTx8*@=z5p``OOds7ps%S=` zIty#dPbFy?+wA+@*1#((*%kE!=)r$8vYn@6Z3#NOljX@sTSqOC8X&b2ag5Od08$Kv zIte93fv{C{1GY^qv?_$s=4soirGoB?E9k3Mj-%Oy2o9EWr*zx2`H^Lv$(Cm^8plZI zJfA=F>a*KEtDetki0@_lk?231LZ!P~vRw^0k2BmaEAB^?{{SU^JT}U-95I8r$2;{T z{{WD^E<7ChdT$1RbY0R-IqDWEiipL@00F7!7Fp$})A;98;!@%-?wNMewD^w2-k05T z%W_rG@O&MxurZ>*51Q%29SQ4D8Wd!ZRkQ+{-qTvDVH}^*8^id)mBeU!XNcNKA0kLV&kwk=tKEdtX7!s@#!crb;(AQr7@F zw2#qSA8h&>WzDSD8}k6GSs~E7Ti&~GwZY`7bxMYq`TUBQj;9$F_9NrEoe<_wHrMC6 zX=0H?^ass;Q=m}agEqANRHh6GW{yItW2J%Q{VHhxO&C1AK~9WApS3ti^2vD1!DhlbZ) z$MacST5oHH(}!xB((rO&;@e#|wfK(AEFPg(vYky&!@!P8d!1SO?iUWe#cz&kTo{ah zf=?lTOZ>K7xN^C2#9Sxr*Iiug0D>NGlHig2&;k5xw9A#AFI;wS*_;?{J1OA}(^tCM zz5K~NFRJ6ulWVrrw14N#aoR2*r&ki&3J0TNyoSzMX(6!?tzx!{$|Od~4Oh{yO(Y7u zfi73jK?*dbq&O+kn;?ZcPSK{V4ItRNUP+^9(1+`5G+dF^#NYhtts^`1rQ6Ptj@E0P)Sa=oD$07#%rz1>Uz^9C1qMIDD;O7XJVx zdU$$_axq)PfL~i%bI2&mlT7-#?RG6DApY%_5VY#y_WZpTJMB$+bp9Q{TLVKt1N2*C zj+9&7bVvbG4Tv+`T{&rs_K)bW<@mlYouBrIaK1{4YJl4{?I0gpk`JC`9zI^yuNG7} zdYOB0=k*d&rI{J6WD1S@pEYQh)^=@#i6t*^@Uw5)*+z1r00>uxlwmI{jR-x9}}0Dl9w3?FI+N&kKmSv&)5s_XVToxpT`- zyfJXr(cbz1I#_N009DKSdujQ&pC3&m)h3c4Y#aoRwu1h9tv^Ge_MZe~EDQ|?&f2Qn z?K&_Wp-KT@`01kQ!unyBKFneGoU*mCLmwauj=opAwaZ6U>-#-1#_42z-qD)eujZ38 zEOe`P5xP*=VvGZ89W_38RlJ%+$88Q1**l!ez4=^q0Bdhmjpc1PwwVWGr<~t{ujY!$-s&(B)n`7}7q1q_YcB`p!X)>s5_w`lM$Z_tVNa6_Z z6NmFvv@*OpZqx|Gjf$-h-bgUqO$JF%nvpXNZNh-5nPo~Cf%bBPO&l-L z6A2{|P-kYS&Z%+SEIp(iVN6z4Oh|$%9>kbxGTeOhbto3Y?Tb{GbG@1x#%}dE3{c$!MSxWMeNe?wk7HP1k ze;X{aOs=tyN8Q6u7|`U*N1LtrtZieLwLK*%d*Y9gaC5x|{{SUa#)lZ2zn4uJAAoeQ z=Csp2t)avj7}CpZH5IWAvx&4O_8Z>&Ewbd3(w7R)Nna&%gBfF(c>h+;)lgZdSB|rLUID&F0ESrN@Jx7=Zr(K5Ne1+iN{Ac#a0v z%_G3^KT__#OQUwMV)*Nd5c6(h_YG+8{7>2b>;e~$7tn~O%G?>9wCfK;di_OE;RtG^UF!& z$8DhpO&2A~*M2yb))K3_hq|yfEu{A2$ug>;ZKY*n@u_uL*u1RWY37k*FOx+mSJZ4# zF-K7Q*!&e5L}<5J)uP7}j`5$_D?~9IEB1$)tqaDqa-w1xZpgDm!{{?Se+8T!)lCiH ztih?R|&MaD=H&D2j_A2+p9^a|$9H)3lxnZCpj8NgLvg<3b!h&DN24 z&30|Y;o;OZt-Orz*~8xCEPnQhQ@vEqE#TQ`zP12g0o1p5M}EFbD;wjPt{%tPC z^Sa8TVXE-G|s5^Axq z1fL}`BA9e8cf4#m4gUb>r$`%V!+p_jJ<~wsZi>N(y$~tv=!-+qB1({i2tb(-G}I0R z47~zM1A&StkyhJTR3)+Of~vK;{8gf~^(1PwXxVV)AKpGT4cy>9Wnr3YeZ})$K;BFN zpVq0j$Hn$B>dIYC5SILCkgN70Q;=*ABL+u zmX6S3w%c1pnn{9;ykGHEMS35wo*Z)kb?sryUvx}%y2)}i&m;iBd*;d!c;T3pQ>U5I z%K9xy0k5ffAaXX%lpAzLs~UVEx}5Zl0^0ZUJO2Q&L8iheV`#p5ex&_zKLT`B%i?jm zu6@I`-R)&Vt{gKxppC2m>#Fg&zP*kwhNg>MMw6Mr?=jdSG9@Rc`xTjBe}+tR^Cd7OCv0Jhz$9i6bm z`CaxwKBtgevTnBI%T8Ot960LPB%R>cT%XV`t9r$-$Gmo|B8R{SO9AM-zFfBI!;eYd zKv`pxS|LQV+bunxhDz+04RJjVi>^l&Nc9+l^~@UIR|T$_%F1IE&F1m&RI9}d^XB(l zN10Ts#COjlcW5K4Pv(mu&xwJ2z=TXy34sn5^9q%CM05{PRrZZf;3w{tS}JfC0@kd-<89GIR;nVF%22(-C(#zg zI!B^v6QxFV9->td3VN#zdEH(w9HX^N1+9B3V>W+2T8(b5iyNNLc+MSkd<(!xH@zVHJ70FtJfV^Fvwi62KE<8IlK{cYWv#ZT_&g>ZVU? zK04zj?mcx~m^m|4xm{CdOZjc;P<5`)a6alhk1lH@wwx`( zPIJI_xa(LBT~$$Drr_)uv9*n8%ajfIgiJ&27ZogTcc0(Xff1D0ebzU^el7^SbJ|MH zY}eKw{{VrFqw$#w*by??qG{YU& zDD1jVtu8tPa&Nygy7BowyRHn}$pBk|QS^o+CqGqLc| z!ra$O37E*h=SabKG@BEB^;=_h#*2x#rWqq8ju)}e=vP)ThD^6&_;GadN%wE~{{Ycr zoc6XC+fmzYGm(+gH+fCn>3fgGQ{uV%t$$|NA9GI8&E6yG;Hk-;c=d zcldKOJ)UP!N94IKJ8N@lT-8pxO!gqfJ44zM`-F~*zC4>;`xmGLkgkZ#SG!bcAq{$s zF9JzZLJaNAp;2PdNl^$cE$7S0Q%xb6Dddk|0S^`M>UqD2Rnthg!trLjSRWOQ!BCG( zbt|&eJatV1;=y9X57k3v1I-Yh!G;w|ndGSyamFyf2CO z&C6imMVvVi&i7ebyjyS|Wz@7zmPljEB+j|l-5mw?S=+U=-BZ#JRb3ic($cF)m4jhh zV-&RfC0i^}F4BU+%DY zK*&*2Xt`9`Yzo>oWSvt+&RI^4k(Eq_##o}mVi8?ZiyHQOzKRwQip?cnK|@O&$v$dy zqVAqQnYEQHPTgm-N^G&sG29HT^I7E-%Ceki$1jY!mYJF4lUZaQ=p8Pz(|jansPHpk z-#DMV z0R=A*Vp#wHo077Y?PYHn;=R>3^P~ZTt=zK9E3s$7)E&$*wC|J?>US%qd{(^o?cc;- zN5UN#Hg!boY4d1!bBD#Z3H@2}a}|>AC*->E_~yQ8 z#~R~mu{4fwFUfMoi7Fcl02}4X*ErwIsxGO+@Tgn4hb!sncEg9+IlxIwX71kjRY{V_Ha8FIGvX_F81y5{(E^(9pm}mAfchTl1~eq+XHQg z1n4*X7baYLcXp1k*}r8h!`dA09YekMo>$xhuA`dd%2=(q)GpE)P-Gp)c13_8%Ge@E z;=Q2L%Ep&S$bmfBr|P{NGIQq*_Fsfn5b0^l8VT`c=Wa?evejh%s`#57mZGGY8Z*Xn zW5Aiijt!Ri-y1)Y5<)mB4^IVx}+l8jF&!o1ZmQL-x=?-p8+7fNC z_;Xm*^wPf{t#7?VO}^{GrA)RJ9~RB_sOBD)KdO3PZ*St&WwE-;yH6?1s_O|PqfILt zHOWQfI@Ad*Km$}!nyH%86&hb_dRL{TXpuEpSt`6|RMJ%Hk(uW@;H$=wkmD${Zk+W003RhaWR4HOpHc%FE-zy4 zOB|~5J3kEYv~`Y1omhN=>=r-=oW4O&R0sSIl07|zqJ0c|lcqk;U7 z!C{sw?D@K^h}p*NbxA6<5~C1c()T?EtD<71rgF&t0Ok&-b+$O8X)s{pnJztfEv715 zlY~~#3wmg+F;lU}F;7(NmZ|D&GN{s|J*lJ--KLg?vMJI@m8qc9n5q+X0Vh=<4G0M8 zqK2IsNDMm4@&c7K1Cv05Riq1yD6mMUhU6@)B4p8DMM$}fQQ25R(jila#;>JU)Rgxi z1xp6EiMWl_?23{*2f4ZAJisGC>#ENvX_%#)4^zKW@!eBK^mt9tG}2O{x+QgnQk6>1 zwm4i{D`L+k(+ASaw+A*&L_u`2EfNI(0E!GvWmkPr8r_<0_^fBuqPvQx@2cRZ9_(Z| z`I{^<{{ZN3r8_ip)6&*mlj1Aq@BO8Gd`#4|4LV03dhvg>Nw?sW>Rth>eaT&Tx${=k zxoaaS9TT#=1=(LQ8|~yek5ydjNgH`(cH4fdo9gW!4Pmm#=7zV!pmnwv{Z-W%}! z1TnJXR~zkrTdUPp9iVX|Y2mp584q^M?#K>p2?SW*(^Z{bIhGz6EoRg8ztBwP{{Xh; zy8i$hsxH43ZfF6ypMFu$MHuy^}dS^Pp*zT>E%v2V_72|33PG*Npl=p>*;Mqs?!~>bE|9<+6NMb!bgePG_%0I zoey6%j(k$ZCnvVU3+{{WV}PCMUFxu+JLSn@Jmt>Y2Btr5MixjMI^+GC_=lV{mI zKXpgm6K@OM`PpTDqI-E_piKciC-0Chf5>GXrSJO;!+o@ta4NEVG$K6OZ&llC3 z^*L>SishMmc1(2?TxWvIO%!uSE2eZZ0t|-!9*#W}?HXOs_LAn?>2%UW*ECvIjLabH zbQjrYvrR@5#8lINBP$=|2nYK+gxX%U;%a~*a`dHn+Vxos@btigVxvi1#%{+Zkt3DTw$iwDb=Gz^jXoegtokZgu2b6sO79U- zrF78IGRiDW^qC}@B!#LBR;J5Iij_?rRmy3a&L*2FjUmXmHPu!I;xKOG)N~6x^O3BM zlY?OKz`)4b8VAh!tS(z#MUySC-*rTsrDe{>HrRV_=MQR1@H%_T&aypFxOHK5s`e^+&# zt45j@TXjV;$7zuSOqx%nZpt*%Z5;$_I?mRk4Uc7fS!G)cDZ4J*BMhqcqM$S_x28KM z4xcc(wDz5%aW*I-jGkvesg`|Gq~N?aLnF7|>l|{4RN=%rvGVQ(z&%xL-PyM8pPRa$ z!&TFb^gcy#cJJqwkLN?w?^oH6?uv`r<*5stFIZSK38;#DpMnxz%_Hf4yxBZ z4&#JUcTH* zO~p5?jwlPAF>GxNciHM}HVcE7KW@A@?wps5dnUvW*M>G$kO>TM%rw_RLSfGnmmRKs zD;&d?MmeXLb4dJ7pNi_oIg<>yteYNSNACXs1+Q6D$A3&p-MU$4W|K0xdUq#r3=PAa z*yLewirGQ&T;BRFOE+Cu-AyI-35MDUB)7cl0zDTeE?r%GZjj5|E-RM3yFY~DxNmzL zk?tPC2<3l@j{8QHotk3B(3m6uz6ZJ|i(c7%-47z$D{E=ePB+=@Ebh;c#Qsl+JfO@#RIKK4dRN=g+QK>Xmkk2_-N|96VbpT=!HQRuFR8+-7@B-fyCdZgNDrunbY-G1Ia)Q?$e2Rsb+*S)n^U-Ho zMZ0Is8T9=YYUTBb!+r8R(G4llMG$MNYzmxWwUNZ}0^?=TB9#3D0I;?0tCyoq{sqF0 za1N73@0D_8mYPV{#KyD$(O@^X>ae$MV8nyqs*~7dNOOoJYoJpCu_`jnRMl#^xTp)K z25B_-$2Fp>X4YmIg1l0d7AmyGM5f{Z`KzUZDdzH&+=v;?| zY7qSu;7yg_Fcg~yH4TZ%G#hhNXe6~X8!b_wZwa7@6G53mXhq3o7AzN0q=TDu(kK9m znM84EgyKm_?H#cJlbm2Kp6w_SL%t4s!*yo+<| z(N`o7k9d`@%Rv{o!W}suX~R(8$gJx~X9^Yq!_`u(w28$=gvb*@=7pOmLrp*i%R0`q zm~1Od8RXVs&(i%DUNw!1>{}Sj?4bE6+buO%WEofj(p1Jri7GqU1Afanbt|8e?Rgi} zqS1gxQsH1de{xCbTCT#d5ZBv~)Soi6kqMl2jy9H-qH=5^hDYDgrD+oQciI;b8j0ta zo0%kY&#Q_37fvc<#65Jm{{XFjX1GRo8OYFGt@v|X`7G(LHq%d4j265#9pw#cPS?5W zR?yqjeU;%1$~Okv9f>;ricPmT_B9+ax>C?gZPBELhdYyQb|k2&p5AzdqG!nYrS1l2 z7ZKmfDGetdkv={&V}xb{ok|s zuD(8Pv%DIPQ;J~iZA@?tMrJkNKNsM-yY1)9b(3e>H)d4ykO|{^?q1fGeVZHezv#K; z{{Ux4QaDS8ad_cu)Gzv%9NpM{zarn&bMt$xu~~oK<|R&TQAeKJoUUp4w=h1I3X=(A zUDk^S_KBi(yXd8b-0TB~;zEzkL$w|q$MmhOY>>(f6)hrLfZVc+*q!$l3DqB?sa$sa#PG*6F=@DWBD1T+ zY8+HGu4}Z@K&XnP!v~7~Y872#6`%wdoLd{dfoX~mDcnleb4qE~I1hwu-u2_ebznUg z4b7&TDMv+>_Pj@P#;S{}8Cqm^QJ`++K#z>pF`xkat{WdUFh7EE)_CJD(a_UTx;FCEB({?ts^?n&x{5MCd}taYq;t+7_u zTf?eGMjs{7)t#xLTi;cX&Eqc0LGxAGRuq-MfUgj-ia=JeB@nL_q^VP7*$ta=v9d~& zWEEO$+teEv)eV`E4U$@h$SO3}8+2+ku>`27r3F<@Nn}Z(C|ACO&gXKots{9uQZ1lS7Egvtl_*%!#!3wi9R|xPG&D^YS=B2= zhexW@7CB#OShhGKX=vSac2`KeB}is|bFkG{8|_;gd~Xo$*loEM9$sr}bfk=JHZ2@p zBjb|mn%1%}uxCjz?;oRY;R~Y}#Haz0qlIwJ?k2ElZAj;;=gDQ3fZXigbag!zQVr*3 zI9$$k+B9>u7TIeRuUGJ<7}(m;_JG%|{FJMVz);nkj^HEx1 z^^bx#L;zu&gQeLNPz#QQ>?HiuHm4m{@xFgEEp|`%S(O=8rVC2h95sZI(X!N^?H88* z35+mqFxI~0cz|#7SrFUyZ}_Tm{B4Z(;gx3cNNx?}cDwcFygpm)?{RvJ?hJd$<##3w zzd!mc^|qF@LOW`)xcgIRb<Qr@5u=0W@xSo2*syh@tx2BM$&N_fdU z?UV9a&Rw$0jnBBxu=-IGy$JiQPdLeeWoPNYh9-{+!~#vcmz-}^`NM6{7?v!X1DD(I(j zt3--*5Qkosq%Bcv@dp+6O08uX97yi7X&Ee3ZlW(fE2uYBt5kj?kl5-~V;tD~?1;gt z;fTR-xCh{=YqKAZKw;zR+vvI2BRJ?)qGF#JJ|A0O=Bt{tEoPE5)0d*ojH`8czPfYO zPCxxZsrc2_1da69p6j)i+P)8zx*riIPGT)Xz_pB+DfT061uUWXHlkX&}}t15Xum^uFd4zL*;a1XAl2Cl(MG+ns-VNS7G z4-WqT+HE23D22_l&8ID*R*8Jh#LtW37j6u)D~CtdGxq-gRIDqxQf#^Z0IewKwL0tK z{Z-L)`@lh0B8gG z{{TAb7j)@xI2bP2VrlBw*bmGE39hSqY#Qe@SZEwT`2vwRtms-YIP=QwdF|C>%kick zTs?=x?^k|BcwE0;_CFL{6g8LnLb6$`YOY@eClh}r{{Y!5r^iz_2JEx_c>e&NWp;A> za<_ia-^o+|07?2TY(BKV9aFPk^(tTJS@{LU&-K~ByQm8Z@vZtqDqv~DNj(qbw1YX= T;r=f1$V~7DATu2nj9>rRpQn?| literal 0 HcmV?d00001 diff --git a/src/lib/availability.ts b/src/lib/availability.ts new file mode 100644 index 0000000..23c31ed --- /dev/null +++ b/src/lib/availability.ts @@ -0,0 +1,12 @@ +// how a pokemon can be obtained in a game. no pokemon_game_entry row at all +// means the pokemon doesn't exist in that game (e.g. a gen 2 mon in gen 1). +// Shared between the db schema and the client, which receives availability as +// an index into this array to keep the page payload small. +export const availabilityValues = [ + 'catchable', + 'trade_only', + 'transfer_only', + 'event_only' +] as const; + +export type Availability = (typeof availabilityValues)[number]; diff --git a/src/lib/components/CopyButton.svelte b/src/lib/components/CopyButton.svelte new file mode 100644 index 0000000..638e31a --- /dev/null +++ b/src/lib/components/CopyButton.svelte @@ -0,0 +1,51 @@ + + +

{ + copied = false; + }} +> + + + + {copied ? 'Copied!' : value} + +
+ +
{copied ? `${label} copied` : ''}
diff --git a/src/lib/components/ui/button/button.svelte b/src/lib/components/ui/button/button.svelte index 86827f3..f578a57 100644 --- a/src/lib/components/ui/button/button.svelte +++ b/src/lib/components/ui/button/button.svelte @@ -1,15 +1,15 @@ diff --git a/src/lib/components/ui/button/index.ts b/src/lib/components/ui/button/index.ts index af1e188..d376139 100644 --- a/src/lib/components/ui/button/index.ts +++ b/src/lib/components/ui/button/index.ts @@ -1,34 +1,33 @@ -import { type VariantProps, tv } from "tailwind-variants"; -import type { Button as ButtonPrimitive } from "bits-ui"; -import Root from "./button.svelte"; +import { type VariantProps, tv } from 'tailwind-variants'; +import type { Button as ButtonPrimitive } from 'bits-ui'; +import Root from './button.svelte'; const buttonVariants = tv({ - base: "ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + base: 'ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', variants: { variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", - destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: - "border-input bg-background hover:bg-accent hover:text-accent-foreground border", - secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: 'border-input bg-background hover:bg-accent hover:text-accent-foreground border', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline' }, size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", - }, + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10' + } }, defaultVariants: { - variant: "default", - size: "default", - }, + variant: 'default', + size: 'default' + } }); -type Variant = VariantProps["variant"]; -type Size = VariantProps["size"]; +type Variant = VariantProps['variant']; +type Size = VariantProps['size']; type Props = ButtonPrimitive.Props & { variant?: Variant; @@ -45,5 +44,5 @@ export { Root as Button, type Props as ButtonProps, type Events as ButtonEvents, - buttonVariants, + buttonVariants }; diff --git a/src/lib/components/ui/command/command-dialog.svelte b/src/lib/components/ui/command/command-dialog.svelte index 68398a8..a136629 100644 --- a/src/lib/components/ui/command/command-dialog.svelte +++ b/src/lib/components/ui/command/command-dialog.svelte @@ -1,13 +1,13 @@ diff --git a/src/lib/components/ui/command/command-empty.svelte b/src/lib/components/ui/command/command-empty.svelte index 3a0819d..3c87766 100644 --- a/src/lib/components/ui/command/command-empty.svelte +++ b/src/lib/components/ui/command/command-empty.svelte @@ -1,12 +1,12 @@ - + diff --git a/src/lib/components/ui/command/command-group.svelte b/src/lib/components/ui/command/command-group.svelte index 22f49a4..8890047 100644 --- a/src/lib/components/ui/command/command-group.svelte +++ b/src/lib/components/ui/command/command-group.svelte @@ -1,6 +1,6 @@ -
+

Stan Runge

Date: Mon, 31 Aug 2026 14:24:03 +0000 Subject: [PATCH 7/9] update dockerfile --- .gitea/workflows/build.yml | 9 +- Dockerfile | 2 + .../migration.sql | 198 ++ .../snapshot.json | 2251 +++++++++++++++++ migrations/0000_famous_random.sql | 52 - migrations/meta/0000_snapshot.json | 279 -- migrations/meta/_journal.json | 13 - 7 files changed, 2453 insertions(+), 351 deletions(-) create mode 100644 drizzle/20260830223753_illegal_lord_tyger/migration.sql create mode 100644 drizzle/20260830223753_illegal_lord_tyger/snapshot.json delete mode 100755 migrations/0000_famous_random.sql delete mode 100755 migrations/meta/0000_snapshot.json delete mode 100755 migrations/meta/_journal.json diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 40787a4..3f12d99 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -9,16 +9,11 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: docker/login-action@v3 - with: - registry: git.stanrunge.dev - username: ${{ github.actor }} - password: ${{ secrets.REGISTRY_TOKEN }} - - uses: docker/build-push-action@v5 with: context: . - push: true + push: false + load: true tags: git.stanrunge.dev/stan/personal-website:${{ github.sha }} deploy: diff --git a/Dockerfile b/Dockerfile index 1287a7b..5a012f1 100755 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,9 @@ RUN bun run build FROM oven/bun WORKDIR /app +COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/build ./build +COPY package.json ./ EXPOSE 3000 ENV NODE_ENV=production CMD ["bun", "build/index.js"] \ No newline at end of file diff --git a/drizzle/20260830223753_illegal_lord_tyger/migration.sql b/drizzle/20260830223753_illegal_lord_tyger/migration.sql new file mode 100644 index 0000000..769e8d6 --- /dev/null +++ b/drizzle/20260830223753_illegal_lord_tyger/migration.sql @@ -0,0 +1,198 @@ +CREATE TYPE "availability" AS ENUM('catchable', 'trade_only', 'transfer_only', 'event_only');--> statement-breakpoint +CREATE TABLE "animals" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), + "species" text NOT NULL, + "breed" text, + "animal_name" text, + "description" text, + "ai_breed_suggestion" text, + "ai_breed_confidence" real, + "submitted_at" timestamp with time zone DEFAULT now() NOT NULL, + "accepted_at" timestamp with time zone, + "denied_at" timestamp with time zone +); +--> statement-breakpoint +CREATE TABLE "blog_articles" ( + "id" serial PRIMARY KEY, + "title" varchar(256), + "slug" varchar(256), + "content" varchar(8192), + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "certificates" ( + "id" serial PRIMARY KEY, + "name" varchar(256), + "progress" integer DEFAULT 0, + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "game" ( + "id" serial PRIMARY KEY, + "name" varchar(256) NOT NULL, + "generation" integer DEFAULT 1 NOT NULL +); +--> statement-breakpoint +CREATE TABLE "photos" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), + "sighting_id" uuid NOT NULL, + "r2_key" text NOT NULL, + "url" text NOT NULL, + "sort_order" integer DEFAULT 0 NOT NULL, + "uploaded_at" timestamp with time zone DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE "pokemon" ( + "id" serial PRIMARY KEY, + "number" integer NOT NULL, + "generation" integer DEFAULT 1 NOT NULL, + "name" varchar(256) NOT NULL, + "type1" varchar(256) NOT NULL, + "type2" varchar(256), + "hp" integer DEFAULT 0 NOT NULL, + "attack" integer DEFAULT 0 NOT NULL, + "defense" integer DEFAULT 0 NOT NULL, + "special_attack" integer DEFAULT 0 NOT NULL, + "special_defense" integer DEFAULT 0 NOT NULL, + "speed" integer DEFAULT 0 NOT NULL +); +--> statement-breakpoint +CREATE TABLE "pokemon_game_entry" ( + "id" serial PRIMARY KEY, + "pokemon_id" integer NOT NULL, + "game_id" integer NOT NULL, + "availability" "availability" DEFAULT 'catchable'::"availability" NOT NULL, + "note" varchar(256), + CONSTRAINT "pokemon_game_entry_pokemon_id_game_id_unique" UNIQUE("pokemon_id","game_id") +); +--> statement-breakpoint +CREATE TABLE "publications" ( + "id" serial PRIMARY KEY, + "name" varchar(256), + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "sightings" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid(), + "animal_id" uuid NOT NULL, + "reporter_name" text, + "seen_at" timestamp with time zone NOT NULL, + "lat" double precision NOT NULL, + "lng" double precision NOT NULL, + "submitted_at" timestamp with time zone DEFAULT now() NOT NULL, + "accepted_at" timestamp with time zone, + "denied_at" timestamp with time zone +); +--> statement-breakpoint +CREATE TABLE "tasks" ( + "id" serial PRIMARY KEY, + "name" varchar(256), + "current_points" integer DEFAULT 0, + "total_points" integer DEFAULT 1, + "notes" varchar(8192), + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "tasks_to_topics" ( + "task_id" integer NOT NULL, + "topic_id" integer NOT NULL +); +--> statement-breakpoint +CREATE TABLE "topics" ( + "id" serial PRIMARY KEY, + "name" varchar(256), + "emoji" varchar(256), + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "universities" ( + "id" serial PRIMARY KEY, + "name" varchar(256), + "progress" integer DEFAULT 0, + "created_at" timestamp DEFAULT now(), + "updated_at" timestamp DEFAULT now() +); +--> statement-breakpoint +CREATE TABLE "user_entry" ( + "id" serial PRIMARY KEY, + "pokemon_game_entry_id" integer NOT NULL, + "user_id" text NOT NULL, + CONSTRAINT "user_entry_pokemon_game_entry_id_user_id_unique" UNIQUE("pokemon_game_entry_id","user_id") +); +--> statement-breakpoint +CREATE TABLE "user_game" ( + "id" serial PRIMARY KEY, + "user_id" text NOT NULL, + "game_id" integer NOT NULL, + CONSTRAINT "user_game_user_id_game_id_unique" UNIQUE("user_id","game_id") +); +--> statement-breakpoint +CREATE TABLE "account" ( + "id" text PRIMARY KEY, + "account_id" text NOT NULL, + "provider_id" text NOT NULL, + "user_id" text NOT NULL, + "access_token" text, + "refresh_token" text, + "id_token" text, + "access_token_expires_at" timestamp, + "refresh_token_expires_at" timestamp, + "scope" text, + "password" text, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp NOT NULL +); +--> statement-breakpoint +CREATE TABLE "session" ( + "id" text PRIMARY KEY, + "expires_at" timestamp NOT NULL, + "token" text NOT NULL UNIQUE, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp NOT NULL, + "ip_address" text, + "user_agent" text, + "user_id" text NOT NULL +); +--> statement-breakpoint +CREATE TABLE "user" ( + "id" text PRIMARY KEY, + "name" text NOT NULL, + "email" text NOT NULL UNIQUE, + "email_verified" boolean DEFAULT false NOT NULL, + "image" text, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE "verification" ( + "id" text PRIMARY KEY, + "identifier" text NOT NULL, + "value" text NOT NULL, + "expires_at" timestamp NOT NULL, + "created_at" timestamp DEFAULT now() NOT NULL, + "updated_at" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE INDEX "pokemon_game_entry_game_id_index" ON "pokemon_game_entry" ("game_id");--> statement-breakpoint +CREATE INDEX "user_entry_user_id_index" ON "user_entry" ("user_id");--> statement-breakpoint +CREATE INDEX "user_game_user_id_index" ON "user_game" ("user_id");--> statement-breakpoint +CREATE INDEX "account_userId_idx" ON "account" ("user_id");--> statement-breakpoint +CREATE INDEX "session_userId_idx" ON "session" ("user_id");--> statement-breakpoint +CREATE INDEX "verification_identifier_idx" ON "verification" ("identifier");--> statement-breakpoint +ALTER TABLE "photos" ADD CONSTRAINT "photos_sighting_id_sightings_id_fkey" FOREIGN KEY ("sighting_id") REFERENCES "sightings"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "pokemon_game_entry" ADD CONSTRAINT "pokemon_game_entry_pokemon_id_pokemon_id_fkey" FOREIGN KEY ("pokemon_id") REFERENCES "pokemon"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "pokemon_game_entry" ADD CONSTRAINT "pokemon_game_entry_game_id_game_id_fkey" FOREIGN KEY ("game_id") REFERENCES "game"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "sightings" ADD CONSTRAINT "sightings_animal_id_animals_id_fkey" FOREIGN KEY ("animal_id") REFERENCES "animals"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "tasks_to_topics" ADD CONSTRAINT "tasks_to_topics_task_id_tasks_id_fkey" FOREIGN KEY ("task_id") REFERENCES "tasks"("id");--> statement-breakpoint +ALTER TABLE "tasks_to_topics" ADD CONSTRAINT "tasks_to_topics_topic_id_topics_id_fkey" FOREIGN KEY ("topic_id") REFERENCES "topics"("id");--> statement-breakpoint +ALTER TABLE "user_entry" ADD CONSTRAINT "user_entry_pokemon_game_entry_id_pokemon_game_entry_id_fkey" FOREIGN KEY ("pokemon_game_entry_id") REFERENCES "pokemon_game_entry"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "user_entry" ADD CONSTRAINT "user_entry_user_id_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "user_game" ADD CONSTRAINT "user_game_user_id_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "user_game" ADD CONSTRAINT "user_game_game_id_game_id_fkey" FOREIGN KEY ("game_id") REFERENCES "game"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE;--> statement-breakpoint +ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user"("id") ON DELETE CASCADE; \ No newline at end of file diff --git a/drizzle/20260830223753_illegal_lord_tyger/snapshot.json b/drizzle/20260830223753_illegal_lord_tyger/snapshot.json new file mode 100644 index 0000000..9b0e792 --- /dev/null +++ b/drizzle/20260830223753_illegal_lord_tyger/snapshot.json @@ -0,0 +1,2251 @@ +{ + "version": "8", + "dialect": "postgres", + "id": "288e35c9-ef00-4e98-8a34-55caa83c4842", + "prevIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "ddl": [ + { + "values": [ + "catchable", + "trade_only", + "transfer_only", + "event_only" + ], + "name": "availability", + "entityType": "enums", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "animals", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "blog_articles", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "certificates", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "game", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "photos", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "pokemon", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "pokemon_game_entry", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "publications", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "sightings", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "tasks", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "tasks_to_topics", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "topics", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "universities", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "user_entry", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "user_game", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "account", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "session", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "user", + "entityType": "tables", + "schema": "public" + }, + { + "isRlsEnabled": false, + "name": "verification", + "entityType": "tables", + "schema": "public" + }, + { + "type": "uuid", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "gen_random_uuid()", + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "species", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "breed", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "animal_name", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "description", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "ai_breed_suggestion", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "real", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "ai_breed_confidence", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "submitted_at", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "accepted_at", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "denied_at", + "entityType": "columns", + "schema": "public", + "table": "animals" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "title", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "slug", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "varchar(8192)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "content", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "blog_articles" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "certificates" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "certificates" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "progress", + "entityType": "columns", + "schema": "public", + "table": "certificates" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "certificates" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "certificates" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "game" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "game" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "1", + "generated": null, + "identity": null, + "name": "generation", + "entityType": "columns", + "schema": "public", + "table": "game" + }, + { + "type": "uuid", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "gen_random_uuid()", + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "uuid", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "sighting_id", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "r2_key", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "url", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "sort_order", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "uploaded_at", + "entityType": "columns", + "schema": "public", + "table": "photos" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "number", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "1", + "generated": null, + "identity": null, + "name": "generation", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "type1", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "type2", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "hp", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "attack", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "defense", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "special_attack", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "special_defense", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "speed", + "entityType": "columns", + "schema": "public", + "table": "pokemon" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "pokemon_id", + "entityType": "columns", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "game_id", + "entityType": "columns", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "type": "availability", + "typeSchema": "public", + "notNull": true, + "dimensions": 0, + "default": "'catchable'", + "generated": null, + "identity": null, + "name": "availability", + "entityType": "columns", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "note", + "entityType": "columns", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "publications" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "publications" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "publications" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "publications" + }, + { + "type": "uuid", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "gen_random_uuid()", + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "uuid", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "animal_id", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "reporter_name", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "seen_at", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "double precision", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "lat", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "double precision", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "lng", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "submitted_at", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "accepted_at", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "timestamp with time zone", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "denied_at", + "entityType": "columns", + "schema": "public", + "table": "sightings" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "current_points", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "1", + "generated": null, + "identity": null, + "name": "total_points", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "varchar(8192)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "notes", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "tasks" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "task_id", + "entityType": "columns", + "schema": "public", + "table": "tasks_to_topics" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "topic_id", + "entityType": "columns", + "schema": "public", + "table": "tasks_to_topics" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "topics" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "topics" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "emoji", + "entityType": "columns", + "schema": "public", + "table": "topics" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "topics" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "topics" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "universities" + }, + { + "type": "varchar(256)", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "universities" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "0", + "generated": null, + "identity": null, + "name": "progress", + "entityType": "columns", + "schema": "public", + "table": "universities" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "universities" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "universities" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "user_entry" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "pokemon_game_entry_id", + "entityType": "columns", + "schema": "public", + "table": "user_entry" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "user_id", + "entityType": "columns", + "schema": "public", + "table": "user_entry" + }, + { + "type": "serial", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "user_game" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "user_id", + "entityType": "columns", + "schema": "public", + "table": "user_game" + }, + { + "type": "integer", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "game_id", + "entityType": "columns", + "schema": "public", + "table": "user_game" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "account_id", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "provider_id", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "user_id", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "access_token", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "refresh_token", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id_token", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "access_token_expires_at", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "refresh_token_expires_at", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "scope", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "password", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "account" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "expires_at", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "token", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "ip_address", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "user_agent", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "user_id", + "entityType": "columns", + "schema": "public", + "table": "session" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "name", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "email", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "boolean", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "false", + "generated": null, + "identity": null, + "name": "email_verified", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "text", + "typeSchema": null, + "notNull": false, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "image", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "user" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "id", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "identifier", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "type": "text", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "value", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": null, + "generated": null, + "identity": null, + "name": "expires_at", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "created_at", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "type": "timestamp", + "typeSchema": null, + "notNull": true, + "dimensions": 0, + "default": "now()", + "generated": null, + "identity": null, + "name": "updated_at", + "entityType": "columns", + "schema": "public", + "table": "verification" + }, + { + "nameExplicit": false, + "columns": [ + { + "value": "game_id", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "pokemon_game_entry_game_id_index", + "entityType": "indexes", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "nameExplicit": false, + "columns": [ + { + "value": "user_id", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "user_entry_user_id_index", + "entityType": "indexes", + "schema": "public", + "table": "user_entry" + }, + { + "nameExplicit": false, + "columns": [ + { + "value": "user_id", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "user_game_user_id_index", + "entityType": "indexes", + "schema": "public", + "table": "user_game" + }, + { + "nameExplicit": true, + "columns": [ + { + "value": "user_id", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "account_userId_idx", + "entityType": "indexes", + "schema": "public", + "table": "account" + }, + { + "nameExplicit": true, + "columns": [ + { + "value": "user_id", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "session_userId_idx", + "entityType": "indexes", + "schema": "public", + "table": "session" + }, + { + "nameExplicit": true, + "columns": [ + { + "value": "identifier", + "isExpression": false, + "asc": true, + "nullsFirst": false, + "opclass": null + } + ], + "isUnique": false, + "where": null, + "with": "", + "method": "btree", + "concurrently": false, + "name": "verification_identifier_idx", + "entityType": "indexes", + "schema": "public", + "table": "verification" + }, + { + "nameExplicit": false, + "columns": [ + "sighting_id" + ], + "schemaTo": "public", + "tableTo": "sightings", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "photos_sighting_id_sightings_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "photos" + }, + { + "nameExplicit": false, + "columns": [ + "pokemon_id" + ], + "schemaTo": "public", + "tableTo": "pokemon", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "pokemon_game_entry_pokemon_id_pokemon_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "nameExplicit": false, + "columns": [ + "game_id" + ], + "schemaTo": "public", + "tableTo": "game", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "pokemon_game_entry_game_id_game_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "nameExplicit": false, + "columns": [ + "animal_id" + ], + "schemaTo": "public", + "tableTo": "animals", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "sightings_animal_id_animals_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "sightings" + }, + { + "nameExplicit": false, + "columns": [ + "task_id" + ], + "schemaTo": "public", + "tableTo": "tasks", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "NO ACTION", + "name": "tasks_to_topics_task_id_tasks_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "tasks_to_topics" + }, + { + "nameExplicit": false, + "columns": [ + "topic_id" + ], + "schemaTo": "public", + "tableTo": "topics", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "NO ACTION", + "name": "tasks_to_topics_topic_id_topics_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "tasks_to_topics" + }, + { + "nameExplicit": false, + "columns": [ + "pokemon_game_entry_id" + ], + "schemaTo": "public", + "tableTo": "pokemon_game_entry", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "user_entry_pokemon_game_entry_id_pokemon_game_entry_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "user_entry" + }, + { + "nameExplicit": false, + "columns": [ + "user_id" + ], + "schemaTo": "public", + "tableTo": "user", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "user_entry_user_id_user_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "user_entry" + }, + { + "nameExplicit": false, + "columns": [ + "user_id" + ], + "schemaTo": "public", + "tableTo": "user", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "user_game_user_id_user_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "user_game" + }, + { + "nameExplicit": false, + "columns": [ + "game_id" + ], + "schemaTo": "public", + "tableTo": "game", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "user_game_game_id_game_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "user_game" + }, + { + "nameExplicit": false, + "columns": [ + "user_id" + ], + "schemaTo": "public", + "tableTo": "user", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "account_user_id_user_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "account" + }, + { + "nameExplicit": false, + "columns": [ + "user_id" + ], + "schemaTo": "public", + "tableTo": "user", + "columnsTo": [ + "id" + ], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "name": "session_user_id_user_id_fkey", + "entityType": "fks", + "schema": "public", + "table": "session" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "animals_pkey", + "schema": "public", + "table": "animals", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "blog_articles_pkey", + "schema": "public", + "table": "blog_articles", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "certificates_pkey", + "schema": "public", + "table": "certificates", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "game_pkey", + "schema": "public", + "table": "game", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "photos_pkey", + "schema": "public", + "table": "photos", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "pokemon_pkey", + "schema": "public", + "table": "pokemon", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "pokemon_game_entry_pkey", + "schema": "public", + "table": "pokemon_game_entry", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "publications_pkey", + "schema": "public", + "table": "publications", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "sightings_pkey", + "schema": "public", + "table": "sightings", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "tasks_pkey", + "schema": "public", + "table": "tasks", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "topics_pkey", + "schema": "public", + "table": "topics", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "universities_pkey", + "schema": "public", + "table": "universities", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "user_entry_pkey", + "schema": "public", + "table": "user_entry", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "user_game_pkey", + "schema": "public", + "table": "user_game", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "account_pkey", + "schema": "public", + "table": "account", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "session_pkey", + "schema": "public", + "table": "session", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "user_pkey", + "schema": "public", + "table": "user", + "entityType": "pks" + }, + { + "columns": [ + "id" + ], + "nameExplicit": false, + "name": "verification_pkey", + "schema": "public", + "table": "verification", + "entityType": "pks" + }, + { + "nameExplicit": false, + "columns": [ + "pokemon_id", + "game_id" + ], + "nullsNotDistinct": false, + "name": "pokemon_game_entry_pokemon_id_game_id_unique", + "entityType": "uniques", + "schema": "public", + "table": "pokemon_game_entry" + }, + { + "nameExplicit": false, + "columns": [ + "pokemon_game_entry_id", + "user_id" + ], + "nullsNotDistinct": false, + "name": "user_entry_pokemon_game_entry_id_user_id_unique", + "entityType": "uniques", + "schema": "public", + "table": "user_entry" + }, + { + "nameExplicit": false, + "columns": [ + "user_id", + "game_id" + ], + "nullsNotDistinct": false, + "name": "user_game_user_id_game_id_unique", + "entityType": "uniques", + "schema": "public", + "table": "user_game" + }, + { + "nameExplicit": false, + "columns": [ + "token" + ], + "nullsNotDistinct": false, + "name": "session_token_key", + "schema": "public", + "table": "session", + "entityType": "uniques" + }, + { + "nameExplicit": false, + "columns": [ + "email" + ], + "nullsNotDistinct": false, + "name": "user_email_key", + "schema": "public", + "table": "user", + "entityType": "uniques" + } + ], + "renames": [] +} \ No newline at end of file diff --git a/migrations/0000_famous_random.sql b/migrations/0000_famous_random.sql deleted file mode 100755 index 8e77632..0000000 --- a/migrations/0000_famous_random.sql +++ /dev/null @@ -1,52 +0,0 @@ -CREATE TABLE IF NOT EXISTS "books" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "progress" integer DEFAULT 0, - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "certificates" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "progress" integer DEFAULT 0, - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "courses" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "university_id" integer, - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "publications" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "topics" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "emoji" varchar(256), - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "universities" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar(256), - "progress" integer DEFAULT 0, - "created_at" timestamp DEFAULT now(), - "updated_at" timestamp DEFAULT now() -); ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "courses" ADD CONSTRAINT "courses_university_id_universities_id_fk" FOREIGN KEY ("university_id") REFERENCES "public"."universities"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; diff --git a/migrations/meta/0000_snapshot.json b/migrations/meta/0000_snapshot.json deleted file mode 100755 index f1331a6..0000000 --- a/migrations/meta/0000_snapshot.json +++ /dev/null @@ -1,279 +0,0 @@ -{ - "id": "95e1c262-0787-412f-bb2f-7db06e20f3a0", - "prevId": "00000000-0000-0000-0000-000000000000", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.books": { - "name": "books", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "progress": { - "name": "progress", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.certificates": { - "name": "certificates", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "progress": { - "name": "progress", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.courses": { - "name": "courses", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "university_id": { - "name": "university_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "courses_university_id_universities_id_fk": { - "name": "courses_university_id_universities_id_fk", - "tableFrom": "courses", - "tableTo": "universities", - "columnsFrom": [ - "university_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.publications": { - "name": "publications", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.topics": { - "name": "topics", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "emoji": { - "name": "emoji", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.universities": { - "name": "universities", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false - }, - "progress": { - "name": "progress", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "schemas": {}, - "sequences": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/migrations/meta/_journal.json b/migrations/meta/_journal.json deleted file mode 100755 index f1906e8..0000000 --- a/migrations/meta/_journal.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "7", - "dialect": "postgresql", - "entries": [ - { - "idx": 0, - "version": "7", - "when": 1725668865024, - "tag": "0000_famous_random", - "breakpoints": true - } - ] -} \ No newline at end of file From 20dddaa263f141a17719742876617016401f9af3 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Mon, 31 Aug 2026 14:38:02 +0000 Subject: [PATCH 8/9] dynamically import the maptiler api key --- src/routes/projects/animaldex/+page.svelte | 4 ++-- src/routes/projects/animaldex/register/+page.svelte | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/projects/animaldex/+page.svelte b/src/routes/projects/animaldex/+page.svelte index 14833f6..fd4d87a 100644 --- a/src/routes/projects/animaldex/+page.svelte +++ b/src/routes/projects/animaldex/+page.svelte @@ -55,9 +55,9 @@ onMount(async () => { const { Map, Marker, config } = await import('@maptiler/sdk'); - const { PUBLIC_MAPTILER_API_KEY } = await import('$env/static/public'); + const { env } = await import('$env/dynamic/public'); - config.apiKey = PUBLIC_MAPTILER_API_KEY; + config.apiKey = env.PUBLIC_MAPTILER_API_KEY; MapMarker = Marker; const initMap = (center: [number, number], zoom: number) => { diff --git a/src/routes/projects/animaldex/register/+page.svelte b/src/routes/projects/animaldex/register/+page.svelte index 7e8fbc8..14ee809 100644 --- a/src/routes/projects/animaldex/register/+page.svelte +++ b/src/routes/projects/animaldex/register/+page.svelte @@ -68,8 +68,8 @@ async function initMap() { if (!mapContainer || lat === null || lng === null) return; const { Map, Marker, config } = await import('@maptiler/sdk'); - const { PUBLIC_MAPTILER_API_KEY } = await import('$env/static/public'); - config.apiKey = PUBLIC_MAPTILER_API_KEY; + const { env } = await import('$env/dynamic/public'); + config.apiKey = env.PUBLIC_MAPTILER_API_KEY; map = new Map({ container: mapContainer, From d793400336671fc3f5d5bf8c58d9f30308f97516 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Mon, 31 Aug 2026 14:40:31 +0000 Subject: [PATCH 9/9] update api key imprts and change URLs --- src/routes/projects/animaldex/+page.svelte | 6 +++--- src/routes/projects/animaldex/register/+page.svelte | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/projects/animaldex/+page.svelte b/src/routes/projects/animaldex/+page.svelte index fd4d87a..0355f3e 100644 --- a/src/routes/projects/animaldex/+page.svelte +++ b/src/routes/projects/animaldex/+page.svelte @@ -63,7 +63,7 @@ const initMap = (center: [number, number], zoom: number) => { map = new Map({ container: mapContainer, - style: 'https://api.maptiler.com/maps/satellite/style.json?key=' + PUBLIC_MAPTILER_API_KEY, + style: 'https://api.maptiler.com/maps/satellite/style.json?key=' + env.PUBLIC_MAPTILER_API_KEY, center, zoom }); @@ -217,7 +217,7 @@ I saw this animal too! diff --git a/src/routes/projects/animaldex/register/+page.svelte b/src/routes/projects/animaldex/register/+page.svelte index 14ee809..0a033fe 100644 --- a/src/routes/projects/animaldex/register/+page.svelte +++ b/src/routes/projects/animaldex/register/+page.svelte @@ -73,7 +73,7 @@ map = new Map({ container: mapContainer, - style: 'https://api.maptiler.com/maps/satellite/style.json?key=' + PUBLIC_MAPTILER_API_KEY, + style: 'https://api.maptiler.com/maps/satellite/style.json?key=' + env.PUBLIC_MAPTILER_API_KEY, center: [lng!, lat!], zoom: 15 });
- import { Command as CommandPrimitive } from "cmdk-sv"; - import { cn } from "$lib/utils.js"; + import { Command as CommandPrimitive } from 'cmdk-sv'; + import { cn } from '$lib/utils.js'; type $$Props = CommandPrimitive.ItemProps; @@ -13,7 +13,7 @@ - import { Command as CommandPrimitive } from "cmdk-sv"; - import { cn } from "$lib/utils.js"; + import { Command as CommandPrimitive } from 'cmdk-sv'; + import { cn } from '$lib/utils.js'; type $$Props = CommandPrimitive.ListProps; let className: string | undefined | null = undefined; @@ -8,7 +8,7 @@ diff --git a/src/lib/components/ui/command/command-separator.svelte b/src/lib/components/ui/command/command-separator.svelte index 71688b8..8c0ca29 100644 --- a/src/lib/components/ui/command/command-separator.svelte +++ b/src/lib/components/ui/command/command-separator.svelte @@ -1,10 +1,10 @@ - + diff --git a/src/lib/components/ui/command/command-shortcut.svelte b/src/lib/components/ui/command/command-shortcut.svelte index c89bd61..873aecf 100644 --- a/src/lib/components/ui/command/command-shortcut.svelte +++ b/src/lib/components/ui/command/command-shortcut.svelte @@ -1,6 +1,6 @@ diff --git a/src/lib/components/ui/command/command.svelte b/src/lib/components/ui/command/command.svelte index 3889696..deae703 100644 --- a/src/lib/components/ui/command/command.svelte +++ b/src/lib/components/ui/command/command.svelte @@ -1,10 +1,10 @@ @@ -20,7 +20,7 @@ {transition} {transitionConfig} class={cn( - "bg-background fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg sm:rounded-lg md:w-full", + 'bg-background fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg sm:rounded-lg md:w-full', className )} {...$$restProps} diff --git a/src/lib/components/ui/dialog/dialog-description.svelte b/src/lib/components/ui/dialog/dialog-description.svelte index 8bc70cc..678c27f 100644 --- a/src/lib/components/ui/dialog/dialog-description.svelte +++ b/src/lib/components/ui/dialog/dialog-description.svelte @@ -1,15 +1,15 @@ diff --git a/src/lib/components/ui/dialog/dialog-footer.svelte b/src/lib/components/ui/dialog/dialog-footer.svelte index a235d1f..329304a 100644 --- a/src/lib/components/ui/dialog/dialog-footer.svelte +++ b/src/lib/components/ui/dialog/dialog-footer.svelte @@ -1,15 +1,15 @@
diff --git a/src/lib/components/ui/dialog/dialog-header.svelte b/src/lib/components/ui/dialog/dialog-header.svelte index 6b4448c..ac663bc 100644 --- a/src/lib/components/ui/dialog/dialog-header.svelte +++ b/src/lib/components/ui/dialog/dialog-header.svelte @@ -1,13 +1,13 @@ -
+
diff --git a/src/lib/components/ui/dialog/dialog-overlay.svelte b/src/lib/components/ui/dialog/dialog-overlay.svelte index 1d376e4..e5cab9f 100644 --- a/src/lib/components/ui/dialog/dialog-overlay.svelte +++ b/src/lib/components/ui/dialog/dialog-overlay.svelte @@ -1,14 +1,14 @@ @@ -16,6 +16,6 @@ diff --git a/src/lib/components/ui/dialog/dialog-portal.svelte b/src/lib/components/ui/dialog/dialog-portal.svelte index eb5d0a5..00774dd 100644 --- a/src/lib/components/ui/dialog/dialog-portal.svelte +++ b/src/lib/components/ui/dialog/dialog-portal.svelte @@ -1,5 +1,5 @@ diff --git a/src/lib/components/ui/dialog/dialog-title.svelte b/src/lib/components/ui/dialog/dialog-title.svelte index 06574f3..e111dd7 100644 --- a/src/lib/components/ui/dialog/dialog-title.svelte +++ b/src/lib/components/ui/dialog/dialog-title.svelte @@ -1,15 +1,15 @@ diff --git a/src/lib/components/ui/dialog/index.ts b/src/lib/components/ui/dialog/index.ts index b17ba5e..6cbc5a7 100644 --- a/src/lib/components/ui/dialog/index.ts +++ b/src/lib/components/ui/dialog/index.ts @@ -1,12 +1,12 @@ -import { Dialog as DialogPrimitive } from "bits-ui"; +import { Dialog as DialogPrimitive } from 'bits-ui'; -import Title from "./dialog-title.svelte"; -import Portal from "./dialog-portal.svelte"; -import Footer from "./dialog-footer.svelte"; -import Header from "./dialog-header.svelte"; -import Overlay from "./dialog-overlay.svelte"; -import Content from "./dialog-content.svelte"; -import Description from "./dialog-description.svelte"; +import Title from './dialog-title.svelte'; +import Portal from './dialog-portal.svelte'; +import Footer from './dialog-footer.svelte'; +import Header from './dialog-header.svelte'; +import Overlay from './dialog-overlay.svelte'; +import Content from './dialog-content.svelte'; +import Description from './dialog-description.svelte'; const Root = DialogPrimitive.Root; const Trigger = DialogPrimitive.Trigger; @@ -33,5 +33,5 @@ export { Overlay as DialogOverlay, Content as DialogContent, Description as DialogDescription, - Close as DialogClose, + Close as DialogClose }; diff --git a/src/lib/components/ui/popover/index.ts b/src/lib/components/ui/popover/index.ts index 63aecf9..5db432e 100644 --- a/src/lib/components/ui/popover/index.ts +++ b/src/lib/components/ui/popover/index.ts @@ -1,5 +1,5 @@ -import { Popover as PopoverPrimitive } from "bits-ui"; -import Content from "./popover-content.svelte"; +import { Popover as PopoverPrimitive } from 'bits-ui'; +import Content from './popover-content.svelte'; const Root = PopoverPrimitive.Root; const Trigger = PopoverPrimitive.Trigger; const Close = PopoverPrimitive.Close; @@ -13,5 +13,5 @@ export { Root as Popover, Content as PopoverContent, Trigger as PopoverTrigger, - Close as PopoverClose, + Close as PopoverClose }; diff --git a/src/lib/components/ui/popover/popover-content.svelte b/src/lib/components/ui/popover/popover-content.svelte index 1d86206..bd52021 100644 --- a/src/lib/components/ui/popover/popover-content.svelte +++ b/src/lib/components/ui/popover/popover-content.svelte @@ -1,11 +1,11 @@ @@ -13,7 +13,7 @@ {transition} {transitionConfig} class={cn( - "bg-popover text-popover-foreground z-50 w-72 rounded-md border p-4 shadow-md outline-none", + 'bg-popover text-popover-foreground z-50 w-72 rounded-md border p-4 shadow-md outline-none', className )} {...$$restProps} diff --git a/src/lib/components/ui/table/index.ts b/src/lib/components/ui/table/index.ts index 14695c8..99239ae 100644 --- a/src/lib/components/ui/table/index.ts +++ b/src/lib/components/ui/table/index.ts @@ -1,11 +1,11 @@ -import Root from "./table.svelte"; -import Body from "./table-body.svelte"; -import Caption from "./table-caption.svelte"; -import Cell from "./table-cell.svelte"; -import Footer from "./table-footer.svelte"; -import Head from "./table-head.svelte"; -import Header from "./table-header.svelte"; -import Row from "./table-row.svelte"; +import Root from './table.svelte'; +import Body from './table-body.svelte'; +import Caption from './table-caption.svelte'; +import Cell from './table-cell.svelte'; +import Footer from './table-footer.svelte'; +import Head from './table-head.svelte'; +import Header from './table-header.svelte'; +import Row from './table-row.svelte'; export { Root, @@ -24,5 +24,5 @@ export { Footer as TableFooter, Head as TableHead, Header as TableHeader, - Row as TableRow, + Row as TableRow }; diff --git a/src/lib/components/ui/table/table-body.svelte b/src/lib/components/ui/table/table-body.svelte index 6c20c01..6200964 100644 --- a/src/lib/components/ui/table/table-body.svelte +++ b/src/lib/components/ui/table/table-body.svelte @@ -1,7 +1,7 @@ - + {@render children?.()} diff --git a/src/lib/components/ui/table/table-caption.svelte b/src/lib/components/ui/table/table-caption.svelte index 2b0cba5..f9ccc09 100644 --- a/src/lib/components/ui/table/table-caption.svelte +++ b/src/lib/components/ui/table/table-caption.svelte @@ -1,7 +1,7 @@ - + {@render children?.()} diff --git a/src/lib/components/ui/table/table-cell.svelte b/src/lib/components/ui/table/table-cell.svelte index 0536552..aba743b 100644 --- a/src/lib/components/ui/table/table-cell.svelte +++ b/src/lib/components/ui/table/table-cell.svelte @@ -1,7 +1,7 @@ - + {@render children?.()} diff --git a/src/lib/components/ui/table/table-head.svelte b/src/lib/components/ui/table/table-head.svelte index 5300ce6..608ee52 100644 --- a/src/lib/components/ui/table/table-head.svelte +++ b/src/lib/components/ui/table/table-head.svelte @@ -1,7 +1,7 @@ - + {@render children?.()} diff --git a/src/lib/components/ui/table/table-row.svelte b/src/lib/components/ui/table/table-row.svelte index 9e693bc..1ac97a4 100644 --- a/src/lib/components/ui/table/table-row.svelte +++ b/src/lib/components/ui/table/table-row.svelte @@ -1,7 +1,7 @@
- +
{@render children?.()}
diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts deleted file mode 100755 index f5a902f..0000000 --- a/src/lib/db/schema.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { relations } from 'drizzle-orm'; -import { integer, pgSchema, serial, timestamp, varchar } from 'drizzle-orm/pg-core'; - -export const personalWebsiteSchema = pgSchema('personal_website'); - -export const tasks = personalWebsiteSchema.table('tasks', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - currentPoints: integer('current_points').default(0), - totalPoints: integer('total_points').default(1), - notes: varchar('notes', { length: 8192 }), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}); - -export const tasksRelations = relations(tasks, ({ many }) => ({ - tasksToTopics: many(tasksToTopics) -})); - -export const topics = personalWebsiteSchema.table('topics', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - emoji: varchar('emoji', { length: 256 }), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}); - -export const topicsRelations = relations(topics, ({ many }) => ({ - topicsToTasks: many(tasksToTopics) -})); - -export const tasksToTopics = personalWebsiteSchema.table('tasks_to_topics', { - taskId: integer('task_id') - .notNull() - .references(() => tasks.id), - topicId: integer('topic_id') - .notNull() - .references(() => topics.id) -}); - -export const taskToTopicsRelations = relations(tasksToTopics, ({ one }) => ({ - task: one(tasks, { - fields: [tasksToTopics.taskId], - references: [tasks.id] - }), - topic: one(topics, { - fields: [tasksToTopics.topicId], - references: [topics.id] - }) -})); - -export const universities = personalWebsiteSchema.table('universities', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - progress: integer('progress').default(0), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}); - -export const certificates = personalWebsiteSchema.table('certificates', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - progress: integer('progress').default(0), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}); - -export const publications = personalWebsiteSchema.table('publications', { - id: serial('id').primaryKey(), - name: varchar('name', { length: 256 }), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}); - -// Legacy ^ -// New - -export const blogArticles = personalWebsiteSchema.table('blog_articles', { - id: serial('id').primaryKey(), - title: varchar('title', { length: 256 }), - slug: varchar('slug', { length: 256 }), - content: varchar('content', { length: 8192 }), - createdAt: timestamp('created_at').defaultNow(), - updatedAt: timestamp('updated_at').defaultNow() -}) \ No newline at end of file diff --git a/src/lib/server/auth.ts b/src/lib/server/auth.ts new file mode 100644 index 0000000..e628302 --- /dev/null +++ b/src/lib/server/auth.ts @@ -0,0 +1,38 @@ +import { env } from '$env/dynamic/private'; +import { betterAuth } from 'better-auth/minimal'; +import { drizzleAdapter } from 'better-auth/adapters/drizzle'; +import { sveltekitCookies } from 'better-auth/svelte-kit'; +import { getRequestEvent } from '$app/server'; +import { db } from '$lib/server/db'; +import * as schema from '$lib/server/db/schema'; +import type { RequestEvent } from '@sveltejs/kit'; + +export const auth = betterAuth({ + baseURL: env.ORIGIN, + secret: env.BETTER_AUTH_SECRET, + database: drizzleAdapter(db, { provider: 'pg', schema }), + emailAndPassword: { enabled: true }, + socialProviders: { + github: { + clientId: env.GITHUB_CLIENT_ID, + clientSecret: env.GITHUB_CLIENT_SECRET + } + }, + plugins: [ + sveltekitCookies(getRequestEvent) // make sure this is the last plugin in the array + ] +}); + +export function isAdmin(event: RequestEvent): boolean { + const token = event.cookies.get('admin_token'); + return !!token && token === env.ADMIN_SECRET; +} + +export function requireAdmin(event: RequestEvent): void { + if (!isAdmin(event)) { + throw new Response(JSON.stringify({ error: 'Unauthorized' }), { + status: 401, + headers: { 'Content-Type': 'application/json' } + }); + } +} diff --git a/src/lib/server/breed-detector.ts b/src/lib/server/breed-detector.ts new file mode 100644 index 0000000..432b69b --- /dev/null +++ b/src/lib/server/breed-detector.ts @@ -0,0 +1,50 @@ +import { env } from '$env/dynamic/private'; +import { createAnthropic } from '@ai-sdk/anthropic'; +import { generateText } from 'ai'; + +const anthropic = createAnthropic({ + apiKey: env.ANTHROPIC_API_KEY +}); + +export interface BreedDetectionResult { + breed: string; + confidence: number; +} + +const PROMPT = `You are an expert at identifying animal breeds and species from photos. + +Look at the animal in this image and identify its breed or species as specifically as possible. + +Respond ONLY with a JSON object — no markdown, no explanation: +{"breed": "Golden Retriever", "confidence": 0.92} + +Rules: +- "breed" should be the most specific correct identification (e.g. "Siberian Husky", not just "dog") +- "confidence" is your certainty from 0.0 to 1.0 +- If you genuinely cannot identify the animal, respond: {"breed": null, "confidence": 0}`; + +export async function detectBreed(imageUrl: string): Promise { + try { + const { text } = await generateText({ + model: anthropic('claude-haiku-4-5'), + messages: [ + { + role: 'user', + content: [ + { type: 'image', image: new URL(imageUrl) }, + { type: 'text', text: PROMPT } + ] + } + ] + }); + + const parsed = JSON.parse(text.trim()); + + return { + breed: parsed.breed, + confidence: Math.min(1, Math.max(0, Number(parsed.confidence) || 0)) + }; + } catch { + return null; + } +} diff --git a/src/lib/server/db/auth.schema.ts b/src/lib/server/db/auth.schema.ts new file mode 100644 index 0000000..6827070 --- /dev/null +++ b/src/lib/server/db/auth.schema.ts @@ -0,0 +1,73 @@ +import { pgTable, text, timestamp, boolean, index } from 'drizzle-orm/pg-core'; + +export const user = pgTable('user', { + id: text('id').primaryKey(), + name: text('name').notNull(), + email: text('email').notNull().unique(), + emailVerified: boolean('email_verified').default(false).notNull(), + image: text('image'), + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at') + .defaultNow() + .$onUpdate(() => /* @__PURE__ */ new Date()) + .notNull() +}); + +export const session = pgTable( + 'session', + { + id: text('id').primaryKey(), + expiresAt: timestamp('expires_at').notNull(), + token: text('token').notNull().unique(), + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at') + .$onUpdate(() => /* @__PURE__ */ new Date()) + .notNull(), + ipAddress: text('ip_address'), + userAgent: text('user_agent'), + userId: text('user_id') + .notNull() + .references(() => user.id, { onDelete: 'cascade' }) + }, + (table) => [index('session_userId_idx').on(table.userId)] +); + +export const account = pgTable( + 'account', + { + id: text('id').primaryKey(), + accountId: text('account_id').notNull(), + providerId: text('provider_id').notNull(), + userId: text('user_id') + .notNull() + .references(() => user.id, { onDelete: 'cascade' }), + accessToken: text('access_token'), + refreshToken: text('refresh_token'), + idToken: text('id_token'), + accessTokenExpiresAt: timestamp('access_token_expires_at'), + refreshTokenExpiresAt: timestamp('refresh_token_expires_at'), + scope: text('scope'), + password: text('password'), + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at') + .$onUpdate(() => /* @__PURE__ */ new Date()) + .notNull() + }, + (table) => [index('account_userId_idx').on(table.userId)] +); + +export const verification = pgTable( + 'verification', + { + id: text('id').primaryKey(), + identifier: text('identifier').notNull(), + value: text('value').notNull(), + expiresAt: timestamp('expires_at').notNull(), + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at') + .defaultNow() + .$onUpdate(() => /* @__PURE__ */ new Date()) + .notNull() + }, + (table) => [index('verification_identifier_idx').on(table.identifier)] +); diff --git a/src/lib/db/index.ts b/src/lib/server/db/index.ts similarity index 80% rename from src/lib/db/index.ts rename to src/lib/server/db/index.ts index 0e87b45..ba7e76e 100755 --- a/src/lib/db/index.ts +++ b/src/lib/server/db/index.ts @@ -1,10 +1,11 @@ import { env } from '$env/dynamic/private'; -import * as schema from './schema'; +import { relations } from './relations'; import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; const client = postgres(env.DB_URL, { prepare: false }); + export const db = drizzle({ - schema, + relations, client }); diff --git a/src/lib/server/db/relations.ts b/src/lib/server/db/relations.ts new file mode 100644 index 0000000..b40ea02 --- /dev/null +++ b/src/lib/server/db/relations.ts @@ -0,0 +1,99 @@ +import { defineRelations } from 'drizzle-orm'; +import * as schema from './schema'; + +export const relations = defineRelations(schema, (r) => ({ + // ── Progress ────────────────────────────────── + tasks: { + tasksToTopics: r.many.tasksToTopics() + }, + topics: { + topicsToTasks: r.many.tasksToTopics() + }, + tasksToTopics: { + task: r.one.tasks({ + from: r.tasksToTopics.taskId, + to: r.tasks.id + }), + topic: r.one.topics({ + from: r.tasksToTopics.topicId, + to: r.topics.id + }) + }, + + // ── CatchEmAll ──────────────────────────────── + game: { + entries: r.many.pokemonGameEntry() + }, + pokemon: { + entry: r.many.pokemonGameEntry() + }, + pokemonGameEntry: { + game: r.one.game({ + from: r.pokemonGameEntry.gameId, + to: r.game.id + }), + pokemon: r.one.pokemon({ + from: r.pokemonGameEntry.pokemonId, + to: r.pokemon.id + }), + userEntries: r.many.userEntry() + }, + userEntry: { + pokemonGameEntry: r.one.pokemonGameEntry({ + from: r.userEntry.pokemonGameEntryId, + to: r.pokemonGameEntry.id + }), + user: r.one.user({ + from: r.userEntry.userId, + to: r.user.id + }) + }, + userGame: { + user: r.one.user({ + from: r.userGame.userId, + to: r.user.id + }), + game: r.one.game({ + from: r.userGame.gameId, + to: r.game.id + }) + }, + + // ── Auth ────────────────────────────────────── + user: { + sessions: r.many.session(), + accounts: r.many.account(), + entries: r.many.userEntry(), + games: r.many.userGame() + }, + session: { + user: r.one.user({ + from: r.session.userId, + to: r.user.id + }) + }, + account: { + user: r.one.user({ + from: r.account.userId, + to: r.user.id + }) + }, + + // ── Animaldex ───────────────────────────────── + animals: { + sightings: r.many.sightings() + }, + sightings: { + animal: r.one.animals({ + from: r.sightings.animalId, + to: r.animals.id + }), + photos: r.many.photos() + }, + photos: { + sighting: r.one.sightings({ + from: r.photos.sightingId, + to: r.sightings.id + }) + } +})); diff --git a/src/lib/server/db/schema.ts b/src/lib/server/db/schema.ts new file mode 100755 index 0000000..108bafd --- /dev/null +++ b/src/lib/server/db/schema.ts @@ -0,0 +1,232 @@ +import { + doublePrecision, + index, + integer, + pgEnum, + pgTable, + real, + serial, + text, + timestamp, + unique, + uuid, + varchar +} from 'drizzle-orm/pg-core'; + +import { user } from './auth.schema'; +import { availabilityValues } from '../../availability'; + +export const tasks = pgTable('tasks', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + currentPoints: integer('current_points').default(0), + totalPoints: integer('total_points').default(1), + notes: varchar('notes', { length: 8192 }), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +export const topics = pgTable('topics', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + emoji: varchar('emoji', { length: 256 }), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +export const tasksToTopics = pgTable('tasks_to_topics', { + taskId: integer('task_id') + .notNull() + .references(() => tasks.id), + topicId: integer('topic_id') + .notNull() + .references(() => topics.id) +}); + +export const universities = pgTable('universities', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + progress: integer('progress').default(0), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +export const certificates = pgTable('certificates', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + progress: integer('progress').default(0), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +export const publications = pgTable('publications', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +// Legacy ^ +// New + +export const blogArticles = pgTable('blog_articles', { + id: serial('id').primaryKey(), + title: varchar('title', { length: 256 }), + slug: varchar('slug', { length: 256 }), + content: varchar('content', { length: 8192 }), + createdAt: timestamp('created_at').defaultNow(), + updatedAt: timestamp('updated_at').defaultNow() +}); + +// CatchEmAll + +export const availability = pgEnum('availability', availabilityValues); + +export const pokemon = pgTable('pokemon', { + id: serial('id').primaryKey(), + number: integer('number').notNull(), + generation: integer('generation').notNull().default(1), + name: varchar('name', { length: 256 }).notNull(), + type1: varchar('type1', { length: 256 }).notNull(), + type2: varchar('type2', { length: 256 }), + hp: integer('hp').notNull().default(0), + attack: integer('attack').notNull().default(0), + defense: integer('defense').notNull().default(0), + specialAttack: integer('special_attack').notNull().default(0), + specialDefense: integer('special_defense').notNull().default(0), + speed: integer('speed').notNull().default(0) +}); + +export const game = pgTable('game', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }).notNull(), + generation: integer('generation').notNull().default(1) +}); + +export const pokemonGameEntry = pgTable( + 'pokemon_game_entry', + { + id: serial('id').primaryKey(), + pokemonId: integer('pokemon_id') + .notNull() + .references(() => pokemon.id, { onDelete: 'cascade' }), + gameId: integer('game_id') + .notNull() + .references(() => game.id, { onDelete: 'cascade' }), + availability: availability('availability').notNull().default('catchable'), + // optional extra detail for the tooltip, e.g. "trade with a Blue version owner" + note: varchar('note', { length: 256 }) + }, + (table) => [unique().on(table.pokemonId, table.gameId), index().on(table.gameId)] +); + +export const userEntry = pgTable( + 'user_entry', + { + id: serial('id').primaryKey(), + pokemonGameEntryId: integer('pokemon_game_entry_id') + .notNull() + .references(() => pokemonGameEntry.id, { onDelete: 'cascade' }), + userId: text('user_id') + .notNull() + .references(() => user.id, { onDelete: 'cascade' }) + }, + (table) => [unique().on(table.pokemonGameEntryId, table.userId), index().on(table.userId)] +); + +// which games a user has chosen to track ("rules") +export const userGame = pgTable( + 'user_game', + { + id: serial('id').primaryKey(), + userId: text('user_id') + .notNull() + .references(() => user.id, { onDelete: 'cascade' }), + gameId: integer('game_id') + .notNull() + .references(() => game.id, { onDelete: 'cascade' }) + }, + (table) => [unique().on(table.userId, table.gameId), index().on(table.userId)] +); + +// Animaldex + +export const animals = pgTable('animals', { + id: uuid('id').primaryKey().defaultRandom(), + + species: text('species').notNull(), + breed: text('breed'), + animalName: text('animal_name'), + description: text('description'), + + // AI detection stored on the animal (from the first/primary photo) + aiBreedSuggestion: text('ai_breed_suggestion'), + aiBreedConfidence: real('ai_breed_confidence'), + + // Moderation — the animal entity is moderated once. + // Accepted = visible on map (as long as it has accepted sightings too). + // Denied animals are hidden but not deleted. + submittedAt: timestamp('submitted_at', { withTimezone: true }).notNull().defaultNow(), + acceptedAt: timestamp('accepted_at', { withTimezone: true }), + deniedAt: timestamp('denied_at', { withTimezone: true }) +}); + +// The PostGIS `location geography(Point, 4326)` column is managed outside Drizzle +// via a trigger in the migration — it auto-syncs from lat/lng on insert/update. +// Never write to `location` directly from application code. + +export const sightings = pgTable('sightings', { + id: uuid('id').primaryKey().defaultRandom(), + animalId: uuid('animal_id') + .notNull() + .references(() => animals.id, { onDelete: 'cascade' }), + + reporterName: text('reporter_name'), + + seenAt: timestamp('seen_at', { withTimezone: true }).notNull(), + lat: doublePrecision('lat').notNull(), + lng: doublePrecision('lng').notNull(), + // `location` geography column exists in DB but not mapped in Drizzle — use sql`` for spatial queries + + submittedAt: timestamp('submitted_at', { withTimezone: true }).notNull().defaultNow(), + acceptedAt: timestamp('accepted_at', { withTimezone: true }), + deniedAt: timestamp('denied_at', { withTimezone: true }) +}); + +export const photos = pgTable('photos', { + id: uuid('id').primaryKey().defaultRandom(), + sightingId: uuid('sighting_id') + .notNull() + .references(() => sightings.id, { onDelete: 'cascade' }), + r2Key: text('r2_key').notNull(), + url: text('url').notNull(), + sortOrder: integer('sort_order').notNull().default(0), + uploadedAt: timestamp('uploaded_at', { withTimezone: true }).notNull().defaultNow() +}); + +export type Pokemon = typeof pokemon.$inferSelect; +export type Game = typeof game.$inferSelect; +export type PokemonGameEntry = typeof pokemonGameEntry.$inferSelect; +export type UserEntry = typeof userEntry.$inferSelect; +export type UserGame = typeof userGame.$inferSelect; +export type Availability = (typeof availability.enumValues)[number]; + +export type Animal = typeof animals.$inferSelect; +export type NewAnimal = typeof animals.$inferInsert; +export type Sighting = typeof sightings.$inferSelect; +export type NewSighting = typeof sightings.$inferInsert; +export type Photo = typeof photos.$inferSelect; + +// ── Helpers ─────────────────────────────────────────────────────────────────── + +export type ModerationStatus = 'pending' | 'accepted' | 'denied'; + +export function getModerationStatus( + row: Pick +): ModerationStatus { + if (row.deniedAt) return 'denied'; + if (row.acceptedAt) return 'accepted'; + return 'pending'; +} + +export * from './auth.schema'; diff --git a/src/lib/db/seed.ts b/src/lib/server/db/seed.ts similarity index 50% rename from src/lib/db/seed.ts rename to src/lib/server/db/seed.ts index 378af74..b6cb1c7 100755 --- a/src/lib/db/seed.ts +++ b/src/lib/server/db/seed.ts @@ -1,11 +1,14 @@ -import { topics } from "./schema" -import * as schema from './schema' +import { topics } from './schema'; +import * as schema from './schema'; import { drizzle } from 'drizzle-orm/postgres-js'; import postgres from 'postgres'; const client = postgres('postgresql://postgres:postgres@localhost:5432/db'); const db = drizzle(client, { schema }); -await db.insert(topics).values([{ name: 'Math', emoji: '👍' }, { name: 'Programming', emoji: '👍' }]) +await db.insert(topics).values([ + { name: 'Math', emoji: '👍' }, + { name: 'Programming', emoji: '👍' } +]); -process.exit(0) +process.exit(0); diff --git a/src/lib/server/r2.ts b/src/lib/server/r2.ts new file mode 100644 index 0000000..e057e6b --- /dev/null +++ b/src/lib/server/r2.ts @@ -0,0 +1,86 @@ +import { S3Client, PutObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3'; +import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; +import { env } from '$env/dynamic/private'; +import { randomUUID } from 'crypto'; + +function isConfigured(): boolean { + return !!( + env.R2_ACCESS_KEY_ID && + env.R2_SECRET_ACCESS_KEY && + env.R2_ACCOUNT_ID && + env.R2_BUCKET && + env.R2_PUBLIC_URL + ); +} + +let _client: S3Client | null = null; + +function getClient(): S3Client { + if (!_client) { + if (!isConfigured()) throw new Error('R2 is not configured — check your .env'); + _client = new S3Client({ + region: 'auto', + endpoint: `https://${env.R2_ACCOUNT_ID}.r2.cloudflarestorage.com`, + credentials: { + accessKeyId: env.R2_ACCESS_KEY_ID!, + secretAccessKey: env.R2_SECRET_ACCESS_KEY! + } + }); + } + return _client; +} + +const ALLOWED_MIME_TYPES = ['image/jpeg', 'image/png', 'image/webp', 'image/heic'] as const; +export type AllowedMimeType = (typeof ALLOWED_MIME_TYPES)[number]; + +export function isAllowedMimeType(mime: string): mime is AllowedMimeType { + return (ALLOWED_MIME_TYPES as readonly string[]).includes(mime); +} + +const EXT: Record = { + 'image/jpeg': 'jpg', + 'image/png': 'png', + 'image/webp': 'webp', + 'image/heic': 'heic' +}; + +export interface PresignedUpload { + /** R2 object key — store this in the DB */ + key: string; + /** One-time presigned PUT URL — browser PUTs file directly here */ + uploadUrl: string; + /** Permanent public URL to store in photos table */ + publicUrl: string; +} + +/** + * Generate a presigned PUT URL for a single photo. + * + * Flow: + * 1. Client POSTs to /api/upload/presign → gets { key, uploadUrl, publicUrl } + * 2. Client PUTs file to uploadUrl (direct to R2, server never sees the bytes) + * 3. Client submits sighting with photo keys included + * 4. Server stores key + publicUrl in photos table + */ +export async function createPresignedUpload(mimeType: AllowedMimeType): Promise { + const key = `sightings/${randomUUID()}.${EXT[mimeType]}`; + + const uploadUrl = await getSignedUrl( + getClient(), + new PutObjectCommand({ + Bucket: env.R2_BUCKET, + Key: key, + ContentType: mimeType + }), + { expiresIn: 3600 } + ); + + return { key, uploadUrl, publicUrl: `${env.R2_PUBLIC_URL}/${key}` }; +} + +/** + * Delete a photo from R2 by its key. + */ +export async function deleteObject(key: string): Promise { + await getClient().send(new DeleteObjectCommand({ Bucket: env.R2_BUCKET, Key: key })); +} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 8871245..eba19d8 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,7 +1,7 @@ -import { type ClassValue, clsx } from "clsx"; -import { twMerge } from "tailwind-merge"; -import { cubicOut } from "svelte/easing"; -import type { TransitionConfig } from "svelte/transition"; +import { type ClassValue, clsx } from 'clsx'; +import { twMerge } from 'tailwind-merge'; +import { cubicOut } from 'svelte/easing'; +import type { TransitionConfig } from 'svelte/transition'; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); @@ -19,13 +19,9 @@ export const flyAndScale = ( params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 } ): TransitionConfig => { const style = getComputedStyle(node); - const transform = style.transform === "none" ? "" : style.transform; + const transform = style.transform === 'none' ? '' : style.transform; - const scaleConversion = ( - valueA: number, - scaleA: [number, number], - scaleB: [number, number] - ) => { + const scaleConversion = (valueA: number, scaleA: [number, number], scaleB: [number, number]) => { const [minA, maxA] = scaleA; const [minB, maxB] = scaleB; @@ -35,13 +31,11 @@ export const flyAndScale = ( return valueB; }; - const styleToString = ( - style: Record - ): string => { + const styleToString = (style: Record): string => { return Object.keys(style).reduce((str, key) => { if (style[key] === undefined) return str; return str + `${key}:${style[key]};`; - }, ""); + }, ''); }; return { @@ -59,4 +53,4 @@ export const flyAndScale = ( }, easing: cubicOut }; -}; \ No newline at end of file +}; diff --git a/src/lib/validation/sighting.ts b/src/lib/validation/sighting.ts new file mode 100644 index 0000000..85470a4 --- /dev/null +++ b/src/lib/validation/sighting.ts @@ -0,0 +1,76 @@ +import { z } from 'zod'; + +// ── Presigned upload ────────────────────────────────────────────────────────── + +export const presignedUploadSchema = z.object({ + mimeType: z.enum(['image/jpeg', 'image/png', 'image/webp', 'image/heic']) +}); + +// ── Register new animal (+ first sighting) ──────────────────────────────────── + +export const registerAnimalSchema = z.object({ + // Animal identity + species: z.string().min(1).max(100), + breed: z.string().max(100).optional(), + animalName: z.string().max(100).optional(), + description: z.string().max(1000).optional(), + + // AI suggestion to persist for admin review + aiBreedSuggestion: z.string().max(100).optional(), + aiBreedConfidence: z.number().min(0).max(1).optional(), + + // First sighting details + reporterName: z.string().max(100).optional(), + seenAt: z.iso.datetime(), + lat: z.number().min(-90).max(90), + lng: z.number().min(-180).max(180), + + // Device GPS — used server-side for 30km check, never stored + deviceLat: z.number().min(-90).max(90), + deviceLng: z.number().min(-180).max(180), + + // Already-uploaded R2 keys (1–10 photos, browser uploaded directly) + photoKeys: z.array(z.string().min(1)).min(1).max(10) +}); + +export type RegisterAnimalInput = z.infer; + +// ── Add sighting to existing animal ────────────────────────────────────────── + +export const addSightingSchema = z.object({ + animalId: z.string().uuid(), + reporterName: z.string().max(100).optional(), + seenAt: z.iso.datetime(), + lat: z.number().min(-90).max(90), + lng: z.number().min(-180).max(180), + deviceLat: z.number().min(-90).max(90), + deviceLng: z.number().min(-180).max(180), + photoKeys: z.array(z.string().min(1)).max(10).optional() +}); + +export type AddSightingInput = z.infer; + +// ── Map viewport query ──────────────────────────────────────────────────────── + +export const mapQuerySchema = z.object({ + minLat: z.coerce.number().min(-90).max(90), + minLng: z.coerce.number().min(-180).max(180), + maxLat: z.coerce.number().min(-90).max(90), + maxLng: z.coerce.number().min(-180).max(180), + + // Optional filters + species: z.string().optional(), + breed: z.string().optional(), + name: z.string().optional(), + reporter: z.string().optional(), + fromDate: z.iso.datetime().optional(), + toDate: z.iso.datetime().optional() +}); + +export type MapQuery = z.infer; + +// ── Admin ───────────────────────────────────────────────────────────────────── + +export const moderationActionSchema = z.object({ + action: z.enum(['accept', 'deny']) +}); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 6b1e466..0a9a855 100755 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,58 +1,65 @@ -
- - osu - - - steam - - - email - - - twitch - - - spotify - - - signal - - - bluesky - -
- discord -
- - whatsapp - - - threads - - - github - - - youtube - - - linkedin - - - instagram - - - facebook - - - x - +
+ Stan Runge +
{@render children()} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 6d906a4..7e7bb43 100755 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,5 +1,9 @@ -
- Blog + + +
+ Blog
@@ -34,10 +38,16 @@
-
- diff --git a/src/routes/blog/+page.server.ts b/src/routes/blog/+page.server.ts index ba87e87..bb617f5 100644 --- a/src/routes/blog/+page.server.ts +++ b/src/routes/blog/+page.server.ts @@ -1,26 +1,29 @@ -import { db } from "$lib/db" -import { blogArticles } from "$lib/db/schema"; -import { redirect } from "@sveltejs/kit"; -import type { PageServerLoad } from "./$types.js"; +import { db } from '$lib/server/db'; +import { blogArticles } from '$lib/server/db/schema'; +import { redirect } from '@sveltejs/kit'; +import type { PageServerLoad } from './$types.js'; export const load: PageServerLoad = async () => { - const articles = await db.select().from(blogArticles) + const articles = await db.select().from(blogArticles); return { blogArticles: articles - } -} + }; +}; export const actions = { default: async ({ request }): Promise => { const formData = await request.formData(); - const blogArticle = await db.insert(blogArticles).values({ - title: formData.get('title')?.toString(), - slug: formData.get('slug')?.toString(), - content: formData.get('content')?.toString() - }).returning(); + const blogArticle = await db + .insert(blogArticles) + .values({ + title: formData.get('title')?.toString(), + slug: formData.get('slug')?.toString(), + content: formData.get('content')?.toString() + }) + .returning(); return redirect(303, `/blog/${blogArticle[0].slug}`); } -} +}; diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte index e148cb7..8f2f95a 100644 --- a/src/routes/blog/+page.svelte +++ b/src/routes/blog/+page.svelte @@ -1,5 +1,6 @@ -
+ @@ -38,7 +38,7 @@