[{"data":1,"prerenderedAt":6505},["ShallowReactive",2],{"navigation":3,"-config":402,"-config-surround":6500},[4,93,226,232,387,399],{"title":5,"path":6,"stem":7,"children":8,"icon":92},"","\u002Fdocs","1.docs\u002F1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77,82,87],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fquick-start","1.docs\u002F2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","\u002Fdocs\u002Frenderer","1.docs\u002F4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","\u002Fdocs\u002Frouting","1.docs\u002F5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","\u002Fdocs\u002Fassets","1.docs\u002F50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","\u002Fdocs\u002Fdatabase","1.docs\u002F50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","\u002Fdocs\u002Flifecycle","1.docs\u002F50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"OpenAPI","\u002Fdocs\u002Fopenapi","1.docs\u002F50.openapi","ri:contract-line",{"title":53,"path":54,"stem":55,"icon":56},"Plugins","\u002Fdocs\u002Fplugins","1.docs\u002F50.plugins","ri:plug-line",{"title":58,"path":59,"stem":60,"icon":61},"Tasks","\u002Fdocs\u002Ftasks","1.docs\u002F50.tasks","codicon:run-all",{"title":63,"path":64,"stem":65,"icon":66},"WebSocket","\u002Fdocs\u002Fwebsocket","1.docs\u002F50.websocket","ri:broadcast-fill",{"title":68,"path":69,"stem":70,"icon":71},"Server Entry","\u002Fdocs\u002Fserver-entry","1.docs\u002F6.server-entry","ri:server-line",{"title":73,"path":74,"stem":75,"icon":76},"Cache","\u002Fdocs\u002Fcache","1.docs\u002F7.cache","ri:speed-line",{"title":78,"path":79,"stem":80,"icon":81},"KV Storage","\u002Fdocs\u002Fstorage","1.docs\u002F8.storage","carbon:datastore",{"title":83,"path":84,"stem":85,"icon":86},"Migration Guide","\u002Fdocs\u002Fmigration","1.docs\u002F99.migration","ri:arrow-right-up-line",{"title":88,"path":89,"stem":90,"icon":91},"Nightly Channel","\u002Fdocs\u002Fnightly","1.docs\u002F99.nightly","ri:moon-fill","i-lucide-book-open",{"title":94,"path":95,"stem":96,"children":97,"icon":99},"Deploy","\u002Fdeploy","2.deploy\u002F0.index",[98,100,121],{"title":94,"path":95,"stem":96,"icon":99},"ri:upload-cloud-2-line",{"title":101,"path":102,"stem":103,"children":104,"page":120},"Runtimes","\u002Fdeploy\u002Fruntimes","2.deploy\u002F10.runtimes",[105,110,115],{"title":106,"path":107,"stem":108,"icon":109},"Node.js","\u002Fdeploy\u002Fruntimes\u002Fnode","2.deploy\u002F10.runtimes\u002F1.node","akar-icons:node-fill",{"title":111,"path":112,"stem":113,"icon":114},"Bun","\u002Fdeploy\u002Fruntimes\u002Fbun","2.deploy\u002F10.runtimes\u002Fbun","simple-icons:bun",{"title":116,"path":117,"stem":118,"icon":119},"Deno","\u002Fdeploy\u002Fruntimes\u002Fdeno","2.deploy\u002F10.runtimes\u002Fdeno","simple-icons:deno",false,{"title":122,"path":123,"stem":124,"children":125,"page":120},"Providers","\u002Fdeploy\u002Fproviders","2.deploy\u002F20.providers",[126,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,214,218,222],{"title":127,"path":128,"stem":129},"Alwaysdata","\u002Fdeploy\u002Fproviders\u002Falwaysdata","2.deploy\u002F20.providers\u002Falwaysdata",{"title":131,"path":132,"stem":133},"AWS Lambda","\u002Fdeploy\u002Fproviders\u002Faws","2.deploy\u002F20.providers\u002Faws",{"title":135,"path":136,"stem":137},"AWS Amplify","\u002Fdeploy\u002Fproviders\u002Faws-amplify","2.deploy\u002F20.providers\u002Faws-amplify",{"title":139,"path":140,"stem":141},"Azure","\u002Fdeploy\u002Fproviders\u002Fazure","2.deploy\u002F20.providers\u002Fazure",{"title":143,"path":144,"stem":145},"Cleavr","\u002Fdeploy\u002Fproviders\u002Fcleavr","2.deploy\u002F20.providers\u002Fcleavr",{"title":147,"path":148,"stem":149},"Cloudflare","\u002Fdeploy\u002Fproviders\u002Fcloudflare","2.deploy\u002F20.providers\u002Fcloudflare",{"title":151,"path":152,"stem":153},"Deno Deploy","\u002Fdeploy\u002Fproviders\u002Fdeno-deploy","2.deploy\u002F20.providers\u002Fdeno-deploy",{"title":155,"path":156,"stem":157},"DigitalOcean","\u002Fdeploy\u002Fproviders\u002Fdigitalocean","2.deploy\u002F20.providers\u002Fdigitalocean",{"title":159,"path":160,"stem":161},"EdgeOne Pages","\u002Fdeploy\u002Fproviders\u002Fedgeone","2.deploy\u002F20.providers\u002Fedgeone",{"title":163,"path":164,"stem":165},"Firebase","\u002Fdeploy\u002Fproviders\u002Ffirebase","2.deploy\u002F20.providers\u002Ffirebase",{"title":167,"path":168,"stem":169},"Flightcontrol","\u002Fdeploy\u002Fproviders\u002Fflightcontrol","2.deploy\u002F20.providers\u002Fflightcontrol",{"title":171,"path":172,"stem":173},"Genezio","\u002Fdeploy\u002Fproviders\u002Fgenezio","2.deploy\u002F20.providers\u002Fgenezio",{"title":175,"path":176,"stem":177},"GitHub Pages","\u002Fdeploy\u002Fproviders\u002Fgithub-pages","2.deploy\u002F20.providers\u002Fgithub-pages",{"title":179,"path":180,"stem":181},"GitLab Pages","\u002Fdeploy\u002Fproviders\u002Fgitlab-pages","2.deploy\u002F20.providers\u002Fgitlab-pages",{"title":183,"path":184,"stem":185},"Heroku","\u002Fdeploy\u002Fproviders\u002Fheroku","2.deploy\u002F20.providers\u002Fheroku",{"title":187,"path":188,"stem":189},"IIS","\u002Fdeploy\u002Fproviders\u002Fiis","2.deploy\u002F20.providers\u002Fiis",{"title":191,"path":192,"stem":193},"Koyeb","\u002Fdeploy\u002Fproviders\u002Fkoyeb","2.deploy\u002F20.providers\u002Fkoyeb",{"title":195,"path":196,"stem":197},"Netlify","\u002Fdeploy\u002Fproviders\u002Fnetlify","2.deploy\u002F20.providers\u002Fnetlify",{"title":199,"path":200,"stem":201},"Platform.sh","\u002Fdeploy\u002Fproviders\u002Fplatform-sh","2.deploy\u002F20.providers\u002Fplatform-sh",{"title":203,"path":204,"stem":205},"Render.com","\u002Fdeploy\u002Fproviders\u002Frender","2.deploy\u002F20.providers\u002Frender",{"title":207,"path":208,"stem":209},"StormKit","\u002Fdeploy\u002Fproviders\u002Fstormkit","2.deploy\u002F20.providers\u002Fstormkit",{"title":211,"path":212,"stem":213},"Vercel","\u002Fdeploy\u002Fproviders\u002Fvercel","2.deploy\u002F20.providers\u002Fvercel",{"title":215,"path":216,"stem":217},"Zeabur","\u002Fdeploy\u002Fproviders\u002Fzeabur","2.deploy\u002F20.providers\u002Fzeabur",{"title":219,"path":220,"stem":221},"Zephyr Cloud","\u002Fdeploy\u002Fproviders\u002Fzephyr","2.deploy\u002F20.providers\u002Fzephyr",{"title":223,"path":224,"stem":225},"Zerops","\u002Fdeploy\u002Fproviders\u002Fzerops","2.deploy\u002F20.providers\u002Fzerops",{"title":227,"path":228,"stem":229,"children":230,"icon":36},"Config","\u002Fconfig","3.config\u002F0.index",[231],{"title":227,"path":228,"stem":229,"icon":36},{"title":233,"path":234,"stem":235,"children":236,"icon":238},"Examples","\u002Fexamples","4.examples\u002F0.index",[237,239,244,249,254,259,263,268,273,278,283,288,293,297,302,306,310,315,320,325,330,335,340,345,350,355,359,364,369,373,378,383],{"title":233,"path":234,"stem":235,"icon":238},"i-lucide-folder-code",{"title":240,"path":241,"stem":242,"icon":243},"API Routes","\u002Fexamples\u002Fapi-routes","4.examples\u002Fapi-routes","i-lucide-route",{"title":245,"path":246,"stem":247,"icon":248},"Auto Imports","\u002Fexamples\u002Fauto-imports","4.examples\u002Fauto-imports","i-lucide-import",{"title":250,"path":251,"stem":252,"icon":253},"Cached Handler","\u002Fexamples\u002Fcached-handler","4.examples\u002Fcached-handler","i-lucide-clock",{"title":255,"path":256,"stem":257,"icon":258},"Custom Error Handler","\u002Fexamples\u002Fcustom-error-handler","4.examples\u002Fcustom-error-handler","i-lucide-alert-circle",{"title":38,"path":260,"stem":261,"icon":262},"\u002Fexamples\u002Fdatabase","4.examples\u002Fdatabase","i-lucide-database",{"title":264,"path":265,"stem":266,"icon":267},"Elysia","\u002Fexamples\u002Felysia","4.examples\u002Felysia","i-skill-icons-elysia-dark",{"title":269,"path":270,"stem":271,"icon":272},"Express","\u002Fexamples\u002Fexpress","4.examples\u002Fexpress","i-simple-icons-express",{"title":274,"path":275,"stem":276,"icon":277},"Fastify","\u002Fexamples\u002Ffastify","4.examples\u002Ffastify","i-simple-icons-fastify",{"title":279,"path":280,"stem":281,"icon":282},"Hello World","\u002Fexamples\u002Fhello-world","4.examples\u002Fhello-world","i-lucide-sparkles",{"title":284,"path":285,"stem":286,"icon":287},"Hono","\u002Fexamples\u002Fhono","4.examples\u002Fhono","i-logos-hono",{"title":289,"path":290,"stem":291,"icon":292},"Import Alias","\u002Fexamples\u002Fimport-alias","4.examples\u002Fimport-alias","i-lucide-at-sign",{"title":294,"path":295,"stem":296,"icon":46},"Middleware","\u002Fexamples\u002Fmiddleware","4.examples\u002Fmiddleware",{"title":298,"path":299,"stem":300,"icon":301},"Mono JSX","\u002Fexamples\u002Fmono-jsx","4.examples\u002Fmono-jsx","i-lucide-brackets",{"title":303,"path":304,"stem":305,"icon":301},"Nano JSX","\u002Fexamples\u002Fnano-jsx","4.examples\u002Fnano-jsx",{"title":53,"path":307,"stem":308,"icon":309},"\u002Fexamples\u002Fplugins","4.examples\u002Fplugins","i-lucide-plug",{"title":311,"path":312,"stem":313,"icon":314},"Custom Renderer","\u002Fexamples\u002Frenderer","4.examples\u002Frenderer","i-lucide-code",{"title":316,"path":317,"stem":318,"icon":319},"Runtime Config","\u002Fexamples\u002Fruntime-config","4.examples\u002Fruntime-config","i-lucide-settings",{"title":321,"path":322,"stem":323,"icon":324},"Server Fetch","\u002Fexamples\u002Fserver-fetch","4.examples\u002Fserver-fetch","i-lucide-arrow-right-left",{"title":326,"path":327,"stem":328,"icon":329},"Shiki","\u002Fexamples\u002Fshiki","4.examples\u002Fshiki","i-lucide-highlighter",{"title":331,"path":332,"stem":333,"icon":334},"Virtual Routes","\u002Fexamples\u002Fvirtual-routes","4.examples\u002Fvirtual-routes","i-lucide-box",{"title":336,"path":337,"stem":338,"icon":339},"Vite Nitro Plugin","\u002Fexamples\u002Fvite-nitro-plugin","4.examples\u002Fvite-nitro-plugin","i-logos-vitejs",{"title":341,"path":342,"stem":343,"icon":344},"Vite RSC","\u002Fexamples\u002Fvite-rsc","4.examples\u002Fvite-rsc","i-logos-react",{"title":346,"path":347,"stem":348,"icon":349},"Vite SSR HTML","\u002Fexamples\u002Fvite-ssr-html","4.examples\u002Fvite-ssr-html","i-logos-html-5",{"title":351,"path":352,"stem":353,"icon":354},"SSR with Preact","\u002Fexamples\u002Fvite-ssr-preact","4.examples\u002Fvite-ssr-preact","i-logos-preact",{"title":356,"path":357,"stem":358,"icon":344},"SSR with React","\u002Fexamples\u002Fvite-ssr-react","4.examples\u002Fvite-ssr-react",{"title":360,"path":361,"stem":362,"icon":363},"SSR with SolidJS","\u002Fexamples\u002Fvite-ssr-solid","4.examples\u002Fvite-ssr-solid","i-logos-solidjs-icon",{"title":365,"path":366,"stem":367,"icon":368},"SSR with TanStack Router","\u002Fexamples\u002Fvite-ssr-tsr-react","4.examples\u002Fvite-ssr-tsr-react","i-simple-icons-tanstack",{"title":370,"path":371,"stem":372,"icon":368},"SSR with TanStack Start","\u002Fexamples\u002Fvite-ssr-tss-react","4.examples\u002Fvite-ssr-tss-react",{"title":374,"path":375,"stem":376,"icon":377},"SSR with Vue Router","\u002Fexamples\u002Fvite-ssr-vue-router","4.examples\u002Fvite-ssr-vue-router","i-logos-vue",{"title":379,"path":380,"stem":381,"icon":382},"Vite + tRPC","\u002Fexamples\u002Fvite-trpc","4.examples\u002Fvite-trpc","i-simple-icons-trpc",{"title":63,"path":384,"stem":385,"icon":386},"\u002Fexamples\u002Fwebsocket","4.examples\u002Fwebsocket","i-lucide-radio",{"title":388,"path":389,"stem":390,"children":391},"Blog","\u002Fblog","9.blog",[392,395],{"title":388,"path":389,"stem":393,"icon":394},"9.blog\u002Findex","i-lucide-file-text",{"title":396,"path":397,"stem":398,"icon":394},"Nitro v3 Beta is here!","\u002Fblog\u002Fv3-beta","9.blog\u002F1.v3-beta",{"title":5,"path":400,"stem":401},"\u002F","index",{"id":403,"title":227,"body":404,"description":5,"extension":6495,"meta":6496,"navigation":6497,"path":228,"seo":6498,"stem":229,"__hash__":6499},"content\u002F3.config\u002F0.index.md",{"type":405,"value":406,"toc":6399,"icon":36},"minimark",[407,410,415,422,438,449,455,506,511,535,538,567,573,588,599,631,637,663,666,675,719,725,728,735,742,771,776,784,787,818,822,827,836,839,846,851,854,859,867,870,920,922,927,933,936,942,950,964,976,982,991,997,1003,1009,1015,1021,1029,1034,1039,1044,1049,1125,1130,1133,1136,1202,1216,1250,1259,1307,1316,1398,1401,1479,1484,1490,1493,1499,1502,1539,1544,1550,1553,1610,1612,1618,1624,1627,1685,1690,1696,1743,1745,1751,1754,1813,1818,1849,1852,1893,1895,1901,1928,1935,1944,1976,1982,1990,2000,2031,2037,2040,2046,2053,2129,2136,2141,2152,2154,2160,2196,2199,2248,2254,2257,2315,2318,2323,2332,2339,2423,2428,2434,2437,2444,2479,2481,2486,2492,2502,2545,2547,2553,2559,2562,2608,2610,2615,2623,2631,2673,2678,2684,2687,2727,2732,2738,2741,2779,2784,2803,2812,2839,2843,2849,2863,2869,2885,2934,2940,2948,2991,2997,3000,3003,3058,3067,3071,3076,3102,3116,3165,3168,3173,3184,3187,3219,3225,3232,3235,3267,3272,3275,3289,3354,3356,3362,3365,3368,3380,3431,3436,3444,3447,3505,3511,3525,3528,3533,3667,3673,3678,3687,3697,3704,3715,3719,3915,3918,3923,3926,4031,4037,4043,4062,4072,4081,4091,4133,4136,4146,4150,4156,4159,4165,4197,4203,4206,4235,4241,4265,4286,4302,4333,4339,4344,4347,4381,4387,4394,4397,4429,4435,4441,4444,4476,4482,4489,4492,4524,4529,4536,4539,4597,4601,4606,4633,4636,4664,4670,4673,4712,4718,4721,4759,4764,4767,4799,4804,4811,4854,4859,4862,4914,4919,4925,4928,4959,4965,4971,4974,4982,5013,5018,5026,5034,5065,5070,5078,5089,5120,5125,5128,5179,5185,5188,5226,5232,5235,5269,5275,5283,5289,5320,5326,5334,5337,5340,5354,5416,5422,5431,5627,5632,5641,5683,5687,5692,5702,5707,5738,5743,5776,5794,5840,5845,5849,5857,5915,5917,5922,5926,5929,5967,5973,5977,5980,6054,6060,6064,6093,6117,6123,6151,6156,6184,6187,6222,6226,6231,6238,6289,6294,6299,6337,6342,6347,6384,6389,6395],[408,409],"read-more",{"to":34},[411,412,414],"h2",{"id":413},"general","General",[416,417,419],"h3",{"id":418},"preset",[420,421,418],"code",{},[423,424,425,426,428,429,432,433,437],"p",{},"Use ",[420,427,418],{}," option or ",[420,430,431],{},"NITRO_PRESET"," environment variable for custom ",[434,435,436],"strong",{},"production"," preset.",[423,439,440,441,444,445,448],{},"Preset for development mode is always ",[420,442,443],{},"nitro_dev"," and default ",[420,446,447],{},"node_server"," for production building a standalone Node.js server.",[423,450,451,452,454],{},"The preset will automatically be detected when the ",[420,453,418],{}," option is not set and running in known environments.",[456,457,461],"pre",{"className":458,"code":459,"language":460,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","export default defineConfig({\n  preset: \"cloudflare_pages\", \u002F\u002F deploy to Cloudflare Pages\n});\n","ts",[420,462,463,483,500],{"__ignoreMap":5},[464,465,468,472,475,479],"span",{"class":466,"line":467},"line",1,[464,469,471],{"class":470},"so5gQ","export",[464,473,474],{"class":470}," default",[464,476,478],{"class":477},"shcOC"," defineConfig",[464,480,482],{"class":481},"slsVL","({\n",[464,484,486,489,493,496],{"class":466,"line":485},2,[464,487,488],{"class":481},"  preset: ",[464,490,492],{"class":491},"sfrk1","\"cloudflare_pages\"",[464,494,495],{"class":481},", ",[464,497,499],{"class":498},"sCsY4","\u002F\u002F deploy to Cloudflare Pages\n",[464,501,503],{"class":466,"line":502},3,[464,504,505],{"class":481},"});\n",[416,507,509],{"id":508},"debug",[420,510,508],{},[512,513,514],"ul",{},[515,516,517,518,524,525,530,531,534],"li",{},"Default: ",[420,519,520],{"className":458,"language":460,"style":5},[464,521,523],{"class":522},"suiK_","false"," (",[420,526,527],{"className":458,"language":460,"style":5},[464,528,529],{"class":522},"true"," when ",[420,532,533],{},"DEBUG"," environment variable is set)",[423,536,537],{},"Enable debug mode for verbose logging and additional development information.",[456,539,541],{"className":458,"code":540,"language":460,"meta":5,"style":5},"export default defineConfig({\n  debug: true,\n});\n",[420,542,543,553,563],{"__ignoreMap":5},[464,544,545,547,549,551],{"class":466,"line":467},[464,546,471],{"class":470},[464,548,474],{"class":470},[464,550,478],{"class":477},[464,552,482],{"class":481},[464,554,555,558,560],{"class":466,"line":485},[464,556,557],{"class":481},"  debug: ",[464,559,529],{"class":522},[464,561,562],{"class":481},",\n",[464,564,565],{"class":466,"line":502},[464,566,505],{"class":481},[416,568,570],{"id":569},"loglevel",[420,571,572],{},"logLevel",[512,574,575],{},[515,576,517,577,524,582,587],{},[420,578,579],{"className":458,"language":460,"style":5},[464,580,581],{"class":522},"3",[420,583,584],{"className":458,"language":460,"style":5},[464,585,586],{"class":522},"1"," when the testing environment is detected)",[423,589,590,591,598],{},"Log verbosity level. See ",[592,593,597],"a",{"href":594,"rel":595},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fconsola?tab=readme-ov-file#log-level",[596],"nofollow","consola"," for more information.",[456,600,602],{"className":458,"code":601,"language":460,"meta":5,"style":5},"export default defineConfig({\n  logLevel: 4, \u002F\u002F verbose logging\n});\n",[420,603,604,614,627],{"__ignoreMap":5},[464,605,606,608,610,612],{"class":466,"line":467},[464,607,471],{"class":470},[464,609,474],{"class":470},[464,611,478],{"class":477},[464,613,482],{"class":481},[464,615,616,619,622,624],{"class":466,"line":485},[464,617,618],{"class":481},"  logLevel: ",[464,620,621],{"class":522},"4",[464,623,495],{"class":481},[464,625,626],{"class":498},"\u002F\u002F verbose logging\n",[464,628,629],{"class":466,"line":502},[464,630,505],{"class":481},[416,632,634],{"id":633},"runtimeconfig",[420,635,636],{},"runtimeConfig",[512,638,639],{},[515,640,517,641],{},[420,642,643,646,649,652,655,658,660],{"className":458,"language":460,"style":5},[464,644,645],{"class":481},"{ ",[464,647,648],{"class":477},"nitro",[464,650,651],{"class":481},": { ",[464,653,654],{"class":470},"...",[464,656,657],{"class":481}," }, ",[464,659,654],{"class":470},[464,661,662],{"class":481},"yourOptions }",[423,664,665],{},"Server runtime configuration.",[423,667,668,671,672,674],{},[434,669,670],{},"Note:"," ",[420,673,648],{}," namespace is reserved.",[456,676,678],{"className":458,"code":677,"language":460,"meta":5,"style":5},"export default defineConfig({\n  runtimeConfig: {\n    apiSecret: \"default-secret\", \u002F\u002F override with NITRO_API_SECRET\n  },\n});\n",[420,679,680,690,695,708,714],{"__ignoreMap":5},[464,681,682,684,686,688],{"class":466,"line":467},[464,683,471],{"class":470},[464,685,474],{"class":470},[464,687,478],{"class":477},[464,689,482],{"class":481},[464,691,692],{"class":466,"line":485},[464,693,694],{"class":481},"  runtimeConfig: {\n",[464,696,697,700,703,705],{"class":466,"line":502},[464,698,699],{"class":481},"    apiSecret: ",[464,701,702],{"class":491},"\"default-secret\"",[464,704,495],{"class":481},[464,706,707],{"class":498},"\u002F\u002F override with NITRO_API_SECRET\n",[464,709,711],{"class":466,"line":710},4,[464,712,713],{"class":481},"  },\n",[464,715,717],{"class":466,"line":716},5,[464,718,505],{"class":481},[416,720,722],{"id":721},"compatibilitydate",[420,723,724],{},"compatibilityDate",[423,726,727],{},"Deployment providers introduce new features that Nitro presets can leverage, but some of them need to be explicitly opted into.",[423,729,730,731,734],{},"Set it to latest tested date in ",[420,732,733],{},"YYYY-MM-DD"," format to leverage latest preset features.",[423,736,737,738,741],{},"If this configuration is not provided, Nitro will use ",[420,739,740],{},"\"latest\""," behavior by default.",[456,743,745],{"className":458,"code":744,"language":460,"meta":5,"style":5},"export default defineConfig({\n  compatibilityDate: \"2025-01-01\",\n});\n",[420,746,747,757,767],{"__ignoreMap":5},[464,748,749,751,753,755],{"class":466,"line":467},[464,750,471],{"class":470},[464,752,474],{"class":470},[464,754,478],{"class":477},[464,756,482],{"class":481},[464,758,759,762,765],{"class":466,"line":485},[464,760,761],{"class":481},"  compatibilityDate: ",[464,763,764],{"class":491},"\"2025-01-01\"",[464,766,562],{"class":481},[464,768,769],{"class":466,"line":502},[464,770,505],{"class":481},[416,772,774],{"id":773},"static",[420,775,773],{},[512,777,778],{},[515,779,517,780],{},[420,781,782],{"className":458,"language":460,"style":5},[464,783,523],{"class":522},[423,785,786],{},"Enable static site generation mode.",[456,788,790],{"className":458,"code":789,"language":460,"meta":5,"style":5},"export default defineConfig({\n  static: true, \u002F\u002F prerender all routes\n});\n",[420,791,792,802,814],{"__ignoreMap":5},[464,793,794,796,798,800],{"class":466,"line":467},[464,795,471],{"class":470},[464,797,474],{"class":470},[464,799,478],{"class":477},[464,801,482],{"class":481},[464,803,804,807,809,811],{"class":466,"line":485},[464,805,806],{"class":481},"  static: ",[464,808,529],{"class":522},[464,810,495],{"class":481},[464,812,813],{"class":498},"\u002F\u002F prerender all routes\n",[464,815,816],{"class":466,"line":502},[464,817,505],{"class":481},[411,819,821],{"id":820},"features","Features",[416,823,825],{"id":824},"features-1",[420,826,820],{},[512,828,829],{},[515,830,517,831],{},[420,832,833],{"className":458,"language":460,"style":5},[464,834,835],{"class":481},"{}",[423,837,838],{},"Enable built-in features.",[840,841,843],"h4",{"id":842},"runtimehooks",[420,844,845],{},"runtimeHooks",[512,847,848],{},[515,849,850],{},"Default: auto-detected (enabled if there is at least one nitro plugin)",[423,852,853],{},"Enable runtime hooks for request and response.",[840,855,857],{"id":856},"websocket",[420,858,856],{},[512,860,861],{},[515,862,517,863],{},[420,864,865],{"className":458,"language":460,"style":5},[464,866,523],{"class":522},[423,868,869],{},"Enable WebSocket support.",[456,871,873],{"className":458,"code":872,"language":460,"meta":5,"style":5},"export default defineConfig({\n  features: {\n    runtimeHooks: true,\n    websocket: true, \u002F\u002F enable WebSocket support\n  },\n});\n",[420,874,875,885,890,899,911,915],{"__ignoreMap":5},[464,876,877,879,881,883],{"class":466,"line":467},[464,878,471],{"class":470},[464,880,474],{"class":470},[464,882,478],{"class":477},[464,884,482],{"class":481},[464,886,887],{"class":466,"line":485},[464,888,889],{"class":481},"  features: {\n",[464,891,892,895,897],{"class":466,"line":502},[464,893,894],{"class":481},"    runtimeHooks: ",[464,896,529],{"class":522},[464,898,562],{"class":481},[464,900,901,904,906,908],{"class":466,"line":710},[464,902,903],{"class":481},"    websocket: ",[464,905,529],{"class":522},[464,907,495],{"class":481},[464,909,910],{"class":498},"\u002F\u002F enable WebSocket support\n",[464,912,913],{"class":466,"line":716},[464,914,713],{"class":481},[464,916,918],{"class":466,"line":917},6,[464,919,505],{"class":481},[408,921],{"to":64},[416,923,925],{"id":924},"experimental",[420,926,924],{},[512,928,929],{},[515,930,517,931],{},[420,932,835],{},[423,934,935],{},"Enable experimental features.",[840,937,939],{"id":938},"openapi",[420,940,941],{},"openAPI",[512,943,944],{},[515,945,517,946],{},[420,947,948],{"className":458,"language":460,"style":5},[464,949,523],{"class":522},[423,951,952,953,495,956,959,960,963],{},"Enable ",[420,954,955],{},"\u002F_scalar",[420,957,958],{},"\u002F_swagger"," and ",[420,961,962],{},"\u002F_openapi.json"," endpoints.",[965,966,967],"note",{},[423,968,969,970,975],{},"Prefer using the top-level ",[592,971,973],{"href":972},"#openapi",[420,974,941],{}," option for configuration.",[840,977,979],{"id":978},"typescriptbundlerresolution",[420,980,981],{},"typescriptBundlerResolution",[423,983,984,985,990],{},"Enable TypeScript bundler module resolution. See ",[592,986,989],{"href":987,"rel":988},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FTypeScript\u002Fpull\u002F51669",[596],"TypeScript#51669",".",[840,992,994],{"id":993},"asynccontext",[420,995,996],{},"asyncContext",[423,998,999,1000,990],{},"Enable native async context support for ",[420,1001,1002],{},"useRequest()",[840,1004,1006],{"id":1005},"sourcemapminify",[420,1007,1008],{},"sourcemapMinify",[423,1010,1011,1012,1014],{},"Set to ",[420,1013,523],{}," to disable experimental sourcemap minification.",[840,1016,1018],{"id":1017},"envexpansion",[420,1019,1020],{},"envExpansion",[423,1022,1023,1024,990],{},"Allow env expansion in runtime config. See ",[592,1025,1028],{"href":1026,"rel":1027},"https:\u002F\u002Fgithub.com\u002Fnitrojs\u002Fnitro\u002Fpull\u002F2043",[596],"#2043",[840,1030,1032],{"id":1031},"database",[420,1033,1031],{},[423,1035,1036,1037,990],{},"Enable experimental database support. See ",[592,1038,38],{"href":39},[840,1040,1042],{"id":1041},"tasks",[420,1043,1041],{},[423,1045,1046,1047,990],{},"Enable experimental tasks support. See ",[592,1048,58],{"href":59},[456,1050,1052],{"className":458,"code":1051,"language":460,"meta":5,"style":5},"export default defineConfig({\n  experimental: {\n    typescriptBundlerResolution: true,\n    asyncContext: true,\n    envExpansion: true,\n    database: true,\n    tasks: true,\n  },\n});\n",[420,1053,1054,1064,1069,1078,1087,1096,1105,1115,1120],{"__ignoreMap":5},[464,1055,1056,1058,1060,1062],{"class":466,"line":467},[464,1057,471],{"class":470},[464,1059,474],{"class":470},[464,1061,478],{"class":477},[464,1063,482],{"class":481},[464,1065,1066],{"class":466,"line":485},[464,1067,1068],{"class":481},"  experimental: {\n",[464,1070,1071,1074,1076],{"class":466,"line":502},[464,1072,1073],{"class":481},"    typescriptBundlerResolution: ",[464,1075,529],{"class":522},[464,1077,562],{"class":481},[464,1079,1080,1083,1085],{"class":466,"line":710},[464,1081,1082],{"class":481},"    asyncContext: ",[464,1084,529],{"class":522},[464,1086,562],{"class":481},[464,1088,1089,1092,1094],{"class":466,"line":716},[464,1090,1091],{"class":481},"    envExpansion: ",[464,1093,529],{"class":522},[464,1095,562],{"class":481},[464,1097,1098,1101,1103],{"class":466,"line":917},[464,1099,1100],{"class":481},"    database: ",[464,1102,529],{"class":522},[464,1104,562],{"class":481},[464,1106,1108,1111,1113],{"class":466,"line":1107},7,[464,1109,1110],{"class":481},"    tasks: ",[464,1112,529],{"class":522},[464,1114,562],{"class":481},[464,1116,1118],{"class":466,"line":1117},8,[464,1119,713],{"class":481},[464,1121,1123],{"class":466,"line":1122},9,[464,1124,505],{"class":481},[416,1126,1128],{"id":1127},"openapi-1",[420,1129,941],{},[423,1131,1132],{},"Top-level OpenAPI configuration.",[423,1134,1135],{},"You can pass an object to modify your OpenAPI specification:",[456,1137,1141],{"className":1138,"code":1139,"language":1140,"meta":5,"style":5},"language-js shiki shiki-themes github-light github-dark github-dark","openAPI: {\n  meta: {\n    title: 'My Awesome Project',\n    description: 'This might become the next big thing.',\n    version: '1.0'\n  }\n}\n","js",[420,1142,1143,1150,1157,1170,1182,1192,1197],{"__ignoreMap":5},[464,1144,1145,1147],{"class":466,"line":467},[464,1146,941],{"class":477},[464,1148,1149],{"class":481},": {\n",[464,1151,1152,1155],{"class":466,"line":485},[464,1153,1154],{"class":477},"  meta",[464,1156,1149],{"class":481},[464,1158,1159,1162,1165,1168],{"class":466,"line":502},[464,1160,1161],{"class":477},"    title",[464,1163,1164],{"class":481},": ",[464,1166,1167],{"class":491},"'My Awesome Project'",[464,1169,562],{"class":481},[464,1171,1172,1175,1177,1180],{"class":466,"line":710},[464,1173,1174],{"class":477},"    description",[464,1176,1164],{"class":481},[464,1178,1179],{"class":491},"'This might become the next big thing.'",[464,1181,562],{"class":481},[464,1183,1184,1187,1189],{"class":466,"line":716},[464,1185,1186],{"class":477},"    version",[464,1188,1164],{"class":481},[464,1190,1191],{"class":491},"'1.0'\n",[464,1193,1194],{"class":466,"line":917},[464,1195,1196],{"class":481},"  }\n",[464,1198,1199],{"class":466,"line":1107},[464,1200,1201],{"class":481},"}\n",[423,1203,1204,1205,1207,1208,1211,1212,1215],{},"These routes are disabled by default in production. To enable them, use the ",[420,1206,436],{}," key.\n",[420,1209,1210],{},"\"runtime\""," allows middleware usage, and ",[420,1213,1214],{},"\"prerender\""," is the most efficient because the JSON response is constant.",[456,1217,1219],{"className":1138,"code":1218,"language":1140,"meta":5,"style":5},"openAPI: {\n    \u002F\u002F IMPORTANT: make sure to protect OpenAPI routes if necessary!\n    production: \"runtime\", \u002F\u002F or \"prerender\"\n}\n",[420,1220,1221,1227,1232,1246],{"__ignoreMap":5},[464,1222,1223,1225],{"class":466,"line":467},[464,1224,941],{"class":477},[464,1226,1149],{"class":481},[464,1228,1229],{"class":466,"line":485},[464,1230,1231],{"class":498},"    \u002F\u002F IMPORTANT: make sure to protect OpenAPI routes if necessary!\n",[464,1233,1234,1237,1239,1241,1243],{"class":466,"line":502},[464,1235,1236],{"class":477},"    production",[464,1238,1164],{"class":481},[464,1240,1210],{"class":491},[464,1242,495],{"class":481},[464,1244,1245],{"class":498},"\u002F\u002F or \"prerender\"\n",[464,1247,1248],{"class":466,"line":710},[464,1249,1201],{"class":481},[423,1251,1252,1253,1258],{},"If you like to customize the Scalar integration, you can ",[592,1254,1257],{"href":1255,"rel":1256},"https:\u002F\u002Fgithub.com\u002Fscalar\u002Fscalar",[596],"pass a configuration object"," like this:",[456,1260,1262],{"className":1138,"code":1261,"language":1140,"meta":5,"style":5},"openAPI: {\n  ui: {\n    scalar: {\n      theme: 'purple'\n    }\n  }\n}\n",[420,1263,1264,1270,1277,1284,1294,1299,1303],{"__ignoreMap":5},[464,1265,1266,1268],{"class":466,"line":467},[464,1267,941],{"class":477},[464,1269,1149],{"class":481},[464,1271,1272,1275],{"class":466,"line":485},[464,1273,1274],{"class":477},"  ui",[464,1276,1149],{"class":481},[464,1278,1279,1282],{"class":466,"line":502},[464,1280,1281],{"class":477},"    scalar",[464,1283,1149],{"class":481},[464,1285,1286,1289,1291],{"class":466,"line":710},[464,1287,1288],{"class":477},"      theme",[464,1290,1164],{"class":481},[464,1292,1293],{"class":491},"'purple'\n",[464,1295,1296],{"class":466,"line":716},[464,1297,1298],{"class":481},"    }\n",[464,1300,1301],{"class":466,"line":917},[464,1302,1196],{"class":481},[464,1304,1305],{"class":466,"line":1107},[464,1306,1201],{"class":481},[423,1308,1309,1310,1315],{},"If you like to customize the Swagger UI, you can pass any ",[592,1311,1314],{"href":1312,"rel":1313},"https:\u002F\u002Fswagger.io\u002Fdocs\u002Fopen-source-tools\u002Fswagger-ui\u002Fusage\u002Fconfiguration\u002F",[596],"Swagger UI configuration option",":",[456,1317,1319],{"className":1138,"code":1318,"language":1140,"meta":5,"style":5},"openAPI: {\n  ui: {\n    swagger: {\n      persistAuthorization: true,\n      deepLinking: true,\n      docExpansion: 'none',\n      filter: true,\n    }\n  }\n}\n",[420,1320,1321,1327,1333,1340,1351,1362,1374,1385,1389,1393],{"__ignoreMap":5},[464,1322,1323,1325],{"class":466,"line":467},[464,1324,941],{"class":477},[464,1326,1149],{"class":481},[464,1328,1329,1331],{"class":466,"line":485},[464,1330,1274],{"class":477},[464,1332,1149],{"class":481},[464,1334,1335,1338],{"class":466,"line":502},[464,1336,1337],{"class":477},"    swagger",[464,1339,1149],{"class":481},[464,1341,1342,1345,1347,1349],{"class":466,"line":710},[464,1343,1344],{"class":477},"      persistAuthorization",[464,1346,1164],{"class":481},[464,1348,529],{"class":522},[464,1350,562],{"class":481},[464,1352,1353,1356,1358,1360],{"class":466,"line":716},[464,1354,1355],{"class":477},"      deepLinking",[464,1357,1164],{"class":481},[464,1359,529],{"class":522},[464,1361,562],{"class":481},[464,1363,1364,1367,1369,1372],{"class":466,"line":917},[464,1365,1366],{"class":477},"      docExpansion",[464,1368,1164],{"class":481},[464,1370,1371],{"class":491},"'none'",[464,1373,562],{"class":481},[464,1375,1376,1379,1381,1383],{"class":466,"line":1107},[464,1377,1378],{"class":477},"      filter",[464,1380,1164],{"class":481},[464,1382,529],{"class":522},[464,1384,562],{"class":481},[464,1386,1387],{"class":466,"line":1117},[464,1388,1298],{"class":481},[464,1390,1391],{"class":466,"line":1122},[464,1392,1196],{"class":481},[464,1394,1396],{"class":466,"line":1395},10,[464,1397,1201],{"class":481},[423,1399,1400],{},"Or if you want to customize the endpoints:",[456,1402,1404],{"className":1138,"code":1403,"language":1140,"meta":5,"style":5},"openAPI: {\n  route: \"\u002F_docs\u002Fopenapi.json\",\n  ui: {\n    scalar: {\n      route: \"\u002F_docs\u002Fscalar\"\n    },\n    swagger: {\n      route: \"\u002F_docs\u002Fswagger\"\n    }\n  }\n}\n",[420,1405,1406,1412,1424,1430,1436,1446,1451,1457,1466,1470,1474],{"__ignoreMap":5},[464,1407,1408,1410],{"class":466,"line":467},[464,1409,941],{"class":477},[464,1411,1149],{"class":481},[464,1413,1414,1417,1419,1422],{"class":466,"line":485},[464,1415,1416],{"class":477},"  route",[464,1418,1164],{"class":481},[464,1420,1421],{"class":491},"\"\u002F_docs\u002Fopenapi.json\"",[464,1423,562],{"class":481},[464,1425,1426,1428],{"class":466,"line":502},[464,1427,1274],{"class":477},[464,1429,1149],{"class":481},[464,1431,1432,1434],{"class":466,"line":710},[464,1433,1281],{"class":477},[464,1435,1149],{"class":481},[464,1437,1438,1441,1443],{"class":466,"line":716},[464,1439,1440],{"class":477},"      route",[464,1442,1164],{"class":481},[464,1444,1445],{"class":491},"\"\u002F_docs\u002Fscalar\"\n",[464,1447,1448],{"class":466,"line":917},[464,1449,1450],{"class":481},"    },\n",[464,1452,1453,1455],{"class":466,"line":1107},[464,1454,1337],{"class":477},[464,1456,1149],{"class":481},[464,1458,1459,1461,1463],{"class":466,"line":1117},[464,1460,1440],{"class":477},[464,1462,1164],{"class":481},[464,1464,1465],{"class":491},"\"\u002F_docs\u002Fswagger\"\n",[464,1467,1468],{"class":466,"line":1122},[464,1469,1298],{"class":481},[464,1471,1472],{"class":466,"line":1395},[464,1473,1196],{"class":481},[464,1475,1477],{"class":466,"line":1476},11,[464,1478,1201],{"class":481},[416,1480,1482],{"id":1481},"future",[420,1483,1481],{},[512,1485,1486],{},[515,1487,517,1488],{},[420,1489,835],{},[423,1491,1492],{},"New features pending for a major version to avoid breaking changes.",[840,1494,1496],{"id":1495},"nativeswr",[420,1497,1498],{},"nativeSWR",[423,1500,1501],{},"Uses built-in SWR functionality (using caching layer and storage) for Netlify and Vercel presets instead of falling back to ISR behavior.",[456,1503,1505],{"className":458,"code":1504,"language":460,"meta":5,"style":5},"export default defineConfig({\n  future: {\n    nativeSWR: true,\n  },\n});\n",[420,1506,1507,1517,1522,1531,1535],{"__ignoreMap":5},[464,1508,1509,1511,1513,1515],{"class":466,"line":467},[464,1510,471],{"class":470},[464,1512,474],{"class":470},[464,1514,478],{"class":477},[464,1516,482],{"class":481},[464,1518,1519],{"class":466,"line":485},[464,1520,1521],{"class":481},"  future: {\n",[464,1523,1524,1527,1529],{"class":466,"line":502},[464,1525,1526],{"class":481},"    nativeSWR: ",[464,1528,529],{"class":522},[464,1530,562],{"class":481},[464,1532,1533],{"class":466,"line":710},[464,1534,713],{"class":481},[464,1536,1537],{"class":466,"line":716},[464,1538,505],{"class":481},[416,1540,1542],{"id":1541},"storage",[420,1543,1541],{},[512,1545,1546],{},[515,1547,517,1548],{},[420,1549,835],{},[423,1551,1552],{},"Storage configuration.",[456,1554,1556],{"className":458,"code":1555,"language":460,"meta":5,"style":5},"export default defineConfig({\n  storage: {\n    redis: {\n      driver: \"redis\",\n      url: \"redis:\u002F\u002Flocalhost:6379\",\n    },\n  },\n});\n",[420,1557,1558,1568,1573,1578,1588,1598,1602,1606],{"__ignoreMap":5},[464,1559,1560,1562,1564,1566],{"class":466,"line":467},[464,1561,471],{"class":470},[464,1563,474],{"class":470},[464,1565,478],{"class":477},[464,1567,482],{"class":481},[464,1569,1570],{"class":466,"line":485},[464,1571,1572],{"class":481},"  storage: {\n",[464,1574,1575],{"class":466,"line":502},[464,1576,1577],{"class":481},"    redis: {\n",[464,1579,1580,1583,1586],{"class":466,"line":710},[464,1581,1582],{"class":481},"      driver: ",[464,1584,1585],{"class":491},"\"redis\"",[464,1587,562],{"class":481},[464,1589,1590,1593,1596],{"class":466,"line":716},[464,1591,1592],{"class":481},"      url: ",[464,1594,1595],{"class":491},"\"redis:\u002F\u002Flocalhost:6379\"",[464,1597,562],{"class":481},[464,1599,1600],{"class":466,"line":917},[464,1601,1450],{"class":481},[464,1603,1604],{"class":466,"line":1107},[464,1605,713],{"class":481},[464,1607,1608],{"class":466,"line":1117},[464,1609,505],{"class":481},[408,1611],{"to":79},[416,1613,1615],{"id":1614},"devstorage",[420,1616,1617],{},"devStorage",[512,1619,1620],{},[515,1621,517,1622],{},[420,1623,835],{},[423,1625,1626],{},"Storage configuration overrides for development mode.",[456,1628,1630],{"className":458,"code":1629,"language":460,"meta":5,"style":5},"export default defineConfig({\n  devStorage: {\n    redis: {\n      driver: \"fs\",\n      base: \".\u002Fdata\u002Fredis\", \u002F\u002F use filesystem in development\n    },\n  },\n});\n",[420,1631,1632,1642,1647,1651,1660,1673,1677,1681],{"__ignoreMap":5},[464,1633,1634,1636,1638,1640],{"class":466,"line":467},[464,1635,471],{"class":470},[464,1637,474],{"class":470},[464,1639,478],{"class":477},[464,1641,482],{"class":481},[464,1643,1644],{"class":466,"line":485},[464,1645,1646],{"class":481},"  devStorage: {\n",[464,1648,1649],{"class":466,"line":502},[464,1650,1577],{"class":481},[464,1652,1653,1655,1658],{"class":466,"line":710},[464,1654,1582],{"class":481},[464,1656,1657],{"class":491},"\"fs\"",[464,1659,562],{"class":481},[464,1661,1662,1665,1668,1670],{"class":466,"line":716},[464,1663,1664],{"class":481},"      base: ",[464,1666,1667],{"class":491},"\".\u002Fdata\u002Fredis\"",[464,1669,495],{"class":481},[464,1671,1672],{"class":498},"\u002F\u002F use filesystem in development\n",[464,1674,1675],{"class":466,"line":917},[464,1676,1450],{"class":481},[464,1678,1679],{"class":466,"line":1107},[464,1680,713],{"class":481},[464,1682,1683],{"class":466,"line":1117},[464,1684,505],{"class":481},[416,1686,1688],{"id":1687},"database-1",[420,1689,1031],{},[423,1691,1692,1693,990],{},"Database connection configurations. Requires ",[420,1694,1695],{},"experimental.database: true",[456,1697,1699],{"className":458,"code":1698,"language":460,"meta":5,"style":5},"database: {\n  default: {\n    connector: \"sqlite\",\n    options: { name: \"db\" }\n  }\n}\n",[420,1700,1701,1707,1714,1724,1735,1739],{"__ignoreMap":5},[464,1702,1703,1705],{"class":466,"line":467},[464,1704,1031],{"class":477},[464,1706,1149],{"class":481},[464,1708,1709,1712],{"class":466,"line":485},[464,1710,1711],{"class":470},"  default",[464,1713,1149],{"class":481},[464,1715,1716,1719,1722],{"class":466,"line":502},[464,1717,1718],{"class":481},"    connector: ",[464,1720,1721],{"class":491},"\"sqlite\"",[464,1723,562],{"class":481},[464,1725,1726,1729,1732],{"class":466,"line":710},[464,1727,1728],{"class":481},"    options: { name: ",[464,1730,1731],{"class":491},"\"db\"",[464,1733,1734],{"class":481}," }\n",[464,1736,1737],{"class":466,"line":716},[464,1738,1196],{"class":481},[464,1740,1741],{"class":466,"line":917},[464,1742,1201],{"class":481},[408,1744],{"to":39},[416,1746,1748],{"id":1747},"devdatabase",[420,1749,1750],{},"devDatabase",[423,1752,1753],{},"Database connection configuration overrides for development mode.",[456,1755,1757],{"className":458,"code":1756,"language":460,"meta":5,"style":5},"export default defineConfig({\n  devDatabase: {\n    default: {\n      connector: \"sqlite\",\n      options: { name: \"db-dev\" }, \u002F\u002F separate dev database\n    },\n  },\n});\n",[420,1758,1759,1769,1774,1779,1788,1801,1805,1809],{"__ignoreMap":5},[464,1760,1761,1763,1765,1767],{"class":466,"line":467},[464,1762,471],{"class":470},[464,1764,474],{"class":470},[464,1766,478],{"class":477},[464,1768,482],{"class":481},[464,1770,1771],{"class":466,"line":485},[464,1772,1773],{"class":481},"  devDatabase: {\n",[464,1775,1776],{"class":466,"line":502},[464,1777,1778],{"class":481},"    default: {\n",[464,1780,1781,1784,1786],{"class":466,"line":710},[464,1782,1783],{"class":481},"      connector: ",[464,1785,1721],{"class":491},[464,1787,562],{"class":481},[464,1789,1790,1793,1796,1798],{"class":466,"line":716},[464,1791,1792],{"class":481},"      options: { name: ",[464,1794,1795],{"class":491},"\"db-dev\"",[464,1797,657],{"class":481},[464,1799,1800],{"class":498},"\u002F\u002F separate dev database\n",[464,1802,1803],{"class":466,"line":917},[464,1804,1450],{"class":481},[464,1806,1807],{"class":466,"line":1107},[464,1808,713],{"class":481},[464,1810,1811],{"class":466,"line":1117},[464,1812,505],{"class":481},[416,1814,1816],{"id":1815},"renderer",[420,1817,1815],{},[512,1819,1820],{},[515,1821,1822,1823,1827,1828],{},"Type: ",[420,1824,1825],{"className":458,"language":460,"style":5},[464,1826,523],{"class":522}," | ",[420,1829,1830,1833,1836,1839,1841,1844,1846],{"className":458,"language":460,"style":5},[464,1831,1832],{"class":481},"{ handler",[464,1834,1835],{"class":470},"?:",[464,1837,1838],{"class":481}," string, static",[464,1840,1835],{"class":470},[464,1842,1843],{"class":481}," boolean, template",[464,1845,1835],{"class":470},[464,1847,1848],{"class":481}," string }",[423,1850,1851],{},"Points to main render entry (file should export an event handler as default).",[456,1853,1855],{"className":458,"code":1854,"language":460,"meta":5,"style":5},"export default defineConfig({\n  renderer: {\n    handler: \"~\u002Frenderer\", \u002F\u002F path to the render handler\n  },\n});\n",[420,1856,1857,1867,1872,1885,1889],{"__ignoreMap":5},[464,1858,1859,1861,1863,1865],{"class":466,"line":467},[464,1860,471],{"class":470},[464,1862,474],{"class":470},[464,1864,478],{"class":477},[464,1866,482],{"class":481},[464,1868,1869],{"class":466,"line":485},[464,1870,1871],{"class":481},"  renderer: {\n",[464,1873,1874,1877,1880,1882],{"class":466,"line":502},[464,1875,1876],{"class":481},"    handler: ",[464,1878,1879],{"class":491},"\"~\u002Frenderer\"",[464,1881,495],{"class":481},[464,1883,1884],{"class":498},"\u002F\u002F path to the render handler\n",[464,1886,1887],{"class":466,"line":710},[464,1888,713],{"class":481},[464,1890,1891],{"class":466,"line":716},[464,1892,505],{"class":481},[408,1894],{"to":19},[416,1896,1898],{"id":1897},"servestatic",[420,1899,1900],{},"serveStatic",[512,1902,1903,1925],{},[515,1904,1822,1905,1827,1910,1827,1915,1827,1920],{},[420,1906,1907],{"className":458,"language":460,"style":5},[464,1908,1909],{"class":481},"boolean",[420,1911,1912],{"className":458,"language":460,"style":5},[464,1913,1914],{"class":491},"'node'",[420,1916,1917],{"className":458,"language":460,"style":5},[464,1918,1919],{"class":491},"'deno'",[420,1921,1922],{"className":458,"language":460,"style":5},[464,1923,1924],{"class":491},"'inline'",[515,1926,1927],{},"Default: depends on the deployment preset used.",[423,1929,1930,1931,1934],{},"Serve ",[420,1932,1933],{},"public\u002F"," assets in production.",[423,1936,1937,1939,1940,1943],{},[434,1938,670],{}," It is highly recommended that your edge CDN (Nginx, Apache, Cloud) serves the ",[420,1941,1942],{},".output\u002Fpublic\u002F"," directory instead to enable compression and higher level caching.",[456,1945,1947],{"className":458,"code":1946,"language":460,"meta":5,"style":5},"export default defineConfig({\n  serveStatic: \"node\", \u002F\u002F serve static assets using Node.js\n});\n",[420,1948,1949,1959,1972],{"__ignoreMap":5},[464,1950,1951,1953,1955,1957],{"class":466,"line":467},[464,1952,471],{"class":470},[464,1954,474],{"class":470},[464,1956,478],{"class":477},[464,1958,482],{"class":481},[464,1960,1961,1964,1967,1969],{"class":466,"line":485},[464,1962,1963],{"class":481},"  serveStatic: ",[464,1965,1966],{"class":491},"\"node\"",[464,1968,495],{"class":481},[464,1970,1971],{"class":498},"\u002F\u002F serve static assets using Node.js\n",[464,1973,1974],{"class":466,"line":502},[464,1975,505],{"class":481},[416,1977,1979],{"id":1978},"nopublicdir",[420,1980,1981],{},"noPublicDir",[512,1983,1984],{},[515,1985,517,1986],{},[420,1987,1988],{"className":458,"language":460,"style":5},[464,1989,523],{"class":522},[423,1991,1992,1993,1996,1997,1999],{},"If enabled, disables ",[420,1994,1995],{},".output\u002Fpublic"," directory creation. Skips copying ",[420,1998,1933],{}," dir and also disables pre-rendering.",[456,2001,2003],{"className":458,"code":2002,"language":460,"meta":5,"style":5},"export default defineConfig({\n  noPublicDir: true, \u002F\u002F skip public directory output\n});\n",[420,2004,2005,2015,2027],{"__ignoreMap":5},[464,2006,2007,2009,2011,2013],{"class":466,"line":467},[464,2008,471],{"class":470},[464,2010,474],{"class":470},[464,2012,478],{"class":477},[464,2014,482],{"class":481},[464,2016,2017,2020,2022,2024],{"class":466,"line":485},[464,2018,2019],{"class":481},"  noPublicDir: ",[464,2021,529],{"class":522},[464,2023,495],{"class":481},[464,2025,2026],{"class":498},"\u002F\u002F skip public directory output\n",[464,2028,2029],{"class":466,"line":502},[464,2030,505],{"class":481},[416,2032,2034],{"id":2033},"publicassets",[420,2035,2036],{},"publicAssets",[423,2038,2039],{},"Public asset directories to serve in development and bundle in production.",[423,2041,2042,2043,2045],{},"If a ",[420,2044,1933],{}," directory is detected, it will be added by default, but you can add more by yourself too!",[423,2047,2048,2049,2052],{},"It's possible to set Cache-Control headers for assets using the ",[420,2050,2051],{},"maxAge"," option:",[456,2054,2056],{"className":458,"code":2055,"language":460,"meta":5,"style":5},"  publicAssets: [\n    {\n      baseURL: \"images\",\n      dir: \"public\u002Fimages\",\n      maxAge: 60 * 60 * 24 * 7, \u002F\u002F 7 days\n    },\n  ],\n",[420,2057,2058,2066,2071,2081,2091,2120,2124],{"__ignoreMap":5},[464,2059,2060,2063],{"class":466,"line":467},[464,2061,2062],{"class":477},"  publicAssets",[464,2064,2065],{"class":481},": [\n",[464,2067,2068],{"class":466,"line":485},[464,2069,2070],{"class":481},"    {\n",[464,2072,2073,2076,2079],{"class":466,"line":502},[464,2074,2075],{"class":481},"      baseURL: ",[464,2077,2078],{"class":491},"\"images\"",[464,2080,562],{"class":481},[464,2082,2083,2086,2089],{"class":466,"line":710},[464,2084,2085],{"class":481},"      dir: ",[464,2087,2088],{"class":491},"\"public\u002Fimages\"",[464,2090,562],{"class":481},[464,2092,2093,2096,2099,2102,2105,2107,2110,2112,2115,2117],{"class":466,"line":716},[464,2094,2095],{"class":481},"      maxAge: ",[464,2097,2098],{"class":522},"60",[464,2100,2101],{"class":470}," *",[464,2103,2104],{"class":522}," 60",[464,2106,2101],{"class":470},[464,2108,2109],{"class":522}," 24",[464,2111,2101],{"class":470},[464,2113,2114],{"class":522}," 7",[464,2116,495],{"class":481},[464,2118,2119],{"class":498},"\u002F\u002F 7 days\n",[464,2121,2122],{"class":466,"line":917},[464,2123,1450],{"class":481},[464,2125,2126],{"class":466,"line":1107},[464,2127,2128],{"class":481},"  ],\n",[423,2130,2131,2132,2135],{},"The config above generates the following header in the assets under ",[420,2133,2134],{},"public\u002Fimages\u002F"," folder:",[423,2137,2138],{},[420,2139,2140],{},"cache-control: public, max-age=604800, immutable",[423,2142,2143,2144,2147,2148,2151],{},"The ",[420,2145,2146],{},"dir"," option is where your files live on your file system; the ",[420,2149,2150],{},"baseURL"," option is the folder they will be accessible from when served\u002Fbundled.",[408,2153],{"to":29},[416,2155,2157],{"id":2156},"compresspublicassets",[420,2158,2159],{},"compressPublicAssets",[512,2161,2162],{},[515,2163,517,2164],{},[420,2165,2166,2168,2171,2173,2175,2177,2180,2182,2184,2186,2189,2191,2193],{"className":458,"language":460,"style":5},[464,2167,645],{"class":481},[464,2169,2170],{"class":477},"gzip",[464,2172,1164],{"class":481},[464,2174,523],{"class":522},[464,2176,495],{"class":481},[464,2178,2179],{"class":477},"brotli",[464,2181,1164],{"class":481},[464,2183,523],{"class":522},[464,2185,495],{"class":481},[464,2187,2188],{"class":477},"zstd",[464,2190,1164],{"class":481},[464,2192,523],{"class":522},[464,2194,2195],{"class":481}," }",[423,2197,2198],{},"If enabled, Nitro will generate a pre-compressed (gzip, brotli, and\u002For zstd) version of supported types of public assets and prerendered routes\nlarger than 1024 bytes into the public directory. Default compression levels are used. Using this option you can support zero overhead asset compression without using a CDN.",[456,2200,2202],{"className":458,"code":2201,"language":460,"meta":5,"style":5},"export default defineConfig({\n  compressPublicAssets: {\n    gzip: true,\n    brotli: true, \u002F\u002F enable gzip and brotli pre-compression\n  },\n});\n",[420,2203,2204,2214,2219,2228,2240,2244],{"__ignoreMap":5},[464,2205,2206,2208,2210,2212],{"class":466,"line":467},[464,2207,471],{"class":470},[464,2209,474],{"class":470},[464,2211,478],{"class":477},[464,2213,482],{"class":481},[464,2215,2216],{"class":466,"line":485},[464,2217,2218],{"class":481},"  compressPublicAssets: {\n",[464,2220,2221,2224,2226],{"class":466,"line":502},[464,2222,2223],{"class":481},"    gzip: ",[464,2225,529],{"class":522},[464,2227,562],{"class":481},[464,2229,2230,2233,2235,2237],{"class":466,"line":710},[464,2231,2232],{"class":481},"    brotli: ",[464,2234,529],{"class":522},[464,2236,495],{"class":481},[464,2238,2239],{"class":498},"\u002F\u002F enable gzip and brotli pre-compression\n",[464,2241,2242],{"class":466,"line":716},[464,2243,713],{"class":481},[464,2245,2246],{"class":466,"line":917},[464,2247,505],{"class":481},[416,2249,2251],{"id":2250},"serverassets",[420,2252,2253],{},"serverAssets",[423,2255,2256],{},"Assets can be accessed in server logic and bundled in production.",[456,2258,2260],{"className":458,"code":2259,"language":460,"meta":5,"style":5},"export default defineConfig({\n  serverAssets: [\n    {\n      baseName: \"templates\",\n      dir: \".\u002Ftemplates\", \u002F\u002F bundle templates\u002F as server assets\n    },\n  ],\n});\n",[420,2261,2262,2272,2277,2281,2291,2303,2307,2311],{"__ignoreMap":5},[464,2263,2264,2266,2268,2270],{"class":466,"line":467},[464,2265,471],{"class":470},[464,2267,474],{"class":470},[464,2269,478],{"class":477},[464,2271,482],{"class":481},[464,2273,2274],{"class":466,"line":485},[464,2275,2276],{"class":481},"  serverAssets: [\n",[464,2278,2279],{"class":466,"line":502},[464,2280,2070],{"class":481},[464,2282,2283,2286,2289],{"class":466,"line":710},[464,2284,2285],{"class":481},"      baseName: ",[464,2287,2288],{"class":491},"\"templates\"",[464,2290,562],{"class":481},[464,2292,2293,2295,2298,2300],{"class":466,"line":716},[464,2294,2085],{"class":481},[464,2296,2297],{"class":491},"\".\u002Ftemplates\"",[464,2299,495],{"class":481},[464,2301,2302],{"class":498},"\u002F\u002F bundle templates\u002F as server assets\n",[464,2304,2305],{"class":466,"line":917},[464,2306,1450],{"class":481},[464,2308,2309],{"class":466,"line":1107},[464,2310,2128],{"class":481},[464,2312,2313],{"class":466,"line":1117},[464,2314,505],{"class":481},[408,2316],{"to":2317},"\u002Fdocs\u002Fassets#server-assets",[416,2319,2321],{"id":2320},"modules",[420,2322,2320],{},[512,2324,2325],{},[515,2326,517,2327],{},[420,2328,2329],{"className":458,"language":460,"style":5},[464,2330,2331],{"class":481},"[]",[423,2333,2334,2335,2338],{},"An array of Nitro modules. Modules can be a string (path), a module object with a ",[420,2336,2337],{},"setup"," function, or a function.",[456,2340,2342],{"className":458,"code":2341,"language":460,"meta":5,"style":5},"export default defineConfig({\n  modules: [\n    \".\u002Fmodules\u002Fmy-module.ts\",\n    (nitro) => {\n      nitro.hooks.hook(\"compiled\", () => { \u002F* ... *\u002F });\n    },\n  ],\n});\n",[420,2343,2344,2354,2359,2366,2383,2411,2415,2419],{"__ignoreMap":5},[464,2345,2346,2348,2350,2352],{"class":466,"line":467},[464,2347,471],{"class":470},[464,2349,474],{"class":470},[464,2351,478],{"class":477},[464,2353,482],{"class":481},[464,2355,2356],{"class":466,"line":485},[464,2357,2358],{"class":481},"  modules: [\n",[464,2360,2361,2364],{"class":466,"line":502},[464,2362,2363],{"class":491},"    \".\u002Fmodules\u002Fmy-module.ts\"",[464,2365,562],{"class":481},[464,2367,2368,2371,2374,2377,2380],{"class":466,"line":710},[464,2369,2370],{"class":481},"    (",[464,2372,648],{"class":2373},"sQHwn",[464,2375,2376],{"class":481},") ",[464,2378,2379],{"class":470},"=>",[464,2381,2382],{"class":481}," {\n",[464,2384,2385,2388,2391,2394,2397,2400,2402,2405,2408],{"class":466,"line":716},[464,2386,2387],{"class":481},"      nitro.hooks.",[464,2389,2390],{"class":477},"hook",[464,2392,2393],{"class":481},"(",[464,2395,2396],{"class":491},"\"compiled\"",[464,2398,2399],{"class":481},", () ",[464,2401,2379],{"class":470},[464,2403,2404],{"class":481}," { ",[464,2406,2407],{"class":498},"\u002F* ... *\u002F",[464,2409,2410],{"class":481}," });\n",[464,2412,2413],{"class":466,"line":917},[464,2414,1450],{"class":481},[464,2416,2417],{"class":466,"line":1107},[464,2418,2128],{"class":481},[464,2420,2421],{"class":466,"line":1117},[464,2422,505],{"class":481},[416,2424,2426],{"id":2425},"plugins",[420,2427,2425],{},[512,2429,2430],{},[515,2431,517,2432],{},[420,2433,2331],{},[423,2435,2436],{},"An array of paths to nitro plugins. They will be executed by order on the first initialization.",[423,2438,2439,2440,2443],{},"Note that Nitro auto-registers the plugins in the ",[420,2441,2442],{},"plugins\u002F"," directory.",[456,2445,2447],{"className":458,"code":2446,"language":460,"meta":5,"style":5},"export default defineConfig({\n  plugins: [\n    \"~\u002Fplugins\u002Fmy-plugin.ts\",\n  ],\n});\n",[420,2448,2449,2459,2464,2471,2475],{"__ignoreMap":5},[464,2450,2451,2453,2455,2457],{"class":466,"line":467},[464,2452,471],{"class":470},[464,2454,474],{"class":470},[464,2456,478],{"class":477},[464,2458,482],{"class":481},[464,2460,2461],{"class":466,"line":485},[464,2462,2463],{"class":481},"  plugins: [\n",[464,2465,2466,2469],{"class":466,"line":502},[464,2467,2468],{"class":491},"    \"~\u002Fplugins\u002Fmy-plugin.ts\"",[464,2470,562],{"class":481},[464,2472,2473],{"class":466,"line":710},[464,2474,2128],{"class":481},[464,2476,2477],{"class":466,"line":716},[464,2478,505],{"class":481},[408,2480],{"to":54},[416,2482,2484],{"id":2483},"tasks-1",[420,2485,1041],{},[512,2487,2488],{},[515,2489,517,2490],{},[420,2491,835],{},[423,2493,2494,2495,2498,2499,990],{},"Task definitions. Each key is a task name with a ",[420,2496,2497],{},"handler"," path and optional ",[420,2500,2501],{},"description",[456,2503,2505],{"className":458,"code":2504,"language":460,"meta":5,"style":5},"tasks: {\n  'db:migrate': {\n    handler: '.\u002Ftasks\u002Fdb-migrate',\n    description: 'Run database migrations'\n  }\n}\n",[420,2506,2507,2513,2520,2529,2537,2541],{"__ignoreMap":5},[464,2508,2509,2511],{"class":466,"line":467},[464,2510,1041],{"class":477},[464,2512,1149],{"class":481},[464,2514,2515,2518],{"class":466,"line":485},[464,2516,2517],{"class":491},"  'db:migrate'",[464,2519,1149],{"class":481},[464,2521,2522,2524,2527],{"class":466,"line":502},[464,2523,1876],{"class":481},[464,2525,2526],{"class":491},"'.\u002Ftasks\u002Fdb-migrate'",[464,2528,562],{"class":481},[464,2530,2531,2534],{"class":466,"line":710},[464,2532,2533],{"class":481},"    description: ",[464,2535,2536],{"class":491},"'Run database migrations'\n",[464,2538,2539],{"class":466,"line":716},[464,2540,1196],{"class":481},[464,2542,2543],{"class":466,"line":917},[464,2544,1201],{"class":481},[408,2546],{"to":59},[416,2548,2550],{"id":2549},"scheduledtasks",[420,2551,2552],{},"scheduledTasks",[512,2554,2555],{},[515,2556,517,2557],{},[420,2558,835],{},[423,2560,2561],{},"Map of cron expressions to task name(s).",[456,2563,2565],{"className":458,"code":2564,"language":460,"meta":5,"style":5},"scheduledTasks: {\n  '0 * * * *': 'cleanup:temp',\n  '*\u002F5 * * * *': ['health:check', 'metrics:collect']\n}\n",[420,2566,2567,2573,2585,2604],{"__ignoreMap":5},[464,2568,2569,2571],{"class":466,"line":467},[464,2570,2552],{"class":477},[464,2572,1149],{"class":481},[464,2574,2575,2578,2580,2583],{"class":466,"line":485},[464,2576,2577],{"class":491},"  '0 * * * *'",[464,2579,1164],{"class":481},[464,2581,2582],{"class":491},"'cleanup:temp'",[464,2584,562],{"class":481},[464,2586,2587,2590,2593,2596,2598,2601],{"class":466,"line":502},[464,2588,2589],{"class":491},"  '*\u002F5 * * * *'",[464,2591,2592],{"class":481},": [",[464,2594,2595],{"class":491},"'health:check'",[464,2597,495],{"class":481},[464,2599,2600],{"class":491},"'metrics:collect'",[464,2602,2603],{"class":481},"]\n",[464,2605,2606],{"class":466,"line":710},[464,2607,1201],{"class":481},[408,2609],{"to":59},[416,2611,2613],{"id":2612},"imports",[420,2614,2612],{},[512,2616,2617],{},[515,2618,517,2619],{},[420,2620,2621],{"className":458,"language":460,"style":5},[464,2622,523],{"class":522},[423,2624,2625,2626,598],{},"Auto import options. Set to an object to enable. See ",[592,2627,2630],{"href":2628,"rel":2629},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funimport",[596],"unimport",[456,2632,2634],{"className":458,"code":2633,"language":460,"meta":5,"style":5},"export default defineConfig({\n  imports: {\n    dirs: [\".\u002Futils\"], \u002F\u002F auto-import from utils\u002F directory\n  },\n});\n",[420,2635,2636,2646,2651,2665,2669],{"__ignoreMap":5},[464,2637,2638,2640,2642,2644],{"class":466,"line":467},[464,2639,471],{"class":470},[464,2641,474],{"class":470},[464,2643,478],{"class":477},[464,2645,482],{"class":481},[464,2647,2648],{"class":466,"line":485},[464,2649,2650],{"class":481},"  imports: {\n",[464,2652,2653,2656,2659,2662],{"class":466,"line":502},[464,2654,2655],{"class":481},"    dirs: [",[464,2657,2658],{"class":491},"\".\u002Futils\"",[464,2660,2661],{"class":481},"], ",[464,2663,2664],{"class":498},"\u002F\u002F auto-import from utils\u002F directory\n",[464,2666,2667],{"class":466,"line":710},[464,2668,713],{"class":481},[464,2670,2671],{"class":466,"line":716},[464,2672,505],{"class":481},[416,2674,2676],{"id":2675},"virtual",[420,2677,2675],{},[512,2679,2680],{},[515,2681,517,2682],{},[420,2683,835],{},[423,2685,2686],{},"A map from dynamic virtual import names to their contents or an (async) function that returns it.",[456,2688,2690],{"className":458,"code":2689,"language":460,"meta":5,"style":5},"export default defineConfig({\n  virtual: {\n    \"#config\": `export default { version: \"1.0.0\" }`,\n  },\n});\n",[420,2691,2692,2702,2707,2719,2723],{"__ignoreMap":5},[464,2693,2694,2696,2698,2700],{"class":466,"line":467},[464,2695,471],{"class":470},[464,2697,474],{"class":470},[464,2699,478],{"class":477},[464,2701,482],{"class":481},[464,2703,2704],{"class":466,"line":485},[464,2705,2706],{"class":481},"  virtual: {\n",[464,2708,2709,2712,2714,2717],{"class":466,"line":502},[464,2710,2711],{"class":491},"    \"#config\"",[464,2713,1164],{"class":481},[464,2715,2716],{"class":491},"`export default { version: \"1.0.0\" }`",[464,2718,562],{"class":481},[464,2720,2721],{"class":466,"line":710},[464,2722,713],{"class":481},[464,2724,2725],{"class":466,"line":716},[464,2726,505],{"class":481},[416,2728,2730],{"id":2729},"ignore",[420,2731,2729],{},[512,2733,2734],{},[515,2735,517,2736],{},[420,2737,2331],{},[423,2739,2740],{},"Array of glob patterns to ignore when scanning directories.",[456,2742,2744],{"className":458,"code":2743,"language":460,"meta":5,"style":5},"export default defineConfig({\n  ignore: [\n    \"routes\u002F_legacy\u002F**\", \u002F\u002F skip legacy route handlers\n  ],\n});\n",[420,2745,2746,2756,2761,2771,2775],{"__ignoreMap":5},[464,2747,2748,2750,2752,2754],{"class":466,"line":467},[464,2749,471],{"class":470},[464,2751,474],{"class":470},[464,2753,478],{"class":477},[464,2755,482],{"class":481},[464,2757,2758],{"class":466,"line":485},[464,2759,2760],{"class":481},"  ignore: [\n",[464,2762,2763,2766,2768],{"class":466,"line":502},[464,2764,2765],{"class":491},"    \"routes\u002F_legacy\u002F**\"",[464,2767,495],{"class":481},[464,2769,2770],{"class":498},"\u002F\u002F skip legacy route handlers\n",[464,2772,2773],{"class":466,"line":710},[464,2774,2128],{"class":481},[464,2776,2777],{"class":466,"line":716},[464,2778,505],{"class":481},[416,2780,2782],{"id":2781},"wasm",[420,2783,2781],{},[512,2785,2786,2792],{},[515,2787,517,2788],{},[420,2789,2790],{"className":458,"language":460,"style":5},[464,2791,835],{"class":481},[515,2793,1822,2794,1827,2798],{},[420,2795,2796],{"className":458,"language":460,"style":5},[464,2797,523],{"class":522},[420,2799,2800],{"className":458,"language":460,"style":5},[464,2801,2802],{"class":481},"UnwasmPluginOptions",[423,2804,2805,2806,2811],{},"WASM support configuration. See ",[592,2807,2810],{"href":2808,"rel":2809},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funwasm",[596],"unwasm"," for options.",[456,2813,2815],{"className":458,"code":2814,"language":460,"meta":5,"style":5},"export default defineConfig({\n  wasm: {}, \u002F\u002F enable WASM import support\n});\n",[420,2816,2817,2827,2835],{"__ignoreMap":5},[464,2818,2819,2821,2823,2825],{"class":466,"line":467},[464,2820,471],{"class":470},[464,2822,474],{"class":470},[464,2824,478],{"class":477},[464,2826,482],{"class":481},[464,2828,2829,2832],{"class":466,"line":485},[464,2830,2831],{"class":481},"  wasm: {}, ",[464,2833,2834],{"class":498},"\u002F\u002F enable WASM import support\n",[464,2836,2837],{"class":466,"line":502},[464,2838,505],{"class":481},[411,2840,2842],{"id":2841},"dev","Dev",[416,2844,2846],{"id":2845},"devserver",[420,2847,2848],{},"devServer",[512,2850,2851],{},[515,2852,517,2853],{},[420,2854,2855,2857,2860],{"className":458,"language":460,"style":5},[464,2856,645],{"class":481},[464,2858,2859],{"class":477},"watch",[464,2861,2862],{"class":481},": [] }",[423,2864,2865,2866,2868],{},"Dev server options. You can use ",[420,2867,2859],{}," to make the dev server reload if any file changes in specified paths.",[423,2870,2871,2872,495,2875,495,2878,2880,2881,2884],{},"Supports ",[420,2873,2874],{},"port",[420,2876,2877],{},"hostname",[420,2879,2859],{},", and ",[420,2882,2883],{},"runner"," options.",[456,2886,2888],{"className":458,"code":2887,"language":460,"meta":5,"style":5},"export default defineConfig({\n  devServer: {\n    port: 3001,\n    watch: [\".\u002Fserver\u002Fplugins\"],\n  },\n});\n",[420,2889,2890,2900,2905,2915,2926,2930],{"__ignoreMap":5},[464,2891,2892,2894,2896,2898],{"class":466,"line":467},[464,2893,471],{"class":470},[464,2895,474],{"class":470},[464,2897,478],{"class":477},[464,2899,482],{"class":481},[464,2901,2902],{"class":466,"line":485},[464,2903,2904],{"class":481},"  devServer: {\n",[464,2906,2907,2910,2913],{"class":466,"line":502},[464,2908,2909],{"class":481},"    port: ",[464,2911,2912],{"class":522},"3001",[464,2914,562],{"class":481},[464,2916,2917,2920,2923],{"class":466,"line":710},[464,2918,2919],{"class":481},"    watch: [",[464,2921,2922],{"class":491},"\".\u002Fserver\u002Fplugins\"",[464,2924,2925],{"class":481},"],\n",[464,2927,2928],{"class":466,"line":716},[464,2929,713],{"class":481},[464,2931,2932],{"class":466,"line":917},[464,2933,505],{"class":481},[416,2935,2937],{"id":2936},"watchoptions",[420,2938,2939],{},"watchOptions",[423,2941,2942,2943,598],{},"Watch options for development mode. See ",[592,2944,2947],{"href":2945,"rel":2946},"https:\u002F\u002Fgithub.com\u002Fpaulmillr\u002Fchokidar",[596],"chokidar",[456,2949,2951],{"className":458,"code":2950,"language":460,"meta":5,"style":5},"export default defineConfig({\n  watchOptions: {\n    ignored: [\"**\u002Fnode_modules\u002F**\", \"**\u002Fdist\u002F**\"],\n  },\n});\n",[420,2952,2953,2963,2968,2983,2987],{"__ignoreMap":5},[464,2954,2955,2957,2959,2961],{"class":466,"line":467},[464,2956,471],{"class":470},[464,2958,474],{"class":470},[464,2960,478],{"class":477},[464,2962,482],{"class":481},[464,2964,2965],{"class":466,"line":485},[464,2966,2967],{"class":481},"  watchOptions: {\n",[464,2969,2970,2973,2976,2978,2981],{"class":466,"line":502},[464,2971,2972],{"class":481},"    ignored: [",[464,2974,2975],{"class":491},"\"**\u002Fnode_modules\u002F**\"",[464,2977,495],{"class":481},[464,2979,2980],{"class":491},"\"**\u002Fdist\u002F**\"",[464,2982,2925],{"class":481},[464,2984,2985],{"class":466,"line":710},[464,2986,713],{"class":481},[464,2988,2989],{"class":466,"line":716},[464,2990,505],{"class":481},[416,2992,2994],{"id":2993},"devproxy",[420,2995,2996],{},"devProxy",[423,2998,2999],{},"Proxy configuration for development server.",[423,3001,3002],{},"You can use this option to override development server routes and proxy-pass requests.",[456,3004,3006],{"className":1138,"code":3005,"language":1140,"meta":5,"style":5},"{\n  devProxy: {\n    '\u002Fproxy\u002Ftest': 'http:\u002F\u002Flocalhost:3001',\n    '\u002Fproxy\u002Fexample': { target: 'https:\u002F\u002Fexample.com', changeOrigin: true }\n  }\n}\n",[420,3007,3008,3013,3020,3032,3050,3054],{"__ignoreMap":5},[464,3009,3010],{"class":466,"line":467},[464,3011,3012],{"class":481},"{\n",[464,3014,3015,3018],{"class":466,"line":485},[464,3016,3017],{"class":477},"  devProxy",[464,3019,1149],{"class":481},[464,3021,3022,3025,3027,3030],{"class":466,"line":502},[464,3023,3024],{"class":491},"    '\u002Fproxy\u002Ftest'",[464,3026,1164],{"class":481},[464,3028,3029],{"class":491},"'http:\u002F\u002Flocalhost:3001'",[464,3031,562],{"class":481},[464,3033,3034,3037,3040,3043,3046,3048],{"class":466,"line":710},[464,3035,3036],{"class":491},"    '\u002Fproxy\u002Fexample'",[464,3038,3039],{"class":481},": { target: ",[464,3041,3042],{"class":491},"'https:\u002F\u002Fexample.com'",[464,3044,3045],{"class":481},", changeOrigin: ",[464,3047,529],{"class":522},[464,3049,1734],{"class":481},[464,3051,3052],{"class":466,"line":716},[464,3053,1196],{"class":481},[464,3055,3056],{"class":466,"line":917},[464,3057,1201],{"class":481},[423,3059,3060,3061,3066],{},"See ",[592,3062,3065],{"href":3063,"rel":3064},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fhttpxy",[596],"httpxy"," for all available target options.",[411,3068,3070],{"id":3069},"logging","Logging",[416,3072,3074],{"id":3073},"logging-1",[420,3075,3069],{},[512,3077,3078],{},[515,3079,517,3080],{},[420,3081,3082,3084,3087,3089,3091,3093,3096,3098,3100],{"className":458,"language":460,"style":5},[464,3083,645],{"class":481},[464,3085,3086],{"class":477},"compressedSizes",[464,3088,1164],{"class":481},[464,3090,529],{"class":522},[464,3092,495],{"class":481},[464,3094,3095],{"class":477},"buildSuccess",[464,3097,1164],{"class":481},[464,3099,529],{"class":522},[464,3101,2195],{"class":481},[423,3103,3104,3105,3107,3108,3110,3111,3107,3113,3115],{},"Control build logging behavior. Set ",[420,3106,3086],{}," to ",[420,3109,523],{}," to skip reporting compressed bundle sizes. Set ",[420,3112,3095],{},[420,3114,523],{}," to suppress the build success message.",[456,3117,3119],{"className":458,"code":3118,"language":460,"meta":5,"style":5},"export default defineConfig({\n  logging: {\n    compressedSizes: false, \u002F\u002F skip compressed size reporting\n    buildSuccess: false,\n  },\n});\n",[420,3120,3121,3131,3136,3148,3157,3161],{"__ignoreMap":5},[464,3122,3123,3125,3127,3129],{"class":466,"line":467},[464,3124,471],{"class":470},[464,3126,474],{"class":470},[464,3128,478],{"class":477},[464,3130,482],{"class":481},[464,3132,3133],{"class":466,"line":485},[464,3134,3135],{"class":481},"  logging: {\n",[464,3137,3138,3141,3143,3145],{"class":466,"line":502},[464,3139,3140],{"class":481},"    compressedSizes: ",[464,3142,523],{"class":522},[464,3144,495],{"class":481},[464,3146,3147],{"class":498},"\u002F\u002F skip compressed size reporting\n",[464,3149,3150,3153,3155],{"class":466,"line":710},[464,3151,3152],{"class":481},"    buildSuccess: ",[464,3154,523],{"class":522},[464,3156,562],{"class":481},[464,3158,3159],{"class":466,"line":716},[464,3160,713],{"class":481},[464,3162,3163],{"class":466,"line":917},[464,3164,505],{"class":481},[411,3166,23],{"id":3167},"routing",[416,3169,3171],{"id":3170},"baseurl",[420,3172,2150],{},[423,3174,517,3175,3179,3180,3183],{},[420,3176,3177],{"className":458,"language":460,"style":5},[464,3178,400],{"class":470}," (or ",[420,3181,3182],{},"NITRO_APP_BASE_URL"," environment variable if provided)",[423,3185,3186],{},"Server's main base URL.",[456,3188,3190],{"className":458,"code":3189,"language":460,"meta":5,"style":5},"export default defineConfig({\n  baseURL: \"\u002Fapp\u002F\", \u002F\u002F serve app under \u002Fapp\u002F prefix\n});\n",[420,3191,3192,3202,3215],{"__ignoreMap":5},[464,3193,3194,3196,3198,3200],{"class":466,"line":467},[464,3195,471],{"class":470},[464,3197,474],{"class":470},[464,3199,478],{"class":477},[464,3201,482],{"class":481},[464,3203,3204,3207,3210,3212],{"class":466,"line":485},[464,3205,3206],{"class":481},"  baseURL: ",[464,3208,3209],{"class":491},"\"\u002Fapp\u002F\"",[464,3211,495],{"class":481},[464,3213,3214],{"class":498},"\u002F\u002F serve app under \u002Fapp\u002F prefix\n",[464,3216,3217],{"class":466,"line":502},[464,3218,505],{"class":481},[416,3220,3222],{"id":3221},"apibaseurl",[420,3223,3224],{},"apiBaseURL",[512,3226,3227],{},[515,3228,517,3229],{},[420,3230,3231],{},"\u002Fapi",[423,3233,3234],{},"Changes the default API base URL prefix.",[456,3236,3238],{"className":458,"code":3237,"language":460,"meta":5,"style":5},"export default defineConfig({\n  apiBaseURL: \"\u002Fserver\u002Fapi\", \u002F\u002F api routes under \u002Fserver\u002Fapi\u002F\n});\n",[420,3239,3240,3250,3263],{"__ignoreMap":5},[464,3241,3242,3244,3246,3248],{"class":466,"line":467},[464,3243,471],{"class":470},[464,3245,474],{"class":470},[464,3247,478],{"class":477},[464,3249,482],{"class":481},[464,3251,3252,3255,3258,3260],{"class":466,"line":485},[464,3253,3254],{"class":481},"  apiBaseURL: ",[464,3256,3257],{"class":491},"\"\u002Fserver\u002Fapi\"",[464,3259,495],{"class":481},[464,3261,3262],{"class":498},"\u002F\u002F api routes under \u002Fserver\u002Fapi\u002F\n",[464,3264,3265],{"class":466,"line":502},[464,3266,505],{"class":481},[416,3268,3270],{"id":3269},"handlers",[420,3271,3269],{},[423,3273,3274],{},"Server handlers and routes.",[423,3276,3277,3278,495,3281,3284,3285,3288],{},"If ",[420,3279,3280],{},"routes\u002F",[420,3282,3283],{},"api\u002F"," or ",[420,3286,3287],{},"middleware\u002F"," directories exist inside the server directory, they will be automatically added to the handlers array.",[456,3290,3292],{"className":458,"code":3291,"language":460,"meta":5,"style":5},"export default defineConfig({\n  handlers: [\n    { route: \"\u002Fhealth\", handler: \".\u002Fhandlers\u002Fhealth.ts\" },\n    { route: \"\u002Fadmin\u002F**\", handler: \".\u002Fhandlers\u002Fadmin.ts\", method: \"get\" },\n  ],\n});\n",[420,3293,3294,3304,3309,3326,3346,3350],{"__ignoreMap":5},[464,3295,3296,3298,3300,3302],{"class":466,"line":467},[464,3297,471],{"class":470},[464,3299,474],{"class":470},[464,3301,478],{"class":477},[464,3303,482],{"class":481},[464,3305,3306],{"class":466,"line":485},[464,3307,3308],{"class":481},"  handlers: [\n",[464,3310,3311,3314,3317,3320,3323],{"class":466,"line":502},[464,3312,3313],{"class":481},"    { route: ",[464,3315,3316],{"class":491},"\"\u002Fhealth\"",[464,3318,3319],{"class":481},", handler: ",[464,3321,3322],{"class":491},"\".\u002Fhandlers\u002Fhealth.ts\"",[464,3324,3325],{"class":481}," },\n",[464,3327,3328,3330,3333,3335,3338,3341,3344],{"class":466,"line":710},[464,3329,3313],{"class":481},[464,3331,3332],{"class":491},"\"\u002Fadmin\u002F**\"",[464,3334,3319],{"class":481},[464,3336,3337],{"class":491},"\".\u002Fhandlers\u002Fadmin.ts\"",[464,3339,3340],{"class":481},", method: ",[464,3342,3343],{"class":491},"\"get\"",[464,3345,3325],{"class":481},[464,3347,3348],{"class":466,"line":716},[464,3349,2128],{"class":481},[464,3351,3352],{"class":466,"line":917},[464,3353,505],{"class":481},[408,3355],{"to":24},[416,3357,3359],{"id":3358},"devhandlers",[420,3360,3361],{},"devHandlers",[423,3363,3364],{},"Regular handlers refer to the path of handlers to be imported and transformed by the bundler.",[423,3366,3367],{},"There are situations in that we directly want to provide a handler instance with programmatic usage.",[423,3369,3370,3371,3373,3374,959,3377,990],{},"We can use ",[420,3372,3361],{}," but note that they are ",[434,3375,3376],{},"only available in development mode",[434,3378,3379],{},"not in production build",[456,3381,3383],{"className":458,"code":3382,"language":460,"meta":5,"style":5},"export default defineConfig({\n  devHandlers: [\n    { route: \"\u002F__dev\", handler: defineHandler(() => \"dev-only route\") },\n  ],\n});\n",[420,3384,3385,3395,3400,3423,3427],{"__ignoreMap":5},[464,3386,3387,3389,3391,3393],{"class":466,"line":467},[464,3388,471],{"class":470},[464,3390,474],{"class":470},[464,3392,478],{"class":477},[464,3394,482],{"class":481},[464,3396,3397],{"class":466,"line":485},[464,3398,3399],{"class":481},"  devHandlers: [\n",[464,3401,3402,3404,3407,3409,3412,3415,3417,3420],{"class":466,"line":502},[464,3403,3313],{"class":481},[464,3405,3406],{"class":491},"\"\u002F__dev\"",[464,3408,3319],{"class":481},[464,3410,3411],{"class":477},"defineHandler",[464,3413,3414],{"class":481},"(() ",[464,3416,2379],{"class":470},[464,3418,3419],{"class":491}," \"dev-only route\"",[464,3421,3422],{"class":481},") },\n",[464,3424,3425],{"class":466,"line":710},[464,3426,2128],{"class":481},[464,3428,3429],{"class":466,"line":716},[464,3430,505],{"class":481},[416,3432,3434],{"id":3433},"routes",[420,3435,3433],{},[512,3437,3438],{},[515,3439,517,3440],{},[420,3441,3442],{"className":458,"language":460,"style":5},[464,3443,835],{"class":481},[423,3445,3446],{},"Inline route definitions. A map from route pattern to handler path or handler options.",[456,3448,3450],{"className":458,"code":3449,"language":460,"meta":5,"style":5},"export default defineConfig({\n  routes: {\n    \"\u002Fhello\": \".\u002Froutes\u002Fhello.ts\",\n    \"\u002Fgreet\": { handler: \".\u002Froutes\u002Fgreet.ts\", method: \"post\" },\n  },\n});\n",[420,3451,3452,3462,3467,3479,3497,3501],{"__ignoreMap":5},[464,3453,3454,3456,3458,3460],{"class":466,"line":467},[464,3455,471],{"class":470},[464,3457,474],{"class":470},[464,3459,478],{"class":477},[464,3461,482],{"class":481},[464,3463,3464],{"class":466,"line":485},[464,3465,3466],{"class":481},"  routes: {\n",[464,3468,3469,3472,3474,3477],{"class":466,"line":502},[464,3470,3471],{"class":491},"    \"\u002Fhello\"",[464,3473,1164],{"class":481},[464,3475,3476],{"class":491},"\".\u002Froutes\u002Fhello.ts\"",[464,3478,562],{"class":481},[464,3480,3481,3484,3487,3490,3492,3495],{"class":466,"line":710},[464,3482,3483],{"class":491},"    \"\u002Fgreet\"",[464,3485,3486],{"class":481},": { handler: ",[464,3488,3489],{"class":491},"\".\u002Froutes\u002Fgreet.ts\"",[464,3491,3340],{"class":481},[464,3493,3494],{"class":491},"\"post\"",[464,3496,3325],{"class":481},[464,3498,3499],{"class":466,"line":716},[464,3500,713],{"class":481},[464,3502,3503],{"class":466,"line":917},[464,3504,505],{"class":481},[416,3506,3508],{"id":3507},"errorhandler",[420,3509,3510],{},"errorHandler",[512,3512,3513],{},[515,3514,1822,3515,1827,3520],{},[420,3516,3517],{"className":458,"language":460,"style":5},[464,3518,3519],{"class":481},"string",[420,3521,3522],{"className":458,"language":460,"style":5},[464,3523,3524],{"class":481},"string[]",[423,3526,3527],{},"Path(s) to custom runtime error handler(s). Replaces nitro's built-in error page.",[423,3529,3530],{},[434,3531,3532],{},"Example:",[3534,3535,3536,3589],"CodeGroup",{},[456,3537,3540],{"className":1138,"code":3538,"filename":3539,"language":1140,"meta":5,"style":5},"import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  errorHandler: \"~\u002Ferror\",\n});\n","nitro.config",[420,3541,3542,3559,3565,3575,3585],{"__ignoreMap":5},[464,3543,3544,3547,3550,3553,3556],{"class":466,"line":467},[464,3545,3546],{"class":470},"import",[464,3548,3549],{"class":481}," { defineConfig } ",[464,3551,3552],{"class":470},"from",[464,3554,3555],{"class":491}," \"nitro\"",[464,3557,3558],{"class":481},";\n",[464,3560,3561],{"class":466,"line":485},[464,3562,3564],{"emptyLinePlaceholder":3563},true,"\n",[464,3566,3567,3569,3571,3573],{"class":466,"line":502},[464,3568,471],{"class":470},[464,3570,474],{"class":470},[464,3572,478],{"class":477},[464,3574,482],{"class":481},[464,3576,3577,3580,3583],{"class":466,"line":710},[464,3578,3579],{"class":481},"  errorHandler: ",[464,3581,3582],{"class":491},"\"~\u002Ferror\"",[464,3584,562],{"class":481},[464,3586,3587],{"class":466,"line":716},[464,3588,505],{"class":481},[456,3590,3593],{"className":1138,"code":3591,"filename":3592,"language":1140,"meta":5,"style":5},"export default defineErrorHandler((error, event) => {\n  return new Response('[custom error handler] ' + error.stack, {\n    headers: { 'Content-Type': 'text\u002Fplain' }\n  });\n});\n","error.ts",[420,3594,3595,3621,3643,3658,3663],{"__ignoreMap":5},[464,3596,3597,3599,3601,3604,3607,3610,3612,3615,3617,3619],{"class":466,"line":467},[464,3598,471],{"class":470},[464,3600,474],{"class":470},[464,3602,3603],{"class":477}," defineErrorHandler",[464,3605,3606],{"class":481},"((",[464,3608,3609],{"class":2373},"error",[464,3611,495],{"class":481},[464,3613,3614],{"class":2373},"event",[464,3616,2376],{"class":481},[464,3618,2379],{"class":470},[464,3620,2382],{"class":481},[464,3622,3623,3626,3629,3632,3634,3637,3640],{"class":466,"line":485},[464,3624,3625],{"class":470},"  return",[464,3627,3628],{"class":470}," new",[464,3630,3631],{"class":477}," Response",[464,3633,2393],{"class":481},[464,3635,3636],{"class":491},"'[custom error handler] '",[464,3638,3639],{"class":470}," +",[464,3641,3642],{"class":481}," error.stack, {\n",[464,3644,3645,3648,3651,3653,3656],{"class":466,"line":502},[464,3646,3647],{"class":481},"    headers: { ",[464,3649,3650],{"class":491},"'Content-Type'",[464,3652,1164],{"class":481},[464,3654,3655],{"class":491},"'text\u002Fplain'",[464,3657,1734],{"class":481},[464,3659,3660],{"class":466,"line":710},[464,3661,3662],{"class":481},"  });\n",[464,3664,3665],{"class":466,"line":716},[464,3666,505],{"class":481},[416,3668,3670],{"id":3669},"routerules",[420,3671,3672],{},"routeRules",[423,3674,3675],{},[434,3676,3677],{},"🧪 Experimental!",[423,3679,3680,3681,3686],{},"Route options. It is a map from route pattern (following ",[592,3682,3685],{"href":3683,"rel":3684},"https:\u002F\u002Fgithub.com\u002Fh3js\u002Frou3",[596],"rou3",") to route options.",[423,3688,3689,3690,3693,3694,990],{},"When ",[420,3691,3692],{},"cache"," option is set, handlers matching pattern will be automatically wrapped with ",[420,3695,3696],{},"defineCachedHandler",[423,3698,3699,3700,3703],{},"See the ",[592,3701,3702],{"href":74},"Cache API"," for all available cache options.",[965,3705,3706],{},[423,3707,3708,3711,3712],{},[420,3709,3710],{},"swr: true|number"," is shortcut for ",[420,3713,3714],{},"cache: { swr: true, maxAge: number }",[423,3716,3717],{},[434,3718,3532],{},[456,3720,3722],{"className":1138,"code":3721,"language":1140,"meta":5,"style":5},"routeRules: {\n  '\u002Fblog\u002F**': { swr: true },\n  '\u002Fblog\u002F**': { swr: 600 },\n  '\u002Fblog\u002F**': { static: true },\n  '\u002Fblog\u002F**': { cache: { \u002F* cache options*\u002F } },\n  '\u002Fassets\u002F**': { headers: { 'cache-control': 's-maxage=0' } },\n  '\u002Fapi\u002Fv1\u002F**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },\n  '\u002Fold-page': { redirect: '\u002Fnew-page' }, \u002F\u002F uses status code 307 (Temporary Redirect)\n  '\u002Fold-page2': { redirect: { to:'\u002Fnew-page2', statusCode: 301 } },\n  '\u002Fold-page\u002F**': { redirect: '\u002Fnew-page\u002F**' },\n  '\u002Fproxy\u002Fexample': { proxy: 'https:\u002F\u002Fexample.com' },\n  '\u002Fproxy\u002F**': { proxy: '\u002Fapi\u002F**' },\n  '\u002Fadmin\u002F**': { basicAuth: { username: 'admin', password: 'secret' } },\n}\n",[420,3723,3724,3730,3742,3753,3764,3777,3795,3818,3834,3853,3865,3877,3890,3910],{"__ignoreMap":5},[464,3725,3726,3728],{"class":466,"line":467},[464,3727,3672],{"class":477},[464,3729,1149],{"class":481},[464,3731,3732,3735,3738,3740],{"class":466,"line":485},[464,3733,3734],{"class":491},"  '\u002Fblog\u002F**'",[464,3736,3737],{"class":481},": { swr: ",[464,3739,529],{"class":522},[464,3741,3325],{"class":481},[464,3743,3744,3746,3748,3751],{"class":466,"line":502},[464,3745,3734],{"class":491},[464,3747,3737],{"class":481},[464,3749,3750],{"class":522},"600",[464,3752,3325],{"class":481},[464,3754,3755,3757,3760,3762],{"class":466,"line":710},[464,3756,3734],{"class":491},[464,3758,3759],{"class":481},": { static: ",[464,3761,529],{"class":522},[464,3763,3325],{"class":481},[464,3765,3766,3768,3771,3774],{"class":466,"line":716},[464,3767,3734],{"class":491},[464,3769,3770],{"class":481},": { cache: { ",[464,3772,3773],{"class":498},"\u002F* cache options*\u002F",[464,3775,3776],{"class":481}," } },\n",[464,3778,3779,3782,3785,3788,3790,3793],{"class":466,"line":917},[464,3780,3781],{"class":491},"  '\u002Fassets\u002F**'",[464,3783,3784],{"class":481},": { headers: { ",[464,3786,3787],{"class":491},"'cache-control'",[464,3789,1164],{"class":481},[464,3791,3792],{"class":491},"'s-maxage=0'",[464,3794,3776],{"class":481},[464,3796,3797,3800,3803,3805,3808,3811,3813,3816],{"class":466,"line":1107},[464,3798,3799],{"class":491},"  '\u002Fapi\u002Fv1\u002F**'",[464,3801,3802],{"class":481},": { cors: ",[464,3804,529],{"class":522},[464,3806,3807],{"class":481},", headers: { ",[464,3809,3810],{"class":491},"'access-control-allow-methods'",[464,3812,1164],{"class":481},[464,3814,3815],{"class":491},"'GET'",[464,3817,3776],{"class":481},[464,3819,3820,3823,3826,3829,3831],{"class":466,"line":1117},[464,3821,3822],{"class":491},"  '\u002Fold-page'",[464,3824,3825],{"class":481},": { redirect: ",[464,3827,3828],{"class":491},"'\u002Fnew-page'",[464,3830,657],{"class":481},[464,3832,3833],{"class":498},"\u002F\u002F uses status code 307 (Temporary Redirect)\n",[464,3835,3836,3839,3842,3845,3848,3851],{"class":466,"line":1122},[464,3837,3838],{"class":491},"  '\u002Fold-page2'",[464,3840,3841],{"class":481},": { redirect: { to:",[464,3843,3844],{"class":491},"'\u002Fnew-page2'",[464,3846,3847],{"class":481},", statusCode: ",[464,3849,3850],{"class":522},"301",[464,3852,3776],{"class":481},[464,3854,3855,3858,3860,3863],{"class":466,"line":1395},[464,3856,3857],{"class":491},"  '\u002Fold-page\u002F**'",[464,3859,3825],{"class":481},[464,3861,3862],{"class":491},"'\u002Fnew-page\u002F**'",[464,3864,3325],{"class":481},[464,3866,3867,3870,3873,3875],{"class":466,"line":1476},[464,3868,3869],{"class":491},"  '\u002Fproxy\u002Fexample'",[464,3871,3872],{"class":481},": { proxy: ",[464,3874,3042],{"class":491},[464,3876,3325],{"class":481},[464,3878,3880,3883,3885,3888],{"class":466,"line":3879},12,[464,3881,3882],{"class":491},"  '\u002Fproxy\u002F**'",[464,3884,3872],{"class":481},[464,3886,3887],{"class":491},"'\u002Fapi\u002F**'",[464,3889,3325],{"class":481},[464,3891,3893,3896,3899,3902,3905,3908],{"class":466,"line":3892},13,[464,3894,3895],{"class":491},"  '\u002Fadmin\u002F**'",[464,3897,3898],{"class":481},": { basicAuth: { username: ",[464,3900,3901],{"class":491},"'admin'",[464,3903,3904],{"class":481},", password: ",[464,3906,3907],{"class":491},"'secret'",[464,3909,3776],{"class":481},[464,3911,3913],{"class":466,"line":3912},14,[464,3914,1201],{"class":481},[408,3916],{"to":3917},"\u002Fdocs\u002Frouting#route-rules",[416,3919,3921],{"id":3920},"prerender",[420,3922,3920],{},[423,3924,3925],{},"Default:",[456,3927,3929],{"className":458,"code":3928,"language":460,"meta":5,"style":5},"{\n  autoSubfolderIndex: true,\n  concurrency: 1,\n  interval: 0,\n  failOnError: false,\n  crawlLinks: false,\n  ignore: [],\n  routes: [],\n  retry: 3,\n  retryDelay: 500\n}\n",[420,3930,3931,3935,3946,3957,3969,3980,3991,3999,4006,4017,4027],{"__ignoreMap":5},[464,3932,3933],{"class":466,"line":467},[464,3934,3012],{"class":481},[464,3936,3937,3940,3942,3944],{"class":466,"line":485},[464,3938,3939],{"class":477},"  autoSubfolderIndex",[464,3941,1164],{"class":481},[464,3943,529],{"class":522},[464,3945,562],{"class":481},[464,3947,3948,3951,3953,3955],{"class":466,"line":502},[464,3949,3950],{"class":477},"  concurrency",[464,3952,1164],{"class":481},[464,3954,586],{"class":522},[464,3956,562],{"class":481},[464,3958,3959,3962,3964,3967],{"class":466,"line":710},[464,3960,3961],{"class":477},"  interval",[464,3963,1164],{"class":481},[464,3965,3966],{"class":522},"0",[464,3968,562],{"class":481},[464,3970,3971,3974,3976,3978],{"class":466,"line":716},[464,3972,3973],{"class":477},"  failOnError",[464,3975,1164],{"class":481},[464,3977,523],{"class":522},[464,3979,562],{"class":481},[464,3981,3982,3985,3987,3989],{"class":466,"line":917},[464,3983,3984],{"class":477},"  crawlLinks",[464,3986,1164],{"class":481},[464,3988,523],{"class":522},[464,3990,562],{"class":481},[464,3992,3993,3996],{"class":466,"line":1107},[464,3994,3995],{"class":477},"  ignore",[464,3997,3998],{"class":481},": [],\n",[464,4000,4001,4004],{"class":466,"line":1117},[464,4002,4003],{"class":477},"  routes",[464,4005,3998],{"class":481},[464,4007,4008,4011,4013,4015],{"class":466,"line":1122},[464,4009,4010],{"class":477},"  retry",[464,4012,1164],{"class":481},[464,4014,581],{"class":522},[464,4016,562],{"class":481},[464,4018,4019,4022,4024],{"class":466,"line":1395},[464,4020,4021],{"class":477},"  retryDelay",[464,4023,1164],{"class":481},[464,4025,4026],{"class":522},"500\n",[464,4028,4029],{"class":466,"line":1476},[464,4030,1201],{"class":481},[423,4032,4033,4034,4036],{},"Prerendered options. Any route specified will be fetched during the build and copied to the ",[420,4035,1995],{}," directory as a static asset.",[423,4038,4039,4040,4042],{},"Any route (string) that starts with a prefix listed in ",[420,4041,2729],{}," or matches a regular expression or function will be ignored.",[423,4044,3277,4045,4048,4049,4051,4052,4054,4055,4057,4058,4061],{},[420,4046,4047],{},"crawlLinks"," option is set to ",[420,4050,529],{},", nitro starts with ",[420,4053,400],{}," by default (or all routes in ",[420,4056,3433],{}," array) and for HTML pages extracts ",[420,4059,4060],{},"\u003Ca>"," tags and prerender them as well.",[423,4063,4064,4065,4068,4069,4071],{},"You can set ",[420,4066,4067],{},"failOnError"," option to ",[420,4070,529],{}," to stop the CI when Nitro could not prerender a route.",[423,4073,2143,4074,959,4077,4080],{},[420,4075,4076],{},"interval",[420,4078,4079],{},"concurrency"," options lets you control the speed of pre-rendering, can be useful to avoid hitting some rate-limit if you call external APIs.",[423,4082,4083,4084,4087,4088,4090],{},"Set ",[420,4085,4086],{},"autoSubfolderIndex"," lets you control how to generate the files in the ",[420,4089,1995],{}," directory:",[456,4092,4096],{"className":4093,"code":4094,"language":4095,"meta":5,"style":5},"language-bash shiki shiki-themes github-light github-dark github-dark","# autoSubfolderIndex: true (default)\n\u002Fabout -> .output\u002Fpublic\u002Fabout\u002Findex.html\n# autoSubfolderIndex: false\n\u002Fabout -> .output\u002Fpublic\u002Fabout.html\n","bash",[420,4097,4098,4103,4117,4122],{"__ignoreMap":5},[464,4099,4100],{"class":466,"line":467},[464,4101,4102],{"class":498},"# autoSubfolderIndex: true (default)\n",[464,4104,4105,4108,4111,4114],{"class":466,"line":485},[464,4106,4107],{"class":477},"\u002Fabout",[464,4109,4110],{"class":481}," -",[464,4112,4113],{"class":470},">",[464,4115,4116],{"class":491}," .output\u002Fpublic\u002Fabout\u002Findex.html\n",[464,4118,4119],{"class":466,"line":502},[464,4120,4121],{"class":498},"# autoSubfolderIndex: false\n",[464,4123,4124,4126,4128,4130],{"class":466,"line":710},[464,4125,4107],{"class":477},[464,4127,4110],{"class":481},[464,4129,4113],{"class":470},[464,4131,4132],{"class":491}," .output\u002Fpublic\u002Fabout.html\n",[423,4134,4135],{},"This option is useful when your hosting provider does not give you an option regarding the trailing slash.",[423,4137,4138,4139,959,4142,4145],{},"The prerenderer will attempt to render pages 3 times with a delay of 500ms. Use ",[420,4140,4141],{},"retry",[420,4143,4144],{},"retryDelay"," to change this behavior.",[411,4147,4149],{"id":4148},"directories","Directories",[416,4151,4153],{"id":4152},"workspacedir",[420,4154,4155],{},"workspaceDir",[423,4157,4158],{},"Project workspace root directory.",[423,4160,4161,4162,4164],{},"The workspace (e.g. pnpm workspace)  directory is automatically detected when the ",[420,4163,4155],{}," option is not set.",[456,4166,4168],{"className":458,"code":4167,"language":460,"meta":5,"style":5},"export default defineConfig({\n  workspaceDir: \"..\u002F\", \u002F\u002F monorepo root\n});\n",[420,4169,4170,4180,4193],{"__ignoreMap":5},[464,4171,4172,4174,4176,4178],{"class":466,"line":467},[464,4173,471],{"class":470},[464,4175,474],{"class":470},[464,4177,478],{"class":477},[464,4179,482],{"class":481},[464,4181,4182,4185,4188,4190],{"class":466,"line":485},[464,4183,4184],{"class":481},"  workspaceDir: ",[464,4186,4187],{"class":491},"\"..\u002F\"",[464,4189,495],{"class":481},[464,4191,4192],{"class":498},"\u002F\u002F monorepo root\n",[464,4194,4195],{"class":466,"line":502},[464,4196,505],{"class":481},[416,4198,4200],{"id":4199},"rootdir",[420,4201,4202],{},"rootDir",[423,4204,4205],{},"Project main directory.",[456,4207,4209],{"className":458,"code":4208,"language":460,"meta":5,"style":5},"export default defineConfig({\n  rootDir: \".\u002Fsrc\u002Fserver\",\n});\n",[420,4210,4211,4221,4231],{"__ignoreMap":5},[464,4212,4213,4215,4217,4219],{"class":466,"line":467},[464,4214,471],{"class":470},[464,4216,474],{"class":470},[464,4218,478],{"class":477},[464,4220,482],{"class":481},[464,4222,4223,4226,4229],{"class":466,"line":485},[464,4224,4225],{"class":481},"  rootDir: ",[464,4227,4228],{"class":491},"\".\u002Fsrc\u002Fserver\"",[464,4230,562],{"class":481},[464,4232,4233],{"class":466,"line":502},[464,4234,505],{"class":481},[416,4236,4238],{"id":4237},"serverdir",[420,4239,4240],{},"serverDir",[512,4242,4243,4249],{},[515,4244,517,4245],{},[420,4246,4247],{"className":458,"language":460,"style":5},[464,4248,523],{"class":522},[515,4250,1822,4251,1827,4255,1827,4258,1827,4261],{},[420,4252,4253],{"className":458,"language":460,"style":5},[464,4254,1909],{"class":481},[420,4256,4257],{},"\".\u002F\"",[420,4259,4260],{},"\".\u002Fserver\"",[420,4262,4263],{"className":458,"language":460,"style":5},[464,4264,3519],{"class":481},[423,4266,4267,4268,495,4270,495,4272,495,4274,495,4277,495,4279,2880,4282,4285],{},"Server directory for scanning ",[420,4269,3283],{},[420,4271,3280],{},[420,4273,2442],{},[420,4275,4276],{},"utils\u002F",[420,4278,3287],{},[420,4280,4281],{},"assets\u002F",[420,4283,4284],{},"tasks\u002F"," folders.",[423,4287,4288,4289,4291,4292,4294,4295,4297,4298,4301],{},"When set to ",[420,4290,523],{},", automatic directory scanning is disabled. Set to ",[420,4293,4257],{}," to use the root directory, or ",[420,4296,4260],{}," to use a ",[420,4299,4300],{},"server\u002F"," subdirectory.",[456,4303,4305],{"className":458,"code":4304,"language":460,"meta":5,"style":5},"export default defineConfig({\n  serverDir: \".\u002Fserver\", \u002F\u002F scan server\u002F subdirectory\n});\n",[420,4306,4307,4317,4329],{"__ignoreMap":5},[464,4308,4309,4311,4313,4315],{"class":466,"line":467},[464,4310,471],{"class":470},[464,4312,474],{"class":470},[464,4314,478],{"class":477},[464,4316,482],{"class":481},[464,4318,4319,4322,4324,4326],{"class":466,"line":485},[464,4320,4321],{"class":481},"  serverDir: ",[464,4323,4260],{"class":491},[464,4325,495],{"class":481},[464,4327,4328],{"class":498},"\u002F\u002F scan server\u002F subdirectory\n",[464,4330,4331],{"class":466,"line":502},[464,4332,505],{"class":481},[416,4334,4336],{"id":4335},"scandirs",[420,4337,4338],{},"scanDirs",[512,4340,4341],{},[515,4342,4343],{},"Default: (source directory when empty array)",[423,4345,4346],{},"List of directories to scan and auto-register files, such as API routes.",[456,4348,4350],{"className":458,"code":4349,"language":460,"meta":5,"style":5},"export default defineConfig({\n  scanDirs: [\".\u002Fmodules\u002Fauth\u002Fapi\", \".\u002Fmodules\u002Fbilling\u002Fapi\"],\n});\n",[420,4351,4352,4362,4377],{"__ignoreMap":5},[464,4353,4354,4356,4358,4360],{"class":466,"line":467},[464,4355,471],{"class":470},[464,4357,474],{"class":470},[464,4359,478],{"class":477},[464,4361,482],{"class":481},[464,4363,4364,4367,4370,4372,4375],{"class":466,"line":485},[464,4365,4366],{"class":481},"  scanDirs: [",[464,4368,4369],{"class":491},"\".\u002Fmodules\u002Fauth\u002Fapi\"",[464,4371,495],{"class":481},[464,4373,4374],{"class":491},"\".\u002Fmodules\u002Fbilling\u002Fapi\"",[464,4376,2925],{"class":481},[464,4378,4379],{"class":466,"line":502},[464,4380,505],{"class":481},[416,4382,4384],{"id":4383},"apidir",[420,4385,4386],{},"apiDir",[512,4388,4389],{},[515,4390,517,4391],{},[420,4392,4393],{},"api",[423,4395,4396],{},"Defines a different directory to scan for api route handlers.",[456,4398,4400],{"className":458,"code":4399,"language":460,"meta":5,"style":5},"export default defineConfig({\n  apiDir: \"endpoints\", \u002F\u002F scan endpoints\u002F instead of api\u002F\n});\n",[420,4401,4402,4412,4425],{"__ignoreMap":5},[464,4403,4404,4406,4408,4410],{"class":466,"line":467},[464,4405,471],{"class":470},[464,4407,474],{"class":470},[464,4409,478],{"class":477},[464,4411,482],{"class":481},[464,4413,4414,4417,4420,4422],{"class":466,"line":485},[464,4415,4416],{"class":481},"  apiDir: ",[464,4418,4419],{"class":491},"\"endpoints\"",[464,4421,495],{"class":481},[464,4423,4424],{"class":498},"\u002F\u002F scan endpoints\u002F instead of api\u002F\n",[464,4426,4427],{"class":466,"line":502},[464,4428,505],{"class":481},[416,4430,4432],{"id":4431},"routesdir",[420,4433,4434],{},"routesDir",[512,4436,4437],{},[515,4438,517,4439],{},[420,4440,3433],{},[423,4442,4443],{},"Defines a different directory to scan for route handlers.",[456,4445,4447],{"className":458,"code":4446,"language":460,"meta":5,"style":5},"export default defineConfig({\n  routesDir: \"pages\", \u002F\u002F scan pages\u002F instead of routes\u002F\n});\n",[420,4448,4449,4459,4472],{"__ignoreMap":5},[464,4450,4451,4453,4455,4457],{"class":466,"line":467},[464,4452,471],{"class":470},[464,4454,474],{"class":470},[464,4456,478],{"class":477},[464,4458,482],{"class":481},[464,4460,4461,4464,4467,4469],{"class":466,"line":485},[464,4462,4463],{"class":481},"  routesDir: ",[464,4465,4466],{"class":491},"\"pages\"",[464,4468,495],{"class":481},[464,4470,4471],{"class":498},"\u002F\u002F scan pages\u002F instead of routes\u002F\n",[464,4473,4474],{"class":466,"line":502},[464,4475,505],{"class":481},[416,4477,4479],{"id":4478},"builddir",[420,4480,4481],{},"buildDir",[512,4483,4484],{},[515,4485,517,4486],{},[420,4487,4488],{},"node_modules\u002F.nitro",[423,4490,4491],{},"Nitro's temporary working directory for generating build-related files.",[456,4493,4495],{"className":458,"code":4494,"language":460,"meta":5,"style":5},"export default defineConfig({\n  buildDir: \".nitro\", \u002F\u002F use .nitro\u002F in project root\n});\n",[420,4496,4497,4507,4520],{"__ignoreMap":5},[464,4498,4499,4501,4503,4505],{"class":466,"line":467},[464,4500,471],{"class":470},[464,4502,474],{"class":470},[464,4504,478],{"class":477},[464,4506,482],{"class":481},[464,4508,4509,4512,4515,4517],{"class":466,"line":485},[464,4510,4511],{"class":481},"  buildDir: ",[464,4513,4514],{"class":491},"\".nitro\"",[464,4516,495],{"class":481},[464,4518,4519],{"class":498},"\u002F\u002F use .nitro\u002F in project root\n",[464,4521,4522],{"class":466,"line":502},[464,4523,505],{"class":481},[416,4525,4527],{"id":4526},"output",[420,4528,4526],{},[512,4530,4531],{},[515,4532,517,4533],{},[420,4534,4535],{},"{ dir: '.output', serverDir: '.output\u002Fserver', publicDir: '.output\u002Fpublic' }",[423,4537,4538],{},"Output directories for production bundle.",[456,4540,4542],{"className":458,"code":4541,"language":460,"meta":5,"style":5},"export default defineConfig({\n  output: {\n    dir: \"dist\",\n    serverDir: \"dist\u002Fserver\",\n    publicDir: \"dist\u002Fpublic\",\n  },\n});\n",[420,4543,4544,4554,4559,4569,4579,4589,4593],{"__ignoreMap":5},[464,4545,4546,4548,4550,4552],{"class":466,"line":467},[464,4547,471],{"class":470},[464,4549,474],{"class":470},[464,4551,478],{"class":477},[464,4553,482],{"class":481},[464,4555,4556],{"class":466,"line":485},[464,4557,4558],{"class":481},"  output: {\n",[464,4560,4561,4564,4567],{"class":466,"line":502},[464,4562,4563],{"class":481},"    dir: ",[464,4565,4566],{"class":491},"\"dist\"",[464,4568,562],{"class":481},[464,4570,4571,4574,4577],{"class":466,"line":710},[464,4572,4573],{"class":481},"    serverDir: ",[464,4575,4576],{"class":491},"\"dist\u002Fserver\"",[464,4578,562],{"class":481},[464,4580,4581,4584,4587],{"class":466,"line":716},[464,4582,4583],{"class":481},"    publicDir: ",[464,4585,4586],{"class":491},"\"dist\u002Fpublic\"",[464,4588,562],{"class":481},[464,4590,4591],{"class":466,"line":917},[464,4592,713],{"class":481},[464,4594,4595],{"class":466,"line":1107},[464,4596,505],{"class":481},[411,4598,4600],{"id":4599},"build","Build",[416,4602,4604],{"id":4603},"builder",[420,4605,4603],{},[512,4607,4608,4625],{},[515,4609,1822,4610,1827,4615,1827,4620],{},[420,4611,4612],{"className":458,"language":460,"style":5},[464,4613,4614],{"class":491},"\"rollup\"",[420,4616,4617],{"className":458,"language":460,"style":5},[464,4618,4619],{"class":491},"\"rolldown\"",[420,4621,4622],{"className":458,"language":460,"style":5},[464,4623,4624],{"class":491},"\"vite\"",[515,4626,517,4627,4632],{},[420,4628,4629],{"className":458,"language":460,"style":5},[464,4630,4631],{"class":522},"undefined"," (auto-detected)",[423,4634,4635],{},"Specify the bundler to use for building.",[456,4637,4639],{"className":458,"code":4638,"language":460,"meta":5,"style":5},"export default defineConfig({\n  builder: \"vite\",\n});\n",[420,4640,4641,4651,4660],{"__ignoreMap":5},[464,4642,4643,4645,4647,4649],{"class":466,"line":467},[464,4644,471],{"class":470},[464,4646,474],{"class":470},[464,4648,478],{"class":477},[464,4650,482],{"class":481},[464,4652,4653,4656,4658],{"class":466,"line":485},[464,4654,4655],{"class":481},"  builder: ",[464,4657,4624],{"class":491},[464,4659,562],{"class":481},[464,4661,4662],{"class":466,"line":502},[464,4663,505],{"class":481},[416,4665,4667],{"id":4666},"rollupconfig",[420,4668,4669],{},"rollupConfig",[423,4671,4672],{},"Additional rollup configuration.",[456,4674,4676],{"className":458,"code":4675,"language":460,"meta":5,"style":5},"export default defineConfig({\n  rollupConfig: {\n    output: { manualChunks: { vendor: [\"lodash-es\"] } },\n  },\n});\n",[420,4677,4678,4688,4693,4704,4708],{"__ignoreMap":5},[464,4679,4680,4682,4684,4686],{"class":466,"line":467},[464,4681,471],{"class":470},[464,4683,474],{"class":470},[464,4685,478],{"class":477},[464,4687,482],{"class":481},[464,4689,4690],{"class":466,"line":485},[464,4691,4692],{"class":481},"  rollupConfig: {\n",[464,4694,4695,4698,4701],{"class":466,"line":502},[464,4696,4697],{"class":481},"    output: { manualChunks: { vendor: [",[464,4699,4700],{"class":491},"\"lodash-es\"",[464,4702,4703],{"class":481},"] } },\n",[464,4705,4706],{"class":466,"line":710},[464,4707,713],{"class":481},[464,4709,4710],{"class":466,"line":716},[464,4711,505],{"class":481},[416,4713,4715],{"id":4714},"rolldownconfig",[420,4716,4717],{},"rolldownConfig",[423,4719,4720],{},"Additional rolldown configuration.",[456,4722,4724],{"className":458,"code":4723,"language":460,"meta":5,"style":5},"export default defineConfig({\n  rolldownConfig: {\n    output: { banner: \"\u002F* built with nitro *\u002F\" },\n  },\n});\n",[420,4725,4726,4736,4741,4751,4755],{"__ignoreMap":5},[464,4727,4728,4730,4732,4734],{"class":466,"line":467},[464,4729,471],{"class":470},[464,4731,474],{"class":470},[464,4733,478],{"class":477},[464,4735,482],{"class":481},[464,4737,4738],{"class":466,"line":485},[464,4739,4740],{"class":481},"  rolldownConfig: {\n",[464,4742,4743,4746,4749],{"class":466,"line":502},[464,4744,4745],{"class":481},"    output: { banner: ",[464,4747,4748],{"class":491},"\"\u002F* built with nitro *\u002F\"",[464,4750,3325],{"class":481},[464,4752,4753],{"class":466,"line":710},[464,4754,713],{"class":481},[464,4756,4757],{"class":466,"line":716},[464,4758,505],{"class":481},[416,4760,4762],{"id":4761},"entry",[420,4763,4761],{},[423,4765,4766],{},"Bundler entry point.",[456,4768,4770],{"className":458,"code":4769,"language":460,"meta":5,"style":5},"export default defineConfig({\n  entry: \".\u002Fserver\u002Fentry.ts\", \u002F\u002F custom entry file\n});\n",[420,4771,4772,4782,4795],{"__ignoreMap":5},[464,4773,4774,4776,4778,4780],{"class":466,"line":467},[464,4775,471],{"class":470},[464,4777,474],{"class":470},[464,4779,478],{"class":477},[464,4781,482],{"class":481},[464,4783,4784,4787,4790,4792],{"class":466,"line":485},[464,4785,4786],{"class":481},"  entry: ",[464,4788,4789],{"class":491},"\".\u002Fserver\u002Fentry.ts\"",[464,4791,495],{"class":481},[464,4793,4794],{"class":498},"\u002F\u002F custom entry file\n",[464,4796,4797],{"class":466,"line":502},[464,4798,505],{"class":481},[416,4800,4802],{"id":4801},"unenv",[420,4803,4801],{},[423,4805,4806,4810],{},[592,4807,4801],{"href":4808,"rel":4809},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funenv\u002F",[596]," preset(s) for environment compatibility.",[456,4812,4814],{"className":458,"code":4813,"language":460,"meta":5,"style":5},"export default defineConfig({\n  unenv: {\n    alias: { \"my-module\": \"my-module\u002Fweb\" },\n  },\n});\n",[420,4815,4816,4826,4831,4846,4850],{"__ignoreMap":5},[464,4817,4818,4820,4822,4824],{"class":466,"line":467},[464,4819,471],{"class":470},[464,4821,474],{"class":470},[464,4823,478],{"class":477},[464,4825,482],{"class":481},[464,4827,4828],{"class":466,"line":485},[464,4829,4830],{"class":481},"  unenv: {\n",[464,4832,4833,4836,4839,4841,4844],{"class":466,"line":502},[464,4834,4835],{"class":481},"    alias: { ",[464,4837,4838],{"class":491},"\"my-module\"",[464,4840,1164],{"class":481},[464,4842,4843],{"class":491},"\"my-module\u002Fweb\"",[464,4845,3325],{"class":481},[464,4847,4848],{"class":466,"line":710},[464,4849,713],{"class":481},[464,4851,4852],{"class":466,"line":716},[464,4853,505],{"class":481},[416,4855,4857],{"id":4856},"alias",[420,4858,4856],{},[423,4860,4861],{},"Path aliases for module resolution.",[456,4863,4865],{"className":458,"code":4864,"language":460,"meta":5,"style":5},"export default defineConfig({\n  alias: {\n    \"~utils\": \".\u002Fsrc\u002Futils\",\n    \"#shared\": \".\u002Fshared\",\n  },\n});\n",[420,4866,4867,4877,4882,4894,4906,4910],{"__ignoreMap":5},[464,4868,4869,4871,4873,4875],{"class":466,"line":467},[464,4870,471],{"class":470},[464,4872,474],{"class":470},[464,4874,478],{"class":477},[464,4876,482],{"class":481},[464,4878,4879],{"class":466,"line":485},[464,4880,4881],{"class":481},"  alias: {\n",[464,4883,4884,4887,4889,4892],{"class":466,"line":502},[464,4885,4886],{"class":491},"    \"~utils\"",[464,4888,1164],{"class":481},[464,4890,4891],{"class":491},"\".\u002Fsrc\u002Futils\"",[464,4893,562],{"class":481},[464,4895,4896,4899,4901,4904],{"class":466,"line":710},[464,4897,4898],{"class":491},"    \"#shared\"",[464,4900,1164],{"class":481},[464,4902,4903],{"class":491},"\".\u002Fshared\"",[464,4905,562],{"class":481},[464,4907,4908],{"class":466,"line":716},[464,4909,713],{"class":481},[464,4911,4912],{"class":466,"line":917},[464,4913,505],{"class":481},[416,4915,4917],{"id":4916},"minify",[420,4918,4916],{},[512,4920,4921],{},[515,4922,517,4923],{},[420,4924,523],{},[423,4926,4927],{},"Minify bundle.",[456,4929,4931],{"className":458,"code":4930,"language":460,"meta":5,"style":5},"export default defineConfig({\n  minify: true, \u002F\u002F minify production bundle\n});\n",[420,4932,4933,4943,4955],{"__ignoreMap":5},[464,4934,4935,4937,4939,4941],{"class":466,"line":467},[464,4936,471],{"class":470},[464,4938,474],{"class":470},[464,4940,478],{"class":477},[464,4942,482],{"class":481},[464,4944,4945,4948,4950,4952],{"class":466,"line":485},[464,4946,4947],{"class":481},"  minify: ",[464,4949,529],{"class":522},[464,4951,495],{"class":481},[464,4953,4954],{"class":498},"\u002F\u002F minify production bundle\n",[464,4956,4957],{"class":466,"line":502},[464,4958,505],{"class":481},[416,4960,4962],{"id":4961},"inlinedynamicimports",[420,4963,4964],{},"inlineDynamicImports",[512,4966,4967],{},[515,4968,517,4969],{},[420,4970,523],{},[423,4972,4973],{},"Bundle all code into a single file instead of creating separate chunks per route.",[423,4975,3689,4976,4978,4979,4981],{},[420,4977,523],{},", each route handler becomes a separate chunk loaded on-demand. When ",[420,4980,529],{},", everything is bundled together. Some presets enable this by default.",[456,4983,4985],{"className":458,"code":4984,"language":460,"meta":5,"style":5},"export default defineConfig({\n  inlineDynamicImports: true, \u002F\u002F single output file\n});\n",[420,4986,4987,4997,5009],{"__ignoreMap":5},[464,4988,4989,4991,4993,4995],{"class":466,"line":467},[464,4990,471],{"class":470},[464,4992,474],{"class":470},[464,4994,478],{"class":477},[464,4996,482],{"class":481},[464,4998,4999,5002,5004,5006],{"class":466,"line":485},[464,5000,5001],{"class":481},"  inlineDynamicImports: ",[464,5003,529],{"class":522},[464,5005,495],{"class":481},[464,5007,5008],{"class":498},"\u002F\u002F single output file\n",[464,5010,5011],{"class":466,"line":502},[464,5012,505],{"class":481},[416,5014,5016],{"id":5015},"sourcemap",[420,5017,5015],{},[512,5019,5020],{},[515,5021,517,5022],{},[420,5023,5024],{"className":458,"language":460,"style":5},[464,5025,523],{"class":522},[423,5027,5028,5029,990],{},"Enable source map generation. See ",[592,5030,5033],{"href":5031,"rel":5032},"https:\u002F\u002Frollupjs.org\u002Fconfiguration-options\u002F#output-sourcemap",[596],"options",[456,5035,5037],{"className":458,"code":5036,"language":460,"meta":5,"style":5},"export default defineConfig({\n  sourcemap: true, \u002F\u002F generate .map files\n});\n",[420,5038,5039,5049,5061],{"__ignoreMap":5},[464,5040,5041,5043,5045,5047],{"class":466,"line":467},[464,5042,471],{"class":470},[464,5044,474],{"class":470},[464,5046,478],{"class":477},[464,5048,482],{"class":481},[464,5050,5051,5054,5056,5058],{"class":466,"line":485},[464,5052,5053],{"class":481},"  sourcemap: ",[464,5055,529],{"class":522},[464,5057,495],{"class":481},[464,5059,5060],{"class":498},"\u002F\u002F generate .map files\n",[464,5062,5063],{"class":466,"line":502},[464,5064,505],{"class":481},[416,5066,5068],{"id":5067},"node",[420,5069,5067],{},[512,5071,5072],{},[515,5073,517,5074],{},[420,5075,5076],{"className":458,"language":460,"style":5},[464,5077,529],{"class":522},[423,5079,5080,5081,5083,5084,5088],{},"Specify whether the build is used for Node.js or not. If set to ",[420,5082,523],{},", nitro tries to mock Node.js dependencies using ",[592,5085,4801],{"href":5086,"rel":5087},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funenv",[596]," and adjust its behavior.",[456,5090,5092],{"className":458,"code":5091,"language":460,"meta":5,"style":5},"export default defineConfig({\n  node: false, \u002F\u002F target non-Node.js runtimes\n});\n",[420,5093,5094,5104,5116],{"__ignoreMap":5},[464,5095,5096,5098,5100,5102],{"class":466,"line":467},[464,5097,471],{"class":470},[464,5099,474],{"class":470},[464,5101,478],{"class":477},[464,5103,482],{"class":481},[464,5105,5106,5109,5111,5113],{"class":466,"line":485},[464,5107,5108],{"class":481},"  node: ",[464,5110,523],{"class":522},[464,5112,495],{"class":481},[464,5114,5115],{"class":498},"\u002F\u002F target non-Node.js runtimes\n",[464,5117,5118],{"class":466,"line":502},[464,5119,505],{"class":481},[416,5121,5123],{"id":5122},"replace",[420,5124,5122],{},[423,5126,5127],{},"Build-time string replacements.",[456,5129,5131],{"className":458,"code":5130,"language":460,"meta":5,"style":5},"export default defineConfig({\n  replace: {\n    \"process.env.APP_VERSION\": JSON.stringify(\"1.0.0\"),\n  },\n});\n",[420,5132,5133,5143,5148,5171,5175],{"__ignoreMap":5},[464,5134,5135,5137,5139,5141],{"class":466,"line":467},[464,5136,471],{"class":470},[464,5138,474],{"class":470},[464,5140,478],{"class":477},[464,5142,482],{"class":481},[464,5144,5145],{"class":466,"line":485},[464,5146,5147],{"class":481},"  replace: {\n",[464,5149,5150,5153,5155,5158,5160,5163,5165,5168],{"class":466,"line":502},[464,5151,5152],{"class":491},"    \"process.env.APP_VERSION\"",[464,5154,1164],{"class":481},[464,5156,5157],{"class":522},"JSON",[464,5159,990],{"class":481},[464,5161,5162],{"class":477},"stringify",[464,5164,2393],{"class":481},[464,5166,5167],{"class":491},"\"1.0.0\"",[464,5169,5170],{"class":481},"),\n",[464,5172,5173],{"class":466,"line":710},[464,5174,713],{"class":481},[464,5176,5177],{"class":466,"line":716},[464,5178,505],{"class":481},[416,5180,5182],{"id":5181},"commonjs",[420,5183,5184],{},"commonJS",[423,5186,5187],{},"Specifies additional configuration for the rollup CommonJS plugin.",[456,5189,5191],{"className":458,"code":5190,"language":460,"meta":5,"style":5},"export default defineConfig({\n  commonJS: {\n    requireReturnsDefault: \"auto\",\n  },\n});\n",[420,5192,5193,5203,5208,5218,5222],{"__ignoreMap":5},[464,5194,5195,5197,5199,5201],{"class":466,"line":467},[464,5196,471],{"class":470},[464,5198,474],{"class":470},[464,5200,478],{"class":477},[464,5202,482],{"class":481},[464,5204,5205],{"class":466,"line":485},[464,5206,5207],{"class":481},"  commonJS: {\n",[464,5209,5210,5213,5216],{"class":466,"line":502},[464,5211,5212],{"class":481},"    requireReturnsDefault: ",[464,5214,5215],{"class":491},"\"auto\"",[464,5217,562],{"class":481},[464,5219,5220],{"class":466,"line":710},[464,5221,713],{"class":481},[464,5223,5224],{"class":466,"line":716},[464,5225,505],{"class":481},[416,5227,5229],{"id":5228},"exportconditions",[420,5230,5231],{},"exportConditions",[423,5233,5234],{},"Custom export conditions for module resolution.",[456,5236,5238],{"className":458,"code":5237,"language":460,"meta":5,"style":5},"export default defineConfig({\n  exportConditions: [\"worker\", \"production\"],\n});\n",[420,5239,5240,5250,5265],{"__ignoreMap":5},[464,5241,5242,5244,5246,5248],{"class":466,"line":467},[464,5243,471],{"class":470},[464,5245,474],{"class":470},[464,5247,478],{"class":477},[464,5249,482],{"class":481},[464,5251,5252,5255,5258,5260,5263],{"class":466,"line":485},[464,5253,5254],{"class":481},"  exportConditions: [",[464,5256,5257],{"class":491},"\"worker\"",[464,5259,495],{"class":481},[464,5261,5262],{"class":491},"\"production\"",[464,5264,2925],{"class":481},[464,5266,5267],{"class":466,"line":502},[464,5268,505],{"class":481},[416,5270,5272],{"id":5271},"noexternals",[420,5273,5274],{},"noExternals",[512,5276,5277],{},[515,5278,517,5279],{},[420,5280,5281],{"className":458,"language":460,"style":5},[464,5282,523],{"class":522},[423,5284,5285,5286,5288],{},"Prevent specific packages from being externalized. Set to ",[420,5287,529],{}," to bundle all dependencies, or pass an array of package names\u002Fpatterns.",[456,5290,5292],{"className":458,"code":5291,"language":460,"meta":5,"style":5},"export default defineConfig({\n  noExternals: true, \u002F\u002F bundle all dependencies\n});\n",[420,5293,5294,5304,5316],{"__ignoreMap":5},[464,5295,5296,5298,5300,5302],{"class":466,"line":467},[464,5297,471],{"class":470},[464,5299,474],{"class":470},[464,5301,478],{"class":477},[464,5303,482],{"class":481},[464,5305,5306,5309,5311,5313],{"class":466,"line":485},[464,5307,5308],{"class":481},"  noExternals: ",[464,5310,529],{"class":522},[464,5312,495],{"class":481},[464,5314,5315],{"class":498},"\u002F\u002F bundle all dependencies\n",[464,5317,5318],{"class":466,"line":502},[464,5319,505],{"class":481},[416,5321,5323],{"id":5322},"tracedeps",[420,5324,5325],{},"traceDeps",[512,5327,5328],{},[515,5329,517,5330],{},[420,5331,5332],{"className":458,"language":460,"style":5},[464,5333,2331],{"class":481},[423,5335,5336],{},"Additional dependencies to trace and include in the build output.",[423,5338,5339],{},"Supports special prefixes:",[512,5341,5342,5348],{},[515,5343,5344,5347],{},[420,5345,5346],{},"!pkg"," — Exclude a built-in package from tracing.",[515,5349,5350,5353],{},[420,5351,5352],{},"pkg*"," — Full trace: copies all package files instead of only traced ones.",[456,5355,5357],{"className":458,"code":5356,"language":460,"meta":5,"style":5},"export default defineConfig({\n  traceDeps: [\n    \"sharp\",\n    \"better-sqlite3\",\n    \"my-pkg*\", \u002F\u002F full trace (copy all package files)\n    \"!unwanted-pkg\", \u002F\u002F exclude from tracing\n  ],\n});\n",[420,5358,5359,5369,5374,5381,5388,5398,5408,5412],{"__ignoreMap":5},[464,5360,5361,5363,5365,5367],{"class":466,"line":467},[464,5362,471],{"class":470},[464,5364,474],{"class":470},[464,5366,478],{"class":477},[464,5368,482],{"class":481},[464,5370,5371],{"class":466,"line":485},[464,5372,5373],{"class":481},"  traceDeps: [\n",[464,5375,5376,5379],{"class":466,"line":502},[464,5377,5378],{"class":491},"    \"sharp\"",[464,5380,562],{"class":481},[464,5382,5383,5386],{"class":466,"line":710},[464,5384,5385],{"class":491},"    \"better-sqlite3\"",[464,5387,562],{"class":481},[464,5389,5390,5393,5395],{"class":466,"line":716},[464,5391,5392],{"class":491},"    \"my-pkg*\"",[464,5394,495],{"class":481},[464,5396,5397],{"class":498},"\u002F\u002F full trace (copy all package files)\n",[464,5399,5400,5403,5405],{"class":466,"line":917},[464,5401,5402],{"class":491},"    \"!unwanted-pkg\"",[464,5404,495],{"class":481},[464,5406,5407],{"class":498},"\u002F\u002F exclude from tracing\n",[464,5409,5410],{"class":466,"line":1107},[464,5411,2128],{"class":481},[464,5413,5414],{"class":466,"line":1117},[464,5415,505],{"class":481},[416,5417,5419],{"id":5418},"traceopts",[420,5420,5421],{},"traceOpts",[423,5423,5424,5425,5430],{},"Advanced options passed to ",[592,5426,5429],{"href":5427,"rel":5428},"https:\u002F\u002Fgithub.com\u002Fnicolo-ribaudo\u002Fnf3",[596],"nf3"," for dependency tracing.",[456,5432,5434],{"className":458,"code":5433,"language":460,"meta":5,"style":5},"export default defineConfig({\n  traceOpts: {\n    \u002F\u002F Options passed to @vercel\u002Fnft for file tracing\n    nft: { \u002F* ... *\u002F },\n    \u002F\u002F Alias for module paths when tracing\n    traceAlias: { \"old-pkg\": \"new-pkg\" },\n    \u002F\u002F Preserve or set file permissions when copying (true or octal like 0o755)\n    chmod: true,\n    \u002F\u002F Transform traced files before copying\n    transform: [\n      { filter: (id) => id.endsWith(\".js\"), handler: (code) => code },\n    ],\n    \u002F\u002F Hook into tracing lifecycle\n    hooks: {\n      tracedPackages(pkgs) {\n        console.log(\"Traced packages:\", Object.keys(pkgs));\n      },\n    },\n  },\n});\n",[420,5435,5436,5446,5451,5456,5465,5470,5485,5490,5499,5504,5509,5554,5559,5564,5569,5583,5606,5612,5617,5622],{"__ignoreMap":5},[464,5437,5438,5440,5442,5444],{"class":466,"line":467},[464,5439,471],{"class":470},[464,5441,474],{"class":470},[464,5443,478],{"class":477},[464,5445,482],{"class":481},[464,5447,5448],{"class":466,"line":485},[464,5449,5450],{"class":481},"  traceOpts: {\n",[464,5452,5453],{"class":466,"line":502},[464,5454,5455],{"class":498},"    \u002F\u002F Options passed to @vercel\u002Fnft for file tracing\n",[464,5457,5458,5461,5463],{"class":466,"line":710},[464,5459,5460],{"class":481},"    nft: { ",[464,5462,2407],{"class":498},[464,5464,3325],{"class":481},[464,5466,5467],{"class":466,"line":716},[464,5468,5469],{"class":498},"    \u002F\u002F Alias for module paths when tracing\n",[464,5471,5472,5475,5478,5480,5483],{"class":466,"line":917},[464,5473,5474],{"class":481},"    traceAlias: { ",[464,5476,5477],{"class":491},"\"old-pkg\"",[464,5479,1164],{"class":481},[464,5481,5482],{"class":491},"\"new-pkg\"",[464,5484,3325],{"class":481},[464,5486,5487],{"class":466,"line":1107},[464,5488,5489],{"class":498},"    \u002F\u002F Preserve or set file permissions when copying (true or octal like 0o755)\n",[464,5491,5492,5495,5497],{"class":466,"line":1117},[464,5493,5494],{"class":481},"    chmod: ",[464,5496,529],{"class":522},[464,5498,562],{"class":481},[464,5500,5501],{"class":466,"line":1122},[464,5502,5503],{"class":498},"    \u002F\u002F Transform traced files before copying\n",[464,5505,5506],{"class":466,"line":1395},[464,5507,5508],{"class":481},"    transform: [\n",[464,5510,5511,5514,5517,5520,5523,5525,5527,5530,5533,5535,5538,5541,5543,5545,5547,5549,5551],{"class":466,"line":1476},[464,5512,5513],{"class":481},"      { ",[464,5515,5516],{"class":477},"filter",[464,5518,5519],{"class":481},": (",[464,5521,5522],{"class":2373},"id",[464,5524,2376],{"class":481},[464,5526,2379],{"class":470},[464,5528,5529],{"class":481}," id.",[464,5531,5532],{"class":477},"endsWith",[464,5534,2393],{"class":481},[464,5536,5537],{"class":491},"\".js\"",[464,5539,5540],{"class":481},"), ",[464,5542,2497],{"class":477},[464,5544,5519],{"class":481},[464,5546,420],{"class":2373},[464,5548,2376],{"class":481},[464,5550,2379],{"class":470},[464,5552,5553],{"class":481}," code },\n",[464,5555,5556],{"class":466,"line":3879},[464,5557,5558],{"class":481},"    ],\n",[464,5560,5561],{"class":466,"line":3892},[464,5562,5563],{"class":498},"    \u002F\u002F Hook into tracing lifecycle\n",[464,5565,5566],{"class":466,"line":3912},[464,5567,5568],{"class":481},"    hooks: {\n",[464,5570,5572,5575,5577,5580],{"class":466,"line":5571},15,[464,5573,5574],{"class":477},"      tracedPackages",[464,5576,2393],{"class":481},[464,5578,5579],{"class":2373},"pkgs",[464,5581,5582],{"class":481},") {\n",[464,5584,5586,5589,5592,5594,5597,5600,5603],{"class":466,"line":5585},16,[464,5587,5588],{"class":481},"        console.",[464,5590,5591],{"class":477},"log",[464,5593,2393],{"class":481},[464,5595,5596],{"class":491},"\"Traced packages:\"",[464,5598,5599],{"class":481},", Object.",[464,5601,5602],{"class":477},"keys",[464,5604,5605],{"class":481},"(pkgs));\n",[464,5607,5609],{"class":466,"line":5608},17,[464,5610,5611],{"class":481},"      },\n",[464,5613,5615],{"class":466,"line":5614},18,[464,5616,1450],{"class":481},[464,5618,5620],{"class":466,"line":5619},19,[464,5621,713],{"class":481},[464,5623,5625],{"class":466,"line":5624},20,[464,5626,505],{"class":481},[416,5628,5630],{"id":5629},"oxc",[420,5631,5629],{},[423,5633,5634,5635,959,5637,5640],{},"OXC options for rolldown builds. Includes ",[420,5636,4916],{},[420,5638,5639],{},"transform"," sub-options.",[456,5642,5644],{"className":458,"code":5643,"language":460,"meta":5,"style":5},"export default defineConfig({\n  oxc: {\n    minify: { compress: true, mangle: true },\n  },\n});\n",[420,5645,5646,5656,5661,5675,5679],{"__ignoreMap":5},[464,5647,5648,5650,5652,5654],{"class":466,"line":467},[464,5649,471],{"class":470},[464,5651,474],{"class":470},[464,5653,478],{"class":477},[464,5655,482],{"class":481},[464,5657,5658],{"class":466,"line":485},[464,5659,5660],{"class":481},"  oxc: {\n",[464,5662,5663,5666,5668,5671,5673],{"class":466,"line":502},[464,5664,5665],{"class":481},"    minify: { compress: ",[464,5667,529],{"class":522},[464,5669,5670],{"class":481},", mangle: ",[464,5672,529],{"class":522},[464,5674,3325],{"class":481},[464,5676,5677],{"class":466,"line":710},[464,5678,713],{"class":481},[464,5680,5681],{"class":466,"line":716},[464,5682,505],{"class":481},[411,5684,5686],{"id":5685},"advanced","Advanced",[416,5688,5690],{"id":5689},"dev-1",[420,5691,2841],{},[512,5693,5694],{},[515,5695,517,5696,5698,5699,5701],{},[420,5697,529],{}," for development and ",[420,5700,523],{}," for production.",[423,5703,5704],{},[434,5705,5706],{},"⚠️ Caution! This is an advanced configuration. Things can go wrong if misconfigured.",[456,5708,5710],{"className":458,"code":5709,"language":460,"meta":5,"style":5},"export default defineConfig({\n  dev: true, \u002F\u002F force development mode behavior\n});\n",[420,5711,5712,5722,5734],{"__ignoreMap":5},[464,5713,5714,5716,5718,5720],{"class":466,"line":467},[464,5715,471],{"class":470},[464,5717,474],{"class":470},[464,5719,478],{"class":477},[464,5721,482],{"class":481},[464,5723,5724,5727,5729,5731],{"class":466,"line":485},[464,5725,5726],{"class":481},"  dev: ",[464,5728,529],{"class":522},[464,5730,495],{"class":481},[464,5732,5733],{"class":498},"\u002F\u002F force development mode behavior\n",[464,5735,5736],{"class":466,"line":502},[464,5737,505],{"class":481},[416,5739,5741],{"id":5740},"typescript",[420,5742,5740],{},[423,5744,517,5745],{},[420,5746,5747,5749,5752,5754,5756,5758,5761,5763,5765,5767,5770,5772,5774],{"className":458,"language":460,"style":5},[464,5748,645],{"class":481},[464,5750,5751],{"class":477},"strict",[464,5753,1164],{"class":481},[464,5755,529],{"class":522},[464,5757,495],{"class":481},[464,5759,5760],{"class":477},"generateRuntimeConfigTypes",[464,5762,1164],{"class":481},[464,5764,523],{"class":522},[464,5766,495],{"class":481},[464,5768,5769],{"class":477},"generateTsConfig",[464,5771,1164],{"class":481},[464,5773,523],{"class":522},[464,5775,2195],{"class":481},[423,5777,5778,5779,495,5781,495,5783,495,5785,495,5788,2880,5791,990],{},"TypeScript configuration options including ",[420,5780,5751],{},[420,5782,5760],{},[420,5784,5769],{},[420,5786,5787],{},"tsConfig",[420,5789,5790],{},"generatedTypesDir",[420,5792,5793],{},"tsconfigPath",[456,5795,5797],{"className":458,"code":5796,"language":460,"meta":5,"style":5},"export default defineConfig({\n  typescript: {\n    strict: true,\n    generateTsConfig: true,\n  },\n});\n",[420,5798,5799,5809,5814,5823,5832,5836],{"__ignoreMap":5},[464,5800,5801,5803,5805,5807],{"class":466,"line":467},[464,5802,471],{"class":470},[464,5804,474],{"class":470},[464,5806,478],{"class":477},[464,5808,482],{"class":481},[464,5810,5811],{"class":466,"line":485},[464,5812,5813],{"class":481},"  typescript: {\n",[464,5815,5816,5819,5821],{"class":466,"line":502},[464,5817,5818],{"class":481},"    strict: ",[464,5820,529],{"class":522},[464,5822,562],{"class":481},[464,5824,5825,5828,5830],{"class":466,"line":710},[464,5826,5827],{"class":481},"    generateTsConfig: ",[464,5829,529],{"class":522},[464,5831,562],{"class":481},[464,5833,5834],{"class":466,"line":716},[464,5835,713],{"class":481},[464,5837,5838],{"class":466,"line":917},[464,5839,505],{"class":481},[416,5841,5843],{"id":5842},"hooks",[420,5844,5842],{},[423,5846,5847],{},[434,5848,5706],{},[423,5850,5851,5852,598],{},"Nitro hooks. See ",[592,5853,5856],{"href":5854,"rel":5855},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fhookable",[596],"hookable",[456,5858,5860],{"className":458,"code":5859,"language":460,"meta":5,"style":5},"export default defineConfig({\n  hooks: {\n    compiled(nitro) {\n      console.log(\"Build compiled successfully!\");\n    },\n  },\n});\n",[420,5861,5862,5872,5877,5888,5903,5907,5911],{"__ignoreMap":5},[464,5863,5864,5866,5868,5870],{"class":466,"line":467},[464,5865,471],{"class":470},[464,5867,474],{"class":470},[464,5869,478],{"class":477},[464,5871,482],{"class":481},[464,5873,5874],{"class":466,"line":485},[464,5875,5876],{"class":481},"  hooks: {\n",[464,5878,5879,5882,5884,5886],{"class":466,"line":502},[464,5880,5881],{"class":477},"    compiled",[464,5883,2393],{"class":481},[464,5885,648],{"class":2373},[464,5887,5582],{"class":481},[464,5889,5890,5893,5895,5897,5900],{"class":466,"line":710},[464,5891,5892],{"class":481},"      console.",[464,5894,5591],{"class":477},[464,5896,2393],{"class":481},[464,5898,5899],{"class":491},"\"Build compiled successfully!\"",[464,5901,5902],{"class":481},");\n",[464,5904,5905],{"class":466,"line":716},[464,5906,1450],{"class":481},[464,5908,5909],{"class":466,"line":917},[464,5910,713],{"class":481},[464,5912,5913],{"class":466,"line":1107},[464,5914,505],{"class":481},[408,5916],{"to":44},[416,5918,5920],{"id":5919},"commands",[420,5921,5919],{},[423,5923,5924],{},[434,5925,5706],{},[423,5927,5928],{},"Preview and deploy command hints are usually filled by deployment presets.",[456,5930,5932],{"className":458,"code":5931,"language":460,"meta":5,"style":5},"export default defineConfig({\n  commands: {\n    preview: \"node .\u002Fserver\u002Findex.mjs\",\n  },\n});\n",[420,5933,5934,5944,5949,5959,5963],{"__ignoreMap":5},[464,5935,5936,5938,5940,5942],{"class":466,"line":467},[464,5937,471],{"class":470},[464,5939,474],{"class":470},[464,5941,478],{"class":477},[464,5943,482],{"class":481},[464,5945,5946],{"class":466,"line":485},[464,5947,5948],{"class":481},"  commands: {\n",[464,5950,5951,5954,5957],{"class":466,"line":502},[464,5952,5953],{"class":481},"    preview: ",[464,5955,5956],{"class":491},"\"node .\u002Fserver\u002Findex.mjs\"",[464,5958,562],{"class":481},[464,5960,5961],{"class":466,"line":710},[464,5962,713],{"class":481},[464,5964,5965],{"class":466,"line":716},[464,5966,505],{"class":481},[416,5968,5970],{"id":5969},"deverrorhandler",[420,5971,5972],{},"devErrorHandler",[423,5974,5975],{},[434,5976,5706],{},[423,5978,5979],{},"A custom error handler function for development errors.",[456,5981,5983],{"className":458,"code":5982,"language":460,"meta":5,"style":5},"export default defineConfig({\n  devErrorHandler: (error, event) => {\n    return new Response(`Dev error: ${error.message}`, { status: 500 });\n  },\n});\n",[420,5984,5985,5995,6014,6046,6050],{"__ignoreMap":5},[464,5986,5987,5989,5991,5993],{"class":466,"line":467},[464,5988,471],{"class":470},[464,5990,474],{"class":470},[464,5992,478],{"class":477},[464,5994,482],{"class":481},[464,5996,5997,6000,6002,6004,6006,6008,6010,6012],{"class":466,"line":485},[464,5998,5999],{"class":477},"  devErrorHandler",[464,6001,5519],{"class":481},[464,6003,3609],{"class":2373},[464,6005,495],{"class":481},[464,6007,3614],{"class":2373},[464,6009,2376],{"class":481},[464,6011,2379],{"class":470},[464,6013,2382],{"class":481},[464,6015,6016,6019,6021,6023,6025,6028,6030,6032,6035,6038,6041,6044],{"class":466,"line":502},[464,6017,6018],{"class":470},"    return",[464,6020,3628],{"class":470},[464,6022,3631],{"class":477},[464,6024,2393],{"class":481},[464,6026,6027],{"class":491},"`Dev error: ${",[464,6029,3609],{"class":481},[464,6031,990],{"class":491},[464,6033,6034],{"class":481},"message",[464,6036,6037],{"class":491},"}`",[464,6039,6040],{"class":481},", { status: ",[464,6042,6043],{"class":522},"500",[464,6045,2410],{"class":481},[464,6047,6048],{"class":466,"line":710},[464,6049,713],{"class":481},[464,6051,6052],{"class":466,"line":716},[464,6053,505],{"class":481},[416,6055,6057],{"id":6056},"tracingchannel",[420,6058,6059],{},"tracingChannel",[423,6061,6062],{},[434,6063,3677],{},[512,6065,6066,6072],{},[515,6067,517,6068],{},[420,6069,6070],{"className":458,"language":460,"style":5},[464,6071,523],{"class":522},[515,6073,1822,6074,1827,6078],{},[420,6075,6076],{"className":458,"language":460,"style":5},[464,6077,1909],{"class":481},[420,6079,6080,6083,6085,6088,6090],{"className":458,"language":460,"style":5},[464,6081,6082],{"class":481},"{ srvx",[464,6084,1835],{"class":470},[464,6086,6087],{"class":481}," boolean, h3",[464,6089,1835],{"class":470},[464,6091,6092],{"class":481}," boolean }",[423,6094,2143,6095,6097,6098,6105,6106,6109,6110,959,6113,6116],{},[420,6096,6059],{}," option enables ",[592,6099,6102],{"href":6100,"rel":6101},"https:\u002F\u002Fnodejs.org\u002Fapi\u002Fdiagnostics_channel.html#class-tracingchannel",[596],[420,6103,6104],{},"TracingChannel"," instrumentation for request handling. It is wired for Node.js and also works in Bun, Deno, and the development preset — any runtime that exposes ",[420,6107,6108],{},"node:diagnostics_channel",". The published ",[420,6111,6112],{},"srvx.request",[420,6114,6115],{},"h3.request"," channels remain available across these runtimes and can be consumed by APM tools and custom subscribers.",[423,6118,6119,6120,6122],{},"Pass ",[420,6121,529],{}," to enable both channels, or an object to toggle them individually.",[456,6124,6126],{"className":458,"code":6125,"language":460,"meta":5,"style":5},"export default defineConfig({\n  tracingChannel: true,\n});\n",[420,6127,6128,6138,6147],{"__ignoreMap":5},[464,6129,6130,6132,6134,6136],{"class":466,"line":467},[464,6131,471],{"class":470},[464,6133,474],{"class":470},[464,6135,478],{"class":477},[464,6137,482],{"class":481},[464,6139,6140,6143,6145],{"class":466,"line":485},[464,6141,6142],{"class":481},"  tracingChannel: ",[464,6144,529],{"class":522},[464,6146,562],{"class":481},[464,6148,6149],{"class":466,"line":502},[464,6150,505],{"class":481},[416,6152,6154],{"id":6153},"framework",[420,6155,6153],{},[512,6157,6158],{},[515,6159,517,6160],{},[420,6161,6162,6164,6167,6169,6172,6174,6177,6179,6182],{"className":458,"language":460,"style":5},[464,6163,645],{"class":481},[464,6165,6166],{"class":477},"name",[464,6168,1164],{"class":481},[464,6170,6171],{"class":491},"\"nitro\"",[464,6173,495],{"class":481},[464,6175,6176],{"class":477},"version",[464,6178,1164],{"class":481},[464,6180,6181],{"class":491},"\"\u003Ccurrent>\"",[464,6183,2195],{"class":481},[423,6185,6186],{},"Framework information. Used by presets and build info. Typically set by higher-level frameworks (e.g. Nuxt).",[456,6188,6190],{"className":458,"code":6189,"language":460,"meta":5,"style":5},"export default defineConfig({\n  framework: { name: \"my-framework\", version: \"2.0.0\" },\n});\n",[420,6191,6192,6202,6218],{"__ignoreMap":5},[464,6193,6194,6196,6198,6200],{"class":466,"line":467},[464,6195,471],{"class":470},[464,6197,474],{"class":470},[464,6199,478],{"class":477},[464,6201,482],{"class":481},[464,6203,6204,6207,6210,6213,6216],{"class":466,"line":485},[464,6205,6206],{"class":481},"  framework: { name: ",[464,6208,6209],{"class":491},"\"my-framework\"",[464,6211,6212],{"class":481},", version: ",[464,6214,6215],{"class":491},"\"2.0.0\"",[464,6217,3325],{"class":481},[464,6219,6220],{"class":466,"line":502},[464,6221,505],{"class":481},[411,6223,6225],{"id":6224},"preset-options","Preset options",[416,6227,6229],{"id":6228},"firebase",[420,6230,6228],{},[423,6232,6233,6234],{},"The options for the firebase functions preset. See ",[592,6235,6237],{"href":6236},"\u002Fdeploy\u002Fproviders\u002Ffirebase#options","Preset Docs",[456,6239,6241],{"className":458,"code":6240,"language":460,"meta":5,"style":5},"export default defineConfig({\n  firebase: {\n    gen: 2, \u002F\u002F use Cloud Functions 2nd gen\n    region: \"us-central1\",\n  },\n});\n",[420,6242,6243,6253,6258,6271,6281,6285],{"__ignoreMap":5},[464,6244,6245,6247,6249,6251],{"class":466,"line":467},[464,6246,471],{"class":470},[464,6248,474],{"class":470},[464,6250,478],{"class":477},[464,6252,482],{"class":481},[464,6254,6255],{"class":466,"line":485},[464,6256,6257],{"class":481},"  firebase: {\n",[464,6259,6260,6263,6266,6268],{"class":466,"line":502},[464,6261,6262],{"class":481},"    gen: ",[464,6264,6265],{"class":522},"2",[464,6267,495],{"class":481},[464,6269,6270],{"class":498},"\u002F\u002F use Cloud Functions 2nd gen\n",[464,6272,6273,6276,6279],{"class":466,"line":710},[464,6274,6275],{"class":481},"    region: ",[464,6277,6278],{"class":491},"\"us-central1\"",[464,6280,562],{"class":481},[464,6282,6283],{"class":466,"line":716},[464,6284,713],{"class":481},[464,6286,6287],{"class":466,"line":917},[464,6288,505],{"class":481},[416,6290,6292],{"id":6291},"vercel",[420,6293,6291],{},[423,6295,6296,6297],{},"The options for the vercel preset. See ",[592,6298,6237],{"href":212},[456,6300,6302],{"className":458,"code":6301,"language":460,"meta":5,"style":5},"export default defineConfig({\n  vercel: {\n    config: { runtime: \"nodejs20.x\" },\n  },\n});\n",[420,6303,6304,6314,6319,6329,6333],{"__ignoreMap":5},[464,6305,6306,6308,6310,6312],{"class":466,"line":467},[464,6307,471],{"class":470},[464,6309,474],{"class":470},[464,6311,478],{"class":477},[464,6313,482],{"class":481},[464,6315,6316],{"class":466,"line":485},[464,6317,6318],{"class":481},"  vercel: {\n",[464,6320,6321,6324,6327],{"class":466,"line":502},[464,6322,6323],{"class":481},"    config: { runtime: ",[464,6325,6326],{"class":491},"\"nodejs20.x\"",[464,6328,3325],{"class":481},[464,6330,6331],{"class":466,"line":710},[464,6332,713],{"class":481},[464,6334,6335],{"class":466,"line":716},[464,6336,505],{"class":481},[416,6338,6340],{"id":6339},"cloudflare",[420,6341,6339],{},[423,6343,6344,6345],{},"The options for the cloudflare preset. See ",[592,6346,6237],{"href":148},[456,6348,6350],{"className":458,"code":6349,"language":460,"meta":5,"style":5},"export default defineConfig({\n  cloudflare: {\n    wrangler: { compatibility_date: \"2025-01-01\" },\n  },\n});\n",[420,6351,6352,6362,6367,6376,6380],{"__ignoreMap":5},[464,6353,6354,6356,6358,6360],{"class":466,"line":467},[464,6355,471],{"class":470},[464,6357,474],{"class":470},[464,6359,478],{"class":477},[464,6361,482],{"class":481},[464,6363,6364],{"class":466,"line":485},[464,6365,6366],{"class":481},"  cloudflare: {\n",[464,6368,6369,6372,6374],{"class":466,"line":502},[464,6370,6371],{"class":481},"    wrangler: { compatibility_date: ",[464,6373,764],{"class":491},[464,6375,3325],{"class":481},[464,6377,6378],{"class":466,"line":710},[464,6379,713],{"class":481},[464,6381,6382],{"class":466,"line":716},[464,6383,505],{"class":481},[416,6385,6387],{"id":6386},"zephyr",[420,6388,6386],{},[423,6390,6391,6392],{},"The options for the zephyr preset. See ",[592,6393,6237],{"href":6394},"\u002Fdeploy\u002Fproviders\u002Fzephyr#options",[6396,6397,6398],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":5,"searchDepth":485,"depth":485,"links":6400},[6401,6409,6433,6438,6441,6451,6461,6480,6489],{"id":413,"depth":485,"text":414,"children":6402},[6403,6404,6405,6406,6407,6408],{"id":418,"depth":502,"text":418},{"id":508,"depth":502,"text":508},{"id":569,"depth":502,"text":572},{"id":633,"depth":502,"text":636},{"id":721,"depth":502,"text":724},{"id":773,"depth":502,"text":773},{"id":820,"depth":485,"text":821,"children":6410},[6411,6412,6413,6414,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6425,6426,6427,6428,6429,6430,6431,6432],{"id":824,"depth":502,"text":820},{"id":924,"depth":502,"text":924},{"id":1127,"depth":502,"text":941},{"id":1481,"depth":502,"text":1481},{"id":1541,"depth":502,"text":1541},{"id":1614,"depth":502,"text":1617},{"id":1687,"depth":502,"text":1031},{"id":1747,"depth":502,"text":1750},{"id":1815,"depth":502,"text":1815},{"id":1897,"depth":502,"text":1900},{"id":1978,"depth":502,"text":1981},{"id":2033,"depth":502,"text":2036},{"id":2156,"depth":502,"text":2159},{"id":2250,"depth":502,"text":2253},{"id":2320,"depth":502,"text":2320},{"id":2425,"depth":502,"text":2425},{"id":2483,"depth":502,"text":1041},{"id":2549,"depth":502,"text":2552},{"id":2612,"depth":502,"text":2612},{"id":2675,"depth":502,"text":2675},{"id":2729,"depth":502,"text":2729},{"id":2781,"depth":502,"text":2781},{"id":2841,"depth":485,"text":2842,"children":6434},[6435,6436,6437],{"id":2845,"depth":502,"text":2848},{"id":2936,"depth":502,"text":2939},{"id":2993,"depth":502,"text":2996},{"id":3069,"depth":485,"text":3070,"children":6439},[6440],{"id":3073,"depth":502,"text":3069},{"id":3167,"depth":485,"text":23,"children":6442},[6443,6444,6445,6446,6447,6448,6449,6450],{"id":3170,"depth":502,"text":2150},{"id":3221,"depth":502,"text":3224},{"id":3269,"depth":502,"text":3269},{"id":3358,"depth":502,"text":3361},{"id":3433,"depth":502,"text":3433},{"id":3507,"depth":502,"text":3510},{"id":3669,"depth":502,"text":3672},{"id":3920,"depth":502,"text":3920},{"id":4148,"depth":485,"text":4149,"children":6452},[6453,6454,6455,6456,6457,6458,6459,6460],{"id":4152,"depth":502,"text":4155},{"id":4199,"depth":502,"text":4202},{"id":4237,"depth":502,"text":4240},{"id":4335,"depth":502,"text":4338},{"id":4383,"depth":502,"text":4386},{"id":4431,"depth":502,"text":4434},{"id":4478,"depth":502,"text":4481},{"id":4526,"depth":502,"text":4526},{"id":4599,"depth":485,"text":4600,"children":6462},[6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6475,6476,6477,6478,6479],{"id":4603,"depth":502,"text":4603},{"id":4666,"depth":502,"text":4669},{"id":4714,"depth":502,"text":4717},{"id":4761,"depth":502,"text":4761},{"id":4801,"depth":502,"text":4801},{"id":4856,"depth":502,"text":4856},{"id":4916,"depth":502,"text":4916},{"id":4961,"depth":502,"text":4964},{"id":5015,"depth":502,"text":5015},{"id":5067,"depth":502,"text":5067},{"id":5122,"depth":502,"text":5122},{"id":5181,"depth":502,"text":5184},{"id":5228,"depth":502,"text":5231},{"id":5271,"depth":502,"text":5274},{"id":5322,"depth":502,"text":5325},{"id":5418,"depth":502,"text":5421},{"id":5629,"depth":502,"text":5629},{"id":5685,"depth":485,"text":5686,"children":6481},[6482,6483,6484,6485,6486,6487,6488],{"id":5689,"depth":502,"text":2841},{"id":5740,"depth":502,"text":5740},{"id":5842,"depth":502,"text":5842},{"id":5919,"depth":502,"text":5919},{"id":5969,"depth":502,"text":5972},{"id":6056,"depth":502,"text":6059},{"id":6153,"depth":502,"text":6153},{"id":6224,"depth":485,"text":6225,"children":6490},[6491,6492,6493,6494],{"id":6228,"depth":502,"text":6228},{"id":6291,"depth":502,"text":6291},{"id":6339,"depth":502,"text":6339},{"id":6386,"depth":502,"text":6386},"md",{"icon":36},{"icon":36},{"title":227,"description":5},"VPAmWIzI7YfgYRQ71Ca6OHbSy8n92X43MBHovaVP1KQ",[6501,6503],{"title":223,"path":224,"stem":225,"description":6502,"children":-1},"Deploy Nitro apps to Zerops.",{"title":233,"path":234,"stem":235,"description":6504,"icon":238,"children":-1},"Explore Nitro examples to learn how to build full-stack applications",1776859212078]