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