[{"data":1,"prerenderedAt":459},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":55,"-getting-started-introduction-surround":456},[4,25],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Local Postgres & PostgREST","\u002Fgetting-started\u002Flocal-postgrest","1.getting-started\u002F3.local-postgrest","i-simple-icons-docker",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Guide","\u002Fguide","2.guide",[30,35,40,45,50],{"title":31,"path":32,"stem":33,"icon":34},"Configuration","\u002Fguide\u002Fconfiguration","2.guide\u002F1.configuration","i-lucide-settings",{"title":36,"path":37,"stem":38,"icon":39},"Composables","\u002Fguide\u002Fcomposables","2.guide\u002F2.composables","i-lucide-code",{"title":41,"path":42,"stem":43,"icon":44},"Authentication","\u002Fguide\u002Fauthentication","2.guide\u002F3.authentication","i-lucide-key-round",{"title":46,"path":47,"stem":48,"icon":49},"Types","\u002Fguide\u002Ftypes","2.guide\u002F4.types","i-lucide-braces",{"title":51,"path":52,"stem":53,"icon":54},"Coming from Supabase","\u002Fguide\u002Fmigrating-from-supabase","2.guide\u002F5.migrating-from-supabase","i-lucide-arrow-right-left",{"id":56,"title":11,"body":57,"description":449,"extension":450,"links":451,"meta":452,"navigation":453,"path":12,"seo":454,"stem":13,"__hash__":455},"docs\u002F1.getting-started\u002F1.introduction.md",{"type":58,"value":59,"toc":445},"minimark",[60,76,326,331,342,346,420,441],[61,62,63,67,68,75],"p",{},[64,65,66],"strong",{},"Nuxt PostgREST"," connects a Nuxt app to a self-hosted ",[69,70,74],"a",{"href":71,"rel":72},"https:\u002F\u002Fpostgrest.org",[73],"nofollow","PostgREST"," API. It gives you typed query builders in components and server routes, forwards the logged-in user's JWT so Postgres row-level security (RLS) applies, and provides a server-only admin client for privileged work.",[77,78,84],"pre",{"className":79,"code":80,"filename":81,"language":82,"meta":83,"style":83},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst postgrest = usePostgrest()\n\nconst { data: todos } = await useAsyncData('todos', async () => {\n  const { data, error } = await postgrest.from('todos').select('id, title').order('id')\n  if (error) throw error\n  return data\n})\n\u003C\u002Fscript>\n","pages\u002Ftodos.vue","vue","",[85,86,87,122,141,148,204,279,300,309,316],"code",{"__ignoreMap":83},[88,89,92,96,100,104,107,110,113,117,119],"span",{"class":90,"line":91},"line",1,[88,93,95],{"class":94},"sMK4o","\u003C",[88,97,99],{"class":98},"swJcz","script",[88,101,103],{"class":102},"spNyl"," setup",[88,105,106],{"class":102}," lang",[88,108,109],{"class":94},"=",[88,111,112],{"class":94},"\"",[88,114,116],{"class":115},"sfazB","ts",[88,118,112],{"class":94},[88,120,121],{"class":94},">\n",[88,123,125,128,132,134,138],{"class":90,"line":124},2,[88,126,127],{"class":102},"const",[88,129,131],{"class":130},"sTEyZ"," postgrest ",[88,133,109],{"class":94},[88,135,137],{"class":136},"s2Zo4"," usePostgrest",[88,139,140],{"class":130},"()\n",[88,142,144],{"class":90,"line":143},3,[88,145,147],{"emptyLinePlaceholder":146},true,"\n",[88,149,151,153,156,159,162,165,168,171,175,178,181,184,187,189,192,195,198,201],{"class":90,"line":150},4,[88,152,127],{"class":102},[88,154,155],{"class":94}," {",[88,157,158],{"class":98}," data",[88,160,161],{"class":94},":",[88,163,164],{"class":130}," todos ",[88,166,167],{"class":94},"}",[88,169,170],{"class":94}," =",[88,172,174],{"class":173},"s7zQu"," await",[88,176,177],{"class":136}," useAsyncData",[88,179,180],{"class":130},"(",[88,182,183],{"class":94},"'",[88,185,186],{"class":115},"todos",[88,188,183],{"class":94},[88,190,191],{"class":94},",",[88,193,194],{"class":102}," async",[88,196,197],{"class":94}," ()",[88,199,200],{"class":102}," =>",[88,202,203],{"class":94}," {\n",[88,205,207,210,212,214,216,219,222,224,226,229,232,235,237,239,241,243,246,248,251,253,255,258,260,262,264,267,269,271,274,276],{"class":90,"line":206},5,[88,208,209],{"class":102},"  const",[88,211,155],{"class":94},[88,213,158],{"class":130},[88,215,191],{"class":94},[88,217,218],{"class":130}," error",[88,220,221],{"class":94}," }",[88,223,170],{"class":94},[88,225,174],{"class":173},[88,227,228],{"class":130}," postgrest",[88,230,231],{"class":94},".",[88,233,234],{"class":136},"from",[88,236,180],{"class":98},[88,238,183],{"class":94},[88,240,186],{"class":115},[88,242,183],{"class":94},[88,244,245],{"class":98},")",[88,247,231],{"class":94},[88,249,250],{"class":136},"select",[88,252,180],{"class":98},[88,254,183],{"class":94},[88,256,257],{"class":115},"id, title",[88,259,183],{"class":94},[88,261,245],{"class":98},[88,263,231],{"class":94},[88,265,266],{"class":136},"order",[88,268,180],{"class":98},[88,270,183],{"class":94},[88,272,273],{"class":115},"id",[88,275,183],{"class":94},[88,277,278],{"class":98},")\n",[88,280,282,285,288,291,294,297],{"class":90,"line":281},6,[88,283,284],{"class":173},"  if",[88,286,287],{"class":98}," (",[88,289,290],{"class":130},"error",[88,292,293],{"class":98},") ",[88,295,296],{"class":173},"throw",[88,298,299],{"class":130}," error\n",[88,301,303,306],{"class":90,"line":302},7,[88,304,305],{"class":173},"  return",[88,307,308],{"class":130}," data\n",[88,310,312,314],{"class":90,"line":311},8,[88,313,167],{"class":94},[88,315,278],{"class":130},[88,317,319,322,324],{"class":90,"line":318},9,[88,320,321],{"class":94},"\u003C\u002F",[88,323,99],{"class":98},[88,325,121],{"class":94},[327,328,330],"h2",{"id":329},"when-to-use-it","When to use it",[61,332,333,334,341],{},"Use this module if you run PostgREST yourself (Docker, Kubernetes, a VPS) and want a Nuxt-native way to call it. If you are on Supabase, use ",[69,335,338],{"href":336,"rel":337},"https:\u002F\u002Fsupabase.nuxtjs.org",[73],[85,339,340],{},"@nuxtjs\u002Fsupabase"," instead: it covers Supabase Auth, Storage and Realtime, which this module intentionally does not.",[327,343,345],{"id":344},"what-you-get","What you get",[347,348,349,365],"table",{},[350,351,352],"thead",{},[353,354,355,359,362],"tr",{},[356,357,358],"th",{},"Composable",[356,360,361],{},"Where",[356,363,364],{},"Acts as",[366,367,368,382,395,407],"tbody",{},[353,369,370,376,379],{},[371,372,373],"td",{},[85,374,375],{},"usePostgrest()",[371,377,378],{},"Components, pages, plugins (client + SSR)",[371,380,381],{},"The current user, or anon",[353,383,384,389,392],{},[371,385,386],{},[85,387,388],{},"usePostgrestUser(event)",[371,390,391],{},"Server routes",[371,393,394],{},"The requesting user, or anon",[353,396,397,402,404],{},[371,398,399],{},[85,400,401],{},"usePostgrestAdmin()",[371,403,391],{},[371,405,406],{},"Your privileged secret role",[353,408,409,414,417],{},[371,410,411],{},[85,412,413],{},"createPostgrestClient()",[371,415,416],{},"Anywhere",[371,418,419],{},"Whatever key you pass",[61,421,422,423,426,427,432,433,436,437,440],{},"All four return a standard ",[85,424,425],{},"PostgrestClient",", so everything in the ",[69,428,431],{"href":429,"rel":430},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Freference\u002Fjavascript\u002Fselect",[73],"postgrest-js API"," works: filters, embedding, ",[85,434,435],{},"rpc()",", ",[85,438,439],{},".schema()"," and more.",[442,443,444],"style",{},"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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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":83,"searchDepth":124,"depth":124,"links":446},[447,448],{"id":329,"depth":124,"text":330},{"id":344,"depth":124,"text":345},"What Nuxt PostgREST is and when to use it.","md",null,{},{"icon":14},{"title":11,"description":449},"C4BIMhAGFJGqrnu4Bw8827IDRuPW9vfzQGtmjRjLjZM",[451,457],{"title":16,"path":17,"stem":18,"description":458,"icon":19,"children":-1},"Add Nuxt PostgREST to your Nuxt app.",1790352863872]