[{"data":1,"prerenderedAt":1215},["ShallowReactive",2],{"navigation":3,"docs-path-index":208,"-docs-modules-schema-scalar":272,"-docs-modules-schema-scalar-surround":1210},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":52},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,26,53,169,190],{"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,101,116,127,142,161],{"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},"Drains & Adapters","\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],{"title":66,"path":99,"stem":100},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":102,"icon":52,"defaultOpen":52,"path":103,"stem":104,"children":105,"page":52},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[106,109,113],{"title":66,"path":107,"stem":108},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":110,"path":111,"stem":112},"Drivers","\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":90,"path":114,"stem":115},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":117,"icon":52,"defaultOpen":52,"path":118,"stem":119,"children":120,"page":52},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[121,124],{"title":66,"path":122,"stem":123},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":90,"path":125,"stem":126},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":128,"icon":52,"defaultOpen":52,"path":129,"stem":130,"children":131,"page":52},"Schema","\u002Fdocs\u002Fmodules\u002Fschema","docs\u002F3.modules\u002F6.schema",[132,135,138],{"title":66,"path":133,"stem":134},"\u002Fdocs\u002Fmodules\u002Fschema\u002Foverview","docs\u002F3.modules\u002F6.schema\u002F0.overview",{"title":70,"path":136,"stem":137},"\u002Fdocs\u002Fmodules\u002Fschema\u002Fdecorators","docs\u002F3.modules\u002F6.schema\u002F1.decorators",{"title":139,"path":140,"stem":141},"Scalar","\u002Fdocs\u002Fmodules\u002Fschema\u002Fscalar","docs\u002F3.modules\u002F6.schema\u002F2.scalar",{"title":143,"icon":52,"defaultOpen":52,"path":144,"stem":145,"children":146,"page":52},"Nitro","\u002Fdocs\u002Fmodules\u002Fnitro","docs\u002F3.modules\u002F7.nitro",[147,150,153,157],{"title":66,"path":148,"stem":149},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Foverview","docs\u002F3.modules\u002F7.nitro\u002F0.overview",{"title":102,"path":151,"stem":152},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Fstorage","docs\u002F3.modules\u002F7.nitro\u002F1.storage",{"title":154,"path":155,"stem":156},"File-Based Routes","\u002Fdocs\u002Fmodules\u002Fnitro\u002Ffile-based-routes","docs\u002F3.modules\u002F7.nitro\u002F2.file-based-routes",{"title":158,"path":159,"stem":160},"Middleware","\u002Fdocs\u002Fmodules\u002Fnitro\u002Fmiddleware","docs\u002F3.modules\u002F7.nitro\u002F3.middleware",{"title":162,"icon":52,"defaultOpen":52,"path":163,"stem":164,"children":165,"page":52},"Vite","\u002Fdocs\u002Fmodules\u002Fvite","docs\u002F3.modules\u002F8.vite",[166],{"title":66,"path":167,"stem":168},"\u002Fdocs\u002Fmodules\u002Fvite\u002Foverview","docs\u002F3.modules\u002F8.vite\u002F0.overview",{"title":170,"icon":171,"path":172,"stem":173,"children":174,"page":52},"Deployment","i-lucide-cloud-upload","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[175,178,182,186],{"title":66,"path":176,"stem":177},"\u002Fdocs\u002Fdeployment\u002Foverview","docs\u002F4.deployment\u002F0.overview",{"title":179,"path":180,"stem":181},"Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F4.deployment\u002F1.vercel",{"title":183,"path":184,"stem":185},"AWS Lambda","\u002Fdocs\u002Fdeployment\u002Faws-lambda","docs\u002F4.deployment\u002F2.aws-lambda",{"title":187,"path":188,"stem":189},"Azure Functions","\u002Fdocs\u002Fdeployment\u002Fazure-functions","docs\u002F4.deployment\u002F3.azure-functions",{"title":191,"icon":192,"path":193,"stem":194,"children":195,"page":52},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[196,200,204],{"title":197,"path":198,"stem":199},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":201,"path":202,"stem":203},"Plugins","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",{"title":205,"path":206,"stem":207},"Custom CLI Command","\u002Fdocs\u002Fadvanced\u002Fcustom-cli-command","docs\u002F99.advanced\u002F3.custom-cli-command",[209,211,213,214,215,216,218,219,220,221,222,223,225,227,228,229,230,232,233,234,235,237,238,240,241,242,243,245,246,247,249,250,251,252,254,255,256,257,258,260,261,263,264,265,266,267,269,270,271],{"path":210},"\u002Fdocs\u002F.navigation",{"path":212},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":217},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":34},{"path":38},{"path":42},{"path":46},{"path":50},{"path":224},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":226},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":67},{"path":71},{"path":75},{"path":231},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":83},{"path":87},{"path":91},{"path":236},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":99},{"path":239},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":107},{"path":111},{"path":114},{"path":244},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":122},{"path":125},{"path":248},"\u002Fdocs\u002Fmodules\u002Fschema\u002F.navigation",{"path":133},{"path":136},{"path":140},{"path":253},"\u002Fdocs\u002Fmodules\u002Fnitro\u002F.navigation",{"path":148},{"path":151},{"path":155},{"path":159},{"path":259},"\u002Fdocs\u002Fmodules\u002Fvite\u002F.navigation",{"path":167},{"path":262},"\u002Fdocs\u002Fdeployment\u002F.navigation",{"path":176},{"path":180},{"path":184},{"path":188},{"path":268},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":198},{"path":202},{"path":206},{"id":273,"title":139,"body":274,"description":1204,"extension":1205,"links":1206,"meta":1207,"navigation":56,"path":140,"seo":1208,"stem":141,"__hash__":1209},"docs\u002Fdocs\u002F3.modules\u002F6.schema\u002F2.scalar.md",{"type":275,"value":276,"toc":1193},"minimark",[277,309,320,325,332,377,384,387,397,670,808,815,856,862,959,974,978,981,1015,1023,1027,1030,1086,1097,1101,1111,1146,1150,1155,1189],[278,279,280,281,285,286,296,297,302,303,308],"p",{},"By default, ",[282,283,284],"code",{},"SchemaPlugin"," serves ",[287,288,289],"strong",{},[290,291,295],"a",{"href":292,"rel":293},"https:\u002F\u002Fgithub.com\u002Fscalar\u002Fscalar",[294],"nofollow","Scalar API Reference"," at ",[287,298,299],{},[282,300,301],{},"GET \u002F_schema\u002Fdocs",". Scalar reads your live OpenAPI document from ",[287,304,305],{},[282,306,307],{},"\u002F_schema\u002F"," and renders a modern, interactive UI (try requests, browse models, multiple themes).",[278,310,311,312,319],{},"No separate Express\u002FFastify adapter is required - Vercube uses ",[290,313,316],{"href":314,"rel":315},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@scalar\u002Fclient-side-rendering",[294],[282,317,318],{},"@scalar\u002Fclient-side-rendering"," to return a self-contained HTML page that loads Scalar from a CDN.",[321,322,324],"h2",{"id":323},"default-behavior","Default behavior",[278,326,327,328,331],{},"After ",[282,329,330],{},"app.addPlugin(SchemaPlugin)",":",[333,334,335,348],"table",{},[336,337,338],"thead",{},[339,340,341,345],"tr",{},[342,343,344],"th",{},"Endpoint",[342,346,347],{},"Description",[349,350,351,365],"tbody",{},[339,352,353,358],{},[354,355,356],"td",{},[282,357,307],{},[354,359,360,361,364],{},"OpenAPI 3.0 JSON (",[282,362,363],{},"SchemaRegistry.generateSchema()",")",[339,366,367,372],{},[354,368,369],{},[282,370,371],{},"\u002F_schema\u002Fdocs",[354,373,374,375],{},"Scalar HTML UI pointing at ",[282,376,307],{},[278,378,379,380,383],{},"Open ",[282,381,382],{},"http:\u002F\u002Flocalhost:\u003Cport>\u002F_schema\u002Fdocs"," while your app is running.",[321,385,33],{"id":386},"configuration",[278,388,389,390,393,394,331],{},"Pass options as the second argument to ",[282,391,392],{},"addPlugin"," or via ",[282,395,396],{},"withPluginOptions",[398,399,404],"pre",{"className":400,"code":401,"language":402,"meta":403,"style":403},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createApp, withPluginOptions } from '@vercube\u002Fcore';\nimport { SchemaPlugin } from '@vercube\u002Fschema';\n\nconst app = await createApp({\n  setup: async (app) => {\n    app.addPlugin(\n      SchemaPlugin,\n      {\n        scalar: {\n          pageTitle: 'Acme API',\n          openApiUrl: '\u002F_schema\u002F',\n          config: {\n            theme: 'purple',\n          },\n        },\n      },\n    );\n  },\n});\n","ts","",[282,405,406,448,471,477,502,528,543,552,558,568,585,601,611,628,634,640,646,654,660],{"__ignoreMap":403},[407,408,411,415,419,423,426,429,432,435,438,442,445],"span",{"class":409,"line":410},"line",1,[407,412,414],{"class":413},"s7zQu","import",[407,416,418],{"class":417},"sMK4o"," {",[407,420,422],{"class":421},"sTEyZ"," createApp",[407,424,425],{"class":417},",",[407,427,428],{"class":421}," withPluginOptions",[407,430,431],{"class":417}," }",[407,433,434],{"class":413}," from",[407,436,437],{"class":417}," '",[407,439,441],{"class":440},"sfazB","@vercube\u002Fcore",[407,443,444],{"class":417},"'",[407,446,447],{"class":417},";\n",[407,449,451,453,455,458,460,462,464,467,469],{"class":409,"line":450},2,[407,452,414],{"class":413},[407,454,418],{"class":417},[407,456,457],{"class":421}," SchemaPlugin",[407,459,431],{"class":417},[407,461,434],{"class":413},[407,463,437],{"class":417},[407,465,466],{"class":440},"@vercube\u002Fschema",[407,468,444],{"class":417},[407,470,447],{"class":417},[407,472,474],{"class":409,"line":473},3,[407,475,476],{"emptyLinePlaceholder":56},"\n",[407,478,480,484,487,490,493,496,499],{"class":409,"line":479},4,[407,481,483],{"class":482},"spNyl","const",[407,485,486],{"class":421}," app ",[407,488,489],{"class":417},"=",[407,491,492],{"class":413}," await",[407,494,422],{"class":495},"s2Zo4",[407,497,498],{"class":421},"(",[407,500,501],{"class":417},"{\n",[407,503,505,508,510,513,516,520,522,525],{"class":409,"line":504},5,[407,506,507],{"class":495},"  setup",[407,509,331],{"class":417},[407,511,512],{"class":482}," async",[407,514,515],{"class":417}," (",[407,517,519],{"class":518},"sHdIc","app",[407,521,364],{"class":417},[407,523,524],{"class":482}," =>",[407,526,527],{"class":417}," {\n",[407,529,531,534,537,539],{"class":409,"line":530},6,[407,532,533],{"class":421},"    app",[407,535,536],{"class":417},".",[407,538,392],{"class":495},[407,540,542],{"class":541},"swJcz","(\n",[407,544,546,549],{"class":409,"line":545},7,[407,547,548],{"class":421},"      SchemaPlugin",[407,550,551],{"class":417},",\n",[407,553,555],{"class":409,"line":554},8,[407,556,557],{"class":417},"      {\n",[407,559,561,564,566],{"class":409,"line":560},9,[407,562,563],{"class":541},"        scalar",[407,565,331],{"class":417},[407,567,527],{"class":417},[407,569,571,574,576,578,581,583],{"class":409,"line":570},10,[407,572,573],{"class":541},"          pageTitle",[407,575,331],{"class":417},[407,577,437],{"class":417},[407,579,580],{"class":440},"Acme API",[407,582,444],{"class":417},[407,584,551],{"class":417},[407,586,588,591,593,595,597,599],{"class":409,"line":587},11,[407,589,590],{"class":541},"          openApiUrl",[407,592,331],{"class":417},[407,594,437],{"class":417},[407,596,307],{"class":440},[407,598,444],{"class":417},[407,600,551],{"class":417},[407,602,604,607,609],{"class":409,"line":603},12,[407,605,606],{"class":541},"          config",[407,608,331],{"class":417},[407,610,527],{"class":417},[407,612,614,617,619,621,624,626],{"class":409,"line":613},13,[407,615,616],{"class":541},"            theme",[407,618,331],{"class":417},[407,620,437],{"class":417},[407,622,623],{"class":440},"purple",[407,625,444],{"class":417},[407,627,551],{"class":417},[407,629,631],{"class":409,"line":630},14,[407,632,633],{"class":417},"          },\n",[407,635,637],{"class":409,"line":636},15,[407,638,639],{"class":417},"        },\n",[407,641,643],{"class":409,"line":642},16,[407,644,645],{"class":417},"      },\n",[407,647,649,652],{"class":409,"line":648},17,[407,650,651],{"class":541},"    )",[407,653,447],{"class":417},[407,655,657],{"class":409,"line":656},18,[407,658,659],{"class":417},"  },\n",[407,661,663,666,668],{"class":409,"line":662},19,[407,664,665],{"class":417},"}",[407,667,364],{"class":421},[407,669,447],{"class":417},[398,671,674],{"className":400,"code":672,"filename":673,"language":402,"meta":403,"style":403},"import { defineConfig, withPluginOptions } from '@vercube\u002Fcore';\nimport { SchemaPlugin } from '@vercube\u002Fschema';\n\nexport default defineConfig({\n  plugins: [\n    withPluginOptions(SchemaPlugin, {\n      scalar: { pageTitle: 'Acme API' },\n    }),\n  ],\n});\n","vercube.config.ts",[282,675,676,701,721,725,739,749,761,784,793,800],{"__ignoreMap":403},[407,677,678,680,682,685,687,689,691,693,695,697,699],{"class":409,"line":410},[407,679,414],{"class":413},[407,681,418],{"class":417},[407,683,684],{"class":421}," defineConfig",[407,686,425],{"class":417},[407,688,428],{"class":421},[407,690,431],{"class":417},[407,692,434],{"class":413},[407,694,437],{"class":417},[407,696,441],{"class":440},[407,698,444],{"class":417},[407,700,447],{"class":417},[407,702,703,705,707,709,711,713,715,717,719],{"class":409,"line":450},[407,704,414],{"class":413},[407,706,418],{"class":417},[407,708,457],{"class":421},[407,710,431],{"class":417},[407,712,434],{"class":413},[407,714,437],{"class":417},[407,716,466],{"class":440},[407,718,444],{"class":417},[407,720,447],{"class":417},[407,722,723],{"class":409,"line":473},[407,724,476],{"emptyLinePlaceholder":56},[407,726,727,730,733,735,737],{"class":409,"line":479},[407,728,729],{"class":413},"export",[407,731,732],{"class":413}," default",[407,734,684],{"class":495},[407,736,498],{"class":421},[407,738,501],{"class":417},[407,740,741,744,746],{"class":409,"line":504},[407,742,743],{"class":541},"  plugins",[407,745,331],{"class":417},[407,747,748],{"class":421}," [\n",[407,750,751,754,757,759],{"class":409,"line":530},[407,752,753],{"class":495},"    withPluginOptions",[407,755,756],{"class":421},"(SchemaPlugin",[407,758,425],{"class":417},[407,760,527],{"class":417},[407,762,763,766,768,770,773,775,777,779,781],{"class":409,"line":545},[407,764,765],{"class":541},"      scalar",[407,767,331],{"class":417},[407,769,418],{"class":417},[407,771,772],{"class":541}," pageTitle",[407,774,331],{"class":417},[407,776,437],{"class":417},[407,778,580],{"class":440},[407,780,444],{"class":417},[407,782,783],{"class":417}," },\n",[407,785,786,789,791],{"class":409,"line":554},[407,787,788],{"class":417},"    }",[407,790,364],{"class":421},[407,792,551],{"class":417},[407,794,795,798],{"class":409,"line":560},[407,796,797],{"class":421},"  ]",[407,799,551],{"class":417},[407,801,802,804,806],{"class":409,"line":570},[407,803,665],{"class":417},[407,805,364],{"class":421},[407,807,447],{"class":417},[809,810,812],"h3",{"id":811},"schemapluginoptions",[282,813,814],{},"SchemaPluginOptions",[333,816,817,832],{},[336,818,819],{},[339,820,821,824,827,830],{},[342,822,823],{},"Option",[342,825,826],{},"Type",[342,828,829],{},"Default",[342,831,347],{},[349,833,834],{},[339,835,836,841,846,849],{},[354,837,838],{},[282,839,840],{},"scalar",[354,842,843],{},[282,844,845],{},"false | SchemaScalarOptions",[354,847,848],{},"enabled",[354,850,851,852,855],{},"Set to ",[282,853,854],{},"false"," to disable the docs route",[809,857,859],{"id":858},"schemascalaroptions",[282,860,861],{},"SchemaScalarOptions",[333,863,864,876],{},[336,865,866],{},[339,867,868,870,872,874],{},[342,869,823],{},[342,871,826],{},[342,873,829],{},[342,875,347],{},[349,877,878,898,920,941],{},[339,879,880,885,890,895],{},[354,881,882],{},[282,883,884],{},"openApiUrl",[354,886,887],{},[282,888,889],{},"string",[354,891,892],{},[282,893,894],{},"'\u002F_schema\u002F'",[354,896,897],{},"URL Scalar fetches for the OpenAPI document",[339,899,900,905,909,914],{},[354,901,902],{},[282,903,904],{},"pageTitle",[354,906,907],{},[282,908,889],{},[354,910,911],{},[282,912,913],{},"'API Reference'",[354,915,916,917],{},"HTML ",[282,918,919],{},"\u003Ctitle>",[339,921,922,927,931,934],{},[354,923,924],{},[282,925,926],{},"cdn",[354,928,929],{},[282,930,889],{},[354,932,933],{},"Scalar default (jsDelivr)",[354,935,936,937,940],{},"CDN URL for the ",[282,938,939],{},"@scalar\u002Fapi-reference"," bundle",[339,942,943,948,953,956],{},[354,944,945],{},[282,946,947],{},"config",[354,949,950],{},[282,951,952],{},"Partial\u003CHtmlRenderingConfiguration>",[354,954,955],{},"-",[354,957,958],{},"Extra Scalar settings (theme, layout, etc.)",[278,960,961,963,964,969,970,973],{},[282,962,947],{}," accepts the same options as Scalar’s ",[290,965,968],{"href":966,"rel":967},"https:\u002F\u002Fscalar.com\u002Fproducts\u002Fapi-references\u002Fconfiguration",[294],"API Reference configuration"," (for example ",[282,971,972],{},"theme",", custom CSS, multiple sources).",[809,975,977],{"id":976},"disable-scalar","Disable Scalar",[278,979,980],{},"Keep OpenAPI JSON, hide the UI:",[398,982,984],{"className":400,"code":983,"language":402,"meta":403,"style":403},"app.addPlugin(SchemaPlugin, { scalar: false });\n",[282,985,986],{"__ignoreMap":403},[407,987,988,990,992,994,996,998,1000,1003,1005,1009,1011,1013],{"class":409,"line":410},[407,989,519],{"class":421},[407,991,536],{"class":417},[407,993,392],{"class":495},[407,995,756],{"class":421},[407,997,425],{"class":417},[407,999,418],{"class":417},[407,1001,1002],{"class":541}," scalar",[407,1004,331],{"class":417},[407,1006,1008],{"class":1007},"sfNiH"," false",[407,1010,431],{"class":417},[407,1012,364],{"class":421},[407,1014,447],{"class":417},[278,1016,1017,1019,1020,536],{},[282,1018,301],{}," then returns ",[287,1021,1022],{},"404",[321,1024,1026],{"id":1025},"custom-openapi-url","Custom OpenAPI URL",[278,1028,1029],{},"If you proxy the spec or mount the app under a prefix, point Scalar at the correct spec URL:",[398,1031,1033],{"className":400,"code":1032,"language":402,"meta":403,"style":403},"app.addPlugin(SchemaPlugin, {\n  scalar: {\n    openApiUrl: '\u002Fapi\u002Fv1\u002F_schema\u002F',\n  },\n});\n",[282,1034,1035,1049,1058,1074,1078],{"__ignoreMap":403},[407,1036,1037,1039,1041,1043,1045,1047],{"class":409,"line":410},[407,1038,519],{"class":421},[407,1040,536],{"class":417},[407,1042,392],{"class":495},[407,1044,756],{"class":421},[407,1046,425],{"class":417},[407,1048,527],{"class":417},[407,1050,1051,1054,1056],{"class":409,"line":450},[407,1052,1053],{"class":541},"  scalar",[407,1055,331],{"class":417},[407,1057,527],{"class":417},[407,1059,1060,1063,1065,1067,1070,1072],{"class":409,"line":473},[407,1061,1062],{"class":541},"    openApiUrl",[407,1064,331],{"class":417},[407,1066,437],{"class":417},[407,1068,1069],{"class":440},"\u002Fapi\u002Fv1\u002F_schema\u002F",[407,1071,444],{"class":417},[407,1073,551],{"class":417},[407,1075,1076],{"class":409,"line":479},[407,1077,659],{"class":417},[407,1079,1080,1082,1084],{"class":409,"line":504},[407,1081,665],{"class":417},[407,1083,364],{"class":421},[407,1085,447],{"class":417},[278,1087,1088,1089,1092,1093,1096],{},"The path must match where ",[282,1090,1091],{},"SchemaController"," is actually served (controller base path is ",[282,1094,1095],{},"\u002F_schema"," unless you change it in the framework).",[321,1098,1100],{"id":1099},"behind-reverse-proxies","Behind reverse proxies",[278,1102,1103,1104,1106,1107,1110],{},"Use an absolute or root-relative ",[282,1105,884],{}," that the ",[287,1108,1109],{},"browser"," can reach, not an internal hostname. For example:",[398,1112,1114],{"className":400,"code":1113,"language":402,"meta":403,"style":403},"scalar: {\n  openApiUrl: 'https:\u002F\u002Fapi.example.com\u002F_schema\u002F',\n}\n",[282,1115,1116,1125,1141],{"__ignoreMap":403},[407,1117,1118,1121,1123],{"class":409,"line":410},[407,1119,840],{"class":1120},"sBMFI",[407,1122,331],{"class":417},[407,1124,527],{"class":417},[407,1126,1127,1130,1132,1134,1137,1139],{"class":409,"line":450},[407,1128,1129],{"class":1120},"  openApiUrl",[407,1131,331],{"class":417},[407,1133,437],{"class":417},[407,1135,1136],{"class":440},"https:\u002F\u002Fapi.example.com\u002F_schema\u002F",[407,1138,444],{"class":417},[407,1140,551],{"class":417},[407,1142,1143],{"class":409,"line":473},[407,1144,1145],{"class":417},"}\n",[321,1147,1149],{"id":1148},"types","Types",[278,1151,1152,1153,331],{},"Exported from ",[282,1154,466],{},[398,1156,1158],{"className":400,"code":1157,"language":402,"meta":403,"style":403},"import type { SchemaPluginOptions, SchemaScalarOptions } from '@vercube\u002Fschema';\n",[282,1159,1160],{"__ignoreMap":403},[407,1161,1162,1164,1167,1169,1172,1174,1177,1179,1181,1183,1185,1187],{"class":409,"line":410},[407,1163,414],{"class":413},[407,1165,1166],{"class":413}," type",[407,1168,418],{"class":417},[407,1170,1171],{"class":421}," SchemaPluginOptions",[407,1173,425],{"class":417},[407,1175,1176],{"class":421}," SchemaScalarOptions",[407,1178,431],{"class":417},[407,1180,434],{"class":413},[407,1182,437],{"class":417},[407,1184,466],{"class":440},[407,1186,444],{"class":417},[407,1188,447],{"class":417},[1190,1191,1192],"style",{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":403,"searchDepth":410,"depth":450,"links":1194},[1195,1196,1201,1202,1203],{"id":323,"depth":450,"text":324},{"id":386,"depth":450,"text":33,"children":1197},[1198,1199,1200],{"id":811,"depth":473,"text":814},{"id":858,"depth":473,"text":861},{"id":976,"depth":473,"text":977},{"id":1025,"depth":450,"text":1026},{"id":1099,"depth":450,"text":1100},{"id":1148,"depth":450,"text":1149},"Interactive API documentation with Scalar API Reference","md",null,{},{"title":139,"description":1204},"Pz-uVulEiZ870kb5LA0YW9s2ZY8Ax-o4Wt54buHfq04",[1211,1213],{"title":70,"path":136,"stem":137,"description":1212,"children":-1},"OpenAPI metadata with the @Schema decorator",{"title":66,"path":148,"stem":149,"description":1214,"children":-1},"Use Vercube controllers and DI inside a Nitro application - experimental",1782807887621]