[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 22 sitemap(), 23 23 ], 24 24 25 - adapter: cloudflare(), 25 + adapter: cloudflare({ 26 + imageService: "cloudflare", 27 + platformProxy: { 28 + enabled: true, 29 + }, 30 + 31 + }), 26 32 output: "server", 27 - 33 + 28 34 site: "https://vielle.dev", 29 35 });
+10 -5
package.json
··· 11 11 }, 12 12 "dependencies": { 13 13 "@astrojs/check": "^0.9.4", 14 - "@astrojs/cloudflare": "^12.1.0", 15 - "@astrojs/mdx": "^4.0.3", 16 - "@astrojs/rss": "^4.0.10", 14 + "@astrojs/cloudflare": "^12.2.0", 15 + "@astrojs/mdx": "^4.0.5", 16 + "@astrojs/rss": "^4.0.11", 17 17 "@astrojs/sitemap": "^3.2.1", 18 - "@astrojs/svelte": "7.0.2", 19 - "astro": "5.1.1", 18 + "@astrojs/svelte": "7.0.3", 19 + "astro": "5.1.6", 20 + "lunarphase-js": "^2.0.3", 20 21 "markdown-it": "^14.1.0", 21 22 "nanostores": "^0.11.3", 22 23 "svelte": "^5.8.1", 23 24 "typescript": "^5.7.2" 25 + }, 26 + "devDependencies": { 27 + "@cloudflare/workers-types": "^4.20250109.0", 28 + "wrangler": "^3.101.0" 24 29 } 25 30 }
+1451 -133
pnpm-lock.yaml
··· 12 12 specifier: ^0.9.4 13 13 version: 0.9.4(typescript@5.7.2) 14 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) 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 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)) 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 20 '@astrojs/rss': 21 - specifier: ^4.0.10 22 - version: 4.0.10 21 + specifier: ^4.0.11 22 + version: 4.0.11 23 23 '@astrojs/sitemap': 24 24 specifier: ^3.2.1 25 25 version: 3.2.1 26 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) 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 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) 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 32 35 markdown-it: 33 36 specifier: ^14.1.0 34 37 version: 14.1.0 35 38 nanostores: 36 39 specifier: ^0.11.3 37 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 38 47 svelte: 39 48 specifier: ^5.8.1 40 49 version: 5.16.0 41 50 typescript: 42 51 specifier: ^5.7.2 43 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) 44 60 45 61 packages: 46 62 ··· 54 70 peerDependencies: 55 71 typescript: ^5.0.0 56 72 57 - '@astrojs/cloudflare@12.1.0': 58 - resolution: {integrity: sha512-tx2HrZclERHI9MV/Jx/+cUVbQ0UGWlVCxV7ozRgnwCNG3fgBtpk1Qf60eTMnCLDQTKXy6C5b3nE+c9+dMpW6Hg==} 73 + '@astrojs/cloudflare@12.2.0': 74 + resolution: {integrity: sha512-Aw64u+POcu8T+V8YqXQm6ZqBuuZwMRSW9AApHVIbVoOj43+7lcmIZxQ8TSTfO2a4OR0Q8Sf2WD3j3I9sQdlsbQ==} 59 75 peerDependencies: 60 76 astro: ^5.0.0 61 77 62 78 '@astrojs/compiler@2.10.3': 63 79 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 80 68 81 '@astrojs/internal-helpers@0.4.2': 69 82 resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} ··· 83 96 '@astrojs/markdown-remark@6.0.1': 84 97 resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} 85 98 86 - '@astrojs/mdx@4.0.3': 87 - resolution: {integrity: sha512-8HcuyNG/KgYUAQWVzKFkboXcTOBCW6aQ0WK0Er/iSmVSF0y3yimg4/3QSt+Twv9dogpwIHL+E8iBJKqieFv4+g==} 99 + '@astrojs/mdx@4.0.5': 100 + resolution: {integrity: sha512-JhMCm4wf94PNHQDWKyez2ZVLcG5R6Cyjk8TmpqYVRrOTuU3GIWeDAoum7Q1p05SFD+nYwvXOcv42/m8pE3Ylug==} 88 101 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 89 102 peerDependencies: 90 103 astro: ^5.0.0 ··· 93 106 resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} 94 107 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 95 108 96 - '@astrojs/rss@4.0.10': 97 - resolution: {integrity: sha512-2gFdHM763uUAySkdwPYrpi6dppOBJr9ddg5VbkKXctWze8d1JHgIBBY78zWIYs7KBJT58zxadsObVAVt55RDaw==} 109 + '@astrojs/rss@4.0.11': 110 + resolution: {integrity: sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==} 98 111 99 112 '@astrojs/sitemap@3.2.1': 100 113 resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} 101 114 102 - '@astrojs/svelte@7.0.2': 103 - resolution: {integrity: sha512-1+SJfU34wjGXBroAHkZRynVSDiAhoYGkn8ODhj20w9wfoUJXnHPgg+0NSDB7pShZRq0rwWDhA3Uo761YXOY4WA==} 115 + '@astrojs/svelte@7.0.3': 116 + resolution: {integrity: sha512-cUR9lQ7p3LPZnWpGb7uWBHVzF6wbRbCkyGgEG20EQTx4Am2OyACM/xqZ3KuDKZJQd3HcqKbjkWX/nTJePpNDRw==} 104 117 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 105 118 peerDependencies: 106 119 astro: ^5.0.0 ··· 111 124 resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} 112 125 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} 113 126 114 - '@astrojs/underscore-redirects@0.4.0': 115 - resolution: {integrity: sha512-Urt32++4ql0IFTTNejnRIN7LPJ6YzU9QXLcc4RXm5or1RLPnQBKVrLvmDxKx3eT72l7ZAi6W4L5E7pcbWbYDRA==} 127 + '@astrojs/underscore-redirects@0.6.0': 128 + resolution: {integrity: sha512-dnJgFpaM955IFNIkEEmMaaIdWXRdeZs1ID6mlGBqdjh6NiCXfKmOdq7L4fd9Dd/tr18fkLrOJ25IUJSxRAEhjQ==} 116 129 117 130 '@astrojs/yaml2ts@0.2.2': 118 131 resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} 119 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 + 120 296 '@babel/helper-string-parser@7.25.9': 121 297 resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 122 298 engines: {node: '>=6.9.0'} ··· 138 314 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} 139 315 engines: {node: '>=16.13'} 140 316 141 - '@cloudflare/workerd-darwin-64@1.20241218.0': 142 - resolution: {integrity: sha512-8rveQoxtUvlmORKqTWgjv2ycM8uqWox0u9evn3zd2iWKdou5sncFwH517ZRLI3rq9P31ZLmCQBZ0gloFsTeY6w==} 317 + '@cloudflare/workerd-darwin-64@1.20241230.0': 318 + resolution: {integrity: sha512-BZHLg4bbhNQoaY1Uan81O3FV/zcmWueC55juhnaI7NAobiQth9RppadPNpxNAmS9fK2mR5z8xrwMQSQrHmztyQ==} 143 319 engines: {node: '>=16'} 144 320 cpu: [x64] 145 321 os: [darwin] 146 322 147 - '@cloudflare/workerd-darwin-arm64@1.20241218.0': 148 - resolution: {integrity: sha512-be59Ad9nmM9lCkhHqmTs/uZ3JVZt8NJ9Z0PY+B0xnc5z6WwmV2lj0RVLtq7xJhQsQJA189zt5rXqDP6J+2mu7Q==} 323 + '@cloudflare/workerd-darwin-arm64@1.20241230.0': 324 + resolution: {integrity: sha512-lllxycj7EzYoJ0VOJh8M3palUgoonVrILnzGrgsworgWlIpgjfXGS7b41tEGCw6AxSxL9prmTIGtfSPUvn/rjg==} 149 325 engines: {node: '>=16'} 150 326 cpu: [arm64] 151 327 os: [darwin] 152 328 153 - '@cloudflare/workerd-linux-64@1.20241218.0': 154 - resolution: {integrity: sha512-MzpSBcfZXRxrYWxQ4pVDYDrUbkQuM62ssl4ZtHH8J35OAeGsWFAYji6MkS2SpVwVcvacPwJXIF4JSzp4xKImKw==} 329 + '@cloudflare/workerd-linux-64@1.20241230.0': 330 + resolution: {integrity: sha512-Y3mHcW0KghOmWdNZyHYpEOG4Ba/ga8tht5vj1a+WXfagEjMO8Y98XhZUlCaYa9yB7Wh5jVcK5LM2jlO/BLgqpA==} 155 331 engines: {node: '>=16'} 156 332 cpu: [x64] 157 333 os: [linux] 158 334 159 - '@cloudflare/workerd-linux-arm64@1.20241218.0': 160 - resolution: {integrity: sha512-RIuJjPxpNqvwIs52vQsXeRMttvhIjgg9NLjjFa3jK8Ijnj8c3ZDru9Wqi48lJP07yDFIRr4uDMMqh/y29YQi2A==} 335 + '@cloudflare/workerd-linux-arm64@1.20241230.0': 336 + resolution: {integrity: sha512-IAjhsWPlHzhhkJ6I49sDG6XfMnhPvv0szKGXxTWQK/IWMrbGdHm4RSfNKBSoLQm67jGMIzbmcrX9UIkms27Y1g==} 161 337 engines: {node: '>=16'} 162 338 cpu: [arm64] 163 339 os: [linux] 164 340 165 - '@cloudflare/workerd-windows-64@1.20241218.0': 166 - resolution: {integrity: sha512-tO1VjlvK3F6Yb2d1jgEy/QBYl//9Pyv3K0j+lq8Eu7qdfm0IgKwSRgDWLept84/qmNsQfausZ4JdNGxTf9xsxQ==} 341 + '@cloudflare/workerd-windows-64@1.20241230.0': 342 + resolution: {integrity: sha512-y5SPIk9iOb2gz+yWtHxoeMnjPnkYQswiCJ480oHC6zexnJLlKTpcmBCjDH1nWCT4pQi8F25gaH8thgElf4NvXQ==} 167 343 engines: {node: '>=16'} 168 344 cpu: [x64] 169 345 os: [win32] 170 346 171 - '@cloudflare/workers-types@4.20241224.0': 172 - resolution: {integrity: sha512-1ZmFc8qqM7S/HUGmLplc4P8n8DoMqiJmc47r9Lr7VbuaotoqCXVljz09w1V1mc4K3pbFPgvqSy4XYStZ08HrlQ==} 347 + '@cloudflare/workers-types@4.20250109.0': 348 + resolution: {integrity: sha512-Y1zgSaEOOevl9ORpzgMcm4j535p3nK2lrblHHvYM2yxR50SBKGh+wvkRFAIxWRfjUGZEU+Fp6923EGioDBbobA==} 173 349 174 350 '@cspotcode/source-map-support@0.8.1': 175 351 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} ··· 738 914 cpu: [x64] 739 915 os: [win32] 740 916 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 917 '@jridgewell/gen-mapping@0.3.8': 747 918 resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 748 919 engines: {node: '>=6.0.0'} ··· 901 1072 '@shikijs/vscode-textmate@9.3.1': 902 1073 resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} 903 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 + 904 1287 '@sveltejs/vite-plugin-svelte-inspector@4.0.1': 905 1288 resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} 906 1289 engines: {node: ^18.0.0 || ^20.0.0 || >=22} ··· 1057 1440 as-table@1.0.55: 1058 1441 resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1059 1442 1060 - ast-types@0.16.1: 1061 - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} 1062 - engines: {node: '>=4'} 1063 - 1064 1443 astring@1.9.0: 1065 1444 resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 1066 1445 hasBin: true 1067 1446 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==} 1447 + astro@5.1.6: 1448 + resolution: {integrity: sha512-LpTazCIW6syxFePi65gg2ptqqC2kR+PDRym3V23hEQj5yCf+T0t5v9qtp3fW0/+6G+JvP0EprCfCRTt7h/hexg==} 1075 1449 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 1076 1450 hasBin: true 1077 1451 ··· 1091 1465 1092 1466 blake3-wasm@2.1.5: 1093 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==} 1094 1471 1095 1472 boxen@8.0.1: 1096 1473 resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} ··· 1172 1549 1173 1550 common-ancestor-path@1.0.1: 1174 1551 resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 1552 + 1553 + confbox@0.1.8: 1554 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 1175 1555 1176 1556 consola@3.3.3: 1177 1557 resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} ··· 1362 1742 fast-uri@3.0.3: 1363 1743 resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} 1364 1744 1745 + fast-xml-parser@4.4.1: 1746 + resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} 1747 + hasBin: true 1748 + 1365 1749 fast-xml-parser@4.5.1: 1366 1750 resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} 1367 1751 hasBin: true ··· 1439 1823 hast-util-from-parse5@8.0.2: 1440 1824 resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} 1441 1825 1826 + hast-util-heading-rank@3.0.0: 1827 + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} 1828 + 1442 1829 hast-util-is-element@3.0.0: 1443 1830 resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 1444 1831 ··· 1459 1846 1460 1847 hast-util-to-parse5@8.0.0: 1461 1848 resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} 1849 + 1850 + hast-util-to-string@3.0.1: 1851 + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} 1462 1852 1463 1853 hast-util-to-text@4.0.2: 1464 1854 resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} ··· 1603 1993 1604 1994 lru-cache@10.4.3: 1605 1995 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1996 + 1997 + lunarphase-js@2.0.3: 1998 + resolution: {integrity: sha512-zTr/UWbxQ1lyKgaBnyJ/DvKCPONhZQcwmQ8PuF2g2QwdkF8JkhgPe8QlDroxSjZrfpg/9x6jQ6lFtBkSXXf1oQ==} 1606 1999 1607 2000 magic-string@0.25.9: 1608 2001 resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} ··· 1796 2189 engines: {node: '>=10.0.0'} 1797 2190 hasBin: true 1798 2191 1799 - miniflare@3.20241218.0: 1800 - resolution: {integrity: sha512-spYFDArH0wd+wJSTrzBrWrXJrbyJhRMJa35mat947y1jYhVV8I5V8vnD3LwjfpLr0SaEilojz1OIW7ekmnRe+w==} 2192 + miniflare@3.20241230.1: 2193 + resolution: {integrity: sha512-CS6zm12IK7VQGAnypfqqfweVtRKwkz1k4E1cKuF04yCDsuKzkM1UkzCfKhD7cJdGwdEtdtRwq69kODeVFAl8og==} 1801 2194 engines: {node: '>=16.13'} 1802 2195 hasBin: true 2196 + 2197 + mlly@1.7.4: 2198 + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 1803 2199 1804 2200 mrmime@2.0.0: 1805 2201 resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} ··· 1906 2302 pathe@1.1.2: 1907 2303 resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1908 2304 2305 + pathe@2.0.1: 2306 + resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==} 2307 + 1909 2308 picocolors@1.1.1: 1910 2309 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1911 2310 ··· 1924 2323 pkg-dir@4.2.0: 1925 2324 resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1926 2325 engines: {node: '>=8'} 2326 + 2327 + pkg-types@1.3.0: 2328 + resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} 1927 2329 1928 2330 postcss@8.4.49: 1929 2331 resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} ··· 1970 2372 resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 1971 2373 engines: {node: '>= 14.16.0'} 1972 2374 1973 - recast@0.23.9: 1974 - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} 1975 - engines: {node: '>= 4'} 1976 - 1977 2375 recma-build-jsx@1.0.0: 1978 2376 resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} 1979 2377 ··· 1995 2393 regex@5.1.1: 1996 2394 resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 1997 2395 2396 + rehype-autolink-headings@7.1.0: 2397 + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} 2398 + 1998 2399 rehype-parse@9.0.1: 1999 2400 resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 2000 2401 ··· 2003 2404 2004 2405 rehype-recma@1.0.0: 2005 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==} 2006 2410 2007 2411 rehype-stringify@10.0.1: 2008 2412 resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} ··· 2193 2597 tiny-glob@0.2.9: 2194 2598 resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2195 2599 2196 - tiny-invariant@1.3.3: 2197 - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} 2198 - 2199 2600 tinyexec@0.3.1: 2200 2601 resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 2201 2602 ··· 2256 2657 resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 2257 2658 engines: {node: '>=14.0'} 2258 2659 2259 - unenv-nightly@2.0.0-20241204-140205-a5d5190: 2260 - resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} 2660 + unenv-nightly@2.0.0-20241218-183400-5d6aec3: 2661 + resolution: {integrity: sha512-7Xpi29CJRbOV1/IrC03DawMJ0hloklDLq/cigSe+J2jkcC+iDres2Cy0r4ltj5f0x7DqsaGaB4/dLuCPPFZnZA==} 2261 2662 2262 2663 unenv@1.10.0: 2263 2664 resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} ··· 2354 2755 uploadthing: 2355 2756 optional: true 2356 2757 2758 + uuid@9.0.1: 2759 + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 2760 + hasBin: true 2761 + 2357 2762 vfile-location@5.0.3: 2358 2763 resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 2359 2764 ··· 2403 2808 yaml: 2404 2809 optional: true 2405 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 + 2406 2851 vitefu@1.0.4: 2407 2852 resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} 2408 2853 peerDependencies: ··· 2532 2977 resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 2533 2978 engines: {node: '>=18'} 2534 2979 2535 - workerd@1.20241218.0: 2536 - resolution: {integrity: sha512-7Z3D4vOVChMz9mWDffE299oQxUWm/pbkeAWx1btVamPcAK/2IuoNBhwflWo3jyuKuxvYuFAdIucgYxc8ICqXiA==} 2980 + workerd@1.20241230.0: 2981 + resolution: {integrity: sha512-EgixXP0JGXGq6J9lz17TKIZtfNDUvJNG+cl9paPMfZuYWT920fFpBx+K04YmnbQRLnglsivF1GT9pxh1yrlWhg==} 2537 2982 engines: {node: '>=16'} 2538 2983 hasBin: true 2539 2984 2540 - wrangler@3.99.0: 2541 - resolution: {integrity: sha512-k0x4rT3G/QCbxcoZY7CHRVlAIS8WMmKdga6lf4d2c3gXFqssh44vwlTDuARA9QANBxKJTcA7JPTJRfUDhd9QBA==} 2985 + wrangler@3.101.0: 2986 + resolution: {integrity: sha512-zKRqL/jjyF54DH8YCCaF4B2x0v9kSdxLpNkxGDltZ17vCBbq9PCchooN25jbmxOTC2LWdB2LVDw7S66zdl7XuQ==} 2542 2987 engines: {node: '>=16.17.0'} 2543 2988 hasBin: true 2544 2989 peerDependencies: 2545 - '@cloudflare/workers-types': ^4.20241218.0 2990 + '@cloudflare/workers-types': ^4.20241230.0 2546 2991 peerDependenciesMeta: 2547 2992 '@cloudflare/workers-types': 2548 2993 optional: true ··· 2648 3093 - prettier 2649 3094 - prettier-plugin-astro 2650 3095 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)': 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)': 2652 3097 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) 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) 2658 3102 esbuild: 0.24.2 2659 3103 estree-walker: 3.0.3 2660 3104 magic-string: 0.30.17 2661 - miniflare: 3.20241218.0 3105 + miniflare: 3.20241230.1 2662 3106 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) 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) 2665 3109 transitivePeerDependencies: 2666 3110 - '@types/node' 3111 + - aws-crt 2667 3112 - bufferutil 2668 3113 - jiti 2669 3114 - less ··· 2679 3124 - yaml 2680 3125 2681 3126 '@astrojs/compiler@2.10.3': {} 2682 - 2683 - '@astrojs/internal-helpers@0.4.1': {} 2684 3127 2685 3128 '@astrojs/internal-helpers@0.4.2': {} 2686 3129 ··· 2731 3174 transitivePeerDependencies: 2732 3175 - supports-color 2733 3176 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))': 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))': 2735 3178 dependencies: 2736 3179 '@astrojs/markdown-remark': 6.0.1 2737 3180 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) 2738 3181 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) 3182 + astro: 5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1) 2740 3183 es-module-lexer: 1.6.0 2741 3184 estree-util-visit: 2.0.0 2742 3185 hast-util-to-html: 9.0.4 ··· 2754 3197 dependencies: 2755 3198 prismjs: 1.29.0 2756 3199 2757 - '@astrojs/rss@4.0.10': 3200 + '@astrojs/rss@4.0.11': 2758 3201 dependencies: 2759 3202 fast-xml-parser: 4.5.1 2760 3203 kleur: 4.1.5 ··· 2765 3208 stream-replace-string: 2.0.0 2766 3209 zod: 3.24.1 2767 3210 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)': 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)': 2769 3212 dependencies: 2770 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)) 2771 - astro: 5.1.1(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.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) 2772 3215 svelte: 5.16.0 2773 3216 svelte2tsx: 0.7.31(svelte@5.16.0)(typescript@5.7.2) 2774 3217 typescript: 5.7.2 ··· 2799 3242 transitivePeerDependencies: 2800 3243 - supports-color 2801 3244 2802 - '@astrojs/underscore-redirects@0.4.0': {} 3245 + '@astrojs/underscore-redirects@0.6.0': {} 2803 3246 2804 3247 '@astrojs/yaml2ts@0.2.2': 2805 3248 dependencies: 2806 3249 yaml: 2.6.1 2807 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 + 2808 3758 '@babel/helper-string-parser@7.25.9': {} 2809 3759 2810 3760 '@babel/helper-validator-identifier@7.25.9': {} ··· 2822 3772 dependencies: 2823 3773 mime: 3.0.0 2824 3774 2825 - '@cloudflare/workerd-darwin-64@1.20241218.0': 3775 + '@cloudflare/workerd-darwin-64@1.20241230.0': 2826 3776 optional: true 2827 3777 2828 - '@cloudflare/workerd-darwin-arm64@1.20241218.0': 3778 + '@cloudflare/workerd-darwin-arm64@1.20241230.0': 2829 3779 optional: true 2830 3780 2831 - '@cloudflare/workerd-linux-64@1.20241218.0': 3781 + '@cloudflare/workerd-linux-64@1.20241230.0': 2832 3782 optional: true 2833 3783 2834 - '@cloudflare/workerd-linux-arm64@1.20241218.0': 3784 + '@cloudflare/workerd-linux-arm64@1.20241230.0': 2835 3785 optional: true 2836 3786 2837 - '@cloudflare/workerd-windows-64@1.20241218.0': 3787 + '@cloudflare/workerd-windows-64@1.20241230.0': 2838 3788 optional: true 2839 3789 2840 - '@cloudflare/workers-types@4.20241224.0': {} 3790 + '@cloudflare/workers-types@4.20250109.0': {} 2841 3791 2842 3792 '@cspotcode/source-map-support@0.8.1': 2843 3793 dependencies: ··· 3168 4118 '@img/sharp-win32-x64@0.33.5': 3169 4119 optional: true 3170 4120 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 4121 '@jridgewell/gen-mapping@0.3.8': 3180 4122 dependencies: 3181 4123 '@jridgewell/set-array': 1.2.1 ··· 3334 4276 3335 4277 '@shikijs/vscode-textmate@9.3.1': {} 3336 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 + 3337 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))': 3338 4611 dependencies: 3339 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)) ··· 3513 4786 as-table@1.0.55: 3514 4787 dependencies: 3515 4788 printable-characters: 1.0.42 3516 - 3517 - ast-types@0.16.1: 3518 - dependencies: 3519 - tslib: 2.8.1 3520 4789 3521 4790 astring@1.9.0: {} 3522 4791 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): 4792 + astro@5.1.6(@types/node@22.10.2)(rollup@4.29.1)(typescript@5.7.2)(yaml@2.6.1): 3530 4793 dependencies: 3531 4794 '@astrojs/compiler': 2.10.3 3532 4795 '@astrojs/internal-helpers': 0.4.2 ··· 3633 4896 3634 4897 blake3-wasm@2.1.5: {} 3635 4898 4899 + bowser@2.11.0: {} 4900 + 3636 4901 boxen@8.0.1: 3637 4902 dependencies: 3638 4903 ansi-align: 3.0.1 ··· 3720 4985 comma-separated-tokens@2.0.3: {} 3721 4986 3722 4987 common-ancestor-path@1.0.1: {} 4988 + 4989 + confbox@0.1.8: {} 3723 4990 3724 4991 consola@3.3.3: {} 3725 4992 ··· 3951 5218 3952 5219 fast-uri@3.0.3: {} 3953 5220 5221 + fast-xml-parser@4.4.1: 5222 + dependencies: 5223 + strnum: 1.0.5 5224 + 3954 5225 fast-xml-parser@4.5.1: 3955 5226 dependencies: 3956 5227 strnum: 1.0.5 ··· 4042 5313 vfile-location: 5.0.3 4043 5314 web-namespaces: 2.0.1 4044 5315 5316 + hast-util-heading-rank@3.0.0: 5317 + dependencies: 5318 + '@types/hast': 3.0.4 5319 + 4045 5320 hast-util-is-element@3.0.0: 4046 5321 dependencies: 4047 5322 '@types/hast': 3.0.4 ··· 4130 5405 space-separated-tokens: 2.0.2 4131 5406 web-namespaces: 2.0.1 4132 5407 zwitch: 2.0.4 5408 + 5409 + hast-util-to-string@3.0.1: 5410 + dependencies: 5411 + '@types/hast': 3.0.4 4133 5412 4134 5413 hast-util-to-text@4.0.2: 4135 5414 dependencies: ··· 4259 5538 tslib: 2.8.1 4260 5539 4261 5540 lru-cache@10.4.3: {} 5541 + 5542 + lunarphase-js@2.0.3: {} 4262 5543 4263 5544 magic-string@0.25.9: 4264 5545 dependencies: ··· 4733 6014 4734 6015 mime@3.0.0: {} 4735 6016 4736 - miniflare@3.20241218.0: 6017 + miniflare@3.20241230.1: 4737 6018 dependencies: 4738 6019 '@cspotcode/source-map-support': 0.8.1 4739 6020 acorn: 8.14.0 ··· 4743 6024 glob-to-regexp: 0.4.1 4744 6025 stoppable: 1.1.0 4745 6026 undici: 5.28.4 4746 - workerd: 1.20241218.0 6027 + workerd: 1.20241230.0 4747 6028 ws: 8.18.0 4748 6029 youch: 3.3.4 4749 6030 zod: 3.24.1 ··· 4751 6032 - bufferutil 4752 6033 - supports-color 4753 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 4754 6042 4755 6043 mrmime@2.0.0: {} 4756 6044 ··· 4854 6142 4855 6143 pathe@1.1.2: {} 4856 6144 6145 + pathe@2.0.1: {} 6146 + 4857 6147 picocolors@1.1.1: {} 4858 6148 4859 6149 picomatch@2.3.1: {} ··· 4865 6155 pkg-dir@4.2.0: 4866 6156 dependencies: 4867 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 4868 6164 4869 6165 postcss@8.4.49: 4870 6166 dependencies: ··· 4904 6200 4905 6201 readdirp@4.0.2: {} 4906 6202 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 6203 recma-build-jsx@1.0.0: 4916 6204 dependencies: 4917 6205 '@types/estree': 1.0.6 ··· 4952 6240 regex@5.1.1: 4953 6241 dependencies: 4954 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 4955 6252 4956 6253 rehype-parse@9.0.1: 4957 6254 dependencies: ··· 4973 6270 transitivePeerDependencies: 4974 6271 - supports-color 4975 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 + 4976 6281 rehype-stringify@10.0.1: 4977 6282 dependencies: 4978 6283 '@types/hast': 3.0.4 ··· 5266 6571 globalyzer: 0.1.0 5267 6572 globrex: 0.1.2 5268 6573 5269 - tiny-invariant@1.3.3: {} 5270 - 5271 6574 tinyexec@0.3.1: {} 5272 6575 5273 6576 to-regex-range@5.0.1: ··· 5308 6611 dependencies: 5309 6612 '@fastify/busboy': 2.1.1 5310 6613 5311 - unenv-nightly@2.0.0-20241204-140205-a5d5190: 6614 + unenv-nightly@2.0.0-20241218-183400-5d6aec3: 5312 6615 dependencies: 5313 6616 defu: 6.1.4 6617 + mlly: 1.7.4 5314 6618 ohash: 1.1.4 5315 6619 pathe: 1.1.2 5316 6620 ufo: 1.5.4 ··· 5390 6694 ofetch: 1.4.1 5391 6695 ufo: 1.5.4 5392 6696 6697 + uuid@9.0.1: {} 6698 + 5393 6699 vfile-location@5.0.3: 5394 6700 dependencies: 5395 6701 '@types/unist': 3.0.3 ··· 5406 6712 vfile-message: 4.0.2 5407 6713 5408 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): 5409 6725 dependencies: 5410 6726 esbuild: 0.24.2 5411 6727 postcss: 8.4.49 ··· 5540 6856 dependencies: 5541 6857 string-width: 7.2.0 5542 6858 5543 - workerd@1.20241218.0: 6859 + workerd@1.20241230.0: 5544 6860 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 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 5550 6866 5551 - wrangler@3.99.0(@cloudflare/workers-types@4.20241224.0): 6867 + wrangler@3.101.0(@cloudflare/workers-types@4.20250109.0): 5552 6868 dependencies: 6869 + '@aws-sdk/client-s3': 3.726.1 5553 6870 '@cloudflare/kv-asset-handler': 0.3.4 5554 6871 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 5555 6872 '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) ··· 5558 6875 date-fns: 4.1.0 5559 6876 esbuild: 0.17.19 5560 6877 itty-time: 1.0.6 5561 - miniflare: 3.20241218.0 6878 + miniflare: 3.20241230.1 5562 6879 nanoid: 3.3.8 5563 6880 path-to-regexp: 6.3.0 5564 6881 resolve: 1.22.10 5565 6882 selfsigned: 2.4.1 5566 6883 source-map: 0.6.1 5567 - unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 5568 - workerd: 1.20241218.0 6884 + unenv: unenv-nightly@2.0.0-20241218-183400-5d6aec3 6885 + workerd: 1.20241230.0 5569 6886 xxhash-wasm: 1.1.0 5570 6887 optionalDependencies: 5571 - '@cloudflare/workers-types': 4.20241224.0 6888 + '@cloudflare/workers-types': 4.20250109.0 5572 6889 fsevents: 2.3.3 5573 6890 transitivePeerDependencies: 6891 + - aws-crt 5574 6892 - bufferutil 5575 6893 - supports-color 5576 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 1 --- 2 - title: "askjhgdjkh fasdgkhj f asdgljkh fhjkl vfasdlhjk fdlkjh djkh fdhjklkjhsdf dj dj d d j djd j dj dj dj d jd" 2 + title: Why I <3 Variable Fonts 3 3 date: 2024-12-07 4 4 image: 5 5 src: "mc_map.png" 6 6 alt: "" 7 + colour: yellow 8 + hasMdx: true 7 9 --- 8 10 9 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 4 image: 5 5 src: "mc_map_art.png" 6 6 alt: "" 7 + colour: red 7 8 --- 8 9 whats this about dawg
+1
posts/test copy.md
··· 4 4 image: 5 5 src: "mc_map.png" 6 6 alt: "" 7 + colour: magenta 7 8 --- 8 9 9 10 whats this about dawg
+2
posts/test.md
··· 4 4 image: 5 5 src: "mc_map.png" 6 6 alt: "minecraft map" 7 + colour: blue 8 + hasMdx: true 7 9 --- 8 10 9 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 6 schema: z.object({ 7 7 title: z.string(), 8 8 date: z.date(), 9 + colour: z.string(), 9 10 image: z.object({ 10 - src: z.string(), 11 + src: z.string().refine(value => value.endsWith('.png'), (val) => ({ 12 + message: `${val} must end with .png` 13 + })), 11 14 alt: z.string(), 12 15 }), 13 16 hasMdx: z.boolean().default(false),
+57 -51
src/layouts/base.astro
··· 27 27 <meta name="viewport" content="width=device-width" /> 28 28 <meta name="generator" content={Astro.generator} /> 29 29 <link rel="sitemap" href="/sitemap-index.xml" /> 30 - <title>{title} | vielle.dev</title> 30 + <title>wip 🚨 | {title} | vielle.dev</title> 31 31 <!-- per page info --> 32 32 <slot name="head" /> 33 33 <!-- default styles (rem, *) --> 34 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 - } 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 + } 43 44 44 - *, 45 - *::before, 46 - *::after { 47 - margin: 0; 48 - padding: 0; 49 - box-sizing: border-box; 50 - appearance: none; 51 - } 45 + *, 46 + *::before, 47 + *::after { 48 + margin: 0; 49 + padding: 0; 50 + box-sizing: border-box; 51 + appearance: none; 52 + } 52 53 53 - img, 54 - picture, 55 - video, 56 - canvas, 57 - svg { 58 - display: block; 59 - max-width: 100%; 60 - } 54 + img, 55 + picture, 56 + video, 57 + canvas, 58 + svg { 59 + display: block; 60 + max-width: 100%; 61 + } 61 62 62 - input, 63 - button, 64 - textarea, 65 - select { 66 - font: inherit; 67 - } 63 + input, 64 + button, 65 + textarea, 66 + select { 67 + font: inherit; 68 + } 68 69 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 - } 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 + } 79 92 80 - p { 81 - text-wrap: pretty; 82 - } 83 - h1, 84 - h2, 85 - h3, 86 - h4, 87 - h5, 88 - h6 { 89 - text-wrap: balance; 93 + .hide-till-script { 94 + display: none; 95 + } 90 96 } 91 97 </style> 92 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 11 display: flex; 12 12 align-items: center; 13 13 justify-content: center; 14 + flex-direction: column; 15 + gap: 5rem; 16 + padding: 0; 14 17 margin: 0; 15 18 background-color: #011627; 19 + color: #f8f8f2; 16 20 } 17 21 </style> 22 + <h1>vielle.dev 🪤 | wip</h1> 18 23 <Map 19 24 locations={[ 20 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 7 "baseUrl": ".", 8 8 "paths": { 9 9 "@/*": ["./src/*"] 10 - } 10 + }, 11 + "types": ["@cloudflare/workers-types/2023-07-01"] 11 12 } 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>"