{"_id":"@altano/astro-html-to-image","_rev":"4-72a10536a4c6f46d222fe9cbe969bfd7","name":"@altano/astro-html-to-image","dist-tags":{"latest":"0.0.1-alpha.5"},"versions":{"0.0.1-alpha.1":{"name":"@altano/astro-html-to-image","version":"0.0.1-alpha.1","description":"Render Astro components to images","type":"module","sideEffects":false,"exports":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsup src/index.ts --format esm --dts","dev":"tsup src/index.ts --watch --format esm --dts","lint":"TIMING=1 eslint src/**/*.ts* --fix","format":"prettier --write src","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","test":"vitest --run","test:watch":"vitest"},"author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"publishConfig":{"access":"public"},"dependencies":{"he":"^1.2.0","mime-types":"^2.1.35","satori":"^0.10.3","satori-html":"^0.3.2","sharp":"^0.32.4"},"devDependencies":{"@altano/tsconfig":"workspace:*","@types/he":"^1.2.0","@types/jest-image-snapshot":"^6.2.0","@types/mime-types":"^2.1.1","@vitest/ui":"^0.30.1","jest-image-snapshot":"^6.2.0","tsup":"^6.7.0","vitest":"^0.30.1"},"peerDependencies":{"astro":"2.x"},"gitHead":"435f18db1add32657893278a17ca46a305f9c7b6","bugs":{"url":"https://github.com/altano/npm-packages/issues"},"_id":"@altano/astro-html-to-image@0.0.1-alpha.1","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-XDA51UNUjEE8VVO9JErOTI5TYac/fHWPlz0JuSESAOrNB7mG8UVNM23pPX7wVVs1PUgdjSfWqGb2dsEWiF9XFw==","shasum":"23dcc34be7ec2d60116f72d969d79c5c6a14d45b","tarball":"https://registry.npmjs.org/@altano/astro-html-to-image/-/astro-html-to-image-0.0.1-alpha.1.tgz","fileCount":4,"unpackedSize":13722,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFkPSwe/i0k+5cotFjLBYjlO3KKgQCaYs4vihfRdPvghAiEA/0yiM1u6g1yYLBsvj0jVmdVuQzbh+6rUhC3KYo7erL8="}]},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"directories":{},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/astro-html-to-image_0.0.1-alpha.1_1691921209026_0.6055855013853628"},"_hasShrinkwrap":false},"0.0.1-alpha.2":{"name":"@altano/astro-html-to-image","version":"0.0.1-alpha.2","description":"Render Astro components to images","type":"module","sideEffects":false,"exports":"./dist/index.js","types":"./dist/index.d.ts","author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"publishConfig":{"access":"public"},"dependencies":{"@resvg/resvg-wasm":"^2.4.1","he":"^1.2.0","mime-types":"^2.1.35","satori":"^0.10.3","satori-html":"^0.3.2","sharp":"^0.32.4"},"devDependencies":{"@types/he":"^1.2.0","@types/jest-image-snapshot":"^6.2.0","@types/mime-types":"^2.1.1","@vitest/ui":"^0.30.1","jest-image-snapshot":"^6.2.0","tsup":"^7.2.0","typescript":"^5.1.6","vite":"^4.4.9","vitest":"^0.34.2","@altano/assets":"^0.0.0","@altano/tsconfig":"0.0.0"},"peerDependencies":{"astro":"2.x"},"scripts":{"build":"tsup","build:types":"tsc --emitDeclarationOnly --declaration","dev":"tsup --watch","lint":"eslint src/**/*.ts*","lint:timing":"TIMING=1 eslint src/**/*.ts*","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","format":"prettier --write src","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","test":"vitest --run","test:watch":"vitest"},"bugs":{"url":"https://github.com/altano/npm-packages/issues"},"_id":"@altano/astro-html-to-image@0.0.1-alpha.2","_integrity":"sha512-S8ZFDa++MyKF3lbVTtAKogS/ub/3m47G027Li4JQ+WX5vW/b/x9XZp3NRnUJd/b/SI+bS9gxTIgqiVP5OCk5QA==","_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/b982c4515f4cb7e4d0818a23a9947479/altano-astro-html-to-image-0.0.1-alpha.2.tgz","_from":"file:altano-astro-html-to-image-0.0.1-alpha.2.tgz","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-S8ZFDa++MyKF3lbVTtAKogS/ub/3m47G027Li4JQ+WX5vW/b/x9XZp3NRnUJd/b/SI+bS9gxTIgqiVP5OCk5QA==","shasum":"37187f2a476aefb611cabfb6ea9471d6d440daf7","tarball":"https://registry.npmjs.org/@altano/astro-html-to-image/-/astro-html-to-image-0.0.1-alpha.2.tgz","fileCount":4,"unpackedSize":14214,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnNZiiFntKhEt2zT404YXPQAcq/9Sy4Ry9iHexPze+SAiEAw7SmBUnRkpeciGr8QpEWJ39hOC0rEDcq162xiXC8XnA="}]},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"directories":{},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/astro-html-to-image_0.0.1-alpha.2_1692499935735_0.183821494705537"},"_hasShrinkwrap":false},"0.0.1-alpha.3":{"name":"@altano/astro-html-to-image","version":"0.0.1-alpha.3","description":"Render Astro components to images","type":"module","sideEffects":false,"exports":"./dist/index.js","types":"./dist/index.d.ts","author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"publishConfig":{"access":"public"},"dependencies":{"@resvg/resvg-wasm":"^2.4.1","he":"^1.2.0","mime-types":"^2.1.35","satori":"^0.10.3","satori-html":"^0.3.2","sharp":"^0.32.4"},"devDependencies":{"@types/he":"^1.2.0","@types/jest-image-snapshot":"^6.2.0","@types/mime-types":"^2.1.1","@vitest/ui":"^0.30.1","jest-image-snapshot":"^6.2.0","tsup":"^7.2.0","typescript":"^5.1.6","vite":"^4.4.9","vitest":"^0.34.2","@altano/assets":"^0.0.0","@altano/tsconfig":"0.0.0"},"peerDependencies":{"astro":"2.x"},"scripts":{"build":"tsup","build:types":"tsc --emitDeclarationOnly --declaration","dev":"tsup --watch","lint":"eslint src/**/*.ts*","lint:timing":"TIMING=1 eslint src/**/*.ts*","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","format":"prettier --write src","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","test":"vitest --run","test:watch":"vitest"},"bugs":{"url":"https://github.com/altano/npm-packages/issues"},"_id":"@altano/astro-html-to-image@0.0.1-alpha.3","_integrity":"sha512-RB5u/YdLf8iLQLE1MycctdYp8e1bTVXXanJtDwPK0ar4+vJFR0d7qfFfyupOoHSa04FXzG9M7n54x4iXrHG8KA==","_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/dbbfcfa9110786a1dd26fdabebf8a48b/altano-astro-html-to-image-0.0.1-alpha.3.tgz","_from":"file:altano-astro-html-to-image-0.0.1-alpha.3.tgz","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-RB5u/YdLf8iLQLE1MycctdYp8e1bTVXXanJtDwPK0ar4+vJFR0d7qfFfyupOoHSa04FXzG9M7n54x4iXrHG8KA==","shasum":"427552d10294f3bc50a868616807d6190e369464","tarball":"https://registry.npmjs.org/@altano/astro-html-to-image/-/astro-html-to-image-0.0.1-alpha.3.tgz","fileCount":6,"unpackedSize":14814,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFQgHCobMMHfDCKSC14Moi7FxRf07K5v30HGPTr4sLYAiBwAn8wRZxvLJuTKH3O9cRFG7n14Id4fo3N3po2l3K8Pg=="}]},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"directories":{},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/astro-html-to-image_0.0.1-alpha.3_1692501562191_0.6004508317257549"},"_hasShrinkwrap":false},"0.0.1-alpha.4":{"name":"@altano/astro-html-to-image","version":"0.0.1-alpha.4","description":"Render Astro components to images","type":"module","sideEffects":false,"exports":"./dist/index.js","types":"./dist/index.d.ts","author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"publishConfig":{"access":"public"},"dependencies":{"@resvg/resvg-wasm":"^2.4.1","he":"^1.2.0","mime-types":"^2.1.35","satori":"^0.10.3","satori-html":"^0.3.2","sharp":"^0.32.4"},"devDependencies":{"@types/he":"^1.2.0","@types/jest-image-snapshot":"^6.2.0","@types/mime-types":"^2.1.1","@vitest/ui":"^0.30.1","jest-image-snapshot":"^6.2.0","tsup":"^7.2.0","typescript":"^5.1.6","vite":"^4.4.9","vitest":"^0.34.3","@altano/tsconfig":"0.0.0","@altano/assets":"^0.0.0"},"peerDependencies":{"astro":"3.x"},"scripts":{"build":"tsup","build:types":"tsc --emitDeclarationOnly --declaration","dev":"tsup --watch","lint":"eslint src/**/*.ts*","lint:timing":"TIMING=1 eslint src/**/*.ts*","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","format":"prettier --write src","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","test":"vitest --run","test:watch":"vitest"},"bugs":{"url":"https://github.com/altano/npm-packages/issues"},"_id":"@altano/astro-html-to-image@0.0.1-alpha.4","_integrity":"sha512-JM+viJAjR2v917/5MsYn8lFEdyzmnPWUlOzgm3PjCEQbK4e82MxKRhzG8LcWGmomFtB1sSzkzwlsbVnvXCQ+/A==","_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/3ea7b1eccfbef8f0bcce5efdfd616c30/altano-astro-html-to-image-0.0.1-alpha.4.tgz","_from":"file:altano-astro-html-to-image-0.0.1-alpha.4.tgz","_nodeVersion":"18.16.1","_npmVersion":"9.5.1","dist":{"integrity":"sha512-JM+viJAjR2v917/5MsYn8lFEdyzmnPWUlOzgm3PjCEQbK4e82MxKRhzG8LcWGmomFtB1sSzkzwlsbVnvXCQ+/A==","shasum":"de12b97f812ec082840d856761c9a32948a07e7e","tarball":"https://registry.npmjs.org/@altano/astro-html-to-image/-/astro-html-to-image-0.0.1-alpha.4.tgz","fileCount":6,"unpackedSize":14873,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEA4arikjl6bkWiHig5o6hwZX8NXy4S62FkUbOWgZJY/AiEAiTsiO3he4PG6HYggi/G3nIgob8WgHmti4xnjnVFmL1E="}]},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"directories":{},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/astro-html-to-image_0.0.1-alpha.4_1694568665743_0.6541522612642858"},"_hasShrinkwrap":false},"0.0.1-alpha.5":{"name":"@altano/astro-html-to-image","version":"0.0.1-alpha.5","description":"Render Astro components to images","type":"module","sideEffects":false,"exports":"./dist/index.js","types":"./dist/index.d.ts","author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"publishConfig":{"access":"public"},"dependencies":{"he":"^1.2.0","mime-types":"^2.1.35","satori":"^0.10.3","satori-html":"^0.3.2"},"devDependencies":{"@types/he":"^1.2.0","@types/jest-image-snapshot":"^6.2.0","@types/mime-types":"^2.1.1","@vitest/ui":"^1.0.4","jest-image-snapshot":"^6.2.0","sharp":"^0.33.1","tsup":"^7.2.0","typescript":"^5.1.6","vite":"^4.4.9","vitest":"^1.0.4","@altano/assets":"^0.0.0","@altano/tsconfig":"0.0.0"},"peerDependencies":{"astro":">= 4.0","sharp":">= 0.32"},"scripts":{"build":"tsup","build:types":"tsc --emitDeclarationOnly --declaration","dev":"tsup --watch","lint":"eslint src/**/*.ts*","lint:timing":"TIMING=1 eslint src/**/*.ts*","lint:fix":"TIMING=1 eslint src/**/*.ts* --fix","format":"prettier --write src","clean":"rm -rf .turbo && rm -rf .tsbuildinfo && rm -rf node_modules && rm -rf dist","test":"vitest --run","test:watch":"vitest"},"bugs":{"url":"https://github.com/altano/npm-packages/issues"},"_id":"@altano/astro-html-to-image@0.0.1-alpha.5","_integrity":"sha512-bTWzVy6HiWvGWqLL9vBbmJamf85WgAss+EArJzJWw9ZDhcKWC/Nue3D0Gm2XnVKzjtMt1s2xCtx6UrlFHMGR3Q==","_resolved":"/private/var/folders/b2/jwtfxknj2sb_1xh_c60vxqrh0000gn/T/94a9f80906454eed674113967fd7424f/altano-astro-html-to-image-0.0.1-alpha.5.tgz","_from":"file:altano-astro-html-to-image-0.0.1-alpha.5.tgz","_nodeVersion":"18.18.2","_npmVersion":"9.8.1","dist":{"integrity":"sha512-bTWzVy6HiWvGWqLL9vBbmJamf85WgAss+EArJzJWw9ZDhcKWC/Nue3D0Gm2XnVKzjtMt1s2xCtx6UrlFHMGR3Q==","shasum":"998bfa020d79b37d6083ec0759bbe8f3a3e1abcd","tarball":"https://registry.npmjs.org/@altano/astro-html-to-image/-/astro-html-to-image-0.0.1-alpha.5.tgz","fileCount":5,"unpackedSize":12434,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAd91FwnHV842hv2E4TZ/+vXtmCuURsZOisUc69hFt1OAiEA5tLS2lpn0szqLmPpiOjQWI8i0O3Gq/Vj2slQLbEAuGk="}]},"_npmUser":{"name":"altano","email":"altano@gmail.com"},"directories":{},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/astro-html-to-image_0.0.1-alpha.5_1703130310603_0.01672025791199583"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-13T10:06:48.938Z","0.0.1-alpha.1":"2023-08-13T10:06:49.258Z","modified":"2023-12-21T03:45:10.931Z","0.0.1-alpha.2":"2023-08-20T02:52:15.952Z","0.0.1-alpha.3":"2023-08-20T03:19:22.399Z","0.0.1-alpha.4":"2023-09-13T01:31:05.922Z","0.0.1-alpha.5":"2023-12-21T03:45:10.766Z"},"maintainers":[{"name":"altano","email":"altano@gmail.com"}],"description":"Render Astro components to images","homepage":"https://github.com/altano/npm-packages/tree/main/packages/astro-html-to-image","keywords":["astro","withastro","middleware"],"repository":{"type":"git","url":"git+https://github.com/altano/npm-packages.git","directory":"packages/astro-html-to-image"},"author":{"name":"Alan Norbauer","email":"altano@gmail.com","url":"https://alan.norbauer.com"},"bugs":{"url":"https://github.com/altano/npm-packages/issues"},"license":"ISC","readme":"> ⚠️ **WORK IN PROGRESS**: This package requires changes[^filename-change] in Astro before it will be useable. Sit tight!\n\n# astro-html-to-image\n\nThis is an [Astro middleware](https://docs.astro.build/guides/middleware/) that allows you to easily render Astro components to images. This provides the foundation for Astro integrations like [@altano/astro-opengraph-image](https://www.npmjs.com/package/@altano/astro-opengraph-image).\n\n# Prerequisites\n\n- This middleware is for [Astro](https://astro.build).\n\n# Installation\n\nIn your existing Astro project:\n\n```sh\n# Using NPM\nnpm install @altano/astro-html-to-image\n# Using Yarn\nyarn add @altano/astro-html-to-image\n# Using PNPM\npnpm add @altano/astro-html-to-image\n```\n\n# Setup\n\nCreate a `middleware.ts` file[^middleware-docs] if you haven't already. `middleware.ts`:\n\n```ts\nimport { createHtmlToImageMiddleware } from \"@altano/astro-html-to-image\";\n\nexport const onRequest = createHtmlToImageMiddleware({ ... });\n```\n\nCreate a component to convert to an image. It must have a `.png.astro` extension, e.g. `image.png.astro`:\n\n```astro\n<html><body>Hello!</body></html>\n```\n\nNOTE: Your Astro component must be HTML elements and styles [supported by Satori](https://github.com/vercel/satori#jsx), e.g. it can't be stateful or use `calc()` in css. The [OG Image Playground](https://og-playground.vercel.app/) is a great place to test your component before copying it into your Astro project.\n\n# Example Usage\n\n# TODO Update this readme\n\n`middleware.ts`:\n\n```ts\nimport { createHtmlToImageMiddleware } from \"@altano/astro-html-to-image\";\n\nexport const onRequest = createHtmlToImageMiddleware({\n  runtime: \"nodejs\",\n  format: \"png\",\n  async getSvgOptions() {\n    const interRegularBuffer = await fetch(`https://files.terriblefish.com/fonts/Inter/v4/extras/otf/Inter-Regular.otf`).then((res) => res.arrayBuffer());\n    return {\n      width: 800,\n      height: 200,\n      fonts: [\n        {\n          name: \"Inter\",\n          data: interRegularBuffer,\n          weight: 400,\n          style: \"normal\",\n        },\n      ],\n    };\n  },\n});\n```\n\n`image.png.astro`:\n\n```astro\n---\n/**\n * This is not used during image generation. It is only here\n * to make the fonts consistent between the generated image\n * and how the component is rendered if the image generation\n * middleware is disabled.\n */\nimport \"@fontsource-variable/inter\";\n---\n\n<html>\n  <body\n    style=`font-family: \"Inter Variable\";\n           background: white;\n           height: 100vh;\n           width: 100vw;\n           display: flex;\n           flex-direction: column;\n           align-items: center;\n           justify-content: center;`\n  >\n    <h1\n      style=\"font-weight: 800;\n             font-size: 5rem;\n             margin: 0;\"\n    >\n      Kurt's Website!\n    </h1>\n    <p style=\"font-weight: 400;\n              font-size: 2rem;\">\n      This is rendered as a PNG image.\n    </p>\n  </body>\n</html>\n```\n\nSee https://github.com/altano/npm-packages/tree/main/examples/astro-html-to-image for a slightly more involved example.\n\n# Options Reference\n\n`createHtmlToImageMiddleware` requires the following options:\n\n- `runtime`: currently only \"nodejs\".\n- `format`: Any output format that the [@resvg/resvg-wasm](https://www.npmjs.com/package/@resvg/resvg-wasm) library accepts, which is currently only \"png\".\n- `getSvgOptions`: Options that the [vercel/satori](https://github.com/vercel/satori) library accepts. At the very least, you must specify dimensions and one font to use.\n\nSee the TypeScript type-hints and comments for more info.\n\n# Recipes\n\n## Using Custom Fonts\n\n`middleware.ts`:\n\n```ts\nimport { createHtmlToImageMiddleware } from \"@altano/astro-html-to-image\";\n\nexport const onRequest = createHtmlToImageMiddleware({\n  format: \"png\",\n  async getSvgOptions() {\n    const interRegularBuffer = await fetch(`https://files.terriblefish.com/fonts/Inter/v4/extras/otf/Inter-Regular.otf`).then((res) => res.arrayBuffer());\n    const interBoldBuffer = await fetch(`https://files.terriblefish.com/fonts/Inter/v4/extras/otf/Inter-Regular.otf`).then((res) => res.arrayBuffer());\n    return {\n      width: 800,\n      height: 200,\n      fonts: [\n        {\n          name: \"Inter\",\n          data: interRegularBuffer,\n          weight: 400,\n          style: \"normal\",\n        },\n        {\n          name: \"Inter\",\n          data: interBoldBuffer,\n          weight: 800,\n          style: \"normal\",\n        },\n      ],\n    };\n  },\n});\n```\n\n## Using Frameowork Components (e.g. React or Svelte)\n\nSee [the React component example](https://github.com/altano/npm-packages/blob/main/examples/astro-html-to-image/src/pages/react.png.astro).\n\n# How it Works\n\nThis library is a tiny wrapper around:\n\n- [`satori-html`](https://github.com/natemoo-re/satori-html) (html -> jsx)\n- [`vercel/satori`](https://github.com/vercel/satori) (jsx -> svg)\n- [@resvg/resvg-wasm](https://www.npmjs.com/package/@resvg/resvg-wasm) (svg -> png)\n\nThe pipeline looks like this:\n\n```mermaid\nflowchart LR\n    S>component.astro] -->|astro| M[fa:fa-code html]\n    M -->|middleware| A[[astro-html-to-image]]\n    A -->|satori-html| B[fab:fa-react jsx]\n    B -->|vercel/satori| C[fa:fa-image svg]\n    C -->|resvg-wasm| D>\"fa:fa-image png\"]\n```\n\n[^filename-change]: https://github.com/withastro/roadmap/discussions/643\n[^middleware-docs]: https://docs.astro.build/guides/middleware\n","readmeFilename":"README.md"}