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