From 9e7abbe6360d40754dcfa19ef61a0265074078b4 Mon Sep 17 00:00:00 2001 From: mvm Date: Wed, 5 Aug 2026 16:24:58 -0500 Subject: [PATCH 1/5] chore: use @astrojs/cloudflare image service & rolldown 1.2.3 override --- astro.config.ts | 5 +- package.json | 1 + pnpm-lock.yaml | 297 ++++++++++++++++++++++++++++++++------------ pnpm-workspace.yaml | 6 + 4 files changed, 228 insertions(+), 81 deletions(-) diff --git a/astro.config.ts b/astro.config.ts index 5904c9ebbeb..1d77b14621a 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -277,10 +277,7 @@ export default defineConfig({ markdown, image: { service: { - entrypoint: "astro/assets/services/sharp", - config: { - limitInputPixels: false, - }, + entrypoint: "@astrojs/cloudflare/image-service", }, }, server: { diff --git a/package.json b/package.json index 351088908aa..43adc0a0881 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@actions/github": "9.1.1", "@apidevtools/swagger-parser": "12.1.0", "@astrojs/check": "0.9.10", + "@astrojs/cloudflare": "14.1.7", "@astrojs/markdown-remark": "7.2.1", "@astrojs/mdx": "^7.0.4", "@astrojs/react": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eba545b6183..208436692ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + rolldown: 1.2.3 + importers: .: @@ -20,6 +23,9 @@ importers: '@astrojs/check': specifier: 0.9.10 version: 0.9.10(prettier-plugin-astro@0.14.1)(prettier@3.9.6)(typescript@5.9.3) + '@astrojs/cloudflare': + specifier: 14.1.7 + version: 14.1.7(@types/node@26.1.2)(astro@7.1.4(@astrojs/markdown-remark@7.2.1(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@26.1.2)(jiti@2.7.0)(rollup@4.62.2)(tsx@4.23.1)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1))(yaml@2.9.0) '@astrojs/markdown-remark': specifier: 7.2.1 version: 7.2.1(supports-color@10.2.2) @@ -375,6 +381,12 @@ packages: peerDependencies: typescript: ^5.0.0 || ^6.0.0 + '@astrojs/cloudflare@14.1.7': + resolution: {integrity: sha512-o8fRJLeGfVW36AQ50JNcdUxfeUszWPXYGu8NA5PiC/wg2YetX04MdqEAda8Tp3rViYYpCJLoCOduIw0/enNtag==} + peerDependencies: + astro: ^7.0.0 + wrangler: ^4.83.0 + '@astrojs/compiler-binding-darwin-arm64@0.3.1': resolution: {integrity: sha512-IEmEF2fUIlTHtpeE/isyEGVOB14cEyh/LZOFYt6wn3jNyVpdC8aR5OZ+RzFUR/f+8ZDM1LaMwZKvoA7eMyJeFw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -449,6 +461,9 @@ packages: '@astrojs/internal-helpers@0.10.1': resolution: {integrity: sha512-5phcroT/vmOOrYuuAxtkbPixy5hePtlz9i8K4OeDv3dNK6/UQRuXPOSRTxIOBbUY5Sonw2UaxjbuVc43Mcir6Q==} + '@astrojs/internal-helpers@0.10.2': + resolution: {integrity: sha512-yt7fMgPYqSM4Tmr+taTW6Per+hjJ8Pk6lA1PAcDyqzOt8HzJ6Kje5WzCxA2Sd+9wsUW7uhkLeoTMK0cXPwH9rQ==} + '@astrojs/language-server@2.16.13': resolution: {integrity: sha512-ekOa+CYprEq5n4EJC1qTIAhLk49HZIUQuFwrEuF+3JK/pdMaYnWoREFUI2A0KEPOJiFA2kamBzKzbYljDvUxLg==} hasBin: true @@ -500,6 +515,9 @@ packages: resolution: {integrity: sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@astrojs/underscore-redirects@1.0.3': + resolution: {integrity: sha512-cxnGSw+sJigBLdX4TMSZKkzV6C3gMLJMucDk2W+n281Xhie68T2/9f1+1NMNDCZsc5i0FED7Qt5I10g2O9wtZg==} + '@astrojs/yaml2ts@0.2.4': resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==} @@ -721,6 +739,13 @@ packages: workerd: optional: true + '@cloudflare/vite-plugin@1.50.0': + resolution: {integrity: sha512-zIhZim7Kr7OC22rlOkU81BLj0oRlUOqPRX+E6RU3hyRYg4xU1MbA3yiMIwFONr+jc/uV7Fxs20NlXrB89Fqjqg==} + hasBin: true + peerDependencies: + vite: ^6.1.0 || ^7.0.0 || ^8.0.0 + wrangler: ^4.118.0 + '@cloudflare/vitest-pool-workers@0.18.8': resolution: {integrity: sha512-O1kOMZqapidlezNFiBZ7Lbd+8mMEpkGmWwPj+nPLvOngxSL11lmWq7xl7vxyjDxbeD/7l22KqgvRGM7XFaYd9w==} peerDependencies: @@ -734,30 +759,60 @@ packages: cpu: [x64] os: [darwin] + '@cloudflare/workerd-darwin-64@1.20260730.1': + resolution: {integrity: sha512-+MBHmPaiTe2KajryW0T24rZvWFxb41hD3d8anNzQqHzft6vSEb18+sp0znSwxgij7ApPhSM1+vhkNg4f3YMguA==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20260722.1': resolution: {integrity: sha512-EmIQymihDq6WNdER4+LF8Qn80yqayBUpJ+tkOO7wmY8pmgfyXjIUFNXotl21AHovTeu2seR7HdVUgeN/BilCWw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20260730.1': + resolution: {integrity: sha512-SBHKntPkKvNPgaCrTe99xC1CAl8ygJDzlYfK0LbuJ1muKadIw35WnhO0wu894fKBtllsVQdNzDLee+cm0ppLSQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + '@cloudflare/workerd-linux-64@1.20260722.1': resolution: {integrity: sha512-jvZ3k9fxcnEn04s80CgIYxQfpOyAiz/8qC42DP8EBa9tR27qWyg9wmm31zIobVlrgBZn/+8NfdP73avRGcQOjQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] + '@cloudflare/workerd-linux-64@1.20260730.1': + resolution: {integrity: sha512-ouyPOSMbiKPeSwUJUvxtMcxGAXs2J4aPE4T5ABIYX5ClcQx5j5bbHTmnqOQEY8sAuLTPjH7dY+iB6UI5ISlwwA==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + '@cloudflare/workerd-linux-arm64@1.20260722.1': resolution: {integrity: sha512-BOSB55SMNdy+DA5uj2WirgiNanpHGis5PVvXH1wSfvjRKr4JGgWK+EZzxz0RFUo6QjjQQC/NimEzNZ7va7jmKg==} engines: {node: '>=16'} cpu: [arm64] os: [linux] + '@cloudflare/workerd-linux-arm64@1.20260730.1': + resolution: {integrity: sha512-YQ+Mi78U3TPdgBPtwq+Sm6rJU+Ihl2y0pjYtuuKkdmUbYzL7oLR6Xqq9wljhasnuCFICssDJaqhMep5WizYoEQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + '@cloudflare/workerd-windows-64@1.20260722.1': resolution: {integrity: sha512-sYM8YgUpKnRz2xjvdJLX1Ojzoi4MlA4gk8WTTExhGydjYB2UTs5NIbv0ZmpKgMoK9io3ixgmiW56ZnTbcWOdiA==} engines: {node: '>=16'} cpu: [x64] os: [win32] + '@cloudflare/workerd-windows-64@1.20260730.1': + resolution: {integrity: sha512-27fAN+vUECW1oYVc1KOcHYpkL8COM2Uxtxql7TL595kxbjoqS5yckw7NLz7bTf2pALFCZWjqXDjZGJ/xbG4ZKQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + '@cloudflare/workers-types@5.20260727.1': resolution: {integrity: sha512-b/wT+LMZz0oELzxibww0ujFz5BD8NRz9WJ+xd+JNZJUMXgh8IHjpibKdGDvtkbotmihWUknP5tBPUU8KluLxxA==} @@ -1587,8 +1642,8 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-project/types@0.139.0': - resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + '@oxc-project/types@0.143.0': + resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==} '@phosphor-icons/core@2.1.1': resolution: {integrity: sha512-v4ARvrip4qBCImOE5rmPUylOEK4iiED9ZyKjcvzuezqMaiRASCHKcRIuvvxL/twvLpkfnEODCOJp5dM4eZilxQ==} @@ -1609,97 +1664,92 @@ packages: '@poppinss/exception@1.2.3': resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@rolldown/binding-android-arm64@1.1.5': - resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + '@rolldown/binding-android-arm64@1.2.3': + resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.5': - resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + '@rolldown/binding-darwin-arm64@1.2.3': + resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.5': - resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + '@rolldown/binding-darwin-x64@1.2.3': + resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.5': - resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + '@rolldown/binding-freebsd-x64@1.2.3': + resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': - resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.3': + resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.5': - resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + '@rolldown/binding-linux-arm64-gnu@1.2.3': + resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.5': - resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + '@rolldown/binding-linux-arm64-musl@1.2.3': + resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + '@rolldown/binding-linux-ppc64-gnu@1.2.3': + resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.5': - resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + '@rolldown/binding-linux-s390x-gnu@1.2.3': + resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.5': - resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + '@rolldown/binding-linux-x64-gnu@1.2.3': + resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.1.5': - resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + '@rolldown/binding-linux-x64-musl@1.2.3': + resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.1.5': - resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + '@rolldown/binding-openharmony-arm64@1.2.3': + resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.5': - resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.1.5': - resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + '@rolldown/binding-win32-arm64-msvc@1.2.3': + resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.5': - resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} + '@rolldown/binding-win32-x64-msvc@1.2.3': + resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4330,6 +4380,10 @@ packages: engines: {node: '>=22.0.0'} hasBin: true + miniflare@5.20260730.0-alpha: + resolution: {integrity: sha512-8/dspSXDshP6nSkCpjKO7BYc2qZoYSXm7iM+QxY7qJyJpAB3onnQSaiu0cvKJlfuMGwULl55hG69FJCcCMXU1Q==} + engines: {node: '>=22.0.0'} + minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -4923,8 +4977,8 @@ packages: robust-predicates@3.0.3: resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} - rolldown@1.1.5: - resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + rolldown@1.2.3: + resolution: {integrity: sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5776,6 +5830,11 @@ packages: engines: {node: '>=16'} hasBin: true + workerd@1.20260730.1: + resolution: {integrity: sha512-zmfNIjwYSWFY5chGBOjWtH3xAE7p97FTC6vR4Ep98290ho6AeAR/NVcBD274YCLEUYzqm8yxdtZlxMybU8a3jA==} + engines: {node: '>=16'} + hasBin: true + wrangler@4.114.0: resolution: {integrity: sha512-M65P25t5UHA1TIJfgZXDcj+YzVobgKdRguM2QPz0xnxLFuOcuE3ErgllDht0iaho7MS4o0g/Bb4YK2+GT+bibg==} engines: {node: '>=22.0.0'} @@ -5957,6 +6016,31 @@ snapshots: - prettier - prettier-plugin-astro + '@astrojs/cloudflare@14.1.7(@types/node@26.1.2)(astro@7.1.4(@astrojs/markdown-remark@7.2.1(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@26.1.2)(jiti@2.7.0)(rollup@4.62.2)(tsx@4.23.1)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1))(yaml@2.9.0)': + dependencies: + '@astrojs/internal-helpers': 0.10.2 + '@astrojs/underscore-redirects': 1.0.3 + '@cloudflare/vite-plugin': 1.50.0(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1)) + astro: 7.1.4(@astrojs/markdown-remark@7.2.1(supports-color@10.2.2))(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(@types/node@26.1.2)(jiti@2.7.0)(rollup@4.62.2)(tsx@4.23.1)(yaml@2.9.0) + piccolore: 0.1.3 + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0) + wrangler: 4.114.0(@cloudflare/workers-types@5.20260727.1) + transitivePeerDependencies: + - '@types/node' + - '@vitejs/devtools' + - bufferutil + - esbuild + - jiti + - less + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - utf-8-validate + - yaml + '@astrojs/compiler-binding-darwin-arm64@0.3.1': optional: true @@ -6026,6 +6110,17 @@ snapshots: smol-toml: 1.7.1 unified: 11.0.5 + '@astrojs/internal-helpers@0.10.2': + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + js-yaml: 4.3.0 + picomatch: 4.0.5 + retext-smartypants: 6.2.0 + shiki: 4.3.1 + smol-toml: 1.7.1 + unified: 11.0.5 + '@astrojs/language-server@2.16.13(prettier-plugin-astro@0.14.1)(prettier@3.9.6)(typescript@5.9.3)': dependencies: '@astrojs/compiler': 2.13.1 @@ -6153,6 +6248,8 @@ snapshots: is-docker: 4.0.0 package-manager-detector: 1.8.0 + '@astrojs/underscore-redirects@1.0.3': {} + '@astrojs/yaml2ts@0.2.4': dependencies: yaml: 2.9.0 @@ -6402,6 +6499,25 @@ snapshots: optionalDependencies: workerd: 1.20260722.1 + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260730.1)': + dependencies: + unenv: 2.0.0-rc.24 + optionalDependencies: + workerd: 1.20260730.1 + + '@cloudflare/vite-plugin@1.50.0(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1))': + dependencies: + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260730.1) + miniflare: 5.20260730.0-alpha + unenv: 2.0.0-rc.24 + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0) + workerd: 1.20260730.1 + wrangler: 4.114.0(@cloudflare/workers-types@5.20260727.1) + ws: 8.21.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@cloudflare/vitest-pool-workers@0.18.8(@cloudflare/workers-types@5.20260727.1)(@vitest/runner@4.1.10)(@vitest/snapshot@4.1.10)(vitest@4.1.10(@types/node@26.1.2)(happy-dom@20.11.1)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: '@vitest/runner': 4.1.10 @@ -6420,18 +6536,33 @@ snapshots: '@cloudflare/workerd-darwin-64@1.20260722.1': optional: true + '@cloudflare/workerd-darwin-64@1.20260730.1': + optional: true + '@cloudflare/workerd-darwin-arm64@1.20260722.1': optional: true + '@cloudflare/workerd-darwin-arm64@1.20260730.1': + optional: true + '@cloudflare/workerd-linux-64@1.20260722.1': optional: true + '@cloudflare/workerd-linux-64@1.20260730.1': + optional: true + '@cloudflare/workerd-linux-arm64@1.20260722.1': optional: true + '@cloudflare/workerd-linux-arm64@1.20260730.1': + optional: true + '@cloudflare/workerd-windows-64@1.20260722.1': optional: true + '@cloudflare/workerd-windows-64@1.20260730.1': + optional: true + '@cloudflare/workers-types@5.20260727.1': {} '@cspotcode/source-map-support@0.8.1': @@ -7193,7 +7324,7 @@ snapshots: '@oslojs/encoding@1.1.0': {} - '@oxc-project/types@0.139.0': {} + '@oxc-project/types@0.143.0': {} '@phosphor-icons/core@2.1.1': {} @@ -7213,53 +7344,46 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@rolldown/binding-android-arm64@1.1.5': + '@rolldown/binding-android-arm64@1.2.3': optional: true - '@rolldown/binding-darwin-arm64@1.1.5': + '@rolldown/binding-darwin-arm64@1.2.3': optional: true - '@rolldown/binding-darwin-x64@1.1.5': + '@rolldown/binding-darwin-x64@1.2.3': optional: true - '@rolldown/binding-freebsd-x64@1.1.5': + '@rolldown/binding-freebsd-x64@1.2.3': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + '@rolldown/binding-linux-arm-gnueabihf@1.2.3': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.5': + '@rolldown/binding-linux-arm64-gnu@1.2.3': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.5': + '@rolldown/binding-linux-arm64-musl@1.2.3': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.5': + '@rolldown/binding-linux-ppc64-gnu@1.2.3': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.5': + '@rolldown/binding-linux-s390x-gnu@1.2.3': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.5': + '@rolldown/binding-linux-x64-gnu@1.2.3': optional: true - '@rolldown/binding-linux-x64-musl@1.1.5': + '@rolldown/binding-linux-x64-musl@1.2.3': optional: true - '@rolldown/binding-openharmony-arm64@1.1.5': + '@rolldown/binding-openharmony-arm64@1.2.3': optional: true - '@rolldown/binding-wasm32-wasi@1.1.5': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@rolldown/binding-win32-arm64-msvc@1.2.3': optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.5': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.1.5': + '@rolldown/binding-win32-x64-msvc@1.2.3': optional: true '@rolldown/pluginutils@1.0.0-rc.3': {} @@ -10526,6 +10650,18 @@ snapshots: - bufferutil - utf-8-validate + miniflare@5.20260730.0-alpha: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + sharp: 0.35.2 + undici: 7.28.0 + workerd: 1.20260730.1 + ws: 8.21.0 + youch: 4.1.0-beta.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + minimatch@10.2.5: dependencies: brace-expansion: 5.0.8 @@ -11244,26 +11380,25 @@ snapshots: robust-predicates@3.0.3: {} - rolldown@1.1.5: + rolldown@1.2.3: dependencies: - '@oxc-project/types': 0.139.0 + '@oxc-project/types': 0.143.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.5 - '@rolldown/binding-darwin-arm64': 1.1.5 - '@rolldown/binding-darwin-x64': 1.1.5 - '@rolldown/binding-freebsd-x64': 1.1.5 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 - '@rolldown/binding-linux-arm64-gnu': 1.1.5 - '@rolldown/binding-linux-arm64-musl': 1.1.5 - '@rolldown/binding-linux-ppc64-gnu': 1.1.5 - '@rolldown/binding-linux-s390x-gnu': 1.1.5 - '@rolldown/binding-linux-x64-gnu': 1.1.5 - '@rolldown/binding-linux-x64-musl': 1.1.5 - '@rolldown/binding-openharmony-arm64': 1.1.5 - '@rolldown/binding-wasm32-wasi': 1.1.5 - '@rolldown/binding-win32-arm64-msvc': 1.1.5 - '@rolldown/binding-win32-x64-msvc': 1.1.5 + '@rolldown/binding-android-arm64': 1.2.3 + '@rolldown/binding-darwin-arm64': 1.2.3 + '@rolldown/binding-darwin-x64': 1.2.3 + '@rolldown/binding-freebsd-x64': 1.2.3 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.3 + '@rolldown/binding-linux-arm64-gnu': 1.2.3 + '@rolldown/binding-linux-arm64-musl': 1.2.3 + '@rolldown/binding-linux-ppc64-gnu': 1.2.3 + '@rolldown/binding-linux-s390x-gnu': 1.2.3 + '@rolldown/binding-linux-x64-gnu': 1.2.3 + '@rolldown/binding-linux-x64-musl': 1.2.3 + '@rolldown/binding-openharmony-arm64': 1.2.3 + '@rolldown/binding-win32-arm64-msvc': 1.2.3 + '@rolldown/binding-win32-x64-msvc': 1.2.3 rollup@4.62.2: dependencies: @@ -11974,7 +12109,7 @@ snapshots: lightningcss: 1.32.0 picomatch: 4.0.5 postcss: 8.5.21 - rolldown: 1.1.5 + rolldown: 1.2.3 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.1.2 @@ -12194,6 +12329,14 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260722.1 '@cloudflare/workerd-windows-64': 1.20260722.1 + workerd@1.20260730.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20260730.1 + '@cloudflare/workerd-darwin-arm64': 1.20260730.1 + '@cloudflare/workerd-linux-64': 1.20260730.1 + '@cloudflare/workerd-linux-arm64': 1.20260730.1 + '@cloudflare/workerd-windows-64': 1.20260730.1 + wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 69e334eda09..55279b9c420 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -13,6 +13,12 @@ minimumReleaseAgeExclude: - miniflare - workerd - "@cloudflare/workers-types" + # Rolldown 1.2.3 contains the native memory fix tested by this branch. + - rolldown@1.2.3 + - "@rolldown/*" + +overrides: + rolldown: 1.2.3 # On Astro 7 the @astrojs/mdx → @astrojs/markdown-satteri peer is satisfied # natively (nimbus-docs pulls markdown-satteri 0.3.4, @astrojs/mdx@7 peers From 64e06ac5fee40a211cdf035ff28f9a68ee882628 Mon Sep 17 00:00:00 2001 From: mvm Date: Wed, 5 Aug 2026 17:56:05 -0500 Subject: [PATCH 2/5] chore: set run_worker_first to false to fix image resizing subrequests --- wrangler.jsonc | 2 +- wrangler.preview.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wrangler.jsonc b/wrangler.jsonc index 527c54fc827..13d58761d0b 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -17,7 +17,7 @@ "directory": "./dist", "binding": "ASSETS", "not_found_handling": "404-page", - "run_worker_first": true, + "run_worker_first": false, }, "r2_buckets": [{ "binding": "MIDDLECACHE", "bucket_name": "middlecache" }], "observability": { diff --git a/wrangler.preview.json b/wrangler.preview.json index 6147ae3d44e..247bda773c4 100644 --- a/wrangler.preview.json +++ b/wrangler.preview.json @@ -12,7 +12,7 @@ "directory": "./dist", "binding": "ASSETS", "not_found_handling": "404-page", - "run_worker_first": true + "run_worker_first": false }, "previews": { "r2_buckets": [{ "binding": "MIDDLECACHE", "bucket_name": "middlecache" }] From 8f570c6b0a2f150b1c0bd0e177dc1a5d1e80826b Mon Sep 17 00:00:00 2001 From: mvm Date: Wed, 5 Aug 2026 19:52:16 -0500 Subject: [PATCH 3/5] fix: pass image-resizing subrequests directly to ASSETS to fix /cdn-cgi/image/ 307s --- worker/index.preview.ts | 7 +++++++ worker/index.ts | 7 +++++++ wrangler.jsonc | 2 +- wrangler.preview.json | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/worker/index.preview.ts b/worker/index.preview.ts index 43818fdde71..dd1988c073a 100644 --- a/worker/index.preview.ts +++ b/worker/index.preview.ts @@ -137,6 +137,13 @@ export default class extends WorkerEntrypoint { } private async handleRequest(request: Request): Promise { + // Let Image Resizing subrequests pass directly to ASSETS to avoid + // request loops — without this, the Worker intercepts the subrequest + // Image Resizing makes to fetch the source image. + if (/image-resizing/.test(request.headers.get("via") ?? "")) { + return this.env.ASSETS.fetch(request); + } + const url = new URL(request.url); const { pathname } = url; diff --git a/worker/index.ts b/worker/index.ts index 3eb1295710f..aa34b495bd9 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -81,6 +81,13 @@ function rewriteRedirectForMarkdown( export default class extends WorkerEntrypoint { override async fetch(request: Request) { + // Let Image Resizing subrequests pass directly to ASSETS to avoid + // request loops — without this, the Worker intercepts the subrequest + // Image Resizing makes to fetch the source image. + if (/image-resizing/.test(request.headers.get("via") ?? "")) { + return this.env.ASSETS.fetch(request); + } + const url = new URL(request.url); const { pathname } = url; diff --git a/wrangler.jsonc b/wrangler.jsonc index 13d58761d0b..527c54fc827 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -17,7 +17,7 @@ "directory": "./dist", "binding": "ASSETS", "not_found_handling": "404-page", - "run_worker_first": false, + "run_worker_first": true, }, "r2_buckets": [{ "binding": "MIDDLECACHE", "bucket_name": "middlecache" }], "observability": { diff --git a/wrangler.preview.json b/wrangler.preview.json index 247bda773c4..6147ae3d44e 100644 --- a/wrangler.preview.json +++ b/wrangler.preview.json @@ -12,7 +12,7 @@ "directory": "./dist", "binding": "ASSETS", "not_found_handling": "404-page", - "run_worker_first": false + "run_worker_first": true }, "previews": { "r2_buckets": [{ "binding": "MIDDLECACHE", "bucket_name": "middlecache" }] From d7426ae91eade3fa8531213d868f95b741380d21 Mon Sep 17 00:00:00 2001 From: mvm Date: Wed, 5 Aug 2026 19:56:41 -0500 Subject: [PATCH 4/5] chore: annotate rolldown override, update exclude comment --- pnpm-workspace.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 55279b9c420..7ac97c26de4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -13,12 +13,12 @@ minimumReleaseAgeExclude: - miniflare - workerd - "@cloudflare/workers-types" - # Rolldown 1.2.3 contains the native memory fix tested by this branch. + # Exempt rolldown 1.2.3 from the 24h wait — required by the overrides below. - rolldown@1.2.3 - "@rolldown/*" overrides: - rolldown: 1.2.3 + rolldown: 1.2.3 # memory fix; remove once Astro bumps rolldown # On Astro 7 the @astrojs/mdx → @astrojs/markdown-satteri peer is satisfied # natively (nimbus-docs pulls markdown-satteri 0.3.4, @astrojs/mdx@7 peers From 0956a9391ba597c9ae396a0c2dc30b8ea0e37725 Mon Sep 17 00:00:00 2001 From: mvm Date: Thu, 6 Aug 2026 08:41:12 -0500 Subject: [PATCH 5/5] fix: scope image-resizing bypass to /_astro/, remove rolldown minimumReleaseAgeExclude --- pnpm-workspace.yaml | 4 ---- worker/index.preview.ts | 17 ++++++++++------- worker/index.ts | 17 ++++++++++------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7ac97c26de4..29aa7a03563 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -13,10 +13,6 @@ minimumReleaseAgeExclude: - miniflare - workerd - "@cloudflare/workers-types" - # Exempt rolldown 1.2.3 from the 24h wait — required by the overrides below. - - rolldown@1.2.3 - - "@rolldown/*" - overrides: rolldown: 1.2.3 # memory fix; remove once Astro bumps rolldown diff --git a/worker/index.preview.ts b/worker/index.preview.ts index dd1988c073a..db901e53877 100644 --- a/worker/index.preview.ts +++ b/worker/index.preview.ts @@ -137,16 +137,19 @@ export default class extends WorkerEntrypoint { } private async handleRequest(request: Request): Promise { - // Let Image Resizing subrequests pass directly to ASSETS to avoid - // request loops — without this, the Worker intercepts the subrequest - // Image Resizing makes to fetch the source image. - if (/image-resizing/.test(request.headers.get("via") ?? "")) { - return this.env.ASSETS.fetch(request); - } - const url = new URL(request.url); const { pathname } = url; + // Image Resizing makes a subrequest to fetch the source image. Scope the + // bypass to /_astro/ so only asset paths skip the Worker, not arbitrary + // client requests with a spoofed Via header. + if ( + pathname.startsWith("/_astro/") && + /image-resizing/.test(request.headers.get("via") ?? "") + ) { + return this.env.ASSETS.fetch(request); + } + // Preview-only robots.txt — disallows all crawling and AI content signals if (pathname === "/robots.txt") { return new Response(PREVIEW_ROBOTS_TXT, { diff --git a/worker/index.ts b/worker/index.ts index aa34b495bd9..03ea1a63c07 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -81,16 +81,19 @@ function rewriteRedirectForMarkdown( export default class extends WorkerEntrypoint { override async fetch(request: Request) { - // Let Image Resizing subrequests pass directly to ASSETS to avoid - // request loops — without this, the Worker intercepts the subrequest - // Image Resizing makes to fetch the source image. - if (/image-resizing/.test(request.headers.get("via") ?? "")) { - return this.env.ASSETS.fetch(request); - } - const url = new URL(request.url); const { pathname } = url; + // Image Resizing makes a subrequest to fetch the source image. Scope the + // bypass to /_astro/ so only asset paths skip the Worker, not arbitrary + // client requests with a spoofed Via header. + if ( + pathname.startsWith("/_astro/") && + /image-resizing/.test(request.headers.get("via") ?? "") + ) { + return this.env.ASSETS.fetch(request); + } + if (pathname === "/.well-known/api-catalog") { return new Response(API_CATALOG, { headers: {