From e3b21315ff49aeba68bf9db00f33a06b1a9b75d7 Mon Sep 17 00:00:00 2001 From: daimond113 <72147841+daimond113@users.noreply.github.com> Date: Sat, 16 Mar 2024 17:28:20 +0100 Subject: [PATCH] feat(website): :rocket: create website --- website/.eslintignore | 9 + website/.eslintrc.cjs | 31 + website/.gitignore | 10 + website/.npmrc | 1 + website/.prettierignore | 4 + website/.prettierrc | 17 + website/package.json | 59 + .../simple-svelte-autocomplete@2.5.2.patch | 16 + website/patches/tar-stream@3.1.7.patch | 9 + website/pnpm-lock.yaml | 2925 +++++++++++++++++ website/postcss.config.js | 6 + website/src/app.css | 19 + website/src/app.d.ts | 13 + website/src/app.html | 21 + website/src/autocomplete.d.ts | 92 + website/src/lib/Codeblock.svelte | 14 + website/src/lib/markdown.ts | 18 + website/src/routes/+layout.svelte | 131 + website/src/routes/+page.svelte | 54 + website/src/routes/+page.ts | 26 + .../[scope]/[name]/[version]/+page.svelte | 194 ++ .../[scope]/[name]/[version]/+page.ts | 114 + website/src/routes/policies/+page.svelte | 68 + website/static/android-chrome-192x192.png | Bin 0 -> 14056 bytes website/static/android-chrome-512x512.png | Bin 0 -> 10121 bytes website/static/apple-touch-icon.png | Bin 0 -> 11465 bytes website/static/browserconfig.xml | 9 + website/static/favicon-16x16.png | Bin 0 -> 1040 bytes website/static/favicon-32x32.png | Bin 0 -> 2021 bytes website/static/favicon.ico | Bin 0 -> 15086 bytes website/static/logo.svg | 7 + website/static/mstile-150x150.png | Bin 0 -> 8427 bytes website/static/safari-pinned-tab.svg | 39 + website/static/site.webmanifest | 19 + website/svelte.config.js | 13 + website/tailwind.config.js | 40 + website/tsconfig.json | 14 + website/vite.config.ts | 6 + 38 files changed, 3998 insertions(+) create mode 100644 website/.eslintignore create mode 100644 website/.eslintrc.cjs create mode 100644 website/.gitignore create mode 100644 website/.npmrc create mode 100644 website/.prettierignore create mode 100644 website/.prettierrc create mode 100644 website/package.json create mode 100644 website/patches/simple-svelte-autocomplete@2.5.2.patch create mode 100644 website/patches/tar-stream@3.1.7.patch create mode 100644 website/pnpm-lock.yaml create mode 100644 website/postcss.config.js create mode 100644 website/src/app.css create mode 100644 website/src/app.d.ts create mode 100644 website/src/app.html create mode 100644 website/src/autocomplete.d.ts create mode 100644 website/src/lib/Codeblock.svelte create mode 100644 website/src/lib/markdown.ts create mode 100644 website/src/routes/+layout.svelte create mode 100644 website/src/routes/+page.svelte create mode 100644 website/src/routes/+page.ts create mode 100644 website/src/routes/packages/[scope]/[name]/[version]/+page.svelte create mode 100644 website/src/routes/packages/[scope]/[name]/[version]/+page.ts create mode 100644 website/src/routes/policies/+page.svelte create mode 100644 website/static/android-chrome-192x192.png create mode 100644 website/static/android-chrome-512x512.png create mode 100644 website/static/apple-touch-icon.png create mode 100644 website/static/browserconfig.xml create mode 100644 website/static/favicon-16x16.png create mode 100644 website/static/favicon-32x32.png create mode 100644 website/static/favicon.ico create mode 100644 website/static/logo.svg create mode 100644 website/static/mstile-150x150.png create mode 100644 website/static/safari-pinned-tab.svg create mode 100644 website/static/site.webmanifest create mode 100644 website/svelte.config.js create mode 100644 website/tailwind.config.js create mode 100644 website/tsconfig.json create mode 100644 website/vite.config.ts diff --git a/website/.eslintignore b/website/.eslintignore new file mode 100644 index 0000000..1a6c4db --- /dev/null +++ b/website/.eslintignore @@ -0,0 +1,9 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +pnpm-lock.yaml \ No newline at end of file diff --git a/website/.eslintrc.cjs b/website/.eslintrc.cjs new file mode 100644 index 0000000..0b75758 --- /dev/null +++ b/website/.eslintrc.cjs @@ -0,0 +1,31 @@ +/** @type { import("eslint").Linter.Config } */ +module.exports = { + root: true, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:svelte/recommended', + 'prettier' + ], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] + }, + env: { + browser: true, + es2017: true, + node: true + }, + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ] +}; diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/website/.npmrc b/website/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/website/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/website/.prettierignore b/website/.prettierignore new file mode 100644 index 0000000..cc41cea --- /dev/null +++ b/website/.prettierignore @@ -0,0 +1,4 @@ +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/website/.prettierrc b/website/.prettierrc new file mode 100644 index 0000000..6ed0b90 --- /dev/null +++ b/website/.prettierrc @@ -0,0 +1,17 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} \ No newline at end of file diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..346d953 --- /dev/null +++ b/website/package.json @@ -0,0 +1,59 @@ +{ + "name": "website", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "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 ." + }, + "devDependencies": { + "@shikijs/markdown-it": "^1.1.7", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/eslint": "^8.56.0", + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "autoprefixer": "^10.4.18", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "postcss": "^8.4.35", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tailwindcss": "^3.4.1", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^5.0.3" + }, + "type": "module", + "dependencies": { + "@fontsource-variable/hepta-slab": "^5.0.19", + "@tailwindcss/typography": "^0.5.10", + "@types/markdown-it": "^13.0.7", + "@types/pako": "^2.0.3", + "@types/tar-stream": "^3.1.3", + "events": "^3.3.0", + "isomorphic-dompurify": "^2.4.0", + "lucide-svelte": "^0.358.0", + "markdown-it": "^14.0.0", + "pako": "^2.1.0", + "shiki": "^1.1.7", + "simple-svelte-autocomplete": "^2.5.2", + "tar-stream": "^3.1.7", + "yaml": "^2.4.1" + }, + "pnpm": { + "patchedDependencies": { + "tar-stream@3.1.7": "patches/tar-stream@3.1.7.patch", + "simple-svelte-autocomplete@2.5.2": "patches/simple-svelte-autocomplete@2.5.2.patch" + } + } +} \ No newline at end of file diff --git a/website/patches/simple-svelte-autocomplete@2.5.2.patch b/website/patches/simple-svelte-autocomplete@2.5.2.patch new file mode 100644 index 0000000..26dd9cb --- /dev/null +++ b/website/patches/simple-svelte-autocomplete@2.5.2.patch @@ -0,0 +1,16 @@ +diff --git a/package.json b/package.json +index 0a796615e65323624ae9a1fdcc7c831f39dc5158..ac84dd37cf4c95223f2727d4522b8ceb74a48dff 100644 +--- a/package.json ++++ b/package.json +@@ -5,6 +5,11 @@ + "svelte": "src/SimpleAutocomplete.svelte", + "module": "dist/index.mjs", + "main": "dist/index.js", ++ "exports": { ++ ".": { ++ "svelte": "./src/SimpleAutocomplete.svelte" ++ } ++ }, + "devDependencies": { + "@babel/core": "^7.15.0", + "@babel/preset-env": "^7.16.11", diff --git a/website/patches/tar-stream@3.1.7.patch b/website/patches/tar-stream@3.1.7.patch new file mode 100644 index 0000000..314b56c --- /dev/null +++ b/website/patches/tar-stream@3.1.7.patch @@ -0,0 +1,9 @@ +diff --git a/extract.js b/extract.js +index 0ed9f82bf287aa040dd560eabbe052316223011d..16f26d49a8b0eb554b7e0a79a076027612fb4ce1 100644 +--- a/extract.js ++++ b/extract.js +@@ -1,3 +1,4 @@ ++const EventEmitter = require('events') + const { Writable, Readable, getStreamError } = require('streamx') + const FIFO = require('fast-fifo') + const b4a = require('b4a') \ No newline at end of file diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml new file mode 100644 index 0000000..112d3e3 --- /dev/null +++ b/website/pnpm-lock.yaml @@ -0,0 +1,2925 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +patchedDependencies: + simple-svelte-autocomplete@2.5.2: + hash: t3gwvdkckahtzv6ufhrxpz5z5y + path: patches/simple-svelte-autocomplete@2.5.2.patch + tar-stream@3.1.7: + hash: h5vufnoniawx3purzredl7rsne + path: patches/tar-stream@3.1.7.patch + +dependencies: + '@fontsource-variable/hepta-slab': + specifier: ^5.0.19 + version: 5.0.19 + '@tailwindcss/typography': + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.1) + '@types/markdown-it': + specifier: ^13.0.7 + version: 13.0.7 + '@types/pako': + specifier: ^2.0.3 + version: 2.0.3 + '@types/tar-stream': + specifier: ^3.1.3 + version: 3.1.3 + events: + specifier: ^3.3.0 + version: 3.3.0 + isomorphic-dompurify: + specifier: ^2.4.0 + version: 2.4.0 + lucide-svelte: + specifier: ^0.358.0 + version: 0.358.0(svelte@4.2.12) + markdown-it: + specifier: ^14.0.0 + version: 14.0.0 + pako: + specifier: ^2.1.0 + version: 2.1.0 + shiki: + specifier: ^1.1.7 + version: 1.1.7 + simple-svelte-autocomplete: + specifier: ^2.5.2 + version: 2.5.2(patch_hash=t3gwvdkckahtzv6ufhrxpz5z5y) + tar-stream: + specifier: ^3.1.7 + version: 3.1.7(patch_hash=h5vufnoniawx3purzredl7rsne) + yaml: + specifier: ^2.4.1 + version: 2.4.1 + +devDependencies: + '@shikijs/markdown-it': + specifier: ^1.1.7 + version: 1.1.7 + '@sveltejs/adapter-auto': + specifier: ^3.0.0 + version: 3.1.1(@sveltejs/kit@2.5.3) + '@sveltejs/kit': + specifier: ^2.0.0 + version: 2.5.3(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + '@sveltejs/vite-plugin-svelte': + specifier: ^3.0.0 + version: 3.0.2(svelte@4.2.12)(vite@5.1.5) + '@types/eslint': + specifier: ^8.56.0 + version: 8.56.5 + '@typescript-eslint/eslint-plugin': + specifier: ^7.0.0 + version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': + specifier: ^7.0.0 + version: 7.1.1(eslint@8.57.0)(typescript@5.4.2) + autoprefixer: + specifier: ^10.4.18 + version: 10.4.18(postcss@8.4.35) + eslint: + specifier: ^8.56.0 + version: 8.57.0 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-plugin-svelte: + specifier: ^2.35.1 + version: 2.35.1(eslint@8.57.0)(svelte@4.2.12) + postcss: + specifier: ^8.4.35 + version: 8.4.35 + prettier: + specifier: ^3.1.1 + version: 3.2.5 + prettier-plugin-svelte: + specifier: ^3.1.2 + version: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + svelte: + specifier: ^4.2.7 + version: 4.2.12 + svelte-check: + specifier: ^3.6.0 + version: 3.6.6(postcss@8.4.35)(svelte@4.2.12) + tailwindcss: + specifier: ^3.4.1 + version: 3.4.1 + tslib: + specifier: ^2.4.1 + version: 2.6.2 + typescript: + specifier: ^5.0.0 + version: 5.4.2 + vite: + specifier: ^5.0.3 + version: 5.1.5 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@fontsource-variable/hepta-slab@5.0.19: + resolution: {integrity: sha512-sHvG2YKOBCbeuV+ZuquJqIAzE1+zvoK8vwXuS8KmDQpFYItOyVPDBtZ0TuHGyLZWwsF8igZHMetscrBBrqsuaA==} + dev: false + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + optional: true + + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + + /@rollup/rollup-android-arm-eabi@4.12.1: + resolution: {integrity: sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.12.1: + resolution: {integrity: sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.12.1: + resolution: {integrity: sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.12.1: + resolution: {integrity: sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.12.1: + resolution: {integrity: sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.12.1: + resolution: {integrity: sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.12.1: + resolution: {integrity: sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.12.1: + resolution: {integrity: sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.12.1: + resolution: {integrity: sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.12.1: + resolution: {integrity: sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.12.1: + resolution: {integrity: sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.12.1: + resolution: {integrity: sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.12.1: + resolution: {integrity: sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@shikijs/core@1.1.7: + resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==} + + /@shikijs/markdown-it@1.1.7: + resolution: {integrity: sha512-OGfr16nWTGtGx9iBpNtKJm6AWwZAUYlzeqpdgHpNWVoH4cFaPGiciZjHMiGLBO2fIHgQlBbC4RsV2F9nPQD5kQ==} + dependencies: + '@shikijs/transformers': 1.1.7 + markdown-it: 14.0.0 + shiki: 1.1.7 + dev: true + + /@shikijs/transformers@1.1.7: + resolution: {integrity: sha512-lXz011ao4+rvweps/9h3CchBfzb1U5OtP5D51Tqc9lQYdLblWMIxQxH6Ybe1GeGINcEVM4goMyPrI0JvlIp4UQ==} + dependencies: + shiki: 1.1.7 + dev: true + + /@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.5.3): + resolution: {integrity: sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + dependencies: + '@sveltejs/kit': 2.5.3(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + import-meta-resolve: 4.0.0 + dev: true + + /@sveltejs/kit@2.5.3(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5): + resolution: {integrity: sha512-s6x7HBn/Fp+UNvyhJohjIA0FcJ+BWHGUDQ4PCg1D0EboUlvbimJQYchINu8G6sspLXYmlcsuNsp8bbcrRk85iw==} + engines: {node: '>=18.13'} + hasBin: true + requiresBuild: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 4.3.2 + esm-env: 1.0.0 + import-meta-resolve: 4.0.0 + kleur: 4.1.5 + magic-string: 0.30.8 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.4 + svelte: 4.2.12 + tiny-glob: 0.2.9 + vite: 5.1.5 + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5): + resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5) + debug: 4.3.4 + svelte: 4.2.12 + vite: 5.1.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.5): + resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.8 + svelte: 4.2.12 + svelte-hmr: 0.15.3(svelte@4.2.12) + vite: 5.1.5 + vitefu: 0.2.5(vite@5.1.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@tailwindcss/typography@0.5.10(tailwindcss@3.4.1): + resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.1 + dev: false + + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + dev: true + + /@types/dompurify@3.0.5: + resolution: {integrity: sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: false + + /@types/eslint@8.56.5: + resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: false + + /@types/markdown-it@13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: false + + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: false + + /@types/node@20.11.27: + resolution: {integrity: sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==} + dependencies: + undici-types: 5.26.5 + dev: false + + /@types/pako@2.0.3: + resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} + dev: false + + /@types/pug@2.0.10: + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} + dev: true + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@types/tar-stream@3.1.3: + resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} + dependencies: + '@types/node': 20.11.27 + dev: false + + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: false + + /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@7.1.1: + resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 + dev: true + + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@7.1.1: + resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.4.2): + resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@7.1.1: + resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 7.1.1 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /autoprefixer@10.4.18(postcss@8.4.35): + resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001596 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + dependencies: + dequal: 2.0.3 + + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /bare-events@2.2.1: + resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + requiresBuild: true + dev: false + optional: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001596 + electron-to-chromium: 1.4.699 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + /caniuse-lite@1.0.30001596: + resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==} + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + /cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} + dependencies: + rrweb-cssom: 0.6.0 + dev: false + + /data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + dev: false + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + dev: true + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dompurify@3.0.9: + resolution: {integrity: sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==} + dev: false + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + /electron-to-chromium@1.4.699: + resolution: {integrity: sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + 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 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-compat-utils@0.1.2(eslint@8.57.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-plugin-svelte@2.35.1(eslint@8.57.0)(svelte@4.2.12): + resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 + svelte: ^3.37.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@jridgewell/sourcemap-codec': 1.4.15 + debug: 4.3.4 + eslint: 8.57.0 + eslint-compat-utils: 0.1.2(eslint@8.57.0) + esutils: 2.0.3 + known-css-properties: 0.29.0 + postcss: 8.4.35 + postcss-load-config: 3.1.4(postcss@8.4.35) + postcss-safe-parser: 6.0.0(postcss@8.4.35) + postcss-selector-parser: 6.0.15 + semver: 7.6.0 + svelte: 4.2.12 + svelte-eslint-parser: 0.33.1(svelte@4.2.12) + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.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 + transitivePeerDependencies: + - supports-color + dev: true + + /esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: false + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + dependencies: + whatwg-encoding: 3.1.1 + dev: false + + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: false + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isomorphic-dompurify@2.4.0: + resolution: {integrity: sha512-OW3VSGrjppnbshcHz7RNKnoYlCJkyBBJzEE5yxrTSA+kOl9JPTIrXsnIgOuH4wdLqqRujx22bz/IXebGWPLMAg==} + engines: {node: '>=18'} + dependencies: + '@types/dompurify': 3.0.5 + dompurify: 3.0.9 + jsdom: 24.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + dev: false + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsdom@24.0.0: + resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + cssstyle: 4.0.1 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.16.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /known-css-properties@0.29.0: + resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.1.0 + + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /lucide-svelte@0.358.0(svelte@4.2.12): + resolution: {integrity: sha512-KSdl/FSW5EhexI+qZH/YV/6WmuMybx1dw1VD7n53xDJCpYUm/7dftOV3yTV0KaJxN7/tDss15M62SVvLLWsXLA==} + peerDependencies: + svelte: ^3 || ^4 || ^5.0.0-next.42 + dependencies: + svelte: 4.2.12 + dev: false + + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /markdown-it@14.0.0: + resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + /postcss-import@15.1.0(postcss@8.4.35): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + /postcss-js@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.35 + + /postcss-load-config@3.1.4(postcss@8.4.35): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.35 + yaml: 1.10.2 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.35): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.35 + yaml: 2.4.1 + + /postcss-nested@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + + /postcss-safe-parser@6.0.0(postcss@8.4.35): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-scss@4.0.9(postcss@8.4.35): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-plugin-svelte@3.2.2(prettier@3.2.5)(svelte@4.2.12): + resolution: {integrity: sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + dependencies: + prettier: 3.2.5 + svelte: 4.2.12 + dev: true + + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: false + + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: false + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@4.12.1: + resolution: {integrity: sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.12.1 + '@rollup/rollup-android-arm64': 4.12.1 + '@rollup/rollup-darwin-arm64': 4.12.1 + '@rollup/rollup-darwin-x64': 4.12.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.1 + '@rollup/rollup-linux-arm64-gnu': 4.12.1 + '@rollup/rollup-linux-arm64-musl': 4.12.1 + '@rollup/rollup-linux-riscv64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-gnu': 4.12.1 + '@rollup/rollup-linux-x64-musl': 4.12.1 + '@rollup/rollup-win32-arm64-msvc': 4.12.1 + '@rollup/rollup-win32-ia32-msvc': 4.12.1 + '@rollup/rollup-win32-x64-msvc': 4.12.1 + fsevents: 2.3.3 + dev: true + + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /sander@0.5.1: + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} + dependencies: + es6-promise: 3.3.1 + graceful-fs: 4.2.11 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: true + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: false + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /shiki@1.1.7: + resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==} + dependencies: + '@shikijs/core': 1.1.7 + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + /simple-svelte-autocomplete@2.5.2(patch_hash=t3gwvdkckahtzv6ufhrxpz5z5y): + resolution: {integrity: sha512-6+kZP3XQGb7zs0djTWoFv8tQorBZdv64YfCKrlsYIYBCFsEeikSiNsBSSYw1Om+LYmFeMEOAYSSKoEw+qpnBXQ==} + dev: false + patched: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /sorcery@0.11.0: + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} + hasBin: true + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + buffer-crc32: 0.2.13 + minimist: 1.2.8 + sander: 0.5.1 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /streamx@2.16.1: + resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + optionalDependencies: + bare-events: 2.2.1 + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svelte-check@3.6.6(postcss@8.4.35)(svelte@4.2.12): + resolution: {integrity: sha512-b9q9rOHOMYF3U8XllK7LmXTq1LeWQ98waGfEJzrFutViadkNl1tgdEtxIQ8yuPx+VQ4l7YrknYol+0lfZocaZw==} + hasBin: true + peerDependencies: + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 3.6.0 + fast-glob: 3.3.2 + import-fresh: 3.3.0 + picocolors: 1.0.0 + sade: 1.8.1 + svelte: 4.2.12 + svelte-preprocess: 5.1.3(postcss@8.4.35)(svelte@4.2.12)(typescript@5.4.2) + typescript: 5.4.2 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - postcss + - postcss-load-config + - pug + - sass + - stylus + - sugarss + dev: true + + /svelte-eslint-parser@0.33.1(svelte@4.2.12): + resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.4.35 + postcss-scss: 4.0.9(postcss@8.4.35) + svelte: 4.2.12 + dev: true + + /svelte-hmr@0.15.3(svelte@4.2.12): + resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0 + dependencies: + svelte: 4.2.12 + dev: true + + /svelte-preprocess@5.1.3(postcss@8.4.35)(svelte@4.2.12)(typescript@5.4.2): + resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} + engines: {node: '>= 16.0.0', pnpm: ^8.0.0} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@types/pug': 2.0.10 + detect-indent: 6.1.0 + magic-string: 0.30.8 + postcss: 8.4.35 + sorcery: 0.11.0 + strip-indent: 3.0.0 + svelte: 4.2.12 + typescript: 5.4.2 + dev: true + + /svelte@4.2.12: + resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.8 + periscopic: 3.1.0 + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: false + + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) + postcss-selector-parser: 6.0.15 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + /tar-stream@3.1.7(patch_hash=h5vufnoniawx3purzredl7rsne): + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.16.1 + dev: false + patched: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: false + + /tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + dependencies: + punycode: 2.3.1 + dev: false + + /ts-api-utils@1.3.0(typescript@5.4.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.2 + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: false + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: false + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /vite@5.1.5: + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.12.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitefu@0.2.5(vite@5.1.5): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 5.1.5 + dev: true + + /w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + dependencies: + xml-name-validator: 5.0.0 + dev: false + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: false + + /whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + dependencies: + iconv-lite: 0.6.3 + dev: false + + /whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + dev: false + + /whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + dev: false + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/website/postcss.config.js b/website/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/website/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/website/src/app.css b/website/src/app.css new file mode 100644 index 0000000..74d6820 --- /dev/null +++ b/website/src/app.css @@ -0,0 +1,19 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + html { + @apply font-serif; + } +} + +@layer utilities { + .overflow-text { + @apply min-w-0 whitespace-nowrap overflow-hidden text-ellipsis; + } +} + +a { + @apply text-links underline; +} diff --git a/website/src/app.d.ts b/website/src/app.d.ts new file mode 100644 index 0000000..743f07b --- /dev/null +++ b/website/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/website/src/app.html b/website/src/app.html new file mode 100644 index 0000000..56811f1 --- /dev/null +++ b/website/src/app.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + %sveltekit.head% + + + +
%sveltekit.body%
+ + + \ No newline at end of file diff --git a/website/src/autocomplete.d.ts b/website/src/autocomplete.d.ts new file mode 100644 index 0000000..5251ab2 --- /dev/null +++ b/website/src/autocomplete.d.ts @@ -0,0 +1,92 @@ +// // https://github.com/pstanoev/simple-svelte-autocomplete/issues/205#issuecomment-1960396289 +declare module 'simple-svelte-autocomplete' { + import { SvelteComponent } from 'svelte'; + import { HTMLAttributes } from 'svelte/elements'; + + export interface AutoCompleteAttributes extends HTMLAttributes { + autocompleteOffValue?: string; + className?: string; + cleanUserText?: boolean; + closeOnBlur?: boolean; + create?: boolean; + createText?: string; + delay?: number; + disabled?: boolean; + dropdownClassName?: string; + flag?: boolean; + hideArrow?: boolean; + highlightedItem?: T; + html5autocomplete?: boolean; + ignoreAccents?: boolean; + inputClassName?: string; + inputId?: string; + items?: T[]; + keywordsFieldName?: string; + labelFieldName?: string; + localFiltering?: boolean; + localSorting?: boolean; + lock?: boolean; + lowercaseKeywords?: boolean; + matchAllKeywords?: boolean; + maxItemsToShowInList?: number; + minCharactersToSearch?: number; + moreItemsText?: string; + multiple?: boolean; + name?: string; + noInputClassName?: boolean; + noInputStyles?: boolean; + noResultsText?: string; + orderableSection?: boolean; + placeholder?: string; + readonly?: boolean; + required?: boolean; + selectFirstIfEmpty?: boolean; + selectName?: string; + selectedItem?: T; + showClear?: boolean; + showLoadingIndicator?: boolean; + sortByMatchedKeywords?: boolean; + tabIndex?: number; + value?: T; + valueFieldName?: string; + } + + export interface AutoCompleteFunctions { + itemFilterFunction?: (item: T, keywords: string) => boolean; + itemSortFunction?: (item1: T, item2: T, keywords: string) => number; + keywordsCleanFunction?: (keywords: string) => string; + keywordsFunction?: (item: T) => string; + labelFunction?: (item: T) => string; + searchFunction?: (keyword: string, maxItemsToShowInList: number) => Promise | boolean; + textCleanFunction?: (string) => string; + valueFunction?: (a: T) => string; + } + + export interface AutoCompleteCallbacks { + beforeChange?: (oldSelectedItem: T, newSelectedItem: T) => boolean; + onChange?: (newSelectedItem: T) => void; + onFocus?: () => void; + onBlur?: () => void; + onCreate?: (text: string) => void; + } + + export interface AutoCompleteSlots { + item: { item: T; label: string }; + 'no-results': null; + loading: { loadingText: string }; + tag: null; + 'dropdown-header': { nbItems: number; maxItemsToShowInList: number }; + 'dropdown-footer': { nbItems: number; maxItemsToShowInList: number }; + } + + export interface AutoCompleteProps + extends AutoCompleteAttributes, + AutoCompleteCallbacks, + AutoCompleteFunctions {} + + export default class AutoComplete extends SvelteComponent< + AutoCompleteProps, + undefined, + AutoCompleteSlots + > {} +} diff --git a/website/src/lib/Codeblock.svelte b/website/src/lib/Codeblock.svelte new file mode 100644 index 0000000..cf223d5 --- /dev/null +++ b/website/src/lib/Codeblock.svelte @@ -0,0 +1,14 @@ + + + + +{#await codeToHtml(code, { theme: 'vesper', lang, transformers: [{ pre(node) { + this.addClassToHast(node, 'not-prose'); + } }] }) then highlightedCode} + {@html highlightedCode} +{/await} diff --git a/website/src/lib/markdown.ts b/website/src/lib/markdown.ts new file mode 100644 index 0000000..2ebba48 --- /dev/null +++ b/website/src/lib/markdown.ts @@ -0,0 +1,18 @@ +import MarkdownIt from 'markdown-it'; +import Shiki from '@shikijs/markdown-it'; +import { writable } from 'svelte/store'; + +// nasty hack to get around the fact that @shikijs/markdown-it is async +export const md = writable(undefined); + +const it = MarkdownIt({ + html: true +}); + +Promise.all([Shiki({ theme: 'vesper' })]).then((plugins) => { + for (const plugin of plugins) { + it.use(plugin); + } + + md.set(it); +}); diff --git a/website/src/routes/+layout.svelte b/website/src/routes/+layout.svelte new file mode 100644 index 0000000..46e7bff --- /dev/null +++ b/website/src/routes/+layout.svelte @@ -0,0 +1,131 @@ + + +
+
+
+ + pesde + +
+ + +
+
+ +
+
+
{item?.name}
+ {#if item?.description} +
+ {item.description} +
+ {/if} +
+
+
+
+ +
+ +
+
+ + diff --git a/website/src/routes/+page.svelte b/website/src/routes/+page.svelte new file mode 100644 index 0000000..251e942 --- /dev/null +++ b/website/src/routes/+page.svelte @@ -0,0 +1,54 @@ + + + + pesde + + +
+

+ pesde - the feature-rich Roblox package manager +

+
+ pesde is a package manager for Roblox that is designed to be feature-rich and easy to use. +
+ +
+ +
+

Recently published packages

+ +
diff --git a/website/src/routes/+page.ts b/website/src/routes/+page.ts new file mode 100644 index 0000000..48f2f80 --- /dev/null +++ b/website/src/routes/+page.ts @@ -0,0 +1,26 @@ +import { error } from '@sveltejs/kit'; +import type { PageLoad } from './$types'; + +export const ssr = false; + +export const load: PageLoad = async ({ fetch }) => { + const latestRes = await fetch(`${import.meta.env.VITE_API_URL}/v0/search`); + + if (!latestRes.ok) { + error(latestRes.status, await latestRes.text()); + } + + const latest = (await latestRes.json()) as { + name: string; + version: string; + description?: string; + published_at: string; + }[]; + + return { + latest: latest.map((pkg) => ({ + ...pkg, + published_at: new Date(parseInt(pkg.published_at) * 1000) + })) + }; +}; diff --git a/website/src/routes/packages/[scope]/[name]/[version]/+page.svelte b/website/src/routes/packages/[scope]/[name]/[version]/+page.svelte new file mode 100644 index 0000000..83bc22f --- /dev/null +++ b/website/src/routes/packages/[scope]/[name]/[version]/+page.svelte @@ -0,0 +1,194 @@ + + + + + + {data.scope}/{data.name}@{data.version} + + +
+
+
+

{data.scope}/{data.name}

+ {#if data.description} +
{data.description}
+ {/if} +
+ +
{@html markdown}
+
+
+
+
+
+ +
+ + +
+
+
+
Published at
+
+ +
+
+
+
Installation
+ +
+ {#if data.license} +
+
License
+
{data.license}
+
+ {/if} + {#if data.repository} +
+
Repository
+ {data.repository} +
+ {/if} + {#if data.authors} +
+
Authors
+
    + {#each data.authors as author} + {@const parsedAuthor = parseAuthor(author)} +
  • + + {parsedAuthor.name} + +
    + {#if parsedAuthor.email} + + + + {/if} + {#if parsedAuthor.url} + + + + {/if} +
    +
  • + {/each} +
+
+ {/if} + {#if data.realm} +
+
Realm
+
{data.realm}
+
+ {/if} + {#each allDependencies as [dependencies, title]} + {#if dependencies} +
+
{title}
+ +
+ {/if} + {/each} +
+
+
+ + diff --git a/website/src/routes/packages/[scope]/[name]/[version]/+page.ts b/website/src/routes/packages/[scope]/[name]/[version]/+page.ts new file mode 100644 index 0000000..8a17362 --- /dev/null +++ b/website/src/routes/packages/[scope]/[name]/[version]/+page.ts @@ -0,0 +1,114 @@ +import { error, redirect } from '@sveltejs/kit'; +import type { PageLoad } from './$types'; +import { extract } from 'tar-stream'; +import { inflate } from 'pako'; +import { parse } from 'yaml'; + +export const ssr = false; + +type Dependencies = ({ name: string; version: string } | { repo: string; rev: string })[]; + +export const load: PageLoad = async ({ params, fetch }) => { + const res = await fetch( + `${import.meta.env.VITE_API_URL}/v0/packages/${params.scope}/${params.name}/${params.version}` + ); + + if (res.status === 404) { + error(res.status, 'Package not found'); + } else if (!res.ok) { + error(res.status, await res.text()); + } + + const body = await res.arrayBuffer(); + + const extractStream = extract(); + extractStream.end(inflate(body)); + + let manifestBuffer, readmeBuffer; + + for await (const entry of extractStream) { + const read = () => { + return new Promise((resolve, reject) => { + const chunks: number[] = []; + entry.on('data', (chunk: Uint8Array) => { + chunks.push(...chunk); + }); + entry.on('end', () => { + resolve(new Uint8Array(chunks)); + }); + entry.on('error', reject); + }); + }; + + switch (entry.header.name.toLowerCase()) { + case 'pesde.yaml': { + manifestBuffer = await read(); + break; + } + case 'readme.md': + case 'readme.txt': + case 'readme': { + readmeBuffer = await read(); + break; + } + } + + entry.resume(); + } + + if (!manifestBuffer) { + error(500, 'Package is missing pesde.yaml'); + } + + const textDecoder = new TextDecoder(); + + const manifest = textDecoder.decode(manifestBuffer); + const parsed = parse(manifest, { + customTags: [ + { + tag: '!roblox', + collection: 'map' + } + ] + }) as { + version: string; + authors?: string[]; + description?: string; + license?: string; + repository?: string; + realm?: string; + dependencies?: Dependencies; + peer_dependencies?: Dependencies; + }; + + if (params.version.toLowerCase() === 'latest') { + redirect(302, `/packages/${params.scope}/${params.name}/${parsed.version}`); + } + + const readme = readmeBuffer ? textDecoder.decode(readmeBuffer) : null; + + const versionsRes = await fetch( + `${import.meta.env.VITE_API_URL}/v0/packages/${params.scope}/${params.name}/versions` + ); + + if (!versionsRes.ok) { + error(versionsRes.status, await versionsRes.text()); + } + + const versions = (await versionsRes.json()) as [string, number][]; + + return { + scope: params.scope, + name: params.name, + version: parsed.version, + versions, + authors: parsed.authors, + description: parsed.description, + license: parsed.license, + readme, + repository: parsed.repository, + realm: parsed.realm, + dependencies: parsed.dependencies, + peerDependencies: parsed.peer_dependencies + }; +}; diff --git a/website/src/routes/policies/+page.svelte b/website/src/routes/policies/+page.svelte new file mode 100644 index 0000000..53d667b --- /dev/null +++ b/website/src/routes/policies/+page.svelte @@ -0,0 +1,68 @@ + + Policies + + +
+

Policies for content on the public pesde registry

+

+ If anything is unclear, please contact us and we will be + happy to help. +

+ +
+

Permitted content

+

+ The pesde registry is a place for open source Roblox packages. Examples of allowed content: +

+
    +
  • Libraries
  • +
  • Frameworks
  • +
+ Examples of disallowed content: +
    +
  • Malicious code
  • +
  • Illegal content
  • +
+ pesde is not responsible for the content of packages. If you believe a package is malicious or contains + illegal content, please + contact us. +
+ +
+

Package removal

+

+ pesde does not support removing packages from the registry without a reason such as security + or complying with the law. In case you published a secret to the registry, you must regenerate + it. If you believe a package should be removed, please contact us. We will review your request and take action if necessary. +

+

+ If we find that a package is breaking the permitted content policy, we will remove it from the + registry without notice. +

+

+ pesde reserves the right to remove any package from the registry at any time for any reason. +

+
+ +
+

Package ownership

+

+ Packages are owned by scopes. The first person to publish to the scope owns the scope. If you + want to work as a team, the owner of the scope must send a pull request to the index repo adding the members' user IDs to the scope's `owners.yaml` file. +

+
+ +
+

Scope squatting

+

+ Scope squatting is the act of creating a scope with the intent of preventing others from using + it. Scope squatting is not allowed. If you believe a scope is being squatted, please + contact us. We will review your request and take + action if necessary. +

+
+
diff --git a/website/static/android-chrome-192x192.png b/website/static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..0385ed4d05c798e72f578dd43ba8254c28c1a8e6 GIT binary patch literal 14056 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 literal 0 HcmV?d00001 diff --git a/website/static/android-chrome-512x512.png b/website/static/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdfa0250b32d57dec29b178ddcf64ca49269436 GIT binary patch literal 10121 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 literal 0 HcmV?d00001 diff --git a/website/static/apple-touch-icon.png b/website/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f19772fb3aeefc1deee5c710401c7fa9251adc1f GIT binary patch literal 11465 zcmaiabx>7p80SU0yAhCXE+Jg$7A2)Yx)NViD0h?KN+cb7B>2uOE#cf-El&d%)q zv%AB3EQ_%K2c!>@N|F#r zMKtEU2{QOhYbLLz1c7)kK_FiOAdp*d>dQ6+;tYjAc8wtrp+pFT)IO#0oe1~`imAeD z8OYOrKN&4~vEU4<(;FpO)NMo@Qch;<3-bjCg#F_i8A%Pd*@IM92}0MWUT(s^fb#F< zQqN4_lB$x(#HgQ&?Ck7p(zWc;CnqQM?xywT^ok5-Exd*H%e3rDCjGko^0Dw8DqLwJ zzLiU%yg}<{Y!lz^?CdmHCaA1-f9PG6dvxlOCD1!4k=Ua=&ytg-*Vq*esXY!k?OQ*aBHCA(i znB~>|)%}QWlM~qd@d-twi#%Vp7A`i+k5hy|4W^^R148F3C#Nu^j#A}!+O8_;GHjIp ztZW~KI52lJ_2Xo-MoWn*%W(Y%OahS{V1AEcSa20riX?fb&mCq^vN2`MuNiux*{X$& zo_9h*fz9!?jk%jBhT$3N3^D!ALa8NfbxH2|U6OPJ&k*lT={pHbe|1Q~TCs$ZWcYP4 z?%*Qb;6-x^Gb|CvHIXo-);Rr_hw z_Z^#NOEpPO@6J5kxAuKdqTZt*S9{Dvj9o2(PZr z!#r=h9ta9Fm=f5DFake-m6j#ukC2cowup}z zUt3N|OP2ch9CQ316gdTicYO9bA~;8H8OP@Jy~!4-v>*wct4Ju6}G{6>94(cXs(tJfWmvxNV8neaFDzXFkMK3QE?G}6?ky!Q z1v*kf#_umlW8ZoI<;n&i(UTkRIW?Z{Hu{TG53#dQYZTedJ&sN%z+ip|$!YFh{r6aO ze$dAlj~2u6g=8bIz2SkW!+34on^%5F7)eAl&tu|}KmU%@?csD#$4?YR&HQm&(@YAm5; zdAmA@}IV7Q}EZZTo$Atlyxfx3s+kq9k%jwOn5lUU!bD*pYbHnC zR~7$;R=rC7#Wg43#(RAO)iSpz)vaauJ^Uf1^W5X%;Evey()Ybb*?dq*H(pArowFTy z3Xhv#xQiZ~5d-9}$w6S$jcvIe3V(ClX!MdWDVqF=oaD7Uxljq-^o57$z|vIr4EiOM z2xFr&Baeys4{=yfF3E^oJ4ApGHBQRMVr}fbKxtk>1BH-W)+ot5hxb($V%xn>t;#$+ z)tMo zmZsT5UM_Z5`v%gX_f@2Ol{)stK(*dM-2Ljok*^m|nM6r#J9p2={0ZqRwnF#<`_*|y z#l4p?9E~CpXYF%`^jEgRz1v&HN!zrVZhTVWR`^zJ_BEL_>Urp0+x_8|x6xyh0d2Kq zr>(rU%FzX79no7&vIJ>+zjXeyD~lePpa}u~(8dzMfQmv`E>o9JrH!YIRe2_2;Vy;C z{^S07L%6@c3;#PS`i@841C{`#f0i;ja4aS-CU`mP+NKV&uXNOGW$b4}gu1yF%7u$WT!5p?I zUpDVeo{{g$e9>grSJD=#mm z&S72fHF|g~J*^j+P?Hqds3>pLNZqE%%tD?4Iup)9Z#Rc~K+SFRfW zYZ0GqaQ-O8vA?MN?yAkj*W=K1aj7bnN6e$8HMcc%iAz2roGCVB1aW&YO>+Os>Oar; zE-q?w{N$vIq^UmtK1Wg;_t=2H%i5#? z<`9bRTPhgGWnAQNu|W+{?bJh^CJIhCBY}Ph(z6%|dza50CKX?($$WPLdf_$)+x*$l z#sZj;a&hylRWiJ}IRpjTTuD!ZW<|#I@Fwt#i)S}WugR6&LPSNeupu1SfsWvr)2HA zz_zMxo^Dk>EPAGLM|T?SRj5Yo)|r1oDT&T%<0VRxOv+2|-G9iAgr@Wh3;Mn2YEwH- zEvt`B7MdTp*A3eoFlQs{ooc>F(X}?&Rk6qMT9W!LpYHZtG{*~6l^rEN)pTTg9=Lnj zkR>24?)}*r1TF(!5ALyKrmD=d7l}hZ`D{G& zHQZd`Mz8a%1`P^rY$vVw)d@{A&uEBvSx1)YmMsh19qWfUK>fR#4S(wUqZoYnZ^tP( zI`w`t*r<9o*lYali&#UQr>>|eLo94dvx*+kf3f%w3A)p$mh-nJr_~>xVO%J>xYAcALE`s_RS1 zI)+3%K{ku6$plbEqaH1At@&LKwbO)rE9%b;wOx-AxtOVg&+PLUdt^)Xn~n9ToXb_5#m~LL#DQpbN-PEe`dR`^^D&_dv zjvFqoqU3kDOL%p3eO%>9JYm`JZQ*P0O6}v>4QTh|3oQUbrF&gGv~oXr*A>5Ii-oH&AxI<3lG`3VTQ_Qe3Nguku_5*-An%2Ah{2kJI{yTYxb>*w-X(!{n7e^ zX3^)DIXUxXF+7rLX$*r#+w+?NKVhGy#@bup&R?8W{LM2+?T~(nc>e~qIGwa?#n57ns-JE zQi)p^`r$m@=n3XqlHavXxVb@^-sa@Iu0jw~PsdIe{#-a%>z%<>CpUA3IwA|v?nzwu z>+lJFCUzVwl(Y5SjaEezCvB7d)TLp=#Pu5*G&O>?X#^j7-`Z+tswa9+-tgxXC706$ zj#*Vapk-7d-e9R2zL+BUOq z3{9;5(KQ-tKw7#kSXZlZS`AXGyY49Ze&=9^nv@tv6g(=;?M^)zSD~4MrH7Z(y7?@W z)nVCwx>uX)#6I}MMCfd5<9m}uY_p^mN_6L_et{U4hrFt>hMT;TjFmZyV94{|*`5t* z{V+tw)Wc7uAj;@{aaf3^!agat@_?1!Mt+a!#ifXh^4pt0fY_h?ec*f5Fmk{zIQ3fF zd?g~~*YlxlruNleben%ua2Ec;_pWd1#+Yzx3WzE*McUC3oP`|Ph;DLHQ&V+(#9~b5 z`$q7TGujgJnkeH|1A5KMbs&&)57B&NO@Dua0>$x#xqp*}>PtEXQ+;sKd=3B35632M z(S{s$q#=X65lE1X%EneBy65Dz_5jS0lIGhmqJ0&AauE`J8MtvIY&kWr%jXj*20#6p zva|Zz7+MrR7_4L|;vkS$kpw?YGV*yW7(C}631B26DpZ+ov*`Wg(`4LXmgH2XI~Ke3 zAzL;$_}_f~+MUPE9d8yrpqUbQ`w8+k6mH0Z3TN>7Lc8S~-kmJ^8@GF{&?Kg>fd&h| z4j1tq+}s=0`($(!#(FFt`yELQpSB#$YRB{oqD%W4wclC%JWJeJMZ-n^DQtt{)$LrM@M!4xC2aD1rB{MS&2pZj?u89=w6t)O{@ zwe0~YiCj@Rn47Rxlfw}dQ35O8=4e&6y z3)_FsMN{i&jyp21UuU;i?t3+d&J$zF|C+{;?T0S8w;ru&}C`ZS{HcIxoM*fOdbEcRqpdKJdv>kz2El=pnz&*#*xtNFaB7lpdYl@=f?}Cpl7kfx4-n_|tiS0VTDr;t09Z6A+-3S#{R9RSc1 z8n#x&p0v8UU#b#^&Nh39NbP3{rCj}kWMj@bYJGr)Rn^1h^$QC6Lq`rKoFg|ewh9X1 zg#~bmCo+Q2koAej>p$HJn@_{v6aRy#n2&v}Zii}y3O2m~AE}jTt=3N{-S0tl0DHuU zxmgTC5wH`gQ0R`K@Y3`=cicjQ5xP!7(}t#|Gj^!Ms97yw89oZ4mKxBs(dYmAMwX51 z&2O4JOl?ZDX?O6t&yyfj>mp#?pUuE_aOn_# z8aK--8MC2uD?6NS*<0f_?)8*wU#mNqZ}J_OYwAsBjgF3*uC#7>QI&>{j&AxPH_yGk ziTtj;>&jFShk0zD2@1kf2q-rq+*%4^ zddmv^L;2o@Mf(lS2nIN;8du$$VC!JO7i$~nAFPgH^H~E`@?CAY{9Fd?^NnZpjwQj7 zxuq5E15vo#n;VouztN+gdSh+AP9yZB5JMowe+S9W`2N|$Y|UA&a<(SD+k92-k9TpN z{b194G4C%DGK4`z?8^J1CzPIvj!5rThKZ)UWb}~CDT9lNmxGbV=X&^_vTpJ5n9r}< zD_U6A0Dd%Mq^kdM8-g?NwDVejAlr+abHi8FnA>tWzfl6o zI?x<4Mz;eJS+*}Necs24wx~nN2AgLJI{gn&3#o{b8(BTuc(R%L4wK24q`OONld6sxugl*(MqiqsK;N>P;(ebzx!MA-+Z zC3Hc?Yv;n_C#AEVDHQ~Qk#l z)qFgUz9_$#|8A~tkWx-i|0g106Sh#2bok|(Qi8=_Lw80R-_W8hmKF1CxagszD$@{= zL8&f33vB)A7TL==+ajKax&JjDwDtIi!5?Xi#4I8vz`O77YxnASWiGS*=?t^kP~&u? z%~zm(@zzHc+o|}lGvkgIpSbN=#80HP&(8|*p7267wB|+v?iu1y!n+lfLO@0WZcG!E zR&F^#P(mUCGN72epNd400UCRFv739b#ce>0Cd+&CJHrDlQVuW`Zk1>}W#hMM_dgQ* zV(QcIKg~DZU8W5y6&-8NjWERg=}C!w%jEE?IBZu)Mv(BPTgrcW1l6ob!fHpb@m+mW z16Lv+Cgcmq-%0n(h+IHqG%mXZ4LztEF$1MIlhP~f|0)Km<){``>v2*^{&ADpyDAtn_5kObOA}?B8vd! zdLMZ%ATDL7-`jjgN;<|?hXdev6&=|o^>Od(>HaL{VP(sIx@ud6NRIQ3aPS5I9=DA~L2hOL^08XSxo{ieMxGki(wmMq* z-lb&|sv!X3^bKk^_L9?;jX+d$_#HoVutSV%y+7avdO z{6YNE<=&V~3&pEnl-}(SU(F?Fwy3?d!d;*>agDZx_yinn?0o9!3ONDNsHit|^*BHQ z9`v<3u3Xwtc;CKn9r1F6ElH6}5c;sD?AS?>WGP5~%c!<37cjss-;I!bXi}Q3%J++c ziofh#ku_G~L=Xx68>DBJpKHnG5QKHVLfugdU>W!_K*%dCZzA~Z|FK3?!*A;Aat4Ku zepv6Cv9}&)fR_Y9Y7PT!vcDu7&Nd7L0xre2;|yMnM<2%yeyj}YZcxzjOChF{*?%mW zZ22(#Zw*Lv#HiG$%sB6VyrHHMP8z6-wS+)2s42b*poDYKV1cjPvG8bFTnu7^K!7}{ zMTr@Kh++eMfr}(*BR0oR!Kp!owq#S=7QNZsj}9*;ZDIUv3Ju~V7?+lIxz75!VM2)7 z-aV7Q?TNXv9+3BKd0>p4=nrbnCnPloiC_o|5rzp{)yo$Ip@eb@ItXl_lKl>s=7{-N za;?|CQa&P27ZA;ry*l#II7KzHMI%|74v%axL@SO1V`0o+F(6%Gdv~WsMpQr=Cj3gW z+s}R!u>hvwZ}z%`g(yrO$}>9rdD&iPI^-ogVHXZ9S^cZ$sal0H;t^GR5imTxQF`KF zHDr1m_WJci2^slvJ5&y^9z86JM9G?;OOqx;J>NoQ@?m(&bo4Eu<#BcgD+f4?A`E^0 zmQJS?}rWbpS?+Tkr)Nomo;~ZsX3uob{=GtZhTvXe7guvJX^Ryn6=XT;M;ijA z#<+>iq7-^`$Wjye)=i{K&QH*(Dm&uGQEl$KIlztk4c^$_bx-MpME;#Lfe zwH4*uBSg_6j2SPXaUUzzw9X6%)lLyIS~;qha^ zfW`yygycgmrBFte`t{oAQc3!Ujn3mB5`~c+Cub%3RMrT**ND;FfdO+(YOE&n{qgzy z^uWSW>|v#dG;DENX-%EeAvq4eI5XLQoU$1p9pXFxG+|Y}^!#S%wgnpk>8O_+X>cs? zf;1HU!e8CqCPEJ|(uQdueO zbg1`;^RFV!ht#8gHD8yMpR8lw1FaY5q4HU#{1-PM$T`SoSI&Bnbv7r4K<{+@#`Z4S z9%H<3?->(a3k9de}BM)|#oXSV=CpcFPsT)NkT_b6v#7&E{2ZciS~)6HJAAlyxe zKhe%sSBZlJB&XX>gY)aw8>cZon}uG3J3CS|*Mqwbt8)%M}M5jwD6Xe=WZ{q}5^x3DSIykh>54K3Zv|SIaF8I3cfsxUG1Gs&&y?abh;<9)l_)@ZfU&vV4;QPzzgxRKUykt z+b|6z80p_6##r2tMo(ZymL3{b$ox_*1gst-@Uw$UZo@kukb-83vM>-QB}XPbJ~`Up zc;q)Qg<*HG0IZ#HqQpvOrJ;LEv#@7m%uxt|l>j_yP{m}nw^M1kYnHtGP{luS5n0w& zwe@gNrmPSqc>ex1a5pu=fHvCmFlPRz=;PADRiNENE4Jovy>s1szKm&B=T6w$LkZDi z>rbVY#R=AOyU9NV+b$MQ)MuCyn<>IQthNCOH=4eU8cJOrQzOVExd5!IhjWc>n4A+w zdV+6rFy)iDS^Owy*o!kwzFV*FI4PQE{!N}7E+Wpk97wBS&HYkkU5^;I9yy2{I(8Q5 zX}59!Nmx!S2Ph<~$pN7ZN z0-03cZDskoKnG(Sz9RZ*(|4nLAS;=r5pr?;)lJ&D>CU0 zXv2vI)~s*Z_aS@9Z|PrWO~lW$HmPfo12`-E(qgkZdxREeC^F1zRwIXEe}A_$zm%PY zi?h{Rg?7I(J-`D3si&GO-hoPn0qc@UaV41!Cs57(1-Gx<=?@-hVPJRxGt85u7pljp zGc~P0HGMyJqW&lrar|xB{*$Wl7n+5+SSh9knDCl|4iQGq)Lt;Z-o?l_se=6j;yTx` zpL*99kwZ$HC8FM@ls}iFI)AxW^=eR|fH)m9=o=6;`PJSveFE^>P|1PnR9Erfxsggb zoD|K@I{`0K4SQ0sW?Zl)wY)Y z=kKi(=Xd#69fGcb2?z30bmY^hW6+8=M|?|HgK z)x69p`kzW3wu-oAdJ!isp$3Ng*li7e{qar;`^^sk1zO-xqw~i@YXPVI! z%ebC;*%Xbq^WwVXAGFPi*S81fH@x-oG~zTp?3C#a&H5Y&aZ-!TE7sGjIhBR8Mk*gv z9tk$_gY%oN<~n0fa zq2=WCjEa3yz_We@3B`7<89{*OSFNAx@$oyy68xWI-zy3lE`SJaY{d1>#-Ga}N|O=};2~=-JQk!gXj^-sXttP}JT^%Alzp zw&qap@YSkXZ$$MKIX{LH6Tusqj%#bAw{d^O5P5rg(W8BLZt{4?)J?7)U2ca{=Jzat zDb~%CJ?eF~#tm>4uxonvrLso%CX4Z$FT9=xLQi5#A8+b&vgz*LDY!det(csKyQ}-v?ww-~1UpAtToH~a@og#^ZfM2?Fe-rvVM&y*w=b>I7YEj=c-hZ@ z0SEA$q$_%W0q~#aSf$qSL#V>1B@!0dpYG>qGIuyZ(NJTZGg|nOlx7*aN7tLSDuy4E zlvevNp;YeD1&VH!zqk&aZjT!E3iGfb%m~Y|X!}b}%{h zDw@$GfhXd1zh1B(9$#OY)0H{;vF&js0XXyJolIJi!q-=6EUp9EVj z;yC^4tH18O6XV%GWRLB9T5QF&xqvgngjc{m@%;U1fmmiS5Vdf{&P-g&^I{SY6#@Za zaCP8C-zQ;Q@KMzpq#!rW!#LdcVz?xlJ@EcCDDS@=7XF9~$tXyA>M8ZEJB-(DWQ_MN ziJ-*``$*}A&VygRA#Sf@YimvxOsr}!Wo27=B#jch@$`7f8O>qvrMEM|r{*Uwq$m{e zI$CTsi+2>J-VedQ}N!sx#QslArsyG|# z_s>-zp3@S=X-@?OB9ZT!ySvv9r^E-e8-qrSPg39s%TVikax=Y%;^eNp_riXzuBBUL zH)Uw!QKqX2q#J-G4u5E(R3KvMekat||DMOw;_lJGZ41Z`)L3F&U;GqBcu5YBf-%3e;(?~}2b?dWkJ5I_pS z+Yk5f0H}Zn(U}wqWVN=V6kR@moDQD7u)Q4jm&X%cj>8^qejMKFXpkg}Xn*t3uiR$X z&wq*LM#;MSr(ae@5?Bz#xv_9I=yX@e(LO zeh9|dS~nDgD<)V^hr@!<&#$~q9tagk|B^r9^G4)1ZRx%1zfsUW($tt+X$pG#g1Jk^ z(jxc2@abw$&D2P1N(7~uCoQu1JQGa)Kp^%m9Urol{?`lM1tYeiLOYgvT|JMwl&ODV&4nSlAaa4YtmdWo@vSM4m?PgxCayE%g+--_ zT zVF07^%?V;xp7&sfMMs5%Vws^{zw2XI4^1}><-aps1VR#!s?o$vE%vpkI*lt5r~Arl zqB)ZPk6|$&73RiIqEM&z!imwEZo7b$CdSWi{-X#TC%Aj zaw^3fd{xTowdc7H6Xdgb8>Dz(`C$6$H64!wteB8m#opmXYzP>|8;aZAQT{*X-XJCG z;okuCo%og9t70+Nz!BsQ?c%{A2}fT;;YtU9BPL2teugU0cN&YJ-*%rMnCk}eh0C{74}&AnDig8-*f{)QGR1^IgH2=g+HJF zqYrv`UZ4*ASukDG7aX%Gn>Y5x{503nXQ$=#*LPu{rr~z=#o0Q*4U$M<@3k%d{7!y+21WC)RRO=^8&ib4s5 zWE5SSNVj*q1t;r0`UrHNHYOn2K@7r|Fw9$!CymMOzjw{lt# z=mzWNK@q{(dYc1$M!uazpeh(Kr5kPE;yA#d zA<|ShSgUx!i2nbtQ+-c}y1_bkrnSHhZ2M8~em!A{L$H~L5 z!OJJa|5AwW6+09v1cg?#<^DGy{J(FogPU7hy8qvA_`OP93vST%(9m&GGjXN0{|vXZ z23nAlyS)XiwY`%W1mc#mc8Z1OpvA)SM`d8}&4wBTksg!F43m(aP$8BGk&ssA3xB6M uB7Kzx?ZEVSU)Nw4RTt{O7x|30T##K-e5X^XmvP`LAa7)qWlE)tzy1#cwr>jn literal 0 HcmV?d00001 diff --git a/website/static/browserconfig.xml b/website/static/browserconfig.xml new file mode 100644 index 0000000..b3930d0 --- /dev/null +++ b/website/static/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/website/static/favicon-16x16.png b/website/static/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa0cde46a40fbbd2484a50e19314cee67de561a GIT binary patch literal 1040 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 ZbZcM*0TpbMZEwpZ0B5QjrH;%>{tu?K0!;t_ literal 0 HcmV?d00001 diff --git a/website/static/favicon.ico b/website/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..13af67590c678a507b587e0d6af68c6fe7511180 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/website/static/logo.svg b/website/static/logo.svg new file mode 100644 index 0000000..6eaec10 --- /dev/null +++ b/website/static/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/website/static/mstile-150x150.png b/website/static/mstile-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..f269d5c95c35568acfb96aa0d226ebce4faf0d4a GIT binary patch literal 8427 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 + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + + diff --git a/website/static/site.webmanifest b/website/static/site.webmanifest new file mode 100644 index 0000000..8c1b619 --- /dev/null +++ b/website/static/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "pesde", + "short_name": "pesde", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#f8e4d5", + "background_color": "#13100F", + "display": "standalone" +} \ No newline at end of file diff --git a/website/svelte.config.js b/website/svelte.config.js new file mode 100644 index 0000000..a5b5a02 --- /dev/null +++ b/website/svelte.config.js @@ -0,0 +1,13 @@ +import adapter from '@sveltejs/adapter-auto'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + preprocess: vitePreprocess(), + + kit: { + adapter: adapter() + } +}; + +export default config; diff --git a/website/tailwind.config.js b/website/tailwind.config.js new file mode 100644 index 0000000..34786b7 --- /dev/null +++ b/website/tailwind.config.js @@ -0,0 +1,40 @@ +import defaultTheme from 'tailwindcss/defaultTheme'; + +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./src/**/*.{html,js,svelte,ts}'], + theme: { + extend: { + colors: { + 'standard-text': '#f8e4d5', + 'main-background': '#13100F', + 'paper-1': '#422911', + 'paper-1-alt': '#4C3C2D', + links: '#ffa360' + }, + fontFamily: { + serif: ['Hepta Slab Variable', defaultTheme.fontFamily.serif] + }, + typography: ({ theme }) => ({ + pesde: { + css: { + '--tw-prose-body': theme('colors.standard-text'), + '--tw-prose-headings': theme('colors.standard-text'), + '--tw-prose-lead': theme('colors.orange[100]'), + '--tw-prose-links': theme('colors.links'), + '--tw-prose-bold': theme('colors.orange[400]'), + '--tw-prose-counters': theme('colors.orange[300]'), + '--tw-prose-bullets': theme('colors.orange[300]'), + '--tw-prose-hr': theme('colors.orange[100]'), + '--tw-prose-quotes': theme('colors.orange[300]'), + '--tw-prose-quote-borders': theme('colors.orange[500]'), + '--tw-prose-captions': theme('colors.orange[300]'), + '--tw-prose-th-borders': theme('colors.orange[300]'), + '--tw-prose-td-borders': theme('colors.orange[300]') + } + } + }) + } + }, + plugins: [require('@tailwindcss/typography')] +}; diff --git a/website/tsconfig.json b/website/tsconfig.json new file mode 100644 index 0000000..cf31bef --- /dev/null +++ b/website/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } +} \ No newline at end of file diff --git a/website/vite.config.ts b/website/vite.config.ts new file mode 100644 index 0000000..bbf8c7d --- /dev/null +++ b/website/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()] +});