+8
-2
astro.config.mjs
+8
-2
astro.config.mjs
+10
-5
package.json
+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
+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
posts/assets/minecraft.png
This is a binary file and will not be displayed.
+34
posts/serious.md
+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
+3
-1
posts/test copy 2.md
+80
posts/test copy 2.mdx
+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
+1
posts/test copy 3.md
+1
posts/test copy.md
+1
posts/test copy.md
+2
posts/test.md
+2
posts/test.md
+7
src/assets/balloon-glint.svg
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+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
+2
-1
tsconfig.json
+4
worker-configuration.d.ts
+4
worker-configuration.d.ts
+86
wrangler.toml
+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>"