[{"data":1,"prerenderedAt":269},["ShallowReactive",2],{"navigation_docs":3,"-modules-users":69,"-modules-users-surround":264},[4,20,30,39,60],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Overview",false,"\u002Fgetting-started","1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Local Development","\u002Fgetting-started\u002Flocal-development","1.getting-started\u002F3.local-development","i-lucide-terminal",{"title":21,"path":22,"stem":23,"children":24,"page":6},"Applications","\u002Fapplications","2.applications",[25],{"title":26,"path":27,"stem":28,"icon":29},"Website","\u002Fapplications\u002Fwebsite","2.applications\u002F1.website","i-lucide-layout-dashboard",{"title":31,"path":32,"stem":33,"children":34},"Layers","\u002Flayers","3.layers",[35],{"title":36,"path":37,"stem":38},"Base Layer","\u002Flayers\u002Fbase","3.layers\u002F1.base",{"title":40,"path":41,"stem":42,"children":43},"Modules","\u002Fmodules","4.modules",[44,48,52,56],{"title":45,"path":46,"stem":47},"Users Module","\u002Fmodules\u002Fusers","4.modules\u002F1.users",{"title":49,"path":50,"stem":51},"OAuth Server Module","\u002Fmodules\u002Foauth-server","4.modules\u002F2.oauth-server",{"title":53,"path":54,"stem":55},"UI Module","\u002Fmodules\u002Fui","4.modules\u002F3.ui",{"title":57,"path":58,"stem":59},"Module Kit","\u002Fmodules\u002Fmodule-kit","4.modules\u002Fmodule-kit",{"title":61,"path":62,"stem":63,"children":64},"Packages","\u002Fpackages","5.packages",[65],{"title":66,"path":67,"stem":68},"CLI","\u002Fpackages\u002Fcli","5.packages\u002F4.cli",{"id":70,"title":45,"body":71,"description":257,"extension":258,"links":259,"meta":260,"navigation":261,"path":46,"seo":262,"stem":47,"__hash__":263},"docs\u002F4.modules\u002F1.users.md",{"type":72,"value":73,"toc":251},"minimark",[74,82,93,98,105,186,201,205,236,247],[75,76,78],"h2",{"id":77},"frigear-nuusers",[79,80,81],"code",{},"@frigear-nu\u002Fusers",[83,84,85,86,92],"p",{},"This Nuxt module provides user-related functionality. The website includes it as a workspace dependency. It uses\n",[87,88,89],"a",{"href":58},[79,90,91],{},"@frigear-nu\u002Fmodule-kit"," to register its database schema.",[94,95,97],"h3",{"id":96},"module-modes","Module modes",[83,99,100,101,104],{},"The module supports two modes, configured in ",[79,102,103],{},"nuxt.config.ts",":",[106,107,112],"pre",{"className":108,"code":109,"language":110,"meta":111,"style":111},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  users: {\n    mode: 'server',\n  },\n})\n","ts","",[79,113,114,138,150,171,177],{"__ignoreMap":111},[115,116,119,123,126,130,134],"span",{"class":117,"line":118},"line",1,[115,120,122],{"class":121},"s7zQu","export",[115,124,125],{"class":121}," default",[115,127,129],{"class":128},"s2Zo4"," defineNuxtConfig",[115,131,133],{"class":132},"sTEyZ","(",[115,135,137],{"class":136},"sMK4o","{\n",[115,139,141,145,147],{"class":117,"line":140},2,[115,142,144],{"class":143},"swJcz","  users",[115,146,104],{"class":136},[115,148,149],{"class":136}," {\n",[115,151,153,156,158,161,165,168],{"class":117,"line":152},3,[115,154,155],{"class":143},"    mode",[115,157,104],{"class":136},[115,159,160],{"class":136}," '",[115,162,164],{"class":163},"sfazB","server",[115,166,167],{"class":136},"'",[115,169,170],{"class":136},",\n",[115,172,174],{"class":117,"line":173},4,[115,175,176],{"class":136},"  },\n",[115,178,180,183],{"class":117,"line":179},5,[115,181,182],{"class":136},"}",[115,184,185],{"class":132},")\n",[187,188,189,195],"ul",{},[190,191,192,194],"li",{},[79,193,164],{}," is the default and registers the module's user table schema.",[190,196,197,200],{},[79,198,199],{},"client"," is for applications that rely on a central authentication server rather than managing authentication\nthemselves.",[94,202,204],{"id":203},"user-table","User table",[83,206,207,208,211,212,215,216,219,220,223,224,227,228,231,232,235],{},"The default SQLite schema includes an auto-incrementing ",[79,209,210],{},"id",", a required ",[79,213,214],{},"name",", a unique required ",[79,217,218],{},"email",", optional\n",[79,221,222],{},"password"," and ",[79,225,226],{},"avatar"," fields, and ",[79,229,230],{},"createdAt"," \u002F ",[79,233,234],{},"updatedAt"," timestamps. Other modules can add columns through the\nmodule-kit schema extension helpers.",[83,237,238,239,242,243,246],{},"The server mode also supports schema configuration through ",[79,240,241],{},"users.settings.schemas.users",". See the\n",[87,244,245],{"href":58},"module-kit guide"," for how table extensions are registered and merged.",[248,249,250],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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);}",{"title":111,"searchDepth":140,"depth":140,"links":252},[253],{"id":77,"depth":140,"text":81,"children":254},[255,256],{"id":96,"depth":152,"text":97},{"id":203,"depth":152,"text":204},"User module and database schema used by Frigear applications.","md",null,{},true,{"title":45,"description":257},"sDvVq-o6ykk2E4UdaMEBhKX3RbVhzoJrWQQVh8h4FlA",[265,267],{"title":40,"path":41,"stem":42,"children":-1,"description":266},"Nuxt modules that add features and shared behavior to Frigear applications.",{"title":49,"path":50,"stem":51,"description":268,"children":-1},"OAuth and OpenID Connect endpoints provided by the OAuth server module.",1791115849669]