[{"data":1,"prerenderedAt":621},["ShallowReactive",2],{"navigation":3,"\u002Fguide\u002Finstallation":208,"\u002Fguide\u002Finstallation-surround":616},[4,98,175],{"title":5,"path":6,"stem":7,"children":8,"icon":97},"Guide","\u002Fguide","1.guide\u002F1.index",[9,12,17,22,46,61,79],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fguide\u002Finstallation","1.guide\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick start","\u002Fguide\u002Fquick-start","1.guide\u002F3.quick-start","i-lucide-rocket",{"title":23,"path":24,"stem":25,"children":26,"icon":45},"Server","\u002Fguide\u002Fserver","1.guide\u002F4.server\u002F1.index",[27,30,35,40],{"title":28,"path":24,"stem":25,"icon":29},"Usage","i-lucide-server",{"title":31,"path":32,"stem":33,"icon":34},"Config file","\u002Fguide\u002Fserver\u002Fconfig-file","1.guide\u002F4.server\u002F2.config-file","i-lucide-file-cog",{"title":36,"path":37,"stem":38,"icon":39},"Options","\u002Fguide\u002Fserver\u002Foptions","1.guide\u002F4.server\u002F3.options","i-lucide-settings",{"title":41,"path":42,"stem":43,"icon":44},"Advanced","\u002Fguide\u002Fserver\u002Fadvanced","1.guide\u002F4.server\u002F4.advanced","i-lucide-flask-conical",false,{"title":47,"path":48,"stem":49,"children":50,"icon":45},"Client","\u002Fguide\u002Fclient","1.guide\u002F5.client\u002F1.index",[51,53,58],{"title":28,"path":48,"stem":49,"icon":52},"i-lucide-monitor-smartphone",{"title":54,"path":55,"stem":56,"icon":57},"Live queries","\u002Fguide\u002Fclient\u002Flive-queries","1.guide\u002F5.client\u002F2.live-queries","i-lucide-radio",{"title":41,"path":59,"stem":60,"icon":44},"\u002Fguide\u002Fclient\u002Fadvanced","1.guide\u002F5.client\u002F3.advanced",{"title":62,"path":63,"stem":64,"children":65,"icon":45},"Development socket","\u002Fguide\u002Fsocket","1.guide\u002F6.socket\u002F1.index",[66,68,71,74],{"title":28,"path":63,"stem":64,"icon":67},"i-lucide-plug",{"title":36,"path":69,"stem":70,"icon":39},"\u002Fguide\u002Fsocket\u002Foptions","1.guide\u002F6.socket\u002F2.options",{"title":41,"path":72,"stem":73,"icon":44},"\u002Fguide\u002Fsocket\u002Fadvanced","1.guide\u002F6.socket\u002F3.advanced",{"title":75,"path":76,"stem":77,"icon":78},"PGlite in dev, Postgres in prod","\u002Fguide\u002Fsocket\u002Fdevelopment-only","1.guide\u002F6.socket\u002F4.development-only","i-lucide-cloud-upload",{"title":80,"path":81,"stem":82,"children":83,"icon":45},"DevTools & tooling","\u002Fguide\u002Fdevtools","1.guide\u002F7.devtools\u002F1.index",[84,87,92],{"title":85,"path":81,"stem":82,"icon":86},"DevTools tab","i-lucide-wrench",{"title":88,"path":89,"stem":90,"icon":91},"Actions","\u002Fguide\u002Fdevtools\u002Factions","1.guide\u002F7.devtools\u002F2.actions","i-lucide-zap",{"title":93,"path":94,"stem":95,"icon":96},"Terminal","\u002Fguide\u002Fdevtools\u002Fterminal","1.guide\u002F7.devtools\u002F3.terminal","i-lucide-square-terminal","i-lucide-book-open",{"title":99,"icon":100,"path":101,"stem":102,"children":103,"page":45},"Recipes","i-lucide-chef-hat","\u002Frecipes","2.recipes",[104,116,138,159,171],{"title":105,"path":106,"stem":107,"children":108,"icon":45},"Migrations","\u002Frecipes\u002Fmigrations","2.recipes\u002F1.migrations\u002F1.index",[109,111],{"title":28,"path":106,"stem":107,"icon":110},"i-lucide-database-backup",{"title":112,"path":113,"stem":114,"icon":115},"Edited migrations","\u002Frecipes\u002Fmigrations\u002Fedited-migrations","2.recipes\u002F1.migrations\u002F2.edited-migrations","i-lucide-file-diff",{"title":117,"path":118,"stem":119,"children":120,"icon":45},"Testing","\u002Frecipes\u002Ftesting","2.recipes\u002F2.testing\u002F1.index",[121,123,128,133],{"title":28,"path":118,"stem":119,"icon":122},"i-lucide-test-tube",{"title":124,"path":125,"stem":126,"icon":127},"Isolation","\u002Frecipes\u002Ftesting\u002Fisolation","2.recipes\u002F2.testing\u002F2.isolation","i-lucide-git-fork",{"title":129,"path":130,"stem":131,"icon":132},"vitest","\u002Frecipes\u002Ftesting\u002Fvitest","2.recipes\u002F2.testing\u002F3.vitest","i-simple-icons-vitest",{"title":134,"path":135,"stem":136,"icon":137},"@nuxt\u002Ftest-utils","\u002Frecipes\u002Ftesting\u002Fnuxt-test-utils","2.recipes\u002F2.testing\u002F4.nuxt-test-utils","i-simple-icons-nuxt",{"title":139,"path":140,"stem":141,"children":142,"icon":45},"Deploy","\u002Frecipes\u002Fdeploy","2.recipes\u002F3.deploy\u002F1.index",[143,144,149,154],{"title":139,"path":140,"stem":141},{"title":145,"path":146,"stem":147,"icon":148},"Any Postgres","\u002Frecipes\u002Fdeploy\u002Fpostgres","2.recipes\u002F3.deploy\u002F2.postgres","i-lucide-database",{"title":150,"path":151,"stem":152,"icon":153},"Netlify","\u002Frecipes\u002Fdeploy\u002Fnetlify","2.recipes\u002F3.deploy\u002F3.netlify","i-simple-icons-netlify",{"title":155,"path":156,"stem":157,"icon":158},"Neon","\u002Frecipes\u002Fdeploy\u002Fneon","2.recipes\u002F3.deploy\u002F4.neon","i-simple-icons-neon",{"title":160,"path":161,"stem":162,"children":163,"icon":45},"Outside Nuxt","\u002Frecipes\u002Foutside-nuxt","2.recipes\u002F4.outside-nuxt\u002F1.index",[164,167],{"title":165,"path":161,"stem":162,"icon":166},"Config and provider","i-lucide-package",{"title":168,"path":169,"stem":170,"icon":67},"Socket server","\u002Frecipes\u002Foutside-nuxt\u002Fsocket","2.recipes\u002F4.outside-nuxt\u002F2.socket",{"title":172,"path":173,"stem":174,"icon":67},"Nitro's useDatabase","\u002Frecipes\u002Fnitro-database","2.recipes\u002F5.nitro-database",{"title":176,"icon":177,"path":178,"stem":179,"children":180,"page":45},"Reference","i-lucide-code-xml","\u002Freference","3.reference",[181,185,189,193,198,203],{"title":182,"path":183,"stem":184,"icon":34},"Config files","\u002Freference\u002Fconfig-files","3.reference\u002F1.config-files",{"title":186,"path":187,"stem":188,"icon":39},"Module options","\u002Freference\u002Fmodule-options","3.reference\u002F2.module-options",{"title":190,"path":191,"stem":192,"icon":67},"Socket options","\u002Freference\u002Fsocket-options","3.reference\u002F3.socket-options",{"title":194,"path":195,"stem":196,"icon":197},"Exports","\u002Freference\u002Fexports","3.reference\u002F4.exports","i-lucide-boxes",{"title":199,"path":200,"stem":201,"icon":202},"Hooks","\u002Freference\u002Fhooks","3.reference\u002F5.hooks","i-lucide-anchor",{"title":204,"path":205,"stem":206,"icon":207},"Environment","\u002Freference\u002Fenvironment","3.reference\u002F6.environment","i-lucide-variable",{"id":209,"title":13,"body":210,"description":609,"extension":610,"links":611,"meta":612,"navigation":613,"path":14,"seo":614,"stem":15,"__hash__":615},"docs\u002F1.guide\u002F2.installation.md",{"type":211,"value":212,"toc":606},"minimark",[213,414,424,429,432,580,602],[214,215,217,222,254,270,274,280,341,345,352],"steps",{"level":216},"3",[218,219,221],"h3",{"id":220},"add-the-module","Add the module",[223,224,229],"pre",{"className":225,"code":226,"filename":93,"language":227,"meta":228,"style":228},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxi module add nuxt-pglite\n","bash","",[230,231,232],"code",{"__ignoreMap":228},[233,234,237,241,245,248,251],"span",{"class":235,"line":236},"line",1,[233,238,240],{"class":239},"sBMFI","npx",[233,242,244],{"class":243},"sfazB"," nuxi",[233,246,247],{"class":243}," module",[233,249,250],{"class":243}," add",[233,252,253],{"class":243}," nuxt-pglite\n",[255,256,257,258,261,262,265,266,269],"p",{},"This installs ",[230,259,260],{},"nuxt-pglite"," and adds it to ",[230,263,264],{},"modules"," in your ",[230,267,268],{},"nuxt.config.ts",".",[218,271,273],{"id":272},"install-pglite","Install PGlite",[255,275,276,279],{},[230,277,278],{},"@electric-sql\u002Fpglite"," is a peer dependency: your project decides its version, and the extensions you import come from the same copy.",[281,282,283,298,313,327],"code-group",{},[223,284,287],{"className":225,"code":285,"filename":286,"language":227,"meta":228,"style":228},"pnpm add @electric-sql\u002Fpglite\n","pnpm",[230,288,289],{"__ignoreMap":228},[233,290,291,293,295],{"class":235,"line":236},[233,292,286],{"class":239},[233,294,250],{"class":243},[233,296,297],{"class":243}," @electric-sql\u002Fpglite\n",[223,299,302],{"className":225,"code":300,"filename":301,"language":227,"meta":228,"style":228},"npm install @electric-sql\u002Fpglite\n","npm",[230,303,304],{"__ignoreMap":228},[233,305,306,308,311],{"class":235,"line":236},[233,307,301],{"class":239},[233,309,310],{"class":243}," install",[233,312,297],{"class":243},[223,314,317],{"className":225,"code":315,"filename":316,"language":227,"meta":228,"style":228},"yarn add @electric-sql\u002Fpglite\n","yarn",[230,318,319],{"__ignoreMap":228},[233,320,321,323,325],{"class":235,"line":236},[233,322,316],{"class":239},[233,324,250],{"class":243},[233,326,297],{"class":243},[223,328,331],{"className":225,"code":329,"filename":330,"language":227,"meta":228,"style":228},"bun add @electric-sql\u002Fpglite\n","bun",[230,332,333],{"__ignoreMap":228},[233,334,335,337,339],{"class":235,"line":236},[233,336,330],{"class":239},[233,338,250],{"class":243},[233,340,297],{"class":243},[218,342,344],{"id":343},"check-the-config","Check the config",[255,346,347,348,351],{},"Nothing else is required. The server side is on by default, with its data in ",[230,349,350],{},".data\u002Fpglite",":",[223,353,357],{"className":354,"code":355,"filename":268,"language":356,"meta":228,"style":228},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-pglite'],\n})\n","ts",[230,358,359,380,405],{"__ignoreMap":228},[233,360,361,365,368,372,376],{"class":235,"line":236},[233,362,364],{"class":363},"s7zQu","export",[233,366,367],{"class":363}," default",[233,369,371],{"class":370},"s2Zo4"," defineNuxtConfig",[233,373,375],{"class":374},"sTEyZ","(",[233,377,379],{"class":378},"sMK4o","{\n",[233,381,383,387,389,392,395,397,399,402],{"class":235,"line":382},2,[233,384,386],{"class":385},"swJcz","  modules",[233,388,351],{"class":378},[233,390,391],{"class":374}," [",[233,393,394],{"class":378},"'",[233,396,260],{"class":243},[233,398,394],{"class":378},[233,400,401],{"class":374},"]",[233,403,404],{"class":378},",\n",[233,406,408,411],{"class":235,"line":407},3,[233,409,410],{"class":378},"}",[233,412,413],{"class":374},")\n",[415,416,417],"note",{},[255,418,419,420,423],{},"Nuxt PGlite needs Nuxt ",[230,421,422],{},">=4.6.0",". The client side (the in-browser database) also needs the Vite builder, which is Nuxt's default.",[425,426,428],"h2",{"id":427},"what-to-enable","What to enable",[255,430,431],{},"Every piece is opt-in except the server instance, and each is only in your bundle when enabled:",[223,433,435],{"className":354,"code":434,"filename":268,"language":356,"meta":228,"style":228},"export default defineNuxtConfig({\n  modules: ['nuxt-pglite'],\n  pglite: {\n    server: {\n      enabled: true, \u002F\u002F `usePGlite()` in server routes (default)\n    },\n    socket: { port: 5433 }, \u002F\u002F a Postgres URL while `nuxt dev` runs (off by default)\n    client: {\n      enabled: true, \u002F\u002F `usePGlite()` and live queries in the browser (off by default)\n    },\n  },\n})\n",[230,436,437,449,467,477,487,506,512,538,548,562,567,573],{"__ignoreMap":228},[233,438,439,441,443,445,447],{"class":235,"line":236},[233,440,364],{"class":363},[233,442,367],{"class":363},[233,444,371],{"class":370},[233,446,375],{"class":374},[233,448,379],{"class":378},[233,450,451,453,455,457,459,461,463,465],{"class":235,"line":382},[233,452,386],{"class":385},[233,454,351],{"class":378},[233,456,391],{"class":374},[233,458,394],{"class":378},[233,460,260],{"class":243},[233,462,394],{"class":378},[233,464,401],{"class":374},[233,466,404],{"class":378},[233,468,469,472,474],{"class":235,"line":407},[233,470,471],{"class":385},"  pglite",[233,473,351],{"class":378},[233,475,476],{"class":378}," {\n",[233,478,480,483,485],{"class":235,"line":479},4,[233,481,482],{"class":385},"    server",[233,484,351],{"class":378},[233,486,476],{"class":378},[233,488,490,493,495,499,502],{"class":235,"line":489},5,[233,491,492],{"class":385},"      enabled",[233,494,351],{"class":378},[233,496,498],{"class":497},"sfNiH"," true",[233,500,501],{"class":378},",",[233,503,505],{"class":504},"sHwdD"," \u002F\u002F `usePGlite()` in server routes (default)\n",[233,507,509],{"class":235,"line":508},6,[233,510,511],{"class":378},"    },\n",[233,513,515,518,520,523,526,528,532,535],{"class":235,"line":514},7,[233,516,517],{"class":385},"    socket",[233,519,351],{"class":378},[233,521,522],{"class":378}," {",[233,524,525],{"class":385}," port",[233,527,351],{"class":378},[233,529,531],{"class":530},"sbssI"," 5433",[233,533,534],{"class":378}," },",[233,536,537],{"class":504}," \u002F\u002F a Postgres URL while `nuxt dev` runs (off by default)\n",[233,539,541,544,546],{"class":235,"line":540},8,[233,542,543],{"class":385},"    client",[233,545,351],{"class":378},[233,547,476],{"class":378},[233,549,551,553,555,557,559],{"class":235,"line":550},9,[233,552,492],{"class":385},[233,554,351],{"class":378},[233,556,498],{"class":497},[233,558,501],{"class":378},[233,560,561],{"class":504}," \u002F\u002F `usePGlite()` and live queries in the browser (off by default)\n",[233,563,565],{"class":235,"line":564},10,[233,566,511],{"class":378},[233,568,570],{"class":235,"line":569},11,[233,571,572],{"class":378},"  },\n",[233,574,576,578],{"class":235,"line":575},12,[233,577,410],{"class":378},[233,579,413],{"class":374},[581,582,583,591,596],"ul",{},[584,585,586,587,269],"li",{},"Only need a database for your server routes? Keep the defaults and go to the ",[588,589,590],"a",{"href":24},"server guide",[584,592,593,594,269],{},"Want to develop against PGlite and deploy against Postgres? Read ",[588,595,75],{"href":76},[584,597,598,599,269],{},"Building a local-first app? Enable the ",[588,600,601],{"href":48},"client side",[603,604,605],"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);}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":228,"searchDepth":236,"depth":382,"links":607},[608],{"id":427,"depth":382,"text":428},"Add the module and PGlite to your Nuxt project.","md",null,{},{"icon":16},{"title":13,"description":609},"8Hk2RoahHG4QVSF6GlKvFw0cKRTys00AwuxAz60SYII",[617,619],{"title":10,"path":6,"stem":7,"description":618,"icon":11,"children":-1},"What Nuxt PGlite is and the pieces it is made of.",{"title":18,"path":19,"stem":20,"description":620,"icon":21,"children":-1},"A server route and a component, each talking to its own PGlite.",1791474260351]