[{"data":1,"prerenderedAt":2719},["ShallowReactive",2],{"navigation":3,"examples-nav":445,"-examples-vite-ssr-html":552,"-examples-vite-ssr-html-surround":2716},[4,123,260,266,430,442],{"title":5,"path":6,"stem":7,"children":8,"icon":122},"","\u002Fdocs","1.docs\u002F1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112,117],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fquick-start","1.docs\u002F2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","\u002Fdocs\u002Frenderer","1.docs\u002F4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","\u002Fdocs\u002Frouting","1.docs\u002F5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","\u002Fdocs\u002Fassets","1.docs\u002F50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","\u002Fdocs\u002Fdatabase","1.docs\u002F50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","\u002Fdocs\u002Flifecycle","1.docs\u002F50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"OpenAPI","\u002Fdocs\u002Fopenapi","1.docs\u002F50.openapi","ri:contract-line",{"title":53,"path":54,"stem":55,"icon":56},"Plugins","\u002Fdocs\u002Fplugins","1.docs\u002F50.plugins","ri:plug-line",{"title":58,"path":59,"stem":60,"icon":61},"Prerendering","\u002Fdocs\u002Fprerendering","1.docs\u002F50.prerendering","ri:file-copy-2-line",{"title":63,"path":64,"stem":65,"icon":66},"Tasks","\u002Fdocs\u002Ftasks","1.docs\u002F50.tasks","codicon:run-all",{"title":68,"path":69,"stem":70,"icon":71},"WebSocket","\u002Fdocs\u002Fwebsocket","1.docs\u002F50.websocket","ri:broadcast-fill",{"title":73,"path":74,"stem":75,"icon":76},"Modules","\u002Fdocs\u002Fmodules","1.docs\u002F55.modules","i-lucide-puzzle",{"title":78,"path":79,"stem":80,"icon":81},"Server Entry","\u002Fdocs\u002Fserver-entry","1.docs\u002F6.server-entry","ri:server-line",{"title":83,"path":84,"stem":85,"icon":86},"CLI","\u002Fdocs\u002Fcli","1.docs\u002F60.cli","i-lucide-terminal",{"title":88,"path":89,"stem":90,"icon":91},"Vite","\u002Fdocs\u002Fvite","1.docs\u002F61.vite","i-logos-vitejs",{"title":93,"path":94,"stem":95,"icon":96},"Utils","\u002Fdocs\u002Futils","1.docs\u002F62.utils","i-lucide-braces",{"title":98,"path":99,"stem":100,"icon":101},"TypeScript","\u002Fdocs\u002Ftypescript","1.docs\u002F63.typescript","i-logos-typescript-icon",{"title":103,"path":104,"stem":105,"icon":106},"Cache","\u002Fdocs\u002Fcache","1.docs\u002F7.cache","ri:speed-line",{"title":108,"path":109,"stem":110,"icon":111},"KV Storage","\u002Fdocs\u002Fstorage","1.docs\u002F8.storage","carbon:datastore",{"title":113,"path":114,"stem":115,"icon":116},"Migration Guide","\u002Fdocs\u002Fmigration","1.docs\u002F99.migration","ri:arrow-right-up-line",{"title":118,"path":119,"stem":120,"icon":121},"Nightly Channel","\u002Fdocs\u002Fnightly","1.docs\u002F99.nightly","ri:moon-fill","i-lucide-book-open",{"title":124,"path":125,"stem":126,"children":127,"icon":129},"Deploy","\u002Fdeploy","2.deploy\u002F0.index",[128,130,155],{"title":124,"path":125,"stem":126,"icon":129},"ri:upload-cloud-2-line",{"title":131,"path":132,"stem":133,"children":134,"page":154},"Runtimes","\u002Fdeploy\u002Fruntimes","2.deploy\u002F10.runtimes",[135,140,145,150],{"title":136,"path":137,"stem":138,"icon":139},"Node.js","\u002Fdeploy\u002Fruntimes\u002Fnode","2.deploy\u002F10.runtimes\u002F1.node","akar-icons:node-fill",{"title":141,"path":142,"stem":143,"icon":144},"Bun","\u002Fdeploy\u002Fruntimes\u002Fbun","2.deploy\u002F10.runtimes\u002Fbun","simple-icons:bun",{"title":146,"path":147,"stem":148,"icon":149},"Deno","\u002Fdeploy\u002Fruntimes\u002Fdeno","2.deploy\u002F10.runtimes\u002Fdeno","simple-icons:deno",{"title":151,"path":152,"stem":153},"Standard","\u002Fdeploy\u002Fruntimes\u002Fstandard","2.deploy\u002F10.runtimes\u002Fstandard",false,{"title":156,"path":157,"stem":158,"children":159,"page":154},"Providers","\u002Fdeploy\u002Fproviders","2.deploy\u002F20.providers",[160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256],{"title":161,"path":162,"stem":163},"Alwaysdata","\u002Fdeploy\u002Fproviders\u002Falwaysdata","2.deploy\u002F20.providers\u002Falwaysdata",{"title":165,"path":166,"stem":167},"AWS Lambda","\u002Fdeploy\u002Fproviders\u002Faws","2.deploy\u002F20.providers\u002Faws",{"title":169,"path":170,"stem":171},"AWS Amplify","\u002Fdeploy\u002Fproviders\u002Faws-amplify","2.deploy\u002F20.providers\u002Faws-amplify",{"title":173,"path":174,"stem":175},"Azure","\u002Fdeploy\u002Fproviders\u002Fazure","2.deploy\u002F20.providers\u002Fazure",{"title":177,"path":178,"stem":179},"Cleavr","\u002Fdeploy\u002Fproviders\u002Fcleavr","2.deploy\u002F20.providers\u002Fcleavr",{"title":181,"path":182,"stem":183},"Cloudflare","\u002Fdeploy\u002Fproviders\u002Fcloudflare","2.deploy\u002F20.providers\u002Fcloudflare",{"title":185,"path":186,"stem":187},"Deno Deploy","\u002Fdeploy\u002Fproviders\u002Fdeno-deploy","2.deploy\u002F20.providers\u002Fdeno-deploy",{"title":189,"path":190,"stem":191},"DigitalOcean","\u002Fdeploy\u002Fproviders\u002Fdigitalocean","2.deploy\u002F20.providers\u002Fdigitalocean",{"title":193,"path":194,"stem":195},"EdgeOne Pages","\u002Fdeploy\u002Fproviders\u002Fedgeone","2.deploy\u002F20.providers\u002Fedgeone",{"title":197,"path":198,"stem":199},"Firebase","\u002Fdeploy\u002Fproviders\u002Ffirebase","2.deploy\u002F20.providers\u002Ffirebase",{"title":201,"path":202,"stem":203},"Flightcontrol","\u002Fdeploy\u002Fproviders\u002Fflightcontrol","2.deploy\u002F20.providers\u002Fflightcontrol",{"title":205,"path":206,"stem":207},"Genezio","\u002Fdeploy\u002Fproviders\u002Fgenezio","2.deploy\u002F20.providers\u002Fgenezio",{"title":209,"path":210,"stem":211},"GitHub Pages","\u002Fdeploy\u002Fproviders\u002Fgithub-pages","2.deploy\u002F20.providers\u002Fgithub-pages",{"title":213,"path":214,"stem":215},"GitLab Pages","\u002Fdeploy\u002Fproviders\u002Fgitlab-pages","2.deploy\u002F20.providers\u002Fgitlab-pages",{"title":217,"path":218,"stem":219},"Heroku","\u002Fdeploy\u002Fproviders\u002Fheroku","2.deploy\u002F20.providers\u002Fheroku",{"title":221,"path":222,"stem":223},"IIS","\u002Fdeploy\u002Fproviders\u002Fiis","2.deploy\u002F20.providers\u002Fiis",{"title":225,"path":226,"stem":227},"Koyeb","\u002Fdeploy\u002Fproviders\u002Fkoyeb","2.deploy\u002F20.providers\u002Fkoyeb",{"title":229,"path":230,"stem":231},"Netlify","\u002Fdeploy\u002Fproviders\u002Fnetlify","2.deploy\u002F20.providers\u002Fnetlify",{"title":233,"path":234,"stem":235},"Platform.sh","\u002Fdeploy\u002Fproviders\u002Fplatform-sh","2.deploy\u002F20.providers\u002Fplatform-sh",{"title":237,"path":238,"stem":239},"Render.com","\u002Fdeploy\u002Fproviders\u002Frender","2.deploy\u002F20.providers\u002Frender",{"title":241,"path":242,"stem":243},"Stormkit","\u002Fdeploy\u002Fproviders\u002Fstormkit","2.deploy\u002F20.providers\u002Fstormkit",{"title":245,"path":246,"stem":247},"Vercel","\u002Fdeploy\u002Fproviders\u002Fvercel","2.deploy\u002F20.providers\u002Fvercel",{"title":249,"path":250,"stem":251},"Zeabur","\u002Fdeploy\u002Fproviders\u002Fzeabur","2.deploy\u002F20.providers\u002Fzeabur",{"title":253,"path":254,"stem":255},"Zephyr Cloud","\u002Fdeploy\u002Fproviders\u002Fzephyr","2.deploy\u002F20.providers\u002Fzephyr",{"title":257,"path":258,"stem":259},"Zerops","\u002Fdeploy\u002Fproviders\u002Fzerops","2.deploy\u002F20.providers\u002Fzerops",{"title":261,"path":262,"stem":263,"children":264,"icon":36},"Config","\u002Fconfig","3.config\u002F0.index",[265],{"title":261,"path":262,"stem":263,"icon":36},{"title":267,"path":268,"stem":269,"children":270,"icon":272},"Examples","\u002Fexamples","4.examples\u002F0.index",[271,273,278,283,288,293,297,302,307,312,317,322,327,331,336,340,344,349,354,359,364,369,374,379,383,388,393,398,402,407,412,416,421,426],{"title":267,"path":268,"stem":269,"icon":272},"i-lucide-folder-code",{"title":274,"path":275,"stem":276,"icon":277},"API Routes","\u002Fexamples\u002Fapi-routes","4.examples\u002Fapi-routes","i-lucide-route",{"title":279,"path":280,"stem":281,"icon":282},"Auto Imports","\u002Fexamples\u002Fauto-imports","4.examples\u002Fauto-imports","i-lucide-import",{"title":284,"path":285,"stem":286,"icon":287},"Cached Handler","\u002Fexamples\u002Fcached-handler","4.examples\u002Fcached-handler","i-lucide-clock",{"title":289,"path":290,"stem":291,"icon":292},"Custom Error Handler","\u002Fexamples\u002Fcustom-error-handler","4.examples\u002Fcustom-error-handler","i-lucide-alert-circle",{"title":38,"path":294,"stem":295,"icon":296},"\u002Fexamples\u002Fdatabase","4.examples\u002Fdatabase","i-lucide-database",{"title":298,"path":299,"stem":300,"icon":301},"Elysia","\u002Fexamples\u002Felysia","4.examples\u002Felysia","i-skill-icons-elysia-dark",{"title":303,"path":304,"stem":305,"icon":306},"Express","\u002Fexamples\u002Fexpress","4.examples\u002Fexpress","i-simple-icons-express",{"title":308,"path":309,"stem":310,"icon":311},"Fastify","\u002Fexamples\u002Ffastify","4.examples\u002Ffastify","i-simple-icons-fastify",{"title":313,"path":314,"stem":315,"icon":316},"Hello World","\u002Fexamples\u002Fhello-world","4.examples\u002Fhello-world","i-lucide-sparkles",{"title":318,"path":319,"stem":320,"icon":321},"Hono","\u002Fexamples\u002Fhono","4.examples\u002Fhono","i-logos-hono",{"title":323,"path":324,"stem":325,"icon":326},"Import Alias","\u002Fexamples\u002Fimport-alias","4.examples\u002Fimport-alias","i-lucide-at-sign",{"title":328,"path":329,"stem":330,"icon":46},"Middleware","\u002Fexamples\u002Fmiddleware","4.examples\u002Fmiddleware",{"title":332,"path":333,"stem":334,"icon":335},"Mono JSX","\u002Fexamples\u002Fmono-jsx","4.examples\u002Fmono-jsx","i-lucide-brackets",{"title":337,"path":338,"stem":339,"icon":335},"Nano JSX","\u002Fexamples\u002Fnano-jsx","4.examples\u002Fnano-jsx",{"title":53,"path":341,"stem":342,"icon":343},"\u002Fexamples\u002Fplugins","4.examples\u002Fplugins","i-lucide-plug",{"title":345,"path":346,"stem":347,"icon":348},"Custom Renderer","\u002Fexamples\u002Frenderer","4.examples\u002Frenderer","i-lucide-code",{"title":350,"path":351,"stem":352,"icon":353},"Runtime Config","\u002Fexamples\u002Fruntime-config","4.examples\u002Fruntime-config","i-lucide-settings",{"title":355,"path":356,"stem":357,"icon":358},"Server Fetch","\u002Fexamples\u002Fserver-fetch","4.examples\u002Fserver-fetch","i-lucide-arrow-right-left",{"title":360,"path":361,"stem":362,"icon":363},"Shiki","\u002Fexamples\u002Fshiki","4.examples\u002Fshiki","i-lucide-highlighter",{"title":365,"path":366,"stem":367,"icon":368},"Takumi","\u002Fexamples\u002Ftakumi","4.examples\u002Ftakumi","i-lucide-image",{"title":370,"path":371,"stem":372,"icon":373},"Tracing","\u002Fexamples\u002Ftracing","4.examples\u002Ftracing","i-lucide-activity",{"title":375,"path":376,"stem":377,"icon":378},"Virtual Routes","\u002Fexamples\u002Fvirtual-routes","4.examples\u002Fvirtual-routes","i-lucide-box",{"title":380,"path":381,"stem":382,"icon":91},"Vite Nitro Plugin","\u002Fexamples\u002Fvite-nitro-plugin","4.examples\u002Fvite-nitro-plugin",{"title":384,"path":385,"stem":386,"icon":387},"Vite RSC","\u002Fexamples\u002Fvite-rsc","4.examples\u002Fvite-rsc","i-logos-react",{"title":389,"path":390,"stem":391,"icon":392},"Vite SSR HTML","\u002Fexamples\u002Fvite-ssr-html","4.examples\u002Fvite-ssr-html","i-logos-html-5",{"title":394,"path":395,"stem":396,"icon":397},"SSR with Preact","\u002Fexamples\u002Fvite-ssr-preact","4.examples\u002Fvite-ssr-preact","i-logos-preact",{"title":399,"path":400,"stem":401,"icon":387},"SSR with React","\u002Fexamples\u002Fvite-ssr-react","4.examples\u002Fvite-ssr-react",{"title":403,"path":404,"stem":405,"icon":406},"SSR with SolidJS","\u002Fexamples\u002Fvite-ssr-solid","4.examples\u002Fvite-ssr-solid","i-logos-solidjs-icon",{"title":408,"path":409,"stem":410,"icon":411},"SSR with TanStack Router","\u002Fexamples\u002Fvite-ssr-tsr-react","4.examples\u002Fvite-ssr-tsr-react","i-simple-icons-tanstack",{"title":413,"path":414,"stem":415,"icon":411},"SSR with TanStack Start","\u002Fexamples\u002Fvite-ssr-tss-react","4.examples\u002Fvite-ssr-tss-react",{"title":417,"path":418,"stem":419,"icon":420},"SSR with Vue Router","\u002Fexamples\u002Fvite-ssr-vue-router","4.examples\u002Fvite-ssr-vue-router","i-logos-vue",{"title":422,"path":423,"stem":424,"icon":425},"Vite + tRPC","\u002Fexamples\u002Fvite-trpc","4.examples\u002Fvite-trpc","i-simple-icons-trpc",{"title":68,"path":427,"stem":428,"icon":429},"\u002Fexamples\u002Fwebsocket","4.examples\u002Fwebsocket","i-lucide-radio",{"title":431,"path":432,"stem":433,"children":434},"Blog","\u002Fblog","9.blog",[435,438],{"title":431,"path":432,"stem":436,"icon":437},"9.blog\u002Findex","i-lucide-file-text",{"title":439,"path":440,"stem":441,"icon":437},"Nitro v3 Beta is here!","\u002Fblog\u002Fv3-beta","9.blog\u002F1.v3-beta",{"title":5,"path":443,"stem":444},"\u002F","index",[446,451,455,458,461,464,468,471,474,477,480,483,486,490,493,496,499,502,505,509,512,515,518,522,525,528,531,534,537,540,543,546,549],{"title":274,"description":447,"meta":448,"path":275},"File-based API routing with HTTP method support and dynamic parameters.",{"automd":449,"category":450,"icon":277},true,"features",{"title":279,"description":452,"meta":453,"path":280},"Automatic imports for utilities and composables.",{"automd":449,"category":454,"icon":282},"config",{"title":284,"description":456,"meta":457,"path":285},"Cache route responses with configurable bypass logic.",{"automd":449,"category":450,"icon":287},{"title":289,"description":459,"meta":460,"path":290},"Customize error responses with a global error handler.",{"automd":449,"category":450,"icon":292},{"title":38,"description":462,"meta":463,"path":294},"Built-in database support with SQL template literals.",{"automd":449,"category":450,"icon":296},{"title":298,"description":465,"meta":466,"path":299},"Integrate Elysia with Nitro using the server entry.",{"automd":449,"category":467,"icon":301},"backend frameworks",{"title":303,"description":469,"meta":470,"path":304},"Integrate Express with Nitro using the server entry.",{"automd":449,"category":467,"icon":306},{"title":308,"description":472,"meta":473,"path":309},"Integrate Fastify with Nitro using the server entry.",{"automd":449,"category":467,"icon":311},{"title":313,"description":475,"meta":476,"path":314},"Minimal Nitro server using the web standard fetch handler.",{"automd":449,"category":450,"icon":316},{"title":318,"description":478,"meta":479,"path":319},"Integrate Hono with Nitro using the server entry.",{"automd":449,"category":467,"icon":321},{"title":323,"description":481,"meta":482,"path":324},"Custom import aliases for cleaner module paths.",{"automd":449,"category":454,"icon":326},{"title":328,"description":484,"meta":485,"path":329},"Request middleware for authentication, logging, and request modification.",{"automd":449,"category":450,"icon":46},{"title":332,"description":487,"meta":488,"path":333},"Server-side JSX rendering in Nitro with mono-jsx.",{"automd":449,"category":489,"icon":335},"server side rendering",{"title":337,"description":491,"meta":492,"path":338},"Server-side JSX rendering in Nitro with nano-jsx.",{"automd":449,"category":489,"icon":335},{"title":53,"description":494,"meta":495,"path":341},"Extend Nitro with custom plugins for hooks and lifecycle events.",{"automd":449,"category":450,"icon":343},{"title":345,"description":497,"meta":498,"path":346},"Build a custom HTML renderer in Nitro with server-side data fetching.",{"automd":449,"category":489,"icon":348},{"title":350,"description":500,"meta":501,"path":351},"Environment-aware configuration with runtime access.",{"automd":449,"category":454,"icon":353},{"title":355,"description":503,"meta":504,"path":356},"Internal server-to-server requests without network overhead.",{"automd":449,"category":450,"icon":358},{"title":360,"description":506,"meta":507,"path":361},"Server-side syntax highlighting in Nitro with Shiki.",{"automd":449,"category":508,"icon":363},"integrations",{"title":365,"description":510,"meta":511,"path":366},"Generate dynamic Open Graph images from a Nitro route using Takumi.",{"automd":449,"category":508,"icon":368},{"title":370,"description":513,"meta":514,"path":371},"Instrument the request lifecycle with diagnostics channels and the built-in tracing logger.",{"automd":449,"category":450,"icon":373},{"title":375,"description":516,"meta":517,"path":376},"Define routes programmatically using Nitro's virtual module system.",{"automd":449,"category":450,"icon":378},{"title":380,"description":519,"meta":520,"path":381},"Use Nitro as a Vite plugin for programmatic configuration.",{"automd":449,"category":521,"icon":91},"vite",{"title":384,"description":523,"meta":524,"path":385},"React Server Components with Vite and Nitro.",{"automd":449,"category":521,"icon":387},{"title":389,"description":526,"meta":527,"path":390},"Server-side rendering with vanilla HTML, Vite, and Nitro.",{"automd":449,"category":489,"icon":392},{"title":394,"description":529,"meta":530,"path":395},"Server-side rendering with Preact in Nitro using Vite.",{"automd":449,"category":489,"icon":397},{"title":399,"description":532,"meta":533,"path":400},"Server-side rendering with React in Nitro using Vite.",{"automd":449,"category":489,"icon":387},{"title":403,"description":535,"meta":536,"path":404},"Server-side rendering with SolidJS in Nitro using Vite.",{"automd":449,"category":489,"icon":406},{"title":408,"description":538,"meta":539,"path":409},"Client-side routing with TanStack Router in Nitro using Vite.",{"automd":449,"category":489,"icon":411},{"title":413,"description":541,"meta":542,"path":414},"Full-stack React with TanStack Start in Nitro using Vite.",{"automd":449,"category":489,"icon":411},{"title":417,"description":544,"meta":545,"path":418},"Server-side rendering with Vue Router in Nitro using Vite.",{"automd":449,"category":489,"icon":420},{"title":422,"description":547,"meta":548,"path":423},"End-to-end typesafe APIs with tRPC in Nitro using Vite.",{"automd":449,"category":521,"icon":425},{"title":68,"description":550,"meta":551,"path":427},"Real-time bidirectional communication with WebSocket support.",{"automd":449,"category":450,"icon":429},{"id":553,"title":389,"body":554,"description":526,"extension":2711,"meta":2712,"navigation":2713,"path":390,"seo":2714,"stem":391,"__hash__":2715},"content\u002F4.examples\u002Fvite-ssr-html.md",{"type":555,"value":556,"toc":2706,"icon":392},"minimark",[557,2612,2616,2621,2655,2659,2668,2683,2686,2690,2703],[558,559,562,1698,1833,1857,1976,2368],"code-tree",{":expand-all":560,"default-value":561},"true","app\u002Fentry-server.ts",[563,564,569],"pre",{"className":565,"code":566,"filename":567,"language":568,"meta":5,"style":5},"language-html shiki shiki-themes github-light github-dark github-dark","\u003C!doctype html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"UTF-8\" \u002F>\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \u002F>\n    \u003Ctitle>Nitro Quotes\u003C\u002Ftitle>\n    \u003Cstyle>\n      @import \"tailwindcss\";\n    \u003C\u002Fstyle>\n  \u003C\u002Fhead>\n  \u003Cbody\n    class=\"min-h-screen flex items-center justify-center p-5 bg-gradient-to-br from-indigo-500 to-purple-600 font-sans\"\n  >\n    \u003Cdiv class=\"max-w-xl w-full text-center text-white\">\n      \u003Cdiv class=\"bg-white\u002F10 backdrop-blur-md rounded-2xl p-10 shadow-xl border border-white\u002F20\">\n        \u003Cdiv\n          id=\"quote\"\n          class=\"text-[clamp(1.2rem,4vw,1.8rem)] leading-relaxed mb-5 font-light opacity-70 transition-opacity duration-500\"\n        >\n          \u003C!--ssr-outlet-->\n        \u003C\u002Fdiv>\n        \u003Cdiv\n          id=\"author\"\n          class=\"text-[clamp(1rem,3vw,1.2rem)] opacity-0 font-normal transition-opacity duration-500\"\n        >\u003C\u002Fdiv>\n        \u003Cbutton\n          id=\"refresh-btn\"\n          class=\"mt-5 bg-white\u002F20 border border-white\u002F30 text-white px-6 py-3 rounded-full cursor-pointer text-sm transition hover:bg-white\u002F30 hover:-translate-y-0.5\"\n          onclick=\"fetchQuote()\"\n        >\n          New Quote\n        \u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"mt-8 text-sm opacity-60\">\n        Powered by\n        \u003Ca\n          class=\"text-white no-underline border-b border-white\u002F30 hover:border-white transition-colors\"\n          href=\"https:\u002F\u002Fvitejs.dev\u002F\"\n          >Vite\u003C\u002Fa\n        >\n        and\n        \u003Ca\n          class=\"text-white no-underline border-b border-white\u002F30 hover:border-white transition-colors\"\n          href=\"https:\u002F\u002Fgithub.com\u002Fnitrojs\u002Fnitro\"\n          >Nitro v3\u003C\u002Fa\n        >.\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cscript>\n      const quoteElement = document.getElementById(\"quote\");\n      const authorElement = document.getElementById(\"author\");\n      const refreshBtn = document.getElementById(\"refresh-btn\");\n\n      const baseQuoteClasses =\n        \"text-[clamp(1.2rem,4vw,1.8rem)] leading-relaxed mb-5 font-light transition-opacity duration-500\";\n      const loadingQuoteClasses = baseQuoteClasses + \" opacity-70\";\n      const normalQuoteClasses = baseQuoteClasses + \" opacity-100\";\n      const errorQuoteClasses = baseQuoteClasses + \" text-red-400 opacity-100 text-sm\";\n\n      const baseAuthorClasses =\n        \"text-[clamp(1rem,3vw,1.2rem)] font-normal transition-opacity duration-500\";\n      const hiddenAuthorClasses = baseAuthorClasses + \" opacity-0\";\n      const visibleAuthorClasses = baseAuthorClasses + \" opacity-80\";\n\n      async function fetchQuote() {\n        try {\n          quoteElement.textContent = \"Loading...\";\n          quoteElement.className = loadingQuoteClasses;\n          authorElement.textContent = \"\";\n          authorElement.className = hiddenAuthorClasses;\n          refreshBtn.style.display = \"none\";\n          const response = await fetch(\"\u002Fquote\");\n          if (!response.ok) {\n            throw new Error(`HTTP error! status: ${response.status}`);\n          }\n          const { text, author } = await response.json();\n          quoteElement.textContent = `\"${text}\"`;\n          quoteElement.className = normalQuoteClasses;\n          authorElement.textContent = `— ${author}`;\n          authorElement.className = visibleAuthorClasses;\n        } catch (error) {\n          console.error(\"Error fetching quote:\", error);\n          quoteElement.textContent = \"Failed to load quote. Please try again.\";\n          quoteElement.className = errorQuoteClasses;\n          authorElement.textContent = \"\";\n          authorElement.className = hiddenAuthorClasses;\n        } finally {\n          refreshBtn.style.display = \"inline-block\";\n        }\n      }\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n","index.html","html",[570,571,572,592,612,623,643,668,683,693,706,716,726,734,745,751,769,786,795,806,817,823,830,840,847,857,867,877,885,895,905,922,927,933,943,953,969,975,983,993,1004,1012,1017,1023,1030,1039,1049,1057,1063,1072,1081,1087,1097,1125,1146,1167,1172,1183,1191,1212,1231,1250,1255,1265,1273,1293,1312,1317,1332,1341,1354,1365,1378,1389,1402,1426,1441,1472,1478,1511,1528,1538,1554,1564,1576,1593,1605,1615,1626,1635,1645,1657,1663,1669,1678,1688],"code",{"__ignoreMap":5},[573,574,577,581,585,589],"span",{"class":575,"line":576},"line",1,[573,578,580],{"class":579},"slsVL","\u003C!",[573,582,584],{"class":583},"sByVh","doctype",[573,586,588],{"class":587},"shcOC"," html",[573,590,591],{"class":579},">\n",[573,593,595,598,600,603,606,610],{"class":575,"line":594},2,[573,596,597],{"class":579},"\u003C",[573,599,568],{"class":583},[573,601,602],{"class":587}," lang",[573,604,605],{"class":579},"=",[573,607,609],{"class":608},"sfrk1","\"en\"",[573,611,591],{"class":579},[573,613,615,618,621],{"class":575,"line":614},3,[573,616,617],{"class":579},"  \u003C",[573,619,620],{"class":583},"head",[573,622,591],{"class":579},[573,624,626,629,632,635,637,640],{"class":575,"line":625},4,[573,627,628],{"class":579},"    \u003C",[573,630,631],{"class":583},"meta",[573,633,634],{"class":587}," charset",[573,636,605],{"class":579},[573,638,639],{"class":608},"\"UTF-8\"",[573,641,642],{"class":579}," \u002F>\n",[573,644,646,648,650,653,655,658,661,663,666],{"class":575,"line":645},5,[573,647,628],{"class":579},[573,649,631],{"class":583},[573,651,652],{"class":587}," name",[573,654,605],{"class":579},[573,656,657],{"class":608},"\"viewport\"",[573,659,660],{"class":587}," content",[573,662,605],{"class":579},[573,664,665],{"class":608},"\"width=device-width, initial-scale=1.0\"",[573,667,642],{"class":579},[573,669,671,673,676,679,681],{"class":575,"line":670},6,[573,672,628],{"class":579},[573,674,675],{"class":583},"title",[573,677,678],{"class":579},">Nitro Quotes\u003C\u002F",[573,680,675],{"class":583},[573,682,591],{"class":579},[573,684,686,688,691],{"class":575,"line":685},7,[573,687,628],{"class":579},[573,689,690],{"class":583},"style",[573,692,591],{"class":579},[573,694,696,700,703],{"class":575,"line":695},8,[573,697,699],{"class":698},"so5gQ","      @import",[573,701,702],{"class":608}," \"tailwindcss\"",[573,704,705],{"class":579},";\n",[573,707,709,712,714],{"class":575,"line":708},9,[573,710,711],{"class":579},"    \u003C\u002F",[573,713,690],{"class":583},[573,715,591],{"class":579},[573,717,719,722,724],{"class":575,"line":718},10,[573,720,721],{"class":579},"  \u003C\u002F",[573,723,620],{"class":583},[573,725,591],{"class":579},[573,727,729,731],{"class":575,"line":728},11,[573,730,617],{"class":579},[573,732,733],{"class":583},"body\n",[573,735,737,740,742],{"class":575,"line":736},12,[573,738,739],{"class":587},"    class",[573,741,605],{"class":579},[573,743,744],{"class":608},"\"min-h-screen flex items-center justify-center p-5 bg-gradient-to-br from-indigo-500 to-purple-600 font-sans\"\n",[573,746,748],{"class":575,"line":747},13,[573,749,750],{"class":579},"  >\n",[573,752,754,756,759,762,764,767],{"class":575,"line":753},14,[573,755,628],{"class":579},[573,757,758],{"class":583},"div",[573,760,761],{"class":587}," class",[573,763,605],{"class":579},[573,765,766],{"class":608},"\"max-w-xl w-full text-center text-white\"",[573,768,591],{"class":579},[573,770,772,775,777,779,781,784],{"class":575,"line":771},15,[573,773,774],{"class":579},"      \u003C",[573,776,758],{"class":583},[573,778,761],{"class":587},[573,780,605],{"class":579},[573,782,783],{"class":608},"\"bg-white\u002F10 backdrop-blur-md rounded-2xl p-10 shadow-xl border border-white\u002F20\"",[573,785,591],{"class":579},[573,787,789,792],{"class":575,"line":788},16,[573,790,791],{"class":579},"        \u003C",[573,793,794],{"class":583},"div\n",[573,796,798,801,803],{"class":575,"line":797},17,[573,799,800],{"class":587},"          id",[573,802,605],{"class":579},[573,804,805],{"class":608},"\"quote\"\n",[573,807,809,812,814],{"class":575,"line":808},18,[573,810,811],{"class":587},"          class",[573,813,605],{"class":579},[573,815,816],{"class":608},"\"text-[clamp(1.2rem,4vw,1.8rem)] leading-relaxed mb-5 font-light opacity-70 transition-opacity duration-500\"\n",[573,818,820],{"class":575,"line":819},19,[573,821,822],{"class":579},"        >\n",[573,824,826],{"class":575,"line":825},20,[573,827,829],{"class":828},"sCsY4","          \u003C!--ssr-outlet-->\n",[573,831,833,836,838],{"class":575,"line":832},21,[573,834,835],{"class":579},"        \u003C\u002F",[573,837,758],{"class":583},[573,839,591],{"class":579},[573,841,843,845],{"class":575,"line":842},22,[573,844,791],{"class":579},[573,846,794],{"class":583},[573,848,850,852,854],{"class":575,"line":849},23,[573,851,800],{"class":587},[573,853,605],{"class":579},[573,855,856],{"class":608},"\"author\"\n",[573,858,860,862,864],{"class":575,"line":859},24,[573,861,811],{"class":587},[573,863,605],{"class":579},[573,865,866],{"class":608},"\"text-[clamp(1rem,3vw,1.2rem)] opacity-0 font-normal transition-opacity duration-500\"\n",[573,868,870,873,875],{"class":575,"line":869},25,[573,871,872],{"class":579},"        >\u003C\u002F",[573,874,758],{"class":583},[573,876,591],{"class":579},[573,878,880,882],{"class":575,"line":879},26,[573,881,791],{"class":579},[573,883,884],{"class":583},"button\n",[573,886,888,890,892],{"class":575,"line":887},27,[573,889,800],{"class":587},[573,891,605],{"class":579},[573,893,894],{"class":608},"\"refresh-btn\"\n",[573,896,898,900,902],{"class":575,"line":897},28,[573,899,811],{"class":587},[573,901,605],{"class":579},[573,903,904],{"class":608},"\"mt-5 bg-white\u002F20 border border-white\u002F30 text-white px-6 py-3 rounded-full cursor-pointer text-sm transition hover:bg-white\u002F30 hover:-translate-y-0.5\"\n",[573,906,908,911,913,916,919],{"class":575,"line":907},29,[573,909,910],{"class":587},"          onclick",[573,912,605],{"class":579},[573,914,915],{"class":608},"\"",[573,917,918],{"class":587},"fetchQuote",[573,920,921],{"class":608},"()\"\n",[573,923,925],{"class":575,"line":924},30,[573,926,822],{"class":579},[573,928,930],{"class":575,"line":929},31,[573,931,932],{"class":579},"          New Quote\n",[573,934,936,938,941],{"class":575,"line":935},32,[573,937,835],{"class":579},[573,939,940],{"class":583},"button",[573,942,591],{"class":579},[573,944,946,949,951],{"class":575,"line":945},33,[573,947,948],{"class":579},"      \u003C\u002F",[573,950,758],{"class":583},[573,952,591],{"class":579},[573,954,956,958,960,962,964,967],{"class":575,"line":955},34,[573,957,774],{"class":579},[573,959,758],{"class":583},[573,961,761],{"class":587},[573,963,605],{"class":579},[573,965,966],{"class":608},"\"mt-8 text-sm opacity-60\"",[573,968,591],{"class":579},[573,970,972],{"class":575,"line":971},35,[573,973,974],{"class":579},"        Powered by\n",[573,976,978,980],{"class":575,"line":977},36,[573,979,791],{"class":579},[573,981,982],{"class":583},"a\n",[573,984,986,988,990],{"class":575,"line":985},37,[573,987,811],{"class":587},[573,989,605],{"class":579},[573,991,992],{"class":608},"\"text-white no-underline border-b border-white\u002F30 hover:border-white transition-colors\"\n",[573,994,996,999,1001],{"class":575,"line":995},38,[573,997,998],{"class":587},"          href",[573,1000,605],{"class":579},[573,1002,1003],{"class":608},"\"https:\u002F\u002Fvitejs.dev\u002F\"\n",[573,1005,1007,1010],{"class":575,"line":1006},39,[573,1008,1009],{"class":579},"          >Vite\u003C\u002F",[573,1011,982],{"class":583},[573,1013,1015],{"class":575,"line":1014},40,[573,1016,822],{"class":579},[573,1018,1020],{"class":575,"line":1019},41,[573,1021,1022],{"class":579},"        and\n",[573,1024,1026,1028],{"class":575,"line":1025},42,[573,1027,791],{"class":579},[573,1029,982],{"class":583},[573,1031,1033,1035,1037],{"class":575,"line":1032},43,[573,1034,811],{"class":587},[573,1036,605],{"class":579},[573,1038,992],{"class":608},[573,1040,1042,1044,1046],{"class":575,"line":1041},44,[573,1043,998],{"class":587},[573,1045,605],{"class":579},[573,1047,1048],{"class":608},"\"https:\u002F\u002Fgithub.com\u002Fnitrojs\u002Fnitro\"\n",[573,1050,1052,1055],{"class":575,"line":1051},45,[573,1053,1054],{"class":579},"          >Nitro v3\u003C\u002F",[573,1056,982],{"class":583},[573,1058,1060],{"class":575,"line":1059},46,[573,1061,1062],{"class":579},"        >.\n",[573,1064,1066,1068,1070],{"class":575,"line":1065},47,[573,1067,948],{"class":579},[573,1069,758],{"class":583},[573,1071,591],{"class":579},[573,1073,1075,1077,1079],{"class":575,"line":1074},48,[573,1076,711],{"class":579},[573,1078,758],{"class":583},[573,1080,591],{"class":579},[573,1082,1084],{"class":575,"line":1083},49,[573,1085,1086],{"emptyLinePlaceholder":449},"\n",[573,1088,1090,1092,1095],{"class":575,"line":1089},50,[573,1091,628],{"class":579},[573,1093,1094],{"class":583},"script",[573,1096,591],{"class":579},[573,1098,1100,1103,1107,1110,1113,1116,1119,1122],{"class":575,"line":1099},51,[573,1101,1102],{"class":698},"      const",[573,1104,1106],{"class":1105},"suiK_"," quoteElement",[573,1108,1109],{"class":698}," =",[573,1111,1112],{"class":579}," document.",[573,1114,1115],{"class":587},"getElementById",[573,1117,1118],{"class":579},"(",[573,1120,1121],{"class":608},"\"quote\"",[573,1123,1124],{"class":579},");\n",[573,1126,1128,1130,1133,1135,1137,1139,1141,1144],{"class":575,"line":1127},52,[573,1129,1102],{"class":698},[573,1131,1132],{"class":1105}," authorElement",[573,1134,1109],{"class":698},[573,1136,1112],{"class":579},[573,1138,1115],{"class":587},[573,1140,1118],{"class":579},[573,1142,1143],{"class":608},"\"author\"",[573,1145,1124],{"class":579},[573,1147,1149,1151,1154,1156,1158,1160,1162,1165],{"class":575,"line":1148},53,[573,1150,1102],{"class":698},[573,1152,1153],{"class":1105}," refreshBtn",[573,1155,1109],{"class":698},[573,1157,1112],{"class":579},[573,1159,1115],{"class":587},[573,1161,1118],{"class":579},[573,1163,1164],{"class":608},"\"refresh-btn\"",[573,1166,1124],{"class":579},[573,1168,1170],{"class":575,"line":1169},54,[573,1171,1086],{"emptyLinePlaceholder":449},[573,1173,1175,1177,1180],{"class":575,"line":1174},55,[573,1176,1102],{"class":698},[573,1178,1179],{"class":1105}," baseQuoteClasses",[573,1181,1182],{"class":698}," =\n",[573,1184,1186,1189],{"class":575,"line":1185},56,[573,1187,1188],{"class":608},"        \"text-[clamp(1.2rem,4vw,1.8rem)] leading-relaxed mb-5 font-light transition-opacity duration-500\"",[573,1190,705],{"class":579},[573,1192,1194,1196,1199,1201,1204,1207,1210],{"class":575,"line":1193},57,[573,1195,1102],{"class":698},[573,1197,1198],{"class":1105}," loadingQuoteClasses",[573,1200,1109],{"class":698},[573,1202,1203],{"class":579}," baseQuoteClasses ",[573,1205,1206],{"class":698},"+",[573,1208,1209],{"class":608}," \" opacity-70\"",[573,1211,705],{"class":579},[573,1213,1215,1217,1220,1222,1224,1226,1229],{"class":575,"line":1214},58,[573,1216,1102],{"class":698},[573,1218,1219],{"class":1105}," normalQuoteClasses",[573,1221,1109],{"class":698},[573,1223,1203],{"class":579},[573,1225,1206],{"class":698},[573,1227,1228],{"class":608}," \" opacity-100\"",[573,1230,705],{"class":579},[573,1232,1234,1236,1239,1241,1243,1245,1248],{"class":575,"line":1233},59,[573,1235,1102],{"class":698},[573,1237,1238],{"class":1105}," errorQuoteClasses",[573,1240,1109],{"class":698},[573,1242,1203],{"class":579},[573,1244,1206],{"class":698},[573,1246,1247],{"class":608}," \" text-red-400 opacity-100 text-sm\"",[573,1249,705],{"class":579},[573,1251,1253],{"class":575,"line":1252},60,[573,1254,1086],{"emptyLinePlaceholder":449},[573,1256,1258,1260,1263],{"class":575,"line":1257},61,[573,1259,1102],{"class":698},[573,1261,1262],{"class":1105}," baseAuthorClasses",[573,1264,1182],{"class":698},[573,1266,1268,1271],{"class":575,"line":1267},62,[573,1269,1270],{"class":608},"        \"text-[clamp(1rem,3vw,1.2rem)] font-normal transition-opacity duration-500\"",[573,1272,705],{"class":579},[573,1274,1276,1278,1281,1283,1286,1288,1291],{"class":575,"line":1275},63,[573,1277,1102],{"class":698},[573,1279,1280],{"class":1105}," hiddenAuthorClasses",[573,1282,1109],{"class":698},[573,1284,1285],{"class":579}," baseAuthorClasses ",[573,1287,1206],{"class":698},[573,1289,1290],{"class":608}," \" opacity-0\"",[573,1292,705],{"class":579},[573,1294,1296,1298,1301,1303,1305,1307,1310],{"class":575,"line":1295},64,[573,1297,1102],{"class":698},[573,1299,1300],{"class":1105}," visibleAuthorClasses",[573,1302,1109],{"class":698},[573,1304,1285],{"class":579},[573,1306,1206],{"class":698},[573,1308,1309],{"class":608}," \" opacity-80\"",[573,1311,705],{"class":579},[573,1313,1315],{"class":575,"line":1314},65,[573,1316,1086],{"emptyLinePlaceholder":449},[573,1318,1320,1323,1326,1329],{"class":575,"line":1319},66,[573,1321,1322],{"class":698},"      async",[573,1324,1325],{"class":698}," function",[573,1327,1328],{"class":587}," fetchQuote",[573,1330,1331],{"class":579},"() {\n",[573,1333,1335,1338],{"class":575,"line":1334},67,[573,1336,1337],{"class":698},"        try",[573,1339,1340],{"class":579}," {\n",[573,1342,1344,1347,1349,1352],{"class":575,"line":1343},68,[573,1345,1346],{"class":579},"          quoteElement.textContent ",[573,1348,605],{"class":698},[573,1350,1351],{"class":608}," \"Loading...\"",[573,1353,705],{"class":579},[573,1355,1357,1360,1362],{"class":575,"line":1356},69,[573,1358,1359],{"class":579},"          quoteElement.className ",[573,1361,605],{"class":698},[573,1363,1364],{"class":579}," loadingQuoteClasses;\n",[573,1366,1368,1371,1373,1376],{"class":575,"line":1367},70,[573,1369,1370],{"class":579},"          authorElement.textContent ",[573,1372,605],{"class":698},[573,1374,1375],{"class":608}," \"\"",[573,1377,705],{"class":579},[573,1379,1381,1384,1386],{"class":575,"line":1380},71,[573,1382,1383],{"class":579},"          authorElement.className ",[573,1385,605],{"class":698},[573,1387,1388],{"class":579}," hiddenAuthorClasses;\n",[573,1390,1392,1395,1397,1400],{"class":575,"line":1391},72,[573,1393,1394],{"class":579},"          refreshBtn.style.display ",[573,1396,605],{"class":698},[573,1398,1399],{"class":608}," \"none\"",[573,1401,705],{"class":579},[573,1403,1405,1408,1411,1413,1416,1419,1421,1424],{"class":575,"line":1404},73,[573,1406,1407],{"class":698},"          const",[573,1409,1410],{"class":1105}," response",[573,1412,1109],{"class":698},[573,1414,1415],{"class":698}," await",[573,1417,1418],{"class":587}," fetch",[573,1420,1118],{"class":579},[573,1422,1423],{"class":608},"\"\u002Fquote\"",[573,1425,1124],{"class":579},[573,1427,1429,1432,1435,1438],{"class":575,"line":1428},74,[573,1430,1431],{"class":698},"          if",[573,1433,1434],{"class":579}," (",[573,1436,1437],{"class":698},"!",[573,1439,1440],{"class":579},"response.ok) {\n",[573,1442,1444,1447,1450,1453,1455,1458,1461,1464,1467,1470],{"class":575,"line":1443},75,[573,1445,1446],{"class":698},"            throw",[573,1448,1449],{"class":698}," new",[573,1451,1452],{"class":587}," Error",[573,1454,1118],{"class":579},[573,1456,1457],{"class":608},"`HTTP error! status: ${",[573,1459,1460],{"class":579},"response",[573,1462,1463],{"class":608},".",[573,1465,1466],{"class":579},"status",[573,1468,1469],{"class":608},"}`",[573,1471,1124],{"class":579},[573,1473,1475],{"class":575,"line":1474},76,[573,1476,1477],{"class":579},"          }\n",[573,1479,1481,1483,1486,1489,1492,1495,1498,1500,1502,1505,1508],{"class":575,"line":1480},77,[573,1482,1407],{"class":698},[573,1484,1485],{"class":579}," { ",[573,1487,1488],{"class":1105},"text",[573,1490,1491],{"class":579},", ",[573,1493,1494],{"class":1105},"author",[573,1496,1497],{"class":579}," } ",[573,1499,605],{"class":698},[573,1501,1415],{"class":698},[573,1503,1504],{"class":579}," response.",[573,1506,1507],{"class":587},"json",[573,1509,1510],{"class":579},"();\n",[573,1512,1514,1516,1518,1521,1523,1526],{"class":575,"line":1513},78,[573,1515,1346],{"class":579},[573,1517,605],{"class":698},[573,1519,1520],{"class":608}," `\"${",[573,1522,1488],{"class":579},[573,1524,1525],{"class":608},"}\"`",[573,1527,705],{"class":579},[573,1529,1531,1533,1535],{"class":575,"line":1530},79,[573,1532,1359],{"class":579},[573,1534,605],{"class":698},[573,1536,1537],{"class":579}," normalQuoteClasses;\n",[573,1539,1541,1543,1545,1548,1550,1552],{"class":575,"line":1540},80,[573,1542,1370],{"class":579},[573,1544,605],{"class":698},[573,1546,1547],{"class":608}," `— ${",[573,1549,1494],{"class":579},[573,1551,1469],{"class":608},[573,1553,705],{"class":579},[573,1555,1557,1559,1561],{"class":575,"line":1556},81,[573,1558,1383],{"class":579},[573,1560,605],{"class":698},[573,1562,1563],{"class":579}," visibleAuthorClasses;\n",[573,1565,1567,1570,1573],{"class":575,"line":1566},82,[573,1568,1569],{"class":579},"        } ",[573,1571,1572],{"class":698},"catch",[573,1574,1575],{"class":579}," (error) {\n",[573,1577,1579,1582,1585,1587,1590],{"class":575,"line":1578},83,[573,1580,1581],{"class":579},"          console.",[573,1583,1584],{"class":587},"error",[573,1586,1118],{"class":579},[573,1588,1589],{"class":608},"\"Error fetching quote:\"",[573,1591,1592],{"class":579},", error);\n",[573,1594,1596,1598,1600,1603],{"class":575,"line":1595},84,[573,1597,1346],{"class":579},[573,1599,605],{"class":698},[573,1601,1602],{"class":608}," \"Failed to load quote. Please try again.\"",[573,1604,705],{"class":579},[573,1606,1608,1610,1612],{"class":575,"line":1607},85,[573,1609,1359],{"class":579},[573,1611,605],{"class":698},[573,1613,1614],{"class":579}," errorQuoteClasses;\n",[573,1616,1618,1620,1622,1624],{"class":575,"line":1617},86,[573,1619,1370],{"class":579},[573,1621,605],{"class":698},[573,1623,1375],{"class":608},[573,1625,705],{"class":579},[573,1627,1629,1631,1633],{"class":575,"line":1628},87,[573,1630,1383],{"class":579},[573,1632,605],{"class":698},[573,1634,1388],{"class":579},[573,1636,1638,1640,1643],{"class":575,"line":1637},88,[573,1639,1569],{"class":579},[573,1641,1642],{"class":698},"finally",[573,1644,1340],{"class":579},[573,1646,1648,1650,1652,1655],{"class":575,"line":1647},89,[573,1649,1394],{"class":579},[573,1651,605],{"class":698},[573,1653,1654],{"class":608}," \"inline-block\"",[573,1656,705],{"class":579},[573,1658,1660],{"class":575,"line":1659},90,[573,1661,1662],{"class":579},"        }\n",[573,1664,1666],{"class":575,"line":1665},91,[573,1667,1668],{"class":579},"      }\n",[573,1670,1672,1674,1676],{"class":575,"line":1671},92,[573,1673,711],{"class":579},[573,1675,1094],{"class":583},[573,1677,591],{"class":579},[573,1679,1681,1683,1686],{"class":575,"line":1680},93,[573,1682,721],{"class":579},[573,1684,1685],{"class":583},"body",[573,1687,591],{"class":579},[573,1689,1691,1694,1696],{"class":575,"line":1690},94,[573,1692,1693],{"class":579},"\u003C\u002F",[573,1695,568],{"class":583},[573,1697,591],{"class":579},[563,1699,1703],{"className":1700,"code":1701,"filename":1702,"language":1507,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"vite build\",\n    \"dev\": \"vite dev\",\n    \"preview\": \"vite preview\"\n  },\n  \"devDependencies\": {\n    \"@tailwindcss\u002Fvite\": \"^4.2.2\",\n    \"nitro\": \"latest\",\n    \"tailwindcss\": \"^4.2.2\",\n    \"vite\": \"latest\"\n  }\n}\n","package.json",[570,1704,1705,1710,1724,1732,1744,1756,1766,1771,1778,1790,1802,1813,1823,1828],{"__ignoreMap":5},[573,1706,1707],{"class":575,"line":576},[573,1708,1709],{"class":579},"{\n",[573,1711,1712,1715,1718,1721],{"class":575,"line":594},[573,1713,1714],{"class":1105},"  \"type\"",[573,1716,1717],{"class":579},": ",[573,1719,1720],{"class":608},"\"module\"",[573,1722,1723],{"class":579},",\n",[573,1725,1726,1729],{"class":575,"line":614},[573,1727,1728],{"class":1105},"  \"scripts\"",[573,1730,1731],{"class":579},": {\n",[573,1733,1734,1737,1739,1742],{"class":575,"line":625},[573,1735,1736],{"class":1105},"    \"build\"",[573,1738,1717],{"class":579},[573,1740,1741],{"class":608},"\"vite build\"",[573,1743,1723],{"class":579},[573,1745,1746,1749,1751,1754],{"class":575,"line":645},[573,1747,1748],{"class":1105},"    \"dev\"",[573,1750,1717],{"class":579},[573,1752,1753],{"class":608},"\"vite dev\"",[573,1755,1723],{"class":579},[573,1757,1758,1761,1763],{"class":575,"line":670},[573,1759,1760],{"class":1105},"    \"preview\"",[573,1762,1717],{"class":579},[573,1764,1765],{"class":608},"\"vite preview\"\n",[573,1767,1768],{"class":575,"line":685},[573,1769,1770],{"class":579},"  },\n",[573,1772,1773,1776],{"class":575,"line":695},[573,1774,1775],{"class":1105},"  \"devDependencies\"",[573,1777,1731],{"class":579},[573,1779,1780,1783,1785,1788],{"class":575,"line":708},[573,1781,1782],{"class":1105},"    \"@tailwindcss\u002Fvite\"",[573,1784,1717],{"class":579},[573,1786,1787],{"class":608},"\"^4.2.2\"",[573,1789,1723],{"class":579},[573,1791,1792,1795,1797,1800],{"class":575,"line":718},[573,1793,1794],{"class":1105},"    \"nitro\"",[573,1796,1717],{"class":579},[573,1798,1799],{"class":608},"\"latest\"",[573,1801,1723],{"class":579},[573,1803,1804,1807,1809,1811],{"class":575,"line":728},[573,1805,1806],{"class":1105},"    \"tailwindcss\"",[573,1808,1717],{"class":579},[573,1810,1787],{"class":608},[573,1812,1723],{"class":579},[573,1814,1815,1818,1820],{"class":575,"line":736},[573,1816,1817],{"class":1105},"    \"vite\"",[573,1819,1717],{"class":579},[573,1821,1822],{"class":608},"\"latest\"\n",[573,1824,1825],{"class":575,"line":747},[573,1826,1827],{"class":579},"  }\n",[573,1829,1830],{"class":575,"line":753},[573,1831,1832],{"class":579},"}\n",[563,1834,1837],{"className":1700,"code":1835,"filename":1836,"language":1507,"meta":5,"style":5},"{\n  \"extends\": \"nitro\u002Ftsconfig\"\n}\n","tsconfig.json",[570,1838,1839,1843,1853],{"__ignoreMap":5},[573,1840,1841],{"class":575,"line":576},[573,1842,1709],{"class":579},[573,1844,1845,1848,1850],{"class":575,"line":594},[573,1846,1847],{"class":1105},"  \"extends\"",[573,1849,1717],{"class":579},[573,1851,1852],{"class":608},"\"nitro\u002Ftsconfig\"\n",[573,1854,1855],{"class":575,"line":614},[573,1856,1832],{"class":579},[563,1858,1863],{"className":1859,"code":1860,"filename":1861,"language":1862,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro\u002Fvite\";\n\nimport tailwindcss from \"@tailwindcss\u002Fvite\";\n\nexport default defineConfig({\n  plugins: [\n    nitro({\n      serverDir: \".\u002F\",\n    }),\n    tailwindcss(),\n  ],\n});\n","vite.config.ts","ts",[570,1864,1865,1881,1895,1899,1913,1917,1931,1936,1943,1953,1958,1966,1971],{"__ignoreMap":5},[573,1866,1867,1870,1873,1876,1879],{"class":575,"line":576},[573,1868,1869],{"class":698},"import",[573,1871,1872],{"class":579}," { defineConfig } ",[573,1874,1875],{"class":698},"from",[573,1877,1878],{"class":608}," \"vite\"",[573,1880,705],{"class":579},[573,1882,1883,1885,1888,1890,1893],{"class":575,"line":594},[573,1884,1869],{"class":698},[573,1886,1887],{"class":579}," { nitro } ",[573,1889,1875],{"class":698},[573,1891,1892],{"class":608}," \"nitro\u002Fvite\"",[573,1894,705],{"class":579},[573,1896,1897],{"class":575,"line":614},[573,1898,1086],{"emptyLinePlaceholder":449},[573,1900,1901,1903,1906,1908,1911],{"class":575,"line":625},[573,1902,1869],{"class":698},[573,1904,1905],{"class":579}," tailwindcss ",[573,1907,1875],{"class":698},[573,1909,1910],{"class":608}," \"@tailwindcss\u002Fvite\"",[573,1912,705],{"class":579},[573,1914,1915],{"class":575,"line":645},[573,1916,1086],{"emptyLinePlaceholder":449},[573,1918,1919,1922,1925,1928],{"class":575,"line":670},[573,1920,1921],{"class":698},"export",[573,1923,1924],{"class":698}," default",[573,1926,1927],{"class":587}," defineConfig",[573,1929,1930],{"class":579},"({\n",[573,1932,1933],{"class":575,"line":685},[573,1934,1935],{"class":579},"  plugins: [\n",[573,1937,1938,1941],{"class":575,"line":695},[573,1939,1940],{"class":587},"    nitro",[573,1942,1930],{"class":579},[573,1944,1945,1948,1951],{"class":575,"line":708},[573,1946,1947],{"class":579},"      serverDir: ",[573,1949,1950],{"class":608},"\".\u002F\"",[573,1952,1723],{"class":579},[573,1954,1955],{"class":575,"line":718},[573,1956,1957],{"class":579},"    }),\n",[573,1959,1960,1963],{"class":575,"line":728},[573,1961,1962],{"class":587},"    tailwindcss",[573,1964,1965],{"class":579},"(),\n",[573,1967,1968],{"class":575,"line":736},[573,1969,1970],{"class":579},"  ],\n",[573,1972,1973],{"class":575,"line":747},[573,1974,1975],{"class":579},"});\n",[563,1977,1979],{"className":1859,"code":1978,"filename":561,"language":1862,"meta":5,"style":5},"import { fetch } from \"nitro\";\n\nexport default {\n  async fetch() {\n    const quote = (await fetch(\"\u002Fquote\").then((res) => res.json())) as {\n      text: string;\n    };\n    return tokenizedStream(quote.text, 50);\n  },\n};\n\nfunction tokenizedStream(text: string, delay: number): ReadableStream\u003CUint8Array> {\n  const tokens = text.split(\" \");\n  return new ReadableStream({\n    start(controller) {\n      let index = 0;\n      function push() {\n        if (index \u003C tokens.length) {\n          const word = tokens[index++] + (index \u003C tokens.length ? \" \" : \"\");\n          controller.enqueue(new TextEncoder().encode(word));\n          setTimeout(push, delay);\n        } else {\n          controller.close();\n        }\n      }\n      push();\n    },\n  });\n}\n",[570,1980,1981,1995,1999,2007,2016,2069,2082,2087,2103,2107,2112,2116,2157,2180,2191,2204,2219,2229,2247,2288,2313,2321,2330,2339,2343,2347,2354,2359,2364],{"__ignoreMap":5},[573,1982,1983,1985,1988,1990,1993],{"class":575,"line":576},[573,1984,1869],{"class":698},[573,1986,1987],{"class":579}," { fetch } ",[573,1989,1875],{"class":698},[573,1991,1992],{"class":608}," \"nitro\"",[573,1994,705],{"class":579},[573,1996,1997],{"class":575,"line":594},[573,1998,1086],{"emptyLinePlaceholder":449},[573,2000,2001,2003,2005],{"class":575,"line":614},[573,2002,1921],{"class":698},[573,2004,1924],{"class":698},[573,2006,1340],{"class":579},[573,2008,2009,2012,2014],{"class":575,"line":625},[573,2010,2011],{"class":698},"  async",[573,2013,1418],{"class":587},[573,2015,1331],{"class":579},[573,2017,2018,2021,2024,2026,2028,2031,2033,2035,2037,2040,2043,2046,2050,2053,2056,2059,2061,2064,2067],{"class":575,"line":645},[573,2019,2020],{"class":698},"    const",[573,2022,2023],{"class":1105}," quote",[573,2025,1109],{"class":698},[573,2027,1434],{"class":579},[573,2029,2030],{"class":698},"await",[573,2032,1418],{"class":587},[573,2034,1118],{"class":579},[573,2036,1423],{"class":608},[573,2038,2039],{"class":579},").",[573,2041,2042],{"class":587},"then",[573,2044,2045],{"class":579},"((",[573,2047,2049],{"class":2048},"sQHwn","res",[573,2051,2052],{"class":579},") ",[573,2054,2055],{"class":698},"=>",[573,2057,2058],{"class":579}," res.",[573,2060,1507],{"class":587},[573,2062,2063],{"class":579},"())) ",[573,2065,2066],{"class":698},"as",[573,2068,1340],{"class":579},[573,2070,2071,2074,2077,2080],{"class":575,"line":670},[573,2072,2073],{"class":2048},"      text",[573,2075,2076],{"class":698},":",[573,2078,2079],{"class":1105}," string",[573,2081,705],{"class":579},[573,2083,2084],{"class":575,"line":685},[573,2085,2086],{"class":579},"    };\n",[573,2088,2089,2092,2095,2098,2101],{"class":575,"line":695},[573,2090,2091],{"class":698},"    return",[573,2093,2094],{"class":587}," tokenizedStream",[573,2096,2097],{"class":579},"(quote.text, ",[573,2099,2100],{"class":1105},"50",[573,2102,1124],{"class":579},[573,2104,2105],{"class":575,"line":708},[573,2106,1770],{"class":579},[573,2108,2109],{"class":575,"line":718},[573,2110,2111],{"class":579},"};\n",[573,2113,2114],{"class":575,"line":728},[573,2115,1086],{"emptyLinePlaceholder":449},[573,2117,2118,2121,2123,2125,2127,2129,2131,2133,2136,2138,2141,2144,2146,2149,2151,2154],{"class":575,"line":736},[573,2119,2120],{"class":698},"function",[573,2122,2094],{"class":587},[573,2124,1118],{"class":579},[573,2126,1488],{"class":2048},[573,2128,2076],{"class":698},[573,2130,2079],{"class":1105},[573,2132,1491],{"class":579},[573,2134,2135],{"class":2048},"delay",[573,2137,2076],{"class":698},[573,2139,2140],{"class":1105}," number",[573,2142,2143],{"class":579},")",[573,2145,2076],{"class":698},[573,2147,2148],{"class":587}," ReadableStream",[573,2150,597],{"class":579},[573,2152,2153],{"class":587},"Uint8Array",[573,2155,2156],{"class":579},"> {\n",[573,2158,2159,2162,2165,2167,2170,2173,2175,2178],{"class":575,"line":747},[573,2160,2161],{"class":698},"  const",[573,2163,2164],{"class":1105}," tokens",[573,2166,1109],{"class":698},[573,2168,2169],{"class":579}," text.",[573,2171,2172],{"class":587},"split",[573,2174,1118],{"class":579},[573,2176,2177],{"class":608},"\" \"",[573,2179,1124],{"class":579},[573,2181,2182,2185,2187,2189],{"class":575,"line":753},[573,2183,2184],{"class":698},"  return",[573,2186,1449],{"class":698},[573,2188,2148],{"class":587},[573,2190,1930],{"class":579},[573,2192,2193,2196,2198,2201],{"class":575,"line":771},[573,2194,2195],{"class":587},"    start",[573,2197,1118],{"class":579},[573,2199,2200],{"class":2048},"controller",[573,2202,2203],{"class":579},") {\n",[573,2205,2206,2209,2212,2214,2217],{"class":575,"line":788},[573,2207,2208],{"class":698},"      let",[573,2210,2211],{"class":579}," index ",[573,2213,605],{"class":698},[573,2215,2216],{"class":1105}," 0",[573,2218,705],{"class":579},[573,2220,2221,2224,2227],{"class":575,"line":797},[573,2222,2223],{"class":698},"      function",[573,2225,2226],{"class":587}," push",[573,2228,1331],{"class":579},[573,2230,2231,2234,2237,2239,2242,2245],{"class":575,"line":808},[573,2232,2233],{"class":698},"        if",[573,2235,2236],{"class":579}," (index ",[573,2238,597],{"class":698},[573,2240,2241],{"class":579}," tokens.",[573,2243,2244],{"class":1105},"length",[573,2246,2203],{"class":579},[573,2248,2249,2251,2254,2256,2259,2262,2265,2267,2269,2271,2273,2275,2278,2281,2284,2286],{"class":575,"line":819},[573,2250,1407],{"class":698},[573,2252,2253],{"class":1105}," word",[573,2255,1109],{"class":698},[573,2257,2258],{"class":579}," tokens[index",[573,2260,2261],{"class":698},"++",[573,2263,2264],{"class":579},"] ",[573,2266,1206],{"class":698},[573,2268,2236],{"class":579},[573,2270,597],{"class":698},[573,2272,2241],{"class":579},[573,2274,2244],{"class":1105},[573,2276,2277],{"class":698}," ?",[573,2279,2280],{"class":608}," \" \"",[573,2282,2283],{"class":698}," :",[573,2285,1375],{"class":608},[573,2287,1124],{"class":579},[573,2289,2290,2293,2296,2298,2301,2304,2307,2310],{"class":575,"line":825},[573,2291,2292],{"class":579},"          controller.",[573,2294,2295],{"class":587},"enqueue",[573,2297,1118],{"class":579},[573,2299,2300],{"class":698},"new",[573,2302,2303],{"class":587}," TextEncoder",[573,2305,2306],{"class":579},"().",[573,2308,2309],{"class":587},"encode",[573,2311,2312],{"class":579},"(word));\n",[573,2314,2315,2318],{"class":575,"line":832},[573,2316,2317],{"class":587},"          setTimeout",[573,2319,2320],{"class":579},"(push, delay);\n",[573,2322,2323,2325,2328],{"class":575,"line":842},[573,2324,1569],{"class":579},[573,2326,2327],{"class":698},"else",[573,2329,1340],{"class":579},[573,2331,2332,2334,2337],{"class":575,"line":849},[573,2333,2292],{"class":579},[573,2335,2336],{"class":587},"close",[573,2338,1510],{"class":579},[573,2340,2341],{"class":575,"line":859},[573,2342,1662],{"class":579},[573,2344,2345],{"class":575,"line":869},[573,2346,1668],{"class":579},[573,2348,2349,2352],{"class":575,"line":879},[573,2350,2351],{"class":587},"      push",[573,2353,1510],{"class":579},[573,2355,2356],{"class":575,"line":887},[573,2357,2358],{"class":579},"    },\n",[573,2360,2361],{"class":575,"line":897},[573,2362,2363],{"class":579},"  });\n",[573,2365,2366],{"class":575,"line":907},[573,2367,1832],{"class":579},[563,2369,2372],{"className":1859,"code":2370,"filename":2371,"language":1862,"meta":5,"style":5},"const QUOTES_URL =\n  \"https:\u002F\u002Fgithub.com\u002FJamesFT\u002FDatabase-Quotes-JSON\u002Fraw\u002Frefs\u002Fheads\u002Fmaster\u002Fquotes.json\";\n\nlet _quotes: Promise\u003Cunknown> | undefined;\n\nfunction getQuotes() {\n  return (_quotes ??= fetch(QUOTES_URL).then((res) => res.json())) as Promise\u003C\n    { quoteText: string; quoteAuthor: string }[]\n  >;\n}\n\nexport default async function quotesHandler() {\n  const quotes = await getQuotes();\n  const randomQuote = quotes[Math.floor(Math.random() * quotes.length)];\n  return Response.json({\n    text: randomQuote.quoteText,\n    author: randomQuote.quoteAuthor,\n  });\n}\n","routes\u002Fquote.ts",[570,2373,2374,2384,2391,2395,2424,2428,2437,2479,2504,2509,2513,2517,2533,2548,2583,2594,2599,2604,2608],{"__ignoreMap":5},[573,2375,2376,2379,2382],{"class":575,"line":576},[573,2377,2378],{"class":698},"const",[573,2380,2381],{"class":1105}," QUOTES_URL",[573,2383,1182],{"class":698},[573,2385,2386,2389],{"class":575,"line":594},[573,2387,2388],{"class":608},"  \"https:\u002F\u002Fgithub.com\u002FJamesFT\u002FDatabase-Quotes-JSON\u002Fraw\u002Frefs\u002Fheads\u002Fmaster\u002Fquotes.json\"",[573,2390,705],{"class":579},[573,2392,2393],{"class":575,"line":614},[573,2394,1086],{"emptyLinePlaceholder":449},[573,2396,2397,2400,2403,2405,2408,2410,2413,2416,2419,2422],{"class":575,"line":625},[573,2398,2399],{"class":698},"let",[573,2401,2402],{"class":579}," _quotes",[573,2404,2076],{"class":698},[573,2406,2407],{"class":587}," Promise",[573,2409,597],{"class":579},[573,2411,2412],{"class":1105},"unknown",[573,2414,2415],{"class":579},"> ",[573,2417,2418],{"class":698},"|",[573,2420,2421],{"class":1105}," undefined",[573,2423,705],{"class":579},[573,2425,2426],{"class":575,"line":645},[573,2427,1086],{"emptyLinePlaceholder":449},[573,2429,2430,2432,2435],{"class":575,"line":670},[573,2431,2120],{"class":698},[573,2433,2434],{"class":587}," getQuotes",[573,2436,1331],{"class":579},[573,2438,2439,2441,2444,2447,2449,2451,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476],{"class":575,"line":685},[573,2440,2184],{"class":698},[573,2442,2443],{"class":579}," (_quotes ",[573,2445,2446],{"class":698},"??=",[573,2448,1418],{"class":587},[573,2450,1118],{"class":579},[573,2452,2453],{"class":1105},"QUOTES_URL",[573,2455,2039],{"class":579},[573,2457,2042],{"class":587},[573,2459,2045],{"class":579},[573,2461,2049],{"class":2048},[573,2463,2052],{"class":579},[573,2465,2055],{"class":698},[573,2467,2058],{"class":579},[573,2469,1507],{"class":587},[573,2471,2063],{"class":579},[573,2473,2066],{"class":698},[573,2475,2407],{"class":587},[573,2477,2478],{"class":579},"\u003C\n",[573,2480,2481,2484,2487,2489,2491,2494,2497,2499,2501],{"class":575,"line":695},[573,2482,2483],{"class":579},"    { ",[573,2485,2486],{"class":2048},"quoteText",[573,2488,2076],{"class":698},[573,2490,2079],{"class":1105},[573,2492,2493],{"class":579},"; ",[573,2495,2496],{"class":2048},"quoteAuthor",[573,2498,2076],{"class":698},[573,2500,2079],{"class":1105},[573,2502,2503],{"class":579}," }[]\n",[573,2505,2506],{"class":575,"line":708},[573,2507,2508],{"class":579},"  >;\n",[573,2510,2511],{"class":575,"line":718},[573,2512,1832],{"class":579},[573,2514,2515],{"class":575,"line":728},[573,2516,1086],{"emptyLinePlaceholder":449},[573,2518,2519,2521,2523,2526,2528,2531],{"class":575,"line":736},[573,2520,1921],{"class":698},[573,2522,1924],{"class":698},[573,2524,2525],{"class":698}," async",[573,2527,1325],{"class":698},[573,2529,2530],{"class":587}," quotesHandler",[573,2532,1331],{"class":579},[573,2534,2535,2537,2540,2542,2544,2546],{"class":575,"line":747},[573,2536,2161],{"class":698},[573,2538,2539],{"class":1105}," quotes",[573,2541,1109],{"class":698},[573,2543,1415],{"class":698},[573,2545,2434],{"class":587},[573,2547,1510],{"class":579},[573,2549,2550,2552,2555,2557,2560,2563,2566,2569,2572,2575,2578,2580],{"class":575,"line":753},[573,2551,2161],{"class":698},[573,2553,2554],{"class":1105}," randomQuote",[573,2556,1109],{"class":698},[573,2558,2559],{"class":579}," quotes[Math.",[573,2561,2562],{"class":587},"floor",[573,2564,2565],{"class":579},"(Math.",[573,2567,2568],{"class":587},"random",[573,2570,2571],{"class":579},"() ",[573,2573,2574],{"class":698},"*",[573,2576,2577],{"class":579}," quotes.",[573,2579,2244],{"class":1105},[573,2581,2582],{"class":579},")];\n",[573,2584,2585,2587,2590,2592],{"class":575,"line":771},[573,2586,2184],{"class":698},[573,2588,2589],{"class":579}," Response.",[573,2591,1507],{"class":587},[573,2593,1930],{"class":579},[573,2595,2596],{"class":575,"line":788},[573,2597,2598],{"class":579},"    text: randomQuote.quoteText,\n",[573,2600,2601],{"class":575,"line":797},[573,2602,2603],{"class":579},"    author: randomQuote.quoteAuthor,\n",[573,2605,2606],{"class":575,"line":808},[573,2607,2363],{"class":579},[573,2609,2610],{"class":575,"line":819},[573,2611,1832],{"class":579},[2613,2614,2615],"p",{},"This example renders an HTML template with server-side data and streams the response word by word. It demonstrates how to use Nitro's Vite SSR integration without a framework.",[2617,2618,2620],"h2",{"id":2619},"overview","Overview",[2622,2623,2625,2633,2643,2649],"steps",{"level":2624},"4",[2626,2627,2628,2632],"h4",{},[2629,2630,2631],"strong",{},"Add the Nitro Vite plugin"," to enable SSR",[2626,2634,2635,2638,2639,2642],{},[2629,2636,2637],{},"Create an HTML template"," with a ",[570,2640,2641],{},"\u003C!--ssr-outlet-->"," comment where server content goes",[2626,2644,2645,2648],{},[2629,2646,2647],{},"Create a server entry"," that fetches data and returns a stream",[2626,2650,2651,2654],{},[2629,2652,2653],{},"Add API routes"," for server-side data",[2617,2656,2658],{"id":2657},"how-it-works","How It Works",[2613,2660,2661,2662,2664,2665,2667],{},"The ",[570,2663,567],{}," file contains an ",[570,2666,2641],{}," comment that marks where server-rendered content will be inserted. Nitro replaces this comment with the output from your server entry.",[2613,2669,2670,2671,2674,2675,2678,2679,2682],{},"The server entry exports an object with a ",[570,2672,2673],{},"fetch"," method. It calls the ",[570,2676,2677],{},"\u002Fquote"," API route using Nitro's internal fetch, then returns a ",[570,2680,2681],{},"ReadableStream"," that emits the quote text word by word with a 50ms delay between each word.",[2613,2684,2685],{},"The quote route fetches a JSON file of quotes from GitHub, caches the result, and returns a random quote. The server entry calls this route to get content for the page.",[2617,2687,2689],{"id":2688},"learn-more","Learn More",[2691,2692,2693,2699],"ul",{},[2694,2695,2696],"li",{},[2697,2698,18],"a",{"href":19},[2694,2700,2701],{},[2697,2702,78],{"href":79},[690,2704,2705],{},"html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sByVh, html code.shiki .sByVh{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":5,"searchDepth":594,"depth":594,"links":2707},[2708,2709,2710],{"id":2619,"depth":594,"text":2620},{"id":2657,"depth":594,"text":2658},{"id":2688,"depth":594,"text":2689},"md",{"automd":449,"category":489,"icon":392},{"icon":392},{"title":389,"description":526},"LiyHKGFAF9lJjDQaF_3dZuj1qP_Uwkgh01w0q9ood8g",[2717,2718],{"title":384,"path":385,"stem":386,"description":523,"icon":387,"children":-1},{"title":394,"path":395,"stem":396,"description":529,"icon":397,"children":-1},1784019077815]