[{"data":1,"prerenderedAt":1409},["ShallowReactive",2],{"navigation":3,"-migration":189,"-migration-surround":1405},[4,91,138,166,173],{"title":5,"path":6,"stem":7,"children":8,"icon":90},"Guide","/guide","1.guide/0.index",[9,12,53,69],{"title":10,"path":6,"stem":7,"icon":11},"Getting Started","pixel:play",{"title":5,"icon":13,"path":14,"stem":15,"children":16,"page":52},"ph:book-open-duotone","/guide/basics","1.guide/1.basics",[17,22,27,32,37,42,47],{"title":18,"path":19,"stem":20,"icon":21},"Request Lifecycle","/guide/basics/lifecycle","1.guide/1.basics/1.lifecycle","icon-park-outline:handle-round",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/guide/basics/routing","1.guide/1.basics/2.routing","solar:routing-bold",{"title":28,"path":29,"stem":30,"icon":31},"Middleware","/guide/basics/middleware","1.guide/1.basics/3.middleware","mdi:middleware-outline",{"title":33,"path":34,"stem":35,"icon":36},"Event Handlers","/guide/basics/handler","1.guide/1.basics/4.handler","mdi:function",{"title":38,"path":39,"stem":40,"icon":41},"Sending Response","/guide/basics/response","1.guide/1.basics/5.response","tabler:json",{"title":43,"path":44,"stem":45,"icon":46},"Error Handling","/guide/basics/error","1.guide/1.basics/6.error","tabler:error-404",{"title":48,"path":49,"stem":50,"icon":51},"Nested Apps","/guide/basics/nested-apps","1.guide/1.basics/7.nested-apps","material-symbols-light:layers-outline",false,{"title":54,"icon":55,"path":56,"stem":57,"children":58,"page":52},"API","material-symbols-light:api-rounded","/guide/api","1.guide/900.api",[59,64],{"title":60,"path":61,"stem":62,"icon":63},"H3","/guide/api/h3","1.guide/900.api/1.h3","material-symbols:bolt-rounded",{"title":65,"path":66,"stem":67,"icon":68},"H3Event","/guide/api/h3event","1.guide/900.api/2.h3event","material-symbols:data-object-rounded",{"title":70,"icon":71,"path":72,"stem":73,"children":74,"page":52},"Advanced","hugeicons:more-01","/guide/advanced","1.guide/901.advanced",[75,80,85],{"title":76,"path":77,"stem":78,"icon":79},"Plugins","/guide/advanced/plugins","1.guide/901.advanced/1.plugins","clarity:plugin-line",{"title":81,"path":82,"stem":83,"icon":84},"WebSockets","/guide/advanced/websocket","1.guide/901.advanced/2.websocket","hugeicons:live-streaming-02",{"title":86,"path":87,"stem":88,"icon":89},"Nightly Builds","/guide/advanced/nightly","1.guide/901.advanced/9.nightly","game-icons:barn-owl","i-ph:book-open-duotone",{"title":92,"path":93,"stem":94,"children":95,"icon":97},"Utils","/utils","2.utils/0.index",[96,98,103,108,113,118,123,128,133],{"title":92,"path":93,"stem":94,"icon":97},"ph:function-bold",{"title":99,"path":100,"stem":101,"icon":102},"Request","/utils/request","2.utils/1.request","material-symbols-light:input",{"title":104,"path":105,"stem":106,"icon":107},"Response","/utils/response","2.utils/2.response","material-symbols-light:output",{"title":109,"path":110,"stem":111,"icon":112},"Cookie","/utils/cookie","2.utils/3.cookie","material-symbols:cookie-outline",{"title":114,"path":115,"stem":116,"icon":117},"Security","/utils/security","2.utils/4.security","wpf:key-security",{"title":119,"path":120,"stem":121,"icon":122},"Proxy","/utils/proxy","2.utils/5.proxy","arcticons:super-proxy",{"title":124,"path":125,"stem":126,"icon":127},"MCP","/utils/mcp","2.utils/6.mcp","material-symbols:swap-calls",{"title":129,"path":130,"stem":131,"icon":132},"More utils","/utils/more","2.utils/9.more","mingcute:plus-line",{"title":134,"path":135,"stem":136,"icon":137},"Community","/utils/community","2.utils/99.community","lets-icons:external",{"title":139,"path":140,"stem":141,"children":142,"icon":144},"Examples","/examples","4.examples/0.index",[143,145,150,154,158,162],{"title":139,"path":140,"stem":141,"icon":144},"ph:code",{"title":146,"path":147,"stem":148,"icon":149},"Cookies","/examples/handle-cookie","4.examples/handle-cookie","ph:arrow-right",{"title":151,"path":152,"stem":153,"icon":149},"Sessions","/examples/handle-session","4.examples/handle-session",{"title":155,"path":156,"stem":157,"icon":149},"Static Assets","/examples/serve-static-assets","4.examples/serve-static-assets",{"title":159,"path":160,"stem":161,"icon":149},"Stream Response","/examples/stream-response","4.examples/stream-response",{"title":163,"path":164,"stem":165,"icon":149},"Validate Data","/examples/validate-data","4.examples/validate-data",{"title":167,"path":168,"stem":169,"children":170,"icon":172},"Migration","/migration","5.migration/0.index",[171],{"title":167,"path":168,"stem":169,"icon":172},"icons8:up-round",{"title":174,"path":175,"stem":176,"children":177},"Blog","/blog","99.blog",[178,181,185],{"title":174,"path":175,"stem":179,"icon":180},"99.blog/index","i-lucide-file-text",{"title":182,"path":183,"stem":184,"icon":180},"H3 1.8 - Towards the Edge of the Web","/blog/v1.8","99.blog/1.v1.8",{"title":186,"path":187,"stem":188,"icon":180},"H3 v2 beta","/blog/v2-beta","99.blog/2.v2-beta",{"id":190,"title":167,"body":191,"description":1378,"extension":1400,"meta":1401,"navigation":1402,"path":168,"seo":1403,"stem":169,"__hash__":1404},"content/5.migration/0.index.md",{"type":192,"value":193,"toc":1377,"icon":172},"minimark",[194,199,203,214,219,228,233,238,258,273,277,311,320,327,340,344,358,367,404,410,469,472,476,497,500,502,511,516,599,601,603,607,622,647,681,686,716,720,731,750,769,773,776,781,793,797,819,823,867,871,911,952,956,1044,1048,1102,1106,1145,1149,1184,1188,1225,1229,1234,1335],[195,196,198],"h1",{"id":197},"migration-guide-for-v1-to-v2","Migration guide for v1 to v2",[200,201,202],"p",{},"H3 version 2 includes some behavior and API changes that you need to consider applying when migrating.",[204,205,206],"note",{},[200,207,208,209,213],{},"\nCurrently H3 v2 in beta stage. You can try with ",[210,211,212],"a",{"href":87},"nightly channel",".",[204,215,216],{},[200,217,218],{},"\nThis is an undergoing migration guide and might be updated.",[220,221,222],"tip",{},[200,223,224,225,227],{},"\nH3 has a brand new documentation rewrite. Head to the new ",[210,226,5],{"href":6}," section to learn more!",[229,230,232],"h2",{"id":231},"latest-nodejs-and-esm-only","Latest Node.js and ESM-only",[220,234,235],{},[200,236,237],{},"\nH3 v2 requires Node.js >= 20.11 (latest LTS recommended) .",[200,239,240,241,245,246,249,250,253,254,257],{},"If your application is currently using CommonJS modules (",[242,243,244],"code",{},"require"," and ",[242,247,248],{},"module.exports","), You can still use ",[242,251,252],{},"require(\"h3\")"," thanks to ",[242,255,256],{},"require(esm)"," supported in latest Node.js versions.",[200,259,260,261,267,268,213],{},"You can alternatively use other compatible runtimes ",[210,262,266],{"href":263,"rel":264},"https://bun.sh/",[265],"nofollow","Bun"," or ",[210,269,272],{"href":270,"rel":271},"https://deno.com/",[265],"Deno",[229,274,276],{"id":275},"web-standards","Web Standards",[220,278,279],{},[200,280,281,282,289,290,289,297,303,304,310],{},"\nH3 v2 is rewritten based on web standard primitives (",[210,283,286],{"href":284,"rel":285},"https://developer.mozilla.org/en-US/docs/Web/API/URL",[265],[242,287,288],{},"URL",", ",[210,291,294],{"href":292,"rel":293},"https://developer.mozilla.org/en-US/docs/Web/API/Headers",[265],[242,295,296],{},"Headers",[210,298,301],{"href":299,"rel":300},"https://developer.mozilla.org/en-US/docs/Web/API/Request",[265],[242,302,99],{},", and ",[210,305,308],{"href":306,"rel":307},"https://developer.mozilla.org/en-US/docs/Web/API/Response",[265],[242,309,104],{},").",[200,312,313,314,319],{},"When using Node.js, H3 uses a compatibility layer (",[210,315,318],{"href":316,"rel":317},"https://srvx.h3.dev/guide/node",[265],"💥 srvx",") and in other runtimes uses native web compatibility APIs.",[200,321,322,323,326],{},"Access to the native ",[242,324,325],{},"event.node.{req,res}"," is only available when running server in Node.js runtime.",[200,328,329,332,333,336,337,310],{},[242,330,331],{},"event.web"," is renamed to ",[242,334,335],{},"event.req"," (instance of web ",[210,338,99],{"href":299,"rel":339},[265],[229,341,343],{"id":342},"response-handling","Response Handling",[220,345,346],{},[200,347,348,349,353,354,357],{},"\nYou should always explicitly ",[350,351,352],"strong",{},"return"," the response body or ",[350,355,356],{},"throw"," an error.",[200,359,360,361,363,364,366],{},"If you were previously using methods below, you can replace them with ",[242,362,352],{}," statements returning a text, JSON, stream, or web ",[242,365,104],{}," (h3 smartly detects and handles each):",[368,369,370,380,388,396],"ul",{},[371,372,373,376,377,213],"li",{},[242,374,375],{},"send(event, value)",": Migrate to ",[242,378,379],{},"return \u003Cvalue>",[371,381,382,376,385,213],{},[242,383,384],{},"sendError(event, \u003Cerror>)",[242,386,387],{},"throw createError(\u003Cerror>)",[371,389,390,376,393,213],{},[242,391,392],{},"sendStream(event, \u003Cstream>)",[242,394,395],{},"return \u003Cstream>",[371,397,398,376,401,213],{},[242,399,400],{},"sendWebResponse(event, \u003Cresponse>)",[242,402,403],{},"return \u003Cresponse>",[200,405,406,407,409],{},"Other send utils that are renamed and need explicit ",[242,408,352],{},":",[368,411,412,424,432,440,452,461],{},[371,413,414,417,418,376,421,213],{},[242,415,416],{},"sendNoContent(event)"," / ",[242,419,420],{},"return null",[242,422,423],{},"return noContent()",[371,425,426,376,429,213],{},[242,427,428],{},"sendIterable(event, \u003Cvalue>)",[242,430,431],{},"return iterable(\u003Cvalue>)",[371,433,434,376,437,213],{},[242,435,436],{},"sendProxy(event, target)",[242,438,439],{},"return proxy(event, target)",[371,441,442,445,446,448,449,310],{},[242,443,444],{},"handleCors(event)",": Check return value and early ",[242,447,352],{}," if handled(not ",[242,450,451],{},"false",[371,453,454,457,458,460],{},[242,455,456],{},"serveStatic(event, content)",": Make sure to add ",[242,459,352],{}," before.",[371,462,463,376,466,213],{},[242,464,465],{},"sendRedirect(event, location, code)",[242,467,468],{},"return redirect(location, code)",[470,471],"read-more",{"title":38,"to":39},[229,473,475],{"id":474},"h3-and-router","H3 and Router",[220,477,478],{},[200,479,480,481,484,485,245,488,491,492,213],{},"\nRouter function is now integrated into the H3 core.\n",[482,483],"br",{}," Instead of ",[242,486,487],{},"createApp()",[242,489,490],{},"createRouter()"," you can use ",[210,493,494],{"href":61},[242,495,496],{},"new H3()",[200,498,499],{},"Any handler can return a response. If middleware don't return a response, next handlers will be tried and finally make a 404 if neither responses. Router handlers can return or not return any response, in this case, H3 will send a simple 200 with empty content.",[470,501],{"title":18,"to":19},[200,503,504,505,510],{},"H3 migrated to a brand new route-matching engine (",[210,506,509],{"href":507,"rel":508},"https://rou3.h3.dev/",[265],"🌳 rou3","). You might experience slight (but more intuitive) behavior changes for matching patterns.",[200,512,513],{},[350,514,515],{},"Other changes from v1:",[368,517,518,536,550,561,571,580,593],{},[371,519,520,521,524,525,528,529,532,533,213],{},"Middleware added with ",[242,522,523],{},"app.use(\"/path\", handler)"," only matches ",[242,526,527],{},"/path"," (not ",[242,530,531],{},"/path/foo/bar","). For matching all subpaths like before, it should be updated to ",[242,534,535],{},"app.use(\"/path/**\", handler)",[371,537,538,539,542,543,546,547,310],{},"The ",[242,540,541],{},"event.path"," received in each handler will have a full path without omitting the prefixes. use ",[242,544,545],{},"withBase(base, handler)"," utility to make prefixed app. (example: ",[242,548,549],{},"withBase(\"/api\", app.handler)",[371,551,552],{},[350,553,554,557,558],{},[242,555,556],{},"router.add(path, method: Method | Method[]"," signature is changed to ",[242,559,560],{},"router.add(method: Method, path)",[371,562,563,566,567,570],{},[242,564,565],{},"router.use(path, handler)"," is deprecated. Use ",[242,568,569],{},"router.all(path, handler)"," instead.",[371,572,573,576,577,213],{},[242,574,575],{},"app.use(() => handler, { lazy: true })"," is no supported anymore. Instead you can use ",[242,578,579],{},"app.use(defineLazyEventHandler(() => handler), { lazy: true })",[371,581,582,245,585,588,589,592],{},[242,583,584],{},"app.use([\"/path1\", \"/path2\"], ...)",[242,586,587],{},"app.use(\"/path\", [handler1, handler2])"," are not supported anymore. Instead, use multiple ",[242,590,591],{},"app.use()"," calls.",[371,594,595,598],{},[242,596,597],{},"app.resolve(path)"," removed.",[470,600],{"title":23,"to":24},[470,602],{"title":28,"to":29},[229,604,606],{"id":605},"request-body","Request Body",[220,608,609],{},[200,610,611,612,615,616,621],{},"\nMost of request body utilities can now be replaced with native ",[242,613,614],{},"event.req.*"," methods which is based on web ",[210,617,619],{"href":306,"rel":618},[265],[242,620,99],{}," interface.",[200,623,624,627,628,267,635,642,643,646],{},[242,625,626],{},"readBody(event)"," utility will use ",[210,629,632],{"href":630,"rel":631},"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse",[265],[242,633,634],{},"JSON.parse",[210,636,639],{"href":637,"rel":638},"https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams",[265],[242,640,641],{},"URLSearchParams"," for parsing requests with ",[242,644,645],{},"application/x-www-form-urlencoded"," content-type.",[368,648,649,657,665,673],{},[371,650,651,652,213],{},"For text: Use ",[210,653,656],{"href":654,"rel":655},"https://developer.mozilla.org/en-US/docs/Web/API/Request/text",[265],"event.req.text()",[371,658,659,660,213],{},"For json: Use ",[210,661,664],{"href":662,"rel":663},"https://developer.mozilla.org/en-US/docs/Web/API/Request/json",[265],"event.req.json()",[371,666,667,668,213],{},"For formData: Use ",[210,669,672],{"href":670,"rel":671},"https://developer.mozilla.org/en-US/docs/Web/API/Request/formData",[265],"event.req.formData()",[371,674,675,676,213],{},"For stream: Use ",[210,677,680],{"href":678,"rel":679},"https://developer.mozilla.org/en-US/docs/Web/API/Request/body",[265],"event.req.body",[200,682,683],{},[350,684,685],{},"Behavior changes:",[368,687,688,695],{},[371,689,690,691,694],{},"Body utils won't throw an error if the incoming request has no body (or is a ",[242,692,693],{},"GET"," method for example) but instead, return empty values.",[371,696,697,698,245,701,704,705,710,711,213],{},"Native ",[242,699,700],{},"request.json",[242,702,703],{},"readBody"," does not use ",[210,706,709],{"href":707,"rel":708},"https://destr.unjs.io",[265],"unjs/destr"," anymore. You should always filter and sanitize data coming from user to avoid ",[210,712,715],{"href":713,"rel":714},"https://medium.com/intrinsic-blog/javascript-prototype-poisoning-vulnerabilities-in-the-wild-7bc15347c96",[265],"prototype-poisoning",[229,717,719],{"id":718},"cookie-and-headers","Cookie and Headers",[220,721,722],{},[200,723,724,725,730],{},"\nH3 now natively uses standard web ",[210,726,728],{"href":292,"rel":727},[265],[242,729,296],{}," for all utils.",[200,732,733,734,737,738,267,741,267,744,267,747,310],{},"Header values are always a plain ",[242,735,736],{},"string"," now (no ",[242,739,740],{},"null",[242,742,743],{},"undefined",[242,745,746],{},"number",[242,748,749],{},"string[]",[200,751,752,753,760,761,768],{},"For the ",[210,754,757],{"href":755,"rel":756},"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie",[265],[242,758,759],{},"Set-Cookie"," header, you can use ",[210,762,765],{"href":763,"rel":764},"https://developer.mozilla.org/en-US/docs/Web/API/Headers/getSetCookie",[265],[242,766,767],{},"headers.getSetCookie"," that always returns a string array.",[229,770,772],{"id":771},"other-deprecations","Other Deprecations",[200,774,775],{},"H3 v2 deprecated some legacy and aliased utilities.",[777,778,780],"h3",{"id":779},"app-and-router-utils","App and router utils",[368,782,783],{},[371,784,785,417,788,376,791,213],{},[242,786,787],{},"createApp",[242,789,790],{},"createRouter",[242,792,496],{},[777,794,796],{"id":795},"error-utils","Error utils",[368,798,799,811],{},[371,800,801,804,805,376,808],{},[242,802,803],{},"createError","/",[242,806,807],{},"H3Error",[242,809,810],{},"HTTPError",[371,812,813,376,816],{},[242,814,815],{},"isError",[242,817,818],{},"HTTPError.isError",[777,820,822],{"id":821},"handler-utils","Handler utils",[368,824,825,837,845,851,859],{},[371,826,827,804,830,376,833,836],{},[242,828,829],{},"eventHandler",[242,831,832],{},"defineEventHandler",[242,834,835],{},"defineHandler"," (you can also directly use a function!).",[371,838,839,376,842,213],{},[242,840,841],{},"lazyEventHandler",[242,843,844],{},"defineLazyEventHandler",[371,846,847,850],{},[242,848,849],{},"isEventHandler",": (removed) Any function can be an event handler.",[371,852,853,376,856,213],{},[242,854,855],{},"useBase",[242,857,858],{},"withBase",[371,860,861,245,864,598],{},[242,862,863],{},"defineRequestMiddleware",[242,865,866],{},"defineResponseMiddleware",[777,868,870],{"id":869},"request-utils","Request utils",[368,872,873,884,895,903],{},[371,874,875,417,878,376,881,213],{},[242,876,877],{},"getHeader",[242,879,880],{},"getRequestHeader",[242,882,883],{},"event.req.headers.get(name)",[371,885,886,417,889,376,892,213],{},[242,887,888],{},"getHeaders",[242,890,891],{},"getRequestHeaders",[242,893,894],{},"Object.fromEntries(event.req.headers.entries())",[371,896,897,376,900,213],{},[242,898,899],{},"getRequestPath",[242,901,902],{},"event.url.pathname",[371,904,905,376,908,213],{},[242,906,907],{},"getMethod",[242,909,910],{},"event.req.method",[204,912,913,919],{},[200,914,915,916,918],{},"\nThe following ",[242,917,65],{}," properties are deprecated in v2 and might be removed in a future version:",[368,920,921,929,936,944],{},[371,922,923,925,926],{},[242,924,541],{}," → use ",[242,927,928],{},"event.url.pathname + event.url.search",[371,930,931,925,934],{},[242,932,933],{},"event.method",[242,935,910],{},[371,937,938,925,941],{},[242,939,940],{},"event.headers",[242,942,943],{},"event.req.headers",[371,945,946,925,949],{},[242,947,948],{},"event.node",[242,950,951],{},"event.runtime.node",[777,953,955],{"id":954},"response-utils","Response utils",[368,957,958,969,986,1000,1011,1018,1026],{},[371,959,960,417,963,376,966],{},[242,961,962],{},"getResponseHeader",[242,964,965],{},"getResponseHeaders",[242,967,968],{},"event.res.headers.get(name)",[371,970,971,417,974,417,977,417,980,376,983,213],{},[242,972,973],{},"setHeader",[242,975,976],{},"setResponseHeader",[242,978,979],{},"setHeaders",[242,981,982],{},"setResponseHeaders",[242,984,985],{},"event.res.headers.set(name, value)",[371,987,988,417,991,417,994,376,997,213],{},[242,989,990],{},"appendHeader",[242,992,993],{},"appendResponseHeader",[242,995,996],{},"appendResponseHeaders",[242,998,999],{},"event.res.headers.append(name, value)",[371,1001,1002,417,1005,376,1008],{},[242,1003,1004],{},"removeResponseHeader",[242,1006,1007],{},"clearResponseHeaders",[242,1009,1010],{},"event.res.headers.delete(name)",[371,1012,1013,376,1016,213],{},[242,1014,1015],{},"appendHeaders",[242,1017,996],{},[371,1019,1020,376,1023],{},[242,1021,1022],{},"defaultContentType",[242,1024,1025],{},"event.res.headers.set(\"content-type\", type)",[371,1027,1028,417,1031,417,1034,1037,1038,245,1041,213],{},[242,1029,1030],{},"getResponseStatus",[242,1032,1033],{},"getResponseStatusText",[242,1035,1036],{},"setResponseStatus",": Use ",[242,1039,1040],{},"event.res.status",[242,1042,1043],{},"event.res.statusText",[777,1045,1047],{"id":1046},"nodejs-utils","Node.js utils",[368,1049,1050,1058,1066,1074,1083,1090,1096],{},[371,1051,1052,376,1055,213],{},[242,1053,1054],{},"defineNodeListener",[242,1056,1057],{},"defineNodeHandler",[371,1059,1060,376,1063,213],{},[242,1061,1062],{},"fromNodeMiddleware",[242,1064,1065],{},"fromNodeHandler",[371,1067,1068,376,1071,213],{},[242,1069,1070],{},"toNodeListener",[242,1072,1073],{},"toNodeHandler",[371,1075,1076,1079,1080,310],{},[242,1077,1078],{},"createEvent",": (removed): Use Node.js adapter (",[242,1081,1082],{},"toNodeHandler(app)",[371,1084,1085,1079,1088,310],{},[242,1086,1087],{},"fromNodeRequest",[242,1089,1082],{},[371,1091,1092,1095],{},[242,1093,1094],{},"promisifyNodeListener"," (removed).",[371,1097,1098,1101],{},[242,1099,1100],{},"callNodeListener",": (removed).",[777,1103,1105],{"id":1104},"web-utils","Web Utils",[368,1107,1108,1114,1119,1129,1135,1140],{},[371,1109,1110,1113],{},[242,1111,1112],{},"fromPlainHandler",": (removed) Migrate to Web API.",[371,1115,1116,1113],{},[242,1117,1118],{},"toPlainHandler",[371,1120,1121,1124,1125,1128],{},[242,1122,1123],{},"fromPlainRequest"," (removed) Migrate to Web API or use ",[242,1126,1127],{},"mockEvent"," util for testing.",[371,1130,1131,1134],{},[242,1132,1133],{},"callWithPlainRequest"," (removed) Migrate to Web API.",[371,1136,1137,1113],{},[242,1138,1139],{},"fromWebRequest",[371,1141,1142,1101],{},[242,1143,1144],{},"callWithWebRequest",[777,1146,1148],{"id":1147},"body-utils","Body Utils",[368,1150,1151,1161,1171],{},[371,1152,1153,376,1156,267,1158,213],{},[242,1154,1155],{},"readRawBody",[242,1157,656],{},[242,1159,1160],{},"event.req.arrayBuffer()",[371,1162,1163,417,1166,376,1169,213],{},[242,1164,1165],{},"getBodyStream",[242,1167,1168],{},"getRequestWebStream",[242,1170,680],{},[371,1172,1173,417,1176,417,1179,376,1182,213],{},[242,1174,1175],{},"readFormData",[242,1177,1178],{},"readMultipartFormData",[242,1180,1181],{},"readFormDataBody",[242,1183,672],{},[777,1185,1187],{"id":1186},"other-utils","Other Utils",[368,1189,1190,1198,1206,1220],{},[371,1191,1192,376,1195,213],{},[242,1193,1194],{},"isStream",[242,1196,1197],{},"instanceof ReadableStream",[371,1199,1200,376,1203,213],{},[242,1201,1202],{},"isWebResponse",[242,1204,1205],{},"instanceof Response",[371,1207,1208,1037,1211,1214,1215,213],{},[242,1209,1210],{},"splitCookiesString",[242,1212,1213],{},"splitSetCookieString"," from ",[210,1216,1219],{"href":1217,"rel":1218},"https://github.com/unjs/cookie-es",[265],"cookie-es",[371,1221,1222,1101],{},[242,1223,1224],{},"MIMES",[777,1226,1228],{"id":1227},"type-exports","Type Exports",[204,1230,1231],{},[200,1232,1233],{},"\nThere might be more type changes.",[368,1235,1236,1243,1251,1259,1267,1275,1286,1297,1305,1312,1320],{},[371,1237,1238,376,1241,213],{},[242,1239,1240],{},"App",[242,1242,60],{},[371,1244,1245,376,1248,213],{},[242,1246,1247],{},"AppOptions",[242,1249,1250],{},"H3Config",[371,1252,1253,376,1256,213],{},[242,1254,1255],{},"_RequestMiddleware",[242,1257,1258],{},"RequestMiddleware",[371,1260,1261,376,1264,213],{},[242,1262,1263],{},"_ResponseMiddleware",[242,1265,1266],{},"ResponseMiddleware",[371,1268,1269,376,1272,213],{},[242,1270,1271],{},"NodeListener",[242,1273,1274],{},"NodeHandler",[371,1276,1277,376,1280,245,1283,213],{},[242,1278,1279],{},"TypedHeaders",[242,1281,1282],{},"RequestHeaders",[242,1284,1285],{},"ResponseHeaders",[371,1287,1288,376,1291,245,1294,213],{},[242,1289,1290],{},"HTTPHeaderName",[242,1292,1293],{},"RequestHeaderName",[242,1295,1296],{},"ResponseHeaderName",[371,1298,1299,1302,1303,213],{},[242,1300,1301],{},"H3Headers",": Migrate to native ",[242,1304,296],{},[371,1306,1307,1302,1310,213],{},[242,1308,1309],{},"H3Response",[242,1311,104],{},[371,1313,1314,1302,1317,213],{},[242,1315,1316],{},"MultiPartData",[242,1318,1319],{},"FormData",[371,1321,1322,376,1325,1328,1329,376,1332,213],{},[242,1323,1324],{},"RouteNode",[242,1326,1327],{},"RouterEntry",".\n",[242,1330,1331],{},"CreateRouterOptions",[242,1333,1334],{},"RouterOptions",[200,1336,1337,1338,289,1341,289,1344,289,1347,289,1350,289,1353,289,1356,289,1359,289,1362,289,1365,289,1368,289,1371,289,1374,213],{},"Removed type exports: ",[242,1339,1340],{},"WebEventContext",[242,1342,1343],{},"NodeEventContext",[242,1345,1346],{},"NodePromisifiedHandler",[242,1348,1349],{},"AppUse",[242,1351,1352],{},"Stack",[242,1354,1355],{},"InputLayer",[242,1357,1358],{},"InputStack",[242,1360,1361],{},"Layer",[242,1363,1364],{},"Matcher",[242,1366,1367],{},"PlainHandler",[242,1369,1370],{},"PlainRequest",[242,1372,1373],{},"PlainResponse",[242,1375,1376],{},"WebHandler",{"title":1378,"searchDepth":1379,"depth":1379,"links":1380},"",2,[1381,1382,1383,1384,1385,1386,1387],{"id":231,"depth":1379,"text":232},{"id":275,"depth":1379,"text":276},{"id":342,"depth":1379,"text":343},{"id":474,"depth":1379,"text":475},{"id":605,"depth":1379,"text":606},{"id":718,"depth":1379,"text":719},{"id":771,"depth":1379,"text":772,"children":1388},[1389,1391,1392,1393,1394,1395,1396,1397,1398,1399],{"id":779,"depth":1390,"text":780},3,{"id":795,"depth":1390,"text":796},{"id":821,"depth":1390,"text":822},{"id":869,"depth":1390,"text":870},{"id":954,"depth":1390,"text":955},{"id":1046,"depth":1390,"text":1047},{"id":1104,"depth":1390,"text":1105},{"id":1147,"depth":1390,"text":1148},{"id":1186,"depth":1390,"text":1187},{"id":1227,"depth":1390,"text":1228},"md",{"icon":172},{"icon":172},{"title":167,"description":1378},"lKJUvKa38tjoIq2DuqH0Gl1NIMBwKpOIu1vrS00cMKA",[1406,1408],{"title":163,"path":164,"stem":165,"description":1407,"icon":149,"children":-1},"Ensure that your data are valid and safe before processing them.",{"title":174,"path":175,"stem":179,"description":1378,"icon":180,"children":-1},1783115410071]