[{"data":1,"prerenderedAt":1962},["ShallowReactive",2],{"navigation":3,"-deploy-providers-cloudflare":224,"-deploy-providers-cloudflare-surround":1957},[4,83,208,214,221],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":209,"path":210,"stem":211,"children":212,"icon":36},"Config","/config","3.config/0.index",[213],{"title":209,"path":210,"stem":211,"icon":36},{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Examples","/examples","4.examples/0.index",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-folder-code",{"title":5,"path":222,"stem":223},"/","index",{"id":225,"title":137,"body":226,"description":1951,"extension":1952,"meta":1953,"navigation":1954,"path":138,"seo":1955,"stem":139,"__hash__":1956},"content/2.deploy/20.providers/cloudflare.md",{"type":227,"value":228,"toc":1927},"minimark",[229,234,246,250,269,279,286,402,425,444,449,458,462,466,470,473,476,479,482,485,489,501,504,547,551,558,633,636,645,654,691,695,712,832,835,839,846,849,855,865,870,937,954,957,962,964,967,970,973,975,977,980,984,993,1009,1013,1024,1033,1047,1177,1181,1191,1217,1233,1237,1260,1271,1281,1285,1296,1305,1313,1318,1322,1493,1497,1511,1525,1536,1539,1541,1548,1668,1672,1683,1688,1820,1827,1831,1834,1837,1846,1851,1854,1923],[230,231,233],"h2",{"id":232},"cloudflare-workers","Cloudflare Workers",[235,236,237,241,242],"p",{},[238,239,240],"strong",{},"Preset:"," ",[243,244,245],"code",{},"cloudflare_module",[247,248],"read-more",{"to":249,"title":233},"https://developers.cloudflare.com/workers/",[251,252,253],"note",{},[235,254,255,256,261,262,268],{},"Integration with this provider is possible with ",[257,258,260],"a",{"href":259},"/deploy#zero-config-providers","zero configuration"," supporting ",[257,263,267],{"href":264,"rel":265},"https://developers.cloudflare.com/workers/ci-cd/builds/",[266],"nofollow","workers builds (beta)",".",[270,271,272],"important",{},[235,273,274,275,278],{},"To use Workers with Static Assets, you need a Nitro compatibility date set to ",[243,276,277],{},"2024-09-19"," or later.",[235,280,281,282,285],{},"The following shows an example ",[243,283,284],{},"nitro.config.ts"," file for deploying a Nitro app to Cloudflare Workers.",[287,288,292],"pre",{"className":289,"code":290,"filename":284,"language":291,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n    compatibilityDate: \"2024-09-19\",\n    preset: \"cloudflare_module\",\n    cloudflare: {\n      deployConfig: true,\n      nodeCompat: true\n    }\n})\n","ts",[243,293,294,317,324,340,352,363,369,381,390,396],{"__ignoreMap":5},[295,296,299,303,307,310,314],"span",{"class":297,"line":298},"line",1,[295,300,302],{"class":301},"so5gQ","import",[295,304,306],{"class":305},"slsVL"," { defineNitroConfig } ",[295,308,309],{"class":301},"from",[295,311,313],{"class":312},"sfrk1"," \"nitro/config\"",[295,315,316],{"class":305},";\n",[295,318,320],{"class":297,"line":319},2,[295,321,323],{"emptyLinePlaceholder":322},true,"\n",[295,325,327,330,333,337],{"class":297,"line":326},3,[295,328,329],{"class":301},"export",[295,331,332],{"class":301}," default",[295,334,336],{"class":335},"shcOC"," defineNitroConfig",[295,338,339],{"class":305},"({\n",[295,341,343,346,349],{"class":297,"line":342},4,[295,344,345],{"class":305},"    compatibilityDate: ",[295,347,348],{"class":312},"\"2024-09-19\"",[295,350,351],{"class":305},",\n",[295,353,355,358,361],{"class":297,"line":354},5,[295,356,357],{"class":305},"    preset: ",[295,359,360],{"class":312},"\"cloudflare_module\"",[295,362,351],{"class":305},[295,364,366],{"class":297,"line":365},6,[295,367,368],{"class":305},"    cloudflare: {\n",[295,370,372,375,379],{"class":297,"line":371},7,[295,373,374],{"class":305},"      deployConfig: ",[295,376,378],{"class":377},"suiK_","true",[295,380,351],{"class":305},[295,382,384,387],{"class":297,"line":383},8,[295,385,386],{"class":305},"      nodeCompat: ",[295,388,389],{"class":377},"true\n",[295,391,393],{"class":297,"line":392},9,[295,394,395],{"class":305},"    }\n",[295,397,399],{"class":297,"line":398},10,[295,400,401],{"class":305},"})\n",[235,403,404,405,408,409,412,413,418,419,424],{},"By setting ",[243,406,407],{},"deployConfig: true",", Nitro will automatically generate a ",[243,410,411],{},"wrangler.json"," for you with the correct configuration.\nIf you need to add ",[257,414,417],{"href":415,"rel":416},"https://developers.cloudflare.com/workers/wrangler/configuration/",[266],"Cloudflare Workers configuration",", such as ",[257,420,423],{"href":421,"rel":422},"https://developers.cloudflare.com/workers/runtime-apis/bindings/",[266],"bindings",", you can either:",[426,427,428,438],"ul",{},[429,430,431,432,435,436,268],"li",{},"Set these in your Nitro config under the ",[243,433,434],{},"cloudflare: { wrangler : {} }",". This has the same type as ",[243,437,411],{},[429,439,440,441,443],{},"Provide your own ",[243,442,411],{},". Nitro will merge your config with the appropriate settings, including pointing to the build output.",[445,446,448],"h3",{"id":447},"local-preview","Local Preview",[235,450,451,452,457],{},"You can use ",[257,453,456],{"href":454,"rel":455},"https://github.com/cloudflare/workers-sdk/tree/main/packages/wrangler",[266],"Wrangler"," to preview your app locally:",[459,460],"pm-run",{"script":461},"build",[463,464],"pm-x",{"command":465},"wrangler dev",[445,467,469],{"id":468},"manual-deploy","Manual Deploy",[235,471,472],{},"After having built your application you can manually deploy it with Wrangler.",[235,474,475],{},"First make sure to be logged into your Cloudflare account:",[463,477],{"command":478},"wrangler login",[235,480,481],{},"Then you can deploy the application with:",[463,483],{"command":484},"wrangler deploy",[445,486,488],{"id":487},"runtime-hooks","Runtime Hooks",[235,490,451,491,495,496,268],{},[257,492,494],{"href":493},"/docs/plugins#nitro-runtime-hooks","runtime hooks"," below in order to extend ",[257,497,500],{"href":498,"rel":499},"https://developers.cloudflare.com/workers/runtime-apis/handlers/",[266],"Worker handlers",[247,502],{"to":503},"/guide/plugins#nitro-runtime-hooks",[426,505,506,515,524,533,542],{},[429,507,508],{},[257,509,512],{"href":510,"rel":511},"https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/",[266],[243,513,514],{},"cloudflare:scheduled",[429,516,517],{},[257,518,521],{"href":519,"rel":520},"https://developers.cloudflare.com/email-routing/email-workers/runtime-api/",[266],[243,522,523],{},"cloudflare:email",[429,525,526],{},[257,527,530],{"href":528,"rel":529},"https://developers.cloudflare.com/queues/configuration/javascript-apis/#consumer",[266],[243,531,532],{},"cloudflare:queue",[429,534,535],{},[257,536,539],{"href":537,"rel":538},"https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/",[266],[243,540,541],{},"cloudflare:tail",[429,543,544],{},[243,545,546],{},"cloudflare:trace",[445,548,550],{"id":549},"additional-exports","Additional Exports",[235,552,553,554,557],{},"You can add a ",[243,555,556],{},"exports.cloudflare.ts"," file to your project root to export additional handlers or properties to the Cloudflare Worker entrypoint.",[287,559,561],{"className":289,"code":560,"filename":556,"language":291,"meta":5,"style":5},"export class MyWorkflow extends WorkflowEntrypoint {\n  async run(event: WorkflowEvent, step: WorkflowStep) {\n    // ...\n  }\n}\n",[243,562,563,582,617,623,628],{"__ignoreMap":5},[295,564,565,567,570,573,576,579],{"class":297,"line":298},[295,566,329],{"class":301},[295,568,569],{"class":301}," class",[295,571,572],{"class":335}," MyWorkflow",[295,574,575],{"class":301}," extends",[295,577,578],{"class":335}," WorkflowEntrypoint",[295,580,581],{"class":305}," {\n",[295,583,584,587,590,593,597,600,603,606,609,611,614],{"class":297,"line":319},[295,585,586],{"class":301},"  async",[295,588,589],{"class":335}," run",[295,591,592],{"class":305},"(",[295,594,596],{"class":595},"sQHwn","event",[295,598,599],{"class":301},":",[295,601,602],{"class":335}," WorkflowEvent",[295,604,605],{"class":305},", ",[295,607,608],{"class":595},"step",[295,610,599],{"class":301},[295,612,613],{"class":335}," WorkflowStep",[295,615,616],{"class":305},") {\n",[295,618,619],{"class":297,"line":326},[295,620,622],{"class":621},"sCsY4","    // ...\n",[295,624,625],{"class":297,"line":342},[295,626,627],{"class":305},"  }\n",[295,629,630],{"class":297,"line":354},[295,631,632],{"class":305},"}\n",[235,634,635],{},"Nitro will automatically detect this file and include its exports in the final build.",[637,638,639],"warning",{},[235,640,641,642,644],{},"The ",[243,643,556],{}," file must not have a default export.",[235,646,647,648,651,652,599],{},"You can also customize the entrypoint file location using the ",[243,649,650],{},"cloudflare.exports"," option in your ",[243,653,284],{},[287,655,657],{"className":289,"code":656,"filename":284,"language":291,"meta":5,"style":5},"export default defineConfig({\n  cloudflare: {\n    exports: \"custom-exports-entry.ts\"\n  }\n})\n",[243,658,659,670,675,683,687],{"__ignoreMap":5},[295,660,661,663,665,668],{"class":297,"line":298},[295,662,329],{"class":301},[295,664,332],{"class":301},[295,666,667],{"class":335}," defineConfig",[295,669,339],{"class":305},[295,671,672],{"class":297,"line":319},[295,673,674],{"class":305},"  cloudflare: {\n",[295,676,677,680],{"class":297,"line":326},[295,678,679],{"class":305},"    exports: ",[295,681,682],{"class":312},"\"custom-exports-entry.ts\"\n",[295,684,685],{"class":297,"line":342},[295,686,627],{"class":305},[295,688,689],{"class":297,"line":354},[295,690,401],{"class":305},[445,692,694],{"id":693},"scheduled-tasks-cron-triggers","Scheduled Tasks (Cron Triggers)",[235,696,697,698,701,702,705,706,711],{},"When using ",[257,699,700],{"href":54},"Nitro tasks"," with ",[243,703,704],{},"scheduledTasks",", Nitro automatically generates ",[257,707,710],{"href":708,"rel":709},"https://developers.cloudflare.com/workers/configuration/cron-triggers/",[266],"Cron Triggers"," in the wrangler config at build time.",[287,713,715],{"className":289,"code":714,"filename":284,"language":291,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  preset: \"cloudflare_module\",\n  experimental: {\n    tasks: true,\n  },\n  scheduledTasks: {\n    \"* * * * *\": [\"cms:update\"],\n    \"0 15 1 * *\": [\"db:cleanup\"],\n  },\n  cloudflare: {\n    deployConfig: true,\n  },\n})\n",[243,716,717,729,733,743,752,757,766,771,776,790,802,807,812,822,827],{"__ignoreMap":5},[295,718,719,721,723,725,727],{"class":297,"line":298},[295,720,302],{"class":301},[295,722,306],{"class":305},[295,724,309],{"class":301},[295,726,313],{"class":312},[295,728,316],{"class":305},[295,730,731],{"class":297,"line":319},[295,732,323],{"emptyLinePlaceholder":322},[295,734,735,737,739,741],{"class":297,"line":326},[295,736,329],{"class":301},[295,738,332],{"class":301},[295,740,336],{"class":335},[295,742,339],{"class":305},[295,744,745,748,750],{"class":297,"line":342},[295,746,747],{"class":305},"  preset: ",[295,749,360],{"class":312},[295,751,351],{"class":305},[295,753,754],{"class":297,"line":354},[295,755,756],{"class":305},"  experimental: {\n",[295,758,759,762,764],{"class":297,"line":365},[295,760,761],{"class":305},"    tasks: ",[295,763,378],{"class":377},[295,765,351],{"class":305},[295,767,768],{"class":297,"line":371},[295,769,770],{"class":305},"  },\n",[295,772,773],{"class":297,"line":383},[295,774,775],{"class":305},"  scheduledTasks: {\n",[295,777,778,781,784,787],{"class":297,"line":392},[295,779,780],{"class":312},"    \"* * * * *\"",[295,782,783],{"class":305},": [",[295,785,786],{"class":312},"\"cms:update\"",[295,788,789],{"class":305},"],\n",[295,791,792,795,797,800],{"class":297,"line":398},[295,793,794],{"class":312},"    \"0 15 1 * *\"",[295,796,783],{"class":305},[295,798,799],{"class":312},"\"db:cleanup\"",[295,801,789],{"class":305},[295,803,805],{"class":297,"line":804},11,[295,806,770],{"class":305},[295,808,810],{"class":297,"line":809},12,[295,811,674],{"class":305},[295,813,815,818,820],{"class":297,"line":814},13,[295,816,817],{"class":305},"    deployConfig: ",[295,819,378],{"class":377},[295,821,351],{"class":305},[295,823,825],{"class":297,"line":824},14,[295,826,770],{"class":305},[295,828,830],{"class":297,"line":829},15,[295,831,401],{"class":305},[235,833,834],{},"No manual Wrangler configuration is needed - Nitro handles it for you.",[230,836,838],{"id":837},"cloudflare-pages","Cloudflare Pages",[235,840,841,241,843],{},[238,842,240],{},[243,844,845],{},"cloudflare_pages",[247,847],{"to":848,"title":838},"https://pages.cloudflare.com/",[251,850,851],{},[235,852,255,853,268],{},[257,854,260],{"href":259},[637,856,857],{},[235,858,859,860,864],{},"Cloudflare ",[257,861,863],{"href":862},"#cloudflare-workers","Workers Module"," is the new recommended preset for deployments. Please consider using the pages only if you need specific features.",[235,866,281,867,869],{},[243,868,284],{}," file for deploying a Nitro app to Cloudflare Pages.",[287,871,873],{"className":289,"code":872,"filename":284,"language":291,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n    preset: \"cloudflare_pages\",\n    cloudflare: {\n      deployConfig: true,\n      nodeCompat:true\n    }\n})\n",[243,874,875,887,891,901,910,914,922,929,933],{"__ignoreMap":5},[295,876,877,879,881,883,885],{"class":297,"line":298},[295,878,302],{"class":301},[295,880,306],{"class":305},[295,882,309],{"class":301},[295,884,313],{"class":312},[295,886,316],{"class":305},[295,888,889],{"class":297,"line":319},[295,890,323],{"emptyLinePlaceholder":322},[295,892,893,895,897,899],{"class":297,"line":326},[295,894,329],{"class":301},[295,896,332],{"class":301},[295,898,336],{"class":335},[295,900,339],{"class":305},[295,902,903,905,908],{"class":297,"line":342},[295,904,357],{"class":305},[295,906,907],{"class":312},"\"cloudflare_pages\"",[295,909,351],{"class":305},[295,911,912],{"class":297,"line":354},[295,913,368],{"class":305},[295,915,916,918,920],{"class":297,"line":365},[295,917,374],{"class":305},[295,919,378],{"class":377},[295,921,351],{"class":305},[295,923,924,927],{"class":297,"line":371},[295,925,926],{"class":305},"      nodeCompat:",[295,928,389],{"class":377},[295,930,931],{"class":297,"line":383},[295,932,395],{"class":305},[295,934,935],{"class":297,"line":392},[295,936,401],{"class":305},[235,938,939,940,943,944,947,948,953],{},"Nitro automatically generates a ",[243,941,942],{},"_routes.json"," file that controls which routes get served from files and which are served from the Worker script. The auto-generated routes file can be overridden with the config option ",[243,945,946],{},"cloudflare.pages.routes"," (",[257,949,952],{"href":950,"rel":951},"https://developers.cloudflare.com/pages/platform/functions/routing/#functions-invocation-routes",[266],"read more",").",[445,955,448],{"id":956},"local-preview-1",[235,958,451,959,457],{},[257,960,456],{"href":454,"rel":961},[266],[459,963],{"script":461},[463,965],{"command":966},"wrangler pages dev",[445,968,469],{"id":969},"manual-deploy-1",[235,971,972],{},"After having built your application you can manually deploy it with Wrangler, in order to do so first make sure to be\nlogged into your Cloudflare account:",[463,974],{"command":478},[235,976,481],{},[463,978],{"command":979},"wrangler pages deploy",[230,981,983],{"id":982},"deploy-within-cicd-using-github-actions","Deploy within CI/CD using GitHub Actions",[235,985,986,987,992],{},"Regardless on whether you're using Cloudflare Pages or Cloudflare Workers, you can use the ",[257,988,991],{"href":989,"rel":990},"https://github.com/marketplace/actions/deploy-to-cloudflare-workers-with-wrangler",[266],"Wrangler GitHub actions"," to deploy your application.",[251,994,995],{},[235,996,997,1000,1001,1005,1006,1008],{},[238,998,999],{},"Note:"," Remember to ",[257,1002,1004],{"href":1003},"/deploy#changing-the-deployment-preset","instruct Nitro to use the correct preset"," (note that this is necessary for all presets including the ",[243,1007,845],{}," one).",[230,1010,1012],{"id":1011},"environment-variables","Environment Variables",[235,1014,1015,1016,1019,1020,1023],{},"Nitro allows you to universally access environment variables using ",[243,1017,1018],{},"process.env"," or ",[243,1021,1022],{},"import.meta.env"," or the runtime config.",[251,1025,1026],{},[235,1027,1028,1029,1032],{},"Make sure to only access environment variables ",[238,1030,1031],{},"within the event lifecycle","  and not in global contexts since Cloudflare only makes them available during the request lifecycle and not before.",[235,1034,1035,1038,1039,1042,1043,1046],{},[238,1036,1037],{},"Example:"," If you have set the ",[243,1040,1041],{},"SECRET"," and ",[243,1044,1045],{},"NITRO_HELLO_THERE"," environment variables set you can access them in the following way:",[287,1048,1050],{"className":289,"code":1049,"language":291,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\nimport { useRuntimeConfig } from \"nitro/runtime-config\";\n\nconsole.log(process.env.SECRET) // note that this is in the global scope! so it doesn't actually work and the variable is undefined!\n\nexport default defineHandler((event) => {\n  // note that all the below are valid ways of accessing the above mentioned variables\n  useRuntimeConfig().helloThere\n  useRuntimeConfig().secret\n  process.env.NITRO_HELLO_THERE\n  import.meta.env.SECRET\n});\n",[243,1051,1052,1066,1080,1084,1103,1107,1128,1133,1141,1148,1156,1172],{"__ignoreMap":5},[295,1053,1054,1056,1059,1061,1064],{"class":297,"line":298},[295,1055,302],{"class":301},[295,1057,1058],{"class":305}," { defineHandler } ",[295,1060,309],{"class":301},[295,1062,1063],{"class":312}," \"nitro/h3\"",[295,1065,316],{"class":305},[295,1067,1068,1070,1073,1075,1078],{"class":297,"line":319},[295,1069,302],{"class":301},[295,1071,1072],{"class":305}," { useRuntimeConfig } ",[295,1074,309],{"class":301},[295,1076,1077],{"class":312}," \"nitro/runtime-config\"",[295,1079,316],{"class":305},[295,1081,1082],{"class":297,"line":326},[295,1083,323],{"emptyLinePlaceholder":322},[295,1085,1086,1089,1092,1095,1097,1100],{"class":297,"line":342},[295,1087,1088],{"class":305},"console.",[295,1090,1091],{"class":335},"log",[295,1093,1094],{"class":305},"(process.env.",[295,1096,1041],{"class":377},[295,1098,1099],{"class":305},") ",[295,1101,1102],{"class":621},"// note that this is in the global scope! so it doesn't actually work and the variable is undefined!\n",[295,1104,1105],{"class":297,"line":354},[295,1106,323],{"emptyLinePlaceholder":322},[295,1108,1109,1111,1113,1116,1119,1121,1123,1126],{"class":297,"line":365},[295,1110,329],{"class":301},[295,1112,332],{"class":301},[295,1114,1115],{"class":335}," defineHandler",[295,1117,1118],{"class":305},"((",[295,1120,596],{"class":595},[295,1122,1099],{"class":305},[295,1124,1125],{"class":301},"=>",[295,1127,581],{"class":305},[295,1129,1130],{"class":297,"line":371},[295,1131,1132],{"class":621},"  // note that all the below are valid ways of accessing the above mentioned variables\n",[295,1134,1135,1138],{"class":297,"line":383},[295,1136,1137],{"class":335},"  useRuntimeConfig",[295,1139,1140],{"class":305},"().helloThere\n",[295,1142,1143,1145],{"class":297,"line":392},[295,1144,1137],{"class":335},[295,1146,1147],{"class":305},"().secret\n",[295,1149,1150,1153],{"class":297,"line":398},[295,1151,1152],{"class":305},"  process.env.",[295,1154,1155],{"class":377},"NITRO_HELLO_THERE\n",[295,1157,1158,1161,1163,1166,1169],{"class":297,"line":804},[295,1159,1160],{"class":301},"  import",[295,1162,268],{"class":305},[295,1164,1165],{"class":377},"meta",[295,1167,1168],{"class":305},".env.",[295,1170,1171],{"class":377},"SECRET\n",[295,1173,1174],{"class":297,"line":809},[295,1175,1176],{"class":305},"});\n",[445,1178,1180],{"id":1179},"specify-variables-in-development-mode","Specify Variables in Development Mode",[235,1182,1183,1184,1019,1187,1190],{},"For development, you can use a ",[243,1185,1186],{},".env",[243,1188,1189],{},".env.local"," file to specify environment variables:",[287,1192,1196],{"className":1193,"code":1194,"language":1195,"meta":5,"style":5},"language-ini shiki shiki-themes github-light github-dark github-dark","NITRO_HELLO_THERE=\"captain\"\nSECRET=\"top-secret\"\n","ini",[243,1197,1198,1208],{"__ignoreMap":5},[295,1199,1200,1202,1205],{"class":297,"line":298},[295,1201,1045],{"class":301},[295,1203,1204],{"class":305},"=",[295,1206,1207],{"class":312},"\"captain\"\n",[295,1209,1210,1212,1214],{"class":297,"line":319},[295,1211,1041],{"class":301},[295,1213,1204],{"class":305},[295,1215,1216],{"class":312},"\"top-secret\"\n",[251,1218,1219],{},[235,1220,1221,1223,1224,1042,1226,1228,1229,1232],{},[238,1222,999],{}," Make sure you add ",[243,1225,1186],{},[243,1227,1189],{}," to the ",[243,1230,1231],{},".gitignore"," file so that you don't commit it as it can contain sensitive information.",[445,1234,1236],{"id":1235},"specify-variables-for-local-previews","Specify Variables for local previews",[235,1238,1239,1240,1019,1242,1244,1245,1248,1249,1042,1254,1259],{},"After build, when you try out your project locally with ",[243,1241,465],{},[243,1243,966],{},", in order to have access to environment variables you will need to specify the in a ",[243,1246,1247],{},".dev.vars"," file in the root of your project (as presented in the ",[257,1250,1253],{"href":1251,"rel":1252},"https://developers.cloudflare.com/pages/functions/bindings/#interact-with-your-environment-variables-locally",[266],"Pages",[257,1255,1258],{"href":1256,"rel":1257},"https://developers.cloudflare.com/workers/configuration/environment-variables/#interact-with-environment-variables-locally",[266],"Workers"," documentation).",[235,1261,1262,1263,1019,1265,1267,1268,1270],{},"If you are using a ",[243,1264,1186],{},[243,1266,1189],{}," file while developing, your ",[243,1269,1247],{}," should be identical to it.",[251,1272,1273],{},[235,1274,1275,1223,1277,1228,1279,1232],{},[238,1276,999],{},[243,1278,1247],{},[243,1280,1231],{},[445,1282,1284],{"id":1283},"specify-variables-for-production","Specify Variables for Production",[235,1286,1287,1288,1295],{},"For production, use the Cloudflare dashboard or the ",[257,1289,1292],{"href":1290,"rel":1291},"https://developers.cloudflare.com/workers/wrangler/commands/#secret",[266],[243,1293,1294],{},"wrangler secret"," command to set environment variables and secrets.",[445,1297,1299,1300,222,1303],{"id":1298},"specify-variables-using-wranglertomlwranglerjson","Specify Variables using ",[243,1301,1302],{},"wrangler.toml",[243,1304,411],{},[235,1306,1307,1308,222,1310,1312],{},"You can specify a custom ",[243,1309,1302],{},[243,1311,411],{}," file and define vars inside.",[637,1314,1315],{},[235,1316,1317],{},"Note that this isn't recommend for sensitive data like secrets.",[235,1319,1320],{},[238,1321,1037],{},[1323,1324,1325,1388],"code-group",{},[287,1326,1328],{"className":1193,"code":1327,"filename":1302,"language":1195,"meta":5,"style":5},"# Shared\n[vars]\nNITRO_HELLO_THERE=\"general\"\nSECRET=\"secret\"\n\n# Override values for `--env production` usage\n[env.production.vars]\nNITRO_HELLO_THERE=\"captain\"\nSECRET=\"top-secret\"\n",[243,1329,1330,1335,1340,1349,1358,1362,1367,1372,1380],{"__ignoreMap":5},[295,1331,1332],{"class":297,"line":298},[295,1333,1334],{"class":621},"# Shared\n",[295,1336,1337],{"class":297,"line":319},[295,1338,1339],{"class":335},"[vars]\n",[295,1341,1342,1344,1346],{"class":297,"line":326},[295,1343,1045],{"class":301},[295,1345,1204],{"class":305},[295,1347,1348],{"class":312},"\"general\"\n",[295,1350,1351,1353,1355],{"class":297,"line":342},[295,1352,1041],{"class":301},[295,1354,1204],{"class":305},[295,1356,1357],{"class":312},"\"secret\"\n",[295,1359,1360],{"class":297,"line":354},[295,1361,323],{"emptyLinePlaceholder":322},[295,1363,1364],{"class":297,"line":365},[295,1365,1366],{"class":621},"# Override values for `--env production` usage\n",[295,1368,1369],{"class":297,"line":371},[295,1370,1371],{"class":335},"[env.production.vars]\n",[295,1373,1374,1376,1378],{"class":297,"line":383},[295,1375,1045],{"class":301},[295,1377,1204],{"class":305},[295,1379,1207],{"class":312},[295,1381,1382,1384,1386],{"class":297,"line":392},[295,1383,1041],{"class":301},[295,1385,1204],{"class":305},[295,1387,1216],{"class":312},[287,1389,1393],{"className":1390,"code":1391,"filename":411,"language":1392,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"vars\": {\n    \"NITRO_HELLO_THERE\": \"general\",\n    \"SECRET\": \"secret\"\n  },\n  \"env\": {\n    \"production\": {\n      \"vars\": {\n        \"NITRO_HELLO_THERE\": \"captain\",\n        \"SECRET\": \"top-secret\"\n      }\n    }\n  }\n}\n\n","json",[243,1394,1395,1400,1408,1421,1430,1434,1441,1448,1455,1467,1476,1481,1485,1489],{"__ignoreMap":5},[295,1396,1397],{"class":297,"line":298},[295,1398,1399],{"class":305},"{\n",[295,1401,1402,1405],{"class":297,"line":319},[295,1403,1404],{"class":377},"  \"vars\"",[295,1406,1407],{"class":305},": {\n",[295,1409,1410,1413,1416,1419],{"class":297,"line":326},[295,1411,1412],{"class":377},"    \"NITRO_HELLO_THERE\"",[295,1414,1415],{"class":305},": ",[295,1417,1418],{"class":312},"\"general\"",[295,1420,351],{"class":305},[295,1422,1423,1426,1428],{"class":297,"line":342},[295,1424,1425],{"class":377},"    \"SECRET\"",[295,1427,1415],{"class":305},[295,1429,1357],{"class":312},[295,1431,1432],{"class":297,"line":354},[295,1433,770],{"class":305},[295,1435,1436,1439],{"class":297,"line":365},[295,1437,1438],{"class":377},"  \"env\"",[295,1440,1407],{"class":305},[295,1442,1443,1446],{"class":297,"line":371},[295,1444,1445],{"class":377},"    \"production\"",[295,1447,1407],{"class":305},[295,1449,1450,1453],{"class":297,"line":383},[295,1451,1452],{"class":377},"      \"vars\"",[295,1454,1407],{"class":305},[295,1456,1457,1460,1462,1465],{"class":297,"line":392},[295,1458,1459],{"class":377},"        \"NITRO_HELLO_THERE\"",[295,1461,1415],{"class":305},[295,1463,1464],{"class":312},"\"captain\"",[295,1466,351],{"class":305},[295,1468,1469,1472,1474],{"class":297,"line":398},[295,1470,1471],{"class":377},"        \"SECRET\"",[295,1473,1415],{"class":305},[295,1475,1216],{"class":312},[295,1477,1478],{"class":297,"line":804},[295,1479,1480],{"class":305},"      }\n",[295,1482,1483],{"class":297,"line":809},[295,1484,395],{"class":305},[295,1486,1487],{"class":297,"line":814},[295,1488,627],{"class":305},[295,1490,1491],{"class":297,"line":824},[295,1492,632],{"class":305},[230,1494,1496],{"id":1495},"direct-access-to-cloudflare-bindings","Direct access to Cloudflare bindings",[235,1498,1499,1500,1505,1506,953],{},"Bindings are what allows you to interact with resources from the Cloudflare platform, examples of such resources are key-value data storages (",[257,1501,1504],{"href":1502,"rel":1503},"https://developers.cloudflare.com/kv/",[266],"KVs",") and serverless SQL databases (",[257,1507,1510],{"href":1508,"rel":1509},"https://developers.cloudflare.com/d1/",[266],"D1s",[247,1512,1513],{},[235,1514,1515,1516,1042,1520,1524],{},"For more details on Bindings and how to use them please refer to the Cloudflare ",[257,1517,1253],{"href":1518,"rel":1519},"https://developers.cloudflare.com/pages/functions/bindings/",[266],[257,1521,1258],{"href":1522,"rel":1523},"https://developers.cloudflare.com/workers/configuration/bindings/#bindings",[266]," documentation.",[1526,1527,1528],"tip",{},[235,1529,1530,1531,1042,1533,1535],{},"\nNitro provides high level API to interact with primitives such as ",[257,1532,68],{"href":69},[257,1534,38],{"href":39}," and you are highly recommended to prefer using them instead of directly depending on low-level APIs for usage stability.",[247,1537],{"to":39,"title":1538},"Database Layer",[247,1540],{"to":69,"title":68},[235,1542,1543,1544,1547],{},"In runtime, you can access bindings from the request event, by accessing its ",[243,1545,1546],{},"context.cloudflare.env"," field, this is for example how you can access a D1 bindings:",[287,1549,1551],{"className":289,"code":1550,"language":291,"meta":5,"style":5},"import { defineHandler } from \"nitro/h3\";\n\ndefineHandler(async (event) => {\n  const { cloudflare } = event.context\n  const stmt = await cloudflare.env.MY_D1.prepare('SELECT id FROM table')\n  const { results } = await stmt.all()\n})\n",[243,1552,1553,1565,1569,1589,1608,1640,1664],{"__ignoreMap":5},[295,1554,1555,1557,1559,1561,1563],{"class":297,"line":298},[295,1556,302],{"class":301},[295,1558,1058],{"class":305},[295,1560,309],{"class":301},[295,1562,1063],{"class":312},[295,1564,316],{"class":305},[295,1566,1567],{"class":297,"line":319},[295,1568,323],{"emptyLinePlaceholder":322},[295,1570,1571,1574,1576,1579,1581,1583,1585,1587],{"class":297,"line":326},[295,1572,1573],{"class":335},"defineHandler",[295,1575,592],{"class":305},[295,1577,1578],{"class":301},"async",[295,1580,947],{"class":305},[295,1582,596],{"class":595},[295,1584,1099],{"class":305},[295,1586,1125],{"class":301},[295,1588,581],{"class":305},[295,1590,1591,1594,1597,1600,1603,1605],{"class":297,"line":342},[295,1592,1593],{"class":301},"  const",[295,1595,1596],{"class":305}," { ",[295,1598,1599],{"class":377},"cloudflare",[295,1601,1602],{"class":305}," } ",[295,1604,1204],{"class":301},[295,1606,1607],{"class":305}," event.context\n",[295,1609,1610,1612,1615,1618,1621,1624,1627,1629,1632,1634,1637],{"class":297,"line":354},[295,1611,1593],{"class":301},[295,1613,1614],{"class":377}," stmt",[295,1616,1617],{"class":301}," =",[295,1619,1620],{"class":301}," await",[295,1622,1623],{"class":305}," cloudflare.env.",[295,1625,1626],{"class":377},"MY_D1",[295,1628,268],{"class":305},[295,1630,1631],{"class":335},"prepare",[295,1633,592],{"class":305},[295,1635,1636],{"class":312},"'SELECT id FROM table'",[295,1638,1639],{"class":305},")\n",[295,1641,1642,1644,1646,1649,1651,1653,1655,1658,1661],{"class":297,"line":365},[295,1643,1593],{"class":301},[295,1645,1596],{"class":305},[295,1647,1648],{"class":377},"results",[295,1650,1602],{"class":305},[295,1652,1204],{"class":301},[295,1654,1620],{"class":301},[295,1656,1657],{"class":305}," stmt.",[295,1659,1660],{"class":335},"all",[295,1662,1663],{"class":305},"()\n",[295,1665,1666],{"class":297,"line":371},[295,1667,401],{"class":305},[445,1669,1671],{"id":1670},"access-to-the-bindings-in-local-dev","Access to the bindings in local dev",[235,1673,1674,1675,222,1678,222,1680,1682],{},"To access bindings in dev mode, we first define them. You can do this in a ",[243,1676,1677],{},"wrangler.jsonc",[243,1679,411],{},[243,1681,1302],{}," file",[235,1684,1685,1686,599],{},"For example, to define a variable and a KV namespace in ",[243,1687,1302],{},[1323,1689,1690,1742],{},[287,1691,1693],{"className":1193,"code":1692,"filename":1302,"language":1195,"meta":5,"style":5},"[vars]\nMY_VARIABLE=\"my-value\"\n\n[[kv_namespaces]]\nbinding = \"MY_KV\"\nid = \"xxx\"\n",[243,1694,1695,1699,1709,1713,1721,1732],{"__ignoreMap":5},[295,1696,1697],{"class":297,"line":298},[295,1698,1339],{"class":335},[295,1700,1701,1704,1706],{"class":297,"line":319},[295,1702,1703],{"class":301},"MY_VARIABLE",[295,1705,1204],{"class":305},[295,1707,1708],{"class":312},"\"my-value\"\n",[295,1710,1711],{"class":297,"line":326},[295,1712,323],{"emptyLinePlaceholder":322},[295,1714,1715,1718],{"class":297,"line":342},[295,1716,1717],{"class":335},"[[kv_namespaces]",[295,1719,1720],{"class":305},"]\n",[295,1722,1723,1726,1729],{"class":297,"line":354},[295,1724,1725],{"class":301},"binding",[295,1727,1728],{"class":305}," = ",[295,1730,1731],{"class":312},"\"MY_KV\"\n",[295,1733,1734,1737,1739],{"class":297,"line":365},[295,1735,1736],{"class":301},"id",[295,1738,1728],{"class":305},[295,1740,1741],{"class":312},"\"xxx\"\n",[287,1743,1745],{"className":1390,"code":1744,"filename":411,"language":1392,"meta":5,"style":5},"{\n  \"vars\": {\n    \"MY_VARIABLE\": \"my-value\",\n  },\n  \"kv_namespaces\": [\n    {\n      \"binding\": \"MY_KV\",\n      \"id\": \"xxx\"\n    }\n  ]\n}\n",[243,1746,1747,1751,1757,1769,1773,1781,1786,1798,1807,1811,1816],{"__ignoreMap":5},[295,1748,1749],{"class":297,"line":298},[295,1750,1399],{"class":305},[295,1752,1753,1755],{"class":297,"line":319},[295,1754,1404],{"class":377},[295,1756,1407],{"class":305},[295,1758,1759,1762,1764,1767],{"class":297,"line":326},[295,1760,1761],{"class":377},"    \"MY_VARIABLE\"",[295,1763,1415],{"class":305},[295,1765,1766],{"class":312},"\"my-value\"",[295,1768,351],{"class":305},[295,1770,1771],{"class":297,"line":342},[295,1772,770],{"class":305},[295,1774,1775,1778],{"class":297,"line":354},[295,1776,1777],{"class":377},"  \"kv_namespaces\"",[295,1779,1780],{"class":305},": [\n",[295,1782,1783],{"class":297,"line":365},[295,1784,1785],{"class":305},"    {\n",[295,1787,1788,1791,1793,1796],{"class":297,"line":371},[295,1789,1790],{"class":377},"      \"binding\"",[295,1792,1415],{"class":305},[295,1794,1795],{"class":312},"\"MY_KV\"",[295,1797,351],{"class":305},[295,1799,1800,1803,1805],{"class":297,"line":383},[295,1801,1802],{"class":377},"      \"id\"",[295,1804,1415],{"class":305},[295,1806,1741],{"class":312},[295,1808,1809],{"class":297,"line":392},[295,1810,395],{"class":305},[295,1812,1813],{"class":297,"line":398},[295,1814,1815],{"class":305},"  ]\n",[295,1817,1818],{"class":297,"line":804},[295,1819,632],{"class":305},[235,1821,1822,1823,1826],{},"Next we install the required ",[243,1824,1825],{},"wrangler"," package (if not already installed):",[1828,1829],"pm-install",{"name":1830},"wrangler -D",[235,1832,1833],{},"From this moment, when running",[459,1835],{"script":1836},"dev",[235,1838,1839,1840,1042,1842,1845],{},"you will be able to access the ",[243,1841,1703],{},[243,1843,1844],{},"MY_KV"," from the request event just as illustrated above.",[1847,1848,1850],"h4",{"id":1849},"wrangler-environments","Wrangler environments",[235,1852,1853],{},"If you have multiple Wrangler environments, you can specify which Wrangler environment to use during Cloudflare dev emulation:",[287,1855,1857],{"className":289,"code":1856,"filename":284,"language":291,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  preset: 'cloudflare-module',\n  cloudflare: {\n    dev: {\n      environment: 'preview'\n    }\n  }\n})\n",[243,1858,1859,1871,1875,1885,1894,1898,1903,1911,1915,1919],{"__ignoreMap":5},[295,1860,1861,1863,1865,1867,1869],{"class":297,"line":298},[295,1862,302],{"class":301},[295,1864,306],{"class":305},[295,1866,309],{"class":301},[295,1868,313],{"class":312},[295,1870,316],{"class":305},[295,1872,1873],{"class":297,"line":319},[295,1874,323],{"emptyLinePlaceholder":322},[295,1876,1877,1879,1881,1883],{"class":297,"line":326},[295,1878,329],{"class":301},[295,1880,332],{"class":301},[295,1882,336],{"class":335},[295,1884,339],{"class":305},[295,1886,1887,1889,1892],{"class":297,"line":342},[295,1888,747],{"class":305},[295,1890,1891],{"class":312},"'cloudflare-module'",[295,1893,351],{"class":305},[295,1895,1896],{"class":297,"line":354},[295,1897,674],{"class":305},[295,1899,1900],{"class":297,"line":365},[295,1901,1902],{"class":305},"    dev: {\n",[295,1904,1905,1908],{"class":297,"line":371},[295,1906,1907],{"class":305},"      environment: ",[295,1909,1910],{"class":312},"'preview'\n",[295,1912,1913],{"class":297,"line":383},[295,1914,395],{"class":305},[295,1916,1917],{"class":297,"line":392},[295,1918,627],{"class":305},[295,1920,1921],{"class":297,"line":398},[295,1922,401],{"class":305},[1924,1925,1926],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}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);}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}",{"title":5,"searchDepth":319,"depth":319,"links":1928},[1929,1936,1940,1941,1948],{"id":232,"depth":319,"text":233,"children":1930},[1931,1932,1933,1934,1935],{"id":447,"depth":326,"text":448},{"id":468,"depth":326,"text":469},{"id":487,"depth":326,"text":488},{"id":549,"depth":326,"text":550},{"id":693,"depth":326,"text":694},{"id":837,"depth":319,"text":838,"children":1937},[1938,1939],{"id":956,"depth":326,"text":448},{"id":969,"depth":326,"text":469},{"id":982,"depth":319,"text":983},{"id":1011,"depth":319,"text":1012,"children":1942},[1943,1944,1945,1946],{"id":1179,"depth":326,"text":1180},{"id":1235,"depth":326,"text":1236},{"id":1283,"depth":326,"text":1284},{"id":1298,"depth":326,"text":1947},"Specify Variables using wrangler.toml/wrangler.json",{"id":1495,"depth":319,"text":1496,"children":1949},[1950],{"id":1670,"depth":326,"text":1671},"Deploy Nitro apps to Cloudflare.","md",{},{},{"title":137,"description":1951},"ne9ZYh7SWPD72pKaybAO5jhBQ0Me8APs5PzgI-j42PE",[1958,1960],{"title":133,"path":134,"stem":135,"description":1959,"children":-1},"Deploy Nitro apps to Cleavr.",{"title":141,"path":142,"stem":143,"description":1961,"children":-1},"Deploy Nitro apps to Deno Deploy.",1773050256192]