[{"data":1,"prerenderedAt":1997},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-usage":71,"-getting-started-usage-surround":1993},[4,34,58],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,14,18,22,26,30],{"title":11,"path":12,"stem":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration",{"title":19,"path":20,"stem":21},"Usage","\u002Fgetting-started\u002Fusage","1.getting-started\u002F4.usage",{"title":23,"path":24,"stem":25},"Visual Editing","\u002Fgetting-started\u002Fvisual-editing","1.getting-started\u002F5.visual-editing",{"title":27,"path":28,"stem":29},"Live Content","\u002Fgetting-started\u002Flive-content","1.getting-started\u002F6.live-content",{"title":31,"path":32,"stem":33},"Typegen","\u002Fgetting-started\u002Ftypegen","1.getting-started\u002F7.typegen",{"title":35,"icon":6,"path":36,"stem":37,"children":38,"page":6},"Helpers","\u002Fhelpers","2.helpers",[39,43,47,51,55],{"title":40,"path":41,"stem":42},"Portable Text","\u002Fhelpers\u002Fportable-text","2.helpers\u002F1.portable-text",{"title":44,"path":45,"stem":46},"Images","\u002Fhelpers\u002Fimages","2.helpers\u002F2.images",{"title":48,"path":49,"stem":50},"Files","\u002Fhelpers\u002Ffiles","2.helpers\u002F3.files",{"title":52,"path":53,"stem":54},"Groq","\u002Fhelpers\u002Fgroq","2.helpers\u002F4.groq",{"title":23,"path":56,"stem":57},"\u002Fhelpers\u002Fvisual-editing","2.helpers\u002F5.visual-editing",{"title":59,"icon":6,"path":60,"stem":61,"children":62,"page":6},"Community","\u002Fcommunity","3.community",[63,67],{"title":64,"path":65,"stem":66},"Credits","\u002Fcommunity\u002Fcredits","3.community\u002F1.credits",{"title":68,"path":69,"stem":70},"Changelog","\u002Fcommunity\u002Fchangelog","3.community\u002F2.changelog",{"id":72,"title":19,"body":73,"description":1987,"extension":1988,"links":1989,"meta":1990,"navigation":418,"path":20,"seo":1991,"stem":21,"__hash__":1992},"docs\u002F1.getting-started\u002F4.usage.md",{"type":74,"value":75,"toc":1976},"minimark",[76,84,104,108,123,133,143,148,243,248,324,338,545,564,579,583,590,685,700,704,711,784,791,794,804,807,814,824,836,840,846,853,861,864,1112,1116,1119,1274,1280,1283,1377,1382,1389,1543,1547,1558,1628,1632,1642,1645,1652,1833,1972],[77,78,79,83],"p",{},[80,81,82],"code",{},"@nuxtjs\u002Fsanity"," provides key composables to interact with data from your Sanity project.",[85,86,87,98],"ol",{},[88,89,90,93,94,97],"li",{},[80,91,92],{},"useSanityQuery"," and ",[80,95,96],{},"useLazySanityQuery",". These composables allow automatic fetching of Sanity queries.",[88,99,100,103],{},[80,101,102],{},"useSanity",". This is the most customisable way to access data from your Sanity project, and exposes a Sanity client you can use to perform fetches or more advanced patterns (like subscribing to updates).",[105,106,92],"h2",{"id":107},"usesanityquery",[77,109,110,111,114,115,122],{},"This is a data fetching composable that wraps ",[80,112,113],{},"useAsyncData"," from Nuxt (see ",[116,117,121],"a",{"href":118,"rel":119},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fdata-fetching#useasyncdata",[120],"nofollow","docs",").",[77,124,125,126,128,129,132],{},"The only mandatory argument is the query for it to fetch. You can also pass params, and an options object. In addition to the options you can pass to ",[80,127,113],{},", there is also a ",[80,130,131],{},"client"," option for specifying which configured Sanity client you would like to use.",[77,134,135,136,139,140,142],{},"If you pass any ref\u002Fcomputed parameters in ",[80,137,138],{},"params",", ",[80,141,92],{}," will automatically refetch the query when these parameters change.",[144,145,147],"h3",{"id":146},"example","Example",[149,150,155],"pre",{"className":151,"code":152,"language":153,"meta":154,"style":154},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const query = groq`*[_type == \"post\" && topic == $topic][0..10]`\nconst { data, refresh } = useSanityQuery(query, { topic: 'News' })\n","ts","",[80,156,157,188],{"__ignoreMap":154},[158,159,162,166,170,174,178,181,185],"span",{"class":160,"line":161},"line",1,[158,163,165],{"class":164},"spNyl","const",[158,167,169],{"class":168},"sTEyZ"," query ",[158,171,173],{"class":172},"sMK4o","=",[158,175,177],{"class":176},"s2Zo4"," groq",[158,179,180],{"class":172},"`",[158,182,184],{"class":183},"sfazB","*[_type == \"post\" && topic == $topic][0..10]",[158,186,187],{"class":172},"`\n",[158,189,191,193,196,199,202,205,208,211,214,217,219,221,225,228,231,234,237,240],{"class":160,"line":190},2,[158,192,165],{"class":164},[158,194,195],{"class":172}," {",[158,197,198],{"class":168}," data",[158,200,201],{"class":172},",",[158,203,204],{"class":168}," refresh ",[158,206,207],{"class":172},"}",[158,209,210],{"class":172}," =",[158,212,213],{"class":176}," useSanityQuery",[158,215,216],{"class":168},"(query",[158,218,201],{"class":172},[158,220,195],{"class":172},[158,222,224],{"class":223},"swJcz"," topic",[158,226,227],{"class":172},":",[158,229,230],{"class":172}," '",[158,232,233],{"class":183},"News",[158,235,236],{"class":172},"'",[158,238,239],{"class":172}," }",[158,241,242],{"class":168},")\n",[77,244,245,246,227],{},"You can also type the result of your query by passing a generic to ",[80,247,92],{},[149,249,251],{"className":151,"code":250,"language":153,"meta":154,"style":154},"\u002F\u002F data will be typed as Ref\u003CPost | null>\nconst query = groq`*[_type == \"post\" && topic == $topic][0..10]`\nconst { data, refresh } = useSanityQuery\u003CPost>(query, { topic: 'News' })\n",[80,252,253,259,275],{"__ignoreMap":154},[158,254,255],{"class":160,"line":161},[158,256,258],{"class":257},"sHwdD","\u002F\u002F data will be typed as Ref\u003CPost | null>\n",[158,260,261,263,265,267,269,271,273],{"class":160,"line":190},[158,262,165],{"class":164},[158,264,169],{"class":168},[158,266,173],{"class":172},[158,268,177],{"class":176},[158,270,180],{"class":172},[158,272,184],{"class":183},[158,274,187],{"class":172},[158,276,278,280,282,284,286,288,290,292,294,297,301,304,306,308,310,312,314,316,318,320,322],{"class":160,"line":277},3,[158,279,165],{"class":164},[158,281,195],{"class":172},[158,283,198],{"class":168},[158,285,201],{"class":172},[158,287,204],{"class":168},[158,289,207],{"class":172},[158,291,210],{"class":172},[158,293,213],{"class":176},[158,295,296],{"class":172},"\u003C",[158,298,300],{"class":299},"sBMFI","Post",[158,302,303],{"class":172},">",[158,305,216],{"class":168},[158,307,201],{"class":172},[158,309,195],{"class":172},[158,311,224],{"class":223},[158,313,227],{"class":172},[158,315,230],{"class":172},[158,317,233],{"class":183},[158,319,236],{"class":172},[158,321,239],{"class":172},[158,323,242],{"class":168},[77,325,326,327,93,330,333,334,337],{},"Parameters can contain values, but they cannot replace field names or the ",[80,328,329],{},"asc",[80,331,332],{},"desc"," keywords. For dynamic ordering, use ",[80,335,336],{},"select()"," to map a parameter to a set of supported ordering expressions:",[149,339,343],{"className":340,"code":341,"language":342,"meta":154,"style":154},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst sort = ref\u003C'publishedAt' | 'title'>('publishedAt')\n\nconst articlesQuery = groq`*[_type == \"article\"] | order(\n  select(\n    $sort == \"title\" => title,\n    publishedAt,\n  ) desc\n) {\n  title,\n  publishedAt\n}`\n\nconst { data } = await useSanityQuery(articlesQuery, {\n  sort,\n})\n\u003C\u002Fscript>\n","vue",[80,344,345,370,414,420,437,443,449,455,461,467,473,479,486,491,519,528,535],{"__ignoreMap":154},[158,346,347,349,352,355,358,360,363,365,367],{"class":160,"line":161},[158,348,296],{"class":172},[158,350,351],{"class":223},"script",[158,353,354],{"class":164}," setup",[158,356,357],{"class":164}," lang",[158,359,173],{"class":172},[158,361,362],{"class":172},"\"",[158,364,153],{"class":183},[158,366,362],{"class":172},[158,368,369],{"class":172},">\n",[158,371,372,374,377,379,382,384,386,389,391,394,396,399,401,403,406,408,410,412],{"class":160,"line":190},[158,373,165],{"class":164},[158,375,376],{"class":168}," sort ",[158,378,173],{"class":172},[158,380,381],{"class":176}," ref",[158,383,296],{"class":172},[158,385,236],{"class":172},[158,387,388],{"class":183},"publishedAt",[158,390,236],{"class":172},[158,392,393],{"class":172}," |",[158,395,230],{"class":172},[158,397,398],{"class":183},"title",[158,400,236],{"class":172},[158,402,303],{"class":172},[158,404,405],{"class":168},"(",[158,407,236],{"class":172},[158,409,388],{"class":183},[158,411,236],{"class":172},[158,413,242],{"class":168},[158,415,416],{"class":160,"line":277},[158,417,419],{"emptyLinePlaceholder":418},true,"\n",[158,421,423,425,428,430,432,434],{"class":160,"line":422},4,[158,424,165],{"class":164},[158,426,427],{"class":168}," articlesQuery ",[158,429,173],{"class":172},[158,431,177],{"class":176},[158,433,180],{"class":172},[158,435,436],{"class":183},"*[_type == \"article\"] | order(\n",[158,438,440],{"class":160,"line":439},5,[158,441,442],{"class":183},"  select(\n",[158,444,446],{"class":160,"line":445},6,[158,447,448],{"class":183},"    $sort == \"title\" => title,\n",[158,450,452],{"class":160,"line":451},7,[158,453,454],{"class":183},"    publishedAt,\n",[158,456,458],{"class":160,"line":457},8,[158,459,460],{"class":183},"  ) desc\n",[158,462,464],{"class":160,"line":463},9,[158,465,466],{"class":183},") {\n",[158,468,470],{"class":160,"line":469},10,[158,471,472],{"class":183},"  title,\n",[158,474,476],{"class":160,"line":475},11,[158,477,478],{"class":183},"  publishedAt\n",[158,480,482,484],{"class":160,"line":481},12,[158,483,207],{"class":183},[158,485,187],{"class":172},[158,487,489],{"class":160,"line":488},13,[158,490,419],{"emptyLinePlaceholder":418},[158,492,494,496,498,501,503,505,509,511,514,516],{"class":160,"line":493},14,[158,495,165],{"class":164},[158,497,195],{"class":172},[158,499,500],{"class":168}," data ",[158,502,207],{"class":172},[158,504,210],{"class":172},[158,506,508],{"class":507},"s7zQu"," await",[158,510,213],{"class":176},[158,512,513],{"class":168},"(articlesQuery",[158,515,201],{"class":172},[158,517,518],{"class":172}," {\n",[158,520,522,525],{"class":160,"line":521},15,[158,523,524],{"class":168},"  sort",[158,526,527],{"class":172},",\n",[158,529,531,533],{"class":160,"line":530},16,[158,532,207],{"class":172},[158,534,242],{"class":168},[158,536,538,541,543],{"class":160,"line":537},17,[158,539,540],{"class":172},"\u003C\u002F",[158,542,351],{"class":223},[158,544,369],{"class":172},[77,546,547,548,551,552,555,556,559,560,563],{},"The query sorts by title when selected, and falls back to the published date. Passing a field name directly, such as ",[80,549,550],{},"{ sort: 'publishedAt' }"," with ",[80,553,554],{},"order($sort desc)",", will not work because ",[80,557,558],{},"$sort"," evaluates to the string value ",[80,561,562],{},"\"publishedAt\""," for every result.",[77,565,566,567,93,572,578],{},"See the Sanity documentation for more information about ",[116,568,571],{"href":569,"rel":570},"https:\u002F\u002Fwww.sanity.io\u002Fdocs\u002Fspecifications\u002Fgroq-parameters",[120],"GROQ parameters",[116,573,576],{"href":574,"rel":575},"https:\u002F\u002Fwww.sanity.io\u002Fdocs\u002Fspecifications\u002Fgroq-functions#k298e89c3c8d9",[120],[80,577,336],{},".",[144,580,582],{"id":581},"query-options","Query Options",[77,584,585,586,589],{},"You can pass a ",[80,587,588],{},"queryOptions"," object to customise the options sent to the underlying Sanity client fetch call. This allows you to override the automatically resolved options for specific queries.",[149,591,593],{"className":151,"code":592,"language":153,"meta":154,"style":154},"const { data } = useSanityQuery(query, params, {\n  queryOptions: {\n    perspective: 'published',\n    tag: 'my-custom-tag',\n    useCdn: false,\n  },\n})\n",[80,594,595,620,629,645,661,674,679],{"__ignoreMap":154},[158,596,597,599,601,603,605,607,609,611,613,616,618],{"class":160,"line":161},[158,598,165],{"class":164},[158,600,195],{"class":172},[158,602,500],{"class":168},[158,604,207],{"class":172},[158,606,210],{"class":172},[158,608,213],{"class":176},[158,610,216],{"class":168},[158,612,201],{"class":172},[158,614,615],{"class":168}," params",[158,617,201],{"class":172},[158,619,518],{"class":172},[158,621,622,625,627],{"class":160,"line":190},[158,623,624],{"class":223},"  queryOptions",[158,626,227],{"class":172},[158,628,518],{"class":172},[158,630,631,634,636,638,641,643],{"class":160,"line":277},[158,632,633],{"class":223},"    perspective",[158,635,227],{"class":172},[158,637,230],{"class":172},[158,639,640],{"class":183},"published",[158,642,236],{"class":172},[158,644,527],{"class":172},[158,646,647,650,652,654,657,659],{"class":160,"line":422},[158,648,649],{"class":223},"    tag",[158,651,227],{"class":172},[158,653,230],{"class":172},[158,655,656],{"class":183},"my-custom-tag",[158,658,236],{"class":172},[158,660,527],{"class":172},[158,662,663,666,668,672],{"class":160,"line":439},[158,664,665],{"class":223},"    useCdn",[158,667,227],{"class":172},[158,669,671],{"class":670},"sfNiH"," false",[158,673,527],{"class":172},[158,675,676],{"class":160,"line":445},[158,677,678],{"class":172},"  },\n",[158,680,681,683],{"class":160,"line":451},[158,682,207],{"class":172},[158,684,242],{"class":168},[77,686,687,688,690,691,699],{},"Any options passed via ",[80,689,588],{}," will take priority over the module's automatically resolved values. See the ",[116,692,695,698],{"href":693,"rel":694},"https:\u002F\u002Fwww.sanity.io\u002Fdocs\u002Fjs-client#fetch",[120],[80,696,697],{},"@sanity\u002Fclient"," documentation"," for the full list of available options.",[144,701,703],{"id":702},"automatic-type-generation","Automatic Type Generation",[77,705,706,707,710],{},"When ",[116,708,709],{"href":32},"type generation"," is enabled, you can use auto-generated types based on your query variable names:",[149,712,714],{"className":151,"code":713,"language":153,"meta":154,"style":154},"\u002F\u002F Query variable: postsQuery -> Generated type: PostsQueryResult\nconst postsQuery = groq`*[_type == \"post\" && topic == $topic][0..10]`\nconst { data, refresh } = useSanityQuery\u003CPostsQueryResult>(postsQuery, { topic: 'News' })\n",[80,715,716,721,738],{"__ignoreMap":154},[158,717,718],{"class":160,"line":161},[158,719,720],{"class":257},"\u002F\u002F Query variable: postsQuery -> Generated type: PostsQueryResult\n",[158,722,723,725,728,730,732,734,736],{"class":160,"line":190},[158,724,165],{"class":164},[158,726,727],{"class":168}," postsQuery ",[158,729,173],{"class":172},[158,731,177],{"class":176},[158,733,180],{"class":172},[158,735,184],{"class":183},[158,737,187],{"class":172},[158,739,740,742,744,746,748,750,752,754,756,758,761,763,766,768,770,772,774,776,778,780,782],{"class":160,"line":277},[158,741,165],{"class":164},[158,743,195],{"class":172},[158,745,198],{"class":168},[158,747,201],{"class":172},[158,749,204],{"class":168},[158,751,207],{"class":172},[158,753,210],{"class":172},[158,755,213],{"class":176},[158,757,296],{"class":172},[158,759,760],{"class":299},"PostsQueryResult",[158,762,303],{"class":172},[158,764,765],{"class":168},"(postsQuery",[158,767,201],{"class":172},[158,769,195],{"class":172},[158,771,224],{"class":223},[158,773,227],{"class":172},[158,775,230],{"class":172},[158,777,233],{"class":183},[158,779,236],{"class":172},[158,781,239],{"class":172},[158,783,242],{"class":168},[77,785,786,787,790],{},"See the ",[116,788,789],{"href":32},"Type Generation"," guide for setup instructions.",[105,792,96],{"id":793},"uselazysanityquery",[77,795,796,797,800,801,803],{},"This is an equivalent query that does not block client-side navigation and uses ",[80,798,799],{},"useLazyAsyncData"," under the hood. Other than that, the API is identical to ",[80,802,92],{}," above.",[105,805,102],{"id":806},"usesanity",[77,808,809,810,813],{},"You can access a Sanity helper\u002Fclient throught your application with the globally available ",[80,811,812],{},"useSanity()"," composable.",[77,815,816,817,93,819,139,821,823],{},"Unlike ",[80,818,92],{},[80,820,96],{},[80,822,102],{}," is also available within your Nitro server routes in exactly the same way as within your Nuxt app.",[825,826,827,828,831,832,835],"tip",{},"If you want to access this helper globally through ",[80,829,830],{},"$sanity"," - as in a prior version of this module - ensure you've set the ",[80,833,834],{},"globalHelper"," option to true.",[144,837,839],{"id":838},"reference","Reference",[841,842,844],"h4",{"id":843},"fetch",[80,845,843],{},[77,847,848,849,852],{},"This enables you to perform a GROQ query against your Sanity dataset. By default it returns a ",[80,850,851],{},"Promise\u003Cunknown>"," although you can customise the type of the return.",[854,855,857,858],"h5",{"id":856},"example-with-asyncdata","Example with ",[80,859,860],{},"asyncData",[862,863],"br",{},[865,866,867,977],"code-group",{},[149,868,873],{"className":869,"code":870,"filename":871,"language":872,"meta":154,"style":154},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nconst query = groq`{ \"articles\": *[_type == \"article\"] }`\n\nconst sanity = useSanity()\n\nconst { data } = await useAsyncData('articles', () => sanity.fetch(query))\n\u003C\u002Fscript>\n","JavaScript","html",[80,874,875,885,902,906,921,925,969],{"__ignoreMap":154},[158,876,877,879,881,883],{"class":160,"line":161},[158,878,296],{"class":172},[158,880,351],{"class":223},[158,882,354],{"class":164},[158,884,369],{"class":172},[158,886,887,889,891,893,895,897,900],{"class":160,"line":190},[158,888,165],{"class":164},[158,890,169],{"class":168},[158,892,173],{"class":172},[158,894,177],{"class":176},[158,896,180],{"class":172},[158,898,899],{"class":183},"{ \"articles\": *[_type == \"article\"] }",[158,901,187],{"class":172},[158,903,904],{"class":160,"line":277},[158,905,419],{"emptyLinePlaceholder":418},[158,907,908,910,913,915,918],{"class":160,"line":422},[158,909,165],{"class":164},[158,911,912],{"class":168}," sanity ",[158,914,173],{"class":172},[158,916,917],{"class":176}," useSanity",[158,919,920],{"class":168},"()\n",[158,922,923],{"class":160,"line":439},[158,924,419],{"emptyLinePlaceholder":418},[158,926,927,929,931,933,935,937,939,942,944,946,949,951,953,956,959,962,964,966],{"class":160,"line":445},[158,928,165],{"class":164},[158,930,195],{"class":172},[158,932,500],{"class":168},[158,934,207],{"class":172},[158,936,210],{"class":172},[158,938,508],{"class":507},[158,940,941],{"class":176}," useAsyncData",[158,943,405],{"class":168},[158,945,236],{"class":172},[158,947,948],{"class":183},"articles",[158,950,236],{"class":172},[158,952,201],{"class":172},[158,954,955],{"class":172}," ()",[158,957,958],{"class":164}," =>",[158,960,961],{"class":168}," sanity",[158,963,578],{"class":172},[158,965,843],{"class":176},[158,967,968],{"class":168},"(query))\n",[158,970,971,973,975],{"class":160,"line":451},[158,972,540],{"class":172},[158,974,351],{"class":223},[158,976,369],{"class":172},[149,978,981],{"className":869,"code":979,"filename":980,"language":872,"meta":154,"style":154},"\u003Cscript setup lang=\"ts\">\nconst query = groq`{ \"articles\": *[_type == \"article\"] }`\n\nconst sanity = useSanity()\n\n\u002F\u002F By default it returns a `Promise\u003Cunknown>`,\n\u002F\u002F but you can customise the type of the return.\nconst { data } = await useAsyncData('articles', () => sanity.fetch\u003C{ articles: Article[] }>(query))\n\u003C\u002Fscript>\n","TypeScript",[80,982,983,1003,1019,1023,1035,1039,1044,1049,1104],{"__ignoreMap":154},[158,984,985,987,989,991,993,995,997,999,1001],{"class":160,"line":161},[158,986,296],{"class":172},[158,988,351],{"class":223},[158,990,354],{"class":164},[158,992,357],{"class":164},[158,994,173],{"class":172},[158,996,362],{"class":172},[158,998,153],{"class":183},[158,1000,362],{"class":172},[158,1002,369],{"class":172},[158,1004,1005,1007,1009,1011,1013,1015,1017],{"class":160,"line":190},[158,1006,165],{"class":164},[158,1008,169],{"class":168},[158,1010,173],{"class":172},[158,1012,177],{"class":176},[158,1014,180],{"class":172},[158,1016,899],{"class":183},[158,1018,187],{"class":172},[158,1020,1021],{"class":160,"line":277},[158,1022,419],{"emptyLinePlaceholder":418},[158,1024,1025,1027,1029,1031,1033],{"class":160,"line":422},[158,1026,165],{"class":164},[158,1028,912],{"class":168},[158,1030,173],{"class":172},[158,1032,917],{"class":176},[158,1034,920],{"class":168},[158,1036,1037],{"class":160,"line":439},[158,1038,419],{"emptyLinePlaceholder":418},[158,1040,1041],{"class":160,"line":445},[158,1042,1043],{"class":257},"\u002F\u002F By default it returns a `Promise\u003Cunknown>`,\n",[158,1045,1046],{"class":160,"line":451},[158,1047,1048],{"class":257},"\u002F\u002F but you can customise the type of the return.\n",[158,1050,1051,1053,1055,1057,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1088,1091,1093,1096,1099,1102],{"class":160,"line":457},[158,1052,165],{"class":164},[158,1054,195],{"class":172},[158,1056,500],{"class":168},[158,1058,207],{"class":172},[158,1060,210],{"class":172},[158,1062,508],{"class":507},[158,1064,941],{"class":176},[158,1066,405],{"class":168},[158,1068,236],{"class":172},[158,1070,948],{"class":183},[158,1072,236],{"class":172},[158,1074,201],{"class":172},[158,1076,955],{"class":172},[158,1078,958],{"class":164},[158,1080,961],{"class":168},[158,1082,578],{"class":172},[158,1084,843],{"class":176},[158,1086,1087],{"class":172},"\u003C{",[158,1089,1090],{"class":223}," articles",[158,1092,227],{"class":172},[158,1094,1095],{"class":299}," Article",[158,1097,1098],{"class":168},"[] ",[158,1100,1101],{"class":172},"}>",[158,1103,968],{"class":168},[158,1105,1106,1108,1110],{"class":160,"line":463},[158,1107,540],{"class":172},[158,1109,351],{"class":223},[158,1111,369],{"class":172},[841,1113,1114],{"id":131},[80,1115,131],{},[77,1117,1118],{},"You can access the underlying client with this property. This is most useful if not using the minimal client.",[149,1120,1122],{"className":151,"code":1121,"language":153,"meta":154,"style":154},"const query = groq`*[_type == \"article\"][0].title`\n\nexport default defineComponent({\n  setup() {\n    const sanity = useSanity()\n    onMounted(() => {\n      const observable = sanity.client.listen(query)\n      observable.subscribe(event => {\n        \u002F\u002F Do something\n      })\n    })\n  },\n})\n",[80,1123,1124,1141,1145,1161,1171,1184,1197,1225,1245,1250,1257,1264,1268],{"__ignoreMap":154},[158,1125,1126,1128,1130,1132,1134,1136,1139],{"class":160,"line":161},[158,1127,165],{"class":164},[158,1129,169],{"class":168},[158,1131,173],{"class":172},[158,1133,177],{"class":176},[158,1135,180],{"class":172},[158,1137,1138],{"class":183},"*[_type == \"article\"][0].title",[158,1140,187],{"class":172},[158,1142,1143],{"class":160,"line":190},[158,1144,419],{"emptyLinePlaceholder":418},[158,1146,1147,1150,1153,1156,1158],{"class":160,"line":277},[158,1148,1149],{"class":507},"export",[158,1151,1152],{"class":507}," default",[158,1154,1155],{"class":176}," defineComponent",[158,1157,405],{"class":168},[158,1159,1160],{"class":172},"{\n",[158,1162,1163,1166,1169],{"class":160,"line":422},[158,1164,1165],{"class":223},"  setup",[158,1167,1168],{"class":172},"()",[158,1170,518],{"class":172},[158,1172,1173,1176,1178,1180,1182],{"class":160,"line":439},[158,1174,1175],{"class":164},"    const",[158,1177,961],{"class":168},[158,1179,210],{"class":172},[158,1181,917],{"class":176},[158,1183,920],{"class":223},[158,1185,1186,1189,1191,1193,1195],{"class":160,"line":445},[158,1187,1188],{"class":176},"    onMounted",[158,1190,405],{"class":223},[158,1192,1168],{"class":172},[158,1194,958],{"class":164},[158,1196,518],{"class":172},[158,1198,1199,1202,1205,1207,1209,1211,1213,1215,1218,1220,1223],{"class":160,"line":451},[158,1200,1201],{"class":164},"      const",[158,1203,1204],{"class":168}," observable",[158,1206,210],{"class":172},[158,1208,961],{"class":168},[158,1210,578],{"class":172},[158,1212,131],{"class":168},[158,1214,578],{"class":172},[158,1216,1217],{"class":176},"listen",[158,1219,405],{"class":223},[158,1221,1222],{"class":168},"query",[158,1224,242],{"class":223},[158,1226,1227,1230,1232,1235,1237,1241,1243],{"class":160,"line":457},[158,1228,1229],{"class":168},"      observable",[158,1231,578],{"class":172},[158,1233,1234],{"class":176},"subscribe",[158,1236,405],{"class":223},[158,1238,1240],{"class":1239},"sHdIc","event",[158,1242,958],{"class":164},[158,1244,518],{"class":172},[158,1246,1247],{"class":160,"line":463},[158,1248,1249],{"class":257},"        \u002F\u002F Do something\n",[158,1251,1252,1255],{"class":160,"line":469},[158,1253,1254],{"class":172},"      }",[158,1256,242],{"class":223},[158,1258,1259,1262],{"class":160,"line":475},[158,1260,1261],{"class":172},"    }",[158,1263,242],{"class":223},[158,1265,1266],{"class":160,"line":481},[158,1267,678],{"class":172},[158,1269,1270,1272],{"class":160,"line":488},[158,1271,207],{"class":172},[158,1273,242],{"class":168},[841,1275,1277],{"id":1276},"settoken",[80,1278,1279],{},"setToken",[77,1281,1282],{},"You can securely set the token for your Sanity client in a Nuxt plugin.",[149,1284,1289],{"className":1285,"code":1286,"filename":1287,"language":1288,"meta":154,"style":154},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtPlugin((nuxtApp) => {\n  const sanity = useSanity()\n  const token = getTokenFromReq(nuxtApp.ssrContext.req)\n  sanity.setToken(token)\n})\n","plugins\u002Fsanity.server.ts","js",[80,1290,1291,1314,1327,1355,1371],{"__ignoreMap":154},[158,1292,1293,1295,1297,1300,1302,1304,1307,1310,1312],{"class":160,"line":161},[158,1294,1149],{"class":507},[158,1296,1152],{"class":507},[158,1298,1299],{"class":176}," defineNuxtPlugin",[158,1301,405],{"class":168},[158,1303,405],{"class":172},[158,1305,1306],{"class":1239},"nuxtApp",[158,1308,1309],{"class":172},")",[158,1311,958],{"class":164},[158,1313,518],{"class":172},[158,1315,1316,1319,1321,1323,1325],{"class":160,"line":190},[158,1317,1318],{"class":164},"  const",[158,1320,961],{"class":168},[158,1322,210],{"class":172},[158,1324,917],{"class":176},[158,1326,920],{"class":223},[158,1328,1329,1331,1334,1336,1339,1341,1343,1345,1348,1350,1353],{"class":160,"line":277},[158,1330,1318],{"class":164},[158,1332,1333],{"class":168}," token",[158,1335,210],{"class":172},[158,1337,1338],{"class":176}," getTokenFromReq",[158,1340,405],{"class":223},[158,1342,1306],{"class":168},[158,1344,578],{"class":172},[158,1346,1347],{"class":168},"ssrContext",[158,1349,578],{"class":172},[158,1351,1352],{"class":168},"req",[158,1354,242],{"class":223},[158,1356,1357,1360,1362,1364,1366,1369],{"class":160,"line":422},[158,1358,1359],{"class":168},"  sanity",[158,1361,578],{"class":172},[158,1363,1279],{"class":176},[158,1365,405],{"class":223},[158,1367,1368],{"class":168},"token",[158,1370,242],{"class":223},[158,1372,1373,1375],{"class":160,"line":439},[158,1374,207],{"class":172},[158,1376,242],{"class":168},[841,1378,1380],{"id":1379},"config",[80,1381,1379],{},[77,1383,1384,1385,1388],{},"You can access the Sanity config you have passed into the module if you need to do so (for example, with ",[80,1386,1387],{},"@sanity\u002Fimage-url","):",[149,1390,1393],{"className":1285,"code":1391,"filename":1392,"language":1288,"meta":154,"style":154},"import imageUrlBuilder from '@sanity\u002Fimage-url'\nexport default defineNuxtPlugin(() => {\n  const sanity = useSanity()\n  const builder = imageUrlBuilder(sanity.config)\n\n  function urlFor(source) {\n    return builder.image(source)\n  }\n\n  return {\n    provide: { urlFor }\n  }\n})\n","plugins\u002Fsanity.ts",[80,1394,1395,1413,1429,1441,1464,1468,1485,1503,1508,1512,1519,1533,1537],{"__ignoreMap":154},[158,1396,1397,1400,1403,1406,1408,1410],{"class":160,"line":161},[158,1398,1399],{"class":507},"import",[158,1401,1402],{"class":168}," imageUrlBuilder ",[158,1404,1405],{"class":507},"from",[158,1407,230],{"class":172},[158,1409,1387],{"class":183},[158,1411,1412],{"class":172},"'\n",[158,1414,1415,1417,1419,1421,1423,1425,1427],{"class":160,"line":190},[158,1416,1149],{"class":507},[158,1418,1152],{"class":507},[158,1420,1299],{"class":176},[158,1422,405],{"class":168},[158,1424,1168],{"class":172},[158,1426,958],{"class":164},[158,1428,518],{"class":172},[158,1430,1431,1433,1435,1437,1439],{"class":160,"line":277},[158,1432,1318],{"class":164},[158,1434,961],{"class":168},[158,1436,210],{"class":172},[158,1438,917],{"class":176},[158,1440,920],{"class":223},[158,1442,1443,1445,1448,1450,1453,1455,1458,1460,1462],{"class":160,"line":422},[158,1444,1318],{"class":164},[158,1446,1447],{"class":168}," builder",[158,1449,210],{"class":172},[158,1451,1452],{"class":176}," imageUrlBuilder",[158,1454,405],{"class":223},[158,1456,1457],{"class":168},"sanity",[158,1459,578],{"class":172},[158,1461,1379],{"class":168},[158,1463,242],{"class":223},[158,1465,1466],{"class":160,"line":439},[158,1467,419],{"emptyLinePlaceholder":418},[158,1469,1470,1473,1476,1478,1481,1483],{"class":160,"line":445},[158,1471,1472],{"class":164},"  function",[158,1474,1475],{"class":176}," urlFor",[158,1477,405],{"class":172},[158,1479,1480],{"class":1239},"source",[158,1482,1309],{"class":172},[158,1484,518],{"class":172},[158,1486,1487,1490,1492,1494,1497,1499,1501],{"class":160,"line":451},[158,1488,1489],{"class":507},"    return",[158,1491,1447],{"class":168},[158,1493,578],{"class":172},[158,1495,1496],{"class":176},"image",[158,1498,405],{"class":223},[158,1500,1480],{"class":168},[158,1502,242],{"class":223},[158,1504,1505],{"class":160,"line":457},[158,1506,1507],{"class":172},"  }\n",[158,1509,1510],{"class":160,"line":463},[158,1511,419],{"emptyLinePlaceholder":418},[158,1513,1514,1517],{"class":160,"line":469},[158,1515,1516],{"class":507},"  return",[158,1518,518],{"class":172},[158,1520,1521,1524,1526,1528,1530],{"class":160,"line":475},[158,1522,1523],{"class":223},"    provide",[158,1525,227],{"class":172},[158,1527,195],{"class":172},[158,1529,1475],{"class":168},[158,1531,1532],{"class":172}," }\n",[158,1534,1535],{"class":160,"line":481},[158,1536,1507],{"class":172},[158,1538,1539,1541],{"class":160,"line":488},[158,1540,207],{"class":172},[158,1542,242],{"class":168},[841,1544,1546],{"id":1545},"additional-clients","Additional clients",[77,1548,1549,1550,1554,1555,1557],{},"If you have ",[116,1551,1553],{"href":1552},"\u002Fgetting-started\u002Fconfiguration#additionalclients","configured additional clients"," you can access them by passing in a client name to ",[80,1556,102],{},". It returns a sanity helper, with all the same properties and methods as specified above. So, for example:",[149,1559,1562],{"className":1285,"code":1560,"filename":1561,"language":1288,"meta":154,"style":154},"export default defineNuxtPlugin(() => {\n  const otherSanityHelper = useSanity('other')\n  otherSanityHelper.fetch('*[type == \"article\"][0]')\n})\n","plugins\u002Ffetch.ts",[80,1563,1564,1580,1602,1622],{"__ignoreMap":154},[158,1565,1566,1568,1570,1572,1574,1576,1578],{"class":160,"line":161},[158,1567,1149],{"class":507},[158,1569,1152],{"class":507},[158,1571,1299],{"class":176},[158,1573,405],{"class":168},[158,1575,1168],{"class":172},[158,1577,958],{"class":164},[158,1579,518],{"class":172},[158,1581,1582,1584,1587,1589,1591,1593,1595,1598,1600],{"class":160,"line":190},[158,1583,1318],{"class":164},[158,1585,1586],{"class":168}," otherSanityHelper",[158,1588,210],{"class":172},[158,1590,917],{"class":176},[158,1592,405],{"class":223},[158,1594,236],{"class":172},[158,1596,1597],{"class":183},"other",[158,1599,236],{"class":172},[158,1601,242],{"class":223},[158,1603,1604,1607,1609,1611,1613,1615,1618,1620],{"class":160,"line":277},[158,1605,1606],{"class":168},"  otherSanityHelper",[158,1608,578],{"class":172},[158,1610,843],{"class":176},[158,1612,405],{"class":223},[158,1614,236],{"class":172},[158,1616,1617],{"class":183},"*[type == \"article\"][0]",[158,1619,236],{"class":172},[158,1621,242],{"class":223},[158,1623,1624,1626],{"class":160,"line":422},[158,1625,207],{"class":172},[158,1627,242],{"class":168},[841,1629,1631],{"id":1630},"private-datasets","Private Datasets",[77,1633,1634,1635,1638,1639,1641],{},"You can use the ",[80,1636,1637],{},"queryEndpoint"," configuration option to set the endpoint for all requests made with ",[80,1640,92],{},". This is especially useful when querying private datasets or making requests that require tokens that cannot be safely exposed on the client.",[77,1643,1644],{},"This module does not provide a built-in handler for proxying queries to private datasets. Instead, it includes a convenience function that makes it straightforward to implement a server-side handler for most use cases.",[77,1646,1647,1648,1651],{},"To control which queries can be made against a private dataset, you can use ",[80,1649,1650],{},"validateSanityQuery",". At build time, the module scans your codebase, extracts all GROQ queries, and compiles them into a whitelist. At runtime, incoming queries are checked against this list, and by default an error is thrown if a query is not recognized. You can optionally limit extraction to specific files via the function’s second argument.",[149,1653,1656],{"className":151,"code":1654,"filename":1655,"language":153,"meta":154,"style":154},"export default defineEventHandler(async (event) => {\n  const { query, params = {}, options } = await readBody(event)\n\n  await validateSanityQuery(query)\n\n  const sanity = useSanity()\n  const client = sanity.client.withConfig({ token: process.env.NUXT_SANITY_READ_TOKEN })\n\n  return client.fetch(query, params, options)\n})\n","server\u002Fapi\u002Ffetch.ts",[80,1657,1658,1683,1719,1723,1737,1741,1753,1799,1803,1827],{"__ignoreMap":154},[158,1659,1660,1662,1664,1667,1669,1672,1675,1677,1679,1681],{"class":160,"line":161},[158,1661,1149],{"class":507},[158,1663,1152],{"class":507},[158,1665,1666],{"class":176}," defineEventHandler",[158,1668,405],{"class":168},[158,1670,1671],{"class":164},"async",[158,1673,1674],{"class":172}," (",[158,1676,1240],{"class":1239},[158,1678,1309],{"class":172},[158,1680,958],{"class":164},[158,1682,518],{"class":172},[158,1684,1685,1687,1689,1692,1694,1696,1698,1701,1704,1706,1708,1710,1713,1715,1717],{"class":160,"line":190},[158,1686,1318],{"class":164},[158,1688,195],{"class":172},[158,1690,1691],{"class":168}," query",[158,1693,201],{"class":172},[158,1695,615],{"class":168},[158,1697,210],{"class":172},[158,1699,1700],{"class":172}," {},",[158,1702,1703],{"class":168}," options",[158,1705,239],{"class":172},[158,1707,210],{"class":172},[158,1709,508],{"class":507},[158,1711,1712],{"class":176}," readBody",[158,1714,405],{"class":223},[158,1716,1240],{"class":168},[158,1718,242],{"class":223},[158,1720,1721],{"class":160,"line":277},[158,1722,419],{"emptyLinePlaceholder":418},[158,1724,1725,1728,1731,1733,1735],{"class":160,"line":422},[158,1726,1727],{"class":507},"  await",[158,1729,1730],{"class":176}," validateSanityQuery",[158,1732,405],{"class":223},[158,1734,1222],{"class":168},[158,1736,242],{"class":223},[158,1738,1739],{"class":160,"line":439},[158,1740,419],{"emptyLinePlaceholder":418},[158,1742,1743,1745,1747,1749,1751],{"class":160,"line":445},[158,1744,1318],{"class":164},[158,1746,961],{"class":168},[158,1748,210],{"class":172},[158,1750,917],{"class":176},[158,1752,920],{"class":223},[158,1754,1755,1757,1760,1762,1764,1766,1768,1770,1773,1775,1778,1780,1782,1785,1787,1790,1792,1795,1797],{"class":160,"line":451},[158,1756,1318],{"class":164},[158,1758,1759],{"class":168}," client",[158,1761,210],{"class":172},[158,1763,961],{"class":168},[158,1765,578],{"class":172},[158,1767,131],{"class":168},[158,1769,578],{"class":172},[158,1771,1772],{"class":176},"withConfig",[158,1774,405],{"class":223},[158,1776,1777],{"class":172},"{",[158,1779,1333],{"class":223},[158,1781,227],{"class":172},[158,1783,1784],{"class":168}," process",[158,1786,578],{"class":172},[158,1788,1789],{"class":168},"env",[158,1791,578],{"class":172},[158,1793,1794],{"class":168},"NUXT_SANITY_READ_TOKEN",[158,1796,239],{"class":172},[158,1798,242],{"class":223},[158,1800,1801],{"class":160,"line":457},[158,1802,419],{"emptyLinePlaceholder":418},[158,1804,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825],{"class":160,"line":463},[158,1806,1516],{"class":507},[158,1808,1759],{"class":168},[158,1810,578],{"class":172},[158,1812,843],{"class":176},[158,1814,405],{"class":223},[158,1816,1222],{"class":168},[158,1818,201],{"class":172},[158,1820,615],{"class":168},[158,1822,201],{"class":172},[158,1824,1703],{"class":168},[158,1826,242],{"class":223},[158,1828,1829,1831],{"class":160,"line":469},[158,1830,207],{"class":172},[158,1832,242],{"class":168},[1834,1835,1836,1841],"warning",{},[77,1837,1838,1840],{},[80,1839,1650],{}," only validates query strings, not parameters. If you define queries that use dynamic parameters, you must ensure those queries are safe to run with any parameter value.",[149,1842,1844],{"className":151,"code":1843,"language":153,"meta":154,"style":154},"\u002F\u002F Validate parameter values before executing queries\nconst allowedCategories = ['tech', 'news', 'sports']\nif (params.category && !allowedCategories.includes(params.category)) {\n  throw createError({ statusCode: 400, message: 'Invalid category' })\n}\n",[80,1845,1846,1851,1891,1928,1967],{"__ignoreMap":154},[158,1847,1848],{"class":160,"line":161},[158,1849,1850],{"class":257},"\u002F\u002F Validate parameter values before executing queries\n",[158,1852,1853,1855,1858,1860,1863,1865,1868,1870,1872,1874,1877,1879,1881,1883,1886,1888],{"class":160,"line":190},[158,1854,165],{"class":164},[158,1856,1857],{"class":168}," allowedCategories ",[158,1859,173],{"class":172},[158,1861,1862],{"class":168}," [",[158,1864,236],{"class":172},[158,1866,1867],{"class":183},"tech",[158,1869,236],{"class":172},[158,1871,201],{"class":172},[158,1873,230],{"class":172},[158,1875,1876],{"class":183},"news",[158,1878,236],{"class":172},[158,1880,201],{"class":172},[158,1882,230],{"class":172},[158,1884,1885],{"class":183},"sports",[158,1887,236],{"class":172},[158,1889,1890],{"class":168},"]\n",[158,1892,1893,1896,1899,1901,1904,1907,1910,1913,1915,1918,1921,1923,1926],{"class":160,"line":277},[158,1894,1895],{"class":507},"if",[158,1897,1898],{"class":168}," (params",[158,1900,578],{"class":172},[158,1902,1903],{"class":168},"category ",[158,1905,1906],{"class":172},"&&",[158,1908,1909],{"class":172}," !",[158,1911,1912],{"class":168},"allowedCategories",[158,1914,578],{"class":172},[158,1916,1917],{"class":176},"includes",[158,1919,1920],{"class":168},"(params",[158,1922,578],{"class":172},[158,1924,1925],{"class":168},"category)) ",[158,1927,1160],{"class":172},[158,1929,1930,1933,1936,1938,1940,1943,1945,1949,1951,1954,1956,1958,1961,1963,1965],{"class":160,"line":422},[158,1931,1932],{"class":507},"  throw",[158,1934,1935],{"class":176}," createError",[158,1937,405],{"class":223},[158,1939,1777],{"class":172},[158,1941,1942],{"class":223}," statusCode",[158,1944,227],{"class":172},[158,1946,1948],{"class":1947},"sbssI"," 400",[158,1950,201],{"class":172},[158,1952,1953],{"class":223}," message",[158,1955,227],{"class":172},[158,1957,230],{"class":172},[158,1959,1960],{"class":183},"Invalid category",[158,1962,236],{"class":172},[158,1964,239],{"class":172},[158,1966,242],{"class":223},[158,1968,1969],{"class":160,"line":439},[158,1970,1971],{"class":172},"}\n",[1973,1974,1975],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .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 pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":154,"searchDepth":190,"depth":190,"links":1977},[1978,1983,1984],{"id":107,"depth":190,"text":92,"children":1979},[1980,1981,1982],{"id":146,"depth":277,"text":147},{"id":581,"depth":277,"text":582},{"id":702,"depth":277,"text":703},{"id":793,"depth":190,"text":96},{"id":806,"depth":190,"text":102,"children":1985},[1986],{"id":838,"depth":277,"text":839},"@nuxtjs\u002Fsanity provides key composables to interact with data from your Sanity project.","md",null,{},{"description":1987},"UD0gk0ZIDZfLYnRkL1tUetm7FfVBX_1Lo-J7643FeBY",[1994,1996],{"title":15,"path":16,"stem":17,"description":1995,"children":-1},"By default, @nuxtjs\u002Fsanity will look for a ~~\u002Fcms\u002Fsanity.config.ts file relative to your project's root directory, and it will read your projectId and dataset from there.",{"title":23,"path":24,"stem":25,"description":154,"children":-1},1786228431443]