your personal website on atproto - mirror blento.app
25
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'main' into listenbrainz

Florian 444ae50b b3b58020

+1537 -928
+934 -793
pnpm-lock.yaml
··· 25 25 version: 4.2.1 26 26 '@atcute/identity-resolver': 27 27 specifier: ^1.2.2 28 - version: 1.2.2(@atcute/identity@1.1.4) 28 + version: 1.2.2(@atcute/identity@1.1.3) 29 29 '@atcute/lexicons': 30 30 specifier: ^1.2.9 31 31 version: 1.2.9 32 32 '@atcute/oauth-browser-client': 33 33 specifier: ^3.0.0 34 - version: 3.0.0(@atcute/identity@1.1.4) 34 + version: 3.0.0(@atcute/identity@1.1.3) 35 35 '@atcute/standard-site': 36 36 specifier: ^1.0.1 37 37 version: 1.0.1 ··· 40 40 version: 1.1.2 41 41 '@cloudflare/workers-types': 42 42 specifier: ^4.20260313.1 43 - version: 4.20260317.1 43 + version: 4.20260313.1 44 44 '@ethercorps/sveltekit-og': 45 45 specifier: ^4.2.1 46 - version: 4.2.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1))) 46 + version: 4.2.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1))) 47 47 '@floating-ui/dom': 48 48 specifier: ^1.7.6 49 49 version: 1.7.6 50 50 '@foxui/3d': 51 51 specifier: ^0.8.0 52 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 52 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 53 53 '@foxui/colors': 54 54 specifier: ^0.8.0 55 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 55 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 56 56 '@foxui/core': 57 57 specifier: ^0.8.0 58 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 58 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 59 59 '@foxui/social': 60 60 specifier: ^0.8.0 61 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 61 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 62 62 '@foxui/time': 63 63 specifier: ^0.8.0 64 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 64 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 65 65 '@foxui/visual': 66 66 specifier: ^0.8.0 67 - version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 67 + version: 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 68 68 '@internationalized/date': 69 69 specifier: ^3.12.0 70 70 version: 3.12.0 71 71 '@number-flow/svelte': 72 72 specifier: ^0.4.0 73 - version: 0.4.0(svelte@5.54.1) 73 + version: 0.4.0(svelte@5.53.11) 74 74 '@tailwindcss/typography': 75 75 specifier: ^0.5.19 76 - version: 0.5.19(tailwindcss@4.2.2) 76 + version: 0.5.19(tailwindcss@4.2.1) 77 77 '@threlte/core': 78 78 specifier: ^8.4.1 79 - version: 8.5.0(svelte@5.54.1)(three@0.183.2) 79 + version: 8.4.1(svelte@5.53.11)(three@0.183.2) 80 80 '@threlte/extras': 81 81 specifier: ^9.8.1 82 - version: 9.9.0(@types/three@0.183.1)(svelte@5.54.1)(three@0.183.2) 82 + version: 9.8.1(@types/three@0.183.1)(svelte@5.53.11)(three@0.183.2) 83 83 '@tiptap/core': 84 84 specifier: ^3.20.1 85 - version: 3.20.4(@tiptap/pm@3.20.4) 85 + version: 3.20.1(@tiptap/pm@3.20.1) 86 86 '@tiptap/extension-bubble-menu': 87 87 specifier: ^3.20.1 88 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 88 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 89 89 '@tiptap/extension-code-block-lowlight': 90 90 specifier: ^3.20.1 91 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(highlight.js@11.11.1)(lowlight@3.3.0) 91 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(highlight.js@11.11.1)(lowlight@3.3.0) 92 92 '@tiptap/extension-document': 93 93 specifier: ^3.20.1 94 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 94 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 95 95 '@tiptap/extension-image': 96 96 specifier: ^3.20.1 97 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 97 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 98 98 '@tiptap/extension-link': 99 99 specifier: ^3.20.1 100 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 100 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 101 101 '@tiptap/extension-paragraph': 102 102 specifier: ^3.20.1 103 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 103 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 104 104 '@tiptap/extension-placeholder': 105 105 specifier: ^3.20.1 106 - version: 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 106 + version: 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 107 107 '@tiptap/extension-text': 108 108 specifier: ^3.20.1 109 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 109 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 110 110 '@tiptap/extension-typography': 111 111 specifier: ^3.20.1 112 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 112 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 113 113 '@tiptap/extension-underline': 114 114 specifier: ^3.20.1 115 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 115 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 116 116 '@tiptap/markdown': 117 117 specifier: ^3.20.1 118 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 118 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 119 119 '@tiptap/pm': 120 120 specifier: ^3.20.1 121 - version: 3.20.4 121 + version: 3.20.1 122 122 '@tiptap/starter-kit': 123 123 specifier: ^3.20.1 124 - version: 3.20.4 124 + version: 3.20.1 125 125 '@tiptap/suggestion': 126 126 specifier: ^3.20.1 127 - version: 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 127 + version: 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 128 128 '@types/three': 129 129 specifier: ^0.183.1 130 130 version: 0.183.1 131 131 bits-ui: 132 132 specifier: ^2.16.3 133 - version: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 133 + version: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 134 134 clsx: 135 135 specifier: ^2.1.1 136 136 version: 2.1.1 ··· 154 154 version: 3.3.0 155 155 maplibre-gl: 156 156 specifier: ^5.20.0 157 - version: 5.21.0 157 + version: 5.20.0 158 158 marked: 159 159 specifier: ^17.0.4 160 - version: 17.0.5 160 + version: 17.0.4 161 161 perfect-freehand: 162 162 specifier: ^1.2.3 163 163 version: 1.2.3 ··· 172 172 version: 2.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 173 173 simple-icons: 174 174 specifier: ^16.11.0 175 - version: 16.12.0 175 + version: 16.11.0 176 176 svelte-boring-avatars: 177 177 specifier: ^1.2.6 178 178 version: 1.2.6 179 179 svelte-sonner: 180 180 specifier: ^1.1.0 181 - version: 1.1.0(svelte@5.54.1) 181 + version: 1.1.0(svelte@5.53.11) 182 182 svelte-tiptap: 183 183 specifier: ^3.0.1 184 - version: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-bubble-menu@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extension-floating-menu@3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(svelte@5.54.1) 184 + version: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-bubble-menu@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extension-floating-menu@3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(svelte@5.53.11) 185 185 tailwind-merge: 186 186 specifier: ^3.5.0 187 187 version: 3.5.0 188 188 tailwind-variants: 189 189 specifier: ^3.2.2 190 - version: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2) 190 + version: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.1) 191 191 tailwindcss-animate: 192 192 specifier: ^1.0.7 193 - version: 1.0.7(tailwindcss@4.2.2) 193 + version: 1.0.7(tailwindcss@4.2.1) 194 194 three: 195 195 specifier: ^0.183.2 196 196 version: 0.183.2 ··· 199 199 version: 7.2.2 200 200 wrangler: 201 201 specifier: ^4.73.0 202 - version: 4.76.0(@cloudflare/workers-types@4.20260317.1) 202 + version: 4.73.0(@cloudflare/workers-types@4.20260313.1) 203 203 devDependencies: 204 204 '@eslint/compat': 205 205 specifier: ^2.0.3 206 - version: 2.0.3(eslint@10.1.0(jiti@2.6.1)) 206 + version: 2.0.3(eslint@10.0.3(jiti@2.6.1)) 207 207 '@eslint/js': 208 208 specifier: ^10.0.1 209 - version: 10.0.1(eslint@10.1.0(jiti@2.6.1)) 209 + version: 10.0.1(eslint@10.0.3(jiti@2.6.1)) 210 210 '@sveltejs/adapter-cloudflare': 211 211 specifier: ^7.2.8 212 - version: 7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(wrangler@4.76.0(@cloudflare/workers-types@4.20260317.1)) 212 + version: 7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(wrangler@4.73.0(@cloudflare/workers-types@4.20260313.1)) 213 213 '@sveltejs/kit': 214 214 specifier: ^2.55.0 215 - version: 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 215 + version: 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 216 216 '@sveltejs/vite-plugin-svelte': 217 217 specifier: ^7.0.0 218 - version: 7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 218 + version: 7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 219 219 '@tailwindcss/forms': 220 220 specifier: ^0.5.11 221 - version: 0.5.11(tailwindcss@4.2.2) 221 + version: 0.5.11(tailwindcss@4.2.1) 222 222 '@tailwindcss/vite': 223 223 specifier: ^4.2.1 224 - version: 4.2.2(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 224 + version: 4.2.1(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 225 225 '@types/turndown': 226 226 specifier: ^5.0.6 227 227 version: 5.0.6 228 228 eslint: 229 229 specifier: ^10.0.3 230 - version: 10.1.0(jiti@2.6.1) 230 + version: 10.0.3(jiti@2.6.1) 231 231 eslint-config-prettier: 232 232 specifier: ^10.1.8 233 - version: 10.1.8(eslint@10.1.0(jiti@2.6.1)) 233 + version: 10.1.8(eslint@10.0.3(jiti@2.6.1)) 234 234 eslint-plugin-svelte: 235 235 specifier: ^3.15.2 236 - version: 3.16.0(eslint@10.1.0(jiti@2.6.1))(svelte@5.54.1) 236 + version: 3.15.2(eslint@10.0.3(jiti@2.6.1))(svelte@5.53.11) 237 237 globals: 238 238 specifier: ^17.4.0 239 239 version: 17.4.0 ··· 242 242 version: 3.8.1 243 243 prettier-plugin-svelte: 244 244 specifier: ^3.5.1 245 - version: 3.5.1(prettier@3.8.1)(svelte@5.54.1) 245 + version: 3.5.1(prettier@3.8.1)(svelte@5.53.11) 246 246 prettier-plugin-tailwindcss: 247 247 specifier: ^0.7.2 248 - version: 0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.54.1))(prettier@3.8.1) 248 + version: 0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.53.11))(prettier@3.8.1) 249 249 svelte: 250 250 specifier: ^5.53.11 251 - version: 5.54.1 251 + version: 5.53.11 252 252 svelte-check: 253 253 specifier: ^4.4.5 254 - version: 4.4.5(picomatch@4.0.3)(svelte@5.54.1)(typescript@5.9.3) 254 + version: 4.4.5(picomatch@4.0.3)(svelte@5.53.11)(typescript@5.9.3) 255 255 svelte-maplibre-gl: 256 256 specifier: ^1.0.3 257 - version: 1.0.3(maplibre-gl@5.21.0)(svelte@5.54.1) 257 + version: 1.0.3(maplibre-gl@5.20.0)(svelte@5.53.11) 258 258 tailwindcss: 259 259 specifier: ^4.2.1 260 - version: 4.2.2 260 + version: 4.2.1 261 261 typescript: 262 262 specifier: ^5.9.3 263 263 version: 5.9.3 264 264 typescript-eslint: 265 265 specifier: ^8.57.0 266 - version: 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 266 + version: 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 267 267 valibot: 268 268 specifier: ^1.3.1 269 269 version: 1.3.1(typescript@5.9.3) 270 270 vite: 271 271 specifier: ^8.0.0 272 - version: 8.0.1(esbuild@0.27.3)(jiti@2.6.1) 272 + version: 8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1) 273 273 274 274 packages: 275 275 ··· 293 293 peerDependencies: 294 294 '@atcute/identity': ^1.0.0 295 295 296 - '@atcute/identity@1.1.4': 297 - resolution: {integrity: sha512-RCw1IqflfuSYCxK5m0lZCm0UnvIzcUnuhngiBhJEJb9a9Mc2SEf1xP3H8N5r8pvEH1LoAYd6/zrvCNU+uy9esw==} 296 + '@atcute/identity@1.1.3': 297 + resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==} 298 298 299 299 '@atcute/lexicons@1.2.9': 300 300 resolution: {integrity: sha512-/RRHm2Cw9o8Mcsrq0eo8fjS9okKYLGfuFwrQ0YoP/6sdSDsXshaTLJsvLlcUcaDaSJ1YFOuHIo3zr2Om2F/16g==} 301 301 302 - '@atcute/multibase@1.2.0': 303 - resolution: {integrity: sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==} 302 + '@atcute/multibase@1.1.8': 303 + resolution: {integrity: sha512-pJgtImMZKCjqwRbu+2GzB+4xQjKBXDwdZOzeqe0u97zYKRGftpGYGvYv3+pMe2xXe+msDyu7Nv8iJp+U14otTA==} 304 304 305 305 '@atcute/oauth-browser-client@3.0.0': 306 306 resolution: {integrity: sha512-7AbKV8tTe7aRJNJV7gCcWHSVEADb2nr58O1p7dQsf73HSe9pvlBkj/Vk1yjjtH691uAVYkwhHSh0bC7D8XdwJw==} ··· 329 329 '@atcute/util-fetch@1.0.5': 330 330 resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==} 331 331 332 - '@atcute/util-text@1.2.0': 333 - resolution: {integrity: sha512-b8WSh+Z7K601eUFFmTFj8QPKDO8Ic0VDDj63sdKzpkm+ySQKsYT5nXekViGqFVKbyKj1V5FyvZvgXad6/aI4QQ==} 332 + '@atcute/util-text@1.1.1': 333 + resolution: {integrity: sha512-JH0SxzUQJAmbOBTYyhxQbkkI6M33YpjlVLEcbP5GYt43xgFArzV0FJVmEpvIj0kjsmphHB45b6IitdvxPdec9w==} 334 334 335 335 '@badrap/valita@0.4.6': 336 336 resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} ··· 340 340 resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} 341 341 engines: {node: '>=18.0.0'} 342 342 343 - '@cloudflare/unenv-preset@2.16.0': 344 - resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==} 343 + '@cloudflare/unenv-preset@2.15.0': 344 + resolution: {integrity: sha512-EGYmJaGZKWl+X8tXxcnx4v2bOZSjQeNI5dWFeXivgX9+YCT69AkzHHwlNbVpqtEUTbew8eQurpyOpeN8fg00nw==} 345 345 peerDependencies: 346 346 unenv: 2.0.0-rc.24 347 347 workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0 ··· 349 349 workerd: 350 350 optional: true 351 351 352 - '@cloudflare/workerd-darwin-64@1.20260317.1': 353 - resolution: {integrity: sha512-8hjh3sPMwY8M/zedq3/sXoA2Q4BedlGufn3KOOleIG+5a4ReQKLlUah140D7J6zlKmYZAFMJ4tWC7hCuI/s79g==} 352 + '@cloudflare/workerd-darwin-64@1.20260312.1': 353 + resolution: {integrity: sha512-HUAtDWaqUduS6yasV6+NgsK7qBpP1qGU49ow/Wb117IHjYp+PZPUGReDYocpB4GOMRoQlvdd4L487iFxzdARpw==} 354 354 engines: {node: '>=16'} 355 355 cpu: [x64] 356 356 os: [darwin] 357 357 358 - '@cloudflare/workerd-darwin-arm64@1.20260317.1': 359 - resolution: {integrity: sha512-M/MnNyvO5HMgoIdr3QHjdCj2T1ki9gt0vIUnxYxBu9ISXS/jgtMl6chUVPJ7zHYBn9MyYr8ByeN6frjYxj0MGg==} 358 + '@cloudflare/workerd-darwin-arm64@1.20260312.1': 359 + resolution: {integrity: sha512-DOn7TPTHSxJYfi4m4NYga/j32wOTqvJf/pY4Txz5SDKWIZHSTXFyGz2K4B+thoPWLop/KZxGoyTv7db0mk/qyw==} 360 360 engines: {node: '>=16'} 361 361 cpu: [arm64] 362 362 os: [darwin] 363 363 364 - '@cloudflare/workerd-linux-64@1.20260317.1': 365 - resolution: {integrity: sha512-1ltuEjkRcS3fsVF7CxsKlWiRmzq2ZqMfqDN0qUOgbUwkpXsLVJsXmoblaLf5OP00ELlcgF0QsN0p2xPEua4Uug==} 364 + '@cloudflare/workerd-linux-64@1.20260312.1': 365 + resolution: {integrity: sha512-TdkIh3WzPXYHuvz7phAtFEEvAxvFd30tHrm4gsgpw0R0F5b8PtoM3hfL2uY7EcBBWVYUBtkY2ahDYFfufnXw/g==} 366 366 engines: {node: '>=16'} 367 367 cpu: [x64] 368 368 os: [linux] 369 369 370 - '@cloudflare/workerd-linux-arm64@1.20260317.1': 371 - resolution: {integrity: sha512-3QrNnPF1xlaNwkHpasvRvAMidOvQs2NhXQmALJrEfpIJ/IDL2la8g499yXp3eqhG3hVMCB07XVY149GTs42Xtw==} 370 + '@cloudflare/workerd-linux-arm64@1.20260312.1': 371 + resolution: {integrity: sha512-kNauZhL569Iy94t844OMwa1zP6zKFiL3xiJ4tGLS+TFTEfZ3pZsRH6lWWOtkXkjTyCmBEOog0HSEKjIV4oAffw==} 372 372 engines: {node: '>=16'} 373 373 cpu: [arm64] 374 374 os: [linux] 375 375 376 - '@cloudflare/workerd-windows-64@1.20260317.1': 377 - resolution: {integrity: sha512-MfZTz+7LfuIpMGTa3RLXHX8Z/pnycZLItn94WRdHr8LPVet+C5/1Nzei399w/jr3+kzT4pDKk26JF/tlI5elpQ==} 376 + '@cloudflare/workerd-windows-64@1.20260312.1': 377 + resolution: {integrity: sha512-5dBrlSK+nMsZy5bYQpj8t9iiQNvCRlkm9GGvswJa9vVU/1BNO4BhJMlqOLWT24EmFyApZ+kaBiPJMV8847NDTg==} 378 378 engines: {node: '>=16'} 379 379 cpu: [x64] 380 380 os: [win32] 381 381 382 - '@cloudflare/workers-types@4.20260317.1': 383 - resolution: {integrity: sha512-+G4eVwyCpm8Au1ex8vQBCuA9wnwqetz4tPNRoB/53qvktERWBRMQnrtvC1k584yRE3emMThtuY0gWshvSJ++PQ==} 382 + '@cloudflare/workers-types@4.20260313.1': 383 + resolution: {integrity: sha512-jMEeX3RKfOSVqqXRKr/ulgglcTloeMzSH3FdzIfqJHtvc12/ELKd5Ldsg8ZHahKX/4eRxYdw3kbzb8jLXbq/jQ==} 384 384 385 385 '@cspotcode/source-map-support@0.8.1': 386 386 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} ··· 389 389 '@dimforge/rapier3d-compat@0.12.0': 390 390 resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==} 391 391 392 - '@emnapi/core@1.9.1': 393 - resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} 392 + '@emnapi/core@1.9.0': 393 + resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} 394 394 395 - '@emnapi/runtime@1.9.1': 396 - resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} 395 + '@emnapi/runtime@1.9.0': 396 + resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==} 397 397 398 398 '@emnapi/wasi-threads@1.2.0': 399 399 resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} ··· 856 856 '@maplibre/geojson-vt@5.0.4': 857 857 resolution: {integrity: sha512-KGg9sma45S+stfH9vPCJk1J0lSDLWZgCT9Y8u8qWZJyjFlP8MNP1WGTxIMYJZjDvVT3PDn05kN1C95Sut1HpgQ==} 858 858 859 - '@maplibre/geojson-vt@6.0.4': 860 - resolution: {integrity: sha512-HYv3POhMRCdhP3UPPATM/hfcy6/WuVIf5FKboH8u/ZuFMTnAIcSVlq5nfOqroLokd925w2QtE7YwquFOIacwVQ==} 859 + '@maplibre/geojson-vt@6.0.2': 860 + resolution: {integrity: sha512-OnXnV2m1yBULKOlUanNFTiOeXCktvWYY4yWoHVETlp6ShJGUhY3DNt9XzPByL24h4JcoJRccPBlMhH1o8cvmyQ==} 861 861 862 862 '@maplibre/maplibre-gl-style-spec@24.7.0': 863 863 resolution: {integrity: sha512-Ed7rcKYU5iELfablg9Mj+TVCsXsPBgdMyXPRAxb2v7oWg9YJnpQdZ5msDs1LESu/mtXy3Z48Vdppv2t/x5kAhw==} 864 864 hasBin: true 865 865 866 - '@maplibre/mlt@1.1.8': 867 - resolution: {integrity: sha512-8vtfYGidr1rNkv5IwIoU2lfe3Oy+Wa8HluzQYcQi9cveU9K3pweAal/poQj4GJ0K/EW4bTQp2wVAs09g2yDRZg==} 866 + '@maplibre/mlt@1.1.7': 867 + resolution: {integrity: sha512-HZSsXrgn2V6T3o0qklMwKERfKaAxjO8shmiFnVygCtXTg4SPKWVX+U99RkvxUfCsjYBEcT4ltor8lSlBSCca7Q==} 868 868 869 869 '@maplibre/vt-pbf@4.3.0': 870 870 resolution: {integrity: sha512-jIvp8F5hQCcreqOOpEt42TJMUlsrEcpf/kI1T2v85YrQRV6PPXUcEXUg5karKtH6oh47XJZ4kHu56pUkOuqA7w==} ··· 880 880 peerDependencies: 881 881 svelte: ^4 || ^5 882 882 883 - '@oxc-project/types@0.120.0': 884 - resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} 883 + '@oxc-project/runtime@0.115.0': 884 + resolution: {integrity: sha512-Rg8Wlt5dCbXhQnsXPrkOjL1DTSvXLgb2R/KYfnf1/K+R0k6UMLEmbQXPM+kwrWqSmWA2t0B1EtHy2/3zikQpvQ==} 885 + engines: {node: ^20.19.0 || >=22.12.0} 886 + 887 + '@oxc-project/types@0.115.0': 888 + resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} 885 889 886 890 '@polka/url@1.0.0-next.29': 887 891 resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} ··· 902 906 resolution: {integrity: sha512-FqALmHI8D4o6lk/LRWDnhw95z5eO+eAa6ORjVg09YRR7BkcM6oPHU9uyC0gtQG5vpFLvgpeU4+zEAz2H8APHNw==} 903 907 engines: {node: '>= 10'} 904 908 905 - '@rolldown/binding-android-arm64@1.0.0-rc.10': 906 - resolution: {integrity: sha512-jOHxwXhxmFKuXztiu1ORieJeTbx5vrTkcOkkkn2d35726+iwhrY1w/+nYY/AGgF12thg33qC3R1LMBF5tHTZHg==} 909 + '@rolldown/binding-android-arm64@1.0.0-rc.9': 910 + resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} 907 911 engines: {node: ^20.19.0 || >=22.12.0} 908 912 cpu: [arm64] 909 913 os: [android] 910 914 911 - '@rolldown/binding-darwin-arm64@1.0.0-rc.10': 912 - resolution: {integrity: sha512-gED05Teg/vtTZbIJBc4VNMAxAFDUPkuO/rAIyyxZjTj1a1/s6z5TII/5yMGZ0uLRCifEtwUQn8OlYzuYc0m70w==} 915 + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': 916 + resolution: {integrity: sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==} 913 917 engines: {node: ^20.19.0 || >=22.12.0} 914 918 cpu: [arm64] 915 919 os: [darwin] 916 920 917 - '@rolldown/binding-darwin-x64@1.0.0-rc.10': 918 - resolution: {integrity: sha512-rI15NcM1mA48lqrIxVkHfAqcyFLcQwyXWThy+BQ5+mkKKPvSO26ir+ZDp36AgYoYVkqvMcdS8zOE6SeBsR9e8A==} 921 + '@rolldown/binding-darwin-x64@1.0.0-rc.9': 922 + resolution: {integrity: sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==} 919 923 engines: {node: ^20.19.0 || >=22.12.0} 920 924 cpu: [x64] 921 925 os: [darwin] 922 926 923 - '@rolldown/binding-freebsd-x64@1.0.0-rc.10': 924 - resolution: {integrity: sha512-XZRXHdTa+4ME1MuDVp021+doQ+z6Ei4CCFmNc5/sKbqb8YmkiJdj8QKlV3rCI0AJtAeSB5n0WGPuJWNL9p/L2w==} 927 + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': 928 + resolution: {integrity: sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==} 925 929 engines: {node: ^20.19.0 || >=22.12.0} 926 930 cpu: [x64] 927 931 os: [freebsd] 928 932 929 - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.10': 930 - resolution: {integrity: sha512-R0SQMRluISSLzFE20sPWYHVmJdDQnRyc/FzSCN72BqQmh2SOZUFG+N3/vBZpR4C6WpEUVYJLrYUXaj43sJsNLA==} 933 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': 934 + resolution: {integrity: sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==} 931 935 engines: {node: ^20.19.0 || >=22.12.0} 932 936 cpu: [arm] 933 937 os: [linux] 934 938 935 - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.10': 936 - resolution: {integrity: sha512-Y1reMrV/o+cwpduYhJuOE3OMKx32RMYCidf14y+HssARRmhDuWXJ4yVguDg2R/8SyyGNo+auzz64LnPK9Hq6jg==} 939 + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': 940 + resolution: {integrity: sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==} 937 941 engines: {node: ^20.19.0 || >=22.12.0} 938 942 cpu: [arm64] 939 943 os: [linux] 940 944 941 - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.10': 942 - resolution: {integrity: sha512-vELN+HNb2IzuzSBUOD4NHmP9yrGwl1DVM29wlQvx1OLSclL0NgVWnVDKl/8tEks79EFek/kebQKnNJkIAA4W2g==} 945 + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': 946 + resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} 943 947 engines: {node: ^20.19.0 || >=22.12.0} 944 948 cpu: [arm64] 945 949 os: [linux] 946 950 947 - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.10': 948 - resolution: {integrity: sha512-ZqrufYTgzxbHwpqOjzSsb0UV/aV2TFIY5rP8HdsiPTv/CuAgCRjM6s9cYFwQ4CNH+hf9Y4erHW1GjZuZ7WoI7w==} 951 + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': 952 + resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} 949 953 engines: {node: ^20.19.0 || >=22.12.0} 950 954 cpu: [ppc64] 951 955 os: [linux] 952 956 953 - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.10': 954 - resolution: {integrity: sha512-gSlmVS1FZJSRicA6IyjoRoKAFK7IIHBs7xJuHRSmjImqk3mPPWbR7RhbnfH2G6bcmMEllCt2vQ/7u9e6bBnByg==} 957 + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': 958 + resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} 955 959 engines: {node: ^20.19.0 || >=22.12.0} 956 960 cpu: [s390x] 957 961 os: [linux] 958 962 959 - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.10': 960 - resolution: {integrity: sha512-eOCKUpluKgfObT2pHjztnaWEIbUabWzk3qPZ5PuacuPmr4+JtQG4k2vGTY0H15edaTnicgU428XW/IH6AimcQw==} 963 + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': 964 + resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} 961 965 engines: {node: ^20.19.0 || >=22.12.0} 962 966 cpu: [x64] 963 967 os: [linux] 964 968 965 - '@rolldown/binding-linux-x64-musl@1.0.0-rc.10': 966 - resolution: {integrity: sha512-Xdf2jQbfQowJnLcgYfD/m0Uu0Qj5OdxKallD78/IPPfzaiaI4KRAwZzHcKQ4ig1gtg1SuzC7jovNiM2TzQsBXA==} 969 + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': 970 + resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} 967 971 engines: {node: ^20.19.0 || >=22.12.0} 968 972 cpu: [x64] 969 973 os: [linux] 970 974 971 - '@rolldown/binding-openharmony-arm64@1.0.0-rc.10': 972 - resolution: {integrity: sha512-o1hYe8hLi1EY6jgPFyxQgQ1wcycX+qz8eEbVmot2hFkgUzPxy9+kF0u0NIQBeDq+Mko47AkaFFaChcvZa9UX9Q==} 975 + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': 976 + resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} 973 977 engines: {node: ^20.19.0 || >=22.12.0} 974 978 cpu: [arm64] 975 979 os: [openharmony] 976 980 977 - '@rolldown/binding-wasm32-wasi@1.0.0-rc.10': 978 - resolution: {integrity: sha512-Ugv9o7qYJudqQO5Y5y2N2SOo6S4WiqiNOpuQyoPInnhVzCY+wi/GHltcLHypG9DEUYMB0iTB/huJrpadiAcNcA==} 981 + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': 982 + resolution: {integrity: sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==} 979 983 engines: {node: '>=14.0.0'} 980 984 cpu: [wasm32] 981 985 982 - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.10': 983 - resolution: {integrity: sha512-7UODQb4fQUNT/vmgDZBl3XOBAIOutP5R3O/rkxg0aLfEGQ4opbCgU5vOw/scPe4xOqBwL9fw7/RP1vAMZ6QlAQ==} 986 + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': 987 + resolution: {integrity: sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==} 984 988 engines: {node: ^20.19.0 || >=22.12.0} 985 989 cpu: [arm64] 986 990 os: [win32] 987 991 988 - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.10': 989 - resolution: {integrity: sha512-PYxKHMVHOb5NJuDL53vBUl1VwUjymDcYI6rzpIni0C9+9mTiJedvUxSk7/RPp7OOAm3v+EjgMu9bIy3N6b408w==} 992 + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': 993 + resolution: {integrity: sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==} 990 994 engines: {node: ^20.19.0 || >=22.12.0} 991 995 cpu: [x64] 992 996 os: [win32] 993 997 994 - '@rolldown/pluginutils@1.0.0-rc.10': 995 - resolution: {integrity: sha512-UkVDEFk1w3mveXeKgaTuYfKWtPbvgck1dT8TUG3bnccrH0XtLTuAyfCoks4Q/M5ZGToSVJTIQYCzy2g/atAOeg==} 998 + '@rolldown/pluginutils@1.0.0-rc.9': 999 + resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} 996 1000 997 1001 '@shuding/opentype.js@1.4.0-beta.0': 998 1002 resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} ··· 1003 1007 resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} 1004 1008 engines: {node: '>=18'} 1005 1009 1006 - '@speed-highlight/core@1.2.15': 1007 - resolution: {integrity: sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==} 1010 + '@speed-highlight/core@1.2.14': 1011 + resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} 1008 1012 1009 1013 '@standard-schema/spec@1.1.0': 1010 1014 resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} ··· 1051 1055 peerDependencies: 1052 1056 tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' 1053 1057 1054 - '@tailwindcss/node@4.2.2': 1055 - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} 1058 + '@tailwindcss/node@4.2.1': 1059 + resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} 1056 1060 1057 - '@tailwindcss/oxide-android-arm64@4.2.2': 1058 - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} 1061 + '@tailwindcss/oxide-android-arm64@4.2.1': 1062 + resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} 1059 1063 engines: {node: '>= 20'} 1060 1064 cpu: [arm64] 1061 1065 os: [android] 1062 1066 1063 - '@tailwindcss/oxide-darwin-arm64@4.2.2': 1064 - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} 1067 + '@tailwindcss/oxide-darwin-arm64@4.2.1': 1068 + resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==} 1065 1069 engines: {node: '>= 20'} 1066 1070 cpu: [arm64] 1067 1071 os: [darwin] 1068 1072 1069 - '@tailwindcss/oxide-darwin-x64@4.2.2': 1070 - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} 1073 + '@tailwindcss/oxide-darwin-x64@4.2.1': 1074 + resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==} 1071 1075 engines: {node: '>= 20'} 1072 1076 cpu: [x64] 1073 1077 os: [darwin] 1074 1078 1075 - '@tailwindcss/oxide-freebsd-x64@4.2.2': 1076 - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} 1079 + '@tailwindcss/oxide-freebsd-x64@4.2.1': 1080 + resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==} 1077 1081 engines: {node: '>= 20'} 1078 1082 cpu: [x64] 1079 1083 os: [freebsd] 1080 1084 1081 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': 1082 - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} 1085 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': 1086 + resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==} 1083 1087 engines: {node: '>= 20'} 1084 1088 cpu: [arm] 1085 1089 os: [linux] 1086 1090 1087 - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': 1088 - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} 1091 + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': 1092 + resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==} 1089 1093 engines: {node: '>= 20'} 1090 1094 cpu: [arm64] 1091 1095 os: [linux] 1092 1096 1093 - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': 1094 - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} 1097 + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': 1098 + resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} 1095 1099 engines: {node: '>= 20'} 1096 1100 cpu: [arm64] 1097 1101 os: [linux] 1098 1102 1099 - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': 1100 - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} 1103 + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': 1104 + resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} 1101 1105 engines: {node: '>= 20'} 1102 1106 cpu: [x64] 1103 1107 os: [linux] 1104 1108 1105 - '@tailwindcss/oxide-linux-x64-musl@4.2.2': 1106 - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} 1109 + '@tailwindcss/oxide-linux-x64-musl@4.2.1': 1110 + resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} 1107 1111 engines: {node: '>= 20'} 1108 1112 cpu: [x64] 1109 1113 os: [linux] 1110 1114 1111 - '@tailwindcss/oxide-wasm32-wasi@4.2.2': 1112 - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} 1115 + '@tailwindcss/oxide-wasm32-wasi@4.2.1': 1116 + resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} 1113 1117 engines: {node: '>=14.0.0'} 1114 1118 cpu: [wasm32] 1115 1119 bundledDependencies: ··· 1120 1124 - '@emnapi/wasi-threads' 1121 1125 - tslib 1122 1126 1123 - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': 1124 - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} 1127 + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': 1128 + resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==} 1125 1129 engines: {node: '>= 20'} 1126 1130 cpu: [arm64] 1127 1131 os: [win32] 1128 1132 1129 - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': 1130 - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} 1133 + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': 1134 + resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==} 1131 1135 engines: {node: '>= 20'} 1132 1136 cpu: [x64] 1133 1137 os: [win32] 1134 1138 1135 - '@tailwindcss/oxide@4.2.2': 1136 - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} 1139 + '@tailwindcss/oxide@4.2.1': 1140 + resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==} 1137 1141 engines: {node: '>= 20'} 1138 1142 1139 1143 '@tailwindcss/typography@0.5.19': ··· 1141 1145 peerDependencies: 1142 1146 tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' 1143 1147 1144 - '@tailwindcss/vite@4.2.2': 1145 - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} 1148 + '@tailwindcss/vite@4.2.1': 1149 + resolution: {integrity: sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==} 1146 1150 peerDependencies: 1147 - vite: ^5.2.0 || ^6 || ^7 || ^8 1151 + vite: ^5.2.0 || ^6 || ^7 1148 1152 1149 1153 '@takumi-rs/core-darwin-arm64@0.55.4': 1150 1154 resolution: {integrity: sha512-LH/X/ul19DActLGcBpXnxH3OBEq8qOgPD56hNHAJMbnCRxAO6TDaIh2U7WqPVliSkFk3jZfikbD21SIEpZrp8A==} ··· 1215 1219 peerDependencies: 1216 1220 three: '>=0.170.0' 1217 1221 1218 - '@threlte/core@8.5.0': 1219 - resolution: {integrity: sha512-gEG5lOu6Rk00ISm5JdlTuo1AuX5u5N3iQ+LdbTLCzqsQmkr2iPJ/aM3pJkn9NJCC98hkK3sysBLHIHJVu5jOIw==} 1222 + '@threlte/core@8.4.1': 1223 + resolution: {integrity: sha512-wjYhAQmT3nHwtLDJUYFpf1wW0n/igjCzrShw9vOtHx1SMtvxzaEigZMseNHn8wfzQuoOxhp/ufFJJnM2+HdHjQ==} 1220 1224 peerDependencies: 1221 1225 svelte: '>=5' 1222 1226 three: '>=0.160' 1223 1227 1224 - '@threlte/extras@9.9.0': 1225 - resolution: {integrity: sha512-cTYXEfK+P2zj0eeBawkwZNVWyBMsoDuY341SU1z34KQcgCOwZDOIwlkJV+05f4AJMfgufSiT/582rOrdcuu9dQ==} 1228 + '@threlte/extras@9.8.1': 1229 + resolution: {integrity: sha512-GNpCtTugDR5JJCYIUJ28P6Onr19z43GqAUBGlUEu05aNaJ4PVyz7em7SRwHNBQEpIjBx/tLVNdd7XoCUKRSFVg==} 1226 1230 peerDependencies: 1227 1231 svelte: '>=5' 1228 1232 three: '>=0.160' 1229 1233 1230 - '@tiptap/core@3.20.4': 1231 - resolution: {integrity: sha512-3i/DG89TFY/b34T5P+j35UcjYuB5d3+9K8u6qID+iUqNPiza015HPIZLuPfE5elNwVdV3EXIoPo0LLeBLgXXAg==} 1234 + '@tiptap/core@3.20.1': 1235 + resolution: {integrity: sha512-SwkPEWIfaDEZjC8SEIi4kZjqIYUbRgLUHUuQezo5GbphUNC8kM1pi3C3EtoOPtxXrEbY6e4pWEzW54Pcrd+rVA==} 1232 1236 peerDependencies: 1233 - '@tiptap/pm': ^3.20.4 1237 + '@tiptap/pm': ^3.20.1 1234 1238 1235 - '@tiptap/extension-blockquote@3.20.4': 1236 - resolution: {integrity: sha512-9sskyyhYj2oKat//lyZVXCp9YrPt4oJAZnGHYWXS0xlskjsLElrfKKlM4vpbhGss3VrhQRoEGqWLnIaJYPF1zw==} 1239 + '@tiptap/extension-blockquote@3.20.1': 1240 + resolution: {integrity: sha512-WzNXk/63PQI2fav4Ta6P0GmYRyu8Gap1pV3VUqaVK829iJ6Zt1T21xayATHEHWMK27VT1GLPJkx9Ycr2jfDyQw==} 1237 1241 peerDependencies: 1238 - '@tiptap/core': ^3.20.4 1242 + '@tiptap/core': ^3.20.1 1239 1243 1240 - '@tiptap/extension-bold@3.20.4': 1241 - resolution: {integrity: sha512-Md7/mNAeJCY+VLJc8JRGI+8XkVPKiOGB1NgqQPdh3aYtxXQDChQOZoJEQl6TuudDxZ85bLZB67NjZlx3jo8/0g==} 1244 + '@tiptap/extension-bold@3.20.1': 1245 + resolution: {integrity: sha512-fz++Qv6Rk/Hov0IYG/r7TJ1Y4zWkuGONe0UN5g0KY32NIMg3HeOHicbi4xsNWTm9uAOl3eawWDkezEMrleObMw==} 1242 1246 peerDependencies: 1243 - '@tiptap/core': ^3.20.4 1247 + '@tiptap/core': ^3.20.1 1244 1248 1245 - '@tiptap/extension-bubble-menu@3.20.4': 1246 - resolution: {integrity: sha512-EXywPlI8wjPcAb8ozymgVhjtMjFrnhtoyNTy8ZcObdpUi5CdO9j892Y7aPbKe5hLhlDpvJk7rMfir4FFKEmfng==} 1249 + '@tiptap/extension-bubble-menu@3.20.1': 1250 + resolution: {integrity: sha512-XaPvO6aCoWdFnCBus0s88lnj17NR/OopV79i8Qhgz3WMR0vrsL5zsd45l0lZuu9pSvm5VW47SoxakkJiZC1suw==} 1247 1251 peerDependencies: 1248 - '@tiptap/core': ^3.20.4 1249 - '@tiptap/pm': ^3.20.4 1252 + '@tiptap/core': ^3.20.1 1253 + '@tiptap/pm': ^3.20.1 1250 1254 1251 - '@tiptap/extension-bullet-list@3.20.4': 1252 - resolution: {integrity: sha512-1RTGrur1EKoxfnLZ3M6xeNj8GITAz74jH2DHGcjLsd2Xr7Q7BozGaIq6GkkvKguMwbI1zCOxTHFCpUETXAIQQA==} 1255 + '@tiptap/extension-bullet-list@3.20.1': 1256 + resolution: {integrity: sha512-mbrlvOZo5OF3vLhp+3fk9KuL/6J/wsN0QxF6ZFRAHzQ9NkJdtdfARcBeBnkWXGN8inB6YxbTGY1/E4lmBkOpOw==} 1253 1257 peerDependencies: 1254 - '@tiptap/extension-list': ^3.20.4 1258 + '@tiptap/extension-list': ^3.20.1 1255 1259 1256 - '@tiptap/extension-code-block-lowlight@3.20.4': 1257 - resolution: {integrity: sha512-YE+OxuvQx3oXGzSkhRyQzCGXOWrVntdTUQgRfOu5Ky+ZtScPWCVsTwUP8SBGBQjqp3sbbBehZznipbUIpWWJDA==} 1260 + '@tiptap/extension-code-block-lowlight@3.20.1': 1261 + resolution: {integrity: sha512-QJXZGN43HArGNl5HeiPF1fXZZs6FWJwG3wTr9v+OwsM8EX3ixyblIoeY0/nmFBlQqci49ZA/KfCqVwfGNlRj5A==} 1258 1262 peerDependencies: 1259 - '@tiptap/core': ^3.20.4 1260 - '@tiptap/extension-code-block': ^3.20.4 1261 - '@tiptap/pm': ^3.20.4 1263 + '@tiptap/core': ^3.20.1 1264 + '@tiptap/extension-code-block': ^3.20.1 1265 + '@tiptap/pm': ^3.20.1 1262 1266 highlight.js: ^11 1263 1267 lowlight: ^2 || ^3 1264 1268 1265 - '@tiptap/extension-code-block@3.20.4': 1266 - resolution: {integrity: sha512-Zlw3FrXTy01+o1yISeX/LC+iJeHA+ym602bMXGmtA6lyl7QSOSO7WExweJ6xeJGhbCjldwT5al6fkRAs8iGJZg==} 1269 + '@tiptap/extension-code-block@3.20.1': 1270 + resolution: {integrity: sha512-vKejwBq+Nlj4Ybd3qOyDxIQKzYymdNH+8eXkKwGShk2nfLJIxq69DCyGvmuHgipIO1qcYPJ149UNpGN+YGcdmA==} 1267 1271 peerDependencies: 1268 - '@tiptap/core': ^3.20.4 1269 - '@tiptap/pm': ^3.20.4 1272 + '@tiptap/core': ^3.20.1 1273 + '@tiptap/pm': ^3.20.1 1270 1274 1271 - '@tiptap/extension-code@3.20.4': 1272 - resolution: {integrity: sha512-7j8Hi964bH1SZ9oLdZC1fkqWz27mliSDV7M8lmL/M14+Qw42D/VOAKS4Aw9OCFtHMlTsjLR6qsoVxL8Lpkt6NA==} 1275 + '@tiptap/extension-code@3.20.1': 1276 + resolution: {integrity: sha512-509DHINIA/Gg+eTG7TEkfsS8RUiPLH5xZNyLRT0A1oaoaJmECKfrV6aAm05IdfTyqDqz6LW5pbnX6DdUC4keug==} 1273 1277 peerDependencies: 1274 - '@tiptap/core': ^3.20.4 1278 + '@tiptap/core': ^3.20.1 1275 1279 1276 - '@tiptap/extension-document@3.20.4': 1277 - resolution: {integrity: sha512-zF1CIFVLt8MfSpWWnPwtGyxPOsT0xYM2qJKcXf2yZcTG37wDKmUi6heG53vGigIavbQlLaAFvs+1mNdOu2x/0A==} 1280 + '@tiptap/extension-document@3.20.1': 1281 + resolution: {integrity: sha512-9vrqdGmRV7bQCSY3NLgu7UhIwgOCDp4sKqMNsoNRX0aZ021QQMTvBQDPkiRkCf7MNsnWrNNnr52PVnULEn3vFQ==} 1278 1282 peerDependencies: 1279 - '@tiptap/core': ^3.20.4 1283 + '@tiptap/core': ^3.20.1 1280 1284 1281 - '@tiptap/extension-dropcursor@3.20.4': 1282 - resolution: {integrity: sha512-TgMwvZ8myXYdmd6bUV7qkpZXv7ZUiSmX/8eo+iPEzYo2CnDLAGvDKgC50nfq/g87SDvfBgPuAiBfFvsMQQWaTw==} 1285 + '@tiptap/extension-dropcursor@3.20.1': 1286 + resolution: {integrity: sha512-K18L9FX4znn+ViPSIbTLOGcIaXMx/gLNwAPE8wPLwswbHhQqdiY1zzdBw6drgOc1Hicvebo2dIoUlSXOZsOEcw==} 1283 1287 peerDependencies: 1284 - '@tiptap/extensions': ^3.20.4 1288 + '@tiptap/extensions': ^3.20.1 1285 1289 1286 - '@tiptap/extension-floating-menu@3.20.4': 1287 - resolution: {integrity: sha512-AaPTFhoO8DBIElJyd/RTVJjkctvJuL+GHURX0npbtTxXq5HXbebVwf2ARNR7jMd/GThsmBaNJiGxZg4A2oeDqQ==} 1290 + '@tiptap/extension-floating-menu@3.20.1': 1291 + resolution: {integrity: sha512-BeDC6nfOesIMn5pFuUnkEjOxGv80sOJ8uk1mdt9/3Fkvra8cB9NIYYCVtd6PU8oQFmJ8vFqPrRkUWrG5tbqnOg==} 1288 1292 peerDependencies: 1289 1293 '@floating-ui/dom': ^1.0.0 1290 - '@tiptap/core': ^3.20.4 1291 - '@tiptap/pm': ^3.20.4 1294 + '@tiptap/core': ^3.20.1 1295 + '@tiptap/pm': ^3.20.1 1292 1296 1293 - '@tiptap/extension-gapcursor@3.20.4': 1294 - resolution: {integrity: sha512-JJ6f1iQ1e0s4kISgq55U3UYGwWV/N9f0PYMtB6e3L+SBQjXnywaLK0g6vfN6IvTCC2vdIuqeSOX8VlSO97sJLw==} 1297 + '@tiptap/extension-gapcursor@3.20.1': 1298 + resolution: {integrity: sha512-kZOtttV6Ai8VUAgEng3h4WKFbtdSNJ6ps7r0cRPY+FctWhVmgNb/JJwwyC+vSilR7nRENAhrA/Cv/RxVlvLw+g==} 1295 1299 peerDependencies: 1296 - '@tiptap/extensions': ^3.20.4 1300 + '@tiptap/extensions': ^3.20.1 1297 1301 1298 - '@tiptap/extension-hard-break@3.20.4': 1299 - resolution: {integrity: sha512-gJbq58d8zB1gzyqVEopowej5CpW4/Fpg6oGJvlZxaCukqd0gJRWGC89K+jE62YA1Td4sfcKrekKvN7jm2y/ZUg==} 1302 + '@tiptap/extension-hard-break@3.20.1': 1303 + resolution: {integrity: sha512-9sKpmg/IIdlLXimYWUZ3PplIRcehv4Oc7V1miTqlnAthMzjMqigDkjjgte4JZV67RdnDJTQkRw8TklCAU28Emg==} 1300 1304 peerDependencies: 1301 - '@tiptap/core': ^3.20.4 1305 + '@tiptap/core': ^3.20.1 1302 1306 1303 - '@tiptap/extension-heading@3.20.4': 1304 - resolution: {integrity: sha512-xsnkmTGggJc5P2iCwS1lv8KFG31xC/GNPJKoi/3UH67j/lKDhA3AdtshsLeyv2FKtTtYDb8oV0IqzHB1MM6a7w==} 1307 + '@tiptap/extension-heading@3.20.1': 1308 + resolution: {integrity: sha512-unudyfQP6FxnyWinxvPqe/51DG91J6AaJm666RnAubgYMCgym+33kBftx4j4A6qf+ddWYbD00thMNKOnVLjAEQ==} 1305 1309 peerDependencies: 1306 - '@tiptap/core': ^3.20.4 1310 + '@tiptap/core': ^3.20.1 1307 1311 1308 - '@tiptap/extension-history@3.20.4': 1309 - resolution: {integrity: sha512-wpdbt06r18tJyvgEMNWYN9eEwugfeS3P0M1tjrfBzEcYESCfH8htWD6Mh5ZE1y9jl4FjiOCF9QkkHCuTyDBAJQ==} 1312 + '@tiptap/extension-history@3.20.1': 1313 + resolution: {integrity: sha512-ejETpNSByEZd6CtPIwOtACwG+FiCm0FD5hi/qMA01xWFkEO20B2EyGpc4NfKMQEfjbVOi+QY1QlXjqJXgOEx4w==} 1310 1314 peerDependencies: 1311 - '@tiptap/extensions': ^3.20.4 1315 + '@tiptap/extensions': ^3.20.1 1312 1316 1313 - '@tiptap/extension-horizontal-rule@3.20.4': 1314 - resolution: {integrity: sha512-y6joCi49haAA0bo3EGUY+dWUMHH1GPUc84hxrBY/0pMs+Bn+kQ1+DQJErZDTWGJrlHPWU/yekBZT72SNdp0DNA==} 1317 + '@tiptap/extension-horizontal-rule@3.20.1': 1318 + resolution: {integrity: sha512-rjFKFXNntdl0jay8oIGFvvykHlpyQTLmrH3Ag2fj3i8yh6MVvqhtaDomYQbw5sxECd5hBkL+T4n2d2DRuVw/QQ==} 1315 1319 peerDependencies: 1316 - '@tiptap/core': ^3.20.4 1317 - '@tiptap/pm': ^3.20.4 1320 + '@tiptap/core': ^3.20.1 1321 + '@tiptap/pm': ^3.20.1 1318 1322 1319 - '@tiptap/extension-image@3.20.4': 1320 - resolution: {integrity: sha512-57w2TevHQljTh6Xiry9duIm7NNOQAUSTwtwRn4GGLoKwHR8qXTxzp513ASrFOgR2kgs2TP471Au6RHf947P+jg==} 1323 + '@tiptap/extension-image@3.20.1': 1324 + resolution: {integrity: sha512-/GPFSLNdYSZQ0E6VBXSAk0UFtDdn98HT1Aa2tO+STELqc5jAdFB42dfFnTC6KQzTvcUOUYkE2S1Q22YC5H2XNQ==} 1321 1325 peerDependencies: 1322 - '@tiptap/core': ^3.20.4 1326 + '@tiptap/core': ^3.20.1 1323 1327 1324 - '@tiptap/extension-italic@3.20.4': 1325 - resolution: {integrity: sha512-4ZqiWr7cmqPFux8tj1ZLiYytyWf343IvQemNX6AvVWvscrJcrfj3YX4Le2BA0RW3A3M6RpLQXXozuF8vxYFDeQ==} 1328 + '@tiptap/extension-italic@3.20.1': 1329 + resolution: {integrity: sha512-ZYRX13Kt8tR8JOzSXirH3pRpi8x30o7LHxZY58uXBdUvr3tFzOkh03qbN523+diidSVeHP/aMd/+IrplHRkQug==} 1326 1330 peerDependencies: 1327 - '@tiptap/core': ^3.20.4 1331 + '@tiptap/core': ^3.20.1 1328 1332 1329 - '@tiptap/extension-link@3.20.4': 1330 - resolution: {integrity: sha512-JNDSkWrVdb8NSvbQXwHWvK5tCMbTWwOHFOweknQZ1JPK4dei9FJVofYQaHyW4bJBdcCjds3NZSnXE8DM9iAWmg==} 1333 + '@tiptap/extension-link@3.20.1': 1334 + resolution: {integrity: sha512-oYTTIgsQMqpkSnJAuAc+UtIKMuI4lv9e1y4LfI1iYm6NkEUHhONppU59smhxHLzb3Ww7YpDffbp5IgDTAiJztA==} 1331 1335 peerDependencies: 1332 - '@tiptap/core': ^3.20.4 1333 - '@tiptap/pm': ^3.20.4 1336 + '@tiptap/core': ^3.20.1 1337 + '@tiptap/pm': ^3.20.1 1334 1338 1335 - '@tiptap/extension-list-item@3.20.4': 1336 - resolution: {integrity: sha512-QoTc5RACXaZF+vIIBBxjGO7D0oWFUDgBKJCpvUZ0CoGGKosnfe4a9I5THFyLj4201cf0oUqgf1oZhTqETGxlVw==} 1339 + '@tiptap/extension-list-item@3.20.1': 1340 + resolution: {integrity: sha512-tzgnyTW82lYJkUnadYbatwkI9dLz/OWRSWuFpQPRje/ItmFMWuQ9c9NDD8qLbXPdEYnvrgSAA+ipCD/1G0qA0Q==} 1337 1341 peerDependencies: 1338 - '@tiptap/extension-list': ^3.20.4 1342 + '@tiptap/extension-list': ^3.20.1 1339 1343 1340 - '@tiptap/extension-list-keymap@3.20.4': 1341 - resolution: {integrity: sha512-RIqXM649+8IP7p/KVfaGlJiwjCylm1m6OPlaoM3K8O7oEOGRQzNeexexECCD2jsXRxew4E+vBNMD2orXqJmu8A==} 1344 + '@tiptap/extension-list-keymap@3.20.1': 1345 + resolution: {integrity: sha512-Dr0xsQKx0XPOgDg7xqoWwfv7FFwZ3WeF3eOjqh3rDXlNHMj1v+UW5cj1HLphrsAZHTrVTn2C+VWPJkMZrSbpvQ==} 1342 1346 peerDependencies: 1343 - '@tiptap/extension-list': ^3.20.4 1347 + '@tiptap/extension-list': ^3.20.1 1344 1348 1345 - '@tiptap/extension-list@3.20.4': 1346 - resolution: {integrity: sha512-X+5plTKhOioNcQ4KsAFJJSb/3+zR8Xhdpow4HzXtoV1KcbdDey1fhZdpsfkbrzCL0s6/wAgwZuAchCK7HujurQ==} 1349 + '@tiptap/extension-list@3.20.1': 1350 + resolution: {integrity: sha512-euBRAn0mkV7R2VEE+AuOt3R0j9RHEMFXamPFmtvTo8IInxDClusrm6mJoDjS8gCGAXsQCRiAe1SCQBPgGbOOwg==} 1347 1351 peerDependencies: 1348 - '@tiptap/core': ^3.20.4 1349 - '@tiptap/pm': ^3.20.4 1352 + '@tiptap/core': ^3.20.1 1353 + '@tiptap/pm': ^3.20.1 1350 1354 1351 - '@tiptap/extension-ordered-list@3.20.4': 1352 - resolution: {integrity: sha512-3budNL8BgBon3TcXZ4hjT0YpFvx1Ka3uSIECKDxHgES+OQcR+6cagxSb60gFEccf3Dr0PIwcVTY6g14lC1qKRQ==} 1355 + '@tiptap/extension-ordered-list@3.20.1': 1356 + resolution: {integrity: sha512-Y+3Ad7OwAdagqdYwCnbqf7/to5ypD4NnUNHA0TXRCs7cAHRA8AdgPoIcGFpaaSpV86oosNU3yfeJouYeroffog==} 1353 1357 peerDependencies: 1354 - '@tiptap/extension-list': ^3.20.4 1358 + '@tiptap/extension-list': ^3.20.1 1355 1359 1356 - '@tiptap/extension-paragraph@3.20.4': 1357 - resolution: {integrity: sha512-lm6fOScWuZAF/Sfp97igUwFd3L1QHIVLAWP5NVdh0DTLrEIt4rMBmsww+yOpMQRhvz2uTgMbMXynrimhzi/QVw==} 1360 + '@tiptap/extension-paragraph@3.20.1': 1361 + resolution: {integrity: sha512-QFrAtXNyv7JSnomMQc1nx5AnG9mMznfbYJAbdOQYVdbLtAzTfiTuNPNbQrufy5ZGtGaHxDCoaygu2QEfzaKG+Q==} 1358 1362 peerDependencies: 1359 - '@tiptap/core': ^3.20.4 1363 + '@tiptap/core': ^3.20.1 1360 1364 1361 - '@tiptap/extension-placeholder@3.20.4': 1362 - resolution: {integrity: sha512-GB0KWtqm83YHG8cnqBLijvUBm+xvLfQHDfFRRH2fb3EzH3eIsM9jKRC31ADT27RSV1zVpHMFGcP3/pWpdrN1Lw==} 1365 + '@tiptap/extension-placeholder@3.20.1': 1366 + resolution: {integrity: sha512-k+jfbCugYGuIFBdojukgEopGazIMOgHrw46FnyN2X/6ICOIjQP2rh2ObslrsUOsJYoEevxCsNF9hZl1HvWX66g==} 1363 1367 peerDependencies: 1364 - '@tiptap/extensions': ^3.20.4 1368 + '@tiptap/extensions': ^3.20.1 1365 1369 1366 - '@tiptap/extension-strike@3.20.4': 1367 - resolution: {integrity: sha512-It1Px9uDGTsVqyyg6cy7DigLoenljpQwqdI0jssM7QclZrHnsrye9fZxBBiiuCzzV1305MxKgHvratkHwqmVNA==} 1370 + '@tiptap/extension-strike@3.20.1': 1371 + resolution: {integrity: sha512-EYgyma10lpsY+rwbVQL9u+gA7hBlKLSMFH7Zgd37FSxukOjr+HE8iKPQQ+SwbGejyDsPlLT8Z5Jnuxo5Ng90Pg==} 1368 1372 peerDependencies: 1369 - '@tiptap/core': ^3.20.4 1373 + '@tiptap/core': ^3.20.1 1370 1374 1371 - '@tiptap/extension-text@3.20.4': 1372 - resolution: {integrity: sha512-jchJcBZixDEO2J66Zx5dchsI2mA6IYsROqF8P1poxL4ienH7RVQRCTsBNnSfIeOtREKKWeOU/tEs5fcpvvGwIQ==} 1375 + '@tiptap/extension-text@3.20.1': 1376 + resolution: {integrity: sha512-7PlIbYW8UenV6NPOXHmv8IcmPGlGx6HFq66RmkJAOJRPXPkTLAiX0N8rQtzUJ6jDEHqoJpaHFEHJw0xzW1yF+A==} 1373 1377 peerDependencies: 1374 - '@tiptap/core': ^3.20.4 1378 + '@tiptap/core': ^3.20.1 1375 1379 1376 - '@tiptap/extension-typography@3.20.4': 1377 - resolution: {integrity: sha512-78dlLJViuZehM2P5p9H3HRN6GMARvFQFkdnJrJsC6b6J7SN10ruytCMM7xnUnHlZElz19LU/0/+LDtMrOA814w==} 1380 + '@tiptap/extension-typography@3.20.1': 1381 + resolution: {integrity: sha512-iqgB46r391vGlTr61jl6EWKGtyvorgIr+5Iqrze5ZSU8An2ZT0R4CPUI0FcLAAe0PuK8tCLhKtAidNXQotkOiw==} 1378 1382 peerDependencies: 1379 - '@tiptap/core': ^3.20.4 1383 + '@tiptap/core': ^3.20.1 1380 1384 1381 - '@tiptap/extension-underline@3.20.4': 1382 - resolution: {integrity: sha512-0OjMc3FDujX16G+jhvqcY/mLot8SrNtDu8ggUwNLAfiI/QIvMVgk7giFD71DATC/4Nb8i/iwAEegTD8MxBIXCg==} 1385 + '@tiptap/extension-underline@3.20.1': 1386 + resolution: {integrity: sha512-fmHvDKzwCgnZUwRreq8tYkb1YyEwgzZ6QQkAQ0CsCRtvRMqzerr3Duz0Als4i8voZTuGDEL3VR6nAJbLAb/wPg==} 1383 1387 peerDependencies: 1384 - '@tiptap/core': ^3.20.4 1388 + '@tiptap/core': ^3.20.1 1385 1389 1386 - '@tiptap/extensions@3.20.4': 1387 - resolution: {integrity: sha512-8p6hVT65DjuQjtEdlH6ewX9SOJHlVQAOee3sWIJQmeJNRnZNvqPIBLleebUqDiljNTpxBv6s6QWkSTKgf3btwg==} 1390 + '@tiptap/extensions@3.20.1': 1391 + resolution: {integrity: sha512-JRc/v+OBH0qLTdvQ7HvHWTxGJH73QOf1MC0R8NhOX2QnAbg2mPFv1h+FjGa2gfLGuCXBdWQomjekWkUKbC4e5A==} 1388 1392 peerDependencies: 1389 - '@tiptap/core': ^3.20.4 1390 - '@tiptap/pm': ^3.20.4 1393 + '@tiptap/core': ^3.20.1 1394 + '@tiptap/pm': ^3.20.1 1391 1395 1392 - '@tiptap/markdown@3.20.4': 1393 - resolution: {integrity: sha512-1ARtZzJ1skQCZi4LyVSmImgg6JIIMP5dEs0FvHXS3a7M3O+uMOUvY1sWeggVZExg8DXoVyHd7BjRIpm7uNRuSw==} 1396 + '@tiptap/markdown@3.20.1': 1397 + resolution: {integrity: sha512-dNrtP7kmabDomgjv9G/6+JSFL6WraPaFbmKh1eHSYKdDGvIwBfJnVPTV2VS3bP1OuYJEDJN/2ydtiCHyOTrQsQ==} 1394 1398 peerDependencies: 1395 - '@tiptap/core': ^3.20.4 1396 - '@tiptap/pm': ^3.20.4 1399 + '@tiptap/core': ^3.20.1 1400 + '@tiptap/pm': ^3.20.1 1397 1401 1398 - '@tiptap/pm@3.20.4': 1399 - resolution: {integrity: sha512-rCHYSBToilBEuI6PtjziHDdRkABH/XqwJ7dG4Amn/SD3yGiZKYCiEApQlTUS2zZeo8DsLeuqqqB4vEOeD4OEPg==} 1402 + '@tiptap/pm@3.20.1': 1403 + resolution: {integrity: sha512-6kCiGLvpES4AxcEuOhb7HR7/xIeJWMjZlb6J7e8zpiIh5BoQc7NoRdctsnmFEjZvC19bIasccshHQ7H2zchWqw==} 1400 1404 1401 - '@tiptap/starter-kit@3.20.4': 1402 - resolution: {integrity: sha512-WcyK6hsTl8eBsQhQ+d9Sq8fYZKOYdL+D45MyH3hz583elXqJlW3h3JPFYb0o87gddGxn8Mm57OA/gA1zEdeDMw==} 1405 + '@tiptap/starter-kit@3.20.1': 1406 + resolution: {integrity: sha512-opqWxL/4OTEiqmVC0wsU4o3JhAf6LycJ2G/gRIZVAIFLljI9uHfpPMTFGxZ5w9IVVJaP5PJysfwW/635kKqkrw==} 1403 1407 1404 - '@tiptap/suggestion@3.20.4': 1405 - resolution: {integrity: sha512-7uqgLwjEAvsosrfoVrYVBQtAKI2pJFHOM8wgsQMLv1pQL8mfRz5ByD2xet4DOKb23q4mDvrvzp6z0kvCp0hMDw==} 1408 + '@tiptap/suggestion@3.20.1': 1409 + resolution: {integrity: sha512-ng7olbzgZhWvPJVJygNQK5153CjquR2eJXpkLq7bRjHlahvt4TH4tGFYvGdYZcXuzbe2g9RoqT7NaPGL9CUq9w==} 1406 1410 peerDependencies: 1407 - '@tiptap/core': ^3.20.4 1408 - '@tiptap/pm': ^3.20.4 1411 + '@tiptap/core': ^3.20.1 1412 + '@tiptap/pm': ^3.20.1 1409 1413 1410 1414 '@tweenjs/tween.js@23.1.3': 1411 1415 resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} ··· 1440 1444 '@types/mdurl@2.0.0': 1441 1445 resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 1442 1446 1447 + '@types/node@25.0.10': 1448 + resolution: {integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==} 1449 + 1443 1450 '@types/stats.js@0.17.4': 1444 1451 resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==} 1445 1452 ··· 1461 1468 '@types/webxr@0.5.24': 1462 1469 resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} 1463 1470 1464 - '@typescript-eslint/eslint-plugin@8.57.1': 1465 - resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==} 1471 + '@typescript-eslint/eslint-plugin@8.57.0': 1472 + resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==} 1466 1473 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1467 1474 peerDependencies: 1468 - '@typescript-eslint/parser': ^8.57.1 1475 + '@typescript-eslint/parser': ^8.57.0 1469 1476 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1470 1477 typescript: '>=4.8.4 <6.0.0' 1471 1478 1472 - '@typescript-eslint/parser@8.57.1': 1473 - resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==} 1479 + '@typescript-eslint/parser@8.57.0': 1480 + resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==} 1474 1481 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1475 1482 peerDependencies: 1476 1483 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1477 1484 typescript: '>=4.8.4 <6.0.0' 1478 1485 1479 - '@typescript-eslint/project-service@8.57.1': 1480 - resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} 1486 + '@typescript-eslint/project-service@8.57.0': 1487 + resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==} 1481 1488 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1482 1489 peerDependencies: 1483 1490 typescript: '>=4.8.4 <6.0.0' 1484 1491 1485 - '@typescript-eslint/scope-manager@8.57.1': 1486 - resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} 1492 + '@typescript-eslint/scope-manager@8.57.0': 1493 + resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==} 1487 1494 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1488 1495 1489 - '@typescript-eslint/tsconfig-utils@8.57.1': 1490 - resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} 1496 + '@typescript-eslint/tsconfig-utils@8.57.0': 1497 + resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==} 1491 1498 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1492 1499 peerDependencies: 1493 1500 typescript: '>=4.8.4 <6.0.0' 1494 1501 1495 - '@typescript-eslint/type-utils@8.57.1': 1496 - resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==} 1502 + '@typescript-eslint/type-utils@8.57.0': 1503 + resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==} 1497 1504 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1498 1505 peerDependencies: 1499 1506 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1500 1507 typescript: '>=4.8.4 <6.0.0' 1501 1508 1502 - '@typescript-eslint/types@8.57.1': 1503 - resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} 1509 + '@typescript-eslint/types@8.57.0': 1510 + resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==} 1504 1511 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1505 1512 1506 - '@typescript-eslint/typescript-estree@8.57.1': 1507 - resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} 1513 + '@typescript-eslint/typescript-estree@8.57.0': 1514 + resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==} 1508 1515 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1509 1516 peerDependencies: 1510 1517 typescript: '>=4.8.4 <6.0.0' 1511 1518 1512 - '@typescript-eslint/utils@8.57.1': 1513 - resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} 1519 + '@typescript-eslint/utils@8.57.0': 1520 + resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==} 1514 1521 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1515 1522 peerDependencies: 1516 1523 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 1517 1524 typescript: '>=4.8.4 <6.0.0' 1518 1525 1519 - '@typescript-eslint/visitor-keys@8.57.1': 1520 - resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} 1526 + '@typescript-eslint/visitor-keys@8.57.0': 1527 + resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} 1521 1528 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1522 1529 1523 1530 '@use-gesture/core@10.3.1': ··· 1629 1636 resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 1630 1637 engines: {node: '>=18'} 1631 1638 1632 - core-js@3.49.0: 1633 - resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} 1639 + core-js@3.48.0: 1640 + resolution: {integrity: sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==} 1634 1641 1635 1642 crelt@1.0.6: 1636 1643 resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} ··· 1731 1738 encoding-sniffer@0.2.1: 1732 1739 resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} 1733 1740 1734 - enhanced-resolve@5.20.1: 1735 - resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} 1741 + enhanced-resolve@5.20.0: 1742 + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} 1736 1743 engines: {node: '>=10.13.0'} 1737 1744 1738 1745 entities@4.5.0: ··· 1768 1775 peerDependencies: 1769 1776 eslint: '>=7.0.0' 1770 1777 1771 - eslint-plugin-svelte@3.16.0: 1772 - resolution: {integrity: sha512-DJXxqpYZUxcE0SfYo8EJzV2ZC+zAD7fJp1n1HwcEMRR1cOEUYvjT9GuzJeNghMjgb7uxuK3IJAzI+x6zzUxO5A==} 1778 + eslint-plugin-svelte@3.15.2: 1779 + resolution: {integrity: sha512-k4Nsjs3bHujeEnnckoTM4mFYR1e8Mb9l2rTwNdmYiamA+Tjzn8X+2F+fuSP2w4VbXYhn2bmySyACQYdmUDW2Cg==} 1773 1780 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1774 1781 peerDependencies: 1775 1782 eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 ··· 1798 1805 resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} 1799 1806 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1800 1807 1801 - eslint@10.1.0: 1802 - resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==} 1808 + eslint@10.0.3: 1809 + resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} 1803 1810 engines: {node: ^20.19.0 || ^22.13.0 || >=24} 1804 1811 hasBin: true 1805 1812 peerDependencies: ··· 1880 1887 resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 1881 1888 engines: {node: '>=16'} 1882 1889 1883 - flatted@3.4.2: 1884 - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} 1890 + flatted@3.4.1: 1891 + resolution: {integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==} 1885 1892 1886 1893 fsevents@2.3.3: 1887 1894 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} ··· 2004 2011 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2005 2012 engines: {node: '>= 0.8.0'} 2006 2013 2014 + lightningcss-android-arm64@1.31.1: 2015 + resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} 2016 + engines: {node: '>= 12.0.0'} 2017 + cpu: [arm64] 2018 + os: [android] 2019 + 2007 2020 lightningcss-android-arm64@1.32.0: 2008 2021 resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} 2009 2022 engines: {node: '>= 12.0.0'} 2010 2023 cpu: [arm64] 2011 2024 os: [android] 2012 2025 2026 + lightningcss-darwin-arm64@1.31.1: 2027 + resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} 2028 + engines: {node: '>= 12.0.0'} 2029 + cpu: [arm64] 2030 + os: [darwin] 2031 + 2013 2032 lightningcss-darwin-arm64@1.32.0: 2014 2033 resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} 2015 2034 engines: {node: '>= 12.0.0'} 2016 2035 cpu: [arm64] 2017 2036 os: [darwin] 2018 2037 2038 + lightningcss-darwin-x64@1.31.1: 2039 + resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} 2040 + engines: {node: '>= 12.0.0'} 2041 + cpu: [x64] 2042 + os: [darwin] 2043 + 2019 2044 lightningcss-darwin-x64@1.32.0: 2020 2045 resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} 2021 2046 engines: {node: '>= 12.0.0'} 2022 2047 cpu: [x64] 2023 2048 os: [darwin] 2024 2049 2050 + lightningcss-freebsd-x64@1.31.1: 2051 + resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} 2052 + engines: {node: '>= 12.0.0'} 2053 + cpu: [x64] 2054 + os: [freebsd] 2055 + 2025 2056 lightningcss-freebsd-x64@1.32.0: 2026 2057 resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} 2027 2058 engines: {node: '>= 12.0.0'} 2028 2059 cpu: [x64] 2029 2060 os: [freebsd] 2030 2061 2062 + lightningcss-linux-arm-gnueabihf@1.31.1: 2063 + resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} 2064 + engines: {node: '>= 12.0.0'} 2065 + cpu: [arm] 2066 + os: [linux] 2067 + 2031 2068 lightningcss-linux-arm-gnueabihf@1.32.0: 2032 2069 resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} 2033 2070 engines: {node: '>= 12.0.0'} 2034 2071 cpu: [arm] 2035 2072 os: [linux] 2036 2073 2074 + lightningcss-linux-arm64-gnu@1.31.1: 2075 + resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} 2076 + engines: {node: '>= 12.0.0'} 2077 + cpu: [arm64] 2078 + os: [linux] 2079 + 2037 2080 lightningcss-linux-arm64-gnu@1.32.0: 2038 2081 resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} 2039 2082 engines: {node: '>= 12.0.0'} 2040 2083 cpu: [arm64] 2041 2084 os: [linux] 2042 2085 2086 + lightningcss-linux-arm64-musl@1.31.1: 2087 + resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} 2088 + engines: {node: '>= 12.0.0'} 2089 + cpu: [arm64] 2090 + os: [linux] 2091 + 2043 2092 lightningcss-linux-arm64-musl@1.32.0: 2044 2093 resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} 2045 2094 engines: {node: '>= 12.0.0'} 2046 2095 cpu: [arm64] 2047 2096 os: [linux] 2048 2097 2098 + lightningcss-linux-x64-gnu@1.31.1: 2099 + resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} 2100 + engines: {node: '>= 12.0.0'} 2101 + cpu: [x64] 2102 + os: [linux] 2103 + 2049 2104 lightningcss-linux-x64-gnu@1.32.0: 2050 2105 resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} 2051 2106 engines: {node: '>= 12.0.0'} 2052 2107 cpu: [x64] 2053 2108 os: [linux] 2054 2109 2110 + lightningcss-linux-x64-musl@1.31.1: 2111 + resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} 2112 + engines: {node: '>= 12.0.0'} 2113 + cpu: [x64] 2114 + os: [linux] 2115 + 2055 2116 lightningcss-linux-x64-musl@1.32.0: 2056 2117 resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} 2057 2118 engines: {node: '>= 12.0.0'} 2058 2119 cpu: [x64] 2059 2120 os: [linux] 2060 2121 2122 + lightningcss-win32-arm64-msvc@1.31.1: 2123 + resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} 2124 + engines: {node: '>= 12.0.0'} 2125 + cpu: [arm64] 2126 + os: [win32] 2127 + 2061 2128 lightningcss-win32-arm64-msvc@1.32.0: 2062 2129 resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} 2063 2130 engines: {node: '>= 12.0.0'} 2064 2131 cpu: [arm64] 2065 2132 os: [win32] 2066 2133 2134 + lightningcss-win32-x64-msvc@1.31.1: 2135 + resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} 2136 + engines: {node: '>= 12.0.0'} 2137 + cpu: [x64] 2138 + os: [win32] 2139 + 2067 2140 lightningcss-win32-x64-msvc@1.32.0: 2068 2141 resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} 2069 2142 engines: {node: '>= 12.0.0'} 2070 2143 cpu: [x64] 2071 2144 os: [win32] 2145 + 2146 + lightningcss@1.31.1: 2147 + resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} 2148 + engines: {node: '>= 12.0.0'} 2072 2149 2073 2150 lightningcss@1.32.0: 2074 2151 resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} ··· 2121 2198 magic-string@0.30.21: 2122 2199 resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 2123 2200 2124 - maplibre-gl@5.21.0: 2125 - resolution: {integrity: sha512-n0v4J/Ge0EG8ix/z3TY3ragtJYMqzbtSnj1riOC0OwQbzwp0lUF2maS1ve1z8HhitQCKtZZiZJhb8to36aMMfQ==} 2201 + maplibre-gl@5.20.0: 2202 + resolution: {integrity: sha512-hUQ/4KkxVKLbAD4coW+9/tJ9/jOKKcN7q4F92EQ5mjbUJ2m1sz6uoiB3VqW/VaogUxmWd896l1cc9TtV4+uvJA==} 2126 2203 engines: {node: '>=16.14.0', npm: '>=8.1.0'} 2127 2204 2128 2205 markdown-it@14.1.1: 2129 2206 resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} 2130 2207 hasBin: true 2131 2208 2132 - marked@17.0.5: 2133 - resolution: {integrity: sha512-6hLvc0/JEbRjRgzI6wnT2P1XuM1/RrrDEX0kPt0N7jGm1133g6X7DlxFasUIx+72aKAr904GTxhSLDrd5DIlZg==} 2209 + marked@17.0.4: 2210 + resolution: {integrity: sha512-NOmVMM+KAokHMvjWmC5N/ZOvgmSWuqJB8FoYI019j4ogb/PeRMKoKIjReZ2w3376kkA8dSJIP8uD993Kxc0iRQ==} 2134 2211 engines: {node: '>= 20'} 2135 2212 hasBin: true 2136 2213 ··· 2144 2221 resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} 2145 2222 hasBin: true 2146 2223 2147 - miniflare@4.20260317.1: 2148 - resolution: {integrity: sha512-A3csI1HXEIfqe3oscgpoRMHdYlkReQKPH/g5JE53vFSjoM6YIAOGAzyDNeYffwd9oQkPWDj9xER8+vpxei8klA==} 2224 + miniflare@4.20260312.0: 2225 + resolution: {integrity: sha512-pieP2rfXynPT6VRINYaiHe/tfMJ4c5OIhqRlIdLF6iZ9g5xgpEmvimvIgMpgAdDJuFlrLcwDUi8MfAo2R6dt/w==} 2149 2226 engines: {node: '>=18.0.0'} 2150 2227 hasBin: true 2151 2228 ··· 2159 2236 mitt@3.0.1: 2160 2237 resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} 2161 2238 2162 - mlly@1.8.2: 2163 - resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} 2239 + mlly@1.8.1: 2240 + resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==} 2164 2241 2165 2242 mode-watcher@1.1.0: 2166 2243 resolution: {integrity: sha512-mUT9RRGPDYenk59qJauN1rhsIMKBmWA3xMF+uRwE8MW/tjhaDSCCARqkSuDTq8vr4/2KcAxIGVjACxTjdk5C3g==} ··· 2186 2263 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2187 2264 hasBin: true 2188 2265 2189 - nanoid@5.1.7: 2190 - resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} 2266 + nanoid@5.1.6: 2267 + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} 2191 2268 engines: {node: ^18 || >=20} 2192 2269 hasBin: true 2193 2270 ··· 2444 2521 prosemirror-transform@1.11.0: 2445 2522 resolution: {integrity: sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==} 2446 2523 2447 - prosemirror-view@1.41.7: 2448 - resolution: {integrity: sha512-jUwKNCEIGiqdvhlS91/2QAg21e4dfU5bH2iwmSDQeosXJgKF7smG0YSplOWK0cjSNgIqXe7VXqo7EIfUFJdt3w==} 2524 + prosemirror-view@1.41.6: 2525 + resolution: {integrity: sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==} 2449 2526 2450 2527 protocol-buffers-schema@3.6.0: 2451 2528 resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} ··· 2519 2596 resolve-protobuf-schema@2.1.0: 2520 2597 resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} 2521 2598 2522 - rolldown@1.0.0-rc.10: 2523 - resolution: {integrity: sha512-q7j6vvarRFmKpgJUT8HCAUljkgzEp4LAhPlJUvQhA5LA1SUL36s5QCysMutErzL3EbNOZOkoziSx9iZC4FddKA==} 2599 + rolldown@1.0.0-rc.9: 2600 + resolution: {integrity: sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==} 2524 2601 engines: {node: ^20.19.0 || >=22.12.0} 2525 2602 hasBin: true 2526 2603 ··· 2576 2653 engines: {node: '>=10'} 2577 2654 hasBin: true 2578 2655 2579 - set-cookie-parser@3.1.0: 2580 - resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} 2656 + set-cookie-parser@3.0.1: 2657 + resolution: {integrity: sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==} 2581 2658 2582 2659 sharp@0.34.5: 2583 2660 resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} ··· 2591 2668 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2592 2669 engines: {node: '>=8'} 2593 2670 2594 - simple-icons@16.12.0: 2595 - resolution: {integrity: sha512-fDJDqXUpkb2twqH+eBQpJsCYUE6jEH7VkuuPL9dH16sbLf6KKnwyijULmcx7SCoy3c2L6pl8WCzt+4rpYjoWfw==} 2671 + simple-icons@16.11.0: 2672 + resolution: {integrity: sha512-6vqbcdaT6PsgUXud9rrP9w+nrmRzzStMEvyDavMeGwDgZSYM4uJ3tH7zurgTLHJO0RnMqU3Q09Vgo7WdTXV1eA==} 2596 2673 engines: {node: '>=0.12.18'} 2597 2674 2598 2675 sirv@3.0.2: ··· 2672 2749 peerDependencies: 2673 2750 svelte: ^5.0.0 2674 2751 2675 - svelte@5.54.1: 2676 - resolution: {integrity: sha512-ow8tncN097Ty8U1H+C3bM1xNlsCbnO2UZeN0lWBnv8f3jKho7QTTQ2LWbMXrPQDodLjH91n4kpNnLolyRhVE6A==} 2752 + svelte@5.53.11: 2753 + resolution: {integrity: sha512-GYmqRjRhJYLQBonfdfGAt28gkfWEShrtXKGXcFGneXi502aBE+I1dJcs/YQriByvP6xqXRz/OdBGC6tfvUQHyQ==} 2677 2754 engines: {node: '>=18'} 2678 2755 2679 2756 tabbable@6.4.0: ··· 2697 2774 peerDependencies: 2698 2775 tailwindcss: '>=3.0.0 || insiders' 2699 2776 2700 - tailwindcss@4.2.2: 2701 - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} 2777 + tailwindcss@4.2.1: 2778 + resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} 2702 2779 2703 2780 tapable@2.3.0: 2704 2781 resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} ··· 2754 2831 troika-worker-utils@0.52.0: 2755 2832 resolution: {integrity: sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==} 2756 2833 2757 - ts-api-utils@2.5.0: 2758 - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} 2834 + ts-api-utils@2.4.0: 2835 + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} 2759 2836 engines: {node: '>=18.12'} 2760 2837 peerDependencies: 2761 2838 typescript: '>=4.8.4' ··· 2773 2850 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2774 2851 engines: {node: '>= 0.8.0'} 2775 2852 2776 - typescript-eslint@8.57.1: 2777 - resolution: {integrity: sha512-fLvZWf+cAGw3tqMCYzGIU6yR8K+Y9NT2z23RwOjlNFF2HwSB3KhdEFI5lSBv8tNmFkkBShSjsCjzx1vahZfISA==} 2853 + typescript-eslint@8.57.0: 2854 + resolution: {integrity: sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==} 2778 2855 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2779 2856 peerDependencies: 2780 2857 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 ··· 2794 2871 ultrahtml@1.6.0: 2795 2872 resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 2796 2873 2797 - undici@7.24.4: 2798 - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} 2874 + undici-types@7.16.0: 2875 + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 2876 + 2877 + undici@7.18.2: 2878 + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} 2799 2879 engines: {node: '>=20.18.1'} 2800 2880 2801 - undici@7.24.5: 2802 - resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} 2881 + undici@7.24.0: 2882 + resolution: {integrity: sha512-jxytwMHhsbdpBXxLAcuu0fzlQeXCNnWdDyRHpvWsUl8vd98UwYdl9YTyn8/HcpcJPC3pwUveefsa3zTxyD/ERg==} 2803 2883 engines: {node: '>=20.18.1'} 2804 2884 2805 2885 unenv@2.0.0-rc.24: ··· 2831 2911 typescript: 2832 2912 optional: true 2833 2913 2834 - vite@8.0.1: 2835 - resolution: {integrity: sha512-wt+Z2qIhfFt85uiyRt5LPU4oVEJBXj8hZNWKeqFG4gRG/0RaRGJ7njQCwzFVjO+v4+Ipmf5CY7VdmZRAYYBPHw==} 2914 + vite@8.0.0: 2915 + resolution: {integrity: sha512-fPGaRNj9Zytaf8LEiBhY7Z6ijnFKdzU/+mL8EFBaKr7Vw1/FWcTBAMW0wLPJAGMPX38ZPVCVgLceWiEqeoqL2Q==} 2836 2916 engines: {node: ^20.19.0 || >=22.12.0} 2837 2917 hasBin: true 2838 2918 peerDependencies: 2839 2919 '@types/node': ^20.19.0 || >=22.12.0 2840 - '@vitejs/devtools': ^0.1.0 2920 + '@vitejs/devtools': ^0.0.0-alpha.31 2841 2921 esbuild: ^0.27.0 2842 2922 jiti: '>=1.21.0' 2843 2923 less: ^4.0.0 ··· 2923 3003 resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2924 3004 engines: {node: '>=0.10.0'} 2925 3005 2926 - workerd@1.20260317.1: 2927 - resolution: {integrity: sha512-ZuEq1OdrJBS+NV+L5HMYPCzVn49a2O60slQiiLpG44jqtlOo+S167fWC76kEXteXLLLydeuRrluRel7WdOUa4g==} 3006 + workerd@1.20260312.1: 3007 + resolution: {integrity: sha512-nNpPkw9jaqo79B+iBCOiksx+N62xC+ETIfyzofUEdY3cSOHJg6oNnVSHm7vHevzVblfV76c8Gr0cXHEapYMBEg==} 2928 3008 engines: {node: '>=16'} 2929 3009 hasBin: true 2930 3010 ··· 2932 3012 resolution: {integrity: sha512-+TvsA6VAVoMC3XDKR5MoC/qlLqDixEfOBysDEKnPIPou/NvoPWCAuXHXMsswwlvmEuvX56lQjvELLyLuzTKvRw==} 2933 3013 engines: {node: '>=12'} 2934 3014 2935 - wrangler@4.76.0: 2936 - resolution: {integrity: sha512-Wan+CU5a0tu4HIxGOrzjNbkmxCT27HUmzrMj6kc7aoAnjSLv50Ggcn2Ant7wNQrD6xW3g31phKupZJgTZ8wZfQ==} 3015 + wrangler@4.73.0: 3016 + resolution: {integrity: sha512-VJXsqKDFCp6OtFEHXITSOR5kh95JOknwPY8m7RyQuWJQguSybJy43m4vhoCSt42prutTef7eeuw7L4V4xiynGw==} 2937 3017 engines: {node: '>=20.0.0'} 2938 3018 hasBin: true 2939 3019 peerDependencies: 2940 - '@cloudflare/workers-types': ^4.20260317.1 3020 + '@cloudflare/workers-types': ^4.20260312.1 2941 3021 peerDependenciesMeta: 2942 3022 '@cloudflare/workers-types': 2943 3023 optional: true ··· 2954 3034 utf-8-validate: 2955 3035 optional: true 2956 3036 2957 - yaml@1.10.3: 2958 - resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} 3037 + yaml@1.10.2: 3038 + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2959 3039 engines: {node: '>= 6'} 2960 3040 2961 3041 yocto-queue@0.1.0: ··· 2991 3071 2992 3072 '@atcute/client@4.2.1': 2993 3073 dependencies: 2994 - '@atcute/identity': 1.1.4 3074 + '@atcute/identity': 1.1.3 2995 3075 '@atcute/lexicons': 1.2.9 2996 3076 2997 - '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.4)': 3077 + '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)': 2998 3078 dependencies: 2999 - '@atcute/identity': 1.1.4 3079 + '@atcute/identity': 1.1.3 3000 3080 '@atcute/lexicons': 1.2.9 3001 3081 '@atcute/util-fetch': 1.0.5 3002 3082 '@badrap/valita': 0.4.6 3003 3083 3004 - '@atcute/identity@1.1.4': 3084 + '@atcute/identity@1.1.3': 3005 3085 dependencies: 3006 3086 '@atcute/lexicons': 1.2.9 3007 3087 '@badrap/valita': 0.4.6 ··· 3009 3089 '@atcute/lexicons@1.2.9': 3010 3090 dependencies: 3011 3091 '@atcute/uint8array': 1.1.1 3012 - '@atcute/util-text': 1.2.0 3092 + '@atcute/util-text': 1.1.1 3013 3093 '@standard-schema/spec': 1.1.0 3014 3094 esm-env: 1.2.2 3015 3095 3016 - '@atcute/multibase@1.2.0': 3096 + '@atcute/multibase@1.1.8': 3017 3097 dependencies: 3018 3098 '@atcute/uint8array': 1.1.1 3019 3099 3020 - '@atcute/oauth-browser-client@3.0.0(@atcute/identity@1.1.4)': 3100 + '@atcute/oauth-browser-client@3.0.0(@atcute/identity@1.1.3)': 3021 3101 dependencies: 3022 3102 '@atcute/client': 4.2.1 3023 - '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.4) 3103 + '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3) 3024 3104 '@atcute/lexicons': 1.2.9 3025 - '@atcute/multibase': 1.2.0 3105 + '@atcute/multibase': 1.1.8 3026 3106 '@atcute/oauth-crypto': 0.1.0 3027 3107 '@atcute/oauth-types': 0.1.1 3028 - nanoid: 5.1.7 3108 + nanoid: 5.1.6 3029 3109 transitivePeerDependencies: 3030 3110 - '@atcute/identity' 3031 3111 3032 3112 '@atcute/oauth-crypto@0.1.0': 3033 3113 dependencies: 3034 - '@atcute/multibase': 1.2.0 3114 + '@atcute/multibase': 1.1.8 3035 3115 '@atcute/uint8array': 1.1.1 3036 3116 '@badrap/valita': 0.4.6 3037 - nanoid: 5.1.7 3117 + nanoid: 5.1.6 3038 3118 3039 3119 '@atcute/oauth-keyset@0.1.0': 3040 3120 dependencies: ··· 3042 3122 3043 3123 '@atcute/oauth-types@0.1.1': 3044 3124 dependencies: 3045 - '@atcute/identity': 1.1.4 3125 + '@atcute/identity': 1.1.3 3046 3126 '@atcute/lexicons': 1.2.9 3047 3127 '@atcute/oauth-keyset': 0.1.0 3048 3128 '@badrap/valita': 0.4.6 ··· 3064 3144 dependencies: 3065 3145 '@badrap/valita': 0.4.6 3066 3146 3067 - '@atcute/util-text@1.2.0': 3147 + '@atcute/util-text@1.1.1': 3068 3148 dependencies: 3069 3149 unicode-segmenter: 0.14.5 3070 3150 ··· 3072 3152 3073 3153 '@cloudflare/kv-asset-handler@0.4.2': {} 3074 3154 3075 - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1)': 3155 + '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260312.1)': 3076 3156 dependencies: 3077 3157 unenv: 2.0.0-rc.24 3078 3158 optionalDependencies: 3079 - workerd: 1.20260317.1 3159 + workerd: 1.20260312.1 3080 3160 3081 - '@cloudflare/workerd-darwin-64@1.20260317.1': 3161 + '@cloudflare/workerd-darwin-64@1.20260312.1': 3082 3162 optional: true 3083 3163 3084 - '@cloudflare/workerd-darwin-arm64@1.20260317.1': 3164 + '@cloudflare/workerd-darwin-arm64@1.20260312.1': 3085 3165 optional: true 3086 3166 3087 - '@cloudflare/workerd-linux-64@1.20260317.1': 3167 + '@cloudflare/workerd-linux-64@1.20260312.1': 3088 3168 optional: true 3089 3169 3090 - '@cloudflare/workerd-linux-arm64@1.20260317.1': 3170 + '@cloudflare/workerd-linux-arm64@1.20260312.1': 3091 3171 optional: true 3092 3172 3093 - '@cloudflare/workerd-windows-64@1.20260317.1': 3173 + '@cloudflare/workerd-windows-64@1.20260312.1': 3094 3174 optional: true 3095 3175 3096 - '@cloudflare/workers-types@4.20260317.1': {} 3176 + '@cloudflare/workers-types@4.20260313.1': {} 3097 3177 3098 3178 '@cspotcode/source-map-support@0.8.1': 3099 3179 dependencies: ··· 3101 3181 3102 3182 '@dimforge/rapier3d-compat@0.12.0': {} 3103 3183 3104 - '@emnapi/core@1.9.1': 3184 + '@emnapi/core@1.9.0': 3105 3185 dependencies: 3106 3186 '@emnapi/wasi-threads': 1.2.0 3107 3187 tslib: 2.8.1 3108 3188 optional: true 3109 3189 3110 - '@emnapi/runtime@1.9.1': 3190 + '@emnapi/runtime@1.9.0': 3111 3191 dependencies: 3112 3192 tslib: 2.8.1 3113 3193 optional: true ··· 3195 3275 '@esbuild/win32-x64@0.27.3': 3196 3276 optional: true 3197 3277 3198 - '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.6.1))': 3278 + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))': 3199 3279 dependencies: 3200 - eslint: 10.1.0(jiti@2.6.1) 3280 + eslint: 10.0.3(jiti@2.6.1) 3201 3281 eslint-visitor-keys: 3.4.3 3202 3282 3203 3283 '@eslint-community/regexpp@4.12.2': {} 3204 3284 3205 - '@eslint/compat@2.0.3(eslint@10.1.0(jiti@2.6.1))': 3285 + '@eslint/compat@2.0.3(eslint@10.0.3(jiti@2.6.1))': 3206 3286 dependencies: 3207 3287 '@eslint/core': 1.1.1 3208 3288 optionalDependencies: 3209 - eslint: 10.1.0(jiti@2.6.1) 3289 + eslint: 10.0.3(jiti@2.6.1) 3210 3290 3211 3291 '@eslint/config-array@0.23.3': 3212 3292 dependencies: ··· 3224 3304 dependencies: 3225 3305 '@types/json-schema': 7.0.15 3226 3306 3227 - '@eslint/js@10.0.1(eslint@10.1.0(jiti@2.6.1))': 3307 + '@eslint/js@10.0.1(eslint@10.0.3(jiti@2.6.1))': 3228 3308 optionalDependencies: 3229 - eslint: 10.1.0(jiti@2.6.1) 3309 + eslint: 10.0.3(jiti@2.6.1) 3230 3310 3231 3311 '@eslint/object-schema@3.0.3': {} 3232 3312 ··· 3235 3315 '@eslint/core': 1.1.1 3236 3316 levn: 0.4.1 3237 3317 3238 - '@ethercorps/sveltekit-og@4.2.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))': 3318 + '@ethercorps/sveltekit-og@4.2.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))': 3239 3319 dependencies: 3240 3320 '@resvg/resvg-wasm': 2.6.2 3241 - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 3321 + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 3242 3322 '@takumi-rs/helpers': 0.55.4 3243 3323 '@takumi-rs/image-response': 0.55.4 3244 3324 '@takumi-rs/wasm': 0.55.4 ··· 3258 3338 3259 3339 '@floating-ui/utils@0.2.11': {} 3260 3340 3261 - '@foxui/3d@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3341 + '@foxui/3d@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3262 3342 dependencies: 3263 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3264 - '@threlte/core': 8.5.0(svelte@5.54.1)(three@0.183.2) 3265 - '@threlte/extras': 9.9.0(@types/three@0.183.1)(svelte@5.54.1)(three@0.183.2) 3343 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3344 + '@threlte/core': 8.4.1(svelte@5.53.11)(three@0.183.2) 3345 + '@threlte/extras': 9.8.1(@types/three@0.183.1)(svelte@5.53.11)(three@0.183.2) 3266 3346 '@types/three': 0.183.1 3267 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3268 - svelte: 5.54.1 3269 - tailwindcss: 4.2.2 3347 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3348 + svelte: 5.53.11 3349 + tailwindcss: 4.2.1 3270 3350 three: 0.183.2 3271 3351 transitivePeerDependencies: 3272 3352 - '@internationalized/date' ··· 3275 3355 - react-dom 3276 3356 - vue 3277 3357 3278 - '@foxui/colors@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3358 + '@foxui/colors@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3279 3359 dependencies: 3280 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3360 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3281 3361 '@texel/color': 1.1.11 3282 3362 '@use-gesture/vanilla': 10.3.1 3283 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3284 - svelte: 5.54.1 3285 - tailwindcss: 4.2.2 3363 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3364 + svelte: 5.53.11 3365 + tailwindcss: 4.2.1 3286 3366 transitivePeerDependencies: 3287 3367 - '@internationalized/date' 3288 3368 - '@sveltejs/kit' ··· 3290 3370 - react-dom 3291 3371 - vue 3292 3372 3293 - '@foxui/core@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3373 + '@foxui/core@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3294 3374 dependencies: 3295 - '@number-flow/svelte': 0.4.0(svelte@5.54.1) 3296 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3375 + '@number-flow/svelte': 0.4.0(svelte@5.53.11) 3376 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3297 3377 clsx: 2.1.1 3298 3378 dompurify: 3.3.3 3299 - mode-watcher: 1.1.0(svelte@5.54.1) 3300 - svelte: 5.54.1 3301 - svelte-sonner: 1.1.0(svelte@5.54.1) 3379 + mode-watcher: 1.1.0(svelte@5.53.11) 3380 + svelte: 5.53.11 3381 + svelte-sonner: 1.1.0(svelte@5.53.11) 3302 3382 tailwind-merge: 3.5.0 3303 - tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2) 3304 - tailwindcss: 4.2.2 3305 - web-haptics: 0.0.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1) 3383 + tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.1) 3384 + tailwindcss: 4.2.1 3385 + web-haptics: 0.0.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11) 3306 3386 transitivePeerDependencies: 3307 3387 - '@internationalized/date' 3308 3388 - '@sveltejs/kit' ··· 3310 3390 - react-dom 3311 3391 - vue 3312 3392 3313 - '@foxui/social@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3393 + '@foxui/social@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3314 3394 dependencies: 3315 3395 '@atcute/bluesky': 3.3.0 3316 3396 '@atcute/bluesky-richtext-segmenter': 3.0.0 3317 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3318 - '@foxui/text': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3319 - '@foxui/time': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3397 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3398 + '@foxui/text': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3399 + '@foxui/time': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3320 3400 '@use-gesture/vanilla': 10.3.1 3321 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3401 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3322 3402 emoji-picker-element: 1.29.1 3323 3403 hls.js: 1.6.15 3324 3404 is-emoji-supported: 0.0.5 3325 3405 plyr: 3.8.4 3326 - svelte: 5.54.1 3327 - tailwindcss: 4.2.2 3406 + svelte: 5.53.11 3407 + tailwindcss: 4.2.1 3328 3408 transitivePeerDependencies: 3329 3409 - '@internationalized/date' 3330 3410 - '@sveltejs/kit' ··· 3335 3415 - react-dom 3336 3416 - vue 3337 3417 3338 - '@foxui/text@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3418 + '@foxui/text@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(highlight.js@11.11.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3339 3419 dependencies: 3340 3420 '@floating-ui/dom': 1.7.6 3341 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3342 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3343 - '@tiptap/extension-bubble-menu': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3344 - '@tiptap/extension-code-block-lowlight': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(highlight.js@11.11.1)(lowlight@3.3.0) 3345 - '@tiptap/extension-document': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3346 - '@tiptap/extension-dropcursor': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 3347 - '@tiptap/extension-floating-menu': 3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3348 - '@tiptap/extension-history': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 3349 - '@tiptap/extension-image': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3350 - '@tiptap/extension-link': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3351 - '@tiptap/extension-paragraph': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3352 - '@tiptap/extension-placeholder': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 3353 - '@tiptap/extension-strike': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3354 - '@tiptap/extension-text': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3355 - '@tiptap/extension-typography': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3356 - '@tiptap/extension-underline': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 3357 - '@tiptap/markdown': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3358 - '@tiptap/pm': 3.20.4 3359 - '@tiptap/starter-kit': 3.20.4 3360 - '@tiptap/suggestion': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3361 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3421 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3422 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3423 + '@tiptap/extension-bubble-menu': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3424 + '@tiptap/extension-code-block-lowlight': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(highlight.js@11.11.1)(lowlight@3.3.0) 3425 + '@tiptap/extension-document': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3426 + '@tiptap/extension-dropcursor': 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 3427 + '@tiptap/extension-floating-menu': 3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3428 + '@tiptap/extension-history': 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 3429 + '@tiptap/extension-image': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3430 + '@tiptap/extension-link': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3431 + '@tiptap/extension-paragraph': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3432 + '@tiptap/extension-placeholder': 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 3433 + '@tiptap/extension-strike': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3434 + '@tiptap/extension-text': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3435 + '@tiptap/extension-typography': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3436 + '@tiptap/extension-underline': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 3437 + '@tiptap/markdown': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3438 + '@tiptap/pm': 3.20.1 3439 + '@tiptap/starter-kit': 3.20.1 3440 + '@tiptap/suggestion': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3441 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3362 3442 lowlight: 3.3.0 3363 3443 state: link:@tiptap/pm/state 3364 - svelte: 5.54.1 3365 - svelte-tiptap: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-bubble-menu@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extension-floating-menu@3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(svelte@5.54.1) 3366 - tailwindcss: 4.2.2 3444 + svelte: 5.53.11 3445 + svelte-tiptap: 3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-bubble-menu@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extension-floating-menu@3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(svelte@5.53.11) 3446 + tailwindcss: 4.2.1 3367 3447 transitivePeerDependencies: 3368 3448 - '@internationalized/date' 3369 3449 - '@sveltejs/kit' ··· 3374 3454 - react-dom 3375 3455 - vue 3376 3456 3377 - '@foxui/time@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3457 + '@foxui/time@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3378 3458 dependencies: 3379 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3380 - '@number-flow/svelte': 0.4.0(svelte@5.54.1) 3381 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3382 - svelte: 5.54.1 3383 - tailwindcss: 4.2.2 3459 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3460 + '@number-flow/svelte': 0.4.0(svelte@5.53.11) 3461 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3462 + svelte: 5.53.11 3463 + tailwindcss: 4.2.1 3384 3464 transitivePeerDependencies: 3385 3465 - '@internationalized/date' 3386 3466 - '@sveltejs/kit' ··· 3388 3468 - react-dom 3389 3469 - vue 3390 3470 3391 - '@foxui/visual@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2)': 3471 + '@foxui/visual@0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1)': 3392 3472 dependencies: 3393 - '@foxui/colors': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3394 - '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1)(tailwindcss@4.2.2) 3395 - bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 3473 + '@foxui/colors': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3474 + '@foxui/core': 0.8.0(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11)(tailwindcss@4.2.1) 3475 + bits-ui: 2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 3396 3476 canvas-confetti: 1.9.4 3397 3477 cheerio: 1.2.0 3398 - svelte: 5.54.1 3399 - tailwindcss: 4.2.2 3478 + svelte: 5.53.11 3479 + tailwindcss: 4.2.1 3400 3480 transitivePeerDependencies: 3401 3481 - '@internationalized/date' 3402 3482 - '@sveltejs/kit' ··· 3499 3579 3500 3580 '@img/sharp-wasm32@0.34.5': 3501 3581 dependencies: 3502 - '@emnapi/runtime': 1.9.1 3582 + '@emnapi/runtime': 1.9.0 3503 3583 optional: true 3504 3584 3505 3585 '@img/sharp-win32-arm64@0.34.5': ··· 3557 3637 3558 3638 '@maplibre/geojson-vt@5.0.4': {} 3559 3639 3560 - '@maplibre/geojson-vt@6.0.4': 3640 + '@maplibre/geojson-vt@6.0.2': 3561 3641 dependencies: 3562 3642 kdbush: 4.0.2 3563 3643 ··· 3571 3651 rw: 1.3.3 3572 3652 tinyqueue: 3.0.0 3573 3653 3574 - '@maplibre/mlt@1.1.8': 3654 + '@maplibre/mlt@1.1.7': 3575 3655 dependencies: 3576 3656 '@mapbox/point-geometry': 1.1.0 3577 3657 ··· 3589 3669 3590 3670 '@napi-rs/wasm-runtime@1.1.1': 3591 3671 dependencies: 3592 - '@emnapi/core': 1.9.1 3593 - '@emnapi/runtime': 1.9.1 3672 + '@emnapi/core': 1.9.0 3673 + '@emnapi/runtime': 1.9.0 3594 3674 '@tybys/wasm-util': 0.10.1 3595 3675 optional: true 3596 3676 3597 - '@number-flow/svelte@0.4.0(svelte@5.54.1)': 3677 + '@number-flow/svelte@0.4.0(svelte@5.53.11)': 3598 3678 dependencies: 3599 3679 esm-env: 1.2.2 3600 3680 number-flow: 0.6.0 3601 - svelte: 5.54.1 3681 + svelte: 5.53.11 3682 + 3683 + '@oxc-project/runtime@0.115.0': {} 3602 3684 3603 - '@oxc-project/types@0.120.0': {} 3685 + '@oxc-project/types@0.115.0': {} 3604 3686 3605 3687 '@polka/url@1.0.0-next.29': {} 3606 3688 ··· 3620 3702 3621 3703 '@resvg/resvg-wasm@2.6.2': {} 3622 3704 3623 - '@rolldown/binding-android-arm64@1.0.0-rc.10': 3705 + '@rolldown/binding-android-arm64@1.0.0-rc.9': 3624 3706 optional: true 3625 3707 3626 - '@rolldown/binding-darwin-arm64@1.0.0-rc.10': 3708 + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': 3627 3709 optional: true 3628 3710 3629 - '@rolldown/binding-darwin-x64@1.0.0-rc.10': 3711 + '@rolldown/binding-darwin-x64@1.0.0-rc.9': 3630 3712 optional: true 3631 3713 3632 - '@rolldown/binding-freebsd-x64@1.0.0-rc.10': 3714 + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': 3633 3715 optional: true 3634 3716 3635 - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.10': 3717 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': 3636 3718 optional: true 3637 3719 3638 - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.10': 3720 + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': 3639 3721 optional: true 3640 3722 3641 - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.10': 3723 + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': 3642 3724 optional: true 3643 3725 3644 - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.10': 3726 + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': 3645 3727 optional: true 3646 3728 3647 - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.10': 3729 + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': 3648 3730 optional: true 3649 3731 3650 - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.10': 3732 + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': 3651 3733 optional: true 3652 3734 3653 - '@rolldown/binding-linux-x64-musl@1.0.0-rc.10': 3735 + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': 3654 3736 optional: true 3655 3737 3656 - '@rolldown/binding-openharmony-arm64@1.0.0-rc.10': 3738 + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': 3657 3739 optional: true 3658 3740 3659 - '@rolldown/binding-wasm32-wasi@1.0.0-rc.10': 3741 + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': 3660 3742 dependencies: 3661 3743 '@napi-rs/wasm-runtime': 1.1.1 3662 3744 optional: true 3663 3745 3664 - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.10': 3746 + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': 3665 3747 optional: true 3666 3748 3667 - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.10': 3749 + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': 3668 3750 optional: true 3669 3751 3670 - '@rolldown/pluginutils@1.0.0-rc.10': {} 3752 + '@rolldown/pluginutils@1.0.0-rc.9': {} 3671 3753 3672 3754 '@shuding/opentype.js@1.4.0-beta.0': 3673 3755 dependencies: ··· 3676 3758 3677 3759 '@sindresorhus/is@7.2.0': {} 3678 3760 3679 - '@speed-highlight/core@1.2.15': {} 3761 + '@speed-highlight/core@1.2.14': {} 3680 3762 3681 3763 '@standard-schema/spec@1.1.0': {} 3682 3764 ··· 3684 3766 dependencies: 3685 3767 acorn: 8.16.0 3686 3768 3687 - '@sveltejs/adapter-cloudflare@7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(wrangler@4.76.0(@cloudflare/workers-types@4.20260317.1))': 3769 + '@sveltejs/adapter-cloudflare@7.2.8(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(wrangler@4.73.0(@cloudflare/workers-types@4.20260313.1))': 3688 3770 dependencies: 3689 - '@cloudflare/workers-types': 4.20260317.1 3690 - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 3771 + '@cloudflare/workers-types': 4.20260313.1 3772 + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 3691 3773 worktop: 0.8.0-next.18 3692 - wrangler: 4.76.0(@cloudflare/workers-types@4.20260317.1) 3774 + wrangler: 4.73.0(@cloudflare/workers-types@4.20260313.1) 3693 3775 3694 - '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1))': 3776 + '@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1))': 3695 3777 dependencies: 3696 3778 '@standard-schema/spec': 1.1.0 3697 3779 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) 3698 - '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 3780 + '@sveltejs/vite-plugin-svelte': 7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 3699 3781 '@types/cookie': 0.6.0 3700 3782 acorn: 8.16.0 3701 3783 cookie: 0.6.0 ··· 3704 3786 kleur: 4.1.5 3705 3787 magic-string: 0.30.21 3706 3788 mrmime: 2.0.1 3707 - set-cookie-parser: 3.1.0 3789 + set-cookie-parser: 3.0.1 3708 3790 sirv: 3.0.2 3709 - svelte: 5.54.1 3710 - vite: 8.0.1(esbuild@0.27.3)(jiti@2.6.1) 3791 + svelte: 5.53.11 3792 + vite: 8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1) 3711 3793 optionalDependencies: 3712 3794 typescript: 5.9.3 3713 3795 3714 - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1))': 3796 + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1))': 3715 3797 dependencies: 3716 3798 deepmerge: 4.3.1 3717 3799 magic-string: 0.30.21 3718 3800 obug: 2.1.1 3719 - svelte: 5.54.1 3720 - vite: 8.0.1(esbuild@0.27.3)(jiti@2.6.1) 3721 - vitefu: 1.1.2(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 3801 + svelte: 5.53.11 3802 + vite: 8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1) 3803 + vitefu: 1.1.2(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 3722 3804 3723 3805 '@swc/helpers@0.5.19': 3724 3806 dependencies: 3725 3807 tslib: 2.8.1 3726 3808 3727 - '@tailwindcss/forms@0.5.11(tailwindcss@4.2.2)': 3809 + '@tailwindcss/forms@0.5.11(tailwindcss@4.2.1)': 3728 3810 dependencies: 3729 3811 mini-svg-data-uri: 1.4.4 3730 - tailwindcss: 4.2.2 3812 + tailwindcss: 4.2.1 3731 3813 3732 - '@tailwindcss/node@4.2.2': 3814 + '@tailwindcss/node@4.2.1': 3733 3815 dependencies: 3734 3816 '@jridgewell/remapping': 2.3.5 3735 - enhanced-resolve: 5.20.1 3817 + enhanced-resolve: 5.20.0 3736 3818 jiti: 2.6.1 3737 - lightningcss: 1.32.0 3819 + lightningcss: 1.31.1 3738 3820 magic-string: 0.30.21 3739 3821 source-map-js: 1.2.1 3740 - tailwindcss: 4.2.2 3822 + tailwindcss: 4.2.1 3741 3823 3742 - '@tailwindcss/oxide-android-arm64@4.2.2': 3824 + '@tailwindcss/oxide-android-arm64@4.2.1': 3743 3825 optional: true 3744 3826 3745 - '@tailwindcss/oxide-darwin-arm64@4.2.2': 3827 + '@tailwindcss/oxide-darwin-arm64@4.2.1': 3746 3828 optional: true 3747 3829 3748 - '@tailwindcss/oxide-darwin-x64@4.2.2': 3830 + '@tailwindcss/oxide-darwin-x64@4.2.1': 3749 3831 optional: true 3750 3832 3751 - '@tailwindcss/oxide-freebsd-x64@4.2.2': 3833 + '@tailwindcss/oxide-freebsd-x64@4.2.1': 3752 3834 optional: true 3753 3835 3754 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': 3836 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': 3755 3837 optional: true 3756 3838 3757 - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': 3839 + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': 3758 3840 optional: true 3759 3841 3760 - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': 3842 + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': 3761 3843 optional: true 3762 3844 3763 - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': 3845 + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': 3764 3846 optional: true 3765 3847 3766 - '@tailwindcss/oxide-linux-x64-musl@4.2.2': 3848 + '@tailwindcss/oxide-linux-x64-musl@4.2.1': 3767 3849 optional: true 3768 3850 3769 - '@tailwindcss/oxide-wasm32-wasi@4.2.2': 3851 + '@tailwindcss/oxide-wasm32-wasi@4.2.1': 3770 3852 optional: true 3771 3853 3772 - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': 3854 + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': 3773 3855 optional: true 3774 3856 3775 - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': 3857 + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': 3776 3858 optional: true 3777 3859 3778 - '@tailwindcss/oxide@4.2.2': 3860 + '@tailwindcss/oxide@4.2.1': 3779 3861 optionalDependencies: 3780 - '@tailwindcss/oxide-android-arm64': 4.2.2 3781 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 3782 - '@tailwindcss/oxide-darwin-x64': 4.2.2 3783 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 3784 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 3785 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 3786 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 3787 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 3788 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 3789 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 3790 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 3791 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 3862 + '@tailwindcss/oxide-android-arm64': 4.2.1 3863 + '@tailwindcss/oxide-darwin-arm64': 4.2.1 3864 + '@tailwindcss/oxide-darwin-x64': 4.2.1 3865 + '@tailwindcss/oxide-freebsd-x64': 4.2.1 3866 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1 3867 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1 3868 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.1 3869 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.1 3870 + '@tailwindcss/oxide-linux-x64-musl': 4.2.1 3871 + '@tailwindcss/oxide-wasm32-wasi': 4.2.1 3872 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 3873 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 3792 3874 3793 - '@tailwindcss/typography@0.5.19(tailwindcss@4.2.2)': 3875 + '@tailwindcss/typography@0.5.19(tailwindcss@4.2.1)': 3794 3876 dependencies: 3795 3877 postcss-selector-parser: 6.0.10 3796 - tailwindcss: 4.2.2 3878 + tailwindcss: 4.2.1 3797 3879 3798 - '@tailwindcss/vite@4.2.2(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1))': 3880 + '@tailwindcss/vite@4.2.1(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1))': 3799 3881 dependencies: 3800 - '@tailwindcss/node': 4.2.2 3801 - '@tailwindcss/oxide': 4.2.2 3802 - tailwindcss: 4.2.2 3803 - vite: 8.0.1(esbuild@0.27.3)(jiti@2.6.1) 3882 + '@tailwindcss/node': 4.2.1 3883 + '@tailwindcss/oxide': 4.2.1 3884 + tailwindcss: 4.2.1 3885 + vite: 8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1) 3804 3886 3805 3887 '@takumi-rs/core-darwin-arm64@0.55.4': 3806 3888 optional: true ··· 3860 3942 transitivePeerDependencies: 3861 3943 - '@types/three' 3862 3944 3863 - '@threlte/core@8.5.0(svelte@5.54.1)(three@0.183.2)': 3945 + '@threlte/core@8.4.1(svelte@5.53.11)(three@0.183.2)': 3864 3946 dependencies: 3865 3947 mitt: 3.0.1 3866 - svelte: 5.54.1 3948 + svelte: 5.53.11 3867 3949 three: 0.183.2 3868 3950 3869 - '@threlte/extras@9.9.0(@types/three@0.183.1)(svelte@5.54.1)(three@0.183.2)': 3951 + '@threlte/extras@9.8.1(@types/three@0.183.1)(svelte@5.53.11)(three@0.183.2)': 3870 3952 dependencies: 3871 3953 '@threejs-kit/instanced-sprite-mesh': 2.5.1(@types/three@0.183.1)(three@0.183.2) 3872 3954 camera-controls: 3.1.2(three@0.183.2) 3873 - svelte: 5.54.1 3955 + svelte: 5.53.11 3874 3956 three: 0.183.2 3875 3957 three-mesh-bvh: 0.9.9(three@0.183.2) 3876 3958 three-perf: 1.0.11(three@0.183.2) ··· 3879 3961 transitivePeerDependencies: 3880 3962 - '@types/three' 3881 3963 3882 - '@tiptap/core@3.20.4(@tiptap/pm@3.20.4)': 3964 + '@tiptap/core@3.20.1(@tiptap/pm@3.20.1)': 3883 3965 dependencies: 3884 - '@tiptap/pm': 3.20.4 3966 + '@tiptap/pm': 3.20.1 3885 3967 3886 - '@tiptap/extension-blockquote@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 3968 + '@tiptap/extension-blockquote@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3887 3969 dependencies: 3888 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3970 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3889 3971 3890 - '@tiptap/extension-bold@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 3972 + '@tiptap/extension-bold@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3891 3973 dependencies: 3892 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3974 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3893 3975 3894 - '@tiptap/extension-bubble-menu@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 3976 + '@tiptap/extension-bubble-menu@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3895 3977 dependencies: 3896 3978 '@floating-ui/dom': 1.7.6 3897 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3898 - '@tiptap/pm': 3.20.4 3979 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3980 + '@tiptap/pm': 3.20.1 3899 3981 3900 - '@tiptap/extension-bullet-list@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 3982 + '@tiptap/extension-bullet-list@3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3901 3983 dependencies: 3902 - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3984 + '@tiptap/extension-list': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3903 3985 3904 - '@tiptap/extension-code-block-lowlight@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(highlight.js@11.11.1)(lowlight@3.3.0)': 3986 + '@tiptap/extension-code-block-lowlight@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(highlight.js@11.11.1)(lowlight@3.3.0)': 3905 3987 dependencies: 3906 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3907 - '@tiptap/extension-code-block': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 3908 - '@tiptap/pm': 3.20.4 3988 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3989 + '@tiptap/extension-code-block': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3990 + '@tiptap/pm': 3.20.1 3909 3991 highlight.js: 11.11.1 3910 3992 lowlight: 3.3.0 3911 3993 3912 - '@tiptap/extension-code-block@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 3994 + '@tiptap/extension-code-block@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3913 3995 dependencies: 3914 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3915 - '@tiptap/pm': 3.20.4 3996 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3997 + '@tiptap/pm': 3.20.1 3916 3998 3917 - '@tiptap/extension-code@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 3999 + '@tiptap/extension-code@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3918 4000 dependencies: 3919 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4001 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3920 4002 3921 - '@tiptap/extension-document@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4003 + '@tiptap/extension-document@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3922 4004 dependencies: 3923 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4005 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3924 4006 3925 - '@tiptap/extension-dropcursor@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4007 + '@tiptap/extension-dropcursor@3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3926 4008 dependencies: 3927 - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4009 + '@tiptap/extensions': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3928 4010 3929 - '@tiptap/extension-floating-menu@3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4011 + '@tiptap/extension-floating-menu@3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3930 4012 dependencies: 3931 4013 '@floating-ui/dom': 1.7.6 3932 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3933 - '@tiptap/pm': 3.20.4 4014 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4015 + '@tiptap/pm': 3.20.1 3934 4016 3935 - '@tiptap/extension-gapcursor@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4017 + '@tiptap/extension-gapcursor@3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3936 4018 dependencies: 3937 - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4019 + '@tiptap/extensions': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3938 4020 3939 - '@tiptap/extension-hard-break@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4021 + '@tiptap/extension-hard-break@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3940 4022 dependencies: 3941 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4023 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3942 4024 3943 - '@tiptap/extension-heading@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4025 + '@tiptap/extension-heading@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3944 4026 dependencies: 3945 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4027 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3946 4028 3947 - '@tiptap/extension-history@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4029 + '@tiptap/extension-history@3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3948 4030 dependencies: 3949 - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4031 + '@tiptap/extensions': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3950 4032 3951 - '@tiptap/extension-horizontal-rule@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4033 + '@tiptap/extension-horizontal-rule@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3952 4034 dependencies: 3953 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3954 - '@tiptap/pm': 3.20.4 4035 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4036 + '@tiptap/pm': 3.20.1 3955 4037 3956 - '@tiptap/extension-image@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4038 + '@tiptap/extension-image@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3957 4039 dependencies: 3958 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4040 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3959 4041 3960 - '@tiptap/extension-italic@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4042 + '@tiptap/extension-italic@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3961 4043 dependencies: 3962 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4044 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3963 4045 3964 - '@tiptap/extension-link@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4046 + '@tiptap/extension-link@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3965 4047 dependencies: 3966 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3967 - '@tiptap/pm': 3.20.4 4048 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4049 + '@tiptap/pm': 3.20.1 3968 4050 linkifyjs: 4.3.2 3969 4051 3970 - '@tiptap/extension-list-item@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4052 + '@tiptap/extension-list-item@3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3971 4053 dependencies: 3972 - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4054 + '@tiptap/extension-list': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3973 4055 3974 - '@tiptap/extension-list-keymap@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4056 + '@tiptap/extension-list-keymap@3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3975 4057 dependencies: 3976 - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4058 + '@tiptap/extension-list': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3977 4059 3978 - '@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4060 + '@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 3979 4061 dependencies: 3980 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 3981 - '@tiptap/pm': 3.20.4 4062 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4063 + '@tiptap/pm': 3.20.1 3982 4064 3983 - '@tiptap/extension-ordered-list@3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4065 + '@tiptap/extension-ordered-list@3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3984 4066 dependencies: 3985 - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4067 + '@tiptap/extension-list': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3986 4068 3987 - '@tiptap/extension-paragraph@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4069 + '@tiptap/extension-paragraph@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3988 4070 dependencies: 3989 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4071 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3990 4072 3991 - '@tiptap/extension-placeholder@3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))': 4073 + '@tiptap/extension-placeholder@3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))': 3992 4074 dependencies: 3993 - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4075 + '@tiptap/extensions': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 3994 4076 3995 - '@tiptap/extension-strike@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4077 + '@tiptap/extension-strike@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 3996 4078 dependencies: 3997 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4079 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 3998 4080 3999 - '@tiptap/extension-text@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4081 + '@tiptap/extension-text@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 4000 4082 dependencies: 4001 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4083 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4002 4084 4003 - '@tiptap/extension-typography@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4085 + '@tiptap/extension-typography@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 4004 4086 dependencies: 4005 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4087 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4006 4088 4007 - '@tiptap/extension-underline@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))': 4089 + '@tiptap/extension-underline@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))': 4008 4090 dependencies: 4009 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4091 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4010 4092 4011 - '@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4093 + '@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 4012 4094 dependencies: 4013 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4014 - '@tiptap/pm': 3.20.4 4095 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4096 + '@tiptap/pm': 3.20.1 4015 4097 4016 - '@tiptap/markdown@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4098 + '@tiptap/markdown@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 4017 4099 dependencies: 4018 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4019 - '@tiptap/pm': 3.20.4 4020 - marked: 17.0.5 4100 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4101 + '@tiptap/pm': 3.20.1 4102 + marked: 17.0.4 4021 4103 4022 - '@tiptap/pm@3.20.4': 4104 + '@tiptap/pm@3.20.1': 4023 4105 dependencies: 4024 4106 prosemirror-changeset: 2.4.0 4025 4107 prosemirror-collab: 1.3.1 ··· 4036 4118 prosemirror-schema-list: 1.5.1 4037 4119 prosemirror-state: 1.4.4 4038 4120 prosemirror-tables: 1.8.5 4039 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.7) 4121 + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6) 4040 4122 prosemirror-transform: 1.11.0 4041 - prosemirror-view: 1.41.7 4123 + prosemirror-view: 1.41.6 4042 4124 4043 - '@tiptap/starter-kit@3.20.4': 4125 + '@tiptap/starter-kit@3.20.1': 4044 4126 dependencies: 4045 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4046 - '@tiptap/extension-blockquote': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4047 - '@tiptap/extension-bold': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4048 - '@tiptap/extension-bullet-list': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4049 - '@tiptap/extension-code': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4050 - '@tiptap/extension-code-block': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4051 - '@tiptap/extension-document': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4052 - '@tiptap/extension-dropcursor': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4053 - '@tiptap/extension-gapcursor': 3.20.4(@tiptap/extensions@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4054 - '@tiptap/extension-hard-break': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4055 - '@tiptap/extension-heading': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4056 - '@tiptap/extension-horizontal-rule': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4057 - '@tiptap/extension-italic': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4058 - '@tiptap/extension-link': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4059 - '@tiptap/extension-list': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4060 - '@tiptap/extension-list-item': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4061 - '@tiptap/extension-list-keymap': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4062 - '@tiptap/extension-ordered-list': 3.20.4(@tiptap/extension-list@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)) 4063 - '@tiptap/extension-paragraph': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4064 - '@tiptap/extension-strike': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4065 - '@tiptap/extension-text': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4066 - '@tiptap/extension-underline': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4)) 4067 - '@tiptap/extensions': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 4068 - '@tiptap/pm': 3.20.4 4127 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4128 + '@tiptap/extension-blockquote': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4129 + '@tiptap/extension-bold': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4130 + '@tiptap/extension-bullet-list': 3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4131 + '@tiptap/extension-code': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4132 + '@tiptap/extension-code-block': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 4133 + '@tiptap/extension-document': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4134 + '@tiptap/extension-dropcursor': 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4135 + '@tiptap/extension-gapcursor': 3.20.1(@tiptap/extensions@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4136 + '@tiptap/extension-hard-break': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4137 + '@tiptap/extension-heading': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4138 + '@tiptap/extension-horizontal-rule': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 4139 + '@tiptap/extension-italic': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4140 + '@tiptap/extension-link': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 4141 + '@tiptap/extension-list': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 4142 + '@tiptap/extension-list-item': 3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4143 + '@tiptap/extension-list-keymap': 3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4144 + '@tiptap/extension-ordered-list': 3.20.1(@tiptap/extension-list@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)) 4145 + '@tiptap/extension-paragraph': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4146 + '@tiptap/extension-strike': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4147 + '@tiptap/extension-text': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4148 + '@tiptap/extension-underline': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1)) 4149 + '@tiptap/extensions': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 4150 + '@tiptap/pm': 3.20.1 4069 4151 4070 - '@tiptap/suggestion@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)': 4152 + '@tiptap/suggestion@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)': 4071 4153 dependencies: 4072 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 4073 - '@tiptap/pm': 3.20.4 4154 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 4155 + '@tiptap/pm': 3.20.1 4074 4156 4075 4157 '@tweenjs/tween.js@23.1.3': {} 4076 4158 ··· 4101 4183 '@types/mdurl': 2.0.0 4102 4184 4103 4185 '@types/mdurl@2.0.0': {} 4186 + 4187 + '@types/node@25.0.10': 4188 + dependencies: 4189 + undici-types: 7.16.0 4190 + optional: true 4104 4191 4105 4192 '@types/stats.js@0.17.4': {} 4106 4193 ··· 4126 4213 4127 4214 '@types/webxr@0.5.24': {} 4128 4215 4129 - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 4216 + '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': 4130 4217 dependencies: 4131 4218 '@eslint-community/regexpp': 4.12.2 4132 - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4133 - '@typescript-eslint/scope-manager': 8.57.1 4134 - '@typescript-eslint/type-utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4135 - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4136 - '@typescript-eslint/visitor-keys': 8.57.1 4137 - eslint: 10.1.0(jiti@2.6.1) 4219 + '@typescript-eslint/parser': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 4220 + '@typescript-eslint/scope-manager': 8.57.0 4221 + '@typescript-eslint/type-utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 4222 + '@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 4223 + '@typescript-eslint/visitor-keys': 8.57.0 4224 + eslint: 10.0.3(jiti@2.6.1) 4138 4225 ignore: 7.0.5 4139 4226 natural-compare: 1.4.0 4140 - ts-api-utils: 2.5.0(typescript@5.9.3) 4227 + ts-api-utils: 2.4.0(typescript@5.9.3) 4141 4228 typescript: 5.9.3 4142 4229 transitivePeerDependencies: 4143 4230 - supports-color 4144 4231 4145 - '@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 4232 + '@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': 4146 4233 dependencies: 4147 - '@typescript-eslint/scope-manager': 8.57.1 4148 - '@typescript-eslint/types': 8.57.1 4149 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 4150 - '@typescript-eslint/visitor-keys': 8.57.1 4234 + '@typescript-eslint/scope-manager': 8.57.0 4235 + '@typescript-eslint/types': 8.57.0 4236 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) 4237 + '@typescript-eslint/visitor-keys': 8.57.0 4151 4238 debug: 4.4.3 4152 - eslint: 10.1.0(jiti@2.6.1) 4239 + eslint: 10.0.3(jiti@2.6.1) 4153 4240 typescript: 5.9.3 4154 4241 transitivePeerDependencies: 4155 4242 - supports-color 4156 4243 4157 - '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': 4244 + '@typescript-eslint/project-service@8.57.0(typescript@5.9.3)': 4158 4245 dependencies: 4159 - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) 4160 - '@typescript-eslint/types': 8.57.1 4246 + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) 4247 + '@typescript-eslint/types': 8.57.0 4161 4248 debug: 4.4.3 4162 4249 typescript: 5.9.3 4163 4250 transitivePeerDependencies: 4164 4251 - supports-color 4165 4252 4166 - '@typescript-eslint/scope-manager@8.57.1': 4253 + '@typescript-eslint/scope-manager@8.57.0': 4167 4254 dependencies: 4168 - '@typescript-eslint/types': 8.57.1 4169 - '@typescript-eslint/visitor-keys': 8.57.1 4255 + '@typescript-eslint/types': 8.57.0 4256 + '@typescript-eslint/visitor-keys': 8.57.0 4170 4257 4171 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': 4258 + '@typescript-eslint/tsconfig-utils@8.57.0(typescript@5.9.3)': 4172 4259 dependencies: 4173 4260 typescript: 5.9.3 4174 4261 4175 - '@typescript-eslint/type-utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 4262 + '@typescript-eslint/type-utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': 4176 4263 dependencies: 4177 - '@typescript-eslint/types': 8.57.1 4178 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 4179 - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 4264 + '@typescript-eslint/types': 8.57.0 4265 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) 4266 + '@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 4180 4267 debug: 4.4.3 4181 - eslint: 10.1.0(jiti@2.6.1) 4182 - ts-api-utils: 2.5.0(typescript@5.9.3) 4268 + eslint: 10.0.3(jiti@2.6.1) 4269 + ts-api-utils: 2.4.0(typescript@5.9.3) 4183 4270 typescript: 5.9.3 4184 4271 transitivePeerDependencies: 4185 4272 - supports-color 4186 4273 4187 - '@typescript-eslint/types@8.57.1': {} 4274 + '@typescript-eslint/types@8.57.0': {} 4188 4275 4189 - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': 4276 + '@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3)': 4190 4277 dependencies: 4191 - '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) 4192 - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) 4193 - '@typescript-eslint/types': 8.57.1 4194 - '@typescript-eslint/visitor-keys': 8.57.1 4278 + '@typescript-eslint/project-service': 8.57.0(typescript@5.9.3) 4279 + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@5.9.3) 4280 + '@typescript-eslint/types': 8.57.0 4281 + '@typescript-eslint/visitor-keys': 8.57.0 4195 4282 debug: 4.4.3 4196 4283 minimatch: 10.2.4 4197 4284 semver: 7.7.4 4198 4285 tinyglobby: 0.2.15 4199 - ts-api-utils: 2.5.0(typescript@5.9.3) 4286 + ts-api-utils: 2.4.0(typescript@5.9.3) 4200 4287 typescript: 5.9.3 4201 4288 transitivePeerDependencies: 4202 4289 - supports-color 4203 4290 4204 - '@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': 4291 + '@typescript-eslint/utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)': 4205 4292 dependencies: 4206 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 4207 - '@typescript-eslint/scope-manager': 8.57.1 4208 - '@typescript-eslint/types': 8.57.1 4209 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 4210 - eslint: 10.1.0(jiti@2.6.1) 4293 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1)) 4294 + '@typescript-eslint/scope-manager': 8.57.0 4295 + '@typescript-eslint/types': 8.57.0 4296 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) 4297 + eslint: 10.0.3(jiti@2.6.1) 4211 4298 typescript: 5.9.3 4212 4299 transitivePeerDependencies: 4213 4300 - supports-color 4214 4301 4215 - '@typescript-eslint/visitor-keys@8.57.1': 4302 + '@typescript-eslint/visitor-keys@8.57.0': 4216 4303 dependencies: 4217 - '@typescript-eslint/types': 8.57.1 4304 + '@typescript-eslint/types': 8.57.0 4218 4305 eslint-visitor-keys: 5.0.1 4219 4306 4220 4307 '@use-gesture/core@10.3.1': {} ··· 4252 4339 dependencies: 4253 4340 require-from-string: 2.0.2 4254 4341 4255 - bits-ui@2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1): 4342 + bits-ui@2.16.3(@internationalized/date@3.12.0)(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11): 4256 4343 dependencies: 4257 4344 '@floating-ui/core': 1.7.5 4258 4345 '@floating-ui/dom': 1.7.6 4259 4346 '@internationalized/date': 3.12.0 4260 4347 esm-env: 1.2.2 4261 - runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 4262 - svelte: 5.54.1 4263 - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 4348 + runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 4349 + svelte: 5.53.11 4350 + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 4264 4351 tabbable: 6.4.0 4265 4352 transitivePeerDependencies: 4266 4353 - '@sveltejs/kit' ··· 4312 4399 parse5: 7.3.0 4313 4400 parse5-htmlparser2-tree-adapter: 7.1.0 4314 4401 parse5-parser-stream: 7.1.2 4315 - undici: 7.24.5 4402 + undici: 7.24.0 4316 4403 whatwg-mimetype: 4.0.0 4317 4404 4318 4405 chokidar@4.0.3: ··· 4331 4418 4332 4419 cookie@1.1.1: {} 4333 4420 4334 - core-js@3.49.0: {} 4421 + core-js@3.48.0: {} 4335 4422 4336 4423 crelt@1.0.6: {} 4337 4424 ··· 4422 4509 iconv-lite: 0.6.3 4423 4510 whatwg-encoding: 3.1.1 4424 4511 4425 - enhanced-resolve@5.20.1: 4512 + enhanced-resolve@5.20.0: 4426 4513 dependencies: 4427 4514 graceful-fs: 4.2.11 4428 4515 tapable: 2.3.0 ··· 4468 4555 4469 4556 escape-string-regexp@4.0.0: {} 4470 4557 4471 - eslint-config-prettier@10.1.8(eslint@10.1.0(jiti@2.6.1)): 4558 + eslint-config-prettier@10.1.8(eslint@10.0.3(jiti@2.6.1)): 4472 4559 dependencies: 4473 - eslint: 10.1.0(jiti@2.6.1) 4560 + eslint: 10.0.3(jiti@2.6.1) 4474 4561 4475 - eslint-plugin-svelte@3.16.0(eslint@10.1.0(jiti@2.6.1))(svelte@5.54.1): 4562 + eslint-plugin-svelte@3.15.2(eslint@10.0.3(jiti@2.6.1))(svelte@5.53.11): 4476 4563 dependencies: 4477 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 4564 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1)) 4478 4565 '@jridgewell/sourcemap-codec': 1.5.5 4479 - eslint: 10.1.0(jiti@2.6.1) 4566 + eslint: 10.0.3(jiti@2.6.1) 4480 4567 esutils: 2.0.3 4481 4568 globals: 16.5.0 4482 4569 known-css-properties: 0.37.0 ··· 4484 4571 postcss-load-config: 3.1.4(postcss@8.5.8) 4485 4572 postcss-safe-parser: 7.0.1(postcss@8.5.8) 4486 4573 semver: 7.7.4 4487 - svelte-eslint-parser: 1.6.0(svelte@5.54.1) 4574 + svelte-eslint-parser: 1.6.0(svelte@5.53.11) 4488 4575 optionalDependencies: 4489 - svelte: 5.54.1 4576 + svelte: 5.53.11 4490 4577 transitivePeerDependencies: 4491 4578 - ts-node 4492 4579 ··· 4508 4595 4509 4596 eslint-visitor-keys@5.0.1: {} 4510 4597 4511 - eslint@10.1.0(jiti@2.6.1): 4598 + eslint@10.0.3(jiti@2.6.1): 4512 4599 dependencies: 4513 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) 4600 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1)) 4514 4601 '@eslint-community/regexpp': 4.12.2 4515 4602 '@eslint/config-array': 0.23.3 4516 4603 '@eslint/config-helpers': 0.5.3 ··· 4566 4653 esrap@2.2.4: 4567 4654 dependencies: 4568 4655 '@jridgewell/sourcemap-codec': 1.5.5 4569 - '@typescript-eslint/types': 8.57.1 4656 + '@typescript-eslint/types': 8.57.0 4570 4657 4571 4658 esrecurse@4.3.0: 4572 4659 dependencies: ··· 4605 4692 4606 4693 flat-cache@4.0.1: 4607 4694 dependencies: 4608 - flatted: 3.4.2 4695 + flatted: 3.4.1 4609 4696 keyv: 4.5.4 4610 4697 4611 - flatted@3.4.2: {} 4698 + flatted@3.4.1: {} 4612 4699 4613 4700 fsevents@2.3.3: 4614 4701 optional: true ··· 4704 4791 prelude-ls: 1.2.1 4705 4792 type-check: 0.4.0 4706 4793 4794 + lightningcss-android-arm64@1.31.1: 4795 + optional: true 4796 + 4707 4797 lightningcss-android-arm64@1.32.0: 4708 4798 optional: true 4709 4799 4800 + lightningcss-darwin-arm64@1.31.1: 4801 + optional: true 4802 + 4710 4803 lightningcss-darwin-arm64@1.32.0: 4711 4804 optional: true 4712 4805 4806 + lightningcss-darwin-x64@1.31.1: 4807 + optional: true 4808 + 4713 4809 lightningcss-darwin-x64@1.32.0: 4714 4810 optional: true 4715 4811 4812 + lightningcss-freebsd-x64@1.31.1: 4813 + optional: true 4814 + 4716 4815 lightningcss-freebsd-x64@1.32.0: 4717 4816 optional: true 4718 4817 4818 + lightningcss-linux-arm-gnueabihf@1.31.1: 4819 + optional: true 4820 + 4719 4821 lightningcss-linux-arm-gnueabihf@1.32.0: 4720 4822 optional: true 4721 4823 4824 + lightningcss-linux-arm64-gnu@1.31.1: 4825 + optional: true 4826 + 4722 4827 lightningcss-linux-arm64-gnu@1.32.0: 4723 4828 optional: true 4724 4829 4830 + lightningcss-linux-arm64-musl@1.31.1: 4831 + optional: true 4832 + 4725 4833 lightningcss-linux-arm64-musl@1.32.0: 4834 + optional: true 4835 + 4836 + lightningcss-linux-x64-gnu@1.31.1: 4726 4837 optional: true 4727 4838 4728 4839 lightningcss-linux-x64-gnu@1.32.0: 4840 + optional: true 4841 + 4842 + lightningcss-linux-x64-musl@1.31.1: 4729 4843 optional: true 4730 4844 4731 4845 lightningcss-linux-x64-musl@1.32.0: 4732 4846 optional: true 4733 4847 4848 + lightningcss-win32-arm64-msvc@1.31.1: 4849 + optional: true 4850 + 4734 4851 lightningcss-win32-arm64-msvc@1.32.0: 4735 4852 optional: true 4736 4853 4854 + lightningcss-win32-x64-msvc@1.31.1: 4855 + optional: true 4856 + 4737 4857 lightningcss-win32-x64-msvc@1.32.0: 4738 4858 optional: true 4739 4859 4860 + lightningcss@1.31.1: 4861 + dependencies: 4862 + detect-libc: 2.1.2 4863 + optionalDependencies: 4864 + lightningcss-android-arm64: 1.31.1 4865 + lightningcss-darwin-arm64: 1.31.1 4866 + lightningcss-darwin-x64: 1.31.1 4867 + lightningcss-freebsd-x64: 1.31.1 4868 + lightningcss-linux-arm-gnueabihf: 1.31.1 4869 + lightningcss-linux-arm64-gnu: 1.31.1 4870 + lightningcss-linux-arm64-musl: 1.31.1 4871 + lightningcss-linux-x64-gnu: 1.31.1 4872 + lightningcss-linux-x64-musl: 1.31.1 4873 + lightningcss-win32-arm64-msvc: 1.31.1 4874 + lightningcss-win32-x64-msvc: 1.31.1 4875 + 4740 4876 lightningcss@1.32.0: 4741 4877 dependencies: 4742 4878 detect-libc: 2.1.2 ··· 4799 4935 dependencies: 4800 4936 '@jridgewell/sourcemap-codec': 1.5.5 4801 4937 4802 - maplibre-gl@5.21.0: 4938 + maplibre-gl@5.20.0: 4803 4939 dependencies: 4804 4940 '@mapbox/jsonlint-lines-primitives': 2.0.2 4805 4941 '@mapbox/point-geometry': 1.1.0 ··· 4807 4943 '@mapbox/unitbezier': 0.0.1 4808 4944 '@mapbox/vector-tile': 2.0.4 4809 4945 '@mapbox/whoots-js': 3.1.0 4810 - '@maplibre/geojson-vt': 6.0.4 4946 + '@maplibre/geojson-vt': 6.0.2 4811 4947 '@maplibre/maplibre-gl-style-spec': 24.7.0 4812 - '@maplibre/mlt': 1.1.8 4948 + '@maplibre/mlt': 1.1.7 4813 4949 '@maplibre/vt-pbf': 4.3.0 4814 4950 '@types/geojson': 7946.0.16 4815 4951 earcut: 3.0.2 ··· 4830 4966 punycode.js: 2.3.1 4831 4967 uc.micro: 2.1.0 4832 4968 4833 - marked@17.0.5: {} 4969 + marked@17.0.4: {} 4834 4970 4835 4971 mdurl@2.0.0: {} 4836 4972 ··· 4838 4974 4839 4975 mini-svg-data-uri@1.4.4: {} 4840 4976 4841 - miniflare@4.20260317.1: 4977 + miniflare@4.20260312.0: 4842 4978 dependencies: 4843 4979 '@cspotcode/source-map-support': 0.8.1 4844 4980 sharp: 0.34.5 4845 - undici: 7.24.4 4846 - workerd: 1.20260317.1 4981 + undici: 7.18.2 4982 + workerd: 1.20260312.1 4847 4983 ws: 8.18.0 4848 4984 youch: 4.1.0-beta.10 4849 4985 transitivePeerDependencies: ··· 4858 4994 4859 4995 mitt@3.0.1: {} 4860 4996 4861 - mlly@1.8.2: 4997 + mlly@1.8.1: 4862 4998 dependencies: 4863 4999 acorn: 8.16.0 4864 5000 pathe: 2.0.3 4865 5001 pkg-types: 1.3.1 4866 5002 ufo: 1.6.3 4867 5003 4868 - mode-watcher@1.1.0(svelte@5.54.1): 5004 + mode-watcher@1.1.0(svelte@5.53.11): 4869 5005 dependencies: 4870 - runed: 0.25.0(svelte@5.54.1) 4871 - svelte: 5.54.1 4872 - svelte-toolbelt: 0.7.1(svelte@5.54.1) 5006 + runed: 0.25.0(svelte@5.53.11) 5007 + svelte: 5.53.11 5008 + svelte-toolbelt: 0.7.1(svelte@5.53.11) 4873 5009 4874 5010 mri@1.2.0: {} 4875 5011 ··· 4881 5017 4882 5018 nanoid@3.3.11: {} 4883 5019 4884 - nanoid@5.1.7: {} 5020 + nanoid@5.1.6: {} 4885 5021 4886 5022 natural-compare@1.4.0: {} 4887 5023 ··· 4957 5093 pkg-types@1.3.1: 4958 5094 dependencies: 4959 5095 confbox: 0.1.8 4960 - mlly: 1.8.2 5096 + mlly: 1.8.1 4961 5097 pathe: 2.0.3 4962 5098 4963 5099 pkg-types@2.3.0: ··· 4968 5104 4969 5105 plyr@3.8.4: 4970 5106 dependencies: 4971 - core-js: 3.49.0 5107 + core-js: 3.48.0 4972 5108 custom-event-polyfill: 1.0.7 4973 5109 loadjs: 4.3.0 4974 5110 rangetouch: 2.0.1 ··· 4977 5113 postcss-load-config@3.1.4(postcss@8.5.8): 4978 5114 dependencies: 4979 5115 lilconfig: 2.1.0 4980 - yaml: 1.10.3 5116 + yaml: 1.10.2 4981 5117 optionalDependencies: 4982 5118 postcss: 8.5.8 4983 5119 ··· 5011 5147 5012 5148 prelude-ls@1.2.1: {} 5013 5149 5014 - prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.54.1): 5150 + prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.53.11): 5015 5151 dependencies: 5016 5152 prettier: 3.8.1 5017 - svelte: 5.54.1 5153 + svelte: 5.53.11 5018 5154 5019 - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.54.1))(prettier@3.8.1): 5155 + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-svelte@3.5.1(prettier@3.8.1)(svelte@5.53.11))(prettier@3.8.1): 5020 5156 dependencies: 5021 5157 prettier: 3.8.1 5022 5158 optionalDependencies: 5023 - prettier-plugin-svelte: 3.5.1(prettier@3.8.1)(svelte@5.54.1) 5159 + prettier-plugin-svelte: 3.5.1(prettier@3.8.1)(svelte@5.53.11) 5024 5160 5025 5161 prettier@3.8.1: {} 5026 5162 ··· 5048 5184 dependencies: 5049 5185 prosemirror-state: 1.4.4 5050 5186 prosemirror-transform: 1.11.0 5051 - prosemirror-view: 1.41.7 5187 + prosemirror-view: 1.41.6 5052 5188 5053 5189 prosemirror-gapcursor@1.4.1: 5054 5190 dependencies: 5055 5191 prosemirror-keymap: 1.2.3 5056 5192 prosemirror-model: 1.25.4 5057 5193 prosemirror-state: 1.4.4 5058 - prosemirror-view: 1.41.7 5194 + prosemirror-view: 1.41.6 5059 5195 5060 5196 prosemirror-history@1.5.0: 5061 5197 dependencies: 5062 5198 prosemirror-state: 1.4.4 5063 5199 prosemirror-transform: 1.11.0 5064 - prosemirror-view: 1.41.7 5200 + prosemirror-view: 1.41.6 5065 5201 rope-sequence: 1.3.4 5066 5202 5067 5203 prosemirror-inputrules@1.5.1: ··· 5105 5241 dependencies: 5106 5242 prosemirror-model: 1.25.4 5107 5243 prosemirror-transform: 1.11.0 5108 - prosemirror-view: 1.41.7 5244 + prosemirror-view: 1.41.6 5109 5245 5110 5246 prosemirror-tables@1.8.5: 5111 5247 dependencies: ··· 5113 5249 prosemirror-model: 1.25.4 5114 5250 prosemirror-state: 1.4.4 5115 5251 prosemirror-transform: 1.11.0 5116 - prosemirror-view: 1.41.7 5252 + prosemirror-view: 1.41.6 5117 5253 5118 - prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.7): 5254 + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6): 5119 5255 dependencies: 5120 5256 '@remirror/core-constants': 3.0.0 5121 5257 escape-string-regexp: 4.0.0 5122 5258 prosemirror-model: 1.25.4 5123 5259 prosemirror-state: 1.4.4 5124 - prosemirror-view: 1.41.7 5260 + prosemirror-view: 1.41.6 5125 5261 5126 5262 prosemirror-transform@1.11.0: 5127 5263 dependencies: 5128 5264 prosemirror-model: 1.25.4 5129 5265 5130 - prosemirror-view@1.41.7: 5266 + prosemirror-view@1.41.6: 5131 5267 dependencies: 5132 5268 prosemirror-model: 1.25.4 5133 5269 prosemirror-state: 1.4.4 ··· 5195 5331 dependencies: 5196 5332 protocol-buffers-schema: 3.6.0 5197 5333 5198 - rolldown@1.0.0-rc.10: 5334 + rolldown@1.0.0-rc.9: 5199 5335 dependencies: 5200 - '@oxc-project/types': 0.120.0 5201 - '@rolldown/pluginutils': 1.0.0-rc.10 5336 + '@oxc-project/types': 0.115.0 5337 + '@rolldown/pluginutils': 1.0.0-rc.9 5202 5338 optionalDependencies: 5203 - '@rolldown/binding-android-arm64': 1.0.0-rc.10 5204 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.10 5205 - '@rolldown/binding-darwin-x64': 1.0.0-rc.10 5206 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.10 5207 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.10 5208 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.10 5209 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.10 5210 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.10 5211 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.10 5212 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.10 5213 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.10 5214 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.10 5215 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.10 5216 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.10 5217 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.10 5339 + '@rolldown/binding-android-arm64': 1.0.0-rc.9 5340 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.9 5341 + '@rolldown/binding-darwin-x64': 1.0.0-rc.9 5342 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.9 5343 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.9 5344 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.9 5345 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.9 5346 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.9 5347 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.9 5348 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.9 5349 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.9 5350 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.9 5351 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.9 5352 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.9 5353 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.9 5218 5354 5219 5355 rope-sequence@1.3.4: {} 5220 5356 5221 - runed@0.23.4(svelte@5.54.1): 5357 + runed@0.23.4(svelte@5.53.11): 5222 5358 dependencies: 5223 5359 esm-env: 1.2.2 5224 - svelte: 5.54.1 5360 + svelte: 5.53.11 5225 5361 5226 - runed@0.25.0(svelte@5.54.1): 5362 + runed@0.25.0(svelte@5.53.11): 5227 5363 dependencies: 5228 5364 esm-env: 1.2.2 5229 - svelte: 5.54.1 5365 + svelte: 5.53.11 5230 5366 5231 - runed@0.28.0(svelte@5.54.1): 5367 + runed@0.28.0(svelte@5.53.11): 5232 5368 dependencies: 5233 5369 esm-env: 1.2.2 5234 - svelte: 5.54.1 5370 + svelte: 5.53.11 5235 5371 5236 - runed@0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1): 5372 + runed@0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11): 5237 5373 dependencies: 5238 5374 dequal: 2.0.3 5239 5375 esm-env: 1.2.2 5240 5376 lz-string: 1.5.0 5241 - svelte: 5.54.1 5377 + svelte: 5.53.11 5242 5378 optionalDependencies: 5243 - '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)) 5379 + '@sveltejs/kit': 2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)) 5244 5380 5245 5381 rw@1.3.3: {} 5246 5382 ··· 5271 5407 5272 5408 semver@7.7.4: {} 5273 5409 5274 - set-cookie-parser@3.1.0: {} 5410 + set-cookie-parser@3.0.1: {} 5275 5411 5276 5412 sharp@0.34.5: 5277 5413 dependencies: ··· 5310 5446 5311 5447 shebang-regex@3.0.0: {} 5312 5448 5313 - simple-icons@16.12.0: {} 5449 + simple-icons@16.11.0: {} 5314 5450 5315 5451 sirv@3.0.2: 5316 5452 dependencies: ··· 5336 5472 5337 5473 svelte-boring-avatars@1.2.6: {} 5338 5474 5339 - svelte-check@4.4.5(picomatch@4.0.3)(svelte@5.54.1)(typescript@5.9.3): 5475 + svelte-check@4.4.5(picomatch@4.0.3)(svelte@5.53.11)(typescript@5.9.3): 5340 5476 dependencies: 5341 5477 '@jridgewell/trace-mapping': 0.3.31 5342 5478 chokidar: 4.0.3 5343 5479 fdir: 6.5.0(picomatch@4.0.3) 5344 5480 picocolors: 1.1.1 5345 5481 sade: 1.8.1 5346 - svelte: 5.54.1 5482 + svelte: 5.53.11 5347 5483 typescript: 5.9.3 5348 5484 transitivePeerDependencies: 5349 5485 - picomatch 5350 5486 5351 - svelte-eslint-parser@1.6.0(svelte@5.54.1): 5487 + svelte-eslint-parser@1.6.0(svelte@5.53.11): 5352 5488 dependencies: 5353 5489 eslint-scope: 8.4.0 5354 5490 eslint-visitor-keys: 4.2.1 ··· 5358 5494 postcss-selector-parser: 7.1.1 5359 5495 semver: 7.7.4 5360 5496 optionalDependencies: 5361 - svelte: 5.54.1 5497 + svelte: 5.53.11 5362 5498 5363 - svelte-maplibre-gl@1.0.3(maplibre-gl@5.21.0)(svelte@5.54.1): 5499 + svelte-maplibre-gl@1.0.3(maplibre-gl@5.20.0)(svelte@5.53.11): 5364 5500 dependencies: 5365 - maplibre-gl: 5.21.0 5366 - svelte: 5.54.1 5501 + maplibre-gl: 5.20.0 5502 + svelte: 5.53.11 5367 5503 5368 - svelte-sonner@1.1.0(svelte@5.54.1): 5504 + svelte-sonner@1.1.0(svelte@5.53.11): 5369 5505 dependencies: 5370 - runed: 0.28.0(svelte@5.54.1) 5371 - svelte: 5.54.1 5506 + runed: 0.28.0(svelte@5.53.11) 5507 + svelte: 5.53.11 5372 5508 5373 - svelte-tiptap@3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/extension-bubble-menu@3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/extension-floating-menu@3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4)(svelte@5.54.1): 5509 + svelte-tiptap@3.0.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/extension-bubble-menu@3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/extension-floating-menu@3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1)(svelte@5.53.11): 5374 5510 dependencies: 5375 5511 '@floating-ui/dom': 1.7.6 5376 - '@tiptap/core': 3.20.4(@tiptap/pm@3.20.4) 5377 - '@tiptap/extension-bubble-menu': 3.20.4(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 5378 - '@tiptap/extension-floating-menu': 3.20.4(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.4(@tiptap/pm@3.20.4))(@tiptap/pm@3.20.4) 5379 - '@tiptap/pm': 3.20.4 5380 - svelte: 5.54.1 5512 + '@tiptap/core': 3.20.1(@tiptap/pm@3.20.1) 5513 + '@tiptap/extension-bubble-menu': 3.20.1(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 5514 + '@tiptap/extension-floating-menu': 3.20.1(@floating-ui/dom@1.7.6)(@tiptap/core@3.20.1(@tiptap/pm@3.20.1))(@tiptap/pm@3.20.1) 5515 + '@tiptap/pm': 3.20.1 5516 + svelte: 5.53.11 5381 5517 5382 - svelte-toolbelt@0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1): 5518 + svelte-toolbelt@0.10.6(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11): 5383 5519 dependencies: 5384 5520 clsx: 2.1.1 5385 - runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1)(typescript@5.9.3)(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.54.1) 5521 + runed: 0.35.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.53.11)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11)(typescript@5.9.3)(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)))(svelte@5.53.11) 5386 5522 style-to-object: 1.0.14 5387 - svelte: 5.54.1 5523 + svelte: 5.53.11 5388 5524 transitivePeerDependencies: 5389 5525 - '@sveltejs/kit' 5390 5526 5391 - svelte-toolbelt@0.7.1(svelte@5.54.1): 5527 + svelte-toolbelt@0.7.1(svelte@5.53.11): 5392 5528 dependencies: 5393 5529 clsx: 2.1.1 5394 - runed: 0.23.4(svelte@5.54.1) 5530 + runed: 0.23.4(svelte@5.53.11) 5395 5531 style-to-object: 1.0.14 5396 - svelte: 5.54.1 5532 + svelte: 5.53.11 5397 5533 5398 - svelte@5.54.1: 5534 + svelte@5.53.11: 5399 5535 dependencies: 5400 5536 '@jridgewell/remapping': 2.3.5 5401 5537 '@jridgewell/sourcemap-codec': 1.5.5 ··· 5418 5554 5419 5555 tailwind-merge@3.5.0: {} 5420 5556 5421 - tailwind-variants@3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2): 5557 + tailwind-variants@3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.1): 5422 5558 dependencies: 5423 - tailwindcss: 4.2.2 5559 + tailwindcss: 4.2.1 5424 5560 optionalDependencies: 5425 5561 tailwind-merge: 3.5.0 5426 5562 5427 - tailwindcss-animate@1.0.7(tailwindcss@4.2.2): 5563 + tailwindcss-animate@1.0.7(tailwindcss@4.2.1): 5428 5564 dependencies: 5429 - tailwindcss: 4.2.2 5565 + tailwindcss: 4.2.1 5430 5566 5431 - tailwindcss@4.2.2: {} 5567 + tailwindcss@4.2.1: {} 5432 5568 5433 5569 tapable@2.3.0: {} 5434 5570 ··· 5478 5614 5479 5615 troika-worker-utils@0.52.0: {} 5480 5616 5481 - ts-api-utils@2.5.0(typescript@5.9.3): 5617 + ts-api-utils@2.4.0(typescript@5.9.3): 5482 5618 dependencies: 5483 5619 typescript: 5.9.3 5484 5620 ··· 5494 5630 dependencies: 5495 5631 prelude-ls: 1.2.1 5496 5632 5497 - typescript-eslint@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): 5633 + typescript-eslint@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3): 5498 5634 dependencies: 5499 - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 5500 - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 5501 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) 5502 - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) 5503 - eslint: 10.1.0(jiti@2.6.1) 5635 + '@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 5636 + '@typescript-eslint/parser': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 5637 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3) 5638 + '@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) 5639 + eslint: 10.0.3(jiti@2.6.1) 5504 5640 typescript: 5.9.3 5505 5641 transitivePeerDependencies: 5506 5642 - supports-color ··· 5513 5649 5514 5650 ultrahtml@1.6.0: {} 5515 5651 5516 - undici@7.24.4: {} 5652 + undici-types@7.16.0: 5653 + optional: true 5517 5654 5518 - undici@7.24.5: {} 5655 + undici@7.18.2: {} 5656 + 5657 + undici@7.24.0: {} 5519 5658 5520 5659 unenv@2.0.0-rc.24: 5521 5660 dependencies: ··· 5533 5672 exsolve: 1.0.8 5534 5673 knitwork: 1.3.0 5535 5674 magic-string: 0.30.21 5536 - mlly: 1.8.2 5675 + mlly: 1.8.1 5537 5676 pathe: 2.0.3 5538 5677 pkg-types: 2.3.0 5539 5678 ··· 5549 5688 optionalDependencies: 5550 5689 typescript: 5.9.3 5551 5690 5552 - vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1): 5691 + vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1): 5553 5692 dependencies: 5693 + '@oxc-project/runtime': 0.115.0 5554 5694 lightningcss: 1.32.0 5555 5695 picomatch: 4.0.3 5556 5696 postcss: 8.5.8 5557 - rolldown: 1.0.0-rc.10 5697 + rolldown: 1.0.0-rc.9 5558 5698 tinyglobby: 0.2.15 5559 5699 optionalDependencies: 5700 + '@types/node': 25.0.10 5560 5701 esbuild: 0.27.3 5561 5702 fsevents: 2.3.3 5562 5703 jiti: 2.6.1 5563 5704 5564 - vitefu@1.1.2(vite@8.0.1(esbuild@0.27.3)(jiti@2.6.1)): 5705 + vitefu@1.1.2(vite@8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1)): 5565 5706 optionalDependencies: 5566 - vite: 8.0.1(esbuild@0.27.3)(jiti@2.6.1) 5707 + vite: 8.0.0(@types/node@25.0.10)(esbuild@0.27.3)(jiti@2.6.1) 5567 5708 5568 5709 w3c-keyname@2.2.8: {} 5569 5710 5570 - web-haptics@0.0.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.54.1): 5711 + web-haptics@0.0.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(svelte@5.53.11): 5571 5712 optionalDependencies: 5572 5713 react: 19.2.4 5573 5714 react-dom: 19.2.4(react@19.2.4) 5574 - svelte: 5.54.1 5715 + svelte: 5.53.11 5575 5716 5576 5717 webgl-sdf-generator@1.1.1: {} 5577 5718 ··· 5587 5728 5588 5729 word-wrap@1.2.5: {} 5589 5730 5590 - workerd@1.20260317.1: 5731 + workerd@1.20260312.1: 5591 5732 optionalDependencies: 5592 - '@cloudflare/workerd-darwin-64': 1.20260317.1 5593 - '@cloudflare/workerd-darwin-arm64': 1.20260317.1 5594 - '@cloudflare/workerd-linux-64': 1.20260317.1 5595 - '@cloudflare/workerd-linux-arm64': 1.20260317.1 5596 - '@cloudflare/workerd-windows-64': 1.20260317.1 5733 + '@cloudflare/workerd-darwin-64': 1.20260312.1 5734 + '@cloudflare/workerd-darwin-arm64': 1.20260312.1 5735 + '@cloudflare/workerd-linux-64': 1.20260312.1 5736 + '@cloudflare/workerd-linux-arm64': 1.20260312.1 5737 + '@cloudflare/workerd-windows-64': 1.20260312.1 5597 5738 5598 5739 worktop@0.8.0-next.18: 5599 5740 dependencies: 5600 5741 mrmime: 2.0.1 5601 5742 regexparam: 3.0.0 5602 5743 5603 - wrangler@4.76.0(@cloudflare/workers-types@4.20260317.1): 5744 + wrangler@4.73.0(@cloudflare/workers-types@4.20260313.1): 5604 5745 dependencies: 5605 5746 '@cloudflare/kv-asset-handler': 0.4.2 5606 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1) 5747 + '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20260312.1) 5607 5748 blake3-wasm: 2.1.5 5608 5749 esbuild: 0.27.3 5609 - miniflare: 4.20260317.1 5750 + miniflare: 4.20260312.0 5610 5751 path-to-regexp: 6.3.0 5611 5752 unenv: 2.0.0-rc.24 5612 - workerd: 1.20260317.1 5753 + workerd: 1.20260312.1 5613 5754 optionalDependencies: 5614 - '@cloudflare/workers-types': 4.20260317.1 5755 + '@cloudflare/workers-types': 4.20260313.1 5615 5756 fsevents: 2.3.3 5616 5757 transitivePeerDependencies: 5617 5758 - bufferutil ··· 5619 5760 5620 5761 ws@8.18.0: {} 5621 5762 5622 - yaml@1.10.3: {} 5763 + yaml@1.10.2: {} 5623 5764 5624 5765 yocto-queue@0.1.0: {} 5625 5766 ··· 5634 5775 dependencies: 5635 5776 '@poppinss/colors': 4.1.6 5636 5777 '@poppinss/dumper': 0.6.5 5637 - '@speed-highlight/core': 1.2.15 5778 + '@speed-highlight/core': 1.2.14 5638 5779 cookie: 1.1.1 5639 5780 youch-core: 0.3.3 5640 5781
+6 -14
src/lib/atproto/image-helper.ts
··· 29 29 let width = img.width; 30 30 let height = img.height; 31 31 32 - // If image is already small enough, return original 33 - if (file.size <= maxSize) { 34 - console.log('skipping compression+resizing, already small enough'); 35 - return resolve({ 36 - blob: file, 37 - aspectRatio: { 38 - width, 39 - height 40 - } 41 - }); 42 - } 32 + const isSmallEnough = file.size <= maxSize; 43 33 44 34 if (width > maxDimension || height > maxDimension) { 45 35 if (width > height) { ··· 59 49 if (!ctx) return reject(new Error('Failed to get canvas context.')); 60 50 ctx.drawImage(img, 0, 0, width, height); 61 51 62 - // Use WebP for both compression and transparency support 52 + // Use WebP if supported, fall back to JPEG (Safari doesn't support WebP encoding) 53 + const supportsWebP = canvas.toDataURL('image/webp').startsWith('data:image/webp'); 54 + const mimeType = supportsWebP ? 'image/webp' : 'image/jpeg'; 63 55 let quality = 0.9; 64 56 65 57 function attemptCompression() { ··· 68 60 if (!blob) { 69 61 return reject(new Error('Compression failed.')); 70 62 } 71 - if (blob.size <= maxSize || quality < 0.3) { 63 + if (isSmallEnough || blob.size <= maxSize || quality < 0.3) { 72 64 resolve({ 73 65 blob, 74 66 aspectRatio: { ··· 81 73 attemptCompression(); 82 74 } 83 75 }, 84 - 'image/webp', 76 + mimeType, 85 77 quality 86 78 ); 87 79 }
+17
src/lib/cache.ts
··· 12 12 lastfm: 60 * 60, // 1 hour (default, overridable per-put) 13 13 listenbrainz: 60 * 60, // 1 hour (default, overridable per-put) 14 14 npmx: 60 * 60 * 12, // 12 hours 15 + og: 60 * 60 * 24 * 30, // 30 days 15 16 profile: 60 * 60 * 24, // 24 hours 16 17 ical: 60 * 60 * 2, // 2 hours 17 18 events: 60 * 60, // 1 hour ··· 65 66 ttlSeconds?: number 66 67 ): Promise<void> { 67 68 await this.put(namespace, key, JSON.stringify(value), ttlSeconds); 69 + } 70 + 71 + // === ArrayBuffer convenience (for binary data like images) === 72 + 73 + async getArrayBuffer(namespace: CacheNamespace, key: string): Promise<ArrayBuffer | null> { 74 + return this.kv.get(`${namespace}:${key}`, 'arrayBuffer'); 75 + } 76 + 77 + async putArrayBuffer( 78 + namespace: CacheNamespace, 79 + key: string, 80 + value: ArrayBuffer, 81 + ttlSeconds?: number 82 + ): Promise<void> { 83 + const ttl = ttlSeconds ?? NAMESPACE_TTL[namespace] ?? 0; 84 + await this.kv.put(`${namespace}:${key}`, value, ttl > 0 ? { expirationTtl: ttl } : undefined); 68 85 } 69 86 70 87 // === blento data (keyed by DID, with handle↔did resolution) ===
+10 -5
src/lib/cards/content/StandardSiteDocumentListCard/index.ts
··· 29 29 30 30 if (!siteParts) continue; 31 31 32 - const publicationRecord = await getRecord({ 33 - did: siteParts.repo as `did:${string}:${string}`, 34 - collection: siteParts.collection!, 35 - rkey: siteParts.rkey 36 - }); 32 + let publicationRecord; 33 + try { 34 + publicationRecord = await getRecord({ 35 + did: siteParts.repo as `did:${string}:${string}`, 36 + collection: siteParts.collection!, 37 + rkey: siteParts.rkey 38 + }); 39 + } catch { 40 + continue; 41 + } 37 42 38 43 if (!publicationRecord.value) continue; 39 44 const { url } = publicationRecord.value;
+3 -1
src/lib/cards/index.ts
··· 61 61 import { KichRecipeCardDefinition } from './social/KichRecipeCard'; 62 62 import { KichRecipeCollectionCardDefinition } from './social/KichRecipeCollectionCard'; 63 63 import { KichCookingLogCardDefinition } from './social/KichCookingLogCard'; 64 + import { SecretImageCardDefinition } from './media/SecretImageCard'; 64 65 // import { Model3DCardDefinition } from './visual/Model3DCard'; 65 66 66 67 export const AllCardDefinitions = [ ··· 127 128 GermDMCardDefinition, 128 129 KichRecipeCardDefinition, 129 130 KichRecipeCollectionCardDefinition, 130 - KichCookingLogCardDefinition 131 + KichCookingLogCardDefinition, 132 + SecretImageCardDefinition 131 133 ] as const; 132 134 133 135 export const CardDefinitionsByType = AllCardDefinitions.reduce(
+106
src/lib/cards/media/SecretImageCard/EditingSecretImageCard.svelte
··· 1 + <script lang="ts"> 2 + import type { ContentComponentProps } from '../../types'; 3 + import { compressImage } from '$lib/atproto/image-helper'; 4 + 5 + let { item = $bindable() }: ContentComponentProps = $props(); 6 + 7 + let fileInput = $state<HTMLInputElement | undefined>(undefined); 8 + let dragOver = $state(false); 9 + 10 + const hasImage = $derived(item.cardData.rawImage?.objectUrl || item.cardData.preview); 11 + 12 + const imageUrl = $derived(item.cardData.rawImage?.objectUrl || item.cardData.preview); 13 + 14 + async function handleFile(file: File) { 15 + const { blob } = await compressImage(file); 16 + const objectUrl = URL.createObjectURL(blob); 17 + item.cardData.rawImage = { blob, objectUrl }; 18 + } 19 + 20 + function handleDragOver(event: DragEvent) { 21 + event.preventDefault(); 22 + event.stopPropagation(); 23 + dragOver = true; 24 + } 25 + 26 + function handleDragLeave(event: DragEvent) { 27 + event.preventDefault(); 28 + event.stopPropagation(); 29 + dragOver = false; 30 + } 31 + 32 + async function handleDrop(event: DragEvent) { 33 + event.preventDefault(); 34 + event.stopPropagation(); 35 + dragOver = false; 36 + const file = event.dataTransfer?.files?.[0]; 37 + if (file?.type.startsWith('image/')) { 38 + await handleFile(file); 39 + } 40 + } 41 + 42 + async function handleFileInput(event: Event) { 43 + const target = event.target as HTMLInputElement; 44 + const file = target.files?.[0]; 45 + if (file) await handleFile(file); 46 + } 47 + </script> 48 + 49 + <!-- svelte-ignore a11y_no_static_element_interactions --> 50 + <div 51 + class="absolute inset-0 flex flex-col" 52 + ondragover={handleDragOver} 53 + ondragleave={handleDragLeave} 54 + ondrop={handleDrop} 55 + > 56 + <input 57 + bind:this={fileInput} 58 + type="file" 59 + accept="image/*" 60 + class="hidden" 61 + onchange={handleFileInput} 62 + /> 63 + 64 + <!-- Image area --> 65 + <button 66 + type="button" 67 + class="relative flex-1 cursor-pointer overflow-hidden" 68 + onclick={() => fileInput?.click()} 69 + > 70 + {#if hasImage} 71 + <img class="absolute inset-0 h-full w-full object-cover" src={imageUrl} alt="" /> 72 + <div 73 + class="absolute inset-0 flex items-center justify-center bg-black/0 transition-colors hover:bg-black/30" 74 + > 75 + <span class="text-sm font-medium text-white opacity-0 transition-opacity hover:opacity-100"> 76 + Replace 77 + </span> 78 + </div> 79 + {:else} 80 + <div 81 + class="flex h-full items-center justify-center {dragOver 82 + ? 'bg-accent-100 dark:bg-accent-900/30' 83 + : ''}" 84 + > 85 + <div class="text-base-400 flex flex-col items-center gap-1"> 86 + <svg 87 + xmlns="http://www.w3.org/2000/svg" 88 + fill="none" 89 + viewBox="0 0 24 24" 90 + stroke-width="1.5" 91 + stroke="currentColor" 92 + class="size-8" 93 + > 94 + <path 95 + stroke-linecap="round" 96 + stroke-linejoin="round" 97 + d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909M3 21h18a1.5 1.5 0 0 0 1.5-1.5V6A1.5 1.5 0 0 0 21 4.5H3A1.5 1.5 0 0 0 1.5 6v12A1.5 1.5 0 0 0 3 21Z" 98 + /> 99 + </svg> 100 + <span class="text-xs">Drop or click</span> 101 + </div> 102 + </div> 103 + {/if} 104 + </button> 105 + 106 + </div>
+151
src/lib/cards/media/SecretImageCard/SecretImageCard.svelte
··· 1 + <script lang="ts"> 2 + import { page } from '$app/state'; 3 + import { getDidContext } from '$lib/website/context'; 4 + import { getBlobURL } from '$lib/atproto'; 5 + import { decryptBlob } from './crypto'; 6 + import type { ContentComponentProps } from '../../types'; 7 + import Modal from '$lib/components/modal/Modal.svelte'; 8 + import { Button, Input, Subheading } from '@foxui/core'; 9 + 10 + let { item = $bindable() }: ContentComponentProps = $props(); 11 + 12 + const did = getDidContext(); 13 + 14 + let decryptedUrl = $state<string | null>(null); 15 + let decrypting = $state(false); 16 + let showPasswordModal = $state(false); 17 + let passwordInput = $state(''); 18 + let wrongPassword = $state(false); 19 + 20 + $effect(() => { 21 + const secret = page.url.searchParams.get('secret'); 22 + const blob = item.cardData.encryptedImage; 23 + if (!secret || !blob || blob.$type !== 'blob') return; 24 + 25 + decrypting = true; 26 + decryptImage(secret, blob); 27 + 28 + return () => { 29 + if (decryptedUrl) { 30 + URL.revokeObjectURL(decryptedUrl); 31 + decryptedUrl = null; 32 + } 33 + }; 34 + }); 35 + 36 + async function decryptImage(password: string, blob: any): Promise<boolean> { 37 + try { 38 + const url = await getBlobURL({ did, blob }); 39 + const response = await fetch(url); 40 + if (!response.ok) throw new Error('Failed to fetch blob'); 41 + const encryptedBlob = await response.blob(); 42 + const decrypted = await decryptBlob(encryptedBlob, password); 43 + decryptedUrl = URL.createObjectURL(decrypted); 44 + return true; 45 + } catch { 46 + // Wrong password or fetch error - stay pixelated 47 + return false; 48 + } finally { 49 + decrypting = false; 50 + } 51 + } 52 + 53 + async function handleSubmit(e: SubmitEvent) { 54 + e.preventDefault(); 55 + wrongPassword = false; 56 + decrypting = true; 57 + 58 + const blob = item.cardData.encryptedImage; 59 + if (!blob || blob.$type !== 'blob') { 60 + decrypting = false; 61 + return; 62 + } 63 + 64 + const success = await decryptImage(passwordInput, blob); 65 + if (success) { 66 + showPasswordModal = false; 67 + passwordInput = ''; 68 + } else { 69 + wrongPassword = true; 70 + } 71 + } 72 + </script> 73 + 74 + {#if item.cardData.preview} 75 + <img 76 + class="absolute inset-0 h-full w-full object-cover" 77 + style="image-rendering: pixelated;" 78 + src={item.cardData.preview} 79 + alt="" 80 + /> 81 + {/if} 82 + 83 + {#if decryptedUrl} 84 + <img 85 + class="animate-in fade-in absolute inset-0 h-full w-full object-cover duration-500" 86 + src={decryptedUrl} 87 + alt="" 88 + /> 89 + {/if} 90 + 91 + {#if !decryptedUrl} 92 + <button 93 + class="absolute inset-0 flex cursor-pointer items-center justify-center" 94 + onclick={() => { 95 + if (!decrypting) { 96 + wrongPassword = false; 97 + showPasswordModal = true; 98 + } 99 + }} 100 + aria-label="Unlock secret image" 101 + > 102 + <div class="bg-base-900/40 rounded-full p-3 backdrop-blur-sm"> 103 + {#if decrypting} 104 + <svg 105 + class="size-6 animate-spin text-white" 106 + xmlns="http://www.w3.org/2000/svg" 107 + fill="none" 108 + viewBox="0 0 24 24" 109 + > 110 + <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" 111 + ></circle> 112 + <path 113 + class="opacity-75" 114 + fill="currentColor" 115 + d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" 116 + ></path> 117 + </svg> 118 + {:else} 119 + <svg 120 + xmlns="http://www.w3.org/2000/svg" 121 + fill="none" 122 + viewBox="0 0 24 24" 123 + stroke-width="2" 124 + stroke="currentColor" 125 + class="size-6 text-white" 126 + > 127 + <path 128 + stroke-linecap="round" 129 + stroke-linejoin="round" 130 + d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" 131 + /> 132 + </svg> 133 + {/if} 134 + </div> 135 + </button> 136 + {/if} 137 + 138 + <Modal bind:open={showPasswordModal}> 139 + <form onsubmit={handleSubmit} class="flex flex-col gap-3"> 140 + <Subheading>Enter password</Subheading> 141 + <Input type="password" bind:value={passwordInput} placeholder="Password" /> 142 + {#if wrongPassword} 143 + <p class="text-sm text-red-500">Wrong password</p> 144 + {/if} 145 + <div class="flex justify-end"> 146 + <Button type="submit" disabled={decrypting}> 147 + {decrypting ? 'Decrypting...' : 'Unlock'} 148 + </Button> 149 + </div> 150 + </form> 151 + </Modal>
+8
src/lib/cards/media/SecretImageCard/SecretImageCardSettings.svelte
··· 1 + <script lang="ts"> 2 + import type { Item } from '$lib/types'; 3 + import { Input } from '@foxui/core'; 4 + 5 + let { item }: { item: Item; onclose: () => void } = $props(); 6 + </script> 7 + 8 + <Input type="password" bind:value={item.cardData.password} placeholder="Enter password" />
+73
src/lib/cards/media/SecretImageCard/crypto.ts
··· 1 + /** 2 + * AES-GCM encryption/decryption using Web Crypto API with SHA-256 derived keys. 3 + */ 4 + 5 + async function deriveKey(password: string): Promise<CryptoKey> { 6 + const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(password)); 7 + return crypto.subtle.importKey('raw', hash, 'AES-GCM', false, ['encrypt', 'decrypt']); 8 + } 9 + 10 + /** 11 + * Encrypt a Blob with a password. Returns a Blob containing iv + ciphertext. 12 + */ 13 + export async function encryptBlob(blob: Blob, password: string): Promise<Blob> { 14 + const iv = crypto.getRandomValues(new Uint8Array(12)); 15 + const key = await deriveKey(password); 16 + 17 + const plaintext = await blob.arrayBuffer(); 18 + const ciphertext = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, plaintext); 19 + 20 + // Pack: iv (12) + ciphertext 21 + const result = new Uint8Array(12 + ciphertext.byteLength); 22 + result.set(iv, 0); 23 + result.set(new Uint8Array(ciphertext), 12); 24 + 25 + return new Blob([result], { type: 'application/octet-stream' }); 26 + } 27 + 28 + /** 29 + * Decrypt a Blob that was encrypted with encryptBlob. Returns the original Blob. 30 + * Throws on wrong password. 31 + */ 32 + export async function decryptBlob(encryptedBlob: Blob, password: string): Promise<Blob> { 33 + const data = new Uint8Array(await encryptedBlob.arrayBuffer()); 34 + 35 + const iv = data.slice(0, 12); 36 + const ciphertext = data.slice(12); 37 + 38 + const key = await deriveKey(password); 39 + const plaintext = await crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, ciphertext); 40 + 41 + return new Blob([plaintext]); 42 + } 43 + 44 + /** 45 + * Create a tiny pixelated preview of an image (16x16 pixels stored as a base64 data URL). 46 + */ 47 + export function createPixelatedPreview(file: Blob, size: number = 16): Promise<string> { 48 + return new Promise((resolve, reject) => { 49 + const img = new Image(); 50 + const reader = new FileReader(); 51 + 52 + reader.onload = (e) => { 53 + if (!e.target?.result) return reject(new Error('Failed to read file')); 54 + img.src = e.target.result as string; 55 + }; 56 + reader.onerror = reject; 57 + reader.readAsDataURL(file); 58 + 59 + img.onload = () => { 60 + const canvas = document.createElement('canvas'); 61 + canvas.width = size; 62 + canvas.height = size; 63 + const ctx = canvas.getContext('2d'); 64 + if (!ctx) return reject(new Error('Failed to get canvas context')); 65 + 66 + ctx.imageSmoothingEnabled = true; 67 + ctx.drawImage(img, 0, 0, size, size); 68 + 69 + resolve(canvas.toDataURL('image/webp', 0.5)); 70 + }; 71 + img.onerror = reject; 72 + }); 73 + }
+86
src/lib/cards/media/SecretImageCard/index.ts
··· 1 + import { uploadBlob } from '$lib/atproto/methods'; 2 + import type { CardDefinition } from '../../types'; 3 + import { createPixelatedPreview, encryptBlob } from './crypto'; 4 + import EditingSecretImageCard from './EditingSecretImageCard.svelte'; 5 + import SecretImageCard from './SecretImageCard.svelte'; 6 + import SecretImageCardSettings from './SecretImageCardSettings.svelte'; 7 + 8 + export const SecretImageCardDefinition = { 9 + type: 'secretImage', 10 + contentComponent: SecretImageCard, 11 + editingContentComponent: EditingSecretImageCard, 12 + settingsComponent: SecretImageCardSettings, 13 + 14 + createNew: (card) => { 15 + card.cardType = 'secretImage'; 16 + card.cardData = { 17 + encryptedImage: '', 18 + preview: '', 19 + password: '', 20 + rawImage: null 21 + }; 22 + }, 23 + 24 + upload: async (item) => { 25 + if (item.cardData.rawImage?.blob && !item.cardData.password) { 26 + throw new Error('Password is required for secret image'); 27 + } 28 + 29 + // If there's a new raw image + password, encrypt and upload 30 + if (item.cardData.rawImage?.blob && item.cardData.password) { 31 + const rawBlob = item.cardData.rawImage.blob as Blob; 32 + const password = item.cardData.password as string; 33 + 34 + // Generate pixelated preview 35 + item.cardData.preview = await createPixelatedPreview(rawBlob); 36 + 37 + // Encrypt the image 38 + const encrypted = await encryptBlob(rawBlob, password); 39 + 40 + // Upload encrypted blob 41 + item.cardData.encryptedImage = await uploadBlob({ blob: encrypted }); 42 + 43 + // Clean up local state 44 + if (item.cardData.rawImage.objectUrl) { 45 + URL.revokeObjectURL(item.cardData.rawImage.objectUrl); 46 + } 47 + delete item.cardData.rawImage; 48 + delete item.cardData.password; 49 + 50 + return item; 51 + } 52 + 53 + // Already uploaded encrypted blob - nothing to do 54 + if ( 55 + typeof item.cardData.encryptedImage === 'object' && 56 + item.cardData.encryptedImage?.$type === 'blob' 57 + ) { 58 + // Clean up editing-only fields before save 59 + delete item.cardData.rawImage; 60 + delete item.cardData.password; 61 + return item; 62 + } 63 + 64 + return item; 65 + }, 66 + 67 + name: 'Secret Image', 68 + 69 + keywords: ['secret', 'encrypted', 'password', 'hidden', 'private', 'locked'], 70 + groups: ['Media'], 71 + 72 + icon: `<svg 73 + xmlns="http://www.w3.org/2000/svg" 74 + fill="none" 75 + viewBox="0 0 24 24" 76 + stroke-width="2" 77 + stroke="currentColor" 78 + class="size-4" 79 + > 80 + <path 81 + stroke-linecap="round" 82 + stroke-linejoin="round" 83 + d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" 84 + /> 85 + </svg>` 86 + } as CardDefinition & { type: 'secretImage' };
+10 -4
src/lib/cards/media/StatusphereCard/EditStatusphereCard.svelte
··· 26 26 } 27 27 }); 28 28 29 - // Use card-specific emoji if set, otherwise fall back to PDS data 30 - let emoji = $derived(item.cardData?.emoji ?? record?.value?.status); 29 + let mode = $derived(item.cardData?.mode ?? 'emoji'); 30 + // Emoji mode: use cardData. Statusphere mode: use latest record or preview. 31 + let emoji = $derived( 32 + mode === 'statusphere' 33 + ? (item.cardData?.emoji ?? record?.value?.status) 34 + : item.cardData?.emoji 35 + ); 31 36 32 37 let showPopover = $state(false); 33 38 </script> ··· 36 41 <PopoverEmojiPicker 37 42 bind:open={showPopover} 38 43 onpicked={(picked) => { 39 - item.cardData.hasUpdate = true; 44 + if (mode === 'statusphere') { 45 + item.cardData.hasUpdate = true; 46 + } 40 47 item.cardData.emoji = picked.unicode; 41 - 42 48 showPopover = false; 43 49 }} 44 50 >
+21 -16
src/lib/cards/media/StatusphereCard/SettingsStatusphereCard.svelte
··· 1 1 <script lang="ts"> 2 - import type { Item } from '$lib/types'; 3 - import { getAdditionalUserData } from '$lib/website/context'; 4 - import { EmojiPicker } from '@foxui/social'; 2 + import type { SettingsComponentProps } from '../../types'; 5 3 6 - let { item }: { item: Item } = $props(); 4 + let { item = $bindable() }: SettingsComponentProps = $props(); 7 5 8 - const data = getAdditionalUserData(); 9 - // svelte-ignore state_referenced_locally 10 - let record = $state(data[item.cardType] as any); 6 + let mode: 'emoji' | 'statusphere' = $derived(item.cardData.mode ?? 'emoji'); 11 7 </script> 12 8 13 - <EmojiPicker 14 - onpicked={(emoji) => { 15 - record.value.status = emoji.unicode; 16 - data[item.cardType] = { value: { status: emoji.unicode } }; 17 - 18 - item.cardData.hasUpdate = true; 19 - item.cardData.emoji = emoji.unicode; 20 - }} 21 - /> 9 + <div class="flex gap-2"> 10 + <button 11 + class="rounded-full px-3 py-1 text-sm font-medium transition-colors {mode === 'emoji' 12 + ? 'bg-accent-500 text-white' 13 + : 'bg-base-200 dark:bg-base-700 text-base-700 dark:text-base-300'}" 14 + onclick={() => (item.cardData.mode = 'emoji')} 15 + > 16 + Emoji 17 + </button> 18 + <button 19 + class="rounded-full px-3 py-1 text-sm font-medium transition-colors {mode === 'statusphere' 20 + ? 'bg-accent-500 text-white' 21 + : 'bg-base-200 dark:bg-base-700 text-base-700 dark:text-base-300'}" 22 + onclick={() => (item.cardData.mode = 'statusphere')} 23 + > 24 + Statusphere 25 + </button> 26 + </div>
+5 -2
src/lib/cards/media/StatusphereCard/StatusphereCard.svelte
··· 9 9 // svelte-ignore state_referenced_locally 10 10 let record = $state(data[item.cardType] as any); 11 11 12 - // Use card-specific emoji if set, otherwise fall back to PDS data 13 - let emoji = $derived(item.cardData?.emoji ?? record?.value?.status); 12 + let mode = $derived(item.cardData?.mode ?? 'emoji'); 13 + // Emoji mode: use cardData. Statusphere mode: use latest record from PDS. 14 + let emoji = $derived( 15 + mode === 'statusphere' ? record?.value?.status : item.cardData?.emoji 16 + ); 14 17 let animated = $derived(emojiToNotoAnimatedWebp(emoji)); 15 18 </script> 16 19
+8 -3
src/lib/cards/media/StatusphereCard/index.ts
··· 5 5 import { listRecords, putRecord } from '$lib/atproto'; 6 6 import StatusphereCard from './StatusphereCard.svelte'; 7 7 import EditStatusphereCard from './EditStatusphereCard.svelte'; 8 + import SettingsStatusphereCard from './SettingsStatusphereCard.svelte'; 8 9 import icons from './icons.json'; 9 10 import * as TID from '@atcute/tid'; 10 11 ··· 12 13 type: 'statusphere', 13 14 contentComponent: StatusphereCard, 14 15 editingContentComponent: EditStatusphereCard, 16 + settingsComponent: SettingsStatusphereCard, 15 17 16 18 createNew: (item) => {}, 17 19 18 20 loadData: async (items, { did }) => { 21 + // Only fetch statusphere records if any card uses statusphere mode 22 + const needsStatusphere = items.some((i) => i.cardData.mode === 'statusphere'); 23 + if (!needsStatusphere) return undefined; 24 + 19 25 const data = await listRecords({ did, collection: 'xyz.statusphere.status', limit: 1 }); 20 - 21 26 return data[0]; 22 27 }, 23 28 upload: async (item) => { 24 - if (item.cardData.hasUpdate) { 29 + if (item.cardData.mode === 'statusphere' && item.cardData.hasUpdate) { 25 30 await putRecord({ 26 31 rkey: TID.now(), 27 32 collection: 'xyz.statusphere.status', ··· 31 36 } 32 37 }); 33 38 delete item.cardData.hasUpdate; 34 - // Keep item.cardData.emoji so each card can have its own status 39 + delete item.cardData.emoji; 35 40 } 36 41 37 42 return item;
+3
src/lib/cards/social/BigSocialCard/index.ts
··· 105 105 siLine, 106 106 siArchiveofourown, 107 107 siKickstarter, 108 + siGumroad, 108 109 type SimpleIcon 109 110 } from 'simple-icons'; 110 111 ··· 162 163 ao3: /(?:archiveofourown\.org)/i, 163 164 164 165 kickstarter: /(?:kickstarter\.com)/i, 166 + gumroad: /(?:gumroad\.com)/i, 165 167 166 168 germ: /(?:ger\.mx)/i, 167 169 ··· 270 272 ao3: siArchiveofourown, 271 273 272 274 kickstarter: siKickstarter, 275 + gumroad: siGumroad, 273 276 274 277 tangled: { 275 278 slug: 'tangled',
+1 -1
src/lib/cards/social/BlueskyFeedCard/BlueskyFeedCard.svelte
··· 76 76 <div class="flex h-full flex-col overflow-x-hidden overflow-y-auto p-3" onscroll={handleScroll}> 77 77 {#if feed && feed.length > 0} 78 78 <div class={[item.cardData.label ? 'pt-8' : '']}> 79 - {#each feed as feedItem, i (feedItem.post?.uri ?? i)} 79 + {#each feed as feedItem, i (`${feedItem.post?.uri ?? 'post'}-${i}`)} 80 80 <BlueskyPost showAvatar compact feedViewPost={feedItem.post} /> 81 81 {#if i < feed.length - 1} 82 82 <div
+1 -1
src/lib/cards/social/UpcomingRsvpsCard/UpcomingRsvpsCard.svelte
··· 83 83 <div class="flex-1 overflow-y-auto"> 84 84 {#if rsvps.length > 0} 85 85 <div class="flex flex-col gap-2"> 86 - {#each rsvps as rsvp (rsvp.eventUri)} 86 + {#each rsvps as rsvp, i (`${rsvp.eventUri}-${i}`)} 87 87 <a 88 88 href="https://blento.app/{rsvp.hostDid}/events/{rsvp.rkey}" 89 89 target="_blank"
+2 -2
src/lib/website/EditableWebsite.svelte
··· 244 244 } catch (error) { 245 245 console.error(error); 246 246 showSaveModal = false; 247 - toast.error('Error saving page!'); 247 + toast.error(error instanceof Error ? error.message : 'Error saving page!'); 248 248 } finally { 249 249 isSaving = false; 250 250 } ··· 494 494 <Head 495 495 favicon={getImage(data.publication, data.did, 'icon') || data.profile.avatar} 496 496 title={getName(data)} 497 - image={'/' + data.handle + '/og.png'} 497 + image={'/' + data.handle + '/og-new.png'} 498 498 accentColor={data.publication?.preferences?.accentColor} 499 499 baseColor={data.publication?.preferences?.baseColor} 500 500 />
+1 -1
src/lib/website/Website.svelte
··· 60 60 <Head 61 61 favicon={getImage(data.publication, data.did, 'icon') || data.profile.avatar} 62 62 title={getName(data)} 63 - image={'/' + data.handle + '/og.png'} 63 + image={'/' + data.handle + '/og-new.png'} 64 64 description={getDescription(data)} 65 65 accentColor={data.publication?.preferences?.accentColor} 66 66 baseColor={data.publication?.preferences?.baseColor}
+3
src/routes/[[actor=actor]]/api/refresh/+server.ts
··· 14 14 throw error(404, 'Page not found'); 15 15 } 16 16 17 + // Invalidate cached OG image so it gets regenerated 18 + cache.delete('og', actor).catch(() => {}); 19 + 17 20 return json(await loadData(actor, cache, true, 'self', env)); 18 21 }
+88
src/routes/[[actor=actor]]/og-new.png/+server.ts
··· 1 + import { env } from '$env/dynamic/private'; 2 + import { env as publicEnv } from '$env/dynamic/public'; 3 + import { error } from '@sveltejs/kit'; 4 + import { getActor } from '$lib/actor'; 5 + import { createCache } from '$lib/cache'; 6 + 7 + export async function GET({ params, platform, request }) { 8 + const actor = await getActor({ 9 + request, 10 + paramActor: params.actor, 11 + platform, 12 + blockBoth: false 13 + }); 14 + 15 + if (!actor) { 16 + throw error(404, 'Page not found'); 17 + } 18 + 19 + const cache = createCache(platform); 20 + const cacheKey = actor; 21 + 22 + // Check KV cache first 23 + const cached = await cache?.getArrayBuffer('og', cacheKey); 24 + if (cached) { 25 + return new Response(cached, { 26 + headers: { 27 + 'Content-Type': 'image/png', 28 + 'Cache-Control': 'public, max-age=86400' 29 + } 30 + }); 31 + } 32 + 33 + const handle = params.actor ?? publicEnv.PUBLIC_HANDLE; 34 + const siteUrl = `${publicEnv.PUBLIC_DOMAIN}/${handle}`; 35 + 36 + const accountId = env.CLOUDFLARE_ACCOUNT_ID; 37 + const apiToken = env.CLOUDFLARE_API_TOKEN; 38 + 39 + if (!accountId || !apiToken) { 40 + throw error(500, 'Missing Cloudflare credentials'); 41 + } 42 + 43 + const response = await fetch( 44 + `https://api.cloudflare.com/client/v4/accounts/${accountId}/browser-rendering/screenshot`, 45 + { 46 + method: 'POST', 47 + headers: { 48 + Authorization: `Bearer ${apiToken}`, 49 + 'Content-Type': 'application/json' 50 + }, 51 + body: JSON.stringify({ 52 + url: siteUrl, 53 + screenshotOptions: { 54 + type: 'png', 55 + clip: { 56 + x: 0, 57 + y: 0, 58 + width: 1200, 59 + height: 630 60 + } 61 + }, 62 + viewport: { 63 + width: 1200, 64 + height: 630, 65 + deviceScaleFactor: 2 66 + }, 67 + waitForTimeout: 1000 68 + }) 69 + } 70 + ); 71 + 72 + if (!response.ok) { 73 + console.error('Cloudflare screenshot API error:', response.status, await response.text()); 74 + throw error(502, 'Failed to generate OG image'); 75 + } 76 + 77 + const imageBuffer = await response.arrayBuffer(); 78 + 79 + // Cache in KV (don't await — fire and forget) 80 + cache?.putArrayBuffer('og', cacheKey, imageBuffer).catch(() => {}); 81 + 82 + return new Response(imageBuffer, { 83 + headers: { 84 + 'Content-Type': 'image/png', 85 + 'Cache-Control': 'public, max-age=86400' 86 + } 87 + }); 88 + }
-85
src/routes/[[actor=actor]]/og.png/+server.ts
··· 1 - import { getCDNImageBlobUrl } from '$lib/atproto/methods.js'; 2 - import { createCache } from '$lib/cache'; 3 - import { loadData } from '$lib/website/load'; 4 - import { env } from '$env/dynamic/private'; 5 - import { env as publicEnv } from '$env/dynamic/public'; 6 - 7 - import type { ActorIdentifier } from '@atcute/lexicons'; 8 - import { ImageResponse } from '@ethercorps/sveltekit-og'; 9 - import { error } from '@sveltejs/kit'; 10 - 11 - function escapeHtml(str: string): string { 12 - return str 13 - .replace(/&/g, '&amp;') 14 - .replace(/</g, '&lt;') 15 - .replace(/>/g, '&gt;') 16 - .replace(/"/g, '&quot;') 17 - .replace(/'/g, '&#39;'); 18 - } 19 - 20 - export async function GET({ params, platform, request }) { 21 - const cache = createCache(platform); 22 - 23 - const customDomain = request.headers.get('X-Custom-Domain')?.toLowerCase(); 24 - 25 - let actor: ActorIdentifier | undefined = params.actor; 26 - 27 - if (!actor) { 28 - const kv = platform?.env?.CUSTOM_DOMAINS; 29 - 30 - if (kv && customDomain) { 31 - try { 32 - const did = await kv.get(customDomain); 33 - 34 - if (did) actor = did as ActorIdentifier; 35 - } catch (error) { 36 - console.error('failed to get custom domain kv', error); 37 - } 38 - } else { 39 - actor = publicEnv.PUBLIC_HANDLE as ActorIdentifier; 40 - } 41 - } 42 - 43 - if (!actor) { 44 - throw error(404, 'Page not found'); 45 - } 46 - 47 - const data = await loadData(actor, cache, false, 'self', env); 48 - 49 - let image: string | undefined = data.profile.avatar; 50 - 51 - if (data.publication.icon) { 52 - image = 53 - getCDNImageBlobUrl({ did: data.did, blob: data.publication.icon }) ?? data.profile.avatar; 54 - } 55 - 56 - const name = data.publication?.name ?? data.profile.displayName ?? data.profile.handle; 57 - 58 - const htmlString = ` 59 - <div class="flex flex-col p-8 w-full h-full bg-neutral-900"> 60 - <div class="flex items-center mb-8 mt-16"> 61 - <img src="${escapeHtml(image ?? '')}" width="128" height="128" class="rounded-full" /> 62 - 63 - <h1 class="text-neutral-50 text-7xl ml-4">${escapeHtml(name)}</h1> 64 - </div> 65 - 66 - <p class="mt-8 text-4xl text-neutral-300">Check out my blento</p> 67 - 68 - <svg class="absolute w-130 h-130 top-50 right-0" viewBox="0 0 900 900" fill="none" xmlns="http://www.w3.org/2000/svg"> 69 - <rect x="100" y="100" width="160" height="340" rx="23" fill="#EF4444"/> 70 - <rect x="640" y="280" width="160" height="340" rx="23" fill="#22C55E"/> 71 - <rect x="280" y="100" width="340" height="340" rx="23" fill="#F59E0B"/> 72 - <rect x="100" y="460" width="340" height="160" rx="23" fill="#0EA5E9"/> 73 - <rect x="640" y="100" width="160" height="160" rx="23" fill="#EAB308"/> 74 - <rect x="100" y="640" width="160" height="160" rx="23" fill="#6366F1"/> 75 - <rect x="460" y="460" width="160" height="160" rx="23" fill="#14B8A6"/> 76 - <rect x="280" y="640" width="520" height="160" rx="23" fill="#A855F7"/> 77 - </svg> 78 - </div> 79 - `; 80 - 81 - return new ImageResponse(htmlString, { 82 - width: 1200, 83 - height: 630 84 - }); 85 - }