[{"data":1,"prerenderedAt":2136},["ShallowReactive",2],{"navigation":3,"docs-path-index":152,"-docs-modules-serverless-overview":198,"-docs-modules-serverless-overview-surround":2131},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":52},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,26,53,138],{"title":11,"path":12,"stem":13,"children":14,"icon":25},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F1.getting-started\u002F3.examples","i-lucide-rocket",{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":52},"Core features","i-lucide-square-function","\u002Fdocs\u002Fcore-features","docs\u002F2.core-features",[32,36,40,44,48],{"title":33,"path":34,"stem":35},"Configuration","\u002Fdocs\u002Fcore-features\u002Fconfiguration","docs\u002F2.core-features\u002F0.configuration",{"title":37,"path":38,"stem":39},"Dependency Injection","\u002Fdocs\u002Fcore-features\u002Fcontainer","docs\u002F2.core-features\u002F1.container",{"title":41,"path":42,"stem":43},"Controllers","\u002Fdocs\u002Fcore-features\u002Fcontrollers","docs\u002F2.core-features\u002F2.controllers",{"title":45,"path":46,"stem":47},"Middlewares","\u002Fdocs\u002Fcore-features\u002Fmiddlewares","docs\u002F2.core-features\u002F3.middlewares",{"title":49,"path":50,"stem":51},"Validation","\u002Fdocs\u002Fcore-features\u002Fvalidation","docs\u002F2.core-features\u002F4.validation",false,{"title":54,"icon":55,"defaultOpen":56,"path":57,"stem":58,"children":59,"page":52},"Modules","i-lucide-boxes",true,"\u002Fdocs\u002Fmodules","docs\u002F3.modules",[60,77,93,109,123,134],{"title":61,"icon":52,"defaultOpen":52,"path":62,"stem":63,"children":64,"page":52},"Auth","\u002Fdocs\u002Fmodules\u002Fauth","docs\u002F3.modules\u002F1.auth",[65,69,73],{"title":66,"path":67,"stem":68},"Overview","\u002Fdocs\u002Fmodules\u002Fauth\u002Foverview","docs\u002F3.modules\u002F1.auth\u002F0.overview",{"title":70,"path":71,"stem":72},"Decorators","\u002Fdocs\u002Fmodules\u002Fauth\u002Fdecorators","docs\u002F3.modules\u002F1.auth\u002F1.decorators",{"title":74,"path":75,"stem":76},"API Reference","\u002Fdocs\u002Fmodules\u002Fauth\u002Fapi","docs\u002F3.modules\u002F1.auth\u002F2.api",{"title":78,"icon":52,"defaultOpen":52,"path":79,"stem":80,"children":81,"page":52},"Logger","\u002Fdocs\u002Fmodules\u002Flogger","docs\u002F3.modules\u002F2.logger",[82,85,89],{"title":66,"path":83,"stem":84},"\u002Fdocs\u002Fmodules\u002Flogger\u002Foverview","docs\u002F3.modules\u002F2.logger\u002F0.overview",{"title":86,"path":87,"stem":88},"Drivers","\u002Fdocs\u002Fmodules\u002Flogger\u002Fdrivers","docs\u002F3.modules\u002F2.logger\u002F1.drivers",{"title":90,"path":91,"stem":92},"API","\u002Fdocs\u002Fmodules\u002Flogger\u002Fapi","docs\u002F3.modules\u002F2.logger\u002F2.api",{"title":94,"icon":52,"defaultOpen":52,"path":95,"stem":96,"children":97,"page":52},"Serverless","\u002Fdocs\u002Fmodules\u002Fserverless","docs\u002F3.modules\u002F3.serverless",[98,101,105],{"title":66,"path":99,"stem":100},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":102,"path":103,"stem":104},"AWS Lambda","\u002Fdocs\u002Fmodules\u002Fserverless\u002Faws-lambda","docs\u002F3.modules\u002F3.serverless\u002F1.aws-lambda",{"title":106,"path":107,"stem":108},"Azure Functions","\u002Fdocs\u002Fmodules\u002Fserverless\u002Fazure-functions","docs\u002F3.modules\u002F3.serverless\u002F2.azure-functions",{"title":110,"icon":52,"defaultOpen":52,"path":111,"stem":112,"children":113,"page":52},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[114,117,120],{"title":66,"path":115,"stem":116},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":86,"path":118,"stem":119},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":90,"path":121,"stem":122},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":124,"icon":52,"defaultOpen":52,"path":125,"stem":126,"children":127,"page":52},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[128,131],{"title":66,"path":129,"stem":130},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":90,"path":132,"stem":133},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":135,"path":136,"stem":137},"MCP","\u002Fdocs\u002Fmodules\u002Fmcp","docs\u002F3.modules\u002F6.mcp",{"title":139,"icon":140,"defaultOpen":52,"path":141,"stem":142,"children":143,"page":52},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[144,148],{"title":145,"path":146,"stem":147},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":149,"path":150,"stem":151},"Custom Plugin","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",[153,155,157,158,159,160,162,163,164,165,166,167,169,171,172,173,174,176,177,178,179,181,182,183,184,186,187,188,189,191,192,193,194,196,197],{"path":154},"\u002Fdocs\u002F.navigation",{"path":156},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":161},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":34},{"path":38},{"path":42},{"path":46},{"path":50},{"path":168},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":170},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":67},{"path":71},{"path":75},{"path":175},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":83},{"path":87},{"path":91},{"path":180},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":99},{"path":103},{"path":107},{"path":185},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":115},{"path":118},{"path":121},{"path":190},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":129},{"path":132},{"path":136},{"path":195},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":146},{"path":150},{"id":199,"title":66,"body":200,"description":2125,"extension":2126,"links":2127,"meta":2128,"navigation":56,"path":99,"seo":2129,"stem":100,"__hash__":2130},"docs\u002Fdocs\u002F3.modules\u002F3.serverless\u002F0.overview.md",{"type":201,"value":202,"toc":2108},"minimark",[203,207,211,279,283,1305,1312,1316,1319,1323,1326,1331,1374,1378,1383,1398,1403,1417,1421,1425,1428,1566,1570,1573,1629,1633,1636,1641,1652,1657,1671,1675,1679,1867,1871,2104],[204,205,206],"p",{},"The Serverless module enables you to deploy your Vercube applications to serverless platforms with zero configuration. Instead of managing servers and infrastructure, you wrap your Vercube app with a simple adapter and deploy it to AWS Lambda, Azure Functions, or other serverless providers - your existing controllers, middleware, and business logic work exactly as before.",[208,209,18],"h2",{"id":210},"installation",[212,213,214,244,262],"code-group",{},[215,216,222],"pre",{"className":217,"code":218,"filename":219,"language":220,"meta":221,"style":221},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$ pnpm add @vercube\u002Fserverless\n","pnpm","bash","",[223,224,225],"code",{"__ignoreMap":221},[226,227,230,234,238,241],"span",{"class":228,"line":229},"line",1,[226,231,233],{"class":232},"sBMFI","$",[226,235,237],{"class":236},"sfazB"," pnpm",[226,239,240],{"class":236}," add",[226,242,243],{"class":236}," @vercube\u002Fserverless\n",[215,245,248],{"className":217,"code":246,"filename":247,"language":220,"meta":221,"style":221},"$ npm install @vercube\u002Fserverless\n","npm",[223,249,250],{"__ignoreMap":221},[226,251,252,254,257,260],{"class":228,"line":229},[226,253,233],{"class":232},[226,255,256],{"class":236}," npm",[226,258,259],{"class":236}," install",[226,261,243],{"class":236},[215,263,266],{"className":217,"code":264,"filename":265,"language":220,"meta":221,"style":221},"$ bun install @vercube\u002Fserverless\n","bun",[223,267,268],{"__ignoreMap":221},[226,269,270,272,275,277],{"class":228,"line":229},[226,271,233],{"class":232},[226,273,274],{"class":236}," bun",[226,276,259],{"class":236},[226,278,243],{"class":236},[208,280,282],{"id":281},"quick-start","Quick Start",[284,285,286,291,294,597,601,604,1026,1030,1033],"steps",{},[287,288,290],"h3",{"id":289},"create-your-vercube-application","Create Your Vercube Application",[204,292,293],{},"Use your existing Vercube app or create a new one:",[215,295,300],{"className":296,"code":297,"filename":298,"language":299,"meta":221,"style":221},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createApp } from '@vercube\u002Fcore';\nimport { Controller, Get } from '@vercube\u002Fcore';\n\n@Controller('\u002Fapi')\nexport class ApiController {\n  \n  @Get('\u002Fhello')\n  getHello() {\n    return { message: 'Hello from Serverless!' };\n  }\n  \n  @Get('\u002Fusers\u002F:id')\n  getUser(@Param('id') id: string) {\n    return { id, name: 'John Doe' };\n  }\n}\n\nexport const app = createApp();\n","src\u002Findex.ts","ts",[223,301,302,334,362,368,391,407,413,433,445,469,475,480,498,535,561,566,572,577],{"__ignoreMap":221},[226,303,304,308,312,316,319,322,325,328,331],{"class":228,"line":229},[226,305,307],{"class":306},"s7zQu","import",[226,309,311],{"class":310},"sMK4o"," {",[226,313,315],{"class":314},"sTEyZ"," createApp",[226,317,318],{"class":310}," }",[226,320,321],{"class":306}," from",[226,323,324],{"class":310}," '",[226,326,327],{"class":236},"@vercube\u002Fcore",[226,329,330],{"class":310},"'",[226,332,333],{"class":310},";\n",[226,335,337,339,341,344,347,350,352,354,356,358,360],{"class":228,"line":336},2,[226,338,307],{"class":306},[226,340,311],{"class":310},[226,342,343],{"class":314}," Controller",[226,345,346],{"class":310},",",[226,348,349],{"class":314}," Get",[226,351,318],{"class":310},[226,353,321],{"class":306},[226,355,324],{"class":310},[226,357,327],{"class":236},[226,359,330],{"class":310},[226,361,333],{"class":310},[226,363,365],{"class":228,"line":364},3,[226,366,367],{"emptyLinePlaceholder":56},"\n",[226,369,371,374,378,381,383,386,388],{"class":228,"line":370},4,[226,372,373],{"class":310},"@",[226,375,377],{"class":376},"s2Zo4","Controller",[226,379,380],{"class":314},"(",[226,382,330],{"class":310},[226,384,385],{"class":236},"\u002Fapi",[226,387,330],{"class":310},[226,389,390],{"class":314},")\n",[226,392,394,397,401,404],{"class":228,"line":393},5,[226,395,396],{"class":306},"export",[226,398,400],{"class":399},"spNyl"," class",[226,402,403],{"class":232}," ApiController",[226,405,406],{"class":310}," {\n",[226,408,410],{"class":228,"line":409},6,[226,411,412],{"class":314},"  \n",[226,414,416,419,422,424,426,429,431],{"class":228,"line":415},7,[226,417,418],{"class":310},"  @",[226,420,421],{"class":376},"Get",[226,423,380],{"class":314},[226,425,330],{"class":310},[226,427,428],{"class":236},"\u002Fhello",[226,430,330],{"class":310},[226,432,390],{"class":314},[226,434,436,440,443],{"class":228,"line":435},8,[226,437,439],{"class":438},"swJcz","  getHello",[226,441,442],{"class":310},"()",[226,444,406],{"class":310},[226,446,448,451,453,456,459,461,464,466],{"class":228,"line":447},9,[226,449,450],{"class":306},"    return",[226,452,311],{"class":310},[226,454,455],{"class":438}," message",[226,457,458],{"class":310},":",[226,460,324],{"class":310},[226,462,463],{"class":236},"Hello from Serverless!",[226,465,330],{"class":310},[226,467,468],{"class":310}," };\n",[226,470,472],{"class":228,"line":471},10,[226,473,474],{"class":310},"  }\n",[226,476,478],{"class":228,"line":477},11,[226,479,412],{"class":314},[226,481,483,485,487,489,491,494,496],{"class":228,"line":482},12,[226,484,418],{"class":310},[226,486,421],{"class":376},[226,488,380],{"class":314},[226,490,330],{"class":310},[226,492,493],{"class":236},"\u002Fusers\u002F:id",[226,495,330],{"class":310},[226,497,390],{"class":314},[226,499,501,504,507,510,512,514,517,519,522,525,527,530,533],{"class":228,"line":500},13,[226,502,503],{"class":438},"  getUser",[226,505,506],{"class":310},"(@",[226,508,509],{"class":376},"Param",[226,511,380],{"class":314},[226,513,330],{"class":310},[226,515,516],{"class":236},"id",[226,518,330],{"class":310},[226,520,521],{"class":314},") ",[226,523,516],{"class":524},"sHdIc",[226,526,458],{"class":310},[226,528,529],{"class":232}," string",[226,531,532],{"class":310},")",[226,534,406],{"class":310},[226,536,538,540,542,545,547,550,552,554,557,559],{"class":228,"line":537},14,[226,539,450],{"class":306},[226,541,311],{"class":310},[226,543,544],{"class":314}," id",[226,546,346],{"class":310},[226,548,549],{"class":438}," name",[226,551,458],{"class":310},[226,553,324],{"class":310},[226,555,556],{"class":236},"John Doe",[226,558,330],{"class":310},[226,560,468],{"class":310},[226,562,564],{"class":228,"line":563},15,[226,565,474],{"class":310},[226,567,569],{"class":228,"line":568},16,[226,570,571],{"class":310},"}\n",[226,573,575],{"class":228,"line":574},17,[226,576,367],{"emptyLinePlaceholder":56},[226,578,580,582,585,588,591,593,595],{"class":228,"line":579},18,[226,581,396],{"class":306},[226,583,584],{"class":399}," const",[226,586,587],{"class":314}," app ",[226,589,590],{"class":310},"=",[226,592,315],{"class":376},[226,594,442],{"class":314},[226,596,333],{"class":310},[287,598,600],{"id":599},"create-serverless-handler","Create Serverless Handler",[204,602,603],{},"Create a handler file specific to your platform:",[212,605,606,683],{},[215,607,609],{"className":296,"code":608,"filename":102,"language":299,"meta":221,"style":221},"\u002F\u002F lambda.ts\nimport { toServerlessHandler } from '@vercube\u002Fserverless\u002Faws-lambda';\nimport { app } from '.\u002Fsrc\u002Findex';\n\nexport const handler = toServerlessHandler(app);\n",[223,610,611,617,639,661,665],{"__ignoreMap":221},[226,612,613],{"class":228,"line":229},[226,614,616],{"class":615},"sHwdD","\u002F\u002F lambda.ts\n",[226,618,619,621,623,626,628,630,632,635,637],{"class":228,"line":336},[226,620,307],{"class":306},[226,622,311],{"class":310},[226,624,625],{"class":314}," toServerlessHandler",[226,627,318],{"class":310},[226,629,321],{"class":306},[226,631,324],{"class":310},[226,633,634],{"class":236},"@vercube\u002Fserverless\u002Faws-lambda",[226,636,330],{"class":310},[226,638,333],{"class":310},[226,640,641,643,645,648,650,652,654,657,659],{"class":228,"line":364},[226,642,307],{"class":306},[226,644,311],{"class":310},[226,646,647],{"class":314}," app",[226,649,318],{"class":310},[226,651,321],{"class":306},[226,653,324],{"class":310},[226,655,656],{"class":236},".\u002Fsrc\u002Findex",[226,658,330],{"class":310},[226,660,333],{"class":310},[226,662,663],{"class":228,"line":370},[226,664,367],{"emptyLinePlaceholder":56},[226,666,667,669,671,674,676,678,681],{"class":228,"line":393},[226,668,396],{"class":306},[226,670,584],{"class":399},[226,672,673],{"class":314}," handler ",[226,675,590],{"class":310},[226,677,625],{"class":376},[226,679,680],{"class":314},"(app)",[226,682,333],{"class":310},[215,684,686],{"className":296,"code":685,"filename":106,"language":299,"meta":221,"style":221},"\u002F\u002F src\u002Ffunctions\u002FhttpTrigger.ts\nimport { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure\u002Ffunctions';\nimport { toServerlessHandler } from '@vercube\u002Fserverless\u002Fazure-functions';\nimport { app as vercubeApp } from '..\u002Findex';\n\nconst handler = toServerlessHandler(vercubeApp);\n\nexport async function httpTrigger(\n  request: HttpRequest, \n  context: InvocationContext\n): Promise\u003CHttpResponseInit> {\n  return await handler(request);\n}\n\napp.http('httpTrigger', {\n  methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'],\n  authLevel: 'anonymous',\n  handler: httpTrigger,\n});\n",[223,687,688,693,729,750,777,781,797,801,817,831,841,860,880,884,888,912,989,1005,1016],{"__ignoreMap":221},[226,689,690],{"class":228,"line":229},[226,691,692],{"class":615},"\u002F\u002F src\u002Ffunctions\u002FhttpTrigger.ts\n",[226,694,695,697,699,701,703,706,708,711,713,716,718,720,722,725,727],{"class":228,"line":336},[226,696,307],{"class":306},[226,698,311],{"class":310},[226,700,647],{"class":314},[226,702,346],{"class":310},[226,704,705],{"class":314}," HttpRequest",[226,707,346],{"class":310},[226,709,710],{"class":314}," HttpResponseInit",[226,712,346],{"class":310},[226,714,715],{"class":314}," InvocationContext",[226,717,318],{"class":310},[226,719,321],{"class":306},[226,721,324],{"class":310},[226,723,724],{"class":236},"@azure\u002Ffunctions",[226,726,330],{"class":310},[226,728,333],{"class":310},[226,730,731,733,735,737,739,741,743,746,748],{"class":228,"line":364},[226,732,307],{"class":306},[226,734,311],{"class":310},[226,736,625],{"class":314},[226,738,318],{"class":310},[226,740,321],{"class":306},[226,742,324],{"class":310},[226,744,745],{"class":236},"@vercube\u002Fserverless\u002Fazure-functions",[226,747,330],{"class":310},[226,749,333],{"class":310},[226,751,752,754,756,758,761,764,766,768,770,773,775],{"class":228,"line":370},[226,753,307],{"class":306},[226,755,311],{"class":310},[226,757,647],{"class":314},[226,759,760],{"class":306}," as",[226,762,763],{"class":314}," vercubeApp",[226,765,318],{"class":310},[226,767,321],{"class":306},[226,769,324],{"class":310},[226,771,772],{"class":236},"..\u002Findex",[226,774,330],{"class":310},[226,776,333],{"class":310},[226,778,779],{"class":228,"line":393},[226,780,367],{"emptyLinePlaceholder":56},[226,782,783,786,788,790,792,795],{"class":228,"line":409},[226,784,785],{"class":399},"const",[226,787,673],{"class":314},[226,789,590],{"class":310},[226,791,625],{"class":376},[226,793,794],{"class":314},"(vercubeApp)",[226,796,333],{"class":310},[226,798,799],{"class":228,"line":415},[226,800,367],{"emptyLinePlaceholder":56},[226,802,803,805,808,811,814],{"class":228,"line":435},[226,804,396],{"class":306},[226,806,807],{"class":399}," async",[226,809,810],{"class":399}," function",[226,812,813],{"class":376}," httpTrigger",[226,815,816],{"class":310},"(\n",[226,818,819,822,824,826,828],{"class":228,"line":447},[226,820,821],{"class":524},"  request",[226,823,458],{"class":310},[226,825,705],{"class":232},[226,827,346],{"class":310},[226,829,830],{"class":314}," \n",[226,832,833,836,838],{"class":228,"line":471},[226,834,835],{"class":524},"  context",[226,837,458],{"class":310},[226,839,840],{"class":232}," InvocationContext\n",[226,842,843,846,849,852,855,858],{"class":228,"line":477},[226,844,845],{"class":310},"):",[226,847,848],{"class":232}," Promise",[226,850,851],{"class":310},"\u003C",[226,853,854],{"class":232},"HttpResponseInit",[226,856,857],{"class":310},">",[226,859,406],{"class":310},[226,861,862,865,868,871,873,876,878],{"class":228,"line":482},[226,863,864],{"class":306},"  return",[226,866,867],{"class":306}," await",[226,869,870],{"class":376}," handler",[226,872,380],{"class":438},[226,874,875],{"class":314},"request",[226,877,532],{"class":438},[226,879,333],{"class":310},[226,881,882],{"class":228,"line":500},[226,883,571],{"class":310},[226,885,886],{"class":228,"line":537},[226,887,367],{"emptyLinePlaceholder":56},[226,889,890,893,896,899,901,903,906,908,910],{"class":228,"line":563},[226,891,892],{"class":314},"app",[226,894,895],{"class":310},".",[226,897,898],{"class":376},"http",[226,900,380],{"class":314},[226,902,330],{"class":310},[226,904,905],{"class":236},"httpTrigger",[226,907,330],{"class":310},[226,909,346],{"class":310},[226,911,406],{"class":310},[226,913,914,917,919,922,924,927,929,931,933,936,938,940,942,945,947,949,951,954,956,958,960,963,965,967,969,972,974,976,978,981,983,986],{"class":228,"line":568},[226,915,916],{"class":438},"  methods",[226,918,458],{"class":310},[226,920,921],{"class":314}," [",[226,923,330],{"class":310},[226,925,926],{"class":236},"GET",[226,928,330],{"class":310},[226,930,346],{"class":310},[226,932,324],{"class":310},[226,934,935],{"class":236},"POST",[226,937,330],{"class":310},[226,939,346],{"class":310},[226,941,324],{"class":310},[226,943,944],{"class":236},"PUT",[226,946,330],{"class":310},[226,948,346],{"class":310},[226,950,324],{"class":310},[226,952,953],{"class":236},"DELETE",[226,955,330],{"class":310},[226,957,346],{"class":310},[226,959,324],{"class":310},[226,961,962],{"class":236},"PATCH",[226,964,330],{"class":310},[226,966,346],{"class":310},[226,968,324],{"class":310},[226,970,971],{"class":236},"HEAD",[226,973,330],{"class":310},[226,975,346],{"class":310},[226,977,324],{"class":310},[226,979,980],{"class":236},"OPTIONS",[226,982,330],{"class":310},[226,984,985],{"class":314},"]",[226,987,988],{"class":310},",\n",[226,990,991,994,996,998,1001,1003],{"class":228,"line":574},[226,992,993],{"class":438},"  authLevel",[226,995,458],{"class":310},[226,997,324],{"class":310},[226,999,1000],{"class":236},"anonymous",[226,1002,330],{"class":310},[226,1004,988],{"class":310},[226,1006,1007,1010,1012,1014],{"class":228,"line":579},[226,1008,1009],{"class":438},"  handler",[226,1011,458],{"class":310},[226,1013,813],{"class":314},[226,1015,988],{"class":310},[226,1017,1019,1022,1024],{"class":228,"line":1018},19,[226,1020,1021],{"class":310},"}",[226,1023,532],{"class":314},[226,1025,333],{"class":310},[287,1027,1029],{"id":1028},"deploy","Deploy",[204,1031,1032],{},"Deploy using your platform's deployment method:",[212,1034,1035,1176],{},[215,1036,1041],{"className":1037,"code":1038,"filename":1039,"language":1040,"meta":221,"style":221},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# serverless.yml\nservice: vercube-api\n\nprovider:\n  name: aws\n  runtime: nodejs22.x\n  region: us-east-1\n\nfunctions:\n  api:\n    handler: lambda.handler\n    events:\n      - http:\n          path: \u002F{proxy+}\n          method: ANY\n          cors: true\n","AWS Serverless Framework","yaml",[223,1042,1043,1048,1058,1062,1070,1080,1090,1100,1104,1111,1118,1128,1135,1145,1155,1165],{"__ignoreMap":221},[226,1044,1045],{"class":228,"line":229},[226,1046,1047],{"class":615},"# serverless.yml\n",[226,1049,1050,1053,1055],{"class":228,"line":336},[226,1051,1052],{"class":438},"service",[226,1054,458],{"class":310},[226,1056,1057],{"class":236}," vercube-api\n",[226,1059,1060],{"class":228,"line":364},[226,1061,367],{"emptyLinePlaceholder":56},[226,1063,1064,1067],{"class":228,"line":370},[226,1065,1066],{"class":438},"provider",[226,1068,1069],{"class":310},":\n",[226,1071,1072,1075,1077],{"class":228,"line":393},[226,1073,1074],{"class":438},"  name",[226,1076,458],{"class":310},[226,1078,1079],{"class":236}," aws\n",[226,1081,1082,1085,1087],{"class":228,"line":409},[226,1083,1084],{"class":438},"  runtime",[226,1086,458],{"class":310},[226,1088,1089],{"class":236}," nodejs22.x\n",[226,1091,1092,1095,1097],{"class":228,"line":415},[226,1093,1094],{"class":438},"  region",[226,1096,458],{"class":310},[226,1098,1099],{"class":236}," us-east-1\n",[226,1101,1102],{"class":228,"line":435},[226,1103,367],{"emptyLinePlaceholder":56},[226,1105,1106,1109],{"class":228,"line":447},[226,1107,1108],{"class":438},"functions",[226,1110,1069],{"class":310},[226,1112,1113,1116],{"class":228,"line":471},[226,1114,1115],{"class":438},"  api",[226,1117,1069],{"class":310},[226,1119,1120,1123,1125],{"class":228,"line":477},[226,1121,1122],{"class":438},"    handler",[226,1124,458],{"class":310},[226,1126,1127],{"class":236}," lambda.handler\n",[226,1129,1130,1133],{"class":228,"line":482},[226,1131,1132],{"class":438},"    events",[226,1134,1069],{"class":310},[226,1136,1137,1140,1143],{"class":228,"line":500},[226,1138,1139],{"class":310},"      -",[226,1141,1142],{"class":438}," http",[226,1144,1069],{"class":310},[226,1146,1147,1150,1152],{"class":228,"line":537},[226,1148,1149],{"class":438},"          path",[226,1151,458],{"class":310},[226,1153,1154],{"class":236}," \u002F{proxy+}\n",[226,1156,1157,1160,1162],{"class":228,"line":563},[226,1158,1159],{"class":438},"          method",[226,1161,458],{"class":310},[226,1163,1164],{"class":236}," ANY\n",[226,1166,1167,1170,1172],{"class":228,"line":568},[226,1168,1169],{"class":438},"          cors",[226,1171,458],{"class":310},[226,1173,1175],{"class":1174},"sfNiH"," true\n",[215,1177,1181],{"className":1178,"code":1179,"filename":106,"language":1180,"meta":221,"style":221},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F host.json\n{\n  \"version\": \"2.0\",\n  \"logging\": {\n    \"applicationInsights\": {\n      \"samplingSettings\": {\n        \"isEnabled\": true,\n        \"maxTelemetryItemsPerSecond\": 20\n      }\n    }\n  }\n}\n","json",[223,1182,1183,1188,1193,1216,1229,1243,1258,1273,1287,1292,1297,1301],{"__ignoreMap":221},[226,1184,1185],{"class":228,"line":229},[226,1186,1187],{"class":615},"\u002F\u002F host.json\n",[226,1189,1190],{"class":228,"line":336},[226,1191,1192],{"class":310},"{\n",[226,1194,1195,1198,1201,1204,1206,1209,1212,1214],{"class":228,"line":364},[226,1196,1197],{"class":310},"  \"",[226,1199,1200],{"class":399},"version",[226,1202,1203],{"class":310},"\"",[226,1205,458],{"class":310},[226,1207,1208],{"class":310}," \"",[226,1210,1211],{"class":236},"2.0",[226,1213,1203],{"class":310},[226,1215,988],{"class":310},[226,1217,1218,1220,1223,1225,1227],{"class":228,"line":370},[226,1219,1197],{"class":310},[226,1221,1222],{"class":399},"logging",[226,1224,1203],{"class":310},[226,1226,458],{"class":310},[226,1228,406],{"class":310},[226,1230,1231,1234,1237,1239,1241],{"class":228,"line":393},[226,1232,1233],{"class":310},"    \"",[226,1235,1236],{"class":232},"applicationInsights",[226,1238,1203],{"class":310},[226,1240,458],{"class":310},[226,1242,406],{"class":310},[226,1244,1245,1248,1252,1254,1256],{"class":228,"line":409},[226,1246,1247],{"class":310},"      \"",[226,1249,1251],{"class":1250},"sbssI","samplingSettings",[226,1253,1203],{"class":310},[226,1255,458],{"class":310},[226,1257,406],{"class":310},[226,1259,1260,1263,1266,1268,1270],{"class":228,"line":415},[226,1261,1262],{"class":310},"        \"",[226,1264,1265],{"class":438},"isEnabled",[226,1267,1203],{"class":310},[226,1269,458],{"class":310},[226,1271,1272],{"class":310}," true,\n",[226,1274,1275,1277,1280,1282,1284],{"class":228,"line":435},[226,1276,1262],{"class":310},[226,1278,1279],{"class":438},"maxTelemetryItemsPerSecond",[226,1281,1203],{"class":310},[226,1283,458],{"class":310},[226,1285,1286],{"class":1250}," 20\n",[226,1288,1289],{"class":228,"line":447},[226,1290,1291],{"class":310},"      }\n",[226,1293,1294],{"class":228,"line":471},[226,1295,1296],{"class":310},"    }\n",[226,1298,1299],{"class":228,"line":477},[226,1300,474],{"class":310},[226,1302,1303],{"class":228,"line":482},[226,1304,571],{"class":310},[1306,1307,1309],"tip",{"icon":1308},"i-lucide-stars",[204,1310,1311],{},"That's it! Your Vercube application is now running serverlessly.",[208,1313,1315],{"id":1314},"what-is-serverless-deployment","What is Serverless Deployment?",[204,1317,1318],{},"Serverless platforms like AWS Lambda and Azure Functions run your code on-demand without requiring you to manage servers. You pay only for actual execution time, and the platform automatically scales based on traffic. The serverless module bridges the gap between these platform-specific event formats and your standard Vercube application.",[208,1320,1322],{"id":1321},"how-it-works","How It Works",[204,1324,1325],{},"The serverless adapter acts as a translation layer between platform-specific events and standard web requests:",[1327,1328],"img",{"src":1329,"alt":1330},"\u002Fimages\u002Fserverless-1.svg","Serverless adapter flow",[1332,1333,1334,1342,1352,1358,1368],"ol",{},[1335,1336,1337,1341],"li",{},[1338,1339,1340],"strong",{},"Platform Event"," - Lambda or Azure Functions receives an HTTP event",[1335,1343,1344,1347,1348,1351],{},[1338,1345,1346],{},"Adapter Converts"," - The serverless handler converts it to a standard ",[223,1349,1350],{},"Request"," object",[1335,1353,1354,1357],{},[1338,1355,1356],{},"Vercube Processes"," - Your app handles it using normal controllers and middleware",[1335,1359,1360,1363,1364,1367],{},[1338,1361,1362],{},"Response Converted"," - The adapter converts your ",[223,1365,1366],{},"Response"," back to platform format",[1335,1369,1370,1373],{},[1338,1371,1372],{},"Platform Returns"," - The serverless function returns the properly formatted response",[287,1375,1377],{"id":1376},"what-gets-converted","What Gets Converted",[204,1379,1380],{},[1338,1381,1382],{},"Request Conversion:",[1384,1385,1386,1389,1392,1395],"ul",{},[1335,1387,1388],{},"HTTP method (GET, POST, etc.)",[1335,1390,1391],{},"URL path and query parameters",[1335,1393,1394],{},"Headers (including cookies)",[1335,1396,1397],{},"Request body (JSON, form data, binary)",[204,1399,1400],{},[1338,1401,1402],{},"Response Conversion:",[1384,1404,1405,1408,1411,1414],{},[1335,1406,1407],{},"Status code",[1335,1409,1410],{},"Response headers",[1335,1412,1413],{},"Cookies (Set-Cookie headers)",[1335,1415,1416],{},"Response body (text, JSON, binary)",[208,1418,1420],{"id":1419},"performance-considerations","Performance Considerations",[287,1422,1424],{"id":1423},"container-reuse","Container Reuse",[204,1426,1427],{},"Serverless platforms reuse containers across invocations:",[215,1429,1431],{"className":296,"code":1430,"language":299,"meta":221,"style":221},"\u002F\u002F ✅ Good - Module-level initialization (happens once)\nconst app = createApp();\nconst redisClient = createRedisClient();\n\nexport const handler = toServerlessHandler(app);\n\n\u002F\u002F ❌ Bad - Reinitializes on every request\nexport const handler = async (event) => {\n  const app = createApp(); \u002F\u002F Wasteful!\n  return toServerlessHandler(app)(event);\n};\n",[223,1432,1433,1438,1452,1468,1472,1488,1492,1497,1522,1542,1561],{"__ignoreMap":221},[226,1434,1435],{"class":228,"line":229},[226,1436,1437],{"class":615},"\u002F\u002F ✅ Good - Module-level initialization (happens once)\n",[226,1439,1440,1442,1444,1446,1448,1450],{"class":228,"line":336},[226,1441,785],{"class":399},[226,1443,587],{"class":314},[226,1445,590],{"class":310},[226,1447,315],{"class":376},[226,1449,442],{"class":314},[226,1451,333],{"class":310},[226,1453,1454,1456,1459,1461,1464,1466],{"class":228,"line":364},[226,1455,785],{"class":399},[226,1457,1458],{"class":314}," redisClient ",[226,1460,590],{"class":310},[226,1462,1463],{"class":376}," createRedisClient",[226,1465,442],{"class":314},[226,1467,333],{"class":310},[226,1469,1470],{"class":228,"line":370},[226,1471,367],{"emptyLinePlaceholder":56},[226,1473,1474,1476,1478,1480,1482,1484,1486],{"class":228,"line":393},[226,1475,396],{"class":306},[226,1477,584],{"class":399},[226,1479,673],{"class":314},[226,1481,590],{"class":310},[226,1483,625],{"class":376},[226,1485,680],{"class":314},[226,1487,333],{"class":310},[226,1489,1490],{"class":228,"line":409},[226,1491,367],{"emptyLinePlaceholder":56},[226,1493,1494],{"class":228,"line":415},[226,1495,1496],{"class":615},"\u002F\u002F ❌ Bad - Reinitializes on every request\n",[226,1498,1499,1501,1503,1505,1507,1509,1512,1515,1517,1520],{"class":228,"line":435},[226,1500,396],{"class":306},[226,1502,584],{"class":399},[226,1504,673],{"class":314},[226,1506,590],{"class":310},[226,1508,807],{"class":399},[226,1510,1511],{"class":310}," (",[226,1513,1514],{"class":524},"event",[226,1516,532],{"class":310},[226,1518,1519],{"class":399}," =>",[226,1521,406],{"class":310},[226,1523,1524,1527,1529,1532,1534,1536,1539],{"class":228,"line":447},[226,1525,1526],{"class":399},"  const",[226,1528,647],{"class":314},[226,1530,1531],{"class":310}," =",[226,1533,315],{"class":376},[226,1535,442],{"class":438},[226,1537,1538],{"class":310},";",[226,1540,1541],{"class":615}," \u002F\u002F Wasteful!\n",[226,1543,1544,1546,1548,1550,1552,1555,1557,1559],{"class":228,"line":471},[226,1545,864],{"class":306},[226,1547,625],{"class":376},[226,1549,380],{"class":438},[226,1551,892],{"class":314},[226,1553,1554],{"class":438},")(",[226,1556,1514],{"class":314},[226,1558,532],{"class":438},[226,1560,333],{"class":310},[226,1562,1563],{"class":228,"line":477},[226,1564,1565],{"class":310},"};\n",[287,1567,1569],{"id":1568},"memory-management","Memory Management",[204,1571,1572],{},"Configure memory based on your application needs:",[215,1574,1576],{"className":1037,"code":1575,"language":1040,"meta":221,"style":221},"# AWS Lambda\nfunctions:\n  api:\n    handler: lambda.handler\n    memorySize: 512  # MB - adjust based on your app\n    timeout: 30      # seconds\n",[223,1577,1578,1583,1589,1595,1603,1616],{"__ignoreMap":221},[226,1579,1580],{"class":228,"line":229},[226,1581,1582],{"class":615},"# AWS Lambda\n",[226,1584,1585,1587],{"class":228,"line":336},[226,1586,1108],{"class":438},[226,1588,1069],{"class":310},[226,1590,1591,1593],{"class":228,"line":364},[226,1592,1115],{"class":438},[226,1594,1069],{"class":310},[226,1596,1597,1599,1601],{"class":228,"line":370},[226,1598,1122],{"class":438},[226,1600,458],{"class":310},[226,1602,1127],{"class":236},[226,1604,1605,1608,1610,1613],{"class":228,"line":393},[226,1606,1607],{"class":438},"    memorySize",[226,1609,458],{"class":310},[226,1611,1612],{"class":1250}," 512",[226,1614,1615],{"class":615},"  # MB - adjust based on your app\n",[226,1617,1618,1621,1623,1626],{"class":228,"line":409},[226,1619,1620],{"class":438},"    timeout",[226,1622,458],{"class":310},[226,1624,1625],{"class":1250}," 30",[226,1627,1628],{"class":615},"      # seconds\n",[287,1630,1632],{"id":1631},"concurrent-requests","Concurrent Requests",[204,1634,1635],{},"Serverless platforms handle concurrency differently:",[204,1637,1638],{},[1338,1639,1640],{},"AWS Lambda:",[1384,1642,1643,1646,1649],{},[1335,1644,1645],{},"Each function instance handles one request at a time",[1335,1647,1648],{},"Platform creates new instances for concurrent requests",[1335,1650,1651],{},"Maximum concurrent executions: 1000 (default, configurable)",[204,1653,1654],{},[1338,1655,1656],{},"Azure Functions:",[1384,1658,1659,1662,1665],{},[1335,1660,1661],{},"Each function instance can handle multiple requests",[1335,1663,1664],{},"More cost-effective for high-traffic scenarios",[1335,1666,1667,1668],{},"Concurrency controlled by ",[223,1669,1670],{},"maxConcurrentRequests",[208,1672,1674],{"id":1673},"environment-configuration","Environment Configuration",[287,1676,1678],{"id":1677},"platform-specific-environment-variables","Platform-Specific Environment Variables",[212,1680,1681,1743],{},[215,1682,1684],{"className":1037,"code":1683,"filename":102,"language":1040,"meta":221,"style":221},"# serverless.yml\nprovider:\n  environment:\n    NODE_ENV: production\n    DATABASE_URL: ${env:DATABASE_URL}\n    REDIS_URL: ${env:REDIS_URL}\n    JWT_SECRET: ${env:JWT_SECRET}\n",[223,1685,1686,1690,1696,1703,1713,1723,1733],{"__ignoreMap":221},[226,1687,1688],{"class":228,"line":229},[226,1689,1047],{"class":615},[226,1691,1692,1694],{"class":228,"line":336},[226,1693,1066],{"class":438},[226,1695,1069],{"class":310},[226,1697,1698,1701],{"class":228,"line":364},[226,1699,1700],{"class":438},"  environment",[226,1702,1069],{"class":310},[226,1704,1705,1708,1710],{"class":228,"line":370},[226,1706,1707],{"class":438},"    NODE_ENV",[226,1709,458],{"class":310},[226,1711,1712],{"class":236}," production\n",[226,1714,1715,1718,1720],{"class":228,"line":393},[226,1716,1717],{"class":438},"    DATABASE_URL",[226,1719,458],{"class":310},[226,1721,1722],{"class":236}," ${env:DATABASE_URL}\n",[226,1724,1725,1728,1730],{"class":228,"line":409},[226,1726,1727],{"class":438},"    REDIS_URL",[226,1729,458],{"class":310},[226,1731,1732],{"class":236}," ${env:REDIS_URL}\n",[226,1734,1735,1738,1740],{"class":228,"line":415},[226,1736,1737],{"class":438},"    JWT_SECRET",[226,1739,458],{"class":310},[226,1741,1742],{"class":236}," ${env:JWT_SECRET}\n",[215,1744,1746],{"className":1178,"code":1745,"filename":106,"language":1180,"meta":221,"style":221},"\u002F\u002F local.settings.json (for local development)\n{\n  \"IsEncrypted\": false,\n  \"Values\": {\n    \"FUNCTIONS_WORKER_RUNTIME\": \"node\",\n    \"AzureWebJobsStorage\": \"\",\n    \"NODE_ENV\": \"development\",\n    \"DATABASE_URL\": \"postgresql:\u002F\u002Flocalhost:5432\u002Fmyapp\"\n  }\n}\n",[223,1747,1748,1753,1757,1771,1784,1804,1820,1840,1859,1863],{"__ignoreMap":221},[226,1749,1750],{"class":228,"line":229},[226,1751,1752],{"class":615},"\u002F\u002F local.settings.json (for local development)\n",[226,1754,1755],{"class":228,"line":336},[226,1756,1192],{"class":310},[226,1758,1759,1761,1764,1766,1768],{"class":228,"line":364},[226,1760,1197],{"class":310},[226,1762,1763],{"class":399},"IsEncrypted",[226,1765,1203],{"class":310},[226,1767,458],{"class":310},[226,1769,1770],{"class":310}," false,\n",[226,1772,1773,1775,1778,1780,1782],{"class":228,"line":370},[226,1774,1197],{"class":310},[226,1776,1777],{"class":399},"Values",[226,1779,1203],{"class":310},[226,1781,458],{"class":310},[226,1783,406],{"class":310},[226,1785,1786,1788,1791,1793,1795,1797,1800,1802],{"class":228,"line":393},[226,1787,1233],{"class":310},[226,1789,1790],{"class":232},"FUNCTIONS_WORKER_RUNTIME",[226,1792,1203],{"class":310},[226,1794,458],{"class":310},[226,1796,1208],{"class":310},[226,1798,1799],{"class":236},"node",[226,1801,1203],{"class":310},[226,1803,988],{"class":310},[226,1805,1806,1808,1811,1813,1815,1818],{"class":228,"line":409},[226,1807,1233],{"class":310},[226,1809,1810],{"class":232},"AzureWebJobsStorage",[226,1812,1203],{"class":310},[226,1814,458],{"class":310},[226,1816,1817],{"class":310}," \"\"",[226,1819,988],{"class":310},[226,1821,1822,1824,1827,1829,1831,1833,1836,1838],{"class":228,"line":415},[226,1823,1233],{"class":310},[226,1825,1826],{"class":232},"NODE_ENV",[226,1828,1203],{"class":310},[226,1830,458],{"class":310},[226,1832,1208],{"class":310},[226,1834,1835],{"class":236},"development",[226,1837,1203],{"class":310},[226,1839,988],{"class":310},[226,1841,1842,1844,1847,1849,1851,1853,1856],{"class":228,"line":435},[226,1843,1233],{"class":310},[226,1845,1846],{"class":232},"DATABASE_URL",[226,1848,1203],{"class":310},[226,1850,458],{"class":310},[226,1852,1208],{"class":310},[226,1854,1855],{"class":236},"postgresql:\u002F\u002Flocalhost:5432\u002Fmyapp",[226,1857,1858],{"class":310},"\"\n",[226,1860,1861],{"class":228,"line":447},[226,1862,474],{"class":310},[226,1864,1865],{"class":228,"line":471},[226,1866,571],{"class":310},[287,1868,1870],{"id":1869},"accessing-configuration","Accessing Configuration",[215,1872,1874],{"className":296,"code":1873,"language":299,"meta":221,"style":221},"import { RuntimeConfig } from '@vercube\u002Fcore';\n\n@Controller('\u002Fconfig')\nexport class ConfigController {\n  \n  @Inject(RuntimeConfig)\n  private config!: RuntimeConfig;\n  \n  @Get('\u002Finfo')\n  getInfo() {\n    return {\n      environment: process.env.NODE_ENV,\n      platform: process.env.AWS_REGION ? 'aws' : 'azure',\n      database: process.env.DATABASE_URL ? 'connected' : 'disconnected'\n    };\n  }\n}\n",[223,1875,1876,1897,1901,1918,1929,1933,1943,1958,1962,1979,1988,1994,2015,2055,2091,2096,2100],{"__ignoreMap":221},[226,1877,1878,1880,1882,1885,1887,1889,1891,1893,1895],{"class":228,"line":229},[226,1879,307],{"class":306},[226,1881,311],{"class":310},[226,1883,1884],{"class":314}," RuntimeConfig",[226,1886,318],{"class":310},[226,1888,321],{"class":306},[226,1890,324],{"class":310},[226,1892,327],{"class":236},[226,1894,330],{"class":310},[226,1896,333],{"class":310},[226,1898,1899],{"class":228,"line":336},[226,1900,367],{"emptyLinePlaceholder":56},[226,1902,1903,1905,1907,1909,1911,1914,1916],{"class":228,"line":364},[226,1904,373],{"class":310},[226,1906,377],{"class":376},[226,1908,380],{"class":314},[226,1910,330],{"class":310},[226,1912,1913],{"class":236},"\u002Fconfig",[226,1915,330],{"class":310},[226,1917,390],{"class":314},[226,1919,1920,1922,1924,1927],{"class":228,"line":370},[226,1921,396],{"class":306},[226,1923,400],{"class":399},[226,1925,1926],{"class":232}," ConfigController",[226,1928,406],{"class":310},[226,1930,1931],{"class":228,"line":393},[226,1932,412],{"class":314},[226,1934,1935,1937,1940],{"class":228,"line":409},[226,1936,418],{"class":310},[226,1938,1939],{"class":376},"Inject",[226,1941,1942],{"class":314},"(RuntimeConfig)\n",[226,1944,1945,1948,1951,1954,1956],{"class":228,"line":415},[226,1946,1947],{"class":399},"  private",[226,1949,1950],{"class":438}," config",[226,1952,1953],{"class":310},"!:",[226,1955,1884],{"class":232},[226,1957,333],{"class":310},[226,1959,1960],{"class":228,"line":435},[226,1961,412],{"class":314},[226,1963,1964,1966,1968,1970,1972,1975,1977],{"class":228,"line":447},[226,1965,418],{"class":310},[226,1967,421],{"class":376},[226,1969,380],{"class":314},[226,1971,330],{"class":310},[226,1973,1974],{"class":236},"\u002Finfo",[226,1976,330],{"class":310},[226,1978,390],{"class":314},[226,1980,1981,1984,1986],{"class":228,"line":471},[226,1982,1983],{"class":438},"  getInfo",[226,1985,442],{"class":310},[226,1987,406],{"class":310},[226,1989,1990,1992],{"class":228,"line":477},[226,1991,450],{"class":306},[226,1993,406],{"class":310},[226,1995,1996,1999,2001,2004,2006,2009,2011,2013],{"class":228,"line":482},[226,1997,1998],{"class":438},"      environment",[226,2000,458],{"class":310},[226,2002,2003],{"class":314}," process",[226,2005,895],{"class":310},[226,2007,2008],{"class":314},"env",[226,2010,895],{"class":310},[226,2012,1826],{"class":314},[226,2014,988],{"class":310},[226,2016,2017,2020,2022,2024,2026,2028,2030,2033,2036,2038,2041,2043,2046,2048,2051,2053],{"class":228,"line":500},[226,2018,2019],{"class":438},"      platform",[226,2021,458],{"class":310},[226,2023,2003],{"class":314},[226,2025,895],{"class":310},[226,2027,2008],{"class":314},[226,2029,895],{"class":310},[226,2031,2032],{"class":314},"AWS_REGION",[226,2034,2035],{"class":310}," ?",[226,2037,324],{"class":310},[226,2039,2040],{"class":236},"aws",[226,2042,330],{"class":310},[226,2044,2045],{"class":310}," :",[226,2047,324],{"class":310},[226,2049,2050],{"class":236},"azure",[226,2052,330],{"class":310},[226,2054,988],{"class":310},[226,2056,2057,2060,2062,2064,2066,2068,2070,2072,2074,2076,2079,2081,2083,2085,2088],{"class":228,"line":537},[226,2058,2059],{"class":438},"      database",[226,2061,458],{"class":310},[226,2063,2003],{"class":314},[226,2065,895],{"class":310},[226,2067,2008],{"class":314},[226,2069,895],{"class":310},[226,2071,1846],{"class":314},[226,2073,2035],{"class":310},[226,2075,324],{"class":310},[226,2077,2078],{"class":236},"connected",[226,2080,330],{"class":310},[226,2082,2045],{"class":310},[226,2084,324],{"class":310},[226,2086,2087],{"class":236},"disconnected",[226,2089,2090],{"class":310},"'\n",[226,2092,2093],{"class":228,"line":563},[226,2094,2095],{"class":310},"    };\n",[226,2097,2098],{"class":228,"line":568},[226,2099,474],{"class":310},[226,2101,2102],{"class":228,"line":574},[226,2103,571],{"class":310},[2105,2106,2107],"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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":221,"searchDepth":229,"depth":336,"links":2109},[2110,2111,2112,2113,2116,2121],{"id":210,"depth":336,"text":18},{"id":281,"depth":336,"text":282},{"id":1314,"depth":336,"text":1315},{"id":1321,"depth":336,"text":1322,"children":2114},[2115],{"id":1376,"depth":364,"text":1377},{"id":1419,"depth":336,"text":1420,"children":2117},[2118,2119,2120],{"id":1423,"depth":364,"text":1424},{"id":1568,"depth":364,"text":1569},{"id":1631,"depth":364,"text":1632},{"id":1673,"depth":336,"text":1674,"children":2122},[2123,2124],{"id":1677,"depth":364,"text":1678},{"id":1869,"depth":364,"text":1870},"Deploy your Vercube application to serverless platforms with zero configuration","md",null,{},{"title":66,"description":2125},"1it6uLRuNulJAde80mhK4HNW3Ew9T-FP3S6KWcWycu4",[2132,2134],{"title":90,"path":91,"stem":92,"description":2133,"children":-1},"Complete API reference for Logger module",{"title":102,"path":103,"stem":104,"description":2135,"children":-1},"Deploy your Vercube application to AWS Lambda with API Gateway",1775552784006]