version 2 of my website
0
fork

Configure Feed

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

I kinda started from scratch, so just updating because this is a solid point to go from

+1162 -736
+897 -417
package-lock.json
··· 8 8 "name": "dustycode-web-v2", 9 9 "version": "0.0.1", 10 10 "dependencies": { 11 - "@astrojs/mdx": "^4.3.5", 12 - "@astrojs/react": "^4.3.1", 13 - "@lucide/astro": "^0.507.0", 11 + "@astrojs/mdx": "^4.3.13", 12 + "@astrojs/react": "^4.4.2", 13 + "@lucide/astro": "^0.563.0", 14 14 "@nanostores/react": "^1.0.0", 15 15 "@tailwindcss/vite": "^4.1.5", 16 16 "@types/react": "^19.1.12", 17 17 "@types/react-dom": "^19.1.9", 18 - "astro": "^5.13.7", 18 + "astro": "^5.18.0", 19 19 "nanostores": "^1.0.1", 20 20 "react": "^19.1.1", 21 21 "react-dom": "^19.1.1", ··· 23 23 } 24 24 }, 25 25 "node_modules/@astrojs/compiler": { 26 - "version": "2.12.2", 27 - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.12.2.tgz", 28 - "integrity": "sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==", 26 + "version": "2.13.0", 27 + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.0.tgz", 28 + "integrity": "sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==", 29 29 "license": "MIT" 30 30 }, 31 31 "node_modules/@astrojs/internal-helpers": { 32 - "version": "0.7.2", 33 - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.2.tgz", 34 - "integrity": "sha512-KCkCqR3Goym79soqEtbtLzJfqhTWMyVaizUi35FLzgGSzBotSw8DB1qwsu7U96ihOJgYhDk2nVPz+3LnXPeX6g==", 32 + "version": "0.7.5", 33 + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.5.tgz", 34 + "integrity": "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==", 35 35 "license": "MIT" 36 36 }, 37 37 "node_modules/@astrojs/markdown-remark": { 38 - "version": "6.3.6", 39 - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.6.tgz", 40 - "integrity": "sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug==", 38 + "version": "6.3.10", 39 + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.10.tgz", 40 + "integrity": "sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==", 41 41 "license": "MIT", 42 42 "dependencies": { 43 - "@astrojs/internal-helpers": "0.7.2", 43 + "@astrojs/internal-helpers": "0.7.5", 44 44 "@astrojs/prism": "3.3.0", 45 45 "github-slugger": "^2.0.0", 46 46 "hast-util-from-html": "^2.0.3", 47 47 "hast-util-to-text": "^4.0.2", 48 - "import-meta-resolve": "^4.1.0", 49 - "js-yaml": "^4.1.0", 48 + "import-meta-resolve": "^4.2.0", 49 + "js-yaml": "^4.1.1", 50 50 "mdast-util-definitions": "^6.0.0", 51 51 "rehype-raw": "^7.0.0", 52 52 "rehype-stringify": "^10.0.1", ··· 54 54 "remark-parse": "^11.0.0", 55 55 "remark-rehype": "^11.1.2", 56 56 "remark-smartypants": "^3.0.2", 57 - "shiki": "^3.2.1", 58 - "smol-toml": "^1.3.4", 57 + "shiki": "^3.19.0", 58 + "smol-toml": "^1.5.2", 59 59 "unified": "^11.0.5", 60 60 "unist-util-remove-position": "^5.0.0", 61 61 "unist-util-visit": "^5.0.0", 62 - "unist-util-visit-parents": "^6.0.1", 62 + "unist-util-visit-parents": "^6.0.2", 63 63 "vfile": "^6.0.3" 64 64 } 65 65 }, 66 66 "node_modules/@astrojs/mdx": { 67 - "version": "4.3.5", 68 - "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.3.5.tgz", 69 - "integrity": "sha512-YB3Hhsvl1BxyY0ARe1OrnVzLNKDPXAz9epYvmL+MQ8A85duSsSLQaO3GHB6/qZJKNoLmP6PptOtCONCKkbhPeQ==", 67 + "version": "4.3.13", 68 + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.3.13.tgz", 69 + "integrity": "sha512-IHDHVKz0JfKBy3//52JSiyWv089b7GVSChIXLrlUOoTLWowG3wr2/8hkaEgEyd/vysvNQvGk+QhysXpJW5ve6Q==", 70 70 "license": "MIT", 71 71 "dependencies": { 72 - "@astrojs/markdown-remark": "6.3.6", 72 + "@astrojs/markdown-remark": "6.3.10", 73 73 "@mdx-js/mdx": "^3.1.1", 74 74 "acorn": "^8.15.0", 75 75 "es-module-lexer": "^1.7.0", 76 76 "estree-util-visit": "^2.0.0", 77 77 "hast-util-to-html": "^9.0.5", 78 - "kleur": "^4.1.5", 78 + "piccolore": "^0.1.3", 79 79 "rehype-raw": "^7.0.0", 80 80 "remark-gfm": "^4.0.1", 81 81 "remark-smartypants": "^3.0.2", ··· 103 103 } 104 104 }, 105 105 "node_modules/@astrojs/react": { 106 - "version": "4.3.1", 107 - "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.3.1.tgz", 108 - "integrity": "sha512-Jhv35TsDHuQLvwof2z10P3g1s9wIR4UN9jE7O4NZBJNXOt/+qk+L0rY9th4SX7VzccKmRltUGxAhI1cXH52gXw==", 106 + "version": "4.4.2", 107 + "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.4.2.tgz", 108 + "integrity": "sha512-1tl95bpGfuaDMDn8O3x/5Dxii1HPvzjvpL2YTuqOOrQehs60I2DKiDgh1jrKc7G8lv+LQT5H15V6QONQ+9waeQ==", 109 109 "license": "MIT", 110 110 "dependencies": { 111 111 "@vitejs/plugin-react": "^4.7.0", 112 112 "ultrahtml": "^1.6.0", 113 - "vite": "^6.3.6" 113 + "vite": "^6.4.1" 114 114 }, 115 115 "engines": { 116 116 "node": "18.20.8 || ^20.3.0 || >=22.0.0" ··· 283 283 } 284 284 }, 285 285 "node_modules/@babel/helper-validator-identifier": { 286 - "version": "7.27.1", 287 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 288 - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 286 + "version": "7.28.5", 287 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 288 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 289 289 "license": "MIT", 290 290 "engines": { 291 291 "node": ">=6.9.0" ··· 314 314 } 315 315 }, 316 316 "node_modules/@babel/parser": { 317 - "version": "7.28.4", 318 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", 319 - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", 317 + "version": "7.28.5", 318 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", 319 + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", 320 320 "license": "MIT", 321 321 "dependencies": { 322 - "@babel/types": "^7.28.4" 322 + "@babel/types": "^7.28.5" 323 323 }, 324 324 "bin": { 325 325 "parser": "bin/babel-parser.js" ··· 391 391 } 392 392 }, 393 393 "node_modules/@babel/types": { 394 - "version": "7.28.4", 395 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", 396 - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", 394 + "version": "7.28.5", 395 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", 396 + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", 397 397 "license": "MIT", 398 398 "dependencies": { 399 399 "@babel/helper-string-parser": "^7.27.1", 400 - "@babel/helper-validator-identifier": "^7.27.1" 400 + "@babel/helper-validator-identifier": "^7.28.5" 401 401 }, 402 402 "engines": { 403 403 "node": ">=6.9.0" 404 404 } 405 405 }, 406 406 "node_modules/@capsizecss/unpack": { 407 - "version": "2.4.0", 408 - "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-2.4.0.tgz", 409 - "integrity": "sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==", 407 + "version": "4.0.0", 408 + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", 409 + "integrity": "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==", 410 410 "license": "MIT", 411 411 "dependencies": { 412 - "blob-to-buffer": "^1.2.8", 413 - "cross-fetch": "^3.0.4", 414 - "fontkit": "^2.0.2" 412 + "fontkitten": "^1.0.0" 413 + }, 414 + "engines": { 415 + "node": ">=18" 415 416 } 416 417 }, 417 418 "node_modules/@emnapi/runtime": { ··· 760 761 "node": ">=18" 761 762 } 762 763 }, 764 + "node_modules/@esbuild/openharmony-arm64": { 765 + "version": "0.27.3", 766 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", 767 + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", 768 + "cpu": [ 769 + "arm64" 770 + ], 771 + "license": "MIT", 772 + "optional": true, 773 + "os": [ 774 + "openharmony" 775 + ], 776 + "engines": { 777 + "node": ">=18" 778 + } 779 + }, 763 780 "node_modules/@esbuild/sunos-x64": { 764 781 "version": "0.25.3", 765 782 "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", ··· 1288 1305 } 1289 1306 }, 1290 1307 "node_modules/@lucide/astro": { 1291 - "version": "0.507.0", 1292 - "resolved": "https://registry.npmjs.org/@lucide/astro/-/astro-0.507.0.tgz", 1293 - "integrity": "sha512-rHE8pxuBHacbTo84zjJX1SIrBI7PdDz87i0AuZCFfP3I9c3jP5h2zLDoweFxzKdoESvRXnQ4dYr863PW/o0C3w==", 1308 + "version": "0.563.0", 1309 + "resolved": "https://registry.npmjs.org/@lucide/astro/-/astro-0.563.0.tgz", 1310 + "integrity": "sha512-X9fNJvRR6pLJfkIEAFQkizWaNVvcduunJoFyR3fwPu30Y6jOu5S9k4k7HTSk3ZrEfqK2eFEqrBqqWH4fwSNKCg==", 1294 1311 "license": "ISC", 1295 1312 "peerDependencies": { 1296 1313 "astro": "^4 || ^5" ··· 1653 1670 ] 1654 1671 }, 1655 1672 "node_modules/@shikijs/core": { 1656 - "version": "3.12.2", 1657 - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.12.2.tgz", 1658 - "integrity": "sha512-L1Safnhra3tX/oJK5kYHaWmLEBJi1irASwewzY3taX5ibyXyMkkSDZlq01qigjryOBwrXSdFgTiZ3ryzSNeu7Q==", 1673 + "version": "3.22.0", 1674 + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", 1675 + "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", 1659 1676 "license": "MIT", 1660 1677 "dependencies": { 1661 - "@shikijs/types": "3.12.2", 1678 + "@shikijs/types": "3.22.0", 1662 1679 "@shikijs/vscode-textmate": "^10.0.2", 1663 1680 "@types/hast": "^3.0.4", 1664 1681 "hast-util-to-html": "^9.0.5" 1665 1682 } 1666 1683 }, 1667 1684 "node_modules/@shikijs/engine-javascript": { 1668 - "version": "3.12.2", 1669 - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.12.2.tgz", 1670 - "integrity": "sha512-Nm3/azSsaVS7hk6EwtHEnTythjQfwvrO5tKqMlaH9TwG1P+PNaR8M0EAKZ+GaH2DFwvcr4iSfTveyxMIvXEHMw==", 1685 + "version": "3.22.0", 1686 + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", 1687 + "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", 1671 1688 "license": "MIT", 1672 1689 "dependencies": { 1673 - "@shikijs/types": "3.12.2", 1690 + "@shikijs/types": "3.22.0", 1674 1691 "@shikijs/vscode-textmate": "^10.0.2", 1675 - "oniguruma-to-es": "^4.3.3" 1692 + "oniguruma-to-es": "^4.3.4" 1676 1693 } 1677 1694 }, 1678 1695 "node_modules/@shikijs/engine-oniguruma": { 1679 - "version": "3.12.2", 1680 - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.12.2.tgz", 1681 - "integrity": "sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w==", 1696 + "version": "3.22.0", 1697 + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", 1698 + "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", 1682 1699 "license": "MIT", 1683 1700 "dependencies": { 1684 - "@shikijs/types": "3.12.2", 1701 + "@shikijs/types": "3.22.0", 1685 1702 "@shikijs/vscode-textmate": "^10.0.2" 1686 1703 } 1687 1704 }, 1688 1705 "node_modules/@shikijs/langs": { 1689 - "version": "3.12.2", 1690 - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.12.2.tgz", 1691 - "integrity": "sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww==", 1706 + "version": "3.22.0", 1707 + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", 1708 + "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", 1692 1709 "license": "MIT", 1693 1710 "dependencies": { 1694 - "@shikijs/types": "3.12.2" 1711 + "@shikijs/types": "3.22.0" 1695 1712 } 1696 1713 }, 1697 1714 "node_modules/@shikijs/themes": { 1698 - "version": "3.12.2", 1699 - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.12.2.tgz", 1700 - "integrity": "sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A==", 1715 + "version": "3.22.0", 1716 + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", 1717 + "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", 1701 1718 "license": "MIT", 1702 1719 "dependencies": { 1703 - "@shikijs/types": "3.12.2" 1720 + "@shikijs/types": "3.22.0" 1704 1721 } 1705 1722 }, 1706 1723 "node_modules/@shikijs/types": { 1707 - "version": "3.12.2", 1708 - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.12.2.tgz", 1709 - "integrity": "sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q==", 1724 + "version": "3.22.0", 1725 + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", 1726 + "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", 1710 1727 "license": "MIT", 1711 1728 "dependencies": { 1712 1729 "@shikijs/vscode-textmate": "^10.0.2", ··· 1719 1736 "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", 1720 1737 "license": "MIT" 1721 1738 }, 1722 - "node_modules/@swc/helpers": { 1723 - "version": "0.5.17", 1724 - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", 1725 - "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", 1726 - "license": "Apache-2.0", 1727 - "dependencies": { 1728 - "tslib": "^2.8.0" 1729 - } 1730 - }, 1731 1739 "node_modules/@tailwindcss/node": { 1732 1740 "version": "4.1.5", 1733 1741 "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.5.tgz", ··· 2047 2055 "@types/estree": "*" 2048 2056 } 2049 2057 }, 2050 - "node_modules/@types/fontkit": { 2051 - "version": "2.0.8", 2052 - "resolved": "https://registry.npmjs.org/@types/fontkit/-/fontkit-2.0.8.tgz", 2053 - "integrity": "sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==", 2054 - "license": "MIT", 2055 - "dependencies": { 2056 - "@types/node": "*" 2057 - } 2058 - }, 2059 2058 "node_modules/@types/hast": { 2060 2059 "version": "3.0.4", 2061 2060 "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", ··· 2100 2099 "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz", 2101 2100 "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", 2102 2101 "license": "MIT", 2102 + "optional": true, 2103 + "peer": true, 2103 2104 "dependencies": { 2104 2105 "undici-types": "~7.10.0" 2105 2106 } ··· 2309 2310 } 2310 2311 }, 2311 2312 "node_modules/astro": { 2312 - "version": "5.13.7", 2313 - "resolved": "https://registry.npmjs.org/astro/-/astro-5.13.7.tgz", 2314 - "integrity": "sha512-Of2tST7ErbE4y1dVb4aWDXaQSIRBAfraJ4jDqaA3PzPRJOn6Ina36+tQ+8BezjYqiWwRRJdOEE07PRAJXnsddw==", 2313 + "version": "5.18.0", 2314 + "resolved": "https://registry.npmjs.org/astro/-/astro-5.18.0.tgz", 2315 + "integrity": "sha512-CHiohwJIS4L0G6/IzE1Fx3dgWqXBCXus/od0eGUfxrZJD2um2pE7ehclMmgL/fXqbU7NfE1Ze2pq34h2QaA6iQ==", 2315 2316 "license": "MIT", 2316 2317 "dependencies": { 2317 - "@astrojs/compiler": "^2.12.2", 2318 - "@astrojs/internal-helpers": "0.7.2", 2319 - "@astrojs/markdown-remark": "6.3.6", 2318 + "@astrojs/compiler": "^2.13.0", 2319 + "@astrojs/internal-helpers": "0.7.5", 2320 + "@astrojs/markdown-remark": "6.3.10", 2320 2321 "@astrojs/telemetry": "3.3.0", 2321 - "@capsizecss/unpack": "^2.4.0", 2322 + "@capsizecss/unpack": "^4.0.0", 2322 2323 "@oslojs/encoding": "^1.1.0", 2323 - "@rollup/pluginutils": "^5.2.0", 2324 + "@rollup/pluginutils": "^5.3.0", 2324 2325 "acorn": "^8.15.0", 2325 2326 "aria-query": "^5.3.2", 2326 2327 "axobject-query": "^4.1.0", 2327 2328 "boxen": "8.0.1", 2328 - "ci-info": "^4.3.0", 2329 + "ci-info": "^4.3.1", 2329 2330 "clsx": "^2.1.1", 2330 2331 "common-ancestor-path": "^1.0.1", 2331 - "cookie": "^1.0.2", 2332 + "cookie": "^1.1.1", 2332 2333 "cssesc": "^3.0.0", 2333 - "debug": "^4.4.1", 2334 + "debug": "^4.4.3", 2334 2335 "deterministic-object-hash": "^2.0.2", 2335 - "devalue": "^5.1.1", 2336 - "diff": "^5.2.0", 2336 + "devalue": "^5.6.2", 2337 + "diff": "^8.0.3", 2337 2338 "dlv": "^1.1.3", 2338 2339 "dset": "^3.1.4", 2339 2340 "es-module-lexer": "^1.7.0", 2340 - "esbuild": "^0.25.0", 2341 + "esbuild": "^0.27.3", 2341 2342 "estree-walker": "^3.0.3", 2342 2343 "flattie": "^1.1.1", 2343 - "fontace": "~0.3.0", 2344 + "fontace": "~0.4.0", 2344 2345 "github-slugger": "^2.0.0", 2345 2346 "html-escaper": "3.0.3", 2346 2347 "http-cache-semantics": "^4.2.0", 2347 2348 "import-meta-resolve": "^4.2.0", 2348 - "js-yaml": "^4.1.0", 2349 - "kleur": "^4.1.5", 2350 - "magic-string": "^0.30.18", 2351 - "magicast": "^0.3.5", 2349 + "js-yaml": "^4.1.1", 2350 + "magic-string": "^0.30.21", 2351 + "magicast": "^0.5.1", 2352 2352 "mrmime": "^2.0.1", 2353 2353 "neotraverse": "^0.6.18", 2354 2354 "p-limit": "^6.2.0", 2355 - "p-queue": "^8.1.0", 2356 - "package-manager-detector": "^1.3.0", 2355 + "p-queue": "^8.1.1", 2356 + "package-manager-detector": "^1.6.0", 2357 + "piccolore": "^0.1.3", 2357 2358 "picomatch": "^4.0.3", 2358 2359 "prompts": "^2.4.2", 2359 2360 "rehype": "^13.0.2", 2360 - "semver": "^7.7.2", 2361 - "shiki": "^3.12.0", 2362 - "smol-toml": "^1.4.2", 2363 - "tinyexec": "^0.3.2", 2364 - "tinyglobby": "^0.2.14", 2361 + "semver": "^7.7.3", 2362 + "shiki": "^3.21.0", 2363 + "smol-toml": "^1.6.0", 2364 + "svgo": "^4.0.0", 2365 + "tinyexec": "^1.0.2", 2366 + "tinyglobby": "^0.2.15", 2365 2367 "tsconfck": "^3.1.6", 2366 2368 "ultrahtml": "^1.6.0", 2367 - "unifont": "~0.5.2", 2369 + "unifont": "~0.7.3", 2368 2370 "unist-util-visit": "^5.0.0", 2369 - "unstorage": "^1.17.0", 2371 + "unstorage": "^1.17.4", 2370 2372 "vfile": "^6.0.3", 2371 - "vite": "^6.3.6", 2373 + "vite": "^6.4.1", 2372 2374 "vitefu": "^1.1.1", 2373 2375 "xxhash-wasm": "^1.1.0", 2374 2376 "yargs-parser": "^21.1.1", 2375 2377 "yocto-spinner": "^0.2.3", 2376 2378 "zod": "^3.25.76", 2377 - "zod-to-json-schema": "^3.24.6", 2379 + "zod-to-json-schema": "^3.25.1", 2378 2380 "zod-to-ts": "^1.2.0" 2379 2381 }, 2380 2382 "bin": { ··· 2393 2395 "sharp": "^0.34.0" 2394 2396 } 2395 2397 }, 2398 + "node_modules/astro/node_modules/@esbuild/aix-ppc64": { 2399 + "version": "0.27.3", 2400 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", 2401 + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", 2402 + "cpu": [ 2403 + "ppc64" 2404 + ], 2405 + "license": "MIT", 2406 + "optional": true, 2407 + "os": [ 2408 + "aix" 2409 + ], 2410 + "engines": { 2411 + "node": ">=18" 2412 + } 2413 + }, 2414 + "node_modules/astro/node_modules/@esbuild/android-arm": { 2415 + "version": "0.27.3", 2416 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", 2417 + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", 2418 + "cpu": [ 2419 + "arm" 2420 + ], 2421 + "license": "MIT", 2422 + "optional": true, 2423 + "os": [ 2424 + "android" 2425 + ], 2426 + "engines": { 2427 + "node": ">=18" 2428 + } 2429 + }, 2430 + "node_modules/astro/node_modules/@esbuild/android-arm64": { 2431 + "version": "0.27.3", 2432 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", 2433 + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", 2434 + "cpu": [ 2435 + "arm64" 2436 + ], 2437 + "license": "MIT", 2438 + "optional": true, 2439 + "os": [ 2440 + "android" 2441 + ], 2442 + "engines": { 2443 + "node": ">=18" 2444 + } 2445 + }, 2446 + "node_modules/astro/node_modules/@esbuild/android-x64": { 2447 + "version": "0.27.3", 2448 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", 2449 + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", 2450 + "cpu": [ 2451 + "x64" 2452 + ], 2453 + "license": "MIT", 2454 + "optional": true, 2455 + "os": [ 2456 + "android" 2457 + ], 2458 + "engines": { 2459 + "node": ">=18" 2460 + } 2461 + }, 2462 + "node_modules/astro/node_modules/@esbuild/darwin-arm64": { 2463 + "version": "0.27.3", 2464 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", 2465 + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", 2466 + "cpu": [ 2467 + "arm64" 2468 + ], 2469 + "license": "MIT", 2470 + "optional": true, 2471 + "os": [ 2472 + "darwin" 2473 + ], 2474 + "engines": { 2475 + "node": ">=18" 2476 + } 2477 + }, 2478 + "node_modules/astro/node_modules/@esbuild/darwin-x64": { 2479 + "version": "0.27.3", 2480 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", 2481 + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", 2482 + "cpu": [ 2483 + "x64" 2484 + ], 2485 + "license": "MIT", 2486 + "optional": true, 2487 + "os": [ 2488 + "darwin" 2489 + ], 2490 + "engines": { 2491 + "node": ">=18" 2492 + } 2493 + }, 2494 + "node_modules/astro/node_modules/@esbuild/freebsd-arm64": { 2495 + "version": "0.27.3", 2496 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", 2497 + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", 2498 + "cpu": [ 2499 + "arm64" 2500 + ], 2501 + "license": "MIT", 2502 + "optional": true, 2503 + "os": [ 2504 + "freebsd" 2505 + ], 2506 + "engines": { 2507 + "node": ">=18" 2508 + } 2509 + }, 2510 + "node_modules/astro/node_modules/@esbuild/freebsd-x64": { 2511 + "version": "0.27.3", 2512 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", 2513 + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", 2514 + "cpu": [ 2515 + "x64" 2516 + ], 2517 + "license": "MIT", 2518 + "optional": true, 2519 + "os": [ 2520 + "freebsd" 2521 + ], 2522 + "engines": { 2523 + "node": ">=18" 2524 + } 2525 + }, 2526 + "node_modules/astro/node_modules/@esbuild/linux-arm": { 2527 + "version": "0.27.3", 2528 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", 2529 + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", 2530 + "cpu": [ 2531 + "arm" 2532 + ], 2533 + "license": "MIT", 2534 + "optional": true, 2535 + "os": [ 2536 + "linux" 2537 + ], 2538 + "engines": { 2539 + "node": ">=18" 2540 + } 2541 + }, 2542 + "node_modules/astro/node_modules/@esbuild/linux-arm64": { 2543 + "version": "0.27.3", 2544 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", 2545 + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", 2546 + "cpu": [ 2547 + "arm64" 2548 + ], 2549 + "license": "MIT", 2550 + "optional": true, 2551 + "os": [ 2552 + "linux" 2553 + ], 2554 + "engines": { 2555 + "node": ">=18" 2556 + } 2557 + }, 2558 + "node_modules/astro/node_modules/@esbuild/linux-ia32": { 2559 + "version": "0.27.3", 2560 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", 2561 + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", 2562 + "cpu": [ 2563 + "ia32" 2564 + ], 2565 + "license": "MIT", 2566 + "optional": true, 2567 + "os": [ 2568 + "linux" 2569 + ], 2570 + "engines": { 2571 + "node": ">=18" 2572 + } 2573 + }, 2574 + "node_modules/astro/node_modules/@esbuild/linux-loong64": { 2575 + "version": "0.27.3", 2576 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", 2577 + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", 2578 + "cpu": [ 2579 + "loong64" 2580 + ], 2581 + "license": "MIT", 2582 + "optional": true, 2583 + "os": [ 2584 + "linux" 2585 + ], 2586 + "engines": { 2587 + "node": ">=18" 2588 + } 2589 + }, 2590 + "node_modules/astro/node_modules/@esbuild/linux-mips64el": { 2591 + "version": "0.27.3", 2592 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", 2593 + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", 2594 + "cpu": [ 2595 + "mips64el" 2596 + ], 2597 + "license": "MIT", 2598 + "optional": true, 2599 + "os": [ 2600 + "linux" 2601 + ], 2602 + "engines": { 2603 + "node": ">=18" 2604 + } 2605 + }, 2606 + "node_modules/astro/node_modules/@esbuild/linux-ppc64": { 2607 + "version": "0.27.3", 2608 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", 2609 + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", 2610 + "cpu": [ 2611 + "ppc64" 2612 + ], 2613 + "license": "MIT", 2614 + "optional": true, 2615 + "os": [ 2616 + "linux" 2617 + ], 2618 + "engines": { 2619 + "node": ">=18" 2620 + } 2621 + }, 2622 + "node_modules/astro/node_modules/@esbuild/linux-riscv64": { 2623 + "version": "0.27.3", 2624 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", 2625 + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", 2626 + "cpu": [ 2627 + "riscv64" 2628 + ], 2629 + "license": "MIT", 2630 + "optional": true, 2631 + "os": [ 2632 + "linux" 2633 + ], 2634 + "engines": { 2635 + "node": ">=18" 2636 + } 2637 + }, 2638 + "node_modules/astro/node_modules/@esbuild/linux-s390x": { 2639 + "version": "0.27.3", 2640 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", 2641 + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", 2642 + "cpu": [ 2643 + "s390x" 2644 + ], 2645 + "license": "MIT", 2646 + "optional": true, 2647 + "os": [ 2648 + "linux" 2649 + ], 2650 + "engines": { 2651 + "node": ">=18" 2652 + } 2653 + }, 2654 + "node_modules/astro/node_modules/@esbuild/linux-x64": { 2655 + "version": "0.27.3", 2656 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", 2657 + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", 2658 + "cpu": [ 2659 + "x64" 2660 + ], 2661 + "license": "MIT", 2662 + "optional": true, 2663 + "os": [ 2664 + "linux" 2665 + ], 2666 + "engines": { 2667 + "node": ">=18" 2668 + } 2669 + }, 2670 + "node_modules/astro/node_modules/@esbuild/netbsd-arm64": { 2671 + "version": "0.27.3", 2672 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", 2673 + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", 2674 + "cpu": [ 2675 + "arm64" 2676 + ], 2677 + "license": "MIT", 2678 + "optional": true, 2679 + "os": [ 2680 + "netbsd" 2681 + ], 2682 + "engines": { 2683 + "node": ">=18" 2684 + } 2685 + }, 2686 + "node_modules/astro/node_modules/@esbuild/netbsd-x64": { 2687 + "version": "0.27.3", 2688 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", 2689 + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", 2690 + "cpu": [ 2691 + "x64" 2692 + ], 2693 + "license": "MIT", 2694 + "optional": true, 2695 + "os": [ 2696 + "netbsd" 2697 + ], 2698 + "engines": { 2699 + "node": ">=18" 2700 + } 2701 + }, 2702 + "node_modules/astro/node_modules/@esbuild/openbsd-arm64": { 2703 + "version": "0.27.3", 2704 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", 2705 + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", 2706 + "cpu": [ 2707 + "arm64" 2708 + ], 2709 + "license": "MIT", 2710 + "optional": true, 2711 + "os": [ 2712 + "openbsd" 2713 + ], 2714 + "engines": { 2715 + "node": ">=18" 2716 + } 2717 + }, 2718 + "node_modules/astro/node_modules/@esbuild/openbsd-x64": { 2719 + "version": "0.27.3", 2720 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", 2721 + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", 2722 + "cpu": [ 2723 + "x64" 2724 + ], 2725 + "license": "MIT", 2726 + "optional": true, 2727 + "os": [ 2728 + "openbsd" 2729 + ], 2730 + "engines": { 2731 + "node": ">=18" 2732 + } 2733 + }, 2734 + "node_modules/astro/node_modules/@esbuild/sunos-x64": { 2735 + "version": "0.27.3", 2736 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", 2737 + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", 2738 + "cpu": [ 2739 + "x64" 2740 + ], 2741 + "license": "MIT", 2742 + "optional": true, 2743 + "os": [ 2744 + "sunos" 2745 + ], 2746 + "engines": { 2747 + "node": ">=18" 2748 + } 2749 + }, 2750 + "node_modules/astro/node_modules/@esbuild/win32-arm64": { 2751 + "version": "0.27.3", 2752 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", 2753 + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", 2754 + "cpu": [ 2755 + "arm64" 2756 + ], 2757 + "license": "MIT", 2758 + "optional": true, 2759 + "os": [ 2760 + "win32" 2761 + ], 2762 + "engines": { 2763 + "node": ">=18" 2764 + } 2765 + }, 2766 + "node_modules/astro/node_modules/@esbuild/win32-ia32": { 2767 + "version": "0.27.3", 2768 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", 2769 + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", 2770 + "cpu": [ 2771 + "ia32" 2772 + ], 2773 + "license": "MIT", 2774 + "optional": true, 2775 + "os": [ 2776 + "win32" 2777 + ], 2778 + "engines": { 2779 + "node": ">=18" 2780 + } 2781 + }, 2782 + "node_modules/astro/node_modules/@esbuild/win32-x64": { 2783 + "version": "0.27.3", 2784 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", 2785 + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", 2786 + "cpu": [ 2787 + "x64" 2788 + ], 2789 + "license": "MIT", 2790 + "optional": true, 2791 + "os": [ 2792 + "win32" 2793 + ], 2794 + "engines": { 2795 + "node": ">=18" 2796 + } 2797 + }, 2798 + "node_modules/astro/node_modules/esbuild": { 2799 + "version": "0.27.3", 2800 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", 2801 + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", 2802 + "hasInstallScript": true, 2803 + "license": "MIT", 2804 + "bin": { 2805 + "esbuild": "bin/esbuild" 2806 + }, 2807 + "engines": { 2808 + "node": ">=18" 2809 + }, 2810 + "optionalDependencies": { 2811 + "@esbuild/aix-ppc64": "0.27.3", 2812 + "@esbuild/android-arm": "0.27.3", 2813 + "@esbuild/android-arm64": "0.27.3", 2814 + "@esbuild/android-x64": "0.27.3", 2815 + "@esbuild/darwin-arm64": "0.27.3", 2816 + "@esbuild/darwin-x64": "0.27.3", 2817 + "@esbuild/freebsd-arm64": "0.27.3", 2818 + "@esbuild/freebsd-x64": "0.27.3", 2819 + "@esbuild/linux-arm": "0.27.3", 2820 + "@esbuild/linux-arm64": "0.27.3", 2821 + "@esbuild/linux-ia32": "0.27.3", 2822 + "@esbuild/linux-loong64": "0.27.3", 2823 + "@esbuild/linux-mips64el": "0.27.3", 2824 + "@esbuild/linux-ppc64": "0.27.3", 2825 + "@esbuild/linux-riscv64": "0.27.3", 2826 + "@esbuild/linux-s390x": "0.27.3", 2827 + "@esbuild/linux-x64": "0.27.3", 2828 + "@esbuild/netbsd-arm64": "0.27.3", 2829 + "@esbuild/netbsd-x64": "0.27.3", 2830 + "@esbuild/openbsd-arm64": "0.27.3", 2831 + "@esbuild/openbsd-x64": "0.27.3", 2832 + "@esbuild/openharmony-arm64": "0.27.3", 2833 + "@esbuild/sunos-x64": "0.27.3", 2834 + "@esbuild/win32-arm64": "0.27.3", 2835 + "@esbuild/win32-ia32": "0.27.3", 2836 + "@esbuild/win32-x64": "0.27.3" 2837 + } 2838 + }, 2396 2839 "node_modules/astro/node_modules/semver": { 2397 - "version": "7.7.2", 2398 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2399 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2840 + "version": "7.7.3", 2841 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 2842 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 2400 2843 "license": "ISC", 2401 2844 "bin": { 2402 2845 "semver": "bin/semver.js" ··· 2430 2873 "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", 2431 2874 "license": "MIT" 2432 2875 }, 2433 - "node_modules/base64-js": { 2434 - "version": "1.5.1", 2435 - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2436 - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 2437 - "funding": [ 2438 - { 2439 - "type": "github", 2440 - "url": "https://github.com/sponsors/feross" 2441 - }, 2442 - { 2443 - "type": "patreon", 2444 - "url": "https://www.patreon.com/feross" 2445 - }, 2446 - { 2447 - "type": "consulting", 2448 - "url": "https://feross.org/support" 2449 - } 2450 - ], 2451 - "license": "MIT" 2452 - }, 2453 - "node_modules/blob-to-buffer": { 2454 - "version": "1.2.9", 2455 - "resolved": "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz", 2456 - "integrity": "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==", 2457 - "funding": [ 2458 - { 2459 - "type": "github", 2460 - "url": "https://github.com/sponsors/feross" 2461 - }, 2462 - { 2463 - "type": "patreon", 2464 - "url": "https://www.patreon.com/feross" 2465 - }, 2466 - { 2467 - "type": "consulting", 2468 - "url": "https://feross.org/support" 2469 - } 2470 - ], 2471 - "license": "MIT" 2876 + "node_modules/boolbase": { 2877 + "version": "1.0.0", 2878 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 2879 + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", 2880 + "license": "ISC" 2472 2881 }, 2473 2882 "node_modules/boxen": { 2474 2883 "version": "8.0.1", ··· 2492 2901 "url": "https://github.com/sponsors/sindresorhus" 2493 2902 } 2494 2903 }, 2495 - "node_modules/brotli": { 2496 - "version": "1.3.3", 2497 - "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", 2498 - "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", 2499 - "license": "MIT", 2500 - "dependencies": { 2501 - "base64-js": "^1.1.2" 2502 - } 2503 - }, 2504 2904 "node_modules/browserslist": { 2505 2905 "version": "4.25.4", 2506 2906 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", ··· 2628 3028 } 2629 3029 }, 2630 3030 "node_modules/chokidar": { 2631 - "version": "4.0.3", 2632 - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 2633 - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 3031 + "version": "5.0.0", 3032 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", 3033 + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", 2634 3034 "license": "MIT", 2635 3035 "dependencies": { 2636 - "readdirp": "^4.0.1" 3036 + "readdirp": "^5.0.0" 2637 3037 }, 2638 3038 "engines": { 2639 - "node": ">= 14.16.0" 3039 + "node": ">= 20.19.0" 2640 3040 }, 2641 3041 "funding": { 2642 3042 "url": "https://paulmillr.com/funding/" 2643 3043 } 2644 3044 }, 2645 3045 "node_modules/ci-info": { 2646 - "version": "4.3.0", 2647 - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", 2648 - "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", 3046 + "version": "4.3.1", 3047 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", 3048 + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", 2649 3049 "funding": [ 2650 3050 { 2651 3051 "type": "github", ··· 2669 3069 "url": "https://github.com/sponsors/sindresorhus" 2670 3070 } 2671 3071 }, 2672 - "node_modules/clone": { 2673 - "version": "2.1.2", 2674 - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 2675 - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", 2676 - "license": "MIT", 2677 - "engines": { 2678 - "node": ">=0.8" 2679 - } 2680 - }, 2681 3072 "node_modules/clsx": { 2682 3073 "version": "2.1.1", 2683 3074 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", ··· 2752 3143 "url": "https://github.com/sponsors/wooorm" 2753 3144 } 2754 3145 }, 3146 + "node_modules/commander": { 3147 + "version": "11.1.0", 3148 + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", 3149 + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", 3150 + "license": "MIT", 3151 + "engines": { 3152 + "node": ">=16" 3153 + } 3154 + }, 2755 3155 "node_modules/common-ancestor-path": { 2756 3156 "version": "1.0.1", 2757 3157 "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", ··· 2765 3165 "license": "MIT" 2766 3166 }, 2767 3167 "node_modules/cookie": { 2768 - "version": "1.0.2", 2769 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", 2770 - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", 3168 + "version": "1.1.1", 3169 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 3170 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 2771 3171 "license": "MIT", 2772 3172 "engines": { 2773 3173 "node": ">=18" 3174 + }, 3175 + "funding": { 3176 + "type": "opencollective", 3177 + "url": "https://opencollective.com/express" 2774 3178 } 2775 3179 }, 2776 3180 "node_modules/cookie-es": { ··· 2779 3183 "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", 2780 3184 "license": "MIT" 2781 3185 }, 2782 - "node_modules/cross-fetch": { 2783 - "version": "3.2.0", 2784 - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", 2785 - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", 2786 - "license": "MIT", 2787 - "dependencies": { 2788 - "node-fetch": "^2.7.0" 2789 - } 2790 - }, 2791 3186 "node_modules/crossws": { 2792 3187 "version": "0.3.5", 2793 3188 "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", ··· 2797 3192 "uncrypto": "^0.1.3" 2798 3193 } 2799 3194 }, 3195 + "node_modules/css-select": { 3196 + "version": "5.2.2", 3197 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", 3198 + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", 3199 + "license": "BSD-2-Clause", 3200 + "dependencies": { 3201 + "boolbase": "^1.0.0", 3202 + "css-what": "^6.1.0", 3203 + "domhandler": "^5.0.2", 3204 + "domutils": "^3.0.1", 3205 + "nth-check": "^2.0.1" 3206 + }, 3207 + "funding": { 3208 + "url": "https://github.com/sponsors/fb55" 3209 + } 3210 + }, 2800 3211 "node_modules/css-tree": { 2801 3212 "version": "3.1.0", 2802 3213 "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", ··· 2810 3221 "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 2811 3222 } 2812 3223 }, 3224 + "node_modules/css-what": { 3225 + "version": "6.2.2", 3226 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", 3227 + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", 3228 + "license": "BSD-2-Clause", 3229 + "engines": { 3230 + "node": ">= 6" 3231 + }, 3232 + "funding": { 3233 + "url": "https://github.com/sponsors/fb55" 3234 + } 3235 + }, 2813 3236 "node_modules/cssesc": { 2814 3237 "version": "3.0.0", 2815 3238 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", ··· 2822 3245 "node": ">=4" 2823 3246 } 2824 3247 }, 3248 + "node_modules/csso": { 3249 + "version": "5.0.5", 3250 + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", 3251 + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", 3252 + "license": "MIT", 3253 + "dependencies": { 3254 + "css-tree": "~2.2.0" 3255 + }, 3256 + "engines": { 3257 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 3258 + "npm": ">=7.0.0" 3259 + } 3260 + }, 3261 + "node_modules/csso/node_modules/css-tree": { 3262 + "version": "2.2.1", 3263 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", 3264 + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", 3265 + "license": "MIT", 3266 + "dependencies": { 3267 + "mdn-data": "2.0.28", 3268 + "source-map-js": "^1.0.1" 3269 + }, 3270 + "engines": { 3271 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 3272 + "npm": ">=7.0.0" 3273 + } 3274 + }, 3275 + "node_modules/csso/node_modules/mdn-data": { 3276 + "version": "2.0.28", 3277 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", 3278 + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", 3279 + "license": "CC0-1.0" 3280 + }, 2825 3281 "node_modules/csstype": { 2826 3282 "version": "3.1.3", 2827 3283 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", ··· 2829 3285 "license": "MIT" 2830 3286 }, 2831 3287 "node_modules/debug": { 2832 - "version": "4.4.1", 2833 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 2834 - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 3288 + "version": "4.4.3", 3289 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 3290 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 2835 3291 "license": "MIT", 2836 3292 "dependencies": { 2837 3293 "ms": "^2.1.3" ··· 2901 3357 } 2902 3358 }, 2903 3359 "node_modules/devalue": { 2904 - "version": "5.1.1", 2905 - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", 2906 - "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", 3360 + "version": "5.6.2", 3361 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", 3362 + "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", 2907 3363 "license": "MIT" 2908 3364 }, 2909 3365 "node_modules/devlop": { ··· 2918 3374 "type": "github", 2919 3375 "url": "https://github.com/sponsors/wooorm" 2920 3376 } 2921 - }, 2922 - "node_modules/dfa": { 2923 - "version": "1.2.0", 2924 - "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", 2925 - "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", 2926 - "license": "MIT" 2927 3377 }, 2928 3378 "node_modules/diff": { 2929 - "version": "5.2.0", 2930 - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", 2931 - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", 3379 + "version": "8.0.3", 3380 + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", 3381 + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", 2932 3382 "license": "BSD-3-Clause", 2933 3383 "engines": { 2934 3384 "node": ">=0.3.1" ··· 2940 3390 "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 2941 3391 "license": "MIT" 2942 3392 }, 3393 + "node_modules/dom-serializer": { 3394 + "version": "2.0.0", 3395 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 3396 + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 3397 + "license": "MIT", 3398 + "dependencies": { 3399 + "domelementtype": "^2.3.0", 3400 + "domhandler": "^5.0.2", 3401 + "entities": "^4.2.0" 3402 + }, 3403 + "funding": { 3404 + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 3405 + } 3406 + }, 3407 + "node_modules/dom-serializer/node_modules/entities": { 3408 + "version": "4.5.0", 3409 + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 3410 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 3411 + "license": "BSD-2-Clause", 3412 + "engines": { 3413 + "node": ">=0.12" 3414 + }, 3415 + "funding": { 3416 + "url": "https://github.com/fb55/entities?sponsor=1" 3417 + } 3418 + }, 3419 + "node_modules/domelementtype": { 3420 + "version": "2.3.0", 3421 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 3422 + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 3423 + "funding": [ 3424 + { 3425 + "type": "github", 3426 + "url": "https://github.com/sponsors/fb55" 3427 + } 3428 + ], 3429 + "license": "BSD-2-Clause" 3430 + }, 3431 + "node_modules/domhandler": { 3432 + "version": "5.0.3", 3433 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 3434 + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 3435 + "license": "BSD-2-Clause", 3436 + "dependencies": { 3437 + "domelementtype": "^2.3.0" 3438 + }, 3439 + "engines": { 3440 + "node": ">= 4" 3441 + }, 3442 + "funding": { 3443 + "url": "https://github.com/fb55/domhandler?sponsor=1" 3444 + } 3445 + }, 3446 + "node_modules/domutils": { 3447 + "version": "3.2.2", 3448 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", 3449 + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", 3450 + "license": "BSD-2-Clause", 3451 + "dependencies": { 3452 + "dom-serializer": "^2.0.0", 3453 + "domelementtype": "^2.3.0", 3454 + "domhandler": "^5.0.3" 3455 + }, 3456 + "funding": { 3457 + "url": "https://github.com/fb55/domutils?sponsor=1" 3458 + } 3459 + }, 2943 3460 "node_modules/dset": { 2944 3461 "version": "3.1.4", 2945 3462 "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", ··· 3188 3705 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 3189 3706 "license": "MIT" 3190 3707 }, 3191 - "node_modules/fast-deep-equal": { 3192 - "version": "3.1.3", 3193 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3194 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 3195 - "license": "MIT" 3196 - }, 3197 3708 "node_modules/fdir": { 3198 3709 "version": "6.5.0", 3199 3710 "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", ··· 3221 3732 } 3222 3733 }, 3223 3734 "node_modules/fontace": { 3224 - "version": "0.3.0", 3225 - "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.3.0.tgz", 3226 - "integrity": "sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg==", 3735 + "version": "0.4.1", 3736 + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", 3737 + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", 3227 3738 "license": "MIT", 3228 3739 "dependencies": { 3229 - "@types/fontkit": "^2.0.8", 3230 - "fontkit": "^2.0.4" 3740 + "fontkitten": "^1.0.2" 3231 3741 } 3232 3742 }, 3233 - "node_modules/fontkit": { 3234 - "version": "2.0.4", 3235 - "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", 3236 - "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", 3743 + "node_modules/fontkitten": { 3744 + "version": "1.0.2", 3745 + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.2.tgz", 3746 + "integrity": "sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q==", 3237 3747 "license": "MIT", 3238 3748 "dependencies": { 3239 - "@swc/helpers": "^0.5.12", 3240 - "brotli": "^1.3.2", 3241 - "clone": "^2.1.2", 3242 - "dfa": "^1.2.0", 3243 - "fast-deep-equal": "^3.1.3", 3244 - "restructure": "^3.0.0", 3245 - "tiny-inflate": "^1.0.3", 3246 - "unicode-properties": "^1.4.0", 3247 - "unicode-trie": "^2.0.0" 3749 + "tiny-inflate": "^1.0.3" 3750 + }, 3751 + "engines": { 3752 + "node": ">=20" 3248 3753 } 3249 3754 }, 3250 3755 "node_modules/fsevents": { ··· 3295 3800 "license": "ISC" 3296 3801 }, 3297 3802 "node_modules/h3": { 3298 - "version": "1.15.4", 3299 - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", 3300 - "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", 3803 + "version": "1.15.5", 3804 + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz", 3805 + "integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==", 3301 3806 "license": "MIT", 3302 3807 "dependencies": { 3303 3808 "cookie-es": "^1.2.2", ··· 3305 3810 "defu": "^6.1.4", 3306 3811 "destr": "^2.0.5", 3307 3812 "iron-webcrypto": "^1.2.1", 3308 - "node-mock-http": "^1.0.2", 3813 + "node-mock-http": "^1.0.4", 3309 3814 "radix3": "^1.1.2", 3310 - "ufo": "^1.6.1", 3815 + "ufo": "^1.6.3", 3311 3816 "uncrypto": "^0.1.3" 3312 3817 } 3313 3818 }, ··· 3736 4241 "license": "MIT" 3737 4242 }, 3738 4243 "node_modules/js-yaml": { 3739 - "version": "4.1.0", 3740 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3741 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 4244 + "version": "4.1.1", 4245 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 4246 + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 3742 4247 "license": "MIT", 3743 4248 "dependencies": { 3744 4249 "argparse": "^2.0.1" ··· 3771 4276 "node": ">=6" 3772 4277 } 3773 4278 }, 3774 - "node_modules/kleur": { 3775 - "version": "4.1.5", 3776 - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 3777 - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 3778 - "license": "MIT", 3779 - "engines": { 3780 - "node": ">=6" 3781 - } 3782 - }, 3783 4279 "node_modules/lightningcss": { 3784 4280 "version": "1.29.2", 3785 4281 "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", ··· 4028 4524 } 4029 4525 }, 4030 4526 "node_modules/magic-string": { 4031 - "version": "0.30.19", 4032 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", 4033 - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", 4527 + "version": "0.30.21", 4528 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 4529 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 4034 4530 "license": "MIT", 4035 4531 "dependencies": { 4036 4532 "@jridgewell/sourcemap-codec": "^1.5.5" 4037 4533 } 4038 4534 }, 4039 4535 "node_modules/magicast": { 4040 - "version": "0.3.5", 4041 - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", 4042 - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", 4536 + "version": "0.5.1", 4537 + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", 4538 + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", 4043 4539 "license": "MIT", 4044 4540 "dependencies": { 4045 - "@babel/parser": "^7.25.4", 4046 - "@babel/types": "^7.25.4", 4047 - "source-map-js": "^1.2.0" 4541 + "@babel/parser": "^7.28.5", 4542 + "@babel/types": "^7.28.5", 4543 + "source-map-js": "^1.2.1" 4048 4544 } 4049 4545 }, 4050 4546 "node_modules/markdown-extensions": { ··· 4317 4813 } 4318 4814 }, 4319 4815 "node_modules/mdast-util-to-hast": { 4320 - "version": "13.2.0", 4321 - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", 4322 - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", 4816 + "version": "13.2.1", 4817 + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", 4818 + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", 4323 4819 "license": "MIT", 4324 4820 "dependencies": { 4325 4821 "@types/hast": "^3.0.0", ··· 5164 5660 "url": "https://opencollective.com/unified" 5165 5661 } 5166 5662 }, 5167 - "node_modules/node-fetch": { 5168 - "version": "2.7.0", 5169 - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 5170 - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 5171 - "license": "MIT", 5172 - "dependencies": { 5173 - "whatwg-url": "^5.0.0" 5174 - }, 5175 - "engines": { 5176 - "node": "4.x || >=6.0.0" 5177 - }, 5178 - "peerDependencies": { 5179 - "encoding": "^0.1.0" 5180 - }, 5181 - "peerDependenciesMeta": { 5182 - "encoding": { 5183 - "optional": true 5184 - } 5185 - } 5186 - }, 5187 5663 "node_modules/node-fetch-native": { 5188 5664 "version": "1.6.7", 5189 5665 "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", ··· 5191 5667 "license": "MIT" 5192 5668 }, 5193 5669 "node_modules/node-mock-http": { 5194 - "version": "1.0.3", 5195 - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.3.tgz", 5196 - "integrity": "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==", 5670 + "version": "1.0.4", 5671 + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", 5672 + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", 5197 5673 "license": "MIT" 5198 5674 }, 5199 5675 "node_modules/node-releases": { ··· 5211 5687 "node": ">=0.10.0" 5212 5688 } 5213 5689 }, 5690 + "node_modules/nth-check": { 5691 + "version": "2.1.1", 5692 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 5693 + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 5694 + "license": "BSD-2-Clause", 5695 + "dependencies": { 5696 + "boolbase": "^1.0.0" 5697 + }, 5698 + "funding": { 5699 + "url": "https://github.com/fb55/nth-check?sponsor=1" 5700 + } 5701 + }, 5214 5702 "node_modules/ofetch": { 5215 - "version": "1.4.1", 5216 - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", 5217 - "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", 5703 + "version": "1.5.1", 5704 + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", 5705 + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", 5218 5706 "license": "MIT", 5219 5707 "dependencies": { 5220 - "destr": "^2.0.3", 5221 - "node-fetch-native": "^1.6.4", 5222 - "ufo": "^1.5.4" 5708 + "destr": "^2.0.5", 5709 + "node-fetch-native": "^1.6.7", 5710 + "ufo": "^1.6.1" 5223 5711 } 5224 5712 }, 5225 5713 "node_modules/ohash": { ··· 5235 5723 "license": "MIT" 5236 5724 }, 5237 5725 "node_modules/oniguruma-to-es": { 5238 - "version": "4.3.3", 5239 - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", 5240 - "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==", 5726 + "version": "4.3.4", 5727 + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", 5728 + "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", 5241 5729 "license": "MIT", 5242 5730 "dependencies": { 5243 5731 "oniguruma-parser": "^0.12.1", ··· 5261 5749 } 5262 5750 }, 5263 5751 "node_modules/p-queue": { 5264 - "version": "8.1.0", 5265 - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", 5266 - "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", 5752 + "version": "8.1.1", 5753 + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", 5754 + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", 5267 5755 "license": "MIT", 5268 5756 "dependencies": { 5269 5757 "eventemitter3": "^5.0.1", ··· 5289 5777 } 5290 5778 }, 5291 5779 "node_modules/package-manager-detector": { 5292 - "version": "1.3.0", 5293 - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", 5294 - "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", 5295 - "license": "MIT" 5296 - }, 5297 - "node_modules/pako": { 5298 - "version": "0.2.9", 5299 - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", 5300 - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", 5780 + "version": "1.6.0", 5781 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", 5782 + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", 5301 5783 "license": "MIT" 5302 5784 }, 5303 5785 "node_modules/parse-entities": { ··· 5355 5837 "url": "https://github.com/inikulin/parse5?sponsor=1" 5356 5838 } 5357 5839 }, 5840 + "node_modules/piccolore": { 5841 + "version": "0.1.3", 5842 + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", 5843 + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", 5844 + "license": "ISC" 5845 + }, 5358 5846 "node_modules/picocolors": { 5359 5847 "version": "1.1.1", 5360 5848 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 5479 5967 } 5480 5968 }, 5481 5969 "node_modules/readdirp": { 5482 - "version": "4.1.2", 5483 - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 5484 - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 5970 + "version": "5.0.0", 5971 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", 5972 + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", 5485 5973 "license": "MIT", 5486 5974 "engines": { 5487 - "node": ">= 14.18.0" 5975 + "node": ">= 20.19.0" 5488 5976 }, 5489 5977 "funding": { 5490 5978 "type": "individual", ··· 5559 6047 } 5560 6048 }, 5561 6049 "node_modules/regex": { 5562 - "version": "6.0.1", 5563 - "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", 5564 - "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", 6050 + "version": "6.1.0", 6051 + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", 6052 + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", 5565 6053 "license": "MIT", 5566 6054 "dependencies": { 5567 6055 "regex-utilities": "^2.3.0" ··· 5753 6241 "url": "https://opencollective.com/unified" 5754 6242 } 5755 6243 }, 5756 - "node_modules/restructure": { 5757 - "version": "3.0.2", 5758 - "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", 5759 - "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", 5760 - "license": "MIT" 5761 - }, 5762 6244 "node_modules/retext": { 5763 6245 "version": "9.0.0", 5764 6246 "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", ··· 5859 6341 "fsevents": "~2.3.2" 5860 6342 } 5861 6343 }, 6344 + "node_modules/sax": { 6345 + "version": "1.4.3", 6346 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", 6347 + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", 6348 + "license": "BlueOak-1.0.0" 6349 + }, 5862 6350 "node_modules/scheduler": { 5863 6351 "version": "0.26.0", 5864 6352 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", ··· 5931 6419 } 5932 6420 }, 5933 6421 "node_modules/shiki": { 5934 - "version": "3.12.2", 5935 - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.12.2.tgz", 5936 - "integrity": "sha512-uIrKI+f9IPz1zDT+GMz+0RjzKJiijVr6WDWm9Pe3NNY6QigKCfifCEv9v9R2mDASKKjzjQ2QpFLcxaR3iHSnMA==", 6422 + "version": "3.22.0", 6423 + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", 6424 + "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", 5937 6425 "license": "MIT", 5938 6426 "dependencies": { 5939 - "@shikijs/core": "3.12.2", 5940 - "@shikijs/engine-javascript": "3.12.2", 5941 - "@shikijs/engine-oniguruma": "3.12.2", 5942 - "@shikijs/langs": "3.12.2", 5943 - "@shikijs/themes": "3.12.2", 5944 - "@shikijs/types": "3.12.2", 6427 + "@shikijs/core": "3.22.0", 6428 + "@shikijs/engine-javascript": "3.22.0", 6429 + "@shikijs/engine-oniguruma": "3.22.0", 6430 + "@shikijs/langs": "3.22.0", 6431 + "@shikijs/themes": "3.22.0", 6432 + "@shikijs/types": "3.22.0", 5945 6433 "@shikijs/vscode-textmate": "^10.0.2", 5946 6434 "@types/hast": "^3.0.4" 5947 6435 } ··· 5963 6451 "license": "MIT" 5964 6452 }, 5965 6453 "node_modules/smol-toml": { 5966 - "version": "1.4.2", 5967 - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz", 5968 - "integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==", 6454 + "version": "1.6.0", 6455 + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", 6456 + "integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==", 5969 6457 "license": "BSD-3-Clause", 5970 6458 "engines": { 5971 6459 "node": ">= 18" ··· 6066 6554 "inline-style-parser": "0.2.4" 6067 6555 } 6068 6556 }, 6557 + "node_modules/svgo": { 6558 + "version": "4.0.0", 6559 + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", 6560 + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", 6561 + "license": "MIT", 6562 + "dependencies": { 6563 + "commander": "^11.1.0", 6564 + "css-select": "^5.1.0", 6565 + "css-tree": "^3.0.1", 6566 + "css-what": "^6.1.0", 6567 + "csso": "^5.0.5", 6568 + "picocolors": "^1.1.1", 6569 + "sax": "^1.4.1" 6570 + }, 6571 + "bin": { 6572 + "svgo": "bin/svgo.js" 6573 + }, 6574 + "engines": { 6575 + "node": ">=16" 6576 + }, 6577 + "funding": { 6578 + "type": "opencollective", 6579 + "url": "https://opencollective.com/svgo" 6580 + } 6581 + }, 6069 6582 "node_modules/tailwindcss": { 6070 6583 "version": "4.1.5", 6071 6584 "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.5.tgz", ··· 6088 6601 "license": "MIT" 6089 6602 }, 6090 6603 "node_modules/tinyexec": { 6091 - "version": "0.3.2", 6092 - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 6093 - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 6094 - "license": "MIT" 6604 + "version": "1.0.2", 6605 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", 6606 + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", 6607 + "license": "MIT", 6608 + "engines": { 6609 + "node": ">=18" 6610 + } 6095 6611 }, 6096 6612 "node_modules/tinyglobby": { 6097 6613 "version": "0.2.15", ··· 6109 6625 "url": "https://github.com/sponsors/SuperchupuDev" 6110 6626 } 6111 6627 }, 6112 - "node_modules/tr46": { 6113 - "version": "0.0.3", 6114 - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 6115 - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 6116 - "license": "MIT" 6117 - }, 6118 6628 "node_modules/trim-lines": { 6119 6629 "version": "3.0.1", 6120 6630 "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", ··· 6159 6669 "version": "2.8.1", 6160 6670 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 6161 6671 "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 6162 - "license": "0BSD" 6672 + "license": "0BSD", 6673 + "optional": true 6163 6674 }, 6164 6675 "node_modules/type-fest": { 6165 6676 "version": "4.40.1", ··· 6188 6699 } 6189 6700 }, 6190 6701 "node_modules/ufo": { 6191 - "version": "1.6.1", 6192 - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 6193 - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 6702 + "version": "1.6.3", 6703 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", 6704 + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", 6194 6705 "license": "MIT" 6195 6706 }, 6196 6707 "node_modules/ultrahtml": { ··· 6209 6720 "version": "7.10.0", 6210 6721 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", 6211 6722 "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", 6212 - "license": "MIT" 6213 - }, 6214 - "node_modules/unicode-properties": { 6215 - "version": "1.4.1", 6216 - "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", 6217 - "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", 6218 6723 "license": "MIT", 6219 - "dependencies": { 6220 - "base64-js": "^1.3.0", 6221 - "unicode-trie": "^2.0.0" 6222 - } 6223 - }, 6224 - "node_modules/unicode-trie": { 6225 - "version": "2.0.0", 6226 - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", 6227 - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", 6228 - "license": "MIT", 6229 - "dependencies": { 6230 - "pako": "^0.2.5", 6231 - "tiny-inflate": "^1.0.0" 6232 - } 6724 + "optional": true, 6725 + "peer": true 6233 6726 }, 6234 6727 "node_modules/unified": { 6235 6728 "version": "11.0.5", ··· 6251 6744 } 6252 6745 }, 6253 6746 "node_modules/unifont": { 6254 - "version": "0.5.2", 6255 - "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.5.2.tgz", 6256 - "integrity": "sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==", 6747 + "version": "0.7.3", 6748 + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.3.tgz", 6749 + "integrity": "sha512-b0GtQzKCyuSHGsfj5vyN8st7muZ6VCI4XD4vFlr7Uy1rlWVYxC3npnfk8MyreHxJYrz1ooLDqDzFe9XqQTlAhA==", 6257 6750 "license": "MIT", 6258 6751 "dependencies": { 6259 - "css-tree": "^3.0.0", 6260 - "ofetch": "^1.4.1", 6261 - "ohash": "^2.0.0" 6752 + "css-tree": "^3.1.0", 6753 + "ofetch": "^1.5.1", 6754 + "ohash": "^2.0.11" 6262 6755 } 6263 6756 }, 6264 6757 "node_modules/unist-util-find-after": { ··· 6384 6877 } 6385 6878 }, 6386 6879 "node_modules/unist-util-visit-parents": { 6387 - "version": "6.0.1", 6388 - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", 6389 - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", 6880 + "version": "6.0.2", 6881 + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", 6882 + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", 6390 6883 "license": "MIT", 6391 6884 "dependencies": { 6392 6885 "@types/unist": "^3.0.0", ··· 6398 6891 } 6399 6892 }, 6400 6893 "node_modules/unstorage": { 6401 - "version": "1.17.1", 6402 - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", 6403 - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", 6894 + "version": "1.17.4", 6895 + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.4.tgz", 6896 + "integrity": "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==", 6404 6897 "license": "MIT", 6405 6898 "dependencies": { 6406 6899 "anymatch": "^3.1.3", 6407 - "chokidar": "^4.0.3", 6900 + "chokidar": "^5.0.0", 6408 6901 "destr": "^2.0.5", 6409 - "h3": "^1.15.4", 6410 - "lru-cache": "^10.4.3", 6902 + "h3": "^1.15.5", 6903 + "lru-cache": "^11.2.0", 6411 6904 "node-fetch-native": "^1.6.7", 6412 - "ofetch": "^1.4.1", 6413 - "ufo": "^1.6.1" 6905 + "ofetch": "^1.5.1", 6906 + "ufo": "^1.6.3" 6414 6907 }, 6415 6908 "peerDependencies": { 6416 6909 "@azure/app-configuration": "^1.8.0", ··· 6419 6912 "@azure/identity": "^4.6.0", 6420 6913 "@azure/keyvault-secrets": "^4.9.0", 6421 6914 "@azure/storage-blob": "^12.26.0", 6422 - "@capacitor/preferences": "^6.0.3 || ^7.0.0", 6915 + "@capacitor/preferences": "^6 || ^7 || ^8", 6423 6916 "@deno/kv": ">=0.9.0", 6424 6917 "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", 6425 6918 "@planetscale/database": "^1.19.0", 6426 6919 "@upstash/redis": "^1.34.3", 6427 6920 "@vercel/blob": ">=0.27.1", 6428 6921 "@vercel/functions": "^2.2.12 || ^3.0.0", 6429 - "@vercel/kv": "^1.0.1", 6922 + "@vercel/kv": "^1 || ^2 || ^3", 6430 6923 "aws4fetch": "^1.0.20", 6431 6924 "db0": ">=0.2.1", 6432 6925 "idb-keyval": "^6.2.1", ··· 6494 6987 } 6495 6988 }, 6496 6989 "node_modules/unstorage/node_modules/lru-cache": { 6497 - "version": "10.4.3", 6498 - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 6499 - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 6500 - "license": "ISC" 6990 + "version": "11.2.5", 6991 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", 6992 + "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", 6993 + "license": "BlueOak-1.0.0", 6994 + "engines": { 6995 + "node": "20 || >=22" 6996 + } 6501 6997 }, 6502 6998 "node_modules/update-browserslist-db": { 6503 6999 "version": "1.1.3", ··· 6572 7068 } 6573 7069 }, 6574 7070 "node_modules/vite": { 6575 - "version": "6.3.6", 6576 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", 6577 - "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", 7071 + "version": "6.4.1", 7072 + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", 7073 + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", 6578 7074 "license": "MIT", 6579 7075 "dependencies": { 6580 7076 "esbuild": "^0.25.0", ··· 6674 7170 "url": "https://github.com/sponsors/wooorm" 6675 7171 } 6676 7172 }, 6677 - "node_modules/webidl-conversions": { 6678 - "version": "3.0.1", 6679 - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 6680 - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 6681 - "license": "BSD-2-Clause" 6682 - }, 6683 - "node_modules/whatwg-url": { 6684 - "version": "5.0.0", 6685 - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 6686 - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 6687 - "license": "MIT", 6688 - "dependencies": { 6689 - "tr46": "~0.0.3", 6690 - "webidl-conversions": "^3.0.0" 6691 - } 6692 - }, 6693 7173 "node_modules/which-pm-runs": { 6694 7174 "version": "1.1.0", 6695 7175 "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", ··· 6801 7281 } 6802 7282 }, 6803 7283 "node_modules/zod-to-json-schema": { 6804 - "version": "3.24.6", 6805 - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", 6806 - "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", 7284 + "version": "3.25.1", 7285 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", 7286 + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", 6807 7287 "license": "ISC", 6808 7288 "peerDependencies": { 6809 - "zod": "^3.24.1" 7289 + "zod": "^3.25 || ^4" 6810 7290 } 6811 7291 }, 6812 7292 "node_modules/zod-to-ts": {
+4 -4
package.json
··· 9 9 "astro": "astro" 10 10 }, 11 11 "dependencies": { 12 - "@astrojs/mdx": "^4.3.5", 13 - "@astrojs/react": "^4.3.1", 14 - "@lucide/astro": "^0.507.0", 12 + "@astrojs/mdx": "^4.3.13", 13 + "@astrojs/react": "^4.4.2", 14 + "@lucide/astro": "^0.563.0", 15 15 "@nanostores/react": "^1.0.0", 16 16 "@tailwindcss/vite": "^4.1.5", 17 17 "@types/react": "^19.1.12", 18 18 "@types/react-dom": "^19.1.9", 19 - "astro": "^5.13.7", 19 + "astro": "^5.18.0", 20 20 "nanostores": "^1.0.1", 21 21 "react": "^19.1.1", 22 22 "react-dom": "^19.1.1",
+11
public/humans.txt
··· 1 + /* Author */ 2 + This site was built by Dustin Thurston! 3 + 4 + Github: https://github.com/DustinsCode 5 + Bluesky: https://bsky.app/profile/dustycode.dev 6 + Website: https://dustycode.dev 7 + 8 + /* Site */ 9 + Built with Astro.build and decapcms 10 + 11 + Check out the https://humanstxt.org/ protocol to see how you should format your humans.txt file!
src/assets/me.jpeg

This is a binary file and will not be displayed.

+34
src/components/commonHead.astro
··· 1 + --- 2 + import { ClientRouter } from "astro:transitions"; 3 + 4 + const { title } = Astro.props; 5 + --- 6 + 7 + <head> 8 + <meta charset="utf-8" /> 9 + <link rel="icon" type="image/svg+xml" href="/favicon.ico" /> 10 + <meta name="viewport" content="width=device-width" /> 11 + <meta name="generator" content={Astro.generator} /> 12 + <title>{title}</title> 13 + <ClientRouter /> 14 + <script> 15 + // Function to update theme 16 + function updateTheme() { 17 + if ( 18 + localStorage.theme === "dark" || 19 + (!("theme" in localStorage) && 20 + window.matchMedia("(prefers-color-scheme: dark)").matches) 21 + ) { 22 + document.documentElement.classList.add("dark"); 23 + } else { 24 + document.documentElement.classList.remove("dark"); 25 + } 26 + } 27 + 28 + // Run on page load 29 + updateTheme(); 30 + 31 + // Listen for system theme changes 32 + window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", updateTheme); 33 + </script> 34 + </head>
+3
src/components/footer.astro
··· 1 + <footer> 2 + <p>&copy; {new Date().getFullYear()} dustycode</p> 3 + </footer>
+1 -1
src/components/header.astro
··· 4 4 5 5 <header class="m-3 flex justify-end items-center"> 6 6 <!-- <h1>dustycode</h1> --> 7 - <button type="button" id="theme-selector" class="p-2 rounded-lg hover:bg-gray-0 transition-colors"> 7 + <button type="button" id="theme-selector" class="p-2 rounded-lg hover:scale-105 transition-all ease-in-out duration-300 hover:cursor-pointer"> 8 8 <span class="sr-only"> 9 9 Enable <span class="dark:hidden">light</span><span class="hidden dark:inline">dark</span> mode 10 10 </span>
-12
src/components/intro.astro
··· 1 - --- 2 - import Links from "./links.astro" 3 - --- 4 - <div> 5 - <div class="border-1 border-solid rounded-lg p-4"> 6 - <h1 class="text-5xl font-normal">Hello, I'm Dustin!</h1> 7 - <p class="text-lg"> 8 - A software engineer, nature enjoyer, and overall chill dude. 9 - </p> 10 - <Links /> 11 - </div> 12 - </div>
+9
src/components/lastfm.tsx
··· 1 + 2 + export default function LastFM() { 3 + 4 + return ( 5 + <div className="border border-solid rounded-lg p-6"> 6 + Insert LastFM stuff here 7 + </div> 8 + ) 9 + }
+44 -45
src/components/links.astro
··· 5 5 import LinkedIn from "../assets/icons/linkedin.svg"; 6 6 import Bluesky from "../assets/icons/bluesky.svg"; 7 7 import { Mail } from "@lucide/astro"; 8 + 9 + const {className} = Astro.props; 8 10 --- 9 - 10 - <div class="flex gap-3 h-7 my-3 items-center"> 11 - <a 12 - href="https://bsky.app/profile/dustycode.dev" 13 - aria-label="Bluesky" 14 - target="_blank" 15 - class="" 16 - > 17 - <Bluesky class="h-7 fill-foreground" /> 18 - </a> 19 - <a 20 - href="https://github.com/DustinsCode" 21 - aria-label="Github" 22 - target="_blank" 23 - class="" 24 - > 25 - <Github class="h-6 fill-foreground" /> 26 - </a> 27 - <a 28 - href="https://discordapp.com/users/195312689839341569" 29 - aria-label="Discord" 30 - target="_blank" 31 - class="" 32 - > 33 - <Discord class="h-7 w-fit fill-foreground" /> 34 - </a> 35 - <a 36 - href="https://www.last.fm/user/dustycode" 37 - aria-label="last.fm" 38 - target="_blank" 39 - class="" 40 - > 41 - <LastFM class="h-7 w-fit fill-foreground" /> 42 - </a> 43 - <a 44 - href="https://www.linkedin.com/in/dustycode/" 45 - aria-label="LinkedIn" 46 - target="_blank" 47 - class="" 48 - > 49 - <LinkedIn class="h-6 w-fit fill-foreground" /> 50 - </a> 51 - <a href="mailto:dustin@dustycode.dev" aria-label="email"> 52 - <Mail class="h-7 w-fit" /> 53 - </a> 11 + <div class={`border-1 border-solid rounded-lg p-4 ${className}`}> 12 + <h1 class="text-2xl">Where to find me</h1> 13 + <div class="flex gap-3 h-8 items-center"> 14 + <a 15 + href="https://bsky.app/profile/dustycode.dev" 16 + aria-label="Bluesky" 17 + target="_blank" 18 + > 19 + <Bluesky class="h-4 fill-blue" /> 20 + </a> 21 + <a 22 + href="https://github.com/DustinsCode" 23 + aria-label="Github" 24 + target="_blank" 25 + > 26 + <Github class="h-4 fill-blue" /> 27 + </a> 28 + <a 29 + href="https://discordapp.com/users/195312689839341569" 30 + aria-label="Discord" 31 + target="_blank" 32 + > 33 + <Discord class="h-4 w-fit fill-blue" /> 34 + </a> 35 + <a 36 + href="https://www.last.fm/user/dustycode" 37 + aria-label="last.fm" 38 + target="_blank" 39 + > 40 + <LastFM class="h-4 w-fit fill-blue" /> 41 + </a> 42 + <a 43 + href="https://www.linkedin.com/in/dustycode/" 44 + aria-label="LinkedIn" 45 + target="_blank" 46 + > 47 + <LinkedIn class="h-4 w-fit fill-blue" /> 48 + </a> 49 + <a href="mailto:dustin@dustycode.dev" aria-label="email"> 50 + <Mail class="h-4 w-fit text-blue" /> 51 + </a> 52 + </div> 54 53 </div>
+40
src/components/nav.astro
··· 1 + --- 2 + import { Birdhouse, TentTree, Trees } from "@lucide/astro"; 3 + 4 + const pathname = Astro.url.pathname; 5 + 6 + const links = [ 7 + { name: "Home", href: "/", icon: Birdhouse }, 8 + { name: "Work", href: "/work", icon: TentTree }, 9 + { name: "Blog", href: "/blog", icon: Trees } 10 + ]; 11 + 12 + const { className } = Astro.props; 13 + --- 14 + 15 + <div class={className}> 16 + <div class="border-1 border-solid rounded-lg p-4"> 17 + <nav> 18 + <ul> 19 + { 20 + links.map((link) => ( 21 + <li> 22 + <a 23 + class:list={[ 24 + "text-green flex gap-2 items-center", 25 + pathname === link.href 26 + ? "hover:cursor-default" 27 + : "fancy-link" 28 + ]} 29 + href={link.href} 30 + > 31 + <link.icon class="size-4" /> 32 + {link.name} 33 + </a> 34 + </li> 35 + )) 36 + } 37 + </ul> 38 + </nav> 39 + </div> 40 + </div>
-154
src/components/test.astro
··· 1 - --- 2 - // Component script (runs on server) 3 - --- 4 - 5 - <html lang="en"> 6 - <head> 7 - <meta charset="utf-8" /> 8 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 9 - <title>Animated Image with Audio</title> 10 - </head> 11 - <body> 12 - <div class="container"> 13 - <button id="animateButton" class="trigger-btn"> 14 - Click to Animate 15 - </button> 16 - 17 - <img 18 - id="movingImage" 19 - src="https://via.placeholder.com/100x100/4F46E5/FFFFFF?text=🚀" 20 - alt="Moving image" 21 - class="moving-image" 22 - /> 23 - 24 - <audio id="audioPlayer" preload="auto"> 25 - <!-- Replace with your audio file URL --> 26 - <source src="https://www.soundjay.com/misc/sounds/bell-ringing-05.wav" type="audio/wav"> 27 - <!-- Fallback audio source --> 28 - <source src="https://www.zapsplat.com/wp-content/uploads/2015/sound-effects-one/cartoon_bubble_pop_or_drip_001.mp3" type="audio/mpeg"> 29 - </audio> 30 - </div> 31 - 32 - <style> 33 - body { 34 - margin: 0; 35 - padding: 20px; 36 - font-family: Arial, sans-serif; 37 - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); 38 - min-height: 100vh; 39 - overflow-x: hidden; 40 - } 41 - 42 - .container { 43 - position: relative; 44 - width: 100%; 45 - height: 100vh; 46 - } 47 - 48 - .trigger-btn { 49 - padding: 12px 24px; 50 - font-size: 16px; 51 - background: #4F46E5; 52 - color: white; 53 - border: none; 54 - border-radius: 8px; 55 - cursor: pointer; 56 - transition: background-color 0.3s ease; 57 - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); 58 - } 59 - 60 - .trigger-btn:hover { 61 - background: #3730A3; 62 - transform: translateY(-1px); 63 - box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15); 64 - } 65 - 66 - .trigger-btn:active { 67 - transform: translateY(0); 68 - } 69 - 70 - .moving-image { 71 - position: fixed; 72 - width: 80px; 73 - height: 80px; 74 - bottom: 20px; 75 - right: -100px; /* Start off-screen */ 76 - border-radius: 50%; 77 - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); 78 - transition: all 4s cubic-bezier(0.25, 0.46, 0.45, 0.94); 79 - z-index: 1000; 80 - opacity: 0; 81 - } 82 - 83 - .moving-image.animate { 84 - right: calc(100vw - 100px); /* Move to left side */ 85 - opacity: 1; 86 - transform: rotate(360deg) scale(1.2); 87 - } 88 - 89 - .moving-image.reset { 90 - transition: none; 91 - right: -100px; 92 - opacity: 0; 93 - transform: rotate(0deg) scale(1); 94 - } 95 - 96 - /* Optional: Add a subtle pulse effect */ 97 - @keyframes pulse { 98 - 0%, 100% { transform: scale(1); } 99 - 50% { transform: scale(1.05); } 100 - } 101 - 102 - .moving-image.animate { 103 - animation: pulse 1s ease-in-out infinite; 104 - } 105 - </style> 106 - 107 - <script> 108 - // Client-side script 109 - const button = document.getElementById('animateButton'); 110 - const image = document.getElementById('movingImage'); 111 - const audio = document.getElementById('audioPlayer'); 112 - 113 - let isAnimating = false; 114 - 115 - button.addEventListener('click', () => { 116 - if (isAnimating) return; // Prevent multiple clicks during animation 117 - 118 - isAnimating = true; 119 - 120 - // Reset image position first 121 - image.classList.remove('animate'); 122 - image.classList.add('reset'); 123 - 124 - // Small delay to ensure reset is applied 125 - setTimeout(() => { 126 - image.classList.remove('reset'); 127 - image.classList.add('animate'); 128 - 129 - // Play audio 130 - audio.currentTime = 0; // Reset audio to beginning 131 - audio.play().catch(error => { 132 - console.log('Audio playback failed:', error); 133 - }); 134 - }, 50); 135 - 136 - // Reset animation state after animation completes 137 - setTimeout(() => { 138 - isAnimating = false; 139 - image.classList.remove('animate'); 140 - }, 4000); // Match the CSS transition duration 141 - }); 142 - 143 - // Optional: Reset image position when audio ends 144 - audio.addEventListener('ended', () => { 145 - console.log('Audio finished playing'); 146 - }); 147 - 148 - // Handle audio loading errors gracefully 149 - audio.addEventListener('error', (e) => { 150 - console.log('Audio failed to load, continuing with animation only'); 151 - }); 152 - </script> 153 - </body> 154 - </html>
+20 -31
src/components/whoami.astro
··· 1 1 --- 2 - import {YooperButton} from "./yooperButton.tsx"; 2 + import { Image } from "astro:assets"; 3 + import me from "../assets/me.jpeg"; 3 4 --- 4 - <div class="border-1 border-solid rounded-lg p-4"> 5 - <h2 class="text-5xl font-normal mb-4"> 6 - Hello, I'm Dustin! 7 - </h2> 8 5 9 - <div> 10 - <p> 11 - I'm a full-stack software engineer from the 12 - beautiful state of Michigan, currently in the Metro Detroit area. 13 - <br class="mb-4" /> 14 - I grew up in a small town in the where I established a deep appreciation for the outdoors. I enjoy hiking, 15 - biking, tennis, swimming, and hoping to get into some whitewater kayaking 16 - soon. During the long northern winters, you can find me inside playing 17 - video games or out on the slopes snowboarding. 18 - <br class="mb-4" /> 19 - Some of my other interests include (but are not limited to): 20 - <ul class="list-disc ml-6"> 21 - <!-- TODO: add links to things here. 22 - ex: a picture of my car, or posts about the things I've built --> 23 - <li>Working on my car</li> 24 - <li>Building things</li> 25 - <li>Photography</li> 26 - <li> 27 - Playing drums and <a 28 - href="https://en.wikipedia.org/wiki/Vibraphone" 29 - target="_blank" 30 - class="text-blue">vibraphone</a 31 - > 32 - </li> 33 - </ul> 34 - </p> 6 + <div class="border border-solid rounded-lg p-6"> 7 + <div class="flex flex-col md:flex-row gap-6 items-center md:items-start"> 8 + <div class="flex-1 space-y-4"> 9 + <h1 class="text-5xl font-bold">Hi, I'm Dustin!</h1> 10 + <p class="text-lg"> 11 + I'm a full stack software engineer from Michigan! 12 + </p> 13 + <p> 14 + You can often find me on the computer, out in nature, on the 15 + tennis courts, or wherever there will be some cool cars, and almost always with my camera :) 16 + </p> 17 + </div> 18 + <Image 19 + class="rounded-full size-40 md:size-48 flex-shrink-0" 20 + loading="eager" 21 + src={me} 22 + alt="Me smiling in my snowboarding jacket on a sunny winter day" 23 + /> 35 24 </div> 36 25 </div>
+33
src/layouts/BlogLayout.astro
··· 1 + --- 2 + import CommonHead from "../components/commonHead.astro"; 3 + import Footer from "../components/footer.astro"; 4 + import Header from "../components/header.astro"; 5 + import Links from "../components/links.astro"; 6 + import Nav from "../components/nav.astro"; 7 + import "../styles/global.css"; 8 + 9 + const { title } = Astro.props; 10 + --- 11 + 12 + <html lang="en" class="dark"> 13 + <CommonHead title={title} /> 14 + <body class="min-h-screen transition-colors duration-200 lg:mx-10 mx-3 flex flex-col justify-between"> 15 + <div class=""> 16 + <Header /> 17 + <div 18 + class="grid grid-flow-col xl:grid-cols-4 auto-rows-auto gap-4 xl:max-w-2/3 mx-auto" 19 + > 20 + <div class="col-span-3"> 21 + <slot /> 22 + </div> 23 + <div class="flex flex-col gap-4"> 24 + <Nav className="row-span-2" /> 25 + <Links className="" /> 26 + </div> 27 + </div> 28 + </div> 29 + <div class="self-center"> 30 + <Footer /> 31 + </div> 32 + </body> 33 + </html>
+26 -30
src/layouts/Layout.astro
··· 1 1 --- 2 2 import "../styles/global.css"; 3 3 import Header from "../components/header.astro"; 4 + import CommonHead from "../components/commonHead.astro"; 5 + import Footer from "../components/footer.astro"; 6 + import Nav from "../components/nav.astro"; 7 + import Links from "../components/links.astro"; 8 + 4 9 const { title } = Astro.props; 5 10 --- 6 11 7 12 <html lang="en" class="dark"> 8 - <head> 9 - <meta charset="utf-8" /> 10 - <link rel="icon" type="image/svg+xml" href="/favicon.ico" /> 11 - <meta name="viewport" content="width=device-width" /> 12 - <meta name="generator" content={Astro.generator} /> 13 - <title>{title}</title> 14 - <script> 15 - // Function to update theme 16 - function updateTheme() { 17 - if ( 18 - localStorage.theme === "dark" || 19 - (!("theme" in localStorage) && 20 - window.matchMedia("(prefers-color-scheme: dark)").matches) 21 - ) { 22 - document.documentElement.classList.add("dark"); 23 - } else { 24 - document.documentElement.classList.remove("dark"); 25 - } 26 - } 27 - 28 - // Run on page load 29 - updateTheme(); 30 - 31 - // Listen for system theme changes 32 - window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", updateTheme); 33 - </script> 34 - </head> 35 - <body class="min-h-screen transition-colors duration-200 lg:mx-10 mx-3"> 36 - <Header /> 37 - <slot /> 13 + <CommonHead title={title} /> 14 + <body 15 + class="min-h-screen transition-colors duration-200 lg:mx-10 mx-3 flex flex-col justify-between" 16 + > 17 + <div class=""> 18 + <Header /> 19 + <div 20 + class="grid grid-flow-col xl:grid-cols-4 auto-rows-auto gap-4 xl:max-w-2/3 mx-auto" 21 + > 22 + <div class="col-span-3"> 23 + <slot /> 24 + </div> 25 + <div class="flex flex-col gap-4"> 26 + <Nav className="row-span-2" /> 27 + <Links className="" /> 28 + </div> 29 + </div> 30 + </div> 31 + <div class="self-center"> 32 + <Footer /> 33 + </div> 38 34 </body> 39 35 </html>
+12
src/pages/blog.astro
··· 1 + --- 2 + import Nav from "../components/nav.astro"; 3 + import BlogLayout from "../layouts/BlogLayout.astro"; 4 + --- 5 + 6 + <BlogLayout title="dustycode - blog"> 7 + <div class="flex gap-4 justify-center flex-col md:flex-row"> 8 + <div> 9 + <h1 class="font-bold text-5xl">Coming Soon!</h1> 10 + </div> 11 + </div> 12 + </BlogLayout>
+16 -42
src/pages/index.astro
··· 1 1 --- 2 - import Layout from "../layouts/Layout.astro"; 3 - import Intro from "../components/intro.astro"; 2 + import LastFM from "../components/lastfm"; 4 3 import Whoami from "../components/whoami.astro"; 5 - import Test from "../components/test.astro"; 6 - import { Image } from "astro:assets"; 7 - import edmundFitzgerald from "../assets/edmund_fitzgerald.png"; 8 - --- 4 + import Layout from "../layouts/Layout.astro"; 9 5 10 - <script> 11 - const yooperButton = document.querySelector("[data-yooper]"); 12 - const eddyFitz = document.getElementById("eddyFitz"); 13 - const audio = document.getElementById("audioPlayer") as HTMLAudioElement; 14 6 15 - let isAnimating = false; 16 - 17 - yooperButton?.addEventListener("click", () => { 18 - if (isAnimating) return; 19 - 20 - isAnimating = true; 21 - 22 - eddyFitz?.classList.add('animate-') 23 - // Play audio 24 - audio.currentTime = 0; // Reset audio to beginning 25 - audio.play().catch((error) => { 26 - console.log("Audio playback failed:", error); 27 - }); 28 - }); 29 - </script> 7 + --- 30 8 31 9 <Layout title="dustycode"> 32 - <div 33 - class="flex gap-4 md:mx-0 mx-4 justify-center flex-col md:flex-row xl:max-w-2/3" 34 - > 35 - <div class="flex-col gap-3 flex"> 36 - <Intro /> 37 - </div> 38 - <div class="flex-col flex"> 39 - <Whoami /> 40 - </div> 41 - </div> 42 - <Image 43 - id="eddyFitz" 44 - class="fixed bottom-5 xl:right-[-800px] right-[-300px] xl:h-72 h-32 w-auto" 45 - src={edmundFitzgerald} 46 - alt="The Edmund Fitzgerald, a ship that was lost to Lake Superior" 47 - /> 48 - 10 + <div 11 + class="flex gap-4 justify-center flex-col md:flex-row" 12 + > 13 + <div class="flex-col flex mx-auto w-full gap-3"> 14 + <Whoami /> 15 + <div class="grid grid-cols-3 gap-4"> 16 + <div class="col-span-1"> 17 + <LastFM /> 18 + </div> 19 + </div> 20 + </div> 21 + 22 + </div> 49 23 </Layout>
+8
src/pages/work.astro
··· 1 + --- 2 + import Layout from "../layouts/Layout.astro"; 3 + 4 + 5 + --- 6 + <Layout title="dustycode - work"> 7 + 8 + </Layout>
+4
src/styles/global.css
··· 112 112 color: var(--color-foreground); 113 113 font-weight: 300; 114 114 } 115 + 116 + .fancy-link { 117 + @apply hover:scale-105 transition-all ease-in-out duration-300 118 + }