diff --git a/package.json b/package.json index eeb60ddc..b96b453e 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,12 @@ "@maiertech/sveltekit-helpers": "^0.44.1", "@playwright/test": "^1.57.0", "@stackblitz/sdk": "^1.11.0", - "@sveltejs/adapter-node": "^5.4.0", + "@sveltejs/adapter-node": "^5.5.1", "@sveltejs/enhanced-img": "^0.9.2", - "@sveltejs/kit": "^2.49.4", + "@sveltejs/kit": "^2.49.5", "@sveltejs/vite-plugin-svelte": "^6.2.4", "@tailwindcss/vite": "^4.1.18", - "@types/node": "^24.10.6", + "@types/node": "^25.0.9", "d3-array": "^3.2.4", "dotenv": "^17.2.3", "eslint": "^9.39.2", @@ -39,18 +39,18 @@ "globals": "^17.0.0", "mdsvex": "^0.12.6", "mode-watcher": "^1.1.0", - "prettier": "^3.7.4", + "prettier": "^3.8.0", "prettier-plugin-svelte": "^3.4.1", "prettier-plugin-tailwindcss": "^0.7.2", "shiki": "^3.21.0", - "simple-icons": "^16.4.0", - "svelte": "^5.46.1", + "simple-icons": "^16.5.0", + "svelte": "^5.46.4", "svelte-check": "^4.3.5", "sveltekit-embed": "^0.0.22", "tailwind-merge": "^3.4.0", "tailwindcss": "^4.1.18", "typescript": "^5.9.3", - "typescript-eslint": "^8.52.0", + "typescript-eslint": "^8.53.0", "vite": "^7.3.1", "vite-plugin-devtools-json": "^1.0.0", "zod": "^4.3.5" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e54be2c..dd84dedb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.13.1(typescript@5.9.3) '@content-collections/vite': specifier: ^0.2.8 - version: 0.2.8(@content-collections/core@0.13.1(typescript@5.9.3))(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + version: 0.2.8(@content-collections/core@0.13.1(typescript@5.9.3))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@eslint/compat': specifier: ^2.0.1 version: 2.0.1(eslint@9.39.2(jiti@2.6.1)) @@ -28,10 +28,10 @@ importers: version: 5.2.8 '@lucide/svelte': specifier: ^0.562.0 - version: 0.562.0(svelte@5.46.1) + version: 0.562.0(svelte@5.46.4) '@maiertech/sveltekit-helpers': specifier: ^0.44.1 - version: 0.44.1(@sveltejs/kit@2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(tailwindcss@4.1.18)(zod@4.3.5) + version: 0.44.1(@sveltejs/kit@2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(tailwindcss@4.1.18)(zod@4.3.5) '@playwright/test': specifier: ^1.57.0 version: 1.57.0 @@ -39,23 +39,23 @@ importers: specifier: ^1.11.0 version: 1.11.0 '@sveltejs/adapter-node': - specifier: ^5.4.0 - version: 5.4.0(@sveltejs/kit@2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))) + specifier: ^5.5.1 + version: 5.5.1(@sveltejs/kit@2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))) '@sveltejs/enhanced-img': specifier: ^0.9.2 - version: 0.9.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(rollup@4.55.1)(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + version: 0.9.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(rollup@4.55.1)(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@sveltejs/kit': - specifier: ^2.49.4 - version: 2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + specifier: ^2.49.5 + version: 2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@sveltejs/vite-plugin-svelte': specifier: ^6.2.4 - version: 6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + version: 6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@tailwindcss/vite': specifier: ^4.1.18 - version: 4.1.18(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + version: 4.1.18(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@types/node': - specifier: ^24.10.6 - version: 24.10.6 + specifier: ^25.0.9 + version: 25.0.9 d3-array: specifier: ^3.2.4 version: 3.2.4 @@ -70,40 +70,40 @@ importers: version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.14.0 - version: 3.14.0(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.1) + version: 3.14.0(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.4) globals: specifier: ^17.0.0 version: 17.0.0 mdsvex: specifier: ^0.12.6 - version: 0.12.6(svelte@5.46.1) + version: 0.12.6(svelte@5.46.4) mode-watcher: specifier: ^1.1.0 - version: 1.1.0(svelte@5.46.1) + version: 1.1.0(svelte@5.46.4) prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.0 + version: 3.8.0 prettier-plugin-svelte: specifier: ^3.4.1 - version: 3.4.1(prettier@3.7.4)(svelte@5.46.1) + version: 3.4.1(prettier@3.8.0)(svelte@5.46.4) prettier-plugin-tailwindcss: specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1))(prettier@3.7.4) + version: 0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.8.0)(svelte@5.46.4))(prettier@3.8.0) shiki: specifier: ^3.21.0 version: 3.21.0 simple-icons: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^16.5.0 + version: 16.5.0 svelte: - specifier: ^5.46.1 - version: 5.46.1 + specifier: ^5.46.4 + version: 5.46.4 svelte-check: specifier: ^4.3.5 - version: 4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3) + version: 4.3.5(picomatch@4.0.3)(svelte@5.46.4)(typescript@5.9.3) sveltekit-embed: specifier: ^0.0.22 - version: 0.0.22(svelte@5.46.1) + version: 0.0.22(svelte@5.46.4) tailwind-merge: specifier: ^3.4.0 version: 3.4.0 @@ -114,14 +114,14 @@ importers: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.52.0 - version: 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.53.0 + version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.3.1 - version: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + version: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) vite-plugin-devtools-json: specifier: ^1.0.0 - version: 1.0.0(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + version: 1.0.0(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) zod: specifier: ^4.3.5 version: 4.3.5 @@ -928,8 +928,8 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-node@5.4.0': - resolution: {integrity: sha512-NMsrwGVPEn+J73zH83Uhss/hYYZN6zT3u31R3IHAn3MiKC3h8fjmIAhLfTSOeNHr5wPYfjjMg8E+1gyFgyrEcQ==} + '@sveltejs/adapter-node@5.5.1': + resolution: {integrity: sha512-VpZdPNRPQuZRtgfAMETPWWKpZx9JwXmUUsgz/+eSpw/Oh7+2O1uZHlsQTuyfxydJHPrRzjfu/ItcJjY4oscCiQ==} peerDependencies: '@sveltejs/kit': ^2.4.0 @@ -940,8 +940,8 @@ packages: svelte: ^5.0.0 vite: ^6.3.0 || >=7.0.0 - '@sveltejs/kit@2.49.4': - resolution: {integrity: sha512-JFtOqDoU0DI/+QSG8qnq5bKcehVb3tCHhOG4amsSYth5/KgO4EkJvi42xSAiyKmXAAULW1/Zdb6lkgGEgSxdZg==} + '@sveltejs/kit@2.49.5': + resolution: {integrity: sha512-dCYqelr2RVnWUuxc+Dk/dB/SjV/8JBndp1UovCyCZdIQezd8TRwFLNZctYkzgHxRJtaNvseCSRsuuHPeUgIN/A==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -1080,8 +1080,8 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/node@24.10.6': - resolution: {integrity: sha512-B8h60xgJMR/xmgyX9fncRzEW9gCxoJjdenUhke2v1JGOd/V66KopmWrLPXi5oUI4VuiGK+d+HlXJjDRZMj21EQ==} + '@types/node@25.0.9': + resolution: {integrity: sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -1092,63 +1092,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.52.0': - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + '@typescript-eslint/eslint-plugin@8.53.0': + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.53.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.52.0': - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + '@typescript-eslint/parser@8.53.0': + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.52.0': - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + '@typescript-eslint/project-service@8.53.0': + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.52.0': - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + '@typescript-eslint/scope-manager@8.53.0': + resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.52.0': - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + '@typescript-eslint/tsconfig-utils@8.53.0': + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.52.0': - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + '@typescript-eslint/type-utils@8.53.0': + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.52.0': - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + '@typescript-eslint/types@8.53.0': + resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.52.0': - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + '@typescript-eslint/typescript-estree@8.53.0': + resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.52.0': - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + '@typescript-eslint/utils@8.53.0': + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.52.0': - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + '@typescript-eslint/visitor-keys@8.53.0': + resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -1280,8 +1280,8 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.6.1: - resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} + devalue@5.6.2: + resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -1867,8 +1867,8 @@ packages: prettier-plugin-svelte: optional: true - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + prettier@3.8.0: + resolution: {integrity: sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==} engines: {node: '>=14'} hasBin: true @@ -1963,8 +1963,8 @@ packages: shiki@3.21.0: resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==} - simple-icons@16.4.0: - resolution: {integrity: sha512-8CKtCvx1Zq3L0CBsR4RR1MjGCXkXbzdspwl2yCxs8oWkstbzj2+DatRKDee/tuj3Ffd/2CDzwEky9RgG2yggew==} + simple-icons@16.5.0: + resolution: {integrity: sha512-72nn0oHADKx6Hknu7q6M0vfL8LiCUMKABOHane2+4xdqaFBSHfNNBjuZioihiqVQMz7IvVle4NKAM0IlXvl/9A==} engines: {node: '>=0.12.18'} sirv@3.0.2: @@ -2031,8 +2031,8 @@ packages: peerDependencies: svelte: ^5.0.0 - svelte@5.46.1: - resolution: {integrity: sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==} + svelte@5.46.4: + resolution: {integrity: sha512-VJwdXrmv9L8L7ZasJeWcCjoIuMRVbhuxbss0fpVnR8yorMmjNDwcjIH08vS6wmSzzzgAG5CADQ1JuXPS2nwt9w==} engines: {node: '>=18'} sveltekit-embed@0.0.22: @@ -2075,8 +2075,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.52.0: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + typescript-eslint@8.53.0: + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2249,11 +2249,11 @@ snapshots: dependencies: '@content-collections/core': 0.13.1(typescript@5.9.3) - '@content-collections/vite@0.2.8(@content-collections/core@0.13.1(typescript@5.9.3))(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@content-collections/vite@0.2.8(@content-collections/core@0.13.1(typescript@5.9.3))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: '@content-collections/core': 0.13.1(typescript@5.9.3) '@content-collections/integrations': 0.4.0(@content-collections/core@0.13.1(typescript@5.9.3)) - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) '@emnapi/runtime@1.8.1': dependencies: @@ -2602,15 +2602,15 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lucide/svelte@0.562.0(svelte@5.46.1)': + '@lucide/svelte@0.562.0(svelte@5.46.4)': dependencies: - svelte: 5.46.1 + svelte: 5.46.4 - '@maiertech/sveltekit-helpers@0.44.1(@sveltejs/kit@2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(tailwindcss@4.1.18)(zod@4.3.5)': + '@maiertech/sveltekit-helpers@0.44.1(@sveltejs/kit@2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(tailwindcss@4.1.18)(zod@4.3.5)': dependencies: - '@sveltejs/kit': 2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/kit': 2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) shiki: 3.21.0 - svelte: 5.46.1 + svelte: 5.46.4 tailwind-merge: 3.4.0 tailwindcss: 4.1.18 zod: 4.3.5 @@ -2773,36 +2773,36 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/adapter-node@5.4.0(@sveltejs/kit@2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))': + '@sveltejs/adapter-node@5.5.1(@sveltejs/kit@2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))': dependencies: '@rollup/plugin-commonjs': 28.0.9(rollup@4.55.1) '@rollup/plugin-json': 6.1.0(rollup@4.55.1) '@rollup/plugin-node-resolve': 16.0.3(rollup@4.55.1) - '@sveltejs/kit': 2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/kit': 2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) rollup: 4.55.1 - '@sveltejs/enhanced-img@0.9.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(rollup@4.55.1)(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@sveltejs/enhanced-img@0.9.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(rollup@4.55.1)(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) magic-string: 0.30.21 sharp: 0.34.5 - svelte: 5.46.1 - svelte-parse-markup: 0.1.5(svelte@5.46.1) - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + svelte: 5.46.4 + svelte-parse-markup: 0.1.5(svelte@5.46.4) + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) vite-imagetools: 9.0.2(rollup@4.55.1) zimmerframe: 1.1.4 transitivePeerDependencies: - rollup - '@sveltejs/kit@2.49.4(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@sveltejs/kit@2.49.5(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@types/cookie': 0.6.0 acorn: 8.15.0 cookie: 0.6.0 - devalue: 5.6.1 + devalue: 5.6.2 esm-env: 1.2.2 kleur: 4.1.5 magic-string: 0.30.21 @@ -2810,27 +2810,27 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.2 sirv: 3.0.2 - svelte: 5.46.1 - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + svelte: 5.46.4 + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) optionalDependencies: typescript: 5.9.3 - '@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) obug: 2.1.1 - svelte: 5.46.1 - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + svelte: 5.46.4 + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) - '@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)))(svelte@5.46.4)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 - svelte: 5.46.1 - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) - vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) + svelte: 5.46.4 + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + vitefu: 1.1.1(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)) '@tailwindcss/node@4.1.18': dependencies: @@ -2893,12 +2893,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': + '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) '@types/cookie@0.6.0': {} @@ -2914,7 +2914,7 @@ snapshots: dependencies: '@types/unist': 2.0.11 - '@types/node@24.10.6': + '@types/node@25.0.9': dependencies: undici-types: 7.16.0 @@ -2924,14 +2924,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/type-utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.53.0 eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -2940,41 +2940,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.53.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) + '@typescript-eslint/types': 8.53.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.52.0': + '@typescript-eslint/scope-manager@8.53.0': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 - '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) @@ -2982,14 +2982,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.52.0': {} + '@typescript-eslint/types@8.53.0': {} - '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.53.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -2999,20 +2999,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.52.0': + '@typescript-eslint/visitor-keys@8.53.0': dependencies: - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -3114,7 +3114,7 @@ snapshots: detect-libc@2.1.2: {} - devalue@5.6.1: {} + devalue@5.6.2: {} devlop@1.1.0: dependencies: @@ -3191,7 +3191,7 @@ snapshots: dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-svelte@3.14.0(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.1): + eslint-plugin-svelte@3.14.0(eslint@9.39.2(jiti@2.6.1))(svelte@5.46.4): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -3203,9 +3203,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.3 - svelte-eslint-parser: 1.4.1(svelte@5.46.1) + svelte-eslint-parser: 1.4.1(svelte@5.46.4) optionalDependencies: - svelte: 5.46.1 + svelte: 5.46.4 transitivePeerDependencies: - ts-node @@ -3518,13 +3518,13 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.3 - mdsvex@0.12.6(svelte@5.46.1): + mdsvex@0.12.6(svelte@5.46.4): dependencies: '@types/mdast': 4.0.4 '@types/unist': 2.0.11 prism-svelte: 0.4.7 prismjs: 1.30.0 - svelte: 5.46.1 + svelte: 5.46.4 unist-util-visit: 2.0.3 vfile-message: 2.0.4 @@ -3553,11 +3553,11 @@ snapshots: dependencies: brace-expansion: 2.0.2 - mode-watcher@1.1.0(svelte@5.46.1): + mode-watcher@1.1.0(svelte@5.46.4): dependencies: - runed: 0.25.0(svelte@5.46.1) - svelte: 5.46.1 - svelte-toolbelt: 0.7.1(svelte@5.46.1) + runed: 0.25.0(svelte@5.46.4) + svelte: 5.46.4 + svelte-toolbelt: 0.7.1(svelte@5.46.4) mri@1.2.0: {} @@ -3652,18 +3652,18 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1): + prettier-plugin-svelte@3.4.1(prettier@3.8.0)(svelte@5.46.4): dependencies: - prettier: 3.7.4 - svelte: 5.46.1 + prettier: 3.8.0 + svelte: 5.46.4 - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.7.4)(svelte@5.46.1))(prettier@3.7.4): + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.4.1(prettier@3.8.0)(svelte@5.46.4))(prettier@3.8.0): dependencies: - prettier: 3.7.4 + prettier: 3.8.0 optionalDependencies: - prettier-plugin-svelte: 3.4.1(prettier@3.7.4)(svelte@5.46.1) + prettier-plugin-svelte: 3.4.1(prettier@3.8.0)(svelte@5.46.4) - prettier@3.7.4: {} + prettier@3.8.0: {} prism-svelte@0.4.7: {} @@ -3728,15 +3728,15 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.55.1 fsevents: 2.3.3 - runed@0.23.4(svelte@5.46.1): + runed@0.23.4(svelte@5.46.4): dependencies: esm-env: 1.2.2 - svelte: 5.46.1 + svelte: 5.46.4 - runed@0.25.0(svelte@5.46.1): + runed@0.25.0(svelte@5.46.4): dependencies: esm-env: 1.2.2 - svelte: 5.46.1 + svelte: 5.46.4 sade@1.8.1: dependencies: @@ -3805,7 +3805,7 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - simple-icons@16.4.0: {} + simple-icons@16.5.0: {} sirv@3.0.2: dependencies: @@ -3838,19 +3838,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3): + svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.46.4)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.46.1 + svelte: 5.46.4 typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.4.1(svelte@5.46.1): + svelte-eslint-parser@1.4.1(svelte@5.46.4): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -3859,20 +3859,20 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.1 optionalDependencies: - svelte: 5.46.1 + svelte: 5.46.4 - svelte-parse-markup@0.1.5(svelte@5.46.1): + svelte-parse-markup@0.1.5(svelte@5.46.4): dependencies: - svelte: 5.46.1 + svelte: 5.46.4 - svelte-toolbelt@0.7.1(svelte@5.46.1): + svelte-toolbelt@0.7.1(svelte@5.46.4): dependencies: clsx: 2.1.1 - runed: 0.23.4(svelte@5.46.1) + runed: 0.23.4(svelte@5.46.4) style-to-object: 1.0.14 - svelte: 5.46.1 + svelte: 5.46.4 - svelte@5.46.1: + svelte@5.46.4: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -3882,7 +3882,7 @@ snapshots: aria-query: 5.3.2 axobject-query: 4.1.0 clsx: 2.1.1 - devalue: 5.6.1 + devalue: 5.6.2 esm-env: 1.2.2 esrap: 2.2.1 is-reference: 3.0.3 @@ -3890,9 +3890,9 @@ snapshots: magic-string: 0.30.21 zimmerframe: 1.1.4 - sveltekit-embed@0.0.22(svelte@5.46.1): + sveltekit-embed@0.0.22(svelte@5.46.4): dependencies: - svelte: 5.46.1 + svelte: 5.46.4 tailwind-merge@3.4.0: {} @@ -3920,12 +3920,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -4006,12 +4006,12 @@ snapshots: transitivePeerDependencies: - rollup - vite-plugin-devtools-json@1.0.0(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)): + vite-plugin-devtools-json@1.0.0(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)): dependencies: uuid: 11.1.0 - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) - vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2): + vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -4020,15 +4020,15 @@ snapshots: rollup: 4.55.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.6 + '@types/node': 25.0.9 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 yaml: 2.8.2 - vitefu@1.1.1(vite@7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)): + vitefu@1.1.1(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2)): optionalDependencies: - vite: 7.3.1(@types/node@24.10.6)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) + vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.2) which@2.0.2: dependencies: diff --git a/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/+page.md b/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/+page.md deleted file mode 100644 index 1ec68b45..00000000 --- a/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/+page.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: The privacy-friendly video doorbell that failed in cold weather -author: thilo -publishedDate: 2026-01-09 -published: false -description: - A Reolink video doorbell promised to be privacy-friendly, but failed in cold weather with poor - event detection and severe battery drain. -tags: - - iot ---- - - - -During the holidays, I installed a -[Reolink Video Doorbell (Battery)](https://reolink.com/nl/product/reolink-doorbell-battery/) on my -front door. After a honeymoon that lasted a few days, winter came to the Netherlands and with -freezing temperatures my excitement for this doorbell quickly reached a freezing point. But more on -that in a minute. - -About 2 years ago, I had a -[Google Nest Doorbell (Battery)](https://store.google.com/product/nest_doorbell_battery?hl=nl) for -about 6 months. After the first mild Dutch winter, its image started flickering and when I removed -it for a reset, the mounting mechanism broke. A common problem with this model. To Google's credit, -I received a full refund. But I started to wonder whether it's a good idea to install an IoT device -in a spot where it is exposed to the full range from dry freezing cold to scorching hot humid -weather with direct sun exposure and occasional heavy rain splashes. - -Fast forward to late 2025. I wanted to give a video doorbell another try. But this time, I wanted to -bypass Big Tech and go for a model that works locally without subscription and without the cloud. -After digging through endless negative doorbell reviews, I settled on Reolink. Their battery -doorbell ticked all the boxes: local storage, no subscription required, optional wired installation, -works with my mechanical chime, battery-powered (in case of a power outage), and affordable. And a -beautiful piece of hardware, IP65 rated, that works in a temperature range from -10°C to +55°C. At -least that's what the specs say. - -
- -
- -The first few days, while the temperature was still close to +10°C, the doorbell worked almost -flawlessly. It kept trickle-charging the battery back to 100%. And triggers worked reasonably well. -But I noticed some firmware quirks. - -But let me first explain my constraints. Dutch neighborhoods are dense, and therefore, my doorbell -camera (like many other doorbell cameras in the Netherlands) captures a public sidewalk. I don't -want to capture anything happening in a public area. It's none of my business. I want to capture -only what happens on my property. Google Nest offers intuitive detection zones for this scenario. -Just mark a detection zone located on my property and Google will alert me if someone steps into -that zone. Anything happening outside gets ignored. My neighbor can walk his dog on the sidewalk -without me ever knowing about it. - -Reolink reverses this logic. It offers non-detection zones. Reolink does not disclose the logic of -non-detection zones. But from what I can tell, anything touching a non-detection zone gets ignored. -That's a problem when the public sidewalk is in the center of the camera view and it's literally -impossible to walk to my front door without touching the non-detection zone. In my case, -non-detection zones broke meaningful event detection. - -As an alternative, you can enable or disable detection based on object size. For instance, someone -walking on the sidewalk across the street will appear small in the camera view and can be ignored. -But the mailman approaching my front door will at one point appear large enough to trigger an alert. -But this approach is very unreliable. My son's playdate was small enough to evade detection until -they rang the doorbell. - -Another quirk was that whenever someone left the house, event detection would not trigger. I -literally managed to take the above picture of the doorbell without triggering an alert. This made -me wonder whether person detection is based on an object getting larger. If you leave the house, you -never get larger in the camera view, only smaller. But I'm just guessing here. - -Then winter came and with temperatures below +5°C, the doorbell started behaving erratically. The -battery stopped charging and started draining quickly despite being wired up to the doorbell -transformer. I get it that the battery won't charge if temperatures drop below 0°C. But the battery -should not drain when wired. The other issue was that at low temperatures, motion detection kept -failing. I could walk up to the doorbell without triggering an alert. Within a few days, you reach a -point where you have to detach the doorbell, remove the wires and bring it inside for charging. -That's absurd for a wired video doorbell. - -The last nail in the doorbell's coffin was customer support. You get the usual remove it, reset it -and re-install it. But the moment I asked to for a return label and a refund, the response speed -slowed down. I felt like I was being put through all kinds of hoops to discourage me from returning -the doorbell. - -I wanted to like this doorbell. There are so few options out there for privacy-conscious consumers. -Reolink has a whole range of privacy-friendly cameras, including affordable PoE cameras. Therefore, -when I ended up with a choice between a privacy-friendly video doorbell with flawed event detection -and a Big Tech surveillance device that nickels and dimes me for flawless event detection, I felt -stuck between a rock and a hard place. - -For the time being, I reverted back to a dumb doorbell in combination with an old Google Nest -camera. The camera is attached from the inside with a suction cup holder to a window at the -entrance. Event detection works flawlessly, no matter how cold it is outside. But I have to shell -out a subscription fee to Big Tech. - -This feels like a defeat. But I hope that it's temporary and that with -[Matter having added support for cameras in v1.5](https://matter-smarthome.de/en/development/matter-1-5-arrives-bringing-long-awaited-cameras/), -there will be more privacy-friendly camera options with flawless event detection in the near future. -And I hope Reolink will iterate on their video doorbell to make it work reliably in cold weather. diff --git a/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/+page.md b/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/+page.md new file mode 100644 index 00000000..ba8d28f8 --- /dev/null +++ b/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/+page.md @@ -0,0 +1,76 @@ +--- +title: The privacy-friendly video doorbell with flawed person detection +author: thilo +publishedDate: 2026-01-09 +description: + A Reolink video doorbell promised to be privacy-friendly, but failed to reliably detect people. +tags: + - iot +--- + + + +During the holidays, I installed a +[Reolink Video Doorbell (Battery)](https://reolink.com/nl/product/reolink-doorbell-battery/) on my +front door. After some initial excitement, the doorbell turned into a disappointment. + +About 2 years ago, I had a +[Google Nest Doorbell (Battery)](https://store.google.com/product/nest_doorbell_battery?hl=nl) for +about 6 months. Its image started flickering and when I removed it for a reset, the mounting +mechanism broke. A common problem with this model. To Google's credit, I received a full refund. But +I started to wonder whether it's a good idea to install an IoT device in a spot where it is exposed +to the full range from freezing cold to scorching hot with direct sun exposure and occasional rain +splashes. + +Fast forward to late 2025. I wanted to give a video doorbell another try. But this time, I wanted to +bypass Big Tech and go for a model that works locally without subscription and without the cloud. +After digging through endless doorbell reviews, I settled on Reolink. Their battery doorbell ticked +all the boxes: local storage, no subscription required, optional wired installation, works with my +mechanical chime, battery-powered (in case of a power outage), and affordable. And a beautiful piece +of hardware, IP65 rated, that works in a temperature range from -10°C to +55°C. At least that's what +the specs say. + +
+ +
+ +Let me first explain my video doorbell constraints. Dutch neighborhoods are dense, and therefore, my +doorbell camera (like many other doorbell cameras in the Netherlands) captures a public sidewalk. I +don't want to capture anything happening in a public area. I want to capture only what happens on my +property. Google Nest offers intuitive detection zones for this scenario. Just mark a detection zone +located on my property and Google will alert me if someone steps into that zone. Anything happening +outside gets ignored. My neighbor can walk his dog on the sidewalk without me ever knowing about it. + +The Reolink battery doorbell reverses this logic. It offers non-detection zones. Reolink does not +disclose the logic of non-detection zones. But from what I can tell, anything touching a +non-detection zone gets ignored. That's a problem when the public sidewalk is in the center of the +camera view and it's literally impossible to walk to my front door without touching the +non-detection zone. In my case, non-detection zones broke meaningful event detection. + +As an alternative, you can enable or disable detection based on object size. For instance, someone +walking on the sidewalk across the street will appear small in the camera view and can be ignored. +But the mailman approaching my front door will at one point appear large enough to trigger an alert. +But this approach is unreliable. The local newspaper deliverer consistently managed to put a paper +in our mailbox without being detected. Another quirk was that whenever someone left the house, event +detection failed as well. I literally managed to take the above photo of the doorbell without +triggering an alert. Maybe person detection is based on an object with a face getting larger. If you +leave the house, the camera only sees your back. But I'm just guessing here. + +The last nail in the doorbell's coffin was customer support. You get the usual remove it, reset it +and re-install it. Which of course does not fix a flawed product. The moment I asked for a return +label and a refund, the response speed slowed down. After a few weeks of back and forth, Reolink +finally sent me a return label and I sent the doorbell back for a refund. + +I wanted to like this doorbell. There are so few options out there for privacy-conscious consumers. +Reolink has a whole range of privacy-friendly cameras, including affordable PoE cameras. But a +doorbell camera with flawed person detection is a deal breaker. For the time being, I reverted back +to a dumb doorbell in combination with an old Google Nest camera. The camera is attached from the +inside with a suction cup holder to a window at the entrance. Event detection works flawlessly. But +I have to shell out a subscription fee to Big Tech for cloud recording. + +I hope that with +[Matter having added support for cameras in v1.5](https://matter-smarthome.de/en/development/matter-1-5-arrives-bringing-long-awaited-cameras/), +there will be more privacy-friendly camera options with flawless event detection in the near future. diff --git a/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/DoorbellImage.svelte b/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/DoorbellImage.svelte similarity index 100% rename from src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/DoorbellImage.svelte rename to src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/DoorbellImage.svelte diff --git a/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/reolink-doorbell.jpeg b/src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/reolink-doorbell.jpeg similarity index 100% rename from src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-that-failed-in-cold-weather/reolink-doorbell.jpeg rename to src/routes/posts/(2026)/the-privacy-friendly-video-doorbell-with-flawed-person-detection/reolink-doorbell.jpeg