[{"data":1,"prerenderedAt":1096},["ShallowReactive",2],{"navigation_docs":3,"-guide-optimistic-updates":91,"-guide-optimistic-updates-surround":1091},[4,18,67],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","/getting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Installation","/getting-started/installation","1.getting-started/1.installation",{"title":14,"path":15,"stem":16},"Usage","/getting-started/usage","1.getting-started/2.usage",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guide","/guide","2.guide",[23,27,31,35,39,43,47,51,55,59,63],{"title":24,"path":25,"stem":26},"Action Client","/guide/action-client","2.guide/1.action-client",{"title":28,"path":29,"stem":30},"Queries","/guide/queries","2.guide/10.queries",{"title":32,"path":33,"stem":34},"Comparison","/guide/comparison","2.guide/11.comparison",{"title":36,"path":37,"stem":38},"Defining Actions","/guide/defining-actions","2.guide/2.defining-actions",{"title":40,"path":41,"stem":42},"useAction","/guide/use-action","2.guide/3.use-action",{"title":44,"path":45,"stem":46},"Middleware","/guide/middleware","2.guide/4.middleware",{"title":48,"path":49,"stem":50},"Error Handling","/guide/error-handling","2.guide/5.error-handling",{"title":52,"path":53,"stem":54},"Validation","/guide/validation","2.guide/6.validation",{"title":56,"path":57,"stem":58},"Forms","/guide/forms","2.guide/7.forms",{"title":60,"path":61,"stem":62},"Authentication","/guide/authentication","2.guide/8.authentication",{"title":64,"path":65,"stem":66},"Optimistic Updates","/guide/optimistic-updates","2.guide/9.optimistic-updates",{"title":68,"path":69,"stem":70,"children":71,"page":17},"Api","/api","3.api",[72,76,80,83,87],{"title":73,"path":74,"stem":75},"createSafeActionClient","/api/create-safe-action-client","3.api/1.create-safe-action-client",{"title":77,"path":78,"stem":79},"Builder Chain","/api/builder-chain","3.api/2.builder-chain",{"title":40,"path":81,"stem":82},"/api/use-action","3.api/3.use-action",{"title":84,"path":85,"stem":86},"useFormAction","/api/use-form-action","3.api/4.use-form-action",{"title":88,"path":89,"stem":90},"useOptimisticAction","/api/use-optimistic-action","3.api/5.use-optimistic-action",{"id":92,"title":64,"body":93,"description":1085,"extension":1086,"links":1087,"meta":1088,"navigation":224,"path":65,"seo":1089,"stem":66,"__hash__":1090},"docs/2.guide/9.optimistic-updates.md",{"type":94,"value":95,"toc":1082},"minimark",[96,101,126,805,808,1007,1012,1020,1031,1045,1062,1078],[97,98,100],"h1",{"id":99},"optimistic-updates","Optimistic updates",[102,103,104,107,108,110,111,114,115,118,119,121,122,125],"p",{},[105,106,88],"code",{}," extends ",[105,109,40],{},". Provide a writable ",[105,112,113],{},"currentData"," ref and an immutable ",[105,116,117],{},"updateFn(input, current)"," that returns a new value. It changes ",[105,120,113],{}," immediately and exposes a readonly ",[105,123,124],{},"optimisticData"," view.",[127,128,133],"pre",{"className":129,"code":130,"language":131,"meta":132,"style":132},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { toggleTask } from '#safe-action/actions'\n\nconst tasks = ref([{ id: '1', title: 'Try server actions', done: false }])\nconst { execute, optimisticData, isExecuting, serverError, cancel } = useOptimisticAction(toggleTask, {\n  currentData: tasks,\n  updateFn(input, current) {\n    return current.map(task => task.id === input.id ? { ...task, done: input.done } : task)\n  },\n  onSuccess({ data }) {\n    tasks.value = tasks.value.map(task => task.id === data.id ? { ...task, done: data.done } : task)\n  },\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cul>\n    \u003Cli v-for=\"task in optimisticData\" :key=\"task.id\">\n      \u003Cbutton @click=\"execute({ id: task.id, done: !task.done })\">\n        {{ task.done ? '✓' : '○' }} {{ task.title }}\n      \u003C/button>\n    \u003C/li>\n  \u003C/ul>\n  \u003Cp v-if=\"isExecuting\">Saving…\u003C/p>\n  \u003Cp v-if=\"serverError\" role=\"alert\">{{ serverError }}\u003C/p>\n  \u003Cbutton type=\"button\" @click=\"cancel()\">Cancel pending update\u003C/button>\n\u003C/template>\n","vue","",[105,134,135,170,198,219,226,291,338,352,375,448,454,471,542,547,554,564,569,579,590,625,648,654,664,674,684,715,756,796],{"__ignoreMap":132},[136,137,140,144,148,152,155,158,161,165,167],"span",{"class":138,"line":139},"line",1,[136,141,143],{"class":142},"sMK4o","\u003C",[136,145,147],{"class":146},"swJcz","script",[136,149,151],{"class":150},"spNyl"," setup",[136,153,154],{"class":150}," lang",[136,156,157],{"class":142},"=",[136,159,160],{"class":142},"\"",[136,162,164],{"class":163},"sfazB","ts",[136,166,160],{"class":142},[136,168,169],{"class":142},">\n",[136,171,173,177,180,184,187,190,193,195],{"class":138,"line":172},2,[136,174,176],{"class":175},"s7zQu","import",[136,178,179],{"class":142}," {",[136,181,183],{"class":182},"sTEyZ"," ref",[136,185,186],{"class":142}," }",[136,188,189],{"class":175}," from",[136,191,192],{"class":142}," '",[136,194,131],{"class":163},[136,196,197],{"class":142},"'\n",[136,199,201,203,205,208,210,212,214,217],{"class":138,"line":200},3,[136,202,176],{"class":175},[136,204,179],{"class":142},[136,206,207],{"class":182}," toggleTask",[136,209,186],{"class":142},[136,211,189],{"class":175},[136,213,192],{"class":142},[136,215,216],{"class":163},"#safe-action/actions",[136,218,197],{"class":142},[136,220,222],{"class":138,"line":221},4,[136,223,225],{"emptyLinePlaceholder":224},true,"\n",[136,227,229,232,235,237,240,243,246,249,252,254,257,260,263,266,268,270,273,275,277,280,282,286,288],{"class":138,"line":228},5,[136,230,231],{"class":150},"const",[136,233,234],{"class":182}," tasks ",[136,236,157],{"class":142},[136,238,183],{"class":239},"s2Zo4",[136,241,242],{"class":182},"([",[136,244,245],{"class":142},"{",[136,247,248],{"class":146}," id",[136,250,251],{"class":142},":",[136,253,192],{"class":142},[136,255,256],{"class":163},"1",[136,258,259],{"class":142},"'",[136,261,262],{"class":142},",",[136,264,265],{"class":146}," title",[136,267,251],{"class":142},[136,269,192],{"class":142},[136,271,272],{"class":163},"Try server actions",[136,274,259],{"class":142},[136,276,262],{"class":142},[136,278,279],{"class":146}," done",[136,281,251],{"class":142},[136,283,285],{"class":284},"sfNiH"," false",[136,287,186],{"class":142},[136,289,290],{"class":182},"])\n",[136,292,294,296,298,301,303,306,308,311,313,316,318,321,324,327,330,333,335],{"class":138,"line":293},6,[136,295,231],{"class":150},[136,297,179],{"class":142},[136,299,300],{"class":182}," execute",[136,302,262],{"class":142},[136,304,305],{"class":182}," optimisticData",[136,307,262],{"class":142},[136,309,310],{"class":182}," isExecuting",[136,312,262],{"class":142},[136,314,315],{"class":182}," serverError",[136,317,262],{"class":142},[136,319,320],{"class":182}," cancel ",[136,322,323],{"class":142},"}",[136,325,326],{"class":142}," =",[136,328,329],{"class":239}," useOptimisticAction",[136,331,332],{"class":182},"(toggleTask",[136,334,262],{"class":142},[136,336,337],{"class":142}," {\n",[136,339,341,344,346,349],{"class":138,"line":340},7,[136,342,343],{"class":146},"  currentData",[136,345,251],{"class":142},[136,347,348],{"class":182}," tasks",[136,350,351],{"class":142},",\n",[136,353,355,358,361,365,367,370,373],{"class":138,"line":354},8,[136,356,357],{"class":146},"  updateFn",[136,359,360],{"class":142},"(",[136,362,364],{"class":363},"sHdIc","input",[136,366,262],{"class":142},[136,368,369],{"class":363}," current",[136,371,372],{"class":142},")",[136,374,337],{"class":142},[136,376,378,381,383,386,389,391,394,397,400,402,405,408,411,413,415,418,420,423,425,427,429,431,433,435,438,440,443,445],{"class":138,"line":377},9,[136,379,380],{"class":175},"    return",[136,382,369],{"class":182},[136,384,385],{"class":142},".",[136,387,388],{"class":239},"map",[136,390,360],{"class":146},[136,392,393],{"class":363},"task",[136,395,396],{"class":150}," =>",[136,398,399],{"class":182}," task",[136,401,385],{"class":142},[136,403,404],{"class":182},"id",[136,406,407],{"class":142}," ===",[136,409,410],{"class":182}," input",[136,412,385],{"class":142},[136,414,404],{"class":182},[136,416,417],{"class":142}," ?",[136,419,179],{"class":142},[136,421,422],{"class":142}," ...",[136,424,393],{"class":182},[136,426,262],{"class":142},[136,428,279],{"class":146},[136,430,251],{"class":142},[136,432,410],{"class":182},[136,434,385],{"class":142},[136,436,437],{"class":182},"done",[136,439,186],{"class":142},[136,441,442],{"class":142}," :",[136,444,399],{"class":182},[136,446,447],{"class":146},")\n",[136,449,451],{"class":138,"line":450},10,[136,452,453],{"class":142},"  },\n",[136,455,457,460,463,466,469],{"class":138,"line":456},11,[136,458,459],{"class":146},"  onSuccess",[136,461,462],{"class":142},"({",[136,464,465],{"class":363}," data",[136,467,468],{"class":142}," })",[136,470,337],{"class":142},[136,472,474,477,479,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540],{"class":138,"line":473},12,[136,475,476],{"class":182},"    tasks",[136,478,385],{"class":142},[136,480,481],{"class":182},"value",[136,483,326],{"class":142},[136,485,348],{"class":182},[136,487,385],{"class":142},[136,489,481],{"class":182},[136,491,385],{"class":142},[136,493,388],{"class":239},[136,495,360],{"class":146},[136,497,393],{"class":363},[136,499,396],{"class":150},[136,501,399],{"class":182},[136,503,385],{"class":142},[136,505,404],{"class":182},[136,507,407],{"class":142},[136,509,465],{"class":182},[136,511,385],{"class":142},[136,513,404],{"class":182},[136,515,417],{"class":142},[136,517,179],{"class":142},[136,519,422],{"class":142},[136,521,393],{"class":182},[136,523,262],{"class":142},[136,525,279],{"class":146},[136,527,251],{"class":142},[136,529,465],{"class":182},[136,531,385],{"class":142},[136,533,437],{"class":182},[136,535,186],{"class":142},[136,537,442],{"class":142},[136,539,399],{"class":182},[136,541,447],{"class":146},[136,543,545],{"class":138,"line":544},13,[136,546,453],{"class":142},[136,548,550,552],{"class":138,"line":549},14,[136,551,323],{"class":142},[136,553,447],{"class":182},[136,555,557,560,562],{"class":138,"line":556},15,[136,558,559],{"class":142},"\u003C/",[136,561,147],{"class":146},[136,563,169],{"class":142},[136,565,567],{"class":138,"line":566},16,[136,568,225],{"emptyLinePlaceholder":224},[136,570,572,574,577],{"class":138,"line":571},17,[136,573,143],{"class":142},[136,575,576],{"class":146},"template",[136,578,169],{"class":142},[136,580,582,585,588],{"class":138,"line":581},18,[136,583,584],{"class":142},"  \u003C",[136,586,587],{"class":146},"ul",[136,589,169],{"class":142},[136,591,593,596,599,602,604,606,609,611,614,616,618,621,623],{"class":138,"line":592},19,[136,594,595],{"class":142},"    \u003C",[136,597,598],{"class":146},"li",[136,600,601],{"class":150}," v-for",[136,603,157],{"class":142},[136,605,160],{"class":142},[136,607,608],{"class":163},"task in optimisticData",[136,610,160],{"class":142},[136,612,613],{"class":150}," :key",[136,615,157],{"class":142},[136,617,160],{"class":142},[136,619,620],{"class":163},"task.id",[136,622,160],{"class":142},[136,624,169],{"class":142},[136,626,628,631,634,637,639,641,644,646],{"class":138,"line":627},20,[136,629,630],{"class":142},"      \u003C",[136,632,633],{"class":146},"button",[136,635,636],{"class":150}," @click",[136,638,157],{"class":142},[136,640,160],{"class":142},[136,642,643],{"class":163},"execute({ id: task.id, done: !task.done })",[136,645,160],{"class":142},[136,647,169],{"class":142},[136,649,651],{"class":138,"line":650},21,[136,652,653],{"class":182},"        {{ task.done ? '✓' : '○' }} {{ task.title }}\n",[136,655,657,660,662],{"class":138,"line":656},22,[136,658,659],{"class":142},"      \u003C/",[136,661,633],{"class":146},[136,663,169],{"class":142},[136,665,667,670,672],{"class":138,"line":666},23,[136,668,669],{"class":142},"    \u003C/",[136,671,598],{"class":146},[136,673,169],{"class":142},[136,675,677,680,682],{"class":138,"line":676},24,[136,678,679],{"class":142},"  \u003C/",[136,681,587],{"class":146},[136,683,169],{"class":142},[136,685,687,689,691,694,696,698,701,703,706,709,711,713],{"class":138,"line":686},25,[136,688,584],{"class":142},[136,690,102],{"class":146},[136,692,693],{"class":150}," v-if",[136,695,157],{"class":142},[136,697,160],{"class":142},[136,699,700],{"class":163},"isExecuting",[136,702,160],{"class":142},[136,704,705],{"class":142},">",[136,707,708],{"class":182},"Saving…",[136,710,559],{"class":142},[136,712,102],{"class":146},[136,714,169],{"class":142},[136,716,718,720,722,724,726,728,731,733,736,738,740,743,745,747,750,752,754],{"class":138,"line":717},26,[136,719,584],{"class":142},[136,721,102],{"class":146},[136,723,693],{"class":150},[136,725,157],{"class":142},[136,727,160],{"class":142},[136,729,730],{"class":163},"serverError",[136,732,160],{"class":142},[136,734,735],{"class":150}," role",[136,737,157],{"class":142},[136,739,160],{"class":142},[136,741,742],{"class":163},"alert",[136,744,160],{"class":142},[136,746,705],{"class":142},[136,748,749],{"class":182},"{{ serverError }}",[136,751,559],{"class":142},[136,753,102],{"class":146},[136,755,169],{"class":142},[136,757,759,761,763,766,768,770,772,774,776,778,780,783,785,787,790,792,794],{"class":138,"line":758},27,[136,760,584],{"class":142},[136,762,633],{"class":146},[136,764,765],{"class":150}," type",[136,767,157],{"class":142},[136,769,160],{"class":142},[136,771,633],{"class":163},[136,773,160],{"class":142},[136,775,636],{"class":150},[136,777,157],{"class":142},[136,779,160],{"class":142},[136,781,782],{"class":163},"cancel()",[136,784,160],{"class":142},[136,786,705],{"class":142},[136,788,789],{"class":182},"Cancel pending update",[136,791,559],{"class":142},[136,793,633],{"class":146},[136,795,169],{"class":142},[136,797,799,801,803],{"class":138,"line":798},28,[136,800,559],{"class":142},[136,802,576],{"class":146},[136,804,169],{"class":142},[102,806,807],{},"Use this demonstration action for that example. It validates and echoes a desired state; connect real storage and authorization in your application.",[127,809,813],{"className":810,"code":811,"filename":812,"language":164,"meta":132,"style":132},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { z } from 'zod'\nimport { createSafeActionClient } from '#safe-action'\n\nexport default createSafeActionClient()\n  .schema(z.object({ id: z.string().min(1), done: z.boolean() }))\n  .outputSchema(z.object({ id: z.string(), done: z.boolean() }))\n  .action(({ parsedInput }) => parsedInput)\n","server/actions/toggle-task.ts",[105,814,815,835,855,859,872,939,986],{"__ignoreMap":132},[136,816,817,819,821,824,826,828,830,833],{"class":138,"line":139},[136,818,176],{"class":175},[136,820,179],{"class":142},[136,822,823],{"class":182}," z",[136,825,186],{"class":142},[136,827,189],{"class":175},[136,829,192],{"class":142},[136,831,832],{"class":163},"zod",[136,834,197],{"class":142},[136,836,837,839,841,844,846,848,850,853],{"class":138,"line":172},[136,838,176],{"class":175},[136,840,179],{"class":142},[136,842,843],{"class":182}," createSafeActionClient",[136,845,186],{"class":142},[136,847,189],{"class":175},[136,849,192],{"class":142},[136,851,852],{"class":163},"#safe-action",[136,854,197],{"class":142},[136,856,857],{"class":138,"line":200},[136,858,225],{"emptyLinePlaceholder":224},[136,860,861,864,867,869],{"class":138,"line":221},[136,862,863],{"class":175},"export",[136,865,866],{"class":175}," default",[136,868,843],{"class":239},[136,870,871],{"class":182},"()\n",[136,873,874,877,880,883,885,888,890,892,894,896,898,900,903,906,908,911,913,916,918,920,922,924,926,928,931,934,936],{"class":138,"line":228},[136,875,876],{"class":142},"  .",[136,878,879],{"class":239},"schema",[136,881,882],{"class":182},"(z",[136,884,385],{"class":142},[136,886,887],{"class":239},"object",[136,889,360],{"class":182},[136,891,245],{"class":142},[136,893,248],{"class":146},[136,895,251],{"class":142},[136,897,823],{"class":182},[136,899,385],{"class":142},[136,901,902],{"class":239},"string",[136,904,905],{"class":182},"()",[136,907,385],{"class":142},[136,909,910],{"class":239},"min",[136,912,360],{"class":182},[136,914,256],{"class":915},"sbssI",[136,917,372],{"class":182},[136,919,262],{"class":142},[136,921,279],{"class":146},[136,923,251],{"class":142},[136,925,823],{"class":182},[136,927,385],{"class":142},[136,929,930],{"class":239},"boolean",[136,932,933],{"class":182},"() ",[136,935,323],{"class":142},[136,937,938],{"class":182},"))\n",[136,940,941,943,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984],{"class":138,"line":293},[136,942,876],{"class":142},[136,944,945],{"class":239},"outputSchema",[136,947,882],{"class":182},[136,949,385],{"class":142},[136,951,887],{"class":239},[136,953,360],{"class":182},[136,955,245],{"class":142},[136,957,248],{"class":146},[136,959,251],{"class":142},[136,961,823],{"class":182},[136,963,385],{"class":142},[136,965,902],{"class":239},[136,967,905],{"class":182},[136,969,262],{"class":142},[136,971,279],{"class":146},[136,973,251],{"class":142},[136,975,823],{"class":182},[136,977,385],{"class":142},[136,979,930],{"class":239},[136,981,933],{"class":182},[136,983,323],{"class":142},[136,985,938],{"class":182},[136,987,988,990,993,995,997,1000,1002,1004],{"class":138,"line":340},[136,989,876],{"class":142},[136,991,992],{"class":239},"action",[136,994,360],{"class":182},[136,996,462],{"class":142},[136,998,999],{"class":363}," parsedInput",[136,1001,468],{"class":142},[136,1003,396],{"class":150},[136,1005,1006],{"class":182}," parsedInput)\n",[1008,1009,1011],"h2",{"id":1010},"ownership-and-reconciliation","Ownership and reconciliation",[102,1013,1014,1015,1019],{},"Only one optimistic operation is owned at a time. Starting a newer execution cancels the earlier request, restores its baseline when still owned, and applies the new update to current authoritative data. This is ",[1016,1017,1018],"strong",{},"replacement",", not a queue of accumulating changes.",[102,1021,1022,1023,1026,1027,1030],{},"Failure/cancel/reset rolls back only if ",[105,1024,1025],{},"currentData.value"," is still the same value the helper installed. Replacing the ref during an external refresh prevents an older rollback from undoing that refresh. This identity guard does not detect in-place external edits; replace values and keep ",[105,1028,1029],{},"updateFn"," immutable.",[102,1032,1033,1034,1036,1037,1040,1041,1044],{},"On success, the optimistic value remains until your application reconciles it. The helper never assigns arbitrary action output to ",[105,1035,113],{},"; output may be a different shape. Use ",[105,1038,1039],{},"onSuccess"," or await ",[105,1042,1043],{},"executeAsync"," to merge a response or refresh a Nuxt query. Async callbacks are not awaited. Server mutations may still complete after client cancellation; refresh authoritative data where that distinction matters.",[102,1046,1047,1048,1050,1051,1053,1054,1057,1058,385],{},"All ",[105,1049,40],{}," options apply. ",[105,1052,782],{}," and ",[105,1055,1056],{},"reset()"," also release the helper's owned optimistic change. ",[1059,1060,1061],"a",{"href":89},"API reference",[102,1063,1064,1065,1067,1068,1070,1071,1074,1075,1077],{},"If ",[105,1066,1029],{}," throws, no request starts; ",[105,1069,1043],{}," rejects and ",[105,1072,1073],{},"execute"," logs the failure. Keep ",[105,1076,1029],{}," pure and immutable.",[1079,1080,1081],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":132,"searchDepth":172,"depth":172,"links":1083},[1084],{"id":1010,"depth":172,"text":1011},"Apply immutable optimistic state, replace pending mutations, and reconcile authoritative data.","md",null,{},{"title":64,"description":1085},"sdDJcfV6T6E1KgUt8-1obiI6ZQcZWHRbPJ5jP2UvrNY",[1092,1094],{"title":60,"path":61,"stem":62,"description":1093,"children":-1},"Authenticate actions with nuxt-auth-utils, enforce ownership, and return public output fields.",{"title":73,"path":74,"stem":75,"description":1095,"children":-1},"Server builder factory and unexpected-error mapper reference.",1791798655453]