From dc7ecc0cdb46f65910a83218ed6ba23e42c81ecd Mon Sep 17 00:00:00 2001 From: Luke Else Date: Sat, 28 Jun 2025 18:02:02 +0100 Subject: [PATCH 1/4] #4 Added set of unit tests to ensure functionality of currently implemented behaviour --- package.json | 32 +- pnpm-lock.yaml | 507 ++++++++++++++--------------- src/lib/api/weatherservice.test.ts | 29 ++ src/lib/components/Loading.svelte | 9 + src/routes/page.svelte.test.ts | 12 + 5 files changed, 317 insertions(+), 272 deletions(-) create mode 100644 src/lib/api/weatherservice.test.ts create mode 100644 src/routes/page.svelte.test.ts diff --git a/package.json b/package.json index 0d1cd69..b8cb238 100644 --- a/package.json +++ b/package.json @@ -14,26 +14,26 @@ "format": "prettier --write .", "lint": "prettier --check .", "test:unit": "vitest", - "test": "npm run test:unit -- --run" + "test": "pnpm run test:unit -- --run" }, "devDependencies": { "@sveltejs/adapter-node": "^5.2.12", - "@sveltejs/kit": "^2.16.0", - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "@tailwindcss/forms": "^0.5.9", - "@tailwindcss/vite": "^4.0.0", + "@sveltejs/kit": "^2.22.2", + "@sveltejs/vite-plugin-svelte": "^5.1.0", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/vite": "^4.1.11", "@testing-library/jest-dom": "^6.6.3", - "@testing-library/svelte": "^5.2.4", - "jsdom": "^26.0.0", - "prettier": "^3.4.2", - "prettier-plugin-svelte": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.11", - "svelte": "^5.0.0", - "svelte-check": "^4.0.0", - "tailwindcss": "^4.0.0", - "typescript": "^5.0.0", - "vite": "^6.2.6", - "vitest": "^3.2.3" + "@testing-library/svelte": "^5.2.8", + "jsdom": "^26.1.0", + "prettier": "^3.6.2", + "prettier-plugin-svelte": "^3.4.0", + "prettier-plugin-tailwindcss": "^0.6.13", + "svelte": "^5.34.9", + "svelte-check": "^4.2.2", + "tailwindcss": "^4.1.11", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vitest": "^3.2.4" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 094dad8..e101128 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,54 +14,54 @@ importers: devDependencies: '@sveltejs/adapter-node': specifier: ^5.2.12 - version: 5.2.12(@sveltejs/kit@2.21.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))) + version: 5.2.12(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))) '@sveltejs/kit': - specifier: ^2.16.0 - version: 2.21.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + specifier: ^2.22.2 + version: 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) '@sveltejs/vite-plugin-svelte': - specifier: ^5.0.0 - version: 5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + specifier: ^5.1.0 + version: 5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) '@tailwindcss/forms': - specifier: ^0.5.9 - version: 0.5.10(tailwindcss@4.1.10) + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@4.1.11) '@tailwindcss/vite': - specifier: ^4.0.0 - version: 4.1.10(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + specifier: ^4.1.11 + version: 4.1.11(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 '@testing-library/svelte': - specifier: ^5.2.4 - version: 5.2.8(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))(vitest@3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)) + specifier: ^5.2.8 + version: 5.2.8(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))(vitest@3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)) jsdom: - specifier: ^26.0.0 + specifier: ^26.1.0 version: 26.1.0 prettier: - specifier: ^3.4.2 - version: 3.5.3 + specifier: ^3.6.2 + version: 3.6.2 prettier-plugin-svelte: - specifier: ^3.3.3 - version: 3.4.0(prettier@3.5.3)(svelte@5.34.6) + specifier: ^3.4.0 + version: 3.4.0(prettier@3.6.2)(svelte@5.34.9) prettier-plugin-tailwindcss: - specifier: ^0.6.11 - version: 0.6.12(prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.34.6))(prettier@3.5.3) + specifier: ^0.6.13 + version: 0.6.13(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.34.9))(prettier@3.6.2) svelte: - specifier: ^5.0.0 - version: 5.34.6 + specifier: ^5.34.9 + version: 5.34.9 svelte-check: - specifier: ^4.0.0 - version: 4.2.1(picomatch@4.0.2)(svelte@5.34.6)(typescript@5.8.3) + specifier: ^4.2.2 + version: 4.2.2(picomatch@4.0.2)(svelte@5.34.9)(typescript@5.8.3) tailwindcss: - specifier: ^4.0.0 - version: 4.1.10 + specifier: ^4.1.11 + version: 4.1.11 typescript: - specifier: ^5.0.0 + specifier: ^5.8.3 version: 5.8.3 vite: - specifier: ^6.2.6 + specifier: ^6.3.5 version: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) vitest: - specifier: ^3.2.3 + specifier: ^3.2.4 version: 3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1) packages: @@ -327,103 +327,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.43.0': - resolution: {integrity: sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==} + '@rollup/rollup-android-arm-eabi@4.44.1': + resolution: {integrity: sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.43.0': - resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==} + '@rollup/rollup-android-arm64@4.44.1': + resolution: {integrity: sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.43.0': - resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==} + '@rollup/rollup-darwin-arm64@4.44.1': + resolution: {integrity: sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.43.0': - resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==} + '@rollup/rollup-darwin-x64@4.44.1': + resolution: {integrity: sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.43.0': - resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==} + '@rollup/rollup-freebsd-arm64@4.44.1': + resolution: {integrity: sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.43.0': - resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==} + '@rollup/rollup-freebsd-x64@4.44.1': + resolution: {integrity: sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': - resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} + '@rollup/rollup-linux-arm-gnueabihf@4.44.1': + resolution: {integrity: sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.43.0': - resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} + '@rollup/rollup-linux-arm-musleabihf@4.44.1': + resolution: {integrity: sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.43.0': - resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} + '@rollup/rollup-linux-arm64-gnu@4.44.1': + resolution: {integrity: sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.43.0': - resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} + '@rollup/rollup-linux-arm64-musl@4.44.1': + resolution: {integrity: sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': - resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} + '@rollup/rollup-linux-loongarch64-gnu@4.44.1': + resolution: {integrity: sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': - resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': + resolution: {integrity: sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.43.0': - resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} + '@rollup/rollup-linux-riscv64-gnu@4.44.1': + resolution: {integrity: sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.43.0': - resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} + '@rollup/rollup-linux-riscv64-musl@4.44.1': + resolution: {integrity: sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.43.0': - resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} + '@rollup/rollup-linux-s390x-gnu@4.44.1': + resolution: {integrity: sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.43.0': - resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} + '@rollup/rollup-linux-x64-gnu@4.44.1': + resolution: {integrity: sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.43.0': - resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} + '@rollup/rollup-linux-x64-musl@4.44.1': + resolution: {integrity: sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.43.0': - resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} + '@rollup/rollup-win32-arm64-msvc@4.44.1': + resolution: {integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.43.0': - resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==} + '@rollup/rollup-win32-ia32-msvc@4.44.1': + resolution: {integrity: sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.43.0': - resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==} + '@rollup/rollup-win32-x64-msvc@4.44.1': + resolution: {integrity: sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==} cpu: [x64] os: [win32] @@ -437,14 +437,14 @@ packages: peerDependencies: '@sveltejs/kit': ^2.4.0 - '@sveltejs/kit@2.21.5': - resolution: {integrity: sha512-P5m7yZtvD1Kx/Z6JcjgJtdMqef/tCGMDrd9B9S2q8j+FMnkeKTMxW1nidnjVzk4HEDRGf4IlBI94/niy6t3hLA==} + '@sveltejs/kit@2.22.2': + resolution: {integrity: sha512-2MvEpSYabUrsJAoq5qCOBGAlkICjfjunrnLcx3YAk2XV7TvAIhomlKsAgR4H/4uns5rAfYmj7Wet5KRtc8dPIg==} engines: {node: '>=18.13'} hasBin: true peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 || ^6.0.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 '@sveltejs/vite-plugin-svelte-inspector@4.0.1': resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} @@ -466,65 +466,65 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - '@tailwindcss/node@4.1.10': - resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==} + '@tailwindcss/node@4.1.11': + resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==} - '@tailwindcss/oxide-android-arm64@4.1.10': - resolution: {integrity: sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==} + '@tailwindcss/oxide-android-arm64@4.1.11': + resolution: {integrity: sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.10': - resolution: {integrity: sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==} + '@tailwindcss/oxide-darwin-arm64@4.1.11': + resolution: {integrity: sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.10': - resolution: {integrity: sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==} + '@tailwindcss/oxide-darwin-x64@4.1.11': + resolution: {integrity: sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.10': - resolution: {integrity: sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==} + '@tailwindcss/oxide-freebsd-x64@4.1.11': + resolution: {integrity: sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': - resolution: {integrity: sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': + resolution: {integrity: sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': - resolution: {integrity: sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': + resolution: {integrity: sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.10': - resolution: {integrity: sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.11': + resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.10': - resolution: {integrity: sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.11': + resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.10': - resolution: {integrity: sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==} + '@tailwindcss/oxide-linux-x64-musl@4.1.11': + resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.10': - resolution: {integrity: sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==} + '@tailwindcss/oxide-wasm32-wasi@4.1.11': + resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -535,26 +535,26 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': - resolution: {integrity: sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': + resolution: {integrity: sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.10': - resolution: {integrity: sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.11': + resolution: {integrity: sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.10': - resolution: {integrity: sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==} + '@tailwindcss/oxide@4.1.11': + resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==} engines: {node: '>= 10'} - '@tailwindcss/vite@4.1.10': - resolution: {integrity: sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A==} + '@tailwindcss/vite@4.1.11': + resolution: {integrity: sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==} peerDependencies: - vite: ^5.2.0 || ^6 + vite: ^5.2.0 || ^6 || ^7 '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} @@ -589,9 +589,6 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -712,8 +709,8 @@ packages: css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssstyle@4.4.0: - resolution: {integrity: sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} data-urls@5.0.0: @@ -757,8 +754,8 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + enhanced-resolve@5.18.2: + resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} entities@6.0.1: @@ -1007,8 +1004,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} picocolors@1.1.1: @@ -1028,8 +1025,8 @@ packages: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - prettier-plugin-tailwindcss@0.6.12: - resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==} + prettier-plugin-tailwindcss@0.6.13: + resolution: {integrity: sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -1083,8 +1080,8 @@ packages: prettier-plugin-svelte: optional: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -1112,8 +1109,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - rollup@4.43.0: - resolution: {integrity: sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==} + rollup@4.44.1: + resolution: {integrity: sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1166,8 +1163,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@4.2.1: - resolution: {integrity: sha512-e49SU1RStvQhoipkQ/aonDhHnG3qxHSBtNfBRb9pxVXoa+N7qybAo32KgA9wEb2PCYFNaDg7bZCdhLD1vHpdYA==} + svelte-check@4.2.2: + resolution: {integrity: sha512-1+31EOYZ7NKN0YDMKusav2hhEoA51GD9Ws6o//0SphMT0ve9mBTsTUEX7OmDMadUP3KjNHsSKtJrqdSaD8CrGQ==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -1177,15 +1174,15 @@ packages: svelte-toasts@1.1.2: resolution: {integrity: sha512-m+yL4eEKXyJoyjTYaH1j1GFwF0Pi8YDqnVfwWPDmwi4712iZesv+TNCmToSNlav3R5Vkmc8ZBRkT8DOcu3sywQ==} - svelte@5.34.6: - resolution: {integrity: sha512-dNhOyaHEHXItGojz2e6aCeoU0FUD+teDcbqJkPI/iMBMKwP9MyHtXYRKIzN4ehlBnLB6Do0pUY0RUSZQ/Zpcog==} + svelte@5.34.9: + resolution: {integrity: sha512-sld35zFpooaSRSj4qw8Vl/cyyK0/sLQq9qhJ7BGZo/Kd0ggYtEnvNYLlzhhoqYsYQzA0hJqkzt3RBO/8KoTZOg==} engines: {node: '>=18'} symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwindcss@4.1.10: - resolution: {integrity: sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==} + tailwindcss@4.1.11: + resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==} tapable@2.2.2: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} @@ -1286,10 +1283,10 @@ packages: yaml: optional: true - vitefu@1.0.6: - resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} + vitefu@1.0.7: + resolution: {integrity: sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 peerDependenciesMeta: vite: optional: true @@ -1347,8 +1344,8 @@ packages: engines: {node: '>=8'} hasBin: true - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1518,9 +1515,9 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@rollup/plugin-commonjs@28.0.6(rollup@4.43.0)': + '@rollup/plugin-commonjs@28.0.6(rollup@4.44.1)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.43.0) + '@rollup/pluginutils': 5.2.0(rollup@4.44.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.6(picomatch@4.0.2) @@ -1528,108 +1525,108 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.1 - '@rollup/plugin-json@6.1.0(rollup@4.43.0)': + '@rollup/plugin-json@6.1.0(rollup@4.44.1)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.43.0) + '@rollup/pluginutils': 5.2.0(rollup@4.44.1) optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.1 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.43.0)': + '@rollup/plugin-node-resolve@16.0.1(rollup@4.44.1)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.43.0) + '@rollup/pluginutils': 5.2.0(rollup@4.44.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.1 - '@rollup/pluginutils@5.2.0(rollup@4.43.0)': + '@rollup/pluginutils@5.2.0(rollup@4.44.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.43.0 + rollup: 4.44.1 - '@rollup/rollup-android-arm-eabi@4.43.0': + '@rollup/rollup-android-arm-eabi@4.44.1': optional: true - '@rollup/rollup-android-arm64@4.43.0': + '@rollup/rollup-android-arm64@4.44.1': optional: true - '@rollup/rollup-darwin-arm64@4.43.0': + '@rollup/rollup-darwin-arm64@4.44.1': optional: true - '@rollup/rollup-darwin-x64@4.43.0': + '@rollup/rollup-darwin-x64@4.44.1': optional: true - '@rollup/rollup-freebsd-arm64@4.43.0': + '@rollup/rollup-freebsd-arm64@4.44.1': optional: true - '@rollup/rollup-freebsd-x64@4.43.0': + '@rollup/rollup-freebsd-x64@4.44.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.43.0': + '@rollup/rollup-linux-arm-gnueabihf@4.44.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.43.0': + '@rollup/rollup-linux-arm-musleabihf@4.44.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.43.0': + '@rollup/rollup-linux-arm64-gnu@4.44.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.43.0': + '@rollup/rollup-linux-arm64-musl@4.44.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.43.0': + '@rollup/rollup-linux-loongarch64-gnu@4.44.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.43.0': + '@rollup/rollup-linux-riscv64-gnu@4.44.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.43.0': + '@rollup/rollup-linux-riscv64-musl@4.44.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.43.0': + '@rollup/rollup-linux-s390x-gnu@4.44.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.43.0': + '@rollup/rollup-linux-x64-gnu@4.44.1': optional: true - '@rollup/rollup-linux-x64-musl@4.43.0': + '@rollup/rollup-linux-x64-musl@4.44.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.43.0': + '@rollup/rollup-win32-arm64-msvc@4.44.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.43.0': + '@rollup/rollup-win32-ia32-msvc@4.44.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.43.0': + '@rollup/rollup-win32-x64-msvc@4.44.1': optional: true '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 - '@sveltejs/adapter-node@5.2.12(@sveltejs/kit@2.21.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))': + '@sveltejs/adapter-node@5.2.12(@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))': dependencies: - '@rollup/plugin-commonjs': 28.0.6(rollup@4.43.0) - '@rollup/plugin-json': 6.1.0(rollup@4.43.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.43.0) - '@sveltejs/kit': 2.21.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) - rollup: 4.43.0 + '@rollup/plugin-commonjs': 28.0.6(rollup@4.44.1) + '@rollup/plugin-json': 6.1.0(rollup@4.44.1) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.44.1) + '@sveltejs/kit': 2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + rollup: 4.44.1 - '@sveltejs/kit@2.21.5(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': + '@sveltejs/kit@2.22.2(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': dependencies: '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 @@ -1641,106 +1638,106 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.1 - svelte: 5.34.6 + svelte: 5.34.9 vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) - vitefu: 1.0.6(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + vitefu: 1.0.7(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) debug: 4.4.1 - svelte: 5.34.6 + svelte: 5.34.9 vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': + '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)))(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) debug: 4.4.1 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.34.6 + svelte: 5.34.9 vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) - vitefu: 1.0.6(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) + vitefu: 1.0.7(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)) transitivePeerDependencies: - supports-color - '@tailwindcss/forms@0.5.10(tailwindcss@4.1.10)': + '@tailwindcss/forms@0.5.10(tailwindcss@4.1.11)': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 4.1.10 + tailwindcss: 4.1.11 - '@tailwindcss/node@4.1.10': + '@tailwindcss/node@4.1.11': dependencies: '@ampproject/remapping': 2.3.0 - enhanced-resolve: 5.18.1 + enhanced-resolve: 5.18.2 jiti: 2.4.2 lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 - tailwindcss: 4.1.10 + tailwindcss: 4.1.11 - '@tailwindcss/oxide-android-arm64@4.1.10': + '@tailwindcss/oxide-android-arm64@4.1.11': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.10': + '@tailwindcss/oxide-darwin-arm64@4.1.11': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.10': + '@tailwindcss/oxide-darwin-x64@4.1.11': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.10': + '@tailwindcss/oxide-freebsd-x64@4.1.11': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.10': + '@tailwindcss/oxide-linux-arm64-musl@4.1.11': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.10': + '@tailwindcss/oxide-linux-x64-gnu@4.1.11': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.10': + '@tailwindcss/oxide-linux-x64-musl@4.1.11': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.10': + '@tailwindcss/oxide-wasm32-wasi@4.1.11': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.10': + '@tailwindcss/oxide-win32-x64-msvc@4.1.11': optional: true - '@tailwindcss/oxide@4.1.10': + '@tailwindcss/oxide@4.1.11': dependencies: detect-libc: 2.0.4 tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.10 - '@tailwindcss/oxide-darwin-arm64': 4.1.10 - '@tailwindcss/oxide-darwin-x64': 4.1.10 - '@tailwindcss/oxide-freebsd-x64': 4.1.10 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.10 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.10 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.10 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.10 - '@tailwindcss/oxide-linux-x64-musl': 4.1.10 - '@tailwindcss/oxide-wasm32-wasi': 4.1.10 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.10 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.10 + '@tailwindcss/oxide-android-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-arm64': 4.1.11 + '@tailwindcss/oxide-darwin-x64': 4.1.11 + '@tailwindcss/oxide-freebsd-x64': 4.1.11 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.11 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.11 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.11 + '@tailwindcss/oxide-linux-x64-musl': 4.1.11 + '@tailwindcss/oxide-wasm32-wasi': 4.1.11 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 - '@tailwindcss/vite@4.1.10(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': + '@tailwindcss/vite@4.1.11(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))': dependencies: - '@tailwindcss/node': 4.1.10 - '@tailwindcss/oxide': 4.1.10 - tailwindcss: 4.1.10 + '@tailwindcss/node': 4.1.11 + '@tailwindcss/oxide': 4.1.11 + tailwindcss: 4.1.11 vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) '@testing-library/dom@10.4.0': @@ -1764,10 +1761,10 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.8(svelte@5.34.6)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))(vitest@3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1))': + '@testing-library/svelte@5.2.8(svelte@5.34.9)(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1))(vitest@3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1))': dependencies: '@testing-library/dom': 10.4.0 - svelte: 5.34.6 + svelte: 5.34.9 optionalDependencies: vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) vitest: 3.2.4(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1) @@ -1782,8 +1779,6 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} '@types/resolve@1.20.2': {} @@ -1860,7 +1855,7 @@ snapshots: check-error: 2.1.1 deep-eql: 5.0.2 loupe: 3.1.4 - pathval: 2.0.0 + pathval: 2.0.1 chalk@3.0.0: dependencies: @@ -1894,7 +1889,7 @@ snapshots: css.escape@1.5.1: {} - cssstyle@4.4.0: + cssstyle@4.6.0: dependencies: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 @@ -1924,7 +1919,7 @@ snapshots: dom-accessibility-api@0.6.3: {} - enhanced-resolve@5.18.1: + enhanced-resolve@5.18.2: dependencies: graceful-fs: 4.2.11 tapable: 2.2.2 @@ -2040,7 +2035,7 @@ snapshots: jsdom@26.1.0: dependencies: - cssstyle: 4.4.0 + cssstyle: 4.6.0 data-urls: 5.0.0 decimal.js: 10.5.0 html-encoding-sniffer: 4.0.0 @@ -2058,7 +2053,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.2 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -2156,7 +2151,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} picocolors@1.1.1: {} @@ -2168,18 +2163,18 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.34.6): + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.34.9): dependencies: - prettier: 3.5.3 - svelte: 5.34.6 + prettier: 3.6.2 + svelte: 5.34.9 - prettier-plugin-tailwindcss@0.6.12(prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.34.6))(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.13(prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.34.9))(prettier@3.6.2): dependencies: - prettier: 3.5.3 + prettier: 3.6.2 optionalDependencies: - prettier-plugin-svelte: 3.4.0(prettier@3.5.3)(svelte@5.34.6) + prettier-plugin-svelte: 3.4.0(prettier@3.6.2)(svelte@5.34.9) - prettier@3.5.3: {} + prettier@3.6.2: {} pretty-format@27.5.1: dependencies: @@ -2204,30 +2199,30 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - rollup@4.43.0: + rollup@4.44.1: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.43.0 - '@rollup/rollup-android-arm64': 4.43.0 - '@rollup/rollup-darwin-arm64': 4.43.0 - '@rollup/rollup-darwin-x64': 4.43.0 - '@rollup/rollup-freebsd-arm64': 4.43.0 - '@rollup/rollup-freebsd-x64': 4.43.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.43.0 - '@rollup/rollup-linux-arm-musleabihf': 4.43.0 - '@rollup/rollup-linux-arm64-gnu': 4.43.0 - '@rollup/rollup-linux-arm64-musl': 4.43.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.43.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-gnu': 4.43.0 - '@rollup/rollup-linux-riscv64-musl': 4.43.0 - '@rollup/rollup-linux-s390x-gnu': 4.43.0 - '@rollup/rollup-linux-x64-gnu': 4.43.0 - '@rollup/rollup-linux-x64-musl': 4.43.0 - '@rollup/rollup-win32-arm64-msvc': 4.43.0 - '@rollup/rollup-win32-ia32-msvc': 4.43.0 - '@rollup/rollup-win32-x64-msvc': 4.43.0 + '@rollup/rollup-android-arm-eabi': 4.44.1 + '@rollup/rollup-android-arm64': 4.44.1 + '@rollup/rollup-darwin-arm64': 4.44.1 + '@rollup/rollup-darwin-x64': 4.44.1 + '@rollup/rollup-freebsd-arm64': 4.44.1 + '@rollup/rollup-freebsd-x64': 4.44.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.1 + '@rollup/rollup-linux-arm-musleabihf': 4.44.1 + '@rollup/rollup-linux-arm64-gnu': 4.44.1 + '@rollup/rollup-linux-arm64-musl': 4.44.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.1 + '@rollup/rollup-linux-riscv64-gnu': 4.44.1 + '@rollup/rollup-linux-riscv64-musl': 4.44.1 + '@rollup/rollup-linux-s390x-gnu': 4.44.1 + '@rollup/rollup-linux-x64-gnu': 4.44.1 + '@rollup/rollup-linux-x64-musl': 4.44.1 + '@rollup/rollup-win32-arm64-msvc': 4.44.1 + '@rollup/rollup-win32-ia32-msvc': 4.44.1 + '@rollup/rollup-win32-x64-msvc': 4.44.1 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} @@ -2272,21 +2267,21 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.2.1(picomatch@4.0.2)(svelte@5.34.6)(typescript@5.8.3): + svelte-check@4.2.2(picomatch@4.0.2)(svelte@5.34.9)(typescript@5.8.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 fdir: 6.4.6(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.34.6 + svelte: 5.34.9 typescript: 5.8.3 transitivePeerDependencies: - picomatch svelte-toasts@1.1.2: {} - svelte@5.34.6: + svelte@5.34.9: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -2305,7 +2300,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@4.1.10: {} + tailwindcss@4.1.11: {} tapable@2.2.2: {} @@ -2378,14 +2373,14 @@ snapshots: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.6 - rollup: 4.43.0 + rollup: 4.44.1 tinyglobby: 0.2.14 optionalDependencies: fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.30.1 - vitefu@1.0.6(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)): + vitefu@1.0.7(vite@6.3.5(jiti@2.4.2)(lightningcss@1.30.1)): optionalDependencies: vite: 6.3.5(jiti@2.4.2)(lightningcss@1.30.1) @@ -2452,7 +2447,7 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - ws@8.18.2: {} + ws@8.18.3: {} xml-name-validator@5.0.0: {} diff --git a/src/lib/api/weatherservice.test.ts b/src/lib/api/weatherservice.test.ts new file mode 100644 index 0000000..79ddb7e --- /dev/null +++ b/src/lib/api/weatherservice.test.ts @@ -0,0 +1,29 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { aviationWeatherApi } from './weatherservice'; + +describe('aviationWeatherApi', () => { + beforeEach(() => { + vi.restoreAllMocks(); + }); + + it('fetches METAR data successfully', async () => { + const mockMetar = { icaoId: 'EGKK', temp: 20 }; + vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ + ok: true, + json: () => Promise.resolve(mockMetar) + })); + + const result = await aviationWeatherApi.fetchMetar('EGKK'); + expect(result).toEqual(mockMetar); + expect(fetch).toHaveBeenCalledWith('/api/metar/EGKK'); + }); + + it('throws error if fetch fails', async () => { + vi.stubGlobal('fetch', vi.fn().mockResolvedValue({ + ok: false, + statusText: 'Not Found' + })); + + await expect(aviationWeatherApi.fetchMetar('XXXX')).rejects.toThrow('Failed to fetch METAR: Not Found'); + }); +}); \ No newline at end of file diff --git a/src/lib/components/Loading.svelte b/src/lib/components/Loading.svelte index 4ccf026..b465ec0 100644 --- a/src/lib/components/Loading.svelte +++ b/src/lib/components/Loading.svelte @@ -9,6 +9,12 @@ perspective: 800px; } + .loaderText { + position: absolute; + top: calc(50% - 84px); + left: calc(50% - 64px); + } + .inner { position: absolute; box-sizing: border-box; @@ -66,6 +72,9 @@ } +
+ Loading... +
diff --git a/src/routes/page.svelte.test.ts b/src/routes/page.svelte.test.ts new file mode 100644 index 0000000..9d8c535 --- /dev/null +++ b/src/routes/page.svelte.test.ts @@ -0,0 +1,12 @@ +import { render } from '@testing-library/svelte'; +import { describe, it, expect } from 'vitest'; +import Page from './+page.svelte'; + +describe('Main Page', () => { + it('renders the page without HTTP error codes', () => { + const { container } = render(Page); + // Check that common HTTP error codes are not present in the rendered output + const html = container.innerHTML; + expect(html).not.toMatch(/404|500|403|401|bad request|not found|internal server error/i); + }); +}); \ No newline at end of file -- 2.49.1 From 76af341036e80dc3ec2c3714f6e44b2c6c169afc Mon Sep 17 00:00:00 2001 From: Luke Else Date: Sun, 29 Jun 2025 13:57:56 +0100 Subject: [PATCH 2/4] #4 Added pnpm install to workflow --- .gitea/workflows/test.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index c075568..a7ed8d3 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -17,6 +17,9 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 + + - name: Install pnpm + run: npm install -g pnpm - name: Install Dependencies run: npm install -- 2.49.1 From 30284156e8fc34245b64c3675e07185a6825beba Mon Sep 17 00:00:00 2001 From: Luke Else Date: Sat, 26 Jul 2025 14:09:09 +0100 Subject: [PATCH 3/4] feat: Added images to site --- assets/images/main-screen.png | Bin 0 -> 47984 bytes assets/images/main.png | Bin 0 -> 13347 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/main-screen.png create mode 100644 assets/images/main.png diff --git a/assets/images/main-screen.png b/assets/images/main-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..1988ea183da501b5d343ea5d06d88c55104e0798 GIT binary patch literal 47984 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 R(*}D08ZUI8!&R-`{Wr$HVcY-! literal 0 HcmV?d00001 -- 2.49.1 From 4eebdb596ea6c39a71f10b9d46d693fc66a6afba Mon Sep 17 00:00:00 2001 From: Luke Else Date: Sat, 26 Jul 2025 14:12:33 +0100 Subject: [PATCH 4/4] feat: Updated readme --- README.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b5b2950..2382d24 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,46 @@ -# sv +## Welcome -Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). +This site is a clean wrapper around Aviation weather APIs to allow desk pilots to pre-brief flights effectively! -## Creating a project +## Screenshots -If you're seeing this, you've probably already done this step. Congrats! +

+ + +

+ +## Getting Started + +Get starting but installing all of the dependencies of the project. ```bash -# create a new project in the current directory -npx sv create +npm install -# create a new project in my-app -npx sv create my-app ``` -## Developing - -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +Once you've created a project and installed dependencies with `pnpm install` (or `npm install` or `yarn`), start a development server: ```bash -npm run dev +pnpm run dev +``` + +```bash # or start the server and open the app in a new browser tab -npm run dev -- --open +pnpm run dev -- --open + ``` ## Building -To create a production version of your app: +To create a production version of the app: ```bash -npm run build +pnpm run build + + ``` -You can preview the production build with `npm run preview`. +You can preview the production build with `pnpm run preview`. -> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. In this case, vite is used. -- 2.49.1