From 2bb77ea3ac454f511c6ecfd8730c8843f39212a4 Mon Sep 17 00:00:00 2001 From: liyunze <50455574+liyunze-coding@users.noreply.github.com> Date: Sat, 29 Aug 2026 20:05:06 +0800 Subject: [PATCH] first commit --- .dockerignore | 11 + .gitignore | 26 + .npmrc | 1 + .vscode/extensions.json | 6 + .vscode/settings.json | 5 + Dockerfile | 35 + README.md | 42 + docker-compose.yml | 12 + package-lock.json | 3143 +++++++++++++++++ package.json | 32 + src/app.d.ts | 9 + src/app.html | 18 + src/lib/api.ts | 21 + src/lib/assets/favicon.svg | 1 + src/lib/components/FeedRow.svelte | 34 + src/lib/components/Navbar.svelte | 76 + src/lib/components/VoteStack.svelte | 73 + src/lib/server/api.ts | 392 ++ src/lib/server/db.ts | 173 + src/lib/stores/auth.spec.ts | 7 + src/lib/stores/auth.ts | 50 + src/lib/time.ts | 13 + src/lib/types.ts | 61 + src/routes/+layout.svelte | 36 + src/routes/+page.svelte | 52 + src/routes/api/+server.ts | 25 + src/routes/auth/login/+page.svelte | 76 + src/routes/layout.css | 61 + src/routes/notes/+page.svelte | 101 + src/routes/notes/[id]/+page.svelte | 169 + src/routes/post/note/+page.svelte | 179 + src/routes/post/question/+page.svelte | 177 + src/routes/questions/+page.svelte | 104 + src/routes/questions/[id]/+page.svelte | 162 + src/routes/search/+page.svelte | 59 + src/routes/topics/[slug]/+page.svelte | 83 + src/routes/units/[code]/+page.svelte | 86 + .../images/Screenshot 2026-08-11 143425.png | Bin 0 -> 76209 bytes .../images/Screenshot 2026-08-11 143441.png | Bin 0 -> 85201 bytes .../images/Screenshot 2026-08-11 143452.png | Bin 0 -> 40876 bytes .../images/Screenshot 2026-08-11 143506.png | Bin 0 -> 41126 bytes static/robots.txt | 3 + tsconfig.json | 20 + vite.config.ts | 48 + 44 files changed, 5682 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/api.ts create mode 100644 src/lib/assets/favicon.svg create mode 100644 src/lib/components/FeedRow.svelte create mode 100644 src/lib/components/Navbar.svelte create mode 100644 src/lib/components/VoteStack.svelte create mode 100644 src/lib/server/api.ts create mode 100644 src/lib/server/db.ts create mode 100644 src/lib/stores/auth.spec.ts create mode 100644 src/lib/stores/auth.ts create mode 100644 src/lib/time.ts create mode 100644 src/lib/types.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/api/+server.ts create mode 100644 src/routes/auth/login/+page.svelte create mode 100644 src/routes/layout.css create mode 100644 src/routes/notes/+page.svelte create mode 100644 src/routes/notes/[id]/+page.svelte create mode 100644 src/routes/post/note/+page.svelte create mode 100644 src/routes/post/question/+page.svelte create mode 100644 src/routes/questions/+page.svelte create mode 100644 src/routes/questions/[id]/+page.svelte create mode 100644 src/routes/search/+page.svelte create mode 100644 src/routes/topics/[slug]/+page.svelte create mode 100644 src/routes/units/[code]/+page.svelte create mode 100644 static/images/Screenshot 2026-08-11 143425.png create mode 100644 static/images/Screenshot 2026-08-11 143441.png create mode 100644 static/images/Screenshot 2026-08-11 143452.png create mode 100644 static/images/Screenshot 2026-08-11 143506.png create mode 100644 static/robots.txt create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0cc17d0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +node_modules +build +.svelte-kit +.git +data +.env +.env.local +.env.* +!.env.example +*.log +README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f62b30c --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# SQLite database +/data + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..5449017 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "svelte.svelte-vscode", + "bradlc.vscode-tailwindcss" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bc31e15 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.css": "tailwindcss" + } +} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4f36664 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# syntax=docker/dockerfile:1 + +# ---- Build stage ---- +FROM node:24-alpine AS build + +# Skip Playwright browser download (only needed for tests, not for building). +ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 + +WORKDIR /app + +COPY package.json package-lock.json ./ +RUN npm ci + +COPY . . +RUN npm run build + +# ---- Runtime stage ---- +FROM node:24-alpine AS runtime + +WORKDIR /app + +ENV NODE_ENV=production \ + HOST=0.0.0.0 \ + PORT=3000 \ + DATABASE_PATH=data/dsec.db + +COPY --from=build /app/build ./build + +RUN mkdir -p data && chown -R node:node /app +USER node + +EXPOSE 3000 +VOLUME ["/app/data"] + +CMD ["node", "build/index.js"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..2423a32 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# sv + +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```sh +# create a new project +npx sv create my-app +``` + +To recreate this project with the same configuration: + +```sh +# recreate this project +npx sv@0.17.0 create --template minimal --types ts --add vitest="usages:unit,component" tailwindcss="plugins:none" --install npm . +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```sh +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a16c007 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + app: + build: . + ports: + - "3000:3000" + environment: + DATABASE_PATH: data/dsec.db + volumes: + - dsec-data:/app/data + +volumes: + dsec-data: diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..fa7f710 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3143 @@ +{ + "name": "dsec-notebook", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dsec-notebook", + "version": "0.0.1", + "devDependencies": { + "@sveltejs/adapter-node": "^5.5.7", + "@sveltejs/kit": "^2.63.0", + "@sveltejs/vite-plugin-svelte": "^7.1.2", + "@tailwindcss/vite": "^4.3.0", + "@types/node": "^26.3.0", + "@vitest/browser-playwright": "^4.1.8", + "playwright": "^1.60.0", + "svelte": "^5.56.1", + "svelte-check": "^4.6.0", + "tailwindcss": "^4.3.0", + "typescript": "^6.0.3", + "vite": "^8.0.16", + "vitest": "^4.1.8", + "vitest-browser-svelte": "^2.1.1" + } + }, + "node_modules/@blazediff/core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz", + "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/lzma-linux-x64-gnu": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", + "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^22.20 || ^24.12 || >=25" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", + "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.3.tgz", + "integrity": "sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.3.tgz", + "integrity": "sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.3.tgz", + "integrity": "sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.3.tgz", + "integrity": "sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.3.tgz", + "integrity": "sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.3.tgz", + "integrity": "sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.3.tgz", + "integrity": "sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.3.tgz", + "integrity": "sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.3.tgz", + "integrity": "sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.3.tgz", + "integrity": "sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.3.tgz", + "integrity": "sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.3.tgz", + "integrity": "sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.3.tgz", + "integrity": "sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.3.tgz", + "integrity": "sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.3.tgz", + "integrity": "sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs/node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.0.tgz", + "integrity": "sha512-70TeIFezKKy65LgAVyQh+w94/gjWhvPWaLaGGeMEgVrPkQhuj/M5bAYYZzIFUj9Y69oHyTm5Um/R6gcLh4A8JA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.0.tgz", + "integrity": "sha512-YC86tYIHK6M1IV+wbzO+Bxk8RCBr6ZyWYgWxUCzaZD8mc8rrFoIJDNzDrkHBYRc/wKdrsIXmm6/F7NzrAO+OrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.0.tgz", + "integrity": "sha512-oI+ECtUcli0y0fi4xpW82GdPIXdTkI8G8DSjG2LRuw09fPAGykaWYH/hXxiKuTxiAjiPSTIIuYUqof5Z2hShWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.0.tgz", + "integrity": "sha512-NwV+1s7TiKrMe4owHyKB/dTLD7ZJD0YEBEhIz+hvav1Cu1GReJjF+rsdNwjzENQeIAbE/CoNiaAc5Vz2h5DPAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.0.tgz", + "integrity": "sha512-tWtHBTu5gOPK4u4Urtk4qAHW3zZ9rQAmbssO8gp7ELvGTGI3aCiq6NqyTQ0PCIg7KbHJF2UkGDDs77YZGxfjCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.0.tgz", + "integrity": "sha512-2qPoJiwTvtHQ27NnYvTnsgk8laXWYuVmNESG8WFZBcEPKLfZ3I27qBJarjVRQtwGeYyRfq5ZowHXih9lm2BItw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.0.tgz", + "integrity": "sha512-FQwsTRvLNuHoTdICABJQfbPUSEueISGmnpT06tXTMpfprf5NiKLSXKA0A+w45wJnCmZAnzgqBwbt6ARFuyOi5w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.0.tgz", + "integrity": "sha512-BBVTXziw8mY1a4ZbWME9tZyfzqXCDPqaC7Z3heQ29p5dkvXzwL0NwelO8zLa8c3RBKvl3YTuSnBgsBhYBtwjIw==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.0.tgz", + "integrity": "sha512-w2Iyy9+RqKwx3d9qWMKsJg0FfRBsY0/pXNv0mCQ3ueRvJI6+QAScfD4nrMlzFLs2HNVW6Ew+mtZfDl9b7Ew5/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.0.tgz", + "integrity": "sha512-YK++KtrFRHYE0P6/RtYEAy9t8F37znP+K03RrIuLPYOL6SVlObRumf/0OE4V/h63xL9DwkWbNssZfmA9hawuDA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.0.tgz", + "integrity": "sha512-aBfOG6fP7YkkPmTqPwufRJeFyz7WPpECv9XNbnsk9+vg7rxdih0lbtEel7jcRng4LZrrmU3FfitCFyEj4BWDWg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.0.tgz", + "integrity": "sha512-LGaHEOeHNAag9VuS1Crs5DFg4RrU9MPi2nVnNJk9DTePx/B6RRYKVmrIXt2h7YOJlwjaFJ6lwtFDliZxScTLrQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.0.tgz", + "integrity": "sha512-jClvk+J0FC3b7Udvegiw5/4hErbHtmsNsQgENnKXDWtNCJXsJYZH5WURvu7imDOO38xYml24eeh5x3A04ppwCw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.0.tgz", + "integrity": "sha512-0OJlaGK+8+B777Ql5okIpD7ua5Ro9+VB9Ve0OKa28OQJZ1RbuUBVNHK/e3pr4BROqsyPl1JrPO1ZxJseCNffcA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.0.tgz", + "integrity": "sha512-Ygsx+HoNH7afwi1bTIXbnTvVnsO+zurPLSYxybV1hHFVU72OWOCl6v05ql/z0hkpAPx+DK7Kn9Bi7MayCcjLTA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.0.tgz", + "integrity": "sha512-pDQxtMGb+OvG3fLwR2OkZlSd47hW+kWg4BYMG/++sR6RqorQccwPTDsxda5hPwiIeIErAnCF9ma3SAU06bdQtQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.0.tgz", + "integrity": "sha512-0BnUG9mS8I4SSHr3XsxVhuCMEiu+rX61xxZF5vujso4LaiAGFZFxvDjg6Xn6tLPNTUAfuCvQYas4LMQMVsKRSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.0.tgz", + "integrity": "sha512-Adu/VttB1dpPNW+FEacrZ+xVm9tFty84+RrFzsqlFaPxoJB+9XXyDGtp5dCOoBwGBIEVH0To7lExFXEx0BIF4A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.0.tgz", + "integrity": "sha512-NQ3bDvjUbFKmP23671xUlXtKmqVsUBd6M4PQCvbmNtOy06hnQIdKHy8oG/6S3R/S6He1JgPk6A5VT+prAJMYEw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.0.tgz", + "integrity": "sha512-u2eDAl4+0aFvA13GxlGBtTI3SS3sdgwgtV0HyjZ0QaQVCgNE+jqNGey+GtxWiq+wxr/UycAx/OnfJzApCFamvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.0.tgz", + "integrity": "sha512-XvRb5vfW3wAZQ+ZUG21AnHHDKtNcw99eigzEhjr//NZ3u7SoBaPP0seSc7FgP7p1epAEdAoZckMW9WY/+4w70w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.0.tgz", + "integrity": "sha512-iZPmniy4kNBf5yo2RezbkYNNK5HPbXE9+g+twnbqSng7dtLEJy1SKoxiE/ni4FDacjyuZpEeb9U054N4EoKHYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.0.tgz", + "integrity": "sha512-mFBBd+LF37fnE8JnYUOH+imj0aPFPK30vpar4ehJkgnLj9sZn8ZxiRENmLtgIwxK7TC8klF6N57fxdNBwQoqOA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.0.tgz", + "integrity": "sha512-ujeqEY3B+zbGn3Z4Q03cUBG/LGWnBJncVT36WER31LcOsQk9+1dmINKKtvmmfChUvRbK1G0R8OhMWFgHgaZtAw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.0.tgz", + "integrity": "sha512-hncn90N4sOky0L2LKE5oESKLbxCPeVo4eLA2LSMoDzM+879ml4WSr+Rr4DWknNIVVvS1Hirkc9hx02W6YxS8rQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.12.tgz", + "integrity": "sha512-J1jNYG23QWd67UfrQSFHtjhV37r9mVi0gdc12A3MWPldOjRK35Xk+um+qACPVjgw3AleiqoyEAhok8Wm3q46NA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-node": { + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.5.7.tgz", + "integrity": "sha512-uOfc9eVlI3A37RRSaKcgrheBYPrfJwC9VMqDp8x/O6tlKdcLLvHThSWD0KNIbjQ/d+7bwLGx3vx6aowAcRfd2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-commonjs": "^29.0.0", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-replace": "^6.0.3", + "rollup": "^4.59.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.70.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.70.2.tgz", + "integrity": "sha512-RzRoRpuR2KXqc5yMO0akQHDZeT4AslOlznGITURsqHaVbtyYP4Wn3eE3gxj9JcDyNYO0crkxhdwFHc+2vkVm6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.9", + "@types/cookie": "^0.6.0", + "acorn": "^8.16.0", + "cookie": "^0.6.0", + "devalue": "^5.8.1", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "set-cookie-parser": "^3.0.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": "^5.3.3 || ^6.0.0", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@sveltejs/load-config": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@sveltejs/load-config/-/load-config-0.2.2.tgz", + "integrity": "sha512-K7dsJDQxBOF+f+epuhMactcjK2VP4MRkLKtwSykNtEI+cKVEyzrmmhQ1pmoxI800m4JKcyJ05L2M4yPwAGiBNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.3.0.tgz", + "integrity": "sha512-QbRoJyD92e9R0ufeQIWRHrCC0ObcqSv/aBDdrQMoU+sypav3cDx5wytdQ6GLdXjEMO6xjrXGzfkUygng8JMv0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "deepmerge": "^4.3.1", + "magic-string": "^1.0.0", + "obug": "^2.1.0", + "vitefu": "^1.1.2" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.46.4", + "vite": "^8.0.0-beta.7 || ^8.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.1.0.tgz", + "integrity": "sha512-kS3VHe0nEPST2saQV4Rbkchcd3UBRkVTQHo1D3h/ZTwFDhai/mfKkmtPAtD129EOI7K3HlHIsFOt0WrI2/oU9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@testing-library/svelte-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@testing-library/svelte-core/-/svelte-core-1.1.3.tgz", + "integrity": "sha512-KkMAvXeWorxN2Yn0kdC1lfoAItxpoj4uOWzxK5leDrNxonLvS5nwBFvztrroyTszQ0Wf/EU6iLT8JhY5qcn22g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.3.0.tgz", + "integrity": "sha512-L3fgrnchriRC2ExBflb8j4uZZURHZfQsmQeyVzhjcHW4kkwVyo8/0h1B2MVzMTrYUJYu6G7EWs14hW/L9putqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/browser": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.10.tgz", + "integrity": "sha512-UDwuWGwXj646CBx/bQHOaJSX7np0I8JL/UKQYa1e4QrVHH8VdWtx8eaOuf8sy0ShwDgR6NjJAsp5eF6vjF6qng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@blazediff/core": "1.9.1", + "@vitest/mocker": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.1.0", + "ws": "^8.19.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.1.10" + } + }, + "node_modules/@vitest/browser-playwright": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.10.tgz", + "integrity": "sha512-nMoXGEiRpT7m3W7NsbvrM2aKNwiNHZf+zEpUCvMteGjZFvfT96Q9fh7QyB98dvDWXiKvrLxA7bJ1mCOOv+JQPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/browser": "4.1.10", + "@vitest/mocker": "4.1.10", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.1.10" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.10", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.10", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", + "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.0.tgz", + "integrity": "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.3.2.tgz", + "integrity": "sha512-40GyiEJevYKXzYTHtZkFqAgTjLOuFcaXMao8TPyOlnWTlkHDlvZ6mPMJaJyOqVwrVCgomEG1WhJd81w0X+IcCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "peerDependencies": { + "@typescript-eslint/types": "^8.2.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/types": { + "optional": true + } + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.62.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rolldown": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.3.tgz", + "integrity": "sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.143.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.3", + "@rolldown/binding-darwin-arm64": "1.2.3", + "@rolldown/binding-darwin-x64": "1.2.3", + "@rolldown/binding-freebsd-x64": "1.2.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", + "@rolldown/binding-linux-arm64-gnu": "1.2.3", + "@rolldown/binding-linux-arm64-musl": "1.2.3", + "@rolldown/binding-linux-ppc64-gnu": "1.2.3", + "@rolldown/binding-linux-s390x-gnu": "1.2.3", + "@rolldown/binding-linux-x64-gnu": "1.2.3", + "@rolldown/binding-linux-x64-musl": "1.2.3", + "@rolldown/binding-openharmony-arm64": "1.2.3", + "@rolldown/binding-win32-arm64-msvc": "1.2.3", + "@rolldown/binding-win32-x64-msvc": "1.2.3" + } + }, + "node_modules/rollup": { + "version": "4.63.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.0.tgz", + "integrity": "sha512-T5vnZ2y4QqC3/4P+w2+JO+Q/OVdnPsv4XcSYJYMEn0R9/jjl5AgLwO9LAZMzP2lN71O6pypn91rB7lDstUkfrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@napi-rs/lzma-linux-x64-gnu": "1.5.1", + "@rollup/rollup-android-arm-eabi": "4.63.0", + "@rollup/rollup-android-arm64": "4.63.0", + "@rollup/rollup-darwin-arm64": "4.63.0", + "@rollup/rollup-darwin-x64": "4.63.0", + "@rollup/rollup-freebsd-arm64": "4.63.0", + "@rollup/rollup-freebsd-x64": "4.63.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.63.0", + "@rollup/rollup-linux-arm-musleabihf": "4.63.0", + "@rollup/rollup-linux-arm64-gnu": "4.63.0", + "@rollup/rollup-linux-arm64-musl": "4.63.0", + "@rollup/rollup-linux-loong64-gnu": "4.63.0", + "@rollup/rollup-linux-loong64-musl": "4.63.0", + "@rollup/rollup-linux-ppc64-gnu": "4.63.0", + "@rollup/rollup-linux-ppc64-musl": "4.63.0", + "@rollup/rollup-linux-riscv64-gnu": "4.63.0", + "@rollup/rollup-linux-riscv64-musl": "4.63.0", + "@rollup/rollup-linux-s390x-gnu": "4.63.0", + "@rollup/rollup-linux-x64-gnu": "4.63.0", + "@rollup/rollup-linux-x64-musl": "4.63.0", + "@rollup/rollup-openbsd-x64": "4.63.0", + "@rollup/rollup-openharmony-arm64": "4.63.0", + "@rollup/rollup-win32-arm64-msvc": "4.63.0", + "@rollup/rollup-win32-ia32-msvc": "4.63.0", + "@rollup/rollup-win32-x64-gnu": "4.63.0", + "@rollup/rollup-win32-x64-msvc": "4.63.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/set-cookie-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.2.tgz", + "integrity": "sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "dev": true, + "license": "MIT" + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "5.56.8", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.8.tgz", + "integrity": "sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.10", + "@types/estree": "^1.0.5", + "@types/trusted-types": "^2.0.7", + "acorn": "^8.12.1", + "aria-query": "5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.8.1", + "esm-env": "^1.2.1", + "esrap": "^2.2.12", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.7.5.tgz", + "integrity": "sha512-NnkHGCTPH6k4ka1E9IpTuNv40uLArHnX52kLEuaHSGqRlPYTnkbFs529jSWG+y+wDy+v+jA2PQ0soN1umVK+OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "@sveltejs/load-config": "^0.2.2", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.1.tgz", + "integrity": "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/vitest-browser-svelte": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-2.2.1.tgz", + "integrity": "sha512-dVjmXuk58eLSloA41Lvz5ALMqWVzK7Gk5TvY5KWFbI8VoEO1nJF1/M498NwJRbxlnjaEZrASd02h+NDS/T9mBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@testing-library/svelte-core": "^1.1.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", + "vitest": "^4.0.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", + "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==", + "dev": true, + "license": "MIT", + "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 + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..252ff3d --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "dsec-notebook", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test:unit": "vitest", + "test": "npm run test:unit -- --run" + }, + "devDependencies": { + "@sveltejs/adapter-node": "^5.5.7", + "@sveltejs/kit": "^2.63.0", + "@sveltejs/vite-plugin-svelte": "^7.1.2", + "@tailwindcss/vite": "^4.3.0", + "@types/node": "^26.3.0", + "@vitest/browser-playwright": "^4.1.8", + "playwright": "^1.60.0", + "svelte": "^5.56.1", + "svelte-check": "^4.6.0", + "tailwindcss": "^4.3.0", + "typescript": "^6.0.3", + "vite": "^8.0.16", + "vitest": "^4.1.8", + "vitest-browser-svelte": "^2.1.1" + } +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..fb9cb50 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,9 @@ +export {}; + +declare global { + namespace App { + interface PageData {} + interface PageState {} + interface Platform {} + } +} diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..fde5f82 --- /dev/null +++ b/src/app.html @@ -0,0 +1,18 @@ + + + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/api.ts b/src/lib/api.ts new file mode 100644 index 0000000..0c8d8dc --- /dev/null +++ b/src/lib/api.ts @@ -0,0 +1,21 @@ +async function call(name: string, args: Record = {}): Promise { + const res = await fetch('/api', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ fn: name, args }) + }); + + const data = await res.json(); + if (!data.ok) { + throw new Error(data.error ?? 'Request failed'); + } + return data.result; +} + +export function query(name: string, args: Record = {}): Promise { + return call(name, args); +} + +export function mutation(name: string, args: Record = {}): Promise { + return call(name, args); +} diff --git a/src/lib/assets/favicon.svg b/src/lib/assets/favicon.svg new file mode 100644 index 0000000..cc5dc66 --- /dev/null +++ b/src/lib/assets/favicon.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/src/lib/components/FeedRow.svelte b/src/lib/components/FeedRow.svelte new file mode 100644 index 0000000..fb45d15 --- /dev/null +++ b/src/lib/components/FeedRow.svelte @@ -0,0 +1,34 @@ + + + diff --git a/src/lib/components/Navbar.svelte b/src/lib/components/Navbar.svelte new file mode 100644 index 0000000..aa29e4a --- /dev/null +++ b/src/lib/components/Navbar.svelte @@ -0,0 +1,76 @@ + + +
+
+ Notebook + + + + +
+ + {#if mobileMenuOpen} + + {/if} +
diff --git a/src/lib/components/VoteStack.svelte b/src/lib/components/VoteStack.svelte new file mode 100644 index 0000000..8c16084 --- /dev/null +++ b/src/lib/components/VoteStack.svelte @@ -0,0 +1,73 @@ + + +
+ +
+ {voteCount} +
+ +
diff --git a/src/lib/server/api.ts b/src/lib/server/api.ts new file mode 100644 index 0000000..3fbef2a --- /dev/null +++ b/src/lib/server/api.ts @@ -0,0 +1,392 @@ +import { getDb } from './db'; +import { randomUUID } from 'node:crypto'; + +const DEAKIN_DOMAIN = 'deakin.edu.au'; + +type Db = ReturnType; + +function newId(): string { + return randomUUID(); +} + +function generateToken(): string { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + for (let i = 0; i < 64; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return result; +} + +function requireAuth(db: Db, token: string): Record { + const user = db + .prepare('SELECT id AS _id, email, name, sessionToken, createdAt AS _creationTime FROM users WHERE sessionToken = ?') + .get(token) as Record | undefined; + if (!user) throw new Error('Not authenticated'); + return user; +} + +function mapQuestion(row: Record): Record { + return { ...row, solved: !!row.solved }; +} + +// ---- users ---- + +function usersRegister(db: Db, args: { email: string; name: string }) { + const email = args.email.toLowerCase(); + const emailDomain = email.split('@')[1]?.toLowerCase(); + if (emailDomain !== DEAKIN_DOMAIN) { + throw new Error(`Only @${DEAKIN_DOMAIN} email addresses are allowed`); + } + + const existing = db + .prepare('SELECT id AS _id, email, name, sessionToken, createdAt AS _creationTime FROM users WHERE email = ?') + .get(email) as Record | undefined; + + const token = generateToken(); + + if (existing) { + db.prepare('UPDATE users SET sessionToken = ? WHERE id = ?').run(token, existing._id); + return { userId: existing._id, token, name: existing.name }; + } + + const id = newId(); + db.prepare('INSERT INTO users (id, email, name, sessionToken, createdAt) VALUES (?, ?, ?, ?, ?)').run( + id, + email, + args.name, + token, + Date.now() + ); + return { userId: id, token, name: args.name }; +} + +function usersGetByToken(db: Db, args: { token: string }) { + return ( + db + .prepare('SELECT id AS _id, email, name, sessionToken, createdAt AS _creationTime FROM users WHERE sessionToken = ?') + .get(args.token) ?? null + ); +} + +// ---- topics ---- + +function topicsGetBySlug(db: Db, args: { slug: string }) { + return db + .prepare('SELECT id AS _id, name, slug, description FROM topics WHERE slug = ?') + .get(args.slug) ?? null; +} + +function topicsGetAll(db: Db) { + return db.prepare('SELECT id AS _id, name, slug, description FROM topics ORDER BY name ASC').all(); +} + +// ---- units ---- + +function unitsGetByCode(db: Db, args: { code: string }) { + return db + .prepare('SELECT id AS _id, code, name, description FROM units WHERE code = ?') + .get(args.code.toUpperCase()) ?? null; +} + +function unitsGetAll(db: Db) { + return db.prepare('SELECT id AS _id, code, name, description FROM units ORDER BY code ASC').all(); +} + +function unitsCreateCustom(db: Db, args: { code: string; name: string }) { + const code = args.code.toUpperCase(); + const existing = db.prepare('SELECT id AS _id FROM units WHERE code = ?').get(code) as + | { _id: string } + | undefined; + if (existing) return existing._id; + + const id = newId(); + db.prepare('INSERT INTO units (id, code, name) VALUES (?, ?, ?)').run(id, code, args.name); + return id; +} + +// ---- notes ---- + +const NOTE_COLUMNS = + 'id AS _id, title, content, topicId, unitId, authorId, authorName, createdAt, updatedAt, voteCount, commentCount'; + +function notesCreate( + db: Db, + args: { token: string; title: string; content: string; topicId: string; unitId: string } +) { + const user = requireAuth(db, args.token); + const id = newId(); + const now = Date.now(); + db.prepare( + `INSERT INTO notes (id, title, content, topicId, unitId, authorId, authorName, createdAt, updatedAt, voteCount, commentCount) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 0, 0)` + ).run(id, args.title, args.content, args.topicId, args.unitId, user._id, user.name, now, now); + return id; +} + +function notesList(db: Db, args: { topicId?: string; unitId?: string; limit?: number }) { + const limit = args.limit ?? 50; + if (args.topicId) { + return db + .prepare(`SELECT ${NOTE_COLUMNS} FROM notes WHERE topicId = ? ORDER BY createdAt DESC LIMIT ?`) + .all(args.topicId, limit); + } + if (args.unitId) { + return db + .prepare(`SELECT ${NOTE_COLUMNS} FROM notes WHERE unitId = ? ORDER BY createdAt DESC LIMIT ?`) + .all(args.unitId, limit); + } + return db.prepare(`SELECT ${NOTE_COLUMNS} FROM notes ORDER BY createdAt DESC LIMIT ?`).all(limit); +} + +function notesSearch(db: Db, args: { query: string; limit?: number }) { + const all = db + .prepare(`SELECT ${NOTE_COLUMNS} FROM notes ORDER BY createdAt DESC LIMIT ?`) + .all(args.limit ?? 200) as Record[]; + const q = args.query.toLowerCase(); + return all.filter( + (n) => String(n.title).toLowerCase().includes(q) || String(n.content).toLowerCase().includes(q) + ); +} + +function notesGetById(db: Db, args: { id: string }) { + return db.prepare(`SELECT ${NOTE_COLUMNS} FROM notes WHERE id = ?`).get(args.id) ?? null; +} + +function notesRemove(db: Db, args: { token: string; id: string }) { + const user = requireAuth(db, args.token); + const note = db.prepare('SELECT id, authorId FROM notes WHERE id = ?').get(args.id) as + | { id: string; authorId: string } + | undefined; + if (!note || note.authorId !== user._id) throw new Error('Not authorized'); + db.prepare('DELETE FROM notes WHERE id = ?').run(args.id); +} + +// ---- questions ---- + +const QUESTION_COLUMNS = + 'id AS _id, title, content, topicId, unitId, authorId, authorName, createdAt, updatedAt, voteCount, answerCount, solved'; + +function questionsCreate( + db: Db, + args: { token: string; title: string; content: string; topicId: string; unitId: string } +) { + const user = requireAuth(db, args.token); + const id = newId(); + const now = Date.now(); + db.prepare( + `INSERT INTO questions (id, title, content, topicId, unitId, authorId, authorName, createdAt, updatedAt, voteCount, answerCount, solved) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 0, 0, 0)` + ).run(id, args.title, args.content, args.topicId, args.unitId, user._id, user.name, now, now); + return id; +} + +function questionsList(db: Db, args: { topicId?: string; unitId?: string; limit?: number }) { + const limit = args.limit ?? 50; + const rows = ( + args.topicId + ? db.prepare(`SELECT ${QUESTION_COLUMNS} FROM questions WHERE topicId = ? ORDER BY createdAt DESC LIMIT ?`).all(args.topicId, limit) + : args.unitId + ? db.prepare(`SELECT ${QUESTION_COLUMNS} FROM questions WHERE unitId = ? ORDER BY createdAt DESC LIMIT ?`).all(args.unitId, limit) + : db.prepare(`SELECT ${QUESTION_COLUMNS} FROM questions ORDER BY createdAt DESC LIMIT ?`).all(limit) + ) as Record[]; + return rows.map(mapQuestion); +} + +function questionsGetById(db: Db, args: { id: string }) { + const row = db.prepare(`SELECT ${QUESTION_COLUMNS} FROM questions WHERE id = ?`).get(args.id) as + | Record + | undefined; + return row ? mapQuestion(row) : null; +} + +function questionsMarkSolved(db: Db, args: { token: string; id: string }) { + const user = requireAuth(db, args.token); + const question = db.prepare('SELECT id, authorId FROM questions WHERE id = ?').get(args.id) as + | { id: string; authorId: string } + | undefined; + if (!question || question.authorId !== user._id) throw new Error('Not authorized'); + db.prepare('UPDATE questions SET solved = 1 WHERE id = ?').run(args.id); +} + +function questionsRemove(db: Db, args: { token: string; id: string }) { + const user = requireAuth(db, args.token); + const question = db.prepare('SELECT id, authorId FROM questions WHERE id = ?').get(args.id) as + | { id: string; authorId: string } + | undefined; + if (!question || question.authorId !== user._id) throw new Error('Not authorized'); + db.prepare('DELETE FROM questions WHERE id = ?').run(args.id); +} + +// ---- comments ---- + +const COMMENT_COLUMNS = + 'id AS _id, content, authorId, authorName, parentId, questionId, parentCommentId, createdAt'; + +function commentsCreateOnNote( + db: Db, + args: { token: string; content: string; parentId: string; parentCommentId?: string } +) { + const user = requireAuth(db, args.token); + const id = newId(); + db.prepare( + `INSERT INTO comments (id, content, authorId, authorName, parentId, parentCommentId, createdAt) + VALUES (?, ?, ?, ?, ?, ?, ?)` + ).run(id, args.content, user._id, user.name, args.parentId, args.parentCommentId ?? null, Date.now()); + db.prepare('UPDATE notes SET commentCount = commentCount + 1 WHERE id = ?').run(args.parentId); + return id; +} + +function commentsCreateOnQuestion( + db: Db, + args: { token: string; content: string; questionId: string; parentCommentId?: string } +) { + const user = requireAuth(db, args.token); + const id = newId(); + db.prepare( + `INSERT INTO comments (id, content, authorId, authorName, questionId, parentCommentId, createdAt) + VALUES (?, ?, ?, ?, ?, ?, ?)` + ).run(id, args.content, user._id, user.name, args.questionId, args.parentCommentId ?? null, Date.now()); + db.prepare('UPDATE questions SET answerCount = answerCount + 1 WHERE id = ?').run(args.questionId); + return id; +} + +function commentsListByNote(db: Db, args: { noteId: string }) { + return db + .prepare(`SELECT ${COMMENT_COLUMNS} FROM comments WHERE parentId = ? ORDER BY createdAt ASC`) + .all(args.noteId); +} + +function commentsListByQuestion(db: Db, args: { questionId: string }) { + return db + .prepare(`SELECT ${COMMENT_COLUMNS} FROM comments WHERE questionId = ? ORDER BY createdAt ASC`) + .all(args.questionId); +} + +function commentsRemove(db: Db, args: { token: string; id: string }) { + const user = requireAuth(db, args.token); + const comment = db.prepare('SELECT id, authorId FROM comments WHERE id = ?').get(args.id) as + | { id: string; authorId: string } + | undefined; + if (!comment || comment.authorId !== user._id) throw new Error('Not authorized'); + db.prepare('DELETE FROM comments WHERE id = ?').run(args.id); +} + +// ---- votes ---- + +function votesCast( + db: Db, + args: { token: string; targetType: 'note' | 'question'; targetId: string; value: 1 | -1 } +) { + const user = requireAuth(db, args.token); + const isNote = args.targetType === 'note'; + const table = isNote ? 'notes' : 'questions'; + const doc = db.prepare(`SELECT id, voteCount FROM ${table} WHERE id = ?`).get(args.targetId) as + | { id: string; voteCount: number } + | undefined; + if (!doc) throw new Error('Not found'); + + const existing = db + .prepare('SELECT id, value FROM votes WHERE userId = ? AND targetType = ? AND targetId = ?') + .get(user._id, args.targetType, args.targetId) as { id: string; value: number } | undefined; + + let voteCount = doc.voteCount; + let userVote: number = args.value; + + db.exec('BEGIN'); + try { + if (existing) { + if (existing.value === args.value) { + db.prepare('DELETE FROM votes WHERE id = ?').run(existing.id); + voteCount -= args.value; + userVote = 0; + } else { + db.prepare('UPDATE votes SET value = ? WHERE id = ?').run(args.value, existing.id); + voteCount = voteCount - existing.value + args.value; + } + } else { + db.prepare('INSERT INTO votes (id, userId, targetType, targetId, value) VALUES (?, ?, ?, ?, ?)').run( + newId(), + user._id, + args.targetType, + args.targetId, + args.value + ); + voteCount += args.value; + } + + db.prepare(`UPDATE ${table} SET voteCount = ? WHERE id = ?`).run(voteCount, args.targetId); + db.exec('COMMIT'); + } catch (err) { + db.exec('ROLLBACK'); + throw err; + } + + return { voteCount, userVote }; +} + +// ---- details ---- + +function getNoteWithDetails(db: Db, args: { id: string }) { + const note = db.prepare(`SELECT ${NOTE_COLUMNS} FROM notes WHERE id = ?`).get(args.id) as + | Record + | undefined; + if (!note) return null; + + const topic = db.prepare('SELECT id AS _id, name, slug, description FROM topics WHERE id = ?').get(note.topicId); + const unit = db.prepare('SELECT id AS _id, code, name, description FROM units WHERE id = ?').get(note.unitId); + const comments = commentsListByNote(db, { noteId: note._id }); + + return { ...note, topic, unit, comments }; +} + +function getQuestionWithDetails(db: Db, args: { id: string }) { + const question = db.prepare(`SELECT ${QUESTION_COLUMNS} FROM questions WHERE id = ?`).get(args.id) as + | Record + | undefined; + if (!question) return null; + + const topic = db.prepare('SELECT id AS _id, name, slug, description FROM topics WHERE id = ?').get(question.topicId); + const unit = db.prepare('SELECT id AS _id, code, name, description FROM units WHERE id = ?').get(question.unitId); + const answers = commentsListByQuestion(db, { questionId: question._id }); + + return { ...mapQuestion(question), topic, unit, answers }; +} + +// ---- dispatcher ---- + +type Handler = (db: Db, args: any) => any; + +const handlers: Record = { + 'users:register': usersRegister, + 'users:getByToken': usersGetByToken, + 'topics:getBySlug': topicsGetBySlug, + 'topics:getAll': topicsGetAll, + 'units:getByCode': unitsGetByCode, + 'units:getAll': unitsGetAll, + 'units:createCustom': unitsCreateCustom, + 'notes:create': notesCreate, + 'notes:list': notesList, + 'notes:search': notesSearch, + 'notes:getById': notesGetById, + 'notes:remove': notesRemove, + 'questions:create': questionsCreate, + 'questions:list': questionsList, + 'questions:getById': questionsGetById, + 'questions:markSolved': questionsMarkSolved, + 'questions:remove': questionsRemove, + 'comments:createOnNote': commentsCreateOnNote, + 'comments:createOnQuestion': commentsCreateOnQuestion, + 'comments:listByNote': commentsListByNote, + 'comments:listByQuestion': commentsListByQuestion, + 'comments:remove': commentsRemove, + 'votes:cast': votesCast, + 'details:getNoteWithDetails': getNoteWithDetails, + 'details:getQuestionWithDetails': getQuestionWithDetails, +}; + +export function call(fn: string, args: Record = {}): any { + const handler = handlers[fn]; + if (!handler) throw new Error(`Unknown function: ${fn}`); + return handler(getDb(), args ?? {}); +} diff --git a/src/lib/server/db.ts b/src/lib/server/db.ts new file mode 100644 index 0000000..cbdffc7 --- /dev/null +++ b/src/lib/server/db.ts @@ -0,0 +1,173 @@ +import { DatabaseSync } from 'node:sqlite'; +import { mkdirSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; +import { randomUUID } from 'node:crypto'; + +const DB_PATH = resolve(process.env.DATABASE_PATH ?? 'data/dsec.db'); + +let db: DatabaseSync | null = null; + +function createSchema(database: DatabaseSync) { + database.exec(` + CREATE TABLE IF NOT EXISTS users ( + id TEXT PRIMARY KEY, + email TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + sessionToken TEXT, + createdAt INTEGER NOT NULL + ); + + CREATE TABLE IF NOT EXISTS topics ( + id TEXT PRIMARY KEY, + name TEXT NOT NULL, + slug TEXT NOT NULL UNIQUE, + description TEXT + ); + + CREATE TABLE IF NOT EXISTS units ( + id TEXT PRIMARY KEY, + code TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + description TEXT + ); + + CREATE TABLE IF NOT EXISTS notes ( + id TEXT PRIMARY KEY, + title TEXT NOT NULL, + content TEXT NOT NULL, + topicId TEXT NOT NULL, + unitId TEXT NOT NULL, + authorId TEXT NOT NULL, + authorName TEXT NOT NULL, + createdAt INTEGER NOT NULL, + updatedAt INTEGER NOT NULL, + voteCount INTEGER NOT NULL DEFAULT 0, + commentCount INTEGER NOT NULL DEFAULT 0 + ); + + CREATE TABLE IF NOT EXISTS questions ( + id TEXT PRIMARY KEY, + title TEXT NOT NULL, + content TEXT NOT NULL, + topicId TEXT NOT NULL, + unitId TEXT NOT NULL, + authorId TEXT NOT NULL, + authorName TEXT NOT NULL, + createdAt INTEGER NOT NULL, + updatedAt INTEGER NOT NULL, + voteCount INTEGER NOT NULL DEFAULT 0, + answerCount INTEGER NOT NULL DEFAULT 0, + solved INTEGER NOT NULL DEFAULT 0 + ); + + CREATE TABLE IF NOT EXISTS comments ( + id TEXT PRIMARY KEY, + content TEXT NOT NULL, + authorId TEXT NOT NULL, + authorName TEXT NOT NULL, + parentId TEXT, + questionId TEXT, + parentCommentId TEXT, + createdAt INTEGER NOT NULL + ); + + CREATE TABLE IF NOT EXISTS votes ( + id TEXT PRIMARY KEY, + userId TEXT NOT NULL, + targetType TEXT NOT NULL, + targetId TEXT NOT NULL, + value INTEGER NOT NULL + ); + + CREATE INDEX IF NOT EXISTS idx_notes_topic ON notes(topicId); + CREATE INDEX IF NOT EXISTS idx_notes_unit ON notes(unitId); + CREATE INDEX IF NOT EXISTS idx_notes_created ON notes(createdAt); + CREATE INDEX IF NOT EXISTS idx_questions_topic ON questions(topicId); + CREATE INDEX IF NOT EXISTS idx_questions_unit ON questions(unitId); + CREATE INDEX IF NOT EXISTS idx_questions_created ON questions(createdAt); + CREATE INDEX IF NOT EXISTS idx_comments_note ON comments(parentId); + CREATE INDEX IF NOT EXISTS idx_comments_question ON comments(questionId); + CREATE UNIQUE INDEX IF NOT EXISTS idx_votes_user_target ON votes(userId, targetType, targetId); + `); +} + +const SEED_TOPICS = [ + { name: 'Algorithms', slug: 'algorithms', description: 'Algorithm design, analysis, and common patterns' }, + { name: 'Data Structures', slug: 'data-structures', description: 'Arrays, linked lists, trees, graphs, and more' }, + { name: 'Networking', slug: 'networking', description: 'Computer networks, protocols, and architectures' }, + { name: 'Cybersecurity', slug: 'cybersecurity', description: 'Security principles, threats, and defenses' }, + { name: 'Databases', slug: 'databases', description: 'Relational and NoSQL databases, SQL, and design' }, + { name: 'Web Development', slug: 'web-development', description: 'HTML, CSS, JavaScript, and frameworks' }, + { name: 'Operating Systems', slug: 'operating-systems', description: 'OS concepts, processes, memory, and file systems' }, + { name: 'Software Engineering', slug: 'software-engineering', description: 'Design patterns, testing, and methodologies' }, + { name: 'Programming Languages', slug: 'programming-languages', description: 'Language concepts, paradigms, and syntax' }, + { name: 'Mathematics', slug: 'mathematics', description: 'Discrete math, linear algebra, statistics for CS' }, + { name: 'Machine Learning', slug: 'machine-learning', description: 'ML concepts, models, and techniques' }, + { name: 'Cloud Computing', slug: 'cloud-computing', description: 'Cloud platforms, services, and architecture' }, + { name: 'Mobile Development', slug: 'mobile-development', description: 'iOS, Android, and cross-platform development' }, + { name: 'DevOps', slug: 'devops', description: 'CI/CD, containers, and infrastructure' }, + { name: 'Computer Architecture', slug: 'computer-architecture', description: 'CPU, memory, and hardware design' }, +]; + +const SEED_UNITS = [ + { code: 'SIT102', name: 'Introduction to Programming' }, + { code: 'SIT111', name: 'Computer Systems' }, + { code: 'SIT192', name: 'Discrete Mathematics' }, + { code: 'SIT202', name: 'Computer Networks and Communication' }, + { code: 'SIT210', name: 'Embedded Systems Development' }, + { code: 'SIT221', name: 'Data Structures and Algorithms' }, + { code: 'SIT232', name: 'Object-Oriented Development' }, + { code: 'SIT281', name: 'Cryptography' }, + { code: 'SIT282', name: 'Computer Forensics' }, + { code: 'SIT283', name: 'Ethical Hacking' }, + { code: 'SIT284', name: 'Cyber Security Management' }, + { code: 'SIT313', name: 'Full Stack Web Development' }, + { code: 'SIT315', name: 'Programming Paradigms' }, + { code: 'SIT323', name: 'Cloud Native Application Development' }, + { code: 'SIT331', name: 'IT Security' }, + { code: 'SIT374', name: 'Team Project (A) - Project Management' }, + { code: 'SIT378', name: 'Team Project (B) - Execution' }, + { code: 'SIT379', name: 'Ethical Hacking' }, + { code: 'SIT384', name: 'Cyber Security Analytics' }, + { code: 'SIT393', name: 'Computing Internship' }, + { code: 'MIS771', name: 'Business Intelligence and Data Warehousing' }, + { code: 'MIS772', name: 'Predictive Analytics' }, + { code: 'MIS782', name: 'Information Security Governance' }, + { code: 'MIS784', name: 'Cyber Security Management and Practices' }, + { code: 'MIS785', name: 'IT Strategy and Governance' }, + { code: 'MIS798', name: 'Business Process Management' }, +]; + +function seed(database: DatabaseSync) { + const existing = database.prepare('SELECT COUNT(*) AS c FROM topics').get() as { c: number }; + if (existing.c > 0) return; + + const insertTopic = database.prepare( + 'INSERT INTO topics (id, name, slug, description) VALUES (?, ?, ?, ?)' + ); + const insertUnit = database.prepare('INSERT INTO units (id, code, name) VALUES (?, ?, ?)'); + + database.exec('BEGIN'); + try { + for (const topic of SEED_TOPICS) { + insertTopic.run(randomUUID(), topic.name, topic.slug, topic.description ?? null); + } + for (const unit of SEED_UNITS) { + insertUnit.run(randomUUID(), unit.code, unit.name); + } + database.exec('COMMIT'); + } catch (err) { + database.exec('ROLLBACK'); + throw err; + } +} + +export function getDb(): DatabaseSync { + if (!db) { + mkdirSync(dirname(DB_PATH), { recursive: true }); + db = new DatabaseSync(DB_PATH); + createSchema(db); + seed(db); + } + return db; +} diff --git a/src/lib/stores/auth.spec.ts b/src/lib/stores/auth.spec.ts new file mode 100644 index 0000000..a04f7b1 --- /dev/null +++ b/src/lib/stores/auth.spec.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('auth store', () => { + it('should be importable', () => { + expect(true).toBe(true); + }); +}); diff --git a/src/lib/stores/auth.ts b/src/lib/stores/auth.ts new file mode 100644 index 0000000..d0a0061 --- /dev/null +++ b/src/lib/stores/auth.ts @@ -0,0 +1,50 @@ +import { writable } from 'svelte/store'; +import { query, mutation } from '$lib/api'; +import type { UserDoc } from '$lib/types'; + +export const currentUser = writable(null); +export const isAuthenticated = writable(false); + +const STORAGE_KEY = 'dsec_session'; + +export async function initAuth() { + const stored = localStorage.getItem(STORAGE_KEY); + if (stored) { + try { + const { token } = JSON.parse(stored); + const user = await query('users:getByToken', { token }); + if (user) { + currentUser.set(user as UserDoc); + isAuthenticated.set(true); + } else { + localStorage.removeItem(STORAGE_KEY); + } + } catch { + localStorage.removeItem(STORAGE_KEY); + } + } +} + +export async function login(email: string, name: string) { + const result = await mutation('users:register', { email, name }); + localStorage.setItem(STORAGE_KEY, JSON.stringify({ token: result.token })); + currentUser.set({ _id: result.userId, email: email.toLowerCase(), name, sessionToken: result.token, _creationTime: Date.now() } as UserDoc); + isAuthenticated.set(true); + return result; +} + +export function getToken(): string | null { + const stored = localStorage.getItem(STORAGE_KEY); + if (!stored) return null; + try { + return JSON.parse(stored).token; + } catch { + return null; + } +} + +export function logout() { + localStorage.removeItem(STORAGE_KEY); + currentUser.set(null); + isAuthenticated.set(false); +} diff --git a/src/lib/time.ts b/src/lib/time.ts new file mode 100644 index 0000000..ba6f059 --- /dev/null +++ b/src/lib/time.ts @@ -0,0 +1,13 @@ +export function timeAgo(ts: number): string { + const diff = Date.now() - ts; + const mins = Math.floor(diff / 60000); + if (mins < 1) return 'JUST NOW'; + if (mins < 60) return `${mins}M AGO`; + const hours = Math.floor(mins / 60); + if (hours < 24) return `${hours}H AGO`; + const days = Math.floor(hours / 24); + if (days < 7) return `${days}D AGO`; + const weeks = Math.floor(days / 7); + if (weeks < 9) return `${weeks}W AGO`; + return `${Math.floor(days / 365) || 1}Y AGO`; +} diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..dd2e253 --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,61 @@ +export type Id = string & { __table: T }; + +export type Doc = { + _id: Id; + _creationTime: number; +}; + +export type UserDoc = Doc<"users"> & { + email: string; + name: string; + sessionToken?: string; +}; + +export type TopicDoc = Doc<"topics"> & { + name: string; + slug: string; + description?: string; +}; + +export type UnitDoc = Doc<"units"> & { + code: string; + name: string; + description?: string; +}; + +export type NoteDoc = Doc<"notes"> & { + title: string; + content: string; + topicId: Id<"topics">; + unitId: Id<"units">; + authorId: Id<"users">; + authorName: string; + createdAt: number; + updatedAt: number; + voteCount: number; + commentCount: number; +}; + +export type QuestionDoc = Doc<"questions"> & { + title: string; + content: string; + topicId: Id<"topics">; + unitId: Id<"units">; + authorId: Id<"users">; + authorName: string; + createdAt: number; + updatedAt: number; + voteCount: number; + answerCount: number; + solved: boolean; +}; + +export type CommentDoc = Doc<"comments"> & { + content: string; + authorId: Id<"users">; + authorName: string; + parentId?: Id<"notes">; + questionId?: Id<"questions">; + parentCommentId?: Id<"comments">; + createdAt: number; +}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..bf3c9d5 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,36 @@ + + + + + + + + +
+ +
+ {@render children()} +
+
+
+
+

Notebook — written by students, for students.

+

+ DSEC Notebook is a community resource for Deakin University students. Not affiliated with Deakin University. +

+
+ Search +
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..b35bd7b --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,52 @@ + + + + Notebook — written by students + + +
+
+

Written by students

+

+ One notebook for every unit, every topic. +

+

+ Post notes in markdown, ask questions, and browse by unit. A shared notebook for Deakin students studying IT, computer science, and cybersecurity. +

+ +
+ +
+

Units

+ {#if loading} +

Loading

+ {:else} +
+ {#each units as unit} + + {unit.code} + {unit.name} + + {/each} +
+ {/if} +
+
diff --git a/src/routes/api/+server.ts b/src/routes/api/+server.ts new file mode 100644 index 0000000..565dc0a --- /dev/null +++ b/src/routes/api/+server.ts @@ -0,0 +1,25 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { call } from '$lib/server/api'; + +export const POST: RequestHandler = async ({ request }) => { + let fn: string; + let args: Record; + + try { + const body = await request.json(); + fn = String(body?.fn ?? ''); + args = (body?.args ?? {}) as Record; + } catch { + return json({ ok: false, error: 'Invalid request body' }, { status: 400 }); + } + + try { + const result = call(fn, args as Record); + return json({ ok: true, result }); + } catch (err: any) { + const message = err?.message ?? 'Internal error'; + const status = message === 'Not authenticated' || message === 'Not authorized' ? 401 : 400; + return json({ ok: false, error: message }, { status }); + } +}; diff --git a/src/routes/auth/login/+page.svelte b/src/routes/auth/login/+page.svelte new file mode 100644 index 0000000..a657b18 --- /dev/null +++ b/src/routes/auth/login/+page.svelte @@ -0,0 +1,76 @@ + + + + Sign in — Notebook + + +
+
+

Account

+

Sign in

+

Use your Deakin email to contribute.

+ +
+
+ + +
+ +
+ + +

Must be an @deakin.edu.au address

+
+ + {#if error} +

{error}

+ {/if} + + + +

By signing in, you agree that your contributions are public.

+
+
+
diff --git a/src/routes/layout.css b/src/routes/layout.css new file mode 100644 index 0000000..2acb1bb --- /dev/null +++ b/src/routes/layout.css @@ -0,0 +1,61 @@ +@import 'tailwindcss'; + +@theme { + --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; + --font-serif: 'EB Garamond', 'Iowan Old Style', Palatino, Georgia, serif; + --color-primary: #ea4c65; + --color-primary-dark: #d43d56; + --color-secondary: #00bcd4; + --color-secondary-dark: #00a5bb; + --color-ink: #111111; + --color-muted: #737373; + --color-faint: #a3a3a3; + --color-rule: #e5e5e5; +} + +html { + font-family: var(--font-sans); + color: var(--color-ink); + background: #fff; + -webkit-font-smoothing: antialiased; +} + +.page { + @apply mx-auto max-w-4xl px-4 py-10 sm:px-6; +} + +.kicker { + @apply font-sans text-[11px] font-medium uppercase tracking-[0.18em] text-faint; +} + +.btn-primary { + @apply inline-flex items-center justify-center rounded-none border border-primary bg-primary px-5 py-2.5 text-[11px] font-medium uppercase tracking-[0.14em] text-white transition-colors hover:bg-primary-dark hover:border-primary-dark disabled:cursor-not-allowed disabled:opacity-50; +} + +.btn-secondary { + @apply inline-flex items-center justify-center rounded-none border border-secondary bg-transparent px-5 py-2.5 text-[11px] font-medium uppercase tracking-[0.14em] text-secondary transition-colors hover:bg-secondary hover:text-white disabled:cursor-not-allowed disabled:opacity-50; +} + +.btn-ghost { + @apply inline-flex items-center justify-center rounded-none border border-ink bg-transparent px-5 py-2.5 text-[11px] font-medium uppercase tracking-[0.14em] text-ink transition-colors hover:border-primary hover:text-primary; +} + +.field { + @apply block w-full rounded-none border border-rule bg-white px-3 py-2.5 text-sm text-ink outline-none transition-colors placeholder:text-faint focus:border-primary; +} + +.chip { + @apply inline-flex items-center rounded-none border border-rule bg-white px-3 py-1.5 font-sans text-[11px] font-medium uppercase tracking-[0.12em] text-ink transition-colors hover:border-ink; +} + +.chip-active { + @apply border-primary bg-primary text-white hover:border-primary-dark hover:bg-primary-dark; +} + +.nav-link { + @apply text-[11px] font-medium uppercase tracking-[0.2em] text-muted transition-colors hover:text-primary; +} + +.nav-link-active { + @apply text-ink; +} diff --git a/src/routes/notes/+page.svelte b/src/routes/notes/+page.svelte new file mode 100644 index 0000000..a18e811 --- /dev/null +++ b/src/routes/notes/+page.svelte @@ -0,0 +1,101 @@ + + + + Notes — Notebook + + +
+
+

Notes

+ Post a note +
+ +
+
+ + {#each usedUnits as unit} + + {/each} +
+
+ + +
+
+ + {#if loading} +

Loading

+ {:else} + {#each visible as note} + + {:else} +
+

No notes yet.

+ Post a note +
+ {/each} + {/if} +
diff --git a/src/routes/notes/[id]/+page.svelte b/src/routes/notes/[id]/+page.svelte new file mode 100644 index 0000000..0dba62f --- /dev/null +++ b/src/routes/notes/[id]/+page.svelte @@ -0,0 +1,169 @@ + + + + {note?.title ?? 'Loading...'} — Notebook + + +
+ {#if loading} +

Loading

+ {:else if note} +
+ +
+

+ {#if unit}{unit.code}{/if}{#if unit && topic} · {/if}{#if topic}{topic.name}{/if} +

+

{note.title}

+

+ {note.authorName} · {timeAgo(note.createdAt)} + {#if isAuthor} + · + + {/if} +

+
+
+ +
+ {note.content} +
+ +
+

Comments ({comments.length})

+ + {#if get(isAuthenticated)} +
+ +
+ {commentError} + +
+
+ {:else} +

+ Sign in to leave a comment. +

+ {/if} + +
+ {#each comments as comment} +
+

{comment.authorName} · {timeAgo(comment.createdAt)}

+

{comment.content}

+ {#if get(currentUser)?._id === comment.authorId} + + {/if} +
+ {:else} +

No comments yet.

+ {/each} +
+
+ {:else} +

Note not found

+

This note may have been deleted or doesn't exist.

+ Back to notes + {/if} +
diff --git a/src/routes/post/note/+page.svelte b/src/routes/post/note/+page.svelte new file mode 100644 index 0000000..6812613 --- /dev/null +++ b/src/routes/post/note/+page.svelte @@ -0,0 +1,179 @@ + + + + Post a note — Notebook + + +
+

Post a note

+

+ Share study notes with the Deakin community. Focus on a specific topic, not an entire unit. +

+ + {#if success} +

{success}

+ {/if} + +
+
+ + +
+ +
+ + +
+ +
+
+ + +
+ +
+ + {#if !useCustomUnit} + + {/if} + + + + {#if useCustomUnit} + + {/if} +
+
+ + {#if error} +

{error}

+ {/if} + + +
+
diff --git a/src/routes/post/question/+page.svelte b/src/routes/post/question/+page.svelte new file mode 100644 index 0000000..2480705 --- /dev/null +++ b/src/routes/post/question/+page.svelte @@ -0,0 +1,177 @@ + + + + Ask a question — Notebook + + +
+

Ask a question

+

Stuck on something? Ask the Deakin community for help.

+ + {#if success} +

{success}

+ {/if} + +
+
+ + +
+ +
+ + +
+ +
+
+ + +
+ +
+ + {#if !useCustomUnit} + + {/if} + + + + {#if useCustomUnit} + + {/if} +
+
+ + {#if error} +

{error}

+ {/if} + + +
+
diff --git a/src/routes/questions/+page.svelte b/src/routes/questions/+page.svelte new file mode 100644 index 0000000..23e05cd --- /dev/null +++ b/src/routes/questions/+page.svelte @@ -0,0 +1,104 @@ + + + + Questions — Notebook + + +
+
+

Questions

+ Ask a question +
+ +
+
+ + {#each usedUnits as unit} + + {/each} +
+
+ + +
+
+ + {#if loading} +

Loading

+ {:else} + {#each visible as question} + + {:else} +
+

No questions yet.

+ Ask a question +
+ {/each} + {/if} +
diff --git a/src/routes/questions/[id]/+page.svelte b/src/routes/questions/[id]/+page.svelte new file mode 100644 index 0000000..847207f --- /dev/null +++ b/src/routes/questions/[id]/+page.svelte @@ -0,0 +1,162 @@ + + + + {question?.title ?? 'Loading...'} — Notebook + + +
+ {#if loading} +

Loading

+ {:else if question} +
+ +
+

+ {#if unit}{unit.code}{/if}{#if unit && topic} · {/if}{#if topic}{topic.name}{/if} + {#if question.solved} · Solved{/if} +

+

{question.title}

+

+ {question.authorName} · {timeAgo(question.createdAt)} + {#if isAuthor && !question.solved} + · + + {/if} +

+
+
+ +
+ {question.content} +
+ +
+

Answers ({answers.length})

+ + {#if get(isAuthenticated)} +
+ +
+ {answerError} + +
+
+ {:else} +

+ Sign in to answer. +

+ {/if} + +
+ {#each answers as answer} +
+

{answer.authorName} · {timeAgo(answer.createdAt)}

+

{answer.content}

+ {#if get(currentUser)?._id === answer.authorId} + + {/if} +
+ {:else} +

No answers yet.

+ {/each} +
+
+ {:else} +

Question not found

+

This question may have been deleted or doesn't exist.

+ Back to questions + {/if} +
diff --git a/src/routes/search/+page.svelte b/src/routes/search/+page.svelte new file mode 100644 index 0000000..eabce80 --- /dev/null +++ b/src/routes/search/+page.svelte @@ -0,0 +1,59 @@ + + + + {searchQuery ? `Search: ${searchQuery}` : 'Search'} — Notebook + + +
+

Search

+
{ + e.preventDefault(); + const q = searchQuery.trim(); + if (!q) return; + window.location.href = `/search?q=${encodeURIComponent(q)}`; + }} + > + + +
+ + {#if loading} +

Loading

+ {:else if ranQuery} + {#each results as note} + + {:else} +

No results found for “{searchQuery}”.

+ Browse notes + {/each} + {/if} +
diff --git a/src/routes/topics/[slug]/+page.svelte b/src/routes/topics/[slug]/+page.svelte new file mode 100644 index 0000000..56d3369 --- /dev/null +++ b/src/routes/topics/[slug]/+page.svelte @@ -0,0 +1,83 @@ + + + + {topic?.name ?? 'Topic'} — Notebook + + +
+ {#if loading} +

Loading

+ {:else if topic} +

Home · Topic

+

{topic.name}

+ {#if topic.description} +

{topic.description}

+ {/if} + + {#if notes.length > 0} +

Notes

+ {#each notes as note} + + {/each} + {/if} + + {#if questions.length > 0} +

Questions

+ {#each questions as question} + + {/each} + {/if} + + {#if notes.length === 0 && questions.length === 0} +

No content in this topic yet.

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

Topic not found

+ Home + {/if} +
diff --git a/src/routes/units/[code]/+page.svelte b/src/routes/units/[code]/+page.svelte new file mode 100644 index 0000000..d2f1230 --- /dev/null +++ b/src/routes/units/[code]/+page.svelte @@ -0,0 +1,86 @@ + + + + {unit?.code ?? 'Unit'} — Notebook + + +
+ {#if loading} +

Loading

+ {:else if unit} +

Home · Unit

+

{unit.code}

+

{unit.name}

+ {#if unit.description} +

{unit.description}

+ {/if} + + {#if notes.length > 0} +

Notes

+ {#each notes as note} + + {/each} + {/if} + + {#if questions.length > 0} +

Questions

+ {#each questions as question} + + {/each} + {/if} + + {#if notes.length === 0 && questions.length === 0} +

No content for this unit yet.

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

Unit not found

+ Home + {/if} +
diff --git a/static/images/Screenshot 2026-08-11 143425.png b/static/images/Screenshot 2026-08-11 143425.png new file mode 100644 index 0000000000000000000000000000000000000000..56c5166e09e39f832140fb116eed5d7452e217f3 GIT binary patch literal 76209 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 literal 0 HcmV?d00001 diff --git a/static/images/Screenshot 2026-08-11 143441.png b/static/images/Screenshot 2026-08-11 143441.png new file mode 100644 index 0000000000000000000000000000000000000000..877ebf309037e52edb5d662d7e9c6fcac94e4439 GIT binary patch literal 85201 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 WAK?Po!jknU@lNM_xOhHSM1DJ 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 W&a6x9dVGa|pBJ((WeTN?KK(C>H+-i6 literal 0 HcmV?d00001 diff --git a/static/images/Screenshot 2026-08-11 143452.png b/static/images/Screenshot 2026-08-11 143452.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6f5a3a356c4891a34bc0319029cd32721c983e GIT binary patch literal 40876 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 literal 0 HcmV?d00001 diff --git a/static/images/Screenshot 2026-08-11 143506.png b/static/images/Screenshot 2026-08-11 143506.png new file mode 100644 index 0000000000000000000000000000000000000000..d11c7138b91b2f9599190493b6b4c90834db046c GIT binary patch literal 41126 zcmeFZcTiK^*EZ~JLq)(&6S+|=fHdhHL_oUI2~9+52)$P;N=K@65C}E&&><>Pq}K#O z2}NoMNJ)Uu-W~Nf@AJ;Q|9pQu-+c4Tml=j|PR`ERYp->!Yh8OCf}dz8(VSyCckI|P z8s*22w2mD+Wq0h@3FR}V!I3!lsXp-QA6G4HtehU13 z*6FdK>#<|B&6J;i+8py<96OdFq5Mcr$IEnO!q-b@IP>U;?yBaS%QQD`{xkFH`e1ZN z%b9zb#K#SiLPEPCrvidr(`)?uEK+`*9tK@ zQ6IE|LQbokk+Wf>xr1&$Jm630nyk2+cvjitA+BU0QOTMhv{#N!Qr>ydjg>mz%y$yp z8s+8GRb526P0H(KkHQn`KW~rG-pc#W;rADZj{iCOviXeNKY!kSF+Yj?`_U=B*O0$& zofzb}|GpIs%eeOU?RCZf&kjpKmHSi+k4vkR38)~9Qs!hz$`lH!98UbXa}BwZ$h$cz zkrC>8&({oET76i5Y;qRGvFjG@v_6$1&csQ�w7@;@#sprNkeYmK`WAk#i@|;j{$< zSu&69rArj?9)Cuf8hZ4^S4+!%JHD|%Y@=@DQp0U`P051ikx0|%^7JuylD}$P=E=E6 z=SRNPyu-*QOr^4aTt`*4&=0lYiLuB$E9D^fH_hOB2_chT4S&Xb8KLlG?1s;sJTum# z7%gstOIGoA#&rYlv$-a*yfQ6(`yOfl zLJ0`)%Ba7Y2UFs=*mOI(uy&+>-&@7}nye^CT6l$^i%QwHw2``*p~zorE(V>k8`F)p zI`m7~4&0V1pbBJd>26ArEHIE%XpWAFONlP}`BPO8>W>tOB5q#6Tg%|?uT`4-IQVsS zvW_FG@{4$LRlWxEyruVcLQ39uYIt7WgP%Os-AskZX_9K}h=g8QS((ap2~}oNmD8aT zmyV$Kr|6iN#z^$Cl8Zlg{#b_Lt(dEP zV;?bDw+gEZtn?04&}YY^vjmXCjrzXZ=*95l@eb5YZ3W-g%e$}+%x(Rjg**%1Fwej| zL})9A)t;S6x=)V(fmC6fyIg$712fEIqc75P%@h`RUxQkUcOZpZ*xV@_gNc3%MY`>o z!cx<3a%e0?!UjLy@tw1aSOi{m+^?}Dw1BQmqg40aQ5@a!M^D7nhqd&Y{Y4^8 zxvv$px<}1m!f0EXHUTb#pSi)HXQG1xjRkVslL%@9^avLZY!Dj^6?huEb1+< zRW|PQUjnew6o-0~^jw|D`{LOv^d9*?=dT?9ixDXg&e%!FK3qLWV!Wk%gPXVftm2zt zdi>X22iq0(I^q6u*b4i^mBG9j-*dXdFGjCvbi2&SEPcGAsq10?#M?eZ>oR*|xnU04 zpC++joZSkEv;Y543+}UU*Z{Lm@GOL-lXvEiB)8?!F;Eh|^OUct=jNJYCG5Zygj*_5ES(nqI2_Z1er6SA3iFCC}h#!%W;W&@LHvF^@BdTLs6L#qFbRi>Wuc$g+%!U z-$2BahvJc(0*fuu!=XyHBaIFmu5l4pthw&w-JhGLLw3u!>PP=XXWde={dz+=IA4W% zkq*l2Zhyqa62qRe6j;@ev2s#58O|YGZ;;fWN920lJKl!!|8;<^I&jFbH_P~07FnP% z3NdnQ(krpM8h!)5Z=%&Ys8mT3_e?J4bsGP4Uj4wlRu47v@p(D2$_LzP0!XmnC7SW@ zT`gB-g=72;PKJ`hSLH;eovDZ6bf%Qs^j5YlO$hd708`0 z+O1c45~f{h!!qdzRr%GU?dz~!4*tdmQ-cb(Xc9UtYj}7BrIE4W#y@%2H`g4q*FTJv z|Ikp5@Wj=!S+CCFRyR^Bh~6JG!@q?#VrHePt4z!`ox39Y@V_D6t;xk=eQT+8Ysod- zo$7Vx>vR!}k+FGzv?t-~l!_cJ6Mpq`*gR>LC*rG1S)Vtr!f-Hp( zb5dI6qe3&fz8RbQB5qNfuO7ySf$7gTM*JcyEcg?)Zfa9kj*zG@J;uW|;R=4c$$ywA`AeJ33-j(7S84&$G&nCHAa1B=|OY)hn!NF(0=(bfLwg#U#x2r+!vd zwrEQ%feZQI#r(6jLPTEQ$D#FZfyBMU(JOV z+K5$N&J949UuYbbP>d$!i;rXIu{WhP8rhd5aG|25>MARq8yJxn(XBM`GsSzzb3u>o z?&}?P*g=1@vX>`LXXkJ<6&O$7YzqlV4MEw2iM6X-&)aF#)hee# zj@Uk0US57Ja?&fpTR&c%A$rCHg;Y>hVc}K|cUh~#nN5UJSB@vqzkk};R{u-=+ah(` zzse_~8!{`F-P%32Z?H&kDxXzRkFagSs}6MSP7Zc!!L_qu@$_Gc|(vs;*34-`NW)&QzJnMAH~X-q&JBRJ%c{lz9h^JD;=h1 z?vU`#ym_m~9EY0>fH;b6|C?12mvd=ip}xoaX=DXycIA_bwgfhy1#F&1xo4As#LR}uJgE(m-DlQkT zL+YW0-c}ChG&0MX^e>w8VA9=<81r2@k1Mkn6mlqHC!nS4=?36-x)|kLuJeCs8 zkRJ_Z+X98Z0lY4@vXajXw#L^iWHG0LI3F8+tfN5MVcZHd;FkX$$W4Yxg_g zLWpE;1jI>~`osOEs|H^obdy@MZ#-2{sOcXxo2A~z>_iPrZk`_MIa$Rb1h+#oEOz#WUv4!IwJj$Bjn1#L2m{ zS{1oI){RXD*~4f)*m}rEX0s$B z(Pw9p8%=NAX_qoQ=nW6ZF>yQp8tXB{K(aDdPTJjcMn5bWv6teLQNV5#2^$2K!VI&l znRCKg=90x_|Ttq3j7(*u6yKw96y{p8`On9NQ~Bj8^+M*&E%~Kg*!-zdq)Va zDoy%)ts=yGYIYasOMeaz85~mZOh)H~GakKMWxW|ERn5lk#ci}%#1xmQuzl)4sDc|q z-!oFn$5);Z&df2Q{ucflJckC;lMtFElZLaY zM>^cPZY@NmJN9rYf+P>h2}w)NFvxY!`;|X?qc72W#XXzcn&N*>uhN9 ztcj*&(|l3b;Lwcjqy<$liTtxi5 zsNX_x-zhlcM8z>Kotp9aAZkR~_TpVPP3uGau%1rk^_r}S zExz;3rPpq1>H4^>oV*(Fj?)XDK+Jh|J)I_5OhyUvo4B$XW+&pRYtNvvu5#AF z>dtX7H}qZ(%x+6RL>8;lN*Qqs;0ya+f7I5g%q{lj2&y@mW4tZ{*)t9??M#7F;hgud z*lO>e2iVFv2V}#y-yxcDpp(Z}ZET^}L;F_es;Ud}GpDH`9R#h4Ff8$=i(UM%X6rXE z4-sWEw%0Et?rz&2Me5s;Z17cm{-?IO2jox9s+(tQ`@KG=Wj#`4Ii}1>9arBV_My`8 z#2QlMy}K~X*3(3~*%~rdM4@_W)800zR!IE(Qd82pIrg5LnQ61oEt~U?GyPxqBI4e4 zAQ&#Y-Nzlm$YmZAk`vV&d2O&|xA>^4YDR6g1w7zm@PiyHj>4+%4@gjebx)FpC29Bf z9P@dNtQf7$#|E(r!u~9M9edZFvi+4q7N1<@>@q2NB|Ob_Z0A41h+FAAV=Sq{@}HOg zTk~k`{{E-FIQBn8D*3&>6qfzpBg$vI;9y%j^SzAc`mipC%=p-Nl){h zXJnD|dO{=;$!#)+nVvX*{g}I&Xs(im&lhhgE`C(H(T_0;giX+hE6dBjai}K4LFcPH~&4b!^fsK^PIXgT1EafB!I!;Pjp~a_ghXkB`g6N0f;HSN5 zQiztnmQ=o#NBDQGaohCYY^kIDP4}aN?XjRhy)4D>0Ta)O+sZ!VrCj3o%bFjQdtsQq zz6=g+_+kQTKgV6$-~<)z&?kP2qL#Y(B;u5Vtv6K9ePf9FQkGQE%#@=Uj^f* zy7q{n?W%mX7Blm;bM1!moTv6=ZEj4t?d&$9LZ=E1Ck%x#tia(NU5%8!H+0f@sH1~5w4Kd6a|TF-Rrujmd% z*#CEYqYFb-6`In!kH9+8N*+;`q@qW>Q|Im_umnte&t9_Ij#a@R)efo1bCC5Pchf10 zfPVhx>Woe{aCf|oThX*E;_S*Hp`n9038r?4OCMc(rS$2|{G6wDwKb)3dZqWebf~6< zgoN_*^6vG~|NU-#pt(iRvPu^rp_tQYbga_Gz|4Zf!8%~k+*_{dpG-TN;|+XjXqcE! z`;Ci(qkm9S2FCp#os%7K^-9amYlP8?yTANKO3g#U!-a-}Ti?-}Qk?Bn+R-#!;1g}_ zn0(r<^UZx&B-DL2T!iA1=u`LIVD1@90qGHaq)Ck~=^JJeb)N5Prnl=Kh=AB0k_p$bDJo_U+rJ zNbYDu>!sJ!Jbj-PLbtY2M-y8~t*wgc$-?TW{W)Isxd14pSl8G%Wl0>Yh5f;jW?;FV z&@LHYLTtYkX)}EQ4b3=dY(ebh2xsi>mooN=>df(d+PW+o5&-41wc-Op%M zx1C?++O_5k*hb&#fWysn=+3WcIJ9whKADI?9S-ZrT!Jmp{jtrX-1p`TLC6dJzS|R? z?!;kzs@MG$z0yX3`?IWZ(b3NlOmT?<*2`dCXCzUS0Y)q$mE|hD%)IBWHtwy~Q?T*U zmdX<95RckI9qpk)kcI)%JL|KMD*MDq-!&=9w~7bs*Vy_xJC{8W5KyyhR-ln0n)&q&6&^sTJyPm$D_3SI-pHZ9$$!rc+*+X{t_gmy z)6&vn3ochtSC8|9t&_$ap}^nC%Y`N2;|D*ksN7*^zjy1FJOFD*#>z}6FBhqfT6NiCSW7=l>@g*pp$hItLfAZo|ZaNwS za`6o*9|O;e==tts_d#`$e9d%e%E}Ixn8_$>sjG*t*5P>?H#)e`2`5tm$V)!+iPmle zBnBcfY6lJcW9ENVPGeg-;<$hqc-6~q%@-$N2ZbVrKMMyQ`V9tDl$VE*$v#jaK&56u z01FOxx3}|A?iPx?0KBvH!^K-_CEOewWqK7z*qE@z)R$L5fQ4ykX@zZ1`u0{HqKOmj>s5z zoq$zWsovSb%*?O%czA@Hwj0+JCgK5F@um5$ip_Qj^a>jDBz#Oru=d-XOMr`;1?=YV zd#)N&zR5bx8@~QCMw5y1@!_(;p`jP|P3iD*ecpMD@oq5RmQ&FZM_T_`;jhG$CFjOVu99O|`+zM&Iq_P~IlKxZQ)c z!2S2gdpE69oP)?D0+icf`0!vaE+!@`ODS?WOrWO^U|H_dEXBm-Fh&7IfD85PON;$k zm5IS*be%9VHR;1qFi_RuEt^zvqPUnq?A=1TM9c!->P&{TTw19E^ag5&mQbA z$Y5H-nbqC*DZoGpjJma^z1WnLqWZNa3BDL&`q6%F1glIjg$Ym+)DTEsw^ifwiifF}Z=_{I~O$OJsyex&LD>gH2`2$}huT=D^S!(PwvmR!MOnS+0AT-6DXTF!>ivkuTaQz_8@9tU^ z7n`9b1(P=&1NV|A1NI0R`Xl(!id=`fCAjQjz3;XIG)@=~IKdtDq->e}X*%*4?hwAa zxnNXSxd@OzPfqSt#0@D<8n8f#orLTqkq|N z6M92ZBaZ4b5O!#pn3?6j4W>!?2GQ_n>ZzI;uAL7&+QT93N6Wu#cJkD#y`iEL9zJ`G zp5D4H_>;TvLZ=va+voZ>k1*pyTCwGJ@tdCk4qpfxt2&it=G=0%YGDaeVXZm1 zG6QZqDL!NeaMz1x(xFf&AQZ)4gbM);SOU;pbxoomKVO-W`JNF*0NyW4;C3UBNeGY) z3ImT0qaCZ(2Xa*9t%k`h-@oSp1csM`Q&d)SRo_>U({9^`e^Y$~@R(O^vt^BPdcL9y zDXwmzu(($Xl+bkthWNDnb`XTdp#4wa2zLwq4FI8Yk)@Lp`wyzg zdIH))+qA!-3i66RdPaL-y7@g|4vbzmSXoQHe}AN%`gq6j;T@b$(^rvSJ`1UyTcKwA z56uD(+%xWvOnrSr98l$5x+}9A>>hJ#(tq2;TQcp-=BpD_iVd`(opS>qI*<3F!0?pp z3K!>Q6nC>JRK5SG@c+C43Rs@2(y#>RItZ+FqL+$>>B`f4wk8XLJG)BK*YTc4u^kHAKr)52Y-qq-g#zJ?Vt-NQvUtxc<7kC z=jtB{@p3f;bSb2GU~R<-m4ihsgwIt~dXy}I9O19`AUv4px*t87MMFb_t#dETUnvPZ zfKDCxg1ApfNr_6#L>&+u-6z~J`EYov&SadIiw> z>7y#M^ObI^mD#bK?>yeBjYZ7m5lF1?avSSfP+BFz7t#Utw@XVHc@qBXw7$2tCZQSQ zvS-^OldaOKa)CEMLdC<~h36=R7lkN+UWO`4Vxv@G{Edpj=9`o#0trC#mQsXZoa#V- zmXeUexadUS(E)eRH;u&)#9%8}60b zA8+ucRG>#x9(Zy@eo=*>u<$ZSZ18f*F;M>LX=rFXiX0y|MnI4%G9Zf8_dYtFeF;ks4x1q>P?^frVR$8qoXdh#(Wb(ToG<;@0OSid=s#anRZz0Rd`qy)4 zAsZ#=zvj~bRoGn$Hoh|e&SBD zpoX@GM-?S2M2&VtS3diCoDxpx8I6Rfs0>Om9GbNe8MxmpC{PWS<8EUw32pL!+&?9m z*(T}wu8i=5+PqKaE(92gZnTY3{P|2KuApZQ@McGLK9iGxsciu&kMH0r5sXV0b$$r4 zgq@8IUz}%^qd(q=Qk5civbO-M0EVx+=6TknQRWY#)p3C$Y5?F(_zfxXU*mk|{WpHx z1#_d!(4U>1-KIT?4KAL_&ClPz)sUZ`-;CM_AdOn%YZuZ6L1kdYi7U4ZrO-ibLu)(^ z75LZ-*7%QcWs328(Mu+^|Mg2^oHB zzq7s!(sjOuH8aR#OV_1$f5zmYXJGdBLqv>O32uL0R9Qp+48f$Ui((I>V7q0gj*F3#dC-l(Tt%W%m94Fnleg*sa{0uXbCtA}nBqw- zN7EeGUc|{BWRq1%Rq>~M9jL-wem2~6EZ(p)r$Jq)0M|5R>;;C}->Z}?+I!q#l7m=H znip5HtL%28owP989^5};*Je3(f2`_KE^jq&L2EnRG$k|Q+0 z|7niWhECqS(q5yjJXE6tW6sEkUz|64Z@gbiYs5fNMzgXu@mpbGYyvs1y!Hewe3H)Q3&i|#w+OCMFSs3$J`tb|P^BG# zij+|5uDZR3D>>NPHVTCi*KoKi49r290LMNpS7w)&YXN8xLLl*G3&PP=QM&qIiVBoq z#n_2nJ}lE3ZN7Yq&h~cBLYUq_)46VrVy)RJw~4@aNJUXke6?6U*{<`r$!@cu&lVU1 zWl*GK9X4<~Qg?C8!Wxe;x291lUXSubeT^KL(&Z7*j=Q3b7)V!xO1~c~8H%g!8j$kj z-qtP98zs+USnXo76^pqXq@qSvuLbun4*RO@lFYlFYBq@AR6Z1VhT{hD837*DZBDQdSKHXwNK9w z0}jG4Y&Ix@2O#!^z|IsBZ+m(PT%!hE3fcq+f(Ofn_H5c@p}8SBQfC+!7l+`v3Nm)2 z>;)dP(owYKagVi01SlTH#Am|!Rt;eon) z%E0KK#Jc$Jf>d$XN3CHfwGOEdT0r(Fcrb6srJP1qY{}6m_X}^*DNHXs=i?AxW}lpv zKCXF{&YBbIjC6OUhI6h_DHjy`saR5{>l&IwE8-ZYi+Ym>iBbtl62jMh_t{{Kc%7VW$@*@b^vdqvjKZo*t)v$4B$T+XoI(v z$>{2)98eVDQ(Sw>^r+2EP^9*cw&jo~II-b8l^lPB$=H(YG2^Oh2!QG~67%i+oh*p!T%uQ0pr9 zdDeMsopTD0np5FQ<^$zIWLbfRvc=|=rw!tj=`(JRhczK0f}z0#Ywi%Olz~-)99^#0 ztf%Jx-D>fhs3=#lww5kNv_&koH_;*82eszH2_Hn=;GmbU_u^h)uD*!>ZDQER1H_L| zL8#$7L2@p{M@cD#8A~k(qY?$uKM`nXT0egLh|Z=EieRsx9H7rH=jR^B$It)#3AC(c zNHQ-eP_?x<KRssKi<8zoS*}(Ifrr=fvsdw6ZPvjFWYD2$6O(eO@Nfjk2AXghGgN z-Eu^ZkN=+5yE~ViRZy!B30|KKR{t3#6J0ZfATHbLODZGUIURy)_QOFU9(g>|57q77 z-=@aCSF+rEewCSdzqFXq2r(nU^K_>DemA5+vBdx9)A7E1&XG#p+a~ufAOgJV;sbxd za*pitSM={G>dQVElRHg&J&#hLQ$%sl%S+K&^8i1FaDN9<4zbYeKqcCZBC}?`zi}>+ zgSm%NF*!|r`LYSBMsDMpCr6-~RU@*4%0*EduGSyVZKPvhkXP%vkW@vXwG_h%y=cFn zo+QZe!uD-fm)ZdZ-luATv_r`oGKcGtY+onAFS-f8&2AsC8?%+gdhqy&Xm(_Yy|DrS zKb4}OLY=`EQ*ABC92rIndT+c4XAt@cay%rAy8ZgpUyWR7m+Tq&KA+Hl6!Neocswc&k`Pm+j{Fi`Ui=O!~ z(pZ&aI2b?}{+-B=y*K99&FYPrX$th*?CML=Y1vZK#Ue=N&xhekLe{O1OvD}-u2&~? z2<)_V)Hg#^3l0wiExVK9`?&gH$NhqP-+t7`Im?9!iW;dNEL8HzpH=C5H=7ILdQV=A zl3Ydv#2}cHgwXFbRPYH5b$qg@Np8)pkoLQl5UId;_zTm|=5K;*cd49J($SNh=kM#g zr(U5?e?IZAvI=O=&d+~3z4l2PvCkY|*b!Ge+H$dy|GM0hu~$5Gi#HnqGKp`GyCQvv zcA#kCS_v;a-~2>bIT&dAnLw$s0o=%EwRXV`DDsAdLBqM4tm=smT6C(wRz)}i|HDYh zjSr>)yOsyQRwckn`IHO~ir-5(GO!5nu4N#K4O7%O<(NCRV6y>RzR$2{>foZiatFyx4k=J9g`TD3P00j4;8NJ|0*bDj6@8~ zCd!?Pt{l!f?Qg`-R()&T#!NS#J%1}+3{uf4Vl*hOis@-&RB^9Gl8Aq>XI^YX>WHj5XQmZwNpSNWZ$WM_c_e6C>?Y@Hw}J-!0Hl7j|yZuyjPu#Ted zX<0%Ry+GL}Oz|0fCrvY77?5$lJbwI`Z&*`VnV)hv3*ZW9DatD>6tL<|gMqSk7AQPI z1%-u(`m;|B3>aK)9JVD|r`d|90|#Yb_51Z|9cYWp6wOM0x!%v;vy;1;p;vMHYt$)vzr}EYZcy7S|9P_`$;~bSMO47Sag58IM>^`+}yv1R;yn@!HmHAah1xcFp#HBK6H{E>8cr zMRC@jBzqx^h=UR~YlcVs+WBbXCYkC8fgRzeXSFT5g$~Po!)U0O&Sy<)&mt^k1YBHP z!%`$z`GwbDd|_ml*^kq5C8>My&RwEb4MHM$_FkD~Szq~>3eJURqAe0{$cN_^0Q>lG zR!#~rhiQhN&e~_gLm#px7J4w#D86xCOtlW9as@+%N^eZC1(K&XMbA{xzYu4)wz$PG9)KEb7B)P#fF*+O0;zG(r8P zV_x&(s{Zu>F6w;f6(WuJwt#S(4eqycs|*Bka~(ZBCJL_0pGF)x0~v%FFv?aytcrLe zRs8)Moq^I9w1S(XzPHw}sWA(1MWk^a_?7!(FUEWdPc;C#{6$t)Ru@UoH6F$yf!+b! z;JLry7cfRxf?2?5&986N@}|uD41zXMW%i>FX2IH3u6{$y9PMh(f^0!EstJ4`Y+yi3 zdjgak%p4pXZ0^lcAo|rxs>vXS*h+#D`jsr2yof0=dxY5lhs5mbu~J}j3p0-)k7fUt zwKgVf)Oc4oxAS~(t3989m&sytq?nXlImK4r9fj*j%O=UVUve1wURLX3;&Y<{<+u-g_f~VUVCbIZR4@ zBXo}>137P(KEdL5ubIz-xz_-HzL)=8r?gOnKcR5L{f%>1kFhe@i zNu5Qs10K3jPp&3wLwQHK4XY)*i-2s=RkDZ89K;`sZN`i)7{>Dl)^ zdmvNXP51i@B+NxhA#R(S3a1cXAk$EKIy58*f_PPkI|$cC5Tg`6?FQ149nh2i?68P` zr=)eTV`mV!+i3>G5ND8ja`)_zIwY3JqeK35h2%=V#>O~}K?we$@@J)P zgF^VW)g_F_)sx76wmf%A<^BU~@zt^394M_oYaMmU_^dIrwC^q@n zsHh8GhvTljwm>|Di~o_Zj%oOxMAC`_1v2i_CkC&8UsH0rIy#@0|DF{kUK|n!dyg9O zLFf77VBWn-<_3s_i3OY3>T-~Gp_As|7W3S$=00HFPB zY8M2W8>KG>)bfJE)EVIRkk<*>Q`~iZR*XEe;x4gn;QNdsgU)zt0dYTKO=j{aDdDBx6u^hx@xe z0B9*YiFhkztrF8lH?Y5q2kk*rUFeKo$&jvUpj3<^ZPdpqu_P%WE?*jj~ z^T2`ekxkreu?A* zLOk!MF#cM)<(Q6{_Gd|Gt->UnY1q-sj@yB`-Xe&rutdKbo-uH3`JLqJUJ+v!oW)rA z6brdnq$Yy+$wVt3-qOnHp=j&cKY24eBz!opWmt|_pera2p1no4-MdPlDYynN_BQKo zJ2PQc1cyD)hoKwH#>A81NWU(g0-yD~D3AN87Yj#5Y|kynMd7I>U+?v_)%RwIXNA6i z(X8>?-+)EYp@io-2zg!GjDiuk1e zntNvr4d$8$hEYr8r_=?k()2bxInj!s$=fL{A2AyDu1aZ9Cvx-^W?=ek)=@~!bP`A8g>Z_`{9-I87j2zcvjAR}^a_%J2VZY2X(YX21G)CG|qd)V8Z zn|ydZzMG)}8X6_;fw7gKO=g`hgAz)dW|84U`{I8V`I^dDHv&o{nw{1@Mg@kBguAXW z&;_u*+pA?IyM7}}pF0RUSIxWDyy}OQN1zuLI7LLdZUr{l85OXWn`m|WbXTn2^-M!! z47hG`p4JHIoD&aj6KHjq{p3vHo?P{9R`s1uQuSke5sjAP7Tnd6s~mvFu3A6r7~3k9 zu&Q~`%$G1WOf9*}KPhg-P@j&BH)5Ui@P-y6$M=5oSBCm<>(?D=&PF|1;gOGFxTXon zl~>)05#Z57W3g5%vmd#kicEm)GSn_=tD2-oUvGAI&NN36!6S^%6Q(z} zslz{_{r!w>!ra0I&&km8oY#uBsBxhN&n22DY6M#vwL=@*&gawT{En=z562`bHM<&M z*H^I(djcpA*J7^hUg3qHRSVZ*6P#i1Ew!-#%2>5wA4AWDr^J)_&-GW@3c7dyxlr0f za9}{=>$fmZ)nxxVn-}eeGA4o#veR!OFsZl`$*zs*?yp>lNd0!9)AkO|VG5)hAKdK6 z{NV2@-CY}}n$G#lDDWl;hr^2vUswnmbgun_ikB%2lf^ACyyGVDW;YVZKeh#K)@aI` zVuXK(_8SFZt2dQ9uA+}ai8om*&@N-W8TUx^;lF2d=eAf-=L5YJa<(DfVytkkx8OsY zy&zGeyb2?I1n#S6{Ij4+k5mNADPs z8W3Scjx-jZ7gWOi(T^M<`4!cfk#La~)o7?46aOB3y? zb2o~$4rlC?b0AKR1?6{*@Q*qWEcIGCe7v{v?#mZ0nSaY>N zI3BJ>j;na@1SI-AQ)pb~+8lDBi?!{A(DVP$beu@a^t%;LDAp^=wFcY{FqjdCnc1@nGa!cR* zax{9X^nwkNaVI=1j2s9fw=E;-utpoA>MS#8TF)oQMhC)U?mlcrKrcf&cVi9wjTLKU zmT=@~jJEhKy~}1@Xe?Q`{OHAYL4YOl1>@MZOvR3Q6AnL3duH=BRrk+{_@ zgnnbL3Wt3CZ0}Un(W;l$&Fd8&sC26?t|-$Hn?tmc$f4LuyLD7_tiJ8)Y&H~*-9I$q z^wfQ|E3lZ9uTmCpT7hhM$}RiHDb6QN*WPwn!Fa(8;|i{f1@cyZ&+Hxb(9hf`@Um2Y zOdXp&AuZobr=QmlH(Gu$IBE(~sVsDhj_trk0f zR!iLCbAcLaKk2q*@j!tCQNGnK<&HWJI!S#PyYpJmeg7T$+(lK!q?_AH2=|xU^uMMq zz=2DIyjL3*)n>M~iCbbV80JheD~jcqy^pGi)Rr55Ke0m9XjtD!6|Egxz*%dwt0XtT zGS)>v+P>QGw1h_AW(ch@^$este^f(Z9*JnBmloP@Bsd~Bq;$ucIKIW-v$ff3&P zJdc3%e>}<{$X<*XCFvq!*IAdF_1^HUvEI?5N;VR zdfssUsSb(YE}5l>)q43Ceatdp{bAY?x=0q=vMWQdYV1@x{omQrpc2hrdz85ttNJax}k3B@#rch zKE*+O4d~b>DKTZ04mG>o&DM@;xKV}-H=FW@Yvjs8+rdwSW89IWeaNgrQl+F8WYUa2 z+8cE)w#3{Vy@D6~7%_TnIfvFG8Ex!tcV8hl93|m#tezjAYMJb4O6_AF(3viyRZSLK zS+suA=aYIFsYjF(c-~x=JU4!y+{>9E<&D#v?+v?9pAc_4M zj9XSPU$1{L-g?SIIdQvC)*&Y-QTMvo8pfc(zf^DIK-OVBVU@2!5TQapKi1_Ys#}Tk z{jwKl=*a3PYKh#YFN^0s&8O~heE}O zF-bBQ)7U#f`^W9|8ogrgC>~JVS$HI6Ro|ecuG+0{_Y2cfU%A+3?+abyADi668%&lw z^Bp^qSNH$AM>pwoWV6ZuO#X{F&RVOR(x@179QDSsP_!OoI-Xn0IF>Q95&q;_71q;7 z{9M9%&{!CAydd5|<~_^)`E$#A$fOZ+Z<_j`;L4=V;3XBTrr*>em zV#?60bB}IK?Y%1Xa4B;<&}8QBI^PdJ)uCy^+#(*FlXOi&tuWWEtz`PH?f5>DR1q@P zwH@l|TovMv55$%w%Uvqi>pE{+LF+~5b)uBc$hf3nE|IPKW+8=hFed4YV~Gk}(c7}r z7QT)jH@Kmb9AcWMVkSDwY>og4cIa2sQ`3NX62>PnSzxvy-f_)jTJMxU~`ck?HQX>sRf0 z{Z2%2{l45}Mu3)y`%bdE)YAeM70l2)5-wp@4OtM8XB0;5R3|t=&5)uoF#obETe?Lf zBjz2r+iMtMD}$q5odVmk%eq7-&w~~Nm5#16o2r2lXSSQAz8NNwpd)E^;v}hON5l2; z7;A@X%8jc>H`?3nm&h7gpSERvBM1YGWl09Q7f7so6X6G+2x`gzG8gdy(!;(5*+a2? z!la22J|VTJVZvL+3PS!cf3leJDBHqxBgc<-!lP6|vUt8HXl)SmLMBQUZLM`%I*d`rQJ6s7ml=Xg?b zHl(yrawg9-7P;qK+H#&gZ`{4ynvF zu26H=bZ&BotC`V{8)fg)b9<_bz^DacxcMa5ch)n(KYti)Axb#46vp87fDO6&IXOzH;7f}kl3UL^ ze`cv5+#cXh2DS(l;$Mu+A_b0ra0@gEca&1?#K@@9&v&x8gcI%$@H0P^!ikNTFVy4FPLg-{aX`AHc;dX$0v z#D&y?0$IM~2Re|0*Aw5UE;_BaRyF3>sx4oPD=It_t8?Gb-1QB=+nE!0TjpF84*s_? zUq=|72r^$0PCLs%?OwE!*5{8MIj~<`zvW{Pi4SOPipbw*w5T?JYntqC7T~dWer4g) zI@%cOy*bP1nY|aXdNH3cR&5k|vvjoGd5$3&kyFcK@$<9h8x?7xbG)=tA_>s!r#sG1 zgqnX5290@hzeC!fuEm{BbCAf%OKaW++uKW@KMF6*KQI=?T>DckeEnU#po7dQ#ZqOO zuX02;akLsYKaR#T1RaTb_}h@cH9`29hs`eWa^J$~^tno)hQF1FipRJUnX}lvGyaHb zlQ;OcP>VHb#H^SOo>;f(`^>et8yWZWZCI)khGF9{ct)y^JR)r0=Gnd*wB=3ho^^qu zUx++v-yI7dy*GIx=pt!T{NHiwB$H&rW~C?}EIq`r1KMic}R5=_0*G zK)Qg^I|9-Yiu4W&3QCnO9i*3p8cHA_BE8oDp(scVMM`L)%ntg^`R0#V=bTw{=C@|% z^AA}o$@4t>x%XZ6zVCZq7tZMLCA}nH(E&k7bwF z*BjsGa6_+^aAEh>PaNje(T(9xct%n0q`=UO3q9P|Pj^^wsg?xg+IO|GwP{U8oDJut z4sO4EO3S%jJL$l*R}?(ZUcq|Y9P?9WO0d2ZMju3e%(2lh{dbyNJw~_Hr_Bqqd*MWQ zL@nhu=MicD8&X6H>?t=}73FzhtD;&<6o8~zcK~~#bY#aHmzIg8kg&KN|Hae9Twv9E z0~?zn|57r9YTxB>!cIc{p%9%Y^gEPf*l_%Ph8l6M}G=$|=7S9~k*~BRCgSBvWa15-$0# zbePz|7u|}6ax1@u{_{P-6-R%4*Z8-5rrCe}`~3d{uke37ulz4;0+RnS&_*3HaO@0r z=k6{zgrgtwJMH<}&x1)ew1hI_+`qv`#!37uC;I;8*uO%Zw7O(=x zv%>}78Lz6Oe)!{3EaohxP;=i4 zY#q{%!g{o{rc>C8uOR*utAv8mDNXQ@ss;_OXULJODexQvil87^sCArOVhdHMz4$`} zt9J8`W11I_2Lyks-|w7$`F5U+`)}B&_@qK`qM}Q08WbIE6L;7Mx@YI-28KFzR&R5kjP6=EgkvH)k8Hd@rl`%jkHT~_2!3J zehK`0Hnx>BGXVMSE=pJj0G=u1a4jsP6+?eiCmHNxUlY$kO9zn-gNmiiH$?rtEP)m+N;2wx5AzUeu7W z8CR5I9KybyRnNRsQOZu`&om4DIbR&<1&;Fb6N@;doPP3NpkI)9V&v*sq~OG>fK=~I z1sJ~Mv+#WTW{-~efI*+25*bBkyfqi}H_#u~hGI%aY$dEkEAOEj`X7nvhh1R}|GN@L zXluz&5_R!o_j8K0{g0F?4}0U_L=-^HW6P$d-Yk*>&fNm~|b&|$r~wIwa3*FdbB6Hh6Fqt3^j|0)Lq z@P{}FAq5o<>F@t$yZ?`tOo=$bMep8EfHjXj=km={$NjG|bI!kz5CFUlhtHoE`yWCL zekFfeL=tdKRD>s?QV`CZ44Pue+25v0!6|-Cn-x$*LXIq*P0I0zfXx2X&suB#K>T8J zH5*!Cw{mlsjb`Ha zjTL5+Aci>0eDD5)J3It8P8XtWB@%5K}q3!{WA19Ro5 z<&L=>(%;7p&Pj59%^UE4xn9&|om7N9q|r=XO{%#Ck)s&t_EkQ<#xDd6cl6Tb?CG2ck^yvK*TlF6T{6@`%6s;~6B% zPvMP4czC(p8|fL@UX8{mf{X2Em&?~=d(Rqrt*cQ?B;RM5ZeL?TXv~mV>>mKjoQhvC-+7o@)ICXutnZg|mX1;T-9huR6Xrd;9^b^|Pof5!+Ey zMl-Dj^#TzEo>|@)=;Q^GTz`PPYH9HKXUt3H+@D@2LgyCTJ1TBF#Z*D=bL<{R+7kX& zPS(D|s=ynvyWCbvv+A<0*g0IIO0WQ3VbxVY(S`6S9T#(9>F zvm+)88e4C2A}2>2#iG?&WJ;dr#)D~3_o>#rX2V0qfQwXYoRU!j1uMNHVJ>WbO`NQT z*4o+ZX796At!%GPkc1Tddl-dc^%$$4)*E9o%d_QBNQxh=;!n1 z=s{-%NAK^RGtu1r6)fyOFIuaL63xVC@*5SJ`3*84Al`FSKkGRs=a0VeoffF=r}*sW zZ(t!iVm>=JmpZ1VBoZoF{Vz;RleyaZRwx$27n~*IHq#1&*OKq?uT7>Oc0E^IS;cCb zUdCt{7kwy&7j+kjz&IOSl-_Ii8!;0axmUN!VpeeKI8W>yABKL9@oniDW|ZSGO?KCG4k+ahV~W+bmeC^; zz1mvA>n@FERx@|uSxoUMDnGD(y2YFD&X5R2@eKn#(jG0w-mVu*xwu)l$nD$1ISLDr1``V(@ zE}^~}fC1B)V@=~~UobL4IR2s2pq0N%dif$Lit~H+A?aO zrA2-`PYsq{i`Jl}VZPe_3^myh#=Pn!qSUUg)kz5IZ zyVyp;h>@Tz>%tlJlXbW#=82()c4h+*jf7^A^s7MUZ=LV!{jNsV%dqV9`$UAGciYB zx!@gQABNe)!AFhEiTEc86Pw2N{@V%(!FDzGW-6n>*(YJt1H31NtwZPF&)RzGs@-wB z={&O$s&C~oH?`V0^N>i zN@b|2y18^P6vAhz#7Bq@M~f&)`wGc5*E=b_x0cw=sEVn4h@FIgW{+|?x?x^We(U^N zZh6eg`c~@5)>EyKK|7q%Jr51f&S&-z@4ML+D#Js`SF#HfDH!=W#QpR_U@vOZs-Lv0 z2Wx1VjeTbwOpfeMJ9B&-Cc36Ib^`;`DeL}pVW8SPJn-p*&9LmV&3qnpvorqIY#|3g5$jt;?U?|e&su|hJu)1${f6n!TeVT_kGl`my4r-^>)jbfN#GR;83ue$q55joAOBBFWPRA9?2DLcE*7wG1FtMqVva=RUS46*tLQ4VVh=+ zv|sm3%OeL{{e0|i1^K(}G~3N4q+Q`Z*uF?FdbK&aX}b`UVXjT=+pad%{bgk{t7DC; z-mNlB%V>f3t_jfi8+qAChx2@ydt`vfXzBX_dC1_+Qe8?DI@xgWW*rIPEn@lwkeSi8 z4Q*m-G>VRO3y)ruZFIFZULAYkeX#O!edC`As10eoo>orgf3myKEyAJJi%t>c+t5 z`yJMre0{5O9>(w@l+M_y&gDzlB!F#6N!#yX9(=%OSOuDibNkxpzJrJV)zUk~WBVwy zEX|{MeMT;HGG~&3cPdeQ$ZH}^M}j@z!28Sli?SwTchn&u%fnaa6u~pZ|E0|UoX9g~ z+#*|A;o03RQDzHgCuSqm*@OwyEEG-XManz zyPK~kWNSE0-);$V8Z*T}%mmUmqq;`y-MF$Z2cvRYyu~zlzi1=yr6gv%na0c?w3Q%y zTec&X;!m)Ih-rPLfJ;}I78zG>gz~#)bXT4a+p-CV5#NaK?S9ZU>1^YcL11UBwV2rv zl~3+j3CQSZKU1 zaOvoc9p4?eNjW#;Ix=vnx0qJyYssra6V*N62ZC$Dz4JQ8gadSMZ)lZN_#C6XHnl4K z1upwp9iDNawIf^0Bk2&3M003!Uv{)ldwYDR`NH_RM@s;(M-7ruY;{v~}pJPh;2B?!{{#cQxEqFc}l%g*=qiswnS9nw38 zK$sAre?GC{7I6u=Wn+J2hdFNVDI_FE=AUAjS& zM=Lq|ec)l5+ncQo@qa97c8dr@^FF8h!IYqEGLa^us=BH{s1c;pqdfrB!}kh`W)E>g z0&)2qzlI0dViEQ+rUS8YE9}Aa@a;QMl{Ol>-wSgn*t}$-9>pA=@k`K5o-u`+N6F@R z*uNZc=h%iV@bH+#alBVwmxywfPfahbbxmDFWSh>G1N>1R=}H?alEnl>=mr4B4b#`t z$t(?stykkvP;A)H8$%e8$HTL^=UK%|p1hTb)|b%^RXcWNU7Ejci(+cl%e3`WjM9f0 zmF@?7_I|n$?`@?qMmwcx(X=b=e}FHgR9sHT$gkm1n{|Zyc9+?%%fhFa{}2c$2YVLD zvk0%v&e#|wrB{?rF|1Bv*E-Z=MYN)pHGJAo-7WQDdgV%LUEl=O2&$hQkD#h>_EvoB z!=!*-#Tuzi>?Or;D#T_>rU^?%oga(9pt{GOjcs~BiOd8{`Hlesm~*j&`ku6pFUl8w z-pp2vqAAk%{>S>`s?M(u7gz5nsM#dD8H|TrR8X@YbDeJEnJT?$QPiB3!zvS1K-OOG zB?@i$@m4tX#4==Z&n_lQQgIo^8lM$&8NJXyF1PT#7JpFBRNxk$_rg1>n{dk1B0>hX zjD=IPVK#+3qtkD5aT~?zI4zmjb>li0QH|#;*4}}M>tu0R+g)cBve~>^wJWNm%)_Eu z!qrjTkVR}!sU9suYMzpszuo)|TF`xG(m^&+kzZJ-C6iqx&aT}vP=sA&l&P;QLVV!b zw1Nyf`u#kDU|$tz27y>b(J{@XpwN*TWycs;DcPdTOTm)AJoP+SxqYAlOJ%ixaFq=^ zXU(5v?J6Hsz|1N$O-Oao#|^MdWKkEV@BSWr+)U_0Yy9_`ucVOEC{ zNjh_Iay$NGmhXsdq>x_5TonkNzq-Gfno-b-KA(cbK51wC73ic#%hV2{>5wNYmk|I; zKPYiYy0=SO!_1m*+CVS6sR4RtJUTW z@vR@`4+wVLQwY-+D0r&YqB*ts7##|uV6xs4oqCz+;FT~DrG`+nzjN(F)JcxkWu>{} zop&8Q2?hCYT7|M*bN%cIQRrnsEf{`qC!)+}gi84K<`C~tNIBnz46Bbf%2Wd`XK#>R zATaT=ZDf}bgAioU-Z{skrkoI*=BwdkS7)S~d4powE5^dM;^Lr`yYou*?un^Nxn0O> zzxg?KZkXAN$~0giMR9y8(FnWTzsBfWeAKHGvgqfq^|$v6A2Z6{>)5inKvQfzTi574 zRyORIG)2V_%efJ_r63&rciJvFw*GO`KZg0js_{$DOg*1X6PGy74ls7niwFJHd{=U(y*3+4&;~(j)!7QwH z+W<9r;r%k%@M04u41XB>w=#XwZT=dhXGg4F$>hPMLLt1X$4T)9Ev`~NYYEVMD2(Uv z7av5`uEHuj)3VytV<%O3+iRPv*T*{b1{&+t%%bo4i1r1Mf7lfBI@im_KzNc`qu4_6WGxQTtD2juzHhDsh2$rIBP#wTYidJy*kOvXU$Cf?{nSa|THv zAlKJi0AyYL-tShN+ecP(9(RX|07iPw4crx@pCg|_~>A~4EfTK&uK z2>HfQ_iB({RWAB3)$YG!S5RA87c6+L)_hr}Kt0rA>XQk4Tz2y1MDAX_@Gk}A_(QeN zmz&S4k5QX( zwu1-_l*q7cv|_D|`f}sJ#nzX66NlJ_!Ot3KtVx zja$R|7fbV_6p{P86jLrXynb2Rc>y6Kbn2P-oJUbZ6}?mlXR_ns=kXHg`!+8$@ZUHn zG(C%&ZKL~ov6fznnp$R)58BQA%0Gv~%9s_*du>Y~y?_{pK0f=in{7|IWuHxDwat-* z0&2)e>GqIK-!i8_YfOyDxaj$Q^=Z8e44K=7XeIZXCkUNNFPN>t)fxrfAo=kMSy~)> z#e9M+>->E~+MRzqZHJp%kJ23y`JSlFmg|)_qxw6`9TE|B<^cuzxVYCo1(mdgQDV3> zJYte&m1guJWB{3|FQIx0ThAO;uLZe8`eqlQHIn{hZdW%OE$456#@GxOhz`WQQcH7T z@G-}5@e_t9v>q=7(@b|`N_@2oY&rz!g-0eBY)^1gCs?}1LrydM4!SvIj5m)S+;{^hK^&2?gE-OLo~XJqeFst#$tMFH$k{ zi&3o21@3k=9pQ-r$i*>ijuoDvvwq4jy(?Kwfv2OMbDXx4*=nBKl1&9%C%jE|C5(|n zd*tUFR3q8q*fGa?dbs#zephsQXb~TC1@^ptFc;lj5X8L)Y#BP`*ekxb$W_!%hPyyn z^)<7g*|3S~m_<8pmi)CEj%G4NEl1O``8wF-DIZr4C^kGHuIK~=6lropL*V@0vKEWu z)PCrj*~Zrm-wq^(dYn^?{pqpc$-JYak54&=3be}aBqNTEZ&L2-5_tDqI3VQPQk zai2}V7wqzXM9NYvhP|^Mp(3KT3{E)-ox&nCXWq^gX!++*Hl*i&7|{;om3M=P$#%-M zunS078AH4^G^3*Ij0$BE$hS*}L7b*l8lYHURX--Xk<`n}qqPC~l=(yep(2NqX4X@J!;ehPHYxDiiHI+*Az1lwHZ5uGjFO z`j%IUP;rq97>uGehtz4@y0~dqn6Ezh=E7jis0{^2`!jzUbTRnEh0iU)Ucn$R4h7pj zFdI`;e)i(T7_R{QG7SGij{AY=%ro}C1Gct3hqpRtld`B!@O;26PjYdhQB_FS@^3ci zl3i(WKYf(i%;D2b6Aq3-d8xT=O!FP*u^CQjMrt z{VbMST^fNyvrShok4|z^wlYAq)CjmLo0r}3I=;3*X>9Ls@0lz}% z@w$U~#M5V?t!@Zq2gO@SxeJ970|O5*CSkV{bCvDI5G!|%eIreKl(eUu7?;tl1Nujv zUP7$G%;UKAt=al5u{B69nyvlfQMpW)OJ@b1Yno$Kb{gi-=+#kiF!g~(fX|rXc_{8v zVH^}g8z)exIxw^#F@$r=VkI6s<=iVpYeY;rez?w3 zM7m%3SWPd`Ek8Kb`e2EFashi<1Xi*AU0ES{y{N&>kZl48FhDEgBvdyVkq`K{f>`~u zgD(|SvT~21CjU~lqcG%G+*fwP;qkld@Cc;;kdAte9E;^r|LSjAER+_LZ$)gbM!BrY zP-kX56gLPkat4ONHdpjA^?ikuXvHt0ygH30r>FcL6BoU&U0Xu+NQA6i*u1(qS(PE^ z@Q*t&6-(rE+KQ|fMGqc|3F?2hzNxqklYB?G9bUwQq>TOA%e2eU-L(qt%^o8Bj0zA%(weWAh9@q87WlAzPhKWqdBLekDhcC?03Bf9rJ^`R~zc5{vJrZ8*OSytVhHNC6;4xe@0Gn@;AtyHv;?w z=Oa7@8;CsqxI={cBZ7!~(*M5MYrm`iR)YN9c4Z41?o@jrCv~ZQ#~!E80OP^l9FTSD zidH-AR)A-#Enk7xiNp76ij7XmMl$@I#yZd7pEbJgD{7S9(`GM7G^Xqm?9|{Mm>pm3 zbtd%{STJq1^NZs1o>%Nu;`~LwvRKmhD_SqWm^(*LY+- zZJA*v4TP9=e3?`qatMXf};cwNi~~XLscI+k5X>)HSTLJ50_N=>Qzfq@w~dPR7fY}{;WcCg(Xh|imo8B|_SGkSR|D7-AZ z_2I0zBKRb%W>;sNr42B-q1Ri}T`#WkuGf6(tXqJIGz2&A`1k-aIgIn6{4|vSp0tQ} zUL_4yBzjH5!i~$M<-zGo=U$4FSbTYGehn1IGgB3?*?^!$iJ1*iVRxa})i6UbCVNbv z{BP`iWiz$x6bg!wt0#}@cr}BF4JtHdlhj!!Z{O+N65HZ)2pu>`#5sTJa9mwU${B+& zAeh!;3rA3fNH)Lq_n?(>@ldvRM4F5==ILyq)Eu$-pid0TySj6W#2WY z$>;UAcn$c#N-%V+>-@RhG}ALKEtVG6?!%sNvU0=m;-jE$Tb68VKm}J>?kqjDf{8pn zGj2KWNNh9_{~R2gu9YvGr*{>z_uWZ>uJ|2$!t+ypG9eexoBjeIw{-OOLR_Tu6b4Ab zY92^zeyp%SUlLT%El2fXhHBAzSD$*xlbx#%XLy(Bs7c3w;7PgWuc@)3aVTRps-Cr)6P4;>DnMRkH@x0p2c;!{`)j#akKShW@V6emyEgQBay#u| zeXOpxFH*0e;z>ucZTWm&?~m(~#IBa~);gCTQY;OZVzm{T20w?ho(Z=>^*VP=On6jc z%AIQVCqy{EK%e{J87CpZ-)p7b9d8-4b(2#4(tm>~?T-OjMDD~EOAzrIb5Ea2ES zYKqb_gS-AbDj)##b);jQ2KD_It>r6&NQszR_HgnV;%u!I|Meki2;#3h3TPy!=?*De zALr42jjVtF)=lC4@q*{{dE#*@V@(E$3(9nv6>$<;B2A3j|z3Thg$`a?tU*SJJNq`|vwUzY^fZqPVNJjKQAtHm4ee zy5X-^QT&^s%(gt^5{1OG&&Ry0mSZVb)-iRLS1sSVolTSF z!qQD}6Eh->*;!m}ID?s!H0Qc<**}%c7x1v$dU+*UhVfJ)L)!Y|cU&}msPW)S^rc;P zsr}>KTe1=TzY6edc5u#sPrV-L|Lnju_feOC=DYbJ&ubbDij`Nb9(Hm+DG`(U_^SLj zPx9g#XmaTBHnuDtx1LN7W@fM8b&)MBUl_mVP-kJO$gH#vb;fza2LJIxHdvrXw42#s zQeJY4lHRb$MCl>EFa>0wJy5_|0Y{NafIJkt~rWAK#(4UD^(ZDzUb1(ofjO*=D9_#<{%n=@k7m;)4KPQYItr2sr+H z`5FFa6ws;67)i`x15dD1U*piTz3Eq*Bjjr^=0$g=RRnU1W3X(WZfr-y?klZ zbrX`{6!LU#)Um*VWjO?=cJY+rt3yL((?_{h*kFgA=^kH&L4f*KgF-ztDPgPlPlQC~ z8tUGIV!8)?*0axrT}%V)s9fm{R>c?<3L#aK-B=nbycpU=@WL!Tr9LZJX@}mVBqSd{{br*7&)@&ZfoP5Y(S!f!!GHAN zKX&jRKk#4V2XxlR{Pv{9MQ;$T@HH~J5QCFCU1L0!BK_S}{-3G&pPU*Ugi$f3ocAvh z9RP>{jZw_b(_nj^ukqQaILLTfC)`_tao<}4Ra=``TPun}q3!}eNbNHux5+aoNnX(B z4?~}GP-g0I$a2LeU4*`qy0f{TPbU2V#v#YFsa-hyAincCSA3>cp^Ub+_BI|*{IjD( zLZTxLrtOQ!vwV%2ukS9Clb4z_1uiZxCtfTsNo0#vycyCAMsfP#>S{OQZ;~%G*Pwrq zT!)?=2jlVa@tNUhAA%wu#43WPpVKFKefF&$_z#NId#a)$3)c#nnwolW^U|2+?GK)4 zhGtV9@MhaPJ0kapcOr*sFaLZqdIVSJaUb+4^~3ZvdqA+)cPAToa~7Tod-1J}yK%JS z6jypH8`QyTY|yK(R?sE~9R@f%?2RCM#?<;pG;$5@ZggG#0^2k2nd-ReN~EU7QQAg7rrTx9ZVjW z+`_`nJed)Ai`DwtnjL|aA$v4_xb4jJ*t#E$SYh5p2@OoD;Ighpu4avSO0OJ!7_Yk-NvbQ!PnEWb2Wvql!Di{_euBt z?1Gd*#82+zuU6w5SK!&N5WYVzm#_PQTc^2~?C)EjP^Y=SswYIEr=6^vYHc}7raqis z!1~eT?3C;4SHdE(V?AwW%2U@}BNSXA39uuM5_roN=~h zP1+T`17wv9o?Xs>y~RZK(ys7mcF5uKN<44bI{)baJ;;(D5lTDjwYg+!cN6!gVGBN? zSP6*je2TDIL;0LT+N?yEo;_*Eam_%VMN(n~mV4gssAN32+4QL4Vd&0 zB_goaNIiHO#IN2LfGh$$%EC^`J`oda_$YbnOl0)fIc1g9_v%Tm-_Bde3SDiT!dAA7 zuB(2t!X*~MwuX6bnmHWUY<2YuZ4gRFJ-3?sHKl8JTEdlcXP$KW=&g9dWl5*#TTSHv zM(Ohym?d9N7->t~IoVI7WcFe12Twv@QWe4U&03YoTf>WbwCu;ksChgQ<`9N)q~KN} z^#?fy+ex>$neDMs>bj*foJ=x7_7J)tjQf-CD+HuQiWiq`Z>X#dcI*+GrxoT{sBWAI zN@eZ*@?J|~mHk%FsMp|&WE$PYda~9X+tT;=abf!0G}=)5TD_f^QLnvUEB)|7=Wz>kiOB6}CiOicm6 zp^mtet(*ZpcKVUuYwBCV6an^QQwM1?-TJ1#Y6cxp9#c?JFg`Pwjs5Z7#@G#>O#=&~ zE6u~wgFIIGIDS!&+oa-X{+*(v+YfJQlkrR8<>^MzqH7|LS}ToZ5ey9BjhdIba(lzO zr>e{zxK7patN7p^hd%kX7@3&>(ctKg>ki;?byYTIb<%m^XZ%)0oJtyVrTfxPTgUn@NXY-&9r_RCbuwN zpuzIvgZ!Px(G6AgzJR5IzLux?v<_ssxRamHj^CTYcD<0q3 z45%+Y1HaM+ytd}uA=j=~Hq!!>OiVCpC4trV1X9NECgph7Mw?$bgv60C29}YZkYzK6 z75!Gz#T8qLWrldmkx8pNmZ~ zcyJ?&Gz?KJEmR><6*T+nM~&(=0kMgEX+4cEc~cYCtTV?ob1H}5f5=v!`=~r?`q!ILawZ2;1OfF_ zx~Yk0Z-TC>*2C+Hz24elTg_9s+*pP)&gaHg*Odk~7EDFPr)q%!kA#;0}Z}LHXzt)6b`p7Z1oQh#~NOVPnOEK zW@u>m9IlnAmj9CK3`xn~QnoC%Qw&WG91Pa#3ghAFqFy2`<4;2PtH3~dMedARCDW!z zNX?L%C|CirwDCdkvNSKf&42}(uB(R!os*~A(@MG#3P-uN`Xx`T<@9T2%8`C6 z6<{INpYYTjw0xWLK-EYSduU648t1NiWBKl^kjGsW&b#$t48qr1P4`)3V3lPHrhMVP z4m)xOa^ZAI3pJm7=`f2ANz`|Xm-Y%QBU;|bS*E=xYMuwL8WDZog7NsrO23c@PTamU zhgAI4N?Ws>4b;#0!50;DgFU+D2Gg&F{hG1|NUDDZpES zIR(y`{_np?(gWU(lhTeOc`Gd}WuG>8c)5LB>{77H32&D(Mal&Rqqb;{RM4Rj{n)KZh|A`kxg>im)2 z?pp2aXkV&F_^NP2hM||f$~PoIKeKdpYKP#kWhOT5V~AZaU4C|ccam>>(}0d9W#Jc{ zWpA_96B{)A=xC+7Th#2tR+_gsXp#`#+-G~4vD0T~_s7P;4DDRBctiVeWT35b1}eZ?*P~gzR5{!My||I&d$zm0BTV#A~8WL%xEid6i_U=#%c-* z2vAP%_qfe;CGc(l9@0t-M|tQ(cV1>4dLC_S;ow>IrK~43b!Yk$!yL zm@tl+DQ#s4A-?G>?KE}T;ZK%X@pTVX*I|AKz;ERKtMUA7H{h%LoQVTS!-q3e4ewhS zyf~%+6HKe6#8$!z8~cEehmpO#{ZGdlqC6?B=h9li*6Z`qJyUjZtp(y$fSx-TaCdXE zT_C-3mQ;SxWQ{+e^Y@8;$9ImgJ(xnzwi zBro0(_gkdaZ^xxFJ{nfMBq{@7n&uK|xe7+XZnP1sDNMR#3O0PrK@!^;)eEU!Wg+uK zQguXUe+3{XjNtZJQrd`$ue(>j*Ua5gJB3HM4<=3B1gxC6=+<9hw1O=#AiUz9sM8LHa%TVwcQ02W24Pq`^Xo^Gg4F7l zFJGd*IyQa({v8!s0Z54=K*S}!ab#rV`=!VpBGGFZb-fY4?9d1lNp$mZr%L+~*e+6! za~XdS%ne>{V>7~rAk4U{Duu&^IF04{AJ zD=iN!1@CIz)?;iR4ptrt=Na5@A0O{F^y>MEE7O*3VVWu&ssnI{TCSb7Nm}3#j=DAh88z5aZvcf8 zu>%B4mBtN}gBEzrsouCp=Sb3di3*_^1*2&k&9??idYjRbJBZpf)E=;ATF60v#0=m( z4FxPu3ma3r^@3}4TRnTde#g8x+(=W!9Z?9Lh*F>Yp#l&&w|0F%-M@c-CJ1t9LNrp| z$jV7f@ofFReYsj1%!qL-96 z0C|Fh?`Cw`H$YUwKy(%svLj_B^O1iZ(%sV9I!kgVxwo4eNjTp;JBnTwKhJKrI&tf$0kk4Sn+D8&J>qy{}aD*NC1C=x$Hw z1#@4bKLL~){6+@@@kZApU0=MojX>{=3;7)%b~!cZoLcC{w;P4mt!aZE6O$D(BqSVf zK=P*V4oJ9c?t6nMyz-g3=G70WL%`7*N+hV=094bJ9I(*OK6C8Gw^&qDiDWWtYYivI zMB|=Z_Z1}SOOaw|EuCTYt2@U>>wc}@zrRq*^4a?lgfYyr9W66gs$1494lee^7jAq| z^}Z{yThog)Al_mRF!|AfRw?h$h=|tN2nYisVYGEdJ?%gPjAU<74w8s&rvR}Atnl7} z$);eN7_`d+JrYWBz$o?LvS_1-wY9aC85xk2;}H>|@dJ$5pL26rh-$D1_CmT-)6iP|K5Muc@un z1oUR14zn%pIQ?lFK*XRN(>YiD>c`ivGQjS>2c$&T09^9SM2*vPw%8e9o|=c? z>M&KH1slLTz3vNk{=)(Om}Uvq`Kb)Y-Ch`Av6hTgSN6U+v0IL|Ia@o-8%wbR{(v6D6jo& zOBhaIfU9M1&;1ane+cmLNgG6d6Tr=oSPiIMweiOw!v(@G&%=kefj=mEO`LYg=;&xL zY||GnUNkeF1LP|ayp}!Rz_<*&R*{@Rd{%VEc)%F_9?;^!JDceFDo+6MSy}>SdK!YO z&l;)=!`WiBOl@p9fGc2Z2IPU-{6ix+JdlqRSf~@X-M#r~!RaWLioM zf-$0Qvtxzrm2O*jPS_Ge1I&il?=_55NdX22L{V1wg&8b(WNQrUE|%W~3B!&HND>ly zqP_vW0?9~IzH2bQCm=)wNkL=nR6VwbFG>K$mvsZa_IZ_K#>#nWrxAkoW7%CBH5c)AaMhdl4F|R zqn;NIn}Xy7TWm+y9kR3Foxo21FA^gl4U&_*ndE>pqi)5VJA@cf=|{4Gjsg!tRAXjt z4~3hT-o^D-5S_UtQ3Qn#XkjcYEJW3e)izps`LxIj$g?L6!Z-}&2Vzx>1OlKC1{@Gy z*r23(VNJKUx3|At=B~STntP}scTrXbJ|0|7q-4t*h7!ls^{U*i@H)*?D(4x;R@R)ioy z_yn0S1K@^0@^}^y4u=A%#1&hIn}BqP9tMZ^BuX3n8)GC82$|0w04+(=Cr5bXpatEy}AQ5pO{x3AJV|*cb9}PL&L$4S^Tv_L91S@7=2jT|? z(rMdhI_FqJe8}V^JuofsXY%?>+7mm$U;%7-z filename.split(/[/\\]/).includes('node_modules') ? undefined : true + }, + + // adapter-node is used because the app persists data to a local SQLite file on the server. + adapter: adapter() + }) + ], + test: { + expect: { requireAssertions: true }, + projects: [ + { + extends: './vite.config.ts', + test: { + name: 'client', + browser: { + enabled: true, + provider: playwright(), + instances: [{ browser: 'chromium', headless: true }] + }, + include: ['src/**/*.svelte.{test,spec}.{js,ts}'], + exclude: ['src/lib/server/**'] + } + }, + + { + extends: './vite.config.ts', + test: { + name: 'server', + environment: 'node', + include: ['src/**/*.{test,spec}.{js,ts}'], + exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] + } + } + ] + } +});