[{"data":1,"prerenderedAt":1020},["ShallowReactive",2],{"navigation_docs":3,"-docs-integration-guides-supabase-edge-functions":114,"-docs-integration-guides-supabase-edge-functions-surround":1015},[4,8,12,16,20,24,28,32,36,40,44,82,86,90,94,98,102,106,110],{"title":5,"path":6,"stem":7},"Overview","\u002Fdocs","docs\u002Findex",{"title":9,"path":10,"stem":11},"Quickstart","\u002Fdocs\u002Fquickstart","docs\u002F01.quickstart",{"title":13,"path":14,"stem":15},"Authentication and keys","\u002Fdocs\u002Fauthentication","docs\u002F02.authentication",{"title":17,"path":18,"stem":19},"Images","\u002Fdocs\u002Fimages","docs\u002F03.images",{"title":21,"path":22,"stem":23},"Texts","\u002Fdocs\u002Ftexts","docs\u002F04.texts",{"title":25,"path":26,"stem":27},"Migrating from SightEngine","\u002Fdocs\u002Fmigrating-from-sightengine","docs\u002F05.migrating-from-sightengine",{"title":29,"path":30,"stem":31},"Workflows","\u002Fdocs\u002Fworkflows","docs\u002F06.workflows",{"title":33,"path":34,"stem":35},"Responses and errors","\u002Fdocs\u002Fresponses-and-errors","docs\u002F07.responses-and-errors",{"title":37,"path":38,"stem":39},"Limits and quotas","\u002Fdocs\u002Flimits-and-quotas","docs\u002F08.limits-and-quotas",{"title":41,"path":42,"stem":43},"The journal and ref","\u002Fdocs\u002Fjournal-and-ref","docs\u002F09.journal-and-ref",{"title":45,"path":46,"stem":47,"children":48,"page":81},"Integration guides","\u002Fdocs\u002Fintegration-guides","docs\u002F10.integration-guides",[49,53,57,61,65,69,73,77],{"title":50,"path":51,"stem":52},"Node.js and TypeScript","\u002Fdocs\u002Fintegration-guides\u002Fnodejs","docs\u002F10.integration-guides\u002F1.nodejs",{"title":54,"path":55,"stem":56},"Python","\u002Fdocs\u002Fintegration-guides\u002Fpython","docs\u002F10.integration-guides\u002F2.python",{"title":58,"path":59,"stem":60},"PHP","\u002Fdocs\u002Fintegration-guides\u002Fphp","docs\u002F10.integration-guides\u002F3.php",{"title":62,"path":63,"stem":64},"Go","\u002Fdocs\u002Fintegration-guides\u002Fgo","docs\u002F10.integration-guides\u002F4.go",{"title":66,"path":67,"stem":68},"Supabase Edge Functions","\u002Fdocs\u002Fintegration-guides\u002Fsupabase-edge-functions","docs\u002F10.integration-guides\u002F5.supabase-edge-functions",{"title":70,"path":71,"stem":72},"Cloudflare Workers","\u002Fdocs\u002Fintegration-guides\u002Fcloudflare-workers","docs\u002F10.integration-guides\u002F6.cloudflare-workers",{"title":74,"path":75,"stem":76},"Nuxt and Next","\u002Fdocs\u002Fintegration-guides\u002Fnuxt-and-next","docs\u002F10.integration-guides\u002F7.nuxt-and-next",{"title":78,"path":79,"stem":80},"Moderate an AI agent","\u002Fdocs\u002Fintegration-guides\u002Fmoderate-ai-agents","docs\u002F10.integration-guides\u002F8.moderate-ai-agents",false,{"title":83,"path":84,"stem":85},"AI coding agents","\u002Fdocs\u002Fai-agents","docs\u002F11.ai-agents",{"title":87,"path":88,"stem":89},"Best practices","\u002Fdocs\u002Fbest-practices","docs\u002F12.best-practices",{"title":91,"path":92,"stem":93},"Privacy and data","\u002Fdocs\u002Fprivacy-and-data","docs\u002F13.privacy-and-data",{"title":95,"path":96,"stem":97},"API reference","\u002Fdocs\u002Fapi-reference","docs\u002F14.api-reference",{"title":99,"path":100,"stem":101},"Fraud prevention","\u002Fdocs\u002Ffraud-prevention","docs\u002F16.fraud-prevention",{"title":103,"path":104,"stem":105},"Device token and challenges","\u002Fdocs\u002Fdevice-and-challenges","docs\u002F17.device-and-challenges",{"title":107,"path":108,"stem":109},"MCP server","\u002Fdocs\u002Fmcp-server","docs\u002F18.mcp-server",{"title":111,"path":112,"stem":113},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F99.changelog",{"id":115,"title":66,"body":116,"description":1009,"extension":1010,"links":1011,"meta":1012,"navigation":204,"path":67,"seo":1013,"stem":68,"__hash__":1014},"docs\u002Fdocs\u002F10.integration-guides\u002F5.supabase-edge-functions.md",{"type":117,"value":118,"toc":1005},"minimark",[119,123,128,157,164,168,917,924,993,1001],[120,121,122],"p",{},"An Edge Function runs on the server, so it is the right place for the key. Call it from your app, and let it call openshield.",[124,125,127],"h2",{"id":126},"set-the-key-as-a-secret","Set the key as a secret",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","supabase secrets set OPENSHIELD_API_KEY=om_live_...\n","bash","",[136,137,138],"code",{"__ignoreMap":134},[139,140,143,147,151,154],"span",{"class":141,"line":142},"line",1,[139,144,146],{"class":145},"sBMFI","supabase",[139,148,150],{"class":149},"sfazB"," secrets",[139,152,153],{"class":149}," set",[139,155,156],{"class":149}," OPENSHIELD_API_KEY=om_live_...\n",[120,158,159,160,163],{},"Read it in the function with ",[136,161,162],{},"Deno.env.get(\"OPENSHIELD_API_KEY\")",". Never put it in the code of your front end.",[124,165,167],{"id":166},"the-function","The function",[129,169,174],{"className":170,"code":171,"filename":172,"language":173,"meta":134,"style":134},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const base = \"https:\u002F\u002Fapi.openshield.dev\"\n\nDeno.serve(async (request) => {\n  const { text, ref } = await request.json()\n\n  let answer: Response\n  try {\n    answer = await fetch(`${base}\u002Fv1\u002Ftext`, {\n      method: \"POST\",\n      headers: {\n        Authorization: `Bearer ${Deno.env.get(\"OPENSHIELD_API_KEY\")}`,\n        \"Content-Type\": \"application\u002Fjson\",\n      },\n      body: JSON.stringify({ text, ref }),\n      signal: AbortSignal.timeout(10_000),\n    })\n  } catch {\n    \u002F\u002F The check could not be made: fail closed, keep the content hidden.\n    return Response.json({ decision: \"hold\" })\n  }\n\n  const body = await answer.json()\n  if (!answer.ok) {\n    const refused = [400, 413, 415].includes(answer.status)\n    return Response.json({ decision: refused ? \"refuse\" : \"hold\", error: body?.error?.type ?? \"unknown\" })\n  }\n\n  const { action, reject_reason } = body.summary\n  return Response.json({\n    decision: action === \"accept\" ? \"publish\" : action === \"review\" ? \"hold\" : \"refuse\",\n    \u002F\u002F Choose your user's message from this id, in your own words.\n    reason: reject_reason[0]?.id ?? null,\n    requestId: body.request_id,\n  })\n})\n","supabase\u002Ffunctions\u002Fmoderate-text\u002Findex.ts","ts",[136,175,176,199,206,241,281,286,301,309,343,362,372,417,439,445,478,504,513,524,531,564,570,575,595,620,666,740,745,750,776,792,852,858,886,903,910],{"__ignoreMap":134},[139,177,178,182,186,190,193,196],{"class":141,"line":142},[139,179,181],{"class":180},"spNyl","const",[139,183,185],{"class":184},"sTEyZ"," base ",[139,187,189],{"class":188},"sMK4o","=",[139,191,192],{"class":188}," \"",[139,194,195],{"class":149},"https:\u002F\u002Fapi.openshield.dev",[139,197,198],{"class":188},"\"\n",[139,200,202],{"class":141,"line":201},2,[139,203,205],{"emptyLinePlaceholder":204},true,"\n",[139,207,209,212,215,219,222,225,228,232,235,238],{"class":141,"line":208},3,[139,210,211],{"class":184},"Deno",[139,213,214],{"class":188},".",[139,216,218],{"class":217},"s2Zo4","serve",[139,220,221],{"class":184},"(",[139,223,224],{"class":180},"async",[139,226,227],{"class":188}," (",[139,229,231],{"class":230},"sHdIc","request",[139,233,234],{"class":188},")",[139,236,237],{"class":180}," =>",[139,239,240],{"class":188}," {\n",[139,242,244,247,250,253,256,259,262,265,269,272,274,277],{"class":141,"line":243},4,[139,245,246],{"class":180},"  const",[139,248,249],{"class":188}," {",[139,251,252],{"class":184}," text",[139,254,255],{"class":188},",",[139,257,258],{"class":184}," ref",[139,260,261],{"class":188}," }",[139,263,264],{"class":188}," =",[139,266,268],{"class":267},"s7zQu"," await",[139,270,271],{"class":184}," request",[139,273,214],{"class":188},[139,275,276],{"class":217},"json",[139,278,280],{"class":279},"swJcz","()\n",[139,282,284],{"class":141,"line":283},5,[139,285,205],{"emptyLinePlaceholder":204},[139,287,289,292,295,298],{"class":141,"line":288},6,[139,290,291],{"class":180},"  let",[139,293,294],{"class":184}," answer",[139,296,297],{"class":188},":",[139,299,300],{"class":145}," Response\n",[139,302,304,307],{"class":141,"line":303},7,[139,305,306],{"class":267},"  try",[139,308,240],{"class":188},[139,310,312,315,317,319,322,324,327,330,333,336,339,341],{"class":141,"line":311},8,[139,313,314],{"class":184},"    answer",[139,316,264],{"class":188},[139,318,268],{"class":267},[139,320,321],{"class":217}," fetch",[139,323,221],{"class":279},[139,325,326],{"class":188},"`${",[139,328,329],{"class":184},"base",[139,331,332],{"class":188},"}",[139,334,335],{"class":149},"\u002Fv1\u002Ftext",[139,337,338],{"class":188},"`",[139,340,255],{"class":188},[139,342,240],{"class":188},[139,344,346,349,351,353,356,359],{"class":141,"line":345},9,[139,347,348],{"class":279},"      method",[139,350,297],{"class":188},[139,352,192],{"class":188},[139,354,355],{"class":149},"POST",[139,357,358],{"class":188},"\"",[139,360,361],{"class":188},",\n",[139,363,365,368,370],{"class":141,"line":364},10,[139,366,367],{"class":279},"      headers",[139,369,297],{"class":188},[139,371,240],{"class":188},[139,373,375,378,380,383,386,389,391,393,396,398,401,403,405,408,410,412,415],{"class":141,"line":374},11,[139,376,377],{"class":279},"        Authorization",[139,379,297],{"class":188},[139,381,382],{"class":188}," `",[139,384,385],{"class":149},"Bearer ",[139,387,388],{"class":188},"${",[139,390,211],{"class":184},[139,392,214],{"class":188},[139,394,395],{"class":184},"env",[139,397,214],{"class":188},[139,399,400],{"class":217},"get",[139,402,221],{"class":184},[139,404,358],{"class":188},[139,406,407],{"class":149},"OPENSHIELD_API_KEY",[139,409,358],{"class":188},[139,411,234],{"class":184},[139,413,414],{"class":188},"}`",[139,416,361],{"class":188},[139,418,420,423,426,428,430,432,435,437],{"class":141,"line":419},12,[139,421,422],{"class":188},"        \"",[139,424,425],{"class":279},"Content-Type",[139,427,358],{"class":188},[139,429,297],{"class":188},[139,431,192],{"class":188},[139,433,434],{"class":149},"application\u002Fjson",[139,436,358],{"class":188},[139,438,361],{"class":188},[139,440,442],{"class":141,"line":441},13,[139,443,444],{"class":188},"      },\n",[139,446,448,451,453,456,458,461,463,466,468,470,472,474,476],{"class":141,"line":447},14,[139,449,450],{"class":279},"      body",[139,452,297],{"class":188},[139,454,455],{"class":184}," JSON",[139,457,214],{"class":188},[139,459,460],{"class":217},"stringify",[139,462,221],{"class":279},[139,464,465],{"class":188},"{",[139,467,252],{"class":184},[139,469,255],{"class":188},[139,471,258],{"class":184},[139,473,261],{"class":188},[139,475,234],{"class":279},[139,477,361],{"class":188},[139,479,481,484,486,489,491,494,496,500,502],{"class":141,"line":480},15,[139,482,483],{"class":279},"      signal",[139,485,297],{"class":188},[139,487,488],{"class":184}," AbortSignal",[139,490,214],{"class":188},[139,492,493],{"class":217},"timeout",[139,495,221],{"class":279},[139,497,499],{"class":498},"sbssI","10_000",[139,501,234],{"class":279},[139,503,361],{"class":188},[139,505,507,510],{"class":141,"line":506},16,[139,508,509],{"class":188},"    }",[139,511,512],{"class":279},")\n",[139,514,516,519,522],{"class":141,"line":515},17,[139,517,518],{"class":188},"  }",[139,520,521],{"class":267}," catch",[139,523,240],{"class":188},[139,525,527],{"class":141,"line":526},18,[139,528,530],{"class":529},"sHwdD","    \u002F\u002F The check could not be made: fail closed, keep the content hidden.\n",[139,532,534,537,540,542,544,546,548,551,553,555,558,560,562],{"class":141,"line":533},19,[139,535,536],{"class":267},"    return",[139,538,539],{"class":184}," Response",[139,541,214],{"class":188},[139,543,276],{"class":217},[139,545,221],{"class":279},[139,547,465],{"class":188},[139,549,550],{"class":279}," decision",[139,552,297],{"class":188},[139,554,192],{"class":188},[139,556,557],{"class":149},"hold",[139,559,358],{"class":188},[139,561,261],{"class":188},[139,563,512],{"class":279},[139,565,567],{"class":141,"line":566},20,[139,568,569],{"class":188},"  }\n",[139,571,573],{"class":141,"line":572},21,[139,574,205],{"emptyLinePlaceholder":204},[139,576,578,580,583,585,587,589,591,593],{"class":141,"line":577},22,[139,579,246],{"class":180},[139,581,582],{"class":184}," body",[139,584,264],{"class":188},[139,586,268],{"class":267},[139,588,294],{"class":184},[139,590,214],{"class":188},[139,592,276],{"class":217},[139,594,280],{"class":279},[139,596,598,601,603,606,609,611,614,617],{"class":141,"line":597},23,[139,599,600],{"class":267},"  if",[139,602,227],{"class":279},[139,604,605],{"class":188},"!",[139,607,608],{"class":184},"answer",[139,610,214],{"class":188},[139,612,613],{"class":184},"ok",[139,615,616],{"class":279},") ",[139,618,619],{"class":188},"{\n",[139,621,623,626,629,631,634,637,639,642,644,647,650,652,655,657,659,661,664],{"class":141,"line":622},24,[139,624,625],{"class":180},"    const",[139,627,628],{"class":184}," refused",[139,630,264],{"class":188},[139,632,633],{"class":279}," [",[139,635,636],{"class":498},"400",[139,638,255],{"class":188},[139,640,641],{"class":498}," 413",[139,643,255],{"class":188},[139,645,646],{"class":498}," 415",[139,648,649],{"class":279},"]",[139,651,214],{"class":188},[139,653,654],{"class":217},"includes",[139,656,221],{"class":279},[139,658,608],{"class":184},[139,660,214],{"class":188},[139,662,663],{"class":184},"status",[139,665,512],{"class":279},[139,667,669,671,673,675,677,679,681,683,685,687,690,692,695,697,700,702,704,706,708,711,713,715,718,721,723,726,729,731,734,736,738],{"class":141,"line":668},25,[139,670,536],{"class":267},[139,672,539],{"class":184},[139,674,214],{"class":188},[139,676,276],{"class":217},[139,678,221],{"class":279},[139,680,465],{"class":188},[139,682,550],{"class":279},[139,684,297],{"class":188},[139,686,628],{"class":184},[139,688,689],{"class":188}," ?",[139,691,192],{"class":188},[139,693,694],{"class":149},"refuse",[139,696,358],{"class":188},[139,698,699],{"class":188}," :",[139,701,192],{"class":188},[139,703,557],{"class":149},[139,705,358],{"class":188},[139,707,255],{"class":188},[139,709,710],{"class":279}," error",[139,712,297],{"class":188},[139,714,582],{"class":184},[139,716,717],{"class":188},"?.",[139,719,720],{"class":184},"error",[139,722,717],{"class":188},[139,724,725],{"class":184},"type",[139,727,728],{"class":188}," ??",[139,730,192],{"class":188},[139,732,733],{"class":149},"unknown",[139,735,358],{"class":188},[139,737,261],{"class":188},[139,739,512],{"class":279},[139,741,743],{"class":141,"line":742},26,[139,744,569],{"class":188},[139,746,748],{"class":141,"line":747},27,[139,749,205],{"emptyLinePlaceholder":204},[139,751,753,755,757,760,762,765,767,769,771,773],{"class":141,"line":752},28,[139,754,246],{"class":180},[139,756,249],{"class":188},[139,758,759],{"class":184}," action",[139,761,255],{"class":188},[139,763,764],{"class":184}," reject_reason",[139,766,261],{"class":188},[139,768,264],{"class":188},[139,770,582],{"class":184},[139,772,214],{"class":188},[139,774,775],{"class":184},"summary\n",[139,777,779,782,784,786,788,790],{"class":141,"line":778},29,[139,780,781],{"class":267},"  return",[139,783,539],{"class":184},[139,785,214],{"class":188},[139,787,276],{"class":217},[139,789,221],{"class":279},[139,791,619],{"class":188},[139,793,795,798,800,802,805,807,810,812,814,816,819,821,823,825,827,829,832,834,836,838,840,842,844,846,848,850],{"class":141,"line":794},30,[139,796,797],{"class":279},"    decision",[139,799,297],{"class":188},[139,801,759],{"class":184},[139,803,804],{"class":188}," ===",[139,806,192],{"class":188},[139,808,809],{"class":149},"accept",[139,811,358],{"class":188},[139,813,689],{"class":188},[139,815,192],{"class":188},[139,817,818],{"class":149},"publish",[139,820,358],{"class":188},[139,822,699],{"class":188},[139,824,759],{"class":184},[139,826,804],{"class":188},[139,828,192],{"class":188},[139,830,831],{"class":149},"review",[139,833,358],{"class":188},[139,835,689],{"class":188},[139,837,192],{"class":188},[139,839,557],{"class":149},[139,841,358],{"class":188},[139,843,699],{"class":188},[139,845,192],{"class":188},[139,847,694],{"class":149},[139,849,358],{"class":188},[139,851,361],{"class":188},[139,853,855],{"class":141,"line":854},31,[139,856,857],{"class":529},"    \u002F\u002F Choose your user's message from this id, in your own words.\n",[139,859,861,864,866,868,871,874,876,878,881,883],{"class":141,"line":860},32,[139,862,863],{"class":279},"    reason",[139,865,297],{"class":188},[139,867,764],{"class":184},[139,869,870],{"class":279},"[",[139,872,873],{"class":498},"0",[139,875,649],{"class":279},[139,877,717],{"class":188},[139,879,880],{"class":184},"id",[139,882,728],{"class":188},[139,884,885],{"class":188}," null,\n",[139,887,889,892,894,896,898,901],{"class":141,"line":888},33,[139,890,891],{"class":279},"    requestId",[139,893,297],{"class":188},[139,895,582],{"class":184},[139,897,214],{"class":188},[139,899,900],{"class":184},"request_id",[139,902,361],{"class":188},[139,904,906,908],{"class":141,"line":905},34,[139,907,518],{"class":188},[139,909,512],{"class":279},[139,911,913,915],{"class":141,"line":912},35,[139,914,332],{"class":188},[139,916,512],{"class":184},[120,918,919,920,923],{},"Deploy it with ",[136,921,922],{},"supabase functions deploy moderate-text",". Your app calls it with the Supabase client:",[129,925,927],{"className":170,"code":926,"language":173,"meta":134,"style":134},"const { data } = await supabase.functions.invoke(\"moderate-text\", { body: { text, ref: commentId } })\n",[136,928,929],{"__ignoreMap":134},[139,930,931,933,935,938,940,942,944,947,949,952,954,957,959,961,964,966,968,970,972,974,976,978,980,982,984,987,989,991],{"class":141,"line":142},[139,932,181],{"class":180},[139,934,249],{"class":188},[139,936,937],{"class":184}," data ",[139,939,332],{"class":188},[139,941,264],{"class":188},[139,943,268],{"class":267},[139,945,946],{"class":184}," supabase",[139,948,214],{"class":188},[139,950,951],{"class":184},"functions",[139,953,214],{"class":188},[139,955,956],{"class":217},"invoke",[139,958,221],{"class":184},[139,960,358],{"class":188},[139,962,963],{"class":149},"moderate-text",[139,965,358],{"class":188},[139,967,255],{"class":188},[139,969,249],{"class":188},[139,971,582],{"class":279},[139,973,297],{"class":188},[139,975,249],{"class":188},[139,977,252],{"class":184},[139,979,255],{"class":188},[139,981,258],{"class":279},[139,983,297],{"class":188},[139,985,986],{"class":184}," commentId ",[139,988,332],{"class":188},[139,990,261],{"class":188},[139,992,512],{"class":184},[994,995,996,997,1000],"note",{},"Your function is the one that calls openshield, from the Supabase servers. The browser calls your function, never openshield: a request to our API with an ",[136,998,999],{},"Origin"," header is refused.",[1002,1003,1004],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":134,"searchDepth":201,"depth":201,"links":1006},[1007,1008],{"id":126,"depth":201,"text":127},{"id":166,"depth":201,"text":167},"Moderate content from a Supabase Edge Function, with the key as a project secret.","md",null,{},{"title":66,"description":1009},"WazercgpxUj2pVnfsvNJQK-kpWdJx7EsY1lRPXOW5wk",[1016,1018],{"title":62,"path":63,"stem":64,"description":1017,"children":-1},"A moderation package for Go with net\u002Fhttp and the standard library only.",{"title":70,"path":71,"stem":72,"description":1019,"children":-1},"Moderate content from a Worker, with the key as a Worker secret.",1792938463560]