[{"data":1,"prerenderedAt":1025},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-typegen":71,"-getting-started-typegen-surround":1021},[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":31,"body":73,"description":1015,"extension":1016,"links":1017,"meta":1018,"navigation":193,"path":32,"seo":1019,"stem":33,"__hash__":1020},"docs\u002F1.getting-started\u002F7.typegen.md",{"type":74,"value":75,"toc":992},"minimark",[76,94,99,104,114,125,220,223,229,363,366,373,377,384,495,502,507,589,598,602,605,660,663,667,670,770,774,780,799,802,808,826,829,835,841,851,857,870,877,883,904,907,913,925,935,939,959,963,966,985,988],[77,78,79,83,84,93],"p",{},[80,81,82],"code",{},"@nuxtjs\u002Fsanity"," supports automatic TypeScript type generation for your GROQ queries using ",[85,86,90],"a",{"href":87,"rel":88},"https:\u002F\u002Fgithub.com\u002Fsanity-io\u002Fsanity\u002Ftree\u002Fnext\u002Fpackages\u002F@sanity\u002Fcodegen",[89],"nofollow",[80,91,92],{},"@sanity\u002Fcodegen",". This enables end-to-end type safety from your Sanity schema to your Vue components.",[95,96,98],"h2",{"id":97},"setup","Setup",[100,101,103],"h3",{"id":102},"prerequisites","Prerequisites",[77,105,106,107,113],{},"Your project must have a Sanity config file (see ",[85,108,110],{"href":109},"\u002Fgetting-started\u002Fconfiguration#configfile",[80,111,112],{},"configFile","), or a schema types file that exports an array of schema type definitions.",[77,115,116,117,120,121,124],{},"When a Sanity config file is present, the schema is resolved from it, so types contributed by plugins are included. Otherwise the schema is read from ",[80,118,119],{},"schemaTypesPath",", which is typically located at ",[80,122,123],{},"cms\u002FschemaTypes\u002Findex.ts",":",[126,127,132],"pre",{"className":128,"code":129,"filename":123,"language":130,"meta":131,"style":131},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { movie } from '.\u002Fmovie'\nimport { person } from '.\u002Fperson'\n\nexport const schemaTypes = [movie, person]\n","ts","",[80,133,134,167,188,195],{"__ignoreMap":131},[135,136,139,143,147,151,154,157,160,164],"span",{"class":137,"line":138},"line",1,[135,140,142],{"class":141},"s7zQu","import",[135,144,146],{"class":145},"sMK4o"," {",[135,148,150],{"class":149},"sTEyZ"," movie",[135,152,153],{"class":145}," }",[135,155,156],{"class":141}," from",[135,158,159],{"class":145}," '",[135,161,163],{"class":162},"sfazB",".\u002Fmovie",[135,165,166],{"class":145},"'\n",[135,168,170,172,174,177,179,181,183,186],{"class":137,"line":169},2,[135,171,142],{"class":141},[135,173,146],{"class":145},[135,175,176],{"class":149}," person",[135,178,153],{"class":145},[135,180,156],{"class":141},[135,182,159],{"class":145},[135,184,185],{"class":162},".\u002Fperson",[135,187,166],{"class":145},[135,189,191],{"class":137,"line":190},3,[135,192,194],{"emptyLinePlaceholder":193},true,"\n",[135,196,198,201,205,208,211,214,217],{"class":137,"line":197},4,[135,199,200],{"class":141},"export",[135,202,204],{"class":203},"spNyl"," const",[135,206,207],{"class":149}," schemaTypes ",[135,209,210],{"class":145},"=",[135,212,213],{"class":149}," [movie",[135,215,216],{"class":145},",",[135,218,219],{"class":149}," person]\n",[100,221,15],{"id":222},"configuration",[77,224,225,226,124],{},"Enable type generation in your ",[80,227,228],{},"nuxt.config.ts",[126,230,232],{"className":128,"code":231,"filename":228,"language":130,"meta":131,"style":131},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fsanity'],\n  sanity: {\n    projectId: 'your-project-id',\n    typegen: {\n      enabled: true,\n      schemaTypesPath: '.\u002Fcms\u002FschemaTypes',\n    },\n  },\n})\n",[80,233,234,251,275,285,301,311,325,342,348,354],{"__ignoreMap":131},[135,235,236,238,241,245,248],{"class":137,"line":138},[135,237,200],{"class":141},[135,239,240],{"class":141}," default",[135,242,244],{"class":243},"s2Zo4"," defineNuxtConfig",[135,246,247],{"class":149},"(",[135,249,250],{"class":145},"{\n",[135,252,253,257,259,262,265,267,269,272],{"class":137,"line":169},[135,254,256],{"class":255},"swJcz","  modules",[135,258,124],{"class":145},[135,260,261],{"class":149}," [",[135,263,264],{"class":145},"'",[135,266,82],{"class":162},[135,268,264],{"class":145},[135,270,271],{"class":149},"]",[135,273,274],{"class":145},",\n",[135,276,277,280,282],{"class":137,"line":190},[135,278,279],{"class":255},"  sanity",[135,281,124],{"class":145},[135,283,284],{"class":145}," {\n",[135,286,287,290,292,294,297,299],{"class":137,"line":197},[135,288,289],{"class":255},"    projectId",[135,291,124],{"class":145},[135,293,159],{"class":145},[135,295,296],{"class":162},"your-project-id",[135,298,264],{"class":145},[135,300,274],{"class":145},[135,302,304,307,309],{"class":137,"line":303},5,[135,305,306],{"class":255},"    typegen",[135,308,124],{"class":145},[135,310,284],{"class":145},[135,312,314,317,319,323],{"class":137,"line":313},6,[135,315,316],{"class":255},"      enabled",[135,318,124],{"class":145},[135,320,322],{"class":321},"sfNiH"," true",[135,324,274],{"class":145},[135,326,328,331,333,335,338,340],{"class":137,"line":327},7,[135,329,330],{"class":255},"      schemaTypesPath",[135,332,124],{"class":145},[135,334,159],{"class":145},[135,336,337],{"class":162},".\u002Fcms\u002FschemaTypes",[135,339,264],{"class":145},[135,341,274],{"class":145},[135,343,345],{"class":137,"line":344},8,[135,346,347],{"class":145},"    },\n",[135,349,351],{"class":137,"line":350},9,[135,352,353],{"class":145},"  },\n",[135,355,357,360],{"class":137,"line":356},10,[135,358,359],{"class":145},"}",[135,361,362],{"class":149},")\n",[95,364,19],{"id":365},"usage",[77,367,368,369,372],{},"Once configured, types are automatically generated during ",[80,370,371],{},"nuxt prepare"," and whenever schema or query files change in development mode.",[100,374,376],{"id":375},"writing-queries","Writing Queries",[77,378,379,380,383],{},"Use the ",[80,381,382],{},"groq"," template tag to write your queries. Generated types follow a naming convention based on your query variable name:",[126,385,389],{"className":386,"code":387,"language":388,"meta":131,"style":131},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\n\u002F\u002F Query variable: moviesQuery -> Generated type: MoviesQueryResult\nconst moviesQuery = groq`*[_type == \"movie\"] { title, slug }`\n\n\u002F\u002F Use the generated type for full type safety\nconst { data } = await useSanityQuery\u003CMoviesQueryResult>(moviesQuery)\n\u003C\u002Fscript>\n","vue",[80,390,391,417,423,445,449,454,486],{"__ignoreMap":131},[135,392,393,396,399,402,405,407,410,412,414],{"class":137,"line":138},[135,394,395],{"class":145},"\u003C",[135,397,398],{"class":255},"script",[135,400,401],{"class":203}," setup",[135,403,404],{"class":203}," lang",[135,406,210],{"class":145},[135,408,409],{"class":145},"\"",[135,411,130],{"class":162},[135,413,409],{"class":145},[135,415,416],{"class":145},">\n",[135,418,419],{"class":137,"line":169},[135,420,422],{"class":421},"sHwdD","\u002F\u002F Query variable: moviesQuery -> Generated type: MoviesQueryResult\n",[135,424,425,428,431,433,436,439,442],{"class":137,"line":190},[135,426,427],{"class":203},"const",[135,429,430],{"class":149}," moviesQuery ",[135,432,210],{"class":145},[135,434,435],{"class":243}," groq",[135,437,438],{"class":145},"`",[135,440,441],{"class":162},"*[_type == \"movie\"] { title, slug }",[135,443,444],{"class":145},"`\n",[135,446,447],{"class":137,"line":197},[135,448,194],{"emptyLinePlaceholder":193},[135,450,451],{"class":137,"line":303},[135,452,453],{"class":421},"\u002F\u002F Use the generated type for full type safety\n",[135,455,456,458,460,463,465,468,471,474,476,480,483],{"class":137,"line":313},[135,457,427],{"class":203},[135,459,146],{"class":145},[135,461,462],{"class":149}," data ",[135,464,359],{"class":145},[135,466,467],{"class":145}," =",[135,469,470],{"class":141}," await",[135,472,473],{"class":243}," useSanityQuery",[135,475,395],{"class":145},[135,477,479],{"class":478},"sBMFI","MoviesQueryResult",[135,481,482],{"class":145},">",[135,484,485],{"class":149},"(moviesQuery)\n",[135,487,488,491,493],{"class":137,"line":327},[135,489,490],{"class":145},"\u003C\u002F",[135,492,398],{"class":255},[135,494,416],{"class":145},[100,496,498,499],{"id":497},"using-definequery","Using ",[80,500,501],{},"defineQuery",[77,503,504,505,124],{},"For better editor support and explicit query definition, you can use ",[80,506,501],{},[126,508,510],{"className":386,"code":509,"language":388,"meta":131,"style":131},"\u003Cscript setup lang=\"ts\">\nconst moviesQuery = defineQuery(`*[_type == \"movie\"] { title, slug }`)\n\nconst { data } = await useSanityQuery\u003CMoviesQueryResult>(moviesQuery)\n\u003C\u002Fscript>\n",[80,511,512,532,553,557,581],{"__ignoreMap":131},[135,513,514,516,518,520,522,524,526,528,530],{"class":137,"line":138},[135,515,395],{"class":145},[135,517,398],{"class":255},[135,519,401],{"class":203},[135,521,404],{"class":203},[135,523,210],{"class":145},[135,525,409],{"class":145},[135,527,130],{"class":162},[135,529,409],{"class":145},[135,531,416],{"class":145},[135,533,534,536,538,540,543,545,547,549,551],{"class":137,"line":169},[135,535,427],{"class":203},[135,537,430],{"class":149},[135,539,210],{"class":145},[135,541,542],{"class":243}," defineQuery",[135,544,247],{"class":149},[135,546,438],{"class":145},[135,548,441],{"class":162},[135,550,438],{"class":145},[135,552,362],{"class":149},[135,554,555],{"class":137,"line":190},[135,556,194],{"emptyLinePlaceholder":193},[135,558,559,561,563,565,567,569,571,573,575,577,579],{"class":137,"line":197},[135,560,427],{"class":203},[135,562,146],{"class":145},[135,564,462],{"class":149},[135,566,359],{"class":145},[135,568,467],{"class":145},[135,570,470],{"class":141},[135,572,473],{"class":243},[135,574,395],{"class":145},[135,576,479],{"class":478},[135,578,482],{"class":145},[135,580,485],{"class":149},[135,582,583,585,587],{"class":137,"line":303},[135,584,490],{"class":145},[135,586,398],{"class":255},[135,588,416],{"class":145},[77,590,591,592,594,595,597],{},"Both ",[80,593,382],{}," and ",[80,596,501],{}," are auto-imported and available throughout your application.",[100,599,601],{"id":600},"generated-types","Generated Types",[77,603,604],{},"The module generates types based on your query variable names:",[606,607,608,621],"table",{},[609,610,611],"thead",{},[612,613,614,618],"tr",{},[615,616,617],"th",{},"Query Variable",[615,619,620],{},"Generated Type",[622,623,624,636,648],"tbody",{},[612,625,626,632],{},[627,628,629],"td",{},[80,630,631],{},"moviesQuery",[627,633,634],{},[80,635,479],{},[612,637,638,643],{},[627,639,640],{},[80,641,642],{},"movieBySlugQuery",[627,644,645],{},[80,646,647],{},"MovieBySlugQueryResult",[612,649,650,655],{},[627,651,652],{},[80,653,654],{},"allPostsQuery",[627,656,657],{},[80,658,659],{},"AllPostsQueryResult",[77,661,662],{},"These types are automatically available via auto-imports - no manual import statements required.",[100,664,666],{"id":665},"server-routes","Server Routes",[77,668,669],{},"Type generation also works in your Nitro server routes:",[126,671,674],{"className":128,"code":672,"filename":673,"language":130,"meta":131,"style":131},"export default defineEventHandler(async () => {\n  const sanity = useSanity()\n  const query = groq`*[_type == \"movie\"] { title }`\n  \n  return sanity.fetch\u003CFetchMoviesQueryResult>(query)\n})\n","server\u002Fapi\u002Fmovies.ts",[80,675,676,698,714,732,737,764],{"__ignoreMap":131},[135,677,678,680,682,685,687,690,693,696],{"class":137,"line":138},[135,679,200],{"class":141},[135,681,240],{"class":141},[135,683,684],{"class":243}," defineEventHandler",[135,686,247],{"class":149},[135,688,689],{"class":203},"async",[135,691,692],{"class":145}," ()",[135,694,695],{"class":203}," =>",[135,697,284],{"class":145},[135,699,700,703,706,708,711],{"class":137,"line":169},[135,701,702],{"class":203},"  const",[135,704,705],{"class":149}," sanity",[135,707,467],{"class":145},[135,709,710],{"class":243}," useSanity",[135,712,713],{"class":255},"()\n",[135,715,716,718,721,723,725,727,730],{"class":137,"line":190},[135,717,702],{"class":203},[135,719,720],{"class":149}," query",[135,722,467],{"class":145},[135,724,435],{"class":243},[135,726,438],{"class":145},[135,728,729],{"class":162},"*[_type == \"movie\"] { title }",[135,731,444],{"class":145},[135,733,734],{"class":137,"line":197},[135,735,736],{"class":255},"  \n",[135,738,739,742,744,747,750,752,755,757,759,762],{"class":137,"line":303},[135,740,741],{"class":141},"  return",[135,743,705],{"class":149},[135,745,746],{"class":145},".",[135,748,749],{"class":243},"fetch",[135,751,395],{"class":145},[135,753,754],{"class":478},"FetchMoviesQueryResult",[135,756,482],{"class":145},[135,758,247],{"class":255},[135,760,761],{"class":149},"query",[135,763,362],{"class":255},[135,765,766,768],{"class":137,"line":313},[135,767,359],{"class":145},[135,769,362],{"class":149},[95,771,773],{"id":772},"configuration-options","Configuration Options",[100,775,777],{"id":776},"typegenenabled",[80,778,779],{},"typegen.enabled",[781,782,783,791],"ul",{},[784,785,786,787],"li",{},"Type: ",[788,789,790],"strong",{},"boolean",[784,792,793,794],{},"Default: ",[788,795,796],{},[80,797,798],{},"false",[77,800,801],{},"Enable or disable type generation.",[100,803,805],{"id":804},"typegenschematypespath",[80,806,807],{},"typegen.schemaTypesPath",[781,809,810,815],{},[784,811,786,812],{},[788,813,814],{},"string",[784,816,817,818,821,822,825],{},"Required when ",[80,819,820],{},"enabled"," is ",[80,823,824],{},"true"," and there is no Sanity config file",[77,827,828],{},"Path to your schema types module. This should be a file that exports an array of Sanity schema type definitions. It is ignored when a Sanity config file is found, as the config is a superset of it.",[100,830,832],{"id":831},"typegenworkspace",[80,833,834],{},"typegen.workspace",[781,836,837],{},[784,838,786,839],{},[788,840,814],{},[77,842,843,844,594,847,850],{},"The name of the workspace to generate types for, when your Sanity config defines more than one. If it is omitted, the workspace matching your ",[80,845,846],{},"projectId",[80,848,849],{},"dataset"," is used.",[100,852,854],{"id":853},"typegenschematypesexport",[80,855,856],{},"typegen.schemaTypesExport",[781,858,859,863],{},[784,860,786,861],{},[788,862,814],{},[784,864,793,865],{},[788,866,867],{},[80,868,869],{},"'schemaTypes'",[77,871,872,873,876],{},"The export name to read schema types from. By default, the module looks for a named export called ",[80,874,875],{},"schemaTypes",", or falls back to the default export.",[100,878,880],{"id":879},"typegenquerypaths",[80,881,882],{},"typegen.queryPaths",[781,884,885,892],{},[784,886,786,887],{},[788,888,889,890],{},"string | string",[135,891],{},[784,893,793,894,899,900,903],{},[788,895,896],{},[80,897,898],{},"['**\u002F*.{ts,tsx,js,jsx,mjs,cjs,vue,astro}']"," (relative to ",[80,901,902],{},"srcDir",")",[77,905,906],{},"Glob pattern(s) specifying which files to scan for GROQ queries.",[100,908,910],{"id":909},"typegenoverloadclientmethods",[80,911,912],{},"typegen.overloadClientMethods",[781,914,915,919],{},[784,916,786,917],{},[788,918,790],{},[784,920,793,921],{},[788,922,923],{},[80,924,824],{},[77,926,927,928,931,932,934],{},"When enabled, generates ",[80,929,930],{},"@sanity\u002Fclient"," method overloads that provide type inference for the ",[80,933,749],{}," method.",[95,936,938],{"id":937},"current-limitations","Current Limitations",[940,941,943,944,947,948,950,951,953,954,956,957,746],"callout",{"type":942},"info","Currently, you must manually specify the result type in composables (e.g., ",[80,945,946],{},"useSanityQuery\u003CMoviesQueryResult>","). This is because ",[80,949,92],{}," checks for explicit imports of ",[80,952,382],{}," or ",[80,955,501],{},", but Nuxt uses auto-imports. Automatic type inference based on the query variable may be supported in a future update to ",[80,958,92],{},[95,960,962],{"id":961},"file-watching","File Watching",[77,964,965],{},"In development mode, the module watches for changes to:",[781,967,968,973,978],{},[784,969,970,971,903],{},"Your Sanity config file (",[80,972,112],{},[784,974,975,976,903],{},"Your schema types file (",[80,977,119],{},[784,979,980,981,984],{},"Any files matching ",[80,982,983],{},"queryPaths"," patterns",[77,986,987],{},"Types are automatically regenerated when these files change.",[989,990,991],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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}",{"title":131,"searchDepth":169,"depth":169,"links":993},[994,998,1005,1013,1014],{"id":97,"depth":169,"text":98,"children":995},[996,997],{"id":102,"depth":190,"text":103},{"id":222,"depth":190,"text":15},{"id":365,"depth":169,"text":19,"children":999},[1000,1001,1003,1004],{"id":375,"depth":190,"text":376},{"id":497,"depth":190,"text":1002},"Using defineQuery",{"id":600,"depth":190,"text":601},{"id":665,"depth":190,"text":666},{"id":772,"depth":169,"text":773,"children":1006},[1007,1008,1009,1010,1011,1012],{"id":776,"depth":190,"text":779},{"id":804,"depth":190,"text":807},{"id":831,"depth":190,"text":834},{"id":853,"depth":190,"text":856},{"id":879,"depth":190,"text":882},{"id":909,"depth":190,"text":912},{"id":937,"depth":169,"text":938},{"id":961,"depth":169,"text":962},"@nuxtjs\u002Fsanity supports automatic TypeScript type generation for your GROQ queries using @sanity\u002Fcodegen. This enables end-to-end type safety from your Sanity schema to your Vue components.","md",null,{},{"description":1015},"1RoaZhJgqKJLPtYUOkrvd3POVhDoiejpjUbSgMMucRs",[1022,1024],{"title":27,"path":28,"stem":29,"description":1023,"children":-1},"The Live Content API allows your app to subscribe to changes in your Sanity dataset and receive updates whenever documents are created, updated, or deleted.",{"title":40,"path":41,"stem":42,"description":131,"children":-1},1786984999117]