[{"data":1,"prerenderedAt":1581},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:zg1c_2NOdWRS2mpp_GREtkougp9pLQdwCQZ0Zk26hSI":576,"content-page-surround:docs:zg1c_2NOdWRS2mpp_GREtkougp9pLQdwCQZ0Zk26hSI":1569,"i-logos:typescript-icon":1574,"i-lucide:clipboard":1578},[4,52,119,179,425,482,533],{"title":5,"page":6,"canonicalKey":7,"locale":8,"children":9},"Overview",false,"docs\u002F1","en",[10,17,24,31,38,45],{"title":11,"id":12,"canonicalKey":13,"locale":8,"draft":6,"navigation":14,"icon":15,"path":16},"Better Convex Nuxt","content:docs:1.overview:1.introduction.md","docs\u002F1\u002F1",{"icon":15},"i-lucide-orbit","\u002Fdocs\u002Foverview\u002Fintroduction",{"title":18,"id":19,"canonicalKey":20,"locale":8,"draft":6,"navigation":21,"icon":22,"path":23},"Why Better Convex Nuxt","content:docs:1.overview:2.why-better-convex-nuxt.md","docs\u002F1\u002F2",{"icon":22},"i-lucide-badge-check","\u002Fdocs\u002Foverview\u002Fwhy-better-convex-nuxt",{"title":25,"id":26,"canonicalKey":27,"locale":8,"draft":6,"navigation":28,"icon":29,"path":30},"Who It Is For","content:docs:1.overview:3.who-it-is-for.md","docs\u002F1\u002F3",{"icon":29},"i-lucide-users","\u002Fdocs\u002Foverview\u002Fwho-it-is-for",{"title":32,"id":33,"canonicalKey":34,"locale":8,"draft":6,"navigation":35,"icon":36,"path":37},"Use Cases","content:docs:1.overview:4.use-cases.md","docs\u002F1\u002F4",{"icon":36},"i-lucide-layout-dashboard","\u002Fdocs\u002Foverview\u002Fuse-cases",{"title":39,"id":40,"canonicalKey":41,"locale":8,"draft":6,"navigation":42,"icon":43,"path":44},"Compare Nuxt Integrations","content:docs:1.overview:5.comparison.md","docs\u002F1\u002F5",{"icon":43},"i-lucide-scale","\u002Fdocs\u002Foverview\u002Fcomparison",{"title":46,"id":47,"canonicalKey":48,"locale":8,"draft":6,"navigation":49,"icon":50,"path":51},"Limitations and Trade-offs","content:docs:1.overview:6.limitations.md","docs\u002F1\u002F6",{"icon":50},"i-lucide-triangle-alert","\u002Fdocs\u002Foverview\u002Flimitations",{"title":53,"page":6,"canonicalKey":54,"locale":8,"children":55},"Understand","docs\u002F2",[56,63,70,77,84,91,98,105,112],{"title":57,"id":58,"canonicalKey":59,"locale":8,"draft":6,"navigation":60,"icon":61,"path":62},"Mental Model","content:docs:2.understand:1.mental-model.md","docs\u002F2\u002F1",{"icon":61},"i-lucide-brain","\u002Fdocs\u002Funderstand\u002Fmental-model",{"title":64,"id":65,"canonicalKey":66,"locale":8,"draft":6,"navigation":67,"icon":68,"path":69},"Request Lifecycle","content:docs:2.understand:2.request-lifecycle.md","docs\u002F2\u002F2",{"icon":68},"i-lucide-route","\u002Fdocs\u002Funderstand\u002Frequest-lifecycle",{"title":71,"id":72,"canonicalKey":73,"locale":8,"draft":6,"navigation":74,"icon":75,"path":76},"SSR, Hydration, and Real-Time","content:docs:2.understand:3.ssr-hydration-realtime.md","docs\u002F2\u002F3",{"icon":75},"i-lucide-refresh-cw","\u002Fdocs\u002Funderstand\u002Fssr-hydration-realtime",{"title":78,"id":79,"canonicalKey":80,"locale":8,"draft":6,"navigation":81,"icon":82,"path":83},"Query Ownership and Caching","content:docs:2.understand:4.query-ownership-and-caching.md","docs\u002F2\u002F4",{"icon":82},"i-lucide-database","\u002Fdocs\u002Funderstand\u002Fquery-ownership-and-caching",{"title":85,"id":86,"canonicalKey":87,"locale":8,"draft":6,"navigation":88,"icon":89,"path":90},"Authentication and Identity","content:docs:2.understand:5.authentication-and-identity.md","docs\u002F2\u002F5",{"icon":89},"i-lucide-fingerprint","\u002Fdocs\u002Funderstand\u002Fauthentication-and-identity",{"title":92,"id":93,"canonicalKey":94,"locale":8,"draft":6,"navigation":95,"icon":96,"path":97},"Server and Client Boundaries","content:docs:2.understand:6.server-and-client-boundaries.md","docs\u002F2\u002F6",{"icon":96},"i-lucide-panels-top-left","\u002Fdocs\u002Funderstand\u002Fserver-and-client-boundaries",{"title":99,"id":100,"canonicalKey":101,"locale":8,"draft":6,"navigation":102,"icon":103,"path":104},"Errors and Failures","content:docs:2.understand:7.errors-and-failures.md","docs\u002F2\u002F7",{"icon":103},"i-lucide-circle-x","\u002Fdocs\u002Funderstand\u002Ferrors-and-failures",{"title":106,"id":107,"canonicalKey":108,"locale":8,"draft":6,"navigation":109,"icon":110,"path":111},"Design Decisions","content:docs:2.understand:8.design-decisions.md","docs\u002F2\u002F8",{"icon":110},"i-lucide-git-branch","\u002Fdocs\u002Funderstand\u002Fdesign-decisions",{"title":113,"id":114,"canonicalKey":115,"locale":8,"draft":6,"navigation":116,"icon":117,"path":118},"Glossary","content:docs:2.understand:9.glossary.md","docs\u002F2\u002F9",{"icon":117},"i-lucide-book-a","\u002Fdocs\u002Funderstand\u002Fglossary",{"title":120,"page":6,"canonicalKey":121,"locale":8,"children":122},"Get Started","docs\u002F3",[123,130,137,144,151,158,165,172],{"title":124,"id":125,"canonicalKey":126,"locale":8,"draft":6,"navigation":127,"icon":128,"path":129},"Choose Your Path","content:docs:3.get-started:1.choose-your-path.md","docs\u002F3\u002F1",{"icon":128},"i-lucide-signpost","\u002Fdocs\u002Fget-started\u002Fchoose-your-path",{"title":131,"id":132,"canonicalKey":133,"locale":8,"draft":6,"navigation":134,"icon":135,"path":136},"Installation","content:docs:3.get-started:2.installation.md","docs\u002F3\u002F2",{"icon":135},"i-lucide-download","\u002Fdocs\u002Fget-started\u002Finstallation",{"title":138,"id":139,"canonicalKey":140,"locale":8,"draft":6,"navigation":141,"icon":142,"path":143},"First Real-Time Page","content:docs:3.get-started:3.first-realtime-page.md","docs\u002F3\u002F3",{"icon":142},"i-lucide-radio","\u002Fdocs\u002Fget-started\u002Ffirst-realtime-page",{"title":145,"id":146,"canonicalKey":147,"locale":8,"draft":6,"navigation":148,"icon":149,"path":150},"Add a Mutation","content:docs:3.get-started:4.add-a-mutation.md","docs\u002F3\u002F4",{"icon":149},"i-lucide-square-pen","\u002Fdocs\u002Fget-started\u002Fadd-a-mutation",{"title":152,"id":153,"canonicalKey":154,"locale":8,"draft":6,"navigation":155,"icon":156,"path":157},"Add Authentication","content:docs:3.get-started:5.add-authentication.md","docs\u002F3\u002F5",{"icon":156},"i-lucide-log-in","\u002Fdocs\u002Fget-started\u002Fadd-authentication",{"title":159,"id":160,"canonicalKey":161,"locale":8,"draft":6,"navigation":162,"icon":163,"path":164},"Protect Data","content:docs:3.get-started:6.protect-data.md","docs\u002F3\u002F6",{"icon":163},"i-lucide-shield-check","\u002Fdocs\u002Fget-started\u002Fprotect-data",{"title":166,"id":167,"canonicalKey":168,"locale":8,"draft":6,"navigation":169,"icon":170,"path":171},"Project Structure","content:docs:3.get-started:7.project-structure.md","docs\u002F3\u002F7",{"icon":170},"i-lucide-folder-tree","\u002Fdocs\u002Fget-started\u002Fproject-structure",{"title":173,"id":174,"canonicalKey":175,"locale":8,"draft":6,"navigation":176,"icon":177,"path":178},"Next Steps","content:docs:3.get-started:8.next-steps.md","docs\u002F3\u002F8",{"icon":177},"i-lucide-arrow-right","\u002Fdocs\u002Fget-started\u002Fnext-steps",{"title":180,"page":6,"canonicalKey":181,"locale":8,"children":182},"Build","docs\u002F4",[183,227,258,322,354,386],{"title":184,"page":6,"canonicalKey":185,"locale":8,"children":186},"Queries","docs\u002F4\u002F1",[187,192,199,206,213,220],{"title":184,"id":188,"canonicalKey":189,"locale":8,"draft":6,"navigation":190,"icon":82,"path":191},"content:docs:4.build:1.queries:1.queries.md","docs\u002F4\u002F1\u002F1",{"icon":82},"\u002Fdocs\u002Fbuild\u002Fqueries\u002Fqueries",{"title":193,"id":194,"canonicalKey":195,"locale":8,"draft":6,"navigation":196,"icon":197,"path":198},"Reactive Arguments","content:docs:4.build:1.queries:2.reactive-arguments.md","docs\u002F4\u002F1\u002F2",{"icon":197},"i-lucide-sliders-horizontal","\u002Fdocs\u002Fbuild\u002Fqueries\u002Freactive-arguments",{"title":200,"id":201,"canonicalKey":202,"locale":8,"draft":6,"navigation":203,"icon":204,"path":205},"Loading and Stale Data","content:docs:4.build:1.queries:3.loading-and-stale-data.md","docs\u002F4\u002F1\u002F3",{"icon":204},"i-lucide-loader-circle","\u002Fdocs\u002Fbuild\u002Fqueries\u002Floading-and-stale-data",{"title":207,"id":208,"canonicalKey":209,"locale":8,"draft":6,"navigation":210,"icon":211,"path":212},"Query Execution Options","content:docs:4.build:1.queries:4.ssr-options.md","docs\u002F4\u002F1\u002F4",{"icon":211},"i-lucide-server-cog","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fssr-options",{"title":214,"id":215,"canonicalKey":216,"locale":8,"draft":6,"navigation":217,"icon":218,"path":219},"Share Query State","content:docs:4.build:1.queries:5.sharing-query-state.md","docs\u002F4\u002F1\u002F5",{"icon":218},"i-lucide-share-2","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fsharing-query-state",{"title":221,"id":222,"canonicalKey":223,"locale":8,"draft":6,"navigation":224,"icon":225,"path":226},"Pagination","content:docs:4.build:1.queries:6.pagination.md","docs\u002F4\u002F1\u002F6",{"icon":225},"i-lucide-list-plus","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fpagination",{"title":228,"page":6,"canonicalKey":229,"locale":8,"children":230},"Write Data","docs\u002F4\u002F2",[231,237,244,251],{"title":232,"id":233,"canonicalKey":234,"locale":8,"draft":6,"navigation":235,"icon":149,"path":236},"Mutations","content:docs:4.build:2.write-data:1.mutations.md","docs\u002F4\u002F2\u002F1",{"icon":149},"\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmutations",{"title":238,"id":239,"canonicalKey":240,"locale":8,"draft":6,"navigation":241,"icon":242,"path":243},"Actions","content:docs:4.build:2.write-data:2.actions.md","docs\u002F4\u002F2\u002F2",{"icon":242},"i-lucide-zap","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Factions",{"title":245,"id":246,"canonicalKey":247,"locale":8,"draft":6,"navigation":248,"icon":249,"path":250},"Optimistic Updates","content:docs:4.build:2.write-data:3.optimistic-updates.md","docs\u002F4\u002F2\u002F3",{"icon":249},"i-lucide-gauge","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Foptimistic-updates",{"title":252,"id":253,"canonicalKey":254,"locale":8,"draft":6,"navigation":255,"icon":256,"path":257},"Concurrent Operations","content:docs:4.build:2.write-data:4.concurrent-operations.md","docs\u002F4\u002F2\u002F4",{"icon":256},"i-lucide-git-fork","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fconcurrent-operations",{"title":259,"page":6,"canonicalKey":260,"locale":8,"children":261},"Authentication","docs\u002F4\u002F3",[262,268,275,282,288,294,301,308,315],{"title":259,"id":263,"canonicalKey":264,"locale":8,"draft":6,"navigation":265,"icon":266,"path":267},"content:docs:4.build:3.authentication:1.overview.md","docs\u002F4\u002F3\u002F1",{"icon":266},"i-lucide-shield","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Foverview",{"title":269,"id":270,"canonicalKey":271,"locale":8,"draft":6,"navigation":272,"icon":273,"path":274},"Better Auth Setup","content:docs:4.build:3.authentication:2.better-auth-setup.md","docs\u002F4\u002F3\u002F2",{"icon":273},"i-lucide-settings-2","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-setup",{"title":276,"id":277,"canonicalKey":278,"locale":8,"draft":6,"navigation":279,"icon":280,"path":281},"Auth State and User Data","content:docs:4.build:3.authentication:3.auth-state-and-user.md","docs\u002F4\u002F3\u002F3",{"icon":280},"i-lucide-user-round","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fauth-state-and-user",{"title":283,"id":284,"canonicalKey":285,"locale":8,"draft":6,"navigation":286,"icon":156,"path":287},"Sign In and Sign Out","content:docs:4.build:3.authentication:4.sign-in-and-sign-out.md","docs\u002F4\u002F3\u002F4",{"icon":156},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsign-in-and-sign-out",{"title":289,"id":290,"canonicalKey":291,"locale":8,"draft":6,"navigation":292,"icon":68,"path":293},"Route Protection","content:docs:4.build:3.authentication:5.route-protection.md","docs\u002F4\u002F3\u002F5",{"icon":68},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Froute-protection",{"title":295,"id":296,"canonicalKey":297,"locale":8,"draft":6,"navigation":298,"icon":299,"path":300},"Backend Authorization","content:docs:4.build:3.authentication:6.backend-authorization.md","docs\u002F4\u002F3\u002F6",{"icon":299},"i-lucide-lock-keyhole","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbackend-authorization",{"title":302,"id":303,"canonicalKey":304,"locale":8,"draft":6,"navigation":305,"icon":306,"path":307},"Better Auth Plugins","content:docs:4.build:3.authentication:7.better-auth-plugins.md","docs\u002F4\u002F3\u002F7",{"icon":306},"i-lucide-plug","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugins",{"title":309,"id":310,"canonicalKey":311,"locale":8,"draft":6,"navigation":312,"icon":313,"path":314},"Custom User Fields","content:docs:4.build:3.authentication:8.custom-user-fields.md","docs\u002F4\u002F3\u002F8",{"icon":313},"i-lucide-user-cog","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fcustom-user-fields",{"title":316,"id":317,"canonicalKey":318,"locale":8,"draft":6,"navigation":319,"icon":320,"path":321},"User Synchronization","content:docs:4.build:3.authentication:9.user-synchronization.md","docs\u002F4\u002F3\u002F9",{"icon":320},"i-lucide-refresh-ccw","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fuser-synchronization",{"title":323,"page":6,"canonicalKey":324,"locale":8,"children":325},"Server","docs\u002F4\u002F4",[326,333,340,347],{"title":327,"id":328,"canonicalKey":329,"locale":8,"draft":6,"navigation":330,"icon":331,"path":332},"serverConvex","content:docs:4.build:4.server:1.server-convex.md","docs\u002F4\u002F4\u002F1",{"icon":331},"i-lucide-server","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-convex",{"title":334,"id":335,"canonicalKey":336,"locale":8,"draft":6,"navigation":337,"icon":338,"path":339},"Server Routes","content:docs:4.build:4.server:2.server-routes.md","docs\u002F4\u002F4\u002F2",{"icon":338},"i-lucide-waypoints","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-routes",{"title":341,"id":342,"canonicalKey":343,"locale":8,"draft":6,"navigation":344,"icon":345,"path":346},"Webhooks and Jobs","content:docs:4.build:4.server:3.webhooks-and-jobs.md","docs\u002F4\u002F4\u002F3",{"icon":345},"i-lucide-webhook","\u002Fdocs\u002Fbuild\u002Fserver\u002Fwebhooks-and-jobs",{"title":348,"id":349,"canonicalKey":350,"locale":8,"draft":6,"navigation":351,"icon":352,"path":353},"Credentials and Server Security","content:docs:4.build:4.server:4.credentials-and-security.md","docs\u002F4\u002F4\u002F4",{"icon":352},"i-lucide-key-round","\u002Fdocs\u002Fbuild\u002Fserver\u002Fcredentials-and-security",{"title":355,"page":6,"canonicalKey":356,"locale":8,"children":357},"Files","docs\u002F4\u002F5",[358,365,372,379],{"title":359,"id":360,"canonicalKey":361,"locale":8,"draft":6,"navigation":362,"icon":363,"path":364},"Upload Files","content:docs:4.build:5.files:1.upload-files.md","docs\u002F4\u002F5\u002F1",{"icon":363},"i-lucide-upload","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fupload-files",{"title":366,"id":367,"canonicalKey":368,"locale":8,"draft":6,"navigation":369,"icon":370,"path":371},"Upload Queues","content:docs:4.build:5.files:2.upload-queues.md","docs\u002F4\u002F5\u002F2",{"icon":370},"i-lucide-list-checks","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fupload-queues",{"title":373,"id":374,"canonicalKey":375,"locale":8,"draft":6,"navigation":376,"icon":377,"path":378},"Storage URLs","content:docs:4.build:5.files:3.storage-urls.md","docs\u002F4\u002F5\u002F3",{"icon":377},"i-lucide-link","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fstorage-urls",{"title":380,"id":381,"canonicalKey":382,"locale":8,"draft":6,"navigation":383,"icon":384,"path":385},"File Validation and Deletion","content:docs:4.build:5.files:4.validation-and-deletion.md","docs\u002F4\u002F5\u002F4",{"icon":384},"i-lucide-file-x","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fvalidation-and-deletion",{"title":387,"page":6,"canonicalKey":388,"locale":8,"children":389},"Application Behavior","docs\u002F4\u002F6",[390,397,404,411,418],{"title":391,"id":392,"canonicalKey":393,"locale":8,"draft":6,"navigation":394,"icon":395,"path":396},"Connection State","content:docs:4.build:6.application-behavior:1.connection-state.md","docs\u002F4\u002F6\u002F1",{"icon":395},"i-lucide-wifi","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fconnection-state",{"title":398,"id":399,"canonicalKey":400,"locale":8,"draft":6,"navigation":401,"icon":402,"path":403},"Error Handling","content:docs:4.build:6.application-behavior:2.error-handling.md","docs\u002F4\u002F6\u002F2",{"icon":402},"i-lucide-circle-alert","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Ferror-handling",{"title":405,"id":406,"canonicalKey":407,"locale":8,"draft":6,"navigation":408,"icon":409,"path":410},"Logging","content:docs:4.build:6.application-behavior:3.logging.md","docs\u002F4\u002F6\u002F3",{"icon":409},"i-lucide-scroll-text","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Flogging",{"title":412,"id":413,"canonicalKey":414,"locale":8,"draft":6,"navigation":415,"icon":416,"path":417},"DevTools","content:docs:4.build:6.application-behavior:4.devtools.md","docs\u002F4\u002F6\u002F4",{"icon":416},"i-lucide-wrench","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fdevtools",{"title":419,"id":420,"canonicalKey":421,"locale":8,"draft":6,"navigation":422,"icon":423,"path":424},"Performance","content:docs:4.build:6.application-behavior:5.performance.md","docs\u002F4\u002F6\u002F5",{"icon":423},"i-lucide-chart-no-axes-combined","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fperformance",{"title":426,"page":6,"canonicalKey":427,"locale":8,"children":428},"Recipes","docs\u002F5",[429,435,442,449,456,463,470,476],{"title":430,"id":431,"canonicalKey":432,"locale":8,"draft":6,"navigation":433,"icon":36,"path":434},"Protected Dashboard","content:docs:5.recipes:1.protected-dashboard.md","docs\u002F5\u002F1",{"icon":36},"\u002Fdocs\u002Frecipes\u002Fprotected-dashboard",{"title":436,"id":437,"canonicalKey":438,"locale":8,"draft":6,"navigation":439,"icon":440,"path":441},"Real-Time Feed","content:docs:5.recipes:2.realtime-feed.md","docs\u002F5\u002F2",{"icon":440},"i-lucide-messages-square","\u002Fdocs\u002Frecipes\u002Frealtime-feed",{"title":443,"id":444,"canonicalKey":445,"locale":8,"draft":6,"navigation":446,"icon":447,"path":448},"Optimistic Todo List","content:docs:5.recipes:3.optimistic-todo-list.md","docs\u002F5\u002F3",{"icon":447},"i-lucide-list-todo","\u002Fdocs\u002Frecipes\u002Foptimistic-todo-list",{"title":450,"id":451,"canonicalKey":452,"locale":8,"draft":6,"navigation":453,"icon":454,"path":455},"Infinite Scroll","content:docs:5.recipes:4.infinite-scroll.md","docs\u002F5\u002F4",{"icon":454},"i-lucide-mouse","\u002Fdocs\u002Frecipes\u002Finfinite-scroll",{"title":457,"id":458,"canonicalKey":459,"locale":8,"draft":6,"navigation":460,"icon":461,"path":462},"File Upload Form","content:docs:5.recipes:5.file-upload-form.md","docs\u002F5\u002F5",{"icon":461},"i-lucide-file-up","\u002Fdocs\u002Frecipes\u002Ffile-upload-form",{"title":464,"id":465,"canonicalKey":466,"locale":8,"draft":6,"navigation":467,"icon":468,"path":469},"Organization Permissions","content:docs:5.recipes:6.organization-permissions.md","docs\u002F5\u002F6",{"icon":468},"i-lucide-building-2","\u002Fdocs\u002Frecipes\u002Forganization-permissions",{"title":471,"id":472,"canonicalKey":473,"locale":8,"draft":6,"navigation":474,"icon":331,"path":475},"Authenticated Server Route","content:docs:5.recipes:7.authenticated-server-route.md","docs\u002F5\u002F7",{"icon":331},"\u002Fdocs\u002Frecipes\u002Fauthenticated-server-route",{"title":477,"id":478,"canonicalKey":479,"locale":8,"draft":6,"navigation":480,"icon":96,"path":481},"Public and Private Data","content:docs:5.recipes:8.public-and-private-data.md","docs\u002F5\u002F8",{"icon":96},"\u002Fdocs\u002Frecipes\u002Fpublic-and-private-data",{"title":483,"page":6,"canonicalKey":484,"locale":8,"children":485},"Reference","docs\u002F6",[486,493,500,506,512,519,526],{"title":487,"id":488,"canonicalKey":489,"locale":8,"draft":6,"navigation":490,"icon":491,"path":492},"Composables","content:docs:6.reference:1.composables.md","docs\u002F6\u002F1",{"icon":491},"i-lucide-braces","\u002Fdocs\u002Freference\u002Fcomposables",{"title":494,"id":495,"canonicalKey":496,"locale":8,"draft":6,"navigation":497,"icon":498,"path":499},"Auth Components","content:docs:6.reference:2.auth-components.md","docs\u002F6\u002F2",{"icon":498},"i-lucide-component","\u002Fdocs\u002Freference\u002Fauth-components",{"title":501,"id":502,"canonicalKey":503,"locale":8,"draft":6,"navigation":504,"icon":331,"path":505},"Server API","content:docs:6.reference:3.server-api.md","docs\u002F6\u002F3",{"icon":331},"\u002Fdocs\u002Freference\u002Fserver-api",{"title":507,"id":508,"canonicalKey":509,"locale":8,"draft":6,"navigation":510,"icon":103,"path":511},"Error Types","content:docs:6.reference:4.error-types.md","docs\u002F6\u002F4",{"icon":103},"\u002Fdocs\u002Freference\u002Ferror-types",{"title":513,"id":514,"canonicalKey":515,"locale":8,"draft":6,"navigation":516,"icon":517,"path":518},"Module Configuration","content:docs:6.reference:5.module-configuration.md","docs\u002F6\u002F5",{"icon":517},"i-lucide-settings","\u002Fdocs\u002Freference\u002Fmodule-configuration",{"title":520,"id":521,"canonicalKey":522,"locale":8,"draft":6,"navigation":523,"icon":524,"path":525},"Package Exports","content:docs:6.reference:6.package-exports.md","docs\u002F6\u002F6",{"icon":524},"i-lucide-package-open","\u002Fdocs\u002Freference\u002Fpackage-exports",{"title":527,"id":528,"canonicalKey":529,"locale":8,"draft":6,"navigation":530,"icon":531,"path":532},"API Surface","content:docs:6.reference:7.api-surface.md","docs\u002F6\u002F7",{"icon":531},"i-lucide-list","\u002Fdocs\u002Freference\u002Fapi-surface",{"title":534,"page":6,"canonicalKey":535,"locale":8,"children":536},"Operations","docs\u002F7",[537,544,551,557,563,570],{"title":538,"id":539,"canonicalKey":540,"locale":8,"draft":6,"navigation":541,"icon":542,"path":543},"Environment Variables","content:docs:7.operations:1.environment-variables.md","docs\u002F7\u002F1",{"icon":542},"i-lucide-variable","\u002Fdocs\u002Foperations\u002Fenvironment-variables",{"title":545,"id":546,"canonicalKey":547,"locale":8,"draft":6,"navigation":548,"icon":549,"path":550},"Deployment","content:docs:7.operations:2.deployment.md","docs\u002F7\u002F2",{"icon":549},"i-lucide-rocket","\u002Fdocs\u002Foperations\u002Fdeployment",{"title":552,"id":553,"canonicalKey":554,"locale":8,"draft":6,"navigation":555,"icon":163,"path":556},"Security Model","content:docs:7.operations:3.security-model.md","docs\u002F7\u002F3",{"icon":163},"\u002Fdocs\u002Foperations\u002Fsecurity-model",{"title":558,"id":559,"canonicalKey":560,"locale":8,"draft":6,"navigation":561,"icon":416,"path":562},"Troubleshooting","content:docs:7.operations:4.troubleshooting.md","docs\u002F7\u002F4",{"icon":416},"\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":564,"id":565,"canonicalKey":566,"locale":8,"draft":6,"navigation":567,"icon":568,"path":569},"Migration Guide","content:docs:7.operations:5.migration-guide.md","docs\u002F7\u002F5",{"icon":568},"i-lucide-git-compare-arrows","\u002Fdocs\u002Foperations\u002Fmigration-guide",{"title":571,"id":572,"canonicalKey":573,"locale":8,"draft":6,"navigation":574,"icon":22,"path":575},"Release Compatibility","content:docs:7.operations:6.release-compatibility.md","docs\u002F7\u002F6",{"icon":22},"\u002Fdocs\u002Foperations\u002Frelease-compatibility",{"title":334,"description":577,"navigation":578,"body":579,"type":1556,"id":335,"draft":6,"partial":6,"locale":8,"canonicalKey":336,"collection":1557,"navigationFile":6,"file":1558,"route":1564,"resolution":1566},"Decide when a Nuxt API route should call Convex and return a safe server response.",{"icon":338},{"type":580,"children":581,"toc":1546},"root",[582,590,597,627,633,1408,1413,1419,1431,1437,1442,1448],{"type":583,"tag":584,"props":585,"children":586},"element","p",{},[587],{"type":588,"value":589},"text","Do not wrap every Convex function in a Nuxt API route. Browser queries and mutations already call Convex with identity and type safety.",{"type":583,"tag":591,"props":592,"children":594},"h2",{"id":593},"use-a-nitro-route-when",[595],{"type":588,"value":596},"Use a Nitro route when",{"type":583,"tag":598,"props":599,"children":600},"ul",{},[601,607,612,617,622],{"type":583,"tag":602,"props":603,"children":604},"li",{},[605],{"type":588,"value":606},"the operation requires a server-held third-party secret;",{"type":583,"tag":602,"props":608,"children":609},{},[610],{"type":588,"value":611},"an external client calls your Nuxt API rather than Convex directly;",{"type":583,"tag":602,"props":613,"children":614},{},[615],{"type":588,"value":616},"the route verifies a webhook;",{"type":583,"tag":602,"props":618,"children":619},{},[620],{"type":588,"value":621},"Nuxt owns a response contract, cookie, or header;",{"type":583,"tag":602,"props":623,"children":624},{},[625],{"type":588,"value":626},"the operation composes multiple server-only systems.",{"type":583,"tag":591,"props":628,"children":630},{"id":629},"validated-route-example",[631],{"type":588,"value":632},"Validated route example",{"type":583,"tag":634,"props":635,"children":640},"pre",{"language":636,"filename":637,"class":638,"tabindex":639},"ts","server\u002Fapi\u002Freports.post.ts","shiki shiki-themes light-plus dark-plus dark:dark-plus","0",[641],{"type":583,"tag":642,"props":643,"children":645},"code",{"class":644},"language-ts",[646,686,688,716,717,746,747,776,777,780,781,821,822,870,871,879,880,883,884,936,937,995,996,1028,1029,1077,1078,1086,1087,1090,1091,1103,1104,1186,1187,1222,1223,1231,1232,1258,1259,1293,1294,1354,1355,1392,1393,1400,1401],{"type":583,"tag":647,"props":648,"children":651},"span",{"class":649,"style":650},"line","display: inline",[652,658,664,670,675,680],{"type":583,"tag":647,"props":653,"children":655},{"style":654},"color:#AF00DB;--shiki-dark:#C586C0",[656],{"type":588,"value":657},"import",{"type":583,"tag":647,"props":659,"children":661},{"style":660},"color:#000000;--shiki-dark:#D4D4D4",[662],{"type":588,"value":663}," { ",{"type":583,"tag":647,"props":665,"children":667},{"style":666},"color:#001080;--shiki-dark:#9CDCFE",[668],{"type":588,"value":669},"api",{"type":583,"tag":647,"props":671,"children":672},{"style":660},[673],{"type":588,"value":674}," } ",{"type":583,"tag":647,"props":676,"children":677},{"style":654},[678],{"type":588,"value":679},"from",{"type":583,"tag":647,"props":681,"children":683},{"style":682},"color:#A31515;--shiki-dark:#CE9178",[684],{"type":588,"value":685}," '#convex\u002Fapi'",{"type":588,"value":687},"\n",{"type":583,"tag":647,"props":689,"children":690},{"class":649,"style":650},[691,695,699,703,707,711],{"type":583,"tag":647,"props":692,"children":693},{"style":654},[694],{"type":588,"value":657},{"type":583,"tag":647,"props":696,"children":697},{"style":660},[698],{"type":588,"value":663},{"type":583,"tag":647,"props":700,"children":701},{"style":666},[702],{"type":588,"value":327},{"type":583,"tag":647,"props":704,"children":705},{"style":660},[706],{"type":588,"value":674},{"type":583,"tag":647,"props":708,"children":709},{"style":654},[710],{"type":588,"value":679},{"type":583,"tag":647,"props":712,"children":713},{"style":682},[714],{"type":588,"value":715}," '#convex\u002Fserver'",{"type":588,"value":687},{"type":583,"tag":647,"props":718,"children":719},{"class":649,"style":650},[720,724,728,733,737,741],{"type":583,"tag":647,"props":721,"children":722},{"style":654},[723],{"type":588,"value":657},{"type":583,"tag":647,"props":725,"children":726},{"style":660},[727],{"type":588,"value":663},{"type":583,"tag":647,"props":729,"children":730},{"style":666},[731],{"type":588,"value":732},"normalizeConvexError",{"type":583,"tag":647,"props":734,"children":735},{"style":660},[736],{"type":588,"value":674},{"type":583,"tag":647,"props":738,"children":739},{"style":654},[740],{"type":588,"value":679},{"type":583,"tag":647,"props":742,"children":743},{"style":682},[744],{"type":588,"value":745}," 'better-convex-nuxt\u002Ferrors'",{"type":588,"value":687},{"type":583,"tag":647,"props":748,"children":749},{"class":649,"style":650},[750,754,758,763,767,771],{"type":583,"tag":647,"props":751,"children":752},{"style":654},[753],{"type":588,"value":657},{"type":583,"tag":647,"props":755,"children":756},{"style":660},[757],{"type":588,"value":663},{"type":583,"tag":647,"props":759,"children":760},{"style":666},[761],{"type":588,"value":762},"z",{"type":583,"tag":647,"props":764,"children":765},{"style":660},[766],{"type":588,"value":674},{"type":583,"tag":647,"props":768,"children":769},{"style":654},[770],{"type":588,"value":679},{"type":583,"tag":647,"props":772,"children":773},{"style":682},[774],{"type":588,"value":775}," 'zod'",{"type":588,"value":687},{"type":583,"tag":647,"props":778,"children":779},{"class":649,"style":650},[],{"type":588,"value":687},{"type":583,"tag":647,"props":782,"children":783},{"class":649,"style":650},[784,790,796,801,805,810,816],{"type":583,"tag":647,"props":785,"children":787},{"style":786},"color:#0000FF;--shiki-dark:#569CD6",[788],{"type":588,"value":789},"const",{"type":583,"tag":647,"props":791,"children":793},{"style":792},"color:#0070C1;--shiki-dark:#4FC1FF",[794],{"type":588,"value":795}," bodySchema",{"type":583,"tag":647,"props":797,"children":798},{"style":660},[799],{"type":588,"value":800}," = ",{"type":583,"tag":647,"props":802,"children":803},{"style":666},[804],{"type":588,"value":762},{"type":583,"tag":647,"props":806,"children":807},{"style":660},[808],{"type":588,"value":809},".",{"type":583,"tag":647,"props":811,"children":813},{"style":812},"color:#795E26;--shiki-dark:#DCDCAA",[814],{"type":588,"value":815},"object",{"type":583,"tag":647,"props":817,"children":818},{"style":660},[819],{"type":588,"value":820},"({",{"type":588,"value":687},{"type":583,"tag":647,"props":823,"children":824},{"class":649,"style":650},[825,830,835,839,844,849,854,859,865],{"type":583,"tag":647,"props":826,"children":827},{"style":666},[828],{"type":588,"value":829},"  projectId:",{"type":583,"tag":647,"props":831,"children":832},{"style":666},[833],{"type":588,"value":834}," z",{"type":583,"tag":647,"props":836,"children":837},{"style":660},[838],{"type":588,"value":809},{"type":583,"tag":647,"props":840,"children":841},{"style":812},[842],{"type":588,"value":843},"string",{"type":583,"tag":647,"props":845,"children":846},{"style":660},[847],{"type":588,"value":848},"().",{"type":583,"tag":647,"props":850,"children":851},{"style":812},[852],{"type":588,"value":853},"min",{"type":583,"tag":647,"props":855,"children":856},{"style":660},[857],{"type":588,"value":858},"(",{"type":583,"tag":647,"props":860,"children":862},{"style":861},"color:#098658;--shiki-dark:#B5CEA8",[863],{"type":588,"value":864},"1",{"type":583,"tag":647,"props":866,"children":867},{"style":660},[868],{"type":588,"value":869},"),",{"type":588,"value":687},{"type":583,"tag":647,"props":872,"children":873},{"class":649,"style":650},[874],{"type":583,"tag":647,"props":875,"children":876},{"style":660},[877],{"type":588,"value":878},"})",{"type":588,"value":687},{"type":583,"tag":647,"props":881,"children":882},{"class":649,"style":650},[],{"type":588,"value":687},{"type":583,"tag":647,"props":885,"children":886},{"class":649,"style":650},[887,892,897,902,906,911,916,921,926,931],{"type":583,"tag":647,"props":888,"children":889},{"style":654},[890],{"type":588,"value":891},"export",{"type":583,"tag":647,"props":893,"children":894},{"style":654},[895],{"type":588,"value":896}," default",{"type":583,"tag":647,"props":898,"children":899},{"style":812},[900],{"type":588,"value":901}," defineEventHandler",{"type":583,"tag":647,"props":903,"children":904},{"style":660},[905],{"type":588,"value":858},{"type":583,"tag":647,"props":907,"children":908},{"style":786},[909],{"type":588,"value":910},"async",{"type":583,"tag":647,"props":912,"children":913},{"style":660},[914],{"type":588,"value":915}," (",{"type":583,"tag":647,"props":917,"children":918},{"style":666},[919],{"type":588,"value":920},"event",{"type":583,"tag":647,"props":922,"children":923},{"style":660},[924],{"type":588,"value":925},") ",{"type":583,"tag":647,"props":927,"children":928},{"style":786},[929],{"type":588,"value":930},"=>",{"type":583,"tag":647,"props":932,"children":933},{"style":660},[934],{"type":588,"value":935}," {",{"type":588,"value":687},{"type":583,"tag":647,"props":938,"children":939},{"class":649,"style":650},[940,945,950,954,959,963,968,972,977,982,986,990],{"type":583,"tag":647,"props":941,"children":942},{"style":786},[943],{"type":588,"value":944},"  const",{"type":583,"tag":647,"props":946,"children":947},{"style":792},[948],{"type":588,"value":949}," parsed",{"type":583,"tag":647,"props":951,"children":952},{"style":660},[953],{"type":588,"value":800},{"type":583,"tag":647,"props":955,"children":956},{"style":666},[957],{"type":588,"value":958},"bodySchema",{"type":583,"tag":647,"props":960,"children":961},{"style":660},[962],{"type":588,"value":809},{"type":583,"tag":647,"props":964,"children":965},{"style":812},[966],{"type":588,"value":967},"safeParse",{"type":583,"tag":647,"props":969,"children":970},{"style":660},[971],{"type":588,"value":858},{"type":583,"tag":647,"props":973,"children":974},{"style":654},[975],{"type":588,"value":976},"await",{"type":583,"tag":647,"props":978,"children":979},{"style":812},[980],{"type":588,"value":981}," readBody",{"type":583,"tag":647,"props":983,"children":984},{"style":660},[985],{"type":588,"value":858},{"type":583,"tag":647,"props":987,"children":988},{"style":666},[989],{"type":588,"value":920},{"type":583,"tag":647,"props":991,"children":992},{"style":660},[993],{"type":588,"value":994},"))",{"type":588,"value":687},{"type":583,"tag":647,"props":997,"children":998},{"class":649,"style":650},[999,1004,1009,1014,1018,1023],{"type":583,"tag":647,"props":1000,"children":1001},{"style":654},[1002],{"type":588,"value":1003},"  if",{"type":583,"tag":647,"props":1005,"children":1006},{"style":660},[1007],{"type":588,"value":1008}," (!",{"type":583,"tag":647,"props":1010,"children":1011},{"style":666},[1012],{"type":588,"value":1013},"parsed",{"type":583,"tag":647,"props":1015,"children":1016},{"style":660},[1017],{"type":588,"value":809},{"type":583,"tag":647,"props":1019,"children":1020},{"style":666},[1021],{"type":588,"value":1022},"success",{"type":583,"tag":647,"props":1024,"children":1025},{"style":660},[1026],{"type":588,"value":1027},") {",{"type":588,"value":687},{"type":583,"tag":647,"props":1030,"children":1031},{"class":649,"style":650},[1032,1037,1042,1047,1052,1057,1062,1067,1072],{"type":583,"tag":647,"props":1033,"children":1034},{"style":654},[1035],{"type":588,"value":1036},"    throw",{"type":583,"tag":647,"props":1038,"children":1039},{"style":812},[1040],{"type":588,"value":1041}," createError",{"type":583,"tag":647,"props":1043,"children":1044},{"style":660},[1045],{"type":588,"value":1046},"({ ",{"type":583,"tag":647,"props":1048,"children":1049},{"style":666},[1050],{"type":588,"value":1051},"status:",{"type":583,"tag":647,"props":1053,"children":1054},{"style":861},[1055],{"type":588,"value":1056}," 400",{"type":583,"tag":647,"props":1058,"children":1059},{"style":660},[1060],{"type":588,"value":1061},", ",{"type":583,"tag":647,"props":1063,"children":1064},{"style":666},[1065],{"type":588,"value":1066},"statusText:",{"type":583,"tag":647,"props":1068,"children":1069},{"style":682},[1070],{"type":588,"value":1071}," 'Invalid request'",{"type":583,"tag":647,"props":1073,"children":1074},{"style":660},[1075],{"type":588,"value":1076}," })",{"type":588,"value":687},{"type":583,"tag":647,"props":1079,"children":1080},{"class":649,"style":650},[1081],{"type":583,"tag":647,"props":1082,"children":1083},{"style":660},[1084],{"type":588,"value":1085},"  }",{"type":588,"value":687},{"type":583,"tag":647,"props":1088,"children":1089},{"class":649,"style":650},[],{"type":588,"value":687},{"type":583,"tag":647,"props":1092,"children":1093},{"class":649,"style":650},[1094,1099],{"type":583,"tag":647,"props":1095,"children":1096},{"style":654},[1097],{"type":588,"value":1098},"  try",{"type":583,"tag":647,"props":1100,"children":1101},{"style":660},[1102],{"type":588,"value":935},{"type":588,"value":687},{"type":583,"tag":647,"props":1105,"children":1106},{"class":649,"style":650},[1107,1112,1117,1122,1126,1130,1135,1140,1145,1150,1155,1159,1163,1167,1172,1176,1181],{"type":583,"tag":647,"props":1108,"children":1109},{"style":654},[1110],{"type":588,"value":1111},"    return",{"type":583,"tag":647,"props":1113,"children":1114},{"style":654},[1115],{"type":588,"value":1116}," await",{"type":583,"tag":647,"props":1118,"children":1119},{"style":812},[1120],{"type":588,"value":1121}," serverConvex",{"type":583,"tag":647,"props":1123,"children":1124},{"style":660},[1125],{"type":588,"value":858},{"type":583,"tag":647,"props":1127,"children":1128},{"style":666},[1129],{"type":588,"value":920},{"type":583,"tag":647,"props":1131,"children":1132},{"style":660},[1133],{"type":588,"value":1134},", { ",{"type":583,"tag":647,"props":1136,"children":1137},{"style":666},[1138],{"type":588,"value":1139},"auth:",{"type":583,"tag":647,"props":1141,"children":1142},{"style":682},[1143],{"type":588,"value":1144}," 'required'",{"type":583,"tag":647,"props":1146,"children":1147},{"style":660},[1148],{"type":588,"value":1149}," }).",{"type":583,"tag":647,"props":1151,"children":1152},{"style":812},[1153],{"type":588,"value":1154},"action",{"type":583,"tag":647,"props":1156,"children":1157},{"style":660},[1158],{"type":588,"value":858},{"type":583,"tag":647,"props":1160,"children":1161},{"style":666},[1162],{"type":588,"value":669},{"type":583,"tag":647,"props":1164,"children":1165},{"style":660},[1166],{"type":588,"value":809},{"type":583,"tag":647,"props":1168,"children":1169},{"style":666},[1170],{"type":588,"value":1171},"reports",{"type":583,"tag":647,"props":1173,"children":1174},{"style":660},[1175],{"type":588,"value":809},{"type":583,"tag":647,"props":1177,"children":1178},{"style":666},[1179],{"type":588,"value":1180},"generate",{"type":583,"tag":647,"props":1182,"children":1183},{"style":660},[1184],{"type":588,"value":1185},", {",{"type":588,"value":687},{"type":583,"tag":647,"props":1188,"children":1189},{"class":649,"style":650},[1190,1195,1199,1203,1208,1212,1217],{"type":583,"tag":647,"props":1191,"children":1192},{"style":666},[1193],{"type":588,"value":1194},"      projectId:",{"type":583,"tag":647,"props":1196,"children":1197},{"style":666},[1198],{"type":588,"value":949},{"type":583,"tag":647,"props":1200,"children":1201},{"style":660},[1202],{"type":588,"value":809},{"type":583,"tag":647,"props":1204,"children":1205},{"style":666},[1206],{"type":588,"value":1207},"data",{"type":583,"tag":647,"props":1209,"children":1210},{"style":660},[1211],{"type":588,"value":809},{"type":583,"tag":647,"props":1213,"children":1214},{"style":666},[1215],{"type":588,"value":1216},"projectId",{"type":583,"tag":647,"props":1218,"children":1219},{"style":660},[1220],{"type":588,"value":1221},",",{"type":588,"value":687},{"type":583,"tag":647,"props":1224,"children":1225},{"class":649,"style":650},[1226],{"type":583,"tag":647,"props":1227,"children":1228},{"style":660},[1229],{"type":588,"value":1230},"    })",{"type":588,"value":687},{"type":583,"tag":647,"props":1233,"children":1234},{"class":649,"style":650},[1235,1240,1245,1249,1254],{"type":583,"tag":647,"props":1236,"children":1237},{"style":660},[1238],{"type":588,"value":1239},"  } ",{"type":583,"tag":647,"props":1241,"children":1242},{"style":654},[1243],{"type":588,"value":1244},"catch",{"type":583,"tag":647,"props":1246,"children":1247},{"style":660},[1248],{"type":588,"value":915},{"type":583,"tag":647,"props":1250,"children":1251},{"style":666},[1252],{"type":588,"value":1253},"error",{"type":583,"tag":647,"props":1255,"children":1256},{"style":660},[1257],{"type":588,"value":1027},{"type":588,"value":687},{"type":583,"tag":647,"props":1260,"children":1261},{"class":649,"style":650},[1262,1267,1272,1276,1280,1284,1288],{"type":583,"tag":647,"props":1263,"children":1264},{"style":786},[1265],{"type":588,"value":1266},"    const",{"type":583,"tag":647,"props":1268,"children":1269},{"style":792},[1270],{"type":588,"value":1271}," callError",{"type":583,"tag":647,"props":1273,"children":1274},{"style":660},[1275],{"type":588,"value":800},{"type":583,"tag":647,"props":1277,"children":1278},{"style":812},[1279],{"type":588,"value":732},{"type":583,"tag":647,"props":1281,"children":1282},{"style":660},[1283],{"type":588,"value":858},{"type":583,"tag":647,"props":1285,"children":1286},{"style":666},[1287],{"type":588,"value":1253},{"type":583,"tag":647,"props":1289,"children":1290},{"style":660},[1291],{"type":588,"value":1292},")",{"type":588,"value":687},{"type":583,"tag":647,"props":1295,"children":1296},{"class":649,"style":650},[1297,1301,1306,1310,1315,1319,1324,1329,1334,1339,1344,1349],{"type":583,"tag":647,"props":1298,"children":1299},{"style":786},[1300],{"type":588,"value":1266},{"type":583,"tag":647,"props":1302,"children":1303},{"style":792},[1304],{"type":588,"value":1305}," status",{"type":583,"tag":647,"props":1307,"children":1308},{"style":660},[1309],{"type":588,"value":800},{"type":583,"tag":647,"props":1311,"children":1312},{"style":666},[1313],{"type":588,"value":1314},"callError",{"type":583,"tag":647,"props":1316,"children":1317},{"style":660},[1318],{"type":588,"value":809},{"type":583,"tag":647,"props":1320,"children":1321},{"style":666},[1322],{"type":588,"value":1323},"kind",{"type":583,"tag":647,"props":1325,"children":1326},{"style":660},[1327],{"type":588,"value":1328}," === ",{"type":583,"tag":647,"props":1330,"children":1331},{"style":682},[1332],{"type":588,"value":1333},"'authentication'",{"type":583,"tag":647,"props":1335,"children":1336},{"style":660},[1337],{"type":588,"value":1338}," ? ",{"type":583,"tag":647,"props":1340,"children":1341},{"style":861},[1342],{"type":588,"value":1343},"401",{"type":583,"tag":647,"props":1345,"children":1346},{"style":660},[1347],{"type":588,"value":1348}," : ",{"type":583,"tag":647,"props":1350,"children":1351},{"style":861},[1352],{"type":588,"value":1353},"502",{"type":588,"value":687},{"type":583,"tag":647,"props":1356,"children":1357},{"class":649,"style":650},[1358,1362,1366,1370,1375,1379,1383,1388],{"type":583,"tag":647,"props":1359,"children":1360},{"style":654},[1361],{"type":588,"value":1036},{"type":583,"tag":647,"props":1363,"children":1364},{"style":812},[1365],{"type":588,"value":1041},{"type":583,"tag":647,"props":1367,"children":1368},{"style":660},[1369],{"type":588,"value":1046},{"type":583,"tag":647,"props":1371,"children":1372},{"style":666},[1373],{"type":588,"value":1374},"status",{"type":583,"tag":647,"props":1376,"children":1377},{"style":660},[1378],{"type":588,"value":1061},{"type":583,"tag":647,"props":1380,"children":1381},{"style":666},[1382],{"type":588,"value":1066},{"type":583,"tag":647,"props":1384,"children":1385},{"style":682},[1386],{"type":588,"value":1387}," 'Report generation failed'",{"type":583,"tag":647,"props":1389,"children":1390},{"style":660},[1391],{"type":588,"value":1076},{"type":588,"value":687},{"type":583,"tag":647,"props":1394,"children":1395},{"class":649,"style":650},[1396],{"type":583,"tag":647,"props":1397,"children":1398},{"style":660},[1399],{"type":588,"value":1085},{"type":588,"value":687},{"type":583,"tag":647,"props":1402,"children":1403},{"class":649,"style":650},[1404],{"type":583,"tag":647,"props":1405,"children":1406},{"style":660},[1407],{"type":588,"value":878},{"type":583,"tag":584,"props":1409,"children":1410},{},[1411],{"type":588,"value":1412},"Validate at the HTTP boundary and again through Convex argument validators. The Convex function still enforces product authorization.",{"type":583,"tag":591,"props":1414,"children":1416},{"id":1415},"return-safe-errors",[1417],{"type":588,"value":1418},"Return safe errors",{"type":583,"tag":584,"props":1420,"children":1421},{},[1422,1424,1429],{"type":588,"value":1423},"Do not serialize raw upstream errors, request objects, credentials, or ",{"type":583,"tag":642,"props":1425,"children":1426},{},[1427],{"type":588,"value":1428},"error.cause",{"type":588,"value":1430},". Map expected domain errors to a public response contract and log only sanitized diagnostics.",{"type":583,"tag":591,"props":1432,"children":1434},{"id":1433},"server-middleware",[1435],{"type":588,"value":1436},"Server middleware",{"type":583,"tag":584,"props":1438,"children":1439},{},[1440],{"type":588,"value":1441},"Middleware can create a caller for request-scoped checks, but avoid turning every page request into an extra Convex call. Prefer route metadata and page queries when they already express the requirement.",{"type":583,"tag":591,"props":1443,"children":1445},{"id":1444},"direct-call-or-route",[1446],{"type":588,"value":1447},"Direct call or route",{"type":583,"tag":1449,"props":1450,"children":1451},"table",{},[1452,1471],{"type":583,"tag":1453,"props":1454,"children":1455},"thead",{},[1456],{"type":583,"tag":1457,"props":1458,"children":1459},"tr",{},[1460,1466],{"type":583,"tag":1461,"props":1462,"children":1463},"th",{},[1464],{"type":588,"value":1465},"Requirement",{"type":583,"tag":1461,"props":1467,"children":1468},{},[1469],{"type":588,"value":1470},"Use",{"type":583,"tag":1472,"props":1473,"children":1474},"tbody",{},[1475,1492,1508,1521,1533],{"type":583,"tag":1457,"props":1476,"children":1477},{},[1478,1484],{"type":583,"tag":1479,"props":1480,"children":1481},"td",{},[1482],{"type":588,"value":1483},"Live page data",{"type":583,"tag":1479,"props":1485,"children":1486},{},[1487],{"type":583,"tag":642,"props":1488,"children":1489},{},[1490],{"type":588,"value":1491},"useConvexQuery",{"type":583,"tag":1457,"props":1493,"children":1494},{},[1495,1500],{"type":583,"tag":1479,"props":1496,"children":1497},{},[1498],{"type":588,"value":1499},"Interactive write",{"type":583,"tag":1479,"props":1501,"children":1502},{},[1503],{"type":583,"tag":642,"props":1504,"children":1505},{},[1506],{"type":588,"value":1507},"useConvexMutation",{"type":583,"tag":1457,"props":1509,"children":1510},{},[1511,1516],{"type":583,"tag":1479,"props":1512,"children":1513},{},[1514],{"type":588,"value":1515},"Server-held secret",{"type":583,"tag":1479,"props":1517,"children":1518},{},[1519],{"type":588,"value":1520},"Nitro route",{"type":583,"tag":1457,"props":1522,"children":1523},{},[1524,1529],{"type":583,"tag":1479,"props":1525,"children":1526},{},[1527],{"type":588,"value":1528},"External webhook",{"type":583,"tag":1479,"props":1530,"children":1531},{},[1532],{"type":588,"value":1520},{"type":583,"tag":1457,"props":1534,"children":1535},{},[1536,1541],{"type":583,"tag":1479,"props":1537,"children":1538},{},[1539],{"type":588,"value":1540},"Scheduled Convex work",{"type":583,"tag":1479,"props":1542,"children":1543},{},[1544],{"type":588,"value":1545},"Convex scheduler\u002Fcron",{"title":1547,"searchDepth":1548,"depth":1548,"links":1549},"",4,[1550,1552,1553,1554,1555],{"id":593,"depth":1551,"text":596},2,{"id":629,"depth":1551,"text":632},{"id":1415,"depth":1551,"text":1418},{"id":1433,"depth":1551,"text":1436},{"id":1444,"depth":1551,"text":1447},"markdown","docs",{"source":1559,"path":1560,"stem":1561,"dir":1562,"extension":1563},"content","docs\u002F4.build\u002F4.server\u002F2.server-routes.md","docs\u002F4.build\u002F4.server\u002F2.server-routes","server","md",{"requestedPath":339,"resolvedPath":339,"alternates":1565},[],{"requested":1567,"resolved":1568,"usedFallback":6},{"locale":8},{"locale":8},{"previous":1570,"next":1572},{"title":327,"id":328,"canonicalKey":329,"locale":8,"draft":6,"navigation":1571,"icon":331,"path":332},{"icon":331},{"title":341,"id":342,"canonicalKey":343,"locale":8,"draft":6,"navigation":1573,"icon":345,"path":346},{"icon":345},{"left":1575,"top":1575,"width":1576,"height":1576,"rotate":1575,"vFlip":6,"hFlip":6,"body":1577},0,256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":1575,"top":1575,"width":1579,"height":1579,"rotate":1575,"vFlip":6,"hFlip":6,"body":1580},24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1784196949590]