feat(frontend)!: sveltekit 3 on the v0.7.0 template, typescript 6, adapter-auto dropped; backend base moves to trixie

This commit is contained in:
hh committed 2026-10-10 23:18:57 +00:00
1 parent b1ffebe858
commit 4d16105e92
116 files changed
+756 -711

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
_commit: v0.6.0 _commit: v0.7.0
_src_path: https://git.kotikot.com/templates/frontend-svelte.git _src_path: https://git.kotikot.com/templates/frontend-svelte.git
install_deps: false install_deps: false
layout: part layout: part
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim@sha256:531f855bda2c73cd6ef67d56b733b357cea384185b3022bd09f05e002cd144ca FROM ghcr.io/astral-sh/uv:python3.13-trixie-slim
RUN apt-get update && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/*
+1
View File
@@ -34,6 +34,7 @@
}, },
"a11y": { "a11y": {
"noSvgWithoutTitle": "warn", "noSvgWithoutTitle": "warn",
"useAnchorContent": "off",
"useButtonType": "warn" "useButtonType": "warn"
} }
} }
+105 -76
View File
@@ -11,22 +11,21 @@
"uqr": "^0.1.3", "uqr": "^0.1.3",
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.5.15", "@biomejs/biome": "^2.5.15",
"@sveltejs/adapter-auto": "^7.0.1", "@sveltejs/adapter-static": "^4.0.0",
"@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^3.0.1",
"@sveltejs/kit": "^2.57.0", "@sveltejs/vite-plugin-svelte": "^7.1.2",
"@sveltejs/vite-plugin-svelte": "^7.0.0",
"@tailwindcss/typography": "^0.5.19", "@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "^4.2.2", "@tailwindcss/vite": "^4.3.0",
"@types/node": "^25.9.1", "@types/bun": "^1.3.0",
"@types/pako": "^3.0.0", "@types/pako": "^3.0.0",
"sass": "^1.100.0", "sass": "^1.100.0",
"svelte": "^5.55.2", "svelte": "^5.57.1",
"svelte-check": "^4.7.6", "svelte-check": "^4.7.6",
"tailwindcss": "^4.2.2", "tailwindcss": "^4.3.0",
"typescript": "^5.9.3", "typescript": "^6.0.3",
"ultracite": "7.12.4", "ultracite": "^7.12.4",
"vite": "^8.0.7", "vite": "^8.0.16",
}, },
}, },
}, },
@@ -61,12 +60,6 @@
"@clack/prompts": ["@clack/prompts@1.8.1", "", { "dependencies": { "@clack/core": "1.5.1", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ=="], "@clack/prompts": ["@clack/prompts@1.8.1", "", { "dependencies": { "@clack/core": "1.5.1", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ=="],
"@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="],
"@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="],
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="],
"@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="],
"@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="],
@@ -81,19 +74,17 @@
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="],
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="],
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
"@oxc-project/types": ["@oxc-project/types@0.132.0", "", {}, "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ=="], "@oxc-project/types": ["@oxc-project/types@0.153.0", "", {}, "sha512-jSNrRIyvPVLL5E1z/tS5zLAprosGz/FuI1PWwEOz59j3E4TTTzSpqKb/RDGqJhhW0QHYISGXxq582wGx6T11Tw=="],
"@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="], "@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="],
@@ -125,35 +116,35 @@
"@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="],
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.2", "", { "os": "android", "cpu": "arm64" }, "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ=="], "@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.13", "", { "os": "android", "cpu": "arm" }, "sha512-Vu/NICrgdRvUOeaJZIyB2FP63s6fO/4ud5l8dXmxDx9yDyn+mN0y+gsvsVviSli+T361Aqo0h46EuMoobrwawA=="],
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w=="], "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.13", "", { "os": "android", "cpu": "arm64" }, "sha512-6LEoIrGy5vvCd2boNnv2soPSUZj/PRvhp8R/t9KlX+mIZxThIE/ZqxrGXxmuNX0FuvQFvLdZr7S4HrYpYBVhEQ=="],
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA=="], "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.13", "", { "os": "darwin", "cpu": "arm64" }, "sha512-CaJSRzlQ6Q+zkDMVA9OkVxBjVoPRCDEE3v0FSJ9kIQBgRjFApA3Si4ijhbNVUji7ZJt+PfO0e46qy4nPInHUPA=="],
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA=="], "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.13", "", { "os": "darwin", "cpu": "x64" }, "sha512-e4r340I5hxSzJkD3YJBxgzq/rJ3wwxwdLLb2FPt1Zpyem20nrQPT11DDEEkazwxaHumH8wpglsp/Ozgj/wT6mw=="],
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w=="], "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.13", "", { "os": "freebsd", "cpu": "x64" }, "sha512-hoBWDZ4/K/mJKVMbsgUd1jfpA2DiOrJ54mpegObU9TBHBBrtX4FLIXJJQRDPZ/2Dn91GvPob+Z2hwKJzf4E5SQ=="],
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig=="], "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.13", "", { "os": "linux", "cpu": "arm" }, "sha512-oF9fZu3vTWnTiVAkDFxU9PJLt1nh20K9RRpuHsR7ZnE2L7XookBbDBVLojCVSLGbvtSlxeUNnjAj6DbNsKyzbg=="],
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw=="], "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-DTpb/+jMiqWMPgphn4ksW1zW+XLJ6dJJ9FMvnIk9I291LhCctMPhMYJrP5t9p6C9qa3KXadDdUEZHBaPh3kNxQ=="],
"@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA=="], "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-xU+Kvv9N2A3SY35zFh1FWWNjxbadE/BKeqnkXe7vScU4GZsw757BlVmDLITZEq8DPpk6m7uoDYkK7P+x/uU5Ow=="],
"@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ=="], "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.13", "", { "os": "linux", "cpu": "ppc64" }, "sha512-XMk/hnhh25oQ756Lclb1Q11h4ll0xC0Esa5w4Vzp+mAE2S3AGJgeM0SonrIgY8fHhjarb6hcoTuwoFG0VVP2ig=="],
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ=="], "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.13", "", { "os": "linux", "cpu": "s390x" }, "sha512-U1BoTHYmlywE2n3HUWjzZ+8EQsKr+OwpxYuDWaubx42tUL8QSL7nOqRz/NVHanibbFP3M1Rxuprz/wNcbMKjqw=="],
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw=="], "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.13", "", { "os": "linux", "cpu": "x64" }, "sha512-J4cm80Pc6wEwV5AZ42o62sIQgDk+Y7R2s646jIwuvO+4V46QB58N4vVuMPWCBaNgursXLpmUWJV//WQAkPvHBQ=="],
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w=="], "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.13", "", { "os": "linux", "cpu": "x64" }, "sha512-W0euZS40U4V6JkmEnVCIX9mcsL6cbXQ4X8c2w+MMOIjFg68TXUW+u3RT+2e1t1pv9mg/EP3pDtK3POXdQ7Rxyw=="],
"@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.2", "", { "dependencies": { "@emnapi/core": "1.10.0", "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "cpu": "none" }, "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ=="], "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.13", "", { "os": "none", "cpu": "arm64" }, "sha512-do/AF/4n9MRshia3a5aXoy8xM2c6mgfT6D7H/dY6my5z+hfCIR4ab7mk4IRj++nsEQpKy39kd0DQnDq+r692tw=="],
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A=="], "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.13", "", { "os": "win32", "cpu": "arm64" }, "sha512-6FtUf2cJZobutJdxnGYX8z0vtbgqU0b2v8vfBhkXb9wp2MppMFtkunE+IaOntyi01rkIQoPW2GHABtfzsC0BRQ=="],
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ=="], "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.13", "", { "os": "win32", "cpu": "x64" }, "sha512-UKhFaZTeTcbKrb3iU82m17jVcPEAoqDkCN5MBqgPyZSwp/cQmib21crTS0DdH7T1B7wZRWEI89YQAOJMet5yhg=="],
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="],
@@ -163,13 +154,11 @@
"@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.10", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA=="], "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.13", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-wgKggnhZVL9Bfx1OaKKTrYY9BFRk6C8UAkQNUcIv1+llzYrIqy+RZm5HPKzn0NpEBvTVhTqB4kQyllZywsRBRQ=="],
"@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@7.0.1", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ=="], "@sveltejs/adapter-static": ["@sveltejs/adapter-static@4.0.0", "", { "peerDependencies": { "@sveltejs/kit": "^3.0.0-next.0" } }, "sha512-aF1J23R1ebKqUxQ4/qLr/Lxu63NFmLAtg8UZl3HFLxaoA1D/nhTVGcD9lTqx65iUbjNR2iOL0TgOxSX82x6Paw=="],
"@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.10", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew=="], "@sveltejs/kit": ["@sveltejs/kit@3.0.1", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1", "@standard-schema/spec": "^1.1.0", "cookie": "^2.0.1", "devalue": "^5.9.4", "esm-env": "^1.2.2", "magic-string": "^1.2.3", "mrmime": "^2.0.1", "sirv": "^3.0.2" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^7.0.0", "svelte": "^5.57.1", "typescript": "^6.0.0", "vite": "^8.0.12" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-8JMCCq7ZUJELi3hbhb0+c9Rs8qnbHW90vhOfM+t1FSF4fhIpG9/FOsH4IYgcITMhbdkSrrn+Kvd9G+q8A+UO6Q=="],
"@sveltejs/kit": ["@sveltejs/kit@2.61.1", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.9", "@types/cookie": "^0.6.0", "acorn": "^8.16.0", "cookie": "^0.6.0", "devalue": "^5.8.1", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.3.3 || ^6.0.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-Ny8s1SR1TyQS2hD2Rvw0XKzU2Nw1eUF52dTb6T2bdcgz7wSC+Nyb5IwjWYlR4b2dvbbR5NJDiQwHg3rnNseghg=="],
"@sveltejs/load-config": ["@sveltejs/load-config@0.2.3", "", {}, "sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ=="], "@sveltejs/load-config": ["@sveltejs/load-config@0.2.3", "", {}, "sha512-VT3qmUb8pRV2QrZjd8iAmtg8lf4W0TIjZbvXtz5MKei/q96teWZgGJyyidJzOjzZzvdq616eSRVeMYIQChUTAQ=="],
@@ -209,9 +198,7 @@
"@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="], "@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="],
"@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], "@types/bun": ["@types/bun@1.4.2", "", { "dependencies": { "bun-types": "1.4.2" } }, "sha512-GimotNn7+ZV0uVArItBbriZsR1oNf0+WTzPkdcFrzShI7k2norL0uzEaJT8T33dWr7O/c9ZDuAFQrctKCi72oQ=="],
"@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="],
"@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="],
@@ -219,9 +206,7 @@
"@types/pako": ["@types/pako@3.0.0", "", { "dependencies": { "pako": "*" } }, "sha512-MtIzg1Ul1GxhHZLq6oSKvWQENKqmfK1fdaW+SDcPJe7+YcJVo6AbmkW0BvGFH6+559+hEuCwdXZZe8F85lBPkA=="], "@types/pako": ["@types/pako@3.0.0", "", { "dependencies": { "pako": "*" } }, "sha512-MtIzg1Ul1GxhHZLq6oSKvWQENKqmfK1fdaW+SDcPJe7+YcJVo6AbmkW0BvGFH6+559+hEuCwdXZZe8F85lBPkA=="],
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], "acorn": ["acorn@8.19.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw=="],
"acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="],
"ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="], "ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="],
@@ -237,6 +222,8 @@
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
"bun-types": ["bun-types@1.4.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-bxV1FgK7yBIzjRe5zBozIM4Bem11ZJcCXSrjWRG3YWLt8yFDePu4cLjpebO8OvPeIE9trbyPF4fuj3Cia4Fj3w=="],
"chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
"citty": ["citty@0.2.2", "", {}, "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w=="], "citty": ["citty@0.2.2", "", {}, "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w=="],
@@ -251,7 +238,7 @@
"confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="],
"cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="], "cookie": ["cookie@2.0.1", "", {}, "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w=="],
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
@@ -261,7 +248,7 @@
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
"devalue": ["devalue@5.8.1", "", {}, "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw=="], "devalue": ["devalue@5.9.4", "", {}, "sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg=="],
"empathic": ["empathic@2.1.0", "", {}, "sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw=="], "empathic": ["empathic@2.1.0", "", {}, "sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw=="],
@@ -271,7 +258,7 @@
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
"esrap": ["esrap@2.2.9", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, "peerDependencies": { "@typescript-eslint/types": "^8.2.0" }, "optionalPeers": ["@typescript-eslint/types"] }, "sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A=="], "esrap": ["esrap@2.4.0", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, "peerDependencies": { "@typescript-eslint/types": "^8.2.0" }, "optionalPeers": ["@typescript-eslint/types"] }, "sha512-CQPcneEHw/czj32uwQC52nYnax8H4SXt25FCM+LIwGZ49cMIxpOj3bP8wmzcI+Z0HIy5KkClaPhRLfCySzwHPA=="],
"execa": ["execa@10.0.1", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "figures": "^6.1.0", "get-stream": "^9.0.1", "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", "pretty-ms": "^9.3.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "which-command": "^0.1.0", "yoctocolors": "^2.1.2" } }, "sha512-ge98qjkRK4IB7tL7Ju/6qmm5LHoH1eEMt5FNZrz3f4UIYhF28lggX20z3FaX1sgc67msLEn0N0BscOs29iuwyw=="], "execa": ["execa@10.0.1", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "figures": "^6.1.0", "get-stream": "^9.0.1", "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", "pretty-ms": "^9.3.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "which-command": "^0.1.0", "yoctocolors": "^2.1.2" } }, "sha512-ge98qjkRK4IB7tL7Ju/6qmm5LHoH1eEMt5FNZrz3f4UIYhF28lggX20z3FaX1sgc67msLEn0N0BscOs29iuwyw=="],
@@ -329,31 +316,29 @@
"jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="],
"kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="],
"lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="],
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="],
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="],
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="],
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="],
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="],
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="],
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="],
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="],
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="],
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="],
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
@@ -363,7 +348,7 @@
"lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="],
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "magic-string": ["magic-string@1.4.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } }, "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ=="],
"magicast": ["magicast@0.5.5", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA=="], "magicast": ["magicast@0.5.5", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA=="],
@@ -379,7 +364,7 @@
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
"nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], "nanoid": ["nanoid@3.3.20", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ=="],
"node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="], "node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="],
@@ -401,11 +386,11 @@
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
"picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], "picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="],
"pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="],
"postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], "postcss": ["postcss@8.5.29", "", { "dependencies": { "nanoid": "^3.3.19", "picocolors": "^1.1.1", "source-map-js": "^1.2.2" } }, "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ=="],
"postcss-selector-parser": ["postcss-selector-parser@6.0.10", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="], "postcss-selector-parser": ["postcss-selector-parser@6.0.10", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="],
@@ -421,7 +406,7 @@
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
"rolldown": ["rolldown@1.0.2", "", { "dependencies": { "@oxc-project/types": "=0.132.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.2", "@rolldown/binding-darwin-arm64": "1.0.2", "@rolldown/binding-darwin-x64": "1.0.2", "@rolldown/binding-freebsd-x64": "1.0.2", "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", "@rolldown/binding-linux-arm64-gnu": "1.0.2", "@rolldown/binding-linux-arm64-musl": "1.0.2", "@rolldown/binding-linux-ppc64-gnu": "1.0.2", "@rolldown/binding-linux-s390x-gnu": "1.0.2", "@rolldown/binding-linux-x64-gnu": "1.0.2", "@rolldown/binding-linux-x64-musl": "1.0.2", "@rolldown/binding-openharmony-arm64": "1.0.2", "@rolldown/binding-wasm32-wasi": "1.0.2", "@rolldown/binding-win32-arm64-msvc": "1.0.2", "@rolldown/binding-win32-x64-msvc": "1.0.2" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g=="], "rolldown": ["rolldown@1.2.13", "", { "dependencies": { "@oxc-project/types": "=0.153.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.13", "@rolldown/binding-android-arm64": "1.2.13", "@rolldown/binding-darwin-arm64": "1.2.13", "@rolldown/binding-darwin-x64": "1.2.13", "@rolldown/binding-freebsd-x64": "1.2.13", "@rolldown/binding-linux-arm-gnueabihf": "1.2.13", "@rolldown/binding-linux-arm64-gnu": "1.2.13", "@rolldown/binding-linux-arm64-musl": "1.2.13", "@rolldown/binding-linux-ppc64-gnu": "1.2.13", "@rolldown/binding-linux-s390x-gnu": "1.2.13", "@rolldown/binding-linux-x64-gnu": "1.2.13", "@rolldown/binding-linux-x64-musl": "1.2.13", "@rolldown/binding-openharmony-arm64": "1.2.13", "@rolldown/binding-win32-arm64-msvc": "1.2.13", "@rolldown/binding-win32-x64-msvc": "1.2.13" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-/5apOkwWxtACcQtZ5WlrAsKS4JwXVThQPJZ3RqIruRY9UG9M8e0VlXN068xum/JRKA4aIUoJ13ghe/kGCvidiQ=="],
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
@@ -433,8 +418,6 @@
"semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="],
"set-cookie-parser": ["set-cookie-parser@3.1.0", "", {}, "sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw=="],
"signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
"sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
@@ -453,7 +436,7 @@
"style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="],
"svelte": ["svelte@5.55.10", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.10", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.8.1", "esm-env": "^1.2.1", "esrap": "^2.2.9", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-v9mFVBY1USosyIWdXE7Cg4AN0ywyKCMcAhONvli8doMowEhFhMdNLKD1j7O/UnsrdVTHaUOk/jv8hD/HClVy+g=="], "svelte": ["svelte@5.57.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "@jridgewell/sourcemap-codec": "^1.6.0", "@sveltejs/acorn-typescript": "^1.0.13", "@types/estree": "^1.0.9", "acorn": "^8.18.0", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.9.2", "esm-env": "^1.2.1", "esrap": "^2.3.6", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-1YiPCAXT0Ct6g1vOMmSLa0Nsc3QRMvtDF32ihgglGVrugIuIK38RyDiFNXVDhtQ81TJjSO57NdMw6DyYLqSGDQ=="],
"svelte-check": ["svelte-check@4.7.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.3", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.0.0 || ^6.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw=="], "svelte-check": ["svelte-check@4.7.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "@sveltejs/load-config": "^0.2.3", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.0.0 || ^6.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-t2scM//ZuVbSY/T2w6FSBw1v9s2NEmh/g+sy1lqtosW5ylBV5AF4wFb1Ts9Kf3MbfPDUDJDZ9L436YT0SPTdvw=="],
@@ -467,7 +450,7 @@
"tinyexec": ["tinyexec@1.3.1", "", {}, "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA=="], "tinyexec": ["tinyexec@1.3.1", "", {}, "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA=="],
"tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="],
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
@@ -475,7 +458,7 @@
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="],
"ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="],
@@ -489,7 +472,7 @@
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"vite": ["vite@8.0.14", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "1.0.2", "tinyglobby": "^0.2.16" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw=="], "vite": ["vite@8.3.4", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", "postcss": "^8.5.29", "rolldown": "~1.2.12", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.7.1", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ=="],
"vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="],
@@ -505,6 +488,18 @@
"zod": ["zod@4.6.5", "", {}, "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q=="], "zod": ["zod@4.6.5", "", {}, "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q=="],
"@jridgewell/gen-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@parcel/watcher/picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="],
"@sveltejs/vite-plugin-svelte/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"@tailwindcss/node/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="],
"@tailwindcss/node/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="],
@@ -525,10 +520,44 @@
"micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="],
"mlly/acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="],
"postcss/source-map-js": ["source-map-js@1.2.2", "", {}, "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw=="],
"svelte/magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"svelte-check/chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], "svelte-check/chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
"wrap-ansi/string-width": ["string-width@8.2.2", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg=="], "wrap-ansi/string-width": ["string-width@8.2.2", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg=="],
"@sveltejs/vite-plugin-svelte/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@tailwindcss/node/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="],
"@tailwindcss/node/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="],
"@tailwindcss/node/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="],
"@tailwindcss/node/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="],
"@tailwindcss/node/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="],
"@tailwindcss/node/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="],
"@tailwindcss/node/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="],
"@tailwindcss/node/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="],
"@tailwindcss/node/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="],
"@tailwindcss/node/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="],
"@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
"@tailwindcss/node/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"svelte-check/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], "svelte-check/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
"svelte/magic-string/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
} }
} }
+15 -12
View File
@@ -3,6 +3,10 @@
"version": "0.0.1", "version": "0.0.1",
"private": true, "private": true,
"type": "module", "type": "module",
"imports": {
"#lib": "./src/lib/index.js",
"#lib/*": "./src/lib/*"
},
"scripts": { "scripts": {
"build": "vite build", "build": "vite build",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
@@ -20,21 +24,20 @@
"uqr": "^0.1.3" "uqr": "^0.1.3"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.5.15", "@biomejs/biome": "^2.5.15",
"@sveltejs/adapter-auto": "^7.0.1", "@sveltejs/adapter-static": "^4.0.0",
"@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^3.0.1",
"@sveltejs/kit": "^2.57.0", "@sveltejs/vite-plugin-svelte": "^7.1.2",
"@sveltejs/vite-plugin-svelte": "^7.0.0",
"@tailwindcss/typography": "^0.5.19", "@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "^4.2.2", "@tailwindcss/vite": "^4.3.0",
"@types/node": "^25.9.1", "@types/bun": "^1.3.0",
"@types/pako": "^3.0.0", "@types/pako": "^3.0.0",
"sass": "^1.100.0", "sass": "^1.100.0",
"svelte": "^5.55.2", "svelte": "^5.57.1",
"svelte-check": "^4.7.6", "svelte-check": "^4.7.6",
"tailwindcss": "^4.2.2", "tailwindcss": "^4.3.0",
"typescript": "^5.9.3", "typescript": "^6.0.3",
"ultracite": "7.12.4", "ultracite": "^7.12.4",
"vite": "^8.0.7" "vite": "^8.0.16"
} }
} }
+5
View File
@@ -0,0 +1,5 @@
import { defineEnvVars } from "@sveltejs/kit/env";
export const variables = defineEnvVars({
PUBLIC_API_BASE_URL: { public: true, schema: (input) => input ?? "/api" },
});
+4 -3
View File
@@ -1,7 +1,8 @@
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "$lib/stores/auth.svelte"; import { auth } from "#lib/stores/auth.svelte.js";
import { PUBLIC_API_BASE_URL } from "$app/env/public";
const BASE = import.meta.env.VITE_API_BASE ?? "/api"; const BASE = PUBLIC_API_BASE_URL;
const RETRY_DELAY = 2500; const RETRY_DELAY = 2500;
export type AvatarKind = "peer" | "chat"; export type AvatarKind = "peer" | "chat";
+4 -3
View File
@@ -1,8 +1,9 @@
import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "#lib/stores/auth.svelte.js";
import { PUBLIC_API_BASE_URL } from "$app/env/public";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { accounts } from "$lib/stores/accounts.svelte";
import { auth } from "$lib/stores/auth.svelte";
const BASE = import.meta.env.VITE_API_BASE ?? "/api"; const BASE = PUBLIC_API_BASE_URL;
const MAX_LIMIT = 500; const MAX_LIMIT = 500;
export class ApiError extends Error { export class ApiError extends Error {
+4 -3
View File
@@ -1,7 +1,8 @@
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "$lib/stores/auth.svelte"; import { auth } from "#lib/stores/auth.svelte.js";
import { PUBLIC_API_BASE_URL } from "$app/env/public";
const BASE = import.meta.env.VITE_API_BASE ?? "/api"; const BASE = PUBLIC_API_BASE_URL;
const RETRY_DELAY = 2500; const RETRY_DELAY = 2500;
export interface CustomEmojiAsset { export interface CustomEmojiAsset {
+4 -3
View File
@@ -1,7 +1,8 @@
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "$lib/stores/auth.svelte"; import { auth } from "#lib/stores/auth.svelte.js";
import { PUBLIC_API_BASE_URL } from "$app/env/public";
const BASE = import.meta.env.VITE_API_BASE ?? "/api"; const BASE = PUBLIC_API_BASE_URL;
const FILENAME_STAR = /filename\*=UTF-8''([^;]+)/i; const FILENAME_STAR = /filename\*=UTF-8''([^;]+)/i;
const FILENAME_PLAIN = /filename="?([^";]+)"?/i; const FILENAME_PLAIN = /filename="?([^";]+)"?/i;
+3 -3
View File
@@ -1,4 +1,4 @@
import { request } from "$lib/api/client"; import { request } from "#lib/api/client.js";
import type { import type {
Account, Account,
Alert, Alert,
@@ -35,8 +35,8 @@ import type {
VolumeBucket, VolumeBucket,
Watch, Watch,
WatchedBot, WatchedBot,
} from "$lib/api/types"; } from "#lib/api/types.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
interface Page { interface Page {
limit?: number; limit?: number;
+4 -4
View File
@@ -1,7 +1,7 @@
import { requestMedia } from "$lib/api/client"; import { requestMedia } from "#lib/api/client.js";
import { getMessageMedia, transcribeMedia } from "$lib/api/endpoints"; import { getMessageMedia, transcribeMedia } from "#lib/api/endpoints.js";
import type { MediaRef } from "$lib/api/types"; import type { MediaRef } from "#lib/api/types.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
const TRANSCRIBE_TRIES = 10; const TRANSCRIBE_TRIES = 10;
const TRANSCRIBE_DELAY = 2000; const TRANSCRIBE_DELAY = 2000;
+3 -3
View File
@@ -1,6 +1,6 @@
import { request } from "$lib/api/client"; import { request } from "#lib/api/client.js";
import type { FileShare, FileShareHit, ShareSubject } from "$lib/api/types"; import type { FileShare, FileShareHit, ShareSubject } from "#lib/api/types.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
export interface ShareSettings { export interface ShareSettings {
expiresInSeconds: number | null; expiresInSeconds: number | null;
+4 -3
View File
@@ -1,7 +1,8 @@
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "$lib/stores/auth.svelte"; import { auth } from "#lib/stores/auth.svelte.js";
import { PUBLIC_API_BASE_URL } from "$app/env/public";
const BASE = import.meta.env.VITE_API_BASE ?? "/api"; const BASE = PUBLIC_API_BASE_URL;
const MAX_CACHED = 100; const MAX_CACHED = 100;
@@ -1,9 +1,9 @@
<script lang="ts"> <script lang="ts">
import type { MessageView } from "$lib/api/types"; import type { MessageView } from "#lib/api/types.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { accountName, peerName } from "$lib/format/peer"; import { accountName, peerName } from "#lib/format/peer.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
interface Props { interface Props {
message: MessageView; message: MessageView;
+15 -15
View File
@@ -1,23 +1,23 @@
<script lang="ts"> <script lang="ts">
import { goto } from "$app/navigation";
import { import {
enqueueBackfill, enqueueBackfill,
getCurrentPresence, getCurrentPresence,
getPeer, getPeer,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { PeerView, PresenceSample } from "$lib/api/types"; import type { PeerView, PresenceSample } from "#lib/api/types.js";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { peerName } from "$lib/format/peer"; import { peerName } from "#lib/format/peer.js";
import { formatPresence, isOnline } from "$lib/format/presence"; import { formatPresence, isOnline } from "#lib/format/presence.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { chats } from "$lib/stores/chats.svelte"; import { chats } from "#lib/stores/chats.svelte.js";
import { discover } from "$lib/stores/discover.svelte"; import { discover } from "#lib/stores/discover.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation";
interface Props { interface Props {
chatId: number; chatId: number;
+7 -7
View File
@@ -1,14 +1,14 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import ChatListItem from "#lib/components/ChatListItem.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Skeleton from "#lib/components/ui/Skeleton.svelte";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { chats } from "#lib/stores/chats.svelte.js";
import { folders } from "#lib/stores/folders.svelte.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { page } from "$app/state"; import { page } from "$app/state";
import ChatListItem from "$lib/components/ChatListItem.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Skeleton from "$lib/components/ui/Skeleton.svelte";
import { accounts } from "$lib/stores/accounts.svelte";
import { chats } from "$lib/stores/chats.svelte";
import { folders } from "$lib/stores/folders.svelte";
import { toasts } from "$lib/stores/toasts.svelte";
const skeletonRows = Array.from({ length: 9 }, (_, index) => index); const skeletonRows = Array.from({ length: 9 }, (_, index) => index);
@@ -1,14 +1,14 @@
<script lang="ts"> <script lang="ts">
import { ripple } from "#lib/actions/ripple.js";
import type { Chat } from "#lib/api/types.js";
import Avatar from "#lib/components/ui/Avatar.svelte";
import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import { formatListDate } from "#lib/format/datetime.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { peers } from "#lib/stores/peers.svelte.js";
import { type RightPanel, ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { ripple } from "$lib/actions/ripple";
import type { Chat } from "$lib/api/types";
import Avatar from "$lib/components/ui/Avatar.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte";
import { formatListDate } from "$lib/format/datetime";
import { accounts } from "$lib/stores/accounts.svelte";
import { peers } from "$lib/stores/peers.svelte";
import { type RightPanel, ui } from "$lib/stores/ui.svelte";
interface Props { interface Props {
chat: Chat; chat: Chat;
+2 -2
View File
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { ContactView } from "$lib/api/types"; import type { ContactView } from "#lib/api/types.js";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
interface Props { interface Props {
contact: ContactView; contact: ContactView;
@@ -2,7 +2,7 @@
import { import {
type CustomEmojiAsset, type CustomEmojiAsset,
loadCustomEmoji, loadCustomEmoji,
} from "$lib/api/custom-emoji"; } from "#lib/api/custom-emoji.js";
interface Props { interface Props {
id: string; id: string;
@@ -1,13 +1,13 @@
<script lang="ts"> <script lang="ts">
import { SvelteSet } from "svelte/reactivity"; import { SvelteSet } from "svelte/reactivity";
import type { EntityView } from "$lib/api/types"; import type { EntityView } from "#lib/api/types.js";
import { import {
buildEntityTree, buildEntityTree,
type EntityNode, type EntityNode,
type EntityTreeNode, type EntityTreeNode,
jumboEmojiCount, jumboEmojiCount,
linkHref, linkHref,
} from "$lib/format/entities"; } from "#lib/format/entities.js";
interface Props { interface Props {
entities: EntityView[]; entities: EntityView[];
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import { folders } from "$lib/stores/folders.svelte"; import { folders } from "#lib/stores/folders.svelte.js";
interface Tab { interface Tab {
id: number | null; id: number | null;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type { ForwardView } from "$lib/api/types"; import type { ForwardView } from "#lib/api/types.js";
import { peerName } from "$lib/format/peer"; import { peerName } from "#lib/format/peer.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
interface Props { interface Props {
forward: ForwardView; forward: ForwardView;
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { InlineButton } from "$lib/api/types"; import type { InlineButton } from "#lib/api/types.js";
import { safeHref } from "$lib/format/url"; import { safeHref } from "#lib/format/url.js";
interface Props { interface Props {
rows: InlineButton[][]; rows: InlineButton[][];
+1 -1
View File
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { LocationView } from "$lib/api/types"; import type { LocationView } from "#lib/api/types.js";
interface Props { interface Props {
location: LocationView; location: LocationView;
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import Button from "#lib/components/ui/Button.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { auth } from "#lib/stores/auth.svelte.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import Button from "$lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import { accounts } from "$lib/stores/accounts.svelte";
import { auth } from "$lib/stores/auth.svelte";
import { toasts } from "$lib/stores/toasts.svelte";
let value = $state(""); let value = $state("");
let busy = $state(false); let busy = $state(false);
@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import { isPreviewable } from "$lib/api/media"; import { isPreviewable } from "#lib/api/media.js";
import type { MediaRef } from "$lib/api/types"; import type { MediaRef } from "#lib/api/types.js";
import AlbumTile from "$lib/components/media/AlbumTile.svelte"; import AlbumTile from "#lib/components/media/AlbumTile.svelte";
import FileChip from "$lib/components/media/FileChip.svelte"; import FileChip from "#lib/components/media/FileChip.svelte";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import { type MediaResult, requestMediaVersion } from "$lib/api/client"; import { type MediaResult, requestMediaVersion } from "#lib/api/client.js";
import { isActiveContent, visualKind } from "$lib/api/media"; import { isActiveContent, visualKind } from "#lib/api/media.js";
import type { MediaVersion } from "$lib/api/types"; import type { MediaVersion } from "#lib/api/types.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { poster } from "$lib/media/poster"; import { poster } from "#lib/media/poster.js";
interface Props { interface Props {
version: MediaVersion; version: MediaVersion;
+13 -13
View File
@@ -1,19 +1,19 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { untrack } from "svelte"; import { untrack } from "svelte";
import { type MediaResult, requestMedia } from "$lib/api/client"; import { type MediaResult, requestMedia } from "#lib/api/client.js";
import { downloadMedia } from "$lib/api/download"; import { downloadMedia } from "#lib/api/download.js";
import { fetchMedia, getMessageMedia } from "$lib/api/endpoints"; import { fetchMedia, getMessageMedia } from "#lib/api/endpoints.js";
import { isPreviewable, type ViewerItem } from "$lib/api/media"; import { isPreviewable, type ViewerItem } from "#lib/api/media.js";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatBytes, mediaKindLabel } from "$lib/format/media"; import { formatBytes, mediaKindLabel } from "#lib/format/media.js";
import { poster } from "$lib/media/poster"; import { poster } from "#lib/media/poster.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,28 +1,28 @@
<script lang="ts"> <script lang="ts">
import type { MessageView } from "#lib/api/types.js";
import Contact from "#lib/components/Contact.svelte";
import EntityText from "#lib/components/EntityText.svelte";
import ForwardHeader from "#lib/components/ForwardHeader.svelte";
import InlineButtons from "#lib/components/InlineButtons.svelte";
import Location from "#lib/components/Location.svelte";
import MediaAlbum from "#lib/components/MediaAlbum.svelte";
import MessageMedia from "#lib/components/MessageMedia.svelte";
import MessageMeta from "#lib/components/MessageMeta.svelte";
import Poll from "#lib/components/Poll.svelte";
import Reactions from "#lib/components/Reactions.svelte";
import ReplyHeader from "#lib/components/ReplyHeader.svelte";
import Avatar from "#lib/components/ui/Avatar.svelte";
import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import WebPage from "#lib/components/WebPage.svelte";
import { accountName, peerColorIndex, peerName } from "#lib/format/peer.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { peers } from "#lib/stores/peers.svelte.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { appear } from "#lib/transitions/appear.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import type { MessageView } from "$lib/api/types";
import Contact from "$lib/components/Contact.svelte";
import EntityText from "$lib/components/EntityText.svelte";
import ForwardHeader from "$lib/components/ForwardHeader.svelte";
import InlineButtons from "$lib/components/InlineButtons.svelte";
import Location from "$lib/components/Location.svelte";
import MediaAlbum from "$lib/components/MediaAlbum.svelte";
import MessageMedia from "$lib/components/MessageMedia.svelte";
import MessageMeta from "$lib/components/MessageMeta.svelte";
import Poll from "$lib/components/Poll.svelte";
import Reactions from "$lib/components/Reactions.svelte";
import ReplyHeader from "$lib/components/ReplyHeader.svelte";
import Avatar from "$lib/components/ui/Avatar.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import WebPage from "$lib/components/WebPage.svelte";
import { accountName, peerColorIndex, peerName } from "$lib/format/peer";
import { accounts } from "$lib/stores/accounts.svelte";
import { peers } from "$lib/stores/peers.svelte";
import { toasts } from "$lib/stores/toasts.svelte";
import { ui } from "$lib/stores/ui.svelte";
import { appear } from "$lib/transitions/appear";
interface Props { interface Props {
animate: boolean; animate: boolean;
+17 -17
View File
@@ -1,22 +1,22 @@
<script lang="ts"> <script lang="ts">
import { tick, untrack } from "svelte"; import { tick, untrack } from "svelte";
import { listMessages } from "$lib/api/endpoints"; import { listMessages } from "#lib/api/endpoints.js";
import { type ViewerItem, viewerItemsFrom } from "$lib/api/media"; import { type ViewerItem, viewerItemsFrom } from "#lib/api/media.js";
import type { LiveEvent, MessageView } from "$lib/api/types"; import type { LiveEvent, MessageView } from "#lib/api/types.js";
import ActionMessage from "$lib/components/ActionMessage.svelte"; import ActionMessage from "#lib/components/ActionMessage.svelte";
import MediaViewer from "$lib/components/MediaViewer.svelte"; import MediaViewer from "#lib/components/MediaViewer.svelte";
import MessageBubble from "$lib/components/MessageBubble.svelte"; import MessageBubble from "#lib/components/MessageBubble.svelte";
import MessageVersions from "$lib/components/MessageVersions.svelte"; import MessageVersions from "#lib/components/MessageVersions.svelte";
import PinnedBar from "$lib/components/PinnedBar.svelte"; import PinnedBar from "#lib/components/PinnedBar.svelte";
import TrackChat from "$lib/components/TrackChat.svelte"; import TrackChat from "#lib/components/TrackChat.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatDay } from "$lib/format/datetime"; import { formatDay } from "#lib/format/datetime.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { events } from "$lib/stores/events.svelte"; import { events } from "#lib/stores/events.svelte.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
+19 -19
View File
@@ -1,28 +1,28 @@
<script lang="ts"> <script lang="ts">
import { visible } from "$lib/actions/visible"; import { visible } from "#lib/actions/visible.js";
import { downloadMedia } from "$lib/api/download"; import { downloadMedia } from "#lib/api/download.js";
import { fetchMedia } from "$lib/api/endpoints"; import { fetchMedia } from "#lib/api/endpoints.js";
import { import {
type InlineMedia, type InlineMedia,
isPreviewable, isPreviewable,
loadInlineMedia, loadInlineMedia,
visualKind, visualKind,
} from "$lib/api/media"; } from "#lib/api/media.js";
import type { MessageView } from "$lib/api/types"; import type { MessageView } from "#lib/api/types.js";
import AudioFile from "$lib/components/media/AudioFile.svelte"; import AudioFile from "#lib/components/media/AudioFile.svelte";
import FileChip from "$lib/components/media/FileChip.svelte"; import FileChip from "#lib/components/media/FileChip.svelte";
import TgsSticker from "$lib/components/media/TgsSticker.svelte"; import TgsSticker from "#lib/components/media/TgsSticker.svelte";
import VideoNote from "$lib/components/media/VideoNote.svelte"; import VideoNote from "#lib/components/media/VideoNote.svelte";
import VoiceMessage from "$lib/components/media/VoiceMessage.svelte"; import VoiceMessage from "#lib/components/media/VoiceMessage.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatBytes, mediaKindLabel } from "$lib/format/media"; import { formatBytes, mediaKindLabel } from "#lib/format/media.js";
import { poster } from "$lib/media/poster"; import { poster } from "#lib/media/poster.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
interface Props { interface Props {
message: MessageView; message: MessageView;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type { MessageView } from "$lib/api/types"; import type { MessageView } from "#lib/api/types.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { formatTime } from "$lib/format/datetime"; import { formatTime } from "#lib/format/datetime.js";
interface Props { interface Props {
message: MessageView; message: MessageView;
@@ -1,12 +1,12 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { getMediaVersions, listMessageVersions } from "$lib/api/endpoints"; import { getMediaVersions, listMessageVersions } from "#lib/api/endpoints.js";
import type { MediaVersion, MessageVersion } from "$lib/api/types"; import type { MediaVersion, MessageVersion } from "#lib/api/types.js";
import MediaVersionThumb from "$lib/components/MediaVersionThumb.svelte"; import MediaVersionThumb from "#lib/components/MediaVersionThumb.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
+5 -5
View File
@@ -1,9 +1,9 @@
<script lang="ts"> <script lang="ts">
import { getPinned } from "$lib/api/endpoints"; import { getPinned } from "#lib/api/endpoints.js";
import type { PinnedView } from "$lib/api/types"; import type { PinnedView } from "#lib/api/types.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { mediaKindLabel } from "$lib/format/media"; import { mediaKindLabel } from "#lib/format/media.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
+1 -1
View File
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { PollView } from "$lib/api/types"; import type { PollView } from "#lib/api/types.js";
interface Props { interface Props {
poll: PollView; poll: PollView;
+2 -2
View File
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { ReactionCount } from "$lib/api/types"; import type { ReactionCount } from "#lib/api/types.js";
import CustomEmoji from "$lib/components/CustomEmoji.svelte"; import CustomEmoji from "#lib/components/CustomEmoji.svelte";
interface Props { interface Props {
onclick?: () => void; onclick?: () => void;
@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import type { ReplyView } from "$lib/api/types"; import type { ReplyView } from "#lib/api/types.js";
import { mediaKindLabel } from "$lib/format/media"; import { mediaKindLabel } from "#lib/format/media.js";
import { peerColorIndex, peerName } from "$lib/format/peer"; import { peerColorIndex, peerName } from "#lib/format/peer.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
interface Props { interface Props {
onjump?: (messageId: number) => void; onjump?: (messageId: number) => void;
+18 -18
View File
@@ -1,22 +1,22 @@
<script lang="ts"> <script lang="ts">
import AlertsPanel from "$lib/components/alerts/AlertsPanel.svelte"; import AlertsPanel from "#lib/components/alerts/AlertsPanel.svelte";
import AnnotationsPanel from "$lib/components/annotations/AnnotationsPanel.svelte"; import AnnotationsPanel from "#lib/components/annotations/AnnotationsPanel.svelte";
import BotsPanel from "$lib/components/bots/BotsPanel.svelte"; import BotsPanel from "#lib/components/bots/BotsPanel.svelte";
import JobsPanel from "$lib/components/jobs/JobsPanel.svelte"; import JobsPanel from "#lib/components/jobs/JobsPanel.svelte";
import PolicyEditor from "$lib/components/policy/PolicyEditor.svelte"; import PolicyEditor from "#lib/components/policy/PolicyEditor.svelte";
import AnalyticsPanel from "$lib/components/presence/AnalyticsPanel.svelte"; import AnalyticsPanel from "#lib/components/presence/AnalyticsPanel.svelte";
import ProfilePanel from "$lib/components/profile/ProfilePanel.svelte"; import ProfilePanel from "#lib/components/profile/ProfilePanel.svelte";
import ChatSearchPanel from "$lib/components/search/ChatSearchPanel.svelte"; import ChatSearchPanel from "#lib/components/search/ChatSearchPanel.svelte";
import SharesPanel from "$lib/components/shares/SharesPanel.svelte"; import SharesPanel from "#lib/components/shares/SharesPanel.svelte";
import CallbacksPanel from "$lib/components/social/CallbacksPanel.svelte"; import CallbacksPanel from "#lib/components/social/CallbacksPanel.svelte";
import LinksPanel from "$lib/components/social/LinksPanel.svelte"; import LinksPanel from "#lib/components/social/LinksPanel.svelte";
import ReactionsPanel from "$lib/components/social/ReactionsPanel.svelte"; import ReactionsPanel from "#lib/components/social/ReactionsPanel.svelte";
import AllStoriesArchive from "$lib/components/stories/AllStoriesArchive.svelte"; import AllStoriesArchive from "#lib/components/stories/AllStoriesArchive.svelte";
import StoriesArchive from "$lib/components/stories/StoriesArchive.svelte"; import StoriesArchive from "#lib/components/stories/StoriesArchive.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import WatchesPanel from "$lib/components/watches/WatchesPanel.svelte"; import WatchesPanel from "#lib/components/watches/WatchesPanel.svelte";
import { type RightPanel, ui } from "$lib/stores/ui.svelte"; import { type RightPanel, ui } from "#lib/stores/ui.svelte.js";
const titles: Record<RightPanel, string> = { const titles: Record<RightPanel, string> = {
alerts: "Алерты", alerts: "Алерты",
+7 -7
View File
@@ -1,11 +1,11 @@
<script lang="ts"> <script lang="ts">
import { enqueueBackfill, trackChat } from "$lib/api/endpoints"; import { enqueueBackfill, trackChat } from "#lib/api/endpoints.js";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { chats } from "$lib/stores/chats.svelte"; import { chats } from "#lib/stores/chats.svelte.js";
import { discover } from "$lib/stores/discover.svelte"; import { discover } from "#lib/stores/discover.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
+3 -3
View File
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type { MessageView } from "$lib/api/types"; import type { MessageView } from "#lib/api/types.js";
import MessageMedia from "$lib/components/MessageMedia.svelte"; import MessageMedia from "#lib/components/MessageMedia.svelte";
import { safeHref } from "$lib/format/url"; import { safeHref } from "#lib/format/url.js";
interface Props { interface Props {
message: MessageView; message: MessageView;
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { Alert } from "$lib/api/types"; import type { Alert } from "#lib/api/types.js";
import Button from "../ui/Button.svelte"; import Button from "../ui/Button.svelte";
import Icon from "../ui/Icon.svelte"; import Icon from "../ui/Icon.svelte";
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { listAlerts, markAlertSeen } from "$lib/api/endpoints"; import { listAlerts, markAlertSeen } from "#lib/api/endpoints.js";
import type { Alert } from "$lib/api/types"; import type { Alert } from "#lib/api/types.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import Spinner from "../ui/Spinner.svelte"; import Spinner from "../ui/Spinner.svelte";
import AlertList from "./AlertList.svelte"; import AlertList from "./AlertList.svelte";
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { Annotation } from "$lib/api/types"; import type { Annotation } from "#lib/api/types.js";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import Icon from "../ui/Icon.svelte"; import Icon from "../ui/Icon.svelte";
import AnnotationEditor from "./AnnotationEditor.svelte"; import AnnotationEditor from "./AnnotationEditor.svelte";
@@ -1,17 +1,17 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { page } from "$app/state";
import { import {
createAnnotation, createAnnotation,
deleteAnnotation, deleteAnnotation,
listAnnotations, listAnnotations,
updateAnnotation, updateAnnotation,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { Annotation } from "$lib/api/types"; import type { Annotation } from "#lib/api/types.js";
import EmptyState from "$lib/components/ui/EmptyState.svelte"; import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
import { page } from "$app/state";
import AnnotationEditor from "./AnnotationEditor.svelte"; import AnnotationEditor from "./AnnotationEditor.svelte";
import AnnotationList from "./AnnotationList.svelte"; import AnnotationList from "./AnnotationList.svelte";
@@ -3,14 +3,14 @@
addWatchedBot, addWatchedBot,
listWatchedBots, listWatchedBots,
removeWatchedBot, removeWatchedBot,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { WatchedBot } from "$lib/api/types"; import type { WatchedBot } from "#lib/api/types.js";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
let bots = $state<WatchedBot[]>([]); let bots = $state<WatchedBot[]>([]);
let loading = $state(true); let loading = $state(true);
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import { cancelJob, listJobs } from "$lib/api/endpoints"; import { cancelJob, listJobs } from "#lib/api/endpoints.js";
import type { JobStatus, JobView } from "$lib/api/types"; import type { JobStatus, JobView } from "#lib/api/types.js";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
version?: number; version?: number;
@@ -1,17 +1,17 @@
<script lang="ts"> <script lang="ts">
import { onMount } from "svelte"; import { onMount } from "svelte";
import { page } from "$app/state";
import { import {
enqueueBackfill, enqueueBackfill,
syncContacts, syncContacts,
syncDialogs, syncDialogs,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import JobList from "$lib/components/jobs/JobList.svelte"; import JobList from "#lib/components/jobs/JobList.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { createChatPicker } from "$lib/stores/chat-picker.svelte"; import { createChatPicker } from "#lib/stores/chat-picker.svelte.js";
import { chats } from "$lib/stores/chats.svelte"; import { chats } from "#lib/stores/chats.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { page } from "$app/state";
let version = $state(0); let version = $state(0);
let selected = $state<number | null>( let selected = $state<number | null>(
@@ -1,12 +1,16 @@
<script lang="ts"> <script lang="ts">
import { visible } from "$lib/actions/visible"; import { visible } from "#lib/actions/visible.js";
import { fetchMedia } from "$lib/api/endpoints"; import { fetchMedia } from "#lib/api/endpoints.js";
import { type InlineMedia, loadMediaItem, visualKind } from "$lib/api/media"; import {
import type { MediaRef } from "$lib/api/types"; type InlineMedia,
import Icon from "$lib/components/ui/Icon.svelte"; loadMediaItem,
import Spinner from "$lib/components/ui/Spinner.svelte"; visualKind,
import { poster } from "$lib/media/poster"; } from "#lib/api/media.js";
import { toasts } from "$lib/stores/toasts.svelte"; import type { MediaRef } from "#lib/api/types.js";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { poster } from "#lib/media/poster.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { formatDuration } from "$lib/format/duration"; import { formatDuration } from "#lib/format/duration.js";
import { claimPlayback, releasePlayback } from "$lib/media/playback"; import { claimPlayback, releasePlayback } from "#lib/media/playback.js";
interface Props { interface Props {
own: boolean; own: boolean;
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import { downloadMedia } from "$lib/api/download"; import { downloadMedia } from "#lib/api/download.js";
import type { MediaRef } from "$lib/api/types"; import type { MediaRef } from "#lib/api/types.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { formatBytes, mediaKindLabel } from "$lib/format/media"; import { formatBytes, mediaKindLabel } from "#lib/format/media.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
media: MediaRef; media: MediaRef;
@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { formatDuration } from "$lib/format/duration"; import { formatDuration } from "#lib/format/duration.js";
import { claimPlayback, releasePlayback } from "$lib/media/playback"; import { claimPlayback, releasePlayback } from "#lib/media/playback.js";
import { POSTER_TIME, poster } from "$lib/media/poster"; import { POSTER_TIME, poster } from "#lib/media/poster.js";
interface Props { interface Props {
transcript?: string | null; transcript?: string | null;
@@ -1,11 +1,11 @@
<script lang="ts"> <script lang="ts">
import { requestTranscription } from "$lib/api/media"; import { requestTranscription } from "#lib/api/media.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatDuration } from "$lib/format/duration"; import { formatDuration } from "#lib/format/duration.js";
import { claimPlayback, releasePlayback } from "$lib/media/playback"; import { claimPlayback, releasePlayback } from "#lib/media/playback.js";
import { computeWaveform, flatWaveform } from "$lib/media/waveform"; import { computeWaveform, flatWaveform } from "#lib/media/waveform.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { CaptureToggles } from "$lib/api/types"; import type { CaptureToggles } from "#lib/api/types.js";
interface Props { interface Props {
disabled?: boolean; disabled?: boolean;
@@ -5,20 +5,20 @@
listFolders, listFolders,
listPolicies, listPolicies,
updatePolicy, updatePolicy,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { import type {
CaptureToggles, CaptureToggles,
Folder, Folder,
PolicyRecord, PolicyRecord,
PolicyScopeType, PolicyScopeType,
} from "$lib/api/types"; } from "#lib/api/types.js";
import CaptureToggleList from "$lib/components/policy/CaptureToggleList.svelte"; import CaptureToggleList from "#lib/components/policy/CaptureToggleList.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { createChatPicker } from "$lib/stores/chat-picker.svelte"; import { createChatPicker } from "#lib/stores/chat-picker.svelte.js";
import { chats } from "$lib/stores/chats.svelte"; import { chats } from "#lib/stores/chats.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
let policies = $state<PolicyRecord[]>([]); let policies = $state<PolicyRecord[]>([]);
let folders = $state<Folder[]>([]); let folders = $state<Folder[]>([]);
@@ -1,25 +1,25 @@
<script lang="ts"> <script lang="ts">
import { page } from "$app/state";
import { import {
getCurrentPresence, getCurrentPresence,
getMessageVolume, getMessageVolume,
getPresenceHistory, getPresenceHistory,
getPresenceHourly, getPresenceHourly,
getResponseStats, getResponseStats,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { import type {
PresenceHourly, PresenceHourly,
PresenceSample, PresenceSample,
ResponseStats, ResponseStats,
VolumeBucket, VolumeBucket,
} from "$lib/api/types"; } from "#lib/api/types.js";
import PresenceHeatmap from "$lib/components/presence/PresenceHeatmap.svelte"; import PresenceHeatmap from "#lib/components/presence/PresenceHeatmap.svelte";
import VolumeChart from "$lib/components/presence/VolumeChart.svelte"; import VolumeChart from "#lib/components/presence/VolumeChart.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte"; import EmptyState from "#lib/components/ui/EmptyState.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { formatPresence } from "$lib/format/presence"; import { formatPresence } from "#lib/format/presence.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { events } from "$lib/stores/events.svelte"; import { events } from "#lib/stores/events.svelte.js";
import { page } from "$app/state";
const HISTORY_LIMIT = 200; const HISTORY_LIMIT = 200;
const SECONDS_IN_MINUTE = 60; const SECONDS_IN_MINUTE = 60;
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { PresenceHourly } from "$lib/api/types"; import type { PresenceHourly } from "#lib/api/types.js";
interface Props { interface Props {
hourly: PresenceHourly[]; hourly: PresenceHourly[];
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import type { VolumeBucket } from "$lib/api/types"; import type { VolumeBucket } from "#lib/api/types.js";
interface Props { interface Props {
volume: VolumeBucket[]; volume: VolumeBucket[];
@@ -1,10 +1,10 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { type AvatarKind, loadAvatarVariant } from "$lib/api/avatars"; import { type AvatarKind, loadAvatarVariant } from "#lib/api/avatars.js";
import { getAvatarHistory } from "$lib/api/endpoints"; import { getAvatarHistory } from "#lib/api/endpoints.js";
import type { AvatarHistoryView } from "$lib/api/types"; import type { AvatarHistoryView } from "#lib/api/types.js";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
interface Props { interface Props {
id: number; id: number;
@@ -1,11 +1,11 @@
<script lang="ts"> <script lang="ts">
import { getChatCalendar, getMessageAt } from "#lib/api/endpoints.js";
import type { DayCount } from "#lib/api/types.js";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { getChatCalendar, getMessageAt } from "$lib/api/endpoints";
import type { DayCount } from "$lib/api/types";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { accounts } from "$lib/stores/accounts.svelte";
import { ui } from "$lib/stores/ui.svelte";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,12 +1,12 @@
<script lang="ts"> <script lang="ts">
import type { AvatarKind } from "$lib/api/avatars"; import type { AvatarKind } from "#lib/api/avatars.js";
import { getPeerHistory, getStories } from "$lib/api/endpoints"; import { getPeerHistory, getStories } from "#lib/api/endpoints.js";
import type { PeerHistoryView, PeerView } from "$lib/api/types"; import type { PeerHistoryView, PeerView } from "#lib/api/types.js";
import AvatarHistory from "$lib/components/profile/AvatarHistory.svelte"; import AvatarHistory from "#lib/components/profile/AvatarHistory.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
interface Props { interface Props {
avatarKind: AvatarKind; avatarKind: AvatarKind;
@@ -1,17 +1,17 @@
<script lang="ts"> <script lang="ts">
import { getPeer } from "#lib/api/endpoints.js";
import type { PeerView } from "#lib/api/types.js";
import ChatCalendar from "#lib/components/profile/ChatCalendar.svelte";
import ProfileInfo from "#lib/components/profile/ProfileInfo.svelte";
import SharedLinks from "#lib/components/profile/SharedLinks.svelte";
import SharedMedia from "#lib/components/profile/SharedMedia.svelte";
import StoriesArchive from "#lib/components/stories/StoriesArchive.svelte";
import Avatar from "#lib/components/ui/Avatar.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import { peerName } from "#lib/format/peer.js";
import { chats } from "#lib/stores/chats.svelte.js";
import { page } from "$app/state"; import { page } from "$app/state";
import { getPeer } from "$lib/api/endpoints";
import type { PeerView } from "$lib/api/types";
import ChatCalendar from "$lib/components/profile/ChatCalendar.svelte";
import ProfileInfo from "$lib/components/profile/ProfileInfo.svelte";
import SharedLinks from "$lib/components/profile/SharedLinks.svelte";
import SharedMedia from "$lib/components/profile/SharedMedia.svelte";
import StoriesArchive from "$lib/components/stories/StoriesArchive.svelte";
import Avatar from "$lib/components/ui/Avatar.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import { peerName } from "$lib/format/peer";
import { chats } from "$lib/stores/chats.svelte";
type Tab = "info" | "media" | "files" | "links" | "stories" | "calendar"; type Tab = "info" | "media" | "files" | "links" | "stories" | "calendar";
@@ -1,15 +1,15 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { getChatLinks } from "#lib/api/endpoints.js";
import type { ChatLinkView } from "#lib/api/types.js";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatListDate } from "#lib/format/datetime.js";
import { safeHref } from "#lib/format/url.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { getChatLinks } from "$lib/api/endpoints";
import type { ChatLinkView } from "$lib/api/types";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { formatListDate } from "$lib/format/datetime";
import { safeHref } from "$lib/format/url";
import { accounts } from "$lib/stores/accounts.svelte";
import { ui } from "$lib/stores/ui.svelte";
const WWW_PREFIX = /^www\./; const WWW_PREFIX = /^www\./;
@@ -1,29 +1,29 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { goto } from "$app/navigation"; import { downloadMedia } from "#lib/api/download.js";
import { downloadMedia } from "$lib/api/download"; import { getChatMedia } from "#lib/api/endpoints.js";
import { getChatMedia } from "$lib/api/endpoints";
import { import {
type InlineMedia, type InlineMedia,
loadMediaItem, loadMediaItem,
type ViewerItem, type ViewerItem,
visualKind, visualKind,
} from "$lib/api/media"; } from "#lib/api/media.js";
import type { MediaView } from "$lib/api/types"; import type { MediaView } from "#lib/api/types.js";
import MediaViewer from "$lib/components/MediaViewer.svelte"; import MediaViewer from "#lib/components/MediaViewer.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte"; import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatListDate } from "$lib/format/datetime"; import { formatListDate } from "#lib/format/datetime.js";
import { formatBytes, mediaKindLabel } from "$lib/format/media"; import { formatBytes, mediaKindLabel } from "#lib/format/media.js";
import { poster } from "$lib/media/poster"; import { poster } from "#lib/media/poster.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
import { isMobile } from "$lib/viewport"; import { isMobile } from "#lib/viewport.js";
import { goto } from "$app/navigation";
interface Props { interface Props {
chatId: number; chatId: number;
@@ -1,13 +1,13 @@
<script lang="ts"> <script lang="ts">
import { searchMessages } from "#lib/api/endpoints.js";
import type { SearchHit } from "#lib/api/types.js";
import SearchMessageItem from "#lib/components/search/SearchMessageItem.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { page } from "$app/state"; import { page } from "$app/state";
import { searchMessages } from "$lib/api/endpoints";
import type { SearchHit } from "$lib/api/types";
import SearchMessageItem from "$lib/components/search/SearchMessageItem.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { ui } from "$lib/stores/ui.svelte";
const DEBOUNCE_MS = 250; const DEBOUNCE_MS = 250;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
import type { DiscoverItem } from "$lib/api/types"; import type { DiscoverItem } from "#lib/api/types.js";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
interface Props { interface Props {
item: DiscoverItem; item: DiscoverItem;
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { search } from "$lib/stores/search.svelte"; import { search } from "#lib/stores/search.svelte.js";
let input = $state<HTMLInputElement | null>(null); let input = $state<HTMLInputElement | null>(null);
@@ -1,12 +1,12 @@
<script lang="ts"> <script lang="ts">
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
import type { SearchHit } from "$lib/api/types"; import type { SearchHit } from "#lib/api/types.js";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
import { formatListDate } from "$lib/format/datetime"; import { formatListDate } from "#lib/format/datetime.js";
import { peerName } from "$lib/format/peer"; import { peerName } from "#lib/format/peer.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { chats } from "$lib/stores/chats.svelte"; import { chats } from "#lib/stores/chats.svelte.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
interface Props { interface Props {
hit: SearchHit; hit: SearchHit;
@@ -1,13 +1,13 @@
<script lang="ts"> <script lang="ts">
import ChatListItem from "#lib/components/ChatListItem.svelte";
import DiscoverResultItem from "#lib/components/search/DiscoverResultItem.svelte";
import SearchMessageItem from "#lib/components/search/SearchMessageItem.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { search } from "#lib/stores/search.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { page } from "$app/state"; import { page } from "$app/state";
import ChatListItem from "$lib/components/ChatListItem.svelte";
import DiscoverResultItem from "$lib/components/search/DiscoverResultItem.svelte";
import SearchMessageItem from "$lib/components/search/SearchMessageItem.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { search } from "$lib/stores/search.svelte";
import { ui } from "$lib/stores/ui.svelte";
const activeChatId = $derived( const activeChatId = $derived(
page.params.chatId ? Number(page.params.chatId) : null page.params.chatId ? Number(page.params.chatId) : null
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { untrack } from "svelte"; import { untrack } from "svelte";
import { ApiError } from "$lib/api/client"; import { ApiError } from "#lib/api/client.js";
import { import {
cancelLogin, cancelLogin,
pollQrLogin, pollQrLogin,
@@ -9,13 +9,13 @@
startQrLogin, startQrLogin,
submitLoginCode, submitLoginCode,
submitLoginPassword, submitLoginPassword,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { LoginState } from "$lib/api/types"; import type { LoginState } from "#lib/api/types.js";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import QrCode from "$lib/components/ui/QrCode.svelte"; import QrCode from "#lib/components/ui/QrCode.svelte";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
type Step = "qr" | "phone" | "code" | "password"; type Step = "qr" | "phone" | "code" | "password";
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
import { theme } from "$lib/stores/theme.svelte"; import { theme } from "#lib/stores/theme.svelte.js";
const options = [ const options = [
{ label: "Светлая", value: "light" }, { label: "Светлая", value: "light" },
@@ -1,15 +1,15 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
import { ApiError } from "$lib/api/client"; import { ApiError } from "#lib/api/client.js";
import AddAccountDialog from "$lib/components/settings/AddAccountDialog.svelte"; import AddAccountDialog from "#lib/components/settings/AddAccountDialog.svelte";
import SettingsItem from "$lib/components/settings/SettingsItem.svelte"; import SettingsItem from "#lib/components/settings/SettingsItem.svelte";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { accountName } from "$lib/format/peer"; import { accountName } from "#lib/format/peer.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
const current = $derived(accounts.selected); const current = $derived(accounts.selected);
const others = $derived( const others = $derived(
@@ -1,11 +1,11 @@
<script lang="ts"> <script lang="ts">
import About from "$lib/components/settings/About.svelte"; import About from "#lib/components/settings/About.svelte";
import Appearance from "$lib/components/settings/Appearance.svelte"; import Appearance from "#lib/components/settings/Appearance.svelte";
import MyAccount from "$lib/components/settings/MyAccount.svelte"; import MyAccount from "#lib/components/settings/MyAccount.svelte";
import SettingsItem from "$lib/components/settings/SettingsItem.svelte"; import SettingsItem from "#lib/components/settings/SettingsItem.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
const features = [ const features = [
{ icon: "search", label: "Поиск" }, { icon: "search", label: "Поиск" },
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
interface Props { interface Props {
icon: string; icon: string;
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { untrack } from "svelte"; import { untrack } from "svelte";
import { ApiError } from "$lib/api/client"; import { ApiError } from "#lib/api/client.js";
import { import {
createShare, createShare,
lookupShare, lookupShare,
@@ -9,15 +9,15 @@
type ShareSettings, type ShareSettings,
shareUrl, shareUrl,
updateShare, updateShare,
} from "$lib/api/shares"; } from "#lib/api/shares.js";
import type { FileShare, ShareSubject } from "$lib/api/types"; import type { FileShare, ShareSubject } from "#lib/api/types.js";
import ShareLinkField from "$lib/components/shares/ShareLinkField.svelte"; import ShareLinkField from "#lib/components/shares/ShareLinkField.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import QrCode from "$lib/components/ui/QrCode.svelte"; import QrCode from "#lib/components/ui/QrCode.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatShareLimits } from "$lib/format/shares"; import { formatShareLimits } from "#lib/format/shares.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
label?: string; label?: string;
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
url: string; url: string;
@@ -1,5 +1,4 @@
<script lang="ts"> <script lang="ts">
import { goto } from "$app/navigation";
import { import {
deleteShare, deleteShare,
listShares, listShares,
@@ -7,21 +6,22 @@
revokeShare, revokeShare,
shareState, shareState,
shareUrl, shareUrl,
} from "$lib/api/shares"; } from "#lib/api/shares.js";
import type { FileShare } from "$lib/api/types"; import type { FileShare } from "#lib/api/types.js";
import ShareLinkField from "$lib/components/shares/ShareLinkField.svelte"; import ShareLinkField from "#lib/components/shares/ShareLinkField.svelte";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte"; import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { formatBytes } from "$lib/format/media"; import { formatBytes } from "#lib/format/media.js";
import { formatDownloads, formatExpiry, plural } from "$lib/format/shares"; import { formatDownloads, formatExpiry, plural } from "#lib/format/shares.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "$lib/stores/ui.svelte"; import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation";
type Filter = "active" | "all"; type Filter = "active" | "all";
@@ -1,13 +1,13 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { getMessageCallbacks } from "#lib/api/endpoints.js";
import type { CallbackView } from "#lib/api/types.js";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { page } from "$app/state"; import { page } from "$app/state";
import { getMessageCallbacks } from "$lib/api/endpoints";
import type { CallbackView } from "$lib/api/types";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { accounts } from "$lib/stores/accounts.svelte";
import { ui } from "$lib/stores/ui.svelte";
const HEX_PAIR = /.{1,2}/g; const HEX_PAIR = /.{1,2}/g;
const MIN_PRINTABLE = 32; const MIN_PRINTABLE = 32;
@@ -1,14 +1,14 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { getMessageLinks } from "#lib/api/endpoints.js";
import type { LinkView } from "#lib/api/types.js";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { safeHref } from "#lib/format/url.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { page } from "$app/state"; import { page } from "$app/state";
import { getMessageLinks } from "$lib/api/endpoints";
import type { LinkView } from "$lib/api/types";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { safeHref } from "$lib/format/url";
import { accounts } from "$lib/stores/accounts.svelte";
import { ui } from "$lib/stores/ui.svelte";
const WWW_PREFIX = /^www\./; const WWW_PREFIX = /^www\./;
@@ -1,17 +1,17 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { getMessageReactions } from "#lib/api/endpoints.js";
import type { ReactionView } from "#lib/api/types.js";
import CustomEmoji from "#lib/components/CustomEmoji.svelte";
import Avatar from "#lib/components/ui/Avatar.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatFull } from "#lib/format/datetime.js";
import { peerColorIndex, peerName } from "#lib/format/peer.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { peers } from "#lib/stores/peers.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { page } from "$app/state"; import { page } from "$app/state";
import { getMessageReactions } from "$lib/api/endpoints";
import type { ReactionView } from "$lib/api/types";
import CustomEmoji from "$lib/components/CustomEmoji.svelte";
import Avatar from "$lib/components/ui/Avatar.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { formatFull } from "$lib/format/datetime";
import { peerColorIndex, peerName } from "$lib/format/peer";
import { accounts } from "$lib/stores/accounts.svelte";
import { peers } from "$lib/stores/peers.svelte";
import { ui } from "$lib/stores/ui.svelte";
const CUSTOM_PREFIX = "custom:"; const CUSTOM_PREFIX = "custom:";
@@ -5,20 +5,20 @@
getChatsBatch, getChatsBatch,
getPeers, getPeers,
getStories, getStories,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import { loadStoryMedia } from "$lib/api/stories"; import { loadStoryMedia } from "#lib/api/stories.js";
import type { StoryView } from "$lib/api/types"; import type { StoryView } from "#lib/api/types.js";
import StoryTile from "$lib/components/stories/StoryTile.svelte"; import StoryTile from "#lib/components/stories/StoryTile.svelte";
import StoryViewer from "$lib/components/stories/StoryViewer.svelte"; import StoryViewer from "#lib/components/stories/StoryViewer.svelte";
import Avatar from "$lib/components/ui/Avatar.svelte"; import Avatar from "#lib/components/ui/Avatar.svelte";
import Button from "$lib/components/ui/Button.svelte"; import Button from "#lib/components/ui/Button.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte"; import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { peerName } from "$lib/format/peer"; import { peerName } from "#lib/format/peer.js";
import { poster } from "$lib/media/poster"; import { poster } from "#lib/media/poster.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Group { interface Group {
hasAvatar: boolean; hasAvatar: boolean;
@@ -1,18 +1,18 @@
<script lang="ts"> <script lang="ts">
import { untrack } from "svelte"; import { untrack } from "svelte";
import { enqueueStoriesBackfill, getStories } from "#lib/api/endpoints.js";
import { loadStoryMedia } from "#lib/api/stories.js";
import type { StoryView } from "#lib/api/types.js";
import StoryTile from "#lib/components/stories/StoryTile.svelte";
import StoryViewer from "#lib/components/stories/StoryViewer.svelte";
import Button from "#lib/components/ui/Button.svelte";
import EmptyState from "#lib/components/ui/EmptyState.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "#lib/components/ui/Spinner.svelte";
import { poster } from "#lib/media/poster.js";
import { accounts } from "#lib/stores/accounts.svelte.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
import { page } from "$app/state"; import { page } from "$app/state";
import { enqueueStoriesBackfill, getStories } from "$lib/api/endpoints";
import { loadStoryMedia } from "$lib/api/stories";
import type { StoryView } from "$lib/api/types";
import StoryTile from "$lib/components/stories/StoryTile.svelte";
import StoryViewer from "$lib/components/stories/StoryViewer.svelte";
import Button from "$lib/components/ui/Button.svelte";
import EmptyState from "$lib/components/ui/EmptyState.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte";
import { poster } from "$lib/media/poster";
import { accounts } from "$lib/stores/accounts.svelte";
import { toasts } from "$lib/stores/toasts.svelte";
interface Props { interface Props {
chatId?: number | null; chatId?: number | null;
@@ -1,15 +1,15 @@
<script lang="ts"> <script lang="ts">
import { downloadStory } from "#lib/api/download.js";
import type { StoryView } from "#lib/api/types.js";
import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "#lib/components/ui/Icon.svelte";
import { formatFull } from "#lib/format/datetime.js";
import { poster } from "#lib/media/poster.js";
import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "#lib/stores/toasts.svelte.js";
import { ui } from "#lib/stores/ui.svelte.js";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { downloadStory } from "$lib/api/download";
import type { StoryView } from "$lib/api/types";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte";
import { formatFull } from "$lib/format/datetime";
import { poster } from "$lib/media/poster";
import { shareUi } from "$lib/stores/shares.svelte";
import { toasts } from "$lib/stores/toasts.svelte";
import { ui } from "$lib/stores/ui.svelte";
interface Props { interface Props {
onopen: () => void; onopen: () => void;
@@ -1,16 +1,16 @@
<script lang="ts"> <script lang="ts">
import { Dialog } from "bits-ui"; import { Dialog } from "bits-ui";
import { untrack } from "svelte"; import { untrack } from "svelte";
import { downloadStory } from "$lib/api/download"; import { downloadStory } from "#lib/api/download.js";
import { loadStoryMedia } from "$lib/api/stories"; import { loadStoryMedia } from "#lib/api/stories.js";
import type { StoryView } from "$lib/api/types"; import type { StoryView } from "#lib/api/types.js";
import ContextMenu from "$lib/components/ui/ContextMenu.svelte"; import ContextMenu from "#lib/components/ui/ContextMenu.svelte";
import ContextMenuItem from "$lib/components/ui/ContextMenuItem.svelte"; import ContextMenuItem from "#lib/components/ui/ContextMenuItem.svelte";
import Icon from "$lib/components/ui/Icon.svelte"; import Icon from "#lib/components/ui/Icon.svelte";
import Spinner from "$lib/components/ui/Spinner.svelte"; import Spinner from "#lib/components/ui/Spinner.svelte";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
import { shareUi } from "$lib/stores/shares.svelte"; import { shareUi } from "#lib/stores/shares.svelte.js";
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
interface Props { interface Props {
index: number; index: number;
+2 -2
View File
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import { type AvatarKind, loadAvatar } from "$lib/api/avatars"; import { type AvatarKind, loadAvatar } from "#lib/api/avatars.js";
import { initials as toInitials } from "$lib/format/peer"; import { initials as toInitials } from "#lib/format/peer.js";
interface Props { interface Props {
avatar?: { kind: AvatarKind; id: number } | null; avatar?: { kind: AvatarKind; id: number } | null;
+1 -1
View File
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type { Snippet } from "svelte"; import type { Snippet } from "svelte";
import type { HTMLButtonAttributes } from "svelte/elements"; import type { HTMLButtonAttributes } from "svelte/elements";
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
type Variant = type Variant =
| "primary" | "primary"
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import type { Snippet } from "svelte"; import type { Snippet } from "svelte";
import { ripple } from "$lib/actions/ripple"; import { ripple } from "#lib/actions/ripple.js";
interface Props { interface Props {
children: Snippet; children: Snippet;
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import { toasts } from "$lib/stores/toasts.svelte"; import { toasts } from "#lib/stores/toasts.svelte.js";
</script> </script>
<div class="Notification-container"> <div class="Notification-container">
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import type { Watch } from "$lib/api/types"; import type { Watch } from "#lib/api/types.js";
import { peerName } from "$lib/format/peer"; import { peerName } from "#lib/format/peer.js";
import { peers } from "$lib/stores/peers.svelte"; import { peers } from "#lib/stores/peers.svelte.js";
import Button from "../ui/Button.svelte"; import Button from "../ui/Button.svelte";
import Icon from "../ui/Icon.svelte"; import Icon from "../ui/Icon.svelte";
@@ -4,9 +4,9 @@
deleteWatch, deleteWatch,
listWatches, listWatches,
updateWatch, updateWatch,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { Watch } from "$lib/api/types"; import type { Watch } from "#lib/api/types.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import Spinner from "../ui/Spinner.svelte"; import Spinner from "../ui/Spinner.svelte";
import WatchEditor from "./WatchEditor.svelte"; import WatchEditor from "./WatchEditor.svelte";
import WatchList from "./WatchList.svelte"; import WatchList from "./WatchList.svelte";
+2 -2
View File
@@ -1,5 +1,5 @@
import type { EntityView } from "$lib/api/types"; import type { EntityView } from "#lib/api/types.js";
import { safeHref } from "$lib/format/url"; import { safeHref } from "#lib/format/url.js";
export interface TextNode { export interface TextNode {
kind: "text"; kind: "text";
+1 -1
View File
@@ -1,4 +1,4 @@
import type { Chat, Folder } from "$lib/api/types"; import type { Chat, Folder } from "#lib/api/types.js";
function categoryMatch(folder: Folder, chat: Chat): boolean { function categoryMatch(folder: Folder, chat: Chat): boolean {
if (chat.is_broadcast) { if (chat.is_broadcast) {
+1 -1
View File
@@ -1,4 +1,4 @@
import type { Account, PeerView } from "$lib/api/types"; import type { Account, PeerView } from "#lib/api/types.js";
const PEER_COLOR_COUNT = 7; const PEER_COLOR_COUNT = 7;
+2 -2
View File
@@ -1,5 +1,5 @@
import type { PresenceSample } from "$lib/api/types"; import type { PresenceSample } from "#lib/api/types.js";
import { formatListDate } from "$lib/format/datetime"; import { formatListDate } from "#lib/format/datetime.js";
export function isOnline(sample: PresenceSample | null): boolean { export function isOnline(sample: PresenceSample | null): boolean {
if (sample === null || sample.status !== "online") { if (sample === null || sample.status !== "online") {
+2 -2
View File
@@ -1,5 +1,5 @@
import type { FileShare } from "$lib/api/types"; import type { FileShare } from "#lib/api/types.js";
import { formatFull } from "$lib/format/datetime"; import { formatFull } from "#lib/format/datetime.js";
const TEEN_START = 11; const TEEN_START = 11;
const TEEN_END = 14; const TEEN_END = 14;
+1 -1
View File
@@ -1,2 +1,2 @@
// place files you want to import through the `$lib` alias in this folder. // place files you want to import through the `#lib` alias in this folder.
// biome-ignore-all lint/suspicious/noEmptySource: temporary // biome-ignore-all lint/suspicious/noEmptySource: temporary
+3 -3
View File
@@ -1,10 +1,10 @@
import { browser } from "$app/environment";
import { import {
listAccounts, listAccounts,
logoutAccount, logoutAccount,
renameAccountDevice, renameAccountDevice,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { Account } from "$lib/api/types"; import type { Account } from "#lib/api/types.js";
import { browser } from "$app/env";
const STORAGE_KEY = "bg.account"; const STORAGE_KEY = "bg.account";
+1 -1
View File
@@ -1,4 +1,4 @@
import { browser } from "$app/environment"; import { browser } from "$app/env";
const STORAGE_KEY = "bg.token"; const STORAGE_KEY = "bg.token";
@@ -1,5 +1,5 @@
import { listChats } from "$lib/api/endpoints"; import { listChats } from "#lib/api/endpoints.js";
import type { Chat } from "$lib/api/types"; import type { Chat } from "#lib/api/types.js";
const DEBOUNCE_MS = 250; const DEBOUNCE_MS = 250;
const LIMIT = 40; const LIMIT = 40;
+6 -6
View File
@@ -4,12 +4,12 @@ import {
getChatsBatch, getChatsBatch,
getJob, getJob,
listChats, listChats,
} from "$lib/api/endpoints"; } from "#lib/api/endpoints.js";
import type { Chat, LiveEvent } from "$lib/api/types"; import type { Chat, LiveEvent } from "#lib/api/types.js";
import { folderContains } from "$lib/format/folders"; import { folderContains } from "#lib/format/folders.js";
import { accounts } from "$lib/stores/accounts.svelte"; import { accounts } from "#lib/stores/accounts.svelte.js";
import { events } from "$lib/stores/events.svelte"; import { events } from "#lib/stores/events.svelte.js";
import { folders } from "$lib/stores/folders.svelte"; import { folders } from "#lib/stores/folders.svelte.js";
const POLL_INTERVAL = 1500; const POLL_INTERVAL = 1500;
const POLL_MAX = 12; const POLL_MAX = 12;
Loaded 100 of 116 files, more files were not shown because too many files have changed in this diff. Show more