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