my website at ewancroft.uk
6
fork

Configure Feed

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

fix: resolve content overflow issues and update dependencies

- Add min-w-0 utility classes to prose containers to fix overflow in grid/flex layouts
- Update .prose CSS to use max-width: 100% and min-width: 0 instead of max-w-none
- Add overflow constraints to prose children (img, pre, code, blockquote, table)
- Remove unused afterUpdate import from PostContent.svelte
- Simplify layout logic by removing lg:mx-[10vw] constraints
- Update @sveltejs/adapter-vercel to 5.10.3
- Add @sveltejs/adapter-auto 6.1.1
- Remove unused font preload from app.html
- Remove unused OG image generation code from dynamicImports.ts

This ensures blog post content properly respects the 1000px container width
while maintaining responsive behavior and proper overflow handling for
code blocks and other wide elements.

+184 -202
+160 -148
package-lock.json
··· 27 27 "unified": "^11.0.5" 28 28 }, 29 29 "devDependencies": { 30 - "@sveltejs/adapter-vercel": "^5.7.0", 30 + "@sveltejs/adapter-auto": "^6.1.1", 31 + "@sveltejs/adapter-vercel": "^5.10.3", 31 32 "@sveltejs/kit": "^2.24.0", 32 33 "@sveltejs/vite-plugin-svelte": "^4.0.4", 33 34 "@tailwindcss/forms": "^0.5.9", ··· 365 366 } 366 367 }, 367 368 "node_modules/@esbuild/netbsd-arm64": { 368 - "version": "0.24.2", 369 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", 370 - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", 369 + "version": "0.25.10", 370 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", 371 + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", 371 372 "cpu": [ 372 373 "arm64" 373 374 ], ··· 399 400 } 400 401 }, 401 402 "node_modules/@esbuild/openbsd-arm64": { 402 - "version": "0.24.2", 403 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", 404 - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", 403 + "version": "0.25.10", 404 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", 405 + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", 405 406 "cpu": [ 406 407 "arm64" 407 408 ], ··· 432 433 "node": ">=12" 433 434 } 434 435 }, 436 + "node_modules/@esbuild/openharmony-arm64": { 437 + "version": "0.25.10", 438 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", 439 + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", 440 + "cpu": [ 441 + "arm64" 442 + ], 443 + "dev": true, 444 + "license": "MIT", 445 + "optional": true, 446 + "os": [ 447 + "openharmony" 448 + ], 449 + "engines": { 450 + "node": ">=18" 451 + } 452 + }, 435 453 "node_modules/@esbuild/sunos-x64": { 436 454 "version": "0.21.5", 437 455 "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", ··· 866 884 "license": "MIT" 867 885 }, 868 886 "node_modules/@rollup/pluginutils": { 869 - "version": "5.1.3", 870 - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", 871 - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", 887 + "version": "5.3.0", 888 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", 889 + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", 872 890 "dev": true, 873 891 "license": "MIT", 874 892 "dependencies": { ··· 1162 1180 "acorn": "^8.9.0" 1163 1181 } 1164 1182 }, 1183 + "node_modules/@sveltejs/adapter-auto": { 1184 + "version": "6.1.1", 1185 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-6.1.1.tgz", 1186 + "integrity": "sha512-cBNt4jgH4KuaNO5gRSB2CZKkGtz+OCZ8lPjRQGjhvVUD4akotnj2weUia6imLl2v07K3IgsQRyM36909miSwoQ==", 1187 + "dev": true, 1188 + "license": "MIT", 1189 + "peerDependencies": { 1190 + "@sveltejs/kit": "^2.0.0" 1191 + } 1192 + }, 1165 1193 "node_modules/@sveltejs/adapter-vercel": { 1166 - "version": "5.7.0", 1167 - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-vercel/-/adapter-vercel-5.7.0.tgz", 1168 - "integrity": "sha512-Bd/loKugyr12I576NaktLzIHa0PinS638wuWgVq4ctPg/qmkeU459jurWjs3NiRN/pbBpXOlk8i8HXgQF+dsUg==", 1194 + "version": "5.10.3", 1195 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-vercel/-/adapter-vercel-5.10.3.tgz", 1196 + "integrity": "sha512-fW2ZhMiOrUKsJJhiB4ift9sYDSFWgvH3N22cjf8ukOyWgHolb9SmSS3owr+nHQNlgTEAdy4eIr4Fnasw3nkxTw==", 1169 1197 "dev": true, 1170 1198 "license": "MIT", 1171 1199 "dependencies": { 1172 - "@vercel/nft": "^0.29.2", 1173 - "esbuild": "^0.24.0" 1200 + "@vercel/nft": "^0.30.0", 1201 + "esbuild": "^0.25.4" 1174 1202 }, 1175 1203 "peerDependencies": { 1176 1204 "@sveltejs/kit": "^2.4.0" 1177 1205 } 1178 1206 }, 1179 1207 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/aix-ppc64": { 1180 - "version": "0.24.2", 1181 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", 1182 - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", 1208 + "version": "0.25.10", 1209 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", 1210 + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", 1183 1211 "cpu": [ 1184 1212 "ppc64" 1185 1213 ], ··· 1194 1222 } 1195 1223 }, 1196 1224 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/android-arm": { 1197 - "version": "0.24.2", 1198 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", 1199 - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", 1225 + "version": "0.25.10", 1226 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", 1227 + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", 1200 1228 "cpu": [ 1201 1229 "arm" 1202 1230 ], ··· 1211 1239 } 1212 1240 }, 1213 1241 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/android-arm64": { 1214 - "version": "0.24.2", 1215 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", 1216 - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", 1242 + "version": "0.25.10", 1243 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", 1244 + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", 1217 1245 "cpu": [ 1218 1246 "arm64" 1219 1247 ], ··· 1228 1256 } 1229 1257 }, 1230 1258 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/android-x64": { 1231 - "version": "0.24.2", 1232 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", 1233 - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", 1259 + "version": "0.25.10", 1260 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", 1261 + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", 1234 1262 "cpu": [ 1235 1263 "x64" 1236 1264 ], ··· 1245 1273 } 1246 1274 }, 1247 1275 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/darwin-arm64": { 1248 - "version": "0.24.2", 1249 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", 1250 - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", 1276 + "version": "0.25.10", 1277 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", 1278 + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", 1251 1279 "cpu": [ 1252 1280 "arm64" 1253 1281 ], ··· 1262 1290 } 1263 1291 }, 1264 1292 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/darwin-x64": { 1265 - "version": "0.24.2", 1266 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", 1267 - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", 1293 + "version": "0.25.10", 1294 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", 1295 + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", 1268 1296 "cpu": [ 1269 1297 "x64" 1270 1298 ], ··· 1279 1307 } 1280 1308 }, 1281 1309 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/freebsd-arm64": { 1282 - "version": "0.24.2", 1283 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", 1284 - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", 1310 + "version": "0.25.10", 1311 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", 1312 + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", 1285 1313 "cpu": [ 1286 1314 "arm64" 1287 1315 ], ··· 1296 1324 } 1297 1325 }, 1298 1326 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/freebsd-x64": { 1299 - "version": "0.24.2", 1300 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", 1301 - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", 1327 + "version": "0.25.10", 1328 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", 1329 + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", 1302 1330 "cpu": [ 1303 1331 "x64" 1304 1332 ], ··· 1313 1341 } 1314 1342 }, 1315 1343 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-arm": { 1316 - "version": "0.24.2", 1317 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", 1318 - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", 1344 + "version": "0.25.10", 1345 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", 1346 + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", 1319 1347 "cpu": [ 1320 1348 "arm" 1321 1349 ], ··· 1330 1358 } 1331 1359 }, 1332 1360 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-arm64": { 1333 - "version": "0.24.2", 1334 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", 1335 - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", 1361 + "version": "0.25.10", 1362 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", 1363 + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", 1336 1364 "cpu": [ 1337 1365 "arm64" 1338 1366 ], ··· 1347 1375 } 1348 1376 }, 1349 1377 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-ia32": { 1350 - "version": "0.24.2", 1351 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", 1352 - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", 1378 + "version": "0.25.10", 1379 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", 1380 + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", 1353 1381 "cpu": [ 1354 1382 "ia32" 1355 1383 ], ··· 1364 1392 } 1365 1393 }, 1366 1394 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-loong64": { 1367 - "version": "0.24.2", 1368 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", 1369 - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", 1395 + "version": "0.25.10", 1396 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", 1397 + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", 1370 1398 "cpu": [ 1371 1399 "loong64" 1372 1400 ], ··· 1381 1409 } 1382 1410 }, 1383 1411 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-mips64el": { 1384 - "version": "0.24.2", 1385 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", 1386 - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", 1412 + "version": "0.25.10", 1413 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", 1414 + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", 1387 1415 "cpu": [ 1388 1416 "mips64el" 1389 1417 ], ··· 1398 1426 } 1399 1427 }, 1400 1428 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-ppc64": { 1401 - "version": "0.24.2", 1402 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", 1403 - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", 1429 + "version": "0.25.10", 1430 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", 1431 + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", 1404 1432 "cpu": [ 1405 1433 "ppc64" 1406 1434 ], ··· 1415 1443 } 1416 1444 }, 1417 1445 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-riscv64": { 1418 - "version": "0.24.2", 1419 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", 1420 - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", 1446 + "version": "0.25.10", 1447 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", 1448 + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", 1421 1449 "cpu": [ 1422 1450 "riscv64" 1423 1451 ], ··· 1432 1460 } 1433 1461 }, 1434 1462 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-s390x": { 1435 - "version": "0.24.2", 1436 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", 1437 - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", 1463 + "version": "0.25.10", 1464 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", 1465 + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", 1438 1466 "cpu": [ 1439 1467 "s390x" 1440 1468 ], ··· 1449 1477 } 1450 1478 }, 1451 1479 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/linux-x64": { 1452 - "version": "0.24.2", 1453 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", 1454 - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", 1480 + "version": "0.25.10", 1481 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", 1482 + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", 1455 1483 "cpu": [ 1456 1484 "x64" 1457 1485 ], ··· 1466 1494 } 1467 1495 }, 1468 1496 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/netbsd-x64": { 1469 - "version": "0.24.2", 1470 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", 1471 - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", 1497 + "version": "0.25.10", 1498 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", 1499 + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", 1472 1500 "cpu": [ 1473 1501 "x64" 1474 1502 ], ··· 1483 1511 } 1484 1512 }, 1485 1513 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/openbsd-x64": { 1486 - "version": "0.24.2", 1487 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", 1488 - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", 1514 + "version": "0.25.10", 1515 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", 1516 + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", 1489 1517 "cpu": [ 1490 1518 "x64" 1491 1519 ], ··· 1500 1528 } 1501 1529 }, 1502 1530 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/sunos-x64": { 1503 - "version": "0.24.2", 1504 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", 1505 - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", 1531 + "version": "0.25.10", 1532 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", 1533 + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", 1506 1534 "cpu": [ 1507 1535 "x64" 1508 1536 ], ··· 1517 1545 } 1518 1546 }, 1519 1547 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/win32-arm64": { 1520 - "version": "0.24.2", 1521 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", 1522 - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", 1548 + "version": "0.25.10", 1549 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", 1550 + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", 1523 1551 "cpu": [ 1524 1552 "arm64" 1525 1553 ], ··· 1534 1562 } 1535 1563 }, 1536 1564 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/win32-ia32": { 1537 - "version": "0.24.2", 1538 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", 1539 - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", 1565 + "version": "0.25.10", 1566 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", 1567 + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", 1540 1568 "cpu": [ 1541 1569 "ia32" 1542 1570 ], ··· 1551 1579 } 1552 1580 }, 1553 1581 "node_modules/@sveltejs/adapter-vercel/node_modules/@esbuild/win32-x64": { 1554 - "version": "0.24.2", 1555 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", 1556 - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", 1582 + "version": "0.25.10", 1583 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", 1584 + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", 1557 1585 "cpu": [ 1558 1586 "x64" 1559 1587 ], ··· 1568 1596 } 1569 1597 }, 1570 1598 "node_modules/@sveltejs/adapter-vercel/node_modules/esbuild": { 1571 - "version": "0.24.2", 1572 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", 1573 - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", 1599 + "version": "0.25.10", 1600 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", 1601 + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", 1574 1602 "dev": true, 1575 1603 "hasInstallScript": true, 1576 1604 "license": "MIT", ··· 1581 1609 "node": ">=18" 1582 1610 }, 1583 1611 "optionalDependencies": { 1584 - "@esbuild/aix-ppc64": "0.24.2", 1585 - "@esbuild/android-arm": "0.24.2", 1586 - "@esbuild/android-arm64": "0.24.2", 1587 - "@esbuild/android-x64": "0.24.2", 1588 - "@esbuild/darwin-arm64": "0.24.2", 1589 - "@esbuild/darwin-x64": "0.24.2", 1590 - "@esbuild/freebsd-arm64": "0.24.2", 1591 - "@esbuild/freebsd-x64": "0.24.2", 1592 - "@esbuild/linux-arm": "0.24.2", 1593 - "@esbuild/linux-arm64": "0.24.2", 1594 - "@esbuild/linux-ia32": "0.24.2", 1595 - "@esbuild/linux-loong64": "0.24.2", 1596 - "@esbuild/linux-mips64el": "0.24.2", 1597 - "@esbuild/linux-ppc64": "0.24.2", 1598 - "@esbuild/linux-riscv64": "0.24.2", 1599 - "@esbuild/linux-s390x": "0.24.2", 1600 - "@esbuild/linux-x64": "0.24.2", 1601 - "@esbuild/netbsd-arm64": "0.24.2", 1602 - "@esbuild/netbsd-x64": "0.24.2", 1603 - "@esbuild/openbsd-arm64": "0.24.2", 1604 - "@esbuild/openbsd-x64": "0.24.2", 1605 - "@esbuild/sunos-x64": "0.24.2", 1606 - "@esbuild/win32-arm64": "0.24.2", 1607 - "@esbuild/win32-ia32": "0.24.2", 1608 - "@esbuild/win32-x64": "0.24.2" 1612 + "@esbuild/aix-ppc64": "0.25.10", 1613 + "@esbuild/android-arm": "0.25.10", 1614 + "@esbuild/android-arm64": "0.25.10", 1615 + "@esbuild/android-x64": "0.25.10", 1616 + "@esbuild/darwin-arm64": "0.25.10", 1617 + "@esbuild/darwin-x64": "0.25.10", 1618 + "@esbuild/freebsd-arm64": "0.25.10", 1619 + "@esbuild/freebsd-x64": "0.25.10", 1620 + "@esbuild/linux-arm": "0.25.10", 1621 + "@esbuild/linux-arm64": "0.25.10", 1622 + "@esbuild/linux-ia32": "0.25.10", 1623 + "@esbuild/linux-loong64": "0.25.10", 1624 + "@esbuild/linux-mips64el": "0.25.10", 1625 + "@esbuild/linux-ppc64": "0.25.10", 1626 + "@esbuild/linux-riscv64": "0.25.10", 1627 + "@esbuild/linux-s390x": "0.25.10", 1628 + "@esbuild/linux-x64": "0.25.10", 1629 + "@esbuild/netbsd-arm64": "0.25.10", 1630 + "@esbuild/netbsd-x64": "0.25.10", 1631 + "@esbuild/openbsd-arm64": "0.25.10", 1632 + "@esbuild/openbsd-x64": "0.25.10", 1633 + "@esbuild/openharmony-arm64": "0.25.10", 1634 + "@esbuild/sunos-x64": "0.25.10", 1635 + "@esbuild/win32-arm64": "0.25.10", 1636 + "@esbuild/win32-ia32": "0.25.10", 1637 + "@esbuild/win32-x64": "0.25.10" 1609 1638 } 1610 1639 }, 1611 1640 "node_modules/@sveltejs/kit": { ··· 2071 2100 "license": "ISC" 2072 2101 }, 2073 2102 "node_modules/@vercel/nft": { 2074 - "version": "0.29.2", 2075 - "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.29.2.tgz", 2076 - "integrity": "sha512-A/Si4mrTkQqJ6EXJKv5EYCDQ3NL6nJXxG8VGXePsaiQigsomHYQC9xSpX8qGk7AEZk4b1ssbYIqJ0ISQQ7bfcA==", 2103 + "version": "0.30.2", 2104 + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.30.2.tgz", 2105 + "integrity": "sha512-pquXF3XZFg/T3TBor08rUhIGgOhdSilbn7WQLVP/aVSSO+25Rs4H/m3nxNDQ2x3znX7Z3yYjryN8xaLwypcwQg==", 2077 2106 "dev": true, 2078 2107 "license": "MIT", 2079 2108 "dependencies": { ··· 2108 2137 } 2109 2138 }, 2110 2139 "node_modules/abbrev": { 2111 - "version": "3.0.0", 2112 - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.0.tgz", 2113 - "integrity": "sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==", 2140 + "version": "3.0.1", 2141 + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", 2142 + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", 2114 2143 "dev": true, 2115 2144 "license": "ISC", 2116 2145 "engines": { ··· 2151 2180 } 2152 2181 }, 2153 2182 "node_modules/agent-base": { 2154 - "version": "7.1.3", 2155 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 2156 - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 2183 + "version": "7.1.4", 2184 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", 2185 + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", 2157 2186 "dev": true, 2158 2187 "license": "MIT", 2159 2188 "engines": { ··· 2921 2950 } 2922 2951 }, 2923 2952 "node_modules/detect-libc": { 2924 - "version": "2.0.3", 2925 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 2926 - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 2953 + "version": "2.1.2", 2954 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 2955 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 2927 2956 "dev": true, 2928 2957 "license": "Apache-2.0", 2929 2958 "engines": { ··· 5296 5325 } 5297 5326 }, 5298 5327 "node_modules/minizlib": { 5299 - "version": "3.0.2", 5300 - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", 5301 - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", 5328 + "version": "3.1.0", 5329 + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", 5330 + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", 5302 5331 "dev": true, 5303 5332 "license": "MIT", 5304 5333 "dependencies": { ··· 5308 5337 "node": ">= 18" 5309 5338 } 5310 5339 }, 5311 - "node_modules/mkdirp": { 5312 - "version": "3.0.1", 5313 - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", 5314 - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", 5315 - "dev": true, 5316 - "license": "MIT", 5317 - "bin": { 5318 - "mkdirp": "dist/cjs/src/bin.js" 5319 - }, 5320 - "engines": { 5321 - "node": ">=10" 5322 - }, 5323 - "funding": { 5324 - "url": "https://github.com/sponsors/isaacs" 5325 - } 5326 - }, 5327 5340 "node_modules/mri": { 5328 5341 "version": "1.2.0", 5329 5342 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 7481 7494 } 7482 7495 }, 7483 7496 "node_modules/tar": { 7484 - "version": "7.4.3", 7485 - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", 7486 - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", 7497 + "version": "7.5.1", 7498 + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", 7499 + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", 7487 7500 "dev": true, 7488 7501 "license": "ISC", 7489 7502 "dependencies": { 7490 7503 "@isaacs/fs-minipass": "^4.0.0", 7491 7504 "chownr": "^3.0.0", 7492 7505 "minipass": "^7.1.2", 7493 - "minizlib": "^3.0.1", 7494 - "mkdirp": "^3.0.1", 7506 + "minizlib": "^3.1.0", 7495 7507 "yallist": "^5.0.0" 7496 7508 }, 7497 7509 "engines": {
+2 -1
package.json
··· 11 11 "lint": "eslint ." 12 12 }, 13 13 "devDependencies": { 14 - "@sveltejs/adapter-vercel": "^5.7.0", 14 + "@sveltejs/adapter-auto": "^6.1.1", 15 + "@sveltejs/adapter-vercel": "^5.10.3", 15 16 "@sveltejs/kit": "^2.24.0", 16 17 "@sveltejs/vite-plugin-svelte": "^4.0.4", 17 18 "@tailwindcss/forms": "^0.5.9",
-9
src/app.html
··· 15 15 content="%sveltekit.assets%/favicon/ms-icon-144x144.png" 16 16 /> 17 17 18 - <!-- Preload critical fonts --> 19 - <link 20 - rel="preload" 21 - href="%sveltekit.assets%/fonts/ArrowType-Recursive-1.085/Recursive_Web/woff2_variable/Recursive_VF_1.085.woff2" 22 - as="font" 23 - type="font/woff2" 24 - crossorigin 25 - /> 26 - 27 18 <!-- THEME LOADER - MUST BE FIRST SCRIPT --> 28 19 <script src="%sveltekit.assets%/scripts/themeLoader.js"></script> 29 20
+6 -6
src/lib/components/post/PostContent.svelte
··· 1 1 <script lang="ts"> 2 2 import type { Post } from "$components/shared"; 3 3 import type { TOCNode } from "$lib/components/shared"; 4 - import { onMount, afterUpdate } from "svelte"; 4 + import { onMount } from "svelte"; 5 5 import PostTOC from "./ToCUI.svelte"; 6 6 7 7 export let post: Post; ··· 101 101 <div class="w-full"> 102 102 {#if tocNodes.length > 0} 103 103 <!-- Layout with TOC: Grid with content and sidebar --> 104 - <div class="grid grid-cols-1 lg:grid-cols-[1fr_250px] gap-8"> 104 + <div class="grid grid-cols-1 lg:grid-cols-[1fr_250px] gap-8 min-w-0"> 105 105 <!-- Post Content --> 106 - <article class="prose dark:prose-invert w-full max-w-none"> 106 + <article class="prose dark:prose-invert w-full max-w-none min-w-0"> 107 107 {@html post.content} 108 108 </article> 109 109 ··· 111 111 <PostTOC {tocNodes} {activeId} /> 112 112 </div> 113 113 {:else} 114 - <!-- Layout without TOC: 10vw margins on desktop, centered on mobile --> 115 - <div class="lg:mx-[10vw] mx-auto max-w-4xl lg:max-w-none"> 114 + <!-- Layout without TOC: centered --> 115 + <div class="mx-auto"> 116 116 <article class="prose dark:prose-invert w-full"> 117 117 {@html post.content} 118 118 </article> ··· 124 124 {:else} 125 125 <!-- Loading state --> 126 126 <hr class="my-6 border-[var(--button-bg)]" /> 127 - <div class="lg:mx-[10vw] mx-auto max-w-4xl lg:max-w-none"> 127 + <div class="mx-auto"> 128 128 <article class="prose dark:prose-invert w-full text-center"> 129 129 <div class="flex justify-center items-center min-h-[200px]"> 130 130 <div class="text-center">
+16 -1
src/lib/css/app.css
··· 124 124 125 125 /* Typography styles for blog content */ 126 126 .prose { 127 - @apply max-w-none; 127 + max-width: 100%; 128 + min-width: 0; 129 + overflow-wrap: break-word; 130 + word-wrap: break-word; 128 131 } 129 132 130 133 /* Left-align headings in blog posts with underlines */ ··· 233 236 234 237 .prose img { 235 238 @apply border-0 rounded-lg mx-auto; 239 + max-width: 100%; 240 + height: auto; 236 241 } 237 242 238 243 a { ··· 259 264 @apply border-l-2 pl-4 rounded-none mx-auto; 260 265 border-color: var(--button-bg); 261 266 background-color: var(--card-bg); 267 + max-width: 100%; 262 268 } 263 269 264 270 .prose code { ··· 267 273 @apply rounded px-2 py-1 font-mono text-sm; 268 274 border: 1px solid var(--button-bg); 269 275 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 276 + word-break: break-word; 270 277 } 271 278 272 279 .prose pre { ··· 277 284 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), inset 0 0 0 1px rgba(255, 255, 255, 0.1); 278 285 line-height: 1.6; 279 286 position: relative; 287 + max-width: 100%; 280 288 } 281 289 282 290 .prose pre::before { ··· 294 302 @apply bg-transparent p-0 border-0; 295 303 box-shadow: none; 296 304 font-size: 0.9rem; 305 + word-break: normal; 306 + } 307 + 308 + .prose table { 309 + max-width: 100%; 310 + overflow-x: auto; 311 + display: block; 297 312 } 298 313 299 314 /* Post grid and cards - simplified animations */
-37
src/lib/utils/dynamicImports.ts
··· 122 122 } 123 123 }; 124 124 125 - // Lazy load OG image generation libraries 126 - export const loadOGImageGenerator = async () => { 127 - debug.enter('loadOGImageGenerator'); 128 - const timer = debug.time('loadOGImageGenerator'); 129 - 130 - try { 131 - debug.info('Loading OG image generation libraries...'); 132 - 133 - const [satori] = await Promise.all([ 134 - import('satori').then(module => { 135 - debug.debug('Loaded satori module', { hasDefault: !!module.default }); 136 - return module.default; 137 - }) 138 - ]); 139 - 140 - const result = { satori }; 141 - 142 - debug.info('Successfully loaded OG image generation libraries', { 143 - loadedModules: Object.keys(result) 144 - }); 145 - 146 - timer(); 147 - debug.exit('loadOGImageGenerator', { success: true, moduleCount: Object.keys(result).length }); 148 - return result; 149 - } catch (error) { 150 - debug.errorWithContext('Failed to load OG image generation libraries', error as Error, { 151 - function: 'loadOGImageGenerator' 152 - }); 153 - timer(); 154 - debug.exit('loadOGImageGenerator', { success: false, error: error }); 155 - throw error; 156 - } 157 - }; 158 - 159 125 // Lazy load utility libraries 160 126 export const loadUtilities = async () => { 161 127 debug.enter('loadUtilities'); ··· 202 168 switch (type) { 203 169 case 'markdown': 204 170 result = await loadMarkdownProcessor(); 205 - break; 206 - case 'og': 207 - result = await loadOGImageGenerator(); 208 171 break; 209 172 case 'utilities': 210 173 result = await loadUtilities();