[{"data":1,"prerenderedAt":2768},["ShallowReactive",2],{"navigation":3,"-config":225,"-config-surround":2764},[4,76,219],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Docs","/guide","1.guide/0.index",[9,11,16,21,26,31,36,41,46,51,56,61,66,71],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Server Utils","/guide/utils","1.guide/1.utils","ri:tools-line",{"title":17,"path":18,"stem":19,"icon":20},"Tasks","/guide/tasks","1.guide/10.tasks","codicon:run-all",{"title":22,"path":23,"stem":24,"icon":25},"Server Routes","/guide/routing","1.guide/2.routing","ri:direction-line",{"title":27,"path":28,"stem":29,"icon":30},"WebSocket","/guide/websocket","1.guide/3.websocket","cib:socket-io",{"title":32,"path":33,"stem":34,"icon":35},"KV Storage","/guide/storage","1.guide/4.storage","carbon:datastore",{"title":37,"path":38,"stem":39,"icon":40},"SQL Database","/guide/database","1.guide/5.database","ri:database-2-line",{"title":42,"path":43,"stem":44,"icon":45},"Cache","/guide/cache","1.guide/6.cache","ri:speed-line",{"title":47,"path":48,"stem":49,"icon":50},"Fetch","/guide/fetch","1.guide/7.fetch","ri:global-line",{"title":52,"path":53,"stem":54,"icon":55},"Assets","/guide/assets","1.guide/8.assets","ri:image-2-line",{"title":57,"path":58,"stem":59,"icon":60},"Plugins","/guide/plugins","1.guide/9.plugins","ri:plug-line",{"title":62,"path":63,"stem":64,"icon":65},"Configuration","/guide/configuration","1.guide/97.configuration","ri:settings-3-line",{"title":67,"path":68,"stem":69,"icon":70},"TypeScript","/guide/typescript","1.guide/98.typescript","tabler:brand-typescript",{"title":72,"path":73,"stem":74,"icon":75},"Nightly Channel","/guide/nightly","1.guide/99.nightly","ri:moon-fill",{"title":77,"path":78,"stem":79,"children":80,"icon":82},"Deploy","/deploy","2.deploy/0.index",[81,83,87,113,118],{"title":77,"path":78,"stem":79,"icon":82},"ri:upload-cloud-2-line",{"title":84,"path":85,"stem":86,"icon":50},"Edge Workers","/deploy/workers","2.deploy/1.workers",{"title":88,"path":89,"stem":90,"children":91,"page":112},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[92,97,102,107],{"title":93,"path":94,"stem":95,"icon":96},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":98,"path":99,"stem":100,"icon":101},"WinterJS","/deploy/runtimes/_winterjs","2.deploy/10.runtimes/_winterjs","game-icons:cold-heart",{"title":103,"path":104,"stem":105,"icon":106},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":108,"path":109,"stem":110,"icon":111},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":114,"path":115,"stem":116,"icon":117},"Custom Preset","/deploy/custom-presets","2.deploy/2.custom-presets","ri:file-code-line",{"title":119,"path":120,"stem":121,"children":122,"page":112},"Providers","/deploy/providers","2.deploy/20.providers",[123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215],{"title":124,"path":125,"stem":126},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":128,"path":129,"stem":130},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":132,"path":133,"stem":134},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":136,"path":137,"stem":138},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":140,"path":141,"stem":142},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":144,"path":145,"stem":146},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":148,"path":149,"stem":150},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":152,"path":153,"stem":154},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":156,"path":157,"stem":158},"Edgio","/deploy/providers/edgio","2.deploy/20.providers/edgio",{"title":160,"path":161,"stem":162},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":164,"path":165,"stem":166},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":168,"path":169,"stem":170},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":172,"path":173,"stem":174},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":176,"path":177,"stem":178},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":180,"path":181,"stem":182},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":184,"path":185,"stem":186},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":188,"path":189,"stem":190},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":192,"path":193,"stem":194},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":196,"path":197,"stem":198},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":200,"path":201,"stem":202},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":204,"path":205,"stem":206},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":208,"path":209,"stem":210},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":212,"path":213,"stem":214},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":216,"path":217,"stem":218},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":220,"path":221,"stem":222,"children":223,"icon":65},"Config","/config","3.config/0.index",[224],{"title":220,"path":221,"stem":222,"icon":65},{"id":226,"title":220,"body":227,"description":295,"extension":2759,"meta":2760,"navigation":2761,"path":221,"seo":2762,"stem":222,"__hash__":2763},"content/3.config/0.index.md",{"type":228,"value":229,"toc":2687,"icon":65},"minimark",[230,233,238,245,261,272,278,284,308,319,325,354,357,366,372,375,382,385,389,394,401,404,411,426,433,440,443,519,533,568,577,625,628,710,715,718,724,727,732,738,741,747,750,755,761,768,773,781,784,795,800,803,809,831,838,847,853,861,871,877,880,886,893,969,976,981,992,998,1025,1028,1031,1273,1279,1287,1293,1307,1313,1319,1327,1332,1340,1345,1352,1355,1365,1370,1376,1379,1383,1388,1400,1403,1409,1417,1420,1425,1428,1442,1448,1451,1454,1466,1469,1582,1599,1605,1608,1611,1668,1677,1683,1693,1698,1804,1810,1815,1824,1834,1841,1852,1856,2032,2037,2040,2145,2151,2158,2178,2188,2197,2207,2249,2252,2262,2266,2272,2275,2281,2287,2290,2296,2304,2334,2340,2345,2348,2354,2360,2363,2369,2375,2378,2384,2391,2394,2399,2406,2409,2413,2418,2428,2433,2438,2443,2449,2453,2460,2465,2469,2477,2482,2486,2489,2495,2499,2502,2506,2512,2515,2520,2523,2528,2535,2540,2543,2548,2554,2557,2563,2566,2572,2580,2586,2591,2602,2607,2616,2622,2627,2630,2635,2638,2644,2647,2651,2656,2663,2668,2673,2678,2683],[231,232],"read-more",{"to":63},[234,235,237],"h2",{"id":236},"general","General",[239,240,242],"h3",{"id":241},"preset",[243,244,241],"code",{},[246,247,248,249,251,252,255,256,260],"p",{},"Use ",[243,250,241],{}," option ",[243,253,254],{},"NITRO_PRESET"," environment variable for custom ",[257,258,259],"strong",{},"production"," preset.",[246,262,263,264,267,268,271],{},"Preset for development mode is always ",[243,265,266],{},"nitro_dev"," and default ",[243,269,270],{},"node_server"," for production building a standalone Node.js server.",[246,273,274,275,277],{},"The preset will automatically be detected when the ",[243,276,241],{}," option is not set and running in known environments.",[239,279,281],{"id":280},"loglevel",[243,282,283],{},"logLevel",[285,286,287],"ul",{},[288,289,290,291,301,302,307],"li",{},"Default: ",[243,292,296],{"className":293,"language":294,"style":295},"language-ts shiki shiki-themes github-light github-dark github-dark","ts","",[297,298,300],"span",{"class":299},"suiK_","3"," (",[243,303,304],{"className":293,"language":294,"style":295},[297,305,306],{"class":299},"1"," when the testing environment is detected)",[246,309,310,311,318],{},"Log verbosity level. See ",[312,313,317],"a",{"href":314,"rel":315},"https://github.com/unjs/consola?tab=readme-ov-file#log-level",[316],"nofollow","consola"," for more information.",[239,320,322],{"id":321},"runtimeconfig",[243,323,324],{},"runtimeConfig",[285,326,327],{},[288,328,290,329],{},[243,330,331,335,339,342,346,349,351],{"className":293,"language":294,"style":295},[297,332,334],{"class":333},"slsVL","{ ",[297,336,338],{"class":337},"shcOC","nitro",[297,340,341],{"class":333},": { ",[297,343,345],{"class":344},"so5gQ","...",[297,347,348],{"class":333}," }, ",[297,350,345],{"class":344},[297,352,353],{"class":333},"yourOptions }",[246,355,356],{},"Server runtime configuration.",[246,358,359,362,363,365],{},[257,360,361],{},"Note:",": ",[243,364,338],{}," namespace is reserved.",[239,367,369],{"id":368},"compatibilitydate",[243,370,371],{},"compatibilityDate",[246,373,374],{},"Deployment providers introduce new features that Nitro presets can leverage, but some of them need to be explicitly opted into.",[246,376,377,378,381],{},"Set it to latest tested date in ",[243,379,380],{},"YYYY-MM-DD"," format to leverage latest preset features.",[246,383,384],{},"If this configuration is not provided, Nitro will continue using the current (v2.9) behavior for presets and show a warning.",[234,386,388],{"id":387},"features","Features",[239,390,392],{"id":391},"experimental",[243,393,391],{},[285,395,396],{},[288,397,290,398],{},[243,399,400],{},"{}",[246,402,403],{},"Enable experimental features.",[405,406,408],"h4",{"id":407},"openapi",[243,409,410],{},"openAPI",[246,412,413,414,417,418,421,422,425],{},"Enable ",[243,415,416],{},"/_scalar",", ",[243,419,420],{},"/_swagger"," and ",[243,423,424],{},"/_openapi.json"," endpoints.",[285,427,428],{},[288,429,290,430],{},[243,431,432],{},"false",[246,434,435,436],{},"To define the OpenAPI specification on your routes, take a look at ",[312,437,439],{"href":438},"/guide/routing#route-meta","defineRouteMeta",[246,441,442],{},"You can pass an object on the root level to modify your OpenAPI specification:",[444,445,449],"pre",{"className":446,"code":447,"language":448,"meta":295,"style":295},"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",[243,450,451,460,468,483,496,507,513],{"__ignoreMap":295},[297,452,455,457],{"class":453,"line":454},"line",1,[297,456,410],{"class":337},[297,458,459],{"class":333},": {\n",[297,461,463,466],{"class":453,"line":462},2,[297,464,465],{"class":337},"  meta",[297,467,459],{"class":333},[297,469,471,474,476,480],{"class":453,"line":470},3,[297,472,473],{"class":337},"    title",[297,475,362],{"class":333},[297,477,479],{"class":478},"sfrk1","'My Awesome Project'",[297,481,482],{"class":333},",\n",[297,484,486,489,491,494],{"class":453,"line":485},4,[297,487,488],{"class":337},"    description",[297,490,362],{"class":333},[297,492,493],{"class":478},"'This might become the next big thing.'",[297,495,482],{"class":333},[297,497,499,502,504],{"class":453,"line":498},5,[297,500,501],{"class":337},"    version",[297,503,362],{"class":333},[297,505,506],{"class":478},"'1.0'\n",[297,508,510],{"class":453,"line":509},6,[297,511,512],{"class":333},"  }\n",[297,514,516],{"class":453,"line":515},7,[297,517,518],{"class":333},"}\n",[246,520,521,522,524,525,528,529,532],{},"These routes are disabled by default in production. To enable them, use the ",[243,523,259],{}," key.\n",[243,526,527],{},"\"runtime\""," allows middleware usage, and ",[243,530,531],{},"\"prerender\""," is the most efficient because the JSON response is constant.",[444,534,536],{"className":446,"code":535,"language":448,"meta":295,"style":295},"openAPI: {\n    // IMPORTANT: make sure to protect OpenAPI routes if necessary!\n    production: \"runtime\", // or \"prerender\"\n}\n",[243,537,538,544,550,564],{"__ignoreMap":295},[297,539,540,542],{"class":453,"line":454},[297,541,410],{"class":337},[297,543,459],{"class":333},[297,545,546],{"class":453,"line":462},[297,547,549],{"class":548},"sCsY4","    // IMPORTANT: make sure to protect OpenAPI routes if necessary!\n",[297,551,552,555,557,559,561],{"class":453,"line":470},[297,553,554],{"class":337},"    production",[297,556,362],{"class":333},[297,558,527],{"class":478},[297,560,417],{"class":333},[297,562,563],{"class":548},"// or \"prerender\"\n",[297,565,566],{"class":453,"line":485},[297,567,518],{"class":333},[246,569,570,571,576],{},"If you like to customize the Scalar integration, you can ",[312,572,575],{"href":573,"rel":574},"https://github.com/scalar/scalar",[316],"pass a configuration object"," like this:",[444,578,580],{"className":446,"code":579,"language":448,"meta":295,"style":295},"openAPI: {\n  ui: {\n    scalar: {\n      theme: 'purple'\n    }\n  }\n}\n",[243,581,582,588,595,602,612,617,621],{"__ignoreMap":295},[297,583,584,586],{"class":453,"line":454},[297,585,410],{"class":337},[297,587,459],{"class":333},[297,589,590,593],{"class":453,"line":462},[297,591,592],{"class":337},"  ui",[297,594,459],{"class":333},[297,596,597,600],{"class":453,"line":470},[297,598,599],{"class":337},"    scalar",[297,601,459],{"class":333},[297,603,604,607,609],{"class":453,"line":485},[297,605,606],{"class":337},"      theme",[297,608,362],{"class":333},[297,610,611],{"class":478},"'purple'\n",[297,613,614],{"class":453,"line":498},[297,615,616],{"class":333},"    }\n",[297,618,619],{"class":453,"line":509},[297,620,512],{"class":333},[297,622,623],{"class":453,"line":515},[297,624,518],{"class":333},[246,626,627],{},"Or if you want to customize the endpoints:",[444,629,631],{"className":446,"code":630,"language":448,"meta":295,"style":295},"openAPI: {\n  route: \"/_docs/openapi.json\",\n  ui: {\n    scalar: {\n      route: \"/_docs/scalar\"\n    },\n    swagger: {\n      route: \"/_docs/swagger\"\n    }\n  }\n}\n",[243,632,633,639,651,657,663,673,678,685,695,700,705],{"__ignoreMap":295},[297,634,635,637],{"class":453,"line":454},[297,636,410],{"class":337},[297,638,459],{"class":333},[297,640,641,644,646,649],{"class":453,"line":462},[297,642,643],{"class":337},"  route",[297,645,362],{"class":333},[297,647,648],{"class":478},"\"/_docs/openapi.json\"",[297,650,482],{"class":333},[297,652,653,655],{"class":453,"line":470},[297,654,592],{"class":337},[297,656,459],{"class":333},[297,658,659,661],{"class":453,"line":485},[297,660,599],{"class":337},[297,662,459],{"class":333},[297,664,665,668,670],{"class":453,"line":498},[297,666,667],{"class":337},"      route",[297,669,362],{"class":333},[297,671,672],{"class":478},"\"/_docs/scalar\"\n",[297,674,675],{"class":453,"line":509},[297,676,677],{"class":333},"    },\n",[297,679,680,683],{"class":453,"line":515},[297,681,682],{"class":337},"    swagger",[297,684,459],{"class":333},[297,686,688,690,692],{"class":453,"line":687},8,[297,689,667],{"class":337},[297,691,362],{"class":333},[297,693,694],{"class":478},"\"/_docs/swagger\"\n",[297,696,698],{"class":453,"line":697},9,[297,699,616],{"class":333},[297,701,703],{"class":453,"line":702},10,[297,704,512],{"class":333},[297,706,708],{"class":453,"line":707},11,[297,709,518],{"class":333},[405,711,713],{"id":712},"wasm",[243,714,712],{},[246,716,717],{},"Enable WASM support",[405,719,721],{"id":720},"legacyexternals",[243,722,723],{},"legacyExternals",[246,725,726],{},"When enabled, legacy (unstable) experimental rollup externals algorithm will be used.",[239,728,730],{"id":729},"future",[243,731,729],{},[285,733,734],{},[288,735,290,736],{},[243,737,400],{},[246,739,740],{},"New features pending for a major version to avoid breaking changes.",[405,742,744],{"id":743},"nativeswr",[243,745,746],{},"nativeSWR",[246,748,749],{},"Uses built-in SWR functionality (using caching layer and storage) for Netlify and Vercel presets instead of falling back to ISR behavior.",[239,751,753],{"id":752},"storage",[243,754,752],{},[285,756,757],{},[288,758,290,759],{},[243,760,400],{},[246,762,763,764,767],{},"Storage configuration, read more in the ",[312,765,766],{"href":33},"Storage Layer"," section.",[239,769,771],{"id":770},"timing",[243,772,770],{},[285,774,775],{},[288,776,290,777],{},[243,778,779],{"className":293,"language":294,"style":295},[297,780,432],{"class":299},[246,782,783],{},"Enable timing information:",[285,785,786,789],{},[288,787,788],{},"Nitro startup time log",[288,790,791,794],{},[243,792,793],{},"Server-Timing"," header on HTTP responses",[239,796,798],{"id":797},"renderer",[243,799,797],{},[246,801,802],{},"Path to main render (file should export an event handler as default)",[239,804,806],{"id":805},"servestatic",[243,807,808],{},"serveStatic",[285,810,811,828],{},[288,812,813,814,817,818,817,823],{},"Type: ",[243,815,816],{},"boolean"," | ",[243,819,820],{"className":293,"language":294,"style":295},[297,821,822],{"class":478},"'node'",[243,824,825],{"className":293,"language":294,"style":295},[297,826,827],{"class":478},"'deno'",[288,829,830],{},"Default: depends of the deployment preset used.",[246,832,833,834,837],{},"Serve ",[243,835,836],{},"public/"," assets in production.",[246,839,840,842,843,846],{},[257,841,361],{}," It is highly recommended that your edge CDN (Nginx, Apache, Cloud) serves the ",[243,844,845],{},".output/public/"," directory instead of enabling compression and higher lever caching.",[239,848,850],{"id":849},"nopublicdir",[243,851,852],{},"noPublicDir",[285,854,855],{},[288,856,290,857],{},[243,858,859],{"className":293,"language":294,"style":295},[297,860,432],{"class":299},[246,862,863,864,867,868,870],{},"If enabled, disabled ",[243,865,866],{},".output/public"," directory creation. Skipping to copy ",[243,869,836],{}," dir and also disables pre-rendering.",[239,872,874],{"id":873},"publicassets",[243,875,876],{},"publicAssets",[246,878,879],{},"Public asset directories to serve in development and bundle in production.",[246,881,882,883,885],{},"If a ",[243,884,836],{}," directory is detected, it will be added by default, but you can add more by yourself too!",[246,887,888,889,892],{},"It's possible to set Cache-Control headers for assets using the ",[243,890,891],{},"maxAge"," option:",[444,894,896],{"className":293,"code":895,"language":294,"meta":295,"style":295},"  publicAssets: [\n    {\n      baseURL: \"images\",\n      dir: \"public/images\",\n      maxAge: 60 * 60 * 24 * 7, // 7 days\n    },\n  ],\n",[243,897,898,906,911,921,931,960,964],{"__ignoreMap":295},[297,899,900,903],{"class":453,"line":454},[297,901,902],{"class":337},"  publicAssets",[297,904,905],{"class":333},": [\n",[297,907,908],{"class":453,"line":462},[297,909,910],{"class":333},"    {\n",[297,912,913,916,919],{"class":453,"line":470},[297,914,915],{"class":333},"      baseURL: ",[297,917,918],{"class":478},"\"images\"",[297,920,482],{"class":333},[297,922,923,926,929],{"class":453,"line":485},[297,924,925],{"class":333},"      dir: ",[297,927,928],{"class":478},"\"public/images\"",[297,930,482],{"class":333},[297,932,933,936,939,942,945,947,950,952,955,957],{"class":453,"line":498},[297,934,935],{"class":333},"      maxAge: ",[297,937,938],{"class":299},"60",[297,940,941],{"class":344}," *",[297,943,944],{"class":299}," 60",[297,946,941],{"class":344},[297,948,949],{"class":299}," 24",[297,951,941],{"class":344},[297,953,954],{"class":299}," 7",[297,956,417],{"class":333},[297,958,959],{"class":548},"// 7 days\n",[297,961,962],{"class":453,"line":509},[297,963,677],{"class":333},[297,965,966],{"class":453,"line":515},[297,967,968],{"class":333},"  ],\n",[246,970,971,972,975],{},"The config above generates the following header in the assets under ",[243,973,974],{},"public/images/"," folder:",[246,977,978],{},[243,979,980],{},"cache-control: public, max-age=604800, immutable",[246,982,983,984,987,988,991],{},"The ",[243,985,986],{},"dir"," option is where your files live on your file system; the ",[243,989,990],{},"baseURL"," option is the folder they will be accessible from when served/bundled.",[239,993,995],{"id":994},"compresspublicassets",[243,996,997],{},"compressPublicAssets",[285,999,1000],{},[288,1001,290,1002],{},[243,1003,1004,1006,1009,1011,1013,1015,1018,1020,1022],{"className":293,"language":294,"style":295},[297,1005,334],{"class":333},[297,1007,1008],{"class":337},"gzip",[297,1010,362],{"class":333},[297,1012,432],{"class":299},[297,1014,417],{"class":333},[297,1016,1017],{"class":337},"brotli",[297,1019,362],{"class":333},[297,1021,432],{"class":299},[297,1023,1024],{"class":333}," }",[246,1026,1027],{},"If enabled, Nitro will generate a pre-compressed (gzip and/or brotli) version of supported types of public assets and prerendered routes\nlarger than 1024 bytes into the public directory. The best compression level is used. Using this option you can support zero overhead asset compression without using a CDN.",[246,1029,1030],{},"List of compressible MIME types:",[285,1032,1033,1038,1043,1048,1053,1058,1063,1068,1073,1078,1083,1088,1093,1098,1103,1108,1113,1118,1123,1128,1133,1138,1143,1148,1153,1158,1163,1168,1173,1178,1183,1188,1193,1198,1203,1208,1213,1218,1223,1228,1233,1238,1243,1248,1253,1258,1263,1268],{},[288,1034,1035],{},[243,1036,1037],{},"application/dash+xml",[288,1039,1040],{},[243,1041,1042],{},"application/eot",[288,1044,1045],{},[243,1046,1047],{},"application/font",[288,1049,1050],{},[243,1051,1052],{},"application/font-sfnt",[288,1054,1055],{},[243,1056,1057],{},"application/javascript",[288,1059,1060],{},[243,1061,1062],{},"application/json",[288,1064,1065],{},[243,1066,1067],{},"application/opentype",[288,1069,1070],{},[243,1071,1072],{},"application/otf",[288,1074,1075],{},[243,1076,1077],{},"application/pdf",[288,1079,1080],{},[243,1081,1082],{},"application/pkcs7-mime",[288,1084,1085],{},[243,1086,1087],{},"application/protobuf",[288,1089,1090],{},[243,1091,1092],{},"application/rss+xml",[288,1094,1095],{},[243,1096,1097],{},"application/truetype",[288,1099,1100],{},[243,1101,1102],{},"application/ttf",[288,1104,1105],{},[243,1106,1107],{},"application/vnd.apple.mpegurl",[288,1109,1110],{},[243,1111,1112],{},"application/vnd.mapbox-vector-tile",[288,1114,1115],{},[243,1116,1117],{},"application/vnd.ms-fontobject",[288,1119,1120],{},[243,1121,1122],{},"application/wasm",[288,1124,1125],{},[243,1126,1127],{},"application/xhtml+xml",[288,1129,1130],{},[243,1131,1132],{},"application/xml",[288,1134,1135],{},[243,1136,1137],{},"application/x-font-opentype",[288,1139,1140],{},[243,1141,1142],{},"application/x-font-truetype",[288,1144,1145],{},[243,1146,1147],{},"application/x-font-ttf",[288,1149,1150],{},[243,1151,1152],{},"application/x-httpd-cgi",[288,1154,1155],{},[243,1156,1157],{},"application/x-javascript",[288,1159,1160],{},[243,1161,1162],{},"application/x-mpegurl",[288,1164,1165],{},[243,1166,1167],{},"application/x-opentype",[288,1169,1170],{},[243,1171,1172],{},"application/x-otf",[288,1174,1175],{},[243,1176,1177],{},"application/x-perl",[288,1179,1180],{},[243,1181,1182],{},"application/x-ttf",[288,1184,1185],{},[243,1186,1187],{},"font/eot",[288,1189,1190],{},[243,1191,1192],{},"font/opentype",[288,1194,1195],{},[243,1196,1197],{},"font/otf",[288,1199,1200],{},[243,1201,1202],{},"font/ttf",[288,1204,1205],{},[243,1206,1207],{},"image/svg+xml",[288,1209,1210],{},[243,1211,1212],{},"text/css",[288,1214,1215],{},[243,1216,1217],{},"text/csv",[288,1219,1220],{},[243,1221,1222],{},"text/html",[288,1224,1225],{},[243,1226,1227],{},"text/javascript",[288,1229,1230],{},[243,1231,1232],{},"text/js",[288,1234,1235],{},[243,1236,1237],{},"text/plain",[288,1239,1240],{},[243,1241,1242],{},"text/richtext",[288,1244,1245],{},[243,1246,1247],{},"text/tab-separated-values",[288,1249,1250],{},[243,1251,1252],{},"text/xml",[288,1254,1255],{},[243,1256,1257],{},"text/x-component",[288,1259,1260],{},[243,1261,1262],{},"text/x-java-source",[288,1264,1265],{},[243,1266,1267],{},"text/x-script",[288,1269,1270],{},[243,1271,1272],{},"vnd.apple.mpegurl",[239,1274,1276],{"id":1275},"serverassets",[243,1277,1278],{},"serverAssets",[246,1280,1281,1282,1286],{},"Assets can be accessed in server logic and bundled in production. ",[312,1283,1285],{"href":1284},"/guide/assets#server-assets","Read more",".",[239,1288,1290],{"id":1289},"devserver",[243,1291,1292],{},"devServer",[285,1294,1295],{},[288,1296,290,1297],{},[243,1298,1299,1301,1304],{"className":293,"language":294,"style":295},[297,1300,334],{"class":333},[297,1302,1303],{"class":337},"watch",[297,1305,1306],{"class":333},": [] }",[246,1308,1309,1310,1312],{},"Dev server options. You can use ",[243,1311,1303],{}," to make the dev server reload if any file changes in specified paths.",[239,1314,1316],{"id":1315},"watchoptions",[243,1317,1318],{},"watchOptions",[246,1320,1321,1322,318],{},"Watch options for development mode. See ",[312,1323,1326],{"href":1324,"rel":1325},"https://github.com/paulmillr/chokidar",[316],"chokidar",[239,1328,1330],{"id":1329},"imports",[243,1331,1329],{},[246,1333,1334,1335,318],{},"Auto import options. See ",[312,1336,1339],{"href":1337,"rel":1338},"https://github.com/unjs/unimport",[316],"unimport",[239,1341,1343],{"id":1342},"plugins",[243,1344,1342],{},[285,1346,1347],{},[288,1348,290,1349],{},[243,1350,1351],{},"[]",[246,1353,1354],{},"An array of paths to nitro plugins. They will be executed by order on the first initialization.",[246,1356,1357,1358,1361,1362,1286],{},"Note that Nitro auto-register the plugins in the ",[243,1359,1360],{},"plugins/"," directory, ",[312,1363,1364],{"href":58},"learn more",[239,1366,1368],{"id":1367},"virtual",[243,1369,1367],{},[285,1371,1372],{},[288,1373,290,1374],{},[243,1375,400],{},[246,1377,1378],{},"A map from dynamic virtual import names to their contents or an (async) function that returns it.",[234,1380,1382],{"id":1381},"routing","Routing",[239,1384,1386],{"id":1385},"baseurl",[243,1387,990],{},[246,1389,290,1390,1395,1396,1399],{},[243,1391,1392],{"className":293,"language":294,"style":295},[297,1393,1394],{"class":344},"/"," (or ",[243,1397,1398],{},"NITRO_APP_BASE_URL"," environment variable if provided)",[246,1401,1402],{},"Server's main base URL.",[239,1404,1406],{"id":1405},"apibaseurl",[243,1407,1408],{},"apiBaseURL",[285,1410,1411],{},[288,1412,1413,1414],{},"Default : ",[243,1415,1416],{},"/api",[246,1418,1419],{},"Changes the default api base URL prefix.",[239,1421,1423],{"id":1422},"handlers",[243,1424,1422],{},[246,1426,1427],{},"Server handlers and routes.",[246,1429,1430,1431,417,1434,1437,1438,1441],{},"If ",[243,1432,1433],{},"server/routes/",[243,1435,1436],{},"server/api/"," or ",[243,1439,1440],{},"server/middleware/"," directories exist, they will be automatically added to the handlers array.",[239,1443,1445],{"id":1444},"devhandlers",[243,1446,1447],{},"devHandlers",[246,1449,1450],{},"Regular handlers refer to the path of handlers to be imported and transformed by rollup.",[246,1452,1453],{},"There are situations in that we directly want to provide a handler instance with programmatic usage.",[246,1455,1456,1457,1459,1460,421,1463,1286],{},"We can use ",[243,1458,1447],{}," but note that they are ",[257,1461,1462],{},"only available in development mode",[257,1464,1465],{},"not in production build",[246,1467,1468],{},"For example:",[444,1470,1472],{"className":293,"code":1471,"language":294,"meta":295,"style":295},"import { defineEventHandler } from 'h3'\n\nexport default defineNitroConfig({\n  devHandlers: [\n    {\n      route: '/',\n      handler: defineEventHandler((event) => {\n       console.log(event)\n      })\n    }\n  ]\n})\n",[243,1473,1474,1488,1494,1508,1513,1517,1527,1551,1562,1567,1571,1576],{"__ignoreMap":295},[297,1475,1476,1479,1482,1485],{"class":453,"line":454},[297,1477,1478],{"class":344},"import",[297,1480,1481],{"class":333}," { defineEventHandler } ",[297,1483,1484],{"class":344},"from",[297,1486,1487],{"class":478}," 'h3'\n",[297,1489,1490],{"class":453,"line":462},[297,1491,1493],{"emptyLinePlaceholder":1492},true,"\n",[297,1495,1496,1499,1502,1505],{"class":453,"line":470},[297,1497,1498],{"class":344},"export",[297,1500,1501],{"class":344}," default",[297,1503,1504],{"class":337}," defineNitroConfig",[297,1506,1507],{"class":333},"({\n",[297,1509,1510],{"class":453,"line":485},[297,1511,1512],{"class":333},"  devHandlers: [\n",[297,1514,1515],{"class":453,"line":498},[297,1516,910],{"class":333},[297,1518,1519,1522,1525],{"class":453,"line":509},[297,1520,1521],{"class":333},"      route: ",[297,1523,1524],{"class":478},"'/'",[297,1526,482],{"class":333},[297,1528,1529,1532,1535,1538,1542,1545,1548],{"class":453,"line":515},[297,1530,1531],{"class":333},"      handler: ",[297,1533,1534],{"class":337},"defineEventHandler",[297,1536,1537],{"class":333},"((",[297,1539,1541],{"class":1540},"sQHwn","event",[297,1543,1544],{"class":333},") ",[297,1546,1547],{"class":344},"=>",[297,1549,1550],{"class":333}," {\n",[297,1552,1553,1556,1559],{"class":453,"line":687},[297,1554,1555],{"class":333},"       console.",[297,1557,1558],{"class":337},"log",[297,1560,1561],{"class":333},"(event)\n",[297,1563,1564],{"class":453,"line":697},[297,1565,1566],{"class":333},"      })\n",[297,1568,1569],{"class":453,"line":702},[297,1570,616],{"class":333},[297,1572,1573],{"class":453,"line":707},[297,1574,1575],{"class":333},"  ]\n",[297,1577,1579],{"class":453,"line":1578},12,[297,1580,1581],{"class":333},"})\n",[1583,1584,1586],"note",{"type":1585},"info",[246,1587,1588,1589,1591,1592,1598],{},"Note that ",[243,1590,1534],{}," is a helper function from ",[312,1593,1596],{"href":1594,"rel":1595},"https://v1.h3.dev",[316],[243,1597,239],{}," library.",[239,1600,1602],{"id":1601},"devproxy",[243,1603,1604],{},"devProxy",[246,1606,1607],{},"Proxy configuration for development server.",[246,1609,1610],{},"You can use this option to override development server routes and proxy-pass requests.",[444,1612,1614],{"className":446,"code":1613,"language":448,"meta":295,"style":295},"{\n  devProxy: {\n    '/proxy/test': 'http://localhost:3001',\n    '/proxy/example': { target: 'https://example.com', changeOrigin: true }\n  }\n}\n",[243,1615,1616,1621,1628,1640,1660,1664],{"__ignoreMap":295},[297,1617,1618],{"class":453,"line":454},[297,1619,1620],{"class":333},"{\n",[297,1622,1623,1626],{"class":453,"line":462},[297,1624,1625],{"class":337},"  devProxy",[297,1627,459],{"class":333},[297,1629,1630,1633,1635,1638],{"class":453,"line":470},[297,1631,1632],{"class":478},"    '/proxy/test'",[297,1634,362],{"class":333},[297,1636,1637],{"class":478},"'http://localhost:3001'",[297,1639,482],{"class":333},[297,1641,1642,1645,1648,1651,1654,1657],{"class":453,"line":485},[297,1643,1644],{"class":478},"    '/proxy/example'",[297,1646,1647],{"class":333},": { target: ",[297,1649,1650],{"class":478},"'https://example.com'",[297,1652,1653],{"class":333},", changeOrigin: ",[297,1655,1656],{"class":299},"true",[297,1658,1659],{"class":333}," }\n",[297,1661,1662],{"class":453,"line":498},[297,1663,512],{"class":333},[297,1665,1666],{"class":453,"line":509},[297,1667,518],{"class":333},[246,1669,1670,1671,1676],{},"See ",[312,1672,1675],{"href":1673,"rel":1674},"https://github.com/unjs/httpxy",[316],"httpxy"," for all available target options.",[239,1678,1680],{"id":1679},"errorhandler",[243,1681,1682],{},"errorHandler",[246,1684,1685,1686,421,1689,1692],{},"Path to a custom runtime error handler. Replacing nitro's built-in error page.\nThe error handler is given an ",[243,1687,1688],{},"H3Error",[243,1690,1691],{},"H3Event",". If the handler returns a promise it is awaited.\nThe handler is expected to send a response of its own.\nBelow is an example where a plain-text response is returned using h3's functions.",[246,1694,1695],{},[257,1696,1697],{},"Example:",[1699,1700,1701,1732],"CodeGroup",{},[444,1702,1705],{"className":446,"code":1703,"filename":1704,"language":448,"meta":295,"style":295},"export default defineNitroConfig({\n  errorHandler: \"~/error\",\n});\n","nitro.config",[243,1706,1707,1717,1727],{"__ignoreMap":295},[297,1708,1709,1711,1713,1715],{"class":453,"line":454},[297,1710,1498],{"class":344},[297,1712,1501],{"class":344},[297,1714,1504],{"class":337},[297,1716,1507],{"class":333},[297,1718,1719,1722,1725],{"class":453,"line":462},[297,1720,1721],{"class":333},"  errorHandler: ",[297,1723,1724],{"class":478},"\"~/error\"",[297,1726,482],{"class":333},[297,1728,1729],{"class":453,"line":470},[297,1730,1731],{"class":333},"});\n",[444,1733,1736],{"className":446,"code":1734,"filename":1735,"language":448,"meta":295,"style":295},"export default defineNitroErrorHandler((error, event) => {\n  setResponseHeader(event, 'Content-Type', 'text/plain')\n  return send(event, '[custom error handler] ' + error.stack)\n});\n","error.ts",[243,1737,1738,1762,1781,1800],{"__ignoreMap":295},[297,1739,1740,1742,1744,1747,1749,1752,1754,1756,1758,1760],{"class":453,"line":454},[297,1741,1498],{"class":344},[297,1743,1501],{"class":344},[297,1745,1746],{"class":337}," defineNitroErrorHandler",[297,1748,1537],{"class":333},[297,1750,1751],{"class":1540},"error",[297,1753,417],{"class":333},[297,1755,1541],{"class":1540},[297,1757,1544],{"class":333},[297,1759,1547],{"class":344},[297,1761,1550],{"class":333},[297,1763,1764,1767,1770,1773,1775,1778],{"class":453,"line":462},[297,1765,1766],{"class":337},"  setResponseHeader",[297,1768,1769],{"class":333},"(event, ",[297,1771,1772],{"class":478},"'Content-Type'",[297,1774,417],{"class":333},[297,1776,1777],{"class":478},"'text/plain'",[297,1779,1780],{"class":333},")\n",[297,1782,1783,1786,1789,1791,1794,1797],{"class":453,"line":470},[297,1784,1785],{"class":344},"  return",[297,1787,1788],{"class":337}," send",[297,1790,1769],{"class":333},[297,1792,1793],{"class":478},"'[custom error handler] '",[297,1795,1796],{"class":344}," +",[297,1798,1799],{"class":333}," error.stack)\n",[297,1801,1802],{"class":453,"line":485},[297,1803,1731],{"class":333},[239,1805,1807],{"id":1806},"routerules",[243,1808,1809],{},"routeRules",[246,1811,1812],{},[257,1813,1814],{},"🧪 Experimental!",[246,1816,1817,1818,1823],{},"Route options. It is a map from route pattern (following ",[312,1819,1822],{"href":1820,"rel":1821},"https://github.com/unjs/rou3/tree/radix3#route-matcher",[316],"radix3",") to route options.",[246,1825,1826,1827,1830,1831,1286],{},"When ",[243,1828,1829],{},"cache"," option is set, handlers matching pattern will be automatically wrapped with ",[243,1832,1833],{},"defineCachedEventHandler",[246,1835,1836,1837,1840],{},"See the ",[312,1838,1839],{"href":43},"Cache API"," for all available cache options.",[1583,1842,1843],{},[246,1844,1845,1848,1849],{},[243,1846,1847],{},"swr: true|number"," is shortcut for ",[243,1850,1851],{},"cache: { swr: true, maxAge: number }",[246,1853,1854],{},[257,1855,1697],{},[444,1857,1859],{"className":446,"code":1858,"language":448,"meta":295,"style":295},"routeRules: {\n  '/blog/**': { swr: true },\n  '/blog/**': { swr: 600 },\n  '/blog/**': { static: true },\n  '/blog/**': { cache: { /* cache options*/ } },\n  '/assets/**': { headers: { 'cache-control': 's-maxage=0' } },\n  '/api/v1/**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },\n  '/old-page': { redirect: '/new-page' }, // uses status code 307 (Temporary Redirect)\n  '/old-page2': { redirect: { to:'/new-page2', statusCode: 301 } },\n  '/old-page/**': { redirect: '/new-page/**' },\n  '/proxy/example': { proxy: 'https://example.com' },\n  '/proxy/**': { proxy: '/api/**' },\n}\n",[243,1860,1861,1867,1880,1891,1902,1915,1933,1956,1972,1991,2003,2015,2027],{"__ignoreMap":295},[297,1862,1863,1865],{"class":453,"line":454},[297,1864,1809],{"class":337},[297,1866,459],{"class":333},[297,1868,1869,1872,1875,1877],{"class":453,"line":462},[297,1870,1871],{"class":478},"  '/blog/**'",[297,1873,1874],{"class":333},": { swr: ",[297,1876,1656],{"class":299},[297,1878,1879],{"class":333}," },\n",[297,1881,1882,1884,1886,1889],{"class":453,"line":470},[297,1883,1871],{"class":478},[297,1885,1874],{"class":333},[297,1887,1888],{"class":299},"600",[297,1890,1879],{"class":333},[297,1892,1893,1895,1898,1900],{"class":453,"line":485},[297,1894,1871],{"class":478},[297,1896,1897],{"class":333},": { static: ",[297,1899,1656],{"class":299},[297,1901,1879],{"class":333},[297,1903,1904,1906,1909,1912],{"class":453,"line":498},[297,1905,1871],{"class":478},[297,1907,1908],{"class":333},": { cache: { ",[297,1910,1911],{"class":548},"/* cache options*/",[297,1913,1914],{"class":333}," } },\n",[297,1916,1917,1920,1923,1926,1928,1931],{"class":453,"line":509},[297,1918,1919],{"class":478},"  '/assets/**'",[297,1921,1922],{"class":333},": { headers: { ",[297,1924,1925],{"class":478},"'cache-control'",[297,1927,362],{"class":333},[297,1929,1930],{"class":478},"'s-maxage=0'",[297,1932,1914],{"class":333},[297,1934,1935,1938,1941,1943,1946,1949,1951,1954],{"class":453,"line":515},[297,1936,1937],{"class":478},"  '/api/v1/**'",[297,1939,1940],{"class":333},": { cors: ",[297,1942,1656],{"class":299},[297,1944,1945],{"class":333},", headers: { ",[297,1947,1948],{"class":478},"'access-control-allow-methods'",[297,1950,362],{"class":333},[297,1952,1953],{"class":478},"'GET'",[297,1955,1914],{"class":333},[297,1957,1958,1961,1964,1967,1969],{"class":453,"line":687},[297,1959,1960],{"class":478},"  '/old-page'",[297,1962,1963],{"class":333},": { redirect: ",[297,1965,1966],{"class":478},"'/new-page'",[297,1968,348],{"class":333},[297,1970,1971],{"class":548},"// uses status code 307 (Temporary Redirect)\n",[297,1973,1974,1977,1980,1983,1986,1989],{"class":453,"line":697},[297,1975,1976],{"class":478},"  '/old-page2'",[297,1978,1979],{"class":333},": { redirect: { to:",[297,1981,1982],{"class":478},"'/new-page2'",[297,1984,1985],{"class":333},", statusCode: ",[297,1987,1988],{"class":299},"301",[297,1990,1914],{"class":333},[297,1992,1993,1996,1998,2001],{"class":453,"line":702},[297,1994,1995],{"class":478},"  '/old-page/**'",[297,1997,1963],{"class":333},[297,1999,2000],{"class":478},"'/new-page/**'",[297,2002,1879],{"class":333},[297,2004,2005,2008,2011,2013],{"class":453,"line":707},[297,2006,2007],{"class":478},"  '/proxy/example'",[297,2009,2010],{"class":333},": { proxy: ",[297,2012,1650],{"class":478},[297,2014,1879],{"class":333},[297,2016,2017,2020,2022,2025],{"class":453,"line":1578},[297,2018,2019],{"class":478},"  '/proxy/**'",[297,2021,2010],{"class":333},[297,2023,2024],{"class":478},"'/api/**'",[297,2026,1879],{"class":333},[297,2028,2030],{"class":453,"line":2029},13,[297,2031,518],{"class":333},[239,2033,2035],{"id":2034},"prerender",[243,2036,2034],{},[246,2038,2039],{},"Default:",[444,2041,2043],{"className":293,"code":2042,"language":294,"meta":295,"style":295},"{\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",[243,2044,2045,2049,2060,2071,2083,2094,2105,2113,2120,2131,2141],{"__ignoreMap":295},[297,2046,2047],{"class":453,"line":454},[297,2048,1620],{"class":333},[297,2050,2051,2054,2056,2058],{"class":453,"line":462},[297,2052,2053],{"class":337},"  autoSubfolderIndex",[297,2055,362],{"class":333},[297,2057,1656],{"class":299},[297,2059,482],{"class":333},[297,2061,2062,2065,2067,2069],{"class":453,"line":470},[297,2063,2064],{"class":337},"  concurrency",[297,2066,362],{"class":333},[297,2068,306],{"class":299},[297,2070,482],{"class":333},[297,2072,2073,2076,2078,2081],{"class":453,"line":485},[297,2074,2075],{"class":337},"  interval",[297,2077,362],{"class":333},[297,2079,2080],{"class":299},"0",[297,2082,482],{"class":333},[297,2084,2085,2088,2090,2092],{"class":453,"line":498},[297,2086,2087],{"class":337},"  failOnError",[297,2089,362],{"class":333},[297,2091,432],{"class":299},[297,2093,482],{"class":333},[297,2095,2096,2099,2101,2103],{"class":453,"line":509},[297,2097,2098],{"class":337},"  crawlLinks",[297,2100,362],{"class":333},[297,2102,432],{"class":299},[297,2104,482],{"class":333},[297,2106,2107,2110],{"class":453,"line":515},[297,2108,2109],{"class":337},"  ignore",[297,2111,2112],{"class":333},": [],\n",[297,2114,2115,2118],{"class":453,"line":687},[297,2116,2117],{"class":337},"  routes",[297,2119,2112],{"class":333},[297,2121,2122,2125,2127,2129],{"class":453,"line":697},[297,2123,2124],{"class":337},"  retry",[297,2126,362],{"class":333},[297,2128,300],{"class":299},[297,2130,482],{"class":333},[297,2132,2133,2136,2138],{"class":453,"line":702},[297,2134,2135],{"class":337},"  retryDelay",[297,2137,362],{"class":333},[297,2139,2140],{"class":299},"500\n",[297,2142,2143],{"class":453,"line":707},[297,2144,518],{"class":333},[246,2146,2147,2148,2150],{},"Prerendered options. Any route specified will be fetched during the build and copied to the ",[243,2149,866],{}," directory as a static asset.",[246,2152,2153,2154,2157],{},"Any route (string) that starts with a prefix listed in ",[243,2155,2156],{},"ignore"," or matches a regular expression or function will be ignored.",[246,2159,1430,2160,2163,2164,2166,2167,2169,2170,2173,2174,2177],{},[243,2161,2162],{},"crawlLinks"," option is set to ",[243,2165,1656],{},", nitro starts with ",[243,2168,1394],{}," by default (or all routes in ",[243,2171,2172],{},"routes"," array) and for HTML pages extracts ",[243,2175,2176],{},"\u003Ca>"," tags and prerender them as well.",[246,2179,2180,2181,2184,2185,2187],{},"You can set ",[243,2182,2183],{},"failOnError"," option to ",[243,2186,1656],{}," to stop the CI when an error if Nitro could not prerender a route.",[246,2189,983,2190,421,2193,2196],{},[243,2191,2192],{},"interval",[243,2194,2195],{},"concurrency"," options lets you control the speed of pre-rendering, can be useful to avoid hitting some rate-limit if you call external APIs.",[246,2198,2199,2200,2203,2204,2206],{},"Set ",[243,2201,2202],{},"autoSubfolderIndex"," lets you control how to generate the files in the ",[243,2205,866],{}," directory:",[444,2208,2212],{"className":2209,"code":2210,"language":2211,"meta":295,"style":295},"language-bash shiki shiki-themes github-light github-dark github-dark","# autoSubfolderIndex: true (default)\n/about -> .output/public/about/index.html\n# autoSubfolderIndex: false\n/about -> .output/public/about.html\n","bash",[243,2213,2214,2219,2233,2238],{"__ignoreMap":295},[297,2215,2216],{"class":453,"line":454},[297,2217,2218],{"class":548},"# autoSubfolderIndex: true (default)\n",[297,2220,2221,2224,2227,2230],{"class":453,"line":462},[297,2222,2223],{"class":337},"/about",[297,2225,2226],{"class":333}," -",[297,2228,2229],{"class":344},">",[297,2231,2232],{"class":478}," .output/public/about/index.html\n",[297,2234,2235],{"class":453,"line":470},[297,2236,2237],{"class":548},"# autoSubfolderIndex: false\n",[297,2239,2240,2242,2244,2246],{"class":453,"line":485},[297,2241,2223],{"class":337},[297,2243,2226],{"class":333},[297,2245,2229],{"class":344},[297,2247,2248],{"class":478}," .output/public/about.html\n",[246,2250,2251],{},"This option is useful when your hosting provider does not give you an option regarding the trailing slash.",[246,2253,2254,2255,421,2258,2261],{},"The prerenderer will attempt to render pages 3 times with a delay of 500ms. Use ",[243,2256,2257],{},"retry",[243,2259,2260],{},"retryDelay"," to change this behavior.",[234,2263,2265],{"id":2264},"directories","Directories",[239,2267,2269],{"id":2268},"workspacedir",[243,2270,2271],{},"workspaceDir",[246,2273,2274],{},"Project workspace root directory.",[246,2276,2277,2278,2280],{},"The workspace (e.g. pnpm workspace)  directory is automatically detected when the ",[243,2279,2271],{}," option is not set.",[239,2282,2284],{"id":2283},"rootdir",[243,2285,2286],{},"rootDir",[246,2288,2289],{},"Project main directory.",[239,2291,2293],{"id":2292},"srcdir",[243,2294,2295],{},"srcDir",[285,2297,2298],{},[288,2299,2300,2301,2303],{},"Default: (same as ",[243,2302,2286],{},")",[246,2305,2306,2307,2309,2310,417,2313,417,2315,417,2317,417,2320,417,2323,417,2326,2329,2330,2333],{},"Project source directory. Same as ",[243,2308,2286],{}," unless specified.\nRoot directory for ",[243,2311,2312],{},"api",[243,2314,2172],{},[243,2316,1342],{},[243,2318,2319],{},"utils",[243,2321,2322],{},"public",[243,2324,2325],{},"middleware",[243,2327,2328],{},"assets",", and ",[243,2331,2332],{},"tasks"," folders.",[239,2335,2337],{"id":2336},"scandirs",[243,2338,2339],{},"scanDirs",[285,2341,2342],{},[288,2343,2344],{},"Default: (source directory when empty array)",[246,2346,2347],{},"List of directories to scan and auto-register files, such as API routes.",[239,2349,2351],{"id":2350},"apidir",[243,2352,2353],{},"apiDir",[285,2355,2356],{},[288,2357,1413,2358],{},[243,2359,2312],{},[246,2361,2362],{},"Defines a different directory to scan for api route handlers.",[239,2364,2366],{"id":2365},"routesdir",[243,2367,2368],{},"routesDir",[285,2370,2371],{},[288,2372,1413,2373],{},[243,2374,2172],{},[246,2376,2377],{},"Defines a different directory to scan for route handlers.",[239,2379,2381],{"id":2380},"builddir",[243,2382,2383],{},"buildDir",[285,2385,2386],{},[288,2387,290,2388],{},[243,2389,2390],{},".nitro",[246,2392,2393],{},"nitro's temporary working directory for generating build-related files.",[239,2395,2397],{"id":2396},"output",[243,2398,2396],{},[285,2400,2401],{},[288,2402,290,2403],{},[243,2404,2405],{},"{ dir: '.output', serverDir: '.output/server', publicDir: '.output/public' }",[246,2407,2408],{},"Output directories for production bundle.",[234,2410,2412],{"id":2411},"advanced","Advanced",[239,2414,2416],{"id":2415},"dev",[243,2417,2415],{},[285,2419,2420],{},[288,2421,290,2422,2424,2425,2427],{},[243,2423,1656],{}," for development and ",[243,2426,432],{}," for production.",[246,2429,2430],{},[257,2431,2432],{},"⚠️ Caution! This is an advanced configuration. Things can go wrong if misconfigured.",[239,2434,2436],{"id":2435},"typescript",[243,2437,2435],{},[246,2439,290,2440],{},[243,2441,2442],{},"{ generateTsConfig: true }",[239,2444,2446],{"id":2445},"nodemodulesdirs",[243,2447,2448],{},"nodeModulesDirs",[246,2450,2451],{},[257,2452,2432],{},[246,2454,2455,2456,2459],{},"Additional ",[243,2457,2458],{},"node_modules"," to search when resolving a module. By default user directory is added.",[239,2461,2463],{"id":2462},"hooks",[243,2464,2462],{},[246,2466,2467],{},[257,2468,2432],{},[246,2470,2471,2472,318],{},"nitro hooks. See ",[312,2473,2476],{"href":2474,"rel":2475},"https://github.com/unjs/hookable",[316],"hookable",[239,2478,2480],{"id":2479},"commands",[243,2481,2479],{},[246,2483,2484],{},[257,2485,2432],{},[246,2487,2488],{},"Preview and deploy command hints are usually filled by deployment presets.",[239,2490,2492],{"id":2491},"deverrorhandler",[243,2493,2494],{},"devErrorHandler",[246,2496,2497],{},[257,2498,2432],{},[246,2500,2501],{},"A custom error handler function for development errors.",[234,2503,2505],{"id":2504},"rollup","Rollup",[239,2507,2509],{"id":2508},"rollupconfig",[243,2510,2511],{},"rollupConfig",[246,2513,2514],{},"Additional rollup configuration.",[239,2516,2518],{"id":2517},"entry",[243,2519,2517],{},[246,2521,2522],{},"Rollup entry.",[239,2524,2526],{"id":2525},"unenv",[243,2527,2525],{},[246,2529,2530,2531,260],{},"Options for ",[312,2532,2525],{"href":2533,"rel":2534},"https://github.com/unjs/unenv/",[316],[239,2536,2538],{"id":2537},"alias",[243,2539,2537],{},[246,2541,2542],{},"Rollup aliases options.",[239,2544,2546],{"id":2545},"minify",[243,2547,2545],{},[285,2549,2550],{},[288,2551,290,2552],{},[243,2553,432],{},[246,2555,2556],{},"Minify bundle.",[239,2558,2560],{"id":2559},"inlinedynamicimports",[243,2561,2562],{},"inlineDynamicImports",[246,2564,2565],{},"Avoid creating chunks.",[239,2567,2569],{"id":2568},"sourcemap",[243,2570,2571],{},"sourceMap",[246,2573,2574,2575],{},"Enable source map generation. See ",[312,2576,2579],{"href":2577,"rel":2578},"https://rollupjs.org/configuration-options/#output-sourcemap",[316],"options",[285,2581,2582],{},[288,2583,290,2584],{},[243,2585,1656],{},[239,2587,2589],{"id":2588},"node",[243,2590,2588],{},[246,2592,2593,2594,2596,2597,2601],{},"Specify whether the build is used for Node.js or not. If set to ",[243,2595,432],{},", nitro tries to mock Node.js dependencies using ",[312,2598,2525],{"href":2599,"rel":2600},"https://github.com/unjs/unenv",[316]," and adjust its behavior.",[239,2603,2605],{"id":2604},"analyze",[243,2606,2604],{},[246,2608,2609,2610,2615],{},"If enabled, will analyze server bundle after build using ",[312,2611,2614],{"href":2612,"rel":2613},"https://github.com/btd/rollup-plugin-visualizer",[316],"rollup-plugin-visualizer",". You can also pass your custom options.",[239,2617,2619],{"id":2618},"modulesideeffects",[243,2620,2621],{},"moduleSideEffects",[246,2623,290,2624],{},[243,2625,2626],{},"['unenv/polyfill/', 'node-fetch-native/polyfill']",[246,2628,2629],{},"Rollup specific option. Specifies module imports that have side-effects",[239,2631,2633],{"id":2632},"replace",[243,2634,2632],{},[246,2636,2637],{},"Rollup specific option.",[239,2639,2641],{"id":2640},"commonjs",[243,2642,2643],{},"commonJS",[246,2645,2646],{},"Rollup specific option. Specifies additional configuration for the rollup CommonJS plugin.",[234,2648,2650],{"id":2649},"preset-options","Preset options",[239,2652,2654],{"id":2653},"firebase",[243,2655,2653],{},[246,2657,2658,2659],{},"The options for the firebase functions preset. See ",[312,2660,2662],{"href":2661},"/deploy/providers/firebase#options","Preset Docs",[239,2664,2666],{"id":2665},"vercel",[243,2667,2665],{},[246,2669,2670,2671],{},"The options for the vercel preset. See ",[312,2672,2662],{"href":209},[239,2674,2676],{"id":2675},"cloudflare",[243,2677,2675],{},[246,2679,2680,2681],{},"The options for the cloudflare preset. See ",[312,2682,2662],{"href":145},[2684,2685,2686],"style",{},"html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":295,"searchDepth":462,"depth":462,"links":2688},[2689,2695,2712,2722,2732,2740,2754],{"id":236,"depth":462,"text":237,"children":2690},[2691,2692,2693,2694],{"id":241,"depth":470,"text":241},{"id":280,"depth":470,"text":283},{"id":321,"depth":470,"text":324},{"id":368,"depth":470,"text":371},{"id":387,"depth":462,"text":388,"children":2696},[2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711],{"id":391,"depth":470,"text":391},{"id":729,"depth":470,"text":729},{"id":752,"depth":470,"text":752},{"id":770,"depth":470,"text":770},{"id":797,"depth":470,"text":797},{"id":805,"depth":470,"text":808},{"id":849,"depth":470,"text":852},{"id":873,"depth":470,"text":876},{"id":994,"depth":470,"text":997},{"id":1275,"depth":470,"text":1278},{"id":1289,"depth":470,"text":1292},{"id":1315,"depth":470,"text":1318},{"id":1329,"depth":470,"text":1329},{"id":1342,"depth":470,"text":1342},{"id":1367,"depth":470,"text":1367},{"id":1381,"depth":462,"text":1382,"children":2713},[2714,2715,2716,2717,2718,2719,2720,2721],{"id":1385,"depth":470,"text":990},{"id":1405,"depth":470,"text":1408},{"id":1422,"depth":470,"text":1422},{"id":1444,"depth":470,"text":1447},{"id":1601,"depth":470,"text":1604},{"id":1679,"depth":470,"text":1682},{"id":1806,"depth":470,"text":1809},{"id":2034,"depth":470,"text":2034},{"id":2264,"depth":462,"text":2265,"children":2723},[2724,2725,2726,2727,2728,2729,2730,2731],{"id":2268,"depth":470,"text":2271},{"id":2283,"depth":470,"text":2286},{"id":2292,"depth":470,"text":2295},{"id":2336,"depth":470,"text":2339},{"id":2350,"depth":470,"text":2353},{"id":2365,"depth":470,"text":2368},{"id":2380,"depth":470,"text":2383},{"id":2396,"depth":470,"text":2396},{"id":2411,"depth":462,"text":2412,"children":2733},[2734,2735,2736,2737,2738,2739],{"id":2415,"depth":470,"text":2415},{"id":2435,"depth":470,"text":2435},{"id":2445,"depth":470,"text":2448},{"id":2462,"depth":470,"text":2462},{"id":2479,"depth":470,"text":2479},{"id":2491,"depth":470,"text":2494},{"id":2504,"depth":462,"text":2505,"children":2741},[2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,2752,2753],{"id":2508,"depth":470,"text":2511},{"id":2517,"depth":470,"text":2517},{"id":2525,"depth":470,"text":2525},{"id":2537,"depth":470,"text":2537},{"id":2545,"depth":470,"text":2545},{"id":2559,"depth":470,"text":2562},{"id":2568,"depth":470,"text":2571},{"id":2588,"depth":470,"text":2588},{"id":2604,"depth":470,"text":2604},{"id":2618,"depth":470,"text":2621},{"id":2632,"depth":470,"text":2632},{"id":2640,"depth":470,"text":2643},{"id":2649,"depth":462,"text":2650,"children":2755},[2756,2757,2758],{"id":2653,"depth":470,"text":2653},{"id":2665,"depth":470,"text":2665},{"id":2675,"depth":470,"text":2675},"md",{"icon":65},{"icon":65},{"title":220,"description":295},"RlYl0kn-DiI74aK6QgFgCADJWjzPROluJTt477We6cI",[2765,2767],{"title":216,"path":217,"stem":218,"description":2766,"children":-1},"Deploy Nitro apps to Zerops.",null,1775117853279]