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