[READ-ONLY] Mirror of https://github.com/flo-bit/svelsky. editable svelte website with bluesky pds as backend flo-bit.dev/svelsky/
0

Configure Feed

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

commit

Florian (May 8, 2025, 12:49 PM +0200) c0ec88d9 fda2dc9c

+1188 -5117
-4919
package-lock.json
··· 1 - { 2 - "name": "svelte-atproto-client-oauth", 3 - "version": "0.0.1", 4 - "lockfileVersion": 3, 5 - "requires": true, 6 - "packages": { 7 - "": { 8 - "name": "svelte-atproto-client-oauth", 9 - "version": "0.0.1", 10 - "license": "MIT", 11 - "dependencies": { 12 - "@atcute/oauth-browser-client": "^1.0.13", 13 - "@atproto/api": "^0.15.6", 14 - "@fuxui/base": "^0.0.7", 15 - "@fuxui/social": "^0.0.9", 16 - "@tailwindcss/typography": "^0.5.16", 17 - "@tiptap/core": "^2.12.0", 18 - "@tiptap/extension-document": "^2.12.0", 19 - "@tiptap/extension-image": "^2.12.0", 20 - "@tiptap/extension-link": "^2.12.0", 21 - "@tiptap/extension-paragraph": "^2.12.0", 22 - "@tiptap/extension-placeholder": "^2.12.0", 23 - "@tiptap/extension-text": "^2.12.0", 24 - "@tiptap/starter-kit": "^2.12.0", 25 - "marked": "^15.0.11", 26 - "turndown": "^7.2.0" 27 - }, 28 - "devDependencies": { 29 - "@eslint/compat": "^1.2.5", 30 - "@eslint/js": "^9.18.0", 31 - "@sveltejs/adapter-auto": "^4.0.0", 32 - "@sveltejs/adapter-static": "^3.0.8", 33 - "@sveltejs/kit": "^2.16.0", 34 - "@sveltejs/vite-plugin-svelte": "^5.0.0", 35 - "@tailwindcss/forms": "^0.5.10", 36 - "@tailwindcss/vite": "^4.0.0", 37 - "@types/turndown": "^5.0.5", 38 - "eslint": "^9.18.0", 39 - "eslint-config-prettier": "^10.0.1", 40 - "eslint-plugin-svelte": "^2.46.1", 41 - "globals": "^15.14.0", 42 - "prettier": "^3.4.2", 43 - "prettier-plugin-svelte": "^3.3.3", 44 - "prettier-plugin-tailwindcss": "^0.6.11", 45 - "svelte": "^5.0.0", 46 - "svelte-check": "^4.0.0", 47 - "tailwindcss": "^4.0.0", 48 - "typescript": "^5.0.0", 49 - "typescript-eslint": "^8.20.0", 50 - "vite": "^6.0.0" 51 - } 52 - }, 53 - "node_modules/@ampproject/remapping": { 54 - "version": "2.3.0", 55 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 56 - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 57 - "dependencies": { 58 - "@jridgewell/gen-mapping": "^0.3.5", 59 - "@jridgewell/trace-mapping": "^0.3.24" 60 - }, 61 - "engines": { 62 - "node": ">=6.0.0" 63 - } 64 - }, 65 - "node_modules/@atcute/client": { 66 - "version": "2.0.8", 67 - "resolved": "https://registry.npmjs.org/@atcute/client/-/client-2.0.8.tgz", 68 - "integrity": "sha512-OTfiWwjB4mOTlp2InGStvoQ+PIA5lvih9cTYU8BvOhzNcCBUpt4l860MKZExHjvQ9Tt1kjq/ED9zRiUjsAgIxw==" 69 - }, 70 - "node_modules/@atcute/oauth-browser-client": { 71 - "version": "1.0.13", 72 - "resolved": "https://registry.npmjs.org/@atcute/oauth-browser-client/-/oauth-browser-client-1.0.13.tgz", 73 - "integrity": "sha512-JxQKl9Vo1V8poxvR9uKS8bkBv8t53DIH4lCbaih6yn9u7fM62ZC/0x/9KoGWSNqpp3R3U0y/DOQQfdC9Y4GEGQ==", 74 - "dependencies": { 75 - "@atcute/client": "^2.0.7" 76 - } 77 - }, 78 - "node_modules/@atproto/api": { 79 - "version": "0.15.6", 80 - "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.15.6.tgz", 81 - "integrity": "sha512-hKwrBf60LcI4BqArWyrhWJWIpjwAWUJpW3PVvNzUB1q2W/ByC0JAuwq/F8tZpCEiiVBzHjHVRx4QNA2TA1cG3g==", 82 - "license": "MIT", 83 - "dependencies": { 84 - "@atproto/common-web": "^0.4.2", 85 - "@atproto/lexicon": "^0.4.11", 86 - "@atproto/syntax": "^0.4.0", 87 - "@atproto/xrpc": "^0.7.0", 88 - "await-lock": "^2.2.2", 89 - "multiformats": "^9.9.0", 90 - "tlds": "^1.234.0", 91 - "zod": "^3.23.8" 92 - } 93 - }, 94 - "node_modules/@atproto/common-web": { 95 - "version": "0.4.2", 96 - "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.2.tgz", 97 - "integrity": "sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw==", 98 - "license": "MIT", 99 - "dependencies": { 100 - "graphemer": "^1.4.0", 101 - "multiformats": "^9.9.0", 102 - "uint8arrays": "3.0.0", 103 - "zod": "^3.23.8" 104 - } 105 - }, 106 - "node_modules/@atproto/lexicon": { 107 - "version": "0.4.11", 108 - "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.11.tgz", 109 - "integrity": "sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw==", 110 - "license": "MIT", 111 - "dependencies": { 112 - "@atproto/common-web": "^0.4.2", 113 - "@atproto/syntax": "^0.4.0", 114 - "iso-datestring-validator": "^2.2.2", 115 - "multiformats": "^9.9.0", 116 - "zod": "^3.23.8" 117 - } 118 - }, 119 - "node_modules/@atproto/syntax": { 120 - "version": "0.4.0", 121 - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.0.tgz", 122 - "integrity": "sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==", 123 - "license": "MIT" 124 - }, 125 - "node_modules/@atproto/xrpc": { 126 - "version": "0.7.0", 127 - "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.0.tgz", 128 - "integrity": "sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw==", 129 - "license": "MIT", 130 - "dependencies": { 131 - "@atproto/lexicon": "^0.4.11", 132 - "zod": "^3.23.8" 133 - } 134 - }, 135 - "node_modules/@esbuild/aix-ppc64": { 136 - "version": "0.24.2", 137 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", 138 - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", 139 - "cpu": [ 140 - "ppc64" 141 - ], 142 - "dev": true, 143 - "optional": true, 144 - "os": [ 145 - "aix" 146 - ], 147 - "engines": { 148 - "node": ">=18" 149 - } 150 - }, 151 - "node_modules/@esbuild/android-arm": { 152 - "version": "0.24.2", 153 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", 154 - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", 155 - "cpu": [ 156 - "arm" 157 - ], 158 - "dev": true, 159 - "optional": true, 160 - "os": [ 161 - "android" 162 - ], 163 - "engines": { 164 - "node": ">=18" 165 - } 166 - }, 167 - "node_modules/@esbuild/android-arm64": { 168 - "version": "0.24.2", 169 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", 170 - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", 171 - "cpu": [ 172 - "arm64" 173 - ], 174 - "dev": true, 175 - "optional": true, 176 - "os": [ 177 - "android" 178 - ], 179 - "engines": { 180 - "node": ">=18" 181 - } 182 - }, 183 - "node_modules/@esbuild/android-x64": { 184 - "version": "0.24.2", 185 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", 186 - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", 187 - "cpu": [ 188 - "x64" 189 - ], 190 - "dev": true, 191 - "optional": true, 192 - "os": [ 193 - "android" 194 - ], 195 - "engines": { 196 - "node": ">=18" 197 - } 198 - }, 199 - "node_modules/@esbuild/darwin-arm64": { 200 - "version": "0.24.2", 201 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", 202 - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", 203 - "cpu": [ 204 - "arm64" 205 - ], 206 - "dev": true, 207 - "optional": true, 208 - "os": [ 209 - "darwin" 210 - ], 211 - "engines": { 212 - "node": ">=18" 213 - } 214 - }, 215 - "node_modules/@esbuild/darwin-x64": { 216 - "version": "0.24.2", 217 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", 218 - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", 219 - "cpu": [ 220 - "x64" 221 - ], 222 - "dev": true, 223 - "optional": true, 224 - "os": [ 225 - "darwin" 226 - ], 227 - "engines": { 228 - "node": ">=18" 229 - } 230 - }, 231 - "node_modules/@esbuild/freebsd-arm64": { 232 - "version": "0.24.2", 233 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", 234 - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", 235 - "cpu": [ 236 - "arm64" 237 - ], 238 - "dev": true, 239 - "optional": true, 240 - "os": [ 241 - "freebsd" 242 - ], 243 - "engines": { 244 - "node": ">=18" 245 - } 246 - }, 247 - "node_modules/@esbuild/freebsd-x64": { 248 - "version": "0.24.2", 249 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", 250 - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", 251 - "cpu": [ 252 - "x64" 253 - ], 254 - "dev": true, 255 - "optional": true, 256 - "os": [ 257 - "freebsd" 258 - ], 259 - "engines": { 260 - "node": ">=18" 261 - } 262 - }, 263 - "node_modules/@esbuild/linux-arm": { 264 - "version": "0.24.2", 265 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", 266 - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", 267 - "cpu": [ 268 - "arm" 269 - ], 270 - "dev": true, 271 - "optional": true, 272 - "os": [ 273 - "linux" 274 - ], 275 - "engines": { 276 - "node": ">=18" 277 - } 278 - }, 279 - "node_modules/@esbuild/linux-arm64": { 280 - "version": "0.24.2", 281 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", 282 - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", 283 - "cpu": [ 284 - "arm64" 285 - ], 286 - "dev": true, 287 - "optional": true, 288 - "os": [ 289 - "linux" 290 - ], 291 - "engines": { 292 - "node": ">=18" 293 - } 294 - }, 295 - "node_modules/@esbuild/linux-ia32": { 296 - "version": "0.24.2", 297 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", 298 - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", 299 - "cpu": [ 300 - "ia32" 301 - ], 302 - "dev": true, 303 - "optional": true, 304 - "os": [ 305 - "linux" 306 - ], 307 - "engines": { 308 - "node": ">=18" 309 - } 310 - }, 311 - "node_modules/@esbuild/linux-loong64": { 312 - "version": "0.24.2", 313 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", 314 - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", 315 - "cpu": [ 316 - "loong64" 317 - ], 318 - "dev": true, 319 - "optional": true, 320 - "os": [ 321 - "linux" 322 - ], 323 - "engines": { 324 - "node": ">=18" 325 - } 326 - }, 327 - "node_modules/@esbuild/linux-mips64el": { 328 - "version": "0.24.2", 329 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", 330 - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", 331 - "cpu": [ 332 - "mips64el" 333 - ], 334 - "dev": true, 335 - "optional": true, 336 - "os": [ 337 - "linux" 338 - ], 339 - "engines": { 340 - "node": ">=18" 341 - } 342 - }, 343 - "node_modules/@esbuild/linux-ppc64": { 344 - "version": "0.24.2", 345 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", 346 - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", 347 - "cpu": [ 348 - "ppc64" 349 - ], 350 - "dev": true, 351 - "optional": true, 352 - "os": [ 353 - "linux" 354 - ], 355 - "engines": { 356 - "node": ">=18" 357 - } 358 - }, 359 - "node_modules/@esbuild/linux-riscv64": { 360 - "version": "0.24.2", 361 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", 362 - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", 363 - "cpu": [ 364 - "riscv64" 365 - ], 366 - "dev": true, 367 - "optional": true, 368 - "os": [ 369 - "linux" 370 - ], 371 - "engines": { 372 - "node": ">=18" 373 - } 374 - }, 375 - "node_modules/@esbuild/linux-s390x": { 376 - "version": "0.24.2", 377 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", 378 - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", 379 - "cpu": [ 380 - "s390x" 381 - ], 382 - "dev": true, 383 - "optional": true, 384 - "os": [ 385 - "linux" 386 - ], 387 - "engines": { 388 - "node": ">=18" 389 - } 390 - }, 391 - "node_modules/@esbuild/linux-x64": { 392 - "version": "0.24.2", 393 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", 394 - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", 395 - "cpu": [ 396 - "x64" 397 - ], 398 - "dev": true, 399 - "optional": true, 400 - "os": [ 401 - "linux" 402 - ], 403 - "engines": { 404 - "node": ">=18" 405 - } 406 - }, 407 - "node_modules/@esbuild/netbsd-arm64": { 408 - "version": "0.24.2", 409 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", 410 - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", 411 - "cpu": [ 412 - "arm64" 413 - ], 414 - "dev": true, 415 - "optional": true, 416 - "os": [ 417 - "netbsd" 418 - ], 419 - "engines": { 420 - "node": ">=18" 421 - } 422 - }, 423 - "node_modules/@esbuild/netbsd-x64": { 424 - "version": "0.24.2", 425 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", 426 - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", 427 - "cpu": [ 428 - "x64" 429 - ], 430 - "dev": true, 431 - "optional": true, 432 - "os": [ 433 - "netbsd" 434 - ], 435 - "engines": { 436 - "node": ">=18" 437 - } 438 - }, 439 - "node_modules/@esbuild/openbsd-arm64": { 440 - "version": "0.24.2", 441 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", 442 - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", 443 - "cpu": [ 444 - "arm64" 445 - ], 446 - "dev": true, 447 - "optional": true, 448 - "os": [ 449 - "openbsd" 450 - ], 451 - "engines": { 452 - "node": ">=18" 453 - } 454 - }, 455 - "node_modules/@esbuild/openbsd-x64": { 456 - "version": "0.24.2", 457 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", 458 - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", 459 - "cpu": [ 460 - "x64" 461 - ], 462 - "dev": true, 463 - "optional": true, 464 - "os": [ 465 - "openbsd" 466 - ], 467 - "engines": { 468 - "node": ">=18" 469 - } 470 - }, 471 - "node_modules/@esbuild/sunos-x64": { 472 - "version": "0.24.2", 473 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", 474 - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", 475 - "cpu": [ 476 - "x64" 477 - ], 478 - "dev": true, 479 - "optional": true, 480 - "os": [ 481 - "sunos" 482 - ], 483 - "engines": { 484 - "node": ">=18" 485 - } 486 - }, 487 - "node_modules/@esbuild/win32-arm64": { 488 - "version": "0.24.2", 489 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", 490 - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", 491 - "cpu": [ 492 - "arm64" 493 - ], 494 - "dev": true, 495 - "optional": true, 496 - "os": [ 497 - "win32" 498 - ], 499 - "engines": { 500 - "node": ">=18" 501 - } 502 - }, 503 - "node_modules/@esbuild/win32-ia32": { 504 - "version": "0.24.2", 505 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", 506 - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", 507 - "cpu": [ 508 - "ia32" 509 - ], 510 - "dev": true, 511 - "optional": true, 512 - "os": [ 513 - "win32" 514 - ], 515 - "engines": { 516 - "node": ">=18" 517 - } 518 - }, 519 - "node_modules/@esbuild/win32-x64": { 520 - "version": "0.24.2", 521 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", 522 - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", 523 - "cpu": [ 524 - "x64" 525 - ], 526 - "dev": true, 527 - "optional": true, 528 - "os": [ 529 - "win32" 530 - ], 531 - "engines": { 532 - "node": ">=18" 533 - } 534 - }, 535 - "node_modules/@eslint-community/eslint-utils": { 536 - "version": "4.4.1", 537 - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", 538 - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", 539 - "dev": true, 540 - "dependencies": { 541 - "eslint-visitor-keys": "^3.4.3" 542 - }, 543 - "engines": { 544 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 545 - }, 546 - "funding": { 547 - "url": "https://opencollective.com/eslint" 548 - }, 549 - "peerDependencies": { 550 - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 551 - } 552 - }, 553 - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 554 - "version": "3.4.3", 555 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 556 - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 557 - "dev": true, 558 - "engines": { 559 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 560 - }, 561 - "funding": { 562 - "url": "https://opencollective.com/eslint" 563 - } 564 - }, 565 - "node_modules/@eslint-community/regexpp": { 566 - "version": "4.12.1", 567 - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 568 - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 569 - "dev": true, 570 - "engines": { 571 - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 572 - } 573 - }, 574 - "node_modules/@eslint/compat": { 575 - "version": "1.2.7", 576 - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz", 577 - "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==", 578 - "dev": true, 579 - "engines": { 580 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 581 - }, 582 - "peerDependencies": { 583 - "eslint": "^9.10.0" 584 - }, 585 - "peerDependenciesMeta": { 586 - "eslint": { 587 - "optional": true 588 - } 589 - } 590 - }, 591 - "node_modules/@eslint/config-array": { 592 - "version": "0.19.2", 593 - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", 594 - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", 595 - "dev": true, 596 - "dependencies": { 597 - "@eslint/object-schema": "^2.1.6", 598 - "debug": "^4.3.1", 599 - "minimatch": "^3.1.2" 600 - }, 601 - "engines": { 602 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 603 - } 604 - }, 605 - "node_modules/@eslint/core": { 606 - "version": "0.12.0", 607 - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", 608 - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", 609 - "dev": true, 610 - "dependencies": { 611 - "@types/json-schema": "^7.0.15" 612 - }, 613 - "engines": { 614 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 615 - } 616 - }, 617 - "node_modules/@eslint/eslintrc": { 618 - "version": "3.3.0", 619 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", 620 - "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", 621 - "dev": true, 622 - "dependencies": { 623 - "ajv": "^6.12.4", 624 - "debug": "^4.3.2", 625 - "espree": "^10.0.1", 626 - "globals": "^14.0.0", 627 - "ignore": "^5.2.0", 628 - "import-fresh": "^3.2.1", 629 - "js-yaml": "^4.1.0", 630 - "minimatch": "^3.1.2", 631 - "strip-json-comments": "^3.1.1" 632 - }, 633 - "engines": { 634 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 635 - }, 636 - "funding": { 637 - "url": "https://opencollective.com/eslint" 638 - } 639 - }, 640 - "node_modules/@eslint/eslintrc/node_modules/globals": { 641 - "version": "14.0.0", 642 - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 643 - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 644 - "dev": true, 645 - "engines": { 646 - "node": ">=18" 647 - }, 648 - "funding": { 649 - "url": "https://github.com/sponsors/sindresorhus" 650 - } 651 - }, 652 - "node_modules/@eslint/js": { 653 - "version": "9.21.0", 654 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", 655 - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", 656 - "dev": true, 657 - "engines": { 658 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 659 - } 660 - }, 661 - "node_modules/@eslint/object-schema": { 662 - "version": "2.1.6", 663 - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", 664 - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", 665 - "dev": true, 666 - "engines": { 667 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 668 - } 669 - }, 670 - "node_modules/@eslint/plugin-kit": { 671 - "version": "0.2.7", 672 - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", 673 - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", 674 - "dev": true, 675 - "dependencies": { 676 - "@eslint/core": "^0.12.0", 677 - "levn": "^0.4.1" 678 - }, 679 - "engines": { 680 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 681 - } 682 - }, 683 - "node_modules/@floating-ui/core": { 684 - "version": "1.7.0", 685 - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", 686 - "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", 687 - "license": "MIT", 688 - "dependencies": { 689 - "@floating-ui/utils": "^0.2.9" 690 - } 691 - }, 692 - "node_modules/@floating-ui/dom": { 693 - "version": "1.7.0", 694 - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", 695 - "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", 696 - "license": "MIT", 697 - "dependencies": { 698 - "@floating-ui/core": "^1.7.0", 699 - "@floating-ui/utils": "^0.2.9" 700 - } 701 - }, 702 - "node_modules/@floating-ui/utils": { 703 - "version": "0.2.9", 704 - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", 705 - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", 706 - "license": "MIT" 707 - }, 708 - "node_modules/@fuxui/base": { 709 - "version": "0.0.7", 710 - "resolved": "https://registry.npmjs.org/@fuxui/base/-/base-0.0.7.tgz", 711 - "integrity": "sha512-HEa5cxnHU2SuW6LlJkT157L0q5z+bRJIttEKZAppEU/krEC7COh8FGkJD5bR5oZultnVHNYaUEdorHYGy5++2g==", 712 - "dependencies": { 713 - "@number-flow/svelte": "^0.3.7", 714 - "bits-ui": "^1.4.3", 715 - "clsx": "^2.1.1", 716 - "svelte-sonner": "^0.3.28", 717 - "tailwind-merge": "^3.2.0", 718 - "tailwind-variants": "^1.0.0" 719 - }, 720 - "peerDependencies": { 721 - "svelte": ">=5", 722 - "tailwindcss": ">=3" 723 - } 724 - }, 725 - "node_modules/@fuxui/social": { 726 - "version": "0.0.9", 727 - "resolved": "https://registry.npmjs.org/@fuxui/social/-/social-0.0.9.tgz", 728 - "integrity": "sha512-fWvXr0B+vUKX4sU+fymeLxpO2Z5/BR4ix+iCq/zdX3wpERJqr228+btU9SVnNllVjulspdnnrrrPJcIioNZBIw==", 729 - "dependencies": { 730 - "@atproto/api": "^0.15.5", 731 - "@fuxui/base": "0.0.7", 732 - "@use-gesture/vanilla": "^10.3.1", 733 - "bits-ui": "^1.4.3", 734 - "emoji-picker-element": "^1.26.3", 735 - "hls.js": "^1.6.2", 736 - "is-emoji-supported": "^0.0.5", 737 - "plyr": "^3.7.8" 738 - }, 739 - "peerDependencies": { 740 - "svelte": ">=5", 741 - "tailwindcss": ">=3" 742 - } 743 - }, 744 - "node_modules/@humanfs/core": { 745 - "version": "0.19.1", 746 - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 747 - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 748 - "dev": true, 749 - "engines": { 750 - "node": ">=18.18.0" 751 - } 752 - }, 753 - "node_modules/@humanfs/node": { 754 - "version": "0.16.6", 755 - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 756 - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 757 - "dev": true, 758 - "dependencies": { 759 - "@humanfs/core": "^0.19.1", 760 - "@humanwhocodes/retry": "^0.3.0" 761 - }, 762 - "engines": { 763 - "node": ">=18.18.0" 764 - } 765 - }, 766 - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 767 - "version": "0.3.1", 768 - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 769 - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 770 - "dev": true, 771 - "engines": { 772 - "node": ">=18.18" 773 - }, 774 - "funding": { 775 - "type": "github", 776 - "url": "https://github.com/sponsors/nzakas" 777 - } 778 - }, 779 - "node_modules/@humanwhocodes/module-importer": { 780 - "version": "1.0.1", 781 - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 782 - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 783 - "dev": true, 784 - "engines": { 785 - "node": ">=12.22" 786 - }, 787 - "funding": { 788 - "type": "github", 789 - "url": "https://github.com/sponsors/nzakas" 790 - } 791 - }, 792 - "node_modules/@humanwhocodes/retry": { 793 - "version": "0.4.2", 794 - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", 795 - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", 796 - "dev": true, 797 - "engines": { 798 - "node": ">=18.18" 799 - }, 800 - "funding": { 801 - "type": "github", 802 - "url": "https://github.com/sponsors/nzakas" 803 - } 804 - }, 805 - "node_modules/@internationalized/date": { 806 - "version": "3.8.0", 807 - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.8.0.tgz", 808 - "integrity": "sha512-J51AJ0fEL68hE4CwGPa6E0PO6JDaVLd8aln48xFCSy7CZkZc96dGEGmLs2OEEbBxcsVZtfrqkXJwI2/MSG8yKw==", 809 - "license": "Apache-2.0", 810 - "dependencies": { 811 - "@swc/helpers": "^0.5.0" 812 - } 813 - }, 814 - "node_modules/@jridgewell/gen-mapping": { 815 - "version": "0.3.8", 816 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 817 - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 818 - "dependencies": { 819 - "@jridgewell/set-array": "^1.2.1", 820 - "@jridgewell/sourcemap-codec": "^1.4.10", 821 - "@jridgewell/trace-mapping": "^0.3.24" 822 - }, 823 - "engines": { 824 - "node": ">=6.0.0" 825 - } 826 - }, 827 - "node_modules/@jridgewell/resolve-uri": { 828 - "version": "3.1.2", 829 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 830 - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 831 - "engines": { 832 - "node": ">=6.0.0" 833 - } 834 - }, 835 - "node_modules/@jridgewell/set-array": { 836 - "version": "1.2.1", 837 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 838 - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 839 - "engines": { 840 - "node": ">=6.0.0" 841 - } 842 - }, 843 - "node_modules/@jridgewell/sourcemap-codec": { 844 - "version": "1.5.0", 845 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 846 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 847 - }, 848 - "node_modules/@jridgewell/trace-mapping": { 849 - "version": "0.3.25", 850 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 851 - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 852 - "dependencies": { 853 - "@jridgewell/resolve-uri": "^3.1.0", 854 - "@jridgewell/sourcemap-codec": "^1.4.14" 855 - } 856 - }, 857 - "node_modules/@mixmark-io/domino": { 858 - "version": "2.2.0", 859 - "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", 860 - "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==", 861 - "license": "BSD-2-Clause" 862 - }, 863 - "node_modules/@nodelib/fs.scandir": { 864 - "version": "2.1.5", 865 - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 866 - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 867 - "dev": true, 868 - "dependencies": { 869 - "@nodelib/fs.stat": "2.0.5", 870 - "run-parallel": "^1.1.9" 871 - }, 872 - "engines": { 873 - "node": ">= 8" 874 - } 875 - }, 876 - "node_modules/@nodelib/fs.stat": { 877 - "version": "2.0.5", 878 - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 879 - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 880 - "dev": true, 881 - "engines": { 882 - "node": ">= 8" 883 - } 884 - }, 885 - "node_modules/@nodelib/fs.walk": { 886 - "version": "1.2.8", 887 - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 888 - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 889 - "dev": true, 890 - "dependencies": { 891 - "@nodelib/fs.scandir": "2.1.5", 892 - "fastq": "^1.6.0" 893 - }, 894 - "engines": { 895 - "node": ">= 8" 896 - } 897 - }, 898 - "node_modules/@number-flow/svelte": { 899 - "version": "0.3.7", 900 - "resolved": "https://registry.npmjs.org/@number-flow/svelte/-/svelte-0.3.7.tgz", 901 - "integrity": "sha512-FusxKvImj13+15N+pQrrGsu8cNTQ0BCUWxshNUpPU4opFufVpHO+RMxsYrtZ7xloVL/TjDLpO+SWjrxxx7iPJg==", 902 - "license": "MIT", 903 - "dependencies": { 904 - "esm-env": "^1.1.4", 905 - "number-flow": "0.5.7" 906 - }, 907 - "peerDependencies": { 908 - "svelte": "^4 || ^5" 909 - } 910 - }, 911 - "node_modules/@polka/url": { 912 - "version": "1.0.0-next.28", 913 - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", 914 - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", 915 - "dev": true 916 - }, 917 - "node_modules/@remirror/core-constants": { 918 - "version": "3.0.0", 919 - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", 920 - "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", 921 - "license": "MIT" 922 - }, 923 - "node_modules/@rollup/rollup-android-arm-eabi": { 924 - "version": "4.34.8", 925 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", 926 - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", 927 - "cpu": [ 928 - "arm" 929 - ], 930 - "dev": true, 931 - "optional": true, 932 - "os": [ 933 - "android" 934 - ] 935 - }, 936 - "node_modules/@rollup/rollup-android-arm64": { 937 - "version": "4.34.8", 938 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", 939 - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", 940 - "cpu": [ 941 - "arm64" 942 - ], 943 - "dev": true, 944 - "optional": true, 945 - "os": [ 946 - "android" 947 - ] 948 - }, 949 - "node_modules/@rollup/rollup-darwin-arm64": { 950 - "version": "4.34.8", 951 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", 952 - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", 953 - "cpu": [ 954 - "arm64" 955 - ], 956 - "dev": true, 957 - "optional": true, 958 - "os": [ 959 - "darwin" 960 - ] 961 - }, 962 - "node_modules/@rollup/rollup-darwin-x64": { 963 - "version": "4.34.8", 964 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", 965 - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", 966 - "cpu": [ 967 - "x64" 968 - ], 969 - "dev": true, 970 - "optional": true, 971 - "os": [ 972 - "darwin" 973 - ] 974 - }, 975 - "node_modules/@rollup/rollup-freebsd-arm64": { 976 - "version": "4.34.8", 977 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", 978 - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", 979 - "cpu": [ 980 - "arm64" 981 - ], 982 - "dev": true, 983 - "optional": true, 984 - "os": [ 985 - "freebsd" 986 - ] 987 - }, 988 - "node_modules/@rollup/rollup-freebsd-x64": { 989 - "version": "4.34.8", 990 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", 991 - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", 992 - "cpu": [ 993 - "x64" 994 - ], 995 - "dev": true, 996 - "optional": true, 997 - "os": [ 998 - "freebsd" 999 - ] 1000 - }, 1001 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1002 - "version": "4.34.8", 1003 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", 1004 - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", 1005 - "cpu": [ 1006 - "arm" 1007 - ], 1008 - "dev": true, 1009 - "optional": true, 1010 - "os": [ 1011 - "linux" 1012 - ] 1013 - }, 1014 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1015 - "version": "4.34.8", 1016 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", 1017 - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", 1018 - "cpu": [ 1019 - "arm" 1020 - ], 1021 - "dev": true, 1022 - "optional": true, 1023 - "os": [ 1024 - "linux" 1025 - ] 1026 - }, 1027 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 1028 - "version": "4.34.8", 1029 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", 1030 - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", 1031 - "cpu": [ 1032 - "arm64" 1033 - ], 1034 - "dev": true, 1035 - "optional": true, 1036 - "os": [ 1037 - "linux" 1038 - ] 1039 - }, 1040 - "node_modules/@rollup/rollup-linux-arm64-musl": { 1041 - "version": "4.34.8", 1042 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", 1043 - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", 1044 - "cpu": [ 1045 - "arm64" 1046 - ], 1047 - "dev": true, 1048 - "optional": true, 1049 - "os": [ 1050 - "linux" 1051 - ] 1052 - }, 1053 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1054 - "version": "4.34.8", 1055 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", 1056 - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", 1057 - "cpu": [ 1058 - "loong64" 1059 - ], 1060 - "dev": true, 1061 - "optional": true, 1062 - "os": [ 1063 - "linux" 1064 - ] 1065 - }, 1066 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1067 - "version": "4.34.8", 1068 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", 1069 - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", 1070 - "cpu": [ 1071 - "ppc64" 1072 - ], 1073 - "dev": true, 1074 - "optional": true, 1075 - "os": [ 1076 - "linux" 1077 - ] 1078 - }, 1079 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1080 - "version": "4.34.8", 1081 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", 1082 - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", 1083 - "cpu": [ 1084 - "riscv64" 1085 - ], 1086 - "dev": true, 1087 - "optional": true, 1088 - "os": [ 1089 - "linux" 1090 - ] 1091 - }, 1092 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 1093 - "version": "4.34.8", 1094 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", 1095 - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", 1096 - "cpu": [ 1097 - "s390x" 1098 - ], 1099 - "dev": true, 1100 - "optional": true, 1101 - "os": [ 1102 - "linux" 1103 - ] 1104 - }, 1105 - "node_modules/@rollup/rollup-linux-x64-gnu": { 1106 - "version": "4.34.8", 1107 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", 1108 - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", 1109 - "cpu": [ 1110 - "x64" 1111 - ], 1112 - "dev": true, 1113 - "optional": true, 1114 - "os": [ 1115 - "linux" 1116 - ] 1117 - }, 1118 - "node_modules/@rollup/rollup-linux-x64-musl": { 1119 - "version": "4.34.8", 1120 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", 1121 - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", 1122 - "cpu": [ 1123 - "x64" 1124 - ], 1125 - "dev": true, 1126 - "optional": true, 1127 - "os": [ 1128 - "linux" 1129 - ] 1130 - }, 1131 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 1132 - "version": "4.34.8", 1133 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", 1134 - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", 1135 - "cpu": [ 1136 - "arm64" 1137 - ], 1138 - "dev": true, 1139 - "optional": true, 1140 - "os": [ 1141 - "win32" 1142 - ] 1143 - }, 1144 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 1145 - "version": "4.34.8", 1146 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", 1147 - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", 1148 - "cpu": [ 1149 - "ia32" 1150 - ], 1151 - "dev": true, 1152 - "optional": true, 1153 - "os": [ 1154 - "win32" 1155 - ] 1156 - }, 1157 - "node_modules/@rollup/rollup-win32-x64-msvc": { 1158 - "version": "4.34.8", 1159 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", 1160 - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", 1161 - "cpu": [ 1162 - "x64" 1163 - ], 1164 - "dev": true, 1165 - "optional": true, 1166 - "os": [ 1167 - "win32" 1168 - ] 1169 - }, 1170 - "node_modules/@sveltejs/adapter-auto": { 1171 - "version": "4.0.0", 1172 - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-4.0.0.tgz", 1173 - "integrity": "sha512-kmuYSQdD2AwThymQF0haQhM8rE5rhutQXG4LNbnbShwhMO4qQGnKaaTy+88DuNSuoQDi58+thpq8XpHc1+oEKQ==", 1174 - "dev": true, 1175 - "dependencies": { 1176 - "import-meta-resolve": "^4.1.0" 1177 - }, 1178 - "peerDependencies": { 1179 - "@sveltejs/kit": "^2.0.0" 1180 - } 1181 - }, 1182 - "node_modules/@sveltejs/adapter-static": { 1183 - "version": "3.0.8", 1184 - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.8.tgz", 1185 - "integrity": "sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg==", 1186 - "dev": true, 1187 - "peerDependencies": { 1188 - "@sveltejs/kit": "^2.0.0" 1189 - } 1190 - }, 1191 - "node_modules/@sveltejs/kit": { 1192 - "version": "2.17.2", 1193 - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.17.2.tgz", 1194 - "integrity": "sha512-Vypk02baf7qd3SOB1uUwUC/3Oka+srPo2J0a8YN3EfJypRshDkNx9HzNKjSmhOnGWwT+SSO06+N0mAb8iVTmTQ==", 1195 - "dev": true, 1196 - "dependencies": { 1197 - "@types/cookie": "^0.6.0", 1198 - "cookie": "^0.6.0", 1199 - "devalue": "^5.1.0", 1200 - "esm-env": "^1.2.2", 1201 - "import-meta-resolve": "^4.1.0", 1202 - "kleur": "^4.1.5", 1203 - "magic-string": "^0.30.5", 1204 - "mrmime": "^2.0.0", 1205 - "sade": "^1.8.1", 1206 - "set-cookie-parser": "^2.6.0", 1207 - "sirv": "^3.0.0" 1208 - }, 1209 - "bin": { 1210 - "svelte-kit": "svelte-kit.js" 1211 - }, 1212 - "engines": { 1213 - "node": ">=18.13" 1214 - }, 1215 - "peerDependencies": { 1216 - "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0", 1217 - "svelte": "^4.0.0 || ^5.0.0-next.0", 1218 - "vite": "^5.0.3 || ^6.0.0" 1219 - } 1220 - }, 1221 - "node_modules/@sveltejs/vite-plugin-svelte": { 1222 - "version": "5.0.3", 1223 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", 1224 - "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", 1225 - "dev": true, 1226 - "dependencies": { 1227 - "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", 1228 - "debug": "^4.4.0", 1229 - "deepmerge": "^4.3.1", 1230 - "kleur": "^4.1.5", 1231 - "magic-string": "^0.30.15", 1232 - "vitefu": "^1.0.4" 1233 - }, 1234 - "engines": { 1235 - "node": "^18.0.0 || ^20.0.0 || >=22" 1236 - }, 1237 - "peerDependencies": { 1238 - "svelte": "^5.0.0", 1239 - "vite": "^6.0.0" 1240 - } 1241 - }, 1242 - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 1243 - "version": "4.0.1", 1244 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", 1245 - "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", 1246 - "dev": true, 1247 - "dependencies": { 1248 - "debug": "^4.3.7" 1249 - }, 1250 - "engines": { 1251 - "node": "^18.0.0 || ^20.0.0 || >=22" 1252 - }, 1253 - "peerDependencies": { 1254 - "@sveltejs/vite-plugin-svelte": "^5.0.0", 1255 - "svelte": "^5.0.0", 1256 - "vite": "^6.0.0" 1257 - } 1258 - }, 1259 - "node_modules/@swc/helpers": { 1260 - "version": "0.5.17", 1261 - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", 1262 - "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", 1263 - "license": "Apache-2.0", 1264 - "dependencies": { 1265 - "tslib": "^2.8.0" 1266 - } 1267 - }, 1268 - "node_modules/@tailwindcss/forms": { 1269 - "version": "0.5.10", 1270 - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", 1271 - "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", 1272 - "dev": true, 1273 - "dependencies": { 1274 - "mini-svg-data-uri": "^1.2.3" 1275 - }, 1276 - "peerDependencies": { 1277 - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" 1278 - } 1279 - }, 1280 - "node_modules/@tailwindcss/node": { 1281 - "version": "4.0.8", 1282 - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.8.tgz", 1283 - "integrity": "sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==", 1284 - "dev": true, 1285 - "dependencies": { 1286 - "enhanced-resolve": "^5.18.1", 1287 - "jiti": "^2.4.2", 1288 - "tailwindcss": "4.0.8" 1289 - } 1290 - }, 1291 - "node_modules/@tailwindcss/oxide": { 1292 - "version": "4.0.8", 1293 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.8.tgz", 1294 - "integrity": "sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==", 1295 - "dev": true, 1296 - "engines": { 1297 - "node": ">= 10" 1298 - }, 1299 - "optionalDependencies": { 1300 - "@tailwindcss/oxide-android-arm64": "4.0.8", 1301 - "@tailwindcss/oxide-darwin-arm64": "4.0.8", 1302 - "@tailwindcss/oxide-darwin-x64": "4.0.8", 1303 - "@tailwindcss/oxide-freebsd-x64": "4.0.8", 1304 - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.8", 1305 - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.8", 1306 - "@tailwindcss/oxide-linux-arm64-musl": "4.0.8", 1307 - "@tailwindcss/oxide-linux-x64-gnu": "4.0.8", 1308 - "@tailwindcss/oxide-linux-x64-musl": "4.0.8", 1309 - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.8", 1310 - "@tailwindcss/oxide-win32-x64-msvc": "4.0.8" 1311 - } 1312 - }, 1313 - "node_modules/@tailwindcss/oxide-android-arm64": { 1314 - "version": "4.0.8", 1315 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.8.tgz", 1316 - "integrity": "sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==", 1317 - "cpu": [ 1318 - "arm64" 1319 - ], 1320 - "dev": true, 1321 - "optional": true, 1322 - "os": [ 1323 - "android" 1324 - ], 1325 - "engines": { 1326 - "node": ">= 10" 1327 - } 1328 - }, 1329 - "node_modules/@tailwindcss/oxide-darwin-arm64": { 1330 - "version": "4.0.8", 1331 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.8.tgz", 1332 - "integrity": "sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==", 1333 - "cpu": [ 1334 - "arm64" 1335 - ], 1336 - "dev": true, 1337 - "optional": true, 1338 - "os": [ 1339 - "darwin" 1340 - ], 1341 - "engines": { 1342 - "node": ">= 10" 1343 - } 1344 - }, 1345 - "node_modules/@tailwindcss/oxide-darwin-x64": { 1346 - "version": "4.0.8", 1347 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.8.tgz", 1348 - "integrity": "sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==", 1349 - "cpu": [ 1350 - "x64" 1351 - ], 1352 - "dev": true, 1353 - "optional": true, 1354 - "os": [ 1355 - "darwin" 1356 - ], 1357 - "engines": { 1358 - "node": ">= 10" 1359 - } 1360 - }, 1361 - "node_modules/@tailwindcss/oxide-freebsd-x64": { 1362 - "version": "4.0.8", 1363 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.8.tgz", 1364 - "integrity": "sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==", 1365 - "cpu": [ 1366 - "x64" 1367 - ], 1368 - "dev": true, 1369 - "optional": true, 1370 - "os": [ 1371 - "freebsd" 1372 - ], 1373 - "engines": { 1374 - "node": ">= 10" 1375 - } 1376 - }, 1377 - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1378 - "version": "4.0.8", 1379 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.8.tgz", 1380 - "integrity": "sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==", 1381 - "cpu": [ 1382 - "arm" 1383 - ], 1384 - "dev": true, 1385 - "optional": true, 1386 - "os": [ 1387 - "linux" 1388 - ], 1389 - "engines": { 1390 - "node": ">= 10" 1391 - } 1392 - }, 1393 - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1394 - "version": "4.0.8", 1395 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.8.tgz", 1396 - "integrity": "sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==", 1397 - "cpu": [ 1398 - "arm64" 1399 - ], 1400 - "dev": true, 1401 - "optional": true, 1402 - "os": [ 1403 - "linux" 1404 - ], 1405 - "engines": { 1406 - "node": ">= 10" 1407 - } 1408 - }, 1409 - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1410 - "version": "4.0.8", 1411 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.8.tgz", 1412 - "integrity": "sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==", 1413 - "cpu": [ 1414 - "arm64" 1415 - ], 1416 - "dev": true, 1417 - "optional": true, 1418 - "os": [ 1419 - "linux" 1420 - ], 1421 - "engines": { 1422 - "node": ">= 10" 1423 - } 1424 - }, 1425 - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1426 - "version": "4.0.8", 1427 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.8.tgz", 1428 - "integrity": "sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==", 1429 - "cpu": [ 1430 - "x64" 1431 - ], 1432 - "dev": true, 1433 - "optional": true, 1434 - "os": [ 1435 - "linux" 1436 - ], 1437 - "engines": { 1438 - "node": ">= 10" 1439 - } 1440 - }, 1441 - "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1442 - "version": "4.0.8", 1443 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.8.tgz", 1444 - "integrity": "sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==", 1445 - "cpu": [ 1446 - "x64" 1447 - ], 1448 - "dev": true, 1449 - "optional": true, 1450 - "os": [ 1451 - "linux" 1452 - ], 1453 - "engines": { 1454 - "node": ">= 10" 1455 - } 1456 - }, 1457 - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 1458 - "version": "4.0.8", 1459 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.8.tgz", 1460 - "integrity": "sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==", 1461 - "cpu": [ 1462 - "arm64" 1463 - ], 1464 - "dev": true, 1465 - "optional": true, 1466 - "os": [ 1467 - "win32" 1468 - ], 1469 - "engines": { 1470 - "node": ">= 10" 1471 - } 1472 - }, 1473 - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1474 - "version": "4.0.8", 1475 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.8.tgz", 1476 - "integrity": "sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==", 1477 - "cpu": [ 1478 - "x64" 1479 - ], 1480 - "dev": true, 1481 - "optional": true, 1482 - "os": [ 1483 - "win32" 1484 - ], 1485 - "engines": { 1486 - "node": ">= 10" 1487 - } 1488 - }, 1489 - "node_modules/@tailwindcss/typography": { 1490 - "version": "0.5.16", 1491 - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", 1492 - "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", 1493 - "license": "MIT", 1494 - "dependencies": { 1495 - "lodash.castarray": "^4.4.0", 1496 - "lodash.isplainobject": "^4.0.6", 1497 - "lodash.merge": "^4.6.2", 1498 - "postcss-selector-parser": "6.0.10" 1499 - }, 1500 - "peerDependencies": { 1501 - "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" 1502 - } 1503 - }, 1504 - "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { 1505 - "version": "6.0.10", 1506 - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 1507 - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 1508 - "license": "MIT", 1509 - "dependencies": { 1510 - "cssesc": "^3.0.0", 1511 - "util-deprecate": "^1.0.2" 1512 - }, 1513 - "engines": { 1514 - "node": ">=4" 1515 - } 1516 - }, 1517 - "node_modules/@tailwindcss/vite": { 1518 - "version": "4.0.8", 1519 - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.8.tgz", 1520 - "integrity": "sha512-+SAq44yLzYlzyrb7QTcFCdU8Xa7FOA0jp+Xby7fPMUie+MY9HhJysM7Vp+vL8qIp8ceQJfLD+FjgJuJ4lL6nyg==", 1521 - "dev": true, 1522 - "dependencies": { 1523 - "@tailwindcss/node": "4.0.8", 1524 - "@tailwindcss/oxide": "4.0.8", 1525 - "lightningcss": "^1.29.1", 1526 - "tailwindcss": "4.0.8" 1527 - }, 1528 - "peerDependencies": { 1529 - "vite": "^5.2.0 || ^6" 1530 - } 1531 - }, 1532 - "node_modules/@tiptap/core": { 1533 - "version": "2.12.0", 1534 - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.12.0.tgz", 1535 - "integrity": "sha512-3qX8oGVKFFZzQ0vit+ZolR6AJIATBzmEmjAA0llFhWk4vf3v64p1YcXcJsOBsr5scizJu5L6RYWEFatFwqckRg==", 1536 - "license": "MIT", 1537 - "funding": { 1538 - "type": "github", 1539 - "url": "https://github.com/sponsors/ueberdosis" 1540 - }, 1541 - "peerDependencies": { 1542 - "@tiptap/pm": "^2.7.0" 1543 - } 1544 - }, 1545 - "node_modules/@tiptap/extension-blockquote": { 1546 - "version": "2.12.0", 1547 - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.12.0.tgz", 1548 - "integrity": "sha512-XUC2A77YAPMJS2SqZ2S62IGcUH8gZ7cdhoWlYQb1pR4ZzXFByeKDJPxfYeAePSiuI01YGrlzgY2c6Ncx/DtO0A==", 1549 - "license": "MIT", 1550 - "funding": { 1551 - "type": "github", 1552 - "url": "https://github.com/sponsors/ueberdosis" 1553 - }, 1554 - "peerDependencies": { 1555 - "@tiptap/core": "^2.7.0" 1556 - } 1557 - }, 1558 - "node_modules/@tiptap/extension-bold": { 1559 - "version": "2.12.0", 1560 - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.12.0.tgz", 1561 - "integrity": "sha512-lAUtoLDLRc5ofD2I9MFY6MQ7d1qBLLqS1rvpwaPjOaoQb/GPVnaHj9qXYG0SY9K3erMtto48bMFpAcscjZHzZQ==", 1562 - "license": "MIT", 1563 - "funding": { 1564 - "type": "github", 1565 - "url": "https://github.com/sponsors/ueberdosis" 1566 - }, 1567 - "peerDependencies": { 1568 - "@tiptap/core": "^2.7.0" 1569 - } 1570 - }, 1571 - "node_modules/@tiptap/extension-bullet-list": { 1572 - "version": "2.12.0", 1573 - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.12.0.tgz", 1574 - "integrity": "sha512-YTCjztB8MaIpwyxFYr81H4+LdKCq1VlaSXQyrPdB44mVdhhRqc46BYQb8/B//XE3UIu3X2QWFjwrqRlUq6vUiw==", 1575 - "license": "MIT", 1576 - "funding": { 1577 - "type": "github", 1578 - "url": "https://github.com/sponsors/ueberdosis" 1579 - }, 1580 - "peerDependencies": { 1581 - "@tiptap/core": "^2.7.0" 1582 - } 1583 - }, 1584 - "node_modules/@tiptap/extension-code": { 1585 - "version": "2.12.0", 1586 - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.12.0.tgz", 1587 - "integrity": "sha512-R7RaS+hJeHFim7alImQ9L9CSWSMjWXvz0Ote568x9ea5gdBGUYW8PcH+5a91lh8e1XGYWBM12a8oJZRyxg/tQA==", 1588 - "license": "MIT", 1589 - "funding": { 1590 - "type": "github", 1591 - "url": "https://github.com/sponsors/ueberdosis" 1592 - }, 1593 - "peerDependencies": { 1594 - "@tiptap/core": "^2.7.0" 1595 - } 1596 - }, 1597 - "node_modules/@tiptap/extension-code-block": { 1598 - "version": "2.12.0", 1599 - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.12.0.tgz", 1600 - "integrity": "sha512-1D7cYAjgxEFHdfC/35Ooi4GqWKB5sszbW8iI7N16XILNln26xb0d5KflXqYrwr9CN/ZnZoCl2o6YsP7xEObcZA==", 1601 - "license": "MIT", 1602 - "funding": { 1603 - "type": "github", 1604 - "url": "https://github.com/sponsors/ueberdosis" 1605 - }, 1606 - "peerDependencies": { 1607 - "@tiptap/core": "^2.7.0", 1608 - "@tiptap/pm": "^2.7.0" 1609 - } 1610 - }, 1611 - "node_modules/@tiptap/extension-document": { 1612 - "version": "2.12.0", 1613 - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.12.0.tgz", 1614 - "integrity": "sha512-sA1Q+mxDIv0Y3qQTBkYGwknNbDcGFiJ/fyAFholXpqbrcRx3GavwR/o0chBdsJZlFht0x7AWGwUYWvIo7wYilA==", 1615 - "license": "MIT", 1616 - "funding": { 1617 - "type": "github", 1618 - "url": "https://github.com/sponsors/ueberdosis" 1619 - }, 1620 - "peerDependencies": { 1621 - "@tiptap/core": "^2.7.0" 1622 - } 1623 - }, 1624 - "node_modules/@tiptap/extension-dropcursor": { 1625 - "version": "2.12.0", 1626 - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.12.0.tgz", 1627 - "integrity": "sha512-zcZSOXFj+7LVnmdPWTfKr5AoxYIzFPFlLJe35AdTQC5IhkljLn1Exct8I30ZREojX/00hKYsO7JJmePS6TEVlQ==", 1628 - "license": "MIT", 1629 - "funding": { 1630 - "type": "github", 1631 - "url": "https://github.com/sponsors/ueberdosis" 1632 - }, 1633 - "peerDependencies": { 1634 - "@tiptap/core": "^2.7.0", 1635 - "@tiptap/pm": "^2.7.0" 1636 - } 1637 - }, 1638 - "node_modules/@tiptap/extension-gapcursor": { 1639 - "version": "2.12.0", 1640 - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.12.0.tgz", 1641 - "integrity": "sha512-k8ji5v9YKn7bNjo8UtI9hEfXfl4tKUp1hpJOEmUxGJQa3LIwrwSbReupUTnHszGQelzxikS/l1xO9P0TIGwRoA==", 1642 - "license": "MIT", 1643 - "funding": { 1644 - "type": "github", 1645 - "url": "https://github.com/sponsors/ueberdosis" 1646 - }, 1647 - "peerDependencies": { 1648 - "@tiptap/core": "^2.7.0", 1649 - "@tiptap/pm": "^2.7.0" 1650 - } 1651 - }, 1652 - "node_modules/@tiptap/extension-hard-break": { 1653 - "version": "2.12.0", 1654 - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.12.0.tgz", 1655 - "integrity": "sha512-08MNS2PK5DzdnAfqXn4krmJ/xebKmWpRpYqqN5EM8AvetYKlAJyTVSpo0ZUeGbZ3EZiPm9djgSnrLqpFUDjRCg==", 1656 - "license": "MIT", 1657 - "funding": { 1658 - "type": "github", 1659 - "url": "https://github.com/sponsors/ueberdosis" 1660 - }, 1661 - "peerDependencies": { 1662 - "@tiptap/core": "^2.7.0" 1663 - } 1664 - }, 1665 - "node_modules/@tiptap/extension-heading": { 1666 - "version": "2.12.0", 1667 - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.12.0.tgz", 1668 - "integrity": "sha512-9DfES4Wd5TX1foI70N9sAL+35NN1UHrtzDYN2+dTHupnmKir9RaMXyZcbkUb4aDVzYrGxIqxJzHBVkquKIlTrw==", 1669 - "license": "MIT", 1670 - "funding": { 1671 - "type": "github", 1672 - "url": "https://github.com/sponsors/ueberdosis" 1673 - }, 1674 - "peerDependencies": { 1675 - "@tiptap/core": "^2.7.0" 1676 - } 1677 - }, 1678 - "node_modules/@tiptap/extension-history": { 1679 - "version": "2.12.0", 1680 - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.12.0.tgz", 1681 - "integrity": "sha512-+B9CAf2BFURC6mQiM1OQtahVTzdEOEgT/UUNlRZkeeBc0K5of3dr6UdBqaoaMAefja3jx5PqiQ7mhUBAjSt6AA==", 1682 - "license": "MIT", 1683 - "funding": { 1684 - "type": "github", 1685 - "url": "https://github.com/sponsors/ueberdosis" 1686 - }, 1687 - "peerDependencies": { 1688 - "@tiptap/core": "^2.7.0", 1689 - "@tiptap/pm": "^2.7.0" 1690 - } 1691 - }, 1692 - "node_modules/@tiptap/extension-horizontal-rule": { 1693 - "version": "2.12.0", 1694 - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.12.0.tgz", 1695 - "integrity": "sha512-Vi2+6RIehDSpoJn/7PDuOieUj7W7WrEb4wBxK9TG8PDscihR0mehhhzm/K2xhH4TN48iPJGRsjDFrFjTbXmcnw==", 1696 - "license": "MIT", 1697 - "funding": { 1698 - "type": "github", 1699 - "url": "https://github.com/sponsors/ueberdosis" 1700 - }, 1701 - "peerDependencies": { 1702 - "@tiptap/core": "^2.7.0", 1703 - "@tiptap/pm": "^2.7.0" 1704 - } 1705 - }, 1706 - "node_modules/@tiptap/extension-image": { 1707 - "version": "2.12.0", 1708 - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.12.0.tgz", 1709 - "integrity": "sha512-wO+yrfMlnW3SYCb1Q1qAb+nt5WH6jnlQPTV6qdoIabRtW0puwMWULZDUgclPN5hxn8EXb9vBEu44egvH6hgkfQ==", 1710 - "license": "MIT", 1711 - "funding": { 1712 - "type": "github", 1713 - "url": "https://github.com/sponsors/ueberdosis" 1714 - }, 1715 - "peerDependencies": { 1716 - "@tiptap/core": "^2.7.0" 1717 - } 1718 - }, 1719 - "node_modules/@tiptap/extension-italic": { 1720 - "version": "2.12.0", 1721 - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.12.0.tgz", 1722 - "integrity": "sha512-JKcXK3LmEsmxNzEq5e06rPUGMRLUxmJ2mYtBY4NlJ6yLM9XMDljtgeTnWT0ySLYmfINSFTkX4S7WIRbpl9l4pw==", 1723 - "license": "MIT", 1724 - "funding": { 1725 - "type": "github", 1726 - "url": "https://github.com/sponsors/ueberdosis" 1727 - }, 1728 - "peerDependencies": { 1729 - "@tiptap/core": "^2.7.0" 1730 - } 1731 - }, 1732 - "node_modules/@tiptap/extension-link": { 1733 - "version": "2.12.0", 1734 - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.12.0.tgz", 1735 - "integrity": "sha512-N6f78F2onvcL8FAwFOJexOF02UwGETLjQ7cCguhBe/w7vtx7aX8/f+IlaSGY/pIcWyEQpoC28ciM0+QsrJRr1A==", 1736 - "license": "MIT", 1737 - "dependencies": { 1738 - "linkifyjs": "^4.2.0" 1739 - }, 1740 - "funding": { 1741 - "type": "github", 1742 - "url": "https://github.com/sponsors/ueberdosis" 1743 - }, 1744 - "peerDependencies": { 1745 - "@tiptap/core": "^2.7.0", 1746 - "@tiptap/pm": "^2.7.0" 1747 - } 1748 - }, 1749 - "node_modules/@tiptap/extension-list-item": { 1750 - "version": "2.12.0", 1751 - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.12.0.tgz", 1752 - "integrity": "sha512-4YwZooC8HP+gPxs6YrkB1ayggyYbgVvJx/rWBT6lKSW2MVVg8QXi1zAcSI3MhIhHmqDysXXFPL8JURlbeGjaFA==", 1753 - "license": "MIT", 1754 - "funding": { 1755 - "type": "github", 1756 - "url": "https://github.com/sponsors/ueberdosis" 1757 - }, 1758 - "peerDependencies": { 1759 - "@tiptap/core": "^2.7.0" 1760 - } 1761 - }, 1762 - "node_modules/@tiptap/extension-ordered-list": { 1763 - "version": "2.12.0", 1764 - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.12.0.tgz", 1765 - "integrity": "sha512-1ys0e/oqk09oXxrB1WzAx5EntK/QreObG/V1yhgihGm429fxHMsxzIYN6dKAYxx0YOPQG7qEZRrrPuWU70Ms7g==", 1766 - "license": "MIT", 1767 - "funding": { 1768 - "type": "github", 1769 - "url": "https://github.com/sponsors/ueberdosis" 1770 - }, 1771 - "peerDependencies": { 1772 - "@tiptap/core": "^2.7.0" 1773 - } 1774 - }, 1775 - "node_modules/@tiptap/extension-paragraph": { 1776 - "version": "2.12.0", 1777 - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.12.0.tgz", 1778 - "integrity": "sha512-QNK5cgewCunWFxpLlbvvoO1rrLgEtNKxiY79fctP9toV+e59R+1i1Q9lXC1O5mOfDgVxCb6uFDMsqmKhFjpPog==", 1779 - "license": "MIT", 1780 - "funding": { 1781 - "type": "github", 1782 - "url": "https://github.com/sponsors/ueberdosis" 1783 - }, 1784 - "peerDependencies": { 1785 - "@tiptap/core": "^2.7.0" 1786 - } 1787 - }, 1788 - "node_modules/@tiptap/extension-placeholder": { 1789 - "version": "2.12.0", 1790 - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.12.0.tgz", 1791 - "integrity": "sha512-K7irDox4P+NLAMjVrJeG72f0sulsCRYpx1Cy4gxKCdi1LTivj5VkXa6MXmi42KTCwBu3pWajBctYIOAES1FTAA==", 1792 - "license": "MIT", 1793 - "funding": { 1794 - "type": "github", 1795 - "url": "https://github.com/sponsors/ueberdosis" 1796 - }, 1797 - "peerDependencies": { 1798 - "@tiptap/core": "^2.7.0", 1799 - "@tiptap/pm": "^2.7.0" 1800 - } 1801 - }, 1802 - "node_modules/@tiptap/extension-strike": { 1803 - "version": "2.12.0", 1804 - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.12.0.tgz", 1805 - "integrity": "sha512-nBaa5YtBsLJPZFfSs36sBz4Zgi/c8b3MsmS/Az8uXaHb0R9yPewOVUMDIQbxMct8SXUlIo9VtKlOL+mVJ3Nkpw==", 1806 - "license": "MIT", 1807 - "funding": { 1808 - "type": "github", 1809 - "url": "https://github.com/sponsors/ueberdosis" 1810 - }, 1811 - "peerDependencies": { 1812 - "@tiptap/core": "^2.7.0" 1813 - } 1814 - }, 1815 - "node_modules/@tiptap/extension-text": { 1816 - "version": "2.12.0", 1817 - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.12.0.tgz", 1818 - "integrity": "sha512-0ytN9V1tZYTXdiYDQg4FB2SQ56JAJC9r/65snefb9ztl+gZzDrIvih7CflHs1ic9PgyjexfMLeH+VzuMccNyZw==", 1819 - "license": "MIT", 1820 - "funding": { 1821 - "type": "github", 1822 - "url": "https://github.com/sponsors/ueberdosis" 1823 - }, 1824 - "peerDependencies": { 1825 - "@tiptap/core": "^2.7.0" 1826 - } 1827 - }, 1828 - "node_modules/@tiptap/extension-text-style": { 1829 - "version": "2.12.0", 1830 - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.12.0.tgz", 1831 - "integrity": "sha512-Pxwt23ZlvbQUahV0PvHy8Ej6IAuKR1FvHobUvwP3T8AiY7hob66fWRe7tQbESzSAzm5Vv2xkvyHeU8vekMTezA==", 1832 - "license": "MIT", 1833 - "funding": { 1834 - "type": "github", 1835 - "url": "https://github.com/sponsors/ueberdosis" 1836 - }, 1837 - "peerDependencies": { 1838 - "@tiptap/core": "^2.7.0" 1839 - } 1840 - }, 1841 - "node_modules/@tiptap/pm": { 1842 - "version": "2.12.0", 1843 - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.12.0.tgz", 1844 - "integrity": "sha512-TNzVwpeNzFfHAcYTOKqX9iU4fRxliyoZrCnERR+RRzeg7gWrXrCLubQt1WEx0sojMAfznshSL3M5HGsYjEbYwA==", 1845 - "license": "MIT", 1846 - "dependencies": { 1847 - "prosemirror-changeset": "^2.3.0", 1848 - "prosemirror-collab": "^1.3.1", 1849 - "prosemirror-commands": "^1.6.2", 1850 - "prosemirror-dropcursor": "^1.8.1", 1851 - "prosemirror-gapcursor": "^1.3.2", 1852 - "prosemirror-history": "^1.4.1", 1853 - "prosemirror-inputrules": "^1.4.0", 1854 - "prosemirror-keymap": "^1.2.2", 1855 - "prosemirror-markdown": "^1.13.1", 1856 - "prosemirror-menu": "^1.2.4", 1857 - "prosemirror-model": "^1.23.0", 1858 - "prosemirror-schema-basic": "^1.2.3", 1859 - "prosemirror-schema-list": "^1.4.1", 1860 - "prosemirror-state": "^1.4.3", 1861 - "prosemirror-tables": "^1.6.4", 1862 - "prosemirror-trailing-node": "^3.0.0", 1863 - "prosemirror-transform": "^1.10.2", 1864 - "prosemirror-view": "^1.37.0" 1865 - }, 1866 - "funding": { 1867 - "type": "github", 1868 - "url": "https://github.com/sponsors/ueberdosis" 1869 - } 1870 - }, 1871 - "node_modules/@tiptap/starter-kit": { 1872 - "version": "2.12.0", 1873 - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.12.0.tgz", 1874 - "integrity": "sha512-wlcEEtexd6u0gbR311/OFZnbtRWU97DUsY6/GsSQzN4rqZ7Ra6YbfHEN5Lutu+I/anomK8vKy8k9NyvfY5Hllg==", 1875 - "license": "MIT", 1876 - "dependencies": { 1877 - "@tiptap/core": "^2.12.0", 1878 - "@tiptap/extension-blockquote": "^2.12.0", 1879 - "@tiptap/extension-bold": "^2.12.0", 1880 - "@tiptap/extension-bullet-list": "^2.12.0", 1881 - "@tiptap/extension-code": "^2.12.0", 1882 - "@tiptap/extension-code-block": "^2.12.0", 1883 - "@tiptap/extension-document": "^2.12.0", 1884 - "@tiptap/extension-dropcursor": "^2.12.0", 1885 - "@tiptap/extension-gapcursor": "^2.12.0", 1886 - "@tiptap/extension-hard-break": "^2.12.0", 1887 - "@tiptap/extension-heading": "^2.12.0", 1888 - "@tiptap/extension-history": "^2.12.0", 1889 - "@tiptap/extension-horizontal-rule": "^2.12.0", 1890 - "@tiptap/extension-italic": "^2.12.0", 1891 - "@tiptap/extension-list-item": "^2.12.0", 1892 - "@tiptap/extension-ordered-list": "^2.12.0", 1893 - "@tiptap/extension-paragraph": "^2.12.0", 1894 - "@tiptap/extension-strike": "^2.12.0", 1895 - "@tiptap/extension-text": "^2.12.0", 1896 - "@tiptap/extension-text-style": "^2.12.0", 1897 - "@tiptap/pm": "^2.12.0" 1898 - }, 1899 - "funding": { 1900 - "type": "github", 1901 - "url": "https://github.com/sponsors/ueberdosis" 1902 - } 1903 - }, 1904 - "node_modules/@types/cookie": { 1905 - "version": "0.6.0", 1906 - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 1907 - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", 1908 - "dev": true 1909 - }, 1910 - "node_modules/@types/estree": { 1911 - "version": "1.0.6", 1912 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 1913 - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" 1914 - }, 1915 - "node_modules/@types/json-schema": { 1916 - "version": "7.0.15", 1917 - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1918 - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1919 - "dev": true 1920 - }, 1921 - "node_modules/@types/linkify-it": { 1922 - "version": "5.0.0", 1923 - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", 1924 - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", 1925 - "license": "MIT" 1926 - }, 1927 - "node_modules/@types/markdown-it": { 1928 - "version": "14.1.2", 1929 - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", 1930 - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", 1931 - "license": "MIT", 1932 - "dependencies": { 1933 - "@types/linkify-it": "^5", 1934 - "@types/mdurl": "^2" 1935 - } 1936 - }, 1937 - "node_modules/@types/mdurl": { 1938 - "version": "2.0.0", 1939 - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", 1940 - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", 1941 - "license": "MIT" 1942 - }, 1943 - "node_modules/@types/turndown": { 1944 - "version": "5.0.5", 1945 - "resolved": "https://registry.npmjs.org/@types/turndown/-/turndown-5.0.5.tgz", 1946 - "integrity": "sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==", 1947 - "dev": true, 1948 - "license": "MIT" 1949 - }, 1950 - "node_modules/@typescript-eslint/eslint-plugin": { 1951 - "version": "8.24.1", 1952 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.1.tgz", 1953 - "integrity": "sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==", 1954 - "dev": true, 1955 - "dependencies": { 1956 - "@eslint-community/regexpp": "^4.10.0", 1957 - "@typescript-eslint/scope-manager": "8.24.1", 1958 - "@typescript-eslint/type-utils": "8.24.1", 1959 - "@typescript-eslint/utils": "8.24.1", 1960 - "@typescript-eslint/visitor-keys": "8.24.1", 1961 - "graphemer": "^1.4.0", 1962 - "ignore": "^5.3.1", 1963 - "natural-compare": "^1.4.0", 1964 - "ts-api-utils": "^2.0.1" 1965 - }, 1966 - "engines": { 1967 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1968 - }, 1969 - "funding": { 1970 - "type": "opencollective", 1971 - "url": "https://opencollective.com/typescript-eslint" 1972 - }, 1973 - "peerDependencies": { 1974 - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 1975 - "eslint": "^8.57.0 || ^9.0.0", 1976 - "typescript": ">=4.8.4 <5.8.0" 1977 - } 1978 - }, 1979 - "node_modules/@typescript-eslint/parser": { 1980 - "version": "8.24.1", 1981 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.1.tgz", 1982 - "integrity": "sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==", 1983 - "dev": true, 1984 - "dependencies": { 1985 - "@typescript-eslint/scope-manager": "8.24.1", 1986 - "@typescript-eslint/types": "8.24.1", 1987 - "@typescript-eslint/typescript-estree": "8.24.1", 1988 - "@typescript-eslint/visitor-keys": "8.24.1", 1989 - "debug": "^4.3.4" 1990 - }, 1991 - "engines": { 1992 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1993 - }, 1994 - "funding": { 1995 - "type": "opencollective", 1996 - "url": "https://opencollective.com/typescript-eslint" 1997 - }, 1998 - "peerDependencies": { 1999 - "eslint": "^8.57.0 || ^9.0.0", 2000 - "typescript": ">=4.8.4 <5.8.0" 2001 - } 2002 - }, 2003 - "node_modules/@typescript-eslint/scope-manager": { 2004 - "version": "8.24.1", 2005 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", 2006 - "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", 2007 - "dev": true, 2008 - "dependencies": { 2009 - "@typescript-eslint/types": "8.24.1", 2010 - "@typescript-eslint/visitor-keys": "8.24.1" 2011 - }, 2012 - "engines": { 2013 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2014 - }, 2015 - "funding": { 2016 - "type": "opencollective", 2017 - "url": "https://opencollective.com/typescript-eslint" 2018 - } 2019 - }, 2020 - "node_modules/@typescript-eslint/type-utils": { 2021 - "version": "8.24.1", 2022 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", 2023 - "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", 2024 - "dev": true, 2025 - "dependencies": { 2026 - "@typescript-eslint/typescript-estree": "8.24.1", 2027 - "@typescript-eslint/utils": "8.24.1", 2028 - "debug": "^4.3.4", 2029 - "ts-api-utils": "^2.0.1" 2030 - }, 2031 - "engines": { 2032 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2033 - }, 2034 - "funding": { 2035 - "type": "opencollective", 2036 - "url": "https://opencollective.com/typescript-eslint" 2037 - }, 2038 - "peerDependencies": { 2039 - "eslint": "^8.57.0 || ^9.0.0", 2040 - "typescript": ">=4.8.4 <5.8.0" 2041 - } 2042 - }, 2043 - "node_modules/@typescript-eslint/types": { 2044 - "version": "8.24.1", 2045 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", 2046 - "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", 2047 - "dev": true, 2048 - "engines": { 2049 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2050 - }, 2051 - "funding": { 2052 - "type": "opencollective", 2053 - "url": "https://opencollective.com/typescript-eslint" 2054 - } 2055 - }, 2056 - "node_modules/@typescript-eslint/typescript-estree": { 2057 - "version": "8.24.1", 2058 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", 2059 - "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", 2060 - "dev": true, 2061 - "dependencies": { 2062 - "@typescript-eslint/types": "8.24.1", 2063 - "@typescript-eslint/visitor-keys": "8.24.1", 2064 - "debug": "^4.3.4", 2065 - "fast-glob": "^3.3.2", 2066 - "is-glob": "^4.0.3", 2067 - "minimatch": "^9.0.4", 2068 - "semver": "^7.6.0", 2069 - "ts-api-utils": "^2.0.1" 2070 - }, 2071 - "engines": { 2072 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2073 - }, 2074 - "funding": { 2075 - "type": "opencollective", 2076 - "url": "https://opencollective.com/typescript-eslint" 2077 - }, 2078 - "peerDependencies": { 2079 - "typescript": ">=4.8.4 <5.8.0" 2080 - } 2081 - }, 2082 - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 2083 - "version": "2.0.1", 2084 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 2085 - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 2086 - "dev": true, 2087 - "dependencies": { 2088 - "balanced-match": "^1.0.0" 2089 - } 2090 - }, 2091 - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 2092 - "version": "9.0.5", 2093 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 2094 - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 2095 - "dev": true, 2096 - "dependencies": { 2097 - "brace-expansion": "^2.0.1" 2098 - }, 2099 - "engines": { 2100 - "node": ">=16 || 14 >=14.17" 2101 - }, 2102 - "funding": { 2103 - "url": "https://github.com/sponsors/isaacs" 2104 - } 2105 - }, 2106 - "node_modules/@typescript-eslint/utils": { 2107 - "version": "8.24.1", 2108 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", 2109 - "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", 2110 - "dev": true, 2111 - "dependencies": { 2112 - "@eslint-community/eslint-utils": "^4.4.0", 2113 - "@typescript-eslint/scope-manager": "8.24.1", 2114 - "@typescript-eslint/types": "8.24.1", 2115 - "@typescript-eslint/typescript-estree": "8.24.1" 2116 - }, 2117 - "engines": { 2118 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2119 - }, 2120 - "funding": { 2121 - "type": "opencollective", 2122 - "url": "https://opencollective.com/typescript-eslint" 2123 - }, 2124 - "peerDependencies": { 2125 - "eslint": "^8.57.0 || ^9.0.0", 2126 - "typescript": ">=4.8.4 <5.8.0" 2127 - } 2128 - }, 2129 - "node_modules/@typescript-eslint/visitor-keys": { 2130 - "version": "8.24.1", 2131 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", 2132 - "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", 2133 - "dev": true, 2134 - "dependencies": { 2135 - "@typescript-eslint/types": "8.24.1", 2136 - "eslint-visitor-keys": "^4.2.0" 2137 - }, 2138 - "engines": { 2139 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2140 - }, 2141 - "funding": { 2142 - "type": "opencollective", 2143 - "url": "https://opencollective.com/typescript-eslint" 2144 - } 2145 - }, 2146 - "node_modules/@use-gesture/core": { 2147 - "version": "10.3.1", 2148 - "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", 2149 - "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", 2150 - "license": "MIT" 2151 - }, 2152 - "node_modules/@use-gesture/vanilla": { 2153 - "version": "10.3.1", 2154 - "resolved": "https://registry.npmjs.org/@use-gesture/vanilla/-/vanilla-10.3.1.tgz", 2155 - "integrity": "sha512-lT4scGLu59ovA3zmtUonukAGcA0AdOOh+iwNDS05Bsu7Lq9aZToDHhI6D8Q2qvsVraovtsLLYwPrWdG/noMAKw==", 2156 - "license": "MIT", 2157 - "dependencies": { 2158 - "@use-gesture/core": "10.3.1" 2159 - } 2160 - }, 2161 - "node_modules/acorn": { 2162 - "version": "8.14.0", 2163 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 2164 - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 2165 - "bin": { 2166 - "acorn": "bin/acorn" 2167 - }, 2168 - "engines": { 2169 - "node": ">=0.4.0" 2170 - } 2171 - }, 2172 - "node_modules/acorn-jsx": { 2173 - "version": "5.3.2", 2174 - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2175 - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2176 - "dev": true, 2177 - "peerDependencies": { 2178 - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 2179 - } 2180 - }, 2181 - "node_modules/acorn-typescript": { 2182 - "version": "1.4.13", 2183 - "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", 2184 - "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", 2185 - "peerDependencies": { 2186 - "acorn": ">=8.9.0" 2187 - } 2188 - }, 2189 - "node_modules/ajv": { 2190 - "version": "6.12.6", 2191 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2192 - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2193 - "dev": true, 2194 - "dependencies": { 2195 - "fast-deep-equal": "^3.1.1", 2196 - "fast-json-stable-stringify": "^2.0.0", 2197 - "json-schema-traverse": "^0.4.1", 2198 - "uri-js": "^4.2.2" 2199 - }, 2200 - "funding": { 2201 - "type": "github", 2202 - "url": "https://github.com/sponsors/epoberezkin" 2203 - } 2204 - }, 2205 - "node_modules/ansi-styles": { 2206 - "version": "4.3.0", 2207 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2208 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2209 - "dev": true, 2210 - "dependencies": { 2211 - "color-convert": "^2.0.1" 2212 - }, 2213 - "engines": { 2214 - "node": ">=8" 2215 - }, 2216 - "funding": { 2217 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2218 - } 2219 - }, 2220 - "node_modules/argparse": { 2221 - "version": "2.0.1", 2222 - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2223 - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2224 - }, 2225 - "node_modules/aria-query": { 2226 - "version": "5.3.2", 2227 - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 2228 - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 2229 - "engines": { 2230 - "node": ">= 0.4" 2231 - } 2232 - }, 2233 - "node_modules/await-lock": { 2234 - "version": "2.2.2", 2235 - "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", 2236 - "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==", 2237 - "license": "MIT" 2238 - }, 2239 - "node_modules/axobject-query": { 2240 - "version": "4.1.0", 2241 - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 2242 - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 2243 - "engines": { 2244 - "node": ">= 0.4" 2245 - } 2246 - }, 2247 - "node_modules/balanced-match": { 2248 - "version": "1.0.2", 2249 - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2250 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2251 - "dev": true 2252 - }, 2253 - "node_modules/bits-ui": { 2254 - "version": "1.4.6", 2255 - "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-1.4.6.tgz", 2256 - "integrity": "sha512-EN2niBF9iBe03GzSJ64I369DA/pRdoC7sCKVAqIxMkxrk/ClfDurzNJkf4RMK6EFOxeqWzTVFJTGyPdmBAy6Lw==", 2257 - "license": "MIT", 2258 - "dependencies": { 2259 - "@floating-ui/core": "^1.6.4", 2260 - "@floating-ui/dom": "^1.6.7", 2261 - "@internationalized/date": "^3.5.6", 2262 - "esm-env": "^1.1.2", 2263 - "runed": "^0.23.2", 2264 - "svelte-toolbelt": "^0.7.1", 2265 - "tabbable": "^6.2.0" 2266 - }, 2267 - "engines": { 2268 - "node": ">=18", 2269 - "pnpm": ">=8.7.0" 2270 - }, 2271 - "funding": { 2272 - "url": "https://github.com/sponsors/huntabyte" 2273 - }, 2274 - "peerDependencies": { 2275 - "svelte": "^5.11.0" 2276 - } 2277 - }, 2278 - "node_modules/brace-expansion": { 2279 - "version": "1.1.11", 2280 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2281 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2282 - "dev": true, 2283 - "dependencies": { 2284 - "balanced-match": "^1.0.0", 2285 - "concat-map": "0.0.1" 2286 - } 2287 - }, 2288 - "node_modules/braces": { 2289 - "version": "3.0.3", 2290 - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 2291 - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 2292 - "dev": true, 2293 - "dependencies": { 2294 - "fill-range": "^7.1.1" 2295 - }, 2296 - "engines": { 2297 - "node": ">=8" 2298 - } 2299 - }, 2300 - "node_modules/callsites": { 2301 - "version": "3.1.0", 2302 - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2303 - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2304 - "dev": true, 2305 - "engines": { 2306 - "node": ">=6" 2307 - } 2308 - }, 2309 - "node_modules/chalk": { 2310 - "version": "4.1.2", 2311 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2312 - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2313 - "dev": true, 2314 - "dependencies": { 2315 - "ansi-styles": "^4.1.0", 2316 - "supports-color": "^7.1.0" 2317 - }, 2318 - "engines": { 2319 - "node": ">=10" 2320 - }, 2321 - "funding": { 2322 - "url": "https://github.com/chalk/chalk?sponsor=1" 2323 - } 2324 - }, 2325 - "node_modules/chokidar": { 2326 - "version": "4.0.3", 2327 - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 2328 - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 2329 - "dev": true, 2330 - "dependencies": { 2331 - "readdirp": "^4.0.1" 2332 - }, 2333 - "engines": { 2334 - "node": ">= 14.16.0" 2335 - }, 2336 - "funding": { 2337 - "url": "https://paulmillr.com/funding/" 2338 - } 2339 - }, 2340 - "node_modules/clsx": { 2341 - "version": "2.1.1", 2342 - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 2343 - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 2344 - "engines": { 2345 - "node": ">=6" 2346 - } 2347 - }, 2348 - "node_modules/color-convert": { 2349 - "version": "2.0.1", 2350 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2351 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2352 - "dev": true, 2353 - "dependencies": { 2354 - "color-name": "~1.1.4" 2355 - }, 2356 - "engines": { 2357 - "node": ">=7.0.0" 2358 - } 2359 - }, 2360 - "node_modules/color-name": { 2361 - "version": "1.1.4", 2362 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2363 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2364 - "dev": true 2365 - }, 2366 - "node_modules/concat-map": { 2367 - "version": "0.0.1", 2368 - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2369 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2370 - "dev": true 2371 - }, 2372 - "node_modules/cookie": { 2373 - "version": "0.6.0", 2374 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", 2375 - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", 2376 - "dev": true, 2377 - "engines": { 2378 - "node": ">= 0.6" 2379 - } 2380 - }, 2381 - "node_modules/core-js": { 2382 - "version": "3.42.0", 2383 - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz", 2384 - "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==", 2385 - "hasInstallScript": true, 2386 - "license": "MIT", 2387 - "funding": { 2388 - "type": "opencollective", 2389 - "url": "https://opencollective.com/core-js" 2390 - } 2391 - }, 2392 - "node_modules/crelt": { 2393 - "version": "1.0.6", 2394 - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", 2395 - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", 2396 - "license": "MIT" 2397 - }, 2398 - "node_modules/cross-spawn": { 2399 - "version": "7.0.6", 2400 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 2401 - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 2402 - "dev": true, 2403 - "dependencies": { 2404 - "path-key": "^3.1.0", 2405 - "shebang-command": "^2.0.0", 2406 - "which": "^2.0.1" 2407 - }, 2408 - "engines": { 2409 - "node": ">= 8" 2410 - } 2411 - }, 2412 - "node_modules/cssesc": { 2413 - "version": "3.0.0", 2414 - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2415 - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2416 - "bin": { 2417 - "cssesc": "bin/cssesc" 2418 - }, 2419 - "engines": { 2420 - "node": ">=4" 2421 - } 2422 - }, 2423 - "node_modules/custom-event-polyfill": { 2424 - "version": "1.0.7", 2425 - "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", 2426 - "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==", 2427 - "license": "MIT" 2428 - }, 2429 - "node_modules/debug": { 2430 - "version": "4.4.0", 2431 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 2432 - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 2433 - "dev": true, 2434 - "dependencies": { 2435 - "ms": "^2.1.3" 2436 - }, 2437 - "engines": { 2438 - "node": ">=6.0" 2439 - }, 2440 - "peerDependenciesMeta": { 2441 - "supports-color": { 2442 - "optional": true 2443 - } 2444 - } 2445 - }, 2446 - "node_modules/deep-is": { 2447 - "version": "0.1.4", 2448 - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2449 - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2450 - "dev": true 2451 - }, 2452 - "node_modules/deepmerge": { 2453 - "version": "4.3.1", 2454 - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 2455 - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 2456 - "dev": true, 2457 - "engines": { 2458 - "node": ">=0.10.0" 2459 - } 2460 - }, 2461 - "node_modules/detect-libc": { 2462 - "version": "1.0.3", 2463 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 2464 - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", 2465 - "dev": true, 2466 - "bin": { 2467 - "detect-libc": "bin/detect-libc.js" 2468 - }, 2469 - "engines": { 2470 - "node": ">=0.10" 2471 - } 2472 - }, 2473 - "node_modules/devalue": { 2474 - "version": "5.1.1", 2475 - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", 2476 - "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", 2477 - "dev": true 2478 - }, 2479 - "node_modules/emoji-picker-element": { 2480 - "version": "1.26.3", 2481 - "resolved": "https://registry.npmjs.org/emoji-picker-element/-/emoji-picker-element-1.26.3.tgz", 2482 - "integrity": "sha512-fOMG44d/3OqTe1pPqlu5H4ZtWg7gK4Le6Bt24JTKtDyce5+EO3Mo8WA95cKHbPSsSsg7ehM12M1x3Y6U6fgvTQ==", 2483 - "license": "Apache-2.0" 2484 - }, 2485 - "node_modules/enhanced-resolve": { 2486 - "version": "5.18.1", 2487 - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", 2488 - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", 2489 - "dev": true, 2490 - "dependencies": { 2491 - "graceful-fs": "^4.2.4", 2492 - "tapable": "^2.2.0" 2493 - }, 2494 - "engines": { 2495 - "node": ">=10.13.0" 2496 - } 2497 - }, 2498 - "node_modules/entities": { 2499 - "version": "4.5.0", 2500 - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 2501 - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 2502 - "license": "BSD-2-Clause", 2503 - "engines": { 2504 - "node": ">=0.12" 2505 - }, 2506 - "funding": { 2507 - "url": "https://github.com/fb55/entities?sponsor=1" 2508 - } 2509 - }, 2510 - "node_modules/esbuild": { 2511 - "version": "0.24.2", 2512 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", 2513 - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", 2514 - "dev": true, 2515 - "hasInstallScript": true, 2516 - "bin": { 2517 - "esbuild": "bin/esbuild" 2518 - }, 2519 - "engines": { 2520 - "node": ">=18" 2521 - }, 2522 - "optionalDependencies": { 2523 - "@esbuild/aix-ppc64": "0.24.2", 2524 - "@esbuild/android-arm": "0.24.2", 2525 - "@esbuild/android-arm64": "0.24.2", 2526 - "@esbuild/android-x64": "0.24.2", 2527 - "@esbuild/darwin-arm64": "0.24.2", 2528 - "@esbuild/darwin-x64": "0.24.2", 2529 - "@esbuild/freebsd-arm64": "0.24.2", 2530 - "@esbuild/freebsd-x64": "0.24.2", 2531 - "@esbuild/linux-arm": "0.24.2", 2532 - "@esbuild/linux-arm64": "0.24.2", 2533 - "@esbuild/linux-ia32": "0.24.2", 2534 - "@esbuild/linux-loong64": "0.24.2", 2535 - "@esbuild/linux-mips64el": "0.24.2", 2536 - "@esbuild/linux-ppc64": "0.24.2", 2537 - "@esbuild/linux-riscv64": "0.24.2", 2538 - "@esbuild/linux-s390x": "0.24.2", 2539 - "@esbuild/linux-x64": "0.24.2", 2540 - "@esbuild/netbsd-arm64": "0.24.2", 2541 - "@esbuild/netbsd-x64": "0.24.2", 2542 - "@esbuild/openbsd-arm64": "0.24.2", 2543 - "@esbuild/openbsd-x64": "0.24.2", 2544 - "@esbuild/sunos-x64": "0.24.2", 2545 - "@esbuild/win32-arm64": "0.24.2", 2546 - "@esbuild/win32-ia32": "0.24.2", 2547 - "@esbuild/win32-x64": "0.24.2" 2548 - } 2549 - }, 2550 - "node_modules/escape-string-regexp": { 2551 - "version": "4.0.0", 2552 - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2553 - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2554 - "engines": { 2555 - "node": ">=10" 2556 - }, 2557 - "funding": { 2558 - "url": "https://github.com/sponsors/sindresorhus" 2559 - } 2560 - }, 2561 - "node_modules/eslint": { 2562 - "version": "9.21.0", 2563 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", 2564 - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", 2565 - "dev": true, 2566 - "dependencies": { 2567 - "@eslint-community/eslint-utils": "^4.2.0", 2568 - "@eslint-community/regexpp": "^4.12.1", 2569 - "@eslint/config-array": "^0.19.2", 2570 - "@eslint/core": "^0.12.0", 2571 - "@eslint/eslintrc": "^3.3.0", 2572 - "@eslint/js": "9.21.0", 2573 - "@eslint/plugin-kit": "^0.2.7", 2574 - "@humanfs/node": "^0.16.6", 2575 - "@humanwhocodes/module-importer": "^1.0.1", 2576 - "@humanwhocodes/retry": "^0.4.2", 2577 - "@types/estree": "^1.0.6", 2578 - "@types/json-schema": "^7.0.15", 2579 - "ajv": "^6.12.4", 2580 - "chalk": "^4.0.0", 2581 - "cross-spawn": "^7.0.6", 2582 - "debug": "^4.3.2", 2583 - "escape-string-regexp": "^4.0.0", 2584 - "eslint-scope": "^8.2.0", 2585 - "eslint-visitor-keys": "^4.2.0", 2586 - "espree": "^10.3.0", 2587 - "esquery": "^1.5.0", 2588 - "esutils": "^2.0.2", 2589 - "fast-deep-equal": "^3.1.3", 2590 - "file-entry-cache": "^8.0.0", 2591 - "find-up": "^5.0.0", 2592 - "glob-parent": "^6.0.2", 2593 - "ignore": "^5.2.0", 2594 - "imurmurhash": "^0.1.4", 2595 - "is-glob": "^4.0.0", 2596 - "json-stable-stringify-without-jsonify": "^1.0.1", 2597 - "lodash.merge": "^4.6.2", 2598 - "minimatch": "^3.1.2", 2599 - "natural-compare": "^1.4.0", 2600 - "optionator": "^0.9.3" 2601 - }, 2602 - "bin": { 2603 - "eslint": "bin/eslint.js" 2604 - }, 2605 - "engines": { 2606 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2607 - }, 2608 - "funding": { 2609 - "url": "https://eslint.org/donate" 2610 - }, 2611 - "peerDependencies": { 2612 - "jiti": "*" 2613 - }, 2614 - "peerDependenciesMeta": { 2615 - "jiti": { 2616 - "optional": true 2617 - } 2618 - } 2619 - }, 2620 - "node_modules/eslint-compat-utils": { 2621 - "version": "0.5.1", 2622 - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", 2623 - "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", 2624 - "dev": true, 2625 - "dependencies": { 2626 - "semver": "^7.5.4" 2627 - }, 2628 - "engines": { 2629 - "node": ">=12" 2630 - }, 2631 - "peerDependencies": { 2632 - "eslint": ">=6.0.0" 2633 - } 2634 - }, 2635 - "node_modules/eslint-config-prettier": { 2636 - "version": "10.0.1", 2637 - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", 2638 - "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", 2639 - "dev": true, 2640 - "bin": { 2641 - "eslint-config-prettier": "build/bin/cli.js" 2642 - }, 2643 - "peerDependencies": { 2644 - "eslint": ">=7.0.0" 2645 - } 2646 - }, 2647 - "node_modules/eslint-plugin-svelte": { 2648 - "version": "2.46.1", 2649 - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz", 2650 - "integrity": "sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw==", 2651 - "dev": true, 2652 - "dependencies": { 2653 - "@eslint-community/eslint-utils": "^4.4.0", 2654 - "@jridgewell/sourcemap-codec": "^1.4.15", 2655 - "eslint-compat-utils": "^0.5.1", 2656 - "esutils": "^2.0.3", 2657 - "known-css-properties": "^0.35.0", 2658 - "postcss": "^8.4.38", 2659 - "postcss-load-config": "^3.1.4", 2660 - "postcss-safe-parser": "^6.0.0", 2661 - "postcss-selector-parser": "^6.1.0", 2662 - "semver": "^7.6.2", 2663 - "svelte-eslint-parser": "^0.43.0" 2664 - }, 2665 - "engines": { 2666 - "node": "^14.17.0 || >=16.0.0" 2667 - }, 2668 - "funding": { 2669 - "url": "https://github.com/sponsors/ota-meshi" 2670 - }, 2671 - "peerDependencies": { 2672 - "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", 2673 - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 2674 - }, 2675 - "peerDependenciesMeta": { 2676 - "svelte": { 2677 - "optional": true 2678 - } 2679 - } 2680 - }, 2681 - "node_modules/eslint-scope": { 2682 - "version": "8.2.0", 2683 - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", 2684 - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", 2685 - "dev": true, 2686 - "dependencies": { 2687 - "esrecurse": "^4.3.0", 2688 - "estraverse": "^5.2.0" 2689 - }, 2690 - "engines": { 2691 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2692 - }, 2693 - "funding": { 2694 - "url": "https://opencollective.com/eslint" 2695 - } 2696 - }, 2697 - "node_modules/eslint-visitor-keys": { 2698 - "version": "4.2.0", 2699 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 2700 - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 2701 - "dev": true, 2702 - "engines": { 2703 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2704 - }, 2705 - "funding": { 2706 - "url": "https://opencollective.com/eslint" 2707 - } 2708 - }, 2709 - "node_modules/esm-env": { 2710 - "version": "1.2.2", 2711 - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 2712 - "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" 2713 - }, 2714 - "node_modules/espree": { 2715 - "version": "10.3.0", 2716 - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", 2717 - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", 2718 - "dev": true, 2719 - "dependencies": { 2720 - "acorn": "^8.14.0", 2721 - "acorn-jsx": "^5.3.2", 2722 - "eslint-visitor-keys": "^4.2.0" 2723 - }, 2724 - "engines": { 2725 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2726 - }, 2727 - "funding": { 2728 - "url": "https://opencollective.com/eslint" 2729 - } 2730 - }, 2731 - "node_modules/esquery": { 2732 - "version": "1.6.0", 2733 - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 2734 - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 2735 - "dev": true, 2736 - "dependencies": { 2737 - "estraverse": "^5.1.0" 2738 - }, 2739 - "engines": { 2740 - "node": ">=0.10" 2741 - } 2742 - }, 2743 - "node_modules/esrap": { 2744 - "version": "1.4.5", 2745 - "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.5.tgz", 2746 - "integrity": "sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==", 2747 - "dependencies": { 2748 - "@jridgewell/sourcemap-codec": "^1.4.15" 2749 - } 2750 - }, 2751 - "node_modules/esrecurse": { 2752 - "version": "4.3.0", 2753 - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2754 - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2755 - "dev": true, 2756 - "dependencies": { 2757 - "estraverse": "^5.2.0" 2758 - }, 2759 - "engines": { 2760 - "node": ">=4.0" 2761 - } 2762 - }, 2763 - "node_modules/estraverse": { 2764 - "version": "5.3.0", 2765 - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2766 - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2767 - "dev": true, 2768 - "engines": { 2769 - "node": ">=4.0" 2770 - } 2771 - }, 2772 - "node_modules/esutils": { 2773 - "version": "2.0.3", 2774 - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2775 - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2776 - "dev": true, 2777 - "engines": { 2778 - "node": ">=0.10.0" 2779 - } 2780 - }, 2781 - "node_modules/fast-deep-equal": { 2782 - "version": "3.1.3", 2783 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2784 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2785 - "dev": true 2786 - }, 2787 - "node_modules/fast-glob": { 2788 - "version": "3.3.3", 2789 - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 2790 - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 2791 - "dev": true, 2792 - "dependencies": { 2793 - "@nodelib/fs.stat": "^2.0.2", 2794 - "@nodelib/fs.walk": "^1.2.3", 2795 - "glob-parent": "^5.1.2", 2796 - "merge2": "^1.3.0", 2797 - "micromatch": "^4.0.8" 2798 - }, 2799 - "engines": { 2800 - "node": ">=8.6.0" 2801 - } 2802 - }, 2803 - "node_modules/fast-glob/node_modules/glob-parent": { 2804 - "version": "5.1.2", 2805 - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2806 - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2807 - "dev": true, 2808 - "dependencies": { 2809 - "is-glob": "^4.0.1" 2810 - }, 2811 - "engines": { 2812 - "node": ">= 6" 2813 - } 2814 - }, 2815 - "node_modules/fast-json-stable-stringify": { 2816 - "version": "2.1.0", 2817 - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2818 - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2819 - "dev": true 2820 - }, 2821 - "node_modules/fast-levenshtein": { 2822 - "version": "2.0.6", 2823 - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2824 - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2825 - "dev": true 2826 - }, 2827 - "node_modules/fastq": { 2828 - "version": "1.19.0", 2829 - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", 2830 - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", 2831 - "dev": true, 2832 - "dependencies": { 2833 - "reusify": "^1.0.4" 2834 - } 2835 - }, 2836 - "node_modules/fdir": { 2837 - "version": "6.4.3", 2838 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", 2839 - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", 2840 - "dev": true, 2841 - "peerDependencies": { 2842 - "picomatch": "^3 || ^4" 2843 - }, 2844 - "peerDependenciesMeta": { 2845 - "picomatch": { 2846 - "optional": true 2847 - } 2848 - } 2849 - }, 2850 - "node_modules/file-entry-cache": { 2851 - "version": "8.0.0", 2852 - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 2853 - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 2854 - "dev": true, 2855 - "dependencies": { 2856 - "flat-cache": "^4.0.0" 2857 - }, 2858 - "engines": { 2859 - "node": ">=16.0.0" 2860 - } 2861 - }, 2862 - "node_modules/fill-range": { 2863 - "version": "7.1.1", 2864 - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2865 - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2866 - "dev": true, 2867 - "dependencies": { 2868 - "to-regex-range": "^5.0.1" 2869 - }, 2870 - "engines": { 2871 - "node": ">=8" 2872 - } 2873 - }, 2874 - "node_modules/find-up": { 2875 - "version": "5.0.0", 2876 - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2877 - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2878 - "dev": true, 2879 - "dependencies": { 2880 - "locate-path": "^6.0.0", 2881 - "path-exists": "^4.0.0" 2882 - }, 2883 - "engines": { 2884 - "node": ">=10" 2885 - }, 2886 - "funding": { 2887 - "url": "https://github.com/sponsors/sindresorhus" 2888 - } 2889 - }, 2890 - "node_modules/flat-cache": { 2891 - "version": "4.0.1", 2892 - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 2893 - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 2894 - "dev": true, 2895 - "dependencies": { 2896 - "flatted": "^3.2.9", 2897 - "keyv": "^4.5.4" 2898 - }, 2899 - "engines": { 2900 - "node": ">=16" 2901 - } 2902 - }, 2903 - "node_modules/flatted": { 2904 - "version": "3.3.3", 2905 - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 2906 - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 2907 - "dev": true 2908 - }, 2909 - "node_modules/fsevents": { 2910 - "version": "2.3.3", 2911 - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2912 - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2913 - "dev": true, 2914 - "hasInstallScript": true, 2915 - "optional": true, 2916 - "os": [ 2917 - "darwin" 2918 - ], 2919 - "engines": { 2920 - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2921 - } 2922 - }, 2923 - "node_modules/glob-parent": { 2924 - "version": "6.0.2", 2925 - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2926 - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2927 - "dev": true, 2928 - "dependencies": { 2929 - "is-glob": "^4.0.3" 2930 - }, 2931 - "engines": { 2932 - "node": ">=10.13.0" 2933 - } 2934 - }, 2935 - "node_modules/globals": { 2936 - "version": "15.15.0", 2937 - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", 2938 - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", 2939 - "dev": true, 2940 - "engines": { 2941 - "node": ">=18" 2942 - }, 2943 - "funding": { 2944 - "url": "https://github.com/sponsors/sindresorhus" 2945 - } 2946 - }, 2947 - "node_modules/graceful-fs": { 2948 - "version": "4.2.11", 2949 - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 2950 - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 2951 - "dev": true 2952 - }, 2953 - "node_modules/graphemer": { 2954 - "version": "1.4.0", 2955 - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 2956 - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" 2957 - }, 2958 - "node_modules/has-flag": { 2959 - "version": "4.0.0", 2960 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2961 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2962 - "dev": true, 2963 - "engines": { 2964 - "node": ">=8" 2965 - } 2966 - }, 2967 - "node_modules/hls.js": { 2968 - "version": "1.6.2", 2969 - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.2.tgz", 2970 - "integrity": "sha512-rx+pETSCJEDThm/JCm8CuadcAC410cVjb1XVXFNDKFuylaayHk1+tFxhkjvnMDAfqsJHxZXDAJ3Uc2d5xQyWlQ==", 2971 - "license": "Apache-2.0" 2972 - }, 2973 - "node_modules/ignore": { 2974 - "version": "5.3.2", 2975 - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 2976 - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 2977 - "dev": true, 2978 - "engines": { 2979 - "node": ">= 4" 2980 - } 2981 - }, 2982 - "node_modules/import-fresh": { 2983 - "version": "3.3.1", 2984 - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 2985 - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 2986 - "dev": true, 2987 - "dependencies": { 2988 - "parent-module": "^1.0.0", 2989 - "resolve-from": "^4.0.0" 2990 - }, 2991 - "engines": { 2992 - "node": ">=6" 2993 - }, 2994 - "funding": { 2995 - "url": "https://github.com/sponsors/sindresorhus" 2996 - } 2997 - }, 2998 - "node_modules/import-meta-resolve": { 2999 - "version": "4.1.0", 3000 - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", 3001 - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", 3002 - "dev": true, 3003 - "funding": { 3004 - "type": "github", 3005 - "url": "https://github.com/sponsors/wooorm" 3006 - } 3007 - }, 3008 - "node_modules/imurmurhash": { 3009 - "version": "0.1.4", 3010 - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3011 - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 3012 - "dev": true, 3013 - "engines": { 3014 - "node": ">=0.8.19" 3015 - } 3016 - }, 3017 - "node_modules/inline-style-parser": { 3018 - "version": "0.2.4", 3019 - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", 3020 - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", 3021 - "license": "MIT" 3022 - }, 3023 - "node_modules/is-emoji-supported": { 3024 - "version": "0.0.5", 3025 - "resolved": "https://registry.npmjs.org/is-emoji-supported/-/is-emoji-supported-0.0.5.tgz", 3026 - "integrity": "sha512-WOlXUhDDHxYqcSmFZis+xWhhqXiK2SU0iYiqmth5Ip0FHLZQAt9rKL5ahnilE8/86WH8tZ3bmNNNC+bTzamqlw==", 3027 - "license": "MIT" 3028 - }, 3029 - "node_modules/is-extglob": { 3030 - "version": "2.1.1", 3031 - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3032 - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3033 - "dev": true, 3034 - "engines": { 3035 - "node": ">=0.10.0" 3036 - } 3037 - }, 3038 - "node_modules/is-glob": { 3039 - "version": "4.0.3", 3040 - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3041 - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3042 - "dev": true, 3043 - "dependencies": { 3044 - "is-extglob": "^2.1.1" 3045 - }, 3046 - "engines": { 3047 - "node": ">=0.10.0" 3048 - } 3049 - }, 3050 - "node_modules/is-number": { 3051 - "version": "7.0.0", 3052 - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3053 - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3054 - "dev": true, 3055 - "engines": { 3056 - "node": ">=0.12.0" 3057 - } 3058 - }, 3059 - "node_modules/is-reference": { 3060 - "version": "3.0.3", 3061 - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 3062 - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 3063 - "dependencies": { 3064 - "@types/estree": "^1.0.6" 3065 - } 3066 - }, 3067 - "node_modules/isexe": { 3068 - "version": "2.0.0", 3069 - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3070 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3071 - "dev": true 3072 - }, 3073 - "node_modules/iso-datestring-validator": { 3074 - "version": "2.2.2", 3075 - "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", 3076 - "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", 3077 - "license": "MIT" 3078 - }, 3079 - "node_modules/jiti": { 3080 - "version": "2.4.2", 3081 - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", 3082 - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", 3083 - "dev": true, 3084 - "bin": { 3085 - "jiti": "lib/jiti-cli.mjs" 3086 - } 3087 - }, 3088 - "node_modules/js-yaml": { 3089 - "version": "4.1.0", 3090 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3091 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3092 - "dev": true, 3093 - "dependencies": { 3094 - "argparse": "^2.0.1" 3095 - }, 3096 - "bin": { 3097 - "js-yaml": "bin/js-yaml.js" 3098 - } 3099 - }, 3100 - "node_modules/json-buffer": { 3101 - "version": "3.0.1", 3102 - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 3103 - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 3104 - "dev": true 3105 - }, 3106 - "node_modules/json-schema-traverse": { 3107 - "version": "0.4.1", 3108 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3109 - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3110 - "dev": true 3111 - }, 3112 - "node_modules/json-stable-stringify-without-jsonify": { 3113 - "version": "1.0.1", 3114 - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3115 - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 3116 - "dev": true 3117 - }, 3118 - "node_modules/keyv": { 3119 - "version": "4.5.4", 3120 - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 3121 - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 3122 - "dev": true, 3123 - "dependencies": { 3124 - "json-buffer": "3.0.1" 3125 - } 3126 - }, 3127 - "node_modules/kleur": { 3128 - "version": "4.1.5", 3129 - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 3130 - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 3131 - "dev": true, 3132 - "engines": { 3133 - "node": ">=6" 3134 - } 3135 - }, 3136 - "node_modules/known-css-properties": { 3137 - "version": "0.35.0", 3138 - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", 3139 - "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", 3140 - "dev": true 3141 - }, 3142 - "node_modules/levn": { 3143 - "version": "0.4.1", 3144 - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3145 - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3146 - "dev": true, 3147 - "dependencies": { 3148 - "prelude-ls": "^1.2.1", 3149 - "type-check": "~0.4.0" 3150 - }, 3151 - "engines": { 3152 - "node": ">= 0.8.0" 3153 - } 3154 - }, 3155 - "node_modules/lightningcss": { 3156 - "version": "1.29.1", 3157 - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", 3158 - "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", 3159 - "dev": true, 3160 - "dependencies": { 3161 - "detect-libc": "^1.0.3" 3162 - }, 3163 - "engines": { 3164 - "node": ">= 12.0.0" 3165 - }, 3166 - "funding": { 3167 - "type": "opencollective", 3168 - "url": "https://opencollective.com/parcel" 3169 - }, 3170 - "optionalDependencies": { 3171 - "lightningcss-darwin-arm64": "1.29.1", 3172 - "lightningcss-darwin-x64": "1.29.1", 3173 - "lightningcss-freebsd-x64": "1.29.1", 3174 - "lightningcss-linux-arm-gnueabihf": "1.29.1", 3175 - "lightningcss-linux-arm64-gnu": "1.29.1", 3176 - "lightningcss-linux-arm64-musl": "1.29.1", 3177 - "lightningcss-linux-x64-gnu": "1.29.1", 3178 - "lightningcss-linux-x64-musl": "1.29.1", 3179 - "lightningcss-win32-arm64-msvc": "1.29.1", 3180 - "lightningcss-win32-x64-msvc": "1.29.1" 3181 - } 3182 - }, 3183 - "node_modules/lightningcss-darwin-arm64": { 3184 - "version": "1.29.1", 3185 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", 3186 - "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", 3187 - "cpu": [ 3188 - "arm64" 3189 - ], 3190 - "dev": true, 3191 - "optional": true, 3192 - "os": [ 3193 - "darwin" 3194 - ], 3195 - "engines": { 3196 - "node": ">= 12.0.0" 3197 - }, 3198 - "funding": { 3199 - "type": "opencollective", 3200 - "url": "https://opencollective.com/parcel" 3201 - } 3202 - }, 3203 - "node_modules/lightningcss-darwin-x64": { 3204 - "version": "1.29.1", 3205 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", 3206 - "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", 3207 - "cpu": [ 3208 - "x64" 3209 - ], 3210 - "dev": true, 3211 - "optional": true, 3212 - "os": [ 3213 - "darwin" 3214 - ], 3215 - "engines": { 3216 - "node": ">= 12.0.0" 3217 - }, 3218 - "funding": { 3219 - "type": "opencollective", 3220 - "url": "https://opencollective.com/parcel" 3221 - } 3222 - }, 3223 - "node_modules/lightningcss-freebsd-x64": { 3224 - "version": "1.29.1", 3225 - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", 3226 - "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", 3227 - "cpu": [ 3228 - "x64" 3229 - ], 3230 - "dev": true, 3231 - "optional": true, 3232 - "os": [ 3233 - "freebsd" 3234 - ], 3235 - "engines": { 3236 - "node": ">= 12.0.0" 3237 - }, 3238 - "funding": { 3239 - "type": "opencollective", 3240 - "url": "https://opencollective.com/parcel" 3241 - } 3242 - }, 3243 - "node_modules/lightningcss-linux-arm-gnueabihf": { 3244 - "version": "1.29.1", 3245 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", 3246 - "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", 3247 - "cpu": [ 3248 - "arm" 3249 - ], 3250 - "dev": true, 3251 - "optional": true, 3252 - "os": [ 3253 - "linux" 3254 - ], 3255 - "engines": { 3256 - "node": ">= 12.0.0" 3257 - }, 3258 - "funding": { 3259 - "type": "opencollective", 3260 - "url": "https://opencollective.com/parcel" 3261 - } 3262 - }, 3263 - "node_modules/lightningcss-linux-arm64-gnu": { 3264 - "version": "1.29.1", 3265 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", 3266 - "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", 3267 - "cpu": [ 3268 - "arm64" 3269 - ], 3270 - "dev": true, 3271 - "optional": true, 3272 - "os": [ 3273 - "linux" 3274 - ], 3275 - "engines": { 3276 - "node": ">= 12.0.0" 3277 - }, 3278 - "funding": { 3279 - "type": "opencollective", 3280 - "url": "https://opencollective.com/parcel" 3281 - } 3282 - }, 3283 - "node_modules/lightningcss-linux-arm64-musl": { 3284 - "version": "1.29.1", 3285 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", 3286 - "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", 3287 - "cpu": [ 3288 - "arm64" 3289 - ], 3290 - "dev": true, 3291 - "optional": true, 3292 - "os": [ 3293 - "linux" 3294 - ], 3295 - "engines": { 3296 - "node": ">= 12.0.0" 3297 - }, 3298 - "funding": { 3299 - "type": "opencollective", 3300 - "url": "https://opencollective.com/parcel" 3301 - } 3302 - }, 3303 - "node_modules/lightningcss-linux-x64-gnu": { 3304 - "version": "1.29.1", 3305 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", 3306 - "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", 3307 - "cpu": [ 3308 - "x64" 3309 - ], 3310 - "dev": true, 3311 - "optional": true, 3312 - "os": [ 3313 - "linux" 3314 - ], 3315 - "engines": { 3316 - "node": ">= 12.0.0" 3317 - }, 3318 - "funding": { 3319 - "type": "opencollective", 3320 - "url": "https://opencollective.com/parcel" 3321 - } 3322 - }, 3323 - "node_modules/lightningcss-linux-x64-musl": { 3324 - "version": "1.29.1", 3325 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", 3326 - "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", 3327 - "cpu": [ 3328 - "x64" 3329 - ], 3330 - "dev": true, 3331 - "optional": true, 3332 - "os": [ 3333 - "linux" 3334 - ], 3335 - "engines": { 3336 - "node": ">= 12.0.0" 3337 - }, 3338 - "funding": { 3339 - "type": "opencollective", 3340 - "url": "https://opencollective.com/parcel" 3341 - } 3342 - }, 3343 - "node_modules/lightningcss-win32-arm64-msvc": { 3344 - "version": "1.29.1", 3345 - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", 3346 - "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", 3347 - "cpu": [ 3348 - "arm64" 3349 - ], 3350 - "dev": true, 3351 - "optional": true, 3352 - "os": [ 3353 - "win32" 3354 - ], 3355 - "engines": { 3356 - "node": ">= 12.0.0" 3357 - }, 3358 - "funding": { 3359 - "type": "opencollective", 3360 - "url": "https://opencollective.com/parcel" 3361 - } 3362 - }, 3363 - "node_modules/lightningcss-win32-x64-msvc": { 3364 - "version": "1.29.1", 3365 - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", 3366 - "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", 3367 - "cpu": [ 3368 - "x64" 3369 - ], 3370 - "dev": true, 3371 - "optional": true, 3372 - "os": [ 3373 - "win32" 3374 - ], 3375 - "engines": { 3376 - "node": ">= 12.0.0" 3377 - }, 3378 - "funding": { 3379 - "type": "opencollective", 3380 - "url": "https://opencollective.com/parcel" 3381 - } 3382 - }, 3383 - "node_modules/lilconfig": { 3384 - "version": "2.1.0", 3385 - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 3386 - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 3387 - "dev": true, 3388 - "engines": { 3389 - "node": ">=10" 3390 - } 3391 - }, 3392 - "node_modules/linkify-it": { 3393 - "version": "5.0.0", 3394 - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", 3395 - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", 3396 - "license": "MIT", 3397 - "dependencies": { 3398 - "uc.micro": "^2.0.0" 3399 - } 3400 - }, 3401 - "node_modules/linkifyjs": { 3402 - "version": "4.3.0", 3403 - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.0.tgz", 3404 - "integrity": "sha512-kaSIzMpYb3ihAbMm48CUNpSKPwKw8vPVUItiIvPSrISqHYzvQm/6LhaWYkZsiUHNMml1dw+yPMM1/qzigJNg5g==", 3405 - "license": "MIT" 3406 - }, 3407 - "node_modules/loadjs": { 3408 - "version": "4.3.0", 3409 - "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.3.0.tgz", 3410 - "integrity": "sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==", 3411 - "license": "MIT" 3412 - }, 3413 - "node_modules/locate-character": { 3414 - "version": "3.0.0", 3415 - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 3416 - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" 3417 - }, 3418 - "node_modules/locate-path": { 3419 - "version": "6.0.0", 3420 - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3421 - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3422 - "dev": true, 3423 - "dependencies": { 3424 - "p-locate": "^5.0.0" 3425 - }, 3426 - "engines": { 3427 - "node": ">=10" 3428 - }, 3429 - "funding": { 3430 - "url": "https://github.com/sponsors/sindresorhus" 3431 - } 3432 - }, 3433 - "node_modules/lodash.castarray": { 3434 - "version": "4.4.0", 3435 - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", 3436 - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", 3437 - "license": "MIT" 3438 - }, 3439 - "node_modules/lodash.isplainobject": { 3440 - "version": "4.0.6", 3441 - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 3442 - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", 3443 - "license": "MIT" 3444 - }, 3445 - "node_modules/lodash.merge": { 3446 - "version": "4.6.2", 3447 - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3448 - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" 3449 - }, 3450 - "node_modules/magic-string": { 3451 - "version": "0.30.17", 3452 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 3453 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 3454 - "dependencies": { 3455 - "@jridgewell/sourcemap-codec": "^1.5.0" 3456 - } 3457 - }, 3458 - "node_modules/markdown-it": { 3459 - "version": "14.1.0", 3460 - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", 3461 - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", 3462 - "license": "MIT", 3463 - "dependencies": { 3464 - "argparse": "^2.0.1", 3465 - "entities": "^4.4.0", 3466 - "linkify-it": "^5.0.0", 3467 - "mdurl": "^2.0.0", 3468 - "punycode.js": "^2.3.1", 3469 - "uc.micro": "^2.1.0" 3470 - }, 3471 - "bin": { 3472 - "markdown-it": "bin/markdown-it.mjs" 3473 - } 3474 - }, 3475 - "node_modules/marked": { 3476 - "version": "15.0.11", 3477 - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.11.tgz", 3478 - "integrity": "sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==", 3479 - "license": "MIT", 3480 - "bin": { 3481 - "marked": "bin/marked.js" 3482 - }, 3483 - "engines": { 3484 - "node": ">= 18" 3485 - } 3486 - }, 3487 - "node_modules/mdurl": { 3488 - "version": "2.0.0", 3489 - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", 3490 - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", 3491 - "license": "MIT" 3492 - }, 3493 - "node_modules/merge2": { 3494 - "version": "1.4.1", 3495 - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3496 - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3497 - "dev": true, 3498 - "engines": { 3499 - "node": ">= 8" 3500 - } 3501 - }, 3502 - "node_modules/micromatch": { 3503 - "version": "4.0.8", 3504 - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 3505 - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 3506 - "dev": true, 3507 - "dependencies": { 3508 - "braces": "^3.0.3", 3509 - "picomatch": "^2.3.1" 3510 - }, 3511 - "engines": { 3512 - "node": ">=8.6" 3513 - } 3514 - }, 3515 - "node_modules/micromatch/node_modules/picomatch": { 3516 - "version": "2.3.1", 3517 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3518 - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3519 - "dev": true, 3520 - "engines": { 3521 - "node": ">=8.6" 3522 - }, 3523 - "funding": { 3524 - "url": "https://github.com/sponsors/jonschlinkert" 3525 - } 3526 - }, 3527 - "node_modules/mini-svg-data-uri": { 3528 - "version": "1.4.4", 3529 - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", 3530 - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", 3531 - "dev": true, 3532 - "bin": { 3533 - "mini-svg-data-uri": "cli.js" 3534 - } 3535 - }, 3536 - "node_modules/minimatch": { 3537 - "version": "3.1.2", 3538 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3539 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3540 - "dev": true, 3541 - "dependencies": { 3542 - "brace-expansion": "^1.1.7" 3543 - }, 3544 - "engines": { 3545 - "node": "*" 3546 - } 3547 - }, 3548 - "node_modules/mri": { 3549 - "version": "1.2.0", 3550 - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 3551 - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 3552 - "dev": true, 3553 - "engines": { 3554 - "node": ">=4" 3555 - } 3556 - }, 3557 - "node_modules/mrmime": { 3558 - "version": "2.0.1", 3559 - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 3560 - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 3561 - "dev": true, 3562 - "engines": { 3563 - "node": ">=10" 3564 - } 3565 - }, 3566 - "node_modules/ms": { 3567 - "version": "2.1.3", 3568 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 3569 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 3570 - "dev": true 3571 - }, 3572 - "node_modules/multiformats": { 3573 - "version": "9.9.0", 3574 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 3575 - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 3576 - "license": "(Apache-2.0 AND MIT)" 3577 - }, 3578 - "node_modules/nanoid": { 3579 - "version": "3.3.8", 3580 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", 3581 - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", 3582 - "dev": true, 3583 - "funding": [ 3584 - { 3585 - "type": "github", 3586 - "url": "https://github.com/sponsors/ai" 3587 - } 3588 - ], 3589 - "bin": { 3590 - "nanoid": "bin/nanoid.cjs" 3591 - }, 3592 - "engines": { 3593 - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3594 - } 3595 - }, 3596 - "node_modules/natural-compare": { 3597 - "version": "1.4.0", 3598 - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3599 - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3600 - "dev": true 3601 - }, 3602 - "node_modules/number-flow": { 3603 - "version": "0.5.7", 3604 - "resolved": "https://registry.npmjs.org/number-flow/-/number-flow-0.5.7.tgz", 3605 - "integrity": "sha512-P83Y9rBgN3Xpz5677YDNtuQHZpIldw6WXeWRg0+edrfFthhV7QqRdABas5gtu07QPLvbA8XhfO69rIvbKRzYIg==", 3606 - "license": "MIT", 3607 - "dependencies": { 3608 - "esm-env": "^1.1.4" 3609 - } 3610 - }, 3611 - "node_modules/optionator": { 3612 - "version": "0.9.4", 3613 - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 3614 - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 3615 - "dev": true, 3616 - "dependencies": { 3617 - "deep-is": "^0.1.3", 3618 - "fast-levenshtein": "^2.0.6", 3619 - "levn": "^0.4.1", 3620 - "prelude-ls": "^1.2.1", 3621 - "type-check": "^0.4.0", 3622 - "word-wrap": "^1.2.5" 3623 - }, 3624 - "engines": { 3625 - "node": ">= 0.8.0" 3626 - } 3627 - }, 3628 - "node_modules/orderedmap": { 3629 - "version": "2.1.1", 3630 - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", 3631 - "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", 3632 - "license": "MIT" 3633 - }, 3634 - "node_modules/p-limit": { 3635 - "version": "3.1.0", 3636 - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3637 - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3638 - "dev": true, 3639 - "dependencies": { 3640 - "yocto-queue": "^0.1.0" 3641 - }, 3642 - "engines": { 3643 - "node": ">=10" 3644 - }, 3645 - "funding": { 3646 - "url": "https://github.com/sponsors/sindresorhus" 3647 - } 3648 - }, 3649 - "node_modules/p-locate": { 3650 - "version": "5.0.0", 3651 - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3652 - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3653 - "dev": true, 3654 - "dependencies": { 3655 - "p-limit": "^3.0.2" 3656 - }, 3657 - "engines": { 3658 - "node": ">=10" 3659 - }, 3660 - "funding": { 3661 - "url": "https://github.com/sponsors/sindresorhus" 3662 - } 3663 - }, 3664 - "node_modules/parent-module": { 3665 - "version": "1.0.1", 3666 - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3667 - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3668 - "dev": true, 3669 - "dependencies": { 3670 - "callsites": "^3.0.0" 3671 - }, 3672 - "engines": { 3673 - "node": ">=6" 3674 - } 3675 - }, 3676 - "node_modules/path-exists": { 3677 - "version": "4.0.0", 3678 - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3679 - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3680 - "dev": true, 3681 - "engines": { 3682 - "node": ">=8" 3683 - } 3684 - }, 3685 - "node_modules/path-key": { 3686 - "version": "3.1.1", 3687 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3688 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3689 - "dev": true, 3690 - "engines": { 3691 - "node": ">=8" 3692 - } 3693 - }, 3694 - "node_modules/picocolors": { 3695 - "version": "1.1.1", 3696 - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 3697 - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 3698 - "dev": true 3699 - }, 3700 - "node_modules/picomatch": { 3701 - "version": "4.0.2", 3702 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3703 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3704 - "dev": true, 3705 - "optional": true, 3706 - "peer": true, 3707 - "engines": { 3708 - "node": ">=12" 3709 - }, 3710 - "funding": { 3711 - "url": "https://github.com/sponsors/jonschlinkert" 3712 - } 3713 - }, 3714 - "node_modules/plyr": { 3715 - "version": "3.7.8", 3716 - "resolved": "https://registry.npmjs.org/plyr/-/plyr-3.7.8.tgz", 3717 - "integrity": "sha512-yG/EHDobwbB/uP+4Bm6eUpJ93f8xxHjjk2dYcD1Oqpe1EcuQl5tzzw9Oq+uVAzd2lkM11qZfydSiyIpiB8pgdA==", 3718 - "license": "MIT", 3719 - "dependencies": { 3720 - "core-js": "^3.26.1", 3721 - "custom-event-polyfill": "^1.0.7", 3722 - "loadjs": "^4.2.0", 3723 - "rangetouch": "^2.0.1", 3724 - "url-polyfill": "^1.1.12" 3725 - } 3726 - }, 3727 - "node_modules/postcss": { 3728 - "version": "8.5.3", 3729 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 3730 - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 3731 - "dev": true, 3732 - "funding": [ 3733 - { 3734 - "type": "opencollective", 3735 - "url": "https://opencollective.com/postcss/" 3736 - }, 3737 - { 3738 - "type": "tidelift", 3739 - "url": "https://tidelift.com/funding/github/npm/postcss" 3740 - }, 3741 - { 3742 - "type": "github", 3743 - "url": "https://github.com/sponsors/ai" 3744 - } 3745 - ], 3746 - "dependencies": { 3747 - "nanoid": "^3.3.8", 3748 - "picocolors": "^1.1.1", 3749 - "source-map-js": "^1.2.1" 3750 - }, 3751 - "engines": { 3752 - "node": "^10 || ^12 || >=14" 3753 - } 3754 - }, 3755 - "node_modules/postcss-load-config": { 3756 - "version": "3.1.4", 3757 - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 3758 - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 3759 - "dev": true, 3760 - "dependencies": { 3761 - "lilconfig": "^2.0.5", 3762 - "yaml": "^1.10.2" 3763 - }, 3764 - "engines": { 3765 - "node": ">= 10" 3766 - }, 3767 - "funding": { 3768 - "type": "opencollective", 3769 - "url": "https://opencollective.com/postcss/" 3770 - }, 3771 - "peerDependencies": { 3772 - "postcss": ">=8.0.9", 3773 - "ts-node": ">=9.0.0" 3774 - }, 3775 - "peerDependenciesMeta": { 3776 - "postcss": { 3777 - "optional": true 3778 - }, 3779 - "ts-node": { 3780 - "optional": true 3781 - } 3782 - } 3783 - }, 3784 - "node_modules/postcss-load-config/node_modules/yaml": { 3785 - "version": "1.10.2", 3786 - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3787 - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 3788 - "dev": true, 3789 - "engines": { 3790 - "node": ">= 6" 3791 - } 3792 - }, 3793 - "node_modules/postcss-safe-parser": { 3794 - "version": "6.0.0", 3795 - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", 3796 - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", 3797 - "dev": true, 3798 - "engines": { 3799 - "node": ">=12.0" 3800 - }, 3801 - "funding": { 3802 - "type": "opencollective", 3803 - "url": "https://opencollective.com/postcss/" 3804 - }, 3805 - "peerDependencies": { 3806 - "postcss": "^8.3.3" 3807 - } 3808 - }, 3809 - "node_modules/postcss-scss": { 3810 - "version": "4.0.9", 3811 - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", 3812 - "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", 3813 - "dev": true, 3814 - "funding": [ 3815 - { 3816 - "type": "opencollective", 3817 - "url": "https://opencollective.com/postcss/" 3818 - }, 3819 - { 3820 - "type": "tidelift", 3821 - "url": "https://tidelift.com/funding/github/npm/postcss-scss" 3822 - }, 3823 - { 3824 - "type": "github", 3825 - "url": "https://github.com/sponsors/ai" 3826 - } 3827 - ], 3828 - "engines": { 3829 - "node": ">=12.0" 3830 - }, 3831 - "peerDependencies": { 3832 - "postcss": "^8.4.29" 3833 - } 3834 - }, 3835 - "node_modules/postcss-selector-parser": { 3836 - "version": "6.1.2", 3837 - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", 3838 - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", 3839 - "dev": true, 3840 - "dependencies": { 3841 - "cssesc": "^3.0.0", 3842 - "util-deprecate": "^1.0.2" 3843 - }, 3844 - "engines": { 3845 - "node": ">=4" 3846 - } 3847 - }, 3848 - "node_modules/prelude-ls": { 3849 - "version": "1.2.1", 3850 - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3851 - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3852 - "dev": true, 3853 - "engines": { 3854 - "node": ">= 0.8.0" 3855 - } 3856 - }, 3857 - "node_modules/prettier": { 3858 - "version": "3.5.2", 3859 - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", 3860 - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", 3861 - "dev": true, 3862 - "bin": { 3863 - "prettier": "bin/prettier.cjs" 3864 - }, 3865 - "engines": { 3866 - "node": ">=14" 3867 - }, 3868 - "funding": { 3869 - "url": "https://github.com/prettier/prettier?sponsor=1" 3870 - } 3871 - }, 3872 - "node_modules/prettier-plugin-svelte": { 3873 - "version": "3.3.3", 3874 - "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.3.tgz", 3875 - "integrity": "sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==", 3876 - "dev": true, 3877 - "peerDependencies": { 3878 - "prettier": "^3.0.0", 3879 - "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 3880 - } 3881 - }, 3882 - "node_modules/prettier-plugin-tailwindcss": { 3883 - "version": "0.6.11", 3884 - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", 3885 - "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", 3886 - "dev": true, 3887 - "engines": { 3888 - "node": ">=14.21.3" 3889 - }, 3890 - "peerDependencies": { 3891 - "@ianvs/prettier-plugin-sort-imports": "*", 3892 - "@prettier/plugin-pug": "*", 3893 - "@shopify/prettier-plugin-liquid": "*", 3894 - "@trivago/prettier-plugin-sort-imports": "*", 3895 - "@zackad/prettier-plugin-twig": "*", 3896 - "prettier": "^3.0", 3897 - "prettier-plugin-astro": "*", 3898 - "prettier-plugin-css-order": "*", 3899 - "prettier-plugin-import-sort": "*", 3900 - "prettier-plugin-jsdoc": "*", 3901 - "prettier-plugin-marko": "*", 3902 - "prettier-plugin-multiline-arrays": "*", 3903 - "prettier-plugin-organize-attributes": "*", 3904 - "prettier-plugin-organize-imports": "*", 3905 - "prettier-plugin-sort-imports": "*", 3906 - "prettier-plugin-style-order": "*", 3907 - "prettier-plugin-svelte": "*" 3908 - }, 3909 - "peerDependenciesMeta": { 3910 - "@ianvs/prettier-plugin-sort-imports": { 3911 - "optional": true 3912 - }, 3913 - "@prettier/plugin-pug": { 3914 - "optional": true 3915 - }, 3916 - "@shopify/prettier-plugin-liquid": { 3917 - "optional": true 3918 - }, 3919 - "@trivago/prettier-plugin-sort-imports": { 3920 - "optional": true 3921 - }, 3922 - "@zackad/prettier-plugin-twig": { 3923 - "optional": true 3924 - }, 3925 - "prettier-plugin-astro": { 3926 - "optional": true 3927 - }, 3928 - "prettier-plugin-css-order": { 3929 - "optional": true 3930 - }, 3931 - "prettier-plugin-import-sort": { 3932 - "optional": true 3933 - }, 3934 - "prettier-plugin-jsdoc": { 3935 - "optional": true 3936 - }, 3937 - "prettier-plugin-marko": { 3938 - "optional": true 3939 - }, 3940 - "prettier-plugin-multiline-arrays": { 3941 - "optional": true 3942 - }, 3943 - "prettier-plugin-organize-attributes": { 3944 - "optional": true 3945 - }, 3946 - "prettier-plugin-organize-imports": { 3947 - "optional": true 3948 - }, 3949 - "prettier-plugin-sort-imports": { 3950 - "optional": true 3951 - }, 3952 - "prettier-plugin-style-order": { 3953 - "optional": true 3954 - }, 3955 - "prettier-plugin-svelte": { 3956 - "optional": true 3957 - } 3958 - } 3959 - }, 3960 - "node_modules/prosemirror-changeset": { 3961 - "version": "2.3.0", 3962 - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.0.tgz", 3963 - "integrity": "sha512-8wRKhlEwEJ4I13Ju54q2NZR1pVKGTgJ/8XsQ8L5A5uUsQ/YQScQJuEAuh8Bn8i6IwAMjjLRABd9lVli+DlIiVw==", 3964 - "license": "MIT", 3965 - "dependencies": { 3966 - "prosemirror-transform": "^1.0.0" 3967 - } 3968 - }, 3969 - "node_modules/prosemirror-collab": { 3970 - "version": "1.3.1", 3971 - "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", 3972 - "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", 3973 - "license": "MIT", 3974 - "dependencies": { 3975 - "prosemirror-state": "^1.0.0" 3976 - } 3977 - }, 3978 - "node_modules/prosemirror-commands": { 3979 - "version": "1.7.1", 3980 - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", 3981 - "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", 3982 - "license": "MIT", 3983 - "dependencies": { 3984 - "prosemirror-model": "^1.0.0", 3985 - "prosemirror-state": "^1.0.0", 3986 - "prosemirror-transform": "^1.10.2" 3987 - } 3988 - }, 3989 - "node_modules/prosemirror-dropcursor": { 3990 - "version": "1.8.2", 3991 - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", 3992 - "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", 3993 - "license": "MIT", 3994 - "dependencies": { 3995 - "prosemirror-state": "^1.0.0", 3996 - "prosemirror-transform": "^1.1.0", 3997 - "prosemirror-view": "^1.1.0" 3998 - } 3999 - }, 4000 - "node_modules/prosemirror-gapcursor": { 4001 - "version": "1.3.2", 4002 - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", 4003 - "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", 4004 - "license": "MIT", 4005 - "dependencies": { 4006 - "prosemirror-keymap": "^1.0.0", 4007 - "prosemirror-model": "^1.0.0", 4008 - "prosemirror-state": "^1.0.0", 4009 - "prosemirror-view": "^1.0.0" 4010 - } 4011 - }, 4012 - "node_modules/prosemirror-history": { 4013 - "version": "1.4.1", 4014 - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", 4015 - "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", 4016 - "license": "MIT", 4017 - "dependencies": { 4018 - "prosemirror-state": "^1.2.2", 4019 - "prosemirror-transform": "^1.0.0", 4020 - "prosemirror-view": "^1.31.0", 4021 - "rope-sequence": "^1.3.0" 4022 - } 4023 - }, 4024 - "node_modules/prosemirror-inputrules": { 4025 - "version": "1.5.0", 4026 - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.0.tgz", 4027 - "integrity": "sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==", 4028 - "license": "MIT", 4029 - "dependencies": { 4030 - "prosemirror-state": "^1.0.0", 4031 - "prosemirror-transform": "^1.0.0" 4032 - } 4033 - }, 4034 - "node_modules/prosemirror-keymap": { 4035 - "version": "1.2.3", 4036 - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", 4037 - "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", 4038 - "license": "MIT", 4039 - "dependencies": { 4040 - "prosemirror-state": "^1.0.0", 4041 - "w3c-keyname": "^2.2.0" 4042 - } 4043 - }, 4044 - "node_modules/prosemirror-markdown": { 4045 - "version": "1.13.2", 4046 - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", 4047 - "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", 4048 - "license": "MIT", 4049 - "dependencies": { 4050 - "@types/markdown-it": "^14.0.0", 4051 - "markdown-it": "^14.0.0", 4052 - "prosemirror-model": "^1.25.0" 4053 - } 4054 - }, 4055 - "node_modules/prosemirror-menu": { 4056 - "version": "1.2.5", 4057 - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", 4058 - "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", 4059 - "license": "MIT", 4060 - "dependencies": { 4061 - "crelt": "^1.0.0", 4062 - "prosemirror-commands": "^1.0.0", 4063 - "prosemirror-history": "^1.0.0", 4064 - "prosemirror-state": "^1.0.0" 4065 - } 4066 - }, 4067 - "node_modules/prosemirror-model": { 4068 - "version": "1.25.1", 4069 - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.1.tgz", 4070 - "integrity": "sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==", 4071 - "license": "MIT", 4072 - "dependencies": { 4073 - "orderedmap": "^2.0.0" 4074 - } 4075 - }, 4076 - "node_modules/prosemirror-schema-basic": { 4077 - "version": "1.2.4", 4078 - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", 4079 - "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", 4080 - "license": "MIT", 4081 - "dependencies": { 4082 - "prosemirror-model": "^1.25.0" 4083 - } 4084 - }, 4085 - "node_modules/prosemirror-schema-list": { 4086 - "version": "1.5.1", 4087 - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", 4088 - "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", 4089 - "license": "MIT", 4090 - "dependencies": { 4091 - "prosemirror-model": "^1.0.0", 4092 - "prosemirror-state": "^1.0.0", 4093 - "prosemirror-transform": "^1.7.3" 4094 - } 4095 - }, 4096 - "node_modules/prosemirror-state": { 4097 - "version": "1.4.3", 4098 - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", 4099 - "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", 4100 - "license": "MIT", 4101 - "dependencies": { 4102 - "prosemirror-model": "^1.0.0", 4103 - "prosemirror-transform": "^1.0.0", 4104 - "prosemirror-view": "^1.27.0" 4105 - } 4106 - }, 4107 - "node_modules/prosemirror-tables": { 4108 - "version": "1.7.1", 4109 - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz", 4110 - "integrity": "sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==", 4111 - "license": "MIT", 4112 - "dependencies": { 4113 - "prosemirror-keymap": "^1.2.2", 4114 - "prosemirror-model": "^1.25.0", 4115 - "prosemirror-state": "^1.4.3", 4116 - "prosemirror-transform": "^1.10.3", 4117 - "prosemirror-view": "^1.39.1" 4118 - } 4119 - }, 4120 - "node_modules/prosemirror-trailing-node": { 4121 - "version": "3.0.0", 4122 - "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", 4123 - "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", 4124 - "license": "MIT", 4125 - "dependencies": { 4126 - "@remirror/core-constants": "3.0.0", 4127 - "escape-string-regexp": "^4.0.0" 4128 - }, 4129 - "peerDependencies": { 4130 - "prosemirror-model": "^1.22.1", 4131 - "prosemirror-state": "^1.4.2", 4132 - "prosemirror-view": "^1.33.8" 4133 - } 4134 - }, 4135 - "node_modules/prosemirror-transform": { 4136 - "version": "1.10.4", 4137 - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz", 4138 - "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==", 4139 - "license": "MIT", 4140 - "dependencies": { 4141 - "prosemirror-model": "^1.21.0" 4142 - } 4143 - }, 4144 - "node_modules/prosemirror-view": { 4145 - "version": "1.39.2", 4146 - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.39.2.tgz", 4147 - "integrity": "sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==", 4148 - "license": "MIT", 4149 - "dependencies": { 4150 - "prosemirror-model": "^1.20.0", 4151 - "prosemirror-state": "^1.0.0", 4152 - "prosemirror-transform": "^1.1.0" 4153 - } 4154 - }, 4155 - "node_modules/punycode": { 4156 - "version": "2.3.1", 4157 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 4158 - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 4159 - "dev": true, 4160 - "engines": { 4161 - "node": ">=6" 4162 - } 4163 - }, 4164 - "node_modules/punycode.js": { 4165 - "version": "2.3.1", 4166 - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", 4167 - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", 4168 - "license": "MIT", 4169 - "engines": { 4170 - "node": ">=6" 4171 - } 4172 - }, 4173 - "node_modules/queue-microtask": { 4174 - "version": "1.2.3", 4175 - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 4176 - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 4177 - "dev": true, 4178 - "funding": [ 4179 - { 4180 - "type": "github", 4181 - "url": "https://github.com/sponsors/feross" 4182 - }, 4183 - { 4184 - "type": "patreon", 4185 - "url": "https://www.patreon.com/feross" 4186 - }, 4187 - { 4188 - "type": "consulting", 4189 - "url": "https://feross.org/support" 4190 - } 4191 - ] 4192 - }, 4193 - "node_modules/rangetouch": { 4194 - "version": "2.0.1", 4195 - "resolved": "https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz", 4196 - "integrity": "sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==", 4197 - "license": "MIT" 4198 - }, 4199 - "node_modules/readdirp": { 4200 - "version": "4.1.2", 4201 - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 4202 - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 4203 - "dev": true, 4204 - "engines": { 4205 - "node": ">= 14.18.0" 4206 - }, 4207 - "funding": { 4208 - "type": "individual", 4209 - "url": "https://paulmillr.com/funding/" 4210 - } 4211 - }, 4212 - "node_modules/resolve-from": { 4213 - "version": "4.0.0", 4214 - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 4215 - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 4216 - "dev": true, 4217 - "engines": { 4218 - "node": ">=4" 4219 - } 4220 - }, 4221 - "node_modules/reusify": { 4222 - "version": "1.0.4", 4223 - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 4224 - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 4225 - "dev": true, 4226 - "engines": { 4227 - "iojs": ">=1.0.0", 4228 - "node": ">=0.10.0" 4229 - } 4230 - }, 4231 - "node_modules/rollup": { 4232 - "version": "4.34.8", 4233 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", 4234 - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", 4235 - "dev": true, 4236 - "dependencies": { 4237 - "@types/estree": "1.0.6" 4238 - }, 4239 - "bin": { 4240 - "rollup": "dist/bin/rollup" 4241 - }, 4242 - "engines": { 4243 - "node": ">=18.0.0", 4244 - "npm": ">=8.0.0" 4245 - }, 4246 - "optionalDependencies": { 4247 - "@rollup/rollup-android-arm-eabi": "4.34.8", 4248 - "@rollup/rollup-android-arm64": "4.34.8", 4249 - "@rollup/rollup-darwin-arm64": "4.34.8", 4250 - "@rollup/rollup-darwin-x64": "4.34.8", 4251 - "@rollup/rollup-freebsd-arm64": "4.34.8", 4252 - "@rollup/rollup-freebsd-x64": "4.34.8", 4253 - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", 4254 - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", 4255 - "@rollup/rollup-linux-arm64-gnu": "4.34.8", 4256 - "@rollup/rollup-linux-arm64-musl": "4.34.8", 4257 - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", 4258 - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", 4259 - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", 4260 - "@rollup/rollup-linux-s390x-gnu": "4.34.8", 4261 - "@rollup/rollup-linux-x64-gnu": "4.34.8", 4262 - "@rollup/rollup-linux-x64-musl": "4.34.8", 4263 - "@rollup/rollup-win32-arm64-msvc": "4.34.8", 4264 - "@rollup/rollup-win32-ia32-msvc": "4.34.8", 4265 - "@rollup/rollup-win32-x64-msvc": "4.34.8", 4266 - "fsevents": "~2.3.2" 4267 - } 4268 - }, 4269 - "node_modules/rope-sequence": { 4270 - "version": "1.3.4", 4271 - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", 4272 - "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", 4273 - "license": "MIT" 4274 - }, 4275 - "node_modules/run-parallel": { 4276 - "version": "1.2.0", 4277 - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 4278 - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 4279 - "dev": true, 4280 - "funding": [ 4281 - { 4282 - "type": "github", 4283 - "url": "https://github.com/sponsors/feross" 4284 - }, 4285 - { 4286 - "type": "patreon", 4287 - "url": "https://www.patreon.com/feross" 4288 - }, 4289 - { 4290 - "type": "consulting", 4291 - "url": "https://feross.org/support" 4292 - } 4293 - ], 4294 - "dependencies": { 4295 - "queue-microtask": "^1.2.2" 4296 - } 4297 - }, 4298 - "node_modules/runed": { 4299 - "version": "0.23.4", 4300 - "resolved": "https://registry.npmjs.org/runed/-/runed-0.23.4.tgz", 4301 - "integrity": "sha512-9q8oUiBYeXIDLWNK5DfCWlkL0EW3oGbk845VdKlPeia28l751VpfesaB/+7pI6rnbx1I6rqoZ2fZxptOJLxILA==", 4302 - "funding": [ 4303 - "https://github.com/sponsors/huntabyte", 4304 - "https://github.com/sponsors/tglide" 4305 - ], 4306 - "dependencies": { 4307 - "esm-env": "^1.0.0" 4308 - }, 4309 - "peerDependencies": { 4310 - "svelte": "^5.7.0" 4311 - } 4312 - }, 4313 - "node_modules/sade": { 4314 - "version": "1.8.1", 4315 - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 4316 - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 4317 - "dev": true, 4318 - "dependencies": { 4319 - "mri": "^1.1.0" 4320 - }, 4321 - "engines": { 4322 - "node": ">=6" 4323 - } 4324 - }, 4325 - "node_modules/semver": { 4326 - "version": "7.7.1", 4327 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 4328 - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 4329 - "dev": true, 4330 - "bin": { 4331 - "semver": "bin/semver.js" 4332 - }, 4333 - "engines": { 4334 - "node": ">=10" 4335 - } 4336 - }, 4337 - "node_modules/set-cookie-parser": { 4338 - "version": "2.7.1", 4339 - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", 4340 - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", 4341 - "dev": true 4342 - }, 4343 - "node_modules/shebang-command": { 4344 - "version": "2.0.0", 4345 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4346 - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4347 - "dev": true, 4348 - "dependencies": { 4349 - "shebang-regex": "^3.0.0" 4350 - }, 4351 - "engines": { 4352 - "node": ">=8" 4353 - } 4354 - }, 4355 - "node_modules/shebang-regex": { 4356 - "version": "3.0.0", 4357 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4358 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4359 - "dev": true, 4360 - "engines": { 4361 - "node": ">=8" 4362 - } 4363 - }, 4364 - "node_modules/sirv": { 4365 - "version": "3.0.1", 4366 - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", 4367 - "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", 4368 - "dev": true, 4369 - "dependencies": { 4370 - "@polka/url": "^1.0.0-next.24", 4371 - "mrmime": "^2.0.0", 4372 - "totalist": "^3.0.0" 4373 - }, 4374 - "engines": { 4375 - "node": ">=18" 4376 - } 4377 - }, 4378 - "node_modules/source-map-js": { 4379 - "version": "1.2.1", 4380 - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 4381 - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 4382 - "dev": true, 4383 - "engines": { 4384 - "node": ">=0.10.0" 4385 - } 4386 - }, 4387 - "node_modules/strip-json-comments": { 4388 - "version": "3.1.1", 4389 - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4390 - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4391 - "dev": true, 4392 - "engines": { 4393 - "node": ">=8" 4394 - }, 4395 - "funding": { 4396 - "url": "https://github.com/sponsors/sindresorhus" 4397 - } 4398 - }, 4399 - "node_modules/style-to-object": { 4400 - "version": "1.0.8", 4401 - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", 4402 - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", 4403 - "license": "MIT", 4404 - "dependencies": { 4405 - "inline-style-parser": "0.2.4" 4406 - } 4407 - }, 4408 - "node_modules/supports-color": { 4409 - "version": "7.2.0", 4410 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4411 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4412 - "dev": true, 4413 - "dependencies": { 4414 - "has-flag": "^4.0.0" 4415 - }, 4416 - "engines": { 4417 - "node": ">=8" 4418 - } 4419 - }, 4420 - "node_modules/svelte": { 4421 - "version": "5.20.3", 4422 - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.20.3.tgz", 4423 - "integrity": "sha512-8eE+/KXZP5tAYEefOG4eIvElARIrnh+IXJq2e+OM7hmhuZDk9yf7esrVD1YBxUtk5eqYBDYtvu628h71iFrXiA==", 4424 - "dependencies": { 4425 - "@ampproject/remapping": "^2.3.0", 4426 - "@jridgewell/sourcemap-codec": "^1.5.0", 4427 - "@types/estree": "^1.0.5", 4428 - "acorn": "^8.12.1", 4429 - "acorn-typescript": "^1.4.13", 4430 - "aria-query": "^5.3.1", 4431 - "axobject-query": "^4.1.0", 4432 - "clsx": "^2.1.1", 4433 - "esm-env": "^1.2.1", 4434 - "esrap": "^1.4.3", 4435 - "is-reference": "^3.0.3", 4436 - "locate-character": "^3.0.0", 4437 - "magic-string": "^0.30.11", 4438 - "zimmerframe": "^1.1.2" 4439 - }, 4440 - "engines": { 4441 - "node": ">=18" 4442 - } 4443 - }, 4444 - "node_modules/svelte-check": { 4445 - "version": "4.1.4", 4446 - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.4.tgz", 4447 - "integrity": "sha512-v0j7yLbT29MezzaQJPEDwksybTE2Ups9rUxEXy92T06TiA0cbqcO8wAOwNUVkFW6B0hsYHA+oAX3BS8b/2oHtw==", 4448 - "dev": true, 4449 - "dependencies": { 4450 - "@jridgewell/trace-mapping": "^0.3.25", 4451 - "chokidar": "^4.0.1", 4452 - "fdir": "^6.2.0", 4453 - "picocolors": "^1.0.0", 4454 - "sade": "^1.7.4" 4455 - }, 4456 - "bin": { 4457 - "svelte-check": "bin/svelte-check" 4458 - }, 4459 - "engines": { 4460 - "node": ">= 18.0.0" 4461 - }, 4462 - "peerDependencies": { 4463 - "svelte": "^4.0.0 || ^5.0.0-next.0", 4464 - "typescript": ">=5.0.0" 4465 - } 4466 - }, 4467 - "node_modules/svelte-eslint-parser": { 4468 - "version": "0.43.0", 4469 - "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz", 4470 - "integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==", 4471 - "dev": true, 4472 - "dependencies": { 4473 - "eslint-scope": "^7.2.2", 4474 - "eslint-visitor-keys": "^3.4.3", 4475 - "espree": "^9.6.1", 4476 - "postcss": "^8.4.39", 4477 - "postcss-scss": "^4.0.9" 4478 - }, 4479 - "engines": { 4480 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4481 - }, 4482 - "funding": { 4483 - "url": "https://github.com/sponsors/ota-meshi" 4484 - }, 4485 - "peerDependencies": { 4486 - "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 4487 - }, 4488 - "peerDependenciesMeta": { 4489 - "svelte": { 4490 - "optional": true 4491 - } 4492 - } 4493 - }, 4494 - "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { 4495 - "version": "7.2.2", 4496 - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", 4497 - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", 4498 - "dev": true, 4499 - "dependencies": { 4500 - "esrecurse": "^4.3.0", 4501 - "estraverse": "^5.2.0" 4502 - }, 4503 - "engines": { 4504 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4505 - }, 4506 - "funding": { 4507 - "url": "https://opencollective.com/eslint" 4508 - } 4509 - }, 4510 - "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { 4511 - "version": "3.4.3", 4512 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 4513 - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 4514 - "dev": true, 4515 - "engines": { 4516 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4517 - }, 4518 - "funding": { 4519 - "url": "https://opencollective.com/eslint" 4520 - } 4521 - }, 4522 - "node_modules/svelte-eslint-parser/node_modules/espree": { 4523 - "version": "9.6.1", 4524 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", 4525 - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", 4526 - "dev": true, 4527 - "dependencies": { 4528 - "acorn": "^8.9.0", 4529 - "acorn-jsx": "^5.3.2", 4530 - "eslint-visitor-keys": "^3.4.1" 4531 - }, 4532 - "engines": { 4533 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4534 - }, 4535 - "funding": { 4536 - "url": "https://opencollective.com/eslint" 4537 - } 4538 - }, 4539 - "node_modules/svelte-sonner": { 4540 - "version": "0.3.28", 4541 - "resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-0.3.28.tgz", 4542 - "integrity": "sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==", 4543 - "license": "MIT", 4544 - "peerDependencies": { 4545 - "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" 4546 - } 4547 - }, 4548 - "node_modules/svelte-toolbelt": { 4549 - "version": "0.7.1", 4550 - "resolved": "https://registry.npmjs.org/svelte-toolbelt/-/svelte-toolbelt-0.7.1.tgz", 4551 - "integrity": "sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==", 4552 - "funding": [ 4553 - "https://github.com/sponsors/huntabyte" 4554 - ], 4555 - "dependencies": { 4556 - "clsx": "^2.1.1", 4557 - "runed": "^0.23.2", 4558 - "style-to-object": "^1.0.8" 4559 - }, 4560 - "engines": { 4561 - "node": ">=18", 4562 - "pnpm": ">=8.7.0" 4563 - }, 4564 - "peerDependencies": { 4565 - "svelte": "^5.0.0" 4566 - } 4567 - }, 4568 - "node_modules/tabbable": { 4569 - "version": "6.2.0", 4570 - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", 4571 - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", 4572 - "license": "MIT" 4573 - }, 4574 - "node_modules/tailwind-merge": { 4575 - "version": "3.2.0", 4576 - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz", 4577 - "integrity": "sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==", 4578 - "license": "MIT", 4579 - "funding": { 4580 - "type": "github", 4581 - "url": "https://github.com/sponsors/dcastil" 4582 - } 4583 - }, 4584 - "node_modules/tailwind-variants": { 4585 - "version": "1.0.0", 4586 - "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-1.0.0.tgz", 4587 - "integrity": "sha512-2WSbv4ulEEyuBKomOunut65D8UZwxrHoRfYnxGcQNnHqlSCp2+B7Yz2W+yrNDrxRodOXtGD/1oCcKGNBnUqMqA==", 4588 - "license": "MIT", 4589 - "dependencies": { 4590 - "tailwind-merge": "3.0.2" 4591 - }, 4592 - "engines": { 4593 - "node": ">=16.x", 4594 - "pnpm": ">=7.x" 4595 - }, 4596 - "peerDependencies": { 4597 - "tailwindcss": "*" 4598 - } 4599 - }, 4600 - "node_modules/tailwind-variants/node_modules/tailwind-merge": { 4601 - "version": "3.0.2", 4602 - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.2.tgz", 4603 - "integrity": "sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==", 4604 - "license": "MIT", 4605 - "funding": { 4606 - "type": "github", 4607 - "url": "https://github.com/sponsors/dcastil" 4608 - } 4609 - }, 4610 - "node_modules/tailwindcss": { 4611 - "version": "4.0.8", 4612 - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.8.tgz", 4613 - "integrity": "sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==" 4614 - }, 4615 - "node_modules/tapable": { 4616 - "version": "2.2.1", 4617 - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", 4618 - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", 4619 - "dev": true, 4620 - "engines": { 4621 - "node": ">=6" 4622 - } 4623 - }, 4624 - "node_modules/tlds": { 4625 - "version": "1.258.0", 4626 - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.258.0.tgz", 4627 - "integrity": "sha512-XGhStWuOlBA5D8QnyN2xtgB2cUOdJ3ztisne1DYVWMcVH29qh8eQIpRmP3HnuJLdgyzG0HpdGzRMu1lm/Oictw==", 4628 - "license": "MIT", 4629 - "bin": { 4630 - "tlds": "bin.js" 4631 - } 4632 - }, 4633 - "node_modules/to-regex-range": { 4634 - "version": "5.0.1", 4635 - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4636 - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4637 - "dev": true, 4638 - "dependencies": { 4639 - "is-number": "^7.0.0" 4640 - }, 4641 - "engines": { 4642 - "node": ">=8.0" 4643 - } 4644 - }, 4645 - "node_modules/totalist": { 4646 - "version": "3.0.1", 4647 - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 4648 - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 4649 - "dev": true, 4650 - "engines": { 4651 - "node": ">=6" 4652 - } 4653 - }, 4654 - "node_modules/ts-api-utils": { 4655 - "version": "2.0.1", 4656 - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", 4657 - "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", 4658 - "dev": true, 4659 - "engines": { 4660 - "node": ">=18.12" 4661 - }, 4662 - "peerDependencies": { 4663 - "typescript": ">=4.8.4" 4664 - } 4665 - }, 4666 - "node_modules/tslib": { 4667 - "version": "2.8.1", 4668 - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 4669 - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 4670 - "license": "0BSD" 4671 - }, 4672 - "node_modules/turndown": { 4673 - "version": "7.2.0", 4674 - "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz", 4675 - "integrity": "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==", 4676 - "license": "MIT", 4677 - "dependencies": { 4678 - "@mixmark-io/domino": "^2.2.0" 4679 - } 4680 - }, 4681 - "node_modules/type-check": { 4682 - "version": "0.4.0", 4683 - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4684 - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4685 - "dev": true, 4686 - "dependencies": { 4687 - "prelude-ls": "^1.2.1" 4688 - }, 4689 - "engines": { 4690 - "node": ">= 0.8.0" 4691 - } 4692 - }, 4693 - "node_modules/typescript": { 4694 - "version": "5.7.3", 4695 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", 4696 - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", 4697 - "dev": true, 4698 - "bin": { 4699 - "tsc": "bin/tsc", 4700 - "tsserver": "bin/tsserver" 4701 - }, 4702 - "engines": { 4703 - "node": ">=14.17" 4704 - } 4705 - }, 4706 - "node_modules/typescript-eslint": { 4707 - "version": "8.24.1", 4708 - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.24.1.tgz", 4709 - "integrity": "sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==", 4710 - "dev": true, 4711 - "dependencies": { 4712 - "@typescript-eslint/eslint-plugin": "8.24.1", 4713 - "@typescript-eslint/parser": "8.24.1", 4714 - "@typescript-eslint/utils": "8.24.1" 4715 - }, 4716 - "engines": { 4717 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4718 - }, 4719 - "funding": { 4720 - "type": "opencollective", 4721 - "url": "https://opencollective.com/typescript-eslint" 4722 - }, 4723 - "peerDependencies": { 4724 - "eslint": "^8.57.0 || ^9.0.0", 4725 - "typescript": ">=4.8.4 <5.8.0" 4726 - } 4727 - }, 4728 - "node_modules/uc.micro": { 4729 - "version": "2.1.0", 4730 - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", 4731 - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", 4732 - "license": "MIT" 4733 - }, 4734 - "node_modules/uint8arrays": { 4735 - "version": "3.0.0", 4736 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", 4737 - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", 4738 - "license": "MIT", 4739 - "dependencies": { 4740 - "multiformats": "^9.4.2" 4741 - } 4742 - }, 4743 - "node_modules/uri-js": { 4744 - "version": "4.4.1", 4745 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4746 - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4747 - "dev": true, 4748 - "dependencies": { 4749 - "punycode": "^2.1.0" 4750 - } 4751 - }, 4752 - "node_modules/url-polyfill": { 4753 - "version": "1.1.13", 4754 - "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.13.tgz", 4755 - "integrity": "sha512-tXzkojrv2SujumYthZ/WjF7jaSfNhSXlYMpE5AYdL2I3D7DCeo+mch8KtW2rUuKjDg+3VXODXHVgipt8yGY/eQ==", 4756 - "license": "MIT" 4757 - }, 4758 - "node_modules/util-deprecate": { 4759 - "version": "1.0.2", 4760 - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4761 - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 4762 - }, 4763 - "node_modules/vite": { 4764 - "version": "6.1.1", 4765 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", 4766 - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", 4767 - "dev": true, 4768 - "dependencies": { 4769 - "esbuild": "^0.24.2", 4770 - "postcss": "^8.5.2", 4771 - "rollup": "^4.30.1" 4772 - }, 4773 - "bin": { 4774 - "vite": "bin/vite.js" 4775 - }, 4776 - "engines": { 4777 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 4778 - }, 4779 - "funding": { 4780 - "url": "https://github.com/vitejs/vite?sponsor=1" 4781 - }, 4782 - "optionalDependencies": { 4783 - "fsevents": "~2.3.3" 4784 - }, 4785 - "peerDependencies": { 4786 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 4787 - "jiti": ">=1.21.0", 4788 - "less": "*", 4789 - "lightningcss": "^1.21.0", 4790 - "sass": "*", 4791 - "sass-embedded": "*", 4792 - "stylus": "*", 4793 - "sugarss": "*", 4794 - "terser": "^5.16.0", 4795 - "tsx": "^4.8.1", 4796 - "yaml": "^2.4.2" 4797 - }, 4798 - "peerDependenciesMeta": { 4799 - "@types/node": { 4800 - "optional": true 4801 - }, 4802 - "jiti": { 4803 - "optional": true 4804 - }, 4805 - "less": { 4806 - "optional": true 4807 - }, 4808 - "lightningcss": { 4809 - "optional": true 4810 - }, 4811 - "sass": { 4812 - "optional": true 4813 - }, 4814 - "sass-embedded": { 4815 - "optional": true 4816 - }, 4817 - "stylus": { 4818 - "optional": true 4819 - }, 4820 - "sugarss": { 4821 - "optional": true 4822 - }, 4823 - "terser": { 4824 - "optional": true 4825 - }, 4826 - "tsx": { 4827 - "optional": true 4828 - }, 4829 - "yaml": { 4830 - "optional": true 4831 - } 4832 - } 4833 - }, 4834 - "node_modules/vitefu": { 4835 - "version": "1.0.6", 4836 - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz", 4837 - "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", 4838 - "dev": true, 4839 - "peerDependencies": { 4840 - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" 4841 - }, 4842 - "peerDependenciesMeta": { 4843 - "vite": { 4844 - "optional": true 4845 - } 4846 - } 4847 - }, 4848 - "node_modules/w3c-keyname": { 4849 - "version": "2.2.8", 4850 - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", 4851 - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", 4852 - "license": "MIT" 4853 - }, 4854 - "node_modules/which": { 4855 - "version": "2.0.2", 4856 - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4857 - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4858 - "dev": true, 4859 - "dependencies": { 4860 - "isexe": "^2.0.0" 4861 - }, 4862 - "bin": { 4863 - "node-which": "bin/node-which" 4864 - }, 4865 - "engines": { 4866 - "node": ">= 8" 4867 - } 4868 - }, 4869 - "node_modules/word-wrap": { 4870 - "version": "1.2.5", 4871 - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 4872 - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 4873 - "dev": true, 4874 - "engines": { 4875 - "node": ">=0.10.0" 4876 - } 4877 - }, 4878 - "node_modules/yaml": { 4879 - "version": "2.7.0", 4880 - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", 4881 - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", 4882 - "dev": true, 4883 - "optional": true, 4884 - "peer": true, 4885 - "bin": { 4886 - "yaml": "bin.mjs" 4887 - }, 4888 - "engines": { 4889 - "node": ">= 14" 4890 - } 4891 - }, 4892 - "node_modules/yocto-queue": { 4893 - "version": "0.1.0", 4894 - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4895 - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 4896 - "dev": true, 4897 - "engines": { 4898 - "node": ">=10" 4899 - }, 4900 - "funding": { 4901 - "url": "https://github.com/sponsors/sindresorhus" 4902 - } 4903 - }, 4904 - "node_modules/zimmerframe": { 4905 - "version": "1.1.2", 4906 - "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", 4907 - "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==" 4908 - }, 4909 - "node_modules/zod": { 4910 - "version": "3.24.4", 4911 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", 4912 - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", 4913 - "license": "MIT", 4914 - "funding": { 4915 - "url": "https://github.com/sponsors/colinhacks" 4916 - } 4917 - } 4918 - } 4919 - }
+3 -2
package.json
··· 40 40 "dependencies": { 41 41 "@atcute/oauth-browser-client": "^1.0.13", 42 42 "@atproto/api": "^0.15.6", 43 - "@fuxui/base": "^0.0.7", 44 - "@fuxui/social": "^0.0.9", 43 + "@fuxui/base": "^0.0.9", 44 + "@fuxui/colors": "^0.1.9", 45 + "@fuxui/social": "^0.0.11", 45 46 "@tailwindcss/typography": "^0.5.16", 46 47 "@tiptap/core": "^2.12.0", 47 48 "@tiptap/extension-document": "^2.12.0",
+33 -10
pnpm-lock.yaml
··· 15 15 specifier: ^0.15.6 16 16 version: 0.15.6 17 17 '@fuxui/base': 18 - specifier: ^0.0.7 19 - version: 0.0.7(svelte@5.28.2)(tailwindcss@4.1.5) 20 - '@fuxui/social': 21 18 specifier: ^0.0.9 22 19 version: 0.0.9(svelte@5.28.2)(tailwindcss@4.1.5) 20 + '@fuxui/colors': 21 + specifier: ^0.1.9 22 + version: 0.1.9(svelte@5.28.2)(tailwindcss@4.1.5) 23 + '@fuxui/social': 24 + specifier: ^0.0.11 25 + version: 0.0.11(svelte@5.28.2)(tailwindcss@4.1.5) 23 26 '@tailwindcss/typography': 24 27 specifier: ^0.5.16 25 28 version: 0.5.16(tailwindcss@4.1.5) ··· 360 363 '@floating-ui/utils@0.2.9': 361 364 resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==, tarball: https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz} 362 365 363 - '@fuxui/base@0.0.7': 364 - resolution: {integrity: sha512-HEa5cxnHU2SuW6LlJkT157L0q5z+bRJIttEKZAppEU/krEC7COh8FGkJD5bR5oZultnVHNYaUEdorHYGy5++2g==, tarball: https://registry.npmjs.org/@fuxui/base/-/base-0.0.7.tgz} 366 + '@fuxui/base@0.0.9': 367 + resolution: {integrity: sha512-CtLOc/6WgiHGnUnBsdNr4vhRYk6gJ4wsdGxCqSfMsHR142vMu4datkzm3ACwlW4gma8PMU1Tp0F0mlOm0SDAuA==, tarball: https://registry.npmjs.org/@fuxui/base/-/base-0.0.9.tgz} 365 368 peerDependencies: 366 369 svelte: '>=5' 367 370 tailwindcss: '>=3' 368 371 369 - '@fuxui/social@0.0.9': 370 - resolution: {integrity: sha512-fWvXr0B+vUKX4sU+fymeLxpO2Z5/BR4ix+iCq/zdX3wpERJqr228+btU9SVnNllVjulspdnnrrrPJcIioNZBIw==, tarball: https://registry.npmjs.org/@fuxui/social/-/social-0.0.9.tgz} 372 + '@fuxui/colors@0.1.9': 373 + resolution: {integrity: sha512-T+2vMgUUvh3ElH5ck/UauwWr6GJENr3zKdld0T1Xh1clPyVSY9oThoR0814Wjj/jwsQpIYyeNXfdNykpY1ZBZw==, tarball: https://registry.npmjs.org/@fuxui/colors/-/colors-0.1.9.tgz} 374 + peerDependencies: 375 + svelte: '>=5' 376 + tailwindcss: '>=3' 377 + 378 + '@fuxui/social@0.0.11': 379 + resolution: {integrity: sha512-j+k5iFRK/zN9q1WPZuYi7pScYLu3ac/KXzAjj0OCOnOmfTyF6q/oSQB1umw53QEnFOthKIUc1CI+XLz/IZzLRw==, tarball: https://registry.npmjs.org/@fuxui/social/-/social-0.0.11.tgz} 371 380 peerDependencies: 372 381 svelte: '>=5' 373 382 tailwindcss: '>=3' ··· 684 693 resolution: {integrity: sha512-FE1stRoqdHSb7RxesMfCXE8icwI1W6zGE/512ae3ZDrpkQYTTYeSyUJPRCjZd8CwVAhpDUbi1YR8pcZioFJQ/w==, tarball: https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.5.tgz} 685 694 peerDependencies: 686 695 vite: ^5.2.0 || ^6 696 + 697 + '@texel/color@1.1.10': 698 + resolution: {integrity: sha512-0du+jhP68nvdXGoS/dxAyqkmWWzsogtU3chygmNf/u4QtDIbG1e5OfcVIWfx29B5ANCLEDOPEQIvOhrvwhlORg==, tarball: https://registry.npmjs.org/@texel/color/-/color-1.1.10.tgz} 687 699 688 700 '@tiptap/core@2.12.0': 689 701 resolution: {integrity: sha512-3qX8oGVKFFZzQ0vit+ZolR6AJIATBzmEmjAA0llFhWk4vf3v64p1YcXcJsOBsr5scizJu5L6RYWEFatFwqckRg==, tarball: https://registry.npmjs.org/@tiptap/core/-/core-2.12.0.tgz} ··· 2346 2358 2347 2359 '@floating-ui/utils@0.2.9': {} 2348 2360 2349 - '@fuxui/base@0.0.7(svelte@5.28.2)(tailwindcss@4.1.5)': 2361 + '@fuxui/base@0.0.9(svelte@5.28.2)(tailwindcss@4.1.5)': 2350 2362 dependencies: 2351 2363 '@number-flow/svelte': 0.3.7(svelte@5.28.2) 2352 2364 bits-ui: 1.4.6(svelte@5.28.2) ··· 2357 2369 tailwind-variants: 1.0.0(tailwindcss@4.1.5) 2358 2370 tailwindcss: 4.1.5 2359 2371 2360 - '@fuxui/social@0.0.9(svelte@5.28.2)(tailwindcss@4.1.5)': 2372 + '@fuxui/colors@0.1.9(svelte@5.28.2)(tailwindcss@4.1.5)': 2373 + dependencies: 2374 + '@fuxui/base': 0.0.9(svelte@5.28.2)(tailwindcss@4.1.5) 2375 + '@texel/color': 1.1.10 2376 + '@use-gesture/vanilla': 10.3.1 2377 + bits-ui: 1.4.6(svelte@5.28.2) 2378 + svelte: 5.28.2 2379 + tailwindcss: 4.1.5 2380 + 2381 + '@fuxui/social@0.0.11(svelte@5.28.2)(tailwindcss@4.1.5)': 2361 2382 dependencies: 2362 2383 '@atproto/api': 0.15.6 2363 - '@fuxui/base': 0.0.7(svelte@5.28.2)(tailwindcss@4.1.5) 2384 + '@fuxui/base': 0.0.9(svelte@5.28.2)(tailwindcss@4.1.5) 2364 2385 '@use-gesture/vanilla': 10.3.1 2365 2386 bits-ui: 1.4.6(svelte@5.28.2) 2366 2387 emoji-picker-element: 1.26.3 ··· 2636 2657 '@tailwindcss/oxide': 4.1.5 2637 2658 tailwindcss: 4.1.5 2638 2659 vite: 6.3.5(jiti@2.4.2)(lightningcss@1.29.2) 2660 + 2661 + '@texel/color@1.1.10': {} 2639 2662 2640 2663 '@tiptap/core@2.12.0(@tiptap/pm@2.12.0)': 2641 2664 dependencies:
+360 -24
src/app.css
··· 7 7 8 8 @source "../node_modules/@fuxui"; 9 9 10 - @theme { 11 - --color-base-50: var(--color-zinc-50); 12 - --color-base-100: var(--color-zinc-100); 13 - --color-base-200: var(--color-zinc-200); 14 - --color-base-300: var(--color-zinc-300); 15 - --color-base-400: var(--color-zinc-400); 16 - --color-base-500: var(--color-zinc-500); 17 - --color-base-600: var(--color-zinc-600); 18 - --color-base-700: var(--color-zinc-700); 19 - --color-base-800: var(--color-zinc-800); 20 - --color-base-900: var(--color-zinc-900); 21 - --color-base-950: var(--color-zinc-950); 22 10 23 - --color-accent-50: var(--color-emerald-50); 24 - --color-accent-100: var(--color-emerald-100); 25 - --color-accent-200: var(--color-emerald-200); 26 - --color-accent-300: var(--color-emerald-300); 27 - --color-accent-400: var(--color-emerald-400); 28 - --color-accent-500: var(--color-emerald-500); 29 - --color-accent-600: var(--color-emerald-600); 30 - --color-accent-700: var(--color-emerald-700); 31 - --color-accent-800: var(--color-emerald-800); 32 - --color-accent-900: var(--color-emerald-900); 33 - --color-accent-950: var(--color-emerald-950); 34 - } 11 + @theme inline { 12 + --color-base-50: var(--base-50); 13 + --color-base-100: var(--base-100); 14 + --color-base-200: var(--base-200); 15 + --color-base-300: var(--base-300); 16 + --color-base-400: var(--base-400); 17 + --color-base-500: var(--base-500); 18 + --color-base-600: var(--base-600); 19 + --color-base-700: var(--base-700); 20 + --color-base-800: var(--base-800); 21 + --color-base-900: var(--base-900); 22 + --color-base-950: var(--base-950); 23 + 24 + --color-accent-50: var(--accent-50); 25 + --color-accent-100: var(--accent-100); 26 + --color-accent-200: var(--accent-200); 27 + --color-accent-300: var(--accent-300); 28 + --color-accent-400: var(--accent-400); 29 + --color-accent-500: var(--accent-500); 30 + --color-accent-600: var(--accent-600); 31 + --color-accent-700: var(--accent-700); 32 + --color-accent-800: var(--accent-800); 33 + --color-accent-900: var(--accent-900); 34 + --color-accent-950: var(--accent-950); 35 + } 36 + 37 + @layer base { 38 + :root { 39 + --accent-50: var(--color-pink-50); 40 + --accent-100: var(--color-pink-100); 41 + --accent-200: var(--color-pink-200); 42 + --accent-300: var(--color-pink-300); 43 + --accent-400: var(--color-pink-400); 44 + --accent-500: var(--color-pink-500); 45 + --accent-600: var(--color-pink-600); 46 + --accent-700: var(--color-pink-700); 47 + --accent-800: var(--color-pink-800); 48 + --accent-900: var(--color-pink-900); 49 + --accent-950: var(--color-pink-950); 50 + 51 + --base-50: var(--color-gray-50); 52 + --base-100: var(--color-gray-100); 53 + --base-200: var(--color-gray-200); 54 + --base-300: var(--color-gray-300); 55 + --base-400: var(--color-gray-400); 56 + --base-500: var(--color-gray-500); 57 + --base-600: var(--color-gray-600); 58 + --base-700: var(--color-gray-700); 59 + --base-800: var(--color-gray-800); 60 + --base-900: var(--color-gray-900); 61 + --base-950: var(--color-gray-950); 62 + } 63 + 64 + .red { 65 + --accent-50: var(--color-red-50); 66 + --accent-100: var(--color-red-100); 67 + --accent-200: var(--color-red-200); 68 + --accent-300: var(--color-red-300); 69 + --accent-400: var(--color-red-400); 70 + --accent-500: var(--color-red-500); 71 + --accent-600: var(--color-red-600); 72 + --accent-700: var(--color-red-700); 73 + --accent-800: var(--color-red-800); 74 + --accent-900: var(--color-red-900); 75 + --accent-950: var(--color-red-950); 76 + } 77 + 78 + .orange { 79 + --accent-50: var(--color-orange-50); 80 + --accent-100: var(--color-orange-100); 81 + --accent-200: var(--color-orange-200); 82 + --accent-300: var(--color-orange-300); 83 + --accent-400: var(--color-orange-400); 84 + --accent-500: var(--color-orange-500); 85 + --accent-600: var(--color-orange-600); 86 + --accent-700: var(--color-orange-700); 87 + --accent-800: var(--color-orange-800); 88 + --accent-900: var(--color-orange-900); 89 + --accent-950: var(--color-orange-950); 90 + } 91 + 92 + .amber { 93 + --accent-50: var(--color-amber-50); 94 + --accent-100: var(--color-amber-100); 95 + --accent-200: var(--color-amber-200); 96 + --accent-300: var(--color-amber-300); 97 + --accent-400: var(--color-amber-400); 98 + --accent-500: var(--color-amber-500); 99 + --accent-600: var(--color-amber-600); 100 + --accent-700: var(--color-amber-700); 101 + --accent-800: var(--color-amber-800); 102 + --accent-900: var(--color-amber-900); 103 + --accent-950: var(--color-amber-950); 104 + } 105 + 106 + .yellow { 107 + --accent-50: var(--color-yellow-50); 108 + --accent-100: var(--color-yellow-100); 109 + --accent-200: var(--color-yellow-200); 110 + --accent-300: var(--color-yellow-300); 111 + --accent-400: var(--color-yellow-400); 112 + --accent-500: var(--color-yellow-500); 113 + --accent-600: var(--color-yellow-600); 114 + --accent-700: var(--color-yellow-700); 115 + --accent-800: var(--color-yellow-800); 116 + --accent-900: var(--color-yellow-900); 117 + --accent-950: var(--color-yellow-950); 118 + } 119 + 120 + .lime { 121 + --accent-50: var(--color-lime-50); 122 + --accent-100: var(--color-lime-100); 123 + --accent-200: var(--color-lime-200); 124 + --accent-300: var(--color-lime-300); 125 + --accent-400: var(--color-lime-400); 126 + --accent-500: var(--color-lime-500); 127 + --accent-600: var(--color-lime-600); 128 + --accent-700: var(--color-lime-700); 129 + --accent-800: var(--color-lime-800); 130 + --accent-900: var(--color-lime-900); 131 + --accent-950: var(--color-lime-950); 132 + } 133 + 134 + .green { 135 + --accent-50: var(--color-green-50); 136 + --accent-100: var(--color-green-100); 137 + --accent-200: var(--color-green-200); 138 + --accent-300: var(--color-green-300); 139 + --accent-400: var(--color-green-400); 140 + --accent-500: var(--color-green-500); 141 + --accent-600: var(--color-green-600); 142 + --accent-700: var(--color-green-700); 143 + --accent-800: var(--color-green-800); 144 + --accent-900: var(--color-green-900); 145 + --accent-950: var(--color-green-950); 146 + } 147 + 148 + .emerald { 149 + --accent-50: var(--color-emerald-50); 150 + --accent-100: var(--color-emerald-100); 151 + --accent-200: var(--color-emerald-200); 152 + --accent-300: var(--color-emerald-300); 153 + --accent-400: var(--color-emerald-400); 154 + --accent-500: var(--color-emerald-500); 155 + --accent-600: var(--color-emerald-600); 156 + --accent-700: var(--color-emerald-700); 157 + --accent-800: var(--color-emerald-800); 158 + --accent-900: var(--color-emerald-900); 159 + --accent-950: var(--color-emerald-950); 160 + } 161 + 162 + .teal { 163 + --accent-50: var(--color-teal-50); 164 + --accent-100: var(--color-teal-100); 165 + --accent-200: var(--color-teal-200); 166 + --accent-300: var(--color-teal-300); 167 + --accent-400: var(--color-teal-400); 168 + --accent-500: var(--color-teal-500); 169 + --accent-600: var(--color-teal-600); 170 + --accent-700: var(--color-teal-700); 171 + --accent-800: var(--color-teal-800); 172 + --accent-900: var(--color-teal-900); 173 + --accent-950: var(--color-teal-950); 174 + } 175 + 176 + .cyan { 177 + --accent-50: var(--color-cyan-50); 178 + --accent-100: var(--color-cyan-100); 179 + --accent-200: var(--color-cyan-200); 180 + --accent-300: var(--color-cyan-300); 181 + --accent-400: var(--color-cyan-400); 182 + --accent-500: var(--color-cyan-500); 183 + --accent-600: var(--color-cyan-600); 184 + --accent-700: var(--color-cyan-700); 185 + --accent-800: var(--color-cyan-800); 186 + --accent-900: var(--color-cyan-900); 187 + --accent-950: var(--color-cyan-950); 188 + } 189 + 190 + .sky { 191 + --accent-50: var(--color-sky-50); 192 + --accent-100: var(--color-sky-100); 193 + --accent-200: var(--color-sky-200); 194 + --accent-300: var(--color-sky-300); 195 + --accent-400: var(--color-sky-400); 196 + --accent-500: var(--color-sky-500); 197 + --accent-600: var(--color-sky-600); 198 + --accent-700: var(--color-sky-700); 199 + --accent-800: var(--color-sky-800); 200 + --accent-900: var(--color-sky-900); 201 + --accent-950: var(--color-sky-950); 202 + } 203 + .blue { 204 + --accent-50: var(--color-blue-50); 205 + --accent-100: var(--color-blue-100); 206 + --accent-200: var(--color-blue-200); 207 + --accent-300: var(--color-blue-300); 208 + --accent-400: var(--color-blue-400); 209 + --accent-500: var(--color-blue-500); 210 + --accent-600: var(--color-blue-600); 211 + --accent-700: var(--color-blue-700); 212 + --accent-800: var(--color-blue-800); 213 + --accent-900: var(--color-blue-900); 214 + --accent-950: var(--color-blue-950); 215 + } 216 + 217 + .indigo { 218 + --accent-50: var(--color-indigo-50); 219 + --accent-100: var(--color-indigo-100); 220 + --accent-200: var(--color-indigo-200); 221 + --accent-300: var(--color-indigo-300); 222 + --accent-400: var(--color-indigo-400); 223 + --accent-500: var(--color-indigo-500); 224 + --accent-600: var(--color-indigo-600); 225 + --accent-700: var(--color-indigo-700); 226 + --accent-800: var(--color-indigo-800); 227 + --accent-900: var(--color-indigo-900); 228 + --accent-950: var(--color-indigo-950); 229 + } 230 + 231 + .violet { 232 + --accent-50: var(--color-violet-50); 233 + --accent-100: var(--color-violet-100); 234 + --accent-200: var(--color-violet-200); 235 + --accent-300: var(--color-violet-300); 236 + --accent-400: var(--color-violet-400); 237 + --accent-500: var(--color-violet-500); 238 + --accent-600: var(--color-violet-600); 239 + --accent-700: var(--color-violet-700); 240 + --accent-800: var(--color-violet-800); 241 + --accent-900: var(--color-violet-900); 242 + --accent-950: var(--color-violet-950); 243 + } 244 + 245 + .purple { 246 + --accent-50: var(--color-purple-50); 247 + --accent-100: var(--color-purple-100); 248 + --accent-200: var(--color-purple-200); 249 + --accent-300: var(--color-purple-300); 250 + --accent-400: var(--color-purple-400); 251 + --accent-500: var(--color-purple-500); 252 + --accent-600: var(--color-purple-600); 253 + --accent-700: var(--color-purple-700); 254 + --accent-800: var(--color-purple-800); 255 + --accent-900: var(--color-purple-900); 256 + --accent-950: var(--color-purple-950); 257 + } 258 + 259 + .fuchsia { 260 + --accent-50: var(--color-fuchsia-50); 261 + --accent-100: var(--color-fuchsia-100); 262 + --accent-200: var(--color-fuchsia-200); 263 + --accent-300: var(--color-fuchsia-300); 264 + --accent-400: var(--color-fuchsia-400); 265 + --accent-500: var(--color-fuchsia-500); 266 + --accent-600: var(--color-fuchsia-600); 267 + --accent-700: var(--color-fuchsia-700); 268 + --accent-800: var(--color-fuchsia-800); 269 + --accent-900: var(--color-fuchsia-900); 270 + --accent-950: var(--color-fuchsia-950); 271 + } 272 + 273 + .pink { 274 + --accent-50: var(--color-pink-50); 275 + --accent-100: var(--color-pink-100); 276 + --accent-200: var(--color-pink-200); 277 + --accent-300: var(--color-pink-300); 278 + --accent-400: var(--color-pink-400); 279 + --accent-500: var(--color-pink-500); 280 + --accent-600: var(--color-pink-600); 281 + --accent-700: var(--color-pink-700); 282 + --accent-800: var(--color-pink-800); 283 + --accent-900: var(--color-pink-900); 284 + --accent-950: var(--color-pink-950); 285 + } 286 + 287 + .rose { 288 + --accent-50: var(--color-rose-50); 289 + --accent-100: var(--color-rose-100); 290 + --accent-200: var(--color-rose-200); 291 + --accent-300: var(--color-rose-300); 292 + --accent-400: var(--color-rose-400); 293 + --accent-500: var(--color-rose-500); 294 + --accent-600: var(--color-rose-600); 295 + --accent-700: var(--color-rose-700); 296 + --accent-800: var(--color-rose-800); 297 + --accent-900: var(--color-rose-900); 298 + --accent-950: var(--color-rose-950); 299 + } 300 + 301 + .gray { 302 + --base-50: var(--color-gray-50); 303 + --base-100: var(--color-gray-100); 304 + --base-200: var(--color-gray-200); 305 + --base-300: var(--color-gray-300); 306 + --base-400: var(--color-gray-400); 307 + --base-500: var(--color-gray-500); 308 + --base-600: var(--color-gray-600); 309 + --base-700: var(--color-gray-700); 310 + --base-800: var(--color-gray-800); 311 + --base-900: var(--color-gray-900); 312 + --base-950: var(--color-gray-950); 313 + } 314 + 315 + .zinc { 316 + --base-50: var(--color-zinc-50); 317 + --base-100: var(--color-zinc-100); 318 + --base-200: var(--color-zinc-200); 319 + --base-300: var(--color-zinc-300); 320 + --base-400: var(--color-zinc-400); 321 + --base-500: var(--color-zinc-500); 322 + --base-600: var(--color-zinc-600); 323 + --base-700: var(--color-zinc-700); 324 + --base-800: var(--color-zinc-800); 325 + --base-900: var(--color-zinc-900); 326 + --base-950: var(--color-zinc-950); 327 + } 328 + 329 + .neutral { 330 + --base-50: var(--color-neutral-50); 331 + --base-100: var(--color-neutral-100); 332 + --base-200: var(--color-neutral-200); 333 + --base-300: var(--color-neutral-300); 334 + --base-400: var(--color-neutral-400); 335 + --base-500: var(--color-neutral-500); 336 + --base-600: var(--color-neutral-600); 337 + --base-700: var(--color-neutral-700); 338 + --base-800: var(--color-neutral-800); 339 + --base-900: var(--color-neutral-900); 340 + --base-950: var(--color-neutral-950); 341 + } 342 + 343 + .stone { 344 + --base-50: var(--color-stone-50); 345 + --base-100: var(--color-stone-100); 346 + --base-200: var(--color-stone-200); 347 + --base-300: var(--color-stone-300); 348 + --base-400: var(--color-stone-400); 349 + --base-500: var(--color-stone-500); 350 + --base-600: var(--color-stone-600); 351 + --base-700: var(--color-stone-700); 352 + --base-800: var(--color-stone-800); 353 + --base-900: var(--color-stone-900); 354 + --base-950: var(--color-stone-950); 355 + } 356 + 357 + .slate { 358 + --base-50: var(--color-slate-50); 359 + --base-100: var(--color-slate-100); 360 + --base-200: var(--color-slate-200); 361 + --base-300: var(--color-slate-300); 362 + --base-400: var(--color-slate-400); 363 + --base-500: var(--color-slate-500); 364 + --base-600: var(--color-slate-600); 365 + --base-700: var(--color-slate-700); 366 + --base-800: var(--color-slate-800); 367 + --base-900: var(--color-slate-900); 368 + --base-950: var(--color-slate-950); 369 + } 370 + }
+17 -2
src/app.html
··· 2 2 <html lang="en"> 3 3 <head> 4 4 <meta charset="utf-8" /> 5 - <link rel="icon" href="%sveltekit.assets%/favicon.png" /> 6 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 6 %sveltekit.head% 7 + 8 + <script> 9 + let dark = localStorage.getItem('darkMode'); 10 + if (dark) { 11 + dark = JSON.parse(dark); 12 + } else { 13 + dark = window.matchMedia('(prefers-color-scheme: dark)').matches; 14 + } 15 + 16 + var root = document.getElementsByTagName('html')[0]; 17 + if (dark) { 18 + root.classList.add('dark'); 19 + } else { 20 + root.classList.remove('dark'); 21 + } 22 + </script> 8 23 </head> 9 - <body data-sveltekit-preload-data="hover"> 24 + <body data-sveltekit-preload-data="hover" class="bg-base-50 dark:bg-base-950"> 10 25 <div style="display: contents">%sveltekit.body%</div> 11 26 </body> 12 27 </html>
+9 -5
.github/workflows/deploy_gh_pages.yml
··· 12 12 - name: Checkout 13 13 uses: actions/checkout@v4 14 14 15 - - name: Install Node.js 15 + - uses: pnpm/action-setup@v4 16 + with: 17 + version: 8.15.6 18 + 19 + - name: Setup Node.js environment 16 20 uses: actions/setup-node@v4 17 21 with: 18 - node-version: 18 19 - cache: npm 22 + node-version: 20 23 + cache: 'pnpm' 20 24 21 25 - name: Install dependencies 22 - run: npm ci 26 + run: pnpm install 23 27 24 28 - name: build 25 29 env: 26 30 BASE_PATH: '/${{ github.event.repository.name }}' 27 31 PUBLIC_HANDLE: 'flo-bit.dev' 28 32 run: | 29 - npm run build 33 + pnpm run build 30 34 31 35 - name: Upload Artifacts 32 36 uses: actions/upload-pages-artifact@v3
+57
src/lib/Blog.svelte
··· 1 + <script> 2 + import { hasContext } from 'svelte'; 3 + import MarkdownText from './website/components/MarkdownText.svelte'; 4 + import PlainText from './website/components/PlainText.svelte'; 5 + import SingleRecord from './website/components/SingleRecord.svelte'; 6 + import { getCurrent } from './website/data'; 7 + import EditHead from './website/EditHead.svelte'; 8 + import ThemeWrapper from './website/ThemeWrapper.svelte'; 9 + import Head from './website/Head.svelte'; 10 + 11 + const { collection, rkey } = getCurrent(); 12 + </script> 13 + 14 + <SingleRecord collection="dev.flo-bit.head" rkey="self"> 15 + {#snippet child(data)} 16 + {#if hasContext('isEditing')} 17 + <EditHead {data} /> 18 + {:else} 19 + <Head {data} /> 20 + {/if} 21 + {/snippet} 22 + </SingleRecord> 23 + 24 + <ThemeWrapper> 25 + <div class={['mx-auto my-16 max-w-2xl px-4']}> 26 + <SingleRecord {collection} {rkey}> 27 + {#snippet child(data)} 28 + <div class="text-base-800 dark:text-base-200 text-xs"> 29 + {new Date(data.value.createdAt || new Date()).toLocaleDateString('en-us', { 30 + year: 'numeric', 31 + month: 'short', 32 + day: 'numeric' 33 + })} 34 + </div> 35 + <PlainText 36 + class="text-base-900 dark:text-base-50 mt-2 text-3xl font-bold" 37 + key="title" 38 + placeholder="Title" 39 + {data} 40 + /> 41 + 42 + <PlainText 43 + class="text-base-800 dark:text-base-200 mt-4 text-sm italic" 44 + key="description" 45 + placeholder="Description" 46 + {data} 47 + /> 48 + <MarkdownText 49 + class="mt-8" 50 + key="content" 51 + placeholder="Words can be like X-rays if you use them properly - they'll go through anything. You read and you're pierced." 52 + {data} 53 + /> 54 + {/snippet} 55 + </SingleRecord> 56 + </div> 57 + </ThemeWrapper>
+23
src/lib/Profile.svelte
··· 1 + <script lang="ts"> 2 + import { base } from '$app/paths'; 3 + import { hasContext } from 'svelte'; 4 + import { getBlob } from './oauth/atproto'; 5 + 6 + let { data, did }: { data: any; did: string } = $props(); 7 + 8 + $inspect(data); 9 + </script> 10 + 11 + {#if hasContext('isEditing')} 12 + {#await getBlob({ did, cid: data.value.avatar.ref.$link }) then blob} 13 + <img class="mb-8 size-24 rounded-full" src={blob} alt="" /> 14 + {:catch error} 15 + {error} 16 + {/await} 17 + {:else} 18 + <img 19 + class="mb-8 size-24 rounded-full" 20 + src={base + '/image/' + data.value.avatar.ref.$link} 21 + alt="" 22 + /> 23 + {/if}
+189 -49
src/lib/Website.svelte
··· 4 4 import MarkdownText from './website/components/MarkdownText.svelte'; 5 5 import PlainText from './website/components/PlainText.svelte'; 6 6 import SingleRecord from './website/components/SingleRecord.svelte'; 7 - import { Button } from '@fuxui/base'; 7 + import { Button, buttonVariants, cn, Subheading } from '@fuxui/base'; 8 + import { base } from '$app/paths'; 9 + import ThemeWrapper from './website/ThemeWrapper.svelte'; 10 + import { getContext } from 'svelte'; 11 + import Profile from './Profile.svelte'; 12 + import Head from './website/Head.svelte'; 13 + import EditHead from './website/EditHead.svelte'; 14 + 15 + const did = getContext('did'); 8 16 </script> 9 17 10 - <div class="mx-auto max-w-2xl py-16 px-4"> 11 - <SingleRecord collection="dev.flo-bit.about" rkey="test"> 12 - {#snippet child(data)} 13 - <PlainText class="text-3xl font-bold" key="title" placeholder="Title" {data} /> 14 - <MarkdownText class="mt-8" key="content" placeholder="Write something about yourself..." {data} /> 15 - {/snippet} 16 - </SingleRecord> 18 + <SingleRecord collection="dev.flo-bit.head" rkey="self"> 19 + {#snippet child(data)} 20 + {#if hasContext('isEditing')} 21 + <EditHead {data} /> 22 + {:else} 23 + <Head {data} /> 24 + {/if} 25 + {/snippet} 26 + </SingleRecord> 17 27 18 - <div class="relative flex flex-col gap-4 mt-8"> 19 - <List collection="link.flo-bit.dev"> 20 - {#snippet item(data, deleteItem)} 21 - <div class="relative mt-4 flex flex-col gap-2"> 22 - <div class="pointer-events-none z-10 font-bold"> 23 - <PlainText key="label" {data} placeholder="Write a label..." /> 24 - </div> 25 - <div class="pointer-events-none z-10"> 26 - <PlainText key="description" {data} placeholder="Write a description..." /> 27 - </div> 28 + <ThemeWrapper> 29 + <div class={['mx-auto my-16 max-w-2xl px-4']}> 30 + <SingleRecord collection="dev.flo-bit.about" rkey="test"> 31 + {#snippet child(data)} 32 + <PlainText 33 + class="text-base-900 dark:text-base-50 text-5xl font-bold" 34 + key="title" 35 + placeholder="Title" 36 + {data} 37 + /> 38 + <Button 39 + href={hasContext('isEditing') ? undefined : base + '/edit'} 40 + class={cn( 41 + 'mt-12 rounded-full', 42 + hasContext('isEditing') && 'pointer-events-none active:scale-100' 43 + )} 44 + size="lg" 45 + > 46 + <PlainText key="editButton" defaultContent="Edit Website" {data} /> 47 + </Button> 48 + <MarkdownText 49 + size="lg" 50 + class="mt-12" 51 + key="content" 52 + placeholder="Write something about yourself..." 53 + {data} 54 + /> 55 + {/snippet} 56 + </SingleRecord> 28 57 29 - {#if hasContext('isEditing')} 30 - <Button class="absolute top-0 right-0 z-10" size="icon" variant="ghost" onclick={deleteItem}> 31 - <svg 32 - xmlns="http://www.w3.org/2000/svg" 33 - fill="none" 34 - viewBox="0 0 24 24" 35 - stroke-width="1.5" 36 - stroke="currentColor" 37 - class="size-6" 58 + <SingleRecord collection="dev.flo-bit.blog" rkey="self"> 59 + {#snippet child(data)} 60 + <PlainText 61 + class="text-base-900 dark:text-base-50 mt-16 text-xl font-semibold sm:text-2xl" 62 + key="title" 63 + defaultContent="My Blog" 64 + {data} 65 + /> 66 + {/snippet} 67 + </SingleRecord> 68 + 69 + <div class="relative mt-6 flex flex-col gap-4 group"> 70 + <List collection="dev.flo-bit.blog.entry"> 71 + {#snippet item(data, deleteItem)} 72 + <div class="relative mt-2 flex flex-col gap-2 p-2"> 73 + <div class="pointer-events-none z-10 font-bold"> 74 + <PlainText 75 + class="text-base-900 dark:text-base-50" 76 + key="title" 77 + {data} 78 + placeholder="Write a label..." 79 + /> 80 + </div> 81 + <div class="pointer-events-none z-10"> 82 + <PlainText 83 + class="text-base-800 dark:text-base-200 text-sm italic" 84 + key="description" 85 + {data} 86 + placeholder="Write a description..." 87 + /> 88 + </div> 89 + <div class="pointer-events-none z-10"> 90 + <!-- date: createdAt --> 91 + <div class="text-base-800 dark:text-base-200 text-xs"> 92 + {new Date(data.value.createdAt || new Date()).toLocaleDateString('en-us', { 93 + year: 'numeric', 94 + month: 'short', 95 + day: 'numeric' 96 + })} 97 + </div> 98 + </div> 99 + 100 + {#if hasContext('isEditing')} 101 + <Button 102 + class="absolute top-0 right-0 z-10 hidden" 103 + size="icon" 104 + variant="ghost" 105 + onclick={deleteItem} 38 106 > 39 - <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /> 40 - </svg> 41 - <span class="sr-only">delete</span> 42 - </Button> 43 - {:else} 44 - <a 45 - href={data.url} 46 - target="_blank" 47 - class="hover:bg-base-200/50 absolute -inset-2 rounded-2xl" 48 - > 49 - <span class="sr-only"> 50 - {data.label} 51 - </span></a 52 - > 53 - {/if} 54 - </div> 55 - {/snippet} 107 + <svg 108 + xmlns="http://www.w3.org/2000/svg" 109 + fill="none" 110 + viewBox="0 0 24 24" 111 + stroke-width="1.5" 112 + stroke="currentColor" 113 + > 114 + <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" /> 115 + </svg> 116 + <span class="sr-only">delete</span> 117 + </Button> 56 118 57 - {#snippet addItem(add)} 58 - <Button class="absolute -bottom-16 left-0" onclick={add}>Add link</Button> 59 - {/snippet} 60 - </List> 119 + <Button 120 + class="absolute top-0 right-0 z-10" 121 + size="icon" 122 + variant="ghost" 123 + href={base + '/blog/' + encodeURIComponent(data.uri) + '/edit'} 124 + target="_blank" 125 + > 126 + <span class="sr-only">edit</span> 127 + <svg 128 + xmlns="http://www.w3.org/2000/svg" 129 + fill="none" 130 + viewBox="0 0 24 24" 131 + stroke-width="1.5" 132 + stroke="currentColor" 133 + > 134 + <path 135 + stroke-linecap="round" 136 + stroke-linejoin="round" 137 + d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125" 138 + /> 139 + </svg> 140 + </Button> 141 + {:else} 142 + <a 143 + href={base + '/blog/' + encodeURIComponent(data.uri)} 144 + target="_blank" 145 + class="hover:bg-base-200/30 dark:hover:bg-base-800/20 absolute -inset-2 rounded-2xl" 146 + > 147 + <span class="sr-only"> 148 + {data.title} 149 + </span></a 150 + > 151 + 152 + <a class="hidden" href={base + '/blog/' + encodeURIComponent(data.uri) + '/edit'}> 153 + <span class="sr-only">edit</span> 154 + </a> 155 + {/if} 156 + </div> 157 + {/snippet} 158 + 159 + {#snippet addItem(add)} 160 + <Button class="absolute -bottom-8 left-0" size="sm" href={base + '/blog/add'}> 161 + <svg 162 + xmlns="http://www.w3.org/2000/svg" 163 + fill="none" 164 + viewBox="0 0 24 24" 165 + stroke-width="2" 166 + stroke="currentColor" 167 + > 168 + <path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" /> 169 + </svg> 170 + 171 + Create Post 172 + </Button> 173 + {/snippet} 174 + 175 + {#snippet empty()} 176 + <div class="text-base-800 dark:text-base-200 text-sm italic">No blog posts yet.</div> 177 + {/snippet} 178 + </List> 179 + </div> 180 + 181 + <div class="mt-16 flex flex-col gap-4"> 182 + 183 + <SingleRecord collection="dev.flo-bit.about" rkey="self"> 184 + {#snippet child(data)} 185 + <PlainText 186 + class="text-base-900 dark:text-base-50 text-xl font-semibold sm:text-2xl" 187 + key="title" 188 + defaultContent="About me" 189 + {data} 190 + /> 191 + 192 + <MarkdownText size="lg" key="content" defaultContent="About me..." {data} /> 193 + {/snippet} 194 + </SingleRecord> 195 + <SingleRecord collection="app.bsky.actor.profile" rkey="self"> 196 + {#snippet child(data)} 197 + <Profile {data} {did} /> 198 + {/snippet} 199 + </SingleRecord> 200 + </div> 61 201 </div> 62 - </div> 202 + </ThemeWrapper>
+5
src/routes/+layout.server.ts
··· 1 + import { loadData } from '$lib/website/data'; 2 + 3 + export async function load() { 4 + return await loadData(); 5 + }
-5
src/routes/+page.server.ts
··· 1 - import { loadData } from '$lib/website/data'; 2 - 3 - export async function load() { 4 - return await loadData(); 5 - }
+4 -5
src/routes/+page.svelte
··· 1 1 <script> 2 2 import Website from "$lib/Website.svelte"; 3 - import { setContext } from "svelte"; 3 + import WebsiteWrapper from "$lib/website/WebsiteWrapper.svelte"; 4 4 5 5 let { data } = $props(); 6 - 7 - setContext('did', data.did); 8 - setContext('data', data.data); 9 6 </script> 10 7 11 - <Website /> 8 + <WebsiteWrapper {data}> 9 + <Website /> 10 + </WebsiteWrapper>
+22 -4
src/lib/oauth/atproto.ts
··· 29 29 }); 30 30 }; 31 31 32 - export async function getProfile({ agent, did }: { agent: AtpBaseClient; did: string }) { 32 + export async function getProfile({ agent, did }: { agent?: AtpBaseClient; did: string }) { 33 + agent ??= new AtpBaseClient({ service: 'https://api.bsky.app' }); 33 34 const { data } = await agent.app.bsky.actor.getProfile({ actor: did }); 34 35 return data; 35 36 } ··· 54 55 cursor 55 56 }); 56 57 57 - return room.data.records; 58 + // convert to { [rkey]: record } 59 + const records = room.data.records.reduce( 60 + (acc, record) => { 61 + acc[parseUri(record.uri).rkey] = record; 62 + return acc; 63 + }, 64 + {} as Record<string, ListRecord> 65 + ); 66 + 67 + return records; 58 68 } 69 + 70 + import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 71 + import { parseUri } from '$lib/website/data'; 59 72 60 73 export async function getRecord({ 61 74 did, ··· 70 83 71 84 const agent = new AtpBaseClient({ service: pds }); 72 85 73 - const room = await agent.com.atproto.repo.getRecord({ 86 + const record = await agent.com.atproto.repo.getRecord({ 74 87 repo: did, 75 88 collection, 76 89 rkey 77 90 }); 78 91 79 - return room.data; 92 + return JSON.parse(JSON.stringify(record.data)) as ListRecord; 80 93 } 81 94 82 95 export async function putRecord({ ··· 134 147 }); 135 148 136 149 return response; 150 + } 151 + 152 + export async function getBlob({ did, cid }: { did: string; cid: string }) { 153 + const pds = await getPDS(did); 154 + return `${pds}/xrpc/com.atproto.sync.getBlob?did=${did}&cid=${cid}`; 137 155 }
+47
src/lib/website/EditHead.svelte
··· 1 + <script lang="ts" module> 2 + export const settingsModal = $state({ 3 + show: false, 4 + title: '', 5 + favicon: '', 6 + edited: false 7 + }); 8 + </script> 9 + 10 + <script lang="ts"> 11 + import { onDestroy, onMount } from 'svelte'; 12 + import { getUpdateRecordFunctions } from './data'; 13 + import { Head, Heading, Input, Label, Modal } from '@fuxui/base'; 14 + import { PopoverEmojiPicker } from '@fuxui/social'; 15 + 16 + let { data } = $props(); 17 + 18 + settingsModal.title = data?.value?.title; 19 + settingsModal.favicon = data?.value?.favicon; 20 + 21 + const updateFunctions = getUpdateRecordFunctions(); 22 + 23 + const update = async () => { 24 + if (!settingsModal.edited) return {}; 25 + 26 + settingsModal.edited = false; 27 + 28 + return { 29 + title: settingsModal.title, 30 + favicon: settingsModal.favicon 31 + }; 32 + }; 33 + 34 + onMount(() => { 35 + updateFunctions.push(update); 36 + }); 37 + 38 + onDestroy(() => { 39 + updateFunctions.splice(updateFunctions.indexOf(update), 1); 40 + }); 41 + 42 + $inspect(settingsModal); 43 + </script> 44 + 45 + {#key settingsModal.title + settingsModal.favicon} 46 + <Head title={settingsModal.title} emojiFavicon={settingsModal.favicon} /> 47 + {/key}
+78
src/lib/website/EditTheme.svelte
··· 1 + <script lang="ts"> 2 + import { onDestroy, onMount } from 'svelte'; 3 + import { getUpdateRecordFunctions } from './data'; 4 + 5 + let { data, children, class: className } = $props(); 6 + 7 + let accent = $state(data?.value?.accent); 8 + let base = $state(data?.value?.base); 9 + 10 + let edited = $state(false); 11 + 12 + const updateFunctions = getUpdateRecordFunctions(); 13 + 14 + const update = async () => { 15 + if (!edited) return {}; 16 + 17 + edited = false; 18 + 19 + return { 20 + accent, 21 + base 22 + }; 23 + }; 24 + 25 + const themeChanged = (event: Event) => { 26 + let newAccent = (event as CustomEvent).detail?.accentColor; 27 + if (newAccent) { 28 + // remove from body 29 + document.body.classList.remove('theme', accent); 30 + 31 + accent = newAccent; 32 + 33 + // add to body 34 + document.body.classList.add('theme', accent); 35 + 36 + edited = true; 37 + } 38 + 39 + let newBase = (event as CustomEvent).detail?.baseColor; 40 + if (newBase) { 41 + // remove from body 42 + document.body.classList.remove('theme', base); 43 + 44 + base = newBase; 45 + 46 + // add to body 47 + document.body.classList.add('theme', base); 48 + 49 + edited = true; 50 + } 51 + }; 52 + 53 + onMount(() => { 54 + window.addEventListener('theme-changed', themeChanged); 55 + updateFunctions.push(update); 56 + 57 + // add theme to body 58 + document.body.classList.add('theme', accent, base); 59 + }); 60 + 61 + onDestroy(() => { 62 + window.removeEventListener('theme-changed', themeChanged); 63 + 64 + updateFunctions.splice(updateFunctions.indexOf(update), 1); 65 + }); 66 + </script> 67 + 68 + <div 69 + class={[ 70 + 'theme', 71 + accent, 72 + base, 73 + 'bg-base-50 dark:bg-base-950 min-h-[100dvh] overflow-y-auto py-16', 74 + className 75 + ]} 76 + > 77 + {@render children?.()} 78 + </div>
+114
src/lib/website/EditingWebsiteWrapper.svelte
··· 1 + <script lang="ts"> 2 + import { setContext } from 'svelte'; 3 + import { BlueskyLogin, PopoverEmojiPicker } from '@fuxui/social'; 4 + import { client, login } from '$lib/oauth/auth.svelte.js'; 5 + import { Button, Heading, Input, Label, Modal, Navbar, ThemeToggle, toast, Toaster } from '@fuxui/base'; 6 + import type { UpdateFunction } from '$lib/website/data.js'; 7 + import { SelectThemePopover } from '@fuxui/colors'; 8 + import ThemeWrapper from './ThemeWrapper.svelte'; 9 + import { settingsModal } from './EditHead.svelte'; 10 + 11 + let updateFunctions: UpdateFunction[] = $state([]); 12 + 13 + let { data, children } = $props(); 14 + 15 + setContext('isEditing', true); 16 + setContext('did', data.did); 17 + setContext('updateFunctions', updateFunctions); 18 + setContext('current', data.current); 19 + </script> 20 + 21 + <Modal bind:open={settingsModal.show}> 22 + <Heading>Website Settings</Heading> 23 + 24 + <Label>Title</Label> 25 + <Input 26 + type="text" 27 + bind:value={settingsModal.title} 28 + onkeydown={() => (settingsModal.edited = true)} 29 + /> 30 + 31 + <Label>Favicon</Label> 32 + 33 + <PopoverEmojiPicker 34 + onpicked={(emoji) => { 35 + settingsModal.favicon = emoji.unicode; 36 + settingsModal.edited = true; 37 + }} 38 + > 39 + {#snippet child({ props })} 40 + <Button size="iconLg" {...props} class="w-fit"> 41 + {settingsModal.favicon || '👋'} 42 + </Button> 43 + {/snippet} 44 + </PopoverEmojiPicker> 45 + </Modal> 46 + 47 + <ThemeWrapper> 48 + {@render children?.()} 49 + 50 + <Navbar class="mx-4 mt-3 max-w-3xl rounded-full px-4 md:mx-auto"> 51 + <div class="flex items-center gap-2"> 52 + <SelectThemePopover /> 53 + <Button 54 + size="iconLg" 55 + variant="ghost" 56 + class="backdrop-blur-none" 57 + onclick={() => (settingsModal.show = true)} 58 + > 59 + <svg 60 + xmlns="http://www.w3.org/2000/svg" 61 + fill="none" 62 + viewBox="0 0 24 24" 63 + stroke-width="1.5" 64 + stroke="currentColor" 65 + > 66 + <path 67 + stroke-linecap="round" 68 + stroke-linejoin="round" 69 + d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" 70 + /> 71 + <path 72 + stroke-linecap="round" 73 + stroke-linejoin="round" 74 + d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" 75 + /> 76 + </svg> 77 + </Button> 78 + </div> 79 + <div class="flex items-center gap-2"> 80 + <ThemeToggle /> 81 + 82 + {#if client.isInitializing}{:else if client.isLoggedIn} 83 + <Button 84 + onclick={() => { 85 + // check if did is same 86 + if (client?.profile?.did !== data.did) { 87 + toast('Not authorized', { 88 + description: 'Please login with the correct account' 89 + }); 90 + return; 91 + } 92 + 93 + for (const updateFunction of updateFunctions) { 94 + updateFunction(); 95 + } 96 + 97 + toast('Saved', { 98 + description: 'Your website has been saved!' 99 + }); 100 + }}>Save</Button 101 + > 102 + {:else} 103 + <BlueskyLogin 104 + login={async (handle) => { 105 + await login(handle); 106 + return true; 107 + }} 108 + /> 109 + {/if} 110 + </div> 111 + </Navbar> 112 + </ThemeWrapper> 113 + 114 + <Toaster />
+7
src/lib/website/Head.svelte
··· 1 + <script> 2 + import { Head } from '@fuxui/base'; 3 + 4 + let { data } = $props(); 5 + </script> 6 + 7 + <Head title={data?.value?.title ?? 'hello there'} emojiFavicon={data?.value?.favicon ?? '👋'} />
+15
src/lib/website/Theme.svelte
··· 1 + <script lang="ts"> 2 + let { data, children, class: className } = $props(); 3 + </script> 4 + 5 + <div 6 + class={[ 7 + 'theme', 8 + data.value.accent, 9 + data.value.base, 10 + 'bg-base-50 dark:bg-base-950 min-h-[100dvh] overflow-y-auto py-16', 11 + className 12 + ]} 13 + > 14 + {@render children?.()} 15 + </div>
+28
src/lib/website/ThemeWrapper.svelte
··· 1 + <script lang="ts"> 2 + import { hasContext, type Snippet } from 'svelte'; 3 + import SingleRecord from './components/SingleRecord.svelte'; 4 + import Theme from './Theme.svelte'; 5 + import EditTheme from './EditTheme.svelte'; 6 + 7 + let { 8 + children, 9 + class: className, 10 + }: { 11 + children: Snippet; 12 + class?: string; 13 + } = $props(); 14 + </script> 15 + 16 + <SingleRecord collection="dev.flo-bit.theme" rkey="self"> 17 + {#snippet child(data)} 18 + {#if hasContext('isEditing')} 19 + <EditTheme data={data} class={className}> 20 + {@render children?.()} 21 + </EditTheme> 22 + {:else} 23 + <Theme data={data} class={className}> 24 + {@render children?.()} 25 + </Theme> 26 + {/if} 27 + {/snippet} 28 + </SingleRecord>
+16
src/lib/website/WebsiteWrapper.svelte
··· 1 + <script> 2 + import { ThemeToggle } from "@fuxui/base"; 3 + import { setContext } from "svelte"; 4 + 5 + let { data, children } = $props(); 6 + 7 + setContext('did', data.did); 8 + setContext('data', data.data); 9 + setContext('current', data.current); 10 + 11 + $inspect(data); 12 + </script> 13 + 14 + {@render children?.()} 15 + 16 + <ThemeToggle class="fixed top-2 right-2" />
+21 -11
src/lib/website/data.ts
··· 1 - import { getRecord, listRecords, resolveHandle } from '$lib/oauth/atproto'; 1 + import { getProfile, getRecord, listRecords, resolveHandle } from '$lib/oauth/atproto'; 2 2 import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 3 3 import { getContext } from 'svelte'; 4 4 import { PUBLIC_HANDLE } from '$env/static/public'; 5 5 6 6 // collections and records we want to grab 7 7 export const data = { 8 - 'dev.flo-bit.about': ['test'], 9 - 'link.flo-bit.dev': 'all' 8 + 'app.bsky.actor.profile': ['self'], 9 + 'dev.flo-bit.about': ['test', 'self'], 10 + 'dev.flo-bit.theme': ['self'], 11 + 'link.flo-bit.dev': 'all', 12 + 'dev.flo-bit.blog.entry': 'all', 13 + 'dev.flo-bit.blog': ['self'], 14 + 'dev.flo-bit.head': ['self'] 10 15 } as const; 11 16 12 17 export const handle = 'flo-bit.dev'; ··· 29 34 ? U 30 35 : unknown; 31 36 32 - export type DownloadedData = { [C in IndividualCollections]: Record<string, unknown> } & { 33 - [C in ListCollections]: ListRecord[]; 34 - }; 37 + export type DownloadedData = { [C in Collection]: Record<string, ListRecord> }; 35 38 36 39 export function getData(): DownloadedData { 37 40 return getContext('data'); ··· 39 42 40 43 export async function loadData() { 41 44 const did = await resolveHandle({ handle: PUBLIC_HANDLE }); 45 + 46 + const profile = await getProfile({ did }); 42 47 43 48 const downloadedData = {} as DownloadedData; 44 49 ··· 49 54 if (Array.isArray(cfg)) { 50 55 for (const rkey of cfg) { 51 56 const record = await getRecord({ did, collection, rkey }); 52 - downloadedData[collection as IndividualCollections] ??= {} as Record<string, unknown>; 53 - downloadedData[collection as IndividualCollections][rkey] = record; 57 + downloadedData[collection] ??= {} as Record<string, ListRecord>; 58 + downloadedData[collection][rkey] = record; 54 59 } 55 60 } else if (cfg === 'all') { 56 61 const records = await listRecords({ did, collection }); 57 - downloadedData[collection as ListCollections] = records; 62 + downloadedData[collection] = records; 58 63 } 59 64 } catch (error) { 60 - console.error(error); 65 + console.error('failed getting', collection, cfg); 61 66 } 62 67 } 63 - return { did, data: downloadedData }; 68 + 69 + return { did, data: JSON.parse(JSON.stringify(downloadedData)) as DownloadedData, profile }; 64 70 } 65 71 66 72 export type UpdateFunction = () => boolean | Promise<boolean>; ··· 73 79 74 80 export function getUpdateRecordFunctions(): UpdateRecordFunction[] { 75 81 return getContext('updateRecordFunctions'); 82 + } 83 + 84 + export function getCurrent(): { collection: ListCollections; rkey: string } { 85 + return getContext('current'); 76 86 }
-8
src/routes/edit/+page.server.ts
··· 1 - import { PUBLIC_HANDLE } from '$env/static/public'; 2 - import { resolveHandle } from '$lib/oauth/atproto'; 3 - 4 - export async function load() { 5 - const did = await resolveHandle({ handle: PUBLIC_HANDLE }); 6 - 7 - return { did }; 8 - }
+4 -34
src/routes/edit/+page.svelte
··· 1 1 <script lang="ts"> 2 2 import Website from '$lib/Website.svelte'; 3 - import { setContext } from 'svelte'; 4 - import { BlueskyLogin } from '@fuxui/social'; 5 - import { client, login } from '$lib/oauth/auth.svelte.js'; 6 - import { Button } from '@fuxui/base'; 7 - import type { UpdateFunction } from '$lib/website/data.js'; 8 - 9 - let updateFunctions: UpdateFunction[] = $state([]); 3 + import EditingWebsiteWrapper from '$lib/website/EditingWebsiteWrapper.svelte'; 10 4 11 5 let { data } = $props(); 12 - 13 - setContext('isEditing', true); 14 - setContext('did', data.did); 15 - setContext('updateFunctions', updateFunctions); 16 6 </script> 17 7 18 - <Website /> 19 - 20 - <Button 21 - class="absolute right-2 bottom-2" 22 - onclick={() => { 23 - for (const updateFunction of updateFunctions) { 24 - updateFunction(); 25 - } 26 - }} 27 - > 28 - Update 29 - </Button> 30 - 31 - {#if !client.isInitializing && !client.isLoggedIn} 32 - <div class="absolute left-2 bottom-2"> 33 - <BlueskyLogin 34 - login={async (handle) => { 35 - await login(handle); 36 - return true; 37 - }} 38 - /> 39 - </div> 40 - {/if} 8 + <EditingWebsiteWrapper {data}> 9 + <Website /> 10 + </EditingWebsiteWrapper>
+4 -3
src/lib/website/components/EditSingleRecord.svelte
··· 2 2 import { onDestroy, onMount, setContext, type Snippet } from 'svelte'; 3 3 import { getUpdateFunctions, parseUri, type UpdateRecordFunction } from '../data'; 4 4 import { putRecord } from '$lib/oauth/atproto'; 5 + import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 5 6 6 7 let { 7 8 data, 8 9 child 9 10 }: { 10 - data: Record<string, any>; 11 - child: Snippet<[any]>; 11 + data: ListRecord; 12 + child: Snippet<[ListRecord]>; 12 13 } = $props(); 13 14 14 15 let updateRecordFunctions: UpdateRecordFunction[] = $state([]); ··· 48 49 }); 49 50 </script> 50 51 51 - {@render child(data.value)} 52 + {@render child(data)}
+10 -8
src/lib/website/components/EditingList.svelte
··· 2 2 import { getContext, type Snippet } from 'svelte'; 3 3 import SingleRecord from './EditSingleRecord.svelte'; 4 4 import { TID } from '@atproto/common-web'; 5 - import type { Record } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 5 + import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 6 6 import { deleteRecord } from '$lib/oauth/atproto'; 7 7 import { parseUri } from '../data'; 8 8 ··· 13 13 addItem, 14 14 empty 15 15 }: { 16 - records: Record[]; 16 + records: Record<string, ListRecord>; 17 17 collection: string; 18 18 item: Snippet<[any, any]>; 19 19 addItem: Snippet<[any]>; ··· 23 23 let allRecords = $state(records); 24 24 25 25 const did = getContext('did') as string; 26 + $inspect(allRecords); 26 27 </script> 27 28 28 - {#if allRecords.length === 0 && empty} 29 + {#if Object.keys(allRecords).length === 0 && empty} 29 30 {@render empty()} 30 31 {:else} 31 - {#each allRecords as itemData (itemData.uri)} 32 + {#each Object.values(allRecords) as itemData} 32 33 <SingleRecord data={itemData}> 33 34 {#snippet child(data)} 34 35 {@render item(data, async () => { 35 36 if (!itemData.cid) { 36 - allRecords = allRecords.filter((record) => record.uri !== itemData.uri); 37 + const { rkey } = parseUri(itemData.uri as string); 38 + delete allRecords[rkey]; 37 39 return; 38 40 } 39 41 const { rkey } = parseUri(itemData.uri as string); 40 42 await deleteRecord({ did, collection, rkey }); 41 43 42 - allRecords = allRecords.filter((record) => record.uri !== itemData.uri); 44 + delete allRecords[rkey]; 43 45 })} 44 46 {/snippet} 45 47 </SingleRecord> ··· 49 51 {@render addItem?.(() => { 50 52 const rkey = TID.nextStr(); 51 53 52 - allRecords.push({ 54 + allRecords[rkey] = { 53 55 cid: '', 54 56 uri: 'at://' + did + '/' + collection + '/' + rkey, 55 57 value: {} 56 - }); 58 + }; 57 59 })}
+3 -3
src/lib/website/components/List.svelte
··· 26 26 {:catch error} 27 27 {error} 28 28 {/await} 29 - {:else if !data[collection] || (data[collection] as unknown[]).length === 0} 29 + {:else if !data[collection] || Object.keys(data[collection]).length === 0} 30 30 {@render empty?.()} 31 31 {:else} 32 - {#each data[collection] as itemData} 33 - {@render item(itemData.value, () => {})} 32 + {#each Object.values(data[collection]) as itemData} 33 + {@render item(itemData, () => {})} 34 34 {/each} 35 35 {/if}
+5 -3
src/lib/website/components/MarkdownItem.svelte
··· 2 2 import { type ElementType, type IndividualCollections } from '../data'; 3 3 import SingleRecord from './SingleRecord.svelte'; 4 4 import MarkdownText from './MarkdownText.svelte'; 5 + import { type ProseSize } from '@fuxui/base'; 5 6 6 7 let { 7 8 collection, 8 9 rkey, 9 10 key, 10 11 placeholder, 11 - defaultContent 12 + defaultContent, 13 + size 12 14 }: { 13 15 collection: IndividualCollections; 14 16 rkey: ElementType<IndividualCollections>; 15 17 key: string; 16 18 placeholder?: string; 17 19 defaultContent?: string; 20 + size?: ProseSize; 18 21 } = $props(); 19 22 </script> 20 23 21 - 22 24 <SingleRecord {collection} {rkey}> 23 25 {#snippet child(data)} 24 - <MarkdownText {key} {placeholder} {defaultContent} {data} /> 26 + <MarkdownText {key} {placeholder} {defaultContent} {data} {size} /> 25 27 {/snippet} 26 28 </SingleRecord>
+6 -4
src/lib/website/components/MarkdownText.svelte
··· 1 1 <script lang="ts"> 2 - import { Prose } from '@fuxui/base'; 2 + import { Prose, type ProseSize } from '@fuxui/base'; 3 3 import { marked } from 'marked'; 4 4 import { getContext } from 'svelte'; 5 5 ··· 8 8 data, 9 9 placeholder, 10 10 defaultContent, 11 + size = 'md', 11 12 class: className 12 13 }: { 13 14 key: string; ··· 15 16 placeholder?: string; 16 17 defaultContent?: string; 17 18 class?: string; 19 + size?: ProseSize; 18 20 } = $props(); 19 21 </script> 20 22 21 23 {#if getContext('isEditing')} 22 24 {#await import('./MarkdownTextEditor.svelte') then { default: MarkdownTextEditor }} 23 - <MarkdownTextEditor class={className} {key} {data} {placeholder} {defaultContent} /> 25 + <MarkdownTextEditor class={className} {key} data={data.value} {placeholder} {defaultContent} {size} /> 24 26 {/await} 25 27 {:else} 26 - <Prose class={className}> 27 - {@html marked.parse(data[key] ?? defaultContent ?? ('' as string))} 28 + <Prose class={className} size={size}> 29 + {@html marked.parse(data?.value?.[key] ?? defaultContent ?? ('' as string))} 28 30 </Prose> 29 31 {/if}
+13 -13
src/lib/website/components/MarkdownTextEditor.svelte
··· 5 5 import Image from '@tiptap/extension-image'; 6 6 import Placeholder from '@tiptap/extension-placeholder'; 7 7 import Link from '@tiptap/extension-link'; 8 - import { Prose } from '@fuxui/base'; 8 + import { Prose, type ProseSize } from '@fuxui/base'; 9 9 import { marked } from 'marked'; 10 10 import { generateJSON } from '@tiptap/core'; 11 11 import TurndownService from 'turndown'; ··· 18 18 let loaded = $state(false); 19 19 20 20 let edited = $state(false); 21 - 21 + 22 22 let { 23 23 key, 24 24 data, 25 25 class: className, 26 26 placeholder = '', 27 - defaultContent = '' 27 + defaultContent = '', 28 + size = 'md' 28 29 }: { 29 30 key: string; 30 31 data: Record<string, any>; 31 32 class?: string; 32 33 placeholder?: string; 33 34 defaultContent?: string; 35 + size?: ProseSize; 34 36 } = $props(); 35 37 36 38 const updateFunctions = getUpdateRecordFunctions(); ··· 81 83 Link.configure({ 82 84 openOnClick: false 83 85 }) 84 - ] 86 + ]; 85 87 86 88 if (placeholder) { 87 - extensions.push(Placeholder.configure({ 88 - placeholder: placeholder 89 - })); 89 + extensions.push( 90 + Placeholder.configure({ 91 + placeholder: placeholder 92 + }) 93 + ); 90 94 } 91 95 92 96 editor = new Editor({ ··· 104 108 editorProps: { 105 109 attributes: { 106 110 class: 107 - 'outline-none prose dark:prose-invert prose-sm prose-a:no-underline prose-a:text-accent-600 dark:prose-a:text-accent-600 prose-pre:rounded-2xl w-full max-w-2xl' 111 + 'outline-none' 108 112 } 109 113 } 110 114 }); ··· 123 127 }); 124 128 </script> 125 129 126 - <Prose class={className}> 130 + <Prose class={className} size={size}> 127 131 <div bind:this={element}></div> 128 132 </Prose> 129 - 130 - {#if !loaded} 131 - <p>Loading...</p> 132 - {/if} 133 133 134 134 <style> 135 135 :global(.tiptap p.is-editor-empty:first-child::before) {
+2 -2
src/lib/website/components/PlainText.svelte
··· 18 18 19 19 {#if getContext('isEditing')} 20 20 {#await import('./PlainTextEditor.svelte') then { default: PlainTextEditor }} 21 - <PlainTextEditor class={className} {key} {data} {placeholder} {defaultContent} /> 21 + <PlainTextEditor class={className} {key} data={data.value} {placeholder} {defaultContent} /> 22 22 {/await} 23 23 {:else} 24 - <div class={className}>{data[key] || defaultContent || placeholder}</div> 24 + <div class={className}>{data?.value?.[key] || defaultContent || placeholder}</div> 25 25 {/if}
+5 -3
src/lib/website/components/SingleRecord.svelte
··· 3 3 import { getContext, type Snippet } from 'svelte'; 4 4 import EditSingleRecord from './EditSingleRecord.svelte'; 5 5 import { getData, type ElementType, type IndividualCollections } from '../data'; 6 + import type { Record as ListRecord } from '@atproto/api/dist/client/types/com/atproto/repo/listRecords'; 6 7 7 8 let { 8 9 collection, ··· 11 12 }: { 12 13 collection: IndividualCollections; 13 14 rkey: ElementType<IndividualCollections>; 14 - child: Snippet<[any]>; 15 + child: Snippet<[ListRecord]>; 15 16 } = $props(); 16 17 17 18 const data = getData(); ··· 29 30 <EditSingleRecord 30 31 data={{ 31 32 uri: 'at://' + did + '/' + collection + '/' + rkey, 32 - value: {} 33 + value: {}, 34 + cid: '' 33 35 }} 34 36 > 35 37 {#snippet child(recordData)} ··· 38 40 </EditSingleRecord> 39 41 {/await} 40 42 {:else} 41 - {@render child(data?.[collection]?.[rkey]?.value)} 43 + {@render child(data?.[collection]?.[rkey])} 42 44 {/if}
+21
src/routes/blog/[uri]/+layout.server.ts
··· 1 + import { loadData, parseUri, type ListCollections } from '$lib/website/data'; 2 + 3 + export async function load({ params }) { 4 + const { uri } = params; 5 + const { did, data } = await loadData(); 6 + 7 + const { collection, rkey } = parseUri(uri) as { 8 + collection: ListCollections; 9 + rkey: string; 10 + }; 11 + 12 + return { 13 + did, 14 + uri, 15 + data, 16 + current: { 17 + collection, 18 + rkey 19 + } 20 + }; 21 + }
+10
src/routes/blog/[uri]/+page.svelte
··· 1 + <script lang="ts"> 2 + import Blog from '$lib/Blog.svelte'; 3 + import WebsiteWrapper from '$lib/website/WebsiteWrapper.svelte'; 4 + 5 + let { data } = $props(); 6 + </script> 7 + 8 + <WebsiteWrapper {data}> 9 + <Blog /> 10 + </WebsiteWrapper>
+24
src/routes/blog/add/+page.svelte
··· 1 + <script lang="ts"> 2 + import Blog from '$lib/Blog.svelte'; 3 + import EditingWebsiteWrapper from '$lib/website/EditingWebsiteWrapper.svelte'; 4 + import { onMount } from 'svelte'; 5 + import { TID } from '@atproto/common-web'; 6 + 7 + let { data } = $props(); 8 + 9 + 10 + let current = $state(); 11 + 12 + onMount(() => { 13 + const rkey = TID.nextStr(); 14 + 15 + current = { collection: 'dev.flo-bit.blog.entry', rkey }; 16 + }); 17 + </script> 18 + 19 + {#if current} 20 + <EditingWebsiteWrapper data={{ ...data, current }}> 21 + <Blog /> 22 + </EditingWebsiteWrapper> 23 + {/if} 24 +
+23
src/routes/image/[cid]/+server.ts
··· 1 + import { PUBLIC_HANDLE } from '$env/static/public'; 2 + import { getBlob, resolveHandle } from '$lib/oauth/atproto'; 3 + import { type RequestHandler } from '@sveltejs/kit'; 4 + 5 + export const prerender = true; 6 + 7 + export const GET: RequestHandler = async ({ params }) => { 8 + const { cid } = params; 9 + const handle = PUBLIC_HANDLE; 10 + const did = await resolveHandle({ handle }); 11 + 12 + const imageblob = await getBlob({ did, cid }); 13 + 14 + // download image 15 + const response = await fetch(imageblob); 16 + const blob = await response.blob(); 17 + 18 + return new Response(blob, { 19 + headers: { 20 + 'Content-Type': 'image/jpeg' 21 + } 22 + }); 23 + };
+10
src/routes/blog/[uri]/edit/+page.svelte
··· 1 + <script lang="ts"> 2 + import Blog from '$lib/Blog.svelte'; 3 + import EditingWebsiteWrapper from '$lib/website/EditingWebsiteWrapper.svelte'; 4 + 5 + let { data } = $props(); 6 + </script> 7 + 8 + <EditingWebsiteWrapper {data}> 9 + <Blog /> 10 + </EditingWebsiteWrapper>