[{"data":1,"prerenderedAt":986},["ShallowReactive",2],{"navigation":3,"-guide-api-h3event":179,"-guide-api-h3event-surround":981},[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":60,"body":181,"description":975,"extension":976,"meta":977,"navigation":978,"path":61,"seo":979,"stem":62,"__hash__":980},"content/1.guide/900.api/2.h3event.md",{"type":182,"value":183,"toc":962,"icon":63},"minimark",[184,192,195,198,204,406,413,420,423,602,608,614,617,624,629,663,669,686,846,852,860,866,869,954,958],[185,186,187,188,191],"p",{},"With each HTTP request, H3 internally creates an ",[189,190,60],"code",{}," object and passes it though event handlers until sending the response.",[193,194],"read-more",{"title":18,"to":19},[185,196,197],{},"An event is passed through all the lifecycle hooks and composable utils to use it as context.",[185,199,200],{},[201,202,203],"strong",{},"Example:",[205,206,211],"pre",{"className":207,"code":208,"language":209,"meta":210,"style":210},"language-js shiki shiki-themes github-light github-dark github-dark","app.get(\"/\", async (event) => {\n  // Log HTTP request\n  console.log(`[${event.req.method}] ${event.req.url}`);\n\n  // Parsed URL and query params\n  const searchParams = event.url.searchParams;\n\n  // Try to read request JSON body\n  const jsonBody = await event.req.json().catch(() => {});\n\n  return \"OK\";\n});\n","js","",[189,212,213,256,263,310,317,323,339,344,350,383,388,400],{"__ignoreMap":210},[214,215,218,222,226,229,233,236,240,243,247,250,253],"span",{"class":216,"line":217},"line",1,[214,219,221],{"class":220},"slsVL","app.",[214,223,225],{"class":224},"shcOC","get",[214,227,228],{"class":220},"(",[214,230,232],{"class":231},"sfrk1","\"/\"",[214,234,235],{"class":220},", ",[214,237,239],{"class":238},"so5gQ","async",[214,241,242],{"class":220}," (",[214,244,246],{"class":245},"sQHwn","event",[214,248,249],{"class":220},") ",[214,251,252],{"class":238},"=>",[214,254,255],{"class":220}," {\n",[214,257,259],{"class":216,"line":258},2,[214,260,262],{"class":261},"sCsY4","  // Log HTTP request\n",[214,264,266,269,272,274,277,279,282,285,287,290,293,295,297,299,301,304,307],{"class":216,"line":265},3,[214,267,268],{"class":220},"  console.",[214,270,271],{"class":224},"log",[214,273,228],{"class":220},[214,275,276],{"class":231},"`[${",[214,278,246],{"class":220},[214,280,281],{"class":231},".",[214,283,284],{"class":220},"req",[214,286,281],{"class":231},[214,288,289],{"class":220},"method",[214,291,292],{"class":231},"}] ${",[214,294,246],{"class":220},[214,296,281],{"class":231},[214,298,284],{"class":220},[214,300,281],{"class":231},[214,302,303],{"class":220},"url",[214,305,306],{"class":231},"}`",[214,308,309],{"class":220},");\n",[214,311,313],{"class":216,"line":312},4,[214,314,316],{"emptyLinePlaceholder":315},true,"\n",[214,318,320],{"class":216,"line":319},5,[214,321,322],{"class":261},"  // Parsed URL and query params\n",[214,324,326,329,333,336],{"class":216,"line":325},6,[214,327,328],{"class":238},"  const",[214,330,332],{"class":331},"suiK_"," searchParams",[214,334,335],{"class":238}," =",[214,337,338],{"class":220}," event.url.searchParams;\n",[214,340,342],{"class":216,"line":341},7,[214,343,316],{"emptyLinePlaceholder":315},[214,345,347],{"class":216,"line":346},8,[214,348,349],{"class":261},"  // Try to read request JSON body\n",[214,351,353,355,358,360,363,366,369,372,375,378,380],{"class":216,"line":352},9,[214,354,328],{"class":238},[214,356,357],{"class":331}," jsonBody",[214,359,335],{"class":238},[214,361,362],{"class":238}," await",[214,364,365],{"class":220}," event.req.",[214,367,368],{"class":224},"json",[214,370,371],{"class":220},"().",[214,373,374],{"class":224},"catch",[214,376,377],{"class":220},"(() ",[214,379,252],{"class":238},[214,381,382],{"class":220}," {});\n",[214,384,386],{"class":216,"line":385},10,[214,387,316],{"emptyLinePlaceholder":315},[214,389,391,394,397],{"class":216,"line":390},11,[214,392,393],{"class":238},"  return",[214,395,396],{"class":231}," \"OK\"",[214,398,399],{"class":220},";\n",[214,401,403],{"class":216,"line":402},12,[214,404,405],{"class":220},"});\n",[407,408,410,412],"h2",{"id":409},"h3event-methods",[189,411,60],{}," Methods",[414,415,417],"h3",{"id":416},"h3eventwaituntil",[189,418,419],{},"H3Event.waitUntil",[185,421,422],{},"Tell the runtime about an ongoing operation that shouldn't close until the promise resolves.",[424,425,426,501],"CodeGroup",{},[205,427,430],{"className":207,"code":428,"filename":429,"language":209,"meta":210,"style":210},"import { logRequest } from \"./tracing.mjs\";\n\napp.get(\"/\", (event) => {\n  request.waitUntil(logRequest(request));\n  return \"OK\";\n});\n","app.mjs",[189,431,432,448,452,473,489,497],{"__ignoreMap":210},[214,433,434,437,440,443,446],{"class":216,"line":217},[214,435,436],{"class":238},"import",[214,438,439],{"class":220}," { logRequest } ",[214,441,442],{"class":238},"from",[214,444,445],{"class":231}," \"./tracing.mjs\"",[214,447,399],{"class":220},[214,449,450],{"class":216,"line":258},[214,451,316],{"emptyLinePlaceholder":315},[214,453,454,456,458,460,462,465,467,469,471],{"class":216,"line":265},[214,455,221],{"class":220},[214,457,225],{"class":224},[214,459,228],{"class":220},[214,461,232],{"class":231},[214,463,464],{"class":220},", (",[214,466,246],{"class":245},[214,468,249],{"class":220},[214,470,252],{"class":238},[214,472,255],{"class":220},[214,474,475,478,481,483,486],{"class":216,"line":312},[214,476,477],{"class":220},"  request.",[214,479,480],{"class":224},"waitUntil",[214,482,228],{"class":220},[214,484,485],{"class":224},"logRequest",[214,487,488],{"class":220},"(request));\n",[214,490,491,493,495],{"class":216,"line":319},[214,492,393],{"class":238},[214,494,396],{"class":231},[214,496,399],{"class":220},[214,498,499],{"class":216,"line":325},[214,500,405],{"class":220},[205,502,505],{"className":207,"code":503,"filename":504,"language":209,"meta":210,"style":210},"export async function logRequest(request) {\n  await fetch(\"https://telemetry.example.com\", {\n    method: \"POST\",\n    body: JSON.stringify({\n      method: request.method,\n      url: request.url,\n      ip: request.ip,\n    }),\n  });\n}\n","tracing.mjs",[189,506,507,529,545,556,572,577,582,587,592,597],{"__ignoreMap":210},[214,508,509,512,515,518,521,523,526],{"class":216,"line":217},[214,510,511],{"class":238},"export",[214,513,514],{"class":238}," async",[214,516,517],{"class":238}," function",[214,519,520],{"class":224}," logRequest",[214,522,228],{"class":220},[214,524,525],{"class":245},"request",[214,527,528],{"class":220},") {\n",[214,530,531,534,537,539,542],{"class":216,"line":258},[214,532,533],{"class":238},"  await",[214,535,536],{"class":224}," fetch",[214,538,228],{"class":220},[214,540,541],{"class":231},"\"https://telemetry.example.com\"",[214,543,544],{"class":220},", {\n",[214,546,547,550,553],{"class":216,"line":265},[214,548,549],{"class":220},"    method: ",[214,551,552],{"class":231},"\"POST\"",[214,554,555],{"class":220},",\n",[214,557,558,561,564,566,569],{"class":216,"line":312},[214,559,560],{"class":220},"    body: ",[214,562,563],{"class":331},"JSON",[214,565,281],{"class":220},[214,567,568],{"class":224},"stringify",[214,570,571],{"class":220},"({\n",[214,573,574],{"class":216,"line":319},[214,575,576],{"class":220},"      method: request.method,\n",[214,578,579],{"class":216,"line":325},[214,580,581],{"class":220},"      url: request.url,\n",[214,583,584],{"class":216,"line":341},[214,585,586],{"class":220},"      ip: request.ip,\n",[214,588,589],{"class":216,"line":346},[214,590,591],{"class":220},"    }),\n",[214,593,594],{"class":216,"line":352},[214,595,596],{"class":220},"  });\n",[214,598,599],{"class":216,"line":385},[214,600,601],{"class":220},"}\n",[407,603,605,607],{"id":604},"h3event-properties",[189,606,60],{}," Properties",[414,609,611],{"id":610},"h3eventcontext",[189,612,613],{},"H3Event.context",[185,615,616],{},"The context is an object that contains arbitrary information about the request.",[185,618,619,620,623],{},"You can store your custom properties inside ",[189,621,622],{},"event.context"," to share across utils.",[185,625,626],{},[201,627,628],{},"Known context keys:",[630,631,632,639,645,651,657],"ul",{},[633,634,635,638],"li",{},[189,636,637],{},"context.params",": Matched router parameters.",[633,640,641,644],{},[189,642,643],{},"middlewareParams",": Matched middleware parameters",[633,646,647,650],{},[189,648,649],{},"matchedRoute",": Matched router route object.",[633,652,653,656],{},[189,654,655],{},"sessions",": Cached session data.",[633,658,659,662],{},[189,660,661],{},"basicAuth",": Basic authentication data.",[414,664,666],{"id":665},"h3eventreq",[189,667,668],{},"H3Event.req",[185,670,671,672,679,680,685],{},"Incoming HTTP request info based on native ",[673,674,678],"a",{"href":675,"rel":676},"https://developer.mozilla.org/en-US/docs/Web/API/Request",[677],"nofollow","Web Request"," with additional runtime addons (see ",[673,681,684],{"href":682,"rel":683},"https://srvx.h3.dev/guide/handler#extended-request-context",[677],"srvx docs",").",[205,687,691],{"className":688,"code":689,"language":690,"meta":210,"style":210},"language-ts shiki shiki-themes github-light github-dark github-dark","app.get(\"/\", async (event) => {\n  const url = event.req.url;\n  const method = event.req.method;\n  const headers = event.req.headers;\n\n  // (note: you can consume body only once with either of this)\n  const bodyStream = await event.req.body;\n  const textBody = await event.req.text();\n  const jsonBody = await event.req.json();\n  const formDataBody = await event.req.formData();\n\n  return \"OK\";\n});\n","ts",[189,692,693,717,729,741,753,757,762,776,795,811,829,833,841],{"__ignoreMap":210},[214,694,695,697,699,701,703,705,707,709,711,713,715],{"class":216,"line":217},[214,696,221],{"class":220},[214,698,225],{"class":224},[214,700,228],{"class":220},[214,702,232],{"class":231},[214,704,235],{"class":220},[214,706,239],{"class":238},[214,708,242],{"class":220},[214,710,246],{"class":245},[214,712,249],{"class":220},[214,714,252],{"class":238},[214,716,255],{"class":220},[214,718,719,721,724,726],{"class":216,"line":258},[214,720,328],{"class":238},[214,722,723],{"class":331}," url",[214,725,335],{"class":238},[214,727,728],{"class":220}," event.req.url;\n",[214,730,731,733,736,738],{"class":216,"line":265},[214,732,328],{"class":238},[214,734,735],{"class":331}," method",[214,737,335],{"class":238},[214,739,740],{"class":220}," event.req.method;\n",[214,742,743,745,748,750],{"class":216,"line":312},[214,744,328],{"class":238},[214,746,747],{"class":331}," headers",[214,749,335],{"class":238},[214,751,752],{"class":220}," event.req.headers;\n",[214,754,755],{"class":216,"line":319},[214,756,316],{"emptyLinePlaceholder":315},[214,758,759],{"class":216,"line":325},[214,760,761],{"class":261},"  // (note: you can consume body only once with either of this)\n",[214,763,764,766,769,771,773],{"class":216,"line":341},[214,765,328],{"class":238},[214,767,768],{"class":331}," bodyStream",[214,770,335],{"class":238},[214,772,362],{"class":238},[214,774,775],{"class":220}," event.req.body;\n",[214,777,778,780,783,785,787,789,792],{"class":216,"line":346},[214,779,328],{"class":238},[214,781,782],{"class":331}," textBody",[214,784,335],{"class":238},[214,786,362],{"class":238},[214,788,365],{"class":220},[214,790,791],{"class":224},"text",[214,793,794],{"class":220},"();\n",[214,796,797,799,801,803,805,807,809],{"class":216,"line":352},[214,798,328],{"class":238},[214,800,357],{"class":331},[214,802,335],{"class":238},[214,804,362],{"class":238},[214,806,365],{"class":220},[214,808,368],{"class":224},[214,810,794],{"class":220},[214,812,813,815,818,820,822,824,827],{"class":216,"line":385},[214,814,328],{"class":238},[214,816,817],{"class":331}," formDataBody",[214,819,335],{"class":238},[214,821,362],{"class":238},[214,823,365],{"class":220},[214,825,826],{"class":224},"formData",[214,828,794],{"class":220},[214,830,831],{"class":216,"line":390},[214,832,316],{"emptyLinePlaceholder":315},[214,834,835,837,839],{"class":216,"line":402},[214,836,393],{"class":238},[214,838,396],{"class":231},[214,840,399],{"class":220},[214,842,844],{"class":216,"line":843},13,[214,845,405],{"class":220},[414,847,849],{"id":848},"h3eventurl",[189,850,851],{},"H3Event.url",[185,853,854,855,281],{},"Access to the full parsed request ",[673,856,859],{"href":857,"rel":858},"https://developer.mozilla.org/en-US/docs/Web/API/URL",[677],"URL",[414,861,863],{"id":862},"h3eventres",[189,864,865],{},"H3Event.res",[185,867,868],{},"Prepared HTTP response status and headers.",[205,870,872],{"className":688,"code":871,"language":690,"meta":210,"style":210},"app.get(\"/\", (event) => {\n  event.res.status = 200;\n  event.res.statusText = \"OK\";\n  event.res.headers.set(\"x-test\", \"works\");\n\n  return \"OK\";\n});\n",[189,873,874,894,907,918,938,942,950],{"__ignoreMap":210},[214,875,876,878,880,882,884,886,888,890,892],{"class":216,"line":217},[214,877,221],{"class":220},[214,879,225],{"class":224},[214,881,228],{"class":220},[214,883,232],{"class":231},[214,885,464],{"class":220},[214,887,246],{"class":245},[214,889,249],{"class":220},[214,891,252],{"class":238},[214,893,255],{"class":220},[214,895,896,899,902,905],{"class":216,"line":258},[214,897,898],{"class":220},"  event.res.status ",[214,900,901],{"class":238},"=",[214,903,904],{"class":331}," 200",[214,906,399],{"class":220},[214,908,909,912,914,916],{"class":216,"line":265},[214,910,911],{"class":220},"  event.res.statusText ",[214,913,901],{"class":238},[214,915,396],{"class":231},[214,917,399],{"class":220},[214,919,920,923,926,928,931,933,936],{"class":216,"line":312},[214,921,922],{"class":220},"  event.res.headers.",[214,924,925],{"class":224},"set",[214,927,228],{"class":220},[214,929,930],{"class":231},"\"x-test\"",[214,932,235],{"class":220},[214,934,935],{"class":231},"\"works\"",[214,937,309],{"class":220},[214,939,940],{"class":216,"line":319},[214,941,316],{"emptyLinePlaceholder":315},[214,943,944,946,948],{"class":216,"line":325},[214,945,393],{"class":238},[214,947,396],{"class":231},[214,949,399],{"class":220},[214,951,952],{"class":216,"line":341},[214,953,405],{"class":220},[193,955],{"title":956,"to":957},"Preparing Response","/guide/basics/response#preparing-response",[959,960,961],"style",{},"html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":210,"searchDepth":258,"depth":258,"links":963},[964,968],{"id":409,"depth":258,"text":965,"children":966},"H3Event Methods",[967],{"id":416,"depth":265,"text":419},{"id":604,"depth":258,"text":969,"children":970},"H3Event Properties",[971,972,973,974],{"id":610,"depth":265,"text":613},{"id":665,"depth":265,"text":668},{"id":848,"depth":265,"text":851},{"id":862,"depth":265,"text":865},"H3Event, carries incoming request, prepared response and context.","md",{"icon":63},{"icon":63},{"title":60,"description":975},"6wYl-Sz1tiDlybLTvPsTgDPu7caTGjtGMVee4wT1M0s",[982,984],{"title":55,"path":56,"stem":57,"description":983,"icon":58,"children":-1},"H3 class is the core of server.",{"title":71,"path":72,"stem":73,"description":985,"icon":74,"children":-1},"H3 plugins allow you to extend an H3 app instance with reusable logic.",1750976024143]