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