[{"data":1,"prerenderedAt":489},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":55,"-getting-started-installation-surround":484},[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":16,"body":57,"description":477,"extension":478,"links":479,"meta":480,"navigation":481,"path":17,"seo":482,"stem":18,"__hash__":483},"docs\u002F1.getting-started\u002F2.installation.md",{"type":58,"value":59,"toc":472},"minimark",[60,450,457,468],[61,62,63,68,101,105,205,213,261,265],"steps",{},[64,65,67],"h3",{"id":66},"install-the-module","Install the module",[69,70,76],"pre",{"className":71,"code":72,"filename":73,"language":74,"meta":75,"style":75},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxi module add nuxt-postgrest\n","Terminal","bash","",[77,78,79],"code",{"__ignoreMap":75},[80,81,84,88,92,95,98],"span",{"class":82,"line":83},"line",1,[80,85,87],{"class":86},"sBMFI","npx",[80,89,91],{"class":90},"sfazB"," nuxi",[80,93,94],{"class":90}," module",[80,96,97],{"class":90}," add",[80,99,100],{"class":90}," nuxt-postgrest\n",[64,102,104],{"id":103},"point-it-at-postgrest","Point it at PostgREST",[69,106,111],{"className":107,"code":108,"filename":109,"language":110,"meta":75,"style":75},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-postgrest'],\n  postgrest: {\n    url: 'http:\u002F\u002Flocalhost:3001',\n  },\n})\n","nuxt.config.ts","ts",[77,112,113,134,161,172,190,196],{"__ignoreMap":75},[80,114,115,119,122,126,130],{"class":82,"line":83},[80,116,118],{"class":117},"s7zQu","export",[80,120,121],{"class":117}," default",[80,123,125],{"class":124},"s2Zo4"," defineNuxtConfig",[80,127,129],{"class":128},"sTEyZ","(",[80,131,133],{"class":132},"sMK4o","{\n",[80,135,137,141,144,147,150,153,155,158],{"class":82,"line":136},2,[80,138,140],{"class":139},"swJcz","  modules",[80,142,143],{"class":132},":",[80,145,146],{"class":128}," [",[80,148,149],{"class":132},"'",[80,151,152],{"class":90},"nuxt-postgrest",[80,154,149],{"class":132},[80,156,157],{"class":128},"]",[80,159,160],{"class":132},",\n",[80,162,164,167,169],{"class":82,"line":163},3,[80,165,166],{"class":139},"  postgrest",[80,168,143],{"class":132},[80,170,171],{"class":132}," {\n",[80,173,175,178,180,183,186,188],{"class":82,"line":174},4,[80,176,177],{"class":139},"    url",[80,179,143],{"class":132},[80,181,182],{"class":132}," '",[80,184,185],{"class":90},"http:\u002F\u002Flocalhost:3001",[80,187,149],{"class":132},[80,189,160],{"class":132},[80,191,193],{"class":82,"line":192},5,[80,194,195],{"class":132},"  },\n",[80,197,199,202],{"class":82,"line":198},6,[80,200,201],{"class":132},"}",[80,203,204],{"class":128},")\n",[206,207,208,209,212],"p",{},"Or leave ",[77,210,211],{},"url"," out and set it per environment:",[69,214,217],{"className":71,"code":215,"filename":216,"language":74,"meta":75,"style":75},"NUXT_PUBLIC_POSTGREST_URL=https:\u002F\u002Fapi.example.com\n# Optional: anon JWT used when no user is logged in.\n# Leave unset to let PostgREST fall back to its db-anon-role.\nNUXT_PUBLIC_POSTGREST_KEY=\n# Server-only: JWT for a privileged role, used by usePostgrestAdmin()\nNUXT_POSTGREST_SECRET_KEY=\n",".env",[77,218,219,230,236,241,249,254],{"__ignoreMap":75},[80,220,221,224,227],{"class":82,"line":83},[80,222,223],{"class":128},"NUXT_PUBLIC_POSTGREST_URL",[80,225,226],{"class":132},"=",[80,228,229],{"class":90},"https:\u002F\u002Fapi.example.com\n",[80,231,232],{"class":82,"line":136},[80,233,235],{"class":234},"sHwdD","# Optional: anon JWT used when no user is logged in.\n",[80,237,238],{"class":82,"line":163},[80,239,240],{"class":234},"# Leave unset to let PostgREST fall back to its db-anon-role.\n",[80,242,243,246],{"class":82,"line":174},[80,244,245],{"class":128},"NUXT_PUBLIC_POSTGREST_KEY",[80,247,248],{"class":132},"=\n",[80,250,251],{"class":82,"line":192},[80,252,253],{"class":234},"# Server-only: JWT for a privileged role, used by usePostgrestAdmin()\n",[80,255,256,259],{"class":82,"line":198},[80,257,258],{"class":128},"NUXT_POSTGREST_SECRET_KEY",[80,260,248],{"class":132},[64,262,264],{"id":263},"query","Query",[69,266,271],{"className":267,"code":268,"filename":269,"language":270,"meta":75,"style":75},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data } = await useAsyncData('todos', async () => {\n  const { data, error } = await usePostgrest().from('todos').select('*')\n  if (error) throw error\n  return data\n})\n\u003C\u002Fscript>\n","app.vue","vue",[77,272,273,300,345,406,426,434,440],{"__ignoreMap":75},[80,274,275,278,281,285,288,290,293,295,297],{"class":82,"line":83},[80,276,277],{"class":132},"\u003C",[80,279,280],{"class":139},"script",[80,282,284],{"class":283},"spNyl"," setup",[80,286,287],{"class":283}," lang",[80,289,226],{"class":132},[80,291,292],{"class":132},"\"",[80,294,110],{"class":90},[80,296,292],{"class":132},[80,298,299],{"class":132},">\n",[80,301,302,305,308,311,313,316,319,322,324,326,329,331,334,337,340,343],{"class":82,"line":136},[80,303,304],{"class":283},"const",[80,306,307],{"class":132}," {",[80,309,310],{"class":128}," data ",[80,312,201],{"class":132},[80,314,315],{"class":132}," =",[80,317,318],{"class":117}," await",[80,320,321],{"class":124}," useAsyncData",[80,323,129],{"class":128},[80,325,149],{"class":132},[80,327,328],{"class":90},"todos",[80,330,149],{"class":132},[80,332,333],{"class":132},",",[80,335,336],{"class":283}," async",[80,338,339],{"class":132}," ()",[80,341,342],{"class":283}," =>",[80,344,171],{"class":132},[80,346,347,350,352,355,357,360,363,365,367,370,373,376,379,381,383,385,387,390,392,395,397,399,402,404],{"class":82,"line":163},[80,348,349],{"class":283},"  const",[80,351,307],{"class":132},[80,353,354],{"class":128}," data",[80,356,333],{"class":132},[80,358,359],{"class":128}," error",[80,361,362],{"class":132}," }",[80,364,315],{"class":132},[80,366,318],{"class":117},[80,368,369],{"class":124}," usePostgrest",[80,371,372],{"class":139},"()",[80,374,375],{"class":132},".",[80,377,378],{"class":124},"from",[80,380,129],{"class":139},[80,382,149],{"class":132},[80,384,328],{"class":90},[80,386,149],{"class":132},[80,388,389],{"class":139},")",[80,391,375],{"class":132},[80,393,394],{"class":124},"select",[80,396,129],{"class":139},[80,398,149],{"class":132},[80,400,401],{"class":90},"*",[80,403,149],{"class":132},[80,405,204],{"class":139},[80,407,408,411,414,417,420,423],{"class":82,"line":174},[80,409,410],{"class":117},"  if",[80,412,413],{"class":139}," (",[80,415,416],{"class":128},"error",[80,418,419],{"class":139},") ",[80,421,422],{"class":117},"throw",[80,424,425],{"class":128}," error\n",[80,427,428,431],{"class":82,"line":192},[80,429,430],{"class":117},"  return",[80,432,433],{"class":128}," data\n",[80,435,436,438],{"class":82,"line":198},[80,437,201],{"class":132},[80,439,204],{"class":128},[80,441,443,446,448],{"class":82,"line":442},7,[80,444,445],{"class":132},"\u003C\u002F",[80,447,280],{"class":139},[80,449,299],{"class":132},[451,452,453,454,375],"note",{},"Requires Nuxt ",[77,455,456],{},">=4.0.0",[206,458,459,460,464,465,375],{},"Next, ",[461,462,463],"a",{"href":47},"set up types"," so every query is checked at compile time, then ",[461,466,467],{"href":42},"connect your auth",[469,470,471],"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 .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 .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}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":75,"searchDepth":136,"depth":136,"links":473},[474,475,476],{"id":66,"depth":163,"text":67},{"id":103,"depth":163,"text":104},{"id":263,"depth":163,"text":264},"Add Nuxt PostgREST to your Nuxt app.","md",null,{},{"icon":19},{"title":16,"description":477},"RLjvEng4335mHwHUWnVGqu1dGzJOurPhpPvei_0Ic6w",[485,487],{"title":11,"path":12,"stem":13,"description":486,"icon":14,"children":-1},"What Nuxt PostgREST is and when to use it.",{"title":21,"path":22,"stem":23,"description":488,"icon":24,"children":-1},"A from-scratch, no-assumptions guide to running Postgres and PostgREST locally with Docker.",1790352863511]