A Astro blog hosted on Vercel

Compare changes

Choose any two refs to compare.

+23
.prettierrc
··· 1 + { 2 + "plugins": ["prettier-plugin-astro"], 3 + "trailingComma": "es5", 4 + "tabWidth": 2, 5 + "useTabs": false, 6 + "semi": true, 7 + "singleQuote": true, 8 + "htmlWhitespaceSensitivity": "ignore", 9 + "overrides": [ 10 + { 11 + "files": "*.astro", 12 + "options": { 13 + "parser": "astro" 14 + } 15 + }, 16 + { 17 + "files": "*.css", 18 + "options": { 19 + "parser": "css" 20 + } 21 + } 22 + ] 23 + }
+7
astro.config.mjs
··· 11 11 integrations: [mdx(), sitemap(), svelte()], 12 12 image: { 13 13 domains: ["cdn.bsky.app", "i.imgur.com"], 14 + }, 15 + vite: { 16 + server: { 17 + headers: { 18 + 'Content-Security-Policy': "script-src 'self' https://liberapay.com;" 19 + } 20 + } 14 21 } 15 22 });
+316 -3429
package-lock.json
··· 12 12 "@astrojs/rss": "^4.0.12", 13 13 "@astrojs/sitemap": "^3.5.1", 14 14 "@astrojs/svelte": "^7.1.0", 15 - "@atproto/api": "^0.13.23", 15 + "@atproto/api": "^0.13.35", 16 16 "@iconify-json/fa6-brands": "^1.2.5", 17 17 "@iconify-json/fa6-solid": "^1.2.3", 18 - "@vercel/analytics": "^1.4.1", 19 - "@vercel/speed-insights": "^1.1.0", 20 18 "astro": "^5.13.4", 21 19 "svelte": "^5.16.0", 22 20 "typescript": "^5.7.2" 23 21 }, 24 22 "devDependencies": { 25 - "exiftool-vendored": "^29.2.0", 26 - "sharp": "^0.33.5", 27 - "vercel": "^46.1.0" 28 - } 29 - }, 30 - "node_modules/@ampproject/remapping": { 31 - "version": "2.3.0", 32 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 33 - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 34 - "license": "Apache-2.0", 35 - "dependencies": { 36 - "@jridgewell/gen-mapping": "^0.3.5", 37 - "@jridgewell/trace-mapping": "^0.3.24" 38 - }, 39 - "engines": { 40 - "node": ">=6.0.0" 23 + "prettier": "^3.6.2", 24 + "prettier-plugin-astro": "^0.14.1" 41 25 } 42 26 }, 43 27 "node_modules/@astrojs/compiler": { ··· 179 163 } 180 164 }, 181 165 "node_modules/@atproto/api": { 182 - "version": "0.13.23", 183 - "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.23.tgz", 184 - "integrity": "sha512-V1Z5kgfSsqlFaC14sjnZL1Psv/9Lq/YKW1w7TIBq948Rtq8l+c6BpGrOH2Ssdcphpqi4OSeSYRsmJJlD6GGJ5w==", 166 + "version": "0.13.35", 167 + "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.35.tgz", 168 + "integrity": "sha512-vsEfBj0C333TLjDppvTdTE0IdKlXuljKSveAeI4PPx/l6eUKNnDTsYxvILtXUVzwUlTDmSRqy5O4Ryh78n1b7g==", 185 169 "license": "MIT", 186 170 "dependencies": { 187 - "@atproto/common-web": "^0.3.1", 188 - "@atproto/lexicon": "^0.4.4", 189 - "@atproto/syntax": "^0.3.1", 190 - "@atproto/xrpc": "^0.6.5", 171 + "@atproto/common-web": "^0.4.0", 172 + "@atproto/lexicon": "^0.4.6", 173 + "@atproto/syntax": "^0.3.2", 174 + "@atproto/xrpc": "^0.6.8", 191 175 "await-lock": "^2.2.2", 192 176 "multiformats": "^9.9.0", 193 177 "tlds": "^1.234.0", ··· 195 179 } 196 180 }, 197 181 "node_modules/@atproto/common-web": { 198 - "version": "0.3.1", 199 - "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.3.1.tgz", 200 - "integrity": "sha512-N7wiTnus5vAr+lT//0y8m/FaHHLJ9LpGuEwkwDAeV3LCiPif4m/FS8x/QOYrx1PdZQwKso95RAPzCGWQBH5j6Q==", 182 + "version": "0.4.2", 183 + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.2.tgz", 184 + "integrity": "sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw==", 201 185 "license": "MIT", 202 186 "dependencies": { 203 187 "graphemer": "^1.4.0", ··· 207 191 } 208 192 }, 209 193 "node_modules/@atproto/lexicon": { 210 - "version": "0.4.4", 211 - "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.4.tgz", 212 - "integrity": "sha512-QFEmr3rpj/RoAmfX9ALU/asBG/rsVtQZnw+9nOB1/AuIwoxXd+ZyndR6lVUc2+DL4GEjl6W2yvBru5xbQIZWyA==", 194 + "version": "0.4.14", 195 + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.14.tgz", 196 + "integrity": "sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ==", 213 197 "license": "MIT", 214 198 "dependencies": { 215 - "@atproto/common-web": "^0.3.1", 216 - "@atproto/syntax": "^0.3.1", 199 + "@atproto/common-web": "^0.4.2", 200 + "@atproto/syntax": "^0.4.0", 217 201 "iso-datestring-validator": "^2.2.2", 218 202 "multiformats": "^9.9.0", 219 203 "zod": "^3.23.8" 220 204 } 221 205 }, 206 + "node_modules/@atproto/lexicon/node_modules/@atproto/syntax": { 207 + "version": "0.4.0", 208 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.0.tgz", 209 + "integrity": "sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==", 210 + "license": "MIT" 211 + }, 222 212 "node_modules/@atproto/syntax": { 223 - "version": "0.3.1", 224 - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.1.tgz", 225 - "integrity": "sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==", 213 + "version": "0.3.4", 214 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.4.tgz", 215 + "integrity": "sha512-8CNmi5DipOLaVeSMPggMe7FCksVag0aO6XZy9WflbduTKM4dFZVCs4686UeMLfGRXX+X966XgwECHoLYrovMMg==", 226 216 "license": "MIT" 227 217 }, 228 218 "node_modules/@atproto/xrpc": { 229 - "version": "0.6.5", 230 - "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.5.tgz", 231 - "integrity": "sha512-t6u8iPEVbWge5RhzKZDahSzNDYIAxUtop6Q/X/apAZY1rgreVU0/1sSvvRoRFH19d3UIKjYdLuwFqMi9w8nY3Q==", 219 + "version": "0.6.12", 220 + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.12.tgz", 221 + "integrity": "sha512-Ut3iISNLujlmY9Gu8sNU+SPDJDvqlVzWddU8qUr0Yae5oD4SguaUFjjhireMGhQ3M5E0KljQgDbTmnBo1kIZ3w==", 232 222 "license": "MIT", 233 223 "dependencies": { 234 - "@atproto/lexicon": "^0.4.4", 224 + "@atproto/lexicon": "^0.4.10", 235 225 "zod": "^3.23.8" 236 226 } 237 227 }, 238 228 "node_modules/@babel/helper-string-parser": { 239 - "version": "7.25.9", 240 - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 241 - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", 229 + "version": "7.27.1", 230 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 231 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 242 232 "license": "MIT", 243 233 "engines": { 244 234 "node": ">=6.9.0" 245 235 } 246 236 }, 247 237 "node_modules/@babel/helper-validator-identifier": { 248 - "version": "7.25.9", 249 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 250 - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 238 + "version": "7.27.1", 239 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 240 + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 251 241 "license": "MIT", 252 242 "engines": { 253 243 "node": ">=6.9.0" 254 244 } 255 245 }, 256 246 "node_modules/@babel/parser": { 257 - "version": "7.26.3", 258 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", 259 - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", 247 + "version": "7.28.3", 248 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", 249 + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", 260 250 "license": "MIT", 261 251 "dependencies": { 262 - "@babel/types": "^7.26.3" 252 + "@babel/types": "^7.28.2" 263 253 }, 264 254 "bin": { 265 255 "parser": "bin/babel-parser.js" ··· 269 259 } 270 260 }, 271 261 "node_modules/@babel/types": { 272 - "version": "7.26.3", 273 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", 274 - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", 262 + "version": "7.28.2", 263 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", 264 + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", 275 265 "license": "MIT", 276 266 "dependencies": { 277 - "@babel/helper-string-parser": "^7.25.9", 278 - "@babel/helper-validator-identifier": "^7.25.9" 267 + "@babel/helper-string-parser": "^7.27.1", 268 + "@babel/helper-validator-identifier": "^7.27.1" 279 269 }, 280 270 "engines": { 281 271 "node": ">=6.9.0" ··· 292 282 "fontkit": "^2.0.2" 293 283 } 294 284 }, 295 - "node_modules/@cspotcode/source-map-support": { 296 - "version": "0.8.1", 297 - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 298 - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 299 - "dev": true, 300 - "license": "MIT", 301 - "dependencies": { 302 - "@jridgewell/trace-mapping": "0.3.9" 303 - }, 304 - "engines": { 305 - "node": ">=12" 306 - } 307 - }, 308 - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { 309 - "version": "0.3.9", 310 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 311 - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 312 - "dev": true, 313 - "license": "MIT", 314 - "dependencies": { 315 - "@jridgewell/resolve-uri": "^3.0.3", 316 - "@jridgewell/sourcemap-codec": "^1.4.10" 317 - } 318 - }, 319 - "node_modules/@edge-runtime/format": { 320 - "version": "2.2.1", 321 - "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-2.2.1.tgz", 322 - "integrity": "sha512-JQTRVuiusQLNNLe2W9tnzBlV/GvSVcozLl4XZHk5swnRZ/v6jp8TqR8P7sqmJsQqblDZ3EztcWmLDbhRje/+8g==", 323 - "dev": true, 324 - "license": "MPL-2.0", 325 - "engines": { 326 - "node": ">=16" 327 - } 328 - }, 329 - "node_modules/@edge-runtime/node-utils": { 330 - "version": "2.3.0", 331 - "resolved": "https://registry.npmjs.org/@edge-runtime/node-utils/-/node-utils-2.3.0.tgz", 332 - "integrity": "sha512-uUtx8BFoO1hNxtHjp3eqVPC/mWImGb2exOfGjMLUoipuWgjej+f4o/VP4bUI8U40gu7Teogd5VTeZUkGvJSPOQ==", 333 - "dev": true, 334 - "license": "MPL-2.0", 335 - "engines": { 336 - "node": ">=16" 337 - } 338 - }, 339 - "node_modules/@edge-runtime/ponyfill": { 340 - "version": "2.4.2", 341 - "resolved": "https://registry.npmjs.org/@edge-runtime/ponyfill/-/ponyfill-2.4.2.tgz", 342 - "integrity": "sha512-oN17GjFr69chu6sDLvXxdhg0Qe8EZviGSuqzR9qOiKh4MhFYGdBBcqRNzdmYeAdeRzOW2mM9yil4RftUQ7sUOA==", 343 - "dev": true, 344 - "license": "MPL-2.0", 345 - "engines": { 346 - "node": ">=16" 347 - } 348 - }, 349 - "node_modules/@edge-runtime/primitives": { 350 - "version": "4.1.0", 351 - "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-4.1.0.tgz", 352 - "integrity": "sha512-Vw0lbJ2lvRUqc7/soqygUX216Xb8T3WBZ987oywz6aJqRxcwSVWwr9e+Nqo2m9bxobA9mdbWNNoRY6S9eko1EQ==", 353 - "dev": true, 354 - "license": "MPL-2.0", 355 - "engines": { 356 - "node": ">=16" 357 - } 358 - }, 359 - "node_modules/@edge-runtime/vm": { 360 - "version": "3.2.0", 361 - "resolved": "https://registry.npmjs.org/@edge-runtime/vm/-/vm-3.2.0.tgz", 362 - "integrity": "sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==", 363 - "dev": true, 364 - "license": "MPL-2.0", 365 - "dependencies": { 366 - "@edge-runtime/primitives": "4.1.0" 367 - }, 368 - "engines": { 369 - "node": ">=16" 370 - } 371 - }, 372 285 "node_modules/@emnapi/runtime": { 373 - "version": "1.3.1", 374 - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", 375 - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", 376 - "dev": true, 286 + "version": "1.5.0", 287 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", 288 + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", 377 289 "license": "MIT", 378 290 "optional": true, 379 291 "dependencies": { ··· 796 708 "node": ">=18" 797 709 } 798 710 }, 799 - "node_modules/@fastify/busboy": { 800 - "version": "2.1.1", 801 - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 802 - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 803 - "devOptional": true, 804 - "license": "MIT", 805 - "engines": { 806 - "node": ">=14" 807 - } 808 - }, 809 711 "node_modules/@iconify-json/fa6-brands": { 810 - "version": "1.2.5", 811 - "resolved": "https://registry.npmjs.org/@iconify-json/fa6-brands/-/fa6-brands-1.2.5.tgz", 812 - "integrity": "sha512-U/iFfziz6jSN9zArOJZYTtoj2tQyh6MxPdI8M84DQ2kEulPaj8j+h9bqvjmzszNHmD7v+kmmKd/MLkMKk+3Zuw==", 712 + "version": "1.2.6", 713 + "resolved": "https://registry.npmjs.org/@iconify-json/fa6-brands/-/fa6-brands-1.2.6.tgz", 714 + "integrity": "sha512-twL3X4KWcxAhbc1vz/mIDsVr+CAItk1/EIfxKUVQtpv6O4eydk5KNYqTZWdvJNHGInUgd6vKg21aWfVgb5DXEg==", 813 715 "license": "CC-BY-4.0", 814 716 "dependencies": { 815 717 "@iconify/types": "*" 816 718 } 817 719 }, 818 720 "node_modules/@iconify-json/fa6-solid": { 819 - "version": "1.2.3", 820 - "resolved": "https://registry.npmjs.org/@iconify-json/fa6-solid/-/fa6-solid-1.2.3.tgz", 821 - "integrity": "sha512-C5o8YJF+ekrS4wRb/6/0SE2KjRyJlCg++IOVC/fineiRinITivsmzFRNW1MQX2xfDZ1T7bxeKxLN6lcaTG3jGA==", 721 + "version": "1.2.4", 722 + "resolved": "https://registry.npmjs.org/@iconify-json/fa6-solid/-/fa6-solid-1.2.4.tgz", 723 + "integrity": "sha512-LmDNNdJVyvF5mPm1yxWvL8KjCc/E8LzoqnF1LNTVpyY2ZJRUlGOWuPIThdbuFBF2IovgttkIyumhyqfmlHdwKg==", 822 724 "license": "CC-BY-4.0", 823 725 "dependencies": { 824 726 "@iconify/types": "*" ··· 837 739 "cpu": [ 838 740 "arm64" 839 741 ], 840 - "dev": true, 841 742 "license": "Apache-2.0", 842 743 "optional": true, 843 744 "os": [ ··· 860 761 "cpu": [ 861 762 "x64" 862 763 ], 863 - "dev": true, 864 764 "license": "Apache-2.0", 865 765 "optional": true, 866 766 "os": [ ··· 883 783 "cpu": [ 884 784 "arm64" 885 785 ], 886 - "dev": true, 887 786 "license": "LGPL-3.0-or-later", 888 787 "optional": true, 889 788 "os": [ ··· 900 799 "cpu": [ 901 800 "x64" 902 801 ], 903 - "dev": true, 904 802 "license": "LGPL-3.0-or-later", 905 803 "optional": true, 906 804 "os": [ ··· 917 815 "cpu": [ 918 816 "arm" 919 817 ], 920 - "dev": true, 921 818 "license": "LGPL-3.0-or-later", 922 819 "optional": true, 923 820 "os": [ ··· 934 831 "cpu": [ 935 832 "arm64" 936 833 ], 937 - "dev": true, 938 834 "license": "LGPL-3.0-or-later", 939 835 "optional": true, 940 836 "os": [ ··· 951 847 "cpu": [ 952 848 "s390x" 953 849 ], 954 - "dev": true, 955 850 "license": "LGPL-3.0-or-later", 956 851 "optional": true, 957 852 "os": [ ··· 968 863 "cpu": [ 969 864 "x64" 970 865 ], 971 - "dev": true, 972 866 "license": "LGPL-3.0-or-later", 973 867 "optional": true, 974 868 "os": [ ··· 985 879 "cpu": [ 986 880 "arm64" 987 881 ], 988 - "dev": true, 989 882 "license": "LGPL-3.0-or-later", 990 883 "optional": true, 991 884 "os": [ ··· 1002 895 "cpu": [ 1003 896 "x64" 1004 897 ], 1005 - "dev": true, 1006 898 "license": "LGPL-3.0-or-later", 1007 899 "optional": true, 1008 900 "os": [ ··· 1019 911 "cpu": [ 1020 912 "arm" 1021 913 ], 1022 - "dev": true, 1023 914 "license": "Apache-2.0", 1024 915 "optional": true, 1025 916 "os": [ ··· 1042 933 "cpu": [ 1043 934 "arm64" 1044 935 ], 1045 - "dev": true, 1046 936 "license": "Apache-2.0", 1047 937 "optional": true, 1048 938 "os": [ ··· 1065 955 "cpu": [ 1066 956 "s390x" 1067 957 ], 1068 - "dev": true, 1069 958 "license": "Apache-2.0", 1070 959 "optional": true, 1071 960 "os": [ ··· 1088 977 "cpu": [ 1089 978 "x64" 1090 979 ], 1091 - "dev": true, 1092 980 "license": "Apache-2.0", 1093 981 "optional": true, 1094 982 "os": [ ··· 1111 999 "cpu": [ 1112 1000 "arm64" 1113 1001 ], 1114 - "dev": true, 1115 1002 "license": "Apache-2.0", 1116 1003 "optional": true, 1117 1004 "os": [ ··· 1134 1021 "cpu": [ 1135 1022 "x64" 1136 1023 ], 1137 - "dev": true, 1138 1024 "license": "Apache-2.0", 1139 1025 "optional": true, 1140 1026 "os": [ ··· 1157 1043 "cpu": [ 1158 1044 "wasm32" 1159 1045 ], 1160 - "dev": true, 1161 1046 "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 1162 1047 "optional": true, 1163 1048 "dependencies": { ··· 1177 1062 "cpu": [ 1178 1063 "ia32" 1179 1064 ], 1180 - "dev": true, 1181 1065 "license": "Apache-2.0 AND LGPL-3.0-or-later", 1182 1066 "optional": true, 1183 1067 "os": [ ··· 1197 1081 "cpu": [ 1198 1082 "x64" 1199 1083 ], 1200 - "dev": true, 1201 1084 "license": "Apache-2.0 AND LGPL-3.0-or-later", 1202 1085 "optional": true, 1203 1086 "os": [ ··· 1210 1093 "url": "https://opencollective.com/libvips" 1211 1094 } 1212 1095 }, 1213 - "node_modules/@isaacs/cliui": { 1214 - "version": "8.0.2", 1215 - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 1216 - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 1217 - "dev": true, 1218 - "license": "ISC", 1219 - "dependencies": { 1220 - "string-width": "^5.1.2", 1221 - "string-width-cjs": "npm:string-width@^4.2.0", 1222 - "strip-ansi": "^7.0.1", 1223 - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 1224 - "wrap-ansi": "^8.1.0", 1225 - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 1226 - }, 1227 - "engines": { 1228 - "node": ">=12" 1229 - } 1230 - }, 1231 - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { 1232 - "version": "9.2.2", 1233 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1234 - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1235 - "dev": true, 1236 - "license": "MIT" 1237 - }, 1238 - "node_modules/@isaacs/cliui/node_modules/string-width": { 1239 - "version": "5.1.2", 1240 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1241 - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1242 - "dev": true, 1096 + "node_modules/@jridgewell/gen-mapping": { 1097 + "version": "0.3.13", 1098 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 1099 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 1243 1100 "license": "MIT", 1244 1101 "dependencies": { 1245 - "eastasianwidth": "^0.2.0", 1246 - "emoji-regex": "^9.2.2", 1247 - "strip-ansi": "^7.0.1" 1248 - }, 1249 - "engines": { 1250 - "node": ">=12" 1251 - }, 1252 - "funding": { 1253 - "url": "https://github.com/sponsors/sindresorhus" 1102 + "@jridgewell/sourcemap-codec": "^1.5.0", 1103 + "@jridgewell/trace-mapping": "^0.3.24" 1254 1104 } 1255 1105 }, 1256 - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { 1257 - "version": "8.1.0", 1258 - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1259 - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1260 - "dev": true, 1106 + "node_modules/@jridgewell/remapping": { 1107 + "version": "2.3.5", 1108 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 1109 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 1261 1110 "license": "MIT", 1262 1111 "dependencies": { 1263 - "ansi-styles": "^6.1.0", 1264 - "string-width": "^5.0.1", 1265 - "strip-ansi": "^7.0.1" 1266 - }, 1267 - "engines": { 1268 - "node": ">=12" 1269 - }, 1270 - "funding": { 1271 - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1272 - } 1273 - }, 1274 - "node_modules/@isaacs/fs-minipass": { 1275 - "version": "4.0.1", 1276 - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", 1277 - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", 1278 - "dev": true, 1279 - "license": "ISC", 1280 - "dependencies": { 1281 - "minipass": "^7.0.4" 1282 - }, 1283 - "engines": { 1284 - "node": ">=18.0.0" 1285 - } 1286 - }, 1287 - "node_modules/@jridgewell/gen-mapping": { 1288 - "version": "0.3.8", 1289 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 1290 - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 1291 - "license": "MIT", 1292 - "dependencies": { 1293 - "@jridgewell/set-array": "^1.2.1", 1294 - "@jridgewell/sourcemap-codec": "^1.4.10", 1112 + "@jridgewell/gen-mapping": "^0.3.5", 1295 1113 "@jridgewell/trace-mapping": "^0.3.24" 1296 - }, 1297 - "engines": { 1298 - "node": ">=6.0.0" 1299 1114 } 1300 1115 }, 1301 1116 "node_modules/@jridgewell/resolve-uri": { ··· 1307 1122 "node": ">=6.0.0" 1308 1123 } 1309 1124 }, 1310 - "node_modules/@jridgewell/set-array": { 1311 - "version": "1.2.1", 1312 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 1313 - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 1314 - "license": "MIT", 1315 - "engines": { 1316 - "node": ">=6.0.0" 1317 - } 1318 - }, 1319 1125 "node_modules/@jridgewell/sourcemap-codec": { 1320 - "version": "1.5.0", 1321 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1322 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1126 + "version": "1.5.5", 1127 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1128 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1323 1129 "license": "MIT" 1324 1130 }, 1325 1131 "node_modules/@jridgewell/trace-mapping": { 1326 - "version": "0.3.25", 1327 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1328 - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 1132 + "version": "0.3.30", 1133 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", 1134 + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", 1329 1135 "license": "MIT", 1330 1136 "dependencies": { 1331 1137 "@jridgewell/resolve-uri": "^3.1.0", 1332 1138 "@jridgewell/sourcemap-codec": "^1.4.14" 1333 1139 } 1334 1140 }, 1335 - "node_modules/@mapbox/node-pre-gyp": { 1336 - "version": "2.0.0", 1337 - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.0.tgz", 1338 - "integrity": "sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==", 1339 - "dev": true, 1340 - "license": "BSD-3-Clause", 1341 - "dependencies": { 1342 - "consola": "^3.2.3", 1343 - "detect-libc": "^2.0.0", 1344 - "https-proxy-agent": "^7.0.5", 1345 - "node-fetch": "^2.6.7", 1346 - "nopt": "^8.0.0", 1347 - "semver": "^7.5.3", 1348 - "tar": "^7.4.0" 1349 - }, 1350 - "bin": { 1351 - "node-pre-gyp": "bin/node-pre-gyp" 1352 - }, 1353 - "engines": { 1354 - "node": ">=18" 1355 - } 1356 - }, 1357 - "node_modules/@mapbox/node-pre-gyp/node_modules/chownr": { 1358 - "version": "3.0.0", 1359 - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", 1360 - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", 1361 - "dev": true, 1362 - "license": "BlueOak-1.0.0", 1363 - "engines": { 1364 - "node": ">=18" 1365 - } 1366 - }, 1367 - "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib": { 1368 - "version": "3.0.2", 1369 - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", 1370 - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", 1371 - "dev": true, 1372 - "license": "MIT", 1373 - "dependencies": { 1374 - "minipass": "^7.1.2" 1375 - }, 1376 - "engines": { 1377 - "node": ">= 18" 1378 - } 1379 - }, 1380 - "node_modules/@mapbox/node-pre-gyp/node_modules/mkdirp": { 1381 - "version": "3.0.1", 1382 - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", 1383 - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", 1384 - "dev": true, 1385 - "license": "MIT", 1386 - "bin": { 1387 - "mkdirp": "dist/cjs/src/bin.js" 1388 - }, 1389 - "engines": { 1390 - "node": ">=10" 1391 - }, 1392 - "funding": { 1393 - "url": "https://github.com/sponsors/isaacs" 1394 - } 1395 - }, 1396 - "node_modules/@mapbox/node-pre-gyp/node_modules/tar": { 1397 - "version": "7.4.3", 1398 - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", 1399 - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", 1400 - "dev": true, 1401 - "license": "ISC", 1402 - "dependencies": { 1403 - "@isaacs/fs-minipass": "^4.0.0", 1404 - "chownr": "^3.0.0", 1405 - "minipass": "^7.1.2", 1406 - "minizlib": "^3.0.1", 1407 - "mkdirp": "^3.0.1", 1408 - "yallist": "^5.0.0" 1409 - }, 1410 - "engines": { 1411 - "node": ">=18" 1412 - } 1413 - }, 1414 - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { 1415 - "version": "5.0.0", 1416 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", 1417 - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", 1418 - "dev": true, 1419 - "license": "BlueOak-1.0.0", 1420 - "engines": { 1421 - "node": ">=18" 1422 - } 1423 - }, 1424 1141 "node_modules/@mdx-js/mdx": { 1425 1142 "version": "3.1.0", 1426 1143 "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", ··· 1457 1174 "url": "https://opencollective.com/unified" 1458 1175 } 1459 1176 }, 1460 - "node_modules/@nodelib/fs.scandir": { 1461 - "version": "2.1.5", 1462 - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1463 - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1464 - "dev": true, 1465 - "license": "MIT", 1466 - "dependencies": { 1467 - "@nodelib/fs.stat": "2.0.5", 1468 - "run-parallel": "^1.1.9" 1469 - }, 1470 - "engines": { 1471 - "node": ">= 8" 1472 - } 1473 - }, 1474 - "node_modules/@nodelib/fs.stat": { 1475 - "version": "2.0.5", 1476 - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1477 - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1478 - "dev": true, 1479 - "license": "MIT", 1480 - "engines": { 1481 - "node": ">= 8" 1482 - } 1483 - }, 1484 - "node_modules/@nodelib/fs.walk": { 1485 - "version": "1.2.8", 1486 - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1487 - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1488 - "dev": true, 1489 - "license": "MIT", 1490 - "dependencies": { 1491 - "@nodelib/fs.scandir": "2.1.5", 1492 - "fastq": "^1.6.0" 1493 - }, 1494 - "engines": { 1495 - "node": ">= 8" 1496 - } 1497 - }, 1498 1177 "node_modules/@oslojs/encoding": { 1499 1178 "version": "1.1.0", 1500 1179 "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", 1501 1180 "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", 1502 1181 "license": "MIT" 1503 1182 }, 1504 - "node_modules/@photostructure/tz-lookup": { 1505 - "version": "11.1.0", 1506 - "resolved": "https://registry.npmjs.org/@photostructure/tz-lookup/-/tz-lookup-11.1.0.tgz", 1507 - "integrity": "sha512-UywyhMwUdVU2aH5ls7EweTEyPpXbDkgC//Nnsm/lWfpae8WX3N33Yy0/aBmb/Pd9+qEtgcFMYTtN/Htb+cd0ZA==", 1508 - "dev": true, 1509 - "license": "CC0-1.0" 1510 - }, 1511 - "node_modules/@pkgjs/parseargs": { 1512 - "version": "0.11.0", 1513 - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 1514 - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 1515 - "dev": true, 1516 - "license": "MIT", 1517 - "optional": true, 1518 - "engines": { 1519 - "node": ">=14" 1520 - } 1521 - }, 1522 1183 "node_modules/@rollup/pluginutils": { 1523 - "version": "5.1.4", 1524 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", 1525 - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", 1184 + "version": "5.2.0", 1185 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz", 1186 + "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==", 1526 1187 "license": "MIT", 1527 1188 "dependencies": { 1528 1189 "@types/estree": "^1.0.0", ··· 1874 1535 "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", 1875 1536 "license": "MIT" 1876 1537 }, 1877 - "node_modules/@sinclair/typebox": { 1878 - "version": "0.25.24", 1879 - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", 1880 - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", 1881 - "dev": true, 1882 - "license": "MIT" 1538 + "node_modules/@sveltejs/acorn-typescript": { 1539 + "version": "1.0.5", 1540 + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", 1541 + "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", 1542 + "license": "MIT", 1543 + "peerDependencies": { 1544 + "acorn": "^8.9.0" 1545 + } 1883 1546 }, 1884 1547 "node_modules/@sveltejs/vite-plugin-svelte": { 1885 - "version": "5.0.3", 1886 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", 1887 - "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", 1548 + "version": "5.1.1", 1549 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", 1550 + "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", 1888 1551 "license": "MIT", 1889 1552 "dependencies": { 1890 1553 "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", 1891 - "debug": "^4.4.0", 1554 + "debug": "^4.4.1", 1892 1555 "deepmerge": "^4.3.1", 1893 1556 "kleur": "^4.1.5", 1894 - "magic-string": "^0.30.15", 1895 - "vitefu": "^1.0.4" 1557 + "magic-string": "^0.30.17", 1558 + "vitefu": "^1.0.6" 1896 1559 }, 1897 1560 "engines": { 1898 1561 "node": "^18.0.0 || ^20.0.0 || >=22" ··· 1928 1591 "tslib": "^2.8.0" 1929 1592 } 1930 1593 }, 1931 - "node_modules/@tootallnate/once": { 1932 - "version": "2.0.0", 1933 - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", 1934 - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", 1935 - "dev": true, 1936 - "license": "MIT", 1937 - "engines": { 1938 - "node": ">= 10" 1939 - } 1940 - }, 1941 - "node_modules/@ts-morph/common": { 1942 - "version": "0.11.1", 1943 - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.11.1.tgz", 1944 - "integrity": "sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==", 1945 - "dev": true, 1946 - "license": "MIT", 1947 - "dependencies": { 1948 - "fast-glob": "^3.2.7", 1949 - "minimatch": "^3.0.4", 1950 - "mkdirp": "^1.0.4", 1951 - "path-browserify": "^1.0.1" 1952 - } 1953 - }, 1954 - "node_modules/@ts-morph/common/node_modules/brace-expansion": { 1955 - "version": "1.1.12", 1956 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", 1957 - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 1958 - "dev": true, 1959 - "license": "MIT", 1960 - "dependencies": { 1961 - "balanced-match": "^1.0.0", 1962 - "concat-map": "0.0.1" 1963 - } 1964 - }, 1965 - "node_modules/@ts-morph/common/node_modules/minimatch": { 1966 - "version": "3.1.2", 1967 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1968 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1969 - "dev": true, 1970 - "license": "ISC", 1971 - "dependencies": { 1972 - "brace-expansion": "^1.1.7" 1973 - }, 1974 - "engines": { 1975 - "node": "*" 1976 - } 1977 - }, 1978 - "node_modules/@tsconfig/node10": { 1979 - "version": "1.0.11", 1980 - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", 1981 - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", 1982 - "dev": true, 1983 - "license": "MIT" 1984 - }, 1985 - "node_modules/@tsconfig/node12": { 1986 - "version": "1.0.11", 1987 - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", 1988 - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", 1989 - "dev": true, 1990 - "license": "MIT" 1991 - }, 1992 - "node_modules/@tsconfig/node14": { 1993 - "version": "1.0.3", 1994 - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", 1995 - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", 1996 - "dev": true, 1997 - "license": "MIT" 1998 - }, 1999 - "node_modules/@tsconfig/node16": { 2000 - "version": "1.0.4", 2001 - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", 2002 - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", 2003 - "dev": true, 2004 - "license": "MIT" 2005 - }, 2006 - "node_modules/@types/acorn": { 2007 - "version": "4.0.6", 2008 - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", 2009 - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", 2010 - "license": "MIT", 2011 - "dependencies": { 2012 - "@types/estree": "*" 2013 - } 2014 - }, 2015 1594 "node_modules/@types/debug": { 2016 1595 "version": "4.1.12", 2017 1596 "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", ··· 2054 1633 "@types/unist": "*" 2055 1634 } 2056 1635 }, 2057 - "node_modules/@types/json-schema": { 2058 - "version": "7.0.15", 2059 - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 2060 - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 2061 - "dev": true, 2062 - "license": "MIT" 2063 - }, 2064 - "node_modules/@types/luxon": { 2065 - "version": "3.4.2", 2066 - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.4.2.tgz", 2067 - "integrity": "sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==", 2068 - "dev": true, 2069 - "license": "MIT" 2070 - }, 2071 1636 "node_modules/@types/mdast": { 2072 1637 "version": "4.0.4", 2073 1638 "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", ··· 2084 1649 "license": "MIT" 2085 1650 }, 2086 1651 "node_modules/@types/ms": { 2087 - "version": "0.7.34", 2088 - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", 2089 - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", 1652 + "version": "2.1.0", 1653 + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", 1654 + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", 2090 1655 "license": "MIT" 2091 1656 }, 2092 1657 "node_modules/@types/nlcst": { ··· 2099 1664 } 2100 1665 }, 2101 1666 "node_modules/@types/node": { 2102 - "version": "22.10.2", 2103 - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", 2104 - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", 1667 + "version": "24.3.0", 1668 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", 1669 + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", 2105 1670 "license": "MIT", 2106 1671 "dependencies": { 2107 - "undici-types": "~6.20.0" 1672 + "undici-types": "~7.10.0" 2108 1673 } 2109 1674 }, 2110 1675 "node_modules/@types/sax": { ··· 2123 1688 "license": "MIT" 2124 1689 }, 2125 1690 "node_modules/@ungap/structured-clone": { 2126 - "version": "1.2.1", 2127 - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", 2128 - "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", 1691 + "version": "1.3.0", 1692 + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", 1693 + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", 2129 1694 "license": "ISC" 2130 1695 }, 2131 - "node_modules/@vercel/analytics": { 2132 - "version": "1.4.1", 2133 - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.4.1.tgz", 2134 - "integrity": "sha512-ekpL4ReX2TH3LnrRZTUKjHHNpNy9S1I7QmS+g/RQXoSUQ8ienzosuX7T9djZ/s8zPhBx1mpHP/Rw5875N+zQIQ==", 2135 - "license": "MPL-2.0", 2136 - "peerDependencies": { 2137 - "@remix-run/react": "^2", 2138 - "@sveltejs/kit": "^1 || ^2", 2139 - "next": ">= 13", 2140 - "react": "^18 || ^19 || ^19.0.0-rc", 2141 - "svelte": ">= 4", 2142 - "vue": "^3", 2143 - "vue-router": "^4" 2144 - }, 2145 - "peerDependenciesMeta": { 2146 - "@remix-run/react": { 2147 - "optional": true 2148 - }, 2149 - "@sveltejs/kit": { 2150 - "optional": true 2151 - }, 2152 - "next": { 2153 - "optional": true 2154 - }, 2155 - "react": { 2156 - "optional": true 2157 - }, 2158 - "svelte": { 2159 - "optional": true 2160 - }, 2161 - "vue": { 2162 - "optional": true 2163 - }, 2164 - "vue-router": { 2165 - "optional": true 2166 - } 2167 - } 2168 - }, 2169 - "node_modules/@vercel/blob": { 2170 - "version": "1.0.2", 2171 - "resolved": "https://registry.npmjs.org/@vercel/blob/-/blob-1.0.2.tgz", 2172 - "integrity": "sha512-Im/KeFH4oPx7UsM+QiteimnE07bIUD7JK6CBafI9Z0jRFogaialTBMiZj8EKk/30ctUYsrpIIyP9iIY1YxWnUQ==", 2173 - "devOptional": true, 2174 - "license": "Apache-2.0", 2175 - "dependencies": { 2176 - "async-retry": "^1.3.3", 2177 - "is-buffer": "^2.0.5", 2178 - "is-node-process": "^1.2.0", 2179 - "throttleit": "^2.1.0", 2180 - "undici": "^5.28.4" 2181 - }, 2182 - "engines": { 2183 - "node": ">=16.14" 2184 - } 2185 - }, 2186 - "node_modules/@vercel/build-utils": { 2187 - "version": "11.0.2", 2188 - "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-11.0.2.tgz", 2189 - "integrity": "sha512-Y48OT9IsvAFU21LJ3m5SbrXpQaD++h4v4nQoQjCUDZORxXzPf3doVQfrQBBIX45xoSkfq/Fuq0VNF0yRbJw/aA==", 2190 - "dev": true, 2191 - "license": "Apache-2.0" 2192 - }, 2193 - "node_modules/@vercel/detect-agent": { 2194 - "version": "0.2.0", 2195 - "resolved": "https://registry.npmjs.org/@vercel/detect-agent/-/detect-agent-0.2.0.tgz", 2196 - "integrity": "sha512-qf10Q2UwlbJAcWVqQGkyp9OlLBn9Aj2VVE0M4mTDe0gpB7Fo8qycTJLccDbHeyLrWnT6Q12sVy9ZYHas7B+rwg==", 2197 - "dev": true, 2198 - "license": "Apache-2.0" 2199 - }, 2200 - "node_modules/@vercel/error-utils": { 2201 - "version": "2.0.3", 2202 - "resolved": "https://registry.npmjs.org/@vercel/error-utils/-/error-utils-2.0.3.tgz", 2203 - "integrity": "sha512-CqC01WZxbLUxoiVdh9B/poPbNpY9U+tO1N9oWHwTl5YAZxcqXmmWJ8KNMFItJCUUWdY3J3xv8LvAuQv2KZ5YdQ==", 2204 - "dev": true, 2205 - "license": "Apache-2.0" 2206 - }, 2207 - "node_modules/@vercel/express": { 2208 - "version": "0.0.10", 2209 - "resolved": "https://registry.npmjs.org/@vercel/express/-/express-0.0.10.tgz", 2210 - "integrity": "sha512-t2rVsyCeh+ayu2gMno16UNF4xmX/FDTzfREVd1v6sEfzY80qAS9qvKWSuFKfV3VjAiqlSnWBpiw4gU6Mu0gNQg==", 2211 - "dev": true, 2212 - "license": "Apache-2.0", 2213 - "dependencies": { 2214 - "@vercel/node": "5.3.17", 2215 - "@vercel/static-config": "3.1.2", 2216 - "ts-morph": "12.0.0" 2217 - } 2218 - }, 2219 - "node_modules/@vercel/fun": { 2220 - "version": "1.1.6", 2221 - "resolved": "https://registry.npmjs.org/@vercel/fun/-/fun-1.1.6.tgz", 2222 - "integrity": "sha512-xDiM+bD0fSZyzcjsAua3D+guXclvHOSTzr03UcZEQwYzIjwWjLduT7bl2gAaeNIe7fASAIZd0P00clcj0On4rQ==", 2223 - "dev": true, 2224 - "license": "Apache-2.0", 2225 - "dependencies": { 2226 - "@tootallnate/once": "2.0.0", 2227 - "async-listen": "1.2.0", 2228 - "debug": "4.3.4", 2229 - "generic-pool": "3.4.2", 2230 - "micro": "9.3.5-canary.3", 2231 - "ms": "2.1.1", 2232 - "node-fetch": "2.6.7", 2233 - "path-match": "1.2.4", 2234 - "promisepipe": "3.0.0", 2235 - "semver": "7.5.4", 2236 - "stat-mode": "0.3.0", 2237 - "stream-to-promise": "2.2.0", 2238 - "tar": "6.2.1", 2239 - "tinyexec": "0.3.2", 2240 - "tree-kill": "1.2.2", 2241 - "uid-promise": "1.0.0", 2242 - "xdg-app-paths": "5.1.0", 2243 - "yauzl-promise": "2.1.3" 2244 - }, 2245 - "engines": { 2246 - "node": ">= 18" 2247 - } 2248 - }, 2249 - "node_modules/@vercel/fun/node_modules/debug": { 2250 - "version": "4.3.4", 2251 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2252 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2253 - "dev": true, 2254 - "license": "MIT", 2255 - "dependencies": { 2256 - "ms": "2.1.2" 2257 - }, 2258 - "engines": { 2259 - "node": ">=6.0" 2260 - }, 2261 - "peerDependenciesMeta": { 2262 - "supports-color": { 2263 - "optional": true 2264 - } 2265 - } 2266 - }, 2267 - "node_modules/@vercel/fun/node_modules/debug/node_modules/ms": { 2268 - "version": "2.1.2", 2269 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2270 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2271 - "dev": true, 2272 - "license": "MIT" 2273 - }, 2274 - "node_modules/@vercel/fun/node_modules/lru-cache": { 2275 - "version": "6.0.0", 2276 - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2277 - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2278 - "dev": true, 2279 - "license": "ISC", 2280 - "dependencies": { 2281 - "yallist": "^4.0.0" 2282 - }, 2283 - "engines": { 2284 - "node": ">=10" 2285 - } 2286 - }, 2287 - "node_modules/@vercel/fun/node_modules/ms": { 2288 - "version": "2.1.1", 2289 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 2290 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 2291 - "dev": true, 2292 - "license": "MIT" 2293 - }, 2294 - "node_modules/@vercel/fun/node_modules/node-fetch": { 2295 - "version": "2.6.7", 2296 - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 2297 - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 2298 - "dev": true, 2299 - "license": "MIT", 2300 - "dependencies": { 2301 - "whatwg-url": "^5.0.0" 2302 - }, 2303 - "engines": { 2304 - "node": "4.x || >=6.0.0" 2305 - }, 2306 - "peerDependencies": { 2307 - "encoding": "^0.1.0" 2308 - }, 2309 - "peerDependenciesMeta": { 2310 - "encoding": { 2311 - "optional": true 2312 - } 2313 - } 2314 - }, 2315 - "node_modules/@vercel/fun/node_modules/semver": { 2316 - "version": "7.5.4", 2317 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", 2318 - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", 2319 - "dev": true, 2320 - "license": "ISC", 2321 - "dependencies": { 2322 - "lru-cache": "^6.0.0" 2323 - }, 2324 - "bin": { 2325 - "semver": "bin/semver.js" 2326 - }, 2327 - "engines": { 2328 - "node": ">=10" 2329 - } 2330 - }, 2331 - "node_modules/@vercel/gatsby-plugin-vercel-analytics": { 2332 - "version": "1.0.11", 2333 - "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-analytics/-/gatsby-plugin-vercel-analytics-1.0.11.tgz", 2334 - "integrity": "sha512-iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==", 2335 - "dev": true, 2336 - "license": "Apache-2.0", 2337 - "dependencies": { 2338 - "web-vitals": "0.2.4" 2339 - } 2340 - }, 2341 - "node_modules/@vercel/gatsby-plugin-vercel-builder": { 2342 - "version": "2.0.93", 2343 - "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.93.tgz", 2344 - "integrity": "sha512-Vh1Dt+Wa3DUtyc1ety3XG//jRST9M01WiF1W1taAW2k+SfKEjAbTJWoRblj97ah5Boz+uqSBIBg2ULZvNf+xzw==", 2345 - "dev": true, 2346 - "dependencies": { 2347 - "@sinclair/typebox": "0.25.24", 2348 - "@vercel/build-utils": "11.0.2", 2349 - "esbuild": "0.14.47", 2350 - "etag": "1.8.1", 2351 - "fs-extra": "11.1.0" 2352 - } 2353 - }, 2354 - "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild": { 2355 - "version": "0.14.47", 2356 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz", 2357 - "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==", 2358 - "dev": true, 2359 - "hasInstallScript": true, 2360 - "license": "MIT", 2361 - "bin": { 2362 - "esbuild": "bin/esbuild" 2363 - }, 2364 - "engines": { 2365 - "node": ">=12" 2366 - }, 2367 - "optionalDependencies": { 2368 - "esbuild-android-64": "0.14.47", 2369 - "esbuild-android-arm64": "0.14.47", 2370 - "esbuild-darwin-64": "0.14.47", 2371 - "esbuild-darwin-arm64": "0.14.47", 2372 - "esbuild-freebsd-64": "0.14.47", 2373 - "esbuild-freebsd-arm64": "0.14.47", 2374 - "esbuild-linux-32": "0.14.47", 2375 - "esbuild-linux-64": "0.14.47", 2376 - "esbuild-linux-arm": "0.14.47", 2377 - "esbuild-linux-arm64": "0.14.47", 2378 - "esbuild-linux-mips64le": "0.14.47", 2379 - "esbuild-linux-ppc64le": "0.14.47", 2380 - "esbuild-linux-riscv64": "0.14.47", 2381 - "esbuild-linux-s390x": "0.14.47", 2382 - "esbuild-netbsd-64": "0.14.47", 2383 - "esbuild-openbsd-64": "0.14.47", 2384 - "esbuild-sunos-64": "0.14.47", 2385 - "esbuild-windows-32": "0.14.47", 2386 - "esbuild-windows-64": "0.14.47", 2387 - "esbuild-windows-arm64": "0.14.47" 2388 - } 2389 - }, 2390 - "node_modules/@vercel/go": { 2391 - "version": "3.2.3", 2392 - "resolved": "https://registry.npmjs.org/@vercel/go/-/go-3.2.3.tgz", 2393 - "integrity": "sha512-PErgHlV7cf8hyPq31aRsL4xm5t4rCSO6vN5AQLlAGSy3ctdgqG7sI6hq/CAKo3CfgIhVHUwNYapFJgGJB/s4OA==", 2394 - "dev": true, 2395 - "license": "Apache-2.0" 2396 - }, 2397 - "node_modules/@vercel/hono": { 2398 - "version": "0.0.18", 2399 - "resolved": "https://registry.npmjs.org/@vercel/hono/-/hono-0.0.18.tgz", 2400 - "integrity": "sha512-Ie6JOW/uzWvlxg3OH0itSlzetAcWqqVYrhuHnzAJi2/9InusEmWE104rOj/5D3yyvJ9aXInPj3KoUldDVwJ81Q==", 2401 - "dev": true, 2402 - "license": "Apache-2.0", 2403 - "dependencies": { 2404 - "@vercel/node": "5.3.17", 2405 - "@vercel/static-config": "3.1.2", 2406 - "ts-morph": "12.0.0" 2407 - } 2408 - }, 2409 - "node_modules/@vercel/hydrogen": { 2410 - "version": "1.2.4", 2411 - "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-1.2.4.tgz", 2412 - "integrity": "sha512-eb16oesfgHuBlXxe+WqI+rMdP4QpeHXLJh9ropFy+StkWC2F0ZFKegutEpvJCRg0FHttRnn9uMzMmzJ2F4xKkg==", 2413 - "dev": true, 2414 - "license": "Apache-2.0", 2415 - "dependencies": { 2416 - "@vercel/static-config": "3.1.2", 2417 - "ts-morph": "12.0.0" 2418 - } 2419 - }, 2420 - "node_modules/@vercel/next": { 2421 - "version": "4.12.2", 2422 - "resolved": "https://registry.npmjs.org/@vercel/next/-/next-4.12.2.tgz", 2423 - "integrity": "sha512-PfhX4bxn2KjbihWZddNI0q4S7qnWdQZFhQoVjCBm8sKcHhTPi8g36pdZTEcJH+O6/aOtu4uVEUSlKxgega9tOA==", 2424 - "dev": true, 2425 - "license": "Apache-2.0", 2426 - "dependencies": { 2427 - "@vercel/nft": "0.30.1" 2428 - } 2429 - }, 2430 - "node_modules/@vercel/nft": { 2431 - "version": "0.30.1", 2432 - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.30.1.tgz", 2433 - "integrity": "sha512-2mgJZv4AYBFkD/nJ4QmiX5Ymxi+AisPLPcS/KPXVqniyQNqKXX+wjieAbDXQP3HcogfEbpHoRMs49Cd4pfkk8g==", 2434 - "dev": true, 2435 - "license": "MIT", 2436 - "dependencies": { 2437 - "@mapbox/node-pre-gyp": "^2.0.0", 2438 - "@rollup/pluginutils": "^5.1.3", 2439 - "acorn": "^8.6.0", 2440 - "acorn-import-attributes": "^1.9.5", 2441 - "async-sema": "^3.1.1", 2442 - "bindings": "^1.4.0", 2443 - "estree-walker": "2.0.2", 2444 - "glob": "^10.4.5", 2445 - "graceful-fs": "^4.2.9", 2446 - "node-gyp-build": "^4.2.2", 2447 - "picomatch": "^4.0.2", 2448 - "resolve-from": "^5.0.0" 2449 - }, 2450 - "bin": { 2451 - "nft": "out/cli.js" 2452 - }, 2453 - "engines": { 2454 - "node": ">=18" 2455 - } 2456 - }, 2457 - "node_modules/@vercel/nft/node_modules/estree-walker": { 2458 - "version": "2.0.2", 2459 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2460 - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 2461 - "dev": true, 2462 - "license": "MIT" 2463 - }, 2464 - "node_modules/@vercel/node": { 2465 - "version": "5.3.17", 2466 - "resolved": "https://registry.npmjs.org/@vercel/node/-/node-5.3.17.tgz", 2467 - "integrity": "sha512-quNnXO1XuMMid9MXJKPDtpwiNZUFrJgTvdcUu+AXRZg99rOw9N5pk+M0rM4+0FwVXVCIlXzjfKelEOXC8SxGQw==", 2468 - "dev": true, 2469 - "license": "Apache-2.0", 2470 - "dependencies": { 2471 - "@edge-runtime/node-utils": "2.3.0", 2472 - "@edge-runtime/primitives": "4.1.0", 2473 - "@edge-runtime/vm": "3.2.0", 2474 - "@types/node": "16.18.11", 2475 - "@vercel/build-utils": "11.0.2", 2476 - "@vercel/error-utils": "2.0.3", 2477 - "@vercel/nft": "0.30.1", 2478 - "@vercel/static-config": "3.1.2", 2479 - "async-listen": "3.0.0", 2480 - "cjs-module-lexer": "1.2.3", 2481 - "edge-runtime": "2.5.9", 2482 - "es-module-lexer": "1.4.1", 2483 - "esbuild": "0.14.47", 2484 - "etag": "1.8.1", 2485 - "node-fetch": "2.6.9", 2486 - "path-to-regexp": "6.1.0", 2487 - "path-to-regexp-updated": "npm:path-to-regexp@6.3.0", 2488 - "ts-morph": "12.0.0", 2489 - "ts-node": "10.9.1", 2490 - "typescript": "4.9.5", 2491 - "undici": "5.28.4" 2492 - } 2493 - }, 2494 - "node_modules/@vercel/node/node_modules/@types/node": { 2495 - "version": "16.18.11", 2496 - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz", 2497 - "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", 2498 - "dev": true, 2499 - "license": "MIT" 2500 - }, 2501 - "node_modules/@vercel/node/node_modules/async-listen": { 2502 - "version": "3.0.0", 2503 - "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-3.0.0.tgz", 2504 - "integrity": "sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==", 2505 - "dev": true, 2506 - "license": "MIT", 2507 - "engines": { 2508 - "node": ">= 14" 2509 - } 2510 - }, 2511 - "node_modules/@vercel/node/node_modules/es-module-lexer": { 2512 - "version": "1.4.1", 2513 - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", 2514 - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", 2515 - "dev": true, 2516 - "license": "MIT" 2517 - }, 2518 - "node_modules/@vercel/node/node_modules/esbuild": { 2519 - "version": "0.14.47", 2520 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz", 2521 - "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==", 2522 - "dev": true, 2523 - "hasInstallScript": true, 2524 - "license": "MIT", 2525 - "bin": { 2526 - "esbuild": "bin/esbuild" 2527 - }, 2528 - "engines": { 2529 - "node": ">=12" 2530 - }, 2531 - "optionalDependencies": { 2532 - "esbuild-android-64": "0.14.47", 2533 - "esbuild-android-arm64": "0.14.47", 2534 - "esbuild-darwin-64": "0.14.47", 2535 - "esbuild-darwin-arm64": "0.14.47", 2536 - "esbuild-freebsd-64": "0.14.47", 2537 - "esbuild-freebsd-arm64": "0.14.47", 2538 - "esbuild-linux-32": "0.14.47", 2539 - "esbuild-linux-64": "0.14.47", 2540 - "esbuild-linux-arm": "0.14.47", 2541 - "esbuild-linux-arm64": "0.14.47", 2542 - "esbuild-linux-mips64le": "0.14.47", 2543 - "esbuild-linux-ppc64le": "0.14.47", 2544 - "esbuild-linux-riscv64": "0.14.47", 2545 - "esbuild-linux-s390x": "0.14.47", 2546 - "esbuild-netbsd-64": "0.14.47", 2547 - "esbuild-openbsd-64": "0.14.47", 2548 - "esbuild-sunos-64": "0.14.47", 2549 - "esbuild-windows-32": "0.14.47", 2550 - "esbuild-windows-64": "0.14.47", 2551 - "esbuild-windows-arm64": "0.14.47" 2552 - } 2553 - }, 2554 - "node_modules/@vercel/node/node_modules/node-fetch": { 2555 - "version": "2.6.9", 2556 - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", 2557 - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", 2558 - "dev": true, 2559 - "license": "MIT", 2560 - "dependencies": { 2561 - "whatwg-url": "^5.0.0" 2562 - }, 2563 - "engines": { 2564 - "node": "4.x || >=6.0.0" 2565 - }, 2566 - "peerDependencies": { 2567 - "encoding": "^0.1.0" 2568 - }, 2569 - "peerDependenciesMeta": { 2570 - "encoding": { 2571 - "optional": true 2572 - } 2573 - } 2574 - }, 2575 - "node_modules/@vercel/node/node_modules/typescript": { 2576 - "version": "4.9.5", 2577 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", 2578 - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", 2579 - "dev": true, 2580 - "license": "Apache-2.0", 2581 - "bin": { 2582 - "tsc": "bin/tsc", 2583 - "tsserver": "bin/tsserver" 2584 - }, 2585 - "engines": { 2586 - "node": ">=4.2.0" 2587 - } 2588 - }, 2589 - "node_modules/@vercel/node/node_modules/undici": { 2590 - "version": "5.28.4", 2591 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", 2592 - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", 2593 - "dev": true, 2594 - "license": "MIT", 2595 - "dependencies": { 2596 - "@fastify/busboy": "^2.0.0" 2597 - }, 2598 - "engines": { 2599 - "node": ">=14.0" 2600 - } 2601 - }, 2602 - "node_modules/@vercel/python": { 2603 - "version": "5.0.0", 2604 - "resolved": "https://registry.npmjs.org/@vercel/python/-/python-5.0.0.tgz", 2605 - "integrity": "sha512-JHpYKQ8d478REzmF7NcJTJcncFziJhVOwzan8wW4F1RJOHGDBTPkATAgi4CPQIijToRamPCkgeECzNOvLUDR+w==", 2606 - "dev": true, 2607 - "license": "Apache-2.0" 2608 - }, 2609 - "node_modules/@vercel/redwood": { 2610 - "version": "2.3.6", 2611 - "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.3.6.tgz", 2612 - "integrity": "sha512-Rm9xECWNIJOwtPsZ1/XcgyJj95KM7cWwNHYPMw8dzFAnLQGyapGe/YHEjxV6POI2RF8R0nFmU1t+45XBweYJJA==", 2613 - "dev": true, 2614 - "license": "Apache-2.0", 2615 - "dependencies": { 2616 - "@vercel/nft": "0.30.1", 2617 - "@vercel/static-config": "3.1.2", 2618 - "semver": "6.3.1", 2619 - "ts-morph": "12.0.0" 2620 - } 2621 - }, 2622 - "node_modules/@vercel/redwood/node_modules/semver": { 2623 - "version": "6.3.1", 2624 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 2625 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 2626 - "dev": true, 2627 - "license": "ISC", 2628 - "bin": { 2629 - "semver": "bin/semver.js" 2630 - } 2631 - }, 2632 - "node_modules/@vercel/remix-builder": { 2633 - "version": "5.4.12", 2634 - "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-5.4.12.tgz", 2635 - "integrity": "sha512-25HHNUpIu3TfuZnphDDX7yG+4QugbxDq0bB8d1KCeOWsKH+z0Zscg7rchs3Pqy6kdhV/US6zH+YAogtwMvdDMg==", 2636 - "dev": true, 2637 - "license": "Apache-2.0", 2638 - "dependencies": { 2639 - "@vercel/error-utils": "2.0.3", 2640 - "@vercel/nft": "0.30.1", 2641 - "@vercel/static-config": "3.1.2", 2642 - "path-to-regexp": "6.1.0", 2643 - "path-to-regexp-updated": "npm:path-to-regexp@6.3.0", 2644 - "ts-morph": "12.0.0" 2645 - } 2646 - }, 2647 - "node_modules/@vercel/ruby": { 2648 - "version": "2.2.1", 2649 - "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.2.1.tgz", 2650 - "integrity": "sha512-DsmTCggOa/Uvt/9JkafXx9U+Bz5eNIb6Bs422EOQo2zKwcxW88ITSh8mM5m0dQ0+B4k02X/moVim6iFa4sjazg==", 2651 - "dev": true, 2652 - "license": "Apache-2.0" 2653 - }, 2654 - "node_modules/@vercel/speed-insights": { 2655 - "version": "1.1.0", 2656 - "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.1.0.tgz", 2657 - "integrity": "sha512-rAXxuhhO4mlRGC9noa5F7HLMtGg8YF1zAN6Pjd1Ny4pII4cerhtwSG4vympbCl+pWkH7nBS9kVXRD4FAn54dlg==", 2658 - "hasInstallScript": true, 2659 - "license": "Apache-2.0", 2660 - "peerDependencies": { 2661 - "@sveltejs/kit": "^1 || ^2", 2662 - "next": ">= 13", 2663 - "react": "^18 || ^19 || ^19.0.0-rc", 2664 - "svelte": ">= 4", 2665 - "vue": "^3", 2666 - "vue-router": "^4" 2667 - }, 2668 - "peerDependenciesMeta": { 2669 - "@sveltejs/kit": { 2670 - "optional": true 2671 - }, 2672 - "next": { 2673 - "optional": true 2674 - }, 2675 - "react": { 2676 - "optional": true 2677 - }, 2678 - "svelte": { 2679 - "optional": true 2680 - }, 2681 - "vue": { 2682 - "optional": true 2683 - }, 2684 - "vue-router": { 2685 - "optional": true 2686 - } 2687 - } 2688 - }, 2689 - "node_modules/@vercel/static-build": { 2690 - "version": "2.7.20", 2691 - "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.7.20.tgz", 2692 - "integrity": "sha512-2Ggjk0fsVG2LgFjDmunIA6i9/UEaVxcinJblkR8aHeKecVL4ibqXhluiyXygAobfpRiYJlU9gXgS2veieB57sw==", 2693 - "dev": true, 2694 - "license": "Apache-2.0", 2695 - "dependencies": { 2696 - "@vercel/gatsby-plugin-vercel-analytics": "1.0.11", 2697 - "@vercel/gatsby-plugin-vercel-builder": "2.0.93", 2698 - "@vercel/static-config": "3.1.2", 2699 - "ts-morph": "12.0.0" 2700 - } 2701 - }, 2702 - "node_modules/@vercel/static-config": { 2703 - "version": "3.1.2", 2704 - "resolved": "https://registry.npmjs.org/@vercel/static-config/-/static-config-3.1.2.tgz", 2705 - "integrity": "sha512-2d+TXr6K30w86a+WbMbGm2W91O0UzO5VeemZYBBUJbCjk/5FLLGIi8aV6RS2+WmaRvtcqNTn2pUA7nCOK3bGcQ==", 2706 - "dev": true, 2707 - "license": "Apache-2.0", 2708 - "dependencies": { 2709 - "ajv": "8.6.3", 2710 - "json-schema-to-ts": "1.6.4", 2711 - "ts-morph": "12.0.0" 2712 - } 2713 - }, 2714 - "node_modules/abbrev": { 2715 - "version": "3.0.1", 2716 - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", 2717 - "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", 2718 - "dev": true, 2719 - "license": "ISC", 2720 - "engines": { 2721 - "node": "^18.17.0 || >=20.5.0" 2722 - } 2723 - }, 2724 1696 "node_modules/acorn": { 2725 1697 "version": "8.15.0", 2726 1698 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", ··· 2733 1705 "node": ">=0.4.0" 2734 1706 } 2735 1707 }, 2736 - "node_modules/acorn-import-attributes": { 2737 - "version": "1.9.5", 2738 - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", 2739 - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", 2740 - "dev": true, 2741 - "license": "MIT", 2742 - "peerDependencies": { 2743 - "acorn": "^8" 2744 - } 2745 - }, 2746 1708 "node_modules/acorn-jsx": { 2747 1709 "version": "5.3.2", 2748 1710 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", ··· 2752 1714 "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 2753 1715 } 2754 1716 }, 2755 - "node_modules/acorn-typescript": { 2756 - "version": "1.4.13", 2757 - "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", 2758 - "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", 2759 - "license": "MIT", 2760 - "peerDependencies": { 2761 - "acorn": ">=8.9.0" 2762 - } 2763 - }, 2764 - "node_modules/acorn-walk": { 2765 - "version": "8.3.4", 2766 - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", 2767 - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", 2768 - "dev": true, 2769 - "license": "MIT", 2770 - "dependencies": { 2771 - "acorn": "^8.11.0" 2772 - }, 2773 - "engines": { 2774 - "node": ">=0.4.0" 2775 - } 2776 - }, 2777 - "node_modules/agent-base": { 2778 - "version": "7.1.4", 2779 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", 2780 - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", 2781 - "dev": true, 2782 - "license": "MIT", 2783 - "engines": { 2784 - "node": ">= 14" 2785 - } 2786 - }, 2787 - "node_modules/ajv": { 2788 - "version": "8.6.3", 2789 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", 2790 - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", 2791 - "dev": true, 2792 - "license": "MIT", 2793 - "dependencies": { 2794 - "fast-deep-equal": "^3.1.1", 2795 - "json-schema-traverse": "^1.0.0", 2796 - "require-from-string": "^2.0.2", 2797 - "uri-js": "^4.2.2" 2798 - }, 2799 - "funding": { 2800 - "type": "github", 2801 - "url": "https://github.com/sponsors/epoberezkin" 2802 - } 2803 - }, 2804 1717 "node_modules/ansi-align": { 2805 1718 "version": "3.0.1", 2806 1719 "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", ··· 2852 1765 } 2853 1766 }, 2854 1767 "node_modules/ansi-regex": { 2855 - "version": "6.1.0", 2856 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 2857 - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 1768 + "version": "6.2.0", 1769 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", 1770 + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", 2858 1771 "license": "MIT", 2859 1772 "engines": { 2860 1773 "node": ">=12" ··· 2874 1787 "funding": { 2875 1788 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2876 1789 } 2877 - }, 2878 - "node_modules/any-promise": { 2879 - "version": "1.3.0", 2880 - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 2881 - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 2882 - "dev": true, 2883 - "license": "MIT" 2884 1790 }, 2885 1791 "node_modules/anymatch": { 2886 1792 "version": "3.1.3", ··· 3032 1938 "sharp": "^0.33.3" 3033 1939 } 3034 1940 }, 3035 - "node_modules/async-listen": { 3036 - "version": "1.2.0", 3037 - "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-1.2.0.tgz", 3038 - "integrity": "sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA==", 3039 - "dev": true, 3040 - "license": "MIT" 3041 - }, 3042 - "node_modules/async-retry": { 3043 - "version": "1.3.3", 3044 - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", 3045 - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", 3046 - "devOptional": true, 3047 - "license": "MIT", 3048 - "dependencies": { 3049 - "retry": "0.13.1" 3050 - } 3051 - }, 3052 - "node_modules/async-sema": { 3053 - "version": "3.1.1", 3054 - "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", 3055 - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", 3056 - "dev": true, 3057 - "license": "MIT" 3058 - }, 3059 1941 "node_modules/await-lock": { 3060 1942 "version": "2.2.2", 3061 1943 "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", ··· 3081 1963 "url": "https://github.com/sponsors/wooorm" 3082 1964 } 3083 1965 }, 3084 - "node_modules/balanced-match": { 3085 - "version": "1.0.2", 3086 - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 3087 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 3088 - "dev": true, 3089 - "license": "MIT" 3090 - }, 3091 1966 "node_modules/base-64": { 3092 1967 "version": "1.0.0", 3093 1968 "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", ··· 3114 1989 ], 3115 1990 "license": "MIT" 3116 1991 }, 3117 - "node_modules/batch-cluster": { 3118 - "version": "13.0.0", 3119 - "resolved": "https://registry.npmjs.org/batch-cluster/-/batch-cluster-13.0.0.tgz", 3120 - "integrity": "sha512-EreW0Vi8TwovhYUHBXXRA5tthuU2ynGsZFlboyMJHCCUXYa2AjgwnE3ubBOJs2xJLcuXFJbi6c/8pH5+FVj8Og==", 3121 - "dev": true, 3122 - "license": "MIT", 3123 - "engines": { 3124 - "node": ">=14" 3125 - } 3126 - }, 3127 - "node_modules/bindings": { 3128 - "version": "1.5.0", 3129 - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 3130 - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 3131 - "dev": true, 3132 - "license": "MIT", 3133 - "dependencies": { 3134 - "file-uri-to-path": "1.0.0" 3135 - } 3136 - }, 3137 1992 "node_modules/blob-to-buffer": { 3138 1993 "version": "1.2.9", 3139 1994 "resolved": "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz", ··· 3176 2031 "url": "https://github.com/sponsors/sindresorhus" 3177 2032 } 3178 2033 }, 3179 - "node_modules/brace-expansion": { 3180 - "version": "2.0.2", 3181 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", 3182 - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", 3183 - "dev": true, 3184 - "license": "MIT", 3185 - "dependencies": { 3186 - "balanced-match": "^1.0.0" 3187 - } 3188 - }, 3189 - "node_modules/braces": { 3190 - "version": "3.0.3", 3191 - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 3192 - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 3193 - "dev": true, 3194 - "license": "MIT", 3195 - "dependencies": { 3196 - "fill-range": "^7.1.1" 3197 - }, 3198 - "engines": { 3199 - "node": ">=8" 3200 - } 3201 - }, 3202 2034 "node_modules/brotli": { 3203 2035 "version": "1.3.3", 3204 2036 "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", ··· 3208 2040 "base64-js": "^1.1.2" 3209 2041 } 3210 2042 }, 3211 - "node_modules/buffer-crc32": { 3212 - "version": "0.2.13", 3213 - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 3214 - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 3215 - "dev": true, 3216 - "license": "MIT", 3217 - "engines": { 3218 - "node": "*" 3219 - } 3220 - }, 3221 - "node_modules/bytes": { 3222 - "version": "3.1.0", 3223 - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 3224 - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", 3225 - "dev": true, 3226 - "license": "MIT", 3227 - "engines": { 3228 - "node": ">= 0.8" 3229 - } 3230 - }, 3231 2043 "node_modules/camelcase": { 3232 2044 "version": "8.0.0", 3233 2045 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", ··· 3251 2063 } 3252 2064 }, 3253 2065 "node_modules/chalk": { 3254 - "version": "5.4.1", 3255 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", 3256 - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", 2066 + "version": "5.6.0", 2067 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", 2068 + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", 3257 2069 "license": "MIT", 3258 2070 "engines": { 3259 2071 "node": "^12.17.0 || ^14.13 || >=16.0.0" ··· 3317 2129 "url": "https://paulmillr.com/funding/" 3318 2130 } 3319 2131 }, 3320 - "node_modules/chownr": { 3321 - "version": "2.0.0", 3322 - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", 3323 - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", 3324 - "dev": true, 3325 - "license": "ISC", 3326 - "engines": { 3327 - "node": ">=10" 3328 - } 3329 - }, 3330 2132 "node_modules/ci-info": { 3331 2133 "version": "4.3.0", 3332 2134 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", ··· 3341 2143 "engines": { 3342 2144 "node": ">=8" 3343 2145 } 3344 - }, 3345 - "node_modules/cjs-module-lexer": { 3346 - "version": "1.2.3", 3347 - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", 3348 - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", 3349 - "dev": true, 3350 - "license": "MIT" 3351 2146 }, 3352 2147 "node_modules/cli-boxes": { 3353 2148 "version": "3.0.0", ··· 3379 2174 "node": ">=6" 3380 2175 } 3381 2176 }, 3382 - "node_modules/code-block-writer": { 3383 - "version": "10.1.1", 3384 - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", 3385 - "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", 3386 - "dev": true, 3387 - "license": "MIT" 3388 - }, 3389 2177 "node_modules/collapse-white-space": { 3390 2178 "version": "2.1.0", 3391 2179 "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", ··· 3400 2188 "version": "4.2.3", 3401 2189 "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 3402 2190 "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 3403 - "devOptional": true, 3404 2191 "license": "MIT", 2192 + "optional": true, 3405 2193 "dependencies": { 3406 2194 "color-convert": "^2.0.1", 3407 2195 "color-string": "^1.9.0" ··· 3414 2202 "version": "2.0.1", 3415 2203 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3416 2204 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3417 - "devOptional": true, 3418 2205 "license": "MIT", 2206 + "optional": true, 3419 2207 "dependencies": { 3420 2208 "color-name": "~1.1.4" 3421 2209 }, ··· 3427 2215 "version": "1.1.4", 3428 2216 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3429 2217 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3430 - "devOptional": true, 3431 - "license": "MIT" 2218 + "license": "MIT", 2219 + "optional": true 3432 2220 }, 3433 2221 "node_modules/color-string": { 3434 2222 "version": "1.9.1", 3435 2223 "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 3436 2224 "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 3437 - "devOptional": true, 3438 2225 "license": "MIT", 2226 + "optional": true, 3439 2227 "dependencies": { 3440 2228 "color-name": "^1.0.0", 3441 2229 "simple-swizzle": "^0.2.2" ··· 3457 2245 "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", 3458 2246 "license": "ISC" 3459 2247 }, 3460 - "node_modules/concat-map": { 3461 - "version": "0.0.1", 3462 - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 3463 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 3464 - "dev": true, 3465 - "license": "MIT" 3466 - }, 3467 - "node_modules/consola": { 3468 - "version": "3.4.2", 3469 - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", 3470 - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", 3471 - "dev": true, 3472 - "license": "MIT", 3473 - "engines": { 3474 - "node": "^14.18.0 || >=16.10.0" 3475 - } 3476 - }, 3477 - "node_modules/content-type": { 3478 - "version": "1.0.4", 3479 - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 3480 - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 3481 - "dev": true, 3482 - "license": "MIT", 3483 - "engines": { 3484 - "node": ">= 0.6" 3485 - } 3486 - }, 3487 - "node_modules/convert-hrtime": { 3488 - "version": "3.0.0", 3489 - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", 3490 - "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", 3491 - "dev": true, 3492 - "license": "MIT", 3493 - "engines": { 3494 - "node": ">=8" 3495 - } 3496 - }, 3497 2248 "node_modules/cookie": { 3498 2249 "version": "1.0.2", 3499 2250 "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", ··· 3509 2260 "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", 3510 2261 "license": "MIT" 3511 2262 }, 3512 - "node_modules/create-require": { 3513 - "version": "1.1.1", 3514 - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", 3515 - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", 3516 - "dev": true, 3517 - "license": "MIT" 3518 - }, 3519 2263 "node_modules/cross-fetch": { 3520 2264 "version": "3.2.0", 3521 2265 "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", ··· 3525 2269 "node-fetch": "^2.7.0" 3526 2270 } 3527 2271 }, 3528 - "node_modules/cross-spawn": { 3529 - "version": "7.0.6", 3530 - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 3531 - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 3532 - "dev": true, 3533 - "license": "MIT", 3534 - "dependencies": { 3535 - "path-key": "^3.1.0", 3536 - "shebang-command": "^2.0.0", 3537 - "which": "^2.0.1" 3538 - }, 3539 - "engines": { 3540 - "node": ">= 8" 3541 - } 3542 - }, 3543 2272 "node_modules/crossws": { 3544 2273 "version": "0.3.5", 3545 2274 "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", ··· 3575 2304 } 3576 2305 }, 3577 2306 "node_modules/debug": { 3578 - "version": "4.4.0", 3579 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 3580 - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 2307 + "version": "4.4.1", 2308 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 2309 + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 3581 2310 "license": "MIT", 3582 2311 "dependencies": { 3583 2312 "ms": "^2.1.3" ··· 3592 2321 } 3593 2322 }, 3594 2323 "node_modules/decode-named-character-reference": { 3595 - "version": "1.0.2", 3596 - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", 3597 - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", 2324 + "version": "1.2.0", 2325 + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", 2326 + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", 3598 2327 "license": "MIT", 3599 2328 "dependencies": { 3600 2329 "character-entities": "^2.0.0" ··· 3625 2354 "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 3626 2355 "license": "MIT" 3627 2356 }, 3628 - "node_modules/depd": { 3629 - "version": "1.1.2", 3630 - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 3631 - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", 3632 - "dev": true, 3633 - "license": "MIT", 3634 - "engines": { 3635 - "node": ">= 0.6" 3636 - } 3637 - }, 3638 2357 "node_modules/dequal": { 3639 2358 "version": "2.0.3", 3640 2359 "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", ··· 3651 2370 "license": "MIT" 3652 2371 }, 3653 2372 "node_modules/detect-libc": { 3654 - "version": "2.0.3", 3655 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 3656 - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 3657 - "devOptional": true, 2373 + "version": "2.0.4", 2374 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 2375 + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 3658 2376 "license": "Apache-2.0", 2377 + "optional": true, 3659 2378 "engines": { 3660 2379 "node": ">=8" 3661 2380 } ··· 3721 2440 "node": ">=4" 3722 2441 } 3723 2442 }, 3724 - "node_modules/eastasianwidth": { 3725 - "version": "0.2.0", 3726 - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 3727 - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 3728 - "dev": true, 3729 - "license": "MIT" 3730 - }, 3731 - "node_modules/edge-runtime": { 3732 - "version": "2.5.9", 3733 - "resolved": "https://registry.npmjs.org/edge-runtime/-/edge-runtime-2.5.9.tgz", 3734 - "integrity": "sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==", 3735 - "dev": true, 3736 - "license": "MPL-2.0", 3737 - "dependencies": { 3738 - "@edge-runtime/format": "2.2.1", 3739 - "@edge-runtime/ponyfill": "2.4.2", 3740 - "@edge-runtime/vm": "3.2.0", 3741 - "async-listen": "3.0.1", 3742 - "mri": "1.2.0", 3743 - "picocolors": "1.0.0", 3744 - "pretty-ms": "7.0.1", 3745 - "signal-exit": "4.0.2", 3746 - "time-span": "4.0.0" 3747 - }, 3748 - "bin": { 3749 - "edge-runtime": "dist/cli/index.js" 3750 - }, 3751 - "engines": { 3752 - "node": ">=16" 3753 - } 3754 - }, 3755 - "node_modules/edge-runtime/node_modules/async-listen": { 3756 - "version": "3.0.1", 3757 - "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-3.0.1.tgz", 3758 - "integrity": "sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==", 3759 - "dev": true, 3760 - "license": "MIT", 3761 - "engines": { 3762 - "node": ">= 14" 3763 - } 3764 - }, 3765 - "node_modules/edge-runtime/node_modules/picocolors": { 3766 - "version": "1.0.0", 3767 - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 3768 - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 3769 - "dev": true, 3770 - "license": "ISC" 3771 - }, 3772 2443 "node_modules/emoji-regex": { 3773 - "version": "10.4.0", 3774 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", 3775 - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", 2444 + "version": "10.5.0", 2445 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", 2446 + "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", 3776 2447 "license": "MIT" 3777 2448 }, 3778 - "node_modules/end-of-stream": { 3779 - "version": "1.1.0", 3780 - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", 3781 - "integrity": "sha512-EoulkdKF/1xa92q25PbjuDcgJ9RDHYU2Rs3SCIvs2/dSQ3BpmxneNHmA/M7fe60M3PrV7nNGTTNbkK62l6vXiQ==", 3782 - "dev": true, 3783 - "license": "MIT", 3784 - "dependencies": { 3785 - "once": "~1.3.0" 3786 - } 3787 - }, 3788 2449 "node_modules/entities": { 3789 - "version": "4.5.0", 3790 - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 3791 - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 2450 + "version": "6.0.1", 2451 + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", 2452 + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", 3792 2453 "license": "BSD-2-Clause", 3793 2454 "engines": { 3794 2455 "node": ">=0.12" ··· 3798 2459 } 3799 2460 }, 3800 2461 "node_modules/es-module-lexer": { 3801 - "version": "1.6.0", 3802 - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", 3803 - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", 2462 + "version": "1.7.0", 2463 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", 2464 + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", 3804 2465 "license": "MIT" 3805 2466 }, 3806 2467 "node_modules/esast-util-from-estree": { ··· 3876 2537 "@esbuild/win32-x64": "0.25.9" 3877 2538 } 3878 2539 }, 3879 - "node_modules/esbuild-android-64": { 3880 - "version": "0.14.47", 3881 - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz", 3882 - "integrity": "sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==", 3883 - "cpu": [ 3884 - "x64" 3885 - ], 3886 - "dev": true, 3887 - "license": "MIT", 3888 - "optional": true, 3889 - "os": [ 3890 - "android" 3891 - ], 3892 - "engines": { 3893 - "node": ">=12" 3894 - } 3895 - }, 3896 - "node_modules/esbuild-android-arm64": { 3897 - "version": "0.14.47", 3898 - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz", 3899 - "integrity": "sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==", 3900 - "cpu": [ 3901 - "arm64" 3902 - ], 3903 - "dev": true, 3904 - "license": "MIT", 3905 - "optional": true, 3906 - "os": [ 3907 - "android" 3908 - ], 3909 - "engines": { 3910 - "node": ">=12" 3911 - } 3912 - }, 3913 - "node_modules/esbuild-darwin-64": { 3914 - "version": "0.14.47", 3915 - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz", 3916 - "integrity": "sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==", 3917 - "cpu": [ 3918 - "x64" 3919 - ], 3920 - "dev": true, 3921 - "license": "MIT", 3922 - "optional": true, 3923 - "os": [ 3924 - "darwin" 3925 - ], 3926 - "engines": { 3927 - "node": ">=12" 3928 - } 3929 - }, 3930 - "node_modules/esbuild-darwin-arm64": { 3931 - "version": "0.14.47", 3932 - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz", 3933 - "integrity": "sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==", 3934 - "cpu": [ 3935 - "arm64" 3936 - ], 3937 - "dev": true, 3938 - "license": "MIT", 3939 - "optional": true, 3940 - "os": [ 3941 - "darwin" 3942 - ], 3943 - "engines": { 3944 - "node": ">=12" 3945 - } 3946 - }, 3947 - "node_modules/esbuild-freebsd-64": { 3948 - "version": "0.14.47", 3949 - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz", 3950 - "integrity": "sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==", 3951 - "cpu": [ 3952 - "x64" 3953 - ], 3954 - "dev": true, 3955 - "license": "MIT", 3956 - "optional": true, 3957 - "os": [ 3958 - "freebsd" 3959 - ], 3960 - "engines": { 3961 - "node": ">=12" 3962 - } 3963 - }, 3964 - "node_modules/esbuild-freebsd-arm64": { 3965 - "version": "0.14.47", 3966 - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz", 3967 - "integrity": "sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==", 3968 - "cpu": [ 3969 - "arm64" 3970 - ], 3971 - "dev": true, 3972 - "license": "MIT", 3973 - "optional": true, 3974 - "os": [ 3975 - "freebsd" 3976 - ], 3977 - "engines": { 3978 - "node": ">=12" 3979 - } 3980 - }, 3981 - "node_modules/esbuild-linux-32": { 3982 - "version": "0.14.47", 3983 - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz", 3984 - "integrity": "sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==", 3985 - "cpu": [ 3986 - "ia32" 3987 - ], 3988 - "dev": true, 3989 - "license": "MIT", 3990 - "optional": true, 3991 - "os": [ 3992 - "linux" 3993 - ], 3994 - "engines": { 3995 - "node": ">=12" 3996 - } 3997 - }, 3998 - "node_modules/esbuild-linux-64": { 3999 - "version": "0.14.47", 4000 - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz", 4001 - "integrity": "sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==", 4002 - "cpu": [ 4003 - "x64" 4004 - ], 4005 - "dev": true, 4006 - "license": "MIT", 4007 - "optional": true, 4008 - "os": [ 4009 - "linux" 4010 - ], 4011 - "engines": { 4012 - "node": ">=12" 4013 - } 4014 - }, 4015 - "node_modules/esbuild-linux-arm": { 4016 - "version": "0.14.47", 4017 - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz", 4018 - "integrity": "sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==", 4019 - "cpu": [ 4020 - "arm" 4021 - ], 4022 - "dev": true, 4023 - "license": "MIT", 4024 - "optional": true, 4025 - "os": [ 4026 - "linux" 4027 - ], 4028 - "engines": { 4029 - "node": ">=12" 4030 - } 4031 - }, 4032 - "node_modules/esbuild-linux-arm64": { 4033 - "version": "0.14.47", 4034 - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz", 4035 - "integrity": "sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==", 4036 - "cpu": [ 4037 - "arm64" 4038 - ], 4039 - "dev": true, 4040 - "license": "MIT", 4041 - "optional": true, 4042 - "os": [ 4043 - "linux" 4044 - ], 4045 - "engines": { 4046 - "node": ">=12" 4047 - } 4048 - }, 4049 - "node_modules/esbuild-linux-mips64le": { 4050 - "version": "0.14.47", 4051 - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz", 4052 - "integrity": "sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==", 4053 - "cpu": [ 4054 - "mips64el" 4055 - ], 4056 - "dev": true, 4057 - "license": "MIT", 4058 - "optional": true, 4059 - "os": [ 4060 - "linux" 4061 - ], 4062 - "engines": { 4063 - "node": ">=12" 4064 - } 4065 - }, 4066 - "node_modules/esbuild-linux-ppc64le": { 4067 - "version": "0.14.47", 4068 - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz", 4069 - "integrity": "sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==", 4070 - "cpu": [ 4071 - "ppc64" 4072 - ], 4073 - "dev": true, 4074 - "license": "MIT", 4075 - "optional": true, 4076 - "os": [ 4077 - "linux" 4078 - ], 4079 - "engines": { 4080 - "node": ">=12" 4081 - } 4082 - }, 4083 - "node_modules/esbuild-linux-riscv64": { 4084 - "version": "0.14.47", 4085 - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz", 4086 - "integrity": "sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==", 4087 - "cpu": [ 4088 - "riscv64" 4089 - ], 4090 - "dev": true, 4091 - "license": "MIT", 4092 - "optional": true, 4093 - "os": [ 4094 - "linux" 4095 - ], 4096 - "engines": { 4097 - "node": ">=12" 4098 - } 4099 - }, 4100 - "node_modules/esbuild-linux-s390x": { 4101 - "version": "0.14.47", 4102 - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz", 4103 - "integrity": "sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==", 4104 - "cpu": [ 4105 - "s390x" 4106 - ], 4107 - "dev": true, 4108 - "license": "MIT", 4109 - "optional": true, 4110 - "os": [ 4111 - "linux" 4112 - ], 4113 - "engines": { 4114 - "node": ">=12" 4115 - } 4116 - }, 4117 - "node_modules/esbuild-netbsd-64": { 4118 - "version": "0.14.47", 4119 - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz", 4120 - "integrity": "sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==", 4121 - "cpu": [ 4122 - "x64" 4123 - ], 4124 - "dev": true, 4125 - "license": "MIT", 4126 - "optional": true, 4127 - "os": [ 4128 - "netbsd" 4129 - ], 4130 - "engines": { 4131 - "node": ">=12" 4132 - } 4133 - }, 4134 - "node_modules/esbuild-openbsd-64": { 4135 - "version": "0.14.47", 4136 - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz", 4137 - "integrity": "sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==", 4138 - "cpu": [ 4139 - "x64" 4140 - ], 4141 - "dev": true, 4142 - "license": "MIT", 4143 - "optional": true, 4144 - "os": [ 4145 - "openbsd" 4146 - ], 4147 - "engines": { 4148 - "node": ">=12" 4149 - } 4150 - }, 4151 - "node_modules/esbuild-sunos-64": { 4152 - "version": "0.14.47", 4153 - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz", 4154 - "integrity": "sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==", 4155 - "cpu": [ 4156 - "x64" 4157 - ], 4158 - "dev": true, 4159 - "license": "MIT", 4160 - "optional": true, 4161 - "os": [ 4162 - "sunos" 4163 - ], 4164 - "engines": { 4165 - "node": ">=12" 4166 - } 4167 - }, 4168 - "node_modules/esbuild-windows-32": { 4169 - "version": "0.14.47", 4170 - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz", 4171 - "integrity": "sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==", 4172 - "cpu": [ 4173 - "ia32" 4174 - ], 4175 - "dev": true, 4176 - "license": "MIT", 4177 - "optional": true, 4178 - "os": [ 4179 - "win32" 4180 - ], 4181 - "engines": { 4182 - "node": ">=12" 4183 - } 4184 - }, 4185 - "node_modules/esbuild-windows-64": { 4186 - "version": "0.14.47", 4187 - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz", 4188 - "integrity": "sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==", 4189 - "cpu": [ 4190 - "x64" 4191 - ], 4192 - "dev": true, 4193 - "license": "MIT", 4194 - "optional": true, 4195 - "os": [ 4196 - "win32" 4197 - ], 4198 - "engines": { 4199 - "node": ">=12" 4200 - } 4201 - }, 4202 - "node_modules/esbuild-windows-arm64": { 4203 - "version": "0.14.47", 4204 - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz", 4205 - "integrity": "sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==", 4206 - "cpu": [ 4207 - "arm64" 4208 - ], 4209 - "dev": true, 4210 - "license": "MIT", 4211 - "optional": true, 4212 - "os": [ 4213 - "win32" 4214 - ], 4215 - "engines": { 4216 - "node": ">=12" 4217 - } 4218 - }, 4219 2540 "node_modules/escape-string-regexp": { 4220 2541 "version": "5.0.0", 4221 2542 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", ··· 4229 2550 } 4230 2551 }, 4231 2552 "node_modules/esm-env": { 4232 - "version": "1.2.1", 4233 - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz", 4234 - "integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==", 2553 + "version": "1.2.2", 2554 + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 2555 + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", 4235 2556 "license": "MIT" 4236 2557 }, 4237 2558 "node_modules/esrap": { 4238 - "version": "1.3.2", 4239 - "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.3.2.tgz", 4240 - "integrity": "sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==", 2559 + "version": "2.1.0", 2560 + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", 2561 + "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", 4241 2562 "license": "MIT", 4242 2563 "dependencies": { 4243 2564 "@jridgewell/sourcemap-codec": "^1.4.15" ··· 4334 2655 "@types/estree": "^1.0.0" 4335 2656 } 4336 2657 }, 4337 - "node_modules/etag": { 4338 - "version": "1.8.1", 4339 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 4340 - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 4341 - "dev": true, 4342 - "license": "MIT", 4343 - "engines": { 4344 - "node": ">= 0.6" 4345 - } 4346 - }, 4347 2658 "node_modules/eventemitter3": { 4348 2659 "version": "5.0.1", 4349 2660 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", 4350 2661 "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", 4351 2662 "license": "MIT" 4352 2663 }, 4353 - "node_modules/events-intercept": { 4354 - "version": "2.0.0", 4355 - "resolved": "https://registry.npmjs.org/events-intercept/-/events-intercept-2.0.0.tgz", 4356 - "integrity": "sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==", 4357 - "dev": true, 4358 - "license": "MIT" 4359 - }, 4360 - "node_modules/exiftool-vendored": { 4361 - "version": "29.2.0", 4362 - "resolved": "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-29.2.0.tgz", 4363 - "integrity": "sha512-bZnjVAV/0T++o9gPf8uIa4B6DsixnkLTNirD2xM6ciRXgonp28viFG/D3bZiXUrRRV9u3uUmZS/ipieQcEMzWA==", 4364 - "dev": true, 4365 - "license": "MIT", 4366 - "dependencies": { 4367 - "@photostructure/tz-lookup": "^11.1.0", 4368 - "@types/luxon": "^3.4.2", 4369 - "batch-cluster": "^13.0.0", 4370 - "he": "^1.2.0", 4371 - "luxon": "^3.5.0" 4372 - }, 4373 - "optionalDependencies": { 4374 - "exiftool-vendored.exe": "13.25.0", 4375 - "exiftool-vendored.pl": "13.25.0" 4376 - } 4377 - }, 4378 - "node_modules/exiftool-vendored.pl": { 4379 - "version": "13.25.0", 4380 - "resolved": "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-13.25.0.tgz", 4381 - "integrity": "sha512-aTIKz/E+UO1fayrPUy/6OoBC+ryjL57rqew4uFQPa3Ed5dle0W8YHjkROvd24EkQgRX4wmmskPOAbtAW8fvQRQ==", 4382 - "dev": true, 4383 - "license": "MIT", 4384 - "optional": true, 4385 - "os": [ 4386 - "!win32" 4387 - ] 4388 - }, 4389 2664 "node_modules/extend": { 4390 2665 "version": "3.0.2", 4391 2666 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", ··· 4398 2673 "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 4399 2674 "license": "MIT" 4400 2675 }, 4401 - "node_modules/fast-glob": { 4402 - "version": "3.3.3", 4403 - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 4404 - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 4405 - "dev": true, 4406 - "license": "MIT", 4407 - "dependencies": { 4408 - "@nodelib/fs.stat": "^2.0.2", 4409 - "@nodelib/fs.walk": "^1.2.3", 4410 - "glob-parent": "^5.1.2", 4411 - "merge2": "^1.3.0", 4412 - "micromatch": "^4.0.8" 4413 - }, 4414 - "engines": { 4415 - "node": ">=8.6.0" 4416 - } 4417 - }, 4418 2676 "node_modules/fast-xml-parser": { 4419 2677 "version": "5.2.5", 4420 2678 "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz", ··· 4433 2691 "fxparser": "src/cli/cli.js" 4434 2692 } 4435 2693 }, 4436 - "node_modules/fastq": { 4437 - "version": "1.19.1", 4438 - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", 4439 - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", 4440 - "dev": true, 4441 - "license": "ISC", 4442 - "dependencies": { 4443 - "reusify": "^1.0.4" 4444 - } 4445 - }, 4446 - "node_modules/fd-slicer": { 4447 - "version": "1.1.0", 4448 - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 4449 - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 4450 - "dev": true, 4451 - "license": "MIT", 4452 - "dependencies": { 4453 - "pend": "~1.2.0" 4454 - } 4455 - }, 4456 2694 "node_modules/fdir": { 4457 2695 "version": "6.5.0", 4458 2696 "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", ··· 4470 2708 } 4471 2709 } 4472 2710 }, 4473 - "node_modules/file-uri-to-path": { 4474 - "version": "1.0.0", 4475 - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 4476 - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 4477 - "dev": true, 4478 - "license": "MIT" 4479 - }, 4480 - "node_modules/fill-range": { 4481 - "version": "7.1.1", 4482 - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 4483 - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 4484 - "dev": true, 4485 - "license": "MIT", 4486 - "dependencies": { 4487 - "to-regex-range": "^5.0.1" 4488 - }, 4489 - "engines": { 4490 - "node": ">=8" 4491 - } 4492 - }, 4493 2711 "node_modules/flattie": { 4494 2712 "version": "1.1.1", 4495 2713 "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", ··· 4526 2744 "unicode-trie": "^2.0.0" 4527 2745 } 4528 2746 }, 4529 - "node_modules/foreground-child": { 4530 - "version": "3.3.1", 4531 - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", 4532 - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", 4533 - "dev": true, 4534 - "license": "ISC", 4535 - "dependencies": { 4536 - "cross-spawn": "^7.0.6", 4537 - "signal-exit": "^4.0.1" 4538 - }, 4539 - "engines": { 4540 - "node": ">=14" 4541 - }, 4542 - "funding": { 4543 - "url": "https://github.com/sponsors/isaacs" 4544 - } 4545 - }, 4546 - "node_modules/fs-extra": { 4547 - "version": "11.1.0", 4548 - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", 4549 - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", 4550 - "dev": true, 4551 - "license": "MIT", 4552 - "dependencies": { 4553 - "graceful-fs": "^4.2.0", 4554 - "jsonfile": "^6.0.1", 4555 - "universalify": "^2.0.0" 4556 - }, 4557 - "engines": { 4558 - "node": ">=14.14" 4559 - } 4560 - }, 4561 - "node_modules/fs-minipass": { 4562 - "version": "2.1.0", 4563 - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", 4564 - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", 4565 - "dev": true, 4566 - "license": "ISC", 4567 - "dependencies": { 4568 - "minipass": "^3.0.0" 4569 - }, 4570 - "engines": { 4571 - "node": ">= 8" 4572 - } 4573 - }, 4574 - "node_modules/fs-minipass/node_modules/minipass": { 4575 - "version": "3.3.6", 4576 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 4577 - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 4578 - "dev": true, 4579 - "license": "ISC", 4580 - "dependencies": { 4581 - "yallist": "^4.0.0" 4582 - }, 4583 - "engines": { 4584 - "node": ">=8" 4585 - } 4586 - }, 4587 2747 "node_modules/fsevents": { 4588 2748 "version": "2.3.3", 4589 2749 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", ··· 4598 2758 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 4599 2759 } 4600 2760 }, 4601 - "node_modules/generic-pool": { 4602 - "version": "3.4.2", 4603 - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.4.2.tgz", 4604 - "integrity": "sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==", 4605 - "dev": true, 4606 - "license": "MIT", 4607 - "engines": { 4608 - "node": ">= 4" 4609 - } 4610 - }, 4611 2761 "node_modules/get-east-asian-width": { 4612 2762 "version": "1.3.0", 4613 2763 "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", ··· 4626 2776 "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", 4627 2777 "license": "ISC" 4628 2778 }, 4629 - "node_modules/glob": { 4630 - "version": "10.4.5", 4631 - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 4632 - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 4633 - "dev": true, 4634 - "license": "ISC", 4635 - "dependencies": { 4636 - "foreground-child": "^3.1.0", 4637 - "jackspeak": "^3.1.2", 4638 - "minimatch": "^9.0.4", 4639 - "minipass": "^7.1.2", 4640 - "package-json-from-dist": "^1.0.0", 4641 - "path-scurry": "^1.11.1" 4642 - }, 4643 - "bin": { 4644 - "glob": "dist/esm/bin.mjs" 4645 - }, 4646 - "funding": { 4647 - "url": "https://github.com/sponsors/isaacs" 4648 - } 4649 - }, 4650 - "node_modules/glob-parent": { 4651 - "version": "5.1.2", 4652 - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 4653 - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 4654 - "dev": true, 4655 - "license": "ISC", 4656 - "dependencies": { 4657 - "is-glob": "^4.0.1" 4658 - }, 4659 - "engines": { 4660 - "node": ">= 6" 4661 - } 4662 - }, 4663 - "node_modules/graceful-fs": { 4664 - "version": "4.2.11", 4665 - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 4666 - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 4667 - "dev": true, 4668 - "license": "ISC" 4669 - }, 4670 2779 "node_modules/graphemer": { 4671 2780 "version": "1.4.0", 4672 2781 "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", ··· 4709 2818 } 4710 2819 }, 4711 2820 "node_modules/hast-util-from-parse5": { 4712 - "version": "8.0.2", 4713 - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", 4714 - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", 2821 + "version": "8.0.3", 2822 + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", 2823 + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", 4715 2824 "license": "MIT", 4716 2825 "dependencies": { 4717 2826 "@types/hast": "^3.0.0", 4718 2827 "@types/unist": "^3.0.0", 4719 2828 "devlop": "^1.0.0", 4720 2829 "hastscript": "^9.0.0", 4721 - "property-information": "^6.0.0", 2830 + "property-information": "^7.0.0", 4722 2831 "vfile": "^6.0.0", 4723 2832 "vfile-location": "^5.0.0", 4724 2833 "web-namespaces": "^2.0.0" ··· 4780 2889 } 4781 2890 }, 4782 2891 "node_modules/hast-util-to-estree": { 4783 - "version": "3.1.0", 4784 - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", 4785 - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", 2892 + "version": "3.1.3", 2893 + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", 2894 + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", 4786 2895 "license": "MIT", 4787 2896 "dependencies": { 4788 2897 "@types/estree": "^1.0.0", ··· 4796 2905 "mdast-util-mdx-expression": "^2.0.0", 4797 2906 "mdast-util-mdx-jsx": "^3.0.0", 4798 2907 "mdast-util-mdxjs-esm": "^2.0.0", 4799 - "property-information": "^6.0.0", 2908 + "property-information": "^7.0.0", 4800 2909 "space-separated-tokens": "^2.0.0", 4801 - "style-to-object": "^0.4.0", 2910 + "style-to-js": "^1.0.0", 4802 2911 "unist-util-position": "^5.0.0", 4803 2912 "zwitch": "^2.0.0" 4804 2913 }, ··· 4807 2916 "url": "https://opencollective.com/unified" 4808 2917 } 4809 2918 }, 4810 - "node_modules/hast-util-to-estree/node_modules/inline-style-parser": { 4811 - "version": "0.1.1", 4812 - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", 4813 - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", 4814 - "license": "MIT" 4815 - }, 4816 - "node_modules/hast-util-to-estree/node_modules/style-to-object": { 4817 - "version": "0.4.4", 4818 - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", 4819 - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", 4820 - "license": "MIT", 4821 - "dependencies": { 4822 - "inline-style-parser": "0.1.1" 4823 - } 4824 - }, 4825 2919 "node_modules/hast-util-to-html": { 4826 2920 "version": "9.0.5", 4827 2921 "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", ··· 4845 2939 "url": "https://opencollective.com/unified" 4846 2940 } 4847 2941 }, 4848 - "node_modules/hast-util-to-html/node_modules/property-information": { 4849 - "version": "7.1.0", 4850 - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", 4851 - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", 4852 - "license": "MIT", 4853 - "funding": { 4854 - "type": "github", 4855 - "url": "https://github.com/sponsors/wooorm" 4856 - } 4857 - }, 4858 2942 "node_modules/hast-util-to-jsx-runtime": { 4859 - "version": "2.3.2", 4860 - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", 4861 - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", 2943 + "version": "2.3.6", 2944 + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", 2945 + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", 4862 2946 "license": "MIT", 4863 2947 "dependencies": { 4864 2948 "@types/estree": "^1.0.0", ··· 4871 2955 "mdast-util-mdx-expression": "^2.0.0", 4872 2956 "mdast-util-mdx-jsx": "^3.0.0", 4873 2957 "mdast-util-mdxjs-esm": "^2.0.0", 4874 - "property-information": "^6.0.0", 2958 + "property-information": "^7.0.0", 4875 2959 "space-separated-tokens": "^2.0.0", 4876 - "style-to-object": "^1.0.0", 2960 + "style-to-js": "^1.0.0", 4877 2961 "unist-util-position": "^5.0.0", 4878 2962 "vfile-message": "^4.0.0" 4879 2963 }, ··· 4899 2983 "funding": { 4900 2984 "type": "opencollective", 4901 2985 "url": "https://opencollective.com/unified" 2986 + } 2987 + }, 2988 + "node_modules/hast-util-to-parse5/node_modules/property-information": { 2989 + "version": "6.5.0", 2990 + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", 2991 + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", 2992 + "license": "MIT", 2993 + "funding": { 2994 + "type": "github", 2995 + "url": "https://github.com/sponsors/wooorm" 4902 2996 } 4903 2997 }, 4904 2998 "node_modules/hast-util-to-text": { ··· 4931 3025 } 4932 3026 }, 4933 3027 "node_modules/hastscript": { 4934 - "version": "9.0.0", 4935 - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", 4936 - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", 3028 + "version": "9.0.1", 3029 + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", 3030 + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", 4937 3031 "license": "MIT", 4938 3032 "dependencies": { 4939 3033 "@types/hast": "^3.0.0", 4940 3034 "comma-separated-tokens": "^2.0.0", 4941 3035 "hast-util-parse-selector": "^4.0.0", 4942 - "property-information": "^6.0.0", 3036 + "property-information": "^7.0.0", 4943 3037 "space-separated-tokens": "^2.0.0" 4944 3038 }, 4945 3039 "funding": { ··· 4947 3041 "url": "https://opencollective.com/unified" 4948 3042 } 4949 3043 }, 4950 - "node_modules/he": { 4951 - "version": "1.2.0", 4952 - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 4953 - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 4954 - "dev": true, 4955 - "license": "MIT", 4956 - "bin": { 4957 - "he": "bin/he" 4958 - } 4959 - }, 4960 3044 "node_modules/html-escaper": { 4961 3045 "version": "3.0.3", 4962 3046 "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", ··· 4974 3058 } 4975 3059 }, 4976 3060 "node_modules/http-cache-semantics": { 4977 - "version": "4.1.1", 4978 - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", 4979 - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", 3061 + "version": "4.2.0", 3062 + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", 3063 + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", 4980 3064 "license": "BSD-2-Clause" 4981 3065 }, 4982 - "node_modules/http-errors": { 4983 - "version": "1.4.0", 4984 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz", 4985 - "integrity": "sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==", 4986 - "dev": true, 4987 - "license": "MIT", 4988 - "dependencies": { 4989 - "inherits": "2.0.1", 4990 - "statuses": ">= 1.2.1 < 2" 4991 - }, 4992 - "engines": { 4993 - "node": ">= 0.6" 4994 - } 4995 - }, 4996 - "node_modules/https-proxy-agent": { 4997 - "version": "7.0.6", 4998 - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 4999 - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 5000 - "dev": true, 5001 - "license": "MIT", 5002 - "dependencies": { 5003 - "agent-base": "^7.1.2", 5004 - "debug": "4" 5005 - }, 5006 - "engines": { 5007 - "node": ">= 14" 5008 - } 5009 - }, 5010 - "node_modules/iconv-lite": { 5011 - "version": "0.4.24", 5012 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 5013 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 5014 - "dev": true, 5015 - "license": "MIT", 5016 - "dependencies": { 5017 - "safer-buffer": ">= 2.1.2 < 3" 5018 - }, 5019 - "engines": { 5020 - "node": ">=0.10.0" 5021 - } 5022 - }, 5023 3066 "node_modules/import-meta-resolve": { 5024 3067 "version": "4.1.0", 5025 3068 "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", ··· 5029 3072 "type": "github", 5030 3073 "url": "https://github.com/sponsors/wooorm" 5031 3074 } 5032 - }, 5033 - "node_modules/inherits": { 5034 - "version": "2.0.1", 5035 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 5036 - "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", 5037 - "dev": true, 5038 - "license": "ISC" 5039 3075 }, 5040 3076 "node_modules/inline-style-parser": { 5041 3077 "version": "0.2.4", ··· 5080 3116 "version": "0.3.2", 5081 3117 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 5082 3118 "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 5083 - "devOptional": true, 5084 - "license": "MIT" 5085 - }, 5086 - "node_modules/is-buffer": { 5087 - "version": "2.0.5", 5088 - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", 5089 - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", 5090 - "devOptional": true, 5091 - "funding": [ 5092 - { 5093 - "type": "github", 5094 - "url": "https://github.com/sponsors/feross" 5095 - }, 5096 - { 5097 - "type": "patreon", 5098 - "url": "https://www.patreon.com/feross" 5099 - }, 5100 - { 5101 - "type": "consulting", 5102 - "url": "https://feross.org/support" 5103 - } 5104 - ], 5105 3119 "license": "MIT", 5106 - "engines": { 5107 - "node": ">=4" 5108 - } 3120 + "optional": true 5109 3121 }, 5110 3122 "node_modules/is-decimal": { 5111 3123 "version": "2.0.1", ··· 5132 3144 "url": "https://github.com/sponsors/sindresorhus" 5133 3145 } 5134 3146 }, 5135 - "node_modules/is-extglob": { 5136 - "version": "2.1.1", 5137 - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 5138 - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 5139 - "dev": true, 5140 - "license": "MIT", 5141 - "engines": { 5142 - "node": ">=0.10.0" 5143 - } 5144 - }, 5145 3147 "node_modules/is-fullwidth-code-point": { 5146 3148 "version": "3.0.0", 5147 3149 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", ··· 5151 3153 "node": ">=8" 5152 3154 } 5153 3155 }, 5154 - "node_modules/is-glob": { 5155 - "version": "4.0.3", 5156 - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 5157 - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 5158 - "dev": true, 5159 - "license": "MIT", 5160 - "dependencies": { 5161 - "is-extglob": "^2.1.1" 5162 - }, 5163 - "engines": { 5164 - "node": ">=0.10.0" 5165 - } 5166 - }, 5167 3156 "node_modules/is-hexadecimal": { 5168 3157 "version": "2.0.1", 5169 3158 "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", ··· 5192 3181 "url": "https://github.com/sponsors/sindresorhus" 5193 3182 } 5194 3183 }, 5195 - "node_modules/is-node-process": { 5196 - "version": "1.2.0", 5197 - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", 5198 - "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", 5199 - "devOptional": true, 5200 - "license": "MIT" 5201 - }, 5202 - "node_modules/is-number": { 5203 - "version": "7.0.0", 5204 - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 5205 - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 5206 - "dev": true, 5207 - "license": "MIT", 5208 - "engines": { 5209 - "node": ">=0.12.0" 5210 - } 5211 - }, 5212 3184 "node_modules/is-plain-obj": { 5213 3185 "version": "4.1.0", 5214 3186 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", ··· 5245 3217 "url": "https://github.com/sponsors/sindresorhus" 5246 3218 } 5247 3219 }, 5248 - "node_modules/isarray": { 5249 - "version": "0.0.1", 5250 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 5251 - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", 5252 - "dev": true, 5253 - "license": "MIT" 5254 - }, 5255 - "node_modules/isexe": { 5256 - "version": "2.0.0", 5257 - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 5258 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 5259 - "dev": true, 5260 - "license": "ISC" 5261 - }, 5262 3220 "node_modules/iso-datestring-validator": { 5263 3221 "version": "2.2.2", 5264 3222 "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", 5265 3223 "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", 5266 3224 "license": "MIT" 5267 3225 }, 5268 - "node_modules/jackspeak": { 5269 - "version": "3.4.3", 5270 - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", 5271 - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 5272 - "dev": true, 5273 - "license": "BlueOak-1.0.0", 5274 - "dependencies": { 5275 - "@isaacs/cliui": "^8.0.2" 5276 - }, 5277 - "funding": { 5278 - "url": "https://github.com/sponsors/isaacs" 5279 - }, 5280 - "optionalDependencies": { 5281 - "@pkgjs/parseargs": "^0.11.0" 5282 - } 5283 - }, 5284 - "node_modules/jose": { 5285 - "version": "5.9.6", 5286 - "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", 5287 - "integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==", 5288 - "dev": true, 5289 - "license": "MIT", 5290 - "funding": { 5291 - "url": "https://github.com/sponsors/panva" 5292 - } 5293 - }, 5294 3226 "node_modules/js-yaml": { 5295 3227 "version": "4.1.0", 5296 3228 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", ··· 5303 3235 "js-yaml": "bin/js-yaml.js" 5304 3236 } 5305 3237 }, 5306 - "node_modules/json-schema-to-ts": { 5307 - "version": "1.6.4", 5308 - "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz", 5309 - "integrity": "sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==", 5310 - "dev": true, 5311 - "license": "MIT", 5312 - "dependencies": { 5313 - "@types/json-schema": "^7.0.6", 5314 - "ts-toolbelt": "^6.15.5" 5315 - } 5316 - }, 5317 - "node_modules/json-schema-traverse": { 5318 - "version": "1.0.0", 5319 - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 5320 - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 5321 - "dev": true, 5322 - "license": "MIT" 5323 - }, 5324 - "node_modules/jsonfile": { 5325 - "version": "6.2.0", 5326 - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", 5327 - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", 5328 - "dev": true, 5329 - "license": "MIT", 5330 - "dependencies": { 5331 - "universalify": "^2.0.0" 5332 - }, 5333 - "optionalDependencies": { 5334 - "graceful-fs": "^4.1.6" 5335 - } 5336 - }, 5337 3238 "node_modules/kleur": { 5338 3239 "version": "4.1.5", 5339 3240 "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", ··· 5374 3275 "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 5375 3276 "license": "ISC" 5376 3277 }, 5377 - "node_modules/luxon": { 5378 - "version": "3.5.0", 5379 - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", 5380 - "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", 5381 - "dev": true, 5382 - "license": "MIT", 5383 - "engines": { 5384 - "node": ">=12" 5385 - } 5386 - }, 5387 3278 "node_modules/magic-string": { 5388 - "version": "0.30.17", 5389 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 5390 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 3279 + "version": "0.30.18", 3280 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", 3281 + "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", 5391 3282 "license": "MIT", 5392 3283 "dependencies": { 5393 - "@jridgewell/sourcemap-codec": "^1.5.0" 3284 + "@jridgewell/sourcemap-codec": "^1.5.5" 5394 3285 } 5395 3286 }, 5396 3287 "node_modules/magicast": { ··· 5403 3294 "@babel/types": "^7.25.4", 5404 3295 "source-map-js": "^1.2.0" 5405 3296 } 5406 - }, 5407 - "node_modules/make-error": { 5408 - "version": "1.3.6", 5409 - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 5410 - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 5411 - "dev": true, 5412 - "license": "ISC" 5413 3297 }, 5414 3298 "node_modules/markdown-extensions": { 5415 3299 "version": "2.0.0", ··· 5449 3333 } 5450 3334 }, 5451 3335 "node_modules/mdast-util-find-and-replace": { 5452 - "version": "3.0.1", 5453 - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", 5454 - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", 3336 + "version": "3.0.2", 3337 + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", 3338 + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", 5455 3339 "license": "MIT", 5456 3340 "dependencies": { 5457 3341 "@types/mdast": "^4.0.0", ··· 5489 3373 } 5490 3374 }, 5491 3375 "node_modules/mdast-util-gfm": { 5492 - "version": "3.0.0", 5493 - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", 5494 - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", 3376 + "version": "3.1.0", 3377 + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", 3378 + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", 5495 3379 "license": "MIT", 5496 3380 "dependencies": { 5497 3381 "mdast-util-from-markdown": "^2.0.0", ··· 5525 3409 } 5526 3410 }, 5527 3411 "node_modules/mdast-util-gfm-footnote": { 5528 - "version": "2.0.0", 5529 - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", 5530 - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", 3412 + "version": "2.1.0", 3413 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", 3414 + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", 5531 3415 "license": "MIT", 5532 3416 "dependencies": { 5533 3417 "@types/mdast": "^4.0.0", ··· 5625 3509 } 5626 3510 }, 5627 3511 "node_modules/mdast-util-mdx-jsx": { 5628 - "version": "3.1.3", 5629 - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", 5630 - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", 3512 + "version": "3.2.0", 3513 + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", 3514 + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", 5631 3515 "license": "MIT", 5632 3516 "dependencies": { 5633 3517 "@types/estree-jsx": "^1.0.0", ··· 5740 3624 "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", 5741 3625 "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", 5742 3626 "license": "CC0-1.0" 5743 - }, 5744 - "node_modules/merge2": { 5745 - "version": "1.4.1", 5746 - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 5747 - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 5748 - "dev": true, 5749 - "license": "MIT", 5750 - "engines": { 5751 - "node": ">= 8" 5752 - } 5753 - }, 5754 - "node_modules/micro": { 5755 - "version": "9.3.5-canary.3", 5756 - "resolved": "https://registry.npmjs.org/micro/-/micro-9.3.5-canary.3.tgz", 5757 - "integrity": "sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g==", 5758 - "dev": true, 5759 - "license": "MIT", 5760 - "dependencies": { 5761 - "arg": "4.1.0", 5762 - "content-type": "1.0.4", 5763 - "raw-body": "2.4.1" 5764 - }, 5765 - "bin": { 5766 - "micro": "bin/micro.js" 5767 - }, 5768 - "engines": { 5769 - "node": ">= 8.0.0" 5770 - } 5771 - }, 5772 - "node_modules/micro/node_modules/arg": { 5773 - "version": "4.1.0", 5774 - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", 5775 - "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", 5776 - "dev": true, 5777 - "license": "MIT" 5778 3627 }, 5779 3628 "node_modules/micromark": { 5780 - "version": "4.0.1", 5781 - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", 5782 - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", 3629 + "version": "4.0.2", 3630 + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", 3631 + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", 5783 3632 "funding": [ 5784 3633 { 5785 3634 "type": "GitHub Sponsors", ··· 5812 3661 } 5813 3662 }, 5814 3663 "node_modules/micromark-core-commonmark": { 5815 - "version": "2.0.2", 5816 - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", 5817 - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", 3664 + "version": "2.0.3", 3665 + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", 3666 + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", 5818 3667 "funding": [ 5819 3668 { 5820 3669 "type": "GitHub Sponsors", ··· 5920 3769 } 5921 3770 }, 5922 3771 "node_modules/micromark-extension-gfm-table": { 5923 - "version": "2.1.0", 5924 - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", 5925 - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", 3772 + "version": "2.1.1", 3773 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", 3774 + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", 5926 3775 "license": "MIT", 5927 3776 "dependencies": { 5928 3777 "devlop": "^1.0.0", ··· 5967 3816 } 5968 3817 }, 5969 3818 "node_modules/micromark-extension-mdx-expression": { 5970 - "version": "3.0.0", 5971 - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", 5972 - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", 3819 + "version": "3.0.1", 3820 + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", 3821 + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", 5973 3822 "funding": [ 5974 3823 { 5975 3824 "type": "GitHub Sponsors", ··· 5993 3842 } 5994 3843 }, 5995 3844 "node_modules/micromark-extension-mdx-jsx": { 5996 - "version": "3.0.1", 5997 - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", 5998 - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", 3845 + "version": "3.0.2", 3846 + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", 3847 + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", 5999 3848 "license": "MIT", 6000 3849 "dependencies": { 6001 - "@types/acorn": "^4.0.0", 6002 3850 "@types/estree": "^1.0.0", 6003 3851 "devlop": "^1.0.0", 6004 3852 "estree-util-is-identifier-name": "^3.0.0", ··· 6113 3961 } 6114 3962 }, 6115 3963 "node_modules/micromark-factory-mdx-expression": { 6116 - "version": "2.0.2", 6117 - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", 6118 - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", 3964 + "version": "2.0.3", 3965 + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", 3966 + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", 6119 3967 "funding": [ 6120 3968 { 6121 3969 "type": "GitHub Sponsors", ··· 6341 4189 "license": "MIT" 6342 4190 }, 6343 4191 "node_modules/micromark-util-events-to-acorn": { 6344 - "version": "2.0.2", 6345 - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", 6346 - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", 4192 + "version": "2.0.3", 4193 + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", 4194 + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", 6347 4195 "funding": [ 6348 4196 { 6349 4197 "type": "GitHub Sponsors", ··· 6356 4204 ], 6357 4205 "license": "MIT", 6358 4206 "dependencies": { 6359 - "@types/acorn": "^4.0.0", 6360 4207 "@types/estree": "^1.0.0", 6361 4208 "@types/unist": "^3.0.0", 6362 4209 "devlop": "^1.0.0", ··· 6442 4289 } 6443 4290 }, 6444 4291 "node_modules/micromark-util-subtokenize": { 6445 - "version": "2.0.3", 6446 - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", 6447 - "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", 4292 + "version": "2.1.0", 4293 + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", 4294 + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", 6448 4295 "funding": [ 6449 4296 { 6450 4297 "type": "GitHub Sponsors", ··· 6480 4327 "license": "MIT" 6481 4328 }, 6482 4329 "node_modules/micromark-util-types": { 6483 - "version": "2.0.1", 6484 - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", 6485 - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", 4330 + "version": "2.0.2", 4331 + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", 4332 + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", 6486 4333 "funding": [ 6487 4334 { 6488 4335 "type": "GitHub Sponsors", ··· 6495 4342 ], 6496 4343 "license": "MIT" 6497 4344 }, 6498 - "node_modules/micromatch": { 6499 - "version": "4.0.8", 6500 - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 6501 - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 6502 - "dev": true, 6503 - "license": "MIT", 6504 - "dependencies": { 6505 - "braces": "^3.0.3", 6506 - "picomatch": "^2.3.1" 6507 - }, 6508 - "engines": { 6509 - "node": ">=8.6" 6510 - } 6511 - }, 6512 - "node_modules/micromatch/node_modules/picomatch": { 6513 - "version": "2.3.1", 6514 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 6515 - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 6516 - "dev": true, 6517 - "license": "MIT", 6518 - "engines": { 6519 - "node": ">=8.6" 6520 - }, 6521 - "funding": { 6522 - "url": "https://github.com/sponsors/jonschlinkert" 6523 - } 6524 - }, 6525 - "node_modules/minimatch": { 6526 - "version": "9.0.5", 6527 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 6528 - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 6529 - "dev": true, 6530 - "license": "ISC", 6531 - "dependencies": { 6532 - "brace-expansion": "^2.0.1" 6533 - }, 6534 - "engines": { 6535 - "node": ">=16 || 14 >=14.17" 6536 - }, 6537 - "funding": { 6538 - "url": "https://github.com/sponsors/isaacs" 6539 - } 6540 - }, 6541 - "node_modules/minipass": { 6542 - "version": "7.1.2", 6543 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 6544 - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 6545 - "dev": true, 6546 - "license": "ISC", 6547 - "engines": { 6548 - "node": ">=16 || 14 >=14.17" 6549 - } 6550 - }, 6551 - "node_modules/minizlib": { 6552 - "version": "2.1.2", 6553 - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", 6554 - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", 6555 - "dev": true, 6556 - "license": "MIT", 6557 - "dependencies": { 6558 - "minipass": "^3.0.0", 6559 - "yallist": "^4.0.0" 6560 - }, 6561 - "engines": { 6562 - "node": ">= 8" 6563 - } 6564 - }, 6565 - "node_modules/minizlib/node_modules/minipass": { 6566 - "version": "3.3.6", 6567 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", 6568 - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", 6569 - "dev": true, 6570 - "license": "ISC", 6571 - "dependencies": { 6572 - "yallist": "^4.0.0" 6573 - }, 6574 - "engines": { 6575 - "node": ">=8" 6576 - } 6577 - }, 6578 - "node_modules/mkdirp": { 6579 - "version": "1.0.4", 6580 - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 6581 - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", 6582 - "dev": true, 6583 - "license": "MIT", 6584 - "bin": { 6585 - "mkdirp": "bin/cmd.js" 6586 - }, 6587 - "engines": { 6588 - "node": ">=10" 6589 - } 6590 - }, 6591 - "node_modules/mri": { 6592 - "version": "1.2.0", 6593 - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 6594 - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 6595 - "dev": true, 6596 - "license": "MIT", 6597 - "engines": { 6598 - "node": ">=4" 6599 - } 6600 - }, 6601 4345 "node_modules/mrmime": { 6602 4346 "version": "2.0.1", 6603 4347 "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", ··· 6695 4439 "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", 6696 4440 "license": "MIT" 6697 4441 }, 6698 - "node_modules/node-gyp-build": { 6699 - "version": "4.8.4", 6700 - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", 6701 - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", 6702 - "dev": true, 6703 - "license": "MIT", 6704 - "bin": { 6705 - "node-gyp-build": "bin.js", 6706 - "node-gyp-build-optional": "optional.js", 6707 - "node-gyp-build-test": "build-test.js" 6708 - } 6709 - }, 6710 4442 "node_modules/node-mock-http": { 6711 4443 "version": "1.0.2", 6712 4444 "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.2.tgz", 6713 4445 "integrity": "sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==", 6714 4446 "license": "MIT" 6715 4447 }, 6716 - "node_modules/nopt": { 6717 - "version": "8.1.0", 6718 - "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", 6719 - "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", 6720 - "dev": true, 6721 - "license": "ISC", 6722 - "dependencies": { 6723 - "abbrev": "^3.0.0" 6724 - }, 6725 - "bin": { 6726 - "nopt": "bin/nopt.js" 6727 - }, 6728 - "engines": { 6729 - "node": "^18.17.0 || >=20.5.0" 6730 - } 6731 - }, 6732 4448 "node_modules/normalize-path": { 6733 4449 "version": "3.0.0", 6734 4450 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", ··· 6755 4471 "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 6756 4472 "license": "MIT" 6757 4473 }, 6758 - "node_modules/once": { 6759 - "version": "1.3.3", 6760 - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", 6761 - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", 6762 - "dev": true, 6763 - "license": "ISC", 6764 - "dependencies": { 6765 - "wrappy": "1" 6766 - } 6767 - }, 6768 4474 "node_modules/oniguruma-parser": { 6769 4475 "version": "0.12.1", 6770 4476 "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", ··· 6782 4488 "regex-recursion": "^6.0.2" 6783 4489 } 6784 4490 }, 6785 - "node_modules/os-paths": { 6786 - "version": "4.4.0", 6787 - "resolved": "https://registry.npmjs.org/os-paths/-/os-paths-4.4.0.tgz", 6788 - "integrity": "sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==", 6789 - "dev": true, 6790 - "license": "MIT", 6791 - "engines": { 6792 - "node": ">= 6.0" 6793 - } 6794 - }, 6795 4491 "node_modules/p-limit": { 6796 4492 "version": "6.2.0", 6797 4493 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", ··· 6835 4531 "url": "https://github.com/sponsors/sindresorhus" 6836 4532 } 6837 4533 }, 6838 - "node_modules/package-json-from-dist": { 6839 - "version": "1.0.1", 6840 - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", 6841 - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", 6842 - "dev": true, 6843 - "license": "BlueOak-1.0.0" 6844 - }, 6845 4534 "node_modules/package-manager-detector": { 6846 4535 "version": "1.3.0", 6847 4536 "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", ··· 6897 4586 "url": "https://github.com/sponsors/wooorm" 6898 4587 } 6899 4588 }, 6900 - "node_modules/parse-ms": { 6901 - "version": "2.1.0", 6902 - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", 6903 - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", 6904 - "dev": true, 6905 - "license": "MIT", 6906 - "engines": { 6907 - "node": ">=6" 6908 - } 6909 - }, 6910 4589 "node_modules/parse5": { 6911 - "version": "7.2.1", 6912 - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", 6913 - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", 4590 + "version": "7.3.0", 4591 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", 4592 + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", 6914 4593 "license": "MIT", 6915 4594 "dependencies": { 6916 - "entities": "^4.5.0" 4595 + "entities": "^6.0.0" 6917 4596 }, 6918 4597 "funding": { 6919 4598 "url": "https://github.com/inikulin/parse5?sponsor=1" ··· 6929 4608 "tslib": "^2.0.3" 6930 4609 } 6931 4610 }, 6932 - "node_modules/path-browserify": { 6933 - "version": "1.0.1", 6934 - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 6935 - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", 6936 - "dev": true, 6937 - "license": "MIT" 6938 - }, 6939 - "node_modules/path-key": { 6940 - "version": "3.1.1", 6941 - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 6942 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 6943 - "dev": true, 6944 - "license": "MIT", 6945 - "engines": { 6946 - "node": ">=8" 6947 - } 6948 - }, 6949 - "node_modules/path-match": { 6950 - "version": "1.2.4", 6951 - "resolved": "https://registry.npmjs.org/path-match/-/path-match-1.2.4.tgz", 6952 - "integrity": "sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw==", 6953 - "deprecated": "This package is archived and no longer maintained. For support, visit https://github.com/expressjs/express/discussions", 6954 - "dev": true, 6955 - "license": "MIT", 6956 - "dependencies": { 6957 - "http-errors": "~1.4.0", 6958 - "path-to-regexp": "^1.0.0" 6959 - } 6960 - }, 6961 - "node_modules/path-match/node_modules/path-to-regexp": { 6962 - "version": "1.9.0", 6963 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", 6964 - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", 6965 - "dev": true, 6966 - "license": "MIT", 6967 - "dependencies": { 6968 - "isarray": "0.0.1" 6969 - } 6970 - }, 6971 - "node_modules/path-scurry": { 6972 - "version": "1.11.1", 6973 - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 6974 - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 6975 - "dev": true, 6976 - "license": "BlueOak-1.0.0", 6977 - "dependencies": { 6978 - "lru-cache": "^10.2.0", 6979 - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 6980 - }, 6981 - "engines": { 6982 - "node": ">=16 || 14 >=14.18" 6983 - }, 6984 - "funding": { 6985 - "url": "https://github.com/sponsors/isaacs" 6986 - } 6987 - }, 6988 - "node_modules/path-to-regexp": { 6989 - "version": "6.1.0", 6990 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz", 6991 - "integrity": "sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==", 6992 - "dev": true, 6993 - "license": "MIT" 6994 - }, 6995 - "node_modules/path-to-regexp-updated": { 6996 - "name": "path-to-regexp", 6997 - "version": "6.3.0", 6998 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 6999 - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 7000 - "dev": true, 7001 - "license": "MIT" 7002 - }, 7003 - "node_modules/pend": { 7004 - "version": "1.2.0", 7005 - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 7006 - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", 7007 - "dev": true, 7008 - "license": "MIT" 7009 - }, 7010 4611 "node_modules/picocolors": { 7011 4612 "version": "1.1.1", 7012 4613 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 7014 4615 "license": "ISC" 7015 4616 }, 7016 4617 "node_modules/picomatch": { 7017 - "version": "4.0.2", 7018 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 7019 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 4618 + "version": "4.0.3", 4619 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 4620 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 7020 4621 "license": "MIT", 7021 4622 "engines": { 7022 4623 "node": ">=12" ··· 7053 4654 "node": "^10 || ^12 || >=14" 7054 4655 } 7055 4656 }, 7056 - "node_modules/pretty-ms": { 7057 - "version": "7.0.1", 7058 - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", 7059 - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", 4657 + "node_modules/prettier": { 4658 + "version": "3.6.2", 4659 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", 4660 + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", 7060 4661 "dev": true, 7061 4662 "license": "MIT", 7062 - "dependencies": { 7063 - "parse-ms": "^2.1.0" 4663 + "bin": { 4664 + "prettier": "bin/prettier.cjs" 7064 4665 }, 7065 4666 "engines": { 7066 - "node": ">=10" 4667 + "node": ">=14" 7067 4668 }, 7068 4669 "funding": { 7069 - "url": "https://github.com/sponsors/sindresorhus" 4670 + "url": "https://github.com/prettier/prettier?sponsor=1" 4671 + } 4672 + }, 4673 + "node_modules/prettier-plugin-astro": { 4674 + "version": "0.14.1", 4675 + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz", 4676 + "integrity": "sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==", 4677 + "dev": true, 4678 + "license": "MIT", 4679 + "dependencies": { 4680 + "@astrojs/compiler": "^2.9.1", 4681 + "prettier": "^3.0.0", 4682 + "sass-formatter": "^0.7.6" 4683 + }, 4684 + "engines": { 4685 + "node": "^14.15.0 || >=16.0.0" 7070 4686 } 7071 4687 }, 7072 4688 "node_modules/prismjs": { ··· 7078 4694 "node": ">=6" 7079 4695 } 7080 4696 }, 7081 - "node_modules/promisepipe": { 7082 - "version": "3.0.0", 7083 - "resolved": "https://registry.npmjs.org/promisepipe/-/promisepipe-3.0.0.tgz", 7084 - "integrity": "sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA==", 7085 - "dev": true, 7086 - "license": "MIT" 7087 - }, 7088 4697 "node_modules/prompts": { 7089 4698 "version": "2.4.2", 7090 4699 "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", ··· 7108 4717 } 7109 4718 }, 7110 4719 "node_modules/property-information": { 7111 - "version": "6.5.0", 7112 - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", 7113 - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", 4720 + "version": "7.1.0", 4721 + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", 4722 + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", 7114 4723 "license": "MIT", 7115 4724 "funding": { 7116 4725 "type": "github", 7117 4726 "url": "https://github.com/sponsors/wooorm" 7118 4727 } 7119 4728 }, 7120 - "node_modules/punycode": { 7121 - "version": "2.3.1", 7122 - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 7123 - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 7124 - "dev": true, 7125 - "license": "MIT", 7126 - "engines": { 7127 - "node": ">=6" 7128 - } 7129 - }, 7130 - "node_modules/queue-microtask": { 7131 - "version": "1.2.3", 7132 - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 7133 - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 7134 - "dev": true, 7135 - "funding": [ 7136 - { 7137 - "type": "github", 7138 - "url": "https://github.com/sponsors/feross" 7139 - }, 7140 - { 7141 - "type": "patreon", 7142 - "url": "https://www.patreon.com/feross" 7143 - }, 7144 - { 7145 - "type": "consulting", 7146 - "url": "https://feross.org/support" 7147 - } 7148 - ], 7149 - "license": "MIT" 7150 - }, 7151 4729 "node_modules/radix3": { 7152 4730 "version": "1.1.2", 7153 4731 "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", 7154 4732 "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", 7155 4733 "license": "MIT" 7156 4734 }, 7157 - "node_modules/raw-body": { 7158 - "version": "2.4.1", 7159 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", 7160 - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", 7161 - "dev": true, 7162 - "license": "MIT", 7163 - "dependencies": { 7164 - "bytes": "3.1.0", 7165 - "http-errors": "1.7.3", 7166 - "iconv-lite": "0.4.24", 7167 - "unpipe": "1.0.0" 7168 - }, 7169 - "engines": { 7170 - "node": ">= 0.8" 7171 - } 7172 - }, 7173 - "node_modules/raw-body/node_modules/http-errors": { 7174 - "version": "1.7.3", 7175 - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", 7176 - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", 7177 - "dev": true, 7178 - "license": "MIT", 7179 - "dependencies": { 7180 - "depd": "~1.1.2", 7181 - "inherits": "2.0.4", 7182 - "setprototypeof": "1.1.1", 7183 - "statuses": ">= 1.5.0 < 2", 7184 - "toidentifier": "1.0.0" 7185 - }, 7186 - "engines": { 7187 - "node": ">= 0.6" 7188 - } 7189 - }, 7190 - "node_modules/raw-body/node_modules/inherits": { 7191 - "version": "2.0.4", 7192 - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 7193 - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 7194 - "dev": true, 7195 - "license": "ISC" 7196 - }, 7197 4735 "node_modules/readdirp": { 7198 4736 "version": "4.1.2", 7199 4737 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", ··· 7223 4761 } 7224 4762 }, 7225 4763 "node_modules/recma-jsx": { 7226 - "version": "1.0.0", 7227 - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", 7228 - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", 4764 + "version": "1.0.1", 4765 + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", 4766 + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", 7229 4767 "license": "MIT", 7230 4768 "dependencies": { 7231 4769 "acorn-jsx": "^5.0.0", ··· 7237 4775 "funding": { 7238 4776 "type": "opencollective", 7239 4777 "url": "https://opencollective.com/unified" 4778 + }, 4779 + "peerDependencies": { 4780 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 7240 4781 } 7241 4782 }, 7242 4783 "node_modules/recma-parse": { ··· 7466 5007 "url": "https://opencollective.com/unified" 7467 5008 } 7468 5009 }, 7469 - "node_modules/require-from-string": { 7470 - "version": "2.0.2", 7471 - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 7472 - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 7473 - "dev": true, 7474 - "license": "MIT", 7475 - "engines": { 7476 - "node": ">=0.10.0" 7477 - } 7478 - }, 7479 - "node_modules/resolve-from": { 7480 - "version": "5.0.0", 7481 - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 7482 - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 7483 - "dev": true, 7484 - "license": "MIT", 7485 - "engines": { 7486 - "node": ">=8" 7487 - } 7488 - }, 7489 5010 "node_modules/restructure": { 7490 5011 "version": "3.0.2", 7491 5012 "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", ··· 7553 5074 "url": "https://opencollective.com/unified" 7554 5075 } 7555 5076 }, 7556 - "node_modules/retry": { 7557 - "version": "0.13.1", 7558 - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", 7559 - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", 7560 - "devOptional": true, 7561 - "license": "MIT", 7562 - "engines": { 7563 - "node": ">= 4" 7564 - } 7565 - }, 7566 - "node_modules/reusify": { 7567 - "version": "1.1.0", 7568 - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 7569 - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 7570 - "dev": true, 7571 - "license": "MIT", 7572 - "engines": { 7573 - "iojs": ">=1.0.0", 7574 - "node": ">=0.10.0" 7575 - } 7576 - }, 7577 5077 "node_modules/rollup": { 7578 5078 "version": "4.49.0", 7579 5079 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.49.0.tgz", ··· 7613 5113 "fsevents": "~2.3.2" 7614 5114 } 7615 5115 }, 7616 - "node_modules/run-parallel": { 7617 - "version": "1.2.0", 7618 - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 7619 - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 5116 + "node_modules/s.color": { 5117 + "version": "0.0.15", 5118 + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", 5119 + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", 7620 5120 "dev": true, 7621 - "funding": [ 7622 - { 7623 - "type": "github", 7624 - "url": "https://github.com/sponsors/feross" 7625 - }, 7626 - { 7627 - "type": "patreon", 7628 - "url": "https://www.patreon.com/feross" 7629 - }, 7630 - { 7631 - "type": "consulting", 7632 - "url": "https://feross.org/support" 7633 - } 7634 - ], 5121 + "license": "MIT" 5122 + }, 5123 + "node_modules/sass-formatter": { 5124 + "version": "0.7.9", 5125 + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", 5126 + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", 5127 + "dev": true, 7635 5128 "license": "MIT", 7636 5129 "dependencies": { 7637 - "queue-microtask": "^1.2.2" 5130 + "suf-log": "^2.5.3" 7638 5131 } 7639 5132 }, 7640 - "node_modules/safer-buffer": { 7641 - "version": "2.1.2", 7642 - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 7643 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 7644 - "dev": true, 7645 - "license": "MIT" 7646 - }, 7647 5133 "node_modules/sax": { 7648 5134 "version": "1.4.1", 7649 5135 "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", ··· 7661 5147 "engines": { 7662 5148 "node": ">=10" 7663 5149 } 7664 - }, 7665 - "node_modules/setprototypeof": { 7666 - "version": "1.1.1", 7667 - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 7668 - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", 7669 - "dev": true, 7670 - "license": "ISC" 7671 5150 }, 7672 5151 "node_modules/sharp": { 7673 5152 "version": "0.33.5", 7674 5153 "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 7675 5154 "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 7676 - "devOptional": true, 7677 5155 "hasInstallScript": true, 7678 5156 "license": "Apache-2.0", 5157 + "optional": true, 7679 5158 "dependencies": { 7680 5159 "color": "^4.2.3", 7681 5160 "detect-libc": "^2.0.3", ··· 7709 5188 "@img/sharp-win32-x64": "0.33.5" 7710 5189 } 7711 5190 }, 7712 - "node_modules/shebang-command": { 7713 - "version": "2.0.0", 7714 - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 7715 - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 7716 - "dev": true, 7717 - "license": "MIT", 7718 - "dependencies": { 7719 - "shebang-regex": "^3.0.0" 7720 - }, 7721 - "engines": { 7722 - "node": ">=8" 7723 - } 7724 - }, 7725 - "node_modules/shebang-regex": { 7726 - "version": "3.0.0", 7727 - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 7728 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 7729 - "dev": true, 7730 - "license": "MIT", 7731 - "engines": { 7732 - "node": ">=8" 7733 - } 7734 - }, 7735 5191 "node_modules/shiki": { 7736 5192 "version": "3.12.0", 7737 5193 "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.12.0.tgz", ··· 7748 5204 "@types/hast": "^3.0.4" 7749 5205 } 7750 5206 }, 7751 - "node_modules/signal-exit": { 7752 - "version": "4.0.2", 7753 - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", 7754 - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", 7755 - "dev": true, 7756 - "license": "ISC", 7757 - "engines": { 7758 - "node": ">=14" 7759 - }, 7760 - "funding": { 7761 - "url": "https://github.com/sponsors/isaacs" 7762 - } 7763 - }, 7764 5207 "node_modules/simple-swizzle": { 7765 5208 "version": "0.2.2", 7766 5209 "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 7767 5210 "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 7768 - "devOptional": true, 7769 5211 "license": "MIT", 5212 + "optional": true, 7770 5213 "dependencies": { 7771 5214 "is-arrayish": "^0.3.1" 7772 5215 } ··· 7815 5258 } 7816 5259 }, 7817 5260 "node_modules/source-map": { 7818 - "version": "0.7.4", 7819 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", 7820 - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", 5261 + "version": "0.7.6", 5262 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", 5263 + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", 7821 5264 "license": "BSD-3-Clause", 7822 5265 "engines": { 7823 - "node": ">= 8" 5266 + "node": ">= 12" 7824 5267 } 7825 5268 }, 7826 5269 "node_modules/source-map-js": { ··· 7842 5285 "url": "https://github.com/sponsors/wooorm" 7843 5286 } 7844 5287 }, 7845 - "node_modules/stat-mode": { 7846 - "version": "0.3.0", 7847 - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz", 7848 - "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==", 7849 - "dev": true, 7850 - "license": "MIT" 7851 - }, 7852 - "node_modules/statuses": { 7853 - "version": "1.5.0", 7854 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 7855 - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", 7856 - "dev": true, 7857 - "license": "MIT", 7858 - "engines": { 7859 - "node": ">= 0.6" 7860 - } 7861 - }, 7862 5288 "node_modules/stream-replace-string": { 7863 5289 "version": "2.0.0", 7864 5290 "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", 7865 5291 "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", 7866 5292 "license": "MIT" 7867 5293 }, 7868 - "node_modules/stream-to-array": { 7869 - "version": "2.3.0", 7870 - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", 7871 - "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", 7872 - "dev": true, 7873 - "license": "MIT", 7874 - "dependencies": { 7875 - "any-promise": "^1.1.0" 7876 - } 7877 - }, 7878 - "node_modules/stream-to-promise": { 7879 - "version": "2.2.0", 7880 - "resolved": "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-2.2.0.tgz", 7881 - "integrity": "sha512-HAGUASw8NT0k8JvIVutB2Y/9iBk7gpgEyAudXwNJmZERdMITGdajOa4VJfD/kNiA3TppQpTP4J+CtcHwdzKBAw==", 7882 - "dev": true, 7883 - "license": "MIT", 7884 - "dependencies": { 7885 - "any-promise": "~1.3.0", 7886 - "end-of-stream": "~1.1.0", 7887 - "stream-to-array": "~2.3.0" 7888 - } 7889 - }, 7890 5294 "node_modules/string-width": { 7891 5295 "version": "7.2.0", 7892 5296 "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", ··· 7904 5308 "url": "https://github.com/sponsors/sindresorhus" 7905 5309 } 7906 5310 }, 7907 - "node_modules/string-width-cjs": { 7908 - "name": "string-width", 7909 - "version": "4.2.3", 7910 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 7911 - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 7912 - "dev": true, 7913 - "license": "MIT", 7914 - "dependencies": { 7915 - "emoji-regex": "^8.0.0", 7916 - "is-fullwidth-code-point": "^3.0.0", 7917 - "strip-ansi": "^6.0.1" 7918 - }, 7919 - "engines": { 7920 - "node": ">=8" 7921 - } 7922 - }, 7923 - "node_modules/string-width-cjs/node_modules/ansi-regex": { 7924 - "version": "5.0.1", 7925 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7926 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7927 - "dev": true, 7928 - "license": "MIT", 7929 - "engines": { 7930 - "node": ">=8" 7931 - } 7932 - }, 7933 - "node_modules/string-width-cjs/node_modules/emoji-regex": { 7934 - "version": "8.0.0", 7935 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 7936 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 7937 - "dev": true, 7938 - "license": "MIT" 7939 - }, 7940 - "node_modules/string-width-cjs/node_modules/strip-ansi": { 7941 - "version": "6.0.1", 7942 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7943 - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7944 - "dev": true, 7945 - "license": "MIT", 7946 - "dependencies": { 7947 - "ansi-regex": "^5.0.1" 7948 - }, 7949 - "engines": { 7950 - "node": ">=8" 7951 - } 7952 - }, 7953 5311 "node_modules/stringify-entities": { 7954 5312 "version": "4.0.4", 7955 5313 "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", ··· 7979 5337 "url": "https://github.com/chalk/strip-ansi?sponsor=1" 7980 5338 } 7981 5339 }, 7982 - "node_modules/strip-ansi-cjs": { 7983 - "name": "strip-ansi", 7984 - "version": "6.0.1", 7985 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7986 - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7987 - "dev": true, 7988 - "license": "MIT", 7989 - "dependencies": { 7990 - "ansi-regex": "^5.0.1" 7991 - }, 7992 - "engines": { 7993 - "node": ">=8" 7994 - } 7995 - }, 7996 - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 7997 - "version": "5.0.1", 7998 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7999 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 8000 - "dev": true, 8001 - "license": "MIT", 8002 - "engines": { 8003 - "node": ">=8" 8004 - } 8005 - }, 8006 5340 "node_modules/strnum": { 8007 5341 "version": "2.1.1", 8008 5342 "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", ··· 8015 5349 ], 8016 5350 "license": "MIT" 8017 5351 }, 5352 + "node_modules/style-to-js": { 5353 + "version": "1.1.17", 5354 + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", 5355 + "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", 5356 + "license": "MIT", 5357 + "dependencies": { 5358 + "style-to-object": "1.0.9" 5359 + } 5360 + }, 8018 5361 "node_modules/style-to-object": { 8019 - "version": "1.0.8", 8020 - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", 8021 - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", 5362 + "version": "1.0.9", 5363 + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", 5364 + "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", 8022 5365 "license": "MIT", 8023 5366 "dependencies": { 8024 5367 "inline-style-parser": "0.2.4" 8025 5368 } 8026 5369 }, 5370 + "node_modules/suf-log": { 5371 + "version": "2.5.3", 5372 + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", 5373 + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", 5374 + "dev": true, 5375 + "license": "MIT", 5376 + "dependencies": { 5377 + "s.color": "0.0.15" 5378 + } 5379 + }, 8027 5380 "node_modules/svelte": { 8028 - "version": "5.16.0", 8029 - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.16.0.tgz", 8030 - "integrity": "sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==", 5381 + "version": "5.38.6", 5382 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.38.6.tgz", 5383 + "integrity": "sha512-ltBPlkvqk3bgCK7/N323atUpP3O3Y+DrGV4dcULrsSn4fZaaNnOmdplNznwfdWclAgvSr5rxjtzn/zJhRm6TKg==", 8031 5384 "license": "MIT", 8032 5385 "dependencies": { 8033 - "@ampproject/remapping": "^2.3.0", 5386 + "@jridgewell/remapping": "^2.3.4", 8034 5387 "@jridgewell/sourcemap-codec": "^1.5.0", 5388 + "@sveltejs/acorn-typescript": "^1.0.5", 8035 5389 "@types/estree": "^1.0.5", 8036 5390 "acorn": "^8.12.1", 8037 - "acorn-typescript": "^1.4.13", 8038 5391 "aria-query": "^5.3.1", 8039 5392 "axobject-query": "^4.1.0", 8040 5393 "clsx": "^2.1.1", 8041 5394 "esm-env": "^1.2.1", 8042 - "esrap": "^1.3.2", 5395 + "esrap": "^2.1.0", 8043 5396 "is-reference": "^3.0.3", 8044 5397 "locate-character": "^3.0.0", 8045 5398 "magic-string": "^0.30.11", ··· 8063 5416 "typescript": "^4.9.4 || ^5.0.0" 8064 5417 } 8065 5418 }, 8066 - "node_modules/tar": { 8067 - "version": "6.2.1", 8068 - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", 8069 - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", 8070 - "dev": true, 8071 - "license": "ISC", 8072 - "dependencies": { 8073 - "chownr": "^2.0.0", 8074 - "fs-minipass": "^2.0.0", 8075 - "minipass": "^5.0.0", 8076 - "minizlib": "^2.1.1", 8077 - "mkdirp": "^1.0.3", 8078 - "yallist": "^4.0.0" 8079 - }, 8080 - "engines": { 8081 - "node": ">=10" 8082 - } 8083 - }, 8084 - "node_modules/tar/node_modules/minipass": { 8085 - "version": "5.0.0", 8086 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", 8087 - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", 8088 - "dev": true, 8089 - "license": "ISC", 8090 - "engines": { 8091 - "node": ">=8" 8092 - } 8093 - }, 8094 - "node_modules/throttleit": { 8095 - "version": "2.1.0", 8096 - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", 8097 - "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", 8098 - "devOptional": true, 8099 - "license": "MIT", 8100 - "engines": { 8101 - "node": ">=18" 8102 - }, 8103 - "funding": { 8104 - "url": "https://github.com/sponsors/sindresorhus" 8105 - } 8106 - }, 8107 - "node_modules/time-span": { 8108 - "version": "4.0.0", 8109 - "resolved": "https://registry.npmjs.org/time-span/-/time-span-4.0.0.tgz", 8110 - "integrity": "sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==", 8111 - "dev": true, 8112 - "license": "MIT", 8113 - "dependencies": { 8114 - "convert-hrtime": "^3.0.0" 8115 - }, 8116 - "engines": { 8117 - "node": ">=10" 8118 - }, 8119 - "funding": { 8120 - "url": "https://github.com/sponsors/sindresorhus" 8121 - } 8122 - }, 8123 5419 "node_modules/tiny-inflate": { 8124 5420 "version": "1.0.3", 8125 5421 "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", ··· 8149 5445 } 8150 5446 }, 8151 5447 "node_modules/tlds": { 8152 - "version": "1.255.0", 8153 - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.255.0.tgz", 8154 - "integrity": "sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==", 5448 + "version": "1.260.0", 5449 + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.260.0.tgz", 5450 + "integrity": "sha512-78+28EWBhCEE7qlyaHA9OR3IPvbCLiDh3Ckla593TksfFc9vfTsgvH7eS+dr3o9qr31gwGbogcI16yN91PoRjQ==", 8155 5451 "license": "MIT", 8156 5452 "bin": { 8157 5453 "tlds": "bin.js" 8158 5454 } 8159 5455 }, 8160 - "node_modules/to-regex-range": { 8161 - "version": "5.0.1", 8162 - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 8163 - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 8164 - "dev": true, 8165 - "license": "MIT", 8166 - "dependencies": { 8167 - "is-number": "^7.0.0" 8168 - }, 8169 - "engines": { 8170 - "node": ">=8.0" 8171 - } 8172 - }, 8173 - "node_modules/toidentifier": { 8174 - "version": "1.0.0", 8175 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 8176 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", 8177 - "dev": true, 8178 - "license": "MIT", 8179 - "engines": { 8180 - "node": ">=0.6" 8181 - } 8182 - }, 8183 5456 "node_modules/tr46": { 8184 5457 "version": "0.0.3", 8185 5458 "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 8186 5459 "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 8187 5460 "license": "MIT" 8188 - }, 8189 - "node_modules/tree-kill": { 8190 - "version": "1.2.2", 8191 - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", 8192 - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 8193 - "dev": true, 8194 - "license": "MIT", 8195 - "bin": { 8196 - "tree-kill": "cli.js" 8197 - } 8198 5461 }, 8199 5462 "node_modules/trim-lines": { 8200 5463 "version": "3.0.1", ··· 8216 5479 "url": "https://github.com/sponsors/wooorm" 8217 5480 } 8218 5481 }, 8219 - "node_modules/ts-morph": { 8220 - "version": "12.0.0", 8221 - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-12.0.0.tgz", 8222 - "integrity": "sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==", 8223 - "dev": true, 8224 - "license": "MIT", 8225 - "dependencies": { 8226 - "@ts-morph/common": "~0.11.0", 8227 - "code-block-writer": "^10.1.1" 8228 - } 8229 - }, 8230 - "node_modules/ts-node": { 8231 - "version": "10.9.1", 8232 - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", 8233 - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", 8234 - "dev": true, 8235 - "license": "MIT", 8236 - "dependencies": { 8237 - "@cspotcode/source-map-support": "^0.8.0", 8238 - "@tsconfig/node10": "^1.0.7", 8239 - "@tsconfig/node12": "^1.0.7", 8240 - "@tsconfig/node14": "^1.0.0", 8241 - "@tsconfig/node16": "^1.0.2", 8242 - "acorn": "^8.4.1", 8243 - "acorn-walk": "^8.1.1", 8244 - "arg": "^4.1.0", 8245 - "create-require": "^1.1.0", 8246 - "diff": "^4.0.1", 8247 - "make-error": "^1.1.1", 8248 - "v8-compile-cache-lib": "^3.0.1", 8249 - "yn": "3.1.1" 8250 - }, 8251 - "bin": { 8252 - "ts-node": "dist/bin.js", 8253 - "ts-node-cwd": "dist/bin-cwd.js", 8254 - "ts-node-esm": "dist/bin-esm.js", 8255 - "ts-node-script": "dist/bin-script.js", 8256 - "ts-node-transpile-only": "dist/bin-transpile.js", 8257 - "ts-script": "dist/bin-script-deprecated.js" 8258 - }, 8259 - "peerDependencies": { 8260 - "@swc/core": ">=1.2.50", 8261 - "@swc/wasm": ">=1.2.50", 8262 - "@types/node": "*", 8263 - "typescript": ">=2.7" 8264 - }, 8265 - "peerDependenciesMeta": { 8266 - "@swc/core": { 8267 - "optional": true 8268 - }, 8269 - "@swc/wasm": { 8270 - "optional": true 8271 - } 8272 - } 8273 - }, 8274 - "node_modules/ts-node/node_modules/arg": { 8275 - "version": "4.1.3", 8276 - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", 8277 - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", 8278 - "dev": true, 8279 - "license": "MIT" 8280 - }, 8281 - "node_modules/ts-node/node_modules/diff": { 8282 - "version": "4.0.2", 8283 - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 8284 - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 8285 - "dev": true, 8286 - "license": "BSD-3-Clause", 8287 - "engines": { 8288 - "node": ">=0.3.1" 8289 - } 8290 - }, 8291 - "node_modules/ts-toolbelt": { 8292 - "version": "6.15.5", 8293 - "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz", 8294 - "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==", 8295 - "dev": true, 8296 - "license": "Apache-2.0" 8297 - }, 8298 5482 "node_modules/tsconfck": { 8299 5483 "version": "3.1.6", 8300 5484 "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", ··· 8322 5506 "license": "0BSD" 8323 5507 }, 8324 5508 "node_modules/type-fest": { 8325 - "version": "4.31.0", 8326 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", 8327 - "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", 5509 + "version": "4.41.0", 5510 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", 5511 + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", 8328 5512 "license": "(MIT OR CC0-1.0)", 8329 5513 "engines": { 8330 5514 "node": ">=16" ··· 8334 5518 } 8335 5519 }, 8336 5520 "node_modules/typescript": { 8337 - "version": "5.7.2", 8338 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", 8339 - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", 5521 + "version": "5.9.2", 5522 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", 5523 + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", 8340 5524 "license": "Apache-2.0", 8341 5525 "bin": { 8342 5526 "tsc": "bin/tsc", ··· 8352 5536 "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 8353 5537 "license": "MIT" 8354 5538 }, 8355 - "node_modules/uid-promise": { 8356 - "version": "1.0.0", 8357 - "resolved": "https://registry.npmjs.org/uid-promise/-/uid-promise-1.0.0.tgz", 8358 - "integrity": "sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig==", 8359 - "dev": true, 8360 - "license": "MIT" 8361 - }, 8362 5539 "node_modules/uint8arrays": { 8363 5540 "version": "3.0.0", 8364 5541 "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", ··· 8380 5557 "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", 8381 5558 "license": "MIT" 8382 5559 }, 8383 - "node_modules/undici": { 8384 - "version": "5.29.0", 8385 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 8386 - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 8387 - "devOptional": true, 8388 - "license": "MIT", 8389 - "dependencies": { 8390 - "@fastify/busboy": "^2.0.0" 8391 - }, 8392 - "engines": { 8393 - "node": ">=14.0" 8394 - } 8395 - }, 8396 5560 "node_modules/undici-types": { 8397 - "version": "6.20.0", 8398 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", 8399 - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", 5561 + "version": "7.10.0", 5562 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", 5563 + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", 8400 5564 "license": "MIT" 8401 5565 }, 8402 5566 "node_modules/unicode-properties": { ··· 8585 5749 "url": "https://opencollective.com/unified" 8586 5750 } 8587 5751 }, 8588 - "node_modules/universalify": { 8589 - "version": "2.0.1", 8590 - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", 8591 - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", 8592 - "dev": true, 8593 - "license": "MIT", 8594 - "engines": { 8595 - "node": ">= 10.0.0" 8596 - } 8597 - }, 8598 - "node_modules/unpipe": { 8599 - "version": "1.0.0", 8600 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 8601 - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 8602 - "dev": true, 8603 - "license": "MIT", 8604 - "engines": { 8605 - "node": ">= 0.8" 8606 - } 8607 - }, 8608 5752 "node_modules/unstorage": { 8609 5753 "version": "1.17.0", 8610 5754 "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.0.tgz", ··· 8701 5845 } 8702 5846 } 8703 5847 }, 8704 - "node_modules/uri-js": { 8705 - "version": "4.4.1", 8706 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 8707 - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 8708 - "dev": true, 8709 - "license": "BSD-2-Clause", 8710 - "dependencies": { 8711 - "punycode": "^2.1.0" 8712 - } 8713 - }, 8714 - "node_modules/v8-compile-cache-lib": { 8715 - "version": "3.0.1", 8716 - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", 8717 - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", 8718 - "dev": true, 8719 - "license": "MIT" 8720 - }, 8721 - "node_modules/vercel": { 8722 - "version": "46.1.0", 8723 - "resolved": "https://registry.npmjs.org/vercel/-/vercel-46.1.0.tgz", 8724 - "integrity": "sha512-k8YAX62rGdA4COvgnRK9asfl1fzmvu40ZkG5wEvlgA2dWNYjEXfYNacdPQNup0jmWiQsVMvxLXKc+89wmx3tqw==", 8725 - "dev": true, 8726 - "license": "Apache-2.0", 8727 - "dependencies": { 8728 - "@vercel/blob": "1.0.2", 8729 - "@vercel/build-utils": "11.0.2", 8730 - "@vercel/detect-agent": "0.2.0", 8731 - "@vercel/express": "0.0.10", 8732 - "@vercel/fun": "1.1.6", 8733 - "@vercel/go": "3.2.3", 8734 - "@vercel/hono": "0.0.18", 8735 - "@vercel/hydrogen": "1.2.4", 8736 - "@vercel/next": "4.12.2", 8737 - "@vercel/node": "5.3.17", 8738 - "@vercel/python": "5.0.0", 8739 - "@vercel/redwood": "2.3.6", 8740 - "@vercel/remix-builder": "5.4.12", 8741 - "@vercel/ruby": "2.2.1", 8742 - "@vercel/static-build": "2.7.20", 8743 - "chokidar": "4.0.0", 8744 - "jose": "5.9.6" 8745 - }, 8746 - "bin": { 8747 - "vc": "dist/vc.js", 8748 - "vercel": "dist/vc.js" 8749 - }, 8750 - "engines": { 8751 - "node": ">= 18" 8752 - } 8753 - }, 8754 - "node_modules/vercel/node_modules/chokidar": { 8755 - "version": "4.0.0", 8756 - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.0.tgz", 8757 - "integrity": "sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==", 8758 - "dev": true, 8759 - "license": "MIT", 8760 - "dependencies": { 8761 - "readdirp": "^4.0.1" 8762 - }, 8763 - "engines": { 8764 - "node": ">= 14.16.0" 8765 - }, 8766 - "funding": { 8767 - "url": "https://paulmillr.com/funding/" 8768 - } 8769 - }, 8770 5848 "node_modules/vfile": { 8771 5849 "version": "6.0.3", 8772 5850 "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", ··· 8796 5874 } 8797 5875 }, 8798 5876 "node_modules/vfile-message": { 8799 - "version": "4.0.2", 8800 - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", 8801 - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", 5877 + "version": "4.0.3", 5878 + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", 5879 + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", 8802 5880 "license": "MIT", 8803 5881 "dependencies": { 8804 5882 "@types/unist": "^3.0.0", ··· 8810 5888 } 8811 5889 }, 8812 5890 "node_modules/vite": { 8813 - "version": "6.3.5", 8814 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", 8815 - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", 5891 + "version": "6.3.6", 5892 + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", 5893 + "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", 8816 5894 "license": "MIT", 8817 5895 "dependencies": { 8818 5896 "esbuild": "^0.25.0", ··· 8912 5990 "url": "https://github.com/sponsors/wooorm" 8913 5991 } 8914 5992 }, 8915 - "node_modules/web-vitals": { 8916 - "version": "0.2.4", 8917 - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", 8918 - "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==", 8919 - "dev": true, 8920 - "license": "Apache-2.0" 8921 - }, 8922 5993 "node_modules/webidl-conversions": { 8923 5994 "version": "3.0.1", 8924 5995 "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", ··· 8935 6006 "webidl-conversions": "^3.0.0" 8936 6007 } 8937 6008 }, 8938 - "node_modules/which": { 8939 - "version": "2.0.2", 8940 - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 8941 - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 8942 - "dev": true, 8943 - "license": "ISC", 8944 - "dependencies": { 8945 - "isexe": "^2.0.0" 8946 - }, 8947 - "bin": { 8948 - "node-which": "bin/node-which" 8949 - }, 8950 - "engines": { 8951 - "node": ">= 8" 8952 - } 8953 - }, 8954 6009 "node_modules/which-pm-runs": { 8955 6010 "version": "1.1.0", 8956 6011 "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", ··· 8992 6047 "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 8993 6048 } 8994 6049 }, 8995 - "node_modules/wrap-ansi-cjs": { 8996 - "name": "wrap-ansi", 8997 - "version": "7.0.0", 8998 - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 8999 - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 9000 - "dev": true, 9001 - "license": "MIT", 9002 - "dependencies": { 9003 - "ansi-styles": "^4.0.0", 9004 - "string-width": "^4.1.0", 9005 - "strip-ansi": "^6.0.0" 9006 - }, 9007 - "engines": { 9008 - "node": ">=10" 9009 - }, 9010 - "funding": { 9011 - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 9012 - } 9013 - }, 9014 - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 9015 - "version": "5.0.1", 9016 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 9017 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 9018 - "dev": true, 9019 - "license": "MIT", 9020 - "engines": { 9021 - "node": ">=8" 9022 - } 9023 - }, 9024 - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 9025 - "version": "4.3.0", 9026 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 9027 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 9028 - "dev": true, 9029 - "license": "MIT", 9030 - "dependencies": { 9031 - "color-convert": "^2.0.1" 9032 - }, 9033 - "engines": { 9034 - "node": ">=8" 9035 - }, 9036 - "funding": { 9037 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 9038 - } 9039 - }, 9040 - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 9041 - "version": "8.0.0", 9042 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 9043 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 9044 - "dev": true, 9045 - "license": "MIT" 9046 - }, 9047 - "node_modules/wrap-ansi-cjs/node_modules/string-width": { 9048 - "version": "4.2.3", 9049 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 9050 - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 9051 - "dev": true, 9052 - "license": "MIT", 9053 - "dependencies": { 9054 - "emoji-regex": "^8.0.0", 9055 - "is-fullwidth-code-point": "^3.0.0", 9056 - "strip-ansi": "^6.0.1" 9057 - }, 9058 - "engines": { 9059 - "node": ">=8" 9060 - } 9061 - }, 9062 - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 9063 - "version": "6.0.1", 9064 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 9065 - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 9066 - "dev": true, 9067 - "license": "MIT", 9068 - "dependencies": { 9069 - "ansi-regex": "^5.0.1" 9070 - }, 9071 - "engines": { 9072 - "node": ">=8" 9073 - } 9074 - }, 9075 - "node_modules/wrappy": { 9076 - "version": "1.0.2", 9077 - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 9078 - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 9079 - "dev": true, 9080 - "license": "ISC" 9081 - }, 9082 - "node_modules/xdg-app-paths": { 9083 - "version": "5.1.0", 9084 - "resolved": "https://registry.npmjs.org/xdg-app-paths/-/xdg-app-paths-5.1.0.tgz", 9085 - "integrity": "sha512-RAQ3WkPf4KTU1A8RtFx3gWywzVKe00tfOPFfl2NDGqbIFENQO4kqAJp7mhQjNj/33W5x5hiWWUdyfPq/5SU3QA==", 9086 - "dev": true, 9087 - "license": "MIT", 9088 - "dependencies": { 9089 - "xdg-portable": "^7.0.0" 9090 - }, 9091 - "engines": { 9092 - "node": ">=6" 9093 - } 9094 - }, 9095 - "node_modules/xdg-portable": { 9096 - "version": "7.3.0", 9097 - "resolved": "https://registry.npmjs.org/xdg-portable/-/xdg-portable-7.3.0.tgz", 9098 - "integrity": "sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw==", 9099 - "dev": true, 9100 - "license": "MIT", 9101 - "dependencies": { 9102 - "os-paths": "^4.0.1" 9103 - }, 9104 - "engines": { 9105 - "node": ">= 6.0" 9106 - } 9107 - }, 9108 6050 "node_modules/xxhash-wasm": { 9109 6051 "version": "1.1.0", 9110 6052 "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", 9111 6053 "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", 9112 6054 "license": "MIT" 9113 6055 }, 9114 - "node_modules/yallist": { 9115 - "version": "4.0.0", 9116 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 9117 - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 9118 - "dev": true, 9119 - "license": "ISC" 9120 - }, 9121 6056 "node_modules/yargs-parser": { 9122 6057 "version": "21.1.1", 9123 6058 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", ··· 9127 6062 "node": ">=12" 9128 6063 } 9129 6064 }, 9130 - "node_modules/yauzl": { 9131 - "version": "2.10.0", 9132 - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 9133 - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 9134 - "dev": true, 9135 - "license": "MIT", 9136 - "dependencies": { 9137 - "buffer-crc32": "~0.2.3", 9138 - "fd-slicer": "~1.1.0" 9139 - } 9140 - }, 9141 - "node_modules/yauzl-clone": { 9142 - "version": "1.0.4", 9143 - "resolved": "https://registry.npmjs.org/yauzl-clone/-/yauzl-clone-1.0.4.tgz", 9144 - "integrity": "sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==", 9145 - "dev": true, 9146 - "license": "MIT", 9147 - "dependencies": { 9148 - "events-intercept": "^2.0.0" 9149 - }, 9150 - "engines": { 9151 - "node": ">=6" 9152 - } 9153 - }, 9154 - "node_modules/yauzl-promise": { 9155 - "version": "2.1.3", 9156 - "resolved": "https://registry.npmjs.org/yauzl-promise/-/yauzl-promise-2.1.3.tgz", 9157 - "integrity": "sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA==", 9158 - "dev": true, 9159 - "license": "MIT", 9160 - "dependencies": { 9161 - "yauzl": "^2.9.1", 9162 - "yauzl-clone": "^1.0.4" 9163 - }, 9164 - "engines": { 9165 - "node": ">=6" 9166 - } 9167 - }, 9168 - "node_modules/yn": { 9169 - "version": "3.1.1", 9170 - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", 9171 - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", 9172 - "dev": true, 9173 - "license": "MIT", 9174 - "engines": { 9175 - "node": ">=6" 9176 - } 9177 - }, 9178 6065 "node_modules/yocto-queue": { 9179 - "version": "1.1.1", 9180 - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", 9181 - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", 6066 + "version": "1.2.1", 6067 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", 6068 + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", 9182 6069 "license": "MIT", 9183 6070 "engines": { 9184 6071 "node": ">=12.20"
+3 -6
package.json
··· 13 13 "@astrojs/rss": "^4.0.12", 14 14 "@astrojs/sitemap": "^3.5.1", 15 15 "@astrojs/svelte": "^7.1.0", 16 - "@atproto/api": "^0.13.23", 16 + "@atproto/api": "^0.13.35", 17 17 "@iconify-json/fa6-brands": "^1.2.5", 18 18 "@iconify-json/fa6-solid": "^1.2.3", 19 - "@vercel/analytics": "^1.4.1", 20 - "@vercel/speed-insights": "^1.1.0", 21 19 "astro": "^5.13.4", 22 20 "svelte": "^5.16.0", 23 21 "typescript": "^5.7.2" 24 22 }, 25 23 "devDependencies": { 26 - "exiftool-vendored": "^29.2.0", 27 - "sharp": "^0.33.5", 28 - "vercel": "^46.1.0" 24 + "prettier": "^3.6.2", 25 + "prettier-plugin-astro": "^0.14.1" 29 26 } 30 27 }
+2300
public/cow.obj
··· 1 + # Blender 4.0.2 2 + # www.blender.org 3 + mtllib cow.mtl 4 + o cow 5 + v 0.169946 0.365583 1.654626 6 + v 0.112340 0.254756 1.654626 7 + v 0.202739 0.361015 1.728988 8 + v 0.183508 0.495390 1.709570 9 + v 0.156922 0.476526 1.654362 10 + v 0.092777 0.606592 1.673506 11 + v -0.156922 0.476526 1.654362 12 + v -0.092777 0.606592 1.673506 13 + v -0.183508 0.495390 1.709570 14 + v -0.169946 0.365583 1.654626 15 + v -0.202739 0.361015 1.728988 16 + v -0.112340 0.254756 1.654626 17 + v -0.132775 0.226150 1.732256 18 + v 0.000000 0.170971 1.730707 19 + v 0.000000 0.207365 1.654626 20 + v 0.132775 0.226150 1.732256 21 + v 0.253612 0.353731 1.650430 22 + v 0.165350 0.180562 1.654626 23 + v 0.000000 0.112967 1.654626 24 + v -0.165350 0.180562 1.654626 25 + v -0.253612 0.353731 1.650430 26 + v -0.219029 0.519479 1.654362 27 + v 0.219029 0.519479 1.654362 28 + v 0.000000 1.449512 -1.095367 29 + v -0.055242 1.482708 -1.128585 30 + v 0.000000 1.235385 -1.110474 31 + v 0.055242 1.482708 -1.128585 32 + v 0.078047 1.543472 -1.077488 33 + v 0.000000 1.536968 -1.153580 34 + v 0.000000 1.604583 -1.108144 35 + v -0.078047 1.543472 -1.077488 36 + v -0.032804 1.235385 -1.139411 37 + v 0.000000 1.241299 -1.179934 38 + v 0.032804 1.235385 -1.139411 39 + v 0.000000 0.938888 -1.177731 40 + v -0.029641 0.938888 -1.147655 41 + v 0.000000 0.938888 -1.118718 42 + v -0.057229 0.642397 -1.148467 43 + v 0.000000 0.642397 -1.185964 44 + v 0.029641 0.938888 -1.147655 45 + v 0.057229 0.642397 -1.148467 46 + v 0.000000 1.680116 -0.797817 47 + v 0.401214 1.513670 -0.999106 48 + v 0.228306 1.374348 -1.106004 49 + v 0.169321 1.173061 -1.075991 50 + v 0.000000 1.215966 -1.052899 51 + v -0.169321 1.173061 -1.075991 52 + v 0.000000 0.861295 -0.939434 53 + v 0.208688 0.936092 -0.976557 54 + v 0.410375 1.062424 -1.091583 55 + v 0.657014 1.084161 -0.897883 56 + v 0.633276 0.890585 -0.894686 57 + v 0.666789 0.938714 -0.523005 58 + v 0.567033 1.409294 -0.745676 59 + v 0.540394 1.355794 -0.310926 60 + v 0.568522 0.982735 -0.352561 61 + v 0.591240 1.240824 -0.032332 62 + v 0.587590 0.835261 -0.003574 63 + v 0.459158 0.693394 -0.184810 64 + v 0.365920 0.580927 0.080274 65 + v 0.493279 0.789923 0.323283 66 + v 0.534917 1.113573 0.303246 67 + v 0.438920 1.449512 0.197455 68 + v 0.620407 1.288463 0.529989 69 + v 0.432036 1.658052 0.686273 70 + v 0.297506 1.714820 0.563478 71 + v 0.299098 1.713060 0.706645 72 + v 0.209404 1.493830 1.144935 73 + v 0.567349 1.268328 0.799266 74 + v 0.333944 1.194935 1.015291 75 + v 0.493040 0.958386 0.823310 76 + v 0.221770 0.903328 1.029364 77 + v 0.356461 0.716520 0.795091 78 + v 0.000000 0.625926 0.869212 79 + v 0.000000 0.477680 0.539777 80 + v 0.201822 0.543427 0.539777 81 + v 0.214575 0.538744 0.403376 82 + v 0.000000 0.489150 0.189425 83 + v -0.214575 0.538744 0.403376 84 + v -0.201822 0.543427 0.539777 85 + v -0.356461 0.716520 0.795091 86 + v -0.221770 0.903328 1.029364 87 + v -0.493040 0.958386 0.823310 88 + v -0.333944 1.194935 1.015291 89 + v -0.567349 1.268328 0.799266 90 + v -0.209404 1.493830 1.144935 91 + v -0.290624 1.157501 1.287472 92 + v -0.198151 1.377838 1.437947 93 + v -0.432036 1.658052 0.686273 94 + v -0.620407 1.288463 0.529989 95 + v -0.438920 1.449512 0.197455 96 + v -0.534917 1.113573 0.303246 97 + v -0.591240 1.240824 -0.032332 98 + v -0.540394 1.355794 -0.310926 99 + v -0.568522 0.982735 -0.352561 100 + v -0.666789 0.938714 -0.523005 101 + v -0.567033 1.409294 -0.745676 102 + v -0.657014 1.084161 -0.897883 103 + v -0.633276 0.890585 -0.894686 104 + v -0.482429 0.607765 -0.593164 105 + v -0.405392 0.700652 -0.520923 106 + v -0.459158 0.693394 -0.184810 107 + v -0.587590 0.835261 -0.003574 108 + v -0.365920 0.580927 0.080274 109 + v -0.493279 0.789923 0.323283 110 + v -0.228306 1.374348 -1.106004 111 + v -0.401214 1.513670 -0.999106 112 + v -0.410375 1.062424 -1.091583 113 + v -0.208688 0.936092 -0.976557 114 + v -0.193736 0.694656 -0.829363 115 + v -0.338978 0.646061 -0.959477 116 + v -0.414421 0.537634 -0.801103 117 + v -0.351507 0.461493 -0.737011 118 + v -0.336872 0.572729 -0.642129 119 + v -0.379427 0.425582 -0.412196 120 + v -0.344154 0.377456 0.002583 121 + v -0.329013 0.612226 0.266968 122 + v -0.367992 1.605996 -0.697816 123 + v -0.332942 1.481148 -0.354329 124 + v -0.202850 1.559875 0.122067 125 + v 0.000000 1.613923 -0.375716 126 + v 0.367992 1.605996 -0.697816 127 + v 0.332942 1.481148 -0.354329 128 + v 0.202850 1.559875 0.122067 129 + v 0.000000 1.614229 0.105422 130 + v -0.297506 1.714820 0.563478 131 + v 0.000000 1.655406 0.679789 132 + v -0.299098 1.713060 0.706645 133 + v 0.000000 1.521334 1.056636 134 + v 0.000000 0.350402 -1.247213 135 + v 0.101814 0.365870 -1.135342 136 + v 0.000000 0.642397 -1.110474 137 + v -0.101814 0.365870 -1.135342 138 + v -0.076318 0.238010 -1.155656 139 + v 0.000000 0.109209 -1.178174 140 + v 0.076318 0.238010 -1.155656 141 + v 0.000000 0.256015 -1.090022 142 + v 0.000000 0.392828 -1.056805 143 + v -0.163123 0.697579 1.503371 144 + v -0.294356 0.874546 1.468371 145 + v -0.201938 0.800795 1.392680 146 + v -0.096345 0.724434 1.435829 147 + v -0.112461 0.582277 1.400429 148 + v 0.000000 0.704529 1.414428 149 + v 0.000000 0.598749 1.400429 150 + v 0.000000 0.529146 1.444578 151 + v 0.112461 0.582277 1.400429 152 + v 0.096345 0.724434 1.435829 153 + v 0.163123 0.697579 1.503371 154 + v 0.158961 0.598749 1.511614 155 + v 0.080935 0.538006 1.456016 156 + v 0.000000 0.524623 1.511614 157 + v -0.080935 0.538006 1.456016 158 + v -0.158961 0.598749 1.511614 159 + v -0.202046 0.565391 1.555353 160 + v -0.170536 0.540889 1.503371 161 + v -0.177689 0.729062 1.596825 162 + v -0.237451 0.920973 1.604794 163 + v -0.313761 1.098878 1.559506 164 + v -0.329848 1.025849 1.396507 165 + v -0.293692 1.169477 1.455689 166 + v -0.287328 1.246275 1.534690 167 + v -0.223849 1.345927 1.588296 168 + v -0.105316 1.409980 1.569257 169 + v 0.000000 1.444431 1.375213 170 + v 0.000000 1.445970 1.558273 171 + v -0.051445 1.365651 1.707135 172 + v 0.000000 1.369351 1.722948 173 + v 0.051445 1.365651 1.707135 174 + v 0.105316 1.409980 1.569257 175 + v 0.198151 1.377838 1.437947 176 + v 0.223849 1.345927 1.588296 177 + v 0.287328 1.246275 1.534690 178 + v 0.293692 1.169477 1.455689 179 + v 0.290624 1.157501 1.287472 180 + v 0.329848 1.025849 1.396507 181 + v 0.313761 1.098878 1.559506 182 + v 0.294356 0.874546 1.468371 183 + v 0.200212 0.929438 1.287114 184 + v 0.201938 0.800795 1.392680 185 + v 0.000000 0.780312 1.388390 186 + v 0.000000 0.872279 1.256922 187 + v -0.200212 0.929438 1.287114 188 + v -0.086728 0.543198 1.517781 189 + v 0.086728 0.543198 1.517781 190 + v 0.000000 0.540889 1.531011 191 + v 0.000000 0.697579 1.503371 192 + v 0.170536 0.540889 1.503371 193 + v 0.202046 0.565391 1.555353 194 + v 0.177689 0.729062 1.596825 195 + v 0.203569 0.598285 1.661246 196 + v 0.130907 0.833264 1.666032 197 + v 0.130140 0.597594 1.753920 198 + v 0.066804 0.795996 1.721388 199 + v 0.000000 0.643370 1.736979 200 + v 0.000000 0.791244 1.749671 201 + v -0.066804 0.795996 1.721388 202 + v -0.100377 1.008779 1.797289 203 + v -0.130907 0.833264 1.666032 204 + v -0.130140 0.597594 1.753920 205 + v 0.000000 0.538283 1.727533 206 + v -0.077928 0.510771 1.709317 207 + v 0.000000 0.469755 1.617075 208 + v -0.116488 0.454414 1.593968 209 + v -0.161771 0.496692 1.623063 210 + v -0.203569 0.598285 1.661246 211 + v -0.231347 1.110790 1.763956 212 + v -0.135540 1.078226 1.841049 213 + v 0.000000 1.055287 1.817403 214 + v 0.100377 1.008779 1.797289 215 + v 0.231347 1.110790 1.763956 216 + v 0.237451 0.920973 1.604794 217 + v 0.294941 1.167484 1.617276 218 + v 0.150786 1.299037 1.726089 219 + v 0.079744 1.254234 1.800336 220 + v 0.000000 1.219013 1.819417 221 + v 0.135540 1.078226 1.841049 222 + v -0.079744 1.254234 1.800336 223 + v -0.150786 1.299037 1.726089 224 + v -0.294941 1.167484 1.617276 225 + v 0.000000 0.815350 1.066872 226 + v -0.530000 1.033497 1.519225 227 + v -0.490380 1.200417 1.593936 228 + v -0.451797 1.026418 1.509685 229 + v -0.372598 1.255467 1.562584 230 + v -0.585590 1.068654 1.610202 231 + v -0.173934 1.461466 1.696741 232 + v -0.215861 1.408999 1.713850 233 + v -0.172655 1.448500 1.746287 234 + v -0.160232 1.404245 1.772115 235 + v -0.105967 1.452190 1.730517 236 + v 0.490380 1.200417 1.593936 237 + v 0.530000 1.033497 1.519225 238 + v 0.451797 1.026418 1.509685 239 + v 0.372598 1.255467 1.562584 240 + v 0.585590 1.068654 1.610202 241 + v 0.173934 1.461466 1.696741 242 + v 0.215861 1.408999 1.713850 243 + v 0.172655 1.448500 1.746287 244 + v 0.160232 1.404245 1.772115 245 + v 0.105967 1.452190 1.730517 246 + v -0.585803 0.822474 0.489487 247 + v -0.470986 0.544713 0.442842 248 + v -0.285177 0.367641 0.389310 249 + v -0.354184 0.399438 0.495723 250 + v -0.301614 0.291887 0.479757 251 + v -0.295150 0.376826 0.590784 252 + v -0.454649 0.632580 0.687055 253 + v -0.189949 0.378850 0.523305 254 + v -0.254814 0.301754 0.438725 255 + v -0.243236 0.136035 0.431285 256 + v -0.209241 0.283480 0.506423 257 + v -0.263079 0.324166 0.547583 258 + v -0.318518 0.122542 0.494302 259 + v -0.247461 0.104855 0.471426 260 + v -0.292364 0.051642 0.491332 261 + v -0.225729 0.052723 0.506965 262 + v -0.308361 0.000000 0.496089 263 + v -0.222094 0.000000 0.517130 264 + v -0.340185 0.000000 0.584970 265 + v -0.287768 0.086689 0.548527 266 + v -0.290053 0.052765 0.616267 267 + v -0.298043 0.000000 0.649545 268 + v -0.229339 0.000000 0.608713 269 + v -0.254756 0.092653 0.567023 270 + v -0.205720 0.135153 0.517278 271 + v -0.279155 0.139195 0.571403 272 + v -0.286603 0.305549 -0.866054 273 + v -0.366713 0.477680 -0.999649 274 + v -0.227289 0.516487 -0.881140 275 + v -0.345909 0.299944 -0.914966 276 + v -0.429309 0.477680 -0.965963 277 + v -0.383319 0.271926 -0.833572 278 + v -0.319333 0.291115 -0.793858 279 + v -0.384361 0.133869 -0.806016 280 + v -0.361709 0.132786 -0.922435 281 + v -0.335196 0.097049 -0.878222 282 + v -0.354018 0.051642 -0.832468 283 + v -0.292759 0.052723 -0.862989 284 + v -0.363292 0.000000 -0.818592 285 + v -0.283472 0.000000 -0.857489 286 + v -0.331021 -0.000000 -0.729871 287 + v -0.313959 0.086689 -0.791389 288 + v -0.272458 0.052765 -0.737802 289 + v -0.276743 0.092653 -0.798238 290 + v -0.294657 0.142922 -0.776050 291 + v -0.266325 0.153290 -0.852060 292 + v -0.230559 0.000000 -0.782386 293 + v -0.257354 -0.000000 -0.707090 294 + v -0.259088 0.242464 -0.168302 295 + v -0.190922 0.207528 -0.231801 296 + v -0.245186 0.124458 -0.246327 297 + v -0.296976 0.125744 -0.173457 298 + v -0.260158 0.118428 -0.092313 299 + v -0.213858 0.057859 -0.168035 300 + v -0.156579 0.115856 -0.238049 301 + v -0.119761 0.108539 -0.156906 302 + v -0.171551 0.109826 -0.084035 303 + v -0.201437 0.239944 -0.099953 304 + v -0.129307 0.209900 -0.159792 305 + v -0.199977 0.257699 -0.536746 306 + v -0.130688 0.223517 -0.487128 307 + v 0.000000 0.172012 -0.337839 308 + v -0.080972 0.234784 -0.558500 309 + v 0.000000 0.231769 -0.584783 310 + v 0.080972 0.234784 -0.558500 311 + v 0.130688 0.223517 -0.487128 312 + v 0.190922 0.207528 -0.231801 313 + v 0.129307 0.209900 -0.159792 314 + v 0.000000 0.205594 -0.087927 315 + v 0.201437 0.239944 -0.099953 316 + v 0.000000 0.293950 0.048108 317 + v 0.344154 0.377456 0.002583 318 + v 0.259088 0.242464 -0.168302 319 + v 0.379427 0.425582 -0.412196 320 + v 0.199977 0.257699 -0.536746 321 + v 0.256524 0.405542 -0.652536 322 + v 0.136122 0.265379 -0.608856 323 + v 0.138241 0.374786 -0.730290 324 + v 0.000000 0.358277 -0.766592 325 + v 0.000000 0.574518 -0.889178 326 + v -0.138241 0.374786 -0.730290 327 + v 0.193736 0.694656 -0.829363 328 + v 0.343584 0.575324 -0.650346 329 + v 0.405392 0.700652 -0.520923 330 + v 0.329013 0.612226 0.266968 331 + v -0.256524 0.405542 -0.652536 332 + v -0.136122 0.265379 -0.608856 333 + v -0.197144 0.150654 -0.649885 334 + v -0.233956 0.126932 -0.569990 335 + v -0.180351 0.111122 -0.498037 336 + v -0.140165 0.082135 -0.592025 337 + v -0.106726 0.158563 -0.657825 338 + v -0.053123 0.142753 -0.585872 339 + v -0.089933 0.119034 -0.505974 340 + v -0.343584 0.575324 -0.650346 341 + v 0.585803 0.822474 0.489487 342 + v 0.470986 0.544713 0.442842 343 + v 0.285177 0.367641 0.389310 344 + v 0.354184 0.399438 0.495723 345 + v 0.301614 0.291887 0.479757 346 + v 0.295150 0.376826 0.590784 347 + v 0.454649 0.632580 0.687055 348 + v 0.189949 0.378850 0.523305 349 + v 0.254814 0.301754 0.438725 350 + v 0.243236 0.136035 0.431285 351 + v 0.209241 0.283480 0.506423 352 + v 0.263079 0.324166 0.547583 353 + v 0.318518 0.122542 0.494302 354 + v 0.247461 0.104855 0.471426 355 + v 0.292364 0.051642 0.491332 356 + v 0.225729 0.052723 0.506965 357 + v 0.308361 0.000000 0.496089 358 + v 0.222094 0.000000 0.517130 359 + v 0.340185 0.000000 0.584970 360 + v 0.287768 0.086689 0.548527 361 + v 0.290053 0.052765 0.616267 362 + v 0.298043 0.000000 0.649545 363 + v 0.229339 0.000000 0.608713 364 + v 0.254756 0.092653 0.567023 365 + v 0.205720 0.135153 0.517278 366 + v 0.279155 0.139195 0.571403 367 + v 0.482429 0.607765 -0.593164 368 + v 0.336872 0.572729 -0.642129 369 + v 0.351507 0.461493 -0.737011 370 + v 0.414421 0.537634 -0.801103 371 + v 0.338978 0.646061 -0.959477 372 + v 0.286603 0.305549 -0.866054 373 + v 0.227289 0.516487 -0.881140 374 + v 0.366713 0.477680 -0.999649 375 + v 0.345909 0.299944 -0.914966 376 + v 0.429309 0.477680 -0.965963 377 + v 0.383319 0.271926 -0.833572 378 + v 0.319333 0.291115 -0.793858 379 + v 0.384361 0.133869 -0.806016 380 + v 0.361709 0.132786 -0.922435 381 + v 0.335196 0.097049 -0.878222 382 + v 0.354018 0.051642 -0.832468 383 + v 0.292759 0.052723 -0.862989 384 + v 0.363292 0.000000 -0.818592 385 + v 0.283472 0.000000 -0.857489 386 + v 0.331021 -0.000000 -0.729871 387 + v 0.313959 0.086689 -0.791389 388 + v 0.272458 0.052765 -0.737802 389 + v 0.276743 0.092653 -0.798238 390 + v 0.294657 0.142922 -0.776050 391 + v 0.266325 0.153290 -0.852060 392 + v 0.257354 -0.000000 -0.707090 393 + v 0.230559 0.000000 -0.782386 394 + v 0.245186 0.124458 -0.246327 395 + v 0.296976 0.125744 -0.173457 396 + v 0.260158 0.118428 -0.092313 397 + v 0.213858 0.057859 -0.168035 398 + v 0.156579 0.115856 -0.238049 399 + v 0.119761 0.108539 -0.156906 400 + v 0.171551 0.109826 -0.084035 401 + v 0.197144 0.150654 -0.649885 402 + v 0.233956 0.126932 -0.569990 403 + v 0.180351 0.111122 -0.498037 404 + v 0.140165 0.082135 -0.592025 405 + v 0.106726 0.158563 -0.657825 406 + v 0.053123 0.142753 -0.585872 407 + v 0.089933 0.119034 -0.505974 408 + v 0.116488 0.454414 1.593968 409 + v 0.161771 0.496692 1.623063 410 + v 0.077928 0.510771 1.709317 411 + vn -0.8182 0.4253 0.3869 412 + vn -0.9142 -0.0732 0.3986 413 + vn -0.8821 -0.1025 0.4598 414 + vn -0.7410 -0.4401 0.5072 415 + vn 0.7410 -0.4401 0.5072 416 + vn 0.8821 -0.1025 0.4598 417 + vn 0.9142 -0.0732 0.3986 418 + vn 0.8182 0.4253 0.3869 419 + vn 0.8190 0.4340 0.3755 420 + vn 0.3551 0.8430 0.4041 421 + vn 0.3557 0.8431 0.4033 422 + vn -0.3557 0.8431 0.4033 423 + vn -0.3551 0.8430 0.4041 424 + vn -0.8190 0.4340 0.3755 425 + vn 0.7595 -0.3812 0.5272 426 + vn 0.7570 -0.3728 0.5366 427 + vn 0.3097 -0.7575 0.5748 428 + vn 0.3077 -0.7567 0.5769 429 + vn -0.3077 -0.7567 0.5769 430 + vn -0.3097 -0.7575 0.5748 431 + vn -0.7570 -0.3728 0.5366 432 + vn -0.7595 -0.3812 0.5272 433 + vn -0.8351 0.1618 0.5258 434 + vn -0.7830 0.1973 0.5899 435 + vn -0.5144 0.6139 0.5988 436 + vn 0.7830 0.1973 0.5899 437 + vn 0.5144 0.6139 0.5988 438 + vn 0.8351 0.1618 0.5258 439 + vn -0.0466 0.0242 -0.9986 440 + vn -0.0198 -0.0141 -0.9997 441 + vn -0.0000 -0.0000 -1.0000 442 + vn 0.0198 -0.0141 -0.9997 443 + vn 0.0466 0.0242 -0.9986 444 + vn 0.0513 -0.0084 -0.9986 445 + vn 0.0143 0.0207 -0.9997 446 + vn 0.0752 0.1088 -0.9912 447 + vn -0.0143 0.0207 -0.9997 448 + vn -0.0752 0.1088 -0.9912 449 + vn -0.0513 -0.0084 -0.9986 450 + vn -0.5403 -0.0592 0.8394 451 + vn 0.5403 -0.0592 0.8394 452 + vn 0.6430 -0.6197 0.4500 453 + vn 0.6426 0.3373 -0.6879 454 + vn 0.6065 0.4435 -0.6600 455 + vn -0.6065 0.4435 -0.6600 456 + vn -0.6426 0.3373 -0.6879 457 + vn -0.6430 -0.6197 0.4500 458 + vn -0.6587 -0.0924 0.7467 459 + vn -0.7735 -0.0425 -0.6324 460 + vn -0.4737 0.0782 -0.8772 461 + vn 0.4737 0.0782 -0.8772 462 + vn 0.7735 -0.0425 -0.6324 463 + vn 0.7769 -0.0046 -0.6296 464 + vn -0.7769 -0.0046 -0.6296 465 + vn -0.7122 0.0119 -0.7019 466 + vn -0.6613 -0.0279 0.7496 467 + vn -0.6984 -0.0199 0.7154 468 + vn -0.6972 0.0629 0.7141 469 + vn -0.5473 0.0532 -0.8353 470 + vn -0.7121 0.0195 -0.7018 471 + vn 0.7121 0.0195 -0.7018 472 + vn 0.5473 0.0532 -0.8353 473 + vn 0.6972 0.0629 0.7141 474 + vn 0.6984 -0.0199 0.7154 475 + vn 0.6613 -0.0279 0.7496 476 + vn 0.6587 -0.0924 0.7467 477 + vn 0.7122 0.0119 -0.7019 478 + vn -0.6493 0.7390 -0.1799 479 + vn 0.6493 0.7390 -0.1799 480 + vn 0.1782 0.9028 -0.3914 481 + vn 0.2510 0.3736 -0.8930 482 + vn 0.0124 0.1770 -0.9841 483 + vn -0.0863 -0.1221 -0.9888 484 + vn -0.1767 -0.1761 -0.9684 485 + vn 0.1767 -0.1761 -0.9684 486 + vn 0.2028 -0.2984 -0.9327 487 + vn -0.2028 -0.2984 -0.9327 488 + vn -0.0239 -0.3902 -0.9204 489 + vn -0.2448 -0.4094 -0.8789 490 + vn -0.1158 -0.1132 -0.9868 491 + vn 0.3996 0.1918 -0.8964 492 + vn 0.5990 0.1724 -0.7820 493 + vn 0.6200 -0.0889 -0.7795 494 + vn 0.9897 -0.1226 -0.0734 495 + vn 0.9692 0.2370 0.0667 496 + vn 0.9649 0.2469 0.0895 497 + vn 0.8674 0.0099 0.4975 498 + vn 0.9857 0.0902 -0.1427 499 + vn 0.9981 -0.0132 -0.0601 500 + vn 0.8528 -0.4627 -0.2421 501 + vn 0.7512 -0.6599 -0.0158 502 + vn 0.7686 -0.6254 0.1350 503 + vn 0.9591 -0.1072 0.2619 504 + vn 0.9860 0.0029 0.1666 505 + vn 0.8958 0.3445 0.2810 506 + vn 0.8947 0.1202 -0.4301 507 + vn 0.8335 0.5123 -0.2068 508 + vn 0.5947 0.7424 -0.3084 509 + vn 0.3833 0.9236 0.0071 510 + vn 0.3977 0.7854 0.4743 511 + vn 0.7539 0.4105 0.5129 512 + vn 0.6842 -0.0310 0.7287 513 + vn 0.6936 -0.1111 0.7117 514 + vn 0.6181 -0.2011 0.7600 515 + vn 0.6016 -0.4191 0.6800 516 + vn 0.3094 -0.6488 0.6952 517 + vn 0.3023 -0.8693 0.3912 518 + vn 0.2817 -0.8648 0.4157 519 + vn 0.3092 -0.9490 0.0615 520 + vn 0.2549 -0.9664 -0.0316 521 + vn -0.2549 -0.9664 -0.0316 522 + vn -0.3092 -0.9490 0.0615 523 + vn -0.2817 -0.8648 0.4157 524 + vn -0.3023 -0.8693 0.3912 525 + vn -0.3094 -0.6488 0.6952 526 + vn -0.6016 -0.4191 0.6800 527 + vn -0.6181 -0.2011 0.7600 528 + vn -0.6936 -0.1111 0.7117 529 + vn -0.6842 -0.0310 0.7287 530 + vn -0.9328 0.3060 0.1905 531 + vn -0.9441 0.2924 0.1520 532 + vn -0.7539 0.4105 0.5129 533 + vn -0.9043 0.3738 0.2061 534 + vn -0.8335 0.5123 -0.2068 535 + vn -0.8947 0.1202 -0.4301 536 + vn -0.8958 0.3445 0.2810 537 + vn -0.8403 0.5378 0.0686 538 + vn -0.9857 0.0902 -0.1427 539 + vn -0.8674 0.0099 0.4975 540 + vn -0.9649 0.2469 0.0895 541 + vn -0.9692 0.2370 0.0667 542 + vn -0.9897 -0.1226 -0.0734 543 + vn -0.8749 -0.4840 -0.0162 544 + vn -0.6905 -0.4962 0.5263 545 + vn -0.1061 -0.5541 0.8256 546 + vn -0.8922 -0.4253 -0.1519 547 + vn -0.8528 -0.4627 -0.2421 548 + vn -0.7512 -0.6599 -0.0158 549 + vn -0.7686 -0.6254 0.1350 550 + vn -0.9591 -0.1072 0.2619 551 + vn -0.9860 0.0029 0.1666 552 + vn -0.9981 -0.0132 -0.0601 553 + vn -0.2510 0.3736 -0.8930 554 + vn -0.0124 0.1770 -0.9841 555 + vn 0.0863 -0.1221 -0.9888 556 + vn 0.1158 -0.1132 -0.9868 557 + vn 0.2448 -0.4094 -0.8789 558 + vn 0.0239 -0.3902 -0.9204 559 + vn -0.0354 -0.5218 -0.8523 560 + vn 0.6876 -0.3465 -0.6381 561 + vn 0.3748 -0.2214 -0.9003 562 + vn -0.4622 -0.3392 -0.8193 563 + vn -0.5732 -0.5228 -0.6310 564 + vn -0.8355 -0.5420 -0.0904 565 + vn -0.7586 -0.6509 -0.0286 566 + vn 0.0954 -0.6532 0.7511 567 + vn 0.0929 -0.6581 0.7471 568 + vn -0.9750 -0.1550 -0.1593 569 + vn -0.9468 -0.3188 0.0435 570 + vn -0.9480 -0.1968 0.2499 571 + vn -0.3492 -0.3666 0.8624 572 + vn -0.2391 -0.9709 -0.0148 573 + vn -0.7167 -0.6507 0.2508 574 + vn -0.6703 -0.6988 0.2497 575 + vn -0.1782 0.9028 -0.3914 576 + vn -0.2575 0.9315 -0.2570 577 + vn -0.6773 0.7210 -0.1462 578 + vn -0.7125 0.6897 0.1285 579 + vn -0.4309 0.8331 0.3468 580 + vn -0.5244 0.8499 -0.0520 581 + vn -0.4315 0.9016 -0.0312 582 + vn -0.3728 0.9265 -0.0513 583 + vn -0.3271 0.8769 0.3521 584 + vn -0.1550 0.9760 0.1531 585 + vn 0.1550 0.9760 0.1531 586 + vn 0.3271 0.8769 0.3521 587 + vn 0.3728 0.9265 -0.0513 588 + vn 0.2589 0.9659 -0.0006 589 + vn -0.2589 0.9659 -0.0006 590 + vn -0.2687 0.8894 -0.3698 591 + vn 0.2215 0.9727 -0.0697 592 + vn 0.1905 0.9816 0.0142 593 + vn -0.3833 0.9236 0.0071 594 + vn -0.3977 0.7854 0.4743 595 + vn 0.0658 0.8977 0.4356 596 + vn 0.2071 0.9217 0.3279 597 + vn -0.2071 0.9217 0.3279 598 + vn -0.1905 0.9816 0.0142 599 + vn -0.2215 0.9727 -0.0697 600 + vn 0.2687 0.8894 -0.3698 601 + vn 0.4886 0.7852 -0.3804 602 + vn 0.4315 0.9016 -0.0312 603 + vn 0.5244 0.8499 -0.0520 604 + vn 0.8403 0.5378 0.0686 605 + vn 0.4309 0.8331 0.3468 606 + vn 0.7125 0.6897 0.1285 607 + vn 0.6773 0.7210 -0.1462 608 + vn 0.8321 0.4068 -0.3769 609 + vn 0.2575 0.9315 -0.2570 610 + vn -0.5398 0.1728 -0.8239 611 + vn 0.5398 0.1728 -0.8239 612 + vn 0.7309 0.0857 -0.6771 613 + vn 0.5486 0.1277 0.8263 614 + vn 0.5529 0.0232 0.8329 615 + vn -0.5529 0.0232 0.8329 616 + vn -0.5486 0.1277 0.8263 617 + vn -0.7309 0.0857 -0.6771 618 + vn -0.7418 -0.0416 -0.6694 619 + vn -0.5990 -0.2204 -0.7698 620 + vn 0.5990 -0.2204 -0.7698 621 + vn 0.7418 -0.0416 -0.6694 622 + vn 0.5996 -0.2408 0.7632 623 + vn 0.5663 -0.1945 0.8009 624 + vn -0.5663 -0.1945 0.8009 625 + vn -0.6293 0.1634 0.7598 626 + vn 0.6293 0.1634 0.7598 627 + vn -0.5996 -0.2408 0.7632 628 + vn -0.5244 -0.4383 0.7300 629 + vn 0.5244 -0.4383 0.7300 630 + vn -0.7344 -0.6053 -0.3069 631 + vn -0.2987 -0.7480 -0.5927 632 + vn -0.7364 0.2409 -0.6322 633 + vn -0.1590 0.2555 -0.9536 634 + vn -0.0192 0.1312 -0.9912 635 + vn 0.0782 -0.5340 -0.8419 636 + vn -0.0782 -0.5340 -0.8419 637 + vn 0.0192 0.1312 -0.9912 638 + vn 0.1590 0.2555 -0.9536 639 + vn 0.7364 0.2409 -0.6322 640 + vn 0.9239 -0.0703 -0.3760 641 + vn 0.6808 -0.7102 -0.1795 642 + vn 0.1676 -0.8153 -0.5543 643 + vn 0.1179 -0.9908 -0.0668 644 + vn -0.1179 -0.9908 -0.0668 645 + vn -0.1676 -0.8153 -0.5543 646 + vn -0.6808 -0.7102 -0.1795 647 + vn -0.9239 -0.0703 -0.3760 648 + vn -0.8460 0.0400 -0.5317 649 + vn -0.9565 0.1969 -0.2154 650 + vn -0.8079 -0.5850 0.0712 651 + vn -0.8474 -0.2825 0.4496 652 + vn -0.8585 -0.2550 0.4449 653 + vn -0.9749 -0.1509 0.1638 654 + vn -0.9680 0.2506 -0.0167 655 + vn -0.9655 0.2579 -0.0360 656 + vn -0.9095 0.4131 -0.0460 657 + vn -0.8776 0.3772 -0.2960 658 + vn -0.8365 0.5473 -0.0268 659 + vn -0.4590 0.8818 0.1087 660 + vn -0.3201 0.9474 -0.0056 661 + vn -0.3241 0.9460 -0.0080 662 + vn -0.2619 0.8843 0.3866 663 + vn -0.1913 0.8899 0.4141 664 + vn 0.1913 0.8899 0.4141 665 + vn 0.2619 0.8843 0.3866 666 + vn 0.3241 0.9460 -0.0080 667 + vn 0.3201 0.9474 -0.0056 668 + vn 0.4590 0.8818 0.1087 669 + vn 0.8365 0.5473 -0.0268 670 + vn 0.8776 0.3772 -0.2960 671 + vn 0.9095 0.4131 -0.0460 672 + vn 0.9655 0.2579 -0.0360 673 + vn 0.9680 0.2506 -0.0167 674 + vn 0.9749 -0.1509 0.1638 675 + vn 0.7471 -0.4200 -0.5152 676 + vn 0.7512 -0.4127 -0.5151 677 + vn 0.7344 -0.6053 -0.3069 678 + vn 0.2987 -0.7480 -0.5927 679 + vn 0.0750 -0.5671 -0.8202 680 + vn 0.0949 -0.8157 -0.5706 681 + vn -0.0949 -0.8157 -0.5706 682 + vn -0.2850 -0.6058 -0.7429 683 + vn -0.7512 -0.4127 -0.5151 684 + vn -0.7471 -0.4200 -0.5152 685 + vn -0.7339 -0.2900 -0.6142 686 + vn -0.0750 -0.5671 -0.8202 687 + vn -0.2671 -0.3131 -0.9114 688 + vn 0.2671 -0.3131 -0.9114 689 + vn -0.2047 -0.9768 0.0629 690 + vn -0.6101 -0.7923 0.0094 691 + vn 0.2850 -0.6058 -0.7429 692 + vn 0.7339 -0.2900 -0.6142 693 + vn 0.2047 -0.9768 0.0629 694 + vn 0.6101 -0.7923 0.0094 695 + vn 0.1600 -0.0076 -0.9871 696 + vn -0.0000 -0.1737 -0.9848 697 + vn -0.1600 -0.0076 -0.9871 698 + vn -0.0000 0.0929 0.9957 699 + vn -0.0810 0.0475 0.9956 700 + vn 0.0810 0.0475 0.9956 701 + vn -0.0219 0.0822 0.9964 702 + vn 0.8460 0.0400 -0.5317 703 + vn 0.9565 0.1969 -0.2154 704 + vn 0.9845 0.1629 -0.0648 705 + vn 0.9366 0.2855 0.2033 706 + vn 0.7631 0.2236 0.6063 707 + vn 0.5192 0.2971 0.8013 708 + vn -0.0806 0.1362 0.9874 709 + vn 0.3934 -0.0786 0.9160 710 + vn -0.3934 -0.0786 0.9160 711 + vn -0.3850 -0.3634 0.8484 712 + vn -0.7196 -0.3312 0.6103 713 + vn -0.5192 0.2971 0.8013 714 + vn 0.0806 0.1362 0.9874 715 + vn 0.1591 -0.0884 0.9833 716 + vn -0.0380 -0.4746 0.8794 717 + vn 0.1741 -0.8368 0.5191 718 + vn 0.0336 -0.9024 0.4296 719 + vn -0.3919 -0.7682 0.5063 720 + vn -0.7364 -0.6420 -0.2133 721 + vn -0.9025 -0.4149 0.1159 722 + vn -0.5862 -0.4851 0.6489 723 + vn -0.6172 -0.6200 0.4844 724 + vn -0.7631 0.2236 0.6063 725 + vn -0.9366 0.2855 0.2033 726 + vn -0.6175 -0.2236 0.7541 727 + vn -0.6936 -0.4496 0.5628 728 + vn -0.5310 -0.4463 0.7203 729 + vn -0.6089 -0.6201 0.4948 730 + vn 0.0637 -0.5087 0.8586 731 + vn -0.0787 -0.2477 0.9656 732 + vn 0.0787 -0.2477 0.9656 733 + vn 0.3850 -0.3634 0.8484 734 + vn 0.7196 -0.3312 0.6103 735 + vn 0.5310 -0.4463 0.7203 736 + vn 0.6936 -0.4496 0.5628 737 + vn 0.6175 -0.2236 0.7541 738 + vn 0.8474 -0.2825 0.4496 739 + vn 0.8585 -0.2550 0.4449 740 + vn 0.8834 -0.2841 0.3727 741 + vn 0.9243 -0.0633 0.3763 742 + vn 0.7594 0.4242 0.4932 743 + vn 0.7538 0.3866 0.5313 744 + vn 0.3078 0.6553 0.6899 745 + vn 0.2642 0.6574 0.7057 746 + vn -0.0371 0.5397 0.8410 747 + vn 0.1154 0.2584 0.9591 748 + vn -0.1699 -0.0121 0.9854 749 + vn 0.1699 -0.0121 0.9854 750 + vn -0.1154 0.2584 0.9591 751 + vn 0.0371 0.5397 0.8410 752 + vn -0.2642 0.6574 0.7057 753 + vn -0.3078 0.6553 0.6899 754 + vn -0.5414 0.3823 0.7488 755 + vn -0.7594 0.4242 0.4932 756 + vn -0.9243 -0.0633 0.3763 757 + vn -0.8834 -0.2841 0.3727 758 + vn -0.5146 0.3447 0.7851 759 + vn 0.8079 -0.5850 0.0712 760 + vn 0.0219 0.0822 0.9964 761 + vn -0.3741 -0.6696 0.6417 762 + vn -0.3840 -0.9148 0.1248 763 + vn -0.2243 -0.9335 0.2796 764 + vn 0.2243 -0.9335 0.2796 765 + vn 0.3840 -0.9148 0.1248 766 + vn 0.3741 -0.6696 0.6417 767 + vn 0.9303 -0.3531 0.0995 768 + vn 0.9328 0.3060 0.1905 769 + vn 0.9441 0.2924 0.1520 770 + vn 0.1896 0.9104 0.3677 771 + vn 0.0287 0.9717 0.2346 772 + vn -0.0658 0.8977 0.4356 773 + vn -0.0287 0.9717 0.2346 774 + vn -0.1896 0.9104 0.3677 775 + vn -0.4645 0.4513 -0.7619 776 + vn -0.1373 -0.2133 -0.9673 777 + vn 0.5351 -0.7431 -0.4019 778 + vn -0.1465 0.7152 -0.6834 779 + vn 0.2935 0.6780 0.6739 780 + vn -0.0147 0.5185 0.8550 781 + vn -0.0861 0.1831 0.9793 782 + vn -0.6895 0.4259 -0.5859 783 + vn -0.4371 0.5153 -0.7372 784 + vn -0.4665 0.7041 -0.5354 785 + vn -0.7954 0.5604 -0.2309 786 + vn -0.7361 0.6499 0.1891 787 + vn -0.6999 0.2032 0.6848 788 + vn -0.6939 -0.3400 0.6348 789 + vn -0.8382 -0.4641 0.2865 790 + vn 0.3908 -0.3393 0.8557 791 + vn 0.5390 0.1141 0.8346 792 + vn 0.1670 0.5315 0.8304 793 + vn 0.0063 0.9674 0.2530 794 + vn 0.2493 0.9371 -0.2443 795 + vn 0.8198 0.5548 -0.1419 796 + vn 0.0373 -0.6319 0.7742 797 + vn 0.2706 -0.8308 0.4864 798 + vn 0.0714 -0.6538 0.7533 799 + vn -0.9303 -0.3531 0.0995 800 + vn -0.9235 -0.3663 0.1143 801 + vn -0.7538 0.3866 0.5313 802 + vn -0.8698 0.3946 0.2963 803 + vn 0.4645 0.4513 -0.7619 804 + vn 0.1373 -0.2133 -0.9673 805 + vn -0.5351 -0.7431 -0.4019 806 + vn 0.1465 0.7152 -0.6834 807 + vn -0.2935 0.6780 0.6739 808 + vn 0.0147 0.5185 0.8550 809 + vn 0.0861 0.1831 0.9793 810 + vn 0.6895 0.4259 -0.5859 811 + vn 0.4371 0.5153 -0.7372 812 + vn 0.4665 0.7041 -0.5354 813 + vn 0.7954 0.5604 -0.2309 814 + vn 0.7361 0.6499 0.1891 815 + vn 0.6999 0.2032 0.6848 816 + vn 0.6939 -0.3400 0.6348 817 + vn 0.8382 -0.4641 0.2865 818 + vn -0.3908 -0.3393 0.8557 819 + vn -0.5390 0.1141 0.8346 820 + vn -0.1670 0.5315 0.8304 821 + vn -0.0063 0.9674 0.2530 822 + vn -0.2493 0.9371 -0.2443 823 + vn -0.8198 0.5548 -0.1419 824 + vn -0.0373 -0.6319 0.7742 825 + vn -0.2706 -0.8308 0.4864 826 + vn -0.0714 -0.6538 0.7533 827 + vn 0.9235 -0.3663 0.1143 828 + vn 0.8698 0.3946 0.2963 829 + vn -0.0637 -0.5087 0.8586 830 + vn 0.6089 -0.6201 0.4948 831 + vn 0.5146 0.3447 0.7851 832 + vn 0.5414 0.3823 0.7488 833 + vn -0.9785 -0.0888 0.1862 834 + vn -0.9451 -0.0420 -0.3239 835 + vn -0.8765 -0.1413 -0.4603 836 + vn -0.8602 -0.2845 -0.4232 837 + vn -0.6417 -0.3825 -0.6648 838 + vn -0.6090 -0.4394 -0.6603 839 + vn -0.7044 -0.6607 -0.2594 840 + vn -0.8319 -0.3417 -0.4374 841 + vn -0.8025 -0.4504 0.3913 842 + vn -0.7438 -0.5853 0.3227 843 + vn -0.7970 -0.5494 0.2510 844 + vn -0.8920 -0.4031 0.2047 845 + vn -0.9003 -0.2539 0.3536 846 + vn -0.5171 -0.3814 0.7663 847 + vn -0.3851 -0.5257 0.7585 848 + vn 0.5054 -0.3759 0.7767 849 + vn 0.8585 0.0106 0.5128 850 + vn 0.9921 0.0811 -0.0955 851 + vn 0.7929 -0.2828 -0.5398 852 + vn 0.8161 -0.0554 -0.5753 853 + vn -0.4113 -0.6606 -0.6280 854 + vn -0.6577 -0.0121 -0.7531 855 + vn 0.8369 0.0828 -0.5410 856 + vn 0.8196 -0.0650 -0.5693 857 + vn 0.4654 -0.2447 0.8506 858 + vn 0.5132 -0.3355 0.7900 859 + vn -0.4052 -0.7146 0.5703 860 + vn -0.8872 0.1267 0.4438 861 + vn -0.6417 -0.0018 -0.7670 862 + vn -0.3691 -0.7147 -0.5940 863 + vn -0.3234 -0.0798 -0.9429 864 + vn 0.2065 -0.4909 -0.8464 865 + vn 0.2279 -0.1591 -0.9606 866 + vn 0.2336 -0.1685 -0.9576 867 + vn -0.9110 0.2522 -0.3262 868 + vn -0.8734 0.4434 -0.2015 869 + vn -0.7725 0.5778 0.2633 870 + vn -0.7575 0.4265 0.4943 871 + vn 0.4633 0.4215 0.7796 872 + vn 0.4960 0.4658 0.7328 873 + vn 0.9140 0.3460 0.2117 874 + vn 0.7896 -0.2611 0.5553 875 + vn 0.7697 -0.1081 -0.6292 876 + vn 0.7679 -0.5425 -0.3406 877 + vn 0.9165 -0.0075 -0.3999 878 + vn 0.6392 0.0712 0.7657 879 + vn 0.5944 0.0517 0.8025 880 + vn -0.8941 0.1328 0.4278 881 + vn -0.8842 -0.0570 0.4637 882 + vn -0.4237 -0.3025 0.8538 883 + vn -0.3772 0.8331 0.4045 884 + vn -0.8963 -0.3424 0.2819 885 + vn -0.9217 -0.1949 0.3355 886 + vn -0.8321 0.4068 -0.3769 887 + vn -0.5990 0.1724 -0.7820 888 + vn -0.6200 -0.0889 -0.7795 889 + vn -0.3996 0.1918 -0.8964 890 + vn 0.6666 -0.2380 -0.7064 891 + vn 0.6272 -0.2740 -0.7291 892 + vn -0.4281 -0.4291 -0.7954 893 + vn -0.4554 0.2769 -0.8462 894 + vn -0.8759 0.4735 -0.0931 895 + vn -0.9819 -0.1316 0.1365 896 + vn -0.7945 -0.1644 0.5846 897 + vn -0.4128 -0.3575 0.8378 898 + vn -0.5556 0.1668 0.8146 899 + vn -0.9812 -0.0307 -0.1906 900 + vn -0.7110 -0.6907 -0.1319 901 + vn -0.8514 -0.1527 -0.5018 902 + vn -0.3525 -0.5877 -0.7282 903 + vn -0.4380 -0.1591 -0.8848 904 + vn -0.4318 -0.1685 -0.8861 905 + vn -0.9094 0.2522 0.3308 906 + vn -0.8008 0.4434 0.4027 907 + vn -0.4264 0.5778 0.6960 908 + vn -0.0319 0.8331 0.5521 909 + vn 0.2215 -0.3266 0.9188 910 + vn -0.2990 -0.1542 0.9417 911 + vn -0.4451 -0.4189 0.7915 912 + vn -0.3217 0.0600 0.9449 913 + vn 0.9099 0.1955 0.3658 914 + vn 0.8871 0.1580 0.4337 915 + vn 0.9031 -0.2279 0.3639 916 + vn 0.7683 -0.0673 0.6365 917 + vn 0.7448 -0.4870 0.4561 918 + vn 0.8420 -0.2906 0.4544 919 + vn 0.6455 0.0985 -0.7574 920 + vn 0.6326 0.0796 -0.7703 921 + vn 0.5969 -0.4102 -0.6895 922 + vn 0.3476 0.0105 -0.9376 923 + vn 0.9657 -0.2442 -0.0882 924 + vn 0.9164 0.1658 0.3642 925 + vn 0.8497 0.4658 0.2472 926 + vn 0.8386 0.3460 -0.4208 927 + vn 0.8146 0.0836 -0.5739 928 + vn 0.8543 0.4215 0.3040 929 + vn -0.2672 0.4265 0.8641 930 + vn -0.9168 0.1039 -0.3856 931 + vn -0.7217 -0.4814 -0.4974 932 + vn 0.6354 0.0137 -0.7720 933 + vn 0.5964 -0.0205 -0.8024 934 + vn -0.0000 -1.0000 -0.0000 935 + vn 0.5852 0.2337 0.7765 936 + vn 0.6834 -0.2249 -0.6945 937 + vn -0.4779 0.4446 -0.7576 938 + vn -0.7806 0.2781 -0.5597 939 + vn -0.8692 0.2637 0.4182 940 + vn -0.6260 -0.7492 0.2165 941 + vn -0.5670 -0.7254 -0.3902 942 + vn -0.0140 -0.7644 -0.6446 943 + vn 0.4800 -0.8271 -0.2924 944 + vn 0.4211 -0.8508 0.3143 945 + vn -0.1320 -0.8119 0.5687 946 + vn -0.0827 0.1023 0.9913 947 + vn -0.7011 0.3769 0.6053 948 + vn 0.6771 0.2406 0.6954 949 + vn 0.8124 0.0929 0.5757 950 + vn 0.9106 0.0742 -0.4065 951 + vn 0.7170 0.3111 -0.6238 952 + vn 0.1027 0.1059 -0.9891 953 + vn -0.5397 -0.8331 -0.1210 954 + vn -0.3546 -0.9242 -0.1415 955 + vn -0.2446 -0.9624 -0.1180 956 + vn -0.1150 -0.9658 -0.2325 957 + vn -0.1118 -0.9659 -0.2337 958 + vn 0.1118 -0.9659 -0.2337 959 + vn 0.1150 -0.9658 -0.2325 960 + vn 0.2446 -0.9624 -0.1180 961 + vn 0.1120 -0.9854 0.1283 962 + vn 0.1064 -0.9855 0.1324 963 + vn 0.1774 -0.9485 0.2624 964 + vn 0.1729 -0.8260 0.5365 965 + vn -0.1729 -0.8260 0.5365 966 + vn -0.2612 -0.7364 0.6240 967 + vn -0.2420 -0.5690 0.7859 968 + vn 0.2420 -0.5690 0.7859 969 + vn 0.2612 -0.7364 0.6240 970 + vn 0.4853 -0.7873 0.3803 971 + vn 0.8410 -0.5410 0.0087 972 + vn 0.7276 -0.6706 -0.1445 973 + vn 0.5397 -0.8331 -0.1210 974 + vn 0.3546 -0.9242 -0.1415 975 + vn 0.7575 -0.5567 -0.3409 976 + vn 0.5424 -0.6367 -0.5481 977 + vn 0.5334 -0.6330 -0.5610 978 + vn 0.2553 -0.7205 -0.6447 979 + vn 0.2762 -0.4740 -0.8361 980 + vn -0.2762 -0.4740 -0.8361 981 + vn -0.4612 -0.3346 -0.8218 982 + vn -0.3803 -0.1596 -0.9110 983 + vn 0.3803 -0.1596 -0.9110 984 + vn 0.4612 -0.3346 -0.8218 985 + vn 0.5769 -0.3313 -0.7466 986 + vn 0.6185 -0.3078 -0.7229 987 + vn 0.8229 -0.4170 -0.3860 988 + vn 0.9449 -0.1935 -0.2639 989 + vn 0.9750 -0.1550 -0.1593 990 + vn 0.9468 -0.3188 0.0435 991 + vn 0.9480 -0.1968 0.2499 992 + vn 0.3492 -0.3666 0.8624 993 + vn 0.2391 -0.9709 -0.0148 994 + vn 0.7167 -0.6507 0.2508 995 + vn 0.6703 -0.6988 0.2497 996 + vn -0.4853 -0.7873 0.3803 997 + vn -0.8410 -0.5410 0.0087 998 + vn -0.7276 -0.6706 -0.1445 999 + vn -0.7575 -0.5567 -0.3409 1000 + vn -0.5424 -0.6367 -0.5481 1001 + vn -0.5334 -0.6330 -0.5610 1002 + vn -0.2553 -0.7205 -0.6447 1003 + vn -0.1011 -0.8166 -0.5682 1004 + vn -0.1576 -0.9111 -0.3810 1005 + vn 0.1011 -0.8166 -0.5682 1006 + vn 0.1576 -0.9111 -0.3810 1007 + vn -0.6586 0.5383 -0.5258 1008 + vn -0.8944 0.3135 -0.3190 1009 + vn -0.7952 0.0531 0.6041 1010 + vn -0.4084 -0.9067 0.1050 1011 + vn -0.4690 -0.7641 -0.4430 1012 + vn -0.0099 -0.6499 -0.7599 1013 + vn 0.5099 -0.6784 -0.5289 1014 + vn 0.5705 -0.8211 0.0191 1015 + vn 0.1113 -0.9352 0.3360 1016 + vn 0.0987 -0.1392 0.9853 1017 + vn -0.5253 0.1508 0.8374 1018 + vn 0.7882 0.2027 0.5811 1019 + vn 0.8842 0.1345 0.4473 1020 + vn 0.7791 0.3833 -0.4961 1021 + vn 0.7262 0.4415 -0.5271 1022 + vn -0.1142 0.3879 -0.9146 1023 + vn -0.1774 -0.9485 0.2624 1024 + vn -0.1064 -0.9855 0.1324 1025 + vn -0.1120 -0.9854 0.1283 1026 + vn 0.9934 0.0836 0.0786 1027 + vn -0.9449 -0.1935 -0.2639 1028 + vn -0.8229 -0.4170 -0.3860 1029 + vn -0.6185 -0.3078 -0.7229 1030 + vn -0.5769 -0.3313 -0.7466 1031 + vn -0.5947 0.7424 -0.3084 1032 + vn -0.4886 0.7852 -0.3804 1033 + vn 0.9785 -0.0888 0.1862 1034 + vn 0.9451 -0.0420 -0.3239 1035 + vn 0.8765 -0.1413 -0.4603 1036 + vn 0.8602 -0.2845 -0.4232 1037 + vn 0.6417 -0.3825 -0.6648 1038 + vn 0.6090 -0.4394 -0.6603 1039 + vn 0.7044 -0.6607 -0.2594 1040 + vn 0.8319 -0.3417 -0.4374 1041 + vn 0.8025 -0.4504 0.3913 1042 + vn 0.7438 -0.5853 0.3227 1043 + vn 0.7970 -0.5494 0.2510 1044 + vn 0.8920 -0.4031 0.2047 1045 + vn 0.9003 -0.2539 0.3536 1046 + vn 0.5171 -0.3814 0.7663 1047 + vn 0.3851 -0.5257 0.7585 1048 + vn -0.5054 -0.3759 0.7767 1049 + vn -0.8585 0.0106 0.5128 1050 + vn -0.9921 0.0811 -0.0955 1051 + vn -0.7929 -0.2828 -0.5398 1052 + vn -0.8161 -0.0554 -0.5753 1053 + vn 0.4113 -0.6606 -0.6280 1054 + vn 0.6577 -0.0121 -0.7531 1055 + vn -0.8369 0.0828 -0.5410 1056 + vn -0.8196 -0.0650 -0.5693 1057 + vn -0.4654 -0.2447 0.8506 1058 + vn -0.5132 -0.3355 0.7900 1059 + vn 0.4052 -0.7146 0.5703 1060 + vn 0.8872 0.1267 0.4438 1061 + vn 0.6417 -0.0018 -0.7670 1062 + vn 0.3691 -0.7147 -0.5940 1063 + vn 0.3234 -0.0798 -0.9429 1064 + vn -0.2065 -0.4909 -0.8464 1065 + vn -0.2279 -0.1591 -0.9606 1066 + vn -0.2336 -0.1685 -0.9576 1067 + vn 0.9110 0.2522 -0.3262 1068 + vn 0.8734 0.4434 -0.2015 1069 + vn 0.7725 0.5778 0.2633 1070 + vn 0.7575 0.4265 0.4943 1071 + vn -0.4633 0.4215 0.7796 1072 + vn -0.4960 0.4658 0.7328 1073 + vn -0.9140 0.3460 0.2117 1074 + vn -0.7896 -0.2611 0.5553 1075 + vn -0.7697 -0.1081 -0.6292 1076 + vn -0.7679 -0.5425 -0.3406 1077 + vn -0.9165 -0.0075 -0.3999 1078 + vn -0.6392 0.0712 0.7657 1079 + vn -0.5944 0.0517 0.8025 1080 + vn 0.8941 0.1328 0.4278 1081 + vn 0.8842 -0.0570 0.4637 1082 + vn 0.4237 -0.3025 0.8538 1083 + vn 0.3772 0.8331 0.4045 1084 + vn 0.8963 -0.3424 0.2819 1085 + vn 0.9217 -0.1949 0.3355 1086 + vn 0.6905 -0.4962 0.5263 1087 + vn 0.1061 -0.5541 0.8256 1088 + vn 0.8922 -0.4253 -0.1519 1089 + vn -0.0929 -0.6581 0.7471 1090 + vn -0.0954 -0.6532 0.7511 1091 + vn 0.7586 -0.6509 -0.0286 1092 + vn 0.8355 -0.5420 -0.0904 1093 + vn 0.5732 -0.5228 -0.6310 1094 + vn 0.4622 -0.3392 -0.8193 1095 + vn -0.3748 -0.2214 -0.9003 1096 + vn -0.6876 -0.3465 -0.6381 1097 + vn 0.0354 -0.5218 -0.8523 1098 + vn -0.6666 -0.2380 -0.7064 1099 + vn -0.6272 -0.2740 -0.7291 1100 + vn 0.4281 -0.4291 -0.7954 1101 + vn 0.4554 0.2769 -0.8462 1102 + vn 0.8759 0.4735 -0.0931 1103 + vn 0.9819 -0.1316 0.1365 1104 + vn 0.7945 -0.1644 0.5846 1105 + vn 0.4128 -0.3575 0.8378 1106 + vn 0.5556 0.1668 0.8146 1107 + vn 0.9812 -0.0307 -0.1906 1108 + vn 0.7110 -0.6907 -0.1319 1109 + vn 0.8514 -0.1527 -0.5018 1110 + vn 0.3525 -0.5877 -0.7282 1111 + vn 0.4380 -0.1591 -0.8848 1112 + vn 0.4318 -0.1685 -0.8861 1113 + vn 0.9094 0.2522 0.3308 1114 + vn 0.8008 0.4434 0.4027 1115 + vn 0.4264 0.5778 0.6960 1116 + vn 0.0319 0.8331 0.5521 1117 + vn -0.2215 -0.3266 0.9188 1118 + vn 0.2990 -0.1542 0.9417 1119 + vn 0.4451 -0.4189 0.7915 1120 + vn 0.3217 0.0600 0.9449 1121 + vn -0.9099 0.1955 0.3658 1122 + vn -0.8871 0.1580 0.4337 1123 + vn -0.9031 -0.2279 0.3639 1124 + vn -0.7683 -0.0673 0.6365 1125 + vn -0.7448 -0.4870 0.4561 1126 + vn -0.8420 -0.2906 0.4544 1127 + vn -0.6455 0.0985 -0.7574 1128 + vn -0.6326 0.0796 -0.7703 1129 + vn -0.5969 -0.4102 -0.6895 1130 + vn -0.3476 0.0105 -0.9376 1131 + vn -0.9657 -0.2442 -0.0882 1132 + vn -0.9164 0.1658 0.3642 1133 + vn -0.6354 0.0137 -0.7720 1134 + vn -0.5964 -0.0205 -0.8024 1135 + vn 0.9168 0.1039 -0.3856 1136 + vn 0.7217 -0.4814 -0.4974 1137 + vn -0.5852 0.2337 0.7765 1138 + vn -0.6834 -0.2249 -0.6945 1139 + vn 0.4779 0.4446 -0.7576 1140 + vn 0.7806 0.2781 -0.5597 1141 + vn 0.8692 0.2637 0.4182 1142 + vn 0.6260 -0.7492 0.2165 1143 + vn 0.5670 -0.7254 -0.3902 1144 + vn 0.0140 -0.7644 -0.6446 1145 + vn -0.4800 -0.8271 -0.2924 1146 + vn -0.4211 -0.8508 0.3143 1147 + vn 0.1320 -0.8119 0.5687 1148 + vn 0.0827 0.1023 0.9913 1149 + vn 0.7011 0.3769 0.6053 1150 + vn -0.6771 0.2406 0.6954 1151 + vn -0.8124 0.0929 0.5757 1152 + vn -0.9106 0.0742 -0.4065 1153 + vn -0.7170 0.3111 -0.6238 1154 + vn -0.1027 0.1059 -0.9891 1155 + vn 0.6586 0.5383 -0.5258 1156 + vn 0.8944 0.3135 -0.3190 1157 + vn 0.7952 0.0531 0.6041 1158 + vn 0.4084 -0.9067 0.1050 1159 + vn 0.4690 -0.7641 -0.4430 1160 + vn 0.0099 -0.6499 -0.7599 1161 + vn -0.5099 -0.6784 -0.5289 1162 + vn -0.5705 -0.8211 0.0191 1163 + vn -0.1113 -0.9352 0.3360 1164 + vn -0.0987 -0.1392 0.9853 1165 + vn 0.5253 0.1508 0.8374 1166 + vn -0.7882 0.2027 0.5811 1167 + vn -0.8842 0.1345 0.4473 1168 + vn -0.7791 0.3833 -0.4961 1169 + vn -0.7262 0.4415 -0.5271 1170 + vn 0.1142 0.3879 -0.9146 1171 + vn 0.9043 0.3738 0.2061 1172 + vn 0.8749 -0.4840 -0.0162 1173 + vn -0.8497 0.4658 0.2472 1174 + vn -0.8386 0.3460 -0.4208 1175 + vn -0.8146 0.0836 -0.5739 1176 + vn -0.8543 0.4215 0.3040 1177 + vn 0.2672 0.4265 0.8641 1178 + vn -0.9934 0.0836 0.0786 1179 + vn -0.9845 0.1629 -0.0648 1180 + vn -0.7548 -0.6367 -0.1574 1181 + vn 0.1169 -0.6826 -0.7213 1182 + vn 0.2222 -0.7515 -0.6212 1183 + vn -0.2222 -0.7515 -0.6212 1184 + vn -0.1169 -0.6826 -0.7213 1185 + vn 0.7548 -0.6367 -0.1574 1186 + vn 0.7364 -0.6420 -0.2133 1187 + vn 0.9025 -0.4149 0.1159 1188 + vn 0.5862 -0.4851 0.6489 1189 + vn 0.6172 -0.6200 0.4844 1190 + vn 0.0380 -0.4746 0.8794 1191 + vn -0.1591 -0.0884 0.9833 1192 + vn -0.1741 -0.8368 0.5191 1193 + vn -0.0336 -0.9024 0.4296 1194 + vn 0.3919 -0.7682 0.5063 1195 + vt 0.010000 0.190000 1196 + vt 0.010000 0.090000 1197 + vt 0.050000 0.190000 1198 + vt 0.050000 0.260000 1199 + vt 0.010000 0.260000 1200 + vt 0.030000 0.370000 1201 + vt 0.050000 0.090000 1202 + vt 0.050000 0.010000 1203 + vt 0.010000 0.010000 1204 + vt 0.070000 0.090000 1205 + vt 0.120000 0.190000 1206 + vt 0.070000 0.190000 1207 + vt 0.120000 0.090000 1208 + vt 0.120000 0.010000 1209 + vt 0.070000 0.010000 1210 + vt 0.120000 0.260000 1211 + vt 0.070000 0.260000 1212 + vt 0.090000 0.370000 1213 + vt 0.130000 0.190000 1214 + vt 0.180000 0.090000 1215 + vt 0.180000 0.190000 1216 + vt 0.130000 0.090000 1217 + vt 0.130000 0.010000 1218 + vt 0.180000 0.010000 1219 + vt 0.180000 0.260000 1220 + vt 0.130000 0.260000 1221 + vt 0.160000 0.370000 1222 + vt 0.510000 0.940000 1223 + vt 0.500000 0.960000 1224 + vt 0.560000 0.930000 1225 + vt 0.480000 0.960000 1226 + vt 0.490000 0.990000 1227 + vt 0.480000 0.990000 1228 + vt 0.560000 0.960000 1229 + vt 0.560000 0.990000 1230 + vt 0.630000 0.990000 1231 + vt 0.630000 0.950000 1232 + vt 0.630000 0.910000 1233 + vt 0.710000 0.950000 1234 + vt 0.710000 0.990000 1235 + vt 0.960000 0.490000 1236 + vt 0.950000 0.520000 1237 + vt 0.860000 0.490000 1238 + vt 0.950000 0.460000 1239 + vt 0.880000 0.390000 1240 + vt 0.940000 0.380000 1241 + vt 0.990000 0.420000 1242 + vt 0.960000 0.340000 1243 + vt 0.990000 0.350000 1244 + vt 0.990000 0.260000 1245 + vt 0.950000 0.270000 1246 + vt 0.910000 0.300000 1247 + vt 0.850000 0.300000 1248 + vt 0.850000 0.270000 1249 + vt 0.780000 0.260000 1250 + vt 0.830000 0.370000 1251 + vt 0.740000 0.370000 1252 + vt 0.740000 0.270000 1253 + vt 0.670000 0.330000 1254 + vt 0.660000 0.230000 1255 + vt 0.690000 0.180000 1256 + vt 0.630000 0.160000 1257 + vt 0.590000 0.230000 1258 + vt 0.600000 0.300000 1259 + vt 0.620000 0.390000 1260 + vt 0.550000 0.350000 1261 + vt 0.520000 0.410000 1262 + vt 0.550000 0.430000 1263 + vt 0.520000 0.430000 1264 + vt 0.410000 0.440000 1265 + vt 0.500000 0.360000 1266 + vt 0.430000 0.370000 1267 + vt 0.480000 0.310000 1268 + vt 0.410000 0.280000 1269 + vt 0.480000 0.270000 1270 + vt 0.450000 0.200000 1271 + vt 0.510000 0.150000 1272 + vt 0.520000 0.200000 1273 + vt 0.550000 0.170000 1274 + vt 0.560000 0.110000 1275 + vt 0.350000 0.370000 1276 + vt 0.350000 0.440000 1277 + vt 0.800000 0.180000 1278 + vt 0.740000 0.180000 1279 + vt 0.960000 0.220000 1280 + vt 0.910000 0.210000 1281 + vt 0.860000 0.160000 1282 + vt 0.830000 0.150000 1283 + vt 0.790000 0.150000 1284 + vt 0.700000 0.110000 1285 + vt 0.630000 0.120000 1286 + vt 0.570000 0.190000 1287 + vt 0.880000 0.590000 1288 + vt 0.820000 0.570000 1289 + vt 0.830000 0.620000 1290 + vt 0.740000 0.620000 1291 + vt 0.740000 0.570000 1292 + vt 0.620000 0.590000 1293 + vt 0.630000 0.540000 1294 + vt 0.740000 0.490000 1295 + vt 0.820000 0.410000 1296 + vt 0.740000 0.410000 1297 + vt 0.630000 0.450000 1298 + vt 0.630000 0.490000 1299 + vt 0.550000 0.550000 1300 + vt 0.520000 0.490000 1301 + vt 0.520000 0.550000 1302 + vt 0.520000 0.570000 1303 + vt 0.410000 0.550000 1304 + vt 0.410000 0.490000 1305 + vt 0.840000 0.990000 1306 + vt 0.840000 0.940000 1307 + vt 0.710000 0.890000 1308 + vt 0.910000 0.940000 1309 + vt 0.990000 0.940000 1310 + vt 0.910000 0.890000 1311 + vt 0.830000 0.880000 1312 + vt 0.120000 0.600000 1313 + vt 0.100000 0.680000 1314 + vt 0.060000 0.640000 1315 + vt 0.060000 0.590000 1316 + vt 0.050000 0.520000 1317 + vt 0.010000 0.560000 1318 + vt 0.010000 0.520000 1319 + vt 0.010000 0.480000 1320 + vt 0.110000 0.510000 1321 + vt 0.050000 0.480000 1322 + vt 0.010000 0.450000 1323 + vt 0.160000 0.540000 1324 + vt 0.140000 0.520000 1325 + vt 0.190000 0.610000 1326 + vt 0.160000 0.700000 1327 + vt 0.100000 0.800000 1328 + vt 0.050000 0.730000 1329 + vt 0.060000 0.810000 1330 + vt 0.010000 0.760000 1331 + vt 0.010000 0.910000 1332 + vt 0.070000 0.840000 1333 + vt 0.100000 0.900000 1334 + vt 0.090000 0.950000 1335 + vt 0.010000 0.990000 1336 + vt 0.070000 0.990000 1337 + vt 0.160000 0.950000 1338 + vt 0.190000 0.990000 1339 + vt 0.010000 0.680000 1340 + vt 0.010000 0.590000 1341 + vt 0.010000 0.620000 1342 + vt 0.060000 0.450000 1343 + vt 0.710000 0.630000 1344 + vt 0.600000 0.640000 1345 + vt 0.600000 0.750000 1346 + vt 0.710000 0.750000 1347 + vt 0.660000 0.860000 1348 + vt 0.710000 0.870000 1349 + vt 0.600000 0.830000 1350 + vt 0.220000 0.550000 1351 + vt 0.240000 0.660000 1352 + vt 0.270000 0.540000 1353 + vt 0.300000 0.630000 1354 + vt 0.340000 0.550000 1355 + vt 0.340000 0.630000 1356 + vt 0.280000 0.750000 1357 + vt 0.300000 0.470000 1358 + vt 0.270000 0.480000 1359 + vt 0.230000 0.410000 1360 + vt 0.190000 0.460000 1361 + vt 0.210000 0.500000 1362 + vt 0.210000 0.820000 1363 + vt 0.270000 0.800000 1364 + vt 0.340000 0.800000 1365 + vt 0.390000 0.750000 1366 + vt 0.370000 0.630000 1367 + vt 0.430000 0.660000 1368 + vt 0.460000 0.820000 1369 + vt 0.510000 0.700000 1370 + vt 0.480000 0.610000 1371 + vt 0.570000 0.680000 1372 + vt 0.570000 0.800000 1373 + vt 0.560000 0.820000 1374 + vt 0.460000 0.920000 1375 + vt 0.570000 0.900000 1376 + vt 0.380000 0.990000 1377 + vt 0.390000 0.910000 1378 + vt 0.340000 0.990000 1379 + vt 0.340000 0.900000 1380 + vt 0.400000 0.800000 1381 + vt 0.280000 0.910000 1382 + vt 0.290000 0.990000 1383 + vt 0.210000 0.920000 1384 + vt 0.110000 0.820000 1385 + vt 0.550000 0.600000 1386 + vt 0.400000 0.230000 1387 + vt 0.350000 0.280000 1388 + vt 0.350000 0.230000 1389 + vt 0.350000 0.490000 1390 + vt 0.350000 0.550000 1391 + vt 0.900000 0.770000 1392 + vt 0.760000 0.760000 1393 + vt 0.800000 0.830000 1394 + vt 0.800000 0.730000 1395 + vt 0.870000 0.730000 1396 + vt 0.860000 0.830000 1397 + vt 0.900000 0.830000 1398 + vt 0.870000 0.870000 1399 + vt 0.730000 0.830000 1400 + vt 0.990000 0.630000 1401 + vt 0.940000 0.710000 1402 + vt 0.940000 0.630000 1403 + vt 0.980000 0.720000 1404 + vt 0.940000 0.740000 1405 + vt 0.880000 0.630000 1406 + vt 0.900000 0.720000 1407 + vt 0.730000 0.710000 1408 + vt 0.840000 0.660000 1409 + vt 0.800000 0.650000 1410 + vt 0.860000 0.710000 1411 + vt 0.730000 0.670000 1412 + vt 0.280000 0.240000 1413 + vt 0.210000 0.350000 1414 + vt 0.270000 0.350000 1415 + vt 0.330000 0.310000 1416 + vt 0.330000 0.230000 1417 + vt 0.290000 0.180000 1418 + vt 0.340000 0.190000 1419 + vt 0.310000 0.130000 1420 + vt 0.270000 0.140000 1421 + vt 0.280000 0.110000 1422 + vt 0.230000 0.130000 1423 + vt 0.230000 0.200000 1424 + vt 0.200000 0.270000 1425 + vt 0.200000 0.200000 1426 + vt 0.270000 0.190000 1427 + vt 0.300000 0.180000 1428 + vt 0.310000 0.110000 1429 + vt 0.310000 0.060000 1430 + vt 0.250000 0.120000 1431 + vt 0.280000 0.050000 1432 + vt 0.300000 0.050000 1433 + vt 0.290000 0.020000 1434 + vt 0.320000 0.020000 1435 + vt 0.290000 0.010000 1436 + vt 0.320000 0.010000 1437 + vt 0.260000 0.010000 1438 + vt 0.270000 0.040000 1439 + vt 0.230000 0.030000 1440 + vt 0.230000 0.010000 1441 + vt 0.250000 0.060000 1442 + vt 0.250000 0.050000 1443 + vt 0.880000 0.100000 1444 + vt 0.910000 0.160000 1445 + vt 0.910000 0.100000 1446 + vt 0.900000 0.160000 1447 + vt 0.850000 0.110000 1448 + vt 0.880000 0.050000 1449 + vt 0.910000 0.060000 1450 + vt 0.910000 0.050000 1451 + vt 0.890000 0.020000 1452 + vt 0.920000 0.020000 1453 + vt 0.890000 0.010000 1454 + vt 0.920000 0.010000 1455 + vt 0.860000 0.010000 1456 + vt 0.870000 0.040000 1457 + vt 0.840000 0.030000 1458 + vt 0.850000 0.050000 1459 + vt 0.850000 0.060000 1460 + vt 0.850000 0.230000 1461 + vt 0.830000 0.010000 1462 + vt 0.490000 0.010000 1463 + vt 0.480000 0.060000 1464 + vt 0.520000 0.090000 1465 + vt 0.540000 0.010000 1466 + vt 0.550000 0.060000 1467 + vt 0.390000 0.120000 1468 + vt 0.460000 0.120000 1469 + vt 0.430000 0.050000 1470 + vt 0.380000 0.050000 1471 + vt 0.350000 0.050000 1472 + vt 0.410000 0.010000 1473 + vt 0.460000 0.050000 1474 + vt 0.420000 0.050000 1475 + vt 0.350000 0.120000 1476 + vt 0.410000 0.120000 1477 + vt 0.660000 0.060000 1478 + vt 0.650000 0.080000 1479 + vt 0.720000 0.050000 1480 + vt 0.700000 0.050000 1481 + vt 0.660000 0.010000 1482 + vt 0.710000 0.020000 1483 + vt 0.720000 0.010000 1484 + vt 0.640000 0.050000 1485 + vt 0.620000 0.030000 1486 + vt 0.630000 0.070000 1487 + vt 0.590000 0.060000 1488 + vt 0.740000 0.080000 1489 + vt 0.730000 0.030000 1490 + vt 0.750000 0.050000 1491 + vt 0.770000 0.020000 1492 + vt 0.800000 0.050000 1493 + vt 0.790000 0.090000 1494 + vt 0.830000 0.070000 1495 + vt 0.760000 0.120000 1496 + vt 0.400000 0.120000 1497 + vt 0.420000 0.060000 1498 + vt 0.140000 0.410000 1499 + s 0 1500 + usemtl material_009C21CE 1501 + f 1/1/1 2/2/1 3/3/1 1502 + f 4/4/2 1/1/2 3/3/2 1503 + f 5/5/3 1/1/3 4/4/3 1504 + f 6/6/4 5/5/4 4/4/4 1505 + f 7/5/5 8/6/5 9/4/5 1506 + f 10/1/6 7/5/6 9/4/6 1507 + f 10/1/7 9/4/7 11/3/7 1508 + f 11/3/8 12/2/8 10/1/8 1509 + f 13/7/9 12/2/9 11/3/9 1510 + f 14/8/10 12/2/10 13/7/10 1511 + f 15/9/11 12/2/11 14/8/11 1512 + f 2/2/12 15/9/12 14/8/12 1513 + f 2/2/13 14/8/13 16/7/13 1514 + f 3/3/14 2/2/14 16/7/14 1515 + f 16/10/15 17/11/15 3/12/15 1516 + f 18/13/16 17/11/16 16/10/16 1517 + f 16/10/17 19/14/17 18/13/17 1518 + f 16/10/18 14/15/18 19/14/18 1519 + f 14/15/19 13/10/19 19/14/19 1520 + f 19/14/20 13/10/20 20/13/20 1521 + f 20/13/21 13/10/21 21/11/21 1522 + f 21/11/22 13/10/22 11/12/22 1523 + f 11/12/23 22/16/23 21/11/23 1524 + f 11/12/24 9/17/24 22/16/24 1525 + f 9/17/25 8/18/25 22/16/25 1526 + f 4/17/26 3/12/26 23/16/26 1527 + f 6/18/27 4/17/27 23/16/27 1528 + f 23/16/28 3/12/28 17/11/28 1529 + f 17/19/29 2/20/29 1/21/29 1530 + f 17/19/30 18/22/30 2/20/30 1531 + f 18/22/31 19/23/31 2/20/31 1532 + f 2/20/31 19/23/31 15/24/31 1533 + f 19/23/31 12/20/31 15/24/31 1534 + f 19/23/31 20/22/31 12/20/31 1535 + f 20/22/32 21/19/32 12/20/32 1536 + f 12/20/33 21/19/33 10/21/33 1537 + f 21/19/34 7/25/34 10/21/34 1538 + f 21/19/35 22/26/35 7/25/35 1539 + f 22/26/36 8/27/36 7/25/36 1540 + f 23/26/37 17/19/37 5/25/37 1541 + f 6/27/38 23/26/38 5/25/38 1542 + f 5/25/39 17/19/39 1/21/39 1543 + f 24/28/40 25/29/40 26/30/40 1544 + f 24/28/41 26/30/41 27/29/41 1545 + f 24/28/42 27/29/42 28/31/42 1546 + f 28/31/43 27/29/43 29/32/43 1547 + f 28/31/44 29/32/44 30/33/44 1548 + f 31/31/45 30/33/45 29/32/45 1549 + f 31/31/46 29/32/46 25/29/46 1550 + f 24/28/47 31/31/47 25/29/47 1551 + f 25/29/48 32/34/48 26/30/48 1552 + f 33/35/49 32/34/49 25/29/49 1553 + f 29/32/50 33/35/50 25/29/50 1554 + f 29/32/51 27/29/51 33/35/51 1555 + f 33/35/52 27/29/52 34/34/52 1556 + f 35/36/53 33/35/53 34/34/53 1557 + f 35/36/54 32/34/54 33/35/54 1558 + f 32/34/55 35/36/55 36/37/55 1559 + f 32/34/56 36/37/56 26/30/56 1560 + f 36/37/57 37/38/57 26/30/57 1561 + f 36/37/58 38/39/58 37/38/58 1562 + f 36/37/59 39/40/59 38/39/59 1563 + f 39/40/60 36/37/60 35/36/60 1564 + f 39/40/61 35/36/61 40/37/61 1565 + f 40/37/62 41/39/62 39/40/62 1566 + f 40/37/63 37/38/63 41/39/63 1567 + f 26/30/64 37/38/64 40/37/64 1568 + f 34/34/65 26/30/65 40/37/65 1569 + f 26/30/66 34/34/66 27/29/66 1570 + f 34/34/67 40/37/67 35/36/67 1571 + f 30/41/68 31/42/68 42/43/68 1572 + f 30/41/69 42/43/69 28/44/69 1573 + f 28/44/70 42/43/70 43/45/70 1574 + f 28/44/71 43/45/71 44/46/71 1575 + f 28/44/72 44/46/72 24/47/72 1576 + f 45/48/73 24/47/73 44/46/73 1577 + f 46/49/74 24/47/74 45/48/74 1578 + f 46/49/75 47/48/75 24/47/75 1579 + f 46/49/76 48/50/76 47/48/76 1580 + f 46/49/77 45/48/77 48/50/77 1581 + f 49/51/78 48/50/78 45/48/78 1582 + f 45/48/79 50/52/79 49/51/79 1583 + f 50/52/80 45/48/80 44/46/80 1584 + f 44/46/81 43/45/81 50/52/81 1585 + f 50/52/82 43/45/82 51/53/82 1586 + f 52/54/83 50/52/83 51/53/83 1587 + f 53/55/84 52/54/84 51/53/84 1588 + f 53/55/85 51/53/85 54/56/85 1589 + f 53/55/86 54/56/86 55/57/86 1590 + f 55/57/87 56/58/87 53/55/87 1591 + f 56/58/88 55/57/88 57/59/88 1592 + f 56/58/89 57/59/89 58/60/89 1593 + f 58/60/90 59/61/90 56/58/90 1594 + f 58/60/91 60/62/91 59/61/91 1595 + f 58/60/92 61/63/92 60/62/92 1596 + f 58/60/93 62/64/93 61/63/93 1597 + f 58/60/94 57/59/94 62/64/94 1598 + f 63/65/95 62/64/95 57/59/95 1599 + f 64/66/96 62/64/96 63/65/96 1600 + f 63/65/97 65/67/97 64/66/97 1601 + f 66/68/98 65/67/98 63/65/98 1602 + f 67/69/99 65/67/99 66/68/99 1603 + f 68/70/100 65/67/100 67/69/100 1604 + f 68/70/101 69/71/101 65/67/101 1605 + f 70/72/102 69/71/102 68/70/102 1606 + f 69/71/103 70/72/103 71/73/103 1607 + f 71/73/104 70/72/104 72/74/104 1608 + f 71/73/105 72/74/105 73/75/105 1609 + f 73/75/106 72/74/106 74/76/106 1610 + f 73/75/107 74/76/107 75/77/107 1611 + f 73/75/108 75/77/108 76/78/108 1612 + f 75/77/109 77/79/109 76/78/109 1613 + f 75/77/110 78/80/110 77/79/110 1614 + f 75/77/111 79/79/111 78/80/111 1615 + f 75/77/112 80/78/112 79/79/112 1616 + f 81/75/113 80/78/113 75/77/113 1617 + f 81/75/114 75/77/114 74/76/114 1618 + f 81/75/115 74/76/115 82/74/115 1619 + f 83/73/116 81/75/116 82/74/116 1620 + f 83/73/117 82/74/117 84/72/117 1621 + f 85/71/118 83/73/118 84/72/118 1622 + f 84/72/119 86/70/119 85/71/119 1623 + f 86/70/120 84/72/120 87/81/120 1624 + f 86/70/121 87/81/121 88/82/121 1625 + f 86/70/122 89/67/122 85/71/122 1626 + f 89/67/123 90/66/123 85/71/123 1627 + f 91/65/124 90/66/124 89/67/124 1628 + f 90/66/125 91/65/125 92/64/125 1629 + f 91/65/126 93/59/126 92/64/126 1630 + f 91/65/127 94/57/127 93/59/127 1631 + f 95/58/128 93/59/128 94/57/128 1632 + f 94/57/129 96/55/129 95/58/129 1633 + f 96/55/130 94/57/130 97/56/130 1634 + f 96/55/131 97/56/131 98/53/131 1635 + f 96/55/132 98/53/132 99/54/132 1636 + f 100/83/133 96/55/133 99/54/133 1637 + f 95/58/134 96/55/134 100/83/134 1638 + f 95/58/135 100/83/135 101/84/135 1639 + f 95/58/136 101/84/136 102/61/136 1640 + f 103/60/137 95/58/137 102/61/137 1641 + f 103/60/138 102/61/138 104/62/138 1642 + f 103/60/139 104/62/139 105/63/139 1643 + f 103/60/140 105/63/140 92/64/140 1644 + f 103/60/141 92/64/141 93/59/141 1645 + f 95/58/142 103/60/142 93/59/142 1646 + f 31/44/143 106/46/143 107/45/143 1647 + f 31/44/144 24/47/144 106/46/144 1648 + f 47/48/145 106/46/145 24/47/145 1649 + f 108/52/146 106/46/146 47/48/146 1650 + f 47/48/147 109/51/147 108/52/147 1651 + f 109/51/148 47/48/148 48/50/148 1652 + f 110/85/149 109/51/149 48/50/149 1653 + f 109/51/150 110/85/150 111/86/150 1654 + f 109/51/151 111/86/151 108/52/151 1655 + f 111/86/152 99/54/152 108/52/152 1656 + f 99/54/153 111/86/153 112/87/153 1657 + f 112/87/154 100/83/154 99/54/154 1658 + f 100/83/155 112/87/155 113/88/155 1659 + f 113/88/156 114/89/156 100/83/156 1660 + f 114/89/157 101/84/157 100/83/157 1661 + f 115/90/158 102/61/158 101/84/158 1662 + f 102/61/159 115/90/159 116/91/159 1663 + f 104/62/160 102/61/160 116/91/160 1664 + f 104/62/161 116/91/161 78/80/161 1665 + f 79/79/162 104/62/162 78/80/162 1666 + f 79/79/163 117/92/163 104/62/163 1667 + f 104/62/164 117/92/164 105/63/164 1668 + f 31/42/165 107/93/165 42/43/165 1669 + f 107/93/166 118/94/166 42/43/166 1670 + f 97/95/167 118/94/167 107/93/167 1671 + f 97/95/168 94/96/168 118/94/168 1672 + f 94/96/169 119/97/169 118/94/169 1673 + f 94/96/170 91/98/170 119/97/170 1674 + f 119/97/171 91/98/171 120/99/171 1675 + f 121/100/172 119/97/172 120/99/172 1676 + f 121/100/173 118/94/173 119/97/173 1677 + f 121/100/174 42/43/174 118/94/174 1678 + f 121/100/175 122/101/175 42/43/175 1679 + f 121/100/176 123/102/176 122/101/176 1680 + f 121/100/177 124/103/177 123/102/177 1681 + f 121/100/178 125/104/178 124/103/178 1682 + f 121/100/179 120/99/179 125/104/179 1683 + f 126/105/180 125/104/180 120/99/180 1684 + f 127/106/181 125/104/181 126/105/181 1685 + f 128/107/182 127/106/182 126/105/182 1686 + f 128/107/183 126/105/183 89/108/183 1687 + f 86/109/184 128/107/184 89/108/184 1688 + f 128/107/185 86/109/185 129/110/185 1689 + f 127/106/186 128/107/186 129/110/186 1690 + f 127/106/187 129/110/187 67/69/187 1691 + f 67/69/188 66/68/188 127/106/188 1692 + f 127/106/189 66/68/189 125/104/189 1693 + f 66/68/190 124/103/190 125/104/190 1694 + f 66/68/191 63/65/191 124/103/191 1695 + f 123/102/192 124/103/192 63/65/192 1696 + f 55/57/193 123/102/193 63/65/193 1697 + f 63/65/194 57/59/194 55/57/194 1698 + f 55/57/195 122/101/195 123/102/195 1699 + f 54/56/196 122/101/196 55/57/196 1700 + f 54/56/197 43/45/197 122/101/197 1701 + f 51/53/198 43/45/198 54/56/198 1702 + f 43/45/199 42/43/199 122/101/199 1703 + f 39/40/200 130/111/200 38/39/200 1704 + f 39/40/201 41/39/201 130/111/201 1705 + f 41/39/202 131/112/202 130/111/202 1706 + f 41/39/203 132/113/203 131/112/203 1707 + f 37/38/204 132/113/204 41/39/204 1708 + f 38/39/205 132/113/205 37/38/205 1709 + f 38/39/206 133/112/206 132/113/206 1710 + f 130/111/207 133/112/207 38/39/207 1711 + f 130/111/208 134/114/208 133/112/208 1712 + f 130/111/209 135/115/209 134/114/209 1713 + f 130/111/210 136/114/210 135/115/210 1714 + f 130/111/211 131/112/211 136/114/211 1715 + f 137/116/212 136/114/212 131/112/212 1716 + f 138/117/213 137/116/213 131/112/213 1717 + f 138/117/214 133/112/214 137/116/214 1718 + f 133/112/215 138/117/215 132/113/215 1719 + f 132/113/216 138/117/216 131/112/216 1720 + f 137/116/217 133/112/217 134/114/217 1721 + f 137/116/218 134/114/218 135/115/218 1722 + f 137/116/219 135/115/219 136/114/219 1723 + f 139/118/220 140/119/220 141/120/220 1724 + f 142/121/221 139/118/221 141/120/221 1725 + f 143/122/222 139/118/222 142/121/222 1726 + f 143/122/223 142/121/223 144/123/223 1727 + f 145/124/224 143/122/224 144/123/224 1728 + f 145/124/225 146/125/225 143/122/225 1729 + f 145/124/226 147/122/226 146/125/226 1730 + f 145/124/227 144/123/227 147/122/227 1731 + f 147/122/228 144/123/228 148/121/228 1732 + f 147/122/229 148/121/229 149/118/229 1733 + f 149/118/230 150/126/230 147/122/230 1734 + f 147/122/231 150/126/231 151/127/231 1735 + f 146/125/232 147/122/232 151/127/232 1736 + f 146/125/233 151/127/233 152/128/233 1737 + f 146/125/234 152/128/234 153/127/234 1738 + f 146/125/235 153/127/235 143/122/235 1739 + f 143/122/236 153/127/236 154/126/236 1740 + f 139/118/237 143/122/237 154/126/237 1741 + f 155/129/238 139/118/238 156/130/238 1742 + f 157/131/239 139/118/239 155/129/239 1743 + f 140/119/240 139/118/240 157/131/240 1744 + f 158/132/241 140/119/241 157/131/241 1745 + f 140/119/242 158/132/242 159/133/242 1746 + f 159/133/243 160/134/243 140/119/243 1747 + f 159/133/244 161/135/244 160/134/244 1748 + f 161/135/245 87/136/245 160/134/245 1749 + f 87/136/246 161/135/246 88/137/246 1750 + f 162/138/247 88/137/247 161/135/247 1751 + f 88/137/248 162/138/248 163/139/248 1752 + f 88/137/249 163/139/249 164/140/249 1753 + f 164/140/250 165/141/250 88/137/250 1754 + f 164/140/251 166/142/251 165/141/251 1755 + f 167/143/252 166/142/252 164/140/252 1756 + f 167/143/253 168/144/253 166/142/253 1757 + f 169/143/254 166/142/254 168/144/254 1758 + f 169/143/255 170/140/255 166/142/255 1759 + f 170/140/256 165/141/256 166/142/256 1760 + f 170/140/257 171/137/257 165/141/257 1761 + f 171/137/258 170/140/258 172/139/258 1762 + f 171/137/259 172/139/259 173/138/259 1763 + f 173/138/260 174/135/260 171/137/260 1764 + f 175/136/261 171/137/261 174/135/261 1765 + f 174/135/262 176/134/262 175/136/262 1766 + f 177/133/263 176/134/263 174/135/263 1767 + f 177/133/264 178/119/264 176/134/264 1768 + f 179/145/265 176/134/265 178/119/265 1769 + f 178/119/266 180/120/266 179/145/266 1770 + f 149/118/267 180/120/267 178/119/267 1771 + f 148/121/268 180/120/268 149/118/268 1772 + f 180/120/269 148/121/269 181/146/269 1773 + f 182/147/270 180/120/270 181/146/270 1774 + f 182/147/271 181/146/271 141/120/271 1775 + f 183/145/272 182/147/272 141/120/272 1776 + f 140/119/273 183/145/273 141/120/273 1777 + f 183/145/274 140/119/274 160/134/274 1778 + f 87/136/275 183/145/275 160/134/275 1779 + f 141/120/276 181/146/276 142/121/276 1780 + f 181/146/277 144/123/277 142/121/277 1781 + f 181/146/278 148/121/278 144/123/278 1782 + f 153/127/279 152/128/279 184/148/279 1783 + f 153/127/280 184/148/280 154/126/280 1784 + f 179/145/281 180/120/281 182/147/281 1785 + f 175/136/282 176/134/282 179/145/282 1786 + f 151/127/283 185/148/283 152/128/283 1787 + f 151/127/284 150/126/284 185/148/284 1788 + f 186/149/285 156/150/285 139/151/285 1789 + f 186/149/286 139/151/286 187/152/286 1790 + f 186/149/286 187/152/286 149/151/286 1791 + f 186/149/287 149/151/287 188/150/287 1792 + f 185/153/288 149/151/288 187/152/288 1793 + f 185/153/289 187/152/289 152/154/289 1794 + f 184/153/290 152/154/290 187/152/290 1795 + f 184/153/288 187/152/288 139/151/288 1796 + f 154/155/291 184/153/291 139/151/291 1797 + f 189/129/292 188/130/292 149/118/292 1798 + f 190/131/293 189/129/293 149/118/293 1799 + f 190/131/294 191/156/294 189/129/294 1800 + f 192/157/295 191/156/295 190/131/295 1801 + f 192/157/296 193/158/296 191/156/296 1802 + f 194/159/297 193/158/297 192/157/297 1803 + f 195/160/298 193/158/298 194/159/298 1804 + f 196/161/299 195/160/299 194/159/299 1805 + f 196/161/300 197/159/300 195/160/300 1806 + f 197/159/301 196/161/301 198/162/301 1807 + f 197/159/302 198/162/302 199/157/302 1808 + f 197/159/303 199/157/303 200/158/303 1809 + f 195/160/304 197/159/304 200/158/304 1810 + f 201/163/305 195/160/305 200/158/305 1811 + f 201/163/306 200/158/306 202/164/306 1812 + f 203/165/307 201/163/307 202/164/307 1813 + f 204/166/308 203/165/308 202/164/308 1814 + f 204/166/309 202/164/309 205/167/309 1815 + f 205/167/310 155/129/310 204/166/310 1816 + f 205/167/311 206/156/311 155/129/311 1817 + f 202/164/312 206/156/312 205/167/312 1818 + f 202/164/313 200/158/313 206/156/313 1819 + f 199/157/314 206/156/314 200/158/314 1820 + f 199/157/315 157/131/315 206/156/315 1821 + f 199/157/316 158/132/316 157/131/316 1822 + f 199/157/317 207/168/317 158/132/317 1823 + f 199/157/318 198/162/318 207/168/318 1824 + f 198/162/319 208/169/319 207/168/319 1825 + f 209/170/320 208/169/320 198/162/320 1826 + f 196/161/321 209/170/321 198/162/321 1827 + f 196/161/322 210/171/322 209/170/322 1828 + f 194/172/323 210/171/323 196/161/323 1829 + f 194/172/324 192/173/324 210/171/324 1830 + f 192/173/325 211/174/325 210/171/325 1831 + f 192/173/326 212/175/326 211/174/326 1832 + f 192/173/327 190/176/327 212/175/327 1833 + f 212/175/328 190/176/328 178/177/328 1834 + f 178/177/329 177/178/329 212/175/329 1835 + f 177/178/330 211/174/330 212/175/330 1836 + f 213/179/331 211/174/331 177/178/331 1837 + f 213/179/332 214/180/332 211/174/332 1838 + f 172/181/333 214/180/333 213/179/333 1839 + f 169/182/334 215/183/334 214/180/334 1840 + f 215/183/335 169/182/335 168/184/335 1841 + f 215/183/336 168/184/336 216/185/336 1842 + f 216/185/337 217/186/337 215/183/337 1843 + f 216/185/338 209/170/338 217/186/338 1844 + f 216/185/339 208/169/339 209/170/339 1845 + f 216/185/340 218/187/340 208/169/340 1846 + f 218/187/341 216/185/341 168/184/341 1847 + f 218/187/342 168/184/342 167/188/342 1848 + f 167/188/343 219/189/343 218/187/343 1849 + f 207/168/344 218/187/344 219/189/344 1850 + f 220/190/345 207/168/345 219/189/345 1851 + f 220/190/346 159/133/346 207/168/346 1852 + f 159/133/347 158/132/347 207/168/347 1853 + f 207/168/348 208/169/348 218/187/348 1854 + f 178/177/349 190/176/349 149/191/349 1855 + f 150/155/350 149/151/350 185/153/350 1856 + f 82/74/351 74/76/351 221/192/351 1857 + f 221/192/352 183/193/352 82/74/352 1858 + f 221/192/353 182/194/353 183/193/353 1859 + f 221/192/354 179/193/354 182/194/354 1860 + f 221/192/355 72/74/355 179/193/355 1861 + f 72/74/356 221/192/356 74/76/356 1862 + f 70/72/357 175/81/357 72/74/357 1863 + f 68/70/358 175/81/358 70/72/358 1864 + f 68/70/359 171/82/359 175/81/359 1865 + f 68/70/360 165/195/360 171/82/360 1866 + f 68/70/361 129/110/361 165/195/361 1867 + f 67/69/362 129/110/362 68/70/362 1868 + f 86/109/363 165/195/363 129/110/363 1869 + f 86/109/364 88/196/364 165/195/364 1870 + f 161/197/365 222/198/365 223/199/365 1871 + f 222/198/366 161/197/366 224/200/366 1872 + f 161/197/367 159/201/367 224/200/367 1873 + f 225/202/368 162/203/368 161/197/368 1874 + f 225/202/369 220/204/369 162/203/369 1875 + f 220/204/370 225/202/370 223/199/370 1876 + f 220/204/371 223/199/371 226/205/371 1877 + f 226/205/372 223/199/372 222/198/372 1878 + f 225/202/373 161/197/373 223/199/373 1879 + f 163/206/374 227/207/374 164/208/374 1880 + f 227/207/375 163/206/375 228/209/375 1881 + f 228/209/376 229/210/376 227/207/376 1882 + f 228/209/377 230/207/377 229/210/377 1883 + f 228/209/378 219/208/378 230/207/378 1884 + f 228/209/379 163/206/379 219/208/379 1885 + f 219/208/380 167/211/380 230/207/380 1886 + f 230/207/381 167/211/381 231/212/381 1887 + f 230/207/382 231/212/382 229/210/382 1888 + f 229/210/383 231/212/383 227/207/383 1889 + f 231/212/384 164/208/384 227/207/384 1890 + f 164/208/385 231/212/385 167/211/385 1891 + f 220/213/386 222/214/386 224/215/386 1892 + f 222/214/387 220/213/387 226/216/387 1893 + f 220/213/388 224/215/388 159/217/388 1894 + f 84/72/389 82/74/389 87/81/389 1895 + f 82/74/390 183/193/390 87/81/390 1896 + f 163/139/391 220/190/391 219/189/391 1897 + f 162/138/392 220/190/392 163/139/392 1898 + f 174/197/393 232/199/393 233/198/393 1899 + f 233/198/394 234/200/394 174/197/394 1900 + f 174/197/395 234/200/395 177/201/395 1901 + f 235/202/396 174/197/396 173/203/396 1902 + f 235/202/397 173/203/397 213/204/397 1903 + f 213/204/398 232/199/398 235/202/398 1904 + f 213/204/399 236/205/399 232/199/399 1905 + f 236/205/400 233/198/400 232/199/400 1906 + f 235/202/401 232/199/401 174/197/401 1907 + f 172/206/402 170/208/402 237/207/402 1908 + f 237/207/403 238/209/403 172/206/403 1909 + f 238/209/404 237/207/404 239/210/404 1910 + f 238/209/405 239/210/405 240/207/405 1911 + f 238/209/406 240/207/406 214/208/406 1912 + f 238/209/407 214/208/407 172/206/407 1913 + f 214/208/408 240/207/408 169/211/408 1914 + f 240/207/409 241/212/409 169/211/409 1915 + f 240/207/410 239/210/410 241/212/410 1916 + f 239/210/411 237/207/411 241/212/411 1917 + f 241/212/412 237/207/412 170/208/412 1918 + f 170/208/413 169/211/413 241/212/413 1919 + f 213/213/414 234/215/414 233/214/414 1920 + f 233/214/415 236/216/415 213/213/415 1921 + f 213/213/416 177/217/416 234/215/416 1922 + f 72/74/417 175/81/417 179/193/417 1923 + f 173/138/418 172/139/418 213/190/418 1924 + f 209/170/419 210/171/419 217/186/419 1925 + f 210/171/420 211/174/420 217/186/420 1926 + f 211/174/421 215/183/421 217/186/421 1927 + f 211/174/422 214/180/422 215/183/422 1928 + f 242/218/423 85/219/423 90/220/423 1929 + f 90/220/424 92/221/424 242/218/424 1930 + f 92/221/425 105/222/425 242/218/425 1931 + f 243/223/426 242/218/426 105/222/426 1932 + f 117/224/427 243/223/427 105/222/427 1933 + f 243/223/428 117/224/428 244/225/428 1934 + f 244/225/429 245/226/429 243/223/429 1935 + f 245/226/430 244/225/430 246/227/430 1936 + f 245/226/431 246/227/431 247/228/431 1937 + f 245/226/432 247/228/432 248/229/432 1938 + f 243/223/433 245/226/433 248/229/433 1939 + f 242/218/434 243/223/434 248/229/434 1940 + f 248/229/435 83/230/435 242/218/435 1941 + f 81/231/436 83/230/436 248/229/436 1942 + f 247/228/437 81/231/437 248/229/437 1943 + f 249/226/438 81/231/438 247/228/438 1944 + f 81/231/439 249/226/439 80/232/439 1945 + f 79/233/440 80/232/440 249/226/440 1946 + f 244/225/441 79/233/441 249/226/441 1947 + f 244/225/442 249/226/442 250/234/442 1948 + f 244/225/443 250/234/443 246/227/443 1949 + f 250/234/444 251/235/444 246/227/444 1950 + f 250/234/445 252/227/445 251/235/445 1951 + f 250/234/446 249/226/446 252/227/446 1952 + f 253/236/447 252/227/447 249/226/447 1953 + f 247/228/448 253/236/448 249/226/448 1954 + f 246/227/449 253/236/449 247/228/449 1955 + f 254/237/450 253/236/450 246/227/450 1956 + f 251/235/451 254/237/451 246/227/451 1957 + f 255/238/452 254/237/452 251/235/452 1958 + f 256/239/453 254/237/453 255/238/453 1959 + f 257/240/454 256/239/454 255/238/454 1960 + f 258/241/455 256/239/455 257/240/455 1961 + f 259/242/456 258/241/456 257/240/456 1962 + f 258/241/457 260/243/457 256/239/457 1963 + f 260/243/458 261/244/458 256/239/458 1964 + f 260/243/459 262/245/459 261/244/459 1965 + f 260/243/460 263/246/460 262/245/460 1966 + f 262/245/461 263/246/461 264/243/461 1967 + f 265/244/462 262/245/462 264/243/462 1968 + f 257/239/463 265/244/463 264/243/463 1969 + f 266/237/464 265/244/464 257/239/464 1970 + f 257/239/465 255/238/465 266/237/465 1971 + f 255/238/466 251/235/466 266/237/466 1972 + f 252/227/467 266/237/467 251/235/467 1973 + f 253/236/468 266/237/468 252/227/468 1974 + f 253/236/469 267/247/469 266/237/469 1975 + f 254/237/470 267/247/470 253/236/470 1976 + f 267/247/471 254/237/471 261/244/471 1977 + f 265/248/472 267/247/472 261/244/472 1978 + f 262/245/473 265/248/473 261/244/473 1979 + f 256/239/474 261/244/474 254/237/474 1980 + f 83/230/475 85/219/475 242/218/475 1981 + f 98/53/476 97/56/476 107/45/476 1982 + f 108/52/477 98/53/477 107/45/477 1983 + f 99/54/478 98/53/478 108/52/478 1984 + f 106/46/479 108/52/479 107/45/479 1985 + f 268/249/480 269/250/480 270/87/480 1986 + f 269/250/481 268/249/481 271/251/481 1987 + f 272/252/482 269/250/482 271/251/482 1988 + f 272/252/483 111/86/483 269/250/483 1989 + f 112/87/484 111/86/484 272/252/484 1990 + f 273/249/485 112/87/485 272/252/485 1991 + f 112/87/486 273/249/486 113/88/486 1992 + f 273/249/487 274/253/487 113/88/487 1993 + f 273/249/488 275/254/488 274/253/488 1994 + f 275/254/489 273/249/489 276/255/489 1995 + f 275/254/490 276/255/490 277/256/490 1996 + f 277/256/491 278/257/491 275/254/491 1997 + f 279/258/492 278/257/492 277/256/492 1998 + f 280/259/493 278/257/493 279/258/493 1999 + f 281/260/494 280/259/494 279/258/494 2000 + f 280/259/495 282/261/495 278/257/495 2001 + f 282/261/496 283/262/496 278/257/496 2002 + f 283/262/497 282/261/497 284/263/497 2003 + f 283/262/498 284/263/498 285/264/498 2004 + f 283/262/499 285/264/499 286/265/499 2005 + f 275/254/500 283/262/500 286/265/500 2006 + f 278/257/501 283/262/501 275/254/501 2007 + f 275/254/502 286/265/502 274/253/502 2008 + f 274/253/503 286/265/503 287/254/503 2009 + f 274/253/504 287/254/504 268/249/504 2010 + f 270/87/505 274/253/505 268/249/505 2011 + f 270/87/506 113/88/506 274/253/506 2012 + f 113/88/507 270/87/507 114/83/507 2013 + f 270/87/508 110/266/508 114/83/508 2014 + f 110/266/509 270/87/509 111/86/509 2015 + f 270/87/510 269/250/510 111/86/510 2016 + f 287/254/511 277/256/511 276/255/511 2017 + f 279/257/512 277/256/512 287/254/512 2018 + f 285/262/513 279/257/513 287/254/513 2019 + f 286/265/514 285/262/514 287/254/514 2020 + f 288/261/515 285/262/515 284/263/515 2021 + f 285/262/516 288/261/516 279/257/516 2022 + f 288/261/517 281/259/517 279/257/517 2023 + f 289/267/518 288/261/518 284/263/518 2024 + f 282/261/519 289/267/519 284/263/519 2025 + f 273/249/520 271/251/520 276/255/520 2026 + f 271/251/521 273/249/521 272/252/521 2027 + f 271/251/522 268/249/522 287/254/522 2028 + f 276/255/523 271/251/523 287/254/523 2029 + f 281/268/524 288/269/524 289/270/524 2030 + f 280/271/524 281/268/524 289/270/524 2031 + f 280/271/524 289/270/524 282/272/524 2032 + f 259/268/524 264/269/524 263/270/524 2033 + f 259/268/524 263/270/524 258/271/524 2034 + f 263/270/524 260/272/524 258/271/524 2035 + f 266/237/525 267/247/525 265/244/525 2036 + f 244/225/526 117/224/526 79/233/526 2037 + f 290/273/527 291/274/527 292/275/527 2038 + f 290/273/528 292/275/528 293/276/528 2039 + f 293/276/529 294/277/529 290/273/529 2040 + f 293/276/530 295/278/530 294/277/530 2041 + f 292/275/531 295/278/531 293/276/531 2042 + f 296/279/532 295/278/532 292/275/532 2043 + f 297/280/533 295/278/533 296/279/533 2044 + f 298/276/534 295/278/534 297/280/534 2045 + f 294/277/535 295/278/535 298/276/535 2046 + f 294/277/536 298/276/536 299/281/536 2047 + f 294/277/537 299/281/537 290/273/537 2048 + f 299/281/538 298/276/538 300/282/538 2049 + f 298/276/539 297/280/539 300/282/539 2050 + f 297/280/540 296/279/540 300/282/540 2051 + f 296/279/541 291/274/541 300/282/541 2052 + f 291/274/542 296/279/542 292/275/542 2053 + f 291/283/543 290/284/543 301/285/543 2054 + f 291/283/544 301/285/544 302/286/544 2055 + f 303/287/545 291/283/545 302/286/545 2056 + f 303/287/546 302/286/546 304/288/546 2057 + f 303/287/547 304/288/547 305/289/547 2058 + f 303/287/548 305/289/548 306/288/548 2059 + f 303/287/549 306/288/549 307/286/549 2060 + f 303/287/550 307/286/550 308/283/550 2061 + f 303/287/551 308/283/551 309/290/551 2062 + f 309/290/552 310/291/552 303/287/552 2063 + f 311/292/553 310/291/553 309/290/553 2064 + f 312/293/554 310/291/554 311/292/554 2065 + f 312/293/555 299/292/555 310/291/555 2066 + f 312/293/556 116/91/556 299/292/556 2067 + f 116/91/557 312/293/557 78/80/557 2068 + f 313/91/558 78/80/558 312/293/558 2069 + f 312/293/559 311/292/559 313/91/559 2070 + f 311/292/560 314/284/560 313/91/560 2071 + f 314/284/561 315/90/561 313/91/561 2072 + f 314/284/562 316/285/562 315/90/562 2073 + f 308/283/563 316/285/563 314/284/563 2074 + f 308/283/564 307/286/564 316/285/564 2075 + f 316/285/565 317/294/565 315/90/565 2076 + f 318/295/566 317/294/566 316/285/566 2077 + f 319/296/567 317/294/567 318/295/567 2078 + f 319/296/568 318/295/568 320/297/568 2079 + f 321/298/569 319/296/569 320/297/569 2080 + f 321/298/570 320/297/570 322/296/570 2081 + f 321/298/571 322/296/571 110/299/571 2082 + f 48/300/572 321/298/572 110/299/572 2083 + f 48/300/573 323/299/573 321/298/573 2084 + f 321/298/574 323/299/574 319/296/574 2085 + f 319/296/575 323/299/575 317/294/575 2086 + f 317/294/576 323/299/576 324/301/576 2087 + f 317/294/577 324/301/577 315/90/577 2088 + f 324/301/578 325/84/578 315/90/578 2089 + f 315/90/579 325/84/579 59/61/579 2090 + f 59/61/580 313/91/580 315/90/580 2091 + f 60/62/581 313/91/581 59/61/581 2092 + f 60/62/582 78/80/582 313/91/582 2093 + f 77/79/583 78/80/583 60/62/583 2094 + f 77/79/584 60/62/584 326/92/584 2095 + f 60/62/585 61/63/585 326/92/585 2096 + f 299/292/586 116/91/586 290/284/586 2097 + f 290/284/587 116/91/587 115/90/587 2098 + f 290/284/588 115/90/588 301/285/588 2099 + f 301/285/589 115/90/589 327/294/589 2100 + f 328/295/590 301/285/590 327/294/590 2101 + f 322/296/591 328/295/591 327/294/591 2102 + f 322/296/592 320/297/592 328/295/592 2103 + f 328/295/593 320/297/593 305/289/593 2104 + f 304/288/594 328/295/594 305/289/594 2105 + f 318/295/595 305/289/595 320/297/595 2106 + f 306/288/596 305/289/596 318/295/596 2107 + f 301/302/597 328/274/597 329/280/597 2108 + f 301/302/598 329/280/598 330/276/598 2109 + f 330/276/599 331/277/599 301/302/599 2110 + f 330/276/600 332/278/600 331/277/600 2111 + f 329/280/601 332/278/601 330/276/601 2112 + f 333/279/602 332/278/602 329/280/602 2113 + f 334/303/603 332/278/603 333/279/603 2114 + f 335/276/604 332/278/604 334/303/604 2115 + f 331/277/605 332/278/605 335/276/605 2116 + f 331/277/606 335/276/606 302/281/606 2117 + f 331/277/607 302/281/607 301/302/607 2118 + f 302/281/608 335/276/608 304/282/608 2119 + f 335/276/609 334/303/609 304/282/609 2120 + f 334/303/610 333/279/610 304/282/610 2121 + f 333/279/611 328/274/611 304/282/611 2122 + f 328/274/612 333/279/612 329/280/612 2123 + f 299/292/613 300/290/613 310/291/613 2124 + f 300/290/614 303/287/614 310/291/614 2125 + f 303/287/615 300/290/615 291/283/615 2126 + f 257/239/616 264/243/616 259/241/616 2127 + f 336/301/617 115/90/617 101/84/617 2128 + f 327/294/618 115/90/618 336/301/618 2129 + f 327/294/619 336/301/619 110/299/619 2130 + f 322/296/620 327/294/620 110/299/620 2131 + f 126/105/621 91/98/621 89/108/621 2132 + f 126/105/622 120/99/622 91/98/622 2133 + f 337/218/623 64/220/623 69/219/623 2134 + f 64/220/624 337/218/624 62/221/624 2135 + f 62/221/625 337/218/625 61/222/625 2136 + f 338/223/626 61/222/626 337/218/626 2137 + f 326/224/627 61/222/627 338/223/627 2138 + f 338/223/628 339/225/628 326/224/628 2139 + f 339/225/629 338/223/629 340/226/629 2140 + f 340/226/630 341/227/630 339/225/630 2141 + f 340/226/631 342/228/631 341/227/631 2142 + f 340/226/632 343/229/632 342/228/632 2143 + f 338/223/633 343/229/633 340/226/633 2144 + f 337/218/634 343/229/634 338/223/634 2145 + f 343/229/635 337/218/635 71/230/635 2146 + f 73/231/636 343/229/636 71/230/636 2147 + f 342/228/637 343/229/637 73/231/637 2148 + f 344/226/638 342/228/638 73/231/638 2149 + f 73/231/639 76/232/639 344/226/639 2150 + f 77/233/640 344/226/640 76/232/640 2151 + f 339/225/641 344/226/641 77/233/641 2152 + f 339/225/642 345/234/642 344/226/642 2153 + f 339/225/643 341/227/643 345/234/643 2154 + f 345/234/644 341/227/644 346/235/644 2155 + f 345/234/645 346/235/645 347/227/645 2156 + f 345/234/646 347/227/646 344/226/646 2157 + f 348/236/647 344/226/647 347/227/647 2158 + f 342/228/648 344/226/648 348/236/648 2159 + f 341/227/649 342/228/649 348/236/649 2160 + f 349/237/650 341/227/650 348/236/650 2161 + f 346/235/651 341/227/651 349/237/651 2162 + f 350/238/652 346/235/652 349/237/652 2163 + f 351/239/653 350/238/653 349/237/653 2164 + f 352/240/654 350/238/654 351/239/654 2165 + f 352/240/655 351/239/655 353/241/655 2166 + f 354/242/656 352/240/656 353/241/656 2167 + f 353/241/657 351/239/657 355/243/657 2168 + f 355/243/658 351/239/658 356/244/658 2169 + f 355/243/659 356/244/659 357/245/659 2170 + f 355/243/660 357/245/660 358/246/660 2171 + f 357/245/661 359/243/661 358/246/661 2172 + f 360/244/662 359/243/662 357/245/662 2173 + f 352/239/663 359/243/663 360/244/663 2174 + f 361/237/664 352/239/664 360/244/664 2175 + f 352/239/665 361/237/665 350/238/665 2176 + f 350/238/666 361/237/666 346/235/666 2177 + f 347/227/667 346/235/667 361/237/667 2178 + f 348/236/668 347/227/668 361/237/668 2179 + f 348/236/669 361/237/669 362/247/669 2180 + f 349/237/670 348/236/670 362/247/670 2181 + f 362/247/671 356/244/671 349/237/671 2182 + f 360/248/672 356/244/672 362/247/672 2183 + f 357/245/673 356/244/673 360/248/673 2184 + f 351/239/674 349/237/674 356/244/674 2185 + f 71/230/675 337/218/675 69/219/675 2186 + f 56/58/676 363/83/676 53/55/676 2187 + f 56/58/677 325/84/677 363/83/677 2188 + f 56/58/678 59/61/678 325/84/678 2189 + f 364/89/679 363/83/679 325/84/679 2190 + f 365/88/680 363/83/680 364/89/680 2191 + f 363/83/681 365/88/681 366/87/681 2192 + f 366/87/682 52/54/682 363/83/682 2193 + f 52/54/683 366/87/683 367/86/683 2194 + f 367/86/684 50/52/684 52/54/684 2195 + f 49/51/685 50/52/685 367/86/685 2196 + f 49/51/686 367/86/686 323/85/686 2197 + f 323/85/687 48/50/687 49/51/687 2198 + f 368/249/688 369/87/688 370/250/688 2199 + f 370/250/689 371/251/689 368/249/689 2200 + f 372/252/690 371/251/690 370/250/690 2201 + f 372/252/691 370/250/691 367/86/691 2202 + f 366/87/692 372/252/692 367/86/692 2203 + f 373/249/693 372/252/693 366/87/693 2204 + f 366/87/694 365/88/694 373/249/694 2205 + f 373/249/695 365/88/695 374/253/695 2206 + f 373/249/696 374/253/696 375/254/696 2207 + f 375/254/697 376/255/697 373/249/697 2208 + f 375/254/698 377/256/698 376/255/698 2209 + f 377/256/699 375/254/699 378/257/699 2210 + f 379/258/700 377/256/700 378/257/700 2211 + f 379/258/701 378/257/701 380/259/701 2212 + f 381/260/702 379/258/702 380/259/702 2213 + f 380/259/703 378/257/703 382/261/703 2214 + f 382/261/704 378/257/704 383/262/704 2215 + f 383/262/705 384/263/705 382/261/705 2216 + f 383/262/706 385/264/706 384/263/706 2217 + f 383/262/707 386/265/707 385/264/707 2218 + f 375/254/708 386/265/708 383/262/708 2219 + f 378/257/709 375/254/709 383/262/709 2220 + f 375/254/710 374/253/710 386/265/710 2221 + f 374/253/711 387/254/711 386/265/711 2222 + f 374/253/712 368/249/712 387/254/712 2223 + f 369/87/713 368/249/713 374/253/713 2224 + f 369/87/714 374/253/714 365/88/714 2225 + f 365/88/715 364/83/715 369/87/715 2226 + f 369/87/716 364/83/716 323/266/716 2227 + f 323/266/717 367/86/717 369/87/717 2228 + f 369/87/718 367/86/718 370/250/718 2229 + f 387/254/719 376/255/719 377/256/719 2230 + f 379/257/720 387/254/720 377/256/720 2231 + f 385/262/721 387/254/721 379/257/721 2232 + f 386/265/722 387/254/722 385/262/722 2233 + f 371/251/723 387/254/723 368/249/723 2234 + f 376/255/724 387/254/724 371/251/724 2235 + f 373/249/725 376/255/725 371/251/725 2236 + f 371/251/726 372/252/726 373/249/726 2237 + f 381/268/524 388/270/524 389/269/524 2238 + f 380/271/524 388/270/524 381/268/524 2239 + f 380/271/524 382/272/524 388/270/524 2240 + f 354/268/524 358/270/524 359/269/524 2241 + f 354/268/524 353/271/524 358/270/524 2242 + f 358/270/524 353/271/524 355/272/524 2243 + f 361/237/727 360/244/727 362/247/727 2244 + f 339/225/728 77/233/728 326/224/728 2245 + f 314/273/729 390/275/729 308/274/729 2246 + f 314/273/730 391/276/730 390/275/730 2247 + f 391/276/731 314/273/731 392/277/731 2248 + f 391/276/732 392/277/732 393/278/732 2249 + f 390/275/733 391/276/733 393/278/733 2250 + f 394/279/734 390/275/734 393/278/734 2251 + f 395/280/735 394/279/735 393/278/735 2252 + f 396/276/736 395/280/736 393/278/736 2253 + f 392/277/737 396/276/737 393/278/737 2254 + f 392/277/738 311/281/738 396/276/738 2255 + f 392/277/739 314/273/739 311/281/739 2256 + f 311/281/740 309/282/740 396/276/740 2257 + f 396/276/741 309/282/741 395/280/741 2258 + f 395/280/742 309/282/742 394/279/742 2259 + f 394/279/743 309/282/743 308/274/743 2260 + f 308/274/744 390/275/744 394/279/744 2261 + f 316/302/745 397/280/745 318/274/745 2262 + f 316/302/746 398/276/746 397/280/746 2263 + f 398/276/747 316/302/747 399/277/747 2264 + f 398/276/748 399/277/748 400/278/748 2265 + f 397/280/749 398/276/749 400/278/749 2266 + f 401/279/750 397/280/750 400/278/750 2267 + f 402/303/751 401/279/751 400/278/751 2268 + f 403/276/752 402/303/752 400/278/752 2269 + f 399/277/753 403/276/753 400/278/753 2270 + f 399/277/754 307/281/754 403/276/754 2271 + f 399/277/755 316/302/755 307/281/755 2272 + f 307/281/756 306/282/756 403/276/756 2273 + f 403/276/757 306/282/757 402/303/757 2274 + f 402/303/758 306/282/758 401/279/758 2275 + f 401/279/759 306/282/759 318/274/759 2276 + f 318/274/760 397/280/760 401/279/760 2277 + f 65/67/761 69/71/761 64/66/761 2278 + f 363/83/762 52/54/762 53/55/762 2279 + f 389/261/763 384/263/763 385/262/763 2280 + f 385/262/764 379/257/764 389/261/764 2281 + f 389/261/765 379/257/765 381/259/765 2282 + f 388/267/766 384/263/766 389/261/766 2283 + f 382/261/767 384/263/767 388/267/767 2284 + f 352/239/768 354/241/768 359/243/768 2285 + f 157/131/769 155/129/769 206/156/769 2286 + f 156/130/770 204/166/770 155/129/770 2287 + f 156/130/771 186/304/771 204/166/771 2288 + f 186/304/772 203/165/772 204/166/772 2289 + f 186/304/773 404/166/773 203/165/773 2290 + f 188/130/774 404/166/774 186/304/774 2291 + f 188/130/775 189/129/775 404/166/775 2292 + f 405/167/776 404/166/776 189/129/776 2293 + f 405/167/777 189/129/777 191/156/777 2294 + f 406/164/778 405/167/778 191/156/778 2295 + f 406/164/779 191/156/779 193/158/779 2296 + f 201/163/780 406/164/780 193/158/780 2297 + f 201/163/781 193/158/781 195/160/781 2298 + f 203/165/782 406/164/782 201/163/782 2299 + f 404/166/783 406/164/783 203/165/783 2300 + f 404/166/784 405/167/784 406/164/784
public/cow_texture.png

This is a binary file and will not be displayed.

public/moo.wav

This is a binary file and will not be displayed.

public/pat.webp

This is a binary file and will not be displayed.

public/rat-squeak.mp3

This is a binary file and will not be displayed.

+22
src/components/BandcampWishlist.astro
··· 1 + --- 2 + import { Link } from "@/components"; 3 + --- 4 + 5 + <Link 6 + class="bandcamp-wishlist" 7 + href="https://bandcamp.com/claycow/wishlist" 8 + target="_blank" 9 + > 10 + <iconify-icon icon={"fa6-brands:bandcamp"} height={"1rem"}></iconify-icon> 11 + Bandcamp Wishlist 12 + </Link> 13 + 14 + <style> 15 + .bandcamp-wishlist { 16 + background-color: var(--sapphire); 17 + border-radius: 4px; 18 + color: var(--base); 19 + padding: 0.25rem 0.5rem; 20 + text-decoration: none; 21 + } 22 + </style>
+82
src/components/BlogPreviewCard.astro
··· 1 + --- 2 + import { formatDate } from "@/utils"; 3 + import formatBlogTitleUrl from "@/utils/formatBlogTitleUrl"; 4 + import { Image } from "astro:assets"; 5 + import type { CollectionEntry } from "astro:content"; 6 + 7 + type Props = CollectionEntry<"blog">["data"]; 8 + 9 + const { 10 + title, 11 + description, 12 + image = { 13 + src: "/blog-placeholder.jpg", 14 + alt: "A teal, gradient background", 15 + }, 16 + date, 17 + updatedDate, 18 + } = Astro.props; 19 + --- 20 + 21 + <a class="blog-preivew-card" href={`/blog/${formatBlogTitleUrl(title)}/`}> 22 + <Image 23 + class={"hero-image"} 24 + src={image.src} 25 + alt={image.alt} 26 + width={1020} 27 + height={510} 28 + loading={"lazy"} 29 + /> 30 + <h4 class="title">{title}</h4> 31 + <p class="description">{description}</p> 32 + <p class="date"> 33 + <span class="published"> 34 + Published on {formatDate(date)} 35 + </span> 36 + { 37 + updatedDate && ( 38 + <span class="last-updated"> 39 + (Last updated on {formatDate(updatedDate)}) 40 + </span> 41 + ) 42 + } 43 + </p> 44 + </a> 45 + 46 + <style> 47 + .blog-preivew-card { 48 + display: flex; 49 + flex-direction: column; 50 + color: var(--text); 51 + text-decoration: none; 52 + } 53 + 54 + .hero-image { 55 + object-fit: cover; 56 + } 57 + 58 + .title { 59 + text-decoration: underline; 60 + margin-bottom: 0.25rem; 61 + } 62 + 63 + .blog-preivew-card > img { 64 + object-fit: cover; 65 + } 66 + 67 + .date { 68 + display: flex; 69 + flex-direction: row; 70 + flex-wrap: wrap; 71 + gap: 0.5rem; 72 + font-size: x-small; 73 + } 74 + 75 + .published { 76 + flex-grow: 1; 77 + } 78 + 79 + .last-updated { 80 + color: var(--red); 81 + } 82 + </style>
+149
src/components/BlueskyComments.svelte
··· 1 + <script lang="ts"> 2 + import { formatDate } from '@/utils'; 3 + import getBlogPostComments from '@/utils/getBlogPostComments'; 4 + 5 + interface Props { 6 + blogTitle: string; 7 + } 8 + 9 + let { blogTitle }: Props = $props(); 10 + 11 + const comments = getBlogPostComments(blogTitle); 12 + </script> 13 + 14 + <section class="bluesky-comments"> 15 + <h2>Comments ๐Ÿ—ฃ๏ธ</h2> 16 + 17 + {#await comments} 18 + <p>Loading comments... โฐ</p> 19 + {:then comments} 20 + {#each comments as comment} 21 + <article aria-labelledby="{comment.cid}-author"> 22 + <header> 23 + <h2 class="author" id="{comment.cid}-author"> 24 + <a 25 + href={comment.authorUrl} 26 + rel="noopener noreferrer" 27 + target="_blank" 28 + aria-label="{comment.displayName}'s profile on Bluesky" 29 + > 30 + {comment.displayName} 31 + <span class="handle">(@{comment.handle})</span> 32 + </a> 33 + <time 34 + class="time" 35 + aria-label="Commented on" 36 + datetime={comment.createdAt} 37 + > 38 + {formatDate(new Date(comment.createdAt))} 39 + </time> 40 + </h2> 41 + </header> 42 + <p>{comment.text}</p> 43 + <footer class="counts"> 44 + <p class="likes"> 45 + <iconify-icon 46 + icon={'fa6-solid:heart'} 47 + height={'1rem'} 48 + ></iconify-icon> 49 + {comment.likeCount} Likes 50 + </p> 51 + <p class="replies"> 52 + <iconify-icon 53 + icon={'fa6-solid:comment'} 54 + height={'1rem'} 55 + ></iconify-icon> 56 + {comment.replyCount} Replies 57 + </p> 58 + <p class="replies"> 59 + <iconify-icon 60 + icon={'fa6-solid:repeat'} 61 + height={'1rem'} 62 + ></iconify-icon> 63 + {comment.replyCount} Quotes 64 + </p> 65 + <a href={comment.postUrl} rel="noopener noreferrer" target="_blank"> 66 + <iconify-icon 67 + icon={'fa6-solid:link'} 68 + height={'1rem'} 69 + ></iconify-icon> 70 + Link to Comment 71 + </a> 72 + </footer> 73 + </article> 74 + {:else} 75 + <p>No comments just yet ๐Ÿ„</p> 76 + {/each} 77 + {:catch} 78 + <div> 79 + <p>There was an error getting the comments! โš ๏ธ</p> 80 + <p> 81 + Please <a href="mailto:me@claycow.com">reach out</a> 82 + if this persists. โค๏ธ 83 + </p> 84 + </div> 85 + {/await} 86 + </section> 87 + 88 + <style> 89 + .bluesky-comments { 90 + display: flex; 91 + flex-direction: column; 92 + gap: 1rem; 93 + } 94 + 95 + article { 96 + display: flex; 97 + flex-direction: column; 98 + gap: 1rem; 99 + background-color: var(--surface0); 100 + padding: 1rem; 101 + border-radius: 0.5rem; 102 + } 103 + 104 + .author { 105 + display: flex; 106 + flex-direction: row; 107 + font-size: medium; 108 + } 109 + 110 + .author > a { 111 + flex-grow: 1; 112 + text-decoration: none; 113 + color: var(--text); 114 + } 115 + 116 + .author > a > .handle { 117 + color: var(--subtext0); 118 + } 119 + 120 + .author > .time { 121 + color: var(--subtext0); 122 + font-size: x-small; 123 + } 124 + 125 + footer { 126 + display: flex; 127 + flex-direction: row; 128 + gap: 2rem; 129 + } 130 + 131 + footer > p, 132 + footer > a { 133 + display: flex; 134 + flex-direction: row; 135 + align-items: center; 136 + gap: 0.5rem; 137 + text-decoration: none; 138 + color: var(--text); 139 + } 140 + 141 + footer > a { 142 + margin-left: auto; 143 + } 144 + 145 + h2, 146 + p { 147 + margin: 0; 148 + } 149 + </style>
+27
src/components/Button.svelte
··· 1 + <script lang="ts"> 2 + import type { HTMLButtonAttributes } from "svelte/elements"; 3 + 4 + interface Props extends HTMLButtonAttributes {}; 5 + 6 + let { children, ...props }: Props = $props(); 7 + </script> 8 + 9 + <button {...props}> 10 + {@render children?.()} 11 + </button> 12 + 13 + <style> 14 + button { 15 + display: flex; 16 + gap: 0.5rem; 17 + color: var(--text); 18 + text-decoration: none; 19 + background: none; 20 + border: none; 21 + cursor: pointer; 22 + } 23 + 24 + button:hover { 25 + filter: brightness(1.1); 26 + } 27 + </style>
+43
src/components/Footer.astro
··· 1 + --- 2 + import { BLUESKY_LINK, TANGLED_SH_LINK, SIGNAL_LINK } from "@/consts"; 3 + import { Link } from "@/components"; 4 + 5 + const today = new Date(); 6 + --- 7 + 8 + <footer> 9 + <div class="social-links"> 10 + <Link href={BLUESKY_LINK} target="_blank"> 11 + <span class="sr-only">Follow on Bluesky</span> 12 + <iconify-icon icon={"fa6-brands:bluesky"} height={"2rem"}></iconify-icon> 13 + </Link> 14 + <Link href={TANGLED_SH_LINK} target="_blank"> 15 + <span class="sr-only">Follow on Tangled.sh</span> 16 + <iconify-icon icon={"fa6-brands:git-alt"} height={"2rem"}></iconify-icon> 17 + </Link> 18 + <Link href={SIGNAL_LINK} target="_blank"> 19 + <span class="sr-only">Follow on Signal</span> 20 + <iconify-icon icon={"fa6-brands:signal-messenger"} height={"2rem"} 21 + ></iconify-icon> 22 + </Link> 23 + </div> 24 + &copy; {today.getFullYear()} ClayCow. All rights reserved. 25 + </footer> 26 + 27 + <style> 28 + footer { 29 + display: flex; 30 + flex-direction: column; 31 + align-items: center; 32 + justify-self: flex-end; 33 + gap: 1rem; 34 + padding: 1rem 0; 35 + margin-top: 2rem; 36 + } 37 + 38 + .social-links { 39 + display: flex; 40 + justify-content: center; 41 + gap: 1rem; 42 + } 43 + </style>
+89
src/components/Head.astro
··· 1 + --- 2 + // Import the global.css file here so that it is included on 3 + // all pages through the use of the <BaseHead /> component. 4 + import "@/styles/global.css"; 5 + import type { CollectionEntry } from "astro:content"; 6 + 7 + interface Props { 8 + title: string; 9 + description: string; 10 + // image?: CollectionEntry<"gallery">["data"]["image"]; 11 + } 12 + 13 + const canonicalURL = new URL(Astro.url.pathname, Astro.site); 14 + 15 + const { 16 + title, 17 + description, 18 + // image 19 + } = Astro.props; 20 + --- 21 + 22 + <!-- Global Metadata --> 23 + <meta charset="utf-8" /> 24 + <meta name="viewport" content="width=device-width,initial-scale=1" /> 25 + <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 26 + <meta name="generator" content={Astro.generator} /> 27 + 28 + <!-- Font preloads --> 29 + <link 30 + rel="preload" 31 + href="/fonts/atkinson-regular.woff" 32 + as="font" 33 + type="font/woff" 34 + crossorigin 35 + /> 36 + <link 37 + rel="preload" 38 + href="/fonts/atkinson-bold.woff" 39 + as="font" 40 + type="font/woff" 41 + crossorigin 42 + /> 43 + 44 + <!-- Canonical URL --> 45 + <link rel="canonical" href={canonicalURL} /> 46 + 47 + <script src="https://code.iconify.design/iconify-icon/2.2.0/iconify-icon.min.js" 48 + ></script> 49 + 50 + <!-- Primary Meta Tags --> 51 + <title>{title}</title> 52 + <meta name="title" content={title} /> 53 + <meta name="description" content={description} /> 54 + 55 + <!-- Open Graph / Facebook --> 56 + <meta property="og:type" content="website" /> 57 + <meta property="og:url" content={Astro.site} /> 58 + <meta property="og:title" content={title} /> 59 + <meta property="og:description" content={description} /> 60 + <meta property="og:site_name" content="claycow" /> 61 + <!-- { 62 + image && ( 63 + <meta property="og:image" content={new URL(image.src, Astro.site)} /> 64 + <meta property="og:image:url" content={new URL(image.src, Astro.site)} /> 65 + <meta property="og:image:type" content={`image/${image.format}`} /> 66 + <meta property="og:image:width" content={image.width.toString()} /> 67 + <meta property="og:image:height" content={image.height.toString()} /> 68 + <meta property="og:image:alt" content={description} /> 69 + ) 70 + } --> 71 + 72 + <!-- Twitter --> 73 + <meta property="twitter:card" content="summary_large_image" /> 74 + <meta property="twitter:url" content={Astro.site} /> 75 + <meta property="twitter:title" content={title} /> 76 + <meta property="twitter:description" content={description} /> 77 + <meta property="twitter:site" content="claycow" /> 78 + <!-- { 79 + image && ( 80 + <meta 81 + property="twitter:image" 82 + content={new URL(image.src, Astro.site)} 83 + /> 84 + <meta 85 + property="twitter:image:alt" 86 + content={description} 87 + /> 88 + ) 89 + } -->
+22
src/components/LiberaPayDonate.astro
··· 1 + --- 2 + import { Link } from "@/components"; 3 + --- 4 + 5 + <Link 6 + class="libera-pay-donate" 7 + href="https://liberapay.com/claycow/donate" 8 + target="_blank" 9 + > 10 + <iconify-icon icon={"simple-icons:liberapay"} height={"1rem"}></iconify-icon> 11 + Donate 12 + </Link> 13 + 14 + <style> 15 + .libera-pay-donate { 16 + background-color: var(--yellow); 17 + border-radius: 4px; 18 + color: var(--base); 19 + padding: 0.25rem 0.5rem; 20 + text-decoration: none; 21 + } 22 + </style>
+20
src/components/Link.astro
··· 1 + --- 2 + const { ...props } = Astro.props; 3 + --- 4 + 5 + <a {...props}> 6 + <slot /> 7 + </a> 8 + 9 + <style> 10 + a { 11 + display: flex; 12 + align-items: center; 13 + gap: 8px; 14 + color: var(--text); 15 + } 16 + 17 + a:hover { 18 + filter: brightness(1.1); 19 + } 20 + </style>
+80
src/components/Navigation.astro
··· 1 + --- 2 + import { Link } from '@/components'; 3 + --- 4 + 5 + <script> 6 + const homeLink = document.querySelector<HTMLAnchorElement>('a[href="/"]'); 7 + const mooAudio = document.querySelector<HTMLAudioElement>('audio#moo'); 8 + 9 + homeLink?.addEventListener('click', (event) => { 10 + event.preventDefault(); 11 + 12 + const anchor = event.target as HTMLAnchorElement; 13 + 14 + if (!mooAudio) { 15 + window.location.href = anchor.href; 16 + return; 17 + } 18 + 19 + mooAudio.currentTime = 0; 20 + mooAudio?.addEventListener( 21 + 'ended', 22 + function () { 23 + window.location.href = anchor.href; 24 + }, 25 + { 26 + once: true, 27 + } 28 + ); 29 + mooAudio?.play(); 30 + }); 31 + </script> 32 + 33 + <audio id="moo"> 34 + <source src="/moo.wav" type="audio/wav" /> 35 + </audio> 36 + <nav> 37 + <ol> 38 + <li> 39 + <Link href="/"> 40 + <span class="sr-only">Go to the home page</span> 41 + ๐Ÿ„ 42 + </Link> 43 + </li> 44 + <li> 45 + <Link href="/blog">Blog</Link> 46 + </li> 47 + </ol> 48 + </nav> 49 + 50 + <style> 51 + nav { 52 + display: flex; 53 + flex-direction: column; 54 + } 55 + 56 + nav > ol { 57 + list-style: none; 58 + display: flex; 59 + align-items: center; 60 + flex-direction: row; 61 + gap: 1rem; 62 + padding: 0; 63 + } 64 + 65 + nav > ol > li > a { 66 + display: flex; 67 + flex-direction: row; 68 + align-items: center; 69 + height: 1ch; 70 + } 71 + 72 + nav > ol > li:first-child { 73 + flex-grow: 1; 74 + font-size: large; 75 + } 76 + 77 + nav > ol > li:first-child > a { 78 + text-decoration: none; 79 + } 80 + </style>
-27
src/components/atoms/Button.svelte
··· 1 - <script lang="ts"> 2 - import type { HTMLButtonAttributes } from "svelte/elements"; 3 - 4 - interface Props extends HTMLButtonAttributes {}; 5 - 6 - let { children, ...props }: Props = $props(); 7 - </script> 8 - 9 - <button {...props}> 10 - {@render children?.()} 11 - </button> 12 - 13 - <style> 14 - button { 15 - display: flex; 16 - gap: 0.5rem; 17 - color: var(--text); 18 - text-decoration: none; 19 - background: none; 20 - border: none; 21 - cursor: pointer; 22 - } 23 - 24 - button:hover { 25 - color: var(--subtext0); 26 - } 27 - </style>
-24
src/components/atoms/Link.svelte
··· 1 - <script lang="ts"> 2 - import type { HTMLAnchorAttributes } from "svelte/elements"; 3 - 4 - interface Props extends HTMLAnchorAttributes {}; 5 - 6 - let { children, ...props }: Props = $props(); 7 - </script> 8 - 9 - <a {...props}> 10 - {@render children?.()} 11 - </a> 12 - 13 - <style> 14 - a { 15 - display: flex; 16 - gap: 0.5rem; 17 - color: var(--text); 18 - text-decoration: none; 19 - } 20 - 21 - a:hover { 22 - color: var(--subtext0); 23 - } 24 - </style>
-2
src/components/atoms/index.ts
··· 1 - export {default as Link} from "./Link.svelte"; 2 - export {default as Button} from "./Button.svelte";
+9
src/components/index.ts
··· 1 + export { default as BandcampWishlist } from './BandcampWishlist.astro'; 2 + export { default as BlogPreviewCard } from './BlogPreviewCard.astro'; 3 + export { default as Footer } from './Footer.astro'; 4 + export { default as Head } from './Head.astro'; 5 + export { default as LiberaPayDonate } from './LiberaPayDonate.astro'; 6 + export { default as Link } from './Link.astro'; 7 + export { default as Navigation } from './Navigation.astro'; 8 + export { default as BlueskyComments } from './BlueskyComments.svelte'; 9 + export { default as Button } from './Button.svelte';
-24
src/components/molecules/ThemeToggle.svelte
··· 1 - <script lang="ts"> 2 - import type { HTMLButtonAttributes } from "svelte/elements"; 3 - import { Button } from "@/components/atoms"; 4 - 5 - interface Props extends HTMLButtonAttributes {} 6 - 7 - let { onclick, ...props }: Props = $props(); 8 - 9 - let isDark = $state(true); 10 - 11 - function onToggleClick() { 12 - isDark = !isDark; 13 - document.body.setAttribute("data-theme", isDark ? "dark" : "light"); 14 - } 15 - </script> 16 - 17 - <Button onclick={onToggleClick} {...props}> 18 - <span class="sr-only">Toggle color palette theme</span> 19 - <iconify-icon 20 - icon={isDark ? "fa6-solid:moon" : "fa6-solid:sun"} 21 - width={32} 22 - height={32} 23 - ></iconify-icon> 24 - </Button>
-1
src/components/molecules/index.ts
··· 1 - export {default as ThemeToggle} from "./ThemeToggle.svelte";
-82
src/components/organisms/BlogPreviewCard.astro
··· 1 - --- 2 - import { formatDate } from "@/utils"; 3 - import formatBlogTitleUrl from "@/utils/formatBlogTitleUrl"; 4 - import { Image } from "astro:assets"; 5 - import type { CollectionEntry } from "astro:content"; 6 - 7 - type Props = CollectionEntry<"blog">["data"]; 8 - 9 - const { 10 - title, 11 - description, 12 - image = { 13 - src: "/blog-placeholder.jpg", 14 - alt: "A teal, gradient background", 15 - }, 16 - date, 17 - updatedDate, 18 - } = Astro.props; 19 - --- 20 - 21 - <a class="blog-preivew-card" href={`/blog/${formatBlogTitleUrl(title)}/`}> 22 - <Image 23 - class={"hero-image"} 24 - src={image.src} 25 - alt={image.alt} 26 - width={1020} 27 - height={510} 28 - loading={"lazy"} 29 - /> 30 - <h4 class="title">{title}</h4> 31 - <p class="description">{description}</p> 32 - <p class="date"> 33 - <span class="published"> 34 - Published on {formatDate(date)} 35 - </span> 36 - { 37 - updatedDate && ( 38 - <span class="last-updated"> 39 - (Last updated on {formatDate(updatedDate)}) 40 - </span> 41 - ) 42 - } 43 - </p> 44 - </a> 45 - 46 - <style> 47 - .blog-preivew-card { 48 - display: flex; 49 - flex-direction: column; 50 - color: var(--text); 51 - text-decoration: none; 52 - } 53 - 54 - .hero-image { 55 - object-fit: cover; 56 - } 57 - 58 - .title { 59 - text-decoration: underline; 60 - margin-bottom: 0.25rem; 61 - } 62 - 63 - .blog-preivew-card > img { 64 - object-fit: cover; 65 - } 66 - 67 - .date { 68 - display: flex; 69 - flex-direction: row; 70 - flex-wrap: wrap; 71 - gap: 0.5rem; 72 - font-size: x-small; 73 - } 74 - 75 - .published { 76 - flex-grow: 1; 77 - } 78 - 79 - .last-updated { 80 - color: var(--red); 81 - } 82 - </style>
-154
src/components/organisms/BlueskyComments.svelte
··· 1 - <script lang="ts"> 2 - import { formatDate } from "@/utils"; 3 - import getBlogPostComments from "@/utils/getBlogPostComments"; 4 - 5 - interface Props { 6 - blogTitle: string; 7 - } 8 - 9 - let { blogTitle }: Props = $props(); 10 - 11 - const comments = getBlogPostComments(blogTitle); 12 - </script> 13 - 14 - <section class="bluesky-comments"> 15 - <h2>Comments ๐Ÿ—ฃ๏ธ</h2> 16 - 17 - {#await comments} 18 - <p>Loading comments... โฐ</p> 19 - {:then comments} 20 - {#each comments as comment} 21 - <article 22 - class="comment" 23 - aria-labelledby="comment-{comment.cid}-author" 24 - > 25 - <header> 26 - <h2 27 - class="comment-author" 28 - id="comment-{comment.cid}-author" 29 - > 30 - <a 31 - href={`https://bsky.app/profile/${comment.author.did}`} 32 - rel="noopener noreferrer" 33 - target="_blank" 34 - aria-label="{comment.author 35 - .displayName}'s profile on Bluesky" 36 - > 37 - {comment.author.displayName} 38 - <span class="handle" 39 - >(@{comment.author.handle})</span 40 - > 41 - </a> 42 - <time 43 - class="comment-time" 44 - aria-label="Commented on" 45 - datetime={comment.record.createdAt} 46 - > 47 - {formatDate(new Date(comment.record.createdAt))} 48 - </time> 49 - </h2> 50 - </header> 51 - <p class="comment-body">{comment.record.text}</p> 52 - <footer class="comment-counts"> 53 - <a 54 - href={`https://bsky.app/profile/${comment.author.did}`} 55 - rel="noopener noreferrer" 56 - target="_blank" 57 - > 58 - <p class="likes"> 59 - <iconify-icon 60 - icon={"fa6-solid:heart"} 61 - height={"1rem"} 62 - ></iconify-icon> 63 - {comment.likeCount} Likes 64 - </p> 65 - <p class="replies"> 66 - <iconify-icon 67 - icon={"fa6-solid:comment"} 68 - height={"1rem"} 69 - ></iconify-icon> 70 - {comment.replyCount} Replies 71 - </p> 72 - <p class="replies"> 73 - <iconify-icon 74 - icon={"fa6-solid:repeat"} 75 - height={"1rem"} 76 - ></iconify-icon> 77 - {comment.quoteCount} Quotes 78 - </p> 79 - </a> 80 - </footer> 81 - </article> 82 - {:else} 83 - <p>No comments just yet ๐Ÿ„</p> 84 - {/each} 85 - {:catch} 86 - <div> 87 - <p>There was an error getting the comments! โš ๏ธ</p> 88 - <p> 89 - Please <a href="mailto:me@claycow.com">reach out</a> if this persists. 90 - โค๏ธ 91 - </p> 92 - </div> 93 - {/await} 94 - </section> 95 - 96 - <style> 97 - .bluesky-comments { 98 - display: flex; 99 - flex-direction: column; 100 - gap: 1rem; 101 - } 102 - 103 - .bluesky-comments > h2 { 104 - margin-bottom: 0; 105 - } 106 - 107 - .bluesky-comments > article { 108 - background-color: var(--surface0); 109 - padding: 1rem; 110 - border-radius: 0.5rem; 111 - } 112 - 113 - .comment-author { 114 - display: flex; 115 - flex-direction: row; 116 - font-size: medium; 117 - margin: 0; 118 - } 119 - 120 - .comment-author > a { 121 - flex-grow: 1; 122 - text-decoration: none; 123 - color: var(--text); 124 - } 125 - 126 - .comment-author > a > .handle { 127 - color: var(--subtext0); 128 - } 129 - 130 - .comment-author > .comment-time { 131 - color: var(--subtext0); 132 - font-size: x-small; 133 - } 134 - 135 - .comment-body { 136 - margin: 1rem 0 0; 137 - } 138 - 139 - .comment-counts > a { 140 - display: flex; 141 - flex-direction: row; 142 - gap: 2rem; 143 - text-decoration: none; 144 - color: var(--text); 145 - } 146 - 147 - .comment-counts > a > p { 148 - display: flex; 149 - flex-direction: row; 150 - align-items: center; 151 - gap: 0.5rem; 152 - margin-bottom: 0; 153 - } 154 - </style>
-53
src/components/organisms/Footer.astro
··· 1 - --- 2 - import { BLUESKY_LINK, GITHUB_LINK, SIGNAL_LINK } from "@/consts"; 3 - 4 - const today = new Date(); 5 - --- 6 - 7 - <footer> 8 - <div class="social-links"> 9 - <a href={BLUESKY_LINK} target="_blank"> 10 - <span class="sr-only">Follow on Bluesky</span> 11 - <iconify-icon icon={"fa6-brands:bluesky"} height={"2rem"} 12 - ></iconify-icon> 13 - </a> 14 - <a href={GITHUB_LINK} target="_blank"> 15 - <span class="sr-only">Follow on GitHub</span> 16 - <iconify-icon icon={"fa6-brands:github"} height={"2rem"} 17 - ></iconify-icon> 18 - </a> 19 - <a href={SIGNAL_LINK} target="_blank"> 20 - <span class="sr-only">Follow on Signal</span> 21 - <iconify-icon icon={"fa6-brands:signal-messenger"} height={"2rem"} 22 - ></iconify-icon> 23 - </a> 24 - </div> 25 - &copy; {today.getFullYear()} ClayCow. All rights reserved. 26 - </footer> 27 - 28 - <style> 29 - footer { 30 - display: flex; 31 - flex-direction: column; 32 - align-items: center; 33 - justify-self: flex-end; 34 - gap: 1rem; 35 - padding: 1rem 0; 36 - margin-top: 2rem; 37 - } 38 - 39 - .social-links { 40 - display: flex; 41 - justify-content: center; 42 - gap: 1rem; 43 - } 44 - 45 - .social-links a { 46 - text-decoration: none; 47 - color: var(--text); 48 - } 49 - 50 - .social-links a:hover { 51 - color: var(--subtext0); 52 - } 53 - </style>
-45
src/components/organisms/GalleryPreviewCard.astro
··· 1 - --- 2 - import { formatDate } from "@/utils"; 3 - import formatBlogTitleUrl from "@/utils/formatBlogTitleUrl"; 4 - import { Image } from "astro:assets"; 5 - import type { CollectionEntry } from "astro:content"; 6 - 7 - type Props = CollectionEntry<"gallery">["data"]; 8 - 9 - const { title, alt, image, width, height } = Astro.props; 10 - --- 11 - 12 - <a 13 - class="gallery-preview-card" 14 - href={`/gallery/${formatBlogTitleUrl(title)}/`} 15 - title={title} 16 - > 17 - <Image 18 - src={image} 19 - alt={alt} 20 - loading={"lazy"} 21 - format={"webp"} 22 - quality={"low"} 23 - /> 24 - </a> 25 - 26 - <style> 27 - a { 28 - display: inline-block; 29 - } 30 - 31 - a:hover > img { 32 - outline-color: var(--blue); 33 - } 34 - 35 - img { 36 - height: auto; 37 - object-fit: contain; 38 - margin: 0; 39 - transition: outline-color 200ms; 40 - outline-color: #0000; 41 - outline-offset: 2px; 42 - outline-style: solid; 43 - outline-width: 4px; 44 - } 45 - </style>
-89
src/components/organisms/Head.astro
··· 1 - --- 2 - // Import the global.css file here so that it is included on 3 - // all pages through the use of the <BaseHead /> component. 4 - import "@/styles/global.css"; 5 - import type { CollectionEntry } from "astro:content"; 6 - 7 - interface Props { 8 - title: string; 9 - description: string; 10 - image?: CollectionEntry<"gallery">["data"]["image"]; 11 - } 12 - 13 - const canonicalURL = new URL(Astro.url.pathname, Astro.site); 14 - 15 - const { 16 - title, 17 - description, 18 - image 19 - } = Astro.props; 20 - --- 21 - 22 - <!-- Global Metadata --> 23 - <meta charset="utf-8" /> 24 - <meta name="viewport" content="width=device-width,initial-scale=1" /> 25 - <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 26 - <meta name="generator" content={Astro.generator} /> 27 - 28 - <!-- Font preloads --> 29 - <link 30 - rel="preload" 31 - href="/fonts/atkinson-regular.woff" 32 - as="font" 33 - type="font/woff" 34 - crossorigin 35 - /> 36 - <link 37 - rel="preload" 38 - href="/fonts/atkinson-bold.woff" 39 - as="font" 40 - type="font/woff" 41 - crossorigin 42 - /> 43 - 44 - <!-- Canonical URL --> 45 - <link rel="canonical" href={canonicalURL} /> 46 - 47 - <script src="https://code.iconify.design/iconify-icon/2.2.0/iconify-icon.min.js" 48 - ></script> 49 - 50 - <!-- Primary Meta Tags --> 51 - <title>{title}</title> 52 - <meta name="title" content={title} /> 53 - <meta name="description" content={description} /> 54 - 55 - <!-- Open Graph / Facebook --> 56 - <meta property="og:type" content="website" /> 57 - <meta property="og:url" content={Astro.site} /> 58 - <meta property="og:title" content={title} /> 59 - <meta property="og:description" content={description} /> 60 - <meta property="og:site_name" content="claycow" /> 61 - { 62 - image && ( 63 - <meta property="og:image" content={new URL(image.src, Astro.site)} /> 64 - <meta property="og:image:url" content={new URL(image.src, Astro.site)} /> 65 - <meta property="og:image:type" content={`image/${image.format}`} /> 66 - <meta property="og:image:width" content={image.width.toString()} /> 67 - <meta property="og:image:height" content={image.height.toString()} /> 68 - <meta property="og:image:alt" content={description} /> 69 - ) 70 - } 71 - 72 - <!-- Twitter --> 73 - <meta property="twitter:card" content="summary_large_image" /> 74 - <meta property="twitter:url" content={Astro.site} /> 75 - <meta property="twitter:title" content={title} /> 76 - <meta property="twitter:description" content={description} /> 77 - <meta property="twitter:site" content="claycow" /> 78 - { 79 - image && ( 80 - <meta 81 - property="twitter:image" 82 - content={new URL(image.src, Astro.site)} 83 - /> 84 - <meta 85 - property="twitter:image:alt" 86 - content={description} 87 - /> 88 - ) 89 - }
-59
src/components/organisms/Navigation.astro
··· 1 - --- 2 - import { Link } from "@/components/atoms"; 3 - import { ThemeToggle } from "@/components/molecules"; 4 - import { BLUESKY_LINK } from "@/consts"; 5 - --- 6 - 7 - <nav> 8 - <ol> 9 - <li> 10 - <Link href="/"> 11 - <span class="sr-only">Go to the home page</span> 12 - ๐Ÿ„ 13 - </Link> 14 - </li> 15 - <li> 16 - <Link href="/blog">Blog</Link> 17 - </li> 18 - <li> 19 - <Link href="/gallery">Gallery</Link> 20 - </li> 21 - <li> 22 - <Link href={BLUESKY_LINK} target="_blank"> 23 - <iconify-icon icon={"fa6-brands:bluesky"} height={"1rem"} 24 - ></iconify-icon> Bluesky 25 - </Link> 26 - </li> 27 - <li> 28 - <ThemeToggle client:load /> 29 - </li> 30 - </ol> 31 - </nav> 32 - 33 - <style> 34 - nav { 35 - display: flex; 36 - flex-direction: column; 37 - } 38 - 39 - nav > ol { 40 - list-style: none; 41 - display: flex; 42 - align-items: center; 43 - flex-direction: row; 44 - gap: 1rem; 45 - padding: 0; 46 - } 47 - 48 - nav > ol > li > a { 49 - display: flex; 50 - flex-direction: row; 51 - align-items: center; 52 - height: 1ch; 53 - } 54 - 55 - nav > ol > li:first-child { 56 - flex-grow: 1; 57 - font-size: large; 58 - } 59 - </style>
-5
src/components/organisms/index.ts
··· 1 - export {default as Navigation} from "./Navigation.astro"; 2 - export {default as Head} from "./Head.astro"; 3 - export {default as Footer} from "./Footer.astro"; 4 - export {default as BlogPreviewCard} from "./BlogPreviewCard.astro"; 5 - export {default as BlueskyComments} from "./BlueskyComments.svelte";
+2 -2
src/consts.ts
··· 5 5 export const SITE_DESCRIPTION = 'Welcome to my website!'; 6 6 7 7 export const BLUESKY_LINK = "https://bsky.app/profile/did:plc:6w63642jircxfpo27gdlihm2"; 8 - export const GITHUB_LINK = "https://github.com/claytonleonardcook"; 8 + export const TANGLED_SH_LINK = "https://tangled.sh/@claycow.com"; 9 9 export const SIGNAL_LINK = "https://signal.me/#eu/UV2uUutQ9Z7FGzJGaNX-8gP4ysb6KtxCUGdxpVaUQXpPPvdoq91BJ7MUUWkrmZTi"; 10 - export const BLUESKY_DID = "did:plc:6w63642jircxfpo27gdlihm2"; 10 + export const BLUESKY_DID = "did:plc:6w63642jircxfpo27gdlihm2";
+7 -6
src/content/blog/helloworld.mdx
··· 2 2 title: 'Hello World ๐Ÿ„' 3 3 description: 'Introductions and testing out blogging.' 4 4 date: '12/28/24' 5 - updatedDate: '12/30/24' 5 + updatedDate: '8/28/25' 6 6 image: { 7 7 src: 'https://i.imgur.com/NeF8b2q.jpeg', 8 8 alt: 'A brown, shaggy cow in the middle of a winter field' ··· 11 11 --- 12 12 13 13 import { Image } from 'astro:assets'; 14 + import {SIGNAL_LINK} from '@/consts'; 14 15 15 - Hey all, I finally decided to redo this domain so that I could put blogs on it. Expect to find blogs about algorithmic art, software and social issues on here. 16 + Hey all, I finally decided to redo this domain so that I could put blogs on it. Expect to find blogs about algorithmic art, software and social issues on here. 16 17 17 18 ## Why make a blog? 18 19 19 - I've been wanting to make a blog for a while since moving to Bluesky. I find it cool that they don't hide posts that link to websites outside of the platform and allows for people to link to their works on their own personal sites where they can fully customize the experience. Another reason for making a blog is it allows me to make longer form content which is a New Year's resolution for me. I've gotten tired of the predatory algorithmns on other platforms like Instagram, Twitter and even YouTube. I've started to move away from them (removing them from my phone for now to deter me) and engage it content that might be more useful like longer videos, books, blogs, etc. 20 + I've been wanting to make a blog for a while since moving to Bluesky. I find it cool that they don't hide posts that link to websites outside of the platform and allows for people to link to their works on their own personal sites where they can fully customize the experience. Another reason for making a blog is it allows me to make longer form content which is a New Year's resolution for me. I've gotten tired of the predatory algorithmns on other platforms like Instagram, Twitter and even YouTube. I've started to move away from them (removing them from my phone for now to deter me) and engage it content that might be more useful like longer videos, books, blogs, etc. 20 21 21 22 ## How did I make this blog? 22 23 23 - Currently this website is made using Astro.js, a component framework like React, which makes it really easy to write blogs. Basically, I'm writing in a MDX file which is really easy to edit and then I upload it to my GitHub where Vercel builds all the content using the included MDX files. MDX files are really cool because they let me insert any kind of <abbr title="HyperText Markup Language">HTML</abbr> that I want but also apparently framework-specific components. I'm not super interested in the components but I am interested in putting interactive graphs in here. 24 + Currently this website is made using Astro.js, a component framework like React, which makes it really easy to write blogs. Basically, I'm writing in a MDX file which is really easy to edit and then I upload it to my GitHub where Vercel builds all the content using the included MDX files. MDX files are really cool because they let me insert any kind of <abbr title="HyperText Markup Language">HTML</abbr> that I want but also apparently framework-specific components. I'm not super interested in the components but I am interested in putting interactive graphs in here. 24 25 25 26 ## Will the site change? 26 27 ··· 31 32 <br/> 32 33 33 34 > Mankind was my business. The common welfare was my business; charity, mercy, forbearance, benevolence, were all my business. The dealings of my trade were but a drop of water in the comprehensive ocean of my business! 34 - > 35 + > 35 36 > -- <cite>Charles Dickens, A Christmas Carol</cite> 36 37 37 38 <br/> ··· 51 52 </figcaption> 52 53 </figure> 53 54 54 - And that's all. If you're interested in my work, feel free to reach out on Bluesky or message me on [Signal](https://signal.me/#eu/UV2uUutQ9Z7FGzJGaNX-8gP4ysb6KtxCUGdxpVaUQXpPPvdoq91BJ7MUUWkrmZTi). 55 + And that's all. If you're interested in my work, feel free to reach out on Bluesky or message me on <a href={SIGNAL_LINK}>Signal</a>. 55 56 56 57 ## Footnotes & Links 57 58
+88
src/content/blog/tangledsh.mdx
··· 1 + --- 2 + title: 'Tangled.sh' 3 + description: 'Moving this blog over to Tangled.sh, a AtProto git collaboration platform.' 4 + date: '8/28/25' 5 + image: { 6 + src: 'https://i.imgur.com/e6pNW5L.jpeg', 7 + alt: 'A pile of tangled wires of different colors.' 8 + } 9 + isPublished: true 10 + --- 11 + 12 + import {SIGNAL_LINK} from '@/consts'; 13 + 14 + Hello everyone, I love how I made this blog but I haven't had too much energy to write anything. However, I wanted to write this today since I've moved the repository of this website to [Tangled.sh](https://tangled.sh/). I made this change because I like supporting new projects that pop up on AtProto but also I like the idea of this website being tied to my Bluesky account more than my personal GitHub. Even though Tangled is relatively new, I found that it was pretty easy to get started and I thought I'd write about some of the things I went through to get my website up and running. 15 + 16 + ## SSH Keys 17 + 18 + A thing I found pretty nice, but not surprising, was that I was able to use the same SSH key that I had been using for my GitHub. It was pretty easy to grab my public key from `~/.ssh/*.pub` and add it to my registered keys in my Tangled settings. I imagine if you wanted to create a new key it would be pretty much the same steps as [this](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). 19 + 20 + ## Switching Remote URLs 21 + 22 + Once I had my SSH key it was also very easy to take my local folder that had my original GitHub repository and switch it over to the new Tangled remote URL: 23 + 24 + ```sh 25 + git remote set-url origin git@tangled.sh:claycow.com/claycow 26 + git push 27 + ``` 28 + 29 + The only thing that was a bit weird with this was that there were always two commits that needed to be pulled in and it just wouldn't resolve itself with `git pull`. So, I ended up running the following and it cleared them out: 30 + 31 + ```sh 32 + git branch -r 33 + git branch -u origin/main 34 + git checkout -b main 35 + git push -u origin main 36 + ``` 37 + 38 + ## Vercel & Deployment Workflow 39 + 40 + Since Vercel doesn't currently have a integration with Tangled, I had to remove my current connection with GitHub and utilize the Vercel CLI tool. I think I initially started by just reading the [documentation](https://vercel.com/docs/cli) and running `vercel --prod` locally which deployed successfully. 41 + 42 + Luckily, Tangled added the ability to have pipelines, similar to GitHub Actions, earlier this month. Before I actually read the documentation on them I just saw the tab for it in the repository and enabled it. I honestly thought that it was just going to work with my `.github/workflows` directory but it obviously didn't and I ended up having to rename the directory to `.tangled/workflows`. I made that push thinking it would all work from there on out but Tangled also has a different way of writing workflows compared to GitHub Actions so I fucked around way too much before finding the [proper documentation](https://tangled.sh/@tangled.sh/core/blob/master/docs/spindle/pipeline.md) (don't look at my commit history, it's kind of embarrassing ๐Ÿ˜…). After fiddling with the workflow for a bit I ended up with this configuration that works for this website: 43 + 44 + ```yaml 45 + when: 46 + - event: ["push", "pull_request"] 47 + branch: ["main"] 48 + 49 + engine: nixery 50 + 51 + dependencies: 52 + nixpkgs: 53 + - nodejs 54 + - perl 55 + 56 + steps: 57 + - name: Deploy to Vercel 58 + env: 59 + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} 60 + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} 61 + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} 62 + command: | 63 + npx vercel pull --yes --environment=production --token=$VERCEL_TOKEN 64 + npx vercel build --prod --token=$VERCEL_TOKEN 65 + npx vercel deploy --prebuilt --prod --token=$VERCEL_TOKEN 66 + ``` 67 + 68 + The above should take any website built with Nodejs and NPM with a Vercel project and deploy it. You will have to set the secrets for the CLI tool but it's pretty easy after you figure out where to find them. I used part of [this blog](https://www.freecodecamp.org/news/deploy-to-vercel-with-github-actions/) to figure out which enironment variables I needed and what to name them. 69 + 70 + Some things I will call out is that you should specify the `engine` otherwise when you push it will have a warning about including it. Also, I don't know whether it's a required dependency for Astro or Vercel but for my current setup I had to add the `perl` dependency. It took me awhile to figure out what dependencies were even available to me but I think [this website](https://nixos.wiki/wiki/Perl) tells you what is available since their runner is based on [NixOS](https://nixos.org/). 71 + 72 + After all that, I saw the beautiful green checkmark next to my commit and that there was a recent build on my Vercel dashboard. Once I saw that, I made my original repository on GitHub private and I made a couple small changes on my local. Once I saw that the workflow successfully sent a build request to Vercel, I was able to go to [claycow.com](https://claycow.com/) and see the updates. 73 + 74 + ## Future Plans 75 + 76 + Now that I got this website on Tangled, I think I'd like to add more things as this platform grows. I've always felt more free to express myself through my online, furry persona so it is really nice to have a place to contribute through it now. I hope to add more repositories on Tangled in the future and collaborate with some of my Bluesky mutuals and followers ๐Ÿ™‚. 77 + 78 + On another note, I'm currently in the process of building my own server computer. I've been wanting one for awhile now, ever since I had my [Framework 13](https://frame.work/laptop13) strapped to the wall by my router at the last place I lived, and I'm excited to put it together this weekend. Since Tangled allows for [self-hosted Spindles](https://tangled.sh/@tangled.sh/core/blob/master/docs/spindle/hosting.md), I'd love to eventually help support the platform by hosting one on my new server. I don't really know how it works right now, if it's just hosted for me or it contributes to the network of pipeline requests, but I think it'd be cool to try it out. 79 + 80 + One thing relating to the future of this website, I'd like to eventually setup a way to statically build my Bluesky posts into pages as a way to keep a history, just in case Bluesky ever goes down. I think I'd have to implement some form of [ISR](https://vercel.com/docs/incremental-static-regeneration) since I wouldn't want to pull all my posts everytime this site needs to be built, that would take forever and be a huge waste of resources. 81 + 82 + If you got any questions, feel free to reach out via Bluesky or message me on <a href={SIGNAL_LINK}>Signal</a>. 83 + 84 + ## Footnotes & Links 85 + 86 + - [Tangled.sh](https://tangled.sh/) 87 + - [Vercel CLI](https://vercel.com/docs/cli) 88 + - [Spindle Documentation](https://tangled.sh/@tangled.sh/core/blob/master/docs/spindle/pipeline.md)
src/content/gallery/Fight.webp

This is a binary file and will not be displayed.

src/content/gallery/Michigan_in_the_Summer.webp

This is a binary file and will not be displayed.

src/content/gallery/Nightshade.webp

This is a binary file and will not be displayed.

src/content/gallery/Smile.webp

This is a binary file and will not be displayed.

src/content/gallery/The_Fallen_Bovine.webp

This is a binary file and will not be displayed.

src/content/gallery/Yado.webp

This is a binary file and will not be displayed.

+1 -15
src/content.config.ts
··· 1 1 import { glob } from 'astro/loaders'; 2 2 import { defineCollection, z } from 'astro:content'; 3 - import { image } from './utils'; 4 3 5 4 const blog = defineCollection({ 6 5 // Load Markdown and MDX files in the `src/content/blog/` directory. ··· 20 19 }), 21 20 }); 22 21 23 - const gallery = defineCollection({ 24 - loader: image('./src/content/gallery'), 25 - schema: ({ image }) => z.object({ 26 - title: z.string(), 27 - artist: z.string(), 28 - alt: z.string(), 29 - path: z.string(), 30 - image: image(), 31 - width: z.number(), 32 - height: z.number() 33 - }), 34 - }); 35 - 36 - export const collections = { blog, gallery }; 22 + export const collections = { blog };
+98 -82
src/layouts/BlogPost.astro
··· 1 1 --- 2 - import type { CollectionEntry } from "astro:content"; 2 + import type { CollectionEntry } from 'astro:content'; 3 3 import { 4 - Head, 5 - Footer, 6 - Navigation, 7 - BlueskyComments, 8 - } from "@/components/organisms"; 9 - import { formatDate } from "@/utils"; 10 - import { Image } from "astro:assets"; 11 - import SpeedInsights from "@vercel/speed-insights/astro"; 12 - import Analytics from "@vercel/analytics/astro"; 4 + Head, 5 + Footer, 6 + Navigation, 7 + BlueskyComments, 8 + BandcampWishlist, 9 + LiberaPayDonate, 10 + } from '@/components'; 11 + import { formatDate } from '@/utils'; 12 + import { Image } from 'astro:assets'; 13 13 14 - type Props = CollectionEntry<"blog">["data"]; 14 + type Props = CollectionEntry<'blog'>['data']; 15 15 16 16 const { title, description, date, updatedDate, image } = Astro.props; 17 17 --- 18 18 19 19 <html lang="en"> 20 - <head> 21 - <Head title={title} description={description} /> 22 - <style> 23 - article { 24 - display: flex; 25 - flex-direction: column; 26 - width: 100%; 27 - gap: 2rem; 28 - } 20 + <head> 21 + <Head title={title} description={description} /> 22 + <style> 23 + article { 24 + display: flex; 25 + flex-direction: column; 26 + width: 100%; 27 + gap: 2rem; 28 + } 29 29 30 - .hero-image { 31 - object-fit: cover; 32 - } 30 + .prose > header { 31 + display: flex; 32 + flex-direction: column; 33 + gap: 1rem; 34 + } 33 35 34 - .date { 35 - display: flex; 36 - flex-wrap: wrap; 37 - gap: 0.5rem; 38 - font-style: italic; 39 - font-size: x-small; 40 - } 36 + .widgets { 37 + display: flex; 38 + flex-direction: row; 39 + flex-wrap: wrap; 40 + gap: 0.5rem; 41 + } 41 42 42 - .published { 43 - flex-grow: 1; 44 - } 43 + .hero-image { 44 + object-fit: cover; 45 + } 45 46 46 - .last-updated { 47 - font-weight: bold; 48 - color: var(--red); 49 - } 50 - </style> 51 - </head> 47 + .date { 48 + display: flex; 49 + flex-wrap: wrap; 50 + gap: 0.5rem; 51 + font-style: italic; 52 + font-size: x-small; 53 + } 52 54 53 - <body data-theme="dark"> 54 - <Navigation /> 55 - <main> 56 - <article> 57 - { 58 - image && ( 59 - <Image 60 - class="hero-image" 61 - src={image.src} 62 - alt={image.alt} 63 - width={1020} 64 - height={510} 65 - loading={"lazy"} 66 - /> 67 - ) 68 - } 69 - <div class="prose"> 70 - <div class="title"> 71 - <h1>{title}</h1> 72 - <div class="date"> 73 - <span class="published"> 74 - Published on {formatDate(date)} 75 - </span> 76 - { 77 - updatedDate && ( 78 - <span class="last-updated"> 79 - (Last updated on{" "} 80 - {formatDate(updatedDate)}) 81 - </span> 82 - ) 83 - } 84 - </div> 85 - </div> 86 - <hr /> 87 - <slot /> 88 - </div> 89 - <BlueskyComments client:load blogTitle={title} /> 90 - </article> 91 - </main> 92 - <Footer /> 93 - <SpeedInsights /> 94 - <Analytics /> 95 - </body> 55 + .published { 56 + flex-grow: 1; 57 + } 58 + 59 + .last-updated { 60 + font-weight: bold; 61 + color: var(--red); 62 + } 63 + </style> 64 + </head> 65 + 66 + <body data-theme="dark"> 67 + <Navigation /> 68 + <main> 69 + <article> 70 + { 71 + image && ( 72 + <Image 73 + class="hero-image" 74 + src={image.src} 75 + alt={image.alt} 76 + width={1020} 77 + height={510} 78 + loading={'lazy'} 79 + /> 80 + ) 81 + } 82 + <div class="prose"> 83 + <header> 84 + <div class="title"> 85 + <h1>{title}</h1> 86 + <div class="date"> 87 + <span class="published"> 88 + Published on {formatDate(date)} 89 + </span> 90 + { 91 + updatedDate && ( 92 + <span class="last-updated"> 93 + (Last updated on {formatDate(updatedDate)}) 94 + </span> 95 + ) 96 + } 97 + </div> 98 + </div> 99 + <div class="widgets"> 100 + <LiberaPayDonate /> 101 + <BandcampWishlist /> 102 + </div> 103 + </header> 104 + <hr /> 105 + <slot /> 106 + </div> 107 + <BlueskyComments client:load blogTitle={title} /> 108 + </article> 109 + </main> 110 + <Footer /> 111 + </body> 96 112 </html>
-57
src/layouts/GalleryPost.astro
··· 1 - --- 2 - import type { CollectionEntry } from "astro:content"; 3 - import { Head, Footer, Navigation } from "@/components/organisms"; 4 - import { Image } from "astro:assets"; 5 - import SpeedInsights from "@vercel/speed-insights/astro"; 6 - import Analytics from "@vercel/analytics/astro"; 7 - 8 - type Props = CollectionEntry<"gallery">["data"]; 9 - 10 - const { title, alt, image, width, height } = Astro.props; 11 - --- 12 - 13 - <html lang="en"> 14 - <head> 15 - <Head title={title} description={alt} image={image} /> 16 - <style> 17 - article { 18 - display: flex; 19 - flex-direction: column; 20 - width: 100%; 21 - gap: 1rem; 22 - } 23 - 24 - h1 { 25 - margin-bottom: 0; 26 - } 27 - 28 - img { 29 - height: 100%; 30 - width: 100%; 31 - object-fit: contain; 32 - } 33 - </style> 34 - </head> 35 - 36 - <body data-theme="dark"> 37 - <Navigation /> 38 - <main> 39 - <article> 40 - <h1>{title}</h1> 41 - <a href={image.src}> 42 - <Image 43 - src={image} 44 - alt={alt} 45 - width={width} 46 - height={height} 47 - format={"webp"} 48 - /> 49 - </a> 50 - <p>{alt}</p> 51 - </article> 52 - <Footer /> 53 - <SpeedInsights /> 54 - <Analytics /> 55 - </main> 56 - </body> 57 - </html>
+1
src/layouts/index.ts
··· 1 + export { default as BlogPostLayout } from "./BlogPost.astro";
+20 -20
src/pages/blog/[...slug].astro
··· 1 1 --- 2 - import { type CollectionEntry, getCollection } from "astro:content"; 3 - import BlogPost from "@/layouts/BlogPost.astro"; 4 - import { render } from "astro:content"; 2 + import { type CollectionEntry, getCollection } from 'astro:content'; 3 + import { BlogPostLayout } from '@/layouts'; 4 + import { render } from 'astro:content'; 5 5 6 6 export async function getStaticPaths() { 7 - const posts = await getCollection("blog"); 8 - return posts 9 - .filter( 10 - (post) => 11 - import.meta.env.ENVIRONMENT === "preview" || 12 - Boolean(post.data.isPublished), 13 - ) 14 - .map((post) => ({ 15 - params: { 16 - slug: post.data.title.toLowerCase().replaceAll(" ", "-"), 17 - }, 18 - props: post, 19 - })); 7 + const posts = await getCollection('blog'); 8 + return posts 9 + .filter( 10 + (post) => 11 + import.meta.env.ENVIRONMENT === 'preview' || 12 + Boolean(post.data.isPublished) 13 + ) 14 + .map((post) => ({ 15 + params: { 16 + slug: post.data.title.toLowerCase().replaceAll(' ', '-'), 17 + }, 18 + props: post, 19 + })); 20 20 } 21 - type Props = CollectionEntry<"blog">; 21 + type Props = CollectionEntry<'blog'>; 22 22 23 23 const post = Astro.props; 24 24 const { Content } = await render(post); 25 25 --- 26 26 27 - <BlogPost {...post.data}> 28 - <Content /> 29 - </BlogPost> 27 + <BlogPostLayout {...post.data}> 28 + <Content /> 29 + </BlogPostLayout>
+49 -58
src/pages/blog/index.astro
··· 1 1 --- 2 - import { 3 - Head, 4 - Footer, 5 - Navigation, 6 - BlogPreviewCard, 7 - } from "@/components/organisms"; 2 + import { Head, Footer, Navigation, BlogPreviewCard } from "@/components"; 8 3 import { SITE_TITLE, SITE_DESCRIPTION } from "@/consts"; 9 4 import { getCollection } from "astro:content"; 10 - import SpeedInsights from "@vercel/speed-insights/astro"; 11 - import Analytics from "@vercel/analytics/astro"; 12 5 13 6 const posts = (await getCollection("blog")) 14 - .filter( 15 - (post) => 16 - import.meta.env.ENVIRONMENT === "preview" || 17 - Boolean(post.data.isPublished), 18 - ) 19 - .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); 7 + .filter( 8 + (post) => 9 + import.meta.env.ENVIRONMENT === "preview" || 10 + Boolean(post.data.isPublished) 11 + ) 12 + .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); 20 13 --- 21 14 22 15 <!doctype html> 23 16 <html lang="en"> 24 - <head> 25 - <Head title={SITE_TITLE} description={SITE_DESCRIPTION} /> 26 - <style> 27 - main > section { 28 - width: 100%; 29 - } 17 + <head> 18 + <Head title={SITE_TITLE} description={SITE_DESCRIPTION} /> 19 + <style> 20 + main > section { 21 + width: 100%; 22 + } 30 23 31 - main > section > ul { 32 - display: flex; 33 - flex-direction: column; 34 - gap: 2rem; 35 - list-style: none; 36 - padding: 0; 37 - } 38 - </style> 39 - </head> 40 - <body data-theme="dark"> 41 - <Navigation /> 42 - <main> 43 - <h1>Blog</h1> 44 - <section> 45 - { 46 - posts.length !== 0 && ( 47 - <ul> 48 - {posts.map((post) => ( 49 - <li> 50 - <BlogPreviewCard 51 - title={post.data.title} 52 - description={post.data.description} 53 - image={post.data.image} 54 - date={post.data.date} 55 - updatedDate={post.data.updatedDate} 56 - /> 57 - </li> 58 - ))} 59 - </ul> 60 - ) 61 - } 62 - {posts.length === 0 && <h2>There are no posts yet! ๐Ÿ˜ข</h2>} 63 - </section> 64 - </main> 65 - <Footer /> 66 - <SpeedInsights /> 67 - <Analytics /> 68 - </body> 24 + main > section > ul { 25 + display: flex; 26 + flex-direction: column; 27 + gap: 2rem; 28 + list-style: none; 29 + padding: 0; 30 + } 31 + </style> 32 + </head> 33 + <body data-theme="dark"> 34 + <Navigation /> 35 + <main> 36 + <h1>Blog</h1> 37 + <section> 38 + { 39 + posts.length !== 0 && ( 40 + <ul> 41 + {posts.map((post) => ( 42 + <li> 43 + <BlogPreviewCard 44 + title={post.data.title} 45 + description={post.data.description} 46 + image={post.data.image} 47 + date={post.data.date} 48 + updatedDate={post.data.updatedDate} 49 + /> 50 + </li> 51 + ))} 52 + </ul> 53 + ) 54 + } 55 + {posts.length === 0 && <h2>There are no posts yet! ๐Ÿ˜ข</h2>} 56 + </section> 57 + </main> 58 + <Footer /> 59 + </body> 69 60 </html>
+76
src/pages/cow.astro
··· 1 + --- 2 + import { Head } from '@/components'; 3 + --- 4 + 5 + <!doctype html> 6 + <html lang="en"> 7 + <head> 8 + <Head title={'๐Ÿ„'} description={'Moo'} /> 9 + <style> 10 + main { 11 + width: 100dvw; 12 + height: 100dvh; 13 + } 14 + </style> 15 + </head> 16 + <body data-theme="dark"> 17 + <main></main> 18 + <script src="https://cdn.jsdelivr.net/npm/p5@1.11.11/lib/p5.js"></script> 19 + <script> 20 + window.addEventListener('load', () => { 21 + new p5(function (p) { 22 + let cow; 23 + let cowTexture; 24 + 25 + p.preload = function () { 26 + cow = p.loadModel('/cow.obj', { 27 + normalize: true, 28 + fileType: '.obj', 29 + // flipU: false, 30 + // flipV: true, 31 + successCallback: console.log, 32 + failureCallback: console.error, 33 + }); 34 + 35 + cowTexture = p.loadImage( 36 + '/cow_texture.png', 37 + console.log, 38 + console.error 39 + ); 40 + }; 41 + 42 + p.setup = function () { 43 + const canvas = p.createCanvas( 44 + p.windowWidth, 45 + p.windowHeight, 46 + p.WEBGL 47 + ); 48 + const $MAIN = document.querySelector('main'); 49 + if ($MAIN) canvas.parent($MAIN); 50 + p.colorMode(p.HSB); 51 + }; 52 + 53 + p.draw = function () { 54 + p.clear(); 55 + p.scale(p.windowWidth / 500); 56 + p.rotateX(p.PI); 57 + p.rotateY(p.frameCount * 0.01); 58 + p.ambientLight((p.frameCount * 2) % 360, 100, 100); 59 + 60 + p.push(); 61 + 62 + p.noStroke(); 63 + p.texture(cowTexture); 64 + p.model(cow); 65 + 66 + p.pop(); 67 + }; 68 + 69 + p.windowResized = function () { 70 + p.resizeCanvas(p.windowWidth, p.windowHeight); 71 + }; 72 + }); 73 + }); 74 + </script> 75 + </body> 76 + </html>
-19
src/pages/gallery/[...slug].astro
··· 1 - --- 2 - import { type CollectionEntry, getCollection } from "astro:content"; 3 - import GalleryPost from "@/layouts/GalleryPost.astro"; 4 - 5 - export async function getStaticPaths() { 6 - const gallery = await getCollection("gallery"); 7 - return gallery.map((image) => ({ 8 - params: { 9 - slug: image.data.title.toLowerCase().replaceAll(" ", "-"), 10 - }, 11 - props: image, 12 - })); 13 - } 14 - type Props = CollectionEntry<"gallery">; 15 - 16 - const post = Astro.props; 17 - --- 18 - 19 - <GalleryPost {...post.data} />
-58
src/pages/gallery/index.astro
··· 1 - --- 2 - import { Head, Footer, Navigation } from "@/components/organisms"; 3 - import { SITE_TITLE, SITE_DESCRIPTION } from "@/consts"; 4 - import { getCollection } from "astro:content"; 5 - import SpeedInsights from "@vercel/speed-insights/astro"; 6 - import Analytics from "@vercel/analytics/astro"; 7 - import GalleryPreviewCard from "@/components/organisms/GalleryPreviewCard.astro"; 8 - 9 - const gallery = await getCollection("gallery"); 10 - --- 11 - 12 - <!doctype html> 13 - <html lang="en"> 14 - <head> 15 - <Head title={SITE_TITLE} description={SITE_DESCRIPTION} /> 16 - <style> 17 - main > section { 18 - width: 100%; 19 - } 20 - 21 - main > section > ul { 22 - list-style: none; 23 - padding: 0; 24 - display: grid; 25 - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 26 - gap: 2rem; 27 - } 28 - 29 - main > section > ul > li { 30 - display: flex; 31 - align-items: center; 32 - } 33 - </style> 34 - </head> 35 - <body data-theme="dark"> 36 - <Navigation /> 37 - <main> 38 - <h1>Gallery</h1> 39 - <section> 40 - { 41 - gallery.length !== 0 && ( 42 - <ul> 43 - {gallery.map(({ data }) => ( 44 - <li> 45 - <GalleryPreviewCard {...data} /> 46 - </li> 47 - ))} 48 - </ul> 49 - ) 50 - } 51 - {gallery.length === 0 && <h2>There are no images yet! ๐Ÿ˜ข</h2>} 52 - </section> 53 - </main> 54 - <Footer /> 55 - <SpeedInsights /> 56 - <Analytics /> 57 - </body> 58 - </html>
+31 -44
src/pages/index.astro
··· 1 1 --- 2 - import { Head, Footer, Navigation } from "@/components/organisms"; 2 + import { Head, Footer, Navigation } from "@/components"; 3 3 import { SITE_TITLE, SITE_DESCRIPTION } from "@/consts"; 4 4 import { Image } from "astro:assets"; 5 - import SpeedInsights from "@vercel/speed-insights/astro"; 6 - import Analytics from "@vercel/analytics/astro"; 7 5 import getBlueskyAvatar from "@/utils/getBlueskyAvatar"; 8 6 9 7 const blueskyAvatar = await getBlueskyAvatar(); ··· 11 9 12 10 <!doctype html> 13 11 <html lang="en"> 14 - <head> 15 - <Head 16 - title={SITE_TITLE} 17 - description={SITE_DESCRIPTION} 18 - image={{ 19 - src: blueskyAvatar, 20 - width: 300, 21 - height: 300, 22 - format: "webp", 23 - }} 24 - /> 25 - <style> 26 - body > main > img { 27 - width: clamp(200px, 100vw, 300px); 28 - } 29 - </style> 30 - </head> 31 - <body data-theme="dark"> 32 - <Navigation /> 33 - <main> 34 - <Image 35 - src={blueskyAvatar} 36 - alt="Profile of Clay, a cow fursona." 37 - width={300} 38 - height={300} 39 - quality={"mid"} 40 - loading={"lazy"} 41 - /> 42 - <h1>๐ŸŒพ Hello, I'm Clay ๐Ÿ„</h1> 43 - <p> 44 - I'm a cow furry who's also a software engineer, specifically in 45 - frontend development. Some of my main interests include creating 46 - applications, shaders, algorithmic art and discussing current 47 - social issues. This website is a place for me to aggregate and 48 - fully express my viewpoints through blogging. 49 - </p> 50 - </main> 51 - <Footer /> 52 - <SpeedInsights /> 53 - <Analytics /> 54 - </body> 12 + <head> 13 + <Head title={SITE_TITLE} description={SITE_DESCRIPTION} /> 14 + <style> 15 + body > main > img { 16 + width: clamp(200px, 100vw, 300px); 17 + } 18 + </style> 19 + </head> 20 + <body data-theme="dark"> 21 + <Navigation /> 22 + <main> 23 + <Image 24 + src={blueskyAvatar} 25 + alt="Profile of Clay, a cow fursona." 26 + width={300} 27 + height={300} 28 + quality={"mid"} 29 + loading={"lazy"} 30 + /> 31 + <h1>๐ŸŒพ Hello, I'm Clay ๐Ÿ„</h1> 32 + <p> 33 + I'm a cow furry who's also a software engineer, specifically in frontend 34 + development. Some of my main interests include creating applications, 35 + shaders, algorithmic art and discussing current social issues. This 36 + website is a place for me to aggregate and fully express my viewpoints 37 + through blogging. 38 + </p> 39 + </main> 40 + <Footer /> 41 + </body> 55 42 </html>
+128
src/pages/pat.astro
··· 1 + --- 2 + import { Head } from '@/components'; 3 + import { Image } from 'astro:assets'; 4 + --- 5 + 6 + <!doctype html> 7 + <html lang="en"> 8 + <head> 9 + <Head title={'๐Ÿ€'} description={'pat the rat'} /> 10 + <script 11 + defer 12 + src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.9.4/dist/confetti.browser.min.js" 13 + > 14 + </script> 15 + <style> 16 + @keyframes squish { 17 + 0% { 18 + transform: scaleY(1); 19 + } 20 + 50% { 21 + transform: scaleY(0.5); 22 + } 23 + 100% { 24 + transform: scaleY(1); 25 + } 26 + } 27 + 28 + body > main { 29 + display: flex; 30 + justify-content: center; 31 + align-items: center; 32 + gap: 8rem; 33 + } 34 + 35 + body > main > p#cheeses { 36 + display: flex; 37 + flex-direction: row; 38 + gap: 1rem; 39 + font-size: 2rem; 40 + } 41 + 42 + body > main > p#cheeses[data-cheeses='0'] { 43 + visibility: hidden; 44 + } 45 + 46 + body > main > p#cheeses::after { 47 + content: attr(data-cheeses); 48 + } 49 + 50 + body > main > img { 51 + width: auto; 52 + scale: 2; 53 + image-rendering: pixelated; 54 + cursor: pointer; 55 + 56 + animation-name: squish; 57 + animation-duration: 0.1s; 58 + animation-iteration-count: 1; 59 + animation-timing-function: linear; 60 + animation-play-state: paused; 61 + } 62 + </style> 63 + </head> 64 + <body data-theme="dark"> 65 + <audio id="squeak"> 66 + <source src="/rat-squeak.mp3" type="audio/mp3" /> 67 + </audio> 68 + <main> 69 + <p id="cheeses" data-cheeses="0">๐Ÿง€</p> 70 + <Image 71 + id={'pat'} 72 + alt="pat the rat" 73 + src={'/pat.webp'} 74 + width={128} 75 + height={128} 76 + /> 77 + </main> 78 + <script> 79 + let cheeses = 0; 80 + const $PAT = document.querySelector<HTMLImageElement>('img#pat'); 81 + const $CHEESES = 82 + document.querySelector<HTMLParagraphElement>('p#cheeses'); 83 + const cheese = confetti.shapeFromText({ text: '๐Ÿง€', scalar: 5 }); 84 + 85 + window.addEventListener('load', () => { 86 + window.cookieStore.get('cheeses').then((item) => { 87 + if (!$CHEESES) return; 88 + cheeses = parseInt(item?.value ?? '0'); 89 + $CHEESES.setAttribute('data-cheeses', cheeses.toString()); 90 + }); 91 + }); 92 + 93 + $PAT?.addEventListener('click', () => { 94 + if (!$PAT) return; 95 + if (!$CHEESES) return; 96 + const squeakAudio = new Audio('rat-squeak.mp3'); 97 + 98 + $PAT.style.animationName = 'none'; 99 + $PAT.offsetHeight; 100 + 101 + $PAT.style.animationName = 'squish'; 102 + $PAT.style.animationPlayState = 'running'; 103 + squeakAudio.currentTime = 0; 104 + squeakAudio.play(); 105 + 106 + cheeses += 1; 107 + $CHEESES.setAttribute('data-cheeses', cheeses.toString()); 108 + window.cookieStore.set('cheeses', cheeses.toString()); 109 + 110 + if (cheeses % 100 === 0) { 111 + confetti({ 112 + particleCount: cheeses, 113 + spread: 360, 114 + shapes: [cheese], 115 + scalar: 5, 116 + }); 117 + } 118 + }); 119 + 120 + $PAT?.addEventListener('animationend', () => { 121 + if (!$PAT) return; 122 + 123 + $PAT.style.animationName = 'none'; 124 + $PAT.style.animationPlayState = 'paused'; 125 + }); 126 + </script> 127 + </body> 128 + </html>
+132 -121
src/styles/global.css
··· 1 - :root {} 1 + :root { 2 + font-family: 3 + Helvetica Neue, 4 + Helvetica, 5 + sans-serif; 2 6 3 - body[data-theme="light"] { 4 - --rosewater: #dc8a78; 5 - --flamingo: #dd7878; 6 - --pink: #ea76cb; 7 - --mauve: #8839ef; 8 - --red: #d20f39; 9 - --maroon: #e64553; 10 - --peach: #fe640b; 11 - --yellow: #df8e1d; 12 - --green: #40a02b; 13 - --teal: #179299; 14 - --sky: #04a5e5; 15 - --sapphire: #209fb5; 16 - --blue: #1e66f5; 17 - --lavender: #7287fd; 18 - --text: #4c4f69; 19 - --subtext1: #5c5f77; 20 - --subtext0: #6c6f85; 21 - --overlay2: #7c7f93; 22 - --overlay1: #8c8fa1; 23 - --overlay0: #9ca0b0; 24 - --surface2: #acb0be; 25 - --surface1: #bcc0cc; 26 - --surface0: #ccd0da; 27 - --base: #eff1f5; 28 - --mantle: #e6e9ef; 29 - --crust: #dce0e8; 7 + color-scheme: light dark; 8 + } 9 + 10 + @media (prefers-color-scheme: dark) { 11 + body { 12 + --rosewater: #f5e0dc; 13 + --flamingo: #f2cdcd; 14 + --pink: #f5c2e7; 15 + --mauve: #cba6f7; 16 + --red: #f38ba8; 17 + --maroon: #eba0ac; 18 + --peach: #fab387; 19 + --yellow: #f9e2af; 20 + --green: #a6e3a1; 21 + --teal: #94e2d5; 22 + --sky: #89dceb; 23 + --sapphire: #74c7ec; 24 + --blue: #89b4fa; 25 + --lavender: #b4befe; 26 + --text: #cdd6f4; 27 + --subtext1: #bac2de; 28 + --subtext0: #a6adc8; 29 + --overlay2: #9399b2; 30 + --overlay1: #7f849c; 31 + --overlay0: #6c7086; 32 + --surface2: #585b70; 33 + --surface1: #45475a; 34 + --surface0: #313244; 35 + --base: #1e1e2e; 36 + --mantle: #181825; 37 + --crust: #11111b; 38 + } 30 39 } 31 40 32 - body[data-theme="dark"] { 33 - --rosewater: #f5e0dc; 34 - --flamingo: #f2cdcd; 35 - --pink: #f5c2e7; 36 - --mauve: #cba6f7; 37 - --red: #f38ba8; 38 - --maroon: #eba0ac; 39 - --peach: #fab387; 40 - --yellow: #f9e2af; 41 - --green: #a6e3a1; 42 - --teal: #94e2d5; 43 - --sky: #89dceb; 44 - --sapphire: #74c7ec; 45 - --blue: #89b4fa; 46 - --lavender: #b4befe; 47 - --text: #cdd6f4; 48 - --subtext1: #bac2de; 49 - --subtext0: #a6adc8; 50 - --overlay2: #9399b2; 51 - --overlay1: #7f849c; 52 - --overlay0: #6c7086; 53 - --surface2: #585b70; 54 - --surface1: #45475a; 55 - --surface0: #313244; 56 - --base: #1e1e2e; 57 - --mantle: #181825; 58 - --crust: #11111b; 41 + @media (prefers-color-scheme: light) { 42 + body { 43 + --rosewater: #dc8a78; 44 + --flamingo: #dd7878; 45 + --pink: #ea76cb; 46 + --mauve: #8839ef; 47 + --red: #d20f39; 48 + --maroon: #e64553; 49 + --peach: #fe640b; 50 + --yellow: #df8e1d; 51 + --green: #40a02b; 52 + --teal: #179299; 53 + --sky: #04a5e5; 54 + --sapphire: #209fb5; 55 + --blue: #1e66f5; 56 + --lavender: #7287fd; 57 + --text: #4c4f69; 58 + --subtext1: #5c5f77; 59 + --subtext0: #6c6f85; 60 + --overlay2: #7c7f93; 61 + --overlay1: #8c8fa1; 62 + --overlay0: #9ca0b0; 63 + --surface2: #acb0be; 64 + --surface1: #bcc0cc; 65 + --surface0: #ccd0da; 66 + --base: #eff1f5; 67 + --mantle: #e6e9ef; 68 + --crust: #dce0e8; 69 + } 59 70 } 60 71 61 72 body { 62 - display: flex; 63 - flex-direction: column; 64 - background-color: var(--crust); 65 - color: var(--text); 66 - min-height: 100vh; 67 - margin: 0; 73 + display: flex; 74 + flex-direction: column; 75 + background-color: var(--crust); 76 + font-size: 1rem; 77 + color: var(--text); 78 + min-height: 100vh; 79 + margin: 0; 68 80 69 - padding: 0 2rem; 81 + padding: 0 2rem; 70 82 } 71 83 72 84 main { 73 - display: flex; 74 - flex-direction: column; 75 - align-items: center; 76 - align-self: center; 77 - flex-grow: 1; 78 - width: clamp(200px, 100%, 1028px); 85 + display: flex; 86 + flex-direction: column; 87 + align-items: center; 88 + align-self: center; 89 + flex-grow: 1; 90 + width: clamp(200px, 100%, 1028px); 79 91 } 80 92 81 93 h2 { 82 - color: var(--red); 94 + color: var(--red); 83 95 } 84 96 85 97 h3 { 86 - color: var(--yellow); 98 + color: var(--yellow); 87 99 } 88 100 89 101 h4 { 90 - color: var(--green); 102 + color: var(--green); 91 103 } 92 104 93 105 h5 { 94 - color: var(--blue); 106 + color: var(--blue); 95 107 } 96 108 97 109 h6 { 98 - color: var(--mauve); 110 + color: var(--mauve); 99 111 } 100 112 101 113 pre { 102 - padding: 1rem; 103 - border-radius: 0.5rem; 114 + padding: 1rem; 115 + border-radius: 0.5rem; 104 116 } 105 117 106 118 a { 107 - color: var(--blue); 119 + color: var(--blue); 108 120 } 109 121 110 122 h1, ··· 119 131 figure, 120 132 iframe, 121 133 ul { 122 - margin: 1rem 0; 134 + margin: 1rem 0; 123 135 } 124 136 125 137 blockquote { 126 - border-left: solid 0.5rem var(--text); 127 - padding: 0.25rem 1rem; 138 + border-left: solid 0.5rem var(--text); 139 + padding: 0.25rem 1rem; 128 140 } 129 141 130 142 img { 131 - border-radius: 0.5rem; 132 - width: 100%; 143 + border-radius: 0.5rem; 144 + width: 100%; 133 145 } 134 146 135 147 iframe { 136 - border-radius: 0.5rem; 137 - border: none; 148 + border-radius: 0.5rem; 149 + border: none; 138 150 } 139 151 140 152 figure { 141 - margin: 0; 153 + margin: 0; 142 154 } 143 155 144 - figure>img { 145 - margin-bottom: 0; 156 + figure > img { 157 + margin-bottom: 0; 146 158 } 147 159 148 - figure>figcaption { 149 - color: var(--subtext0); 150 - font-size: small; 160 + figure > figcaption { 161 + color: var(--subtext0); 162 + font-size: small; 151 163 } 152 164 153 - figure>figcaption>p { 154 - margin-top: 0; 165 + figure > figcaption > p { 166 + margin-top: 0; 155 167 } 156 168 157 169 @media only screen and (max-width: 600px) { 158 - body { 159 - padding: 0 1rem; 160 - } 170 + body { 171 + padding: 0 1rem; 172 + } 161 173 } 162 174 163 175 @font-face { 164 - font-family: 'Atkinson'; 165 - src: url('/fonts/atkinson-regular.woff') format('woff'); 166 - font-weight: 400; 167 - font-style: normal; 168 - font-display: swap; 176 + font-family: 'Atkinson'; 177 + src: url('/fonts/atkinson-regular.woff') format('woff'); 178 + font-weight: 400; 179 + font-style: normal; 180 + font-display: swap; 169 181 } 170 182 171 183 @font-face { 172 - font-family: 'Atkinson'; 173 - src: url('/fonts/atkinson-bold.woff') format('woff'); 174 - font-weight: 700; 175 - font-style: normal; 176 - font-display: swap; 184 + font-family: 'Atkinson'; 185 + src: url('/fonts/atkinson-bold.woff') format('woff'); 186 + font-weight: 700; 187 + font-style: normal; 188 + font-display: swap; 177 189 } 178 190 179 - 180 191 .sr-only { 181 - border: 0; 182 - padding: 0; 183 - margin: 0; 184 - position: absolute !important; 185 - height: 1px; 186 - width: 1px; 187 - overflow: hidden; 188 - /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */ 189 - clip: rect(1px 1px 1px 1px); 190 - /* maybe deprecated but we need to support legacy browsers */ 191 - clip: rect(1px, 1px, 1px, 1px); 192 - /* modern browsers, clip-path works inwards from each corner */ 193 - clip-path: inset(50%); 194 - /* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */ 195 - white-space: nowrap; 196 - } 192 + border: 0; 193 + padding: 0; 194 + margin: 0; 195 + position: absolute !important; 196 + height: 1px; 197 + width: 1px; 198 + overflow: hidden; 199 + /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */ 200 + clip: rect(1px 1px 1px 1px); 201 + /* maybe deprecated but we need to support legacy browsers */ 202 + clip: rect(1px, 1px, 1px, 1px); 203 + /* modern browsers, clip-path works inwards from each corner */ 204 + clip-path: inset(50%); 205 + /* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */ 206 + white-space: nowrap; 207 + }
+14
src/utils/cookies.ts
··· 1 + export function getCookie(name: string): string | null { 2 + const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 3 + return match ? decodeURIComponent(match[2]) : null; 4 + } 5 + 6 + export function setCookie(name: string, value: string, days?: number): void { 7 + let expires = ''; 8 + if (days) { 9 + const date = new Date(); 10 + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 11 + expires = `; expires=${date.toUTCString()}`; 12 + } 13 + document.cookie = `${name}=${encodeURIComponent(value)}${expires}; path=/`; 14 + }
+23 -7
src/utils/getBlogPostComments.ts
··· 5 5 6 6 async function getBlogPostComments(blogTitle: string) { 7 7 8 - const agent = new AtpAgent({ service: new URL("https://public.api.bsky.app") }) 8 + const agent = new AtpAgent({ service: new URL("https://api.bsky.app") }); 9 9 10 10 const post = await agent.app.bsky.feed.searchPosts({ 11 - q: `from:claycow.com #blog #${formatBlogTitleUrl(blogTitle)}`, 11 + q: `#blog #${formatBlogTitleUrl(blogTitle)}`, 12 12 author: BLUESKY_DID, 13 13 limit: 1 14 14 }).then(({ data }) => { ··· 32 32 return data.thread.replies.map((reply) => { 33 33 if (!isThreadViewPost(reply)) return null; 34 34 35 + const record = reply.post.record as AppBskyFeedPost.Record; 36 + 37 + const postId = reply.post.uri.split('/').at(-1); 38 + 39 + if (!postId) return null; 40 + 35 41 return { 36 - ...reply.post, 37 - record: { 38 - ...reply.post.record as AppBskyFeedPost.Record 39 - } 42 + likeCount: reply.post.likeCount, 43 + replyCount: reply.post.replyCount, 44 + repostCount: reply.post.repostCount, 45 + displayName: reply.post.author.displayName, 46 + handle: reply.post.author.handle, 47 + createdAt: record.createdAt, 48 + text: record.text, 49 + authorUrl: `https://bsky.app/profile/${reply.post.author.did}`, 50 + postUrl: `https://bsky.app/profile/${reply.post.author.did}/post/${postId}`, 51 + cid: reply.post.cid 52 + // ...reply.post, 53 + // record: { 54 + // ...reply.post.record as AppBskyFeedPost.Record 55 + // } 40 56 }; 41 57 }).filter(reply => reply !== null); 42 58 }) ··· 48 64 return comments; 49 65 } 50 66 51 - export default getBlogPostComments; 67 + export default getBlogPostComments;
-56
src/utils/imageLoader.ts
··· 1 - import type { Loader } from "astro/loaders"; 2 - import fs from "fs"; 3 - import { exiftool } from "exiftool-vendored"; 4 - 5 - function image(fileName: string): Loader { 6 - return { 7 - name: 'webp', 8 - load: async ({ store, parseData, generateDigest }) => { 9 - store.keys().forEach((id) => store.delete(id)); 10 - 11 - const directory = fs.readdirSync(fileName).filter((file) => file.endsWith(".webp")); 12 - 13 - const images = await Promise.all( 14 - directory.map(async (path) => { 15 - const metadata = await exiftool.read(`${fileName}/${path}`); 16 - 17 - const title = metadata.Title ?? ""; 18 - const artist = metadata.Artist ?? ""; 19 - const alt = metadata.Description ?? metadata.ImageDescription ?? ""; 20 - const width = metadata.ImageWidth; 21 - const height = metadata.ImageHeight; 22 - 23 - return { 24 - id: path.toLowerCase().replaceAll('\S', '_').replace(/\.png/, ''), 25 - title, 26 - artist, 27 - alt, 28 - width, 29 - height, 30 - image: `./${path}`, 31 - path: `${fileName}/${path}` 32 - }; 33 - }) 34 - ); 35 - 36 - images.forEach(async ({ id, path, ...image }) => { 37 - const data = await parseData({ 38 - id, 39 - data: { path, ...image }, 40 - filePath: path 41 - }); 42 - 43 - const digest = generateDigest(data); 44 - 45 - store.set({ 46 - id, 47 - data, 48 - filePath: path, 49 - digest 50 - }); 51 - }); 52 - } 53 - }; 54 - } 55 - 56 - export default image;
+1 -1
src/utils/index.ts
··· 1 1 export { default as formatDate } from "./formatDate"; 2 2 export { default as formatBlogTitleUrl } from "./formatBlogTitleUrl"; 3 - export { default as image } from "./imageLoader"; 3 + export * from './cookies';