[Archived] Archived WIP of vielle.dev

DUDE WHAT IS GOING ON

idek whats goin on w the code anymore dude

+5
.vscode/settings.json
···
··· 1 + { 2 + "cSpell.words": [ 3 + "titlebar" 4 + ] 5 + }
+8 -2
astro.config.mjs
··· 22 sitemap(), 23 ], 24 25 - adapter: cloudflare(), 26 output: "server", 27 - 28 site: "https://vielle.dev", 29 });
··· 22 sitemap(), 23 ], 24 25 + adapter: cloudflare({ 26 + imageService: "cloudflare", 27 + platformProxy: { 28 + enabled: true, 29 + }, 30 + 31 + }), 32 output: "server", 33 + 34 site: "https://vielle.dev", 35 });
+10 -5
package.json
··· 11 }, 12 "dependencies": { 13 "@astrojs/check": "^0.9.4", 14 - "@astrojs/cloudflare": "^12.1.0", 15 - "@astrojs/mdx": "^4.0.3", 16 - "@astrojs/rss": "^4.0.10", 17 "@astrojs/sitemap": "^3.2.1", 18 - "@astrojs/svelte": "7.0.2", 19 - "astro": "5.1.1", 20 "markdown-it": "^14.1.0", 21 "nanostores": "^0.11.3", 22 "svelte": "^5.8.1", 23 "typescript": "^5.7.2" 24 } 25 }
··· 11 }, 12 "dependencies": { 13 "@astrojs/check": "^0.9.4", 14 + "@astrojs/cloudflare": "^12.2.0", 15 + "@astrojs/mdx": "^4.0.5", 16 + "@astrojs/rss": "^4.0.11", 17 "@astrojs/sitemap": "^3.2.1", 18 + "@astrojs/svelte": "7.0.3", 19 + "astro": "5.1.6", 20 + "lunarphase-js": "^2.0.3", 21 "markdown-it": "^14.1.0", 22 "nanostores": "^0.11.3", 23 "svelte": "^5.8.1", 24 "typescript": "^5.7.2" 25 + }, 26 + "devDependencies": { 27 + "@cloudflare/workers-types": "^4.20250109.0", 28 + "wrangler": "^3.101.0" 29 } 30 }
+1451 -133
pnpm-lock.yaml
··· 12 specifier: ^0.9.4 13 version: 0.9.4(typescript@5.7.2) 14 '@astrojs/cloudflare': 15 - specifier: ^12.1.0 16 - version: 12.1.0(@types/node@22.10.2)(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(yaml@2.6.1) 17 '@astrojs/mdx': 18 - specifier: ^4.0.3 19 - version: 4.0.3(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) 20 '@astrojs/rss': 21 - specifier: ^4.0.10 22 - version: 4.0.10 23 '@astrojs/sitemap': 24 specifier: ^3.2.1 25 version: 3.2.1 26 '@astrojs/svelte': 27 - specifier: 7.0.2 28 - version: 7.0.2(@types/node@22.10.2)(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(svelte@5.16.0)(typescript@5.7.2)(yaml@2.6.1) 29 astro: 30 - specifier: 5.1.1 31 - version: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 32 markdown-it: 33 specifier: ^14.1.0 34 version: 14.1.0 35 nanostores: 36 specifier: ^0.11.3 37 version: 0.11.3 38 svelte: 39 specifier: ^5.8.1 40 version: 5.16.0 41 typescript: 42 specifier: ^5.7.2 43 version: 5.7.2 44 45 packages: 46 ··· 54 peerDependencies: 55 typescript: ^5.0.0 56 57 - '@astrojs/cloudflare@12.1.0': 58 - resolution: {integrity: sha512-tx2HrZclERHI9MV/Jx/+cUVbQ0UGWlVCxV7ozRgnwCNG3fgBtpk1Qf60eTMnCLDQTKXy6C5b3nE+c9+dMpW6Hg==} 59 peerDependencies: 60 astro: ^5.0.0 61 62 '@astrojs/compiler@2.10.3': 63 resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} 64 - 65 - '@astrojs/internal-helpers@0.4.1': 66 - resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} 67 68 '@astrojs/internal-helpers@0.4.2': 69 resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} ··· 83 '@astrojs/markdown-remark@6.0.1': 84 resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} 85 86 - '@astrojs/mdx@4.0.3': 87 - resolution: {integrity: sha512-8HcuyNG/KgYUAQWVzKFkboXcTOBCW6aQ0WK0Er/iSmVSF0y3yimg4/3QSt+Twv9dogpwIHL+E8iBJKqieFv4+g==} 88 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 89 peerDependencies: 90 astro: ^5.0.0 ··· 93 resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} 94 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 95 96 - '@astrojs/rss@4.0.10': 97 - resolution: {integrity: sha512-2gFdHM763uUAySkdwPYrpi6dppOBJr9ddg5VbkKXctWze8d1JHgIBBY78zWIYs7KBJT58zxadsObVAVt55RDaw==} 98 99 '@astrojs/sitemap@3.2.1': 100 resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} 101 102 - '@astrojs/svelte@7.0.2': 103 - resolution: {integrity: sha512-1+SJfU34wjGXBroAHkZRynVSDiAhoYGkn8ODhj20w9wfoUJXnHPgg+0NSDB7pShZRq0rwWDhA3Uo761YXOY4WA==} 104 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 105 peerDependencies: 106 astro: ^5.0.0 ··· 111 resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} 112 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 113 114 - '@astrojs/underscore-redirects@0.4.0': 115 - resolution: {integrity: sha512-Urt32++4ql0IFTTNejnRIN7LPJ6YzU9QXLcc4RXm5or1RLPnQBKVrLvmDxKx3eT72l7ZAi6W4L5E7pcbWbYDRA==} 116 117 '@astrojs/yaml2ts@0.2.2': 118 resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} 119 120 '@babel/helper-string-parser@7.25.9': 121 resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 122 engines: {node: '>=6.9.0'} ··· 138 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} 139 engines: {node: '>=16.13'} 140 141 - '@cloudflare/workerd-darwin-64@1.20241218.0': 142 - resolution: {integrity: sha512-8rveQoxtUvlmORKqTWgjv2ycM8uqWox0u9evn3zd2iWKdou5sncFwH517ZRLI3rq9P31ZLmCQBZ0gloFsTeY6w==} 143 engines: {node: '>=16'} 144 cpu: [x64] 145 os: [darwin] 146 147 - '@cloudflare/workerd-darwin-arm64@1.20241218.0': 148 - resolution: {integrity: sha512-be59Ad9nmM9lCkhHqmTs/uZ3JVZt8NJ9Z0PY+B0xnc5z6WwmV2lj0RVLtq7xJhQsQJA189zt5rXqDP6J+2mu7Q==} 149 engines: {node: '>=16'} 150 cpu: [arm64] 151 os: [darwin] 152 153 - '@cloudflare/workerd-linux-64@1.20241218.0': 154 - resolution: {integrity: sha512-MzpSBcfZXRxrYWxQ4pVDYDrUbkQuM62ssl4ZtHH8J35OAeGsWFAYji6MkS2SpVwVcvacPwJXIF4JSzp4xKImKw==} 155 engines: {node: '>=16'} 156 cpu: [x64] 157 os: [linux] 158 159 - '@cloudflare/workerd-linux-arm64@1.20241218.0': 160 - resolution: {integrity: sha512-RIuJjPxpNqvwIs52vQsXeRMttvhIjgg9NLjjFa3jK8Ijnj8c3ZDru9Wqi48lJP07yDFIRr4uDMMqh/y29YQi2A==} 161 engines: {node: '>=16'} 162 cpu: [arm64] 163 os: [linux] 164 165 - '@cloudflare/workerd-windows-64@1.20241218.0': 166 - resolution: {integrity: sha512-tO1VjlvK3F6Yb2d1jgEy/QBYl//9Pyv3K0j+lq8Eu7qdfm0IgKwSRgDWLept84/qmNsQfausZ4JdNGxTf9xsxQ==} 167 engines: {node: '>=16'} 168 cpu: [x64] 169 os: [win32] 170 171 - '@cloudflare/workers-types@4.20241224.0': 172 - resolution: {integrity: sha512-1ZmFc8qqM7S/HUGmLplc4P8n8DoMqiJmc47r9Lr7VbuaotoqCXVljz09w1V1mc4K3pbFPgvqSy4XYStZ08HrlQ==} 173 174 '@cspotcode/source-map-support@0.8.1': 175 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} ··· 738 cpu: [x64] 739 os: [win32] 740 741 - '@inox-tools/astro-when@1.0.1': 742 - resolution: {integrity: sha512-x/62MFEfzSMYaQGIoxg5k10YL5X9LYWEmFPtew/Z3AOKhWrLx+LHnqimRkbfV4JVMDj+F0ZP5a+xRRjHbZ6Maw==} 743 - peerDependencies: 744 - astro: ^5 745 - 746 '@jridgewell/gen-mapping@0.3.8': 747 resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 748 engines: {node: '>=6.0.0'} ··· 901 '@shikijs/vscode-textmate@9.3.1': 902 resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} 903 904 '@sveltejs/vite-plugin-svelte-inspector@4.0.1': 905 resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} 906 engines: {node: ^18.0.0 || ^20.0.0 || >=22} ··· 1057 as-table@1.0.55: 1058 resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1059 1060 - ast-types@0.16.1: 1061 - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 1062 - engines: {node: '>=4'} 1063 - 1064 astring@1.9.0: 1065 resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 1066 hasBin: true 1067 1068 - astro-integration-kit@0.17.0: 1069 - resolution: {integrity: sha512-fe31CCKmrGYn/kkBd1J4b7P02gEdMdEIFBz14zdAud+YAmJeLtZD6wmrCz3LDau+lE1oM1hQnvmZXVSM/YveKw==} 1070 - peerDependencies: 1071 - astro: ^4.12.0 || ^5.0.0-beta 1072 - 1073 - astro@5.1.1: 1074 - resolution: {integrity: sha512-prpWC2PRs4P3FKQg6gZaU+VNMqbZi5pDvORGB2nrjfRjkrvF6/l4BqhvkJ6YQ0Ohm5rIMVz8ljgaRI77mLHbwg==} 1075 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 1076 hasBin: true 1077 ··· 1091 1092 blake3-wasm@2.1.5: 1093 resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1094 1095 boxen@8.0.1: 1096 resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} ··· 1172 1173 common-ancestor-path@1.0.1: 1174 resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 1175 1176 consola@3.3.3: 1177 resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} ··· 1362 fast-uri@3.0.3: 1363 resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} 1364 1365 fast-xml-parser@4.5.1: 1366 resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} 1367 hasBin: true ··· 1439 hast-util-from-parse5@8.0.2: 1440 resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} 1441 1442 hast-util-is-element@3.0.0: 1443 resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 1444 ··· 1459 1460 hast-util-to-parse5@8.0.0: 1461 resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} 1462 1463 hast-util-to-text@4.0.2: 1464 resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} ··· 1603 1604 lru-cache@10.4.3: 1605 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1606 1607 magic-string@0.25.9: 1608 resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} ··· 1796 engines: {node: '>=10.0.0'} 1797 hasBin: true 1798 1799 - miniflare@3.20241218.0: 1800 - resolution: {integrity: sha512-spYFDArH0wd+wJSTrzBrWrXJrbyJhRMJa35mat947y1jYhVV8I5V8vnD3LwjfpLr0SaEilojz1OIW7ekmnRe+w==} 1801 engines: {node: '>=16.13'} 1802 hasBin: true 1803 1804 mrmime@2.0.0: 1805 resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} ··· 1906 pathe@1.1.2: 1907 resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1908 1909 picocolors@1.1.1: 1910 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1911 ··· 1924 pkg-dir@4.2.0: 1925 resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1926 engines: {node: '>=8'} 1927 1928 postcss@8.4.49: 1929 resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} ··· 1970 resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 1971 engines: {node: '>= 14.16.0'} 1972 1973 - recast@0.23.9: 1974 - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} 1975 - engines: {node: '>= 4'} 1976 - 1977 recma-build-jsx@1.0.0: 1978 resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} 1979 ··· 1995 regex@5.1.1: 1996 resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 1997 1998 rehype-parse@9.0.1: 1999 resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 2000 ··· 2003 2004 rehype-recma@1.0.0: 2005 resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} 2006 2007 rehype-stringify@10.0.1: 2008 resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} ··· 2193 tiny-glob@0.2.9: 2194 resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2195 2196 - tiny-invariant@1.3.3: 2197 - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 2198 - 2199 tinyexec@0.3.1: 2200 resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 2201 ··· 2256 resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 2257 engines: {node: '>=14.0'} 2258 2259 - unenv-nightly@2.0.0-20241204-140205-a5d5190: 2260 - resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} 2261 2262 unenv@1.10.0: 2263 resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} ··· 2354 uploadthing: 2355 optional: true 2356 2357 vfile-location@5.0.3: 2358 resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 2359 ··· 2403 yaml: 2404 optional: true 2405 2406 vitefu@1.0.4: 2407 resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} 2408 peerDependencies: ··· 2532 resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 2533 engines: {node: '>=18'} 2534 2535 - workerd@1.20241218.0: 2536 - resolution: {integrity: sha512-7Z3D4vOVChMz9mWDffE299oQxUWm/pbkeAWx1btVamPcAK/2IuoNBhwflWo3jyuKuxvYuFAdIucgYxc8ICqXiA==} 2537 engines: {node: '>=16'} 2538 hasBin: true 2539 2540 - wrangler@3.99.0: 2541 - resolution: {integrity: sha512-k0x4rT3G/QCbxcoZY7CHRVlAIS8WMmKdga6lf4d2c3gXFqssh44vwlTDuARA9QANBxKJTcA7JPTJRfUDhd9QBA==} 2542 engines: {node: '>=16.17.0'} 2543 hasBin: true 2544 peerDependencies: 2545 - '@cloudflare/workers-types': ^4.20241218.0 2546 peerDependenciesMeta: 2547 '@cloudflare/workers-types': 2548 optional: true ··· 2648 - prettier 2649 - prettier-plugin-astro 2650 2651 - '@astrojs/cloudflare@12.1.0(@types/node@22.10.2)(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(yaml@2.6.1)': 2652 dependencies: 2653 - '@astrojs/internal-helpers': 0.4.1 2654 - '@astrojs/underscore-redirects': 0.4.0 2655 - '@cloudflare/workers-types': 4.20241224.0 2656 - '@inox-tools/astro-when': 1.0.1(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) 2657 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 2658 esbuild: 0.24.2 2659 estree-walker: 3.0.3 2660 magic-string: 0.30.17 2661 - miniflare: 3.20241218.0 2662 tiny-glob: 0.2.9 2663 - vite: 6.0.6(@types/node@22.10.2)(yaml@2.6.1) 2664 - wrangler: 3.99.0(@cloudflare/workers-types@4.20241224.0) 2665 transitivePeerDependencies: 2666 - '@types/node' 2667 - bufferutil 2668 - jiti 2669 - less ··· 2679 - yaml 2680 2681 '@astrojs/compiler@2.10.3': {} 2682 - 2683 - '@astrojs/internal-helpers@0.4.1': {} 2684 2685 '@astrojs/internal-helpers@0.4.2': {} 2686 ··· 2731 transitivePeerDependencies: 2732 - supports-color 2733 2734 - '@astrojs/mdx@4.0.3(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))': 2735 dependencies: 2736 '@astrojs/markdown-remark': 6.0.1 2737 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) 2738 acorn: 8.14.0 2739 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 2740 es-module-lexer: 1.6.0 2741 estree-util-visit: 2.0.0 2742 hast-util-to-html: 9.0.4 ··· 2754 dependencies: 2755 prismjs: 1.29.0 2756 2757 - '@astrojs/rss@4.0.10': 2758 dependencies: 2759 fast-xml-parser: 4.5.1 2760 kleur: 4.1.5 ··· 2765 stream-replace-string: 2.0.0 2766 zod: 3.24.1 2767 2768 - '@astrojs/svelte@7.0.2(@types/node@22.10.2)(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(svelte@5.16.0)(typescript@5.7.2)(yaml@2.6.1)': 2769 dependencies: 2770 '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)) 2771 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 2772 svelte: 5.16.0 2773 svelte2tsx: 0.7.31(svelte@5.16.0)(typescript@5.7.2) 2774 typescript: 5.7.2 ··· 2799 transitivePeerDependencies: 2800 - supports-color 2801 2802 - '@astrojs/underscore-redirects@0.4.0': {} 2803 2804 '@astrojs/yaml2ts@0.2.2': 2805 dependencies: 2806 yaml: 2.6.1 2807 2808 '@babel/helper-string-parser@7.25.9': {} 2809 2810 '@babel/helper-validator-identifier@7.25.9': {} ··· 2822 dependencies: 2823 mime: 3.0.0 2824 2825 - '@cloudflare/workerd-darwin-64@1.20241218.0': 2826 optional: true 2827 2828 - '@cloudflare/workerd-darwin-arm64@1.20241218.0': 2829 optional: true 2830 2831 - '@cloudflare/workerd-linux-64@1.20241218.0': 2832 optional: true 2833 2834 - '@cloudflare/workerd-linux-arm64@1.20241218.0': 2835 optional: true 2836 2837 - '@cloudflare/workerd-windows-64@1.20241218.0': 2838 optional: true 2839 2840 - '@cloudflare/workers-types@4.20241224.0': {} 2841 2842 '@cspotcode/source-map-support@0.8.1': 2843 dependencies: ··· 3168 '@img/sharp-win32-x64@0.33.5': 3169 optional: true 3170 3171 - '@inox-tools/astro-when@1.0.1(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))': 3172 - dependencies: 3173 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 3174 - astro-integration-kit: 0.17.0(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) 3175 - debug: 4.4.0 3176 - transitivePeerDependencies: 3177 - - supports-color 3178 - 3179 '@jridgewell/gen-mapping@0.3.8': 3180 dependencies: 3181 '@jridgewell/set-array': 1.2.1 ··· 3334 3335 '@shikijs/vscode-textmate@9.3.1': {} 3336 3337 '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1))': 3338 dependencies: 3339 '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)) ··· 3513 as-table@1.0.55: 3514 dependencies: 3515 printable-characters: 1.0.42 3516 - 3517 - ast-types@0.16.1: 3518 - dependencies: 3519 - tslib: 2.8.1 3520 3521 astring@1.9.0: {} 3522 3523 - astro-integration-kit@0.17.0(astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)): 3524 - dependencies: 3525 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 3526 - pathe: 1.1.2 3527 - recast: 0.23.9 3528 - 3529 - astro@5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): 3530 dependencies: 3531 '@astrojs/compiler': 2.10.3 3532 '@astrojs/internal-helpers': 0.4.2 ··· 3633 3634 blake3-wasm@2.1.5: {} 3635 3636 boxen@8.0.1: 3637 dependencies: 3638 ansi-align: 3.0.1 ··· 3720 comma-separated-tokens@2.0.3: {} 3721 3722 common-ancestor-path@1.0.1: {} 3723 3724 consola@3.3.3: {} 3725 ··· 3951 3952 fast-uri@3.0.3: {} 3953 3954 fast-xml-parser@4.5.1: 3955 dependencies: 3956 strnum: 1.0.5 ··· 4042 vfile-location: 5.0.3 4043 web-namespaces: 2.0.1 4044 4045 hast-util-is-element@3.0.0: 4046 dependencies: 4047 '@types/hast': 3.0.4 ··· 4130 space-separated-tokens: 2.0.2 4131 web-namespaces: 2.0.1 4132 zwitch: 2.0.4 4133 4134 hast-util-to-text@4.0.2: 4135 dependencies: ··· 4259 tslib: 2.8.1 4260 4261 lru-cache@10.4.3: {} 4262 4263 magic-string@0.25.9: 4264 dependencies: ··· 4733 4734 mime@3.0.0: {} 4735 4736 - miniflare@3.20241218.0: 4737 dependencies: 4738 '@cspotcode/source-map-support': 0.8.1 4739 acorn: 8.14.0 ··· 4743 glob-to-regexp: 0.4.1 4744 stoppable: 1.1.0 4745 undici: 5.28.4 4746 - workerd: 1.20241218.0 4747 ws: 8.18.0 4748 youch: 3.3.4 4749 zod: 3.24.1 ··· 4751 - bufferutil 4752 - supports-color 4753 - utf-8-validate 4754 4755 mrmime@2.0.0: {} 4756 ··· 4854 4855 pathe@1.1.2: {} 4856 4857 picocolors@1.1.1: {} 4858 4859 picomatch@2.3.1: {} ··· 4865 pkg-dir@4.2.0: 4866 dependencies: 4867 find-up: 4.1.0 4868 4869 postcss@8.4.49: 4870 dependencies: ··· 4904 4905 readdirp@4.0.2: {} 4906 4907 - recast@0.23.9: 4908 - dependencies: 4909 - ast-types: 0.16.1 4910 - esprima: 4.0.1 4911 - source-map: 0.6.1 4912 - tiny-invariant: 1.3.3 4913 - tslib: 2.8.1 4914 - 4915 recma-build-jsx@1.0.0: 4916 dependencies: 4917 '@types/estree': 1.0.6 ··· 4952 regex@5.1.1: 4953 dependencies: 4954 regex-utilities: 2.3.0 4955 4956 rehype-parse@9.0.1: 4957 dependencies: ··· 4973 transitivePeerDependencies: 4974 - supports-color 4975 4976 rehype-stringify@10.0.1: 4977 dependencies: 4978 '@types/hast': 3.0.4 ··· 5266 globalyzer: 0.1.0 5267 globrex: 0.1.2 5268 5269 - tiny-invariant@1.3.3: {} 5270 - 5271 tinyexec@0.3.1: {} 5272 5273 to-regex-range@5.0.1: ··· 5308 dependencies: 5309 '@fastify/busboy': 2.1.1 5310 5311 - unenv-nightly@2.0.0-20241204-140205-a5d5190: 5312 dependencies: 5313 defu: 6.1.4 5314 ohash: 1.1.4 5315 pathe: 1.1.2 5316 ufo: 1.5.4 ··· 5390 ofetch: 1.4.1 5391 ufo: 1.5.4 5392 5393 vfile-location@5.0.3: 5394 dependencies: 5395 '@types/unist': 3.0.3 ··· 5406 vfile-message: 4.0.2 5407 5408 vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1): 5409 dependencies: 5410 esbuild: 0.24.2 5411 postcss: 8.4.49 ··· 5540 dependencies: 5541 string-width: 7.2.0 5542 5543 - workerd@1.20241218.0: 5544 optionalDependencies: 5545 - '@cloudflare/workerd-darwin-64': 1.20241218.0 5546 - '@cloudflare/workerd-darwin-arm64': 1.20241218.0 5547 - '@cloudflare/workerd-linux-64': 1.20241218.0 5548 - '@cloudflare/workerd-linux-arm64': 1.20241218.0 5549 - '@cloudflare/workerd-windows-64': 1.20241218.0 5550 5551 - wrangler@3.99.0(@cloudflare/workers-types@4.20241224.0): 5552 dependencies: 5553 '@cloudflare/kv-asset-handler': 0.3.4 5554 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 5555 '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) ··· 5558 date-fns: 4.1.0 5559 esbuild: 0.17.19 5560 itty-time: 1.0.6 5561 - miniflare: 3.20241218.0 5562 nanoid: 3.3.8 5563 path-to-regexp: 6.3.0 5564 resolve: 1.22.10 5565 selfsigned: 2.4.1 5566 source-map: 0.6.1 5567 - unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 5568 - workerd: 1.20241218.0 5569 xxhash-wasm: 1.1.0 5570 optionalDependencies: 5571 - '@cloudflare/workers-types': 4.20241224.0 5572 fsevents: 2.3.3 5573 transitivePeerDependencies: 5574 - bufferutil 5575 - supports-color 5576 - utf-8-validate
··· 12 specifier: ^0.9.4 13 version: 0.9.4(typescript@5.7.2) 14 '@astrojs/cloudflare': 15 + specifier: ^12.2.0 16 + version: 12.2.0(@types/node@22.10.2)(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(yaml@2.6.1) 17 '@astrojs/mdx': 18 + specifier: ^4.0.5 19 + version: 4.0.5(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1)) 20 '@astrojs/rss': 21 + specifier: ^4.0.11 22 + version: 4.0.11 23 '@astrojs/sitemap': 24 specifier: ^3.2.1 25 version: 3.2.1 26 '@astrojs/svelte': 27 + specifier: 7.0.3 28 + version: 7.0.3(@types/node@22.10.2)(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(svelte@5.16.0)(typescript@5.7.2)(yaml@2.6.1) 29 astro: 30 + specifier: 5.1.6 31 + version: 5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 32 + lunarphase-js: 33 + specifier: ^2.0.3 34 + version: 2.0.3 35 markdown-it: 36 specifier: ^14.1.0 37 version: 14.1.0 38 nanostores: 39 specifier: ^0.11.3 40 version: 0.11.3 41 + rehype-autolink-headings: 42 + specifier: ^7.1.0 43 + version: 7.1.0 44 + rehype-slug: 45 + specifier: ^6.0.0 46 + version: 6.0.0 47 svelte: 48 specifier: ^5.8.1 49 version: 5.16.0 50 typescript: 51 specifier: ^5.7.2 52 version: 5.7.2 53 + devDependencies: 54 + '@cloudflare/workers-types': 55 + specifier: ^4.20250109.0 56 + version: 4.20250109.0 57 + wrangler: 58 + specifier: ^3.101.0 59 + version: 3.101.0(@cloudflare/workers-types@4.20250109.0) 60 61 packages: 62 ··· 70 peerDependencies: 71 typescript: ^5.0.0 72 73 + '@astrojs/cloudflare@12.2.0': 74 + resolution: {integrity: sha512-Aw64u+POcu8T+V8YqXQm6ZqBuuZwMRSW9AApHVIbVoOj43+7lcmIZxQ8TSTfO2a4OR0Q8Sf2WD3j3I9sQdlsbQ==} 75 peerDependencies: 76 astro: ^5.0.0 77 78 '@astrojs/compiler@2.10.3': 79 resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} 80 81 '@astrojs/internal-helpers@0.4.2': 82 resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} ··· 96 '@astrojs/markdown-remark@6.0.1': 97 resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} 98 99 + '@astrojs/mdx@4.0.5': 100 + resolution: {integrity: sha512-JhMCm4wf94PNHQDWKyez2ZVLcG5R6Cyjk8TmpqYVRrOTuU3GIWeDAoum7Q1p05SFD+nYwvXOcv42/m8pE3Ylug==} 101 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 102 peerDependencies: 103 astro: ^5.0.0 ··· 106 resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} 107 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 108 109 + '@astrojs/rss@4.0.11': 110 + resolution: {integrity: sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==} 111 112 '@astrojs/sitemap@3.2.1': 113 resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} 114 115 + '@astrojs/svelte@7.0.3': 116 + resolution: {integrity: sha512-cUR9lQ7p3LPZnWpGb7uWBHVzF6wbRbCkyGgEG20EQTx4Am2OyACM/xqZ3KuDKZJQd3HcqKbjkWX/nTJePpNDRw==} 117 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 118 peerDependencies: 119 astro: ^5.0.0 ··· 124 resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} 125 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 126 127 + '@astrojs/underscore-redirects@0.6.0': 128 + resolution: {integrity: sha512-dnJgFpaM955IFNIkEEmMaaIdWXRdeZs1ID6mlGBqdjh6NiCXfKmOdq7L4fd9Dd/tr18fkLrOJ25IUJSxRAEhjQ==} 129 130 '@astrojs/yaml2ts@0.2.2': 131 resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} 132 133 + '@aws-crypto/crc32@5.2.0': 134 + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} 135 + engines: {node: '>=16.0.0'} 136 + 137 + '@aws-crypto/crc32c@5.2.0': 138 + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} 139 + 140 + '@aws-crypto/sha1-browser@5.2.0': 141 + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} 142 + 143 + '@aws-crypto/sha256-browser@5.2.0': 144 + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} 145 + 146 + '@aws-crypto/sha256-js@5.2.0': 147 + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} 148 + engines: {node: '>=16.0.0'} 149 + 150 + '@aws-crypto/supports-web-crypto@5.2.0': 151 + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} 152 + 153 + '@aws-crypto/util@5.2.0': 154 + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} 155 + 156 + '@aws-sdk/client-s3@3.726.1': 157 + resolution: {integrity: sha512-UpOGcob87DiuS2d3fW6vDZg94g57mNiOSkzvR/6GOdvBSlUgk8LLwVzGASB71FdKMl1EGEr4MeD5uKH9JsG+dw==} 158 + engines: {node: '>=18.0.0'} 159 + 160 + '@aws-sdk/client-sso-oidc@3.726.0': 161 + resolution: {integrity: sha512-5JzTX9jwev7+y2Jkzjz0pd1wobB5JQfPOQF3N2DrJ5Pao0/k6uRYwE4NqB0p0HlGrMTDm7xNq7OSPPIPG575Jw==} 162 + engines: {node: '>=18.0.0'} 163 + peerDependencies: 164 + '@aws-sdk/client-sts': ^3.726.0 165 + 166 + '@aws-sdk/client-sso@3.726.0': 167 + resolution: {integrity: sha512-NM5pjv2qglEc4XN3nnDqtqGsSGv1k5YTmzDo3W3pObItHmpS8grSeNfX9zSH+aVl0Q8hE4ZIgvTPNZ+GzwVlqg==} 168 + engines: {node: '>=18.0.0'} 169 + 170 + '@aws-sdk/client-sts@3.726.1': 171 + resolution: {integrity: sha512-qh9Q9Vu1hrM/wMBOBIaskwnE4GTFaZu26Q6WHwyWNfj7J8a40vBxpW16c2vYXHLBtwRKM1be8uRLkmDwghpiNw==} 172 + engines: {node: '>=18.0.0'} 173 + 174 + '@aws-sdk/core@3.723.0': 175 + resolution: {integrity: sha512-UraXNmvqj3vScSsTkjMwQkhei30BhXlW5WxX6JacMKVtl95c7z0qOXquTWeTalYkFfulfdirUhvSZrl+hcyqTw==} 176 + engines: {node: '>=18.0.0'} 177 + 178 + '@aws-sdk/credential-provider-env@3.723.0': 179 + resolution: {integrity: sha512-OuH2yULYUHTVDUotBoP/9AEUIJPn81GQ/YBtZLoo2QyezRJ2QiO/1epVtbJlhNZRwXrToLEDmQGA2QfC8c7pbA==} 180 + engines: {node: '>=18.0.0'} 181 + 182 + '@aws-sdk/credential-provider-http@3.723.0': 183 + resolution: {integrity: sha512-DTsKC6xo/kz/ZSs1IcdbQMTgiYbpGTGEd83kngFc1bzmw7AmK92DBZKNZpumf8R/UfSpTcj9zzUUmrWz1kD0eQ==} 184 + engines: {node: '>=18.0.0'} 185 + 186 + '@aws-sdk/credential-provider-ini@3.726.0': 187 + resolution: {integrity: sha512-seTtcKL2+gZX6yK1QRPr5mDJIBOatrpoyrO8D5b8plYtV/PDbDW3mtDJSWFHet29G61ZmlNElyXRqQCXn9WX+A==} 188 + engines: {node: '>=18.0.0'} 189 + peerDependencies: 190 + '@aws-sdk/client-sts': ^3.726.0 191 + 192 + '@aws-sdk/credential-provider-node@3.726.0': 193 + resolution: {integrity: sha512-jjsewBcw/uLi24x8JbnuDjJad4VA9ROCE94uVRbEnGmUEsds75FWOKp3fWZLQlmjLtzsIbJOZLALkZP86liPaw==} 194 + engines: {node: '>=18.0.0'} 195 + 196 + '@aws-sdk/credential-provider-process@3.723.0': 197 + resolution: {integrity: sha512-fgupvUjz1+jeoCBA7GMv0L6xEk92IN6VdF4YcFhsgRHlHvNgm7ayaoKQg7pz2JAAhG/3jPX6fp0ASNy+xOhmPA==} 198 + engines: {node: '>=18.0.0'} 199 + 200 + '@aws-sdk/credential-provider-sso@3.726.0': 201 + resolution: {integrity: sha512-WxkN76WeB08j2yw7jUH9yCMPxmT9eBFd9ZA/aACG7yzOIlsz7gvG3P2FQ0tVg25GHM0E4PdU3p/ByTOawzcOAg==} 202 + engines: {node: '>=18.0.0'} 203 + 204 + '@aws-sdk/credential-provider-web-identity@3.723.0': 205 + resolution: {integrity: sha512-tl7pojbFbr3qLcOE6xWaNCf1zEfZrIdSJtOPeSXfV/thFMMAvIjgf3YN6Zo1a6cxGee8zrV/C8PgOH33n+Ev/A==} 206 + engines: {node: '>=18.0.0'} 207 + peerDependencies: 208 + '@aws-sdk/client-sts': ^3.723.0 209 + 210 + '@aws-sdk/middleware-bucket-endpoint@3.726.0': 211 + resolution: {integrity: sha512-vpaP80rZqwu0C3ELayIcRIW84/nd1tadeoqllT+N9TDshuEvq4UJ+w47OBHB7RkHFJoc79lXXNYle0fdQdaE/A==} 212 + engines: {node: '>=18.0.0'} 213 + 214 + '@aws-sdk/middleware-expect-continue@3.723.0': 215 + resolution: {integrity: sha512-w/O0EkIzkiqvGu7U8Ke7tue0V0HYM5dZQrz6nVU+R8T2LddWJ+njEIHU4Wh8aHPLQXdZA5NQumv0xLPdEutykw==} 216 + engines: {node: '>=18.0.0'} 217 + 218 + '@aws-sdk/middleware-flexible-checksums@3.723.0': 219 + resolution: {integrity: sha512-JY76mrUCLa0FHeMZp8X9+KK6uEuZaRZaQrlgq6zkXX/3udukH0T3YdFC+Y9uw5ddbiwZ5+KwgmlhnPpiXKfP4g==} 220 + engines: {node: '>=18.0.0'} 221 + 222 + '@aws-sdk/middleware-host-header@3.723.0': 223 + resolution: {integrity: sha512-LLVzLvk299pd7v4jN9yOSaWDZDfH0SnBPb6q+FDPaOCMGBY8kuwQso7e/ozIKSmZHRMGO3IZrflasHM+rI+2YQ==} 224 + engines: {node: '>=18.0.0'} 225 + 226 + '@aws-sdk/middleware-location-constraint@3.723.0': 227 + resolution: {integrity: sha512-inp9tyrdRWjGOMu1rzli8i2gTo0P4X6L7nNRXNTKfyPNZcBimZ4H0H1B671JofSI5isaklVy5r4pvv2VjjLSHw==} 228 + engines: {node: '>=18.0.0'} 229 + 230 + '@aws-sdk/middleware-logger@3.723.0': 231 + resolution: {integrity: sha512-chASQfDG5NJ8s5smydOEnNK7N0gDMyuPbx7dYYcm1t/PKtnVfvWF+DHCTrRC2Ej76gLJVCVizlAJKM8v8Kg3cg==} 232 + engines: {node: '>=18.0.0'} 233 + 234 + '@aws-sdk/middleware-recursion-detection@3.723.0': 235 + resolution: {integrity: sha512-7usZMtoynT9/jxL/rkuDOFQ0C2mhXl4yCm67Rg7GNTstl67u7w5WN1aIRImMeztaKlw8ExjoTyo6WTs1Kceh7A==} 236 + engines: {node: '>=18.0.0'} 237 + 238 + '@aws-sdk/middleware-sdk-s3@3.723.0': 239 + resolution: {integrity: sha512-wfjOvNJVp8LDWhq4wO5jtSMb8Vgf4tNlR7QTEQfoYc6AGU3WlK5xyUQcpfcpwytEhQTN9u0cJLQpSyXDO+qSCw==} 240 + engines: {node: '>=18.0.0'} 241 + 242 + '@aws-sdk/middleware-ssec@3.723.0': 243 + resolution: {integrity: sha512-Bs+8RAeSMik6ZYCGSDJzJieGsDDh2fRbh1HQG94T8kpwBXVxMYihm6e9Xp2cyl+w9fyyCnh0IdCKChP/DvrdhA==} 244 + engines: {node: '>=18.0.0'} 245 + 246 + '@aws-sdk/middleware-user-agent@3.726.0': 247 + resolution: {integrity: sha512-hZvzuE5S0JmFie1r68K2wQvJbzyxJFdzltj9skgnnwdvLe8F/tz7MqLkm28uV0m4jeHk0LpiBo6eZaPkQiwsZQ==} 248 + engines: {node: '>=18.0.0'} 249 + 250 + '@aws-sdk/region-config-resolver@3.723.0': 251 + resolution: {integrity: sha512-tGF/Cvch3uQjZIj34LY2mg8M2Dr4kYG8VU8Yd0dFnB1ybOEOveIK/9ypUo9ycZpB9oO6q01KRe5ijBaxNueUQg==} 252 + engines: {node: '>=18.0.0'} 253 + 254 + '@aws-sdk/signature-v4-multi-region@3.723.0': 255 + resolution: {integrity: sha512-lJlVAa5Sl589qO8lwMLVUtnlF1Q7I+6k1Iomv2goY9d1bRl4q2N5Pit2qJVr2AMW0sceQXeh23i2a/CKOqVAdg==} 256 + engines: {node: '>=18.0.0'} 257 + 258 + '@aws-sdk/token-providers@3.723.0': 259 + resolution: {integrity: sha512-hniWi1x4JHVwKElANh9afKIMUhAutHVBRD8zo6usr0PAoj+Waf220+1ULS74GXtLXAPCiNXl5Og+PHA7xT8ElQ==} 260 + engines: {node: '>=18.0.0'} 261 + peerDependencies: 262 + '@aws-sdk/client-sso-oidc': ^3.723.0 263 + 264 + '@aws-sdk/types@3.723.0': 265 + resolution: {integrity: sha512-LmK3kwiMZG1y5g3LGihT9mNkeNOmwEyPk6HGcJqh0wOSV4QpWoKu2epyKE4MLQNUUlz2kOVbVbOrwmI6ZcteuA==} 266 + engines: {node: '>=18.0.0'} 267 + 268 + '@aws-sdk/util-arn-parser@3.723.0': 269 + resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} 270 + engines: {node: '>=18.0.0'} 271 + 272 + '@aws-sdk/util-endpoints@3.726.0': 273 + resolution: {integrity: sha512-sLd30ASsPMoPn3XBK50oe/bkpJ4N8Bpb7SbhoxcY3Lk+fSASaWxbbXE81nbvCnkxrZCvkPOiDHzJCp1E2im71A==} 274 + engines: {node: '>=18.0.0'} 275 + 276 + '@aws-sdk/util-locate-window@3.723.0': 277 + resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} 278 + engines: {node: '>=18.0.0'} 279 + 280 + '@aws-sdk/util-user-agent-browser@3.723.0': 281 + resolution: {integrity: sha512-Wh9I6j2jLhNFq6fmXydIpqD1WyQLyTfSxjW9B+PXSnPyk3jtQW8AKQur7p97rO8LAUzVI0bv8kb3ZzDEVbquIg==} 282 + 283 + '@aws-sdk/util-user-agent-node@3.726.0': 284 + resolution: {integrity: sha512-iEj6KX9o6IQf23oziorveRqyzyclWai95oZHDJtYav3fvLJKStwSjygO4xSF7ycHcTYeCHSLO1FFOHgGVs4Viw==} 285 + engines: {node: '>=18.0.0'} 286 + peerDependencies: 287 + aws-crt: '>=1.0.0' 288 + peerDependenciesMeta: 289 + aws-crt: 290 + optional: true 291 + 292 + '@aws-sdk/xml-builder@3.723.0': 293 + resolution: {integrity: sha512-5xK2SqGU1mzzsOeemy7cy3fGKxR1sEpUs4pEiIjaT0OIvU+fZaDVUEYWOqsgns6wI90XZEQJlXtI8uAHX/do5Q==} 294 + engines: {node: '>=18.0.0'} 295 + 296 '@babel/helper-string-parser@7.25.9': 297 resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 298 engines: {node: '>=6.9.0'} ··· 314 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} 315 engines: {node: '>=16.13'} 316 317 + '@cloudflare/workerd-darwin-64@1.20241230.0': 318 + resolution: {integrity: sha512-BZHLg4bbhNQoaY1Uan81O3FV/zcmWueC55juhnaI7NAobiQth9RppadPNpxNAmS9fK2mR5z8xrwMQSQrHmztyQ==} 319 engines: {node: '>=16'} 320 cpu: [x64] 321 os: [darwin] 322 323 + '@cloudflare/workerd-darwin-arm64@1.20241230.0': 324 + resolution: {integrity: sha512-lllxycj7EzYoJ0VOJh8M3palUgoonVrILnzGrgsworgWlIpgjfXGS7b41tEGCw6AxSxL9prmTIGtfSPUvn/rjg==} 325 engines: {node: '>=16'} 326 cpu: [arm64] 327 os: [darwin] 328 329 + '@cloudflare/workerd-linux-64@1.20241230.0': 330 + resolution: {integrity: sha512-Y3mHcW0KghOmWdNZyHYpEOG4Ba/ga8tht5vj1a+WXfagEjMO8Y98XhZUlCaYa9yB7Wh5jVcK5LM2jlO/BLgqpA==} 331 engines: {node: '>=16'} 332 cpu: [x64] 333 os: [linux] 334 335 + '@cloudflare/workerd-linux-arm64@1.20241230.0': 336 + resolution: {integrity: sha512-IAjhsWPlHzhhkJ6I49sDG6XfMnhPvv0szKGXxTWQK/IWMrbGdHm4RSfNKBSoLQm67jGMIzbmcrX9UIkms27Y1g==} 337 engines: {node: '>=16'} 338 cpu: [arm64] 339 os: [linux] 340 341 + '@cloudflare/workerd-windows-64@1.20241230.0': 342 + resolution: {integrity: sha512-y5SPIk9iOb2gz+yWtHxoeMnjPnkYQswiCJ480oHC6zexnJLlKTpcmBCjDH1nWCT4pQi8F25gaH8thgElf4NvXQ==} 343 engines: {node: '>=16'} 344 cpu: [x64] 345 os: [win32] 346 347 + '@cloudflare/workers-types@4.20250109.0': 348 + resolution: {integrity: sha512-Y1zgSaEOOevl9ORpzgMcm4j535p3nK2lrblHHvYM2yxR50SBKGh+wvkRFAIxWRfjUGZEU+Fp6923EGioDBbobA==} 349 350 '@cspotcode/source-map-support@0.8.1': 351 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} ··· 914 cpu: [x64] 915 os: [win32] 916 917 '@jridgewell/gen-mapping@0.3.8': 918 resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 919 engines: {node: '>=6.0.0'} ··· 1072 '@shikijs/vscode-textmate@9.3.1': 1073 resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} 1074 1075 + '@smithy/abort-controller@4.0.1': 1076 + resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} 1077 + engines: {node: '>=18.0.0'} 1078 + 1079 + '@smithy/chunked-blob-reader-native@4.0.0': 1080 + resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} 1081 + engines: {node: '>=18.0.0'} 1082 + 1083 + '@smithy/chunked-blob-reader@5.0.0': 1084 + resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} 1085 + engines: {node: '>=18.0.0'} 1086 + 1087 + '@smithy/config-resolver@4.0.1': 1088 + resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} 1089 + engines: {node: '>=18.0.0'} 1090 + 1091 + '@smithy/core@3.1.0': 1092 + resolution: {integrity: sha512-swFv0wQiK7TGHeuAp6lfF5Kw1dHWsTrCuc+yh4Kh05gEShjsE2RUxHucEerR9ih9JITNtaHcSpUThn5Y/vDw0A==} 1093 + engines: {node: '>=18.0.0'} 1094 + 1095 + '@smithy/credential-provider-imds@4.0.1': 1096 + resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} 1097 + engines: {node: '>=18.0.0'} 1098 + 1099 + '@smithy/eventstream-codec@4.0.1': 1100 + resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} 1101 + engines: {node: '>=18.0.0'} 1102 + 1103 + '@smithy/eventstream-serde-browser@4.0.1': 1104 + resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} 1105 + engines: {node: '>=18.0.0'} 1106 + 1107 + '@smithy/eventstream-serde-config-resolver@4.0.1': 1108 + resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} 1109 + engines: {node: '>=18.0.0'} 1110 + 1111 + '@smithy/eventstream-serde-node@4.0.1': 1112 + resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} 1113 + engines: {node: '>=18.0.0'} 1114 + 1115 + '@smithy/eventstream-serde-universal@4.0.1': 1116 + resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} 1117 + engines: {node: '>=18.0.0'} 1118 + 1119 + '@smithy/fetch-http-handler@5.0.1': 1120 + resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} 1121 + engines: {node: '>=18.0.0'} 1122 + 1123 + '@smithy/hash-blob-browser@4.0.1': 1124 + resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} 1125 + engines: {node: '>=18.0.0'} 1126 + 1127 + '@smithy/hash-node@4.0.1': 1128 + resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} 1129 + engines: {node: '>=18.0.0'} 1130 + 1131 + '@smithy/hash-stream-node@4.0.1': 1132 + resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} 1133 + engines: {node: '>=18.0.0'} 1134 + 1135 + '@smithy/invalid-dependency@4.0.1': 1136 + resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} 1137 + engines: {node: '>=18.0.0'} 1138 + 1139 + '@smithy/is-array-buffer@2.2.0': 1140 + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 1141 + engines: {node: '>=14.0.0'} 1142 + 1143 + '@smithy/is-array-buffer@4.0.0': 1144 + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} 1145 + engines: {node: '>=18.0.0'} 1146 + 1147 + '@smithy/md5-js@4.0.1': 1148 + resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} 1149 + engines: {node: '>=18.0.0'} 1150 + 1151 + '@smithy/middleware-content-length@4.0.1': 1152 + resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} 1153 + engines: {node: '>=18.0.0'} 1154 + 1155 + '@smithy/middleware-endpoint@4.0.1': 1156 + resolution: {integrity: sha512-hCCOPu9+sRI7Wj0rZKKnGylKXBEd9cQJetzjQqe8cT4PWvtQAbvNVa6cgAONiZg9m8LaXtP9/waxm3C3eO4hiw==} 1157 + engines: {node: '>=18.0.0'} 1158 + 1159 + '@smithy/middleware-retry@4.0.1': 1160 + resolution: {integrity: sha512-n3g2zZFgOWaz2ZYCy8+4wxSmq+HSTD8QKkRhFDv+nkxY1o7gzyp4PDz/+tOdcNPMPZ/A6Mt4aVECYNjQNiaHJw==} 1161 + engines: {node: '>=18.0.0'} 1162 + 1163 + '@smithy/middleware-serde@4.0.1': 1164 + resolution: {integrity: sha512-Fh0E2SOF+S+P1+CsgKyiBInAt3o2b6Qk7YOp2W0Qx2XnfTdfMuSDKUEcnrtpxCzgKJnqXeLUZYqtThaP0VGqtA==} 1165 + engines: {node: '>=18.0.0'} 1166 + 1167 + '@smithy/middleware-stack@4.0.1': 1168 + resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} 1169 + engines: {node: '>=18.0.0'} 1170 + 1171 + '@smithy/node-config-provider@4.0.1': 1172 + resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} 1173 + engines: {node: '>=18.0.0'} 1174 + 1175 + '@smithy/node-http-handler@4.0.1': 1176 + resolution: {integrity: sha512-ddQc7tvXiVLC5c3QKraGWde761KSk+mboCheZoWtuqnXh5l0WKyFy3NfDIM/dsKrI9HlLVH/21pi9wWK2gUFFA==} 1177 + engines: {node: '>=18.0.0'} 1178 + 1179 + '@smithy/property-provider@4.0.1': 1180 + resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} 1181 + engines: {node: '>=18.0.0'} 1182 + 1183 + '@smithy/protocol-http@5.0.1': 1184 + resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} 1185 + engines: {node: '>=18.0.0'} 1186 + 1187 + '@smithy/querystring-builder@4.0.1': 1188 + resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} 1189 + engines: {node: '>=18.0.0'} 1190 + 1191 + '@smithy/querystring-parser@4.0.1': 1192 + resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} 1193 + engines: {node: '>=18.0.0'} 1194 + 1195 + '@smithy/service-error-classification@4.0.1': 1196 + resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} 1197 + engines: {node: '>=18.0.0'} 1198 + 1199 + '@smithy/shared-ini-file-loader@4.0.1': 1200 + resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} 1201 + engines: {node: '>=18.0.0'} 1202 + 1203 + '@smithy/signature-v4@5.0.1': 1204 + resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} 1205 + engines: {node: '>=18.0.0'} 1206 + 1207 + '@smithy/smithy-client@4.1.0': 1208 + resolution: {integrity: sha512-NiboZnrsrZY+Cy5hQNbYi+nVNssXVi2I+yL4CIKNIanOhH8kpC5PKQ2jx/MQpwVr21a3XcVoQBArlpRF36OeEQ==} 1209 + engines: {node: '>=18.0.0'} 1210 + 1211 + '@smithy/types@4.1.0': 1212 + resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} 1213 + engines: {node: '>=18.0.0'} 1214 + 1215 + '@smithy/url-parser@4.0.1': 1216 + resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} 1217 + engines: {node: '>=18.0.0'} 1218 + 1219 + '@smithy/util-base64@4.0.0': 1220 + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} 1221 + engines: {node: '>=18.0.0'} 1222 + 1223 + '@smithy/util-body-length-browser@4.0.0': 1224 + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} 1225 + engines: {node: '>=18.0.0'} 1226 + 1227 + '@smithy/util-body-length-node@4.0.0': 1228 + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} 1229 + engines: {node: '>=18.0.0'} 1230 + 1231 + '@smithy/util-buffer-from@2.2.0': 1232 + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 1233 + engines: {node: '>=14.0.0'} 1234 + 1235 + '@smithy/util-buffer-from@4.0.0': 1236 + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} 1237 + engines: {node: '>=18.0.0'} 1238 + 1239 + '@smithy/util-config-provider@4.0.0': 1240 + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} 1241 + engines: {node: '>=18.0.0'} 1242 + 1243 + '@smithy/util-defaults-mode-browser@4.0.1': 1244 + resolution: {integrity: sha512-nkQifWzWUHw/D0aLPgyKut+QnJ5X+5E8wBvGfvrYLLZ86xPfVO6MoqfQo/9s4bF3Xscefua1M6KLZtobHMWrBg==} 1245 + engines: {node: '>=18.0.0'} 1246 + 1247 + '@smithy/util-defaults-mode-node@4.0.1': 1248 + resolution: {integrity: sha512-LeAx2faB83litC9vaOdwFaldtto2gczUHxfFf8yoRwDU3cwL4/pDm7i0hxsuBCRk5mzHsrVGw+3EVCj32UZMdw==} 1249 + engines: {node: '>=18.0.0'} 1250 + 1251 + '@smithy/util-endpoints@3.0.1': 1252 + resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} 1253 + engines: {node: '>=18.0.0'} 1254 + 1255 + '@smithy/util-hex-encoding@4.0.0': 1256 + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} 1257 + engines: {node: '>=18.0.0'} 1258 + 1259 + '@smithy/util-middleware@4.0.1': 1260 + resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} 1261 + engines: {node: '>=18.0.0'} 1262 + 1263 + '@smithy/util-retry@4.0.1': 1264 + resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} 1265 + engines: {node: '>=18.0.0'} 1266 + 1267 + '@smithy/util-stream@4.0.1': 1268 + resolution: {integrity: sha512-Js16gOgU6Qht6qTPfuJgb+1YD4AEO+5Y1UPGWKSp3BNo8ONl/qhXSYDhFKJtwybRJynlCqvP5IeiaBsUmkSPTQ==} 1269 + engines: {node: '>=18.0.0'} 1270 + 1271 + '@smithy/util-uri-escape@4.0.0': 1272 + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} 1273 + engines: {node: '>=18.0.0'} 1274 + 1275 + '@smithy/util-utf8@2.3.0': 1276 + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 1277 + engines: {node: '>=14.0.0'} 1278 + 1279 + '@smithy/util-utf8@4.0.0': 1280 + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} 1281 + engines: {node: '>=18.0.0'} 1282 + 1283 + '@smithy/util-waiter@4.0.2': 1284 + resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} 1285 + engines: {node: '>=18.0.0'} 1286 + 1287 '@sveltejs/vite-plugin-svelte-inspector@4.0.1': 1288 resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} 1289 engines: {node: ^18.0.0 || ^20.0.0 || >=22} ··· 1440 as-table@1.0.55: 1441 resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1442 1443 astring@1.9.0: 1444 resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 1445 hasBin: true 1446 1447 + astro@5.1.6: 1448 + resolution: {integrity: sha512-LpTazCIW6syxFePi65gg2ptqqC2kR+PDRym3V23hEQj5yCf+T0t5v9qtp3fW0/+6G+JvP0EprCfCRTt7h/hexg==} 1449 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 1450 hasBin: true 1451 ··· 1465 1466 blake3-wasm@2.1.5: 1467 resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1468 + 1469 + bowser@2.11.0: 1470 + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 1471 1472 boxen@8.0.1: 1473 resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} ··· 1549 1550 common-ancestor-path@1.0.1: 1551 resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 1552 + 1553 + confbox@0.1.8: 1554 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 1555 1556 consola@3.3.3: 1557 resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} ··· 1742 fast-uri@3.0.3: 1743 resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} 1744 1745 + fast-xml-parser@4.4.1: 1746 + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} 1747 + hasBin: true 1748 + 1749 fast-xml-parser@4.5.1: 1750 resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} 1751 hasBin: true ··· 1823 hast-util-from-parse5@8.0.2: 1824 resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} 1825 1826 + hast-util-heading-rank@3.0.0: 1827 + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} 1828 + 1829 hast-util-is-element@3.0.0: 1830 resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 1831 ··· 1846 1847 hast-util-to-parse5@8.0.0: 1848 resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} 1849 + 1850 + hast-util-to-string@3.0.1: 1851 + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} 1852 1853 hast-util-to-text@4.0.2: 1854 resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} ··· 1993 1994 lru-cache@10.4.3: 1995 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1996 + 1997 + lunarphase-js@2.0.3: 1998 + resolution: {integrity: sha512-zTr/UWbxQ1lyKgaBnyJ/DvKCPONhZQcwmQ8PuF2g2QwdkF8JkhgPe8QlDroxSjZrfpg/9x6jQ6lFtBkSXXf1oQ==} 1999 2000 magic-string@0.25.9: 2001 resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} ··· 2189 engines: {node: '>=10.0.0'} 2190 hasBin: true 2191 2192 + miniflare@3.20241230.1: 2193 + resolution: {integrity: sha512-CS6zm12IK7VQGAnypfqqfweVtRKwkz1k4E1cKuF04yCDsuKzkM1UkzCfKhD7cJdGwdEtdtRwq69kODeVFAl8og==} 2194 engines: {node: '>=16.13'} 2195 hasBin: true 2196 + 2197 + mlly@1.7.4: 2198 + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 2199 2200 mrmime@2.0.0: 2201 resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} ··· 2302 pathe@1.1.2: 2303 resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 2304 2305 + pathe@2.0.1: 2306 + resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==} 2307 + 2308 picocolors@1.1.1: 2309 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 2310 ··· 2323 pkg-dir@4.2.0: 2324 resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2325 engines: {node: '>=8'} 2326 + 2327 + pkg-types@1.3.0: 2328 + resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} 2329 2330 postcss@8.4.49: 2331 resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} ··· 2372 resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 2373 engines: {node: '>= 14.16.0'} 2374 2375 recma-build-jsx@1.0.0: 2376 resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} 2377 ··· 2393 regex@5.1.1: 2394 resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 2395 2396 + rehype-autolink-headings@7.1.0: 2397 + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} 2398 + 2399 rehype-parse@9.0.1: 2400 resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 2401 ··· 2404 2405 rehype-recma@1.0.0: 2406 resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} 2407 + 2408 + rehype-slug@6.0.0: 2409 + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} 2410 2411 rehype-stringify@10.0.1: 2412 resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} ··· 2597 tiny-glob@0.2.9: 2598 resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2599 2600 tinyexec@0.3.1: 2601 resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 2602 ··· 2657 resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 2658 engines: {node: '>=14.0'} 2659 2660 + unenv-nightly@2.0.0-20241218-183400-5d6aec3: 2661 + resolution: {integrity: sha512-7Xpi29CJRbOV1/IrC03DawMJ0hloklDLq/cigSe+J2jkcC+iDres2Cy0r4ltj5f0x7DqsaGaB4/dLuCPPFZnZA==} 2662 2663 unenv@1.10.0: 2664 resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} ··· 2755 uploadthing: 2756 optional: true 2757 2758 + uuid@9.0.1: 2759 + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 2760 + hasBin: true 2761 + 2762 vfile-location@5.0.3: 2763 resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 2764 ··· 2808 yaml: 2809 optional: true 2810 2811 + vite@6.0.7: 2812 + resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} 2813 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 2814 + hasBin: true 2815 + peerDependencies: 2816 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 2817 + jiti: '>=1.21.0' 2818 + less: '*' 2819 + lightningcss: ^1.21.0 2820 + sass: '*' 2821 + sass-embedded: '*' 2822 + stylus: '*' 2823 + sugarss: '*' 2824 + terser: ^5.16.0 2825 + tsx: ^4.8.1 2826 + yaml: ^2.4.2 2827 + peerDependenciesMeta: 2828 + '@types/node': 2829 + optional: true 2830 + jiti: 2831 + optional: true 2832 + less: 2833 + optional: true 2834 + lightningcss: 2835 + optional: true 2836 + sass: 2837 + optional: true 2838 + sass-embedded: 2839 + optional: true 2840 + stylus: 2841 + optional: true 2842 + sugarss: 2843 + optional: true 2844 + terser: 2845 + optional: true 2846 + tsx: 2847 + optional: true 2848 + yaml: 2849 + optional: true 2850 + 2851 vitefu@1.0.4: 2852 resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} 2853 peerDependencies: ··· 2977 resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 2978 engines: {node: '>=18'} 2979 2980 + workerd@1.20241230.0: 2981 + resolution: {integrity: sha512-EgixXP0JGXGq6J9lz17TKIZtfNDUvJNG+cl9paPMfZuYWT920fFpBx+K04YmnbQRLnglsivF1GT9pxh1yrlWhg==} 2982 engines: {node: '>=16'} 2983 hasBin: true 2984 2985 + wrangler@3.101.0: 2986 + resolution: {integrity: sha512-zKRqL/jjyF54DH8YCCaF4B2x0v9kSdxLpNkxGDltZ17vCBbq9PCchooN25jbmxOTC2LWdB2LVDw7S66zdl7XuQ==} 2987 engines: {node: '>=16.17.0'} 2988 hasBin: true 2989 peerDependencies: 2990 + '@cloudflare/workers-types': ^4.20241230.0 2991 peerDependenciesMeta: 2992 '@cloudflare/workers-types': 2993 optional: true ··· 3093 - prettier 3094 - prettier-plugin-astro 3095 3096 + '@astrojs/cloudflare@12.2.0(@types/node@22.10.2)(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(yaml@2.6.1)': 3097 dependencies: 3098 + '@astrojs/internal-helpers': 0.4.2 3099 + '@astrojs/underscore-redirects': 0.6.0 3100 + '@cloudflare/workers-types': 4.20250109.0 3101 + astro: 5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 3102 esbuild: 0.24.2 3103 estree-walker: 3.0.3 3104 magic-string: 0.30.17 3105 + miniflare: 3.20241230.1 3106 tiny-glob: 0.2.9 3107 + vite: 6.0.7(@types/node@22.10.2)(yaml@2.6.1) 3108 + wrangler: 3.101.0(@cloudflare/workers-types@4.20250109.0) 3109 transitivePeerDependencies: 3110 - '@types/node' 3111 + - aws-crt 3112 - bufferutil 3113 - jiti 3114 - less ··· 3124 - yaml 3125 3126 '@astrojs/compiler@2.10.3': {} 3127 3128 '@astrojs/internal-helpers@0.4.2': {} 3129 ··· 3174 transitivePeerDependencies: 3175 - supports-color 3176 3177 + '@astrojs/mdx@4.0.5(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))': 3178 dependencies: 3179 '@astrojs/markdown-remark': 6.0.1 3180 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) 3181 acorn: 8.14.0 3182 + astro: 5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 3183 es-module-lexer: 1.6.0 3184 estree-util-visit: 2.0.0 3185 hast-util-to-html: 9.0.4 ··· 3197 dependencies: 3198 prismjs: 1.29.0 3199 3200 + '@astrojs/rss@4.0.11': 3201 dependencies: 3202 fast-xml-parser: 4.5.1 3203 kleur: 4.1.5 ··· 3208 stream-replace-string: 2.0.0 3209 zod: 3.24.1 3210 3211 + '@astrojs/svelte@7.0.3(@types/node@22.10.2)(astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1))(svelte@5.16.0)(typescript@5.7.2)(yaml@2.6.1)': 3212 dependencies: 3213 '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)) 3214 + astro: 5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 3215 svelte: 5.16.0 3216 svelte2tsx: 0.7.31(svelte@5.16.0)(typescript@5.7.2) 3217 typescript: 5.7.2 ··· 3242 transitivePeerDependencies: 3243 - supports-color 3244 3245 + '@astrojs/underscore-redirects@0.6.0': {} 3246 3247 '@astrojs/yaml2ts@0.2.2': 3248 dependencies: 3249 yaml: 2.6.1 3250 3251 + '@aws-crypto/crc32@5.2.0': 3252 + dependencies: 3253 + '@aws-crypto/util': 5.2.0 3254 + '@aws-sdk/types': 3.723.0 3255 + tslib: 2.8.1 3256 + 3257 + '@aws-crypto/crc32c@5.2.0': 3258 + dependencies: 3259 + '@aws-crypto/util': 5.2.0 3260 + '@aws-sdk/types': 3.723.0 3261 + tslib: 2.8.1 3262 + 3263 + '@aws-crypto/sha1-browser@5.2.0': 3264 + dependencies: 3265 + '@aws-crypto/supports-web-crypto': 5.2.0 3266 + '@aws-crypto/util': 5.2.0 3267 + '@aws-sdk/types': 3.723.0 3268 + '@aws-sdk/util-locate-window': 3.723.0 3269 + '@smithy/util-utf8': 2.3.0 3270 + tslib: 2.8.1 3271 + 3272 + '@aws-crypto/sha256-browser@5.2.0': 3273 + dependencies: 3274 + '@aws-crypto/sha256-js': 5.2.0 3275 + '@aws-crypto/supports-web-crypto': 5.2.0 3276 + '@aws-crypto/util': 5.2.0 3277 + '@aws-sdk/types': 3.723.0 3278 + '@aws-sdk/util-locate-window': 3.723.0 3279 + '@smithy/util-utf8': 2.3.0 3280 + tslib: 2.8.1 3281 + 3282 + '@aws-crypto/sha256-js@5.2.0': 3283 + dependencies: 3284 + '@aws-crypto/util': 5.2.0 3285 + '@aws-sdk/types': 3.723.0 3286 + tslib: 2.8.1 3287 + 3288 + '@aws-crypto/supports-web-crypto@5.2.0': 3289 + dependencies: 3290 + tslib: 2.8.1 3291 + 3292 + '@aws-crypto/util@5.2.0': 3293 + dependencies: 3294 + '@aws-sdk/types': 3.723.0 3295 + '@smithy/util-utf8': 2.3.0 3296 + tslib: 2.8.1 3297 + 3298 + '@aws-sdk/client-s3@3.726.1': 3299 + dependencies: 3300 + '@aws-crypto/sha1-browser': 5.2.0 3301 + '@aws-crypto/sha256-browser': 5.2.0 3302 + '@aws-crypto/sha256-js': 5.2.0 3303 + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) 3304 + '@aws-sdk/client-sts': 3.726.1 3305 + '@aws-sdk/core': 3.723.0 3306 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) 3307 + '@aws-sdk/middleware-bucket-endpoint': 3.726.0 3308 + '@aws-sdk/middleware-expect-continue': 3.723.0 3309 + '@aws-sdk/middleware-flexible-checksums': 3.723.0 3310 + '@aws-sdk/middleware-host-header': 3.723.0 3311 + '@aws-sdk/middleware-location-constraint': 3.723.0 3312 + '@aws-sdk/middleware-logger': 3.723.0 3313 + '@aws-sdk/middleware-recursion-detection': 3.723.0 3314 + '@aws-sdk/middleware-sdk-s3': 3.723.0 3315 + '@aws-sdk/middleware-ssec': 3.723.0 3316 + '@aws-sdk/middleware-user-agent': 3.726.0 3317 + '@aws-sdk/region-config-resolver': 3.723.0 3318 + '@aws-sdk/signature-v4-multi-region': 3.723.0 3319 + '@aws-sdk/types': 3.723.0 3320 + '@aws-sdk/util-endpoints': 3.726.0 3321 + '@aws-sdk/util-user-agent-browser': 3.723.0 3322 + '@aws-sdk/util-user-agent-node': 3.726.0 3323 + '@aws-sdk/xml-builder': 3.723.0 3324 + '@smithy/config-resolver': 4.0.1 3325 + '@smithy/core': 3.1.0 3326 + '@smithy/eventstream-serde-browser': 4.0.1 3327 + '@smithy/eventstream-serde-config-resolver': 4.0.1 3328 + '@smithy/eventstream-serde-node': 4.0.1 3329 + '@smithy/fetch-http-handler': 5.0.1 3330 + '@smithy/hash-blob-browser': 4.0.1 3331 + '@smithy/hash-node': 4.0.1 3332 + '@smithy/hash-stream-node': 4.0.1 3333 + '@smithy/invalid-dependency': 4.0.1 3334 + '@smithy/md5-js': 4.0.1 3335 + '@smithy/middleware-content-length': 4.0.1 3336 + '@smithy/middleware-endpoint': 4.0.1 3337 + '@smithy/middleware-retry': 4.0.1 3338 + '@smithy/middleware-serde': 4.0.1 3339 + '@smithy/middleware-stack': 4.0.1 3340 + '@smithy/node-config-provider': 4.0.1 3341 + '@smithy/node-http-handler': 4.0.1 3342 + '@smithy/protocol-http': 5.0.1 3343 + '@smithy/smithy-client': 4.1.0 3344 + '@smithy/types': 4.1.0 3345 + '@smithy/url-parser': 4.0.1 3346 + '@smithy/util-base64': 4.0.0 3347 + '@smithy/util-body-length-browser': 4.0.0 3348 + '@smithy/util-body-length-node': 4.0.0 3349 + '@smithy/util-defaults-mode-browser': 4.0.1 3350 + '@smithy/util-defaults-mode-node': 4.0.1 3351 + '@smithy/util-endpoints': 3.0.1 3352 + '@smithy/util-middleware': 4.0.1 3353 + '@smithy/util-retry': 4.0.1 3354 + '@smithy/util-stream': 4.0.1 3355 + '@smithy/util-utf8': 4.0.0 3356 + '@smithy/util-waiter': 4.0.2 3357 + tslib: 2.8.1 3358 + transitivePeerDependencies: 3359 + - aws-crt 3360 + 3361 + '@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)': 3362 + dependencies: 3363 + '@aws-crypto/sha256-browser': 5.2.0 3364 + '@aws-crypto/sha256-js': 5.2.0 3365 + '@aws-sdk/client-sts': 3.726.1 3366 + '@aws-sdk/core': 3.723.0 3367 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) 3368 + '@aws-sdk/middleware-host-header': 3.723.0 3369 + '@aws-sdk/middleware-logger': 3.723.0 3370 + '@aws-sdk/middleware-recursion-detection': 3.723.0 3371 + '@aws-sdk/middleware-user-agent': 3.726.0 3372 + '@aws-sdk/region-config-resolver': 3.723.0 3373 + '@aws-sdk/types': 3.723.0 3374 + '@aws-sdk/util-endpoints': 3.726.0 3375 + '@aws-sdk/util-user-agent-browser': 3.723.0 3376 + '@aws-sdk/util-user-agent-node': 3.726.0 3377 + '@smithy/config-resolver': 4.0.1 3378 + '@smithy/core': 3.1.0 3379 + '@smithy/fetch-http-handler': 5.0.1 3380 + '@smithy/hash-node': 4.0.1 3381 + '@smithy/invalid-dependency': 4.0.1 3382 + '@smithy/middleware-content-length': 4.0.1 3383 + '@smithy/middleware-endpoint': 4.0.1 3384 + '@smithy/middleware-retry': 4.0.1 3385 + '@smithy/middleware-serde': 4.0.1 3386 + '@smithy/middleware-stack': 4.0.1 3387 + '@smithy/node-config-provider': 4.0.1 3388 + '@smithy/node-http-handler': 4.0.1 3389 + '@smithy/protocol-http': 5.0.1 3390 + '@smithy/smithy-client': 4.1.0 3391 + '@smithy/types': 4.1.0 3392 + '@smithy/url-parser': 4.0.1 3393 + '@smithy/util-base64': 4.0.0 3394 + '@smithy/util-body-length-browser': 4.0.0 3395 + '@smithy/util-body-length-node': 4.0.0 3396 + '@smithy/util-defaults-mode-browser': 4.0.1 3397 + '@smithy/util-defaults-mode-node': 4.0.1 3398 + '@smithy/util-endpoints': 3.0.1 3399 + '@smithy/util-middleware': 4.0.1 3400 + '@smithy/util-retry': 4.0.1 3401 + '@smithy/util-utf8': 4.0.0 3402 + tslib: 2.8.1 3403 + transitivePeerDependencies: 3404 + - aws-crt 3405 + 3406 + '@aws-sdk/client-sso@3.726.0': 3407 + dependencies: 3408 + '@aws-crypto/sha256-browser': 5.2.0 3409 + '@aws-crypto/sha256-js': 5.2.0 3410 + '@aws-sdk/core': 3.723.0 3411 + '@aws-sdk/middleware-host-header': 3.723.0 3412 + '@aws-sdk/middleware-logger': 3.723.0 3413 + '@aws-sdk/middleware-recursion-detection': 3.723.0 3414 + '@aws-sdk/middleware-user-agent': 3.726.0 3415 + '@aws-sdk/region-config-resolver': 3.723.0 3416 + '@aws-sdk/types': 3.723.0 3417 + '@aws-sdk/util-endpoints': 3.726.0 3418 + '@aws-sdk/util-user-agent-browser': 3.723.0 3419 + '@aws-sdk/util-user-agent-node': 3.726.0 3420 + '@smithy/config-resolver': 4.0.1 3421 + '@smithy/core': 3.1.0 3422 + '@smithy/fetch-http-handler': 5.0.1 3423 + '@smithy/hash-node': 4.0.1 3424 + '@smithy/invalid-dependency': 4.0.1 3425 + '@smithy/middleware-content-length': 4.0.1 3426 + '@smithy/middleware-endpoint': 4.0.1 3427 + '@smithy/middleware-retry': 4.0.1 3428 + '@smithy/middleware-serde': 4.0.1 3429 + '@smithy/middleware-stack': 4.0.1 3430 + '@smithy/node-config-provider': 4.0.1 3431 + '@smithy/node-http-handler': 4.0.1 3432 + '@smithy/protocol-http': 5.0.1 3433 + '@smithy/smithy-client': 4.1.0 3434 + '@smithy/types': 4.1.0 3435 + '@smithy/url-parser': 4.0.1 3436 + '@smithy/util-base64': 4.0.0 3437 + '@smithy/util-body-length-browser': 4.0.0 3438 + '@smithy/util-body-length-node': 4.0.0 3439 + '@smithy/util-defaults-mode-browser': 4.0.1 3440 + '@smithy/util-defaults-mode-node': 4.0.1 3441 + '@smithy/util-endpoints': 3.0.1 3442 + '@smithy/util-middleware': 4.0.1 3443 + '@smithy/util-retry': 4.0.1 3444 + '@smithy/util-utf8': 4.0.0 3445 + tslib: 2.8.1 3446 + transitivePeerDependencies: 3447 + - aws-crt 3448 + 3449 + '@aws-sdk/client-sts@3.726.1': 3450 + dependencies: 3451 + '@aws-crypto/sha256-browser': 5.2.0 3452 + '@aws-crypto/sha256-js': 5.2.0 3453 + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) 3454 + '@aws-sdk/core': 3.723.0 3455 + '@aws-sdk/credential-provider-node': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) 3456 + '@aws-sdk/middleware-host-header': 3.723.0 3457 + '@aws-sdk/middleware-logger': 3.723.0 3458 + '@aws-sdk/middleware-recursion-detection': 3.723.0 3459 + '@aws-sdk/middleware-user-agent': 3.726.0 3460 + '@aws-sdk/region-config-resolver': 3.723.0 3461 + '@aws-sdk/types': 3.723.0 3462 + '@aws-sdk/util-endpoints': 3.726.0 3463 + '@aws-sdk/util-user-agent-browser': 3.723.0 3464 + '@aws-sdk/util-user-agent-node': 3.726.0 3465 + '@smithy/config-resolver': 4.0.1 3466 + '@smithy/core': 3.1.0 3467 + '@smithy/fetch-http-handler': 5.0.1 3468 + '@smithy/hash-node': 4.0.1 3469 + '@smithy/invalid-dependency': 4.0.1 3470 + '@smithy/middleware-content-length': 4.0.1 3471 + '@smithy/middleware-endpoint': 4.0.1 3472 + '@smithy/middleware-retry': 4.0.1 3473 + '@smithy/middleware-serde': 4.0.1 3474 + '@smithy/middleware-stack': 4.0.1 3475 + '@smithy/node-config-provider': 4.0.1 3476 + '@smithy/node-http-handler': 4.0.1 3477 + '@smithy/protocol-http': 5.0.1 3478 + '@smithy/smithy-client': 4.1.0 3479 + '@smithy/types': 4.1.0 3480 + '@smithy/url-parser': 4.0.1 3481 + '@smithy/util-base64': 4.0.0 3482 + '@smithy/util-body-length-browser': 4.0.0 3483 + '@smithy/util-body-length-node': 4.0.0 3484 + '@smithy/util-defaults-mode-browser': 4.0.1 3485 + '@smithy/util-defaults-mode-node': 4.0.1 3486 + '@smithy/util-endpoints': 3.0.1 3487 + '@smithy/util-middleware': 4.0.1 3488 + '@smithy/util-retry': 4.0.1 3489 + '@smithy/util-utf8': 4.0.0 3490 + tslib: 2.8.1 3491 + transitivePeerDependencies: 3492 + - aws-crt 3493 + 3494 + '@aws-sdk/core@3.723.0': 3495 + dependencies: 3496 + '@aws-sdk/types': 3.723.0 3497 + '@smithy/core': 3.1.0 3498 + '@smithy/node-config-provider': 4.0.1 3499 + '@smithy/property-provider': 4.0.1 3500 + '@smithy/protocol-http': 5.0.1 3501 + '@smithy/signature-v4': 5.0.1 3502 + '@smithy/smithy-client': 4.1.0 3503 + '@smithy/types': 4.1.0 3504 + '@smithy/util-middleware': 4.0.1 3505 + fast-xml-parser: 4.4.1 3506 + tslib: 2.8.1 3507 + 3508 + '@aws-sdk/credential-provider-env@3.723.0': 3509 + dependencies: 3510 + '@aws-sdk/core': 3.723.0 3511 + '@aws-sdk/types': 3.723.0 3512 + '@smithy/property-provider': 4.0.1 3513 + '@smithy/types': 4.1.0 3514 + tslib: 2.8.1 3515 + 3516 + '@aws-sdk/credential-provider-http@3.723.0': 3517 + dependencies: 3518 + '@aws-sdk/core': 3.723.0 3519 + '@aws-sdk/types': 3.723.0 3520 + '@smithy/fetch-http-handler': 5.0.1 3521 + '@smithy/node-http-handler': 4.0.1 3522 + '@smithy/property-provider': 4.0.1 3523 + '@smithy/protocol-http': 5.0.1 3524 + '@smithy/smithy-client': 4.1.0 3525 + '@smithy/types': 4.1.0 3526 + '@smithy/util-stream': 4.0.1 3527 + tslib: 2.8.1 3528 + 3529 + '@aws-sdk/credential-provider-ini@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)': 3530 + dependencies: 3531 + '@aws-sdk/client-sts': 3.726.1 3532 + '@aws-sdk/core': 3.723.0 3533 + '@aws-sdk/credential-provider-env': 3.723.0 3534 + '@aws-sdk/credential-provider-http': 3.723.0 3535 + '@aws-sdk/credential-provider-process': 3.723.0 3536 + '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) 3537 + '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1) 3538 + '@aws-sdk/types': 3.723.0 3539 + '@smithy/credential-provider-imds': 4.0.1 3540 + '@smithy/property-provider': 4.0.1 3541 + '@smithy/shared-ini-file-loader': 4.0.1 3542 + '@smithy/types': 4.1.0 3543 + tslib: 2.8.1 3544 + transitivePeerDependencies: 3545 + - '@aws-sdk/client-sso-oidc' 3546 + - aws-crt 3547 + 3548 + '@aws-sdk/credential-provider-node@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1)': 3549 + dependencies: 3550 + '@aws-sdk/credential-provider-env': 3.723.0 3551 + '@aws-sdk/credential-provider-http': 3.723.0 3552 + '@aws-sdk/credential-provider-ini': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))(@aws-sdk/client-sts@3.726.1) 3553 + '@aws-sdk/credential-provider-process': 3.723.0 3554 + '@aws-sdk/credential-provider-sso': 3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) 3555 + '@aws-sdk/credential-provider-web-identity': 3.723.0(@aws-sdk/client-sts@3.726.1) 3556 + '@aws-sdk/types': 3.723.0 3557 + '@smithy/credential-provider-imds': 4.0.1 3558 + '@smithy/property-provider': 4.0.1 3559 + '@smithy/shared-ini-file-loader': 4.0.1 3560 + '@smithy/types': 4.1.0 3561 + tslib: 2.8.1 3562 + transitivePeerDependencies: 3563 + - '@aws-sdk/client-sso-oidc' 3564 + - '@aws-sdk/client-sts' 3565 + - aws-crt 3566 + 3567 + '@aws-sdk/credential-provider-process@3.723.0': 3568 + dependencies: 3569 + '@aws-sdk/core': 3.723.0 3570 + '@aws-sdk/types': 3.723.0 3571 + '@smithy/property-provider': 4.0.1 3572 + '@smithy/shared-ini-file-loader': 4.0.1 3573 + '@smithy/types': 4.1.0 3574 + tslib: 2.8.1 3575 + 3576 + '@aws-sdk/credential-provider-sso@3.726.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))': 3577 + dependencies: 3578 + '@aws-sdk/client-sso': 3.726.0 3579 + '@aws-sdk/core': 3.723.0 3580 + '@aws-sdk/token-providers': 3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1)) 3581 + '@aws-sdk/types': 3.723.0 3582 + '@smithy/property-provider': 4.0.1 3583 + '@smithy/shared-ini-file-loader': 4.0.1 3584 + '@smithy/types': 4.1.0 3585 + tslib: 2.8.1 3586 + transitivePeerDependencies: 3587 + - '@aws-sdk/client-sso-oidc' 3588 + - aws-crt 3589 + 3590 + '@aws-sdk/credential-provider-web-identity@3.723.0(@aws-sdk/client-sts@3.726.1)': 3591 + dependencies: 3592 + '@aws-sdk/client-sts': 3.726.1 3593 + '@aws-sdk/core': 3.723.0 3594 + '@aws-sdk/types': 3.723.0 3595 + '@smithy/property-provider': 4.0.1 3596 + '@smithy/types': 4.1.0 3597 + tslib: 2.8.1 3598 + 3599 + '@aws-sdk/middleware-bucket-endpoint@3.726.0': 3600 + dependencies: 3601 + '@aws-sdk/types': 3.723.0 3602 + '@aws-sdk/util-arn-parser': 3.723.0 3603 + '@smithy/node-config-provider': 4.0.1 3604 + '@smithy/protocol-http': 5.0.1 3605 + '@smithy/types': 4.1.0 3606 + '@smithy/util-config-provider': 4.0.0 3607 + tslib: 2.8.1 3608 + 3609 + '@aws-sdk/middleware-expect-continue@3.723.0': 3610 + dependencies: 3611 + '@aws-sdk/types': 3.723.0 3612 + '@smithy/protocol-http': 5.0.1 3613 + '@smithy/types': 4.1.0 3614 + tslib: 2.8.1 3615 + 3616 + '@aws-sdk/middleware-flexible-checksums@3.723.0': 3617 + dependencies: 3618 + '@aws-crypto/crc32': 5.2.0 3619 + '@aws-crypto/crc32c': 5.2.0 3620 + '@aws-crypto/util': 5.2.0 3621 + '@aws-sdk/core': 3.723.0 3622 + '@aws-sdk/types': 3.723.0 3623 + '@smithy/is-array-buffer': 4.0.0 3624 + '@smithy/node-config-provider': 4.0.1 3625 + '@smithy/protocol-http': 5.0.1 3626 + '@smithy/types': 4.1.0 3627 + '@smithy/util-middleware': 4.0.1 3628 + '@smithy/util-stream': 4.0.1 3629 + '@smithy/util-utf8': 4.0.0 3630 + tslib: 2.8.1 3631 + 3632 + '@aws-sdk/middleware-host-header@3.723.0': 3633 + dependencies: 3634 + '@aws-sdk/types': 3.723.0 3635 + '@smithy/protocol-http': 5.0.1 3636 + '@smithy/types': 4.1.0 3637 + tslib: 2.8.1 3638 + 3639 + '@aws-sdk/middleware-location-constraint@3.723.0': 3640 + dependencies: 3641 + '@aws-sdk/types': 3.723.0 3642 + '@smithy/types': 4.1.0 3643 + tslib: 2.8.1 3644 + 3645 + '@aws-sdk/middleware-logger@3.723.0': 3646 + dependencies: 3647 + '@aws-sdk/types': 3.723.0 3648 + '@smithy/types': 4.1.0 3649 + tslib: 2.8.1 3650 + 3651 + '@aws-sdk/middleware-recursion-detection@3.723.0': 3652 + dependencies: 3653 + '@aws-sdk/types': 3.723.0 3654 + '@smithy/protocol-http': 5.0.1 3655 + '@smithy/types': 4.1.0 3656 + tslib: 2.8.1 3657 + 3658 + '@aws-sdk/middleware-sdk-s3@3.723.0': 3659 + dependencies: 3660 + '@aws-sdk/core': 3.723.0 3661 + '@aws-sdk/types': 3.723.0 3662 + '@aws-sdk/util-arn-parser': 3.723.0 3663 + '@smithy/core': 3.1.0 3664 + '@smithy/node-config-provider': 4.0.1 3665 + '@smithy/protocol-http': 5.0.1 3666 + '@smithy/signature-v4': 5.0.1 3667 + '@smithy/smithy-client': 4.1.0 3668 + '@smithy/types': 4.1.0 3669 + '@smithy/util-config-provider': 4.0.0 3670 + '@smithy/util-middleware': 4.0.1 3671 + '@smithy/util-stream': 4.0.1 3672 + '@smithy/util-utf8': 4.0.0 3673 + tslib: 2.8.1 3674 + 3675 + '@aws-sdk/middleware-ssec@3.723.0': 3676 + dependencies: 3677 + '@aws-sdk/types': 3.723.0 3678 + '@smithy/types': 4.1.0 3679 + tslib: 2.8.1 3680 + 3681 + '@aws-sdk/middleware-user-agent@3.726.0': 3682 + dependencies: 3683 + '@aws-sdk/core': 3.723.0 3684 + '@aws-sdk/types': 3.723.0 3685 + '@aws-sdk/util-endpoints': 3.726.0 3686 + '@smithy/core': 3.1.0 3687 + '@smithy/protocol-http': 5.0.1 3688 + '@smithy/types': 4.1.0 3689 + tslib: 2.8.1 3690 + 3691 + '@aws-sdk/region-config-resolver@3.723.0': 3692 + dependencies: 3693 + '@aws-sdk/types': 3.723.0 3694 + '@smithy/node-config-provider': 4.0.1 3695 + '@smithy/types': 4.1.0 3696 + '@smithy/util-config-provider': 4.0.0 3697 + '@smithy/util-middleware': 4.0.1 3698 + tslib: 2.8.1 3699 + 3700 + '@aws-sdk/signature-v4-multi-region@3.723.0': 3701 + dependencies: 3702 + '@aws-sdk/middleware-sdk-s3': 3.723.0 3703 + '@aws-sdk/types': 3.723.0 3704 + '@smithy/protocol-http': 5.0.1 3705 + '@smithy/signature-v4': 5.0.1 3706 + '@smithy/types': 4.1.0 3707 + tslib: 2.8.1 3708 + 3709 + '@aws-sdk/token-providers@3.723.0(@aws-sdk/client-sso-oidc@3.726.0(@aws-sdk/client-sts@3.726.1))': 3710 + dependencies: 3711 + '@aws-sdk/client-sso-oidc': 3.726.0(@aws-sdk/client-sts@3.726.1) 3712 + '@aws-sdk/types': 3.723.0 3713 + '@smithy/property-provider': 4.0.1 3714 + '@smithy/shared-ini-file-loader': 4.0.1 3715 + '@smithy/types': 4.1.0 3716 + tslib: 2.8.1 3717 + 3718 + '@aws-sdk/types@3.723.0': 3719 + dependencies: 3720 + '@smithy/types': 4.1.0 3721 + tslib: 2.8.1 3722 + 3723 + '@aws-sdk/util-arn-parser@3.723.0': 3724 + dependencies: 3725 + tslib: 2.8.1 3726 + 3727 + '@aws-sdk/util-endpoints@3.726.0': 3728 + dependencies: 3729 + '@aws-sdk/types': 3.723.0 3730 + '@smithy/types': 4.1.0 3731 + '@smithy/util-endpoints': 3.0.1 3732 + tslib: 2.8.1 3733 + 3734 + '@aws-sdk/util-locate-window@3.723.0': 3735 + dependencies: 3736 + tslib: 2.8.1 3737 + 3738 + '@aws-sdk/util-user-agent-browser@3.723.0': 3739 + dependencies: 3740 + '@aws-sdk/types': 3.723.0 3741 + '@smithy/types': 4.1.0 3742 + bowser: 2.11.0 3743 + tslib: 2.8.1 3744 + 3745 + '@aws-sdk/util-user-agent-node@3.726.0': 3746 + dependencies: 3747 + '@aws-sdk/middleware-user-agent': 3.726.0 3748 + '@aws-sdk/types': 3.723.0 3749 + '@smithy/node-config-provider': 4.0.1 3750 + '@smithy/types': 4.1.0 3751 + tslib: 2.8.1 3752 + 3753 + '@aws-sdk/xml-builder@3.723.0': 3754 + dependencies: 3755 + '@smithy/types': 4.1.0 3756 + tslib: 2.8.1 3757 + 3758 '@babel/helper-string-parser@7.25.9': {} 3759 3760 '@babel/helper-validator-identifier@7.25.9': {} ··· 3772 dependencies: 3773 mime: 3.0.0 3774 3775 + '@cloudflare/workerd-darwin-64@1.20241230.0': 3776 optional: true 3777 3778 + '@cloudflare/workerd-darwin-arm64@1.20241230.0': 3779 optional: true 3780 3781 + '@cloudflare/workerd-linux-64@1.20241230.0': 3782 optional: true 3783 3784 + '@cloudflare/workerd-linux-arm64@1.20241230.0': 3785 optional: true 3786 3787 + '@cloudflare/workerd-windows-64@1.20241230.0': 3788 optional: true 3789 3790 + '@cloudflare/workers-types@4.20250109.0': {} 3791 3792 '@cspotcode/source-map-support@0.8.1': 3793 dependencies: ··· 4118 '@img/sharp-win32-x64@0.33.5': 4119 optional: true 4120 4121 '@jridgewell/gen-mapping@0.3.8': 4122 dependencies: 4123 '@jridgewell/set-array': 1.2.1 ··· 4276 4277 '@shikijs/vscode-textmate@9.3.1': {} 4278 4279 + '@smithy/abort-controller@4.0.1': 4280 + dependencies: 4281 + '@smithy/types': 4.1.0 4282 + tslib: 2.8.1 4283 + 4284 + '@smithy/chunked-blob-reader-native@4.0.0': 4285 + dependencies: 4286 + '@smithy/util-base64': 4.0.0 4287 + tslib: 2.8.1 4288 + 4289 + '@smithy/chunked-blob-reader@5.0.0': 4290 + dependencies: 4291 + tslib: 2.8.1 4292 + 4293 + '@smithy/config-resolver@4.0.1': 4294 + dependencies: 4295 + '@smithy/node-config-provider': 4.0.1 4296 + '@smithy/types': 4.1.0 4297 + '@smithy/util-config-provider': 4.0.0 4298 + '@smithy/util-middleware': 4.0.1 4299 + tslib: 2.8.1 4300 + 4301 + '@smithy/core@3.1.0': 4302 + dependencies: 4303 + '@smithy/middleware-serde': 4.0.1 4304 + '@smithy/protocol-http': 5.0.1 4305 + '@smithy/types': 4.1.0 4306 + '@smithy/util-body-length-browser': 4.0.0 4307 + '@smithy/util-middleware': 4.0.1 4308 + '@smithy/util-stream': 4.0.1 4309 + '@smithy/util-utf8': 4.0.0 4310 + tslib: 2.8.1 4311 + 4312 + '@smithy/credential-provider-imds@4.0.1': 4313 + dependencies: 4314 + '@smithy/node-config-provider': 4.0.1 4315 + '@smithy/property-provider': 4.0.1 4316 + '@smithy/types': 4.1.0 4317 + '@smithy/url-parser': 4.0.1 4318 + tslib: 2.8.1 4319 + 4320 + '@smithy/eventstream-codec@4.0.1': 4321 + dependencies: 4322 + '@aws-crypto/crc32': 5.2.0 4323 + '@smithy/types': 4.1.0 4324 + '@smithy/util-hex-encoding': 4.0.0 4325 + tslib: 2.8.1 4326 + 4327 + '@smithy/eventstream-serde-browser@4.0.1': 4328 + dependencies: 4329 + '@smithy/eventstream-serde-universal': 4.0.1 4330 + '@smithy/types': 4.1.0 4331 + tslib: 2.8.1 4332 + 4333 + '@smithy/eventstream-serde-config-resolver@4.0.1': 4334 + dependencies: 4335 + '@smithy/types': 4.1.0 4336 + tslib: 2.8.1 4337 + 4338 + '@smithy/eventstream-serde-node@4.0.1': 4339 + dependencies: 4340 + '@smithy/eventstream-serde-universal': 4.0.1 4341 + '@smithy/types': 4.1.0 4342 + tslib: 2.8.1 4343 + 4344 + '@smithy/eventstream-serde-universal@4.0.1': 4345 + dependencies: 4346 + '@smithy/eventstream-codec': 4.0.1 4347 + '@smithy/types': 4.1.0 4348 + tslib: 2.8.1 4349 + 4350 + '@smithy/fetch-http-handler@5.0.1': 4351 + dependencies: 4352 + '@smithy/protocol-http': 5.0.1 4353 + '@smithy/querystring-builder': 4.0.1 4354 + '@smithy/types': 4.1.0 4355 + '@smithy/util-base64': 4.0.0 4356 + tslib: 2.8.1 4357 + 4358 + '@smithy/hash-blob-browser@4.0.1': 4359 + dependencies: 4360 + '@smithy/chunked-blob-reader': 5.0.0 4361 + '@smithy/chunked-blob-reader-native': 4.0.0 4362 + '@smithy/types': 4.1.0 4363 + tslib: 2.8.1 4364 + 4365 + '@smithy/hash-node@4.0.1': 4366 + dependencies: 4367 + '@smithy/types': 4.1.0 4368 + '@smithy/util-buffer-from': 4.0.0 4369 + '@smithy/util-utf8': 4.0.0 4370 + tslib: 2.8.1 4371 + 4372 + '@smithy/hash-stream-node@4.0.1': 4373 + dependencies: 4374 + '@smithy/types': 4.1.0 4375 + '@smithy/util-utf8': 4.0.0 4376 + tslib: 2.8.1 4377 + 4378 + '@smithy/invalid-dependency@4.0.1': 4379 + dependencies: 4380 + '@smithy/types': 4.1.0 4381 + tslib: 2.8.1 4382 + 4383 + '@smithy/is-array-buffer@2.2.0': 4384 + dependencies: 4385 + tslib: 2.8.1 4386 + 4387 + '@smithy/is-array-buffer@4.0.0': 4388 + dependencies: 4389 + tslib: 2.8.1 4390 + 4391 + '@smithy/md5-js@4.0.1': 4392 + dependencies: 4393 + '@smithy/types': 4.1.0 4394 + '@smithy/util-utf8': 4.0.0 4395 + tslib: 2.8.1 4396 + 4397 + '@smithy/middleware-content-length@4.0.1': 4398 + dependencies: 4399 + '@smithy/protocol-http': 5.0.1 4400 + '@smithy/types': 4.1.0 4401 + tslib: 2.8.1 4402 + 4403 + '@smithy/middleware-endpoint@4.0.1': 4404 + dependencies: 4405 + '@smithy/core': 3.1.0 4406 + '@smithy/middleware-serde': 4.0.1 4407 + '@smithy/node-config-provider': 4.0.1 4408 + '@smithy/shared-ini-file-loader': 4.0.1 4409 + '@smithy/types': 4.1.0 4410 + '@smithy/url-parser': 4.0.1 4411 + '@smithy/util-middleware': 4.0.1 4412 + tslib: 2.8.1 4413 + 4414 + '@smithy/middleware-retry@4.0.1': 4415 + dependencies: 4416 + '@smithy/node-config-provider': 4.0.1 4417 + '@smithy/protocol-http': 5.0.1 4418 + '@smithy/service-error-classification': 4.0.1 4419 + '@smithy/smithy-client': 4.1.0 4420 + '@smithy/types': 4.1.0 4421 + '@smithy/util-middleware': 4.0.1 4422 + '@smithy/util-retry': 4.0.1 4423 + tslib: 2.8.1 4424 + uuid: 9.0.1 4425 + 4426 + '@smithy/middleware-serde@4.0.1': 4427 + dependencies: 4428 + '@smithy/types': 4.1.0 4429 + tslib: 2.8.1 4430 + 4431 + '@smithy/middleware-stack@4.0.1': 4432 + dependencies: 4433 + '@smithy/types': 4.1.0 4434 + tslib: 2.8.1 4435 + 4436 + '@smithy/node-config-provider@4.0.1': 4437 + dependencies: 4438 + '@smithy/property-provider': 4.0.1 4439 + '@smithy/shared-ini-file-loader': 4.0.1 4440 + '@smithy/types': 4.1.0 4441 + tslib: 2.8.1 4442 + 4443 + '@smithy/node-http-handler@4.0.1': 4444 + dependencies: 4445 + '@smithy/abort-controller': 4.0.1 4446 + '@smithy/protocol-http': 5.0.1 4447 + '@smithy/querystring-builder': 4.0.1 4448 + '@smithy/types': 4.1.0 4449 + tslib: 2.8.1 4450 + 4451 + '@smithy/property-provider@4.0.1': 4452 + dependencies: 4453 + '@smithy/types': 4.1.0 4454 + tslib: 2.8.1 4455 + 4456 + '@smithy/protocol-http@5.0.1': 4457 + dependencies: 4458 + '@smithy/types': 4.1.0 4459 + tslib: 2.8.1 4460 + 4461 + '@smithy/querystring-builder@4.0.1': 4462 + dependencies: 4463 + '@smithy/types': 4.1.0 4464 + '@smithy/util-uri-escape': 4.0.0 4465 + tslib: 2.8.1 4466 + 4467 + '@smithy/querystring-parser@4.0.1': 4468 + dependencies: 4469 + '@smithy/types': 4.1.0 4470 + tslib: 2.8.1 4471 + 4472 + '@smithy/service-error-classification@4.0.1': 4473 + dependencies: 4474 + '@smithy/types': 4.1.0 4475 + 4476 + '@smithy/shared-ini-file-loader@4.0.1': 4477 + dependencies: 4478 + '@smithy/types': 4.1.0 4479 + tslib: 2.8.1 4480 + 4481 + '@smithy/signature-v4@5.0.1': 4482 + dependencies: 4483 + '@smithy/is-array-buffer': 4.0.0 4484 + '@smithy/protocol-http': 5.0.1 4485 + '@smithy/types': 4.1.0 4486 + '@smithy/util-hex-encoding': 4.0.0 4487 + '@smithy/util-middleware': 4.0.1 4488 + '@smithy/util-uri-escape': 4.0.0 4489 + '@smithy/util-utf8': 4.0.0 4490 + tslib: 2.8.1 4491 + 4492 + '@smithy/smithy-client@4.1.0': 4493 + dependencies: 4494 + '@smithy/core': 3.1.0 4495 + '@smithy/middleware-endpoint': 4.0.1 4496 + '@smithy/middleware-stack': 4.0.1 4497 + '@smithy/protocol-http': 5.0.1 4498 + '@smithy/types': 4.1.0 4499 + '@smithy/util-stream': 4.0.1 4500 + tslib: 2.8.1 4501 + 4502 + '@smithy/types@4.1.0': 4503 + dependencies: 4504 + tslib: 2.8.1 4505 + 4506 + '@smithy/url-parser@4.0.1': 4507 + dependencies: 4508 + '@smithy/querystring-parser': 4.0.1 4509 + '@smithy/types': 4.1.0 4510 + tslib: 2.8.1 4511 + 4512 + '@smithy/util-base64@4.0.0': 4513 + dependencies: 4514 + '@smithy/util-buffer-from': 4.0.0 4515 + '@smithy/util-utf8': 4.0.0 4516 + tslib: 2.8.1 4517 + 4518 + '@smithy/util-body-length-browser@4.0.0': 4519 + dependencies: 4520 + tslib: 2.8.1 4521 + 4522 + '@smithy/util-body-length-node@4.0.0': 4523 + dependencies: 4524 + tslib: 2.8.1 4525 + 4526 + '@smithy/util-buffer-from@2.2.0': 4527 + dependencies: 4528 + '@smithy/is-array-buffer': 2.2.0 4529 + tslib: 2.8.1 4530 + 4531 + '@smithy/util-buffer-from@4.0.0': 4532 + dependencies: 4533 + '@smithy/is-array-buffer': 4.0.0 4534 + tslib: 2.8.1 4535 + 4536 + '@smithy/util-config-provider@4.0.0': 4537 + dependencies: 4538 + tslib: 2.8.1 4539 + 4540 + '@smithy/util-defaults-mode-browser@4.0.1': 4541 + dependencies: 4542 + '@smithy/property-provider': 4.0.1 4543 + '@smithy/smithy-client': 4.1.0 4544 + '@smithy/types': 4.1.0 4545 + bowser: 2.11.0 4546 + tslib: 2.8.1 4547 + 4548 + '@smithy/util-defaults-mode-node@4.0.1': 4549 + dependencies: 4550 + '@smithy/config-resolver': 4.0.1 4551 + '@smithy/credential-provider-imds': 4.0.1 4552 + '@smithy/node-config-provider': 4.0.1 4553 + '@smithy/property-provider': 4.0.1 4554 + '@smithy/smithy-client': 4.1.0 4555 + '@smithy/types': 4.1.0 4556 + tslib: 2.8.1 4557 + 4558 + '@smithy/util-endpoints@3.0.1': 4559 + dependencies: 4560 + '@smithy/node-config-provider': 4.0.1 4561 + '@smithy/types': 4.1.0 4562 + tslib: 2.8.1 4563 + 4564 + '@smithy/util-hex-encoding@4.0.0': 4565 + dependencies: 4566 + tslib: 2.8.1 4567 + 4568 + '@smithy/util-middleware@4.0.1': 4569 + dependencies: 4570 + '@smithy/types': 4.1.0 4571 + tslib: 2.8.1 4572 + 4573 + '@smithy/util-retry@4.0.1': 4574 + dependencies: 4575 + '@smithy/service-error-classification': 4.0.1 4576 + '@smithy/types': 4.1.0 4577 + tslib: 2.8.1 4578 + 4579 + '@smithy/util-stream@4.0.1': 4580 + dependencies: 4581 + '@smithy/fetch-http-handler': 5.0.1 4582 + '@smithy/node-http-handler': 4.0.1 4583 + '@smithy/types': 4.1.0 4584 + '@smithy/util-base64': 4.0.0 4585 + '@smithy/util-buffer-from': 4.0.0 4586 + '@smithy/util-hex-encoding': 4.0.0 4587 + '@smithy/util-utf8': 4.0.0 4588 + tslib: 2.8.1 4589 + 4590 + '@smithy/util-uri-escape@4.0.0': 4591 + dependencies: 4592 + tslib: 2.8.1 4593 + 4594 + '@smithy/util-utf8@2.3.0': 4595 + dependencies: 4596 + '@smithy/util-buffer-from': 2.2.0 4597 + tslib: 2.8.1 4598 + 4599 + '@smithy/util-utf8@4.0.0': 4600 + dependencies: 4601 + '@smithy/util-buffer-from': 4.0.0 4602 + tslib: 2.8.1 4603 + 4604 + '@smithy/util-waiter@4.0.2': 4605 + dependencies: 4606 + '@smithy/abort-controller': 4.0.1 4607 + '@smithy/types': 4.1.0 4608 + tslib: 2.8.1 4609 + 4610 '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1))': 4611 dependencies: 4612 '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1)) ··· 4786 as-table@1.0.55: 4787 dependencies: 4788 printable-characters: 1.0.42 4789 4790 astring@1.9.0: {} 4791 4792 + astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): 4793 dependencies: 4794 '@astrojs/compiler': 2.10.3 4795 '@astrojs/internal-helpers': 0.4.2 ··· 4896 4897 blake3-wasm@2.1.5: {} 4898 4899 + bowser@2.11.0: {} 4900 + 4901 boxen@8.0.1: 4902 dependencies: 4903 ansi-align: 3.0.1 ··· 4985 comma-separated-tokens@2.0.3: {} 4986 4987 common-ancestor-path@1.0.1: {} 4988 + 4989 + confbox@0.1.8: {} 4990 4991 consola@3.3.3: {} 4992 ··· 5218 5219 fast-uri@3.0.3: {} 5220 5221 + fast-xml-parser@4.4.1: 5222 + dependencies: 5223 + strnum: 1.0.5 5224 + 5225 fast-xml-parser@4.5.1: 5226 dependencies: 5227 strnum: 1.0.5 ··· 5313 vfile-location: 5.0.3 5314 web-namespaces: 2.0.1 5315 5316 + hast-util-heading-rank@3.0.0: 5317 + dependencies: 5318 + '@types/hast': 3.0.4 5319 + 5320 hast-util-is-element@3.0.0: 5321 dependencies: 5322 '@types/hast': 3.0.4 ··· 5405 space-separated-tokens: 2.0.2 5406 web-namespaces: 2.0.1 5407 zwitch: 2.0.4 5408 + 5409 + hast-util-to-string@3.0.1: 5410 + dependencies: 5411 + '@types/hast': 3.0.4 5412 5413 hast-util-to-text@4.0.2: 5414 dependencies: ··· 5538 tslib: 2.8.1 5539 5540 lru-cache@10.4.3: {} 5541 + 5542 + lunarphase-js@2.0.3: {} 5543 5544 magic-string@0.25.9: 5545 dependencies: ··· 6014 6015 mime@3.0.0: {} 6016 6017 + miniflare@3.20241230.1: 6018 dependencies: 6019 '@cspotcode/source-map-support': 0.8.1 6020 acorn: 8.14.0 ··· 6024 glob-to-regexp: 0.4.1 6025 stoppable: 1.1.0 6026 undici: 5.28.4 6027 + workerd: 1.20241230.0 6028 ws: 8.18.0 6029 youch: 3.3.4 6030 zod: 3.24.1 ··· 6032 - bufferutil 6033 - supports-color 6034 - utf-8-validate 6035 + 6036 + mlly@1.7.4: 6037 + dependencies: 6038 + acorn: 8.14.0 6039 + pathe: 2.0.1 6040 + pkg-types: 1.3.0 6041 + ufo: 1.5.4 6042 6043 mrmime@2.0.0: {} 6044 ··· 6142 6143 pathe@1.1.2: {} 6144 6145 + pathe@2.0.1: {} 6146 + 6147 picocolors@1.1.1: {} 6148 6149 picomatch@2.3.1: {} ··· 6155 pkg-dir@4.2.0: 6156 dependencies: 6157 find-up: 4.1.0 6158 + 6159 + pkg-types@1.3.0: 6160 + dependencies: 6161 + confbox: 0.1.8 6162 + mlly: 1.7.4 6163 + pathe: 1.1.2 6164 6165 postcss@8.4.49: 6166 dependencies: ··· 6200 6201 readdirp@4.0.2: {} 6202 6203 recma-build-jsx@1.0.0: 6204 dependencies: 6205 '@types/estree': 1.0.6 ··· 6240 regex@5.1.1: 6241 dependencies: 6242 regex-utilities: 2.3.0 6243 + 6244 + rehype-autolink-headings@7.1.0: 6245 + dependencies: 6246 + '@types/hast': 3.0.4 6247 + '@ungap/structured-clone': 1.2.1 6248 + hast-util-heading-rank: 3.0.0 6249 + hast-util-is-element: 3.0.0 6250 + unified: 11.0.5 6251 + unist-util-visit: 5.0.0 6252 6253 rehype-parse@9.0.1: 6254 dependencies: ··· 6270 transitivePeerDependencies: 6271 - supports-color 6272 6273 + rehype-slug@6.0.0: 6274 + dependencies: 6275 + '@types/hast': 3.0.4 6276 + github-slugger: 2.0.0 6277 + hast-util-heading-rank: 3.0.0 6278 + hast-util-to-string: 3.0.1 6279 + unist-util-visit: 5.0.0 6280 + 6281 rehype-stringify@10.0.1: 6282 dependencies: 6283 '@types/hast': 3.0.4 ··· 6571 globalyzer: 0.1.0 6572 globrex: 0.1.2 6573 6574 tinyexec@0.3.1: {} 6575 6576 to-regex-range@5.0.1: ··· 6611 dependencies: 6612 '@fastify/busboy': 2.1.1 6613 6614 + unenv-nightly@2.0.0-20241218-183400-5d6aec3: 6615 dependencies: 6616 defu: 6.1.4 6617 + mlly: 1.7.4 6618 ohash: 1.1.4 6619 pathe: 1.1.2 6620 ufo: 1.5.4 ··· 6694 ofetch: 1.4.1 6695 ufo: 1.5.4 6696 6697 + uuid@9.0.1: {} 6698 + 6699 vfile-location@5.0.3: 6700 dependencies: 6701 '@types/unist': 3.0.3 ··· 6712 vfile-message: 4.0.2 6713 6714 vite@6.0.6(@types/node@22.10.2)(yaml@2.6.1): 6715 + dependencies: 6716 + esbuild: 0.24.2 6717 + postcss: 8.4.49 6718 + rollup: 4.29.1 6719 + optionalDependencies: 6720 + '@types/node': 22.10.2 6721 + fsevents: 2.3.3 6722 + yaml: 2.6.1 6723 + 6724 + vite@6.0.7(@types/node@22.10.2)(yaml@2.6.1): 6725 dependencies: 6726 esbuild: 0.24.2 6727 postcss: 8.4.49 ··· 6856 dependencies: 6857 string-width: 7.2.0 6858 6859 + workerd@1.20241230.0: 6860 optionalDependencies: 6861 + '@cloudflare/workerd-darwin-64': 1.20241230.0 6862 + '@cloudflare/workerd-darwin-arm64': 1.20241230.0 6863 + '@cloudflare/workerd-linux-64': 1.20241230.0 6864 + '@cloudflare/workerd-linux-arm64': 1.20241230.0 6865 + '@cloudflare/workerd-windows-64': 1.20241230.0 6866 6867 + wrangler@3.101.0(@cloudflare/workers-types@4.20250109.0): 6868 dependencies: 6869 + '@aws-sdk/client-s3': 3.726.1 6870 '@cloudflare/kv-asset-handler': 0.3.4 6871 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 6872 '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) ··· 6875 date-fns: 4.1.0 6876 esbuild: 0.17.19 6877 itty-time: 1.0.6 6878 + miniflare: 3.20241230.1 6879 nanoid: 3.3.8 6880 path-to-regexp: 6.3.0 6881 resolve: 1.22.10 6882 selfsigned: 2.4.1 6883 source-map: 0.6.1 6884 + unenv: unenv-nightly@2.0.0-20241218-183400-5d6aec3 6885 + workerd: 1.20241230.0 6886 xxhash-wasm: 1.1.0 6887 optionalDependencies: 6888 + '@cloudflare/workers-types': 4.20250109.0 6889 fsevents: 2.3.3 6890 transitivePeerDependencies: 6891 + - aws-crt 6892 - bufferutil 6893 - supports-color 6894 - utf-8-validate
posts/assets/minecraft.png

This is a binary file and will not be displayed.

+34
posts/serious.md
···
··· 1 + --- 2 + title: Addressing the Allegations 3 + date: 2999-12-31 4 + colour: "#008282" 5 + image: 6 + src: "minecraft.png" 7 + alt: "Highland cows from minecraft" 8 + --- 9 + 10 + The Defence of the Realm Act 1914 (4 & 5 Geo. 5. c. 29) (DORA) was passed in the United Kingdom on 8 August 1914, four days after the country entered the First World War. It was added to as the war progressed. It gave the government wide-ranging powers during the war, such as the power to requisition buildings or land needed for the war effort, and to make regulations creating criminal offences. 11 + 12 + DORA ushered in a variety of authoritarian social control mechanisms, such as censorship: 13 + 14 + > "No person shall by word of mouth or in writing spread reports likely to cause disaffection or alarm among any of His Majesty's forces or among the civilian population" 15 + 16 + Anti-war activists, including John MacLean, Willie Gallacher, John William Muir, and Bertrand Russell, were sent to prison. The film, The Dop Doctor, was prohibited under the Act by the South African government with the justification that its portrayal of Boers during the Siege of Mafeking would antagonise Afrikaners. 17 + 18 + The activities no longer permitted included flying kites, starting bonfires, buying binoculars, feeding wild animals bread, discussing naval and military matters and buying alcohol on public transport. Alcoholic drinks were watered down and pub opening times were restricted to 12 noon–3pm and 6:30pm–9:30pm. (The requirement for an afternoon gap in permitted hours lasted in England until the Licensing Act 1988.) 19 + 20 + In 1920 DORA was extended to deal with the violence in Ireland (see Irish War of Independence) with the Restoration of Order in Ireland Act 1920. That Act (under Section 3(6)) allowed military authorities to jail any Irish person without charge or trial and was repealed in 1953. 21 + 22 + ## Purpose 23 + 24 + Like most wartime acts, the Defence of the Realm Act was designed to help prevent potential invasion and to keep homeland morale at a high. It imposed censorship of journalism and of letters coming home from the front line. The press was subject to controls on reporting troop movements, numbers or any other operational information that would potentially be exploited by the Central Powers. People who breached the regulations with intent to assist the enemy or not would have been sentenced to death. 10 people were executed under the regulations. 25 + 26 + ## Amendments 27 + 28 + Section 1(1) of the Defence of the Realm Act 1914 read as follows: 29 + 30 + > (1) His Majesty in Council has power during the continuance of the present war to issue regulations as to the powers and duties of the Admiralty and Army Council, and of the members of His Majesty's forces, and other persons acting in His behalf, for securing the public safety and the defence of the realm; and may, by such regulations, authorise the trial by courts martial and punishment of persons contravening any of the provisions of such regulations designed— 31 + > (a) To prevent persons communicating with the enemy or obtaining information for that purpose or any purpose calculated to jeopardise the success of the operations of any of His Majesty's forces or to assist the enemy; or 32 + > (b) To secure the safety of any means of communication, or of railways, docks or harbours; in like manner as if such persons were subject to military law and had on active service committed an offence under section 5 of the Army Act. 33 + 34 +
+3 -1
posts/test copy 2.md
··· 1 --- 2 - title: "askjhgdjkh fasdgkhj f asdgljkh fhjkl vfasdlhjk fdlkjh djkh fdhjklkjhsdf dj dj d d j djd j dj dj dj d jd" 3 date: 2024-12-07 4 image: 5 src: "mc_map.png" 6 alt: "" 7 --- 8 9 ## test.html
··· 1 --- 2 + title: Why I <3 Variable Fonts 3 date: 2024-12-07 4 image: 5 src: "mc_map.png" 6 alt: "" 7 + colour: yellow 8 + hasMdx: true 9 --- 10 11 ## test.html
+80
posts/test copy 2.mdx
···
··· 1 + --- 2 + title: askjhgdjkh fasdgkhj f asdgljkh fhjkl vfasdlhjk fdlkjh djkh fdhjklkjhsdf dj dj d d j djd j dj dj dj d jd 3 + --- 4 + 5 + MDX STYLE 6 + 7 + ## what if u ate someone 8 + 9 + ### like fr tho 10 + 11 + cmon 12 + 13 + 14 + 15 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel sem id elit molestie consectetur eu nec urna. In euismod, nulla vel interdum porta, nisl libero molestie enim, quis tempus nisl diam porta urna. Nulla commodo volutpat justo quis luctus. Proin tincidunt congue massa eu maximus. Sed imperdiet laoreet leo, in varius magna posuere tristique. 16 + Nunc eget hendrerit nibh. Nulla ut metus ipsum. Pellentesque rhoncus sollicitudin turpis ac dapibus. Nam ut luctus nisl. Nam ut consequat lorem, eget porta magna. Phasellus consectetur orci eget felis accumsan, vitae condimentum arcu interdum. Aenean eget mattis velit. Donec vitae dolor pretium, molestie eros eget, venenatis nisi. Morbi et ex ante. Nam a nisl consequat leo pulvinar egestas. 17 + 18 + Aenean a molestie sem. Praesent pulvinar libero sit amet elit mollis, nec vulputate enim efficitur. Nunc sed iaculis tortor. Mauris ac fringilla nisl. Proin mollis fermentum metus. Nullam gravida fermentum scelerisque. Suspendisse vulputate, lorem ac ultricies ullamcorper, arcu urna molestie nulla, eu ultricies metus nisl at sem. Vestibulum dapibus elit quis diam luctus, ac malesuada turpis imperdiet. Vivamus gravida felis at sapien scelerisque, non euismod nisi sagittis. Donec bibendum malesuada odio non pulvinar. 19 + Aliquam at mauris vitae mauris volutpat suscipit ut id tellus. Aliquam elementum tortor sit amet nibh pellentesque, sed bibendum est ultrices. Vivamus vitae dolor enim. Nunc id arcu sit amet nulla tincidunt luctus. 20 + 21 + Duis imperdiet non erat eu viverra. Etiam at dignissim nulla, eget hendrerit leo. Donec vitae mollis elit, tincidunt gravida nibh. Etiam augue tellus, commodo a quam sit amet, euismod convallis massa. Nullam porttitor ac metus nec viverra. Nunc in erat ac felis congue rutrum. Phasellus id facilisis est, nec malesuada nisl. Maecenas eget nisi non ligula venenatis malesuada. 22 + 23 + Nam eu dictum dolor, sed consequat mi. Aenean vulputate efficitur porta. Nunc felis nulla, vestibulum luctus enim non, pharetra vehicula nunc. Maecenas ut arcu tellus. Phasellus at orci aliquet turpis fringilla pulvinar. Quisque efficitur sagittis dui at dapibus. Maecenas cursus quam ante, sit amet interdum libero tempus et. Aenean euismod diam justo, quis imperdiet ante gravida eget. Praesent mollis tincidunt aliquet. Curabitur pretium sodales vestibulum. Vestibulum sit amet molestie mi. 24 + Sed sagittis turpis non sem accumsan, feugiat malesuada tortor sodales. In hac habitasse platea dictumst. Sed sollicitudin magna eget quam hendrerit luctus. Suspendisse tempus ex rhoncus lobortis porta. 25 + 26 + Duis a luctus ligula. Vivamus a tellus in lectus mollis lacinia. Morbi malesuada erat risus, id sagittis risus viverra nec. Suspendisse ipsum urna, ornare non varius non, aliquet nec sem. Morbi et leo consequat, aliquam tortor ut, sagittis nisl. Etiam finibus dolor vel lorem hendrerit, vitae tempor libero rutrum. Vestibulum eget mollis ligula, quis pulvinar nunc. 27 + Nulla lorem velit, pharetra ornare neque non, faucibus fermentum lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed finibus porta tellus, sed tristique dolor accumsan non. Suspendisse accumsan lacus quam, id suscipit lectus cursus eu. Vivamus congue, diam a mollis tempus, sem dolor tempor est, non venenatis augue tellus vitae sapien. Donec ultrices, diam ut bibendum pharetra, risus nunc facilisis urna, vel semper lorem metus non dolor. Mauris nec blandit leo, eget aliquet nibh. Fusce tincidunt felis at vestibulum porta. 28 + 29 + Suspendisse elit magna, sollicitudin quis condimentum in, malesuada ut nunc. Duis aliquam elementum neque nec ultrices. Vivamus nec sapien quis nisl porttitor molestie at eget risus. Curabitur et metus vitae tellus cursus vehicula. 30 + Morbi lobortis metus a mauris tincidunt luctus. Proin eu molestie metus, ac semper eros. Phasellus maximus justo in ligula volutpat, nec ullamcorper risus fringilla. Etiam ut luctus purus. 31 + 32 + Etiam iaculis, enim quis placerat pellentesque, ante odio sollicitudin lacus, eu tincidunt ante sem at lorem. Nam lacinia lorem lobortis enim pellentesque varius. Sed fermentum faucibus dolor quis euismod. 33 + Donec fermentum tortor non diam malesuada, quis elementum eros hendrerit. Morbi fermentum urna nec enim finibus pretium a ac dolor. Praesent ligula nunc, fermentum nec malesuada a, congue id ipsum. Proin vitae lorem quis mauris tincidunt lobortis et sit amet leo. Aenean ac tortor sed ex cursus porttitor sit amet nec augue. Sed purus turpis, cursus et eleifend eget, dictum sit amet ipsum. Cras porta finibus faucibus. Suspendisse at placerat ex, sit amet sodales neque. Suspendisse hendrerit pulvinar porttitor. Morbi a maximus orci. Pellentesque pretium euismod neque, auctor porta arcu porta at. 34 + 35 + Aenean ut ligula at quam tincidunt tempor et non felis. Cras rhoncus elit eget nunc fermentum tristique. Quisque tincidunt interdum sapien eu aliquet. Curabitur porttitor, diam id dapibus eleifend, leo felis maximus purus, vitae posuere arcu ex id arcu. Ut ullamcorper tristique nunc, at viverra ex maximus in. Donec sit amet vehicula velit. Integer ut erat venenatis, ornare urna eu, dignissim nisl. Donec et massa sed libero ultricies rhoncus. Nunc non libero laoreet, porttitor purus id, scelerisque magna. 36 + Praesent quis felis in arcu laoreet imperdiet. Nullam cursus, urna vitae cursus imperdiet, urna nibh condimentum eros, at varius sapien ante ut nibh. Phasellus tincidunt facilisis metus, ut consequat metus lacinia vitae. Maecenas ut mollis dolor. Ut id nunc est. Maecenas sit amet lacus lobortis, auctor nunc nec, volutpat est. Nulla et eleifend elit. 37 + 38 + Vivamus quam metus, iaculis sed euismod eu, feugiat eget dolor. Donec lobortis ullamcorper tortor, at posuere leo aliquet vel. Sed luctus tempus diam id dignissim. Cras eros justo, cursus at bibendum id, iaculis a metus. 39 + Mauris luctus, nunc sed finibus sodales, nisl turpis rutrum lacus, eu porttitor tellus sem sed velit. Quisque tincidunt laoreet commodo. Nullam sit amet porta odio. Duis rhoncus pellentesque augue, posuere malesuada felis porta non. Aenean non rutrum ligula. Sed cursus commodo orci eu rhoncus. 40 + 41 + Donec venenatis turpis at lorem euismod, sit amet vulputate nisl mollis. Nullam imperdiet quis lectus id ullamcorper. Sed sit amet ipsum faucibus, pellentesque erat et, hendrerit ligula. Etiam tempus vitae enim vel faucibus. Duis eu dolor turpis. Ut commodo varius est eu iaculis. Cras tempus commodo sollicitudin. Suspendisse sed consectetur urna, ac euismod lectus. Curabitur imperdiet placerat neque, sed consectetur nulla bibendum et. Morbi rutrum accumsan interdum. In hac habitasse platea dictumst. 42 + Vivamus viverra turpis urna, sed condimentum sem ultricies ut. 43 + 44 + Vestibulum malesuada venenatis tempus. Vestibulum iaculis facilisis pretium. Vivamus eu porttitor diam, at efficitur est. Suspendisse potenti. Donec non massa iaculis, rutrum est ut, interdum arcu. 45 + Integer eget tortor sed mauris dictum vulputate nec ut ligula. Aenean quis scelerisque quam, vel congue ante. 46 + 47 + Sed suscipit rutrum aliquam. Vestibulum scelerisque, dolor ut feugiat auctor, ligula ligula ultrices risus, vitae vestibulum lectus urna et dui. Suspendisse suscipit purus in posuere commodo. 48 + Nulla nunc odio, malesuada scelerisque laoreet ut, varius accumsan odio. Ut pretium mattis nibh, nec dignissim nisl malesuada aliquet. Phasellus tempor maximus est, vitae luctus dolor posuere et. Donec efficitur mauris libero, vel consectetur neque pellentesque a. Nam et sollicitudin mauris. 49 + 50 + Sed ultricies libero sit amet varius iaculis. Integer egestas nunc neque, vitae pulvinar dolor tempus vel. Ut semper volutpat nulla. Mauris felis nisl, accumsan vitae sollicitudin a, dignissim id dolor. Vivamus eget nibh ac diam viverra mattis. Donec ornare porttitor justo eget aliquet. Ut vehicula felis nec tortor consectetur porta. Donec tempus elementum orci ac finibus. 51 + Aliquam erat volutpat. Fusce ultricies feugiat elit sed rhoncus. Nullam maximus eget mi sit amet euismod. Praesent nec quam orci. Morbi euismod hendrerit nisl. Vivamus et nibh et neque viverra feugiat non pharetra ex. Praesent finibus magna non nisl porta euismod. Nam aliquet quis velit et laoreet. 52 + 53 + Aenean id sagittis quam, eget tincidunt elit. Etiam eu ante a turpis vestibulum consequat eu sit amet ante. Nullam gravida enim non bibendum sagittis. Vestibulum consectetur mollis ipsum ac consequat. 54 + Praesent ultricies sit amet lectus et ultricies. Integer ullamcorper, ipsum id pretium sagittis, tortor risus cursus turpis, non placerat lacus tortor a arcu. Quisque scelerisque, libero vel laoreet varius, nunc odio lacinia leo, non vestibulum lacus nisl vel nisi. Suspendisse potenti. Aliquam erat volutpat. Aenean ac nulla sem. 55 + 56 + Duis consectetur, nisl ut finibus semper, dolor lorem elementum leo, feugiat faucibus mauris lacus et tortor. Nunc pharetra commodo velit quis auctor. Proin non magna lectus. Phasellus convallis vel mi at efficitur. 57 + Aliquam erat volutpat. Quisque varius ut leo at dapibus. Proin ullamcorper libero sed nibh egestas sagittis vel eu magna. Ut et aliquam arcu. 58 + 59 + Fusce porta laoreet sapien, id ultricies velit faucibus nec. Morbi rutrum felis dapibus, suscipit massa ac, condimentum metus. Nunc eu libero et neque posuere viverra at eu arcu. Sed cursus eleifend mauris, sed finibus quam lobortis sed. 60 + Vivamus tincidunt blandit nunc vel vulputate. Mauris faucibus dictum massa, non malesuada ex volutpat vel. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse finibus nec nulla ut consectetur. Nam at sagittis erat. Praesent euismod diam sed dolor sollicitudin blandit. Aliquam condimentum vestibulum urna, nec viverra leo imperdiet a. 61 + 62 + Pellentesque id nibh orci. Proin ut lectus tristique, porttitor sem eu, lacinia tortor. Suspendisse laoreet sem sit amet ornare molestie. Sed et lorem risus. Maecenas sed magna a mauris porta congue. Cras vel massa eu tellus sollicitudin fermentum. 63 + Aliquam non sem ligula. Morbi in ligula aliquet, scelerisque mauris a, vestibulum ipsum. Pellentesque posuere mollis dolor et porttitor. Curabitur et leo nunc. 64 + 65 + Nunc faucibus non libero sed maximus. Mauris risus turpis, luctus nec augue lobortis, pharetra placerat odio. Nullam elit velit, tempor ac tempor vel, fermentum vitae urna. In metus justo, dapibus non ante a, aliquam aliquam quam. Duis id tincidunt leo, eget efficitur massa. In nec vulputate dui. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam et pellentesque diam, eu varius nisi. Nunc elit erat, varius eu vulputate non, tincidunt dictum risus. 66 + Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec ornare, tortor eget dignissim finibus, nibh ex lobortis metus, et mattis ligula purus sit amet nisi. Sed velit purus, porta in risus a, pulvinar vulputate ante. Morbi id augue leo. 67 + 68 + Morbi bibendum enim a libero sollicitudin, nec posuere augue rhoncus. Duis ac libero rutrum, condimentum lorem ut, maximus ligula. Phasellus pharetra posuere ornare. Vivamus non justo ligula. Nulla sit amet nisi pulvinar, pulvinar mauris eu, aliquet libero. Etiam at magna eu lorem aliquam eleifend in a magna. Cras erat lorem, dapibus non hendrerit quis, tincidunt semper leo. 69 + 70 + Nulla fringilla pretium diam, in sollicitudin justo fermentum id. Sed condimentum dui a velit facilisis, commodo maximus quam hendrerit. Fusce porta massa eget lorem consectetur, at aliquam sem sodales. Proin tristique sollicitudin dolor sed rutrum. Vivamus eget erat vitae nibh semper pretium. Donec id mi consequat, porttitor ipsum congue, porta nisi. Morbi quis efficitur sem, nec mattis nulla. Fusce placerat, ligula eget dapibus eleifend, leo neque sodales sem, at eleifend felis erat in dolor. Pellentesque eget purus semper, iaculis felis a, porttitor dui. 71 + 72 + Donec accumsan mi urna, sed fringilla nunc varius sed. Praesent vitae efficitur risus. Vestibulum viverra maximus nunc, eu congue nibh ultricies ut. Nam vel iaculis erat. Maecenas ac ex eget tellus eleifend iaculis. Sed leo magna, feugiat in velit ut, egestas congue turpis. In hac habitasse platea dictumst. Vivamus congue accumsan risus eget accumsan. Phasellus vel interdum justo, sed laoreet leo. Nam euismod, enim sed dapibus viverra, lorem erat mattis eros, id commodo ex massa id odio. 73 + 74 + Aliquam cursus ipsum eget orci rhoncus, sed dignissim orci pharetra. Suspendisse sed dolor nec ipsum mollis fermentum efficitur at ante. Proin viverra volutpat dui vitae venenatis. Mauris cursus felis ut gravida ultricies. Pellentesque erat felis, venenatis id fermentum eget, eleifend vitae orci. Suspendisse potenti. Ut viverra ex ac nibh egestas, vitae convallis justo eleifend. Maecenas nec purus tortor. Cras nec erat nisl. Integer auctor iaculis enim, id varius nulla luctus et. Sed finibus, mauris vel varius ultricies, felis eros posuere augue, a sodales odio orci a lectus. 75 + 76 + Nullam scelerisque tellus at dolor mollis, et tristique purus suscipit. Fusce semper condimentum sapien id mattis. Nam tincidunt augue suscipit dignissim commodo. In fermentum risus sit amet urna molestie ullamcorper. Etiam luctus, velit non accumsan vestibulum, dui justo elementum dui, a dictum leo urna id massa. Nam aliquam urna metus, vitae viverra dui rhoncus sit amet. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mollis elit vitae lorem placerat, hendrerit placerat elit placerat. Phasellus velit orci, porttitor sed tempus quis, fringilla sed nunc. Sed lacinia massa ut quam convallis imperdiet id ac felis. 77 + 78 + Quisque pellentesque ante sit amet risus venenatis dictum. Sed ex felis, vehicula eget viverra sed, tincidunt at eros. Vestibulum nec pellentesque ipsum. Praesent non lectus vitae sem dictum tincidunt et non erat. Morbi faucibus felis at tellus suscipit fermentum ac a est. Ut ornare et quam in porttitor. Suspendisse dolor massa, scelerisque ut accumsan placerat, venenatis vitae mi. Maecenas ut dictum tortor. Curabitur tincidunt urna at tellus suscipit, id suscipit felis interdum. Donec pharetra dui vitae urna sollicitudin maximus. Pellentesque non tellus semper, lobortis risus eget, placerat leo. Quisque fringilla pharetra orci nec consectetur. Nullam rutrum porta ligula, ac suscipit mauris maximus vel. 79 + 80 + Pellentesque volutpat lectus vel velit facilisis, commodo aliquam magna vestibulum. Nunc ut lacus eu justo finibus suscipit. Etiam sed vehicula mi. Duis fermentum dapibus eleifend. Suspendisse potenti. Integer id orci eget metus lacinia vestibulum. Quisque elit urna, sollicitudin eu nisl sit amet, ultrices placerat turpis. Morbi sem risus, suscipit at nunc quis, dignissim bibendum neque. Vivamus sit amet mattis mauris. Fusce vestibulum interdum magna ac auctor. Pellentesque vel efficitur ante. Pellentesque arcu metus, pharetra id leo at, vehicula mollis nibh. Sed sit amet posuere ex. Aenean finibus nisl a dui eleifend convallis. Cras pulvinar lacinia lacus, eget pellentesque metus ullamcorper in. Curabitur aliquet malesuada metus, ac mattis turpis.
+1
posts/test copy 3.md
··· 4 image: 5 src: "mc_map_art.png" 6 alt: "" 7 --- 8 whats this about dawg
··· 4 image: 5 src: "mc_map_art.png" 6 alt: "" 7 + colour: red 8 --- 9 whats this about dawg
+1
posts/test copy.md
··· 4 image: 5 src: "mc_map.png" 6 alt: "" 7 --- 8 9 whats this about dawg
··· 4 image: 5 src: "mc_map.png" 6 alt: "" 7 + colour: magenta 8 --- 9 10 whats this about dawg
+2
posts/test.md
··· 4 image: 5 src: "mc_map.png" 6 alt: "minecraft map" 7 --- 8 9 whats this about dawg
··· 4 image: 5 src: "mc_map.png" 6 alt: "minecraft map" 7 + colour: blue 8 + hasMdx: true 9 --- 10 11 whats this about dawg
+7
src/assets/balloon-glint.svg
···
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="210mm" height="297mm" viewBox="0 0 210 297"> 2 + <g> 3 + <path 4 + style="fill:#ffffff;" 5 + d="M 9.2929728,1.5456421 C 5.8272482,2.0424561 2.9819023,4.5085073 1.7466634,7.8119263 l 2.361613,1.0051066 C 5.0089649,6.2523257 7.1627996,4.4036314 9.7544434,4.0757202 9.7129319,3.7094167 9.64465,3.2547364 9.5239665,2.6814901 9.4170573,2.1736713 9.3470099,1.8242883 9.2929728,1.5456421 Z" 6 + /></g> 7 + </svg>
+20
src/assets/rss.svg
···
··· 1 + <svg 2 + width="128" 3 + height="128" 4 + viewBox="0 0 256 256" 5 + xmlns="http://www.w3.org/2000/svg"> 6 + <circle 7 + cx="35.10857" 8 + cy="220.89143" 9 + fill="#FFF" 10 + style="fill:#fff;stroke-width:1.46286" 11 + r="35.10857" /> 12 + <path 13 + d="m 159.69143,256 h -29.73714 c -5.52285,0 -9.95635,-4.48615 -10.40997,-9.98877 C 114.7398,187.72951 68.270485,141.2602 9.9887708,136.45568 4.486146,136.00206 0,131.56856 0,126.04571 V 96.308571 C 0,90.785724 4.4816248,86.277825 9.9944073,86.598011 95.753367,91.578939 164.42106,160.24663 169.40199,246.00559 169.72218,251.51838 165.21428,256 159.69143,256 Z" 14 + fill="#FFF" 15 + style="fill:#fff;stroke-width:1.46286" /> 16 + <path 17 + d="M 204.56032,246.00383 C 199.50657,140.85082 115.14918,56.493425 9.9961653,51.439683 4.4802157,51.174582 0,46.722847 0,41.2 V 10 C 0,4.4771525 4.4791086,-0.02028209 9.9975497,0.19163322 143.43194,5.3156873 250.68431,112.56806 255.80837,246.00245 256.02028,251.52089 251.52285,256 246,256 h -31.2 c -5.52285,0 -9.97458,-4.48022 -10.23968,-9.99617 z" 18 + fill="#FFF" 19 + style="fill:#fff;stroke-width:1.46286" /> 20 + </svg>
+190
src/components/blog/Balloons.svelte
···
··· 1 + <script lang="ts"> 2 + import { cubicInOut } from "svelte/easing"; 3 + import { Tween } from "svelte/motion"; 4 + import { config } from "@/stores/blog"; 5 + 6 + const { 7 + // popable, 8 + id, 9 + single, 10 + pop, 11 + boundingWidth, 12 + boundingHeight, 13 + colour, 14 + }: { 15 + // popable: boolean; 16 + id: 0 | 1; 17 + single?: true; 18 + pop: (id: number, start: () => void, climax: () => void) => void; 19 + boundingWidth: number; 20 + boundingHeight: number; 21 + colour: string; 22 + } = $props(); 23 + 24 + const random = { 25 + cableX: Math.random(), 26 + cableLength: Math.random(), 27 + }; 28 + 29 + interface Values { 30 + cableX: number; 31 + cableLength: number; 32 + cableAngle: Tween<number>; 33 + balloonX: number; 34 + balloonY: number; 35 + balloonAngle: number; 36 + } 37 + 38 + const { 39 + cableX, 40 + cableLength, 41 + cableAngle, 42 + balloonX, 43 + balloonY, 44 + balloonAngle, 45 + }: Values = $derived.by((): Values => { 46 + const fallbackVal = { 47 + cableX: 0, 48 + cableLength: 0, 49 + cableAngle: new Tween(0), 50 + balloonX: 0, 51 + balloonY: 0, 52 + balloonAngle: 0, 53 + }; 54 + if (!$config) return fallbackVal; 55 + const out: Partial<Values> = {}; 56 + 57 + out.cableX = 58 + (random.cableX * $config.cable.range + 59 + (!id 60 + ? $config.cable.padding 61 + : 1 - $config.cable.padding - $config.cable.range)) * 62 + boundingWidth; 63 + 64 + if (single) 65 + out.cableX = 66 + (random.cableX * $config.cable.range + (1 - $config.cable.range) / 2) * 67 + boundingWidth; 68 + 69 + out.cableLength = 70 + random.cableLength * 71 + ($config.cable.length.max - $config.cable.length.min) + 72 + $config.cable.length.min; 73 + 74 + out.cableAngle = new Tween( 75 + Math.random() * $config.cable.angle.initial - 76 + $config.cable.angle.initial / 2, 77 + { 78 + duration: 400, 79 + easing: cubicInOut, 80 + } 81 + ); 82 + 83 + out.balloonX = 84 + out.cableX - 85 + $config.balloon.width / 2 + 86 + Math.sin((out.cableAngle.current * Math.PI) / 180) * out.cableLength; 87 + 88 + out.balloonY = 89 + Math.cos((out.cableAngle.current * Math.PI) / 180) * out.cableLength + 90 + $config.balloon.height; 91 + 92 + return { ...fallbackVal, ...out }; 93 + }); 94 + </script> 95 + 96 + <button 97 + style={`--width: ${$config?.balloon.width}px; 98 + --height: ${$config?.balloon.height}px;}; 99 + --x: ${balloonX}px; 100 + --y: ${balloonY}px; 101 + --rotate: ${balloonAngle}deg; 102 + --colour: ${colour};`} 103 + aria-label="pop balloon" 104 + onclick={() => 105 + pop( 106 + id, 107 + () => console.log("start"), 108 + () => console.log("climax") 109 + )} 110 + > 111 + <div class="tie"></div> 112 + </button> 113 + <div 114 + style={`--width: ${$config?.cable.width}px; 115 + --length: ${cableLength}px; 116 + --x: ${cableX}px; 117 + --post-height: ${boundingHeight}px; 118 + --rotate: ${cableAngle.current}deg;`} 119 + ></div> 120 + 121 + <style> 122 + /* general things */ 123 + button, 124 + div { 125 + position: absolute; 126 + } 127 + 128 + /* balloon */ 129 + button { 130 + /* looks */ 131 + background-color: var(--colour,); 132 + opacity: 0.75; 133 + background-image: url("../../assets/balloon-glint.svg"); 134 + box-shadow: 135 + inset 1.5rem 1.5rem 2.5rem rgba(255, 255, 255, 0.5), 136 + inset -1rem -1rem 2.5rem rgba(0, 0, 0, 0.5); 137 + 138 + width: var(--width); 139 + height: var(--height); 140 + border: none; 141 + border-radius: calc(var(--width) / 2); 142 + 143 + /* positions */ 144 + left: var(--x); 145 + top: calc(-1 * var(--y)); 146 + z-index: 1; 147 + 148 + /* tie */ 149 + overflow: visible; 150 + 151 + &::after { 152 + content: ""; 153 + display: block; 154 + z-index: -1; 155 + 156 + --width: 2rem; 157 + --height: calc(tan(60deg) * var(--width) / 2); 158 + width: var(--width); 159 + height: var(--height); 160 + 161 + background-color: var(--colour); 162 + 163 + position: absolute; 164 + left: calc(50% - 1rem); 165 + bottom: calc(var(--height) * -1 + 0.5rem); 166 + 167 + clip-path: polygon(25% 30%, 0% 100%, 100% 100%, 75% 30%); 168 + } 169 + } 170 + 171 + .hidden { 172 + display: none; 173 + } 174 + 175 + /* cable */ 176 + div { 177 + width: var(--width); 178 + height: var(--length); 179 + background-color: white; 180 + 181 + /* positions */ 182 + left: var(--x); 183 + bottom: var(--post-height); 184 + z-index: 0; 185 + 186 + /* rotate */ 187 + transform-origin: bottom center; 188 + rotate: var(--rotate); 189 + } 190 + </style>
+119
src/components/blog/background/cloud.astro
···
··· 1 + --- 2 + interface Props { 3 + id: number; 4 + center: { 5 + x: number; 6 + y: number; 7 + }; 8 + size: { 9 + width: number; 10 + height: number; 11 + }; 12 + steps: number; 13 + padding?: number; 14 + } 15 + 16 + const { 17 + id, 18 + center: { x, y }, 19 + size: { width, height }, 20 + steps, 21 + padding = 100, 22 + } = Astro.props; 23 + 24 + const arcLength: number = 25 + Math.PI * Math.sqrt(((width / 2) ** 2 + (height / 2) ** 2) / 2); 26 + 27 + const sizes: number[] = (() => { 28 + let items = new Array(steps).fill(0).map((_) => (Math.random() * 3 + 2) / 5); 29 + const total = items.reduce((a, b) => a + b, 0); 30 + return items.map((item) => (item / total) * arcLength); 31 + })(); 32 + 33 + const convert = { 34 + degToRad: (deg: number) => (deg * Math.PI) / 180, 35 + radToDeg: (rad: number) => (rad * 180) / Math.PI, 36 + }; 37 + 38 + const positions: { x: number; y: number }[] = (() => { 39 + const segmentSize = 180 / (sizes.length - 1); 40 + const output = sizes.map((_, i) => ({ 41 + x: ((Math.sin(convert.degToRad(segmentSize * i - 90)) + 1) * width) / 2, 42 + y: Math.cos(convert.degToRad(segmentSize * i - 90)) * height, 43 + })); 44 + 45 + return output; 46 + })(); 47 + --- 48 + 49 + <style slot="head"> 50 + .cloud { 51 + position: absolute; 52 + top: calc(var(--y) - var(--padding)); 53 + left: calc(var(--x) - var(--padding)); 54 + width: calc(var(--w) + var(--padding)); 55 + height: calc(var(--h) + var(--padding)); 56 + max-width: unset; 57 + } 58 + </style> 59 + 60 + <svg 61 + xmlns="http://www.w3.org/2000/svg" 62 + viewBox={`-${padding} -${padding} ${width + padding * 2} ${height + padding * 2}`} 63 + preserveAspectRatio="none" 64 + class="cloud" 65 + style={`--x: ${x}svw; --y: ${y}svh; --w: ${width}px; --h: ${height}px; --padding: ${padding}px;`} 66 + > 67 + <defs> 68 + <clipPath id={`i${id}lower-bounds`}> 69 + <rect 70 + x={`-${padding}px`} 71 + y={`-${padding}px`} 72 + width={width + padding * 2} 73 + height={height + padding}></rect> 74 + </clipPath> 75 + <linearGradient id={`i${id}background`} x1="0" x2="0" y1="0" y2="1"> 76 + <stop offset="0" stop-color="white"></stop> 77 + <stop offset={height} stop-color="white" stop-opacity="0"></stop> 78 + </linearGradient> 79 + <mask id={`i${id}fade-base`}> 80 + <rect 81 + x={-2 * padding} 82 + y={-1 * padding} 83 + width={width + 4 * padding} 84 + height={height + padding} 85 + fill={`url(#i${id}background)`}></rect> 86 + </mask> 87 + 88 + <!-- will render: --> 89 + <clipPath id={`i${id}-clouds`}> 90 + <ellipse 91 + cx={width / 2} 92 + cy={height} 93 + rx={width / 2} 94 + ry={height} 95 + fill="black" 96 + clip-path={`url(#i${id}lower-bounds)`}></ellipse> 97 + { 98 + sizes.map((size, i) => ( 99 + <circle 100 + cx={positions[i].x} 101 + cy={height - positions[i].y} 102 + r={size} 103 + clip-path={`url(#i${id}lower-bounds)`} 104 + fill="black" 105 + /> 106 + )) 107 + } 108 + </clipPath> 109 + </defs> 110 + 111 + <rect 112 + x={-2 * padding} 113 + y={-1 * padding} 114 + width={width + 4 * padding} 115 + height={height + 2 * padding} 116 + fill="white" 117 + clip-path={`url(#i${id}-clouds)`} 118 + mask={`url(#i${id}fade-base)`}></rect> 119 + </svg>
+103
src/components/blog/background/moon.astro
···
··· 1 + --- 2 + interface Props { 3 + center: { 4 + x: number; 5 + y: number; 6 + }; 7 + rad: number; 8 + } 9 + 10 + const { 11 + center: { x, y }, 12 + rad, 13 + } = Astro.props; 14 + --- 15 + 16 + <div 17 + id="moon-wrapper" 18 + style={`--rad: ${rad}px; --x: ${x - rad}px; --y: ${y - rad}px; display: none`} 19 + > 20 + <svg 21 + width={rad * 2} 22 + height={rad * 2} 23 + viewBox={`0 0 ${rad * 2} ${rad * 2}`} 24 + xmlns="http://www.w3.org/2000/svg" 25 + > 26 + <clipPath id="full-circle-clip"> 27 + <circle cx={rad} cy={rad} r={rad}></circle> 28 + </clipPath> 29 + 30 + <rect 31 + clip-path="url(#full-circle-clip)" 32 + id="l-rect" 33 + x="0" 34 + y="0" 35 + width={rad} 36 + height={rad * 2}></rect> 37 + <rect 38 + clip-path="url(#full-circle-clip)" 39 + id="r-rect" 40 + x={rad} 41 + y="0" 42 + width={rad} 43 + height={rad * 2}></rect> 44 + 45 + <ellipse 46 + clip-path="url(#full-circle-clip)" 47 + id="ellipse" 48 + cx={rad} 49 + cy={rad} 50 + rx={rad / 2} 51 + ry={rad}></ellipse> 52 + </svg> 53 + </div> 54 + 55 + <style> 56 + @keyframes moon-colour { 57 + 0%, 24.99% { 58 + --l-fill: var(--dark); 59 + --r-fill: var(--light); 60 + --e-fill: var(--dark); 61 + } 62 + 63 + 25%, 74.99% { 64 + --e-fill: var(--light); 65 + } 66 + 67 + 75%, 99.99% { 68 + --e-fill: var(--dark); 69 + } 70 + 71 + 100% { 72 + --l-fill: var(--light); 73 + --r-fill: var(--dark); 74 + --e-fill: var(--dark); 75 + } 76 + } 77 + 78 + #moon-wrapper { 79 + position: absolute; 80 + top: var(--y); 81 + left: var(--x); 82 + pointer-events: none; 83 + max-width: none; 84 + 85 + --light: #e0d3de; 86 + --dark: #372554; 87 + 88 + animation: 1s calc(var(--phase) * -1s) paused infinite moon-colour; 89 + 90 + & #l-rect { 91 + fill: var(--l-fill, var(--dark)); 92 + } 93 + & #r-rect { 94 + fill: var(--r-fill, var(--dark)); 95 + } 96 + & #ellipse { 97 + fill: var(--e-fill, var(--dark)); 98 + rx: calc( 99 + min(abs(-4 * var(--phase) + 1), abs(-4 * var(--phase) + 3)) * var(--rad) 100 + ); 101 + } 102 + } 103 + </style>
+51
src/components/blog/background/stars.astro
···
··· 1 + --- 2 + interface Props { 3 + area: { 4 + width: number; 5 + height: number; 6 + }; 7 + stars: number; 8 + } 9 + 10 + const { 11 + area: { width, height }, 12 + stars, 13 + } = Astro.props; 14 + 15 + const positions = new Array(stars).fill(0).map((_) => ({ 16 + x: Math.random() * width, 17 + y: Math.random() * height, 18 + })); 19 + --- 20 + 21 + <div id="star-wrapper" style="display: none"> 22 + <svg 23 + width={width + 30} 24 + height={height + 30} 25 + viewBox={`0 0 ${width + 30} ${height + 30}`} 26 + preserveAspectRatio="xMidYMid slice" 27 + xmlns="http://www.w3.org/2000/svg" 28 + > 29 + { 30 + positions.map((x) => ( 31 + <path 32 + transform={`translate(${x.x}, ${x.y})`} 33 + d="M13.4208 0.752502L15.4921 8.44522C15.9554 10.1659 17.2994 11.51 19.0202 11.9733L26.7129 14.0446L19.0202 16.1158C17.2994 16.5791 15.9554 17.9232 15.4921 19.6439L13.4208 27.3367L11.3496 19.6439C10.8863 17.9232 9.54216 16.5791 7.82144 16.1158L0.128723 14.0446L7.82144 11.9733C9.54216 11.51 10.8863 10.1659 11.3496 8.44522L13.4208 0.752502Z" 34 + fill="#FFF6D1" 35 + /> 36 + )) 37 + } 38 + </svg> 39 + </div> 40 + 41 + <style> 42 + #star-wrapper { 43 + position: absolute; 44 + top: 0; 45 + left: 0; 46 + overflow: clip; 47 + width: 100vw; 48 + height: var(--height); 49 + pointer-events: none; 50 + } 51 + </style>
+50
src/components/blog/background/sun.astro
···
··· 1 + --- 2 + interface Props { 3 + center: { 4 + x: number; 5 + y: number; 6 + }; 7 + rad: number; 8 + prongs: number; 9 + scale: number; 10 + } 11 + 12 + const { 13 + center: { x, y }, 14 + rad, 15 + prongs, 16 + scale, 17 + } = Astro.props; 18 + 19 + const positions = new Array(prongs).fill(0).map((_, i) => (360 / prongs) * i); 20 + --- 21 + 22 + <div id="sun-wrapper" style={`--x: ${x - rad + scale}px; --y: ${y - rad + scale}px; display: none`}> 23 + <svg 24 + width={(rad + scale) * 2} 25 + height={(rad + scale) * 2} 26 + viewBox={`-${rad + scale} -${rad + scale} ${(rad + scale) * 2} ${(rad + scale) * 2}`} 27 + xmlns="http://www.w3.org/2000/svg" 28 + > 29 + <circle cx="0" cy="0" r={rad-10} fill="#F7CB15"></circle> 30 + { 31 + positions.map((x) => ( 32 + <polygon 33 + points={`-${scale/2},${rad} ${scale/2},${rad} 0,${rad + scale}`} 34 + transform={`rotate(${x})`} 35 + fill="#F7CB15" 36 + /> 37 + )) 38 + } 39 + </svg> 40 + </div> 41 + 42 + <style> 43 + #sun-wrapper { 44 + position: absolute; 45 + top: var(--y); 46 + left: var(--x); 47 + pointer-events: none; 48 + max-width: none; 49 + } 50 + </style>
+175
src/components/blog/floater.svelte
···
··· 1 + <script lang="ts"> 2 + import { config, postPositions } from "@/stores/blog"; 3 + import Balloons from "./Balloons.svelte"; 4 + let { 5 + children, 6 + id, 7 + width, 8 + height, 9 + balloons, 10 + colour, 11 + }: { 12 + children: () => any; 13 + id: number; 14 + width: number; 15 + height: number; 16 + balloons: 0 | 1 | 2; 17 + colour: string; 18 + } = $props(); 19 + 20 + let x = $state(0), 21 + y = $state(0), 22 + thisWidth = $state(0), 23 + thisHeight = $state(0), 24 + elem: HTMLElement = null as unknown as HTMLElement; 25 + 26 + $effect(() => { 27 + if ($config === null || $postPositions === undefined) return; 28 + 29 + const { x: tX, y: tY } = $postPositions[id]; 30 + 31 + x = tX; 32 + y = tY; 33 + }); 34 + 35 + const pop = (id: number, start: () => void, climax: () => void): void => { 36 + console.log("popping " + id); 37 + 38 + if (!elem) return; 39 + 40 + start(); 41 + elem 42 + .animate( 43 + [ 44 + { 45 + transform: "translateY(0)", 46 + }, 47 + { 48 + transform: "translateY(100rem)", 49 + }, 50 + ], 51 + { 52 + duration: 2000, 53 + endDelay: 500, 54 + easing: "cubic-bezier(0.313, 0.079, 0.554, 0.972)", 55 + fill: "forwards", 56 + iterations: 1, 57 + } 58 + ) 59 + .finished.then(() => { 60 + climax(); 61 + 62 + elem.animate( 63 + [ 64 + { 65 + transform: "translateY(100rem)", 66 + }, 67 + { 68 + transform: "translateY(0)", 69 + }, 70 + ], 71 + { 72 + duration: 10000, 73 + iterations: 1, 74 + fill: "forwards", 75 + easing: "ease-in-out", 76 + } 77 + ); 78 + }); 79 + }; 80 + </script> 81 + 82 + <section 83 + bind:clientWidth={thisWidth} 84 + bind:clientHeight={thisHeight} 85 + bind:this={elem} 86 + style={` 87 + --w: ${width}; 88 + --h: ${height}; 89 + --x: ${x}; 90 + --y: ${y}; 91 + 92 + --__anim-y-speed: ${Math.random() * 20 + 10}s; 93 + --__anim-y-0: ${Math.random() * 20 - 10}rem; 94 + --__anim-y-25: ${Math.random() * 20 - 10}rem; 95 + --__anim-y-50: ${Math.random() * 20 - 10}rem; 96 + --__anim-y-75: ${Math.random() * 20 - 10}rem; 97 + 98 + --__anim-x-speed: ${Math.random() * 20 + 20}s; 99 + --__anim-x-0: ${Math.random() * 8 - 4}rem; 100 + --__anim-x-25: ${Math.random() * 8 - 4}rem; 101 + --__anim-x-50: ${Math.random() * 8 - 4}rem; 102 + --__anim-x-75: ${Math.random() * 8 - 4}rem; 103 + `} 104 + > 105 + {#each new Array(balloons) as _, i} 106 + <Balloons 107 + {colour} 108 + id={i as 0 | 1} 109 + {...balloons === 1 ? { single: true } : {}} 110 + boundingWidth={thisWidth} 111 + boundingHeight={thisHeight} 112 + {pop} 113 + /> 114 + {/each} 115 + {@render children()} 116 + </section> 117 + 118 + <style> 119 + /* bobbing animation */ 120 + @keyframes bob-y { 121 + 0%, 122 + 100% { 123 + top: calc(var(--y) * 0.1rem + var(--__anim-y-0)); 124 + } 125 + 126 + 25% { 127 + top: calc(var(--y) * 0.1rem + var(--__anim-y-25)); 128 + } 129 + 130 + 50% { 131 + top: calc(var(--y) * 0.1rem + var(--__anim-y-50)); 132 + } 133 + 134 + 75% { 135 + top: calc(var(--y) * 0.1rem + var(--__anim-y-75)); 136 + } 137 + } 138 + 139 + @keyframes bob-x { 140 + 0%, 141 + 100% { 142 + left: calc(var(--x) * 0.1rem + var(--__anim-x-0, 0)); 143 + } 144 + 145 + 25% { 146 + left: calc(var(--x) * 0.1rem + var(--__anim-x-25, 0)); 147 + } 148 + 149 + 50% { 150 + left: calc(var(--x) * 0.1rem + var(--__anim-x-50, 0)); 151 + } 152 + 153 + 75% { 154 + left: calc(var(--x) * 0.1rem + var(--__anim-x-75, 0)); 155 + } 156 + } 157 + 158 + section { 159 + background-color: white; 160 + box-shadow: 0 0 2rem rgba(0, 0, 0, 0.25); 161 + border-radius: 2rem; 162 + padding: 1rem; 163 + 164 + width: calc(var(--w) * 0.1rem); 165 + height: calc(var(--h) * 0.1rem); 166 + 167 + position: absolute; 168 + left: calc(var(--x) * 0.1rem); 169 + top: calc(var(--y) * 0.1rem); 170 + 171 + animation: 172 + bob-y var(--__anim-y-speed) ease-in-out infinite, 173 + bob-x var(--__anim-x-speed) ease-in-out infinite; 174 + } 175 + </style>
+63
src/components/blog/post.astro
···
··· 1 + --- 2 + import { Image } from "astro:assets"; 3 + 4 + export interface Props { 5 + post: { 6 + data: { 7 + image: { 8 + src: string; 9 + alt: string; 10 + }; 11 + title: string; 12 + date: Date; 13 + }; 14 + }; 15 + } 16 + 17 + const { 18 + post: { 19 + data: { image: img, title, date }, 20 + }, 21 + } = Astro.props; 22 + 23 + let imageSrc: RegExpMatchArray | null | string[] = img.src.match(/.*(?=\.png)/gm); 24 + if (imageSrc === null) { 25 + imageSrc = ["404"]; 26 + } 27 + const { default: image } = await import(`../../posts/assets/${imageSrc[0]}.png`); 28 + --- 29 + 30 + <style slot="head"> 31 + div { 32 + overflow: hidden; 33 + height: 100%; 34 + } 35 + 36 + img { 37 + object-fit: cover; 38 + border-radius: 1rem; 39 + } 40 + 41 + h2 { 42 + width: 100%; 43 + white-space: nowrap; 44 + overflow: hidden; 45 + text-overflow: ellipsis; 46 + font-size: 2rem; 47 + } 48 + 49 + p { 50 + font-size: 1.2rem; 51 + } 52 + </style> 53 + 54 + <div> 55 + <Image src={image} alt={img.alt} width={180} height={135} /> 56 + <h2>{title}</h2> 57 + <p> 58 + {String(date.getDate()).padStart(2, "0")} 59 + -{String(date.getMonth() + 1).padStart(2, "0")} 60 + -{String(date.getFullYear()).padStart(2, "0").substring(2)} 61 + </p> 62 + <p>{date.toLocaleDateString()}</p> 63 + </div>
+4 -1
src/content.config.ts
··· 6 schema: z.object({ 7 title: z.string(), 8 date: z.date(), 9 image: z.object({ 10 - src: z.string(), 11 alt: z.string(), 12 }), 13 hasMdx: z.boolean().default(false),
··· 6 schema: z.object({ 7 title: z.string(), 8 date: z.date(), 9 + colour: z.string(), 10 image: z.object({ 11 + src: z.string().refine(value => value.endsWith('.png'), (val) => ({ 12 + message: `${val} must end with .png` 13 + })), 14 alt: z.string(), 15 }), 16 hasMdx: z.boolean().default(false),
+57 -51
src/layouts/base.astro
··· 27 <meta name="viewport" content="width=device-width" /> 28 <meta name="generator" content={Astro.generator} /> 29 <link rel="sitemap" href="/sitemap-index.xml" /> 30 - <title>{title} | vielle.dev</title> 31 <!-- per page info --> 32 <slot name="head" /> 33 <!-- default styles (rem, *) --> 34 <style is:global> 35 - :root { 36 - font-size: 62.5%; 37 - } 38 - body { 39 - font-size: 1.6rem; 40 - line-height: 1.5; 41 - -webkit-font-smoothing: antialiased; 42 - } 43 44 - *, 45 - *::before, 46 - *::after { 47 - margin: 0; 48 - padding: 0; 49 - box-sizing: border-box; 50 - appearance: none; 51 - } 52 53 - img, 54 - picture, 55 - video, 56 - canvas, 57 - svg { 58 - display: block; 59 - max-width: 100%; 60 - } 61 62 - input, 63 - button, 64 - textarea, 65 - select { 66 - font: inherit; 67 - } 68 69 - /* 7. Avoid text overflows */ 70 - p, 71 - h1, 72 - h2, 73 - h3, 74 - h4, 75 - h5, 76 - h6 { 77 - overflow-wrap: break-word; 78 - } 79 80 - p { 81 - text-wrap: pretty; 82 - } 83 - h1, 84 - h2, 85 - h3, 86 - h4, 87 - h5, 88 - h6 { 89 - text-wrap: balance; 90 } 91 </style> 92
··· 27 <meta name="viewport" content="width=device-width" /> 28 <meta name="generator" content={Astro.generator} /> 29 <link rel="sitemap" href="/sitemap-index.xml" /> 30 + <title>wip 🚨 | {title} | vielle.dev</title> 31 <!-- per page info --> 32 <slot name="head" /> 33 <!-- default styles (rem, *) --> 34 <style is:global> 35 + @layer reset { 36 + :root { 37 + font-size: 62.5%; 38 + } 39 + body { 40 + font-size: 1.6rem; 41 + line-height: 1.5; 42 + -webkit-font-smoothing: antialiased; 43 + } 44 45 + *, 46 + *::before, 47 + *::after { 48 + margin: 0; 49 + padding: 0; 50 + box-sizing: border-box; 51 + appearance: none; 52 + } 53 54 + img, 55 + picture, 56 + video, 57 + canvas, 58 + svg { 59 + display: block; 60 + max-width: 100%; 61 + } 62 63 + input, 64 + button, 65 + textarea, 66 + select { 67 + font: inherit; 68 + } 69 70 + /* 7. Avoid text overflows */ 71 + p, 72 + h1, 73 + h2, 74 + h3, 75 + h4, 76 + h5, 77 + h6 { 78 + overflow-wrap: break-word; 79 + } 80 + 81 + p { 82 + text-wrap: pretty; 83 + } 84 + h1, 85 + h2, 86 + h3, 87 + h4, 88 + h5, 89 + h6 { 90 + text-wrap: balance; 91 + } 92 93 + .hide-till-script { 94 + display: none; 95 + } 96 } 97 </style> 98
+22
src/pages/404.astro
···
··· 1 + --- 2 + import Base from "@/layouts/base.astro"; 3 + --- 4 + 5 + <Base title="Page Not Found"> 6 + <style slot="head"> 7 + button { 8 + background: none; 9 + color: LinkText; 10 + border: none; 11 + padding: 0; 12 + font: inherit; 13 + cursor: pointer; 14 + text-decoration: underline; 15 + } 16 + </style> 17 + 18 + <h1>404 - Page Not Found</h1> 19 + <p>Sorry, the page you are looking for does not exist.</p> 20 + <button onclick="history.back()">Go Back</button> 21 + <a href="/">Go to the homepage</a> 22 + </Base>
+405
src/pages/blog.astro
···
··· 1 + --- 2 + import Base from "@/layouts/base.astro"; 3 + import Floater from "@/components/blog/floater.svelte"; 4 + import Post from "@/components/blog/post.astro"; 5 + import { Image } from "astro:assets"; 6 + import { getCollection } from "astro:content"; 7 + 8 + import rss from "@/assets/rss.svg"; 9 + import Cloud from "@/components/blog/background/cloud.astro"; 10 + import Stars from "@/components/blog/background/stars.astro"; 11 + import Sun from "@/components/blog/background/sun.astro"; 12 + import Moon from "@/components/blog/background/moon.astro"; 13 + 14 + const posts = await getCollection("blog"); 15 + --- 16 + 17 + <Base title="blog"> 18 + <Fragment slot="head"> 19 + <script> 20 + import { isOverlapping, config, postPositions } from "@/stores/blog"; 21 + import { Moon } from "lunarphase-js"; 22 + 23 + /////////////////// 24 + // CONFIGURATION // 25 + /////////////////// 26 + config.set({ 27 + // general 28 + general: { 29 + maxReccurs: 1000, 30 + }, 31 + 32 + // post body 33 + post: { 34 + drift: 40, 35 + gap: { 36 + initial: -80, 37 + min: 100, 38 + max: 250, 39 + }, 40 + }, 41 + 42 + // cable 43 + cable: { 44 + padding: 0.1, 45 + range: 0.2, 46 + width: 5, 47 + angle: { 48 + initial: 20, 49 + drift: 70, 50 + }, 51 + length: { 52 + min: 100, 53 + max: 150, 54 + }, 55 + }, 56 + 57 + // balloons 58 + balloon: { 59 + width: 80, 60 + height: 120, 61 + rotation: 40, 62 + }, 63 + }); 64 + 65 + /////////// 66 + // UTILS // 67 + /////////// 68 + 69 + const getAbsRect = (el: Element) => { 70 + const rect = el.getBoundingClientRect(); 71 + return new DOMRect( 72 + rect.x - window.scrollX, 73 + rect.y - window.scrollY, 74 + rect.width, 75 + rect.height 76 + ); 77 + }; 78 + 79 + const padRect = (rect: DOMRect) => { 80 + const conf = config.get(); 81 + if (conf === null) throw new Error("config is null"); 82 + 83 + return new DOMRect( 84 + rect.x - conf.post.drift, 85 + rect.y - 86 + conf.post.drift - 87 + conf.cable.length.max - 88 + conf.balloon.height, 89 + rect.width + conf.post.drift * 2, 90 + rect.height + 91 + conf.post.drift * 2 + 92 + conf.cable.length.max + 93 + conf.balloon.height 94 + ); 95 + }; 96 + 97 + const unpadRect = (rect: DOMRect) => { 98 + const conf = config.get(); 99 + if (conf === null) throw new Error("config is null"); 100 + return new DOMRect( 101 + rect.x + conf.post.drift, 102 + rect.y + 103 + conf.post.drift + 104 + conf.cable.length.max + 105 + conf.balloon.height, 106 + rect.width - conf.post.drift * 2, 107 + rect.height - 108 + conf.post.drift * 2 - 109 + conf.cable.length.max - 110 + conf.balloon.height 111 + ); 112 + }; 113 + 114 + const renderRect = ( 115 + rect: DOMRect, 116 + colour: string | [number, number, number] = "orange", 117 + solid: boolean = true 118 + ) => { 119 + const el = document.createElement("div"); 120 + 121 + el.style.position = "absolute"; 122 + 123 + el.style.top = `${rect.top}px`; 124 + el.style.left = `${rect.left}px`; 125 + el.style.width = `${rect.width}px`; 126 + el.style.height = `${rect.height}px`; 127 + 128 + el.style.outline = "1px solid transparent"; 129 + el.style[solid ? "backgroundColor" : "outlineColor"] = 130 + typeof colour === "string" ? colour : `rgb(${colour.join(", ")})`; 131 + 132 + el.style.opacity = solid ? "0.25" : "1"; 133 + // el.style.zIndex = "-1"; 134 + 135 + document.body.appendChild(el); 136 + }; 137 + 138 + /////////////// 139 + // RECT GENS // 140 + /////////////// 141 + 142 + function* getElms(parent: string) { 143 + // get config (if non existent exit early) 144 + const conf = config.get(); 145 + if (conf === null) return null; 146 + // get container (if non existent exit early) 147 + const postContainer = document.getElementById(parent); 148 + if (postContainer === null) return null; 149 + const children = postContainer.children; 150 + 151 + // define one step in the loop 152 + const step = (el: Element): Element | null => { 153 + const styles = window.getComputedStyle(el); 154 + 155 + // test if el is display: none and if it is, skip 156 + if (styles.display === "none") { 157 + return null; 158 + } 159 + // if element is display content, retry step of loop with its child 160 + if (styles.display === "contents") { 161 + const children = el.children; 162 + for (const child of children) { 163 + const result = step(child); 164 + if (result !== null) { 165 + return result; 166 + } 167 + } 168 + return null; 169 + } 170 + 171 + return el; 172 + }; 173 + 174 + for (const el of children) { 175 + const result = step(el); 176 + if (result !== null) { 177 + yield result; 178 + } 179 + } 180 + } 181 + 182 + function* getRects(parent: string) { 183 + for (const el of getElms(parent)) { 184 + yield getAbsRect(el); 185 + } 186 + } 187 + 188 + function* getPadRects(parent: string) { 189 + for (const rect of getRects(parent)) { 190 + yield padRect(rect); 191 + } 192 + } 193 + 194 + ////////// 195 + // BODY // 196 + ////////// 197 + 198 + const newPos = () => { 199 + const conf = config.get(); 200 + if (conf === null) throw new Error("config is null"); 201 + 202 + const positions: DOMRect[] = []; 203 + let y = conf.post.gap.initial - conf.post.gap.min; 204 + 205 + let lowestHeight = 0; 206 + 207 + const step = (rect: DOMRect, y: number, steps: number = 0) => { 208 + if (steps > conf.general.maxReccurs) { 209 + console.warn("too many steps, quitting for recursion"); 210 + return rect; 211 + } 212 + 213 + rect.y = y; 214 + rect.x = Math.random() * (window.innerWidth - rect.width); 215 + 216 + if ( 217 + isOverlapping( 218 + rect, 219 + padRect(positions.at(-1) ?? new DOMRect(0, 0, 0, 0)) 220 + ) 221 + ) { 222 + return step(rect, y, steps + 1); 223 + } 224 + 225 + if (rect.bottom > lowestHeight) lowestHeight = rect.y + rect.height; 226 + 227 + return rect; 228 + }; 229 + 230 + for (let rect of getPadRects("post-container")) { 231 + y += 232 + Math.random() * (conf.post.gap.max - conf.post.gap.min) + 233 + conf.post.gap.min; 234 + positions.push(unpadRect(step(rect, y))); 235 + } 236 + 237 + postPositions.set(positions); 238 + 239 + document.body.style.setProperty( 240 + "--height", 241 + `max(100lvh, ${(lowestHeight + 50) / 10}rem)` 242 + ); 243 + }; 244 + 245 + newPos(); 246 + 247 + let timeout: number | false = false; 248 + window.addEventListener("resize", () => { 249 + if (timeout) clearTimeout(timeout); 250 + timeout = setTimeout(newPos, 100) as unknown as number; 251 + }); 252 + 253 + const handleDayTime = (overrides?: { 254 + isDayTime?: boolean; 255 + phase?: number; 256 + date?: Date; 257 + }) => { 258 + const elements = { 259 + body: document.body, 260 + clouds: 261 + document.getElementById("cloud-wrapper") ?? new HTMLDivElement(), 262 + stars: 263 + document.getElementById("star-wrapper") ?? new HTMLDivElement(), 264 + sun: document.getElementById("sun-wrapper") ?? new HTMLDivElement(), 265 + moon: document.getElementById("moon-wrapper") ?? new HTMLDivElement(), 266 + }; 267 + const hours = 268 + overrides && overrides.date 269 + ? overrides.date.getHours() 270 + : new Date().getHours(); 271 + const isDayTime = overrides?.isDayTime ?? (hours > 6 && hours < 20); 272 + const phase = 273 + (overrides?.phase ?? (overrides && overrides.date)) 274 + ? Moon.lunarAge(overrides.date) 275 + : Moon.lunarAgePercent(); 276 + 277 + if (overrides) console.log(overrides, hours, isDayTime, phase); 278 + 279 + elements.body.classList.toggle("day", isDayTime); 280 + elements.body.classList.toggle("night", !isDayTime); 281 + elements.moon.style.setProperty("--phase", `${phase}`); 282 + 283 + if (isDayTime) { 284 + elements.clouds.style.display = "block"; 285 + elements.sun.style.display = "block"; 286 + elements.stars.style.display = "none"; 287 + elements.moon.style.display = "none"; 288 + } else { 289 + elements.clouds.style.display = "none"; 290 + elements.sun.style.display = "none"; 291 + elements.stars.style.display = "block"; 292 + elements.moon.style.display = "block"; 293 + } 294 + }; 295 + 296 + handleDayTime({ 297 + isDayTime: true, 298 + }); 299 + </script> 300 + <style> 301 + body { 302 + background-color: var(--bg-colour, #87ceeb); 303 + width: 100vw; 304 + height: var(--height, 100vh); 305 + overflow-x: clip; 306 + 307 + &.night { 308 + --bg-colour: #372554; 309 + } 310 + 311 + &.day { 312 + --bg-colour: #87ceeb; 313 + } 314 + } 315 + 316 + #post-container { 317 + height: 100%; 318 + overflow: clip; 319 + /* contain: content; */ 320 + position: relative; 321 + } 322 + 323 + #cloud-wrapper { 324 + width: 100%; 325 + height: var(--height, 100%); 326 + overflow: clip; 327 + pointer-events: none; 328 + position: absolute; 329 + } 330 + </style> 331 + </Fragment> 332 + <div id="cloud-wrapper"> 333 + { 334 + new Array(40).fill(0).map((_, i) => ( 335 + <Cloud 336 + id={i} 337 + center={{ 338 + x: Math.random() * 100 - 10, 339 + y: i * 30 + Math.random() * 10, 340 + }} 341 + padding={200} 342 + size={{ 343 + width: Math.random() * 300 + 200, 344 + height: Math.random() * 100 + 100, 345 + }} 346 + steps={Math.floor(Math.random() * 4) + 6} 347 + /> 348 + )) 349 + } 350 + </div> 351 + <Stars 352 + area={{ width: 3000, height: 3000 }} 353 + stars={Math.floor(Math.random() * 40 + 60)} 354 + /> 355 + <Sun 356 + center={{ x: Math.random() * 80 + 120, y: Math.random() * 180 + 120 }} 357 + rad={80} 358 + prongs={12} 359 + scale={20} 360 + /> 361 + <Moon 362 + center={{ x: Math.random() * 80 + 120, y: Math.random() * 180 + 120 }} 363 + rad={80} 364 + /> 365 + <div id="post-container"> 366 + { 367 + [ 368 + // define each entry as an object with width, height, balloons (optional) and floater contents 369 + { 370 + width: 100, 371 + height: 100, 372 + balloons: 1, 373 + colour: "orange", 374 + content: ( 375 + <div style="border-radius: 1rem; background-color: orange; width: 100%; height: 100%; padding: 1rem;"> 376 + <Image src={rss} alt="rss" width={60} height={60} /> 377 + </div> 378 + ), 379 + }, 380 + // then splat out the post entries with width and height, as well as the templated contents 381 + ...posts.map((x) => { 382 + return { 383 + width: 200, 384 + height: 200, 385 + colour: x.data.colour, 386 + content: <Post post={x} />, 387 + }; 388 + }), 389 + // things are done this way so that the floaters know what ID they are 390 + // this cannot be done in the frontmatter as it doesnt support JSX unfortunately 391 + ].map(async (x, i) => ( 392 + <Floater 393 + client:load 394 + width={x.width} 395 + height={x.height} 396 + id={i} 397 + balloons={"balloons" in x ? x.balloons : 2} 398 + colour={x.colour} 399 + > 400 + {x.content} 401 + </Floater> 402 + )) 403 + } 404 + </div> 405 + </Base>
+5
src/pages/index.astro
··· 11 display: flex; 12 align-items: center; 13 justify-content: center; 14 margin: 0; 15 background-color: #011627; 16 } 17 </style> 18 <Map 19 locations={[ 20 {
··· 11 display: flex; 12 align-items: center; 13 justify-content: center; 14 + flex-direction: column; 15 + gap: 5rem; 16 + padding: 0; 17 margin: 0; 18 background-color: #011627; 19 + color: #f8f8f2; 20 } 21 </style> 22 + <h1>vielle.dev 🪤 | wip</h1> 23 <Map 24 locations={[ 25 {
+15
src/pages/post/[id].astro
···
··· 1 + --- 2 + import Base from "@/layouts/base.astro"; 3 + import { getEntry } from "astro:content"; 4 + const { id } = Astro.params; 5 + const r404 = Astro.redirect("/404"); 6 + 7 + if (!id) return r404 8 + const post = await getEntry("blog", id); 9 + if (!post) return r404 10 + --- 11 + 12 + <Base title={post.data.title}> 13 + <h1>{post.data.title}</h1> 14 + <p>{JSON.stringify(post)}</p> 15 + </Base>
+46
src/stores/blog.ts
···
··· 1 + import type { init } from "astro/virtual-modules/prefetch.js"; 2 + import { atom } from "nanostores"; 3 + 4 + export const postPositions = atom<undefined | DOMRect[]>(undefined); 5 + 6 + // utility for helping use this store 7 + export const isOverlapping = (rect1: DOMRect, rect2: DOMRect) => { 8 + return ( 9 + rect1.right > rect2.left && 10 + rect1.left < rect2.right && 11 + rect1.bottom > rect2.top && 12 + rect1.top < rect2.bottom 13 + ); 14 + }; 15 + 16 + export const config = atom<null | { 17 + general: { 18 + maxReccurs: number; 19 + }; 20 + post: { 21 + drift: number; 22 + gap: { 23 + initial: number; 24 + min: number; 25 + max: number; 26 + }; 27 + }; 28 + cable: { 29 + padding: number; 30 + range: number; 31 + width: number; 32 + angle: { 33 + initial: number; 34 + drift: number; 35 + }; 36 + length: { 37 + min: number; 38 + max: number; 39 + }; 40 + }; 41 + balloon: { 42 + width: number; 43 + height: number; 44 + rotation: number; 45 + }; 46 + }>(null);
+2 -1
tsconfig.json
··· 7 "baseUrl": ".", 8 "paths": { 9 "@/*": ["./src/*"] 10 - } 11 } 12 }
··· 7 "baseUrl": ".", 8 "paths": { 9 "@/*": ["./src/*"] 10 + }, 11 + "types": ["@cloudflare/workers-types/2023-07-01"] 12 } 13 }
+4
worker-configuration.d.ts
···
··· 1 + // Generated by Wrangler 2 + // After adding bindings to `wrangler.toml`, regenerate this interface via `npm run cf-typegen` 3 + interface Env { 4 + }
+86
wrangler.toml
···
··· 1 + #:schema node_modules/wrangler/config-schema.json 2 + name = "astral-powers-v2" 3 + compatibility_date = "2025-01-09" 4 + compatibility_flags = ["nodejs_compat"] 5 + pages_build_output_dir = "./dist" 6 + 7 + # Automatically place your workloads in an optimal location to minimize latency. 8 + # If you are running back-end logic in a Pages Function, running it closer to your back-end infrastructure 9 + # rather than the end user may result in better performance. 10 + # Docs: https://developers.cloudflare.com/pages/functions/smart-placement/#smart-placement 11 + # [placement] 12 + # mode = "smart" 13 + 14 + # Variable bindings. These are arbitrary, plaintext strings (similar to environment variables) 15 + # Docs: 16 + # - https://developers.cloudflare.com/pages/functions/bindings/#environment-variables 17 + # Note: Use secrets to store sensitive data. 18 + # - https://developers.cloudflare.com/pages/functions/bindings/#secrets 19 + # [vars] 20 + # MY_VARIABLE = "production_value" 21 + 22 + # Bind the Workers AI model catalog. Run machine learning models, powered by serverless GPUs, on Cloudflare’s global network 23 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#workers-ai 24 + # [ai] 25 + # binding = "AI" 26 + 27 + # Bind a D1 database. D1 is Cloudflare’s native serverless SQL database. 28 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#d1-databases 29 + # [[d1_databases]] 30 + # binding = "MY_DB" 31 + # database_name = "my-database" 32 + # database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 33 + 34 + # Bind a Durable Object. Durable objects are a scale-to-zero compute primitive based on the actor model. 35 + # Durable Objects can live for as long as needed. Use these when you need a long-running "server", such as in realtime apps. 36 + # Docs: https://developers.cloudflare.com/workers/runtime-apis/durable-objects 37 + # [[durable_objects.bindings]] 38 + # name = "MY_DURABLE_OBJECT" 39 + # class_name = "MyDurableObject" 40 + # script_name = 'my-durable-object' 41 + 42 + # Bind a KV Namespace. Use KV as persistent storage for small key-value pairs. 43 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#kv-namespaces 44 + # [[kv_namespaces]] 45 + # binding = "MY_KV_NAMESPACE" 46 + # id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 47 + 48 + # Bind a Queue producer. Use this binding to schedule an arbitrary task that may be processed later by a Queue consumer. 49 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#queue-producers 50 + # [[queues.producers]] 51 + # binding = "MY_QUEUE" 52 + # queue = "my-queue" 53 + 54 + # Bind an R2 Bucket. Use R2 to store arbitrarily large blobs of data, such as files. 55 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#r2-buckets 56 + # [[r2_buckets]] 57 + # binding = "MY_BUCKET" 58 + # bucket_name = "my-bucket" 59 + 60 + # Bind another Worker service. Use this binding to call another Worker without network overhead. 61 + # Docs: https://developers.cloudflare.com/pages/functions/bindings/#service-bindings 62 + # [[services]] 63 + # binding = "MY_SERVICE" 64 + # service = "my-service" 65 + 66 + # To use different bindings for preview and production environments, follow the examples below. 67 + # When using environment-specific overrides for bindings, ALL bindings must be specified on a per-environment basis. 68 + # Docs: https://developers.cloudflare.com/pages/functions/wrangler-configuration#environment-specific-overrides 69 + 70 + ######## PREVIEW environment config ######## 71 + 72 + # [env.preview.vars] 73 + # API_KEY = "xyz789" 74 + 75 + # [[env.preview.kv_namespaces]] 76 + # binding = "MY_KV_NAMESPACE" 77 + # id = "<PREVIEW_NAMESPACE_ID>" 78 + 79 + ######## PRODUCTION environment config ######## 80 + 81 + # [env.production.vars] 82 + # API_KEY = "abc123" 83 + 84 + # [[env.production.kv_namespaces]] 85 + # binding = "MY_KV_NAMESPACE" 86 + # id = "<PRODUCTION_NAMESPACE_ID>"