[{"data":1,"prerenderedAt":2566},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:ulw9bSKLUSkbzCyaF18RrYQgoJBbBYGng5ruSUHF5Yw":651,"content-page-surround:docs:ulw9bSKLUSkbzCyaF18RrYQgoJBbBYGng5ruSUHF5Yw":2551,"i-logos:vue":2556,"i-logos:typescript-icon":2561,"i-lucide:clipboard":2563},[4,41,110,418,485,550,601,646],{"title":5,"page":6,"canonicalKey":7,"locale":8,"id":9,"draft":6,"icon":10,"sidebar":11,"children":12},"Learn",false,"1","en","content:docs:1.overview:.navigation.yml","i-lucide-book-open","section",[13,20,27,34],{"title":14,"id":15,"canonicalKey":16,"locale":8,"draft":6,"navigation":17,"icon":18,"path":19},"Better Convex Nuxt","content:docs:1.overview:1.introduction.md","1\u002F1",{"icon":18},"i-lucide-orbit","\u002Fdocs\u002Foverview\u002Fintroduction",{"title":21,"id":22,"canonicalKey":23,"locale":8,"draft":6,"navigation":24,"icon":25,"path":26},"Who it is for","content:docs:1.overview:2.who-it-is-for.md","1\u002F2",{"icon":25},"i-lucide-users","\u002Fdocs\u002Foverview\u002Fwho-it-is-for",{"title":28,"id":29,"canonicalKey":30,"locale":8,"draft":6,"navigation":31,"icon":32,"path":33},"Limitations and trade-offs","content:docs:1.overview:3.limitations.md","1\u002F3",{"icon":32},"i-lucide-triangle-alert","\u002Fdocs\u002Foverview\u002Flimitations",{"title":35,"id":36,"canonicalKey":37,"locale":8,"draft":6,"navigation":38,"icon":39,"path":40},"Compare Nuxt integrations","content:docs:1.overview:4.comparison.md","1\u002F4",{"icon":39},"i-lucide-scale","\u002Fdocs\u002Foverview\u002Fcomparison",{"title":42,"page":6,"canonicalKey":43,"locale":8,"id":44,"draft":6,"icon":45,"children":46},"Get started","2","content:docs:2.get-started:.navigation.yml","i-lucide-rocket",[47,54,61,68,75,82,89,96,103],{"title":48,"id":49,"canonicalKey":50,"locale":8,"draft":6,"navigation":51,"icon":52,"path":53},"Choose your path","content:docs:2.get-started:1.choose-your-path.md","2\u002F1",{"icon":52},"i-lucide-signpost","\u002Fdocs\u002Fget-started\u002Fchoose-your-path",{"title":55,"id":56,"canonicalKey":57,"locale":8,"draft":6,"navigation":58,"icon":59,"path":60},"Installation","content:docs:2.get-started:2.installation.md","2\u002F2",{"icon":59},"i-lucide-download","\u002Fdocs\u002Fget-started\u002Finstallation",{"title":62,"id":63,"canonicalKey":64,"locale":8,"draft":6,"navigation":65,"icon":66,"path":67},"First real-time page","content:docs:2.get-started:3.first-realtime-page.md","2\u002F3",{"icon":66},"i-lucide-radio","\u002Fdocs\u002Fget-started\u002Ffirst-realtime-page",{"title":69,"id":70,"canonicalKey":71,"locale":8,"draft":6,"navigation":72,"icon":73,"path":74},"Add a mutation","content:docs:2.get-started:4.add-a-mutation.md","2\u002F4",{"icon":73},"i-lucide-square-pen","\u002Fdocs\u002Fget-started\u002Fadd-a-mutation",{"title":76,"id":77,"canonicalKey":78,"locale":8,"draft":6,"navigation":79,"icon":80,"path":81},"Add authentication","content:docs:2.get-started:5.add-authentication.md","2\u002F5",{"icon":80},"i-lucide-log-in","\u002Fdocs\u002Fget-started\u002Fadd-authentication",{"title":83,"id":84,"canonicalKey":85,"locale":8,"draft":6,"navigation":86,"icon":87,"path":88},"Protect data","content:docs:2.get-started:6.protect-data.md","2\u002F6",{"icon":87},"i-lucide-shield-check","\u002Fdocs\u002Fget-started\u002Fprotect-data",{"title":90,"id":91,"canonicalKey":92,"locale":8,"draft":6,"navigation":93,"icon":94,"path":95},"Project structure","content:docs:2.get-started:7.project-structure.md","2\u002F7",{"icon":94},"i-lucide-folder-tree","\u002Fdocs\u002Fget-started\u002Fproject-structure",{"title":97,"id":98,"canonicalKey":99,"locale":8,"draft":6,"navigation":100,"icon":101,"path":102},"Next steps","content:docs:2.get-started:8.next-steps.md","2\u002F8",{"icon":101},"i-lucide-arrow-right","\u002Fdocs\u002Fget-started\u002Fnext-steps",{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":6,"navigation":107,"icon":108,"path":109},"Plain Vue and Vite","content:docs:2.get-started:9.plain-vue.md","2\u002F9",{"icon":108},"i-lucide-panels-top-left","\u002Fdocs\u002Fget-started\u002Fplain-vue",{"title":111,"page":6,"canonicalKey":112,"locale":8,"id":113,"draft":6,"icon":114,"sidebar":11,"children":115},"Build","3","content:docs:3.build:.navigation.yml","i-lucide-blocks",[116,154,199,292,324,349,388],{"title":117,"page":6,"canonicalKey":118,"locale":8,"children":119},"Queries","3\u002F1",[120,126,133,140,147],{"title":117,"id":121,"canonicalKey":122,"locale":8,"draft":6,"navigation":123,"icon":124,"path":125},"content:docs:3.build:1.queries:1.queries.md","3\u002F1\u002F1",{"icon":124},"i-lucide-database","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fqueries",{"title":127,"id":128,"canonicalKey":129,"locale":8,"draft":6,"navigation":130,"icon":131,"path":132},"Reactive arguments","content:docs:3.build:1.queries:2.reactive-arguments.md","3\u002F1\u002F2",{"icon":131},"i-lucide-sliders-horizontal","\u002Fdocs\u002Fbuild\u002Fqueries\u002Freactive-arguments",{"title":134,"id":135,"canonicalKey":136,"locale":8,"draft":6,"navigation":137,"icon":138,"path":139},"Loading and stale data","content:docs:3.build:1.queries:3.loading-and-stale-data.md","3\u002F1\u002F3",{"icon":138},"i-lucide-loader-circle","\u002Fdocs\u002Fbuild\u002Fqueries\u002Floading-and-stale-data",{"title":141,"id":142,"canonicalKey":143,"locale":8,"draft":6,"navigation":144,"icon":145,"path":146},"Query execution options","content:docs:3.build:1.queries:4.ssr-options.md","3\u002F1\u002F4",{"icon":145},"i-lucide-server-cog","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fssr-options",{"title":148,"id":149,"canonicalKey":150,"locale":8,"draft":6,"navigation":151,"icon":152,"path":153},"Pagination","content:docs:3.build:1.queries:6.pagination.md","3\u002F1\u002F6",{"icon":152},"i-lucide-list-plus","\u002Fdocs\u002Fbuild\u002Fqueries\u002Fpagination",{"title":155,"page":6,"canonicalKey":156,"locale":8,"children":157},"Write Data","3\u002F2",[158,164,171,178,185,192],{"title":159,"id":160,"canonicalKey":161,"locale":8,"draft":6,"navigation":162,"icon":73,"path":163},"Mutations","content:docs:3.build:2.write-data:1.mutations.md","3\u002F2\u002F1",{"icon":73},"\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmutations",{"title":165,"id":166,"canonicalKey":167,"locale":8,"draft":6,"navigation":168,"icon":169,"path":170},"Actions","content:docs:3.build:2.write-data:2.actions.md","3\u002F2\u002F2",{"icon":169},"i-lucide-zap","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Factions",{"title":172,"id":173,"canonicalKey":174,"locale":8,"draft":6,"navigation":175,"icon":176,"path":177},"Optimistic updates","content:docs:3.build:2.write-data:3.optimistic-updates.md","3\u002F2\u002F3",{"icon":176},"i-lucide-gauge","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Foptimistic-updates",{"title":179,"id":180,"canonicalKey":181,"locale":8,"draft":6,"navigation":182,"icon":183,"path":184},"Concurrent operations","content:docs:3.build:2.write-data:4.concurrent-operations.md","3\u002F2\u002F4",{"icon":183},"i-lucide-git-fork","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fconcurrent-operations",{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":6,"navigation":189,"icon":190,"path":191},"Form submissions","content:docs:3.build:2.write-data:5.forms.md","3\u002F2\u002F5",{"icon":190},"i-lucide-list-checks","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fforms",{"title":193,"id":194,"canonicalKey":195,"locale":8,"draft":6,"navigation":196,"icon":197,"path":198},"Multi-step operations","content:docs:3.build:2.write-data:6.multi-step-operations.md","3\u002F2\u002F6",{"icon":197},"i-lucide-list-ordered","\u002Fdocs\u002Fbuild\u002Fwrite-data\u002Fmulti-step-operations",{"title":200,"page":6,"canonicalKey":201,"locale":8,"children":202},"Authentication","3\u002F3",[203,209,216,223,229,236,243,250,257,264,271,278,285],{"title":200,"id":204,"canonicalKey":205,"locale":8,"draft":6,"navigation":206,"icon":207,"path":208},"content:docs:3.build:3.authentication:1.overview.md","3\u002F3\u002F1",{"icon":207},"i-lucide-shield","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Foverview",{"title":210,"id":211,"canonicalKey":212,"locale":8,"draft":6,"navigation":213,"icon":214,"path":215},"Better Auth setup","content:docs:3.build:3.authentication:2.better-auth-setup.md","3\u002F3\u002F2",{"icon":214},"i-lucide-settings-2","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-setup",{"title":217,"id":218,"canonicalKey":219,"locale":8,"draft":6,"navigation":220,"icon":221,"path":222},"Auth state and user data","content:docs:3.build:3.authentication:3.auth-state-and-user.md","3\u002F3\u002F3",{"icon":221},"i-lucide-user-round","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fauth-state-and-user",{"title":224,"id":225,"canonicalKey":226,"locale":8,"draft":6,"navigation":227,"icon":80,"path":228},"Sign in and sign out","content:docs:3.build:3.authentication:4.sign-in-and-sign-out.md","3\u002F3\u002F4",{"icon":80},"\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsign-in-and-sign-out",{"title":230,"id":231,"canonicalKey":232,"locale":8,"draft":6,"navigation":233,"icon":234,"path":235},"Route protection","content:docs:3.build:3.authentication:5.route-protection.md","3\u002F3\u002F5",{"icon":234},"i-lucide-route","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Froute-protection",{"title":237,"id":238,"canonicalKey":239,"locale":8,"draft":6,"navigation":240,"icon":241,"path":242},"Backend authorization","content:docs:3.build:3.authentication:6.backend-authorization.md","3\u002F3\u002F6",{"icon":241},"i-lucide-lock-keyhole","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbackend-authorization",{"title":244,"id":245,"canonicalKey":246,"locale":8,"draft":6,"navigation":247,"icon":248,"path":249},"Better Auth plugins","content:docs:3.build:3.authentication:7.better-auth-plugins.md","3\u002F3\u002F7",{"icon":248},"i-lucide-plug","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugins",{"title":251,"id":252,"canonicalKey":253,"locale":8,"draft":6,"navigation":254,"icon":255,"path":256},"Custom user fields","content:docs:3.build:3.authentication:8.custom-user-fields.md","3\u002F3\u002F8",{"icon":255},"i-lucide-user-cog","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fcustom-user-fields",{"title":258,"id":259,"canonicalKey":260,"locale":8,"draft":6,"navigation":261,"icon":262,"path":263},"User synchronization","content:docs:3.build:3.authentication:9.user-synchronization.md","3\u002F3\u002F9",{"icon":262},"i-lucide-refresh-ccw","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fuser-synchronization",{"title":265,"id":266,"canonicalKey":267,"locale":8,"draft":6,"navigation":268,"icon":269,"path":270},"Delegated OAuth and MCP","content:docs:3.build:3.authentication:10.delegated-oauth-and-mcp.md","3\u002F3\u002F10",{"icon":269},"i-lucide-bot","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fdelegated-oauth-and-mcp",{"title":272,"id":273,"canonicalKey":274,"locale":8,"draft":6,"navigation":275,"icon":276,"path":277},"Transactional auth email","content:docs:3.build:3.authentication:11.transactional-email.md","3\u002F3\u002F11",{"icon":276},"i-lucide-mail","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Ftransactional-email",{"title":279,"id":280,"canonicalKey":281,"locale":8,"draft":6,"navigation":282,"icon":283,"path":284},"Social sign-in","content:docs:3.build:3.authentication:12.social-sign-in.md","3\u002F3\u002F12",{"icon":283},"i-lucide-github","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fsocial-sign-in",{"title":286,"id":287,"canonicalKey":288,"locale":8,"draft":6,"navigation":289,"icon":290,"path":291},"Better Auth plugin support","content:docs:3.build:3.authentication:13.better-auth-plugin-support.md","3\u002F3\u002F13",{"icon":290},"i-lucide-puzzle","\u002Fdocs\u002Fbuild\u002Fauthentication\u002Fbetter-auth-plugin-support",{"title":293,"page":6,"canonicalKey":294,"locale":8,"children":295},"Server","3\u002F4",[296,303,310,317],{"title":297,"id":298,"canonicalKey":299,"locale":8,"draft":6,"navigation":300,"icon":301,"path":302},"serverConvex","content:docs:3.build:4.server:1.server-convex.md","3\u002F4\u002F1",{"icon":301},"i-lucide-server","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-convex",{"title":304,"id":305,"canonicalKey":306,"locale":8,"draft":6,"navigation":307,"icon":308,"path":309},"Server routes","content:docs:3.build:4.server:2.server-routes.md","3\u002F4\u002F2",{"icon":308},"i-lucide-waypoints","\u002Fdocs\u002Fbuild\u002Fserver\u002Fserver-routes",{"title":311,"id":312,"canonicalKey":313,"locale":8,"draft":6,"navigation":314,"icon":315,"path":316},"Webhooks and jobs","content:docs:3.build:4.server:3.webhooks-and-jobs.md","3\u002F4\u002F3",{"icon":315},"i-lucide-webhook","\u002Fdocs\u002Fbuild\u002Fserver\u002Fwebhooks-and-jobs",{"title":318,"id":319,"canonicalKey":320,"locale":8,"draft":6,"navigation":321,"icon":322,"path":323},"Credentials and server security","content:docs:3.build:4.server:4.credentials-and-security.md","3\u002F4\u002F4",{"icon":322},"i-lucide-key-round","\u002Fdocs\u002Fbuild\u002Fserver\u002Fcredentials-and-security",{"title":325,"page":6,"canonicalKey":326,"locale":8,"children":327},"Files","3\u002F5",[328,335,342],{"title":329,"id":330,"canonicalKey":331,"locale":8,"draft":6,"navigation":332,"icon":333,"path":334},"Upload files","content:docs:3.build:5.files:1.upload-files.md","3\u002F5\u002F1",{"icon":333},"i-lucide-upload","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fupload-files",{"title":336,"id":337,"canonicalKey":338,"locale":8,"draft":6,"navigation":339,"icon":340,"path":341},"Storage URLs","content:docs:3.build:5.files:3.storage-urls.md","3\u002F5\u002F3",{"icon":340},"i-lucide-link","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fstorage-urls",{"title":343,"id":344,"canonicalKey":345,"locale":8,"draft":6,"navigation":346,"icon":347,"path":348},"File validation and deletion","content:docs:3.build:5.files:4.validation-and-deletion.md","3\u002F5\u002F4",{"icon":347},"i-lucide-file-x","\u002Fdocs\u002Fbuild\u002Ffiles\u002Fvalidation-and-deletion",{"title":350,"page":6,"canonicalKey":351,"locale":8,"children":352},"Application Behavior","3\u002F6",[353,360,367,374,381],{"title":354,"id":355,"canonicalKey":356,"locale":8,"draft":6,"navigation":357,"icon":358,"path":359},"Connection state","content:docs:3.build:6.application-behavior:1.connection-state.md","3\u002F6\u002F1",{"icon":358},"i-lucide-wifi","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fconnection-state",{"title":361,"id":362,"canonicalKey":363,"locale":8,"draft":6,"navigation":364,"icon":365,"path":366},"Error handling","content:docs:3.build:6.application-behavior:2.error-handling.md","3\u002F6\u002F2",{"icon":365},"i-lucide-circle-alert","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Ferror-handling",{"title":368,"id":369,"canonicalKey":370,"locale":8,"draft":6,"navigation":371,"icon":372,"path":373},"Logging","content:docs:3.build:6.application-behavior:3.logging.md","3\u002F6\u002F3",{"icon":372},"i-lucide-scroll-text","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Flogging",{"title":375,"id":376,"canonicalKey":377,"locale":8,"draft":6,"navigation":378,"icon":379,"path":380},"DevTools","content:docs:3.build:6.application-behavior:4.devtools.md","3\u002F6\u002F4",{"icon":379},"i-lucide-wrench","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fdevtools",{"title":382,"id":383,"canonicalKey":384,"locale":8,"draft":6,"navigation":385,"icon":386,"path":387},"Performance","content:docs:3.build:6.application-behavior:5.performance.md","3\u002F6\u002F5",{"icon":386},"i-lucide-chart-no-axes-combined","\u002Fdocs\u002Fbuild\u002Fapplication-behavior\u002Fperformance",{"title":389,"page":6,"canonicalKey":390,"locale":8,"id":391,"draft":6,"icon":269,"children":392},"Agents and MCP","3\u002F7","content:docs:3.build:7.agents:.navigation.yml",[393,400,406,412],{"title":394,"id":395,"canonicalKey":396,"locale":8,"draft":6,"navigation":397,"icon":398,"path":399},"MCP on Convex","content:docs:3.build:7.agents:1.mcp.md","3\u002F7\u002F1",{"icon":398},"i-lucide-plug-zap","\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp",{"title":401,"id":402,"canonicalKey":403,"locale":8,"draft":6,"navigation":404,"icon":248,"path":405},"Add MCP to your application","content:docs:3.build:7.agents:2.mcp-application.md","3\u002F7\u002F2",{"icon":248},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp-application",{"title":407,"id":408,"canonicalKey":409,"locale":8,"draft":6,"navigation":410,"icon":340,"path":411},"Connect ChatGPT and Claude","content:docs:3.build:7.agents:3.connect-chatgpt-and-claude.md","3\u002F7\u002F3",{"icon":340},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fconnect-chatgpt-and-claude",{"title":413,"id":414,"canonicalKey":415,"locale":8,"draft":6,"navigation":416,"icon":108,"path":417},"MCP Apps","content:docs:3.build:7.agents:4.mcp-apps.md","3\u002F7\u002F4",{"icon":108},"\u002Fdocs\u002Fbuild\u002Fagents\u002Fmcp-apps",{"title":419,"page":6,"canonicalKey":420,"locale":8,"id":421,"draft":6,"icon":422,"children":423},"Recipes","4","content:docs:4.recipes:.navigation.yml","i-lucide-cooking-pot",[424,431,438,445,452,459,466,472,478],{"title":425,"id":426,"canonicalKey":427,"locale":8,"draft":6,"navigation":428,"icon":429,"path":430},"Protected dashboard","content:docs:4.recipes:1.protected-dashboard.md","4\u002F1",{"icon":429},"i-lucide-layout-dashboard","\u002Fdocs\u002Frecipes\u002Fprotected-dashboard",{"title":432,"id":433,"canonicalKey":434,"locale":8,"draft":6,"navigation":435,"icon":436,"path":437},"Real-time feed","content:docs:4.recipes:2.realtime-feed.md","4\u002F2",{"icon":436},"i-lucide-messages-square","\u002Fdocs\u002Frecipes\u002Frealtime-feed",{"title":439,"id":440,"canonicalKey":441,"locale":8,"draft":6,"navigation":442,"icon":443,"path":444},"Optimistic todo list","content:docs:4.recipes:3.optimistic-todo-list.md","4\u002F3",{"icon":443},"i-lucide-list-todo","\u002Fdocs\u002Frecipes\u002Foptimistic-todo-list",{"title":446,"id":447,"canonicalKey":448,"locale":8,"draft":6,"navigation":449,"icon":450,"path":451},"Infinite scroll","content:docs:4.recipes:4.infinite-scroll.md","4\u002F4",{"icon":450},"i-lucide-mouse","\u002Fdocs\u002Frecipes\u002Finfinite-scroll",{"title":453,"id":454,"canonicalKey":455,"locale":8,"draft":6,"navigation":456,"icon":457,"path":458},"File upload form","content:docs:4.recipes:5.file-upload-form.md","4\u002F5",{"icon":457},"i-lucide-file-up","\u002Fdocs\u002Frecipes\u002Ffile-upload-form",{"title":460,"id":461,"canonicalKey":462,"locale":8,"draft":6,"navigation":463,"icon":464,"path":465},"Organization permissions","content:docs:4.recipes:6.organization-permissions.md","4\u002F6",{"icon":464},"i-lucide-building-2","\u002Fdocs\u002Frecipes\u002Forganization-permissions",{"title":467,"id":468,"canonicalKey":469,"locale":8,"draft":6,"navigation":470,"icon":301,"path":471},"Authenticated server route","content:docs:4.recipes:7.authenticated-server-route.md","4\u002F7",{"icon":301},"\u002Fdocs\u002Frecipes\u002Fauthenticated-server-route",{"title":473,"id":474,"canonicalKey":475,"locale":8,"draft":6,"navigation":476,"icon":108,"path":477},"Public and private data","content:docs:4.recipes:8.public-and-private-data.md","4\u002F8",{"icon":108},"\u002Fdocs\u002Frecipes\u002Fpublic-and-private-data",{"title":479,"id":480,"canonicalKey":481,"locale":8,"draft":6,"navigation":482,"icon":483,"path":484},"Test signed-in screens","content:docs:4.recipes:9.component-testing.md","4\u002F9",{"icon":483},"i-lucide-flask-conical","\u002Fdocs\u002Frecipes\u002Fcomponent-testing",{"title":486,"page":6,"canonicalKey":487,"locale":8,"id":488,"draft":6,"icon":489,"children":490},"Concepts","5","content:docs:5.concepts:.navigation.yml","i-lucide-brain",[491,497,503,510,516,523,529,536,543],{"title":492,"id":493,"canonicalKey":494,"locale":8,"draft":6,"navigation":495,"icon":489,"path":496},"Mental model","content:docs:5.concepts:1.mental-model.md","5\u002F1",{"icon":489},"\u002Fdocs\u002Fconcepts\u002Fmental-model",{"title":498,"id":499,"canonicalKey":500,"locale":8,"draft":6,"navigation":501,"icon":234,"path":502},"Request lifecycle","content:docs:5.concepts:2.request-lifecycle.md","5\u002F2",{"icon":234},"\u002Fdocs\u002Fconcepts\u002Frequest-lifecycle",{"title":504,"id":505,"canonicalKey":506,"locale":8,"draft":6,"navigation":507,"icon":508,"path":509},"SSR, hydration, and real-time","content:docs:5.concepts:3.ssr-hydration-realtime.md","5\u002F3",{"icon":508},"i-lucide-refresh-cw","\u002Fdocs\u002Fconcepts\u002Fssr-hydration-realtime",{"title":511,"id":512,"canonicalKey":513,"locale":8,"draft":6,"navigation":514,"icon":124,"path":515},"Query ownership and caching","content:docs:5.concepts:4.query-ownership-and-caching.md","5\u002F4",{"icon":124},"\u002Fdocs\u002Fconcepts\u002Fquery-ownership-and-caching",{"title":517,"id":518,"canonicalKey":519,"locale":8,"draft":6,"navigation":520,"icon":521,"path":522},"Authentication and identity","content:docs:5.concepts:5.authentication-and-identity.md","5\u002F5",{"icon":521},"i-lucide-fingerprint","\u002Fdocs\u002Fconcepts\u002Fauthentication-and-identity",{"title":524,"id":525,"canonicalKey":526,"locale":8,"draft":6,"navigation":527,"icon":108,"path":528},"Server and client boundaries","content:docs:5.concepts:6.server-and-client-boundaries.md","5\u002F6",{"icon":108},"\u002Fdocs\u002Fconcepts\u002Fserver-and-client-boundaries",{"title":530,"id":531,"canonicalKey":532,"locale":8,"draft":6,"navigation":533,"icon":534,"path":535},"Errors and failures","content:docs:5.concepts:7.errors-and-failures.md","5\u002F7",{"icon":534},"i-lucide-circle-x","\u002Fdocs\u002Fconcepts\u002Ferrors-and-failures",{"title":537,"id":538,"canonicalKey":539,"locale":8,"draft":6,"navigation":540,"icon":541,"path":542},"Design decisions","content:docs:5.concepts:8.design-decisions.md","5\u002F8",{"icon":541},"i-lucide-git-branch","\u002Fdocs\u002Fconcepts\u002Fdesign-decisions",{"title":544,"id":545,"canonicalKey":546,"locale":8,"draft":6,"navigation":547,"icon":548,"path":549},"Glossary","content:docs:5.concepts:9.glossary.md","5\u002F9",{"icon":548},"i-lucide-book-a","\u002Fdocs\u002Fconcepts\u002Fglossary",{"title":551,"page":6,"canonicalKey":552,"locale":8,"id":553,"draft":6,"icon":214,"children":554},"Operations","6","content:docs:6.operations:.navigation.yml",[555,561,568,575,581,588,594],{"title":556,"id":557,"canonicalKey":558,"locale":8,"draft":6,"navigation":559,"icon":45,"path":560},"Deployment","content:docs:6.operations:1.deployment.md","6\u002F1",{"icon":45},"\u002Fdocs\u002Foperations\u002Fdeployment",{"title":562,"id":563,"canonicalKey":564,"locale":8,"draft":6,"navigation":565,"icon":566,"path":567},"Environment variables","content:docs:6.operations:2.environment-variables.md","6\u002F2",{"icon":566},"i-lucide-variable","\u002Fdocs\u002Foperations\u002Fenvironment-variables",{"title":569,"id":570,"canonicalKey":571,"locale":8,"draft":6,"navigation":572,"icon":573,"path":574},"Deploy to Vercel","content:docs:6.operations:3.deploy-to-vercel.md","6\u002F3",{"icon":573},"i-lucide-triangle","\u002Fdocs\u002Foperations\u002Fdeploy-to-vercel",{"title":576,"id":577,"canonicalKey":578,"locale":8,"draft":6,"navigation":579,"icon":379,"path":580},"Troubleshooting","content:docs:6.operations:4.troubleshooting.md","6\u002F4",{"icon":379},"\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":582,"id":583,"canonicalKey":584,"locale":8,"draft":6,"navigation":585,"icon":586,"path":587},"Release compatibility","content:docs:6.operations:5.release-compatibility.md","6\u002F5",{"icon":586},"i-lucide-badge-check","\u002Fdocs\u002Foperations\u002Frelease-compatibility",{"title":589,"id":590,"canonicalKey":591,"locale":8,"draft":6,"navigation":592,"icon":87,"path":593},"Security model","content:docs:6.operations:6.security-model.md","6\u002F6",{"icon":87},"\u002Fdocs\u002Foperations\u002Fsecurity-model",{"title":595,"id":596,"canonicalKey":597,"locale":8,"draft":6,"navigation":598,"icon":599,"path":600},"Upgrade to 1.0","content:docs:6.operations:7.upgrade-to-1-0.md","6\u002F7",{"icon":599},"i-lucide-arrow-up-circle","\u002Fdocs\u002Foperations\u002Fupgrade-to-1-0",{"title":602,"page":6,"canonicalKey":603,"locale":8,"id":604,"draft":6,"icon":605,"children":606},"Reference","7","content:docs:7.reference:.navigation.yml","i-lucide-braces",[607,613,619,625,632,639],{"title":608,"id":609,"canonicalKey":610,"locale":8,"draft":6,"navigation":611,"icon":605,"path":612},"Composables","content:docs:7.reference:1.composables.md","7\u002F1",{"icon":605},"\u002Fdocs\u002Freference\u002Fcomposables",{"title":614,"id":615,"canonicalKey":616,"locale":8,"draft":6,"navigation":617,"icon":301,"path":618},"Server API","content:docs:7.reference:3.server-api.md","7\u002F3",{"icon":301},"\u002Fdocs\u002Freference\u002Fserver-api",{"title":620,"id":621,"canonicalKey":622,"locale":8,"draft":6,"navigation":623,"icon":534,"path":624},"Error types","content:docs:7.reference:4.error-types.md","7\u002F4",{"icon":534},"\u002Fdocs\u002Freference\u002Ferror-types",{"title":626,"id":627,"canonicalKey":628,"locale":8,"draft":6,"navigation":629,"icon":630,"path":631},"Module configuration","content:docs:7.reference:5.module-configuration.md","7\u002F5",{"icon":630},"i-lucide-settings","\u002Fdocs\u002Freference\u002Fmodule-configuration",{"title":633,"id":634,"canonicalKey":635,"locale":8,"draft":6,"navigation":636,"icon":637,"path":638},"Package exports","content:docs:7.reference:6.package-exports.md","7\u002F6",{"icon":637},"i-lucide-package-open","\u002Fdocs\u002Freference\u002Fpackage-exports",{"title":640,"id":641,"canonicalKey":642,"locale":8,"draft":6,"navigation":643,"icon":644,"path":645},"API surface","content:docs:7.reference:7.api-surface.md","7\u002F7",{"icon":644},"i-lucide-list","\u002Fdocs\u002Freference\u002Fapi-surface",{"title":647,"id":648,"canonicalKey":649,"locale":8,"draft":6,"path":650},"Better Convex documentation","content:docs:index.md","\u002F","\u002Fdocs",{"title":193,"description":652,"navigation":653,"body":654,"type":2538,"id":194,"canonicalKey":195,"draft":6,"partial":6,"locale":8,"collection":2539,"navigationFile":6,"file":2540,"route":2546,"resolution":2548},"Run several Convex calls and uploads for the user who started them, and stop when that user changes.",{"icon":197},{"type":655,"children":656,"toc":2528},"root",[657,665,689,1687,1704,1764,1771,1804,1845,1902,1908,1913,1961,2008,2034,2349,2372,2378,2445,2451,2461,2482,2494,2500,2523],{"type":658,"tag":659,"props":660,"children":661},"element","p",{},[662],{"type":663,"value":664},"text","Some work needs several requests in a row: read a draft, upload a file, then publish. Each request must run as the user who started the work. If that user signs out, or another user signs in, the remaining requests must not run.",{"type":658,"tag":659,"props":666,"children":667},{},[668,674,676,681,683,687],{"type":658,"tag":669,"props":670,"children":671},"code",{},[672],{"type":663,"value":673},"useConvexOperation",{"type":663,"value":675}," gives you this. Pass it a function that sends each request through the operation it receives. ",{"type":658,"tag":669,"props":677,"children":678},{},[679],{"type":663,"value":680},"run()",{"type":663,"value":682}," starts a new operation and calls your function with it and with the arguments of ",{"type":658,"tag":669,"props":684,"children":685},{},[686],{"type":663,"value":680},{"type":663,"value":688},".",{"type":658,"tag":690,"props":691,"children":695},"pre",{"language":692,"filename":693,"class":694},"vue","app\u002Fcomponents\u002FPublishDraft.vue","shiki shiki-themes light-plus dark-plus dark:dark-plus",[696],{"type":658,"tag":669,"props":697,"children":699},{"class":698},"language-vue",[700,746,748,789,790,819,820,823,824,884,885,888,889,901,902,924,925,946,947,959,960,1025,1026,1115,1116,1180,1181,1235,1236,1315,1316,1324,1325,1328,1329,1369,1370,1435,1436,1462,1463,1472,1473,1517,1518,1526,1527,1543,1544,1547,1548,1564,1565,1624,1625,1671,1672],{"type":658,"tag":701,"props":702,"children":705},"span",{"class":703,"style":704},"line","display: inline",[706,712,718,724,729,735,741],{"type":658,"tag":701,"props":707,"children":709},{"style":708},"color:#800000;--shiki-dark:#808080",[710],{"type":663,"value":711},"\u003C",{"type":658,"tag":701,"props":713,"children":715},{"style":714},"color:#800000;--shiki-dark:#569CD6",[716],{"type":663,"value":717},"script",{"type":658,"tag":701,"props":719,"children":721},{"style":720},"color:#E50000;--shiki-dark:#9CDCFE",[722],{"type":663,"value":723}," setup",{"type":658,"tag":701,"props":725,"children":726},{"style":720},[727],{"type":663,"value":728}," lang",{"type":658,"tag":701,"props":730,"children":732},{"style":731},"color:#000000;--shiki-dark:#D4D4D4",[733],{"type":663,"value":734},"=",{"type":658,"tag":701,"props":736,"children":738},{"style":737},"color:#0000FF;--shiki-dark:#CE9178",[739],{"type":663,"value":740},"\"ts\"",{"type":658,"tag":701,"props":742,"children":743},{"style":708},[744],{"type":663,"value":745},">",{"type":663,"value":747},"\n",{"type":658,"tag":701,"props":749,"children":750},{"class":703,"style":704},[751,757,762,767,773,778,783],{"type":658,"tag":701,"props":752,"children":754},{"style":753},"color:#AF00DB;--shiki-dark:#C586C0",[755],{"type":663,"value":756},"import",{"type":658,"tag":701,"props":758,"children":759},{"style":753},[760],{"type":663,"value":761}," type",{"type":658,"tag":701,"props":763,"children":764},{"style":731},[765],{"type":663,"value":766}," { ",{"type":658,"tag":701,"props":768,"children":770},{"style":769},"color:#001080;--shiki-dark:#9CDCFE",[771],{"type":663,"value":772},"Id",{"type":658,"tag":701,"props":774,"children":775},{"style":731},[776],{"type":663,"value":777}," } ",{"type":658,"tag":701,"props":779,"children":780},{"style":753},[781],{"type":663,"value":782},"from",{"type":658,"tag":701,"props":784,"children":786},{"style":785},"color:#A31515;--shiki-dark:#CE9178",[787],{"type":663,"value":788}," '~~\u002Fconvex\u002F_generated\u002FdataModel'",{"type":663,"value":747},{"type":658,"tag":701,"props":791,"children":792},{"class":703,"style":704},[793,797,801,806,810,814],{"type":658,"tag":701,"props":794,"children":795},{"style":753},[796],{"type":663,"value":756},{"type":658,"tag":701,"props":798,"children":799},{"style":731},[800],{"type":663,"value":766},{"type":658,"tag":701,"props":802,"children":803},{"style":769},[804],{"type":663,"value":805},"api",{"type":658,"tag":701,"props":807,"children":808},{"style":731},[809],{"type":663,"value":777},{"type":658,"tag":701,"props":811,"children":812},{"style":753},[813],{"type":663,"value":782},{"type":658,"tag":701,"props":815,"children":816},{"style":785},[817],{"type":663,"value":818}," '#convex\u002Fapi'",{"type":663,"value":747},{"type":658,"tag":701,"props":821,"children":822},{"class":703,"style":704},[],{"type":663,"value":747},{"type":658,"tag":701,"props":825,"children":826},{"class":703,"style":704},[827,833,839,844,850,855,860,865,870,874,879],{"type":658,"tag":701,"props":828,"children":830},{"style":829},"color:#0000FF;--shiki-dark:#569CD6",[831],{"type":663,"value":832},"const",{"type":658,"tag":701,"props":834,"children":836},{"style":835},"color:#0070C1;--shiki-dark:#4FC1FF",[837],{"type":663,"value":838}," props",{"type":658,"tag":701,"props":840,"children":841},{"style":731},[842],{"type":663,"value":843}," = ",{"type":658,"tag":701,"props":845,"children":847},{"style":846},"color:#795E26;--shiki-dark:#DCDCAA",[848],{"type":663,"value":849},"defineProps",{"type":658,"tag":701,"props":851,"children":852},{"style":731},[853],{"type":663,"value":854},"\u003C{ ",{"type":658,"tag":701,"props":856,"children":857},{"style":769},[858],{"type":663,"value":859},"draftId",{"type":658,"tag":701,"props":861,"children":862},{"style":731},[863],{"type":663,"value":864},": ",{"type":658,"tag":701,"props":866,"children":868},{"style":867},"color:#267F99;--shiki-dark:#4EC9B0",[869],{"type":663,"value":772},{"type":658,"tag":701,"props":871,"children":872},{"style":731},[873],{"type":663,"value":711},{"type":658,"tag":701,"props":875,"children":876},{"style":785},[877],{"type":663,"value":878},"'drafts'",{"type":658,"tag":701,"props":880,"children":881},{"style":731},[882],{"type":663,"value":883},"> }>()",{"type":663,"value":747},{"type":658,"tag":701,"props":886,"children":887},{"class":703,"style":704},[],{"type":663,"value":747},{"type":658,"tag":701,"props":890,"children":891},{"class":703,"style":704},[892,896],{"type":658,"tag":701,"props":893,"children":894},{"style":829},[895],{"type":663,"value":832},{"type":658,"tag":701,"props":897,"children":898},{"style":731},[899],{"type":663,"value":900}," {",{"type":663,"value":747},{"type":658,"tag":701,"props":903,"children":904},{"class":703,"style":704},[905,910,914,919],{"type":658,"tag":701,"props":906,"children":907},{"style":769},[908],{"type":663,"value":909},"  run",{"type":658,"tag":701,"props":911,"children":912},{"style":731},[913],{"type":663,"value":864},{"type":658,"tag":701,"props":915,"children":916},{"style":835},[917],{"type":663,"value":918},"publish",{"type":658,"tag":701,"props":920,"children":921},{"style":731},[922],{"type":663,"value":923},",",{"type":663,"value":747},{"type":658,"tag":701,"props":926,"children":927},{"class":703,"style":704},[928,933,937,942],{"type":658,"tag":701,"props":929,"children":930},{"style":769},[931],{"type":663,"value":932},"  pending",{"type":658,"tag":701,"props":934,"children":935},{"style":731},[936],{"type":663,"value":864},{"type":658,"tag":701,"props":938,"children":939},{"style":835},[940],{"type":663,"value":941},"publishing",{"type":658,"tag":701,"props":943,"children":944},{"style":731},[945],{"type":663,"value":923},{"type":663,"value":747},{"type":658,"tag":701,"props":948,"children":949},{"class":703,"style":704},[950,955],{"type":658,"tag":701,"props":951,"children":952},{"style":835},[953],{"type":663,"value":954},"  error",{"type":658,"tag":701,"props":956,"children":957},{"style":731},[958],{"type":663,"value":923},{"type":663,"value":747},{"type":658,"tag":701,"props":961,"children":962},{"class":703,"style":704},[963,968,972,977,982,987,992,997,1002,1006,1011,1016,1021],{"type":658,"tag":701,"props":964,"children":965},{"style":731},[966],{"type":663,"value":967},"} = ",{"type":658,"tag":701,"props":969,"children":970},{"style":846},[971],{"type":663,"value":673},{"type":658,"tag":701,"props":973,"children":974},{"style":731},[975],{"type":663,"value":976},"(",{"type":658,"tag":701,"props":978,"children":979},{"style":829},[980],{"type":663,"value":981},"async",{"type":658,"tag":701,"props":983,"children":984},{"style":731},[985],{"type":663,"value":986}," (",{"type":658,"tag":701,"props":988,"children":989},{"style":769},[990],{"type":663,"value":991},"op",{"type":658,"tag":701,"props":993,"children":994},{"style":731},[995],{"type":663,"value":996},", ",{"type":658,"tag":701,"props":998,"children":999},{"style":769},[1000],{"type":663,"value":1001},"cover",{"type":658,"tag":701,"props":1003,"children":1004},{"style":731},[1005],{"type":663,"value":864},{"type":658,"tag":701,"props":1007,"children":1008},{"style":867},[1009],{"type":663,"value":1010},"File",{"type":658,"tag":701,"props":1012,"children":1013},{"style":731},[1014],{"type":663,"value":1015},") ",{"type":658,"tag":701,"props":1017,"children":1018},{"style":829},[1019],{"type":663,"value":1020},"=>",{"type":658,"tag":701,"props":1022,"children":1023},{"style":731},[1024],{"type":663,"value":900},{"type":663,"value":747},{"type":658,"tag":701,"props":1027,"children":1028},{"class":703,"style":704},[1029,1034,1039,1043,1048,1053,1057,1062,1066,1070,1074,1079,1083,1088,1093,1098,1102,1106,1110],{"type":658,"tag":701,"props":1030,"children":1031},{"style":829},[1032],{"type":663,"value":1033},"  const",{"type":658,"tag":701,"props":1035,"children":1036},{"style":835},[1037],{"type":663,"value":1038}," draft",{"type":658,"tag":701,"props":1040,"children":1041},{"style":731},[1042],{"type":663,"value":843},{"type":658,"tag":701,"props":1044,"children":1045},{"style":753},[1046],{"type":663,"value":1047},"await",{"type":658,"tag":701,"props":1049,"children":1050},{"style":769},[1051],{"type":663,"value":1052}," op",{"type":658,"tag":701,"props":1054,"children":1055},{"style":731},[1056],{"type":663,"value":688},{"type":658,"tag":701,"props":1058,"children":1059},{"style":846},[1060],{"type":663,"value":1061},"query",{"type":658,"tag":701,"props":1063,"children":1064},{"style":731},[1065],{"type":663,"value":976},{"type":658,"tag":701,"props":1067,"children":1068},{"style":769},[1069],{"type":663,"value":805},{"type":658,"tag":701,"props":1071,"children":1072},{"style":731},[1073],{"type":663,"value":688},{"type":658,"tag":701,"props":1075,"children":1076},{"style":769},[1077],{"type":663,"value":1078},"drafts",{"type":658,"tag":701,"props":1080,"children":1081},{"style":731},[1082],{"type":663,"value":688},{"type":658,"tag":701,"props":1084,"children":1085},{"style":769},[1086],{"type":663,"value":1087},"get",{"type":658,"tag":701,"props":1089,"children":1090},{"style":731},[1091],{"type":663,"value":1092},", { ",{"type":658,"tag":701,"props":1094,"children":1095},{"style":769},[1096],{"type":663,"value":1097},"draftId:",{"type":658,"tag":701,"props":1099,"children":1100},{"style":769},[1101],{"type":663,"value":838},{"type":658,"tag":701,"props":1103,"children":1104},{"style":731},[1105],{"type":663,"value":688},{"type":658,"tag":701,"props":1107,"children":1108},{"style":769},[1109],{"type":663,"value":859},{"type":658,"tag":701,"props":1111,"children":1112},{"style":731},[1113],{"type":663,"value":1114}," })",{"type":663,"value":747},{"type":658,"tag":701,"props":1117,"children":1118},{"class":703,"style":704},[1119,1123,1128,1132,1136,1140,1144,1149,1153,1157,1161,1166,1170,1175],{"type":658,"tag":701,"props":1120,"children":1121},{"style":829},[1122],{"type":663,"value":1033},{"type":658,"tag":701,"props":1124,"children":1125},{"style":835},[1126],{"type":663,"value":1127}," uploadUrl",{"type":658,"tag":701,"props":1129,"children":1130},{"style":731},[1131],{"type":663,"value":843},{"type":658,"tag":701,"props":1133,"children":1134},{"style":753},[1135],{"type":663,"value":1047},{"type":658,"tag":701,"props":1137,"children":1138},{"style":769},[1139],{"type":663,"value":1052},{"type":658,"tag":701,"props":1141,"children":1142},{"style":731},[1143],{"type":663,"value":688},{"type":658,"tag":701,"props":1145,"children":1146},{"style":846},[1147],{"type":663,"value":1148},"mutation",{"type":658,"tag":701,"props":1150,"children":1151},{"style":731},[1152],{"type":663,"value":976},{"type":658,"tag":701,"props":1154,"children":1155},{"style":769},[1156],{"type":663,"value":805},{"type":658,"tag":701,"props":1158,"children":1159},{"style":731},[1160],{"type":663,"value":688},{"type":658,"tag":701,"props":1162,"children":1163},{"style":769},[1164],{"type":663,"value":1165},"files",{"type":658,"tag":701,"props":1167,"children":1168},{"style":731},[1169],{"type":663,"value":688},{"type":658,"tag":701,"props":1171,"children":1172},{"style":769},[1173],{"type":663,"value":1174},"generateUploadUrl",{"type":658,"tag":701,"props":1176,"children":1177},{"style":731},[1178],{"type":663,"value":1179},")",{"type":663,"value":747},{"type":658,"tag":701,"props":1182,"children":1183},{"class":703,"style":704},[1184,1188,1193,1197,1201,1205,1209,1214,1218,1223,1227,1231],{"type":658,"tag":701,"props":1185,"children":1186},{"style":829},[1187],{"type":663,"value":1033},{"type":658,"tag":701,"props":1189,"children":1190},{"style":835},[1191],{"type":663,"value":1192}," coverId",{"type":658,"tag":701,"props":1194,"children":1195},{"style":731},[1196],{"type":663,"value":843},{"type":658,"tag":701,"props":1198,"children":1199},{"style":753},[1200],{"type":663,"value":1047},{"type":658,"tag":701,"props":1202,"children":1203},{"style":769},[1204],{"type":663,"value":1052},{"type":658,"tag":701,"props":1206,"children":1207},{"style":731},[1208],{"type":663,"value":688},{"type":658,"tag":701,"props":1210,"children":1211},{"style":846},[1212],{"type":663,"value":1213},"upload",{"type":658,"tag":701,"props":1215,"children":1216},{"style":731},[1217],{"type":663,"value":976},{"type":658,"tag":701,"props":1219,"children":1220},{"style":769},[1221],{"type":663,"value":1222},"uploadUrl",{"type":658,"tag":701,"props":1224,"children":1225},{"style":731},[1226],{"type":663,"value":996},{"type":658,"tag":701,"props":1228,"children":1229},{"style":769},[1230],{"type":663,"value":1001},{"type":658,"tag":701,"props":1232,"children":1233},{"style":731},[1234],{"type":663,"value":1179},{"type":663,"value":747},{"type":658,"tag":701,"props":1237,"children":1238},{"class":703,"style":704},[1239,1244,1248,1252,1256,1260,1264,1268,1273,1277,1281,1285,1289,1293,1297,1302,1306,1311],{"type":658,"tag":701,"props":1240,"children":1241},{"style":753},[1242],{"type":663,"value":1243},"  return",{"type":658,"tag":701,"props":1245,"children":1246},{"style":769},[1247],{"type":663,"value":1052},{"type":658,"tag":701,"props":1249,"children":1250},{"style":731},[1251],{"type":663,"value":688},{"type":658,"tag":701,"props":1253,"children":1254},{"style":846},[1255],{"type":663,"value":1148},{"type":658,"tag":701,"props":1257,"children":1258},{"style":731},[1259],{"type":663,"value":976},{"type":658,"tag":701,"props":1261,"children":1262},{"style":769},[1263],{"type":663,"value":805},{"type":658,"tag":701,"props":1265,"children":1266},{"style":731},[1267],{"type":663,"value":688},{"type":658,"tag":701,"props":1269,"children":1270},{"style":769},[1271],{"type":663,"value":1272},"posts",{"type":658,"tag":701,"props":1274,"children":1275},{"style":731},[1276],{"type":663,"value":688},{"type":658,"tag":701,"props":1278,"children":1279},{"style":769},[1280],{"type":663,"value":918},{"type":658,"tag":701,"props":1282,"children":1283},{"style":731},[1284],{"type":663,"value":1092},{"type":658,"tag":701,"props":1286,"children":1287},{"style":769},[1288],{"type":663,"value":1097},{"type":658,"tag":701,"props":1290,"children":1291},{"style":769},[1292],{"type":663,"value":1038},{"type":658,"tag":701,"props":1294,"children":1295},{"style":731},[1296],{"type":663,"value":688},{"type":658,"tag":701,"props":1298,"children":1299},{"style":769},[1300],{"type":663,"value":1301},"_id",{"type":658,"tag":701,"props":1303,"children":1304},{"style":731},[1305],{"type":663,"value":996},{"type":658,"tag":701,"props":1307,"children":1308},{"style":769},[1309],{"type":663,"value":1310},"coverId",{"type":658,"tag":701,"props":1312,"children":1313},{"style":731},[1314],{"type":663,"value":1114},{"type":663,"value":747},{"type":658,"tag":701,"props":1317,"children":1318},{"class":703,"style":704},[1319],{"type":658,"tag":701,"props":1320,"children":1321},{"style":731},[1322],{"type":663,"value":1323},"})",{"type":663,"value":747},{"type":658,"tag":701,"props":1326,"children":1327},{"class":703,"style":704},[],{"type":663,"value":747},{"type":658,"tag":701,"props":1330,"children":1331},{"class":703,"style":704},[1332,1336,1341,1346,1350,1355,1359,1364],{"type":658,"tag":701,"props":1333,"children":1334},{"style":829},[1335],{"type":663,"value":981},{"type":658,"tag":701,"props":1337,"children":1338},{"style":829},[1339],{"type":663,"value":1340}," function",{"type":658,"tag":701,"props":1342,"children":1343},{"style":846},[1344],{"type":663,"value":1345}," onCoverSelected",{"type":658,"tag":701,"props":1347,"children":1348},{"style":731},[1349],{"type":663,"value":976},{"type":658,"tag":701,"props":1351,"children":1352},{"style":769},[1353],{"type":663,"value":1354},"event",{"type":658,"tag":701,"props":1356,"children":1357},{"style":731},[1358],{"type":663,"value":864},{"type":658,"tag":701,"props":1360,"children":1361},{"style":867},[1362],{"type":663,"value":1363},"Event",{"type":658,"tag":701,"props":1365,"children":1366},{"style":731},[1367],{"type":663,"value":1368},") {",{"type":663,"value":747},{"type":658,"tag":701,"props":1371,"children":1372},{"class":703,"style":704},[1373,1377,1382,1387,1391,1395,1400,1405,1410,1415,1419,1424,1430],{"type":658,"tag":701,"props":1374,"children":1375},{"style":829},[1376],{"type":663,"value":1033},{"type":658,"tag":701,"props":1378,"children":1379},{"style":835},[1380],{"type":663,"value":1381}," cover",{"type":658,"tag":701,"props":1383,"children":1384},{"style":731},[1385],{"type":663,"value":1386}," = (",{"type":658,"tag":701,"props":1388,"children":1389},{"style":769},[1390],{"type":663,"value":1354},{"type":658,"tag":701,"props":1392,"children":1393},{"style":731},[1394],{"type":663,"value":688},{"type":658,"tag":701,"props":1396,"children":1397},{"style":769},[1398],{"type":663,"value":1399},"target",{"type":658,"tag":701,"props":1401,"children":1402},{"style":753},[1403],{"type":663,"value":1404}," as",{"type":658,"tag":701,"props":1406,"children":1407},{"style":867},[1408],{"type":663,"value":1409}," HTMLInputElement",{"type":658,"tag":701,"props":1411,"children":1412},{"style":731},[1413],{"type":663,"value":1414},").",{"type":658,"tag":701,"props":1416,"children":1417},{"style":769},[1418],{"type":663,"value":1165},{"type":658,"tag":701,"props":1420,"children":1421},{"style":731},[1422],{"type":663,"value":1423},"?.[",{"type":658,"tag":701,"props":1425,"children":1427},{"style":1426},"color:#098658;--shiki-dark:#B5CEA8",[1428],{"type":663,"value":1429},"0",{"type":658,"tag":701,"props":1431,"children":1432},{"style":731},[1433],{"type":663,"value":1434},"]",{"type":663,"value":747},{"type":658,"tag":701,"props":1437,"children":1438},{"class":703,"style":704},[1439,1444,1449,1453,1457],{"type":658,"tag":701,"props":1440,"children":1441},{"style":753},[1442],{"type":663,"value":1443},"  if",{"type":658,"tag":701,"props":1445,"children":1446},{"style":731},[1447],{"type":663,"value":1448}," (!",{"type":658,"tag":701,"props":1450,"children":1451},{"style":769},[1452],{"type":663,"value":1001},{"type":658,"tag":701,"props":1454,"children":1455},{"style":731},[1456],{"type":663,"value":1015},{"type":658,"tag":701,"props":1458,"children":1459},{"style":753},[1460],{"type":663,"value":1461},"return",{"type":663,"value":747},{"type":658,"tag":701,"props":1464,"children":1465},{"class":703,"style":704},[1466],{"type":658,"tag":701,"props":1467,"children":1469},{"style":1468},"color:#008000;--shiki-dark:#6A9955",[1470],{"type":663,"value":1471},"  \u002F\u002F `error` shows the failure; a change of the signed-in user clears it.",{"type":663,"value":747},{"type":658,"tag":701,"props":1474,"children":1475},{"class":703,"style":704},[1476,1481,1486,1490,1494,1498,1503,1508,1512],{"type":658,"tag":701,"props":1477,"children":1478},{"style":753},[1479],{"type":663,"value":1480},"  await",{"type":658,"tag":701,"props":1482,"children":1483},{"style":846},[1484],{"type":663,"value":1485}," publish",{"type":658,"tag":701,"props":1487,"children":1488},{"style":731},[1489],{"type":663,"value":976},{"type":658,"tag":701,"props":1491,"children":1492},{"style":769},[1493],{"type":663,"value":1001},{"type":658,"tag":701,"props":1495,"children":1496},{"style":731},[1497],{"type":663,"value":1414},{"type":658,"tag":701,"props":1499,"children":1500},{"style":846},[1501],{"type":663,"value":1502},"catch",{"type":658,"tag":701,"props":1504,"children":1505},{"style":731},[1506],{"type":663,"value":1507},"(() ",{"type":658,"tag":701,"props":1509,"children":1510},{"style":829},[1511],{"type":663,"value":1020},{"type":658,"tag":701,"props":1513,"children":1514},{"style":731},[1515],{"type":663,"value":1516}," {})",{"type":663,"value":747},{"type":658,"tag":701,"props":1519,"children":1520},{"class":703,"style":704},[1521],{"type":658,"tag":701,"props":1522,"children":1523},{"style":731},[1524],{"type":663,"value":1525},"}",{"type":663,"value":747},{"type":658,"tag":701,"props":1528,"children":1529},{"class":703,"style":704},[1530,1535,1539],{"type":658,"tag":701,"props":1531,"children":1532},{"style":708},[1533],{"type":663,"value":1534},"\u003C\u002F",{"type":658,"tag":701,"props":1536,"children":1537},{"style":714},[1538],{"type":663,"value":717},{"type":658,"tag":701,"props":1540,"children":1541},{"style":708},[1542],{"type":663,"value":745},{"type":663,"value":747},{"type":658,"tag":701,"props":1545,"children":1546},{"class":703,"style":704},[],{"type":663,"value":747},{"type":658,"tag":701,"props":1549,"children":1550},{"class":703,"style":704},[1551,1555,1560],{"type":658,"tag":701,"props":1552,"children":1553},{"style":708},[1554],{"type":663,"value":711},{"type":658,"tag":701,"props":1556,"children":1557},{"style":714},[1558],{"type":663,"value":1559},"template",{"type":658,"tag":701,"props":1561,"children":1562},{"style":708},[1563],{"type":663,"value":745},{"type":663,"value":747},{"type":658,"tag":701,"props":1566,"children":1567},{"class":703,"style":704},[1568,1573,1578,1582,1586,1591,1596,1600,1605,1610,1614,1619],{"type":658,"tag":701,"props":1569,"children":1570},{"style":708},[1571],{"type":663,"value":1572},"  \u003C",{"type":658,"tag":701,"props":1574,"children":1575},{"style":714},[1576],{"type":663,"value":1577},"input",{"type":658,"tag":701,"props":1579,"children":1580},{"style":720},[1581],{"type":663,"value":761},{"type":658,"tag":701,"props":1583,"children":1584},{"style":731},[1585],{"type":663,"value":734},{"type":658,"tag":701,"props":1587,"children":1588},{"style":737},[1589],{"type":663,"value":1590},"\"file\"",{"type":658,"tag":701,"props":1592,"children":1593},{"style":720},[1594],{"type":663,"value":1595}," :disabled",{"type":658,"tag":701,"props":1597,"children":1598},{"style":731},[1599],{"type":663,"value":734},{"type":658,"tag":701,"props":1601,"children":1602},{"style":737},[1603],{"type":663,"value":1604},"\"publishing\"",{"type":658,"tag":701,"props":1606,"children":1607},{"style":720},[1608],{"type":663,"value":1609}," @change",{"type":658,"tag":701,"props":1611,"children":1612},{"style":731},[1613],{"type":663,"value":734},{"type":658,"tag":701,"props":1615,"children":1616},{"style":737},[1617],{"type":663,"value":1618},"\"onCoverSelected\"",{"type":658,"tag":701,"props":1620,"children":1621},{"style":708},[1622],{"type":663,"value":1623}," \u002F>",{"type":663,"value":747},{"type":658,"tag":701,"props":1626,"children":1627},{"class":703,"style":704},[1628,1632,1636,1641,1645,1650,1654,1659,1663,1667],{"type":658,"tag":701,"props":1629,"children":1630},{"style":708},[1631],{"type":663,"value":1572},{"type":658,"tag":701,"props":1633,"children":1634},{"style":714},[1635],{"type":663,"value":659},{"type":658,"tag":701,"props":1637,"children":1638},{"style":720},[1639],{"type":663,"value":1640}," v-if",{"type":658,"tag":701,"props":1642,"children":1643},{"style":731},[1644],{"type":663,"value":734},{"type":658,"tag":701,"props":1646,"children":1647},{"style":737},[1648],{"type":663,"value":1649},"\"error\"",{"type":658,"tag":701,"props":1651,"children":1652},{"style":708},[1653],{"type":663,"value":745},{"type":658,"tag":701,"props":1655,"children":1656},{"style":731},[1657],{"type":663,"value":1658},"{{ error.message }}",{"type":658,"tag":701,"props":1660,"children":1661},{"style":708},[1662],{"type":663,"value":1534},{"type":658,"tag":701,"props":1664,"children":1665},{"style":714},[1666],{"type":663,"value":659},{"type":658,"tag":701,"props":1668,"children":1669},{"style":708},[1670],{"type":663,"value":745},{"type":663,"value":747},{"type":658,"tag":701,"props":1673,"children":1674},{"class":703,"style":704},[1675,1679,1683],{"type":658,"tag":701,"props":1676,"children":1677},{"style":708},[1678],{"type":663,"value":1534},{"type":658,"tag":701,"props":1680,"children":1681},{"style":714},[1682],{"type":663,"value":1559},{"type":658,"tag":701,"props":1684,"children":1685},{"style":708},[1686],{"type":663,"value":745},{"type":658,"tag":659,"props":1688,"children":1689},{},[1690,1692,1696,1698,1703],{"type":663,"value":1691},"In plain Vue, import ",{"type":658,"tag":669,"props":1693,"children":1694},{},[1695],{"type":663,"value":673},{"type":663,"value":1697}," from ",{"type":658,"tag":669,"props":1699,"children":1700},{},[1701],{"type":663,"value":1702},"@lupinum\u002Fbetter-convex-vue",{"type":663,"value":688},{"type":658,"tag":659,"props":1705,"children":1706},{},[1707,1711,1713,1718,1719,1724,1725,1730,1731,1736,1737,1742,1744,1749,1751,1756,1758,1762],{"type":658,"tag":669,"props":1708,"children":1709},{},[1710],{"type":663,"value":673},{"type":663,"value":1712}," returns ",{"type":658,"tag":669,"props":1714,"children":1715},{},[1716],{"type":663,"value":1717},"run",{"type":663,"value":996},{"type":658,"tag":669,"props":1720,"children":1721},{},[1722],{"type":663,"value":1723},"data",{"type":663,"value":996},{"type":658,"tag":669,"props":1726,"children":1727},{},[1728],{"type":663,"value":1729},"status",{"type":663,"value":996},{"type":658,"tag":669,"props":1732,"children":1733},{},[1734],{"type":663,"value":1735},"pending",{"type":663,"value":996},{"type":658,"tag":669,"props":1738,"children":1739},{},[1740],{"type":663,"value":1741},"error",{"type":663,"value":1743},", and ",{"type":658,"tag":669,"props":1745,"children":1746},{},[1747],{"type":663,"value":1748},"reset",{"type":663,"value":1750},", like ",{"type":658,"tag":669,"props":1752,"children":1753},{},[1754],{"type":663,"value":1755},"useConvexAction",{"type":663,"value":1757},". Only the newest run changes the state. ",{"type":658,"tag":669,"props":1759,"children":1760},{},[1761],{"type":663,"value":1723},{"type":663,"value":1763}," is the result of your function.",{"type":658,"tag":1765,"props":1766,"children":1768},"h2",{"id":1767},"what-an-operation-does",[1769],{"type":663,"value":1770},"What an operation does",{"type":658,"tag":659,"props":1772,"children":1773},{},[1774,1778,1780,1784,1785,1789,1791,1796,1798,1802],{"type":658,"tag":669,"props":1775,"children":1776},{},[1777],{"type":663,"value":680},{"type":663,"value":1779}," records the signed-in user at that moment. A ",{"type":658,"tag":669,"props":1781,"children":1782},{},[1783],{"type":663,"value":1061},{"type":663,"value":996},{"type":658,"tag":669,"props":1786,"children":1787},{},[1788],{"type":663,"value":1148},{"type":663,"value":1790},", or ",{"type":658,"tag":669,"props":1792,"children":1793},{},[1794],{"type":663,"value":1795},"action",{"type":663,"value":1797}," step first waits until authentication is ready. Then every step, including ",{"type":658,"tag":669,"props":1799,"children":1800},{},[1801],{"type":663,"value":1213},{"type":663,"value":1803},", checks that the user is still the same and sends its request.",{"type":658,"tag":1805,"props":1806,"children":1807},"ul",{},[1808,1828],{"type":658,"tag":1809,"props":1810,"children":1811},"li",{},[1812,1814,1819,1821,1826],{"type":663,"value":1813},"The user changed before a step was sent: the step rejects with ",{"type":658,"tag":669,"props":1815,"children":1816},{},[1817],{"type":663,"value":1818},"IDENTITY_CHANGED",{"type":663,"value":1820}," and ",{"type":658,"tag":669,"props":1822,"children":1823},{},[1824],{"type":663,"value":1825},"outcome: 'not-sent'",{"type":663,"value":1827},". Nothing was sent.",{"type":658,"tag":1809,"props":1829,"children":1830},{},[1831,1833,1837,1838,1843],{"type":663,"value":1832},"The user changed while a step was in flight: the step rejects at once with ",{"type":658,"tag":669,"props":1834,"children":1835},{},[1836],{"type":663,"value":1818},{"type":663,"value":1820},{"type":658,"tag":669,"props":1839,"children":1840},{},[1841],{"type":663,"value":1842},"outcome: 'unknown'",{"type":663,"value":1844},". The server may have run it.",{"type":658,"tag":659,"props":1846,"children":1847},{},[1848,1850,1854,1855,1859,1861,1865,1867,1872,1873,1877,1878,1882,1884,1888,1890,1894,1896,1900],{"type":663,"value":1849},"After an identity change, every later step of the operation rejects with ",{"type":658,"tag":669,"props":1851,"children":1852},{},[1853],{"type":663,"value":1818},{"type":663,"value":1820},{"type":658,"tag":669,"props":1856,"children":1857},{},[1858],{"type":663,"value":1825},{"type":663,"value":1860},". Unless your function catches it, ",{"type":658,"tag":669,"props":1862,"children":1863},{},[1864],{"type":663,"value":680},{"type":663,"value":1866}," rejects with that error. The state returns to ",{"type":658,"tag":669,"props":1868,"children":1869},{},[1870],{"type":663,"value":1871},"'idle'",{"type":663,"value":864},{"type":658,"tag":669,"props":1874,"children":1875},{},[1876],{"type":663,"value":1723},{"type":663,"value":1820},{"type":658,"tag":669,"props":1879,"children":1880},{},[1881],{"type":663,"value":1741},{"type":663,"value":1883}," of the previous user are cleared, and the ",{"type":658,"tag":669,"props":1885,"children":1886},{},[1887],{"type":663,"value":1818},{"type":663,"value":1889}," error never shows in ",{"type":658,"tag":669,"props":1891,"children":1892},{},[1893],{"type":663,"value":1741},{"type":663,"value":1895},". A new ",{"type":658,"tag":669,"props":1897,"children":1898},{},[1899],{"type":663,"value":680},{"type":663,"value":1901}," starts an operation for the new user.",{"type":658,"tag":1765,"props":1903,"children":1905},{"id":1904},"stop-an-operation",[1906],{"type":663,"value":1907},"Stop an operation",{"type":658,"tag":659,"props":1909,"children":1910},{},[1911],{"type":663,"value":1912},"The operation stops when:",{"type":658,"tag":1805,"props":1914,"children":1915},{},[1916,1921,1933,1949],{"type":658,"tag":1809,"props":1917,"children":1918},{},[1919],{"type":663,"value":1920},"the signed-in user changes;",{"type":658,"tag":1809,"props":1922,"children":1923},{},[1924,1926,1931],{"type":663,"value":1925},"you call ",{"type":658,"tag":669,"props":1927,"children":1928},{},[1929],{"type":663,"value":1930},"op.cancel()",{"type":663,"value":1932},";",{"type":658,"tag":1809,"props":1934,"children":1935},{},[1936,1937,1942,1944,1948],{"type":663,"value":1925},{"type":658,"tag":669,"props":1938,"children":1939},{},[1940],{"type":663,"value":1941},"reset()",{"type":663,"value":1943},", which also returns the state to ",{"type":658,"tag":669,"props":1945,"children":1946},{},[1947],{"type":663,"value":1871},{"type":663,"value":1932},{"type":658,"tag":1809,"props":1950,"children":1951},{},[1952,1954,1959],{"type":663,"value":1953},"the component or effect scope that called ",{"type":658,"tag":669,"props":1955,"children":1956},{},[1957],{"type":663,"value":1958},"useConvexOperation()",{"type":663,"value":1960}," ends.",{"type":658,"tag":659,"props":1962,"children":1963},{},[1964,1966,1971,1972,1976,1978,1983,1984,1988,1990,1995,1997,2001,2002,2006],{"type":663,"value":1965},"After ",{"type":658,"tag":669,"props":1967,"children":1968},{},[1969],{"type":663,"value":1970},"cancel()",{"type":663,"value":996},{"type":658,"tag":669,"props":1973,"children":1974},{},[1975],{"type":663,"value":1941},{"type":663,"value":1977},", or the end of the scope, later steps reject with ",{"type":658,"tag":669,"props":1979,"children":1980},{},[1981],{"type":663,"value":1982},"CANCELLED",{"type":663,"value":1820},{"type":658,"tag":669,"props":1985,"children":1986},{},[1987],{"type":663,"value":1825},{"type":663,"value":1989},". A running ",{"type":658,"tag":669,"props":1991,"children":1992},{},[1993],{"type":663,"value":1994},"upload()",{"type":663,"value":1996}," is aborted and rejects with ",{"type":658,"tag":669,"props":1998,"children":1999},{},[2000],{"type":663,"value":1982},{"type":663,"value":1820},{"type":658,"tag":669,"props":2003,"children":2004},{},[2005],{"type":663,"value":1842},{"type":663,"value":2007},". A query, mutation, or action that was already sent finishes with its real result.",{"type":658,"tag":659,"props":2009,"children":2010},{},[2011,2013,2018,2020,2025,2027,2032],{"type":663,"value":2012},"Read ",{"type":658,"tag":669,"props":2014,"children":2015},{},[2016],{"type":663,"value":2017},"op.retired",{"type":663,"value":2019}," to check whether the operation stopped. Pass ",{"type":658,"tag":669,"props":2021,"children":2022},{},[2023],{"type":663,"value":2024},"op.signal",{"type":663,"value":2026}," to your own work, such as ",{"type":658,"tag":669,"props":2028,"children":2029},{},[2030],{"type":663,"value":2031},"fetch",{"type":663,"value":2033},", so that it stops too:",{"type":658,"tag":690,"props":2035,"children":2037},{"language":2036,"class":694},"ts",[2038],{"type":658,"tag":669,"props":2039,"children":2041},{"class":2040},"language-ts",[2042,2119,2120,2187,2188,2258,2259,2341,2342],{"type":658,"tag":701,"props":2043,"children":2044},{"class":703,"style":704},[2045,2049,2053,2057,2062,2066,2070,2074,2078,2082,2086,2090,2094,2098,2102,2106,2111,2115],{"type":658,"tag":701,"props":2046,"children":2047},{"style":829},[2048],{"type":663,"value":832},{"type":658,"tag":701,"props":2050,"children":2051},{"style":731},[2052],{"type":663,"value":766},{"type":658,"tag":701,"props":2054,"children":2055},{"style":835},[2056],{"type":663,"value":1717},{"type":658,"tag":701,"props":2058,"children":2059},{"style":731},[2060],{"type":663,"value":2061}," } = ",{"type":658,"tag":701,"props":2063,"children":2064},{"style":846},[2065],{"type":663,"value":673},{"type":658,"tag":701,"props":2067,"children":2068},{"style":731},[2069],{"type":663,"value":976},{"type":658,"tag":701,"props":2071,"children":2072},{"style":829},[2073],{"type":663,"value":981},{"type":658,"tag":701,"props":2075,"children":2076},{"style":731},[2077],{"type":663,"value":986},{"type":658,"tag":701,"props":2079,"children":2080},{"style":769},[2081],{"type":663,"value":991},{"type":658,"tag":701,"props":2083,"children":2084},{"style":731},[2085],{"type":663,"value":996},{"type":658,"tag":701,"props":2087,"children":2088},{"style":769},[2089],{"type":663,"value":859},{"type":658,"tag":701,"props":2091,"children":2092},{"style":731},[2093],{"type":663,"value":864},{"type":658,"tag":701,"props":2095,"children":2096},{"style":867},[2097],{"type":663,"value":772},{"type":658,"tag":701,"props":2099,"children":2100},{"style":731},[2101],{"type":663,"value":711},{"type":658,"tag":701,"props":2103,"children":2104},{"style":785},[2105],{"type":663,"value":878},{"type":658,"tag":701,"props":2107,"children":2108},{"style":731},[2109],{"type":663,"value":2110},">) ",{"type":658,"tag":701,"props":2112,"children":2113},{"style":829},[2114],{"type":663,"value":1020},{"type":658,"tag":701,"props":2116,"children":2117},{"style":731},[2118],{"type":663,"value":900},{"type":663,"value":747},{"type":658,"tag":701,"props":2121,"children":2122},{"class":703,"style":704},[2123,2127,2131,2135,2139,2143,2147,2151,2155,2159,2163,2167,2171,2175,2179,2183],{"type":658,"tag":701,"props":2124,"children":2125},{"style":829},[2126],{"type":663,"value":1033},{"type":658,"tag":701,"props":2128,"children":2129},{"style":835},[2130],{"type":663,"value":1038},{"type":658,"tag":701,"props":2132,"children":2133},{"style":731},[2134],{"type":663,"value":843},{"type":658,"tag":701,"props":2136,"children":2137},{"style":753},[2138],{"type":663,"value":1047},{"type":658,"tag":701,"props":2140,"children":2141},{"style":769},[2142],{"type":663,"value":1052},{"type":658,"tag":701,"props":2144,"children":2145},{"style":731},[2146],{"type":663,"value":688},{"type":658,"tag":701,"props":2148,"children":2149},{"style":846},[2150],{"type":663,"value":1061},{"type":658,"tag":701,"props":2152,"children":2153},{"style":731},[2154],{"type":663,"value":976},{"type":658,"tag":701,"props":2156,"children":2157},{"style":769},[2158],{"type":663,"value":805},{"type":658,"tag":701,"props":2160,"children":2161},{"style":731},[2162],{"type":663,"value":688},{"type":658,"tag":701,"props":2164,"children":2165},{"style":769},[2166],{"type":663,"value":1078},{"type":658,"tag":701,"props":2168,"children":2169},{"style":731},[2170],{"type":663,"value":688},{"type":658,"tag":701,"props":2172,"children":2173},{"style":769},[2174],{"type":663,"value":1087},{"type":658,"tag":701,"props":2176,"children":2177},{"style":731},[2178],{"type":663,"value":1092},{"type":658,"tag":701,"props":2180,"children":2181},{"style":769},[2182],{"type":663,"value":859},{"type":658,"tag":701,"props":2184,"children":2185},{"style":731},[2186],{"type":663,"value":1114},{"type":663,"value":747},{"type":658,"tag":701,"props":2189,"children":2190},{"class":703,"style":704},[2191,2195,2200,2204,2208,2213,2217,2222,2226,2231,2236,2241,2245,2249,2254],{"type":658,"tag":701,"props":2192,"children":2193},{"style":829},[2194],{"type":663,"value":1033},{"type":658,"tag":701,"props":2196,"children":2197},{"style":835},[2198],{"type":663,"value":2199}," response",{"type":658,"tag":701,"props":2201,"children":2202},{"style":731},[2203],{"type":663,"value":843},{"type":658,"tag":701,"props":2205,"children":2206},{"style":753},[2207],{"type":663,"value":1047},{"type":658,"tag":701,"props":2209,"children":2210},{"style":846},[2211],{"type":663,"value":2212}," fetch",{"type":658,"tag":701,"props":2214,"children":2215},{"style":731},[2216],{"type":663,"value":976},{"type":658,"tag":701,"props":2218,"children":2219},{"style":846},[2220],{"type":663,"value":2221},"renderUrl",{"type":658,"tag":701,"props":2223,"children":2224},{"style":731},[2225],{"type":663,"value":976},{"type":658,"tag":701,"props":2227,"children":2228},{"style":769},[2229],{"type":663,"value":2230},"draft",{"type":658,"tag":701,"props":2232,"children":2233},{"style":731},[2234],{"type":663,"value":2235},"), { ",{"type":658,"tag":701,"props":2237,"children":2238},{"style":769},[2239],{"type":663,"value":2240},"signal:",{"type":658,"tag":701,"props":2242,"children":2243},{"style":769},[2244],{"type":663,"value":1052},{"type":658,"tag":701,"props":2246,"children":2247},{"style":731},[2248],{"type":663,"value":688},{"type":658,"tag":701,"props":2250,"children":2251},{"style":769},[2252],{"type":663,"value":2253},"signal",{"type":658,"tag":701,"props":2255,"children":2256},{"style":731},[2257],{"type":663,"value":1114},{"type":663,"value":747},{"type":658,"tag":701,"props":2260,"children":2261},{"class":703,"style":704},[2262,2266,2270,2274,2278,2282,2286,2290,2294,2298,2302,2306,2310,2314,2319,2324,2328,2332,2336],{"type":658,"tag":701,"props":2263,"children":2264},{"style":753},[2265],{"type":663,"value":1243},{"type":658,"tag":701,"props":2267,"children":2268},{"style":769},[2269],{"type":663,"value":1052},{"type":658,"tag":701,"props":2271,"children":2272},{"style":731},[2273],{"type":663,"value":688},{"type":658,"tag":701,"props":2275,"children":2276},{"style":846},[2277],{"type":663,"value":1148},{"type":658,"tag":701,"props":2279,"children":2280},{"style":731},[2281],{"type":663,"value":976},{"type":658,"tag":701,"props":2283,"children":2284},{"style":769},[2285],{"type":663,"value":805},{"type":658,"tag":701,"props":2287,"children":2288},{"style":731},[2289],{"type":663,"value":688},{"type":658,"tag":701,"props":2291,"children":2292},{"style":769},[2293],{"type":663,"value":1272},{"type":658,"tag":701,"props":2295,"children":2296},{"style":731},[2297],{"type":663,"value":688},{"type":658,"tag":701,"props":2299,"children":2300},{"style":769},[2301],{"type":663,"value":918},{"type":658,"tag":701,"props":2303,"children":2304},{"style":731},[2305],{"type":663,"value":1092},{"type":658,"tag":701,"props":2307,"children":2308},{"style":769},[2309],{"type":663,"value":859},{"type":658,"tag":701,"props":2311,"children":2312},{"style":731},[2313],{"type":663,"value":996},{"type":658,"tag":701,"props":2315,"children":2316},{"style":769},[2317],{"type":663,"value":2318},"html:",{"type":658,"tag":701,"props":2320,"children":2321},{"style":753},[2322],{"type":663,"value":2323}," await",{"type":658,"tag":701,"props":2325,"children":2326},{"style":769},[2327],{"type":663,"value":2199},{"type":658,"tag":701,"props":2329,"children":2330},{"style":731},[2331],{"type":663,"value":688},{"type":658,"tag":701,"props":2333,"children":2334},{"style":846},[2335],{"type":663,"value":663},{"type":658,"tag":701,"props":2337,"children":2338},{"style":731},[2339],{"type":663,"value":2340},"() })",{"type":663,"value":747},{"type":658,"tag":701,"props":2343,"children":2344},{"class":703,"style":704},[2345],{"type":658,"tag":701,"props":2346,"children":2347},{"style":731},[2348],{"type":663,"value":1323},{"type":658,"tag":659,"props":2350,"children":2351},{},[2352,2356,2358,2363,2365,2370],{"type":658,"tag":669,"props":2353,"children":2354},{},[2355],{"type":663,"value":2024},{"type":663,"value":2357}," aborts with the ",{"type":658,"tag":669,"props":2359,"children":2360},{},[2361],{"type":663,"value":2362},"ConvexCallError",{"type":663,"value":2364}," that stopped the operation as its ",{"type":658,"tag":669,"props":2366,"children":2367},{},[2368],{"type":663,"value":2369},"reason",{"type":663,"value":2371},". It aborts only while your function runs. Once your function has settled, the operation no longer watches the signed-in user, so the signal no longer aborts.",{"type":658,"tag":1765,"props":2373,"children":2375},{"id":2374},"upload-inside-an-operation",[2376],{"type":663,"value":2377},"Upload inside an operation",{"type":658,"tag":659,"props":2379,"children":2380},{},[2381,2386,2388,2393,2395,2400,2402,2407,2409,2414,2415,2420,2421,2425,2427,2436,2438,2443],{"type":658,"tag":669,"props":2382,"children":2383},{},[2384],{"type":663,"value":2385},"op.upload(url, file, { onProgress, maxSize, allowedTypes })",{"type":663,"value":2387}," sends ",{"type":658,"tag":669,"props":2389,"children":2390},{},[2391],{"type":663,"value":2392},"file",{"type":663,"value":2394}," to a Convex storage upload URL and resolves with its storage ID. With ",{"type":658,"tag":669,"props":2396,"children":2397},{},[2398],{"type":663,"value":2399},"maxSize",{"type":663,"value":2401}," or ",{"type":658,"tag":669,"props":2403,"children":2404},{},[2405],{"type":663,"value":2406},"allowedTypes",{"type":663,"value":2408},", a file that fails them rejects with ",{"type":658,"tag":669,"props":2410,"children":2411},{},[2412],{"type":663,"value":2413},"FILE_TOO_LARGE",{"type":663,"value":2401},{"type":658,"tag":669,"props":2416,"children":2417},{},[2418],{"type":663,"value":2419},"FILE_TYPE_NOT_ALLOWED",{"type":663,"value":1820},{"type":658,"tag":669,"props":2422,"children":2423},{},[2424],{"type":663,"value":1825},{"type":663,"value":2426},", and nothing is sent. For a single file with progress state and a completion step, use ",{"type":658,"tag":2428,"props":2429,"children":2430},"a",{"href":334},[2431],{"type":658,"tag":669,"props":2432,"children":2433},{},[2434],{"type":663,"value":2435},"useConvexFileUpload",{"type":663,"value":2437},". Its ",{"type":658,"tag":669,"props":2439,"children":2440},{},[2441],{"type":663,"value":2442},"complete",{"type":663,"value":2444}," step receives an operation, so it runs in the same way.",{"type":658,"tag":1765,"props":2446,"children":2448},{"id":2447},"retry-a-failed-step",[2449],{"type":663,"value":2450},"Retry a failed step",{"type":658,"tag":659,"props":2452,"children":2453},{},[2454,2459],{"type":658,"tag":669,"props":2455,"children":2456},{},[2457],{"type":663,"value":2458},"outcome",{"type":663,"value":2460}," tells you whether a request was sent. It does not make a retry safe:",{"type":658,"tag":1805,"props":2462,"children":2463},{},[2464,2473],{"type":658,"tag":1809,"props":2465,"children":2466},{},[2467,2471],{"type":658,"tag":669,"props":2468,"children":2469},{},[2470],{"type":663,"value":1825},{"type":663,"value":2472},": the request never reached Convex. A retry sends it for the first time.",{"type":658,"tag":1809,"props":2474,"children":2475},{},[2476,2480],{"type":658,"tag":669,"props":2477,"children":2478},{},[2479],{"type":663,"value":1842},{"type":663,"value":2481},": the request may have run. A retry can run it twice.",{"type":658,"tag":659,"props":2483,"children":2484},{},[2485,2487,2493],{"type":663,"value":2486},"Make a write safe to repeat before you retry it automatically. See ",{"type":658,"tag":2428,"props":2488,"children":2490},{"href":2489},"\u002Fdocs\u002Freference\u002Ferror-types#idempotent-writes",[2491],{"type":663,"value":2492},"Idempotent writes",{"type":663,"value":688},{"type":658,"tag":1765,"props":2495,"children":2497},{"id":2496},"when-to-use-it",[2498],{"type":663,"value":2499},"When to use it",{"type":658,"tag":659,"props":2501,"children":2502},{},[2503,2505,2509,2511,2516,2517,2521],{"type":663,"value":2504},"Use ",{"type":658,"tag":669,"props":2506,"children":2507},{},[2508],{"type":663,"value":673},{"type":663,"value":2510}," when one user action sends two or more requests that depend on each other. For one request, use ",{"type":658,"tag":669,"props":2512,"children":2513},{},[2514],{"type":663,"value":2515},"useConvexMutation",{"type":663,"value":2401},{"type":658,"tag":669,"props":2518,"children":2519},{},[2520],{"type":663,"value":1755},{"type":663,"value":2522},". They stop in the same way when the user changes.",{"type":658,"tag":659,"props":2524,"children":2525},{},[2526],{"type":663,"value":2527},"Keep the rules of the work in Convex. The operation only makes sure that the requests belong to one user. Each Convex function still checks that the user may do the work.",{"title":2529,"searchDepth":2530,"depth":2530,"links":2531},"",4,[2532,2534,2535,2536,2537],{"id":1767,"depth":2533,"text":1770},2,{"id":1904,"depth":2533,"text":1907},{"id":2374,"depth":2533,"text":2377},{"id":2447,"depth":2533,"text":2450},{"id":2496,"depth":2533,"text":2499},"markdown","docs",{"source":2541,"path":2542,"stem":2543,"dir":2544,"extension":2545},"content","docs\u002F3.build\u002F2.write-data\u002F6.multi-step-operations.md","docs\u002F3.build\u002F2.write-data\u002F6.multi-step-operations","write-data","md",{"requestedPath":198,"resolvedPath":198,"alternates":2547},[],{"requested":2549,"resolved":2550,"usedFallback":6},{},{"locale":8},{"previous":2552,"next":2554},{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":6,"navigation":2553,"icon":190,"path":191},{"icon":190},{"title":200,"id":204,"canonicalKey":205,"locale":8,"draft":6,"navigation":2555,"icon":207,"path":208},{"icon":207},{"left":2557,"top":2557,"width":2558,"height":2559,"rotate":2557,"vFlip":6,"hFlip":6,"body":2560},0,256,221,"\u003Cpath fill=\"#41b883\" d=\"M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0z\"\u002F>\u003Cpath fill=\"#41b883\" d=\"m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0z\"\u002F>\u003Cpath fill=\"#35495e\" d=\"M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0z\"\u002F>",{"left":2557,"top":2557,"width":2558,"height":2558,"rotate":2557,"vFlip":6,"hFlip":6,"body":2562},"\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":2557,"top":2557,"width":2564,"height":2564,"rotate":2557,"vFlip":6,"hFlip":6,"body":2565},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>",1790591492865]