[{"data":1,"prerenderedAt":1322},["ShallowReactive",2],{"navigation_docs":3,"-guides-graphql-codegen":396,"-guides-graphql-codegen-surround":1317},[4,35,61,83],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":34},"Getting Started","lucide:rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22,26,30],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation",{"title":19,"path":20,"stem":21},"Project Structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure",{"title":23,"path":24,"stem":25},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F5.configuration",{"title":27,"path":28,"stem":29},"Requirements","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F6.requirements",{"title":31,"path":32,"stem":33},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F7.troubleshooting",false,{"title":36,"icon":37,"path":38,"stem":39,"children":40,"page":34},"Guides","lucide:book-search","\u002Fguides","2.guides",[41,45,49,53,57],{"title":42,"path":43,"stem":44},"Authentication","\u002Fguides\u002Fauthentication","2.guides\u002F1.authentication",{"title":46,"path":47,"stem":48},"Webhooks","\u002Fguides\u002Fwebhooks","2.guides\u002F2.webhooks",{"title":50,"path":51,"stem":52},"App Bridge","\u002Fguides\u002Fapp-bridge","2.guides\u002F3.app-bridge",{"title":54,"path":55,"stem":56},"Polaris Components","\u002Fguides\u002Fpolaris-components","2.guides\u002F4.polaris-components",{"title":58,"path":59,"stem":60},"GraphQL Codegen","\u002Fguides\u002Fgraphql-codegen","2.guides\u002F5.graphql-codegen",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":34},"API Reference","lucide:square-dashed-bottom-code","\u002Fapi","3.api",[67,71,75,79],{"title":68,"path":69,"stem":70},"Server Utilities","\u002Fapi\u002Fserver-utilities","3.api\u002F1.server-utilities",{"title":72,"path":73,"stem":74},"Composables","\u002Fapi\u002Fcomposables","3.api\u002F2.composables",{"title":76,"path":77,"stem":78},"Middleware","\u002Fapi\u002Fmiddleware","3.api\u002F4.middleware",{"title":80,"path":81,"stem":82},"Types","\u002Fapi\u002Ftypes","3.api\u002F5.types",{"title":84,"icon":85,"path":86,"stem":87,"children":88},"Polaris Web Components","ic:baseline-shopify","\u002Fpolaris-wc","4.polaris-wc",[89,91,124,145,166,243,264,289,318,371,384],{"title":84,"path":86,"stem":90},"4.polaris-wc\u002Findex",{"title":92,"path":93,"stem":94,"children":95,"page":34},"Layout","\u002Fpolaris-wc\u002Flayout","4.polaris-wc\u002F1.layout",[96,100,104,108,112,116,120],{"title":97,"path":98,"stem":99},"Page","\u002Fpolaris-wc\u002Flayout\u002Fpage","4.polaris-wc\u002F1.layout\u002F1.page",{"title":101,"path":102,"stem":103},"Box","\u002Fpolaris-wc\u002Flayout\u002Fbox","4.polaris-wc\u002F1.layout\u002F2.box",{"title":105,"path":106,"stem":107},"Stack","\u002Fpolaris-wc\u002Flayout\u002Fstack","4.polaris-wc\u002F1.layout\u002F3.stack",{"title":109,"path":110,"stem":111},"Grid","\u002Fpolaris-wc\u002Flayout\u002Fgrid","4.polaris-wc\u002F1.layout\u002F4.grid",{"title":113,"path":114,"stem":115},"GridItem","\u002Fpolaris-wc\u002Flayout\u002Fgrid-item","4.polaris-wc\u002F1.layout\u002F5.grid-item",{"title":117,"path":118,"stem":119},"Section","\u002Fpolaris-wc\u002Flayout\u002Fsection","4.polaris-wc\u002F1.layout\u002F6.section",{"title":121,"path":122,"stem":123},"Divider","\u002Fpolaris-wc\u002Flayout\u002Fdivider","4.polaris-wc\u002F1.layout\u002F7.divider",{"title":125,"path":126,"stem":127,"children":128,"page":34},"App Bridge Ui","\u002Fpolaris-wc\u002Fapp-bridge-ui","4.polaris-wc\u002F10.app-bridge-ui",[129,133,137,141],{"title":130,"path":131,"stem":132},"UiModal","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-modal","4.polaris-wc\u002F10.app-bridge-ui\u002F1.ui-modal",{"title":134,"path":135,"stem":136},"UiTitleBar","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-title-bar","4.polaris-wc\u002F10.app-bridge-ui\u002F2.ui-title-bar",{"title":138,"path":139,"stem":140},"UiSaveBar","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-save-bar","4.polaris-wc\u002F10.app-bridge-ui\u002F3.ui-save-bar",{"title":142,"path":143,"stem":144},"UiNavMenu","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-nav-menu","4.polaris-wc\u002F10.app-bridge-ui\u002F4.ui-nav-menu",{"title":146,"path":147,"stem":148,"children":149,"page":34},"Actions","\u002Fpolaris-wc\u002Factions","4.polaris-wc\u002F2.actions",[150,154,158,162],{"title":151,"path":152,"stem":153},"Button","\u002Fpolaris-wc\u002Factions\u002Fbutton","4.polaris-wc\u002F2.actions\u002F1.button",{"title":155,"path":156,"stem":157},"ButtonGroup","\u002Fpolaris-wc\u002Factions\u002Fbutton-group","4.polaris-wc\u002F2.actions\u002F2.button-group",{"title":159,"path":160,"stem":161},"Clickable","\u002Fpolaris-wc\u002Factions\u002Fclickable","4.polaris-wc\u002F2.actions\u002F3.clickable",{"title":163,"path":164,"stem":165},"Link","\u002Fpolaris-wc\u002Factions\u002Flink","4.polaris-wc\u002F2.actions\u002F4.link",{"title":167,"path":168,"stem":169,"children":170,"page":34},"Forms","\u002Fpolaris-wc\u002Fforms","4.polaris-wc\u002F3.forms",[171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239],{"title":172,"path":173,"stem":174},"TextField","\u002Fpolaris-wc\u002Fforms\u002Ftext-field","4.polaris-wc\u002F3.forms\u002F01.text-field",{"title":176,"path":177,"stem":178},"NumberField","\u002Fpolaris-wc\u002Fforms\u002Fnumber-field","4.polaris-wc\u002F3.forms\u002F02.number-field",{"title":180,"path":181,"stem":182},"EmailField","\u002Fpolaris-wc\u002Fforms\u002Femail-field","4.polaris-wc\u002F3.forms\u002F03.email-field",{"title":184,"path":185,"stem":186},"PasswordField","\u002Fpolaris-wc\u002Fforms\u002Fpassword-field","4.polaris-wc\u002F3.forms\u002F04.password-field",{"title":188,"path":189,"stem":190},"UrlField","\u002Fpolaris-wc\u002Fforms\u002Furl-field","4.polaris-wc\u002F3.forms\u002F05.url-field",{"title":192,"path":193,"stem":194},"MoneyField","\u002Fpolaris-wc\u002Fforms\u002Fmoney-field","4.polaris-wc\u002F3.forms\u002F06.money-field",{"title":196,"path":197,"stem":198},"ColorField","\u002Fpolaris-wc\u002Fforms\u002Fcolor-field","4.polaris-wc\u002F3.forms\u002F07.color-field",{"title":200,"path":201,"stem":202},"DateField","\u002Fpolaris-wc\u002Fforms\u002Fdate-field","4.polaris-wc\u002F3.forms\u002F08.date-field",{"title":204,"path":205,"stem":206},"TextArea","\u002Fpolaris-wc\u002Fforms\u002Ftext-area","4.polaris-wc\u002F3.forms\u002F09.text-area",{"title":208,"path":209,"stem":210},"Select","\u002Fpolaris-wc\u002Fforms\u002Fselect","4.polaris-wc\u002F3.forms\u002F10.select",{"title":212,"path":213,"stem":214},"Checkbox","\u002Fpolaris-wc\u002Fforms\u002Fcheckbox","4.polaris-wc\u002F3.forms\u002F11.checkbox",{"title":216,"path":217,"stem":218},"Switch","\u002Fpolaris-wc\u002Fforms\u002Fswitch","4.polaris-wc\u002F3.forms\u002F12.switch",{"title":220,"path":221,"stem":222},"ChoiceList","\u002Fpolaris-wc\u002Fforms\u002Fchoice-list","4.polaris-wc\u002F3.forms\u002F13.choice-list",{"title":224,"path":225,"stem":226},"Choice","\u002Fpolaris-wc\u002Fforms\u002Fchoice","4.polaris-wc\u002F3.forms\u002F14.choice",{"title":228,"path":229,"stem":230},"SearchField","\u002Fpolaris-wc\u002Fforms\u002Fsearch-field","4.polaris-wc\u002F3.forms\u002F15.search-field",{"title":232,"path":233,"stem":234},"DropZone","\u002Fpolaris-wc\u002Fforms\u002Fdrop-zone","4.polaris-wc\u002F3.forms\u002F16.drop-zone",{"title":236,"path":237,"stem":238},"ColorPicker","\u002Fpolaris-wc\u002Fforms\u002Fcolor-picker","4.polaris-wc\u002F3.forms\u002F17.color-picker",{"title":240,"path":241,"stem":242},"DatePicker","\u002Fpolaris-wc\u002Fforms\u002Fdate-picker","4.polaris-wc\u002F3.forms\u002F18.date-picker",{"title":244,"path":245,"stem":246,"children":247,"page":34},"Feedback","\u002Fpolaris-wc\u002Ffeedback","4.polaris-wc\u002F4.feedback",[248,252,256,260],{"title":249,"path":250,"stem":251},"Banner","\u002Fpolaris-wc\u002Ffeedback\u002Fbanner","4.polaris-wc\u002F4.feedback\u002F1.banner",{"title":253,"path":254,"stem":255},"Badge","\u002Fpolaris-wc\u002Ffeedback\u002Fbadge","4.polaris-wc\u002F4.feedback\u002F2.badge",{"title":257,"path":258,"stem":259},"Spinner","\u002Fpolaris-wc\u002Ffeedback\u002Fspinner","4.polaris-wc\u002F4.feedback\u002F3.spinner",{"title":261,"path":262,"stem":263},"Tooltip","\u002Fpolaris-wc\u002Ffeedback\u002Ftooltip","4.polaris-wc\u002F4.feedback\u002F4.tooltip",{"title":265,"path":266,"stem":267,"children":268,"page":34},"Navigation","\u002Fpolaris-wc\u002Fnavigation","4.polaris-wc\u002F5.navigation",[269,273,277,281,285],{"title":270,"path":271,"stem":272},"AppNav","\u002Fpolaris-wc\u002Fnavigation\u002Fapp-nav","4.polaris-wc\u002F5.navigation\u002F1.app-nav",{"title":274,"path":275,"stem":276},"Menu","\u002Fpolaris-wc\u002Fnavigation\u002Fmenu","4.polaris-wc\u002F5.navigation\u002F2.menu",{"title":278,"path":279,"stem":280},"Option","\u002Fpolaris-wc\u002Fnavigation\u002Foption","4.polaris-wc\u002F5.navigation\u002F3.option",{"title":282,"path":283,"stem":284},"OptionGroup","\u002Fpolaris-wc\u002Fnavigation\u002Foption-group","4.polaris-wc\u002F5.navigation\u002F4.option-group",{"title":286,"path":287,"stem":288},"Popover","\u002Fpolaris-wc\u002Fnavigation\u002Fpopover","4.polaris-wc\u002F5.navigation\u002F5.popover",{"title":290,"path":291,"stem":292,"children":293,"page":34},"Data","\u002Fpolaris-wc\u002Fdata","4.polaris-wc\u002F6.data",[294,298,302,306,310,314],{"title":295,"path":296,"stem":297},"Table","\u002Fpolaris-wc\u002Fdata\u002Ftable","4.polaris-wc\u002F6.data\u002F1.table",{"title":299,"path":300,"stem":301},"TableHeader","\u002Fpolaris-wc\u002Fdata\u002Ftable-header","4.polaris-wc\u002F6.data\u002F2.table-header",{"title":303,"path":304,"stem":305},"TableHeaderRow","\u002Fpolaris-wc\u002Fdata\u002Ftable-header-row","4.polaris-wc\u002F6.data\u002F3.table-header-row",{"title":307,"path":308,"stem":309},"TableBody","\u002Fpolaris-wc\u002Fdata\u002Ftable-body","4.polaris-wc\u002F6.data\u002F4.table-body",{"title":311,"path":312,"stem":313},"TableRow","\u002Fpolaris-wc\u002Fdata\u002Ftable-row","4.polaris-wc\u002F6.data\u002F5.table-row",{"title":315,"path":316,"stem":317},"TableCell","\u002Fpolaris-wc\u002Fdata\u002Ftable-cell","4.polaris-wc\u002F6.data\u002F6.table-cell",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Content","\u002Fpolaris-wc\u002Fcontent","4.polaris-wc\u002F7.content",[323,327,331,335,339,343,347,351,355,359,363,367],{"title":324,"path":325,"stem":326},"Text","\u002Fpolaris-wc\u002Fcontent\u002Ftext","4.polaris-wc\u002F7.content\u002F01.text",{"title":328,"path":329,"stem":330},"Heading","\u002Fpolaris-wc\u002Fcontent\u002Fheading","4.polaris-wc\u002F7.content\u002F02.heading",{"title":332,"path":333,"stem":334},"Paragraph","\u002Fpolaris-wc\u002Fcontent\u002Fparagraph","4.polaris-wc\u002F7.content\u002F03.paragraph",{"title":336,"path":337,"stem":338},"Icon","\u002Fpolaris-wc\u002Fcontent\u002Ficon","4.polaris-wc\u002F7.content\u002F04.icon",{"title":340,"path":341,"stem":342},"Image","\u002Fpolaris-wc\u002Fcontent\u002Fimage","4.polaris-wc\u002F7.content\u002F05.image",{"title":344,"path":345,"stem":346},"Thumbnail","\u002Fpolaris-wc\u002Fcontent\u002Fthumbnail","4.polaris-wc\u002F7.content\u002F06.thumbnail",{"title":348,"path":349,"stem":350},"Avatar","\u002Fpolaris-wc\u002Fcontent\u002Favatar","4.polaris-wc\u002F7.content\u002F07.avatar",{"title":352,"path":353,"stem":354},"Chip","\u002Fpolaris-wc\u002Fcontent\u002Fchip","4.polaris-wc\u002F7.content\u002F08.chip",{"title":356,"path":357,"stem":358},"ClickableChip","\u002Fpolaris-wc\u002Fcontent\u002Fclickable-chip","4.polaris-wc\u002F7.content\u002F09.clickable-chip",{"title":360,"path":361,"stem":362},"ListItem","\u002Fpolaris-wc\u002Fcontent\u002Flist-item","4.polaris-wc\u002F7.content\u002F10.list-item",{"title":364,"path":365,"stem":366},"OrderedList","\u002Fpolaris-wc\u002Fcontent\u002Fordered-list","4.polaris-wc\u002F7.content\u002F11.ordered-list",{"title":368,"path":369,"stem":370},"UnorderedList","\u002Fpolaris-wc\u002Fcontent\u002Funordered-list","4.polaris-wc\u002F7.content\u002F12.unordered-list",{"title":372,"path":373,"stem":374,"children":375,"page":34},"Overlays","\u002Fpolaris-wc\u002Foverlays","4.polaris-wc\u002F8.overlays",[376,380],{"title":377,"path":378,"stem":379},"Modal","\u002Fpolaris-wc\u002Foverlays\u002Fmodal","4.polaris-wc\u002F8.overlays\u002F1.modal",{"title":381,"path":382,"stem":383},"QueryContainer","\u002Fpolaris-wc\u002Foverlays\u002Fquery-container","4.polaris-wc\u002F8.overlays\u002F2.query-container",{"title":385,"path":386,"stem":387,"children":388,"page":34},"App","\u002Fpolaris-wc\u002Fapp","4.polaris-wc\u002F9.app",[389,392],{"title":385,"path":390,"stem":391},"\u002Fpolaris-wc\u002Fapp\u002Fapp","4.polaris-wc\u002F9.app\u002F1.app",{"title":393,"path":394,"stem":395},"LoadingIndicator","\u002Fpolaris-wc\u002Fapp\u002Floading-indicator","4.polaris-wc\u002F9.app\u002F2.loading-indicator",{"id":397,"title":58,"body":398,"description":1309,"extension":1310,"links":1311,"meta":1312,"navigation":541,"path":59,"seo":1313,"stem":60,"__hash__":1316},"docs\u002F2.guides\u002F5.graphql-codegen.md",{"type":399,"value":400,"toc":1295},"minimark",[401,406,428,434,438,443,477,481,660,664,670,687,701,709,713,728,731,769,773,776,1001,1005,1008,1071,1074,1131,1135,1145,1148,1172,1176,1264,1268,1276,1288,1291],[402,403,405],"h2",{"id":404},"overview","Overview",[407,408,409,413,414,417,418,427],"p",{},[410,411,412],"code",{},"shopify-app-nuxt"," can auto-generate TypeScript types from your Shopify Admin API GraphQL queries. When enabled, the module fetches the Admin API schema via introspection during ",[410,415,416],{},"nuxt prepare"," and generates typed definitions using ",[419,420,424],"a",{"href":421,"rel":422},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@shopify\u002Fgraphql-codegen",[423],"nofollow",[410,425,426],{},"@shopify\u002Fgraphql-codegen",".",[407,429,430,431,427],{},"Generated types are importable via ",[410,432,433],{},"#shopify\u002Ftypes\u002F\u003Cversion>\u002Fadmin",[402,435,437],{"id":436},"setup","Setup",[439,440,442],"h3",{"id":441},"_1-install-peer-dependencies","1. Install peer dependencies",[444,445,450],"pre",{"className":446,"code":447,"language":448,"meta":449,"style":449},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add -d @graphql-codegen\u002Fcli @shopify\u002Fgraphql-codegen graphql\n","bash","",[410,451,452],{"__ignoreMap":449},[453,454,457,461,465,468,471,474],"span",{"class":455,"line":456},"line",1,[453,458,460],{"class":459},"sBMFI","bun",[453,462,464],{"class":463},"sfazB"," add",[453,466,467],{"class":463}," -d",[453,469,470],{"class":463}," @graphql-codegen\u002Fcli",[453,472,473],{"class":463}," @shopify\u002Fgraphql-codegen",[453,475,476],{"class":463}," graphql\n",[439,478,480],{"id":479},"_2-enable-codegen-in-your-config","2. Enable codegen in your config",[444,482,487],{"className":483,"code":484,"filename":485,"language":486,"meta":449,"style":449},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['shopify-app-nuxt'],\n\n  shopify: {\n    apiKey: '...',\n    apiSecretKey: '...',\n    appUrl: '...',\n\n    \u002F\u002F Generate types for the default apiVersion\n    codegen: true\n\n    \u002F\u002F Or specify multiple API versions\n    \u002F\u002F codegen: ['2025-10', '2026-01'],\n  }\n})\n","nuxt.config.ts","ts",[410,488,489,510,536,543,554,572,588,604,609,616,628,633,639,645,651],{"__ignoreMap":449},[453,490,491,495,498,502,506],{"class":455,"line":456},[453,492,494],{"class":493},"s7zQu","export",[453,496,497],{"class":493}," default",[453,499,501],{"class":500},"s2Zo4"," defineNuxtConfig",[453,503,505],{"class":504},"sTEyZ","(",[453,507,509],{"class":508},"sMK4o","{\n",[453,511,513,517,520,523,526,528,530,533],{"class":455,"line":512},2,[453,514,516],{"class":515},"swJcz","  modules",[453,518,519],{"class":508},":",[453,521,522],{"class":504}," [",[453,524,525],{"class":508},"'",[453,527,412],{"class":463},[453,529,525],{"class":508},[453,531,532],{"class":504},"]",[453,534,535],{"class":508},",\n",[453,537,539],{"class":455,"line":538},3,[453,540,542],{"emptyLinePlaceholder":541},true,"\n",[453,544,546,549,551],{"class":455,"line":545},4,[453,547,548],{"class":515},"  shopify",[453,550,519],{"class":508},[453,552,553],{"class":508}," {\n",[453,555,557,560,562,565,568,570],{"class":455,"line":556},5,[453,558,559],{"class":515},"    apiKey",[453,561,519],{"class":508},[453,563,564],{"class":508}," '",[453,566,567],{"class":463},"...",[453,569,525],{"class":508},[453,571,535],{"class":508},[453,573,575,578,580,582,584,586],{"class":455,"line":574},6,[453,576,577],{"class":515},"    apiSecretKey",[453,579,519],{"class":508},[453,581,564],{"class":508},[453,583,567],{"class":463},[453,585,525],{"class":508},[453,587,535],{"class":508},[453,589,591,594,596,598,600,602],{"class":455,"line":590},7,[453,592,593],{"class":515},"    appUrl",[453,595,519],{"class":508},[453,597,564],{"class":508},[453,599,567],{"class":463},[453,601,525],{"class":508},[453,603,535],{"class":508},[453,605,607],{"class":455,"line":606},8,[453,608,542],{"emptyLinePlaceholder":541},[453,610,612],{"class":455,"line":611},9,[453,613,615],{"class":614},"sHwdD","    \u002F\u002F Generate types for the default apiVersion\n",[453,617,619,622,624],{"class":455,"line":618},10,[453,620,621],{"class":515},"    codegen",[453,623,519],{"class":508},[453,625,627],{"class":626},"sfNiH"," true\n",[453,629,631],{"class":455,"line":630},11,[453,632,542],{"emptyLinePlaceholder":541},[453,634,636],{"class":455,"line":635},12,[453,637,638],{"class":614},"    \u002F\u002F Or specify multiple API versions\n",[453,640,642],{"class":455,"line":641},13,[453,643,644],{"class":614},"    \u002F\u002F codegen: ['2025-10', '2026-01'],\n",[453,646,648],{"class":455,"line":647},14,[453,649,650],{"class":508},"  }\n",[453,652,654,657],{"class":455,"line":653},15,[453,655,656],{"class":508},"}",[453,658,659],{"class":504},")\n",[439,661,663],{"id":662},"_3-add-store-credentials","3. Add store credentials",[407,665,666,667,519],{},"The module needs to introspect your store's Admin API to fetch the schema. Add these environment variables to your ",[410,668,669],{},".env",[444,671,675],{"className":672,"code":673,"language":674,"meta":449,"style":449},"language-dotenv shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SHOPIFY_CODEGEN_STORE_DOMAIN=your-store.myshopify.com\nSHOPIFY_CODEGEN_ADMIN_ACCESS_TOKEN=shpca_xxxxx\n","dotenv",[410,676,677,682],{"__ignoreMap":449},[453,678,679],{"class":455,"line":456},[453,680,681],{},"SHOPIFY_CODEGEN_STORE_DOMAIN=your-store.myshopify.com\n",[453,683,684],{"class":455,"line":512},[453,685,686],{},"SHOPIFY_CODEGEN_ADMIN_ACCESS_TOKEN=shpca_xxxxx\n",[407,688,689,690,695,696,427],{},"You can obtain an Admin API access token from a ",[419,691,694],{"href":692,"rel":693},"https:\u002F\u002Fhelp.shopify.com\u002Fen\u002Fmanual\u002Fapps\u002Fapp-types\u002Fcustom-apps",[423],"custom app"," in your Shopify store settings, or from the ",[419,697,700],{"href":698,"rel":699},"https:\u002F\u002Fpartners.shopify.com",[423],"Shopify Partners Dashboard",[702,703,704,705,708],"tip",{},"The token only needs ",[410,706,707],{},"read_"," scopes for the resources you query. For full schema introspection, a token with broad read access works best.",[439,710,712],{"id":711},"_4-generate-types","4. Generate types",[444,714,716],{"className":446,"code":715,"language":448,"meta":449,"style":449},"bun run dev:prepare\n",[410,717,718],{"__ignoreMap":449},[453,719,720,722,725],{"class":455,"line":456},[453,721,460],{"class":459},[453,723,724],{"class":463}," run",[453,726,727],{"class":463}," dev:prepare\n",[407,729,730],{},"The module will:",[732,733,734,738,753,763],"ol",{},[735,736,737],"li",{},"Fetch the Admin API schema via GraphQL introspection",[735,739,740,741,744,745,748,749,752],{},"Scan your ",[410,742,743],{},"server\u002F**\u002F*"," and ",[410,746,747],{},"app\u002F**\u002F*"," files for ",[410,750,751],{},"#graphql"," tagged queries",[735,754,755,756,759,760],{},"Generate typed ",[410,757,758],{},".d.ts"," files in ",[410,761,762],{},".nuxt\u002Ftypes\u002Fshopify\u002F",[735,764,765,766,768],{},"Register ",[410,767,433],{}," aliases",[402,770,772],{"id":771},"usage","Usage",[407,774,775],{},"Once types are generated, import them in your server routes or composables:",[444,777,780],{"className":483,"code":778,"filename":779,"language":486,"meta":449,"style":449},"import type { GetProductsQuery } from '#shopify\u002Ftypes\u002F2026-01\u002Fadmin'\n\nexport default defineEventHandler(async (event) => {\n  const { admin } = await useShopifyAdmin(event)\n\n  const response = await admin.graphql(`#graphql\n    query GetProducts {\n      products(first: 10) {\n        nodes {\n          id\n          title\n          description\n        }\n      }\n    }\n  `)\n\n  const data: GetProductsQuery = await response.json()\n  return data\n})\n","server\u002Fapi\u002Fproducts.ts",[410,781,782,810,814,844,871,875,901,906,911,916,921,926,931,936,941,946,954,959,985,994],{"__ignoreMap":449},[453,783,784,787,790,793,796,799,802,804,807],{"class":455,"line":456},[453,785,786],{"class":493},"import",[453,788,789],{"class":493}," type",[453,791,792],{"class":508}," {",[453,794,795],{"class":504}," GetProductsQuery",[453,797,798],{"class":508}," }",[453,800,801],{"class":493}," from",[453,803,564],{"class":508},[453,805,806],{"class":463},"#shopify\u002Ftypes\u002F2026-01\u002Fadmin",[453,808,809],{"class":508},"'\n",[453,811,812],{"class":455,"line":512},[453,813,542],{"emptyLinePlaceholder":541},[453,815,816,818,820,823,825,829,832,836,839,842],{"class":455,"line":538},[453,817,494],{"class":493},[453,819,497],{"class":493},[453,821,822],{"class":500}," defineEventHandler",[453,824,505],{"class":504},[453,826,828],{"class":827},"spNyl","async",[453,830,831],{"class":508}," (",[453,833,835],{"class":834},"sHdIc","event",[453,837,838],{"class":508},")",[453,840,841],{"class":827}," =>",[453,843,553],{"class":508},[453,845,846,849,851,854,856,859,862,865,867,869],{"class":455,"line":545},[453,847,848],{"class":827},"  const",[453,850,792],{"class":508},[453,852,853],{"class":504}," admin",[453,855,798],{"class":508},[453,857,858],{"class":508}," =",[453,860,861],{"class":493}," await",[453,863,864],{"class":500}," useShopifyAdmin",[453,866,505],{"class":515},[453,868,835],{"class":504},[453,870,659],{"class":515},[453,872,873],{"class":455,"line":556},[453,874,542],{"emptyLinePlaceholder":541},[453,876,877,879,882,884,886,888,890,893,895,898],{"class":455,"line":574},[453,878,848],{"class":827},[453,880,881],{"class":504}," response",[453,883,858],{"class":508},[453,885,861],{"class":493},[453,887,853],{"class":504},[453,889,427],{"class":508},[453,891,892],{"class":500},"graphql",[453,894,505],{"class":515},[453,896,897],{"class":508},"`",[453,899,900],{"class":463},"#graphql\n",[453,902,903],{"class":455,"line":590},[453,904,905],{"class":463},"    query GetProducts {\n",[453,907,908],{"class":455,"line":606},[453,909,910],{"class":463},"      products(first: 10) {\n",[453,912,913],{"class":455,"line":611},[453,914,915],{"class":463},"        nodes {\n",[453,917,918],{"class":455,"line":618},[453,919,920],{"class":463},"          id\n",[453,922,923],{"class":455,"line":630},[453,924,925],{"class":463},"          title\n",[453,927,928],{"class":455,"line":635},[453,929,930],{"class":463},"          description\n",[453,932,933],{"class":455,"line":641},[453,934,935],{"class":463},"        }\n",[453,937,938],{"class":455,"line":647},[453,939,940],{"class":463},"      }\n",[453,942,943],{"class":455,"line":653},[453,944,945],{"class":463},"    }\n",[453,947,949,952],{"class":455,"line":948},16,[453,950,951],{"class":508},"  `",[453,953,659],{"class":515},[453,955,957],{"class":455,"line":956},17,[453,958,542],{"emptyLinePlaceholder":541},[453,960,962,964,967,969,971,973,975,977,979,982],{"class":455,"line":961},18,[453,963,848],{"class":827},[453,965,966],{"class":504}," data",[453,968,519],{"class":508},[453,970,795],{"class":459},[453,972,858],{"class":508},[453,974,861],{"class":493},[453,976,881],{"class":504},[453,978,427],{"class":508},[453,980,981],{"class":500},"json",[453,983,984],{"class":515},"()\n",[453,986,988,991],{"class":455,"line":987},19,[453,989,990],{"class":493},"  return",[453,992,993],{"class":504}," data\n",[453,995,997,999],{"class":455,"line":996},20,[453,998,656],{"class":508},[453,1000,659],{"class":504},[402,1002,1004],{"id":1003},"multiple-api-versions","Multiple API versions",[407,1006,1007],{},"If your app needs to support multiple API versions (e.g., during migration), pass an array:",[444,1009,1011],{"className":483,"code":1010,"filename":485,"language":486,"meta":449,"style":449},"export default defineNuxtConfig({\n  shopify: {\n    codegen: ['2025-10', '2026-01']\n  }\n})\n",[410,1012,1013,1025,1033,1061,1065],{"__ignoreMap":449},[453,1014,1015,1017,1019,1021,1023],{"class":455,"line":456},[453,1016,494],{"class":493},[453,1018,497],{"class":493},[453,1020,501],{"class":500},[453,1022,505],{"class":504},[453,1024,509],{"class":508},[453,1026,1027,1029,1031],{"class":455,"line":512},[453,1028,548],{"class":515},[453,1030,519],{"class":508},[453,1032,553],{"class":508},[453,1034,1035,1037,1039,1041,1043,1046,1048,1051,1053,1056,1058],{"class":455,"line":538},[453,1036,621],{"class":515},[453,1038,519],{"class":508},[453,1040,522],{"class":504},[453,1042,525],{"class":508},[453,1044,1045],{"class":463},"2025-10",[453,1047,525],{"class":508},[453,1049,1050],{"class":508},",",[453,1052,564],{"class":508},[453,1054,1055],{"class":463},"2026-01",[453,1057,525],{"class":508},[453,1059,1060],{"class":504},"]\n",[453,1062,1063],{"class":455,"line":545},[453,1064,650],{"class":508},[453,1066,1067,1069],{"class":455,"line":556},[453,1068,656],{"class":508},[453,1070,659],{"class":504},[407,1072,1073],{},"Each version gets its own alias:",[444,1075,1077],{"className":483,"code":1076,"language":486,"meta":449,"style":449},"import type { GetProductsQuery as V2025 } from '#shopify\u002Ftypes\u002F2025-10\u002Fadmin'\nimport type { GetProductsQuery as V2026 } from '#shopify\u002Ftypes\u002F2026-01\u002Fadmin'\n",[410,1078,1079,1106],{"__ignoreMap":449},[453,1080,1081,1083,1085,1087,1089,1092,1095,1097,1099,1101,1104],{"class":455,"line":456},[453,1082,786],{"class":493},[453,1084,789],{"class":493},[453,1086,792],{"class":508},[453,1088,795],{"class":504},[453,1090,1091],{"class":493}," as",[453,1093,1094],{"class":504}," V2025",[453,1096,798],{"class":508},[453,1098,801],{"class":493},[453,1100,564],{"class":508},[453,1102,1103],{"class":463},"#shopify\u002Ftypes\u002F2025-10\u002Fadmin",[453,1105,809],{"class":508},[453,1107,1108,1110,1112,1114,1116,1118,1121,1123,1125,1127,1129],{"class":455,"line":512},[453,1109,786],{"class":493},[453,1111,789],{"class":493},[453,1113,792],{"class":508},[453,1115,795],{"class":504},[453,1117,1091],{"class":493},[453,1119,1120],{"class":504}," V2026",[453,1122,798],{"class":508},[453,1124,801],{"class":493},[453,1126,564],{"class":508},[453,1128,806],{"class":463},[453,1130,809],{"class":508},[402,1132,1134],{"id":1133},"caching","Caching",[407,1136,1137,1138,1141,1142,1144],{},"Schemas are cached in ",[410,1139,1140],{},".nuxt\u002Fshopify-schema\u002F"," after the first fetch. Subsequent ",[410,1143,416],{}," runs will reuse the cached schema and skip the network request.",[407,1146,1147],{},"To force a re-fetch, delete the cache directory:",[444,1149,1151],{"className":446,"code":1150,"language":448,"meta":449,"style":449},"rm -rf .nuxt\u002Fshopify-schema\nbun run dev:prepare\n",[410,1152,1153,1164],{"__ignoreMap":449},[453,1154,1155,1158,1161],{"class":455,"line":456},[453,1156,1157],{"class":459},"rm",[453,1159,1160],{"class":463}," -rf",[453,1162,1163],{"class":463}," .nuxt\u002Fshopify-schema\n",[453,1165,1166,1168,1170],{"class":455,"line":512},[453,1167,460],{"class":459},[453,1169,724],{"class":463},[453,1171,727],{"class":463},[402,1173,1175],{"id":1174},"how-it-works","How it works",[1177,1178,1179,1192],"table",{},[1180,1181,1182],"thead",{},[1183,1184,1185,1189],"tr",{},[1186,1187,1188],"th",{},"Step",[1186,1190,1191],{},"What happens",[1193,1194,1195,1208,1219,1230,1244,1254],"tbody",{},[1183,1196,1197,1202],{},[1198,1199,1200],"td",{},[410,1201,416],{},[1198,1203,1204,1205],{},"Module hooks into ",[410,1206,1207],{},"prepare:types",[1183,1209,1210,1213],{},[1198,1211,1212],{},"Schema fetch",[1198,1214,1215,1216],{},"Introspection query against ",[410,1217,1218],{},"https:\u002F\u002F\u003Cstore>\u002Fadmin\u002Fapi\u002F\u003Cversion>\u002Fgraphql.json",[1183,1220,1221,1224],{},[1198,1222,1223],{},"Cache",[1198,1225,1226,1227],{},"Schema JSON saved to ",[410,1228,1229],{},".nuxt\u002Fshopify-schema\u002F\u003Cversion>.json",[1183,1231,1232,1235],{},[1198,1233,1234],{},"Codegen",[1198,1236,1237,1240,1241,1243],{},[410,1238,1239],{},"@graphql-codegen\u002Fcli"," runs with ",[410,1242,426],{}," preset",[1183,1245,1246,1249],{},[1198,1247,1248],{},"Output",[1198,1250,1251],{},[410,1252,1253],{},".nuxt\u002Ftypes\u002Fshopify\u002Fadmin-\u003Cversion>.d.ts",[1183,1255,1256,1259],{},[1198,1257,1258],{},"Alias",[1198,1260,1261,1263],{},[410,1262,433],{}," registered in Nuxt",[402,1265,1267],{"id":1266},"graceful-degradation","Graceful degradation",[407,1269,1270,1271,1275],{},"The codegen step is ",[1272,1273,1274],"strong",{},"non-blocking",". If any of the following are missing, the module warns and continues without generating types:",[1277,1278,1279,1282,1285],"ul",{},[735,1280,1281],{},"Peer dependencies not installed",[735,1283,1284],{},"Store credentials env vars not set",[735,1286,1287],{},"Shopify API returns an error (invalid token, network issue)",[407,1289,1290],{},"Your app will still build and run — you just won't have the generated types until the issue is resolved.",[1292,1293,1294],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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}",{"title":449,"searchDepth":512,"depth":512,"links":1296},[1297,1298,1304,1305,1306,1307,1308],{"id":404,"depth":512,"text":405},{"id":436,"depth":512,"text":437,"children":1299},[1300,1301,1302,1303],{"id":441,"depth":538,"text":442},{"id":479,"depth":538,"text":480},{"id":662,"depth":538,"text":663},{"id":711,"depth":538,"text":712},{"id":771,"depth":512,"text":772},{"id":1003,"depth":512,"text":1004},{"id":1133,"depth":512,"text":1134},{"id":1174,"depth":512,"text":1175},{"id":1266,"depth":512,"text":1267},"Auto-generate typed Admin API queries with the codegen module option.","md",null,{},{"title":1314,"description":1315},"GraphQL Codegen — shopify-app-nuxt","Enable opt-in GraphQL code generation for fully typed Shopify Admin API queries in your Nuxt app.","Vh8YJO831Gkv0UO1ox70wszCe0grqxqKRkxc5MP9FjM",[1318,1320],{"title":54,"path":55,"stem":56,"description":1319,"children":-1},"Overview and quick start guide for Shopify Polaris and App Bridge UI components.",{"title":68,"path":69,"stem":70,"description":1321,"children":-1},"All auto-imported server utilities and",1776217204237]