[{"data":1,"prerenderedAt":1135},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fpinia-colada":3,"i-lucide:moon":1126,"i-lucide:github":1131,"i-lucide:menu":1133},{"id":4,"title":5,"body":6,"description":1119,"extension":1120,"meta":1121,"navigation":164,"path":1122,"seo":1123,"stem":1124,"__hash__":1125},"docs\u002Fdocs\u002Fpinia-colada.md","Pinia Colada",{"type":7,"value":8,"toc":1113},"minimark",[9,13,16,51,107,110,115,129,280,299,302,306,324,439,442,449,574,584,682,686,696,783,790,883,901,911,925,969,973,980,1102,1109],[10,11,12],"p",{},"Nuxt Endpoints converts its request objects into ordinary Pinia Colada options. Nuxt Endpoints owns typed HTTP input, request identity, idempotency, and status-aware output; Pinia Colada owns server-state caching, invalidation, mutations, and optimistic updates.",[10,14,15],{},"Install Pinia Colada and its official Nuxt integration:",[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-bash shiki shiki-themes github-light-default github-dark-default","vp add @pinia\u002Fcolada @pinia\u002Fcolada-nuxt pinia @pinia\u002Fnuxt\n","bash","",[24,25,26],"code",{"__ignoreMap":22},[27,28,31,35,39,42,45,48],"span",{"class":29,"line":30},"line",1,[27,32,34],{"class":33},"sVS1I","vp",[27,36,38],{"class":37},"sZItA"," add",[27,40,41],{"class":37}," @pinia\u002Fcolada",[27,43,44],{"class":37}," @pinia\u002Fcolada-nuxt",[27,46,47],{"class":37}," pinia",[27,49,50],{"class":37}," @pinia\u002Fnuxt\n",[17,52,56],{"className":53,"code":54,"language":55,"meta":22,"style":22},"language-ts shiki shiki-themes github-light-default github-dark-default","export default defineNuxtConfig({\n  modules: ['@pinia\u002Fnuxt', '@pinia\u002Fcolada-nuxt', 'nuxt-endpoints'],\n})\n","ts",[24,57,58,74,101],{"__ignoreMap":22},[27,59,60,64,67,71],{"class":29,"line":30},[27,61,63],{"class":62},"swxxe","export",[27,65,66],{"class":62}," default",[27,68,70],{"class":69},"s9HWX"," defineNuxtConfig",[27,72,73],{"class":33},"({\n",[27,75,77,81,84,87,90,92,95,98],{"class":29,"line":76},2,[27,78,80],{"class":79},"saQ_J","  modules: [",[27,82,83],{"class":37},"'@pinia\u002Fnuxt'",[27,85,86],{"class":79},", ",[27,88,89],{"class":37},"'@pinia\u002Fcolada-nuxt'",[27,91,86],{"class":79},[27,93,94],{"class":37},"'nuxt-endpoints'",[27,96,97],{"class":79},"]",[27,99,100],{"class":33},",\n",[27,102,104],{"class":29,"line":103},3,[27,105,106],{"class":33},"})\n",[10,108,109],{},"The Colada Nuxt module performs SSR prefetching, serialization, and hydration. Nuxt Endpoints does not install a second cache or hydration plugin.",[111,112,114],"h2",{"id":113},"queries","Queries",[10,116,117,120,121,124,125,128],{},[24,118,119],{},"queryOptions()"," accepts only ",[24,122,123],{},"GET"," and ",[24,126,127],{},"HEAD"," endpoint requests:",[17,130,132],{"className":53,"code":131,"language":55,"meta":22,"style":22},"import { useQuery } from '@pinia\u002Fcolada'\nimport { queryOptions } from '#endpoints\u002Fcolada'\n\nconst request = $endpoint('\u002Fapi\u002Fusers\u002F:id', {\n  method: 'get',\n  params: { id: '123' },\n})\n\nconst user = useQuery(queryOptions(request))\n\nif (user.data.value?.status === 200) {\n  user.data.value.body.name\n}\n",[24,133,134,148,160,166,191,202,214,219,224,245,250,268,274],{"__ignoreMap":22},[27,135,136,139,142,145],{"class":29,"line":30},[27,137,138],{"class":62},"import",[27,140,141],{"class":79}," { useQuery } ",[27,143,144],{"class":62},"from",[27,146,147],{"class":37}," '@pinia\u002Fcolada'\n",[27,149,150,152,155,157],{"class":29,"line":76},[27,151,138],{"class":62},[27,153,154],{"class":79}," { queryOptions } ",[27,156,144],{"class":62},[27,158,159],{"class":37}," '#endpoints\u002Fcolada'\n",[27,161,162],{"class":29,"line":103},[27,163,165],{"emptyLinePlaceholder":164},true,"\n",[27,167,169,172,176,179,182,185,188],{"class":29,"line":168},4,[27,170,171],{"class":62},"const",[27,173,175],{"class":174},"sOOdx"," request",[27,177,178],{"class":62}," =",[27,180,181],{"class":69}," $endpoint",[27,183,184],{"class":79},"(",[27,186,187],{"class":37},"'\u002Fapi\u002Fusers\u002F:id'",[27,189,190],{"class":79},", {\n",[27,192,194,197,200],{"class":29,"line":193},5,[27,195,196],{"class":79},"  method: ",[27,198,199],{"class":37},"'get'",[27,201,100],{"class":79},[27,203,205,208,211],{"class":29,"line":204},6,[27,206,207],{"class":79},"  params: { id: ",[27,209,210],{"class":37},"'123'",[27,212,213],{"class":79}," },\n",[27,215,217],{"class":29,"line":216},7,[27,218,106],{"class":79},[27,220,222],{"class":29,"line":221},8,[27,223,165],{"emptyLinePlaceholder":164},[27,225,227,229,232,234,237,239,242],{"class":29,"line":226},9,[27,228,171],{"class":62},[27,230,231],{"class":174}," user",[27,233,178],{"class":62},[27,235,236],{"class":69}," useQuery",[27,238,184],{"class":79},[27,240,241],{"class":69},"queryOptions",[27,243,244],{"class":79},"(request))\n",[27,246,248],{"class":29,"line":247},10,[27,249,165],{"emptyLinePlaceholder":164},[27,251,253,256,259,262,265],{"class":29,"line":252},11,[27,254,255],{"class":62},"if",[27,257,258],{"class":79}," (user.data.value?.status ",[27,260,261],{"class":62},"===",[27,263,264],{"class":174}," 200",[27,266,267],{"class":79},") {\n",[27,269,271],{"class":29,"line":270},12,[27,272,273],{"class":79},"  user.data.value.body.name\n",[27,275,277],{"class":29,"line":276},13,[27,278,279],{"class":79},"}\n",[10,281,282,283,286,287,290,291,294,295,298],{},"The cached value is the serializable ",[24,284,285],{},"{ status, ok, body }"," union. Declared ",[24,288,289],{},"404"," or ",[24,292,293],{},"422"," responses remain typed data, while transport failures reject. Await ",[24,296,297],{},"$endpoint(...)"," directly when native response headers are required.",[10,300,301],{},"The key includes the route method, path, and a stable serialization of the request input. Ordinary headers and credentials are excluded. The query function captures Nuxt's request-aware fetcher when the request object is created, so incoming cookies reach relative internal routes during SSR.",[111,303,305],{"id":304},"mutations","Mutations",[10,307,308,120,311,86,314,86,317,320,321,128],{},[24,309,310],{},"mutationOptions()",[24,312,313],{},"POST",[24,315,316],{},"PUT",[24,318,319],{},"PATCH",", and ",[24,322,323],{},"DELETE",[17,325,327],{"className":53,"code":326,"language":55,"meta":22,"style":22},"import { useMutation } from '@pinia\u002Fcolada'\nimport { mutationOptions } from '#endpoints\u002Fcolada'\n\nconst createPayment = useMutation(\n  mutationOptions(\n    $endpoint('\u002Fapi\u002Fpayments', {\n      method: 'post',\n      body: { amount: 1000 },\n    }),\n  ),\n)\n\ncreatePayment.mutate()\n",[24,328,329,340,351,355,370,377,389,399,409,414,419,424,428],{"__ignoreMap":22},[27,330,331,333,336,338],{"class":29,"line":30},[27,332,138],{"class":62},[27,334,335],{"class":79}," { useMutation } ",[27,337,144],{"class":62},[27,339,147],{"class":37},[27,341,342,344,347,349],{"class":29,"line":76},[27,343,138],{"class":62},[27,345,346],{"class":79}," { mutationOptions } ",[27,348,144],{"class":62},[27,350,159],{"class":37},[27,352,353],{"class":29,"line":103},[27,354,165],{"emptyLinePlaceholder":164},[27,356,357,359,362,364,367],{"class":29,"line":168},[27,358,171],{"class":62},[27,360,361],{"class":174}," createPayment",[27,363,178],{"class":62},[27,365,366],{"class":69}," useMutation",[27,368,369],{"class":79},"(\n",[27,371,372,375],{"class":29,"line":193},[27,373,374],{"class":69},"  mutationOptions",[27,376,369],{"class":79},[27,378,379,382,384,387],{"class":29,"line":204},[27,380,381],{"class":69},"    $endpoint",[27,383,184],{"class":79},[27,385,386],{"class":37},"'\u002Fapi\u002Fpayments'",[27,388,190],{"class":79},[27,390,391,394,397],{"class":29,"line":216},[27,392,393],{"class":79},"      method: ",[27,395,396],{"class":37},"'post'",[27,398,100],{"class":79},[27,400,401,404,407],{"class":29,"line":221},[27,402,403],{"class":79},"      body: { amount: ",[27,405,406],{"class":174},"1000",[27,408,213],{"class":79},[27,410,411],{"class":29,"line":226},[27,412,413],{"class":79},"    }),\n",[27,415,416],{"class":29,"line":247},[27,417,418],{"class":79},"  ),\n",[27,420,421],{"class":29,"line":252},[27,422,423],{"class":79},")\n",[27,425,426],{"class":29,"line":270},[27,427,165],{"emptyLinePlaceholder":164},[27,429,430,433,436],{"class":29,"line":276},[27,431,432],{"class":79},"createPayment.",[27,434,435],{"class":69},"mutate",[27,437,438],{"class":79},"()\n",[10,440,441],{},"One request object represents one logical mutation. Its automatically generated idempotency key remains fixed whenever that mutation is executed again. Create a new request object for a separate logical action.",[10,443,444,445,448],{},"When each ",[24,446,447],{},"mutate(...)"," call supplies different variables, create the endpoint request inside a normal Colada mutation function. Each invocation then receives a new idempotency key:",[17,450,452],{"className":53,"code":451,"language":55,"meta":22,"style":22},"const createUser = useMutation({\n  mutation: async (name: string) => {\n    const result = await $endpoint('\u002Fapi\u002Fusers', {\n      method: 'post',\n      body: { name },\n    })\n    if (!result.ok) throw result.body\n    return result.body\n  },\n})\n",[24,453,454,467,499,521,529,534,539,558,565,570],{"__ignoreMap":22},[27,455,456,458,461,463,465],{"class":29,"line":30},[27,457,171],{"class":62},[27,459,460],{"class":174}," createUser",[27,462,178],{"class":62},[27,464,366],{"class":69},[27,466,73],{"class":79},[27,468,469,472,475,478,481,484,487,490,493,496],{"class":29,"line":76},[27,470,471],{"class":69},"  mutation",[27,473,474],{"class":79},": ",[27,476,477],{"class":62},"async",[27,479,480],{"class":79}," (",[27,482,483],{"class":33},"name",[27,485,486],{"class":62},":",[27,488,489],{"class":174}," string",[27,491,492],{"class":79},") ",[27,494,495],{"class":62},"=>",[27,497,498],{"class":79}," {\n",[27,500,501,504,507,509,512,514,516,519],{"class":29,"line":103},[27,502,503],{"class":62},"    const",[27,505,506],{"class":174}," result",[27,508,178],{"class":62},[27,510,511],{"class":62}," await",[27,513,181],{"class":69},[27,515,184],{"class":79},[27,517,518],{"class":37},"'\u002Fapi\u002Fusers'",[27,520,190],{"class":79},[27,522,523,525,527],{"class":29,"line":168},[27,524,393],{"class":79},[27,526,396],{"class":37},[27,528,100],{"class":79},[27,530,531],{"class":29,"line":193},[27,532,533],{"class":79},"      body: { name },\n",[27,535,536],{"class":29,"line":204},[27,537,538],{"class":79},"    })\n",[27,540,541,544,546,549,552,555],{"class":29,"line":216},[27,542,543],{"class":62},"    if",[27,545,480],{"class":79},[27,547,548],{"class":62},"!",[27,550,551],{"class":79},"result.ok) ",[27,553,554],{"class":62},"throw",[27,556,557],{"class":79}," result.body\n",[27,559,560,563],{"class":29,"line":221},[27,561,562],{"class":62},"    return",[27,564,557],{"class":79},[27,566,567],{"class":29,"line":226},[27,568,569],{"class":79},"  },\n",[27,571,572],{"class":29,"line":247},[27,573,106],{"class":79},[10,575,576,577,580,581,583],{},"Use the ",[24,578,579],{},"key"," returned by ",[24,582,119],{}," with the Colada query cache:",[17,585,587],{"className":53,"code":586,"language":55,"meta":22,"style":22},"import { useQueryCache } from '@pinia\u002Fcolada'\nimport { queryOptions } from '#endpoints\u002Fcolada'\n\nconst queryCache = useQueryCache()\nconst usersRequest = $endpoint('\u002Fapi\u002Fusers', { method: 'get' })\n\nawait queryCache.invalidateQueries({\n  key: queryOptions(usersRequest).key,\n})\n",[24,588,589,600,610,614,628,651,655,668,678],{"__ignoreMap":22},[27,590,591,593,596,598],{"class":29,"line":30},[27,592,138],{"class":62},[27,594,595],{"class":79}," { useQueryCache } ",[27,597,144],{"class":62},[27,599,147],{"class":37},[27,601,602,604,606,608],{"class":29,"line":76},[27,603,138],{"class":62},[27,605,154],{"class":79},[27,607,144],{"class":62},[27,609,159],{"class":37},[27,611,612],{"class":29,"line":103},[27,613,165],{"emptyLinePlaceholder":164},[27,615,616,618,621,623,626],{"class":29,"line":168},[27,617,171],{"class":62},[27,619,620],{"class":174}," queryCache",[27,622,178],{"class":62},[27,624,625],{"class":69}," useQueryCache",[27,627,438],{"class":79},[27,629,630,632,635,637,639,641,643,646,648],{"class":29,"line":193},[27,631,171],{"class":62},[27,633,634],{"class":174}," usersRequest",[27,636,178],{"class":62},[27,638,181],{"class":69},[27,640,184],{"class":79},[27,642,518],{"class":37},[27,644,645],{"class":79},", { method: ",[27,647,199],{"class":37},[27,649,650],{"class":79}," })\n",[27,652,653],{"class":29,"line":204},[27,654,165],{"emptyLinePlaceholder":164},[27,656,657,660,663,666],{"class":29,"line":216},[27,658,659],{"class":62},"await",[27,661,662],{"class":79}," queryCache.",[27,664,665],{"class":69},"invalidateQueries",[27,667,73],{"class":79},[27,669,670,673,675],{"class":29,"line":221},[27,671,672],{"class":79},"  key: ",[27,674,241],{"class":69},[27,676,677],{"class":79},"(usersRequest).key,\n",[27,679,680],{"class":29,"line":226},[27,681,106],{"class":79},[111,683,685],{"id":684},"cursor-pagination","Cursor pagination",[10,687,688,689,124,692,695],{},"Declare the item schema once in the server contract. Nuxt Endpoints generates\nthe optional ",[24,690,691],{},"cursor",[24,693,694],{},"limit"," query, the typed page response, runtime\nvalidation, and OpenAPI from it:",[17,697,699],{"className":53,"code":698,"language":55,"meta":22,"style":22},"export default defineRouteHandler({\n  pagination: {\n    kind: 'cursor',\n    item: Article,\n  },\n  handler: ({ validated }) => {\n    return listArticles(validated.query)\n    \u002F\u002F { items: Article[], nextCursor?: string }\n  },\n})\n",[24,700,701,712,717,727,732,739,757,767,773,779],{"__ignoreMap":22},[27,702,703,705,707,710],{"class":29,"line":30},[27,704,63],{"class":62},[27,706,66],{"class":62},[27,708,709],{"class":69}," defineRouteHandler",[27,711,73],{"class":33},[27,713,714],{"class":29,"line":76},[27,715,716],{"class":79},"  pagination: {\n",[27,718,719,722,725],{"class":29,"line":103},[27,720,721],{"class":79},"    kind: ",[27,723,724],{"class":37},"'cursor'",[27,726,100],{"class":79},[27,728,729],{"class":29,"line":168},[27,730,731],{"class":79},"    item: Article,\n",[27,733,734,737],{"class":29,"line":193},[27,735,736],{"class":79},"  }",[27,738,100],{"class":33},[27,740,741,744,747,750,753,755],{"class":29,"line":204},[27,742,743],{"class":69},"  handler",[27,745,746],{"class":79},": ({ ",[27,748,749],{"class":33},"validated",[27,751,752],{"class":79}," }) ",[27,754,495],{"class":62},[27,756,498],{"class":79},[27,758,759,761,764],{"class":29,"line":216},[27,760,562],{"class":62},[27,762,763],{"class":69}," listArticles",[27,765,766],{"class":79},"(validated.query)\n",[27,768,769],{"class":29,"line":221},[27,770,772],{"class":771},"sA0OV","    \u002F\u002F { items: Article[], nextCursor?: string }\n",[27,774,775,777],{"class":29,"line":226},[27,776,736],{"class":79},[27,778,100],{"class":33},[27,780,781],{"class":29,"line":247},[27,782,106],{"class":33},[10,784,785,786,789],{},"Pass the resulting request to Pinia Colada without wiring ",[24,787,788],{},"pageParam"," by hand:",[17,791,793],{"className":53,"code":792,"language":55,"meta":22,"style":22},"import { useInfiniteQuery } from '@pinia\u002Fcolada'\nimport { infiniteQueryOptions } from '#endpoints\u002Fcolada'\n\nconst articles = useInfiniteQuery(\n  infiniteQueryOptions(\n    $endpoint('\u002Fapi\u002Farticles', {\n      method: 'get',\n      query: { limit: 20 },\n    }),\n  ),\n)\n",[24,794,795,806,817,821,835,842,853,861,871,875,879],{"__ignoreMap":22},[27,796,797,799,802,804],{"class":29,"line":30},[27,798,138],{"class":62},[27,800,801],{"class":79}," { useInfiniteQuery } ",[27,803,144],{"class":62},[27,805,147],{"class":37},[27,807,808,810,813,815],{"class":29,"line":76},[27,809,138],{"class":62},[27,811,812],{"class":79}," { infiniteQueryOptions } ",[27,814,144],{"class":62},[27,816,159],{"class":37},[27,818,819],{"class":29,"line":103},[27,820,165],{"emptyLinePlaceholder":164},[27,822,823,825,828,830,833],{"class":29,"line":168},[27,824,171],{"class":62},[27,826,827],{"class":174}," articles",[27,829,178],{"class":62},[27,831,832],{"class":69}," useInfiniteQuery",[27,834,369],{"class":79},[27,836,837,840],{"class":29,"line":193},[27,838,839],{"class":69},"  infiniteQueryOptions",[27,841,369],{"class":79},[27,843,844,846,848,851],{"class":29,"line":204},[27,845,381],{"class":69},[27,847,184],{"class":79},[27,849,850],{"class":37},"'\u002Fapi\u002Farticles'",[27,852,190],{"class":79},[27,854,855,857,859],{"class":29,"line":216},[27,856,393],{"class":79},[27,858,199],{"class":37},[27,860,100],{"class":79},[27,862,863,866,869],{"class":29,"line":221},[27,864,865],{"class":79},"      query: { limit: ",[27,867,868],{"class":174},"20",[27,870,213],{"class":79},[27,872,873],{"class":29,"line":226},[27,874,413],{"class":79},[27,876,877],{"class":29,"line":247},[27,878,418],{"class":79},[27,880,881],{"class":29,"line":252},[27,882,423],{"class":79},[10,884,885,886,86,888,86,890,320,893,896,897,900],{},"The default fields are ",[24,887,691],{},[24,889,694],{},[24,891,892],{},"items",[24,894,895],{},"nextCursor",". The limit\ndefaults to 20 and is bounded at 100. ",[24,898,899],{},"infiniteQueryOptions()"," only accepts a\nGET request whose server contract declares pagination.",[10,902,903,904,907,908,910],{},"Pagination owns these query fields and response status 200. Do not repeat them\nin ",[24,905,906],{},"validate","; duplicate declarations fail TypeScript and Nuxt build checks.\nAdditional filters and other response statuses remain ordinary ",[24,909,906],{},"\nentries.",[10,912,913,914,917,918,921,922,924],{},"A non-200 page is not cached as page data. It rejects with a typed\n",[24,915,916],{},"EndpointPaginationError","; its optional ",[24,919,920],{},"result"," retains the endpoint's\nstatus-discriminated response union. ",[24,923,920],{}," is undefined when the request\nfailed before receiving an HTTP response:",[17,926,928],{"className":53,"code":927,"language":55,"meta":22,"style":22},"const failure = articles.error.value?.result\n\nif (failure?.status === 429) {\n  \u002F\u002F failure.body is the route's declared 429 body\n}\n",[24,929,930,942,946,960,965],{"__ignoreMap":22},[27,931,932,934,937,939],{"class":29,"line":30},[27,933,171],{"class":62},[27,935,936],{"class":174}," failure",[27,938,178],{"class":62},[27,940,941],{"class":79}," articles.error.value?.result\n",[27,943,944],{"class":29,"line":76},[27,945,165],{"emptyLinePlaceholder":164},[27,947,948,950,953,955,958],{"class":29,"line":103},[27,949,255],{"class":62},[27,951,952],{"class":79}," (failure?.status ",[27,954,261],{"class":62},[27,956,957],{"class":174}," 429",[27,959,267],{"class":79},[27,961,962],{"class":29,"line":168},[27,963,964],{"class":771},"  \u002F\u002F failure.body is the route's declared 429 body\n",[27,966,967],{"class":29,"line":193},[27,968,279],{"class":79},[111,970,972],{"id":971},"ssr","SSR",[10,974,975,976,979],{},"With ",[24,977,978],{},"@pinia\u002Fcolada-nuxt",", queries created during component setup are automatically prefetched during SSR and hydrated in the browser:",[17,981,985],{"className":982,"code":983,"language":984,"meta":22,"style":22},"language-vue shiki shiki-themes github-light-default github-dark-default","\u003Cscript setup lang=\"ts\">\nimport { useQuery } from '@pinia\u002Fcolada'\nimport { queryOptions } from '#endpoints\u002Fcolada'\n\nconst user = useQuery(\n  queryOptions(\n    $endpoint('\u002Fapi\u002Fusers\u002F:id', {\n      method: 'get',\n      params: { id: '123' },\n    }),\n  ),\n)\n\u003C\u002Fscript>\n","vue",[24,986,987,1011,1021,1031,1035,1047,1054,1064,1072,1081,1085,1089,1093],{"__ignoreMap":22},[27,988,989,992,996,999,1002,1005,1008],{"class":29,"line":30},[27,990,991],{"class":79},"\u003C",[27,993,995],{"class":994},"snZHK","script",[27,997,998],{"class":174}," setup",[27,1000,1001],{"class":174}," lang",[27,1003,1004],{"class":79},"=",[27,1006,1007],{"class":37},"\"ts\"",[27,1009,1010],{"class":79},">\n",[27,1012,1013,1015,1017,1019],{"class":29,"line":76},[27,1014,138],{"class":62},[27,1016,141],{"class":79},[27,1018,144],{"class":62},[27,1020,147],{"class":37},[27,1022,1023,1025,1027,1029],{"class":29,"line":103},[27,1024,138],{"class":62},[27,1026,154],{"class":79},[27,1028,144],{"class":62},[27,1030,159],{"class":37},[27,1032,1033],{"class":29,"line":168},[27,1034,165],{"emptyLinePlaceholder":164},[27,1036,1037,1039,1041,1043,1045],{"class":29,"line":193},[27,1038,171],{"class":62},[27,1040,231],{"class":174},[27,1042,178],{"class":62},[27,1044,236],{"class":69},[27,1046,369],{"class":79},[27,1048,1049,1052],{"class":29,"line":204},[27,1050,1051],{"class":69},"  queryOptions",[27,1053,369],{"class":79},[27,1055,1056,1058,1060,1062],{"class":29,"line":216},[27,1057,381],{"class":69},[27,1059,184],{"class":79},[27,1061,187],{"class":37},[27,1063,190],{"class":79},[27,1065,1066,1068,1070],{"class":29,"line":221},[27,1067,393],{"class":79},[27,1069,199],{"class":37},[27,1071,100],{"class":79},[27,1073,1074,1077,1079],{"class":29,"line":226},[27,1075,1076],{"class":79},"      params: { id: ",[27,1078,210],{"class":37},[27,1080,213],{"class":79},[27,1082,1083],{"class":29,"line":247},[27,1084,413],{"class":79},[27,1086,1087],{"class":29,"line":252},[27,1088,418],{"class":79},[27,1090,1091],{"class":29,"line":270},[27,1092,423],{"class":79},[27,1094,1095,1098,1100],{"class":29,"line":276},[27,1096,1097],{"class":79},"\u003C\u002F",[27,1099,995],{"class":994},[27,1101,1010],{"class":79},[10,1103,1104,1105,1108],{},"Construct requests inside component setup, a Nuxt plugin, or route middleware—not at module scope—so each server request captures its own credentials. Configure cache defaults and plugins through Pinia Colada's standard ",[24,1106,1107],{},"colada.options.ts"," file.",[1110,1111,1112],"style",{},"html pre.shiki code .sVS1I, html code.shiki .sVS1I{--shiki-light:#953800;--shiki-dark:#FFA657}html pre.shiki code .sZItA, html code.shiki .sZItA{--shiki-light:#0A3069;--shiki-dark:#A5D6FF}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 .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 .swxxe, html code.shiki .swxxe{--shiki-light:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .s9HWX, html code.shiki .s9HWX{--shiki-light:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .saQ_J, html code.shiki .saQ_J{--shiki-light:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sOOdx, html code.shiki .sOOdx{--shiki-light:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sA0OV, html code.shiki .sA0OV{--shiki-light:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .snZHK, html code.shiki .snZHK{--shiki-light:#116329;--shiki-dark:#7EE787}",{"title":22,"searchDepth":76,"depth":76,"links":1114},[1115,1116,1117,1118],{"id":113,"depth":76,"text":114},{"id":304,"depth":76,"text":305},{"id":684,"depth":76,"text":685},{"id":971,"depth":76,"text":972},"Use typed endpoint request objects as Pinia Colada queries and mutations with its official Nuxt integration.","md",{},"\u002Fdocs\u002Fpinia-colada",{"title":5,"description":1119},"docs\u002Fpinia-colada","hWM_78jgfgMt-UtqlWs8_z4e0GS1knIDptLuWiPe2gs",{"left":1127,"top":1127,"width":1128,"height":1128,"rotate":1127,"vFlip":1129,"hFlip":1129,"body":1130},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":1127,"top":1127,"width":1128,"height":1128,"rotate":1127,"vFlip":1129,"hFlip":1129,"body":1132,"hidden":164},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5c.08-1.25-.27-2.48-1-3.5c.28-1.15.28-2.35 0-3.5c0 0-1 0-3 1.5c-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5c-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4\"\u002F>\u003Cpath d=\"M9 18c-4.51 2-5-2-7-2\"\u002F>\u003C\u002Fg>",{"left":1127,"top":1127,"width":1128,"height":1128,"rotate":1127,"vFlip":1129,"hFlip":1129,"body":1134},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",1788637107569]