[{"data":1,"prerenderedAt":1067},["ShallowReactive",2],{"page:\u002Fextensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Fguides\u002Fquery-keys":3},{"id":4,"frontmatter":5,"title":6,"heading":6,"body":7,"path":1066,"source":4},"extensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Fguides\u002Fquery-keys.md",{},"TanStack Query keys",{"type":8,"value":9,"toc":1057},"minimark",[10,14,19,43,446,492,496,502,512,516,522,546,550,568,673,677,691,698,1033,1049],[11,12,13],"p",{},"See the query key each generated Vue Query composable uses, invalidate or read the cache with it, and add your own prefix to the default key.",[15,16,18],"h2",{"id":17},"the-default-query-key","The default query key",[11,20,21,22,26,27,30,31,34,35,38,39,42],{},"When you call ",[23,24,25],"code",{},"invalidateQueries",", ",[23,28,29],{},"getQueryData",", or ",[23,32,33],{},"setQueryData",", take the key from the ",[23,36,37],{},"\u003Coperation>QueryKey"," helper in each composable file. It builds ",[23,40,41],{},"[{ url, params }, query, body]",":",[44,45,46,294],"code-group",{},[47,48,53],"pre",{"language":49,"filename":50,"code":51,"class":52},"typescript","Generated","\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseGetPetById.ts\nexport const getPetByIdQueryKey = ({ path }: { path: MaybeRefOrGetter\u003COmit\u003CGetPetByIdOptions, 'headers'>['path']> }) =>\n  [{ url: '\u002Fpet\u002F:petId', params: path }] as const\n\n\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseFindPetsByTags.ts\nexport const findPetsByTagsQueryKey = ({ query }: { query?: MaybeRefOrGetter\u003COmit\u003CFindPetsByTagsOptions, 'headers'>['query']> } = {}) =>\n  [{ url: '\u002Fpet\u002FfindByTags' }, ...(query ? [query] : [])] as const","highlights",[23,54,56,65,66,65,145,65,179,65,181,65,186,65,250],{"class":55},"language-typescript",[57,58,61],"span",{"class":59,"style":60},"line","display: inline",[57,62,64],{"style":63},"color:#6a737d;--hls-dark:#6a737d","\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseGetPetById.ts","\n",[57,67,68,72,75,79,82,86,89,92,95,98,101,103,107,110,113,115,118,120,124,127,130,133,136,139,142],{"class":59,"style":60},[57,69,71],{"style":70},"color:#d73a49;--hls-dark:#f97583","export ",[57,73,74],{"style":70},"const ",[57,76,78],{"style":77},"color:#24292e;--hls-dark:#e1e4e8","getPetByIdQueryKey ",[57,80,81],{"style":70},"= ",[57,83,85],{"style":84},"color:#005cc5;--hls-dark:#79b8ff","({ ",[57,87,88],{"style":77},"path ",[57,90,91],{"style":84},"}",[57,93,94],{"style":70},": ",[57,96,97],{"style":84},"{ ",[57,99,100],{"style":84},"path",[57,102,94],{"style":77},[57,104,106],{"style":105},"color:#6f42c1;--hls-dark:#b392f0","MaybeRefOrGetter",[57,108,109],{"style":70},"\u003C",[57,111,112],{"style":105},"Omit",[57,114,109],{"style":70},[57,116,117],{"style":105},"GetPetByIdOptions",[57,119,26],{"style":70},[57,121,123],{"style":122},"color:#032f62;--hls-dark:#9ecbff","'headers'",[57,125,126],{"style":70},">",[57,128,129],{"style":84},"[",[57,131,132],{"style":122},"'path'",[57,134,135],{"style":84},"]",[57,137,138],{"style":70},"> ",[57,140,141],{"style":84},"}) ",[57,143,144],{"style":70},"=>",[57,146,147,150,153,156,158,161,163,166,168,170,173,176],{"class":59,"style":60},[57,148,149],{"style":70},"  ",[57,151,152],{"style":84},"[{ ",[57,154,155],{"style":84},"url",[57,157,94],{"style":70},[57,159,160],{"style":122},"'\u002Fpet\u002F:petId'",[57,162,26],{"style":70},[57,164,165],{"style":84},"params",[57,167,94],{"style":70},[57,169,88],{"style":77},[57,171,172],{"style":84},"}] ",[57,174,175],{"style":70},"as ",[57,177,178],{"style":70},"const",[57,180],{"class":59,"style":60},[57,182,183],{"class":59,"style":60},[57,184,185],{"style":63},"\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseFindPetsByTags.ts",[57,187,188,190,192,195,197,199,202,204,206,208,211,214,216,218,220,222,225,227,229,231,233,236,238,240,243,245,248],{"class":59,"style":60},[57,189,71],{"style":70},[57,191,74],{"style":70},[57,193,194],{"style":77},"findPetsByTagsQueryKey ",[57,196,81],{"style":70},[57,198,85],{"style":84},[57,200,201],{"style":77},"query ",[57,203,91],{"style":84},[57,205,94],{"style":70},[57,207,97],{"style":84},[57,209,210],{"style":84},"query",[57,212,213],{"style":77},"?: ",[57,215,106],{"style":105},[57,217,109],{"style":70},[57,219,112],{"style":105},[57,221,109],{"style":70},[57,223,224],{"style":105},"FindPetsByTagsOptions",[57,226,26],{"style":70},[57,228,123],{"style":122},[57,230,126],{"style":70},[57,232,129],{"style":84},[57,234,235],{"style":122},"'query'",[57,237,135],{"style":84},[57,239,138],{"style":70},[57,241,242],{"style":84},"} ",[57,244,81],{"style":70},[57,246,247],{"style":84},"{}) ",[57,249,144],{"style":70},[57,251,252,254,256,258,260,263,265,267,270,273,275,278,280,282,285,287,290,292],{"class":59,"style":60},[57,253,149],{"style":70},[57,255,152],{"style":84},[57,257,155],{"style":84},[57,259,94],{"style":70},[57,261,262],{"style":122},"'\u002Fpet\u002FfindByTags' ",[57,264,91],{"style":84},[57,266,26],{"style":70},[57,268,269],{"style":70},"...",[57,271,272],{"style":84},"(",[57,274,201],{"style":77},[57,276,277],{"style":70},"? ",[57,279,129],{"style":84},[57,281,210],{"style":77},[57,283,284],{"style":84},"] ",[57,286,94],{"style":70},[57,288,289],{"style":84},"[])] ",[57,291,175],{"style":70},[57,293,178],{"style":70},[47,295,298],{"language":49,"filename":296,"code":297,"class":52},"Usage","import { getPetByIdQueryKey } from '.\u002Fgen\u002Fhooks\u002FuseGetPetById'\nimport { findPetsByTagsQueryKey } from '.\u002Fgen\u002Fhooks\u002FuseFindPetsByTags'\nimport { queryClient } from '.\u002FqueryClient'\n\ngetPetByIdQueryKey({ path: { petId: 1 } }) \u002F\u002F [{ url: '\u002Fpet\u002F:petId', params: { petId: 1 } }]\nfindPetsByTagsQueryKey({ query: { tags: ['dog'] } }) \u002F\u002F [{ url: '\u002Fpet\u002FfindByTags' }, { tags: ['dog'] }]\n\nconst pet = queryClient.getQueryData(getPetByIdQueryKey({ path: { petId: 1 } }))",[23,299,300,65,317,65,332,65,348,65,350,65,377,65,406,65,408],{"class":55},[57,301,302,305,307,309,311,314],{"class":59,"style":60},[57,303,304],{"style":70},"import ",[57,306,97],{"style":84},[57,308,78],{"style":77},[57,310,242],{"style":84},[57,312,313],{"style":70},"from ",[57,315,316],{"style":122},"'.\u002Fgen\u002Fhooks\u002FuseGetPetById'",[57,318,319,321,323,325,327,329],{"class":59,"style":60},[57,320,304],{"style":70},[57,322,97],{"style":84},[57,324,194],{"style":77},[57,326,242],{"style":84},[57,328,313],{"style":70},[57,330,331],{"style":122},"'.\u002Fgen\u002Fhooks\u002FuseFindPetsByTags'",[57,333,334,336,338,341,343,345],{"class":59,"style":60},[57,335,304],{"style":70},[57,337,97],{"style":84},[57,339,340],{"style":77},"queryClient ",[57,342,242],{"style":84},[57,344,313],{"style":70},[57,346,347],{"style":122},"'.\u002FqueryClient'",[57,349],{"class":59,"style":60},[57,351,352,355,357,359,361,363,366,368,371,374],{"class":59,"style":60},[57,353,354],{"style":105},"getPetByIdQueryKey",[57,356,85],{"style":84},[57,358,100],{"style":84},[57,360,94],{"style":70},[57,362,97],{"style":84},[57,364,365],{"style":84},"petId",[57,367,94],{"style":70},[57,369,370],{"style":84},"1 ",[57,372,373],{"style":84},"} }) ",[57,375,376],{"style":63},"\u002F\u002F [{ url: '\u002Fpet\u002F:petId', params: { petId: 1 } }]",[57,378,379,382,384,386,388,390,393,395,397,400,403],{"class":59,"style":60},[57,380,381],{"style":105},"findPetsByTagsQueryKey",[57,383,85],{"style":84},[57,385,210],{"style":84},[57,387,94],{"style":70},[57,389,97],{"style":84},[57,391,392],{"style":84},"tags",[57,394,94],{"style":70},[57,396,129],{"style":84},[57,398,399],{"style":122},"'dog'",[57,401,402],{"style":84},"] } }) ",[57,404,405],{"style":63},"\u002F\u002F [{ url: '\u002Fpet\u002FfindByTags' }, { tags: ['dog'] }]",[57,407],{"class":59,"style":60},[57,409,410,412,415,417,420,423,425,427,429,431,433,435,437,439,441,443],{"class":59,"style":60},[57,411,74],{"style":70},[57,413,414],{"style":77},"pet ",[57,416,81],{"style":70},[57,418,419],{"style":77},"queryClient",[57,421,422],{"style":70},".",[57,424,29],{"style":105},[57,426,272],{"style":84},[57,428,354],{"style":105},[57,430,85],{"style":84},[57,432,100],{"style":84},[57,434,94],{"style":70},[57,436,97],{"style":84},[57,438,365],{"style":84},[57,440,94],{"style":70},[57,442,370],{"style":84},[57,444,445],{"style":84},"} }))",[447,448,449,461,466,475,478,485],"ul",{},[450,451,452,454,455,458,459,422],"li",{},[23,453,155],{}," is the spec path with ",[23,456,457],{},":name"," placeholders, such as ",[23,460,160],{},[450,462,463,465],{},[23,464,165],{}," holds the path parameters, when the path has any.",[450,467,468,470,471,474],{},[23,469,210],{}," and ",[23,472,473],{},"body"," follow when the operation has them and the call passes them.",[450,476,477],{},"Headers and cookies stay out of the key.",[450,479,480,481,484],{},"Infinite variants add ",[23,482,483],{},"infinite: true"," to the first entry, so they never share a cache entry with the plain query.",[450,486,487,488,491],{},"Each composable returns the key it used as ",[23,489,490],{},"queryKey"," on its result.",[15,493,495],{"id":494},"keys-with-refs-and-getters","Keys with refs and getters",[11,497,498,499,501],{},"When you pass a ref or a getter to a composable, the key holds it as passed. Vue Query unwraps refs and getters inside ",[23,500,490],{},", so a change updates the key and fetches again.",[503,504,506,507,470,509,511],"blockquote",{"as":505},"note","",[23,508,29],{},[23,510,33],{}," take the key array itself and do not unwrap getters. Pass plain values or refs to the key helper there.",[15,513,515],{"id":514},"invalidate-every-call-of-an-operation","Invalidate every call of an operation",[11,517,518,519,521],{},"TanStack Query matches a key by its prefix, and an object entry by the fields you pass. A key built without ",[23,520,210],{}," matches every cached call of that operation with the same path parameters, infinite ones included:",[47,523,525],{"language":49,"code":524,"class":52},"queryClient.invalidateQueries({ queryKey: findPetsByTagsQueryKey() })",[23,526,527],{"class":55},[57,528,529,531,533,535,537,539,541,543],{"class":59,"style":60},[57,530,419],{"style":77},[57,532,422],{"style":70},[57,534,25],{"style":105},[57,536,85],{"style":84},[57,538,490],{"style":84},[57,540,94],{"style":70},[57,542,381],{"style":105},[57,544,545],{"style":84},"() })",[15,547,549],{"id":548},"mutation-keys","Mutation keys",[11,551,552,553,556,557,560,561,564,565,42],{},"Each mutation gets a ",[23,554,555],{},"\u003Coperation>MutationKey"," helper that returns ",[23,558,559],{},"[{ url }]",", for filters such as ",[23,562,563],{},"useIsMutating"," or ",[23,566,567],{},"useMutationState",[44,569,570,612],{},[47,571,573],{"language":49,"filename":50,"code":572,"class":52},"\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseUpdatePet.ts\nexport const updatePetMutationKey = () => [{ url: '\u002Fpet' }] as const",[23,574,575,65,580],{"class":55},[57,576,577],{"class":59,"style":60},[57,578,579],{"style":63},"\u002F\u002F src\u002Fgen\u002Fhooks\u002FuseUpdatePet.ts",[57,581,582,584,586,589,591,594,597,599,601,603,606,608,610],{"class":59,"style":60},[57,583,71],{"style":70},[57,585,74],{"style":70},[57,587,588],{"style":77},"updatePetMutationKey ",[57,590,81],{"style":70},[57,592,593],{"style":84},"() ",[57,595,596],{"style":70},"=> ",[57,598,152],{"style":84},[57,600,155],{"style":84},[57,602,94],{"style":70},[57,604,605],{"style":122},"'\u002Fpet' ",[57,607,172],{"style":84},[57,609,175],{"style":70},[57,611,178],{"style":70},[47,613,615],{"language":49,"filename":296,"code":614,"class":52},"import { useIsMutating } from '@tanstack\u002Fvue-query'\nimport { updatePetMutationKey } from '.\u002Fgen\u002Fhooks\u002FuseUpdatePet'\n\nconst saving = useIsMutating({ mutationKey: updatePetMutationKey() })",[23,616,617,65,633,65,648,65,650],{"class":55},[57,618,619,621,623,626,628,630],{"class":59,"style":60},[57,620,304],{"style":70},[57,622,97],{"style":84},[57,624,625],{"style":77},"useIsMutating ",[57,627,242],{"style":84},[57,629,313],{"style":70},[57,631,632],{"style":122},"'@tanstack\u002Fvue-query'",[57,634,635,637,639,641,643,645],{"class":59,"style":60},[57,636,304],{"style":70},[57,638,97],{"style":84},[57,640,588],{"style":77},[57,642,242],{"style":84},[57,644,313],{"style":70},[57,646,647],{"style":122},"'.\u002Fgen\u002Fhooks\u002FuseUpdatePet'",[57,649],{"class":59,"style":60},[57,651,652,654,657,659,661,663,666,668,671],{"class":59,"style":60},[57,653,74],{"style":70},[57,655,656],{"style":77},"saving ",[57,658,81],{"style":70},[57,660,563],{"style":105},[57,662,85],{"style":84},[57,664,665],{"style":84},"mutationKey",[57,667,94],{"style":70},[57,669,670],{"style":105},"updatePetMutationKey",[57,672,545],{"style":84},[15,674,676],{"id":675},"extend-the-default-key","Extend the default key",[11,678,679,680,686,687,690],{},"When you need your own entry, such as an API version, set ",[681,682,684],"a",{"href":683},"https:\u002F\u002Fkubb.dev\u002Fextensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Foptions#querykey",[23,685,490],{}," and spread ",[23,688,689],{},"queryKeyTransformer",". Do not read single entries of its result: they can change between releases.",[503,692,694,695,422],{"as":693},"warning","Returned strings are copied into the generated code as written. Wrap a string literal in ",[23,696,697],{},"JSON.stringify(...)",[44,699,700,943],{},[47,701,704],{"language":49,"filename":702,"code":703,"class":52},"kubb.config.ts","import { defineConfig } from 'kubb\u002Fconfig'\nimport { pluginTs } from '@kubb\u002Fplugin-ts'\nimport { pluginFetch } from '@kubb\u002Fplugin-fetch'\nimport { pluginVueQuery, queryKeyTransformer } from '@kubb\u002Fplugin-vue-query'\n\nexport default defineConfig({\n  input: '.\u002FpetStore.yaml',\n  output: { path: '.\u002Fsrc\u002Fgen' },\n  plugins: [\n    pluginTs(),\n    pluginFetch(),\n    pluginVueQuery({\n      queryKey: (props) => [JSON.stringify('v2'), ...queryKeyTransformer(props)],\n    }),\n  ],\n})",[23,705,706,65,722,65,738,65,754,65,775,65,777,65,790,65,805,65,827,65,838,65,851,65,862,65,870,65,922,65,931,65,939],{"class":55},[57,707,708,710,712,715,717,719],{"class":59,"style":60},[57,709,304],{"style":70},[57,711,97],{"style":84},[57,713,714],{"style":77},"defineConfig ",[57,716,242],{"style":84},[57,718,313],{"style":70},[57,720,721],{"style":122},"'kubb\u002Fconfig'",[57,723,724,726,728,731,733,735],{"class":59,"style":60},[57,725,304],{"style":70},[57,727,97],{"style":84},[57,729,730],{"style":77},"pluginTs ",[57,732,242],{"style":84},[57,734,313],{"style":70},[57,736,737],{"style":122},"'@kubb\u002Fplugin-ts'",[57,739,740,742,744,747,749,751],{"class":59,"style":60},[57,741,304],{"style":70},[57,743,97],{"style":84},[57,745,746],{"style":77},"pluginFetch ",[57,748,242],{"style":84},[57,750,313],{"style":70},[57,752,753],{"style":122},"'@kubb\u002Fplugin-fetch'",[57,755,756,758,760,763,765,768,770,772],{"class":59,"style":60},[57,757,304],{"style":70},[57,759,97],{"style":84},[57,761,762],{"style":77},"pluginVueQuery",[57,764,26],{"style":70},[57,766,767],{"style":77},"queryKeyTransformer ",[57,769,242],{"style":84},[57,771,313],{"style":70},[57,773,774],{"style":122},"'@kubb\u002Fplugin-vue-query'",[57,776],{"class":59,"style":60},[57,778,779,781,784,787],{"class":59,"style":60},[57,780,71],{"style":70},[57,782,783],{"style":70},"default ",[57,785,786],{"style":105},"defineConfig",[57,788,789],{"style":84},"({",[57,791,792,794,797,799,802],{"class":59,"style":60},[57,793,149],{"style":84},[57,795,796],{"style":84},"input",[57,798,94],{"style":70},[57,800,801],{"style":122},"'.\u002FpetStore.yaml'",[57,803,804],{"style":70},",",[57,806,807,809,812,814,816,818,820,823,825],{"class":59,"style":60},[57,808,149],{"style":70},[57,810,811],{"style":84},"output",[57,813,94],{"style":70},[57,815,97],{"style":84},[57,817,100],{"style":84},[57,819,94],{"style":70},[57,821,822],{"style":122},"'.\u002Fsrc\u002Fgen' ",[57,824,91],{"style":84},[57,826,804],{"style":70},[57,828,829,831,834,836],{"class":59,"style":60},[57,830,149],{"style":70},[57,832,833],{"style":84},"plugins",[57,835,94],{"style":70},[57,837,129],{"style":84},[57,839,840,843,846,849],{"class":59,"style":60},[57,841,842],{"style":84},"    ",[57,844,845],{"style":105},"pluginTs",[57,847,848],{"style":84},"()",[57,850,804],{"style":70},[57,852,853,855,858,860],{"class":59,"style":60},[57,854,842],{"style":70},[57,856,857],{"style":105},"pluginFetch",[57,859,848],{"style":84},[57,861,804],{"style":70},[57,863,864,866,868],{"class":59,"style":60},[57,865,842],{"style":70},[57,867,762],{"style":105},[57,869,789],{"style":84},[57,871,872,875,877,879,881,884,887,889,891,894,896,899,901,904,907,909,911,913,915,917,920],{"class":59,"style":60},[57,873,874],{"style":84},"      ",[57,876,490],{"style":84},[57,878,94],{"style":70},[57,880,272],{"style":84},[57,882,883],{"style":77},"props",[57,885,886],{"style":84},") ",[57,888,596],{"style":70},[57,890,129],{"style":84},[57,892,893],{"style":84},"JSON",[57,895,422],{"style":70},[57,897,898],{"style":105},"stringify",[57,900,272],{"style":84},[57,902,903],{"style":122},"'v2'",[57,905,906],{"style":84},")",[57,908,26],{"style":70},[57,910,269],{"style":70},[57,912,689],{"style":105},[57,914,272],{"style":84},[57,916,883],{"style":77},[57,918,919],{"style":84},")]",[57,921,804],{"style":70},[57,923,924,926,929],{"class":59,"style":60},[57,925,842],{"style":70},[57,927,928],{"style":84},"})",[57,930,804],{"style":70},[57,932,933,935,937],{"class":59,"style":60},[57,934,149],{"style":70},[57,936,135],{"style":84},[57,938,804],{"style":70},[57,940,941],{"class":59,"style":60},[57,942,928],{"style":84},[47,944,946],{"language":49,"filename":50,"code":945,"class":52},"export const getPetByIdQueryKey = ({ path }: { path: MaybeRefOrGetter\u003COmit\u003CGetPetByIdOptions, 'headers'>['path']> }) =>\n  [\"v2\", { url: '\u002Fpet\u002F:petId', params: path }] as const",[23,947,948,65,1000],{"class":55},[57,949,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998],{"class":59,"style":60},[57,951,71],{"style":70},[57,953,74],{"style":70},[57,955,78],{"style":77},[57,957,81],{"style":70},[57,959,85],{"style":84},[57,961,88],{"style":77},[57,963,91],{"style":84},[57,965,94],{"style":70},[57,967,97],{"style":84},[57,969,100],{"style":84},[57,971,94],{"style":77},[57,973,106],{"style":105},[57,975,109],{"style":70},[57,977,112],{"style":105},[57,979,109],{"style":70},[57,981,117],{"style":105},[57,983,26],{"style":70},[57,985,123],{"style":122},[57,987,126],{"style":70},[57,989,129],{"style":84},[57,991,132],{"style":122},[57,993,135],{"style":84},[57,995,138],{"style":70},[57,997,141],{"style":84},[57,999,144],{"style":70},[57,1001,1002,1004,1006,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031],{"class":59,"style":60},[57,1003,149],{"style":70},[57,1005,129],{"style":84},[57,1007,1008],{"style":122},"\"v2\"",[57,1010,26],{"style":70},[57,1012,97],{"style":84},[57,1014,155],{"style":84},[57,1016,94],{"style":70},[57,1018,160],{"style":122},[57,1020,26],{"style":70},[57,1022,165],{"style":84},[57,1024,94],{"style":70},[57,1026,88],{"style":77},[57,1028,172],{"style":84},[57,1030,175],{"style":70},[57,1032,178],{"style":70},[11,1034,1035,1036,1039,1040,1045,1046,422],{},"The builder also gets the ",[23,1037,1038],{},"variant",", so it can return a different key for infinite composables. ",[681,1041,1043],{"href":1042},"https:\u002F\u002Fkubb.dev\u002Fextensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Foptions#mutationkey",[23,1044,665],{}," works the same way with ",[23,1047,1048],{},"mutationKeyTransformer",[11,1050,1051,1052,1056],{},"Next, ",[681,1053,1055],{"href":1054},"https:\u002F\u002Fkubb.dev\u002Fextensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Fguides\u002Finfinite-queries","generate infinite queries"," for paginated endpoints.",{"title":506,"searchDepth":1058,"depth":1058,"links":1059},5,[1060,1062,1063,1064,1065],{"id":17,"depth":1061,"text":18},2,{"id":494,"depth":1061,"text":495},{"id":514,"depth":1061,"text":515},{"id":548,"depth":1061,"text":549},{"id":675,"depth":1061,"text":676},"\u002Fextensions\u002Fkubb-labs\u002Fplugin-vue-query\u002Fguides\u002Fquery-keys",1794776439377]