From d1006742ea03bb515ef0a0d7480d0495658c49f0 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Thu, 26 Sep 2024 15:07:17 +0200 Subject: [PATCH] Dockerize new sveltekit app --- .DS_Store | Bin 0 -> 6148 bytes .env | 5 +- .env.example | 4 - .gitignore | 38 +- app/certificates/page.tsx | 20 - compose.yml | 35 + packages/web/.env.example | 4 + packages/web/.gitignore | 37 + packages/web/Dockerfile | 0 README.md => packages/web/README.md | 0 {app => packages/web/app}/cokno/page.tsx | 8 +- {app => packages/web/app}/globals.css | 0 {app => packages/web/app}/layout.tsx | 1 - {app => packages/web/app}/page.tsx | 0 {app => packages/web/app}/projects/page.tsx | 0 .../web/app}/publications/page.tsx | 0 .../web/components.json | 0 .../web/components}/Icon.tsx | 0 .../web/components}/ProjectCard.tsx | 0 .../web/components}/TabItem.tsx | 0 next.config.js => packages/web/next.config.js | 0 .../web/package-lock.json | 0 package.json => packages/web/package.json | 0 .../web/postcss.config.js | 0 {public => packages/web/public}/moon.jpg | Bin {public => packages/web/public}/stan.jpg | Bin packages/web/supabase/server.ts | 36 + .../web/tailwind.config.js | 0 tsconfig.json => packages/web/tsconfig.json | 0 packages/web_new/.gitignore | 21 + packages/web_new/.npmrc | 1 + packages/web_new/.prettierignore | 4 + packages/web_new/.prettierrc | 8 + packages/web_new/Dockerfile | 22 + packages/web_new/README.md | 38 + packages/web_new/bun.lockb | Bin 0 -> 143734 bytes packages/web_new/drizzle.config.ts | 9 + packages/web_new/eslint.config.js | 33 + .../web_new/migrations/0000_famous_random.sql | 52 + .../migrations/meta/0000_snapshot.json | 279 + .../web_new/migrations/meta/_journal.json | 13 + packages/web_new/package-lock.json | 5543 +++++++++++++++++ packages/web_new/package.json | 45 + packages/web_new/playwright.config.ts | 12 + packages/web_new/src/app.d.ts | 13 + packages/web_new/src/app.html | 12 + packages/web_new/src/index.test.ts | 7 + packages/web_new/src/lib/db/db.server.ts | 6 + packages/web_new/src/lib/db/queries/insert.ts | 0 packages/web_new/src/lib/db/queries/select.ts | 0 packages/web_new/src/lib/db/schema.ts | 48 + packages/web_new/src/routes/+page.server.ts | 10 + packages/web_new/src/routes/+page.svelte | 8 + packages/web_new/static/favicon.png | Bin 0 -> 1571 bytes packages/web_new/svelte.config.js | 18 + packages/web_new/tests/test.ts | 6 + packages/web_new/tsconfig.json | 19 + packages/web_new/vite.config.ts | 9 + 58 files changed, 6355 insertions(+), 69 deletions(-) create mode 100644 .DS_Store delete mode 100644 app/certificates/page.tsx create mode 100644 compose.yml create mode 100644 packages/web/.env.example create mode 100644 packages/web/.gitignore create mode 100644 packages/web/Dockerfile rename README.md => packages/web/README.md (100%) rename {app => packages/web/app}/cokno/page.tsx (55%) rename {app => packages/web/app}/globals.css (100%) rename {app => packages/web/app}/layout.tsx (98%) rename {app => packages/web/app}/page.tsx (100%) rename {app => packages/web/app}/projects/page.tsx (100%) rename {app => packages/web/app}/publications/page.tsx (100%) rename components.json => packages/web/components.json (100%) rename {components => packages/web/components}/Icon.tsx (100%) rename {components => packages/web/components}/ProjectCard.tsx (100%) rename {components => packages/web/components}/TabItem.tsx (100%) rename next.config.js => packages/web/next.config.js (100%) rename package-lock.json => packages/web/package-lock.json (100%) rename package.json => packages/web/package.json (100%) rename postcss.config.js => packages/web/postcss.config.js (100%) rename {public => packages/web/public}/moon.jpg (100%) rename {public => packages/web/public}/stan.jpg (100%) create mode 100644 packages/web/supabase/server.ts rename tailwind.config.js => packages/web/tailwind.config.js (100%) rename tsconfig.json => packages/web/tsconfig.json (100%) create mode 100644 packages/web_new/.gitignore create mode 100644 packages/web_new/.npmrc create mode 100644 packages/web_new/.prettierignore create mode 100644 packages/web_new/.prettierrc create mode 100644 packages/web_new/Dockerfile create mode 100644 packages/web_new/README.md create mode 100755 packages/web_new/bun.lockb create mode 100644 packages/web_new/drizzle.config.ts create mode 100644 packages/web_new/eslint.config.js create mode 100644 packages/web_new/migrations/0000_famous_random.sql create mode 100644 packages/web_new/migrations/meta/0000_snapshot.json create mode 100644 packages/web_new/migrations/meta/_journal.json create mode 100644 packages/web_new/package-lock.json create mode 100644 packages/web_new/package.json create mode 100644 packages/web_new/playwright.config.ts create mode 100644 packages/web_new/src/app.d.ts create mode 100644 packages/web_new/src/app.html create mode 100644 packages/web_new/src/index.test.ts create mode 100644 packages/web_new/src/lib/db/db.server.ts create mode 100644 packages/web_new/src/lib/db/queries/insert.ts create mode 100644 packages/web_new/src/lib/db/queries/select.ts create mode 100644 packages/web_new/src/lib/db/schema.ts create mode 100644 packages/web_new/src/routes/+page.server.ts create mode 100644 packages/web_new/src/routes/+page.svelte create mode 100644 packages/web_new/static/favicon.png create mode 100644 packages/web_new/svelte.config.js create mode 100644 packages/web_new/tests/test.ts create mode 100644 packages/web_new/tsconfig.json create mode 100644 packages/web_new/vite.config.ts diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4de6273ecafd7aaecd4a34e18547923acae72f03 GIT binary patch literal 6148 zcmeHKu}VWR6uqfMOBJkxpbq-L$whS1@hP>Viyxr2)he{6pj`yvjV^wGlkSR(PR`P$ zAPz1Lf*;`I7kF+GY+_q=5|Ml1=H%txo1AybOBy0l%Z>6pQI3c*aK>~NO&8-hdxxdm z$S6?p9M#JFT1nUH9hov93Wx%KQ33vT(=)iau#8wY1#o7wWdoKLSPuX+(ivRp1>FO1Mq{ literal 0 HcmV?d00001 diff --git a/.env b/.env index 954da63..76b20b1 100644 --- a/.env +++ b/.env @@ -1,4 +1 @@ -# Update these with your Supabase details from your project settings > API -# https://app.supabase.com/project/_/settings/api -NEXT_PUBLIC_SUPABASE_URL=https://clktuffafcjnaqzxxcqp.supabase.co -NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImNsa3R1ZmZhZmNqbmFxenh4Y3FwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDUyNDgyNDIsImV4cCI6MjAyMDgyNDI0Mn0.4vOKsORMYklgfnkcEJdJcKFc5T2yiWhcIZi3fxxS7oc +DAT \ No newline at end of file diff --git a/.env.example b/.env.example index 6937031..e69de29 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +0,0 @@ -# Update these with your Supabase details from your project settings > API -# https://app.supabase.com/project/_/settings/api -NEXT_PUBLIC_SUPABASE_URL=your-project-url -NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key diff --git a/.gitignore b/.gitignore index 949efa2..2eea525 100644 --- a/.gitignore +++ b/.gitignore @@ -1,37 +1 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts -bun.lockb +.env \ No newline at end of file diff --git a/app/certificates/page.tsx b/app/certificates/page.tsx deleted file mode 100644 index 2fb408c..0000000 --- a/app/certificates/page.tsx +++ /dev/null @@ -1,20 +0,0 @@ -export default async function Page() { - return ( -
-

Certificates (1)

- - {[1, 2, 3].map((certificate) => ( -
- Mathematics for Machine Learning: Linear Algebra -

Imperial College London

- - Link to Certificate - -
- ))} -
- ); -} diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..c54e1c4 --- /dev/null +++ b/compose.yml @@ -0,0 +1,35 @@ +services: + traefik: + image: traefik:v2.5 + command: + - "--api.insecure=true" + - "--providers.docker=true" + - "--entrypoints.web.address=:80" + ports: + - "80:80" + - "8080:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + db: + image: postgres:15 + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + volumes: + - db-data:/var/lib/postgresql/data + + frontend: + build: ./packages/web_new + container_name: personal-website + restart: unless-stopped + environment: + - DATABASE_URL=postgresql://postgres:postgres@db:5432/db + labels: + - "traefik.enable=true" + - "traefik.http.routers.priceless-newton.rule=Host(`stanrunge.dev`)" + - "traefik.http.routers.localhost.rule=Host(`localhost`)" + - "traefik.http.services.priceless-newton.loadbalancer.server.port=3000" + +volumes: + db-data: diff --git a/packages/web/.env.example b/packages/web/.env.example new file mode 100644 index 0000000..6937031 --- /dev/null +++ b/packages/web/.env.example @@ -0,0 +1,4 @@ +# Update these with your Supabase details from your project settings > API +# https://app.supabase.com/project/_/settings/api +NEXT_PUBLIC_SUPABASE_URL=your-project-url +NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key diff --git a/packages/web/.gitignore b/packages/web/.gitignore new file mode 100644 index 0000000..949efa2 --- /dev/null +++ b/packages/web/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts +bun.lockb diff --git a/packages/web/Dockerfile b/packages/web/Dockerfile new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/packages/web/README.md similarity index 100% rename from README.md rename to packages/web/README.md diff --git a/app/cokno/page.tsx b/packages/web/app/cokno/page.tsx similarity index 55% rename from app/cokno/page.tsx rename to packages/web/app/cokno/page.tsx index c963a31..3987dae 100644 --- a/app/cokno/page.tsx +++ b/packages/web/app/cokno/page.tsx @@ -2,12 +2,14 @@ export default async function Page() { return (

The Collective Knowledge of Stan Runge

- Pronounced as "konyo" +

- The Collective Knowledge of Stan Runge (CoKno) is a project started by - Stan designed to serve as a personal Zettelkast system, similiar to + "The Collective Knowledge of Stan Runge" (CoKno) is a project + designed to serve as a personal Zettelkast system, similiar to Wikipedia.

+ +

Topics { }

); } diff --git a/app/globals.css b/packages/web/app/globals.css similarity index 100% rename from app/globals.css rename to packages/web/app/globals.css diff --git a/app/layout.tsx b/packages/web/app/layout.tsx similarity index 98% rename from app/layout.tsx rename to packages/web/app/layout.tsx index 28a20c8..50aa63d 100644 --- a/app/layout.tsx +++ b/packages/web/app/layout.tsx @@ -52,7 +52,6 @@ export default function RootLayout({
-
diff --git a/app/page.tsx b/packages/web/app/page.tsx similarity index 100% rename from app/page.tsx rename to packages/web/app/page.tsx diff --git a/app/projects/page.tsx b/packages/web/app/projects/page.tsx similarity index 100% rename from app/projects/page.tsx rename to packages/web/app/projects/page.tsx diff --git a/app/publications/page.tsx b/packages/web/app/publications/page.tsx similarity index 100% rename from app/publications/page.tsx rename to packages/web/app/publications/page.tsx diff --git a/components.json b/packages/web/components.json similarity index 100% rename from components.json rename to packages/web/components.json diff --git a/components/Icon.tsx b/packages/web/components/Icon.tsx similarity index 100% rename from components/Icon.tsx rename to packages/web/components/Icon.tsx diff --git a/components/ProjectCard.tsx b/packages/web/components/ProjectCard.tsx similarity index 100% rename from components/ProjectCard.tsx rename to packages/web/components/ProjectCard.tsx diff --git a/components/TabItem.tsx b/packages/web/components/TabItem.tsx similarity index 100% rename from components/TabItem.tsx rename to packages/web/components/TabItem.tsx diff --git a/next.config.js b/packages/web/next.config.js similarity index 100% rename from next.config.js rename to packages/web/next.config.js diff --git a/package-lock.json b/packages/web/package-lock.json similarity index 100% rename from package-lock.json rename to packages/web/package-lock.json diff --git a/package.json b/packages/web/package.json similarity index 100% rename from package.json rename to packages/web/package.json diff --git a/postcss.config.js b/packages/web/postcss.config.js similarity index 100% rename from postcss.config.js rename to packages/web/postcss.config.js diff --git a/public/moon.jpg b/packages/web/public/moon.jpg similarity index 100% rename from public/moon.jpg rename to packages/web/public/moon.jpg diff --git a/public/stan.jpg b/packages/web/public/stan.jpg similarity index 100% rename from public/stan.jpg rename to packages/web/public/stan.jpg diff --git a/packages/web/supabase/server.ts b/packages/web/supabase/server.ts new file mode 100644 index 0000000..16e8a59 --- /dev/null +++ b/packages/web/supabase/server.ts @@ -0,0 +1,36 @@ +import { createServerClient, type CookieOptions } from "@supabase/ssr"; +import { cookies } from "next/headers"; + +export function createClient() { + const cookieStore = cookies(); + + return createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + return cookieStore.get(name)?.value; + }, + set(name: string, value: string, options: CookieOptions) { + try { + cookieStore.set({ name, value, ...options }); + } catch (error) { + // The `set` method was called from a Server Component. + // This can be ignored if you have middleware refreshing + // user sessions. + } + }, + remove(name: string, options: CookieOptions) { + try { + cookieStore.set({ name, value: "", ...options }); + } catch (error) { + // The `delete` method was called from a Server Component. + // This can be ignored if you have middleware refreshing + // user sessions. + } + }, + }, + } + ); +} diff --git a/tailwind.config.js b/packages/web/tailwind.config.js similarity index 100% rename from tailwind.config.js rename to packages/web/tailwind.config.js diff --git a/tsconfig.json b/packages/web/tsconfig.json similarity index 100% rename from tsconfig.json rename to packages/web/tsconfig.json diff --git a/packages/web_new/.gitignore b/packages/web_new/.gitignore new file mode 100644 index 0000000..79518f7 --- /dev/null +++ b/packages/web_new/.gitignore @@ -0,0 +1,21 @@ +node_modules + +# Output +.output +.vercel +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/packages/web_new/.npmrc b/packages/web_new/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/packages/web_new/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/packages/web_new/.prettierignore b/packages/web_new/.prettierignore new file mode 100644 index 0000000..ab78a95 --- /dev/null +++ b/packages/web_new/.prettierignore @@ -0,0 +1,4 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock diff --git a/packages/web_new/.prettierrc b/packages/web_new/.prettierrc new file mode 100644 index 0000000..9573023 --- /dev/null +++ b/packages/web_new/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/packages/web_new/Dockerfile b/packages/web_new/Dockerfile new file mode 100644 index 0000000..14703c6 --- /dev/null +++ b/packages/web_new/Dockerfile @@ -0,0 +1,22 @@ +FROM node:18 AS build + +WORKDIR /app + +COPY package*.json . + +RUN npm ci + +COPY . . +RUN npm run build +RUN npm prune --production + +FROM node:18 AS run + +ENV NODE_ENV=production + +WORKDIR /app +COPY --from=build /app/build ./build +COPY --from=build /app/package.json ./package.json +COPY --from=build /app/node_modules ./node_modules +RUN ulimit -c unlimited +ENTRYPOINT ["node", "build"] \ No newline at end of file diff --git a/packages/web_new/README.md b/packages/web_new/README.md new file mode 100644 index 0000000..5ce6766 --- /dev/null +++ b/packages/web_new/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/packages/web_new/bun.lockb b/packages/web_new/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..383a7c2cc5551b3c73cc98bf06b8c05e4435b719 GIT binary patch literal 143734 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 z 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/packages/web_new/migrations/meta/0000_snapshot.json b/packages/web_new/migrations/meta/0000_snapshot.json new file mode 100644 index 0000000..f1331a6 --- /dev/null +++ b/packages/web_new/migrations/meta/0000_snapshot.json @@ -0,0 +1,279 @@ +{ + "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/packages/web_new/migrations/meta/_journal.json b/packages/web_new/migrations/meta/_journal.json new file mode 100644 index 0000000..f1906e8 --- /dev/null +++ b/packages/web_new/migrations/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "7", + "dialect": "postgresql", + "entries": [ + { + "idx": 0, + "version": "7", + "when": 1725668865024, + "tag": "0000_famous_random", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/packages/web_new/package-lock.json b/packages/web_new/package-lock.json new file mode 100644 index 0000000..c306cc1 --- /dev/null +++ b/packages/web_new/package-lock.json @@ -0,0 +1,5543 @@ +{ + "name": "web-new", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web-new", + "version": "0.0.1", + "dependencies": { + "@sveltejs/adapter-node": "^5.2.4", + "drizzle-orm": "^0.33.0", + "postgres": "^3.4.4" + }, + "devDependencies": { + "@playwright/test": "1.47.0", + "@sveltejs/kit": "2.5.26", + "@sveltejs/vite-plugin-svelte": "3.1.2", + "@types/eslint": "9.6.1", + "drizzle-kit": "^0.24.2", + "eslint": "9.10.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-svelte": "2.43.0", + "globals": "15.9.0", + "prettier": "3.3.3", + "prettier-plugin-svelte": "3.2.6", + "svelte": "4.2.19", + "svelte-check": "4.0.1", + "typescript": "5.5.4", + "typescript-eslint": "8.4.0", + "vite": "5.4.3", + "vitest": "2.0.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "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.1", + "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.10.1.tgz", + "integrity": "sha512-AHy0vjc+n/4w/8Mif+w86qpppHuF3AyXbcWW+R/W7GNA3F5/p2nuhlkCJaTXSLZheB4l1rtHzOfr9A7NwoR/Zg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@esbuild-kit/core-utils": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.3.2.tgz", + "integrity": "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.18.20", + "source-map-support": "^0.5.21" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "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/esm-loader": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.6.5.tgz", + "integrity": "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@esbuild-kit/core-utils": "^3.3.2", + "get-tsconfig": "^4.7.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "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", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "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", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", + "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.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==", + "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.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "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/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "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", + "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/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "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", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.0.tgz", + "integrity": "sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.47.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "26.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.3.tgz", + "integrity": "sha512-2BJcolt43MY+y5Tz47djHkodCC3c1VKVrBDKpVqHKpQ9z9S158kCCqB8NF6/gzxLdNlYW9abB3Ibh+kOWLp8KQ==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^10.4.1", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "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": "15.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.0.tgz", + "integrity": "sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==", + "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", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz", + "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==", + "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/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/adapter-node": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.2.4.tgz", + "integrity": "sha512-L9Kngx1ce2SMCbyGBbRaJovl5lzdwH650SzOa50txAAssMfWLj2f8yPsA2eCX8EhT6AxD4RHLNrVa5W8VUYz8w==", + "license": "MIT", + "dependencies": { + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "rollup": "^4.9.5" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.5.26", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.26.tgz", + "integrity": "sha512-8l1JTIM2L+bS8ebq1E+nGjv/YSKSnD9Q19bYIUkc41vaEG2JjVUx6ikvPIJv2hkQAuqJLzoPrXlKk4KcyWOv3Q==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.0.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "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", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.2.tgz", + "integrity": "sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==", + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.10", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", + "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "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/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/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "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==", + "dev": true, + "license": "MIT" + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz", + "integrity": "sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.4.0", + "@typescript-eslint/type-utils": "8.4.0", + "@typescript-eslint/utils": "8.4.0", + "@typescript-eslint/visitor-keys": "8.4.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.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" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.4.0.tgz", + "integrity": "sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.4.0", + "@typescript-eslint/types": "8.4.0", + "@typescript-eslint/typescript-estree": "8.4.0", + "@typescript-eslint/visitor-keys": "8.4.0", + "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" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz", + "integrity": "sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.4.0", + "@typescript-eslint/visitor-keys": "8.4.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/type-utils": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz", + "integrity": "sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.4.0", + "@typescript-eslint/utils": "8.4.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.4.0.tgz", + "integrity": "sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==", + "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.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz", + "integrity": "sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.4.0", + "@typescript-eslint/visitor-keys": "8.4.0", + "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": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "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/utils": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.4.0.tgz", + "integrity": "sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.4.0", + "@typescript-eslint/types": "8.4.0", + "@typescript-eslint/typescript-estree": "8.4.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" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz", + "integrity": "sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.4.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/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==", + "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/@vitest/expect": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", + "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.1.tgz", + "integrity": "sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.5.tgz", + "integrity": "sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.0.5", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.0.5", + "magic-string": "^0.30.10", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", + "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", + "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.0.5", + "estree-walker": "^3.0.3", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/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/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "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==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "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/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": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "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.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "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.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "license": "MIT" + }, + "node_modules/drizzle-kit": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.24.2.tgz", + "integrity": "sha512-nXOaTSFiuIaTMhS8WJC2d4EBeIcN9OSt2A2cyFbQYBAZbi7lRsVGJNqDpEwPqYfJz38yxbY/UtbvBBahBfnExQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@drizzle-team/brocli": "^0.10.1", + "@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.33.0", + "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.33.0.tgz", + "integrity": "sha512-SHy72R2Rdkz0LEq0PSG/IdvnT3nGiWuRk+2tXZQ90GVq/XQhpCzu/EFT3V2rox+w8MlkBQxifF8pCStNYnERfA==", + "license": "Apache-2.0", + "peerDependencies": { + "@aws-sdk/client-rds-data": ">=3", + "@cloudflare/workers-types": ">=3", + "@electric-sql/pglite": ">=0.1.1", + "@libsql/client": "*", + "@neondatabase/serverless": ">=0.1", + "@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": ">=13.2.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 + }, + "@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", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "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", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", + "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.10.0", + "@eslint/plugin-kit": "^0.1.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.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", + "is-path-inside": "^3.0.3", + "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", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "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", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "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", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.43.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.43.0.tgz", + "integrity": "sha512-REkxQWvg2pp7QVLxQNa+dJ97xUqRe7Y2JJbSWkHSuszu0VcblZtXkPBPckkivk99y5CdLw4slqfPylL2d/X4jQ==", + "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.34.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.41.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-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "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.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "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/esm-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "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/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-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "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", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "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", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "license": "MIT" + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "license": "MIT" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "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", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "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", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "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/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "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.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/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==", + "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", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loupe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", + "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "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/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "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", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "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", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "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", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "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", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/periscopic/node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" + }, + "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/playwright": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.47.0.tgz", + "integrity": "sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.47.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.0.tgz", + "integrity": "sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "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.0", + "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-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "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", + "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": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.4.tgz", + "integrity": "sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==", + "license": "Unlicense", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/porsager" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "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.2.6", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.6.tgz", + "integrity": "sha512-Y1XWLw7vXUQQZmgv1JAEiLcErqUniAF2wO7QJsw8BVMvpLET2dI5WpEIEJx1r11iHVdSMzQxivyfrH9On9t2IQ==", + "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", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "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.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "license": "MIT" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz", + "integrity": "sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==", + "license": "MIT" + }, + "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/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.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": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "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", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "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": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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": "4.2.19", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.1.tgz", + "integrity": "sha512-AuWnCZdREoOzMhoptHPUUPYUxLNdXSkoZnPnlv19SZJJimRzLmjjZLKsOiRB4AnhgX+56/WSEdvkWXI/q2BSsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^3.4.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-check/node_modules/fdir": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.3.0.tgz", + "integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/svelte-check/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.41.1.tgz", + "integrity": "sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==", + "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-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "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", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "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-hmr": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", + "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", + "license": "ISC", + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte/node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "license": "MIT", + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "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/tinypool": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz", + "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.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": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.4.0.tgz", + "integrity": "sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.4.0", + "@typescript-eslint/parser": "8.4.0", + "@typescript-eslint/utils": "8.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "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/vite": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.3.tgz", + "integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==", + "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": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.5.tgz", + "integrity": "sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.5", + "pathe": "^1.1.2", + "tinyrainbow": "^1.2.0", + "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_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "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_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/vitefu": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "license": "MIT", + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", + "integrity": "sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@vitest/expect": "2.0.5", + "@vitest/pretty-format": "^2.0.5", + "@vitest/runner": "2.0.5", + "@vitest/snapshot": "2.0.5", + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "debug": "^4.3.5", + "execa": "^8.0.1", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.8.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.0.5", + "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.0.5", + "@vitest/ui": "2.0.5", + "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/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "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", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "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/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "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/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/packages/web_new/package.json b/packages/web_new/package.json new file mode 100644 index 0000000..4e0c5b7 --- /dev/null +++ b/packages/web_new/package.json @@ -0,0 +1,45 @@ +{ + "name": "web-new", + "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" + }, + "devDependencies": { + "@playwright/test": "1.47.0", + "@sveltejs/kit": "2.5.26", + "@sveltejs/vite-plugin-svelte": "3.1.2", + "@types/eslint": "9.6.1", + "drizzle-kit": "^0.24.2", + "eslint": "9.10.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-svelte": "2.43.0", + "globals": "15.9.0", + "prettier": "3.3.3", + "prettier-plugin-svelte": "3.2.6", + "svelte": "4.2.19", + "svelte-check": "4.0.1", + "typescript": "5.5.4", + "typescript-eslint": "8.4.0", + "vite": "5.4.3", + "vitest": "2.0.5" + }, + "type": "module", + "dependencies": { + "@sveltejs/adapter-node": "^5.2.4", + "drizzle-orm": "^0.33.0", + "postgres": "^3.4.4" + } +} \ No newline at end of file diff --git a/packages/web_new/playwright.config.ts b/packages/web_new/playwright.config.ts new file mode 100644 index 0000000..1c5d7a1 --- /dev/null +++ b/packages/web_new/playwright.config.ts @@ -0,0 +1,12 @@ +import type { PlaywrightTestConfig } from '@playwright/test'; + +const config: PlaywrightTestConfig = { + webServer: { + command: 'npm run build && npm run preview', + port: 4173 + }, + testDir: 'tests', + testMatch: /(.+\.)?(test|spec)\.[jt]s/ +}; + +export default config; diff --git a/packages/web_new/src/app.d.ts b/packages/web_new/src/app.d.ts new file mode 100644 index 0000000..743f07b --- /dev/null +++ b/packages/web_new/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/packages/web_new/src/app.html b/packages/web_new/src/app.html new file mode 100644 index 0000000..77a5ff5 --- /dev/null +++ b/packages/web_new/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/packages/web_new/src/index.test.ts b/packages/web_new/src/index.test.ts new file mode 100644 index 0000000..e07cbbd --- /dev/null +++ b/packages/web_new/src/index.test.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('sum test', () => { + it('adds 1 + 2 to equal 3', () => { + expect(1 + 2).toBe(3); + }); +}); diff --git a/packages/web_new/src/lib/db/db.server.ts b/packages/web_new/src/lib/db/db.server.ts new file mode 100644 index 0000000..d23f1ca --- /dev/null +++ b/packages/web_new/src/lib/db/db.server.ts @@ -0,0 +1,6 @@ +import { drizzle } from 'drizzle-orm/postgres-js'; +import postgres from 'postgres'; +import { DATABASE_URL } from '$env/static/private'; + +const client = postgres(DATABASE_URL); +export const db = drizzle(client, {}); diff --git a/packages/web_new/src/lib/db/queries/insert.ts b/packages/web_new/src/lib/db/queries/insert.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/web_new/src/lib/db/queries/select.ts b/packages/web_new/src/lib/db/queries/select.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/web_new/src/lib/db/schema.ts b/packages/web_new/src/lib/db/schema.ts new file mode 100644 index 0000000..06f7bf0 --- /dev/null +++ b/packages/web_new/src/lib/db/schema.ts @@ -0,0 +1,48 @@ +import { integer, pgTable, serial, timestamp, varchar } from 'drizzle-orm/pg-core'; + +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 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 courses = pgTable('courses', { + id: serial('id').primaryKey(), + name: varchar('name', { length: 256 }), + universityId: integer('university_id').references(() => universities.id), + 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 books = pgTable('books', { + 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() +}); diff --git a/packages/web_new/src/routes/+page.server.ts b/packages/web_new/src/routes/+page.server.ts new file mode 100644 index 0000000..8bfbfe0 --- /dev/null +++ b/packages/web_new/src/routes/+page.server.ts @@ -0,0 +1,10 @@ +// import { db } from '$lib/db/db.server'; +// import { myTable } from '$lib/db/schema'; +import type { PageServerLoad } from './$types'; + +export const load = (async () => { + // const result = await db.select().from(myTable); + return { + message: 'Hi :3' + }; +}) satisfies PageServerLoad; diff --git a/packages/web_new/src/routes/+page.svelte b/packages/web_new/src/routes/+page.svelte new file mode 100644 index 0000000..2d8b0da --- /dev/null +++ b/packages/web_new/src/routes/+page.svelte @@ -0,0 +1,8 @@ + + +

Welcome to SvelteKit

+

Visit kit.svelte.dev to read the documentation

+ +

Message: {data.message}

diff --git a/packages/web_new/static/favicon.png b/packages/web_new/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH { + await page.goto('/'); + await expect(page.locator('h1')).toBeVisible(); +}); diff --git a/packages/web_new/tsconfig.json b/packages/web_new/tsconfig.json new file mode 100644 index 0000000..fc93cbd --- /dev/null +++ b/packages/web_new/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/packages/web_new/vite.config.ts b/packages/web_new/vite.config.ts new file mode 100644 index 0000000..37b6a84 --- /dev/null +++ b/packages/web_new/vite.config.ts @@ -0,0 +1,9 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [sveltekit()], + test: { + include: ['src/**/*.{test,spec}.{js,ts}'] + } +});