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