{"_id":"@casoon/fragment-renderer","_rev":"3-80155e26bfa208f427661bcf7e7a1b03","name":"@casoon/fragment-renderer","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@casoon/fragment-renderer","version":"0.1.0","keywords":["astro","astrojs","container","runtime","ssr","components","htmx","alpine","aha-stack","email","edge","fragments","partial-rendering"],"author":{"name":"casoon"},"license":"MIT","_id":"@casoon/fragment-renderer@0.1.0","maintainers":[{"name":"jseidel","email":"joern.seidel@casoon.de"}],"homepage":"https://github.com/casoon/fragment-renderer#readme","bugs":{"url":"https://github.com/casoon/fragment-renderer/issues"},"dist":{"shasum":"a72b5161f2c3d9a07627110a9fa6a8bc1eb7c016","tarball":"https://registry.npmjs.org/@casoon/fragment-renderer/-/fragment-renderer-0.1.0.tgz","fileCount":55,"integrity":"sha512-niSSKkthy9Oj/efnKU6oBS1vvd4HcQTVZMYSukYMrI5KrJMxXn8qdQeK2G1j7Z1D+RRakPVaHd/RE+mEqjrxxg==","signatures":[{"sig":"MEYCIQDu6T1q+60IgNBIVnUWkYNBGbK7gC//2Xi806LVgEaiGgIhAP53ki7h3guWBtB5R3q1b9BpgYXXTEXDaDcsXaHKXlhT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88586},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./presets/cms":{"types":"./dist/presets/cms.d.ts","import":"./dist/presets/cms.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./adapters/node":{"types":"./dist/adapters/node.d.ts","import":"./dist/adapters/node.js"},"./presets/email":{"types":"./dist/presets/email.d.ts","import":"./dist/presets/email.js"},"./adapters/vercel":{"types":"./dist/adapters/vercel.d.ts","import":"./dist/adapters/vercel.js"},"./presets/aha-stack":{"types":"./dist/presets/aha-stack.d.ts","import":"./dist/presets/aha-stack.js"},"./adapters/cloudflare":{"types":"./dist/adapters/cloudflare.d.ts","import":"./dist/adapters/cloudflare.js"}},"gitHead":"9d9929f914b366360381a4d8e7b16c2a9f781429","scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"vitest","build":"tsc","test:run":"vitest run","prepublishOnly":"npm run build"},"_npmUser":{"name":"jseidel","email":"joern.seidel@casoon.de"},"repository":{"url":"git+https://github.com/casoon/fragment-renderer.git","type":"git"},"_npmVersion":"11.6.2","description":"Universal Astro Fragment Renderer - render Astro components as HTML fragments for HTMX, email, and multi-channel output.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"astro":"^4.0.0","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"astro":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-renderer_0.1.0_1764483282598_0.6792704557742004","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@casoon/fragment-renderer","version":"0.1.1","keywords":["astro","astrojs","container","runtime","ssr","components","htmx","alpine","aha-stack","email","edge","fragments","partial-rendering"],"author":{"name":"casoon"},"license":"MIT","_id":"@casoon/fragment-renderer@0.1.1","maintainers":[{"name":"jseidel","email":"joern.seidel@casoon.de"}],"homepage":"https://github.com/casoon/fragment-renderer#readme","bugs":{"url":"https://github.com/casoon/fragment-renderer/issues"},"dist":{"shasum":"4bb042a528f6d3faff16ed1d474c1a612f914f07","tarball":"https://registry.npmjs.org/@casoon/fragment-renderer/-/fragment-renderer-0.1.1.tgz","fileCount":55,"integrity":"sha512-B86JSm99uCWg1x5DyvuLIwO1Wl6ZM++ajohQrau1jnSCwrYWjXYvwSW9Haf+NTsaUZSrpk+7tVf2RvXfHmwFwQ==","signatures":[{"sig":"MEYCIQCpY5c5NtrqbripzZ5K2RNzwWFTw+fAlD63Cpd49MJQoQIhALzKP/WuPgVVYsV038gXgzYq014wnj/KbWzERA8jCWZy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95427},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./presets/cms":{"types":"./dist/presets/cms.d.ts","import":"./dist/presets/cms.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./adapters/node":{"types":"./dist/adapters/node.d.ts","import":"./dist/adapters/node.js"},"./presets/email":{"types":"./dist/presets/email.d.ts","import":"./dist/presets/email.js"},"./adapters/vercel":{"types":"./dist/adapters/vercel.d.ts","import":"./dist/adapters/vercel.js"},"./presets/aha-stack":{"types":"./dist/presets/aha-stack.d.ts","import":"./dist/presets/aha-stack.js"},"./adapters/cloudflare":{"types":"./dist/adapters/cloudflare.d.ts","import":"./dist/adapters/cloudflare.js"}},"gitHead":"d53f92a25f210b1cccc2ea7db39186684ac94444","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"vitest","build":"tsc","format":"biome format --write .","prepare":"husky","lint:fix":"biome check --write .","test:run":"vitest run","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jseidel","email":"joern.seidel@casoon.de"},"repository":{"url":"git+https://github.com/casoon/fragment-renderer.git","type":"git"},"_npmVersion":"11.6.2","description":"Universal Astro Fragment Renderer - render Astro components as HTML fragments for HTMX, email, and multi-channel output.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"astro":"^4.0.0","husky":"^9.1.7","vitest":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.10.0","@biomejs/biome":"^2.3.8"},"peerDependencies":{"astro":">=4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-renderer_0.1.1_1764660811023_0.5419092130763155","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@casoon/fragment-renderer","version":"0.2.0","description":"Universal Astro Fragment Renderer - render Astro components as HTML fragments for HTMX, email, and multi-channel output.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./adapters/node":{"types":"./dist/adapters/node.d.ts","import":"./dist/adapters/node.js"},"./adapters/cloudflare":{"types":"./dist/adapters/cloudflare.d.ts","import":"./dist/adapters/cloudflare.js"},"./adapters/vercel":{"types":"./dist/adapters/vercel.d.ts","import":"./dist/adapters/vercel.js"},"./adapters/cli":{"types":"./dist/adapters/cli.d.ts","import":"./dist/adapters/cli.js"},"./presets/aha-stack":{"types":"./dist/presets/aha-stack.d.ts","import":"./dist/presets/aha-stack.js"},"./presets/email":{"types":"./dist/presets/email.d.ts","import":"./dist/presets/email.js"},"./presets/cms":{"types":"./dist/presets/cms.d.ts","import":"./dist/presets/cms.js"}},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest","test:run":"vitest run","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write .","prepare":"husky","prepublishOnly":"pnpm run build"},"keywords":["astro","astrojs","container","runtime","ssr","components","htmx","alpine","aha-stack","email","edge","fragments","partial-rendering"],"author":{"name":"casoon"},"license":"MIT","engines":{"node":">=18.0.0"},"peerDependencies":{"astro":">=4.0.0"},"devDependencies":{"@biomejs/biome":"^2.3.8","@types/node":"^25.9.1","astro":"^6.4.2","husky":"^9.1.7","typescript":"^6.0.3","vitest":"^4.1.7"},"homepage":"https://github.com/casoon/fragment-renderer#readme","repository":{"type":"git","url":"git+https://github.com/casoon/fragment-renderer.git"},"bugs":{"url":"https://github.com/casoon/fragment-renderer/issues"},"gitHead":"0752ab21e0f8c87364ee2db75597ed096cb47e8c","_id":"@casoon/fragment-renderer@0.2.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-lw8cINh4M5xwl8EIVYHXF/ih2L0ReE5nct9/z/ocokznAAEZFGjoyv+Os/bX7skJXDT63sfm9zu+oqNlEjZ+aw==","shasum":"9d7947cd2d0ec840ec7e8169d4fb193ddc32e82b","tarball":"https://registry.npmjs.org/@casoon/fragment-renderer/-/fragment-renderer-0.2.0.tgz","fileCount":55,"unpackedSize":95505,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCq4z+PsC8935BcukXlaNBhpp4X41XJ4PAlvhR66twehAIhAPYewVeg8eLBzu5fCrXB256WdxHiIgYhK2aTWR7kwkTJ"}]},"_npmUser":{"name":"jseidel","email":"joern.seidel@casoon.de"},"directories":{},"maintainers":[{"name":"jseidel","email":"joern.seidel@casoon.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fragment-renderer_0.2.0_1780298658365_0.8675573303008182"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-30T06:14:42.487Z","modified":"2026-06-01T07:24:18.616Z","0.1.0":"2025-11-30T06:14:42.810Z","0.1.1":"2025-12-02T07:33:31.205Z","0.2.0":"2026-06-01T07:24:18.518Z"},"bugs":{"url":"https://github.com/casoon/fragment-renderer/issues"},"author":{"name":"casoon"},"license":"MIT","homepage":"https://github.com/casoon/fragment-renderer#readme","keywords":["astro","astrojs","container","runtime","ssr","components","htmx","alpine","aha-stack","email","edge","fragments","partial-rendering"],"repository":{"type":"git","url":"git+https://github.com/casoon/fragment-renderer.git"},"description":"Universal Astro Fragment Renderer - render Astro components as HTML fragments for HTMX, email, and multi-channel output.","maintainers":[{"name":"jseidel","email":"joern.seidel@casoon.de"}],"readme":"# @casoon/fragment-renderer\n\nUniversal Astro Container Runtime - render Astro components outside of classic Astro pages.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue-blue.svg)](https://www.gnu.org/licenses/mit)\n\n## Features\n\n- **Zero-Config** - Just call `createAstroRuntime()` and start rendering\n- **Component Registry** - Register components by ID for dynamic rendering\n- **Service Pattern** - Reusable services with caching\n- **Multi-Channel** - Web, Email, PDF, OG-Cards from one component\n- **Presets** - Pre-configured setups for common use cases\n- **Adapters** - Node.js, Cloudflare Workers, Vercel Edge, CLI\n\n## Installation\n\n```bash\nnpm install @casoon/fragment-renderer\n```\n\n**Peer Dependency:** Requires `astro >= 4.0.0`\n\n## Quick Start\n\n```typescript\nimport { createAstroRuntime } from '@casoon/fragment-renderer';\nimport MyComponent from './MyComponent.astro';\n\nconst runtime = createAstroRuntime();\n\n// Render to HTML string\nconst html = await runtime.renderComponent(MyComponent, { title: 'Hello' });\n\n// Render to Response (for API endpoints)\nconst response = await runtime.renderToResponse(MyComponent, { title: 'Hello' });\n```\n\n## Presets\n\n### AHA-Stack Preset (Astro + HTMX + Alpine.js)\n\n```typescript\nimport { createAstroRuntime } from '@casoon/fragment-renderer';\nimport { ahaStackPreset } from '@casoon/fragment-renderer/presets/aha-stack';\n\nconst runtime = createAstroRuntime(ahaStackPreset({ locale: 'de' }));\n\nconst htmx = await runtime.getService('htmx');\nhtmx.isHtmxRequest(request);\nhtmx.getResponseHeaders({ trigger: 'cartUpdated' });\n```\n\n### Email Preset\n\n```typescript\nimport { emailPreset } from '@casoon/fragment-renderer/presets/email';\n\nconst runtime = createAstroRuntime(emailPreset({ provider: 'sendgrid' }));\nconst email = await runtime.getService('email');\n\nconst { html, subject } = await email.renderEmail('order-confirmation', props);\n```\n\n### CMS Preset\n\n```typescript\nimport { cmsPreset } from '@casoon/fragment-renderer/presets/cms';\n\nconst runtime = createAstroRuntime(cmsPreset({\n  blocks: [\n    { id: 'blocks.hero', loader: () => import('./Hero.astro') },\n  ],\n}));\n\nconst cms = await runtime.getService('cms');\nconst html = await cms.renderBlocks(blocks);\n```\n\n## Adapters\n\n- **Node.js** - `@casoon/fragment-renderer/adapters/node`\n- **Vercel** - `@casoon/fragment-renderer/adapters/vercel`\n- **Cloudflare** - `@casoon/fragment-renderer/adapters/cloudflare`\n- **CLI** - `@casoon/fragment-renderer/adapters/cli`\n\n## License\n\nMIT\n\n## Links\n\n- [GitHub](https://github.com/casoon/fragment-renderer)\n- [Issues](https://github.com/casoon/fragment-renderer/issues)\n","readmeFilename":"README.md"}