[{"data":1,"prerenderedAt":714},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fgetting-started\u002Finstallation":176,"\u002Fdocs\u002Fgetting-started\u002Finstallation-surround":709},[4,21,86,158],{"title":5,"path":6,"stem":7,"children":8,"status":11,"icon":20},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,16],{"title":10,"path":6,"stem":7,"status":11},"Introduction",null,{"title":13,"path":14,"stem":15,"status":11},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation",{"title":17,"path":18,"stem":19,"status":11},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","1.docs\u002F1.getting-started\u002F3.quick-start",false,{"title":22,"path":23,"stem":24,"children":25,"status":11,"icon":20},"Core Concepts","\u002Fdocs\u002Fcore-concepts","1.docs\u002F2.core-concepts\u002F1.index",[26,28,32,36,46,50,54,58,62,66,70,74,78,82],{"title":27,"path":23,"stem":24,"status":11},"Overview",{"title":29,"path":30,"stem":31,"status":11},"Response","\u002Fdocs\u002Fcore-concepts\u002Fresponse","1.docs\u002F2.core-concepts\u002F10.response",{"title":33,"path":34,"stem":35,"status":11},"Testing","\u002Fdocs\u002Fcore-concepts\u002Ftesting","1.docs\u002F2.core-concepts\u002F12.testing",{"title":37,"path":38,"stem":39,"children":40,"status":11,"icon":20,"defaultOpen":20},"Decorators","\u002Fdocs\u002Fcore-concepts\u002Fdecorators","1.docs\u002F2.core-concepts\u002F13.decorators\u002F1.index",[41,42],{"title":27,"path":38,"stem":39,"status":11},{"title":43,"path":44,"stem":45,"status":11},"Custom","\u002Fdocs\u002Fcore-concepts\u002Fdecorators\u002Fcustom","1.docs\u002F2.core-concepts\u002F13.decorators\u002F2.custom",{"title":47,"path":48,"stem":49,"status":11},"Discovery Service","\u002Fdocs\u002Fcore-concepts\u002Fdiscovery","1.docs\u002F2.core-concepts\u002F14.discovery",{"title":51,"path":52,"stem":53,"status":11},"Application Lifecycle","\u002Fdocs\u002Fcore-concepts\u002Fapp-lifecycle","1.docs\u002F2.core-concepts\u002F15.app-lifecycle",{"title":55,"path":56,"stem":57,"status":11},"Controllers","\u002Fdocs\u002Fcore-concepts\u002Fcontrollers","1.docs\u002F2.core-concepts\u002F2.controllers",{"title":59,"path":60,"stem":61,"status":11},"Routing","\u002Fdocs\u002Fcore-concepts\u002Frouting","1.docs\u002F2.core-concepts\u002F3.routing",{"title":63,"path":64,"stem":65,"status":11},"Providers","\u002Fdocs\u002Fcore-concepts\u002Fproviders","1.docs\u002F2.core-concepts\u002F4.providers",{"title":67,"path":68,"stem":69,"status":11},"Modules","\u002Fdocs\u002Fcore-concepts\u002Fmodules","1.docs\u002F2.core-concepts\u002F5.modules",{"title":71,"path":72,"stem":73,"status":11},"Configuration","\u002Fdocs\u002Fcore-concepts\u002Fconfiguration","1.docs\u002F2.core-concepts\u002F6.configuration",{"title":75,"path":76,"stem":77,"status":11},"Middleware","\u002Fdocs\u002Fcore-concepts\u002Fmiddleware","1.docs\u002F2.core-concepts\u002F7.middleware",{"title":79,"path":80,"stem":81,"status":11},"Guards","\u002Fdocs\u002Fcore-concepts\u002Fguards","1.docs\u002F2.core-concepts\u002F8.guards",{"title":83,"path":84,"stem":85,"status":11},"Exceptions","\u002Fdocs\u002Fcore-concepts\u002Fexceptions","1.docs\u002F2.core-concepts\u002F9.exceptions",{"title":87,"path":88,"stem":89,"children":90,"status":11,"icon":20},"Packages","\u002Fdocs\u002Fpackages","1.docs\u002F3.packages\u002F1.index",[91,92,97,108,112,130,134,138,142,146,150,154],{"title":27,"path":88,"stem":89,"status":11},{"title":93,"path":94,"stem":95,"status":96},"CLI","\u002Fdocs\u002Fpackages\u002Fcli","1.docs\u002F3.packages\u002F10.cli","experimental",{"title":98,"path":99,"stem":100,"children":101,"status":11,"icon":20,"defaultOpen":20},"Events","\u002Fdocs\u002Fpackages\u002Fmessaging","1.docs\u002F3.packages\u002F11.messaging\u002F1.index",[102,104],{"title":27,"path":99,"stem":100,"status":103},"beta",{"title":105,"path":106,"stem":107,"status":96},"Redis","\u002Fdocs\u002Fpackages\u002Fmessaging\u002Fredis","1.docs\u002F3.packages\u002F11.messaging\u002F2.redis",{"title":109,"path":110,"stem":111,"status":103},"Serve Static","\u002Fdocs\u002Fpackages\u002Fserve-static","1.docs\u002F3.packages\u002F12.serve-static",{"title":113,"path":114,"stem":115,"children":116,"status":11,"icon":20,"defaultOpen":20},"Auth","\u002Fdocs\u002Fpackages\u002Fauth","1.docs\u002F3.packages\u002F2.auth\u002F1.index",[117,118,122,126],{"title":27,"path":114,"stem":115,"status":103},{"title":119,"path":120,"stem":121,"status":103},"JWT Provider","\u002Fdocs\u002Fpackages\u002Fauth\u002Fjwt","1.docs\u002F3.packages\u002F2.auth\u002F2.jwt",{"title":123,"path":124,"stem":125,"status":103},"Local Provider","\u002Fdocs\u002Fpackages\u002Fauth\u002Flocal","1.docs\u002F3.packages\u002F2.auth\u002F3.local",{"title":127,"path":128,"stem":129,"status":96},"OAuth2 Provider","\u002Fdocs\u002Fpackages\u002Fauth\u002Foauth2","1.docs\u002F3.packages\u002F2.auth\u002F4.oauth2",{"title":131,"path":132,"stem":133,"status":103},"JWT","\u002Fdocs\u002Fpackages\u002Fjwt","1.docs\u002F3.packages\u002F3.jwt",{"title":135,"path":136,"stem":137,"status":103},"Drizzle","\u002Fdocs\u002Fpackages\u002Fdrizzle","1.docs\u002F3.packages\u002F4.drizzle",{"title":139,"path":140,"stem":141,"status":103},"Papr","\u002Fdocs\u002Fpackages\u002Fpapr","1.docs\u002F3.packages\u002F5.papr",{"title":143,"path":144,"stem":145,"status":103},"Mongoose","\u002Fdocs\u002Fpackages\u002Fmongoose","1.docs\u002F3.packages\u002F6.mongoose",{"title":147,"path":148,"stem":149,"status":103},"Swagger","\u002Fdocs\u002Fpackages\u002Fswagger","1.docs\u002F3.packages\u002F7.swagger",{"title":151,"path":152,"stem":153,"status":103},"Node Server","\u002Fdocs\u002Fpackages\u002Fnode-server","1.docs\u002F3.packages\u002F8.node-server",{"title":155,"path":156,"stem":157,"status":103},"uWS Server","\u002Fdocs\u002Fpackages\u002Fuws-server","1.docs\u002F3.packages\u002F9.uws-server",{"title":159,"path":160,"stem":161,"children":162,"status":11,"icon":20},"Roadmap","\u002Fdocs\u002Froadmap","1.docs\u002F4.roadmap\u002F1.index",[163,164,168,172],{"title":27,"path":160,"stem":161,"status":11},{"title":165,"path":166,"stem":167,"status":11},"Short term (0-3 months)","\u002Fdocs\u002Froadmap\u002Fshort-term","1.docs\u002F4.roadmap\u002F2.short-term",{"title":169,"path":170,"stem":171,"status":11},"Mid term (3-9 months)","\u002Fdocs\u002Froadmap\u002Fmid-term","1.docs\u002F4.roadmap\u002F3.mid-term",{"title":173,"path":174,"stem":175,"status":11},"Long term (9-12+ months)","\u002Fdocs\u002Froadmap\u002Flong-term","1.docs\u002F4.roadmap\u002F4.long-term",{"id":177,"title":13,"body":178,"description":703,"extension":704,"meta":705,"navigation":706,"path":14,"seo":707,"status":11,"stem":15,"__hash__":708},"docs\u002F1.docs\u002F1.getting-started\u002F2.installation.md",{"type":179,"value":180,"toc":691},"minimark",[181,186,198,284,297,300,352,355,359,364,421,425,432,436,443,447,502,506,571,575,578,681,687],[182,183,185],"h2",{"id":184},"scaffold-with-cli-recommended","Scaffold with CLI (recommended)",[187,188,189,190,197],"p",{},"The fastest way to start a new project is with the ",[191,192,193],"a",{"href":94},[194,195,196],"code",{},"@miiajs\u002Fcli",":",[199,200,201,230,247,266],"code-group",{},[202,203,209],"pre",{"className":204,"code":205,"filename":206,"language":207,"meta":208,"style":208},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bunx @miiajs\u002Fcli new my-app\n","bun","bash","",[194,210,211],{"__ignoreMap":208},[212,213,216,220,224,227],"span",{"class":214,"line":215},"line",1,[212,217,219],{"class":218},"sBMFI","bunx",[212,221,223],{"class":222},"sfazB"," @miiajs\u002Fcli",[212,225,226],{"class":222}," new",[212,228,229],{"class":222}," my-app\n",[202,231,234],{"className":204,"code":232,"filename":233,"language":207,"meta":208,"style":208},"npx @miiajs\u002Fcli new my-app\n","npm",[194,235,236],{"__ignoreMap":208},[212,237,238,241,243,245],{"class":214,"line":215},[212,239,240],{"class":218},"npx",[212,242,223],{"class":222},[212,244,226],{"class":222},[212,246,229],{"class":222},[202,248,251],{"className":204,"code":249,"filename":250,"language":207,"meta":208,"style":208},"pnpm dlx @miiajs\u002Fcli new my-app\n","pnpm",[194,252,253],{"__ignoreMap":208},[212,254,255,257,260,262,264],{"class":214,"line":215},[212,256,250],{"class":218},[212,258,259],{"class":222}," dlx",[212,261,223],{"class":222},[212,263,226],{"class":222},[212,265,229],{"class":222},[202,267,270],{"className":204,"code":268,"filename":269,"language":207,"meta":208,"style":208},"yarn dlx @miiajs\u002Fcli new my-app\n","yarn",[194,271,272],{"__ignoreMap":208},[212,273,274,276,278,280,282],{"class":214,"line":215},[212,275,269],{"class":218},[212,277,259],{"class":222},[212,279,223],{"class":222},[212,281,226],{"class":222},[212,283,229],{"class":222},[202,285,287],{"className":204,"code":286,"language":207,"meta":208,"style":208},"cd my-app\n",[194,288,289],{"__ignoreMap":208},[212,290,291,295],{"class":214,"line":215},[212,292,294],{"class":293},"s2Zo4","cd",[212,296,229],{"class":222},[187,298,299],{},"The CLI will prompt you to choose a runtime (Bun, Deno, or Node.js), generate the project structure, install dependencies, and configure TypeScript - all in one step. Then run:",[199,301,302,317,330,341],{},[202,303,305],{"className":204,"code":304,"filename":206,"language":207,"meta":208,"style":208},"bun run dev\n",[194,306,307],{"__ignoreMap":208},[212,308,309,311,314],{"class":214,"line":215},[212,310,206],{"class":218},[212,312,313],{"class":222}," run",[212,315,316],{"class":222}," dev\n",[202,318,320],{"className":204,"code":319,"filename":233,"language":207,"meta":208,"style":208},"npm run dev\n",[194,321,322],{"__ignoreMap":208},[212,323,324,326,328],{"class":214,"line":215},[212,325,233],{"class":218},[212,327,313],{"class":222},[212,329,316],{"class":222},[202,331,333],{"className":204,"code":332,"filename":250,"language":207,"meta":208,"style":208},"pnpm dev\n",[194,334,335],{"__ignoreMap":208},[212,336,337,339],{"class":214,"line":215},[212,338,250],{"class":218},[212,340,316],{"class":222},[202,342,344],{"className":204,"code":343,"filename":269,"language":207,"meta":208,"style":208},"yarn dev\n",[194,345,346],{"__ignoreMap":208},[212,347,348,350],{"class":214,"line":215},[212,349,269],{"class":218},[212,351,316],{"class":222},[187,353,354],{},"If you prefer to set things up manually, follow the steps below.",[182,356,358],{"id":357},"manual-setup","Manual setup",[360,361,363],"h3",{"id":362},"core-package","Core package",[199,365,366,381,395,408],{},[202,367,369],{"className":204,"code":368,"filename":206,"language":207,"meta":208,"style":208},"bun add @miiajs\u002Fcore\n",[194,370,371],{"__ignoreMap":208},[212,372,373,375,378],{"class":214,"line":215},[212,374,206],{"class":218},[212,376,377],{"class":222}," add",[212,379,380],{"class":222}," @miiajs\u002Fcore\n",[202,382,384],{"className":204,"code":383,"filename":233,"language":207,"meta":208,"style":208},"npm install @miiajs\u002Fcore\n",[194,385,386],{"__ignoreMap":208},[212,387,388,390,393],{"class":214,"line":215},[212,389,233],{"class":218},[212,391,392],{"class":222}," install",[212,394,380],{"class":222},[202,396,398],{"className":204,"code":397,"filename":250,"language":207,"meta":208,"style":208},"pnpm add @miiajs\u002Fcore\n",[194,399,400],{"__ignoreMap":208},[212,401,402,404,406],{"class":214,"line":215},[212,403,250],{"class":218},[212,405,377],{"class":222},[212,407,380],{"class":222},[202,409,411],{"className":204,"code":410,"filename":269,"language":207,"meta":208,"style":208},"yarn add @miiajs\u002Fcore\n",[194,412,413],{"__ignoreMap":208},[212,414,415,417,419],{"class":214,"line":215},[212,416,269],{"class":218},[212,418,377],{"class":222},[212,420,380],{"class":222},[182,422,424],{"id":423},"server-adapters","Server adapters",[187,426,427,428,431],{},"MiiaJS exposes a standard ",[194,429,430],{},"fetch"," handler. Choose a server adapter for your runtime:",[360,433,435],{"id":434},"bun-deno","Bun & Deno",[187,437,438,439,442],{},"No additional package needed. ",[194,440,441],{},"app.listen()"," auto-detects the runtime.",[360,444,446],{"id":445},"nodejs","Node.js",[199,448,449,463,476,489],{},[202,450,452],{"className":204,"code":451,"filename":206,"language":207,"meta":208,"style":208},"bun add @miiajs\u002Fnode-server\n",[194,453,454],{"__ignoreMap":208},[212,455,456,458,460],{"class":214,"line":215},[212,457,206],{"class":218},[212,459,377],{"class":222},[212,461,462],{"class":222}," @miiajs\u002Fnode-server\n",[202,464,466],{"className":204,"code":465,"filename":233,"language":207,"meta":208,"style":208},"npm install @miiajs\u002Fnode-server\n",[194,467,468],{"__ignoreMap":208},[212,469,470,472,474],{"class":214,"line":215},[212,471,233],{"class":218},[212,473,392],{"class":222},[212,475,462],{"class":222},[202,477,479],{"className":204,"code":478,"filename":250,"language":207,"meta":208,"style":208},"pnpm add @miiajs\u002Fnode-server\n",[194,480,481],{"__ignoreMap":208},[212,482,483,485,487],{"class":214,"line":215},[212,484,250],{"class":218},[212,486,377],{"class":222},[212,488,462],{"class":222},[202,490,492],{"className":204,"code":491,"filename":269,"language":207,"meta":208,"style":208},"yarn add @miiajs\u002Fnode-server\n",[194,493,494],{"__ignoreMap":208},[212,495,496,498,500],{"class":214,"line":215},[212,497,269],{"class":218},[212,499,377],{"class":222},[212,501,462],{"class":222},[360,503,505],{"id":504},"uwebsocketsjs","uWebSockets.js",[199,507,508,525,541,556],{},[202,509,511],{"className":204,"code":510,"filename":206,"language":207,"meta":208,"style":208},"bun add @miiajs\u002Fuws-server uWebSockets.js@uNetworking\u002FuWebSockets.js#v20.64.0\n",[194,512,513],{"__ignoreMap":208},[212,514,515,517,519,522],{"class":214,"line":215},[212,516,206],{"class":218},[212,518,377],{"class":222},[212,520,521],{"class":222}," @miiajs\u002Fuws-server",[212,523,524],{"class":222}," uWebSockets.js@uNetworking\u002FuWebSockets.js#v20.64.0\n",[202,526,528],{"className":204,"code":527,"filename":233,"language":207,"meta":208,"style":208},"npm install @miiajs\u002Fuws-server uNetworking\u002FuWebSockets.js#v20.64.0\n",[194,529,530],{"__ignoreMap":208},[212,531,532,534,536,538],{"class":214,"line":215},[212,533,233],{"class":218},[212,535,392],{"class":222},[212,537,521],{"class":222},[212,539,540],{"class":222}," uNetworking\u002FuWebSockets.js#v20.64.0\n",[202,542,544],{"className":204,"code":543,"filename":250,"language":207,"meta":208,"style":208},"pnpm add @miiajs\u002Fuws-server uNetworking\u002FuWebSockets.js#v20.64.0\n",[194,545,546],{"__ignoreMap":208},[212,547,548,550,552,554],{"class":214,"line":215},[212,549,250],{"class":218},[212,551,377],{"class":222},[212,553,521],{"class":222},[212,555,540],{"class":222},[202,557,559],{"className":204,"code":558,"filename":269,"language":207,"meta":208,"style":208},"yarn add @miiajs\u002Fuws-server uNetworking\u002FuWebSockets.js#v20.64.0\n",[194,560,561],{"__ignoreMap":208},[212,562,563,565,567,569],{"class":214,"line":215},[212,564,269],{"class":218},[212,566,377],{"class":222},[212,568,521],{"class":222},[212,570,540],{"class":222},[182,572,574],{"id":573},"typescript-configuration","TypeScript configuration",[187,576,577],{},"MiiaJS requires ES2025 for TC39 decorator support:",[202,579,583],{"className":580,"code":581,"language":582,"meta":208,"style":208},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"compilerOptions\": {\n    \"target\": \"ES2025\",\n    \"module\": \"nodenext\",\n    \"verbatimModuleSyntax\": true\n  }\n}\n","json",[194,584,585,591,609,633,654,669,675],{"__ignoreMap":208},[212,586,587],{"class":214,"line":215},[212,588,590],{"class":589},"sMK4o","{\n",[212,592,594,597,601,604,606],{"class":214,"line":593},2,[212,595,596],{"class":589},"  \"",[212,598,600],{"class":599},"spNyl","compilerOptions",[212,602,603],{"class":589},"\"",[212,605,197],{"class":589},[212,607,608],{"class":589}," {\n",[212,610,612,615,618,620,622,625,628,630],{"class":214,"line":611},3,[212,613,614],{"class":589},"    \"",[212,616,617],{"class":218},"target",[212,619,603],{"class":589},[212,621,197],{"class":589},[212,623,624],{"class":589}," \"",[212,626,627],{"class":222},"ES2025",[212,629,603],{"class":589},[212,631,632],{"class":589},",\n",[212,634,636,638,641,643,645,647,650,652],{"class":214,"line":635},4,[212,637,614],{"class":589},[212,639,640],{"class":218},"module",[212,642,603],{"class":589},[212,644,197],{"class":589},[212,646,624],{"class":589},[212,648,649],{"class":222},"nodenext",[212,651,603],{"class":589},[212,653,632],{"class":589},[212,655,657,659,662,664,666],{"class":214,"line":656},5,[212,658,614],{"class":589},[212,660,661],{"class":218},"verbatimModuleSyntax",[212,663,603],{"class":589},[212,665,197],{"class":589},[212,667,668],{"class":589}," true\n",[212,670,672],{"class":214,"line":671},6,[212,673,674],{"class":589},"  }\n",[212,676,678],{"class":214,"line":677},7,[212,679,680],{"class":589},"}\n",[187,682,683,684,686],{},"For the full list of packages, see ",[191,685,87],{"href":88},".",[688,689,690],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":208,"searchDepth":593,"depth":593,"links":692},[693,694,697,702],{"id":184,"depth":593,"text":185},{"id":357,"depth":593,"text":358,"children":695},[696],{"id":362,"depth":611,"text":363},{"id":423,"depth":593,"text":424,"children":698},[699,700,701],{"id":434,"depth":611,"text":435},{"id":445,"depth":611,"text":446},{"id":504,"depth":611,"text":505},{"id":573,"depth":593,"text":574},"Install MiiaJS and a server adapter for your runtime.","md",{},true,{"title":13,"description":703},"A_F0_GMDJVakJlnsJdvT8xRSCJ45_QPE9lo8AOfMwAA",[710,712],{"title":10,"path":6,"stem":7,"description":711,"children":-1},"MiiaJS is a lightweight, decorator-driven HTTP framework for TypeScript.",{"title":17,"path":18,"stem":19,"description":713,"children":-1},"Build your first MiiaJS API in under a minute.",1778575270759]