From 207713d843a9a9a23f560587751853d877b8e2b5 Mon Sep 17 00:00:00 2001 From: ClayenKitten <dima070704@yandex.ru> Date: Wed, 17 Jul 2024 18:25:45 +0300 Subject: [PATCH] chore: switch from `bun` to `node` and from `elysiajs` to `trpc` --- Dockerfile | 18 +- bun.lockb | Bin 122135 -> 0 bytes package-lock.json | 3835 ++++++++++++++++++++++++++ package.json | 15 +- src/hooks.server.ts | 9 + src/lib/api.ts | 17 +- src/lib/backend/index.ts | 9 - src/lib/server/auth/model.ts | 12 + src/lib/server/auth/router.ts | 16 + src/lib/server/context.ts | 6 + src/lib/server/index.ts | 11 + src/lib/server/trpc.ts | 5 + src/routes/+page.svelte | 3 +- src/routes/api/[...slugs]/+server.ts | 9 - svelte.config.js | 2 +- 15 files changed, 3923 insertions(+), 44 deletions(-) delete mode 100755 bun.lockb create mode 100644 package-lock.json create mode 100644 src/hooks.server.ts delete mode 100644 src/lib/backend/index.ts create mode 100644 src/lib/server/auth/model.ts create mode 100644 src/lib/server/auth/router.ts create mode 100644 src/lib/server/context.ts create mode 100644 src/lib/server/index.ts create mode 100644 src/lib/server/trpc.ts delete mode 100644 src/routes/api/[...slugs]/+server.ts diff --git a/Dockerfile b/Dockerfile index b698dc2..0677df6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,16 @@ -FROM oven/bun:1.1.20-alpine as build +FROM node:21-alpine as builder WORKDIR /app - COPY package.json . -COPY bun.lockb . -RUN bun install --frozen-lockfile - +COPY package-lock.json . +RUN npm ci COPY . . -RUN bun run build +RUN npm run build -FROM oven/bun:1.1.20-alpine as serve +FROM node:21-alpine as production WORKDIR /app -COPY --from=build /app/build ./build -COPY --from=build /app/node_modules ./node_modules +COPY --from=builder /app/build ./build +COPY --from=builder /app/node_modules ./node_modules COPY package.json . -CMD ["bun", "./build"] +CMD ["node", "./build"] diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 53899bedd2bf17aeb7aa1b25907ab114adb121a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122135 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∨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 B%8md4 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b41ffcc --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3835 @@ +{ + "name": "capydemia", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "capydemia", + "version": "0.0.1", + "dependencies": { + "@sinclair/typebox": "^0.32.34", + "@sveltejs/adapter-node": "^5.2.0", + "@trpc/client": "^10.0.0", + "@trpc/server": "^10.0.0", + "@typeschema/typebox": "^0.13.4", + "trpc-sveltekit": "^3.6.2" + }, + "devDependencies": { + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/eslint": "^8.56.7", + "eslint": "^9.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.36.0", + "globals": "^15.0.0", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0-alpha.20", + "vite": "^5.0.3", + "vitest": "^1.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.17.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.7.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", + "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^10.4.1", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@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==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@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==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.1", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.1", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.32.34", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.32.34.tgz", + "integrity": "sha512-a3Z3ytYl6R/+7ldxx04PO1semkwWlX/8pTqxsPw4quIcIXDFPZhOc1Wx8azWmkU26ccK3mHwcWenn0avNgAKQg==", + "license": "MIT" + }, + "node_modules/@sveltejs/adapter-node": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.2.0.tgz", + "integrity": "sha512-HVZoei2078XSyPmvdTHE03VXDUD0ytTvMuMHMQP0j6zX4nPDpCcKrgvU7baEblMeCCMdM/shQvstFxOJPQKlUQ==", + "license": "MIT", + "dependencies": { + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "rollup": "^4.9.5" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.5.18", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.0.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.10", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@trpc/client": { + "version": "10.45.2", + "resolved": "https://registry.npmjs.org/@trpc/client/-/client-10.45.2.tgz", + "integrity": "sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==", + "funding": [ + "https://trpc.io/sponsor" + ], + "license": "MIT", + "peerDependencies": { + "@trpc/server": "10.45.2" + } + }, + "node_modules/@trpc/server": { + "version": "10.45.2", + "resolved": "https://registry.npmjs.org/@trpc/server/-/server-10.45.2.tgz", + "integrity": "sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==", + "funding": [ + "https://trpc.io/sponsor" + ], + "license": "MIT" + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@typeschema/core": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@typeschema/core/-/core-0.13.2.tgz", + "integrity": "sha512-pAt0MK249/9szYaoPuvzhSfOd3smrLhhwCCpUNB4onX32mRx5F3lzDIveIYGQkLYRq58xOX5sjoW+n72f/MLLw==", + "license": "MIT", + "peerDependencies": { + "@types/json-schema": "^7.0.15" + }, + "peerDependenciesMeta": { + "@types/json-schema": { + "optional": true + } + } + }, + "node_modules/@typeschema/typebox": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@typeschema/typebox/-/typebox-0.13.4.tgz", + "integrity": "sha512-Rwcdn5CyxFWR003qSEtcJEHwPxa51iBublPYtomUL098i3K84z7YM+FKmFohLVawroGnAtxRw9yxfpulrP9ipw==", + "license": "MIT", + "dependencies": { + "@typeschema/core": "0.13.2" + }, + "peerDependencies": { + "@sinclair/typebox": "^0.32.15" + }, + "peerDependenciesMeta": { + "@sinclair/typebox": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.42", + "@typescript-eslint/type-utils": "8.0.0-alpha.42", + "@typescript-eslint/utils": "8.0.0-alpha.42", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.42", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.0.0-alpha.42", + "@typescript-eslint/types": "8.0.0-alpha.42", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.42", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.42", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.42", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.42" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.0.0-alpha.42", + "@typescript-eslint/utils": "8.0.0-alpha.42", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.42", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.42", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.42", + "@typescript-eslint/types": "8.0.0-alpha.42", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.42" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.42", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/axobject-query": { + "version": "4.0.0", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.0.0", + "license": "MIT" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.7.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.42.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@jridgewell/sourcemap-codec": "^1.4.15", + "eslint-compat-utils": "^0.5.1", + "esutils": "^2.0.3", + "known-css-properties": "^0.34.0", + "postcss": "^8.4.38", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.1.0", + "semver": "^7.6.2", + "svelte-eslint-parser": "^0.40.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.181" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.0.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.8.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "license": "MIT" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "9.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.34.0", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/loupe": { + "version": "2.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.30.10", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "license": "CC0-1.0" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit/node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.5", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "18.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "4.18.1", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^1.0.0", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.8.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.40.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "postcss": "^8.4.39", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.181" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-hmr": { + "version": "0.16.0", + "license": "ISC", + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.4", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "license": "MIT", + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/tinybench": { + "version": "2.8.0", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/trpc-sveltekit": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/trpc-sveltekit/-/trpc-sveltekit-3.6.2.tgz", + "integrity": "sha512-wfcUGpasdSQjNaMnbaaHs4gnh5580oNoOYBsnWujE8+tXyyYAxYA2z6vrQmuG4/rOLdbiEns5ISfsejZz9l+2Q==", + "license": "ISC", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/icflorescu" + }, + "peerDependencies": { + "@sveltejs/adapter-node": ">=1.2", + "@trpc/client": "^10.0.0", + "@trpc/server": "^10.0.0", + "ws": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.0.0-alpha.42", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.42", + "@typescript-eslint/parser": "8.0.0-alpha.42", + "@typescript-eslint/utils": "8.0.0-alpha.42" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.3.3", + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "license": "MIT", + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "peer": true, + "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/yaml": { + "version": "1.10.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 38929d0..b6a2403 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "0.0.1", "private": true, "scripts": { - "dev": "bunx --bun vite --port 3000", - "build": "bunx --bun vite build", - "preview": "bunx --bun vite preview --port 3000", + "dev": "vite --port 3000", + "build": "vite build", + "preview": "vite preview --port 3000", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "test": "vitest", @@ -32,8 +32,11 @@ }, "type": "module", "dependencies": { - "@elysiajs/eden": "^1.0.14", - "elysia": "^1.0.27", - "svelte-adapter-bun": "^0.5.2" + "@sinclair/typebox": "^0.32.34", + "@sveltejs/adapter-node": "^5.2.0", + "@trpc/client": "^10.0.0", + "@trpc/server": "^10.0.0", + "@typeschema/typebox": "^0.13.4", + "trpc-sveltekit": "^3.6.2" } } diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..00ba5ab --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1,9 @@ +import { appRouter } from "$lib/server"; +import createContext from "$lib/server/context"; +import type { Handle } from "@sveltejs/kit"; +import { createTRPCHandle } from "trpc-sveltekit"; + +export const handle: Handle = createTRPCHandle({ + router: appRouter, + createContext +}); diff --git a/src/lib/api.ts b/src/lib/api.ts index 519c8b0..836af8f 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -1,11 +1,12 @@ -import type { App } from "./backend"; import { browser } from "$app/environment"; -import { treaty } from "@elysiajs/eden"; +import type { AppRouter } from "$lib/server"; +import { createTRPCClient, type TRPCClientInit } from "trpc-sveltekit"; -const api = ( - browser - ? treaty<App>("localhost:3000") - : treaty<App>((await import("./backend")).app) -).api; +let browserClient: ReturnType<typeof createTRPCClient<AppRouter>>; -export default api; +export default function api(init?: TRPCClientInit) { + if (browser && browserClient) return browserClient; + const client = createTRPCClient<AppRouter>({ init }); + if (browser) browserClient = client; + return client; +} diff --git a/src/lib/backend/index.ts b/src/lib/backend/index.ts deleted file mode 100644 index 51e1575..0000000 --- a/src/lib/backend/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Elysia, t } from "elysia"; - -export const app = new Elysia({ prefix: "/api" }) - .get("/time", () => new Date().toLocaleTimeString(), { - response: t.String() - }) - .compile(); - -export type App = typeof app; diff --git a/src/lib/server/auth/model.ts b/src/lib/server/auth/model.ts new file mode 100644 index 0000000..08e5af8 --- /dev/null +++ b/src/lib/server/auth/model.ts @@ -0,0 +1,12 @@ +import { Type as t } from "@sinclair/typebox"; + +export const registerCredentials = t.Object({ + email: t.String({ format: "email" }), + name: t.String(), + password: t.String() +}); + +export const loginCredentials = t.Object({ + name: t.String(), + password: t.String() +}); diff --git a/src/lib/server/auth/router.ts b/src/lib/server/auth/router.ts new file mode 100644 index 0000000..2fde0a5 --- /dev/null +++ b/src/lib/server/auth/router.ts @@ -0,0 +1,16 @@ +import { wrap } from "@typeschema/typebox"; +import { publicProcedure, router } from "../trpc"; +import { loginCredentials, registerCredentials } from "./model"; + +const authRouter = router({ + register: publicProcedure + .input(wrap(registerCredentials)) + .mutation(async opts => { + return { ok: true }; + }), + login: publicProcedure.input(wrap(loginCredentials)).mutation(async opts => { + return { ok: true }; + }) +}); + +export default authRouter; diff --git a/src/lib/server/context.ts b/src/lib/server/context.ts new file mode 100644 index 0000000..a06e3c6 --- /dev/null +++ b/src/lib/server/context.ts @@ -0,0 +1,6 @@ +/** Creates global context for backend, e. g. database connection. */ +export default async function createContext(): Promise<Context> { + return {}; +} + +export type Context = {}; diff --git a/src/lib/server/index.ts b/src/lib/server/index.ts new file mode 100644 index 0000000..303a47e --- /dev/null +++ b/src/lib/server/index.ts @@ -0,0 +1,11 @@ +import { publicProcedure, router } from "./trpc"; +import authRouter from "./auth/router"; + +export const appRouter = router({ + auth: authRouter, + getTime: publicProcedure.query(async opts => { + return new Date().toLocaleTimeString(); + }) +}); + +export type AppRouter = typeof appRouter; diff --git a/src/lib/server/trpc.ts b/src/lib/server/trpc.ts new file mode 100644 index 0000000..eb35077 --- /dev/null +++ b/src/lib/server/trpc.ts @@ -0,0 +1,5 @@ +import { initTRPC } from "@trpc/server"; + +const { router, procedure, createCallerFactory } = initTRPC.create(); + +export { router, procedure as publicProcedure, createCallerFactory }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 694006d..d169770 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,10 +1,11 @@ <script lang="ts"> + import { page } from "$app/stores"; import api from "$lib/api"; import { onMount } from "svelte"; let time = ""; onMount(async () => { - time = (await api.time.get()).data!; + time = await api($page).getTime.query(); }); </script> diff --git a/src/routes/api/[...slugs]/+server.ts b/src/routes/api/[...slugs]/+server.ts deleted file mode 100644 index 96665d6..0000000 --- a/src/routes/api/[...slugs]/+server.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { app } from "$lib/backend"; - -type RequestHandler = (v: { request: Request }) => Response | Promise<Response>; - -export const GET: RequestHandler = ({ request }) => app.handle(request); -export const POST: RequestHandler = ({ request }) => app.handle(request); -export const PATCH: RequestHandler = ({ request }) => app.handle(request); -export const PUT: RequestHandler = ({ request }) => app.handle(request); -export const DELETE: RequestHandler = ({ request }) => app.handle(request); diff --git a/svelte.config.js b/svelte.config.js index 21cef2d..c973199 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,4 +1,4 @@ -import adapter from "svelte-adapter-bun"; +import adapter from "@sveltejs/adapter-node"; import { vitePreprocess } from "@sveltejs/vite-plugin-svelte"; /** @type {import('@sveltejs/kit').Config} */