[{"data":1,"prerenderedAt":386},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fcreating-layers":28,"\u002Fgetting-started\u002Fcreating-layers-surround":383},[4,9],{"title":5,"path":6,"stem":7,"icon":8},"What are Layers?","\u002Flayers","0.layers","i-lucide-layers-3",{"title":10,"path":11,"stem":12,"children":13,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[14,17,22],{"title":15,"path":11,"stem":12,"icon":16},"Introduction","i-lucide-house",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"Creating Layers","\u002Fgetting-started\u002Fcreating-layers","1.getting-started\u002F3.creating-layers","i-lucide-folder-plus",false,{"id":29,"title":23,"body":30,"description":376,"extension":377,"links":378,"meta":379,"navigation":380,"path":24,"seo":381,"stem":25,"__hash__":382},"docs\u002F1.getting-started\u002F3.creating-layers.md",{"type":31,"value":32,"toc":369},"minimark",[33,46,51,100,104,228,232,251,254,271,274,282,285,302,304,310,314,317,333,337,340,362,365],[34,35,36,40,41,45],"p",{},[37,38,39],"code",{},"nuxt-osdd"," includes a generator to create ",[42,43,44],"strong",{},"one layer at a time"," in the correct OSDD bucket.",[47,48,50],"h2",{"id":49},"command","Command",[52,53,59],"pre",{"className":54,"code":55,"filename":56,"language":57,"meta":58,"style":58},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxt-osdd osdd:layer \u003Clayer-name> [--technical|--functional]\n","Terminal","bash","",[37,60,61],{"__ignoreMap":58},[62,63,66,70,74,77,81,84,88,91,94,97],"span",{"class":64,"line":65},"line",1,[62,67,69],{"class":68},"sBMFI","npx",[62,71,73],{"class":72},"sfazB"," nuxt-osdd",[62,75,76],{"class":72}," osdd:layer",[62,78,80],{"class":79},"sMK4o"," \u003C",[62,82,83],{"class":72},"layer-nam",[62,85,87],{"class":86},"sTEyZ","e",[62,89,90],{"class":79},">",[62,92,93],{"class":86}," [--technical",[62,95,96],{"class":79},"|",[62,98,99],{"class":68},"--functional]\n",[47,101,103],{"id":102},"examples","Examples",[52,105,107],{"className":54,"code":106,"filename":56,"language":57,"meta":58,"style":58},"# Technical layers\nnpx nuxt-osdd osdd:layer Authentication --technical\nnpx nuxt-osdd osdd:layer Permissions --technical\n\n# Functional layers\nnpx nuxt-osdd osdd:layer Contracts --functional\nnpx nuxt-osdd osdd:layer Posts --functional\n\n# Interactive mode\nnpx nuxt-osdd osdd:layer\n\n# Help\nnpx nuxt-osdd --help\n",[37,108,109,115,130,144,151,157,172,186,191,197,207,212,218],{"__ignoreMap":58},[62,110,111],{"class":64,"line":65},[62,112,114],{"class":113},"sHwdD","# Technical layers\n",[62,116,118,120,122,124,127],{"class":64,"line":117},2,[62,119,69],{"class":68},[62,121,73],{"class":72},[62,123,76],{"class":72},[62,125,126],{"class":72}," Authentication",[62,128,129],{"class":72}," --technical\n",[62,131,133,135,137,139,142],{"class":64,"line":132},3,[62,134,69],{"class":68},[62,136,73],{"class":72},[62,138,76],{"class":72},[62,140,141],{"class":72}," Permissions",[62,143,129],{"class":72},[62,145,147],{"class":64,"line":146},4,[62,148,150],{"emptyLinePlaceholder":149},true,"\n",[62,152,154],{"class":64,"line":153},5,[62,155,156],{"class":113},"# Functional layers\n",[62,158,160,162,164,166,169],{"class":64,"line":159},6,[62,161,69],{"class":68},[62,163,73],{"class":72},[62,165,76],{"class":72},[62,167,168],{"class":72}," Contracts",[62,170,171],{"class":72}," --functional\n",[62,173,175,177,179,181,184],{"class":64,"line":174},7,[62,176,69],{"class":68},[62,178,73],{"class":72},[62,180,76],{"class":72},[62,182,183],{"class":72}," Posts",[62,185,171],{"class":72},[62,187,189],{"class":64,"line":188},8,[62,190,150],{"emptyLinePlaceholder":149},[62,192,194],{"class":64,"line":193},9,[62,195,196],{"class":113},"# Interactive mode\n",[62,198,200,202,204],{"class":64,"line":199},10,[62,201,69],{"class":68},[62,203,73],{"class":72},[62,205,206],{"class":72}," osdd:layer\n",[62,208,210],{"class":64,"line":209},11,[62,211,150],{"emptyLinePlaceholder":149},[62,213,215],{"class":64,"line":214},12,[62,216,217],{"class":113},"# Help\n",[62,219,221,223,225],{"class":64,"line":220},13,[62,222,69],{"class":68},[62,224,73],{"class":72},[62,226,227],{"class":72}," --help\n",[47,229,231],{"id":230},"what-gets-created","What gets created?",[34,233,234,235,238,239,242,243,246,247,250],{},"A generation command does ",[42,236,237],{},"not"," create both ",[37,240,241],{},"functional\u002F"," and ",[37,244,245],{},"technical\u002F"," every time.\nIt creates ",[42,248,249],{},"one layer"," in the appropriate root folder.",[34,252,253],{},"Example:",[52,255,257],{"className":54,"code":256,"filename":56,"language":57,"meta":58,"style":58},"npx nuxt-osdd osdd:layer Contracts --functional\n",[37,258,259],{"__ignoreMap":58},[62,260,261,263,265,267,269],{"class":64,"line":65},[62,262,69],{"class":68},[62,264,73],{"class":72},[62,266,76],{"class":72},[62,268,168],{"class":72},[62,270,171],{"class":72},[34,272,273],{},"creates:",[52,275,280],{"className":276,"code":278,"language":279,"meta":58},[277],"language-text","functional\u002F\n  Contracts\u002F\n    nuxt.config.ts\n    app\u002F\n    README.md\n","text",[37,281,278],{"__ignoreMap":58},[34,283,284],{},"And:",[52,286,288],{"className":54,"code":287,"filename":56,"language":57,"meta":58,"style":58},"npx nuxt-osdd osdd:layer Authentication --technical\n",[37,289,290],{"__ignoreMap":58},[62,291,292,294,296,298,300],{"class":64,"line":65},[62,293,69],{"class":68},[62,295,73],{"class":72},[62,297,76],{"class":72},[62,299,126],{"class":72},[62,301,129],{"class":72},[34,303,273],{},[52,305,308],{"className":306,"code":307,"language":279,"meta":58},[277],"technical\u002F\n  Authentication\u002F\n    nuxt.config.ts\n    app\u002F\n    README.md\n",[37,309,307],{"__ignoreMap":58},[47,311,313],{"id":312},"which-flag-should-i-use","Which flag should I use?",[34,315,316],{},"Use this rule of thumb:",[318,319,320,327],"ul",{},[321,322,323,326],"li",{},[37,324,325],{},"--technical"," for shared infrastructure: auth, permissions, database, logging, API clients",[321,328,329,332],{},[37,330,331],{},"--functional"," for business and product features: users, contracts, orders, billing, posts",[47,334,336],{"id":335},"why-the-generator-matters","Why the generator matters",[34,338,339],{},"The generator gives you a consistent starting point for each new layer:",[318,341,342,348,355],{},[321,343,344,345],{},"a valid Nuxt layer via ",[37,346,347],{},"nuxt.config.ts",[321,349,350,351,354],{},"a local ",[37,352,353],{},"app\u002F"," directory for components, pages, composables, and assets",[321,356,357,358,361],{},"a ",[37,359,360],{},"README.md"," to document the layer's responsibility",[34,363,364],{},"That way, every new layer starts with the same OSDD conventions from day one.",[366,367,368],"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 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 .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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":58,"searchDepth":65,"depth":117,"links":370},[371,372,373,374,375],{"id":49,"depth":117,"text":50},{"id":102,"depth":117,"text":103},{"id":230,"depth":117,"text":231},{"id":312,"depth":117,"text":313},{"id":335,"depth":117,"text":336},"Use the nuxt-osdd CLI to scaffold functional and technical Nuxt layers.","md",null,{},{"icon":26},{"title":23,"description":376},"PlWeErna_16TiW4SrTW9wVloxazy7ymbnLedyJzl9K4",[384,378],{"title":18,"path":19,"stem":20,"description":385,"icon":21,"children":-1},"Install nuxt-osdd and configure your Nuxt application for OSDD layers.",1775077124009]