[{"data":1,"prerenderedAt":162},["ShallowReactive",2],{"navigation_docs":3,"mdc--j7o3ho-key":135},[4,26,81,110],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting started","i-lucide-rocket","\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},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-zap",{"title":21,"path":22,"stem":23,"icon":24},"Project structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F3.project-structure","i-lucide-folder-tree",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[32,37,42,47,52,57,62,66,71,76],{"title":33,"path":34,"stem":35,"icon":36},"Server routes","\u002Fguides\u002Fserver-routes","2.guides\u002F01.server-routes","i-lucide-route",{"title":38,"path":39,"stem":40,"icon":41},"Database","\u002Fguides\u002Fdatabase","2.guides\u002F02.database","i-lucide-database",{"title":43,"path":44,"stem":45,"icon":46},"Live data","\u002Fguides\u002Flive-data","2.guides\u002F03.live-data","i-lucide-radio",{"title":48,"path":49,"stem":50,"icon":51},"Agents","\u002Fguides\u002Fagents","2.guides\u002F04.agents","i-lucide-bot",{"title":53,"path":54,"stem":55,"icon":56},"Private apps","\u002Fguides\u002Fprivate-apps","2.guides\u002F05.private-apps","i-lucide-lock",{"title":58,"path":59,"stem":60,"icon":61},"Logs","\u002Fguides\u002Flogs","2.guides\u002F06.logs","i-lucide-scroll-text",{"title":63,"path":64,"stem":65,"icon":6},"Deploys","\u002Fguides\u002Fdeploys","2.guides\u002F07.deploys",{"title":67,"path":68,"stem":69,"icon":70},"Tasks","\u002Fguides\u002Ftasks","2.guides\u002F08.tasks","i-lucide-alarm-clock",{"title":72,"path":73,"stem":74,"icon":75},"Files","\u002Fguides\u002Ffiles","2.guides\u002F09.files","i-lucide-folder-up",{"title":77,"path":78,"stem":79,"icon":80},"Dashboard","\u002Fguides\u002Fdashboard","2.guides\u002F10.dashboard","i-lucide-layout-dashboard",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":25},"API","i-lucide-code","\u002Fapi","3.api",[87,92,96,101,106],{"title":88,"path":89,"stem":90,"icon":91},"Module","\u002Fapi\u002Fmodule","3.api\u002F1.module","i-lucide-puzzle",{"title":93,"path":94,"stem":95,"icon":41},"useDb","\u002Fapi\u002Fuse-db","3.api\u002F2.use-db",{"title":97,"path":98,"stem":99,"icon":100},"Validation","\u002Fapi\u002Fvalidation","3.api\u002F3.validation","i-lucide-shield-check",{"title":102,"path":103,"stem":104,"icon":105},"proxyShape","\u002Fapi\u002Fproxy-shape","3.api\u002F4.proxy-shape","i-lucide-arrow-left-right",{"title":107,"path":108,"stem":109,"icon":46},"useShape","\u002Fapi\u002Fuse-shape","3.api\u002F5.use-shape",{"title":111,"icon":112,"path":113,"stem":114,"children":115,"page":25},"Self-hosting","i-lucide-server","\u002Fself-hosting","4.self-hosting",[116,121,126,131],{"title":117,"path":118,"stem":119,"icon":120},"Architecture","\u002Fself-hosting\u002Farchitecture","4.self-hosting\u002F1.architecture","i-lucide-layers",{"title":122,"path":123,"stem":124,"icon":125},"Local stack","\u002Fself-hosting\u002Flocal-stack","4.self-hosting\u002F2.local-stack","i-lucide-container",{"title":127,"path":128,"stem":129,"icon":130},"Backups and restore","\u002Fself-hosting\u002Fbackups","4.self-hosting\u002F3.backups","i-lucide-database-backup",{"title":132,"path":133,"stem":134,"icon":112},"Production","\u002Fself-hosting\u002Fproduction","4.self-hosting\u002F4.production",{"data":136,"body":137},{},{"type":138,"children":139},"root",[140,157],{"type":141,"tag":142,"props":143,"children":150},"element","pre",{"className":144,"code":145,"filename":146,"language":147,"meta":148,"style":149},"language-ts","import { useDb, useValidatedBody, useWervtUser } from '@wervt\u002Fnuxt\u002Fserver'\nimport { defineEventHandler } from 'nuxt\u002Fserver'\nimport * as v from 'valibot'\nimport { habits } from '..\u002Fdb\u002Fschema'\n\nexport default defineEventHandler(async (event) => {\n  const user = useWervtUser(event)!\n  const { name } = await useValidatedBody(event, {\n    name: v.pipe(v.string(), v.trim(), v.nonEmpty()),\n  })\n  const [habit] = await useDb()\n    .insert(habits)\n    .values({ name, owner: user.email })\n    .returning()\n  return habit\n})\n","server\u002Fapi\u002Fhabits.post.ts","ts","","undefined",[151],{"type":141,"tag":152,"props":153,"children":154},"code",{"__ignoreMap":148},[155],{"type":156,"value":145},"text",{"type":141,"tag":158,"props":159,"children":160},"style",{},[161],{"type":156,"value":148},1791322414202]