[{"data":1,"prerenderedAt":2059},["ShallowReactive",2],{"navigation_docs":3,"-api-middleware":396,"-api-middleware-surround":2054},[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":76,"body":398,"description":2046,"extension":2047,"links":2048,"meta":2049,"navigation":599,"path":77,"seo":2050,"stem":78,"__hash__":2053},"docs\u002F3.api\u002F4.middleware.md",{"type":399,"value":400,"toc":2028},"minimark",[401,408,421,426,489,503,507,514,662,665,768,772,1100,1103,1108,1121,1124,1170,1185,1188,1191,1254,1260,1263,1433,1435,1439,1448,1452,1479,1483,1493,1497,1503,1556,1630,1634,1640,1654,2024],[402,403,405],"h2",{"id":404},"shopify-auth",[406,407,404],"code",{},[409,410,411,412,416,417,420],"p",{},"A ",[413,414,415],"strong",{},"named"," Nuxt route middleware that guards pages requiring an authenticated Shopify session. It is auto-registered by the module but ",[413,418,419],{},"not global"," — you opt-in per page.",[422,423,425],"h3",{"id":424},"how-it-works","How It Works",[427,428,429,445],"table",{},[430,431,432],"thead",{},[433,434,435,439,442],"tr",{},[436,437,438],"th",{},"Environment",[436,440,441],{},"Check",[436,443,444],{},"Redirect",[446,447,448,470],"tbody",{},[433,449,450,456,463],{},[451,452,453],"td",{},[413,454,455],{},"Server (SSR)",[451,457,458,459,462],{},"Looks for the ",[406,460,461],{},"shop"," query parameter that Shopify always provides when loading an embedded app",[451,464,465,466,469],{},"Stores the current URL in a ",[406,467,468],{},"shopify-redirect-to"," cookie and redirects to the auth page if missing",[433,471,472,477,484],{},[451,473,474],{},[413,475,476],{},"Client",[451,478,479,480,483],{},"Checks ",[406,481,482],{},"window.shopify.config.shop"," from App Bridge",[451,485,465,486,488],{},[406,487,468],{}," cookie and redirects to the auth page if unavailable",[409,490,491,492,494,495,498,499,502],{},"If the check fails on either side, the middleware saves the attempted URL in a ",[406,493,468],{}," cookie (so the user can be sent back after login) and navigates to the auth page (default ",[406,496,497],{},"\u002Fauth","). The path is configurable via ",[406,500,501],{},"authPagePath"," in the public runtime config.",[422,504,506],{"id":505},"usage","Usage",[409,508,509,510,513],{},"Add ",[406,511,512],{},"definePageMeta({ middleware: 'shopify-auth' })"," to any page that should require authentication:",[515,516,521],"pre",{"className":517,"code":518,"language":519,"meta":520,"style":520},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\ndefinePageMeta({\n  middleware: 'shopify-auth'\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CShPage title=\"Dashboard\">\n    \u003C!-- Only renders when authenticated -->\n  \u003C\u002FShPage>\n\u003C\u002Ftemplate>\n","vue","",[406,522,523,543,557,575,584,594,601,611,636,643,653],{"__ignoreMap":520},[524,525,528,532,536,540],"span",{"class":526,"line":527},"line",1,[524,529,531],{"class":530},"sMK4o","\u003C",[524,533,535],{"class":534},"swJcz","script",[524,537,539],{"class":538},"spNyl"," setup",[524,541,542],{"class":530},">\n",[524,544,546,550,554],{"class":526,"line":545},2,[524,547,549],{"class":548},"s2Zo4","definePageMeta",[524,551,553],{"class":552},"sTEyZ","(",[524,555,556],{"class":530},"{\n",[524,558,560,563,566,569,572],{"class":526,"line":559},3,[524,561,562],{"class":534},"  middleware",[524,564,565],{"class":530},":",[524,567,568],{"class":530}," '",[524,570,404],{"class":571},"sfazB",[524,573,574],{"class":530},"'\n",[524,576,578,581],{"class":526,"line":577},4,[524,579,580],{"class":530},"}",[524,582,583],{"class":552},")\n",[524,585,587,590,592],{"class":526,"line":586},5,[524,588,589],{"class":530},"\u003C\u002F",[524,591,535],{"class":534},[524,593,542],{"class":530},[524,595,597],{"class":526,"line":596},6,[524,598,600],{"emptyLinePlaceholder":599},true,"\n",[524,602,604,606,609],{"class":526,"line":603},7,[524,605,531],{"class":530},[524,607,608],{"class":534},"template",[524,610,542],{"class":530},[524,612,614,617,620,623,626,629,632,634],{"class":526,"line":613},8,[524,615,616],{"class":530},"  \u003C",[524,618,619],{"class":534},"ShPage",[524,621,622],{"class":538}," title",[524,624,625],{"class":530},"=",[524,627,628],{"class":530},"\"",[524,630,631],{"class":571},"Dashboard",[524,633,628],{"class":530},[524,635,542],{"class":530},[524,637,639],{"class":526,"line":638},9,[524,640,642],{"class":641},"sHwdD","    \u003C!-- Only renders when authenticated -->\n",[524,644,646,649,651],{"class":526,"line":645},10,[524,647,648],{"class":530},"  \u003C\u002F",[524,650,619],{"class":534},[524,652,542],{"class":530},[524,654,656,658,660],{"class":526,"line":655},11,[524,657,589],{"class":530},[524,659,608],{"class":534},[524,661,542],{"class":530},[409,663,664],{},"You can also apply it to a layout if all pages under that layout need protection:",[515,666,668],{"className":517,"code":667,"language":519,"meta":520,"style":520},"\u003C!-- layouts\u002Fdefault.vue -->\n\u003Cscript setup>\ndefinePageMeta({\n  middleware: 'shopify-auth'\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CShApp>\n    \u003Cslot \u002F>\n  \u003C\u002FShApp>\n\u003C\u002Ftemplate>\n",[406,669,670,675,685,693,705,711,719,723,731,740,751,759],{"__ignoreMap":520},[524,671,672],{"class":526,"line":527},[524,673,674],{"class":641},"\u003C!-- layouts\u002Fdefault.vue -->\n",[524,676,677,679,681,683],{"class":526,"line":545},[524,678,531],{"class":530},[524,680,535],{"class":534},[524,682,539],{"class":538},[524,684,542],{"class":530},[524,686,687,689,691],{"class":526,"line":559},[524,688,549],{"class":548},[524,690,553],{"class":552},[524,692,556],{"class":530},[524,694,695,697,699,701,703],{"class":526,"line":577},[524,696,562],{"class":534},[524,698,565],{"class":530},[524,700,568],{"class":530},[524,702,404],{"class":571},[524,704,574],{"class":530},[524,706,707,709],{"class":526,"line":586},[524,708,580],{"class":530},[524,710,583],{"class":552},[524,712,713,715,717],{"class":526,"line":596},[524,714,589],{"class":530},[524,716,535],{"class":534},[524,718,542],{"class":530},[524,720,721],{"class":526,"line":603},[524,722,600],{"emptyLinePlaceholder":599},[524,724,725,727,729],{"class":526,"line":613},[524,726,531],{"class":530},[524,728,608],{"class":534},[524,730,542],{"class":530},[524,732,733,735,738],{"class":526,"line":638},[524,734,616],{"class":530},[524,736,737],{"class":534},"ShApp",[524,739,542],{"class":530},[524,741,742,745,748],{"class":526,"line":645},[524,743,744],{"class":530},"    \u003C",[524,746,747],{"class":534},"slot",[524,749,750],{"class":530}," \u002F>\n",[524,752,753,755,757],{"class":526,"line":655},[524,754,648],{"class":530},[524,756,737],{"class":534},[524,758,542],{"class":530},[524,760,762,764,766],{"class":526,"line":761},12,[524,763,589],{"class":530},[524,765,608],{"class":534},[524,767,542],{"class":530},[422,769,771],{"id":770},"source","Source",[515,773,777],{"className":774,"code":775,"language":776,"meta":520,"style":520},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","defineNuxtRouteMiddleware((to) => {\n  const config = useRuntimeConfig().public.shopify\n  const authPage = config.authPagePath || '\u002Fauth'\n  const redirectTo = useCookie('shopify-redirect-to')\n\n  if (import.meta.server) {\n    const shop = to.query.shop as string | undefined\n    if (!shop) {\n      redirectTo.value = to.fullPath\n      return navigateTo(authPage)\n    }\n    return\n  }\n\n  const shop = window.shopify?.config?.shop\n  if (!shop) {\n    redirectTo.value = to.fullPath\n    return navigateTo(authPage)\n  }\n})\n","ts",[406,778,779,801,829,853,876,880,907,942,958,977,992,997,1002,1008,1013,1041,1056,1074,1088,1093],{"__ignoreMap":520},[524,780,781,784,786,788,792,795,798],{"class":526,"line":527},[524,782,783],{"class":548},"defineNuxtRouteMiddleware",[524,785,553],{"class":552},[524,787,553],{"class":530},[524,789,791],{"class":790},"sHdIc","to",[524,793,794],{"class":530},")",[524,796,797],{"class":538}," =>",[524,799,800],{"class":530}," {\n",[524,802,803,806,809,812,815,818,821,824,826],{"class":526,"line":545},[524,804,805],{"class":538},"  const",[524,807,808],{"class":552}," config",[524,810,811],{"class":530}," =",[524,813,814],{"class":548}," useRuntimeConfig",[524,816,817],{"class":534},"()",[524,819,820],{"class":530},".",[524,822,823],{"class":552},"public",[524,825,820],{"class":530},[524,827,828],{"class":552},"shopify\n",[524,830,831,833,836,838,840,842,844,847,849,851],{"class":526,"line":559},[524,832,805],{"class":538},[524,834,835],{"class":552}," authPage",[524,837,811],{"class":530},[524,839,808],{"class":552},[524,841,820],{"class":530},[524,843,501],{"class":552},[524,845,846],{"class":530}," ||",[524,848,568],{"class":530},[524,850,497],{"class":571},[524,852,574],{"class":530},[524,854,855,857,860,862,865,867,870,872,874],{"class":526,"line":577},[524,856,805],{"class":538},[524,858,859],{"class":552}," redirectTo",[524,861,811],{"class":530},[524,863,864],{"class":548}," useCookie",[524,866,553],{"class":534},[524,868,869],{"class":530},"'",[524,871,468],{"class":571},[524,873,869],{"class":530},[524,875,583],{"class":534},[524,877,878],{"class":526,"line":586},[524,879,600],{"emptyLinePlaceholder":599},[524,881,882,886,889,892,894,897,899,902,905],{"class":526,"line":596},[524,883,885],{"class":884},"s7zQu","  if",[524,887,888],{"class":534}," (",[524,890,891],{"class":884},"import",[524,893,820],{"class":530},[524,895,896],{"class":552},"meta",[524,898,820],{"class":530},[524,900,901],{"class":552},"server",[524,903,904],{"class":534},") ",[524,906,556],{"class":530},[524,908,909,912,915,917,920,922,925,927,929,932,936,939],{"class":526,"line":603},[524,910,911],{"class":538},"    const",[524,913,914],{"class":552}," shop",[524,916,811],{"class":530},[524,918,919],{"class":552}," to",[524,921,820],{"class":530},[524,923,924],{"class":552},"query",[524,926,820],{"class":530},[524,928,461],{"class":552},[524,930,931],{"class":884}," as",[524,933,935],{"class":934},"sBMFI"," string",[524,937,938],{"class":530}," |",[524,940,941],{"class":934}," undefined\n",[524,943,944,947,949,952,954,956],{"class":526,"line":613},[524,945,946],{"class":884},"    if",[524,948,888],{"class":534},[524,950,951],{"class":530},"!",[524,953,461],{"class":552},[524,955,904],{"class":534},[524,957,556],{"class":530},[524,959,960,963,965,968,970,972,974],{"class":526,"line":638},[524,961,962],{"class":552},"      redirectTo",[524,964,820],{"class":530},[524,966,967],{"class":552},"value",[524,969,811],{"class":530},[524,971,919],{"class":552},[524,973,820],{"class":530},[524,975,976],{"class":552},"fullPath\n",[524,978,979,982,985,987,990],{"class":526,"line":645},[524,980,981],{"class":884},"      return",[524,983,984],{"class":548}," navigateTo",[524,986,553],{"class":534},[524,988,989],{"class":552},"authPage",[524,991,583],{"class":534},[524,993,994],{"class":526,"line":655},[524,995,996],{"class":530},"    }\n",[524,998,999],{"class":526,"line":761},[524,1000,1001],{"class":884},"    return\n",[524,1003,1005],{"class":526,"line":1004},13,[524,1006,1007],{"class":530},"  }\n",[524,1009,1011],{"class":526,"line":1010},14,[524,1012,600],{"emptyLinePlaceholder":599},[524,1014,1016,1018,1020,1022,1025,1027,1030,1033,1036,1038],{"class":526,"line":1015},15,[524,1017,805],{"class":538},[524,1019,914],{"class":552},[524,1021,811],{"class":530},[524,1023,1024],{"class":552}," window",[524,1026,820],{"class":530},[524,1028,1029],{"class":552},"shopify",[524,1031,1032],{"class":530},"?.",[524,1034,1035],{"class":552},"config",[524,1037,1032],{"class":530},[524,1039,1040],{"class":552},"shop\n",[524,1042,1044,1046,1048,1050,1052,1054],{"class":526,"line":1043},16,[524,1045,885],{"class":884},[524,1047,888],{"class":534},[524,1049,951],{"class":530},[524,1051,461],{"class":552},[524,1053,904],{"class":534},[524,1055,556],{"class":530},[524,1057,1059,1062,1064,1066,1068,1070,1072],{"class":526,"line":1058},17,[524,1060,1061],{"class":552},"    redirectTo",[524,1063,820],{"class":530},[524,1065,967],{"class":552},[524,1067,811],{"class":530},[524,1069,919],{"class":552},[524,1071,820],{"class":530},[524,1073,976],{"class":552},[524,1075,1077,1080,1082,1084,1086],{"class":526,"line":1076},18,[524,1078,1079],{"class":884},"    return",[524,1081,984],{"class":548},[524,1083,553],{"class":534},[524,1085,989],{"class":552},[524,1087,583],{"class":534},[524,1089,1091],{"class":526,"line":1090},19,[524,1092,1007],{"class":530},[524,1094,1096,1098],{"class":526,"line":1095},20,[524,1097,580],{"class":530},[524,1099,583],{"class":552},[1101,1102],"hr",{},[402,1104,1106],{"id":1105},"shopify-guest",[406,1107,1105],{},[409,1109,411,1110,1112,1113,1116,1117,1120],{},[413,1111,415],{}," Nuxt route middleware for pages that should only be accessible to ",[413,1114,1115],{},"unauthenticated"," users — most notably the login page. If the user is already authenticated, it redirects them away. It is auto-registered by the module and applied to the built-in ",[406,1118,1119],{},"auth-login.vue"," page by default.",[422,1122,425],{"id":1123},"how-it-works-1",[427,1125,1126,1136],{},[430,1127,1128],{},[433,1129,1130,1132,1134],{},[436,1131,438],{},[436,1133,441],{},[436,1135,444],{},[446,1137,1138,1150],{},[433,1139,1140,1144,1147],{},[451,1141,1142],{},[413,1143,455],{},[451,1145,1146],{},"No check — allows the page to render",[451,1148,1149],{},"—",[433,1151,1152,1156,1160],{},[451,1153,1154],{},[413,1155,476],{},[451,1157,479,1158,483],{},[406,1159,482],{},[451,1161,1162,1163,1165,1166,1169],{},"If a shop is configured (authenticated), redirects to the URL stored in the ",[406,1164,468],{}," cookie, or ",[406,1167,1168],{},"\u002F"," if no cookie is set",[409,1171,1172,1173,1175,1176,1178,1179,1181,1182,1184],{},"This works hand-in-hand with ",[406,1174,404],{},": when an unauthenticated user tries to visit a protected page, ",[406,1177,404],{}," stores the target URL in a cookie and redirects to ",[406,1180,497],{},". Once the merchant completes login and App Bridge initialises, ",[406,1183,1105],{}," picks up the stored URL and sends them back to where they originally wanted to go.",[422,1186,506],{"id":1187},"usage-1",[409,1189,1190],{},"Apply it to your login or guest-only pages:",[515,1192,1194],{"className":517,"code":1193,"language":519,"meta":520,"style":520},"\u003Cscript setup>\ndefinePageMeta({\n  layout: false,\n  middleware: 'shopify-guest'\n})\n\u003C\u002Fscript>\n",[406,1195,1196,1206,1214,1228,1240,1246],{"__ignoreMap":520},[524,1197,1198,1200,1202,1204],{"class":526,"line":527},[524,1199,531],{"class":530},[524,1201,535],{"class":534},[524,1203,539],{"class":538},[524,1205,542],{"class":530},[524,1207,1208,1210,1212],{"class":526,"line":545},[524,1209,549],{"class":548},[524,1211,553],{"class":552},[524,1213,556],{"class":530},[524,1215,1216,1219,1221,1225],{"class":526,"line":559},[524,1217,1218],{"class":534},"  layout",[524,1220,565],{"class":530},[524,1222,1224],{"class":1223},"sfNiH"," false",[524,1226,1227],{"class":530},",\n",[524,1229,1230,1232,1234,1236,1238],{"class":526,"line":577},[524,1231,562],{"class":534},[524,1233,565],{"class":530},[524,1235,568],{"class":530},[524,1237,1105],{"class":571},[524,1239,574],{"class":530},[524,1241,1242,1244],{"class":526,"line":586},[524,1243,580],{"class":530},[524,1245,583],{"class":552},[524,1247,1248,1250,1252],{"class":526,"line":596},[524,1249,589],{"class":530},[524,1251,535],{"class":534},[524,1253,542],{"class":530},[409,1255,1256,1257,1259],{},"The built-in ",[406,1258,1119],{}," page already includes this middleware.",[422,1261,771],{"id":1262},"source-1",[515,1264,1266],{"className":774,"code":1265,"language":776,"meta":520,"style":520},"defineNuxtRouteMiddleware(() => {\n  const redirectTo = useCookie('shopify-redirect-to')\n\n  if (import.meta.server) {\n    return\n  }\n\n  const shop = window.shopify?.config?.shop\n\n  if (shop) {\n    const target = redirectTo.value || '\u002F'\n    redirectTo.value = null\n    return navigateTo(target)\n  }\n})\n",[406,1267,1268,1280,1300,1304,1324,1328,1332,1336,1358,1362,1374,1397,1410,1423,1427],{"__ignoreMap":520},[524,1269,1270,1272,1274,1276,1278],{"class":526,"line":527},[524,1271,783],{"class":548},[524,1273,553],{"class":552},[524,1275,817],{"class":530},[524,1277,797],{"class":538},[524,1279,800],{"class":530},[524,1281,1282,1284,1286,1288,1290,1292,1294,1296,1298],{"class":526,"line":545},[524,1283,805],{"class":538},[524,1285,859],{"class":552},[524,1287,811],{"class":530},[524,1289,864],{"class":548},[524,1291,553],{"class":534},[524,1293,869],{"class":530},[524,1295,468],{"class":571},[524,1297,869],{"class":530},[524,1299,583],{"class":534},[524,1301,1302],{"class":526,"line":559},[524,1303,600],{"emptyLinePlaceholder":599},[524,1305,1306,1308,1310,1312,1314,1316,1318,1320,1322],{"class":526,"line":577},[524,1307,885],{"class":884},[524,1309,888],{"class":534},[524,1311,891],{"class":884},[524,1313,820],{"class":530},[524,1315,896],{"class":552},[524,1317,820],{"class":530},[524,1319,901],{"class":552},[524,1321,904],{"class":534},[524,1323,556],{"class":530},[524,1325,1326],{"class":526,"line":586},[524,1327,1001],{"class":884},[524,1329,1330],{"class":526,"line":596},[524,1331,1007],{"class":530},[524,1333,1334],{"class":526,"line":603},[524,1335,600],{"emptyLinePlaceholder":599},[524,1337,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356],{"class":526,"line":613},[524,1339,805],{"class":538},[524,1341,914],{"class":552},[524,1343,811],{"class":530},[524,1345,1024],{"class":552},[524,1347,820],{"class":530},[524,1349,1029],{"class":552},[524,1351,1032],{"class":530},[524,1353,1035],{"class":552},[524,1355,1032],{"class":530},[524,1357,1040],{"class":552},[524,1359,1360],{"class":526,"line":638},[524,1361,600],{"emptyLinePlaceholder":599},[524,1363,1364,1366,1368,1370,1372],{"class":526,"line":645},[524,1365,885],{"class":884},[524,1367,888],{"class":534},[524,1369,461],{"class":552},[524,1371,904],{"class":534},[524,1373,556],{"class":530},[524,1375,1376,1378,1381,1383,1385,1387,1389,1391,1393,1395],{"class":526,"line":655},[524,1377,911],{"class":538},[524,1379,1380],{"class":552}," target",[524,1382,811],{"class":530},[524,1384,859],{"class":552},[524,1386,820],{"class":530},[524,1388,967],{"class":552},[524,1390,846],{"class":530},[524,1392,568],{"class":530},[524,1394,1168],{"class":571},[524,1396,574],{"class":530},[524,1398,1399,1401,1403,1405,1407],{"class":526,"line":761},[524,1400,1061],{"class":552},[524,1402,820],{"class":530},[524,1404,967],{"class":552},[524,1406,811],{"class":530},[524,1408,1409],{"class":530}," null\n",[524,1411,1412,1414,1416,1418,1421],{"class":526,"line":1004},[524,1413,1079],{"class":884},[524,1415,984],{"class":548},[524,1417,553],{"class":534},[524,1419,1420],{"class":552},"target",[524,1422,583],{"class":534},[524,1424,1425],{"class":526,"line":1010},[524,1426,1007],{"class":530},[524,1428,1429,1431],{"class":526,"line":1015},[524,1430,580],{"class":530},[524,1432,583],{"class":552},[1101,1434],{},[402,1436,1438],{"id":1437},"default-auth-login-page","Default Auth Login Page",[409,1440,1441,1442,1444,1445,1447],{},"The module ships a built-in ",[406,1443,497],{}," page (",[406,1446,1119],{},") that provides a styled login form for merchants. It is automatically registered unless explicitly disabled.",[422,1449,1451],{"id":1450},"what-it-does","What It Does",[1453,1454,1455,1463,1473],"ol",{},[1456,1457,1458,1459,1462],"li",{},"Presents a centered card with the Shopify logo, a shop domain input field, and a ",[413,1460,1461],{},"Log in"," button",[1456,1464,1465,1466,1469,1470,794],{},"Accepts a bare store name (e.g., ",[406,1467,1468],{},"my-shop",") or a full domain (",[406,1471,1472],{},"my-shop.myshopify.com",[1456,1474,1475,1476],{},"On submit, redirects the merchant to the OAuth flow at ",[406,1477,1478],{},"{authPathPrefix}?shop={domain}",[422,1480,1482],{"id":1481},"appearance","Appearance",[409,1484,1485,1486,1489,1490,1492],{},"The page renders with ",[406,1487,1488],{},"layout: false",", applies the ",[406,1491,1105],{}," middleware (so authenticated users are redirected away), and uses self-contained scoped styles that match the Shopify admin aesthetic — no Polaris dependency required.",[422,1494,1496],{"id":1495},"controlling-the-auth-page","Controlling the Auth Page",[409,1498,1499,1500,1502],{},"The ",[406,1501,989],{}," module option controls this page:",[427,1504,1505,1515],{},[430,1506,1507],{},[433,1508,1509,1512],{},[436,1510,1511],{},"Value",[436,1513,1514],{},"Behavior",[446,1516,1517,1533,1543],{},[433,1518,1519,1525],{},[451,1520,1521],{},[1522,1523,1524],"em",{},"(not set)",[451,1526,1527,1528,1530,1531],{},"Registers the default ",[406,1529,1119],{}," at ",[406,1532,497],{},[433,1534,1535,1540],{},[451,1536,1537],{},[406,1538,1539],{},"false",[451,1541,1542],{},"Disables the built-in page entirely — you must handle the route yourself",[433,1544,1545,1550],{},[451,1546,1547],{},[406,1548,1549],{},"'\u002Fpath\u002Fto\u002FMyLogin.vue'",[451,1551,1552,1553,1555],{},"Registers your custom component at ",[406,1554,497],{}," instead",[515,1557,1559],{"className":774,"code":1558,"language":776,"meta":520,"style":520},"\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  shopify: {\n    \u002F\u002F Use defaults (built-in login page at \u002Fauth)\n    \u002F\u002F authPage: undefined\n    \u002F\u002F Disable the built-in page\n    \u002F\u002F authPage: false\n    \u002F\u002F Use a custom component\n    \u002F\u002F authPage: '~\u002Fcomponents\u002FMyShopifyLogin.vue'\n  }\n})\n",[406,1560,1561,1566,1581,1590,1595,1600,1605,1610,1615,1620,1624],{"__ignoreMap":520},[524,1562,1563],{"class":526,"line":527},[524,1564,1565],{"class":641},"\u002F\u002F nuxt.config.ts\n",[524,1567,1568,1571,1574,1577,1579],{"class":526,"line":545},[524,1569,1570],{"class":884},"export",[524,1572,1573],{"class":884}," default",[524,1575,1576],{"class":548}," defineNuxtConfig",[524,1578,553],{"class":552},[524,1580,556],{"class":530},[524,1582,1583,1586,1588],{"class":526,"line":559},[524,1584,1585],{"class":534},"  shopify",[524,1587,565],{"class":530},[524,1589,800],{"class":530},[524,1591,1592],{"class":526,"line":577},[524,1593,1594],{"class":641},"    \u002F\u002F Use defaults (built-in login page at \u002Fauth)\n",[524,1596,1597],{"class":526,"line":586},[524,1598,1599],{"class":641},"    \u002F\u002F authPage: undefined\n",[524,1601,1602],{"class":526,"line":596},[524,1603,1604],{"class":641},"    \u002F\u002F Disable the built-in page\n",[524,1606,1607],{"class":526,"line":603},[524,1608,1609],{"class":641},"    \u002F\u002F authPage: false\n",[524,1611,1612],{"class":526,"line":613},[524,1613,1614],{"class":641},"    \u002F\u002F Use a custom component\n",[524,1616,1617],{"class":526,"line":638},[524,1618,1619],{"class":641},"    \u002F\u002F authPage: '~\u002Fcomponents\u002FMyShopifyLogin.vue'\n",[524,1621,1622],{"class":526,"line":645},[524,1623,1007],{"class":530},[524,1625,1626,1628],{"class":526,"line":655},[524,1627,580],{"class":530},[524,1629,583],{"class":552},[422,1631,1633],{"id":1632},"overriding-the-page","Overriding the Page",[409,1635,1636,1637,1639],{},"To fully customize the login experience while keeping the same route, create your own component and point ",[406,1638,989],{}," to it. Your component should:",[1453,1641,1642,1645],{},[1456,1643,1644],{},"Collect the shop domain from the merchant",[1456,1646,1647,1648,1650,1651],{},"Redirect to ",[406,1649,1478],{}," with ",[406,1652,1653],{},"external: true",[515,1655,1657],{"className":517,"code":1656,"language":519,"meta":520,"style":520},"\u003C!-- components\u002FMyShopifyLogin.vue -->\n\u003Cscript setup>\ndefinePageMeta({ layout: false, middleware: 'shopify-guest' })\n\nconst shop = ref('')\nconst config = useRuntimeConfig()\n\nfunction login() {\n  const domain = shop.value.includes('.myshopify.com')\n    ? shop.value\n    : `${shop.value}.myshopify.com`\n  navigateTo(\n    `${config.public.shopify.authPathPrefix}?shop=${encodeURIComponent(domain)}`,\n    { external: true }\n  )\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cform @submit.prevent=\"login\">\n    \u003Cinput v-model=\"shop\" placeholder=\"your-shop\" \u002F>\n    \u003Cbutton type=\"submit\">Install\u003C\u002Fbutton>\n  \u003C\u002Fform>\n\u003C\u002Ftemplate>\n",[406,1658,1659,1664,1674,1709,1713,1733,1747,1751,1763,1794,1806,1827,1835,1874,1890,1895,1900,1908,1912,1920,1941,1974,2006,2015],{"__ignoreMap":520},[524,1660,1661],{"class":526,"line":527},[524,1662,1663],{"class":641},"\u003C!-- components\u002FMyShopifyLogin.vue -->\n",[524,1665,1666,1668,1670,1672],{"class":526,"line":545},[524,1667,531],{"class":530},[524,1669,535],{"class":534},[524,1671,539],{"class":538},[524,1673,542],{"class":530},[524,1675,1676,1678,1680,1683,1686,1688,1690,1693,1696,1698,1700,1702,1704,1707],{"class":526,"line":559},[524,1677,549],{"class":548},[524,1679,553],{"class":552},[524,1681,1682],{"class":530},"{",[524,1684,1685],{"class":534}," layout",[524,1687,565],{"class":530},[524,1689,1224],{"class":1223},[524,1691,1692],{"class":530},",",[524,1694,1695],{"class":534}," middleware",[524,1697,565],{"class":530},[524,1699,568],{"class":530},[524,1701,1105],{"class":571},[524,1703,869],{"class":530},[524,1705,1706],{"class":530}," }",[524,1708,583],{"class":552},[524,1710,1711],{"class":526,"line":577},[524,1712,600],{"emptyLinePlaceholder":599},[524,1714,1715,1718,1721,1723,1726,1728,1731],{"class":526,"line":586},[524,1716,1717],{"class":538},"const",[524,1719,1720],{"class":552}," shop ",[524,1722,625],{"class":530},[524,1724,1725],{"class":548}," ref",[524,1727,553],{"class":552},[524,1729,1730],{"class":530},"''",[524,1732,583],{"class":552},[524,1734,1735,1737,1740,1742,1744],{"class":526,"line":596},[524,1736,1717],{"class":538},[524,1738,1739],{"class":552}," config ",[524,1741,625],{"class":530},[524,1743,814],{"class":548},[524,1745,1746],{"class":552},"()\n",[524,1748,1749],{"class":526,"line":603},[524,1750,600],{"emptyLinePlaceholder":599},[524,1752,1753,1756,1759,1761],{"class":526,"line":613},[524,1754,1755],{"class":538},"function",[524,1757,1758],{"class":548}," login",[524,1760,817],{"class":530},[524,1762,800],{"class":530},[524,1764,1765,1767,1770,1772,1774,1776,1778,1780,1783,1785,1787,1790,1792],{"class":526,"line":638},[524,1766,805],{"class":538},[524,1768,1769],{"class":552}," domain",[524,1771,811],{"class":530},[524,1773,914],{"class":552},[524,1775,820],{"class":530},[524,1777,967],{"class":552},[524,1779,820],{"class":530},[524,1781,1782],{"class":548},"includes",[524,1784,553],{"class":534},[524,1786,869],{"class":530},[524,1788,1789],{"class":571},".myshopify.com",[524,1791,869],{"class":530},[524,1793,583],{"class":534},[524,1795,1796,1799,1801,1803],{"class":526,"line":645},[524,1797,1798],{"class":530},"    ?",[524,1800,914],{"class":552},[524,1802,820],{"class":530},[524,1804,1805],{"class":552},"value\n",[524,1807,1808,1811,1814,1816,1818,1820,1822,1824],{"class":526,"line":655},[524,1809,1810],{"class":530},"    :",[524,1812,1813],{"class":530}," `${",[524,1815,461],{"class":552},[524,1817,820],{"class":530},[524,1819,967],{"class":552},[524,1821,580],{"class":530},[524,1823,1789],{"class":571},[524,1825,1826],{"class":530},"`\n",[524,1828,1829,1832],{"class":526,"line":761},[524,1830,1831],{"class":548},"  navigateTo",[524,1833,1834],{"class":534},"(\n",[524,1836,1837,1840,1842,1844,1846,1848,1850,1852,1855,1857,1860,1863,1866,1869,1872],{"class":526,"line":1004},[524,1838,1839],{"class":530},"    `${",[524,1841,1035],{"class":552},[524,1843,820],{"class":530},[524,1845,823],{"class":552},[524,1847,820],{"class":530},[524,1849,1029],{"class":552},[524,1851,820],{"class":530},[524,1853,1854],{"class":552},"authPathPrefix",[524,1856,580],{"class":530},[524,1858,1859],{"class":571},"?shop=",[524,1861,1862],{"class":530},"${",[524,1864,1865],{"class":548},"encodeURIComponent",[524,1867,1868],{"class":552},"(domain)",[524,1870,1871],{"class":530},"}`",[524,1873,1227],{"class":530},[524,1875,1876,1879,1882,1884,1887],{"class":526,"line":1010},[524,1877,1878],{"class":530},"    {",[524,1880,1881],{"class":534}," external",[524,1883,565],{"class":530},[524,1885,1886],{"class":1223}," true",[524,1888,1889],{"class":530}," }\n",[524,1891,1892],{"class":526,"line":1015},[524,1893,1894],{"class":534},"  )\n",[524,1896,1897],{"class":526,"line":1043},[524,1898,1899],{"class":530},"}\n",[524,1901,1902,1904,1906],{"class":526,"line":1058},[524,1903,589],{"class":530},[524,1905,535],{"class":534},[524,1907,542],{"class":530},[524,1909,1910],{"class":526,"line":1076},[524,1911,600],{"emptyLinePlaceholder":599},[524,1913,1914,1916,1918],{"class":526,"line":1090},[524,1915,531],{"class":530},[524,1917,608],{"class":534},[524,1919,542],{"class":530},[524,1921,1922,1924,1927,1930,1932,1934,1937,1939],{"class":526,"line":1095},[524,1923,616],{"class":530},[524,1925,1926],{"class":534},"form",[524,1928,1929],{"class":538}," @submit.prevent",[524,1931,625],{"class":530},[524,1933,628],{"class":530},[524,1935,1936],{"class":571},"login",[524,1938,628],{"class":530},[524,1940,542],{"class":530},[524,1942,1944,1946,1949,1952,1954,1956,1958,1960,1963,1965,1967,1970,1972],{"class":526,"line":1943},21,[524,1945,744],{"class":530},[524,1947,1948],{"class":534},"input",[524,1950,1951],{"class":538}," v-model",[524,1953,625],{"class":530},[524,1955,628],{"class":530},[524,1957,461],{"class":571},[524,1959,628],{"class":530},[524,1961,1962],{"class":538}," placeholder",[524,1964,625],{"class":530},[524,1966,628],{"class":530},[524,1968,1969],{"class":571},"your-shop",[524,1971,628],{"class":530},[524,1973,750],{"class":530},[524,1975,1977,1979,1982,1985,1987,1989,1992,1994,1997,2000,2002,2004],{"class":526,"line":1976},22,[524,1978,744],{"class":530},[524,1980,1981],{"class":534},"button",[524,1983,1984],{"class":538}," type",[524,1986,625],{"class":530},[524,1988,628],{"class":530},[524,1990,1991],{"class":571},"submit",[524,1993,628],{"class":530},[524,1995,1996],{"class":530},">",[524,1998,1999],{"class":552},"Install",[524,2001,589],{"class":530},[524,2003,1981],{"class":534},[524,2005,542],{"class":530},[524,2007,2009,2011,2013],{"class":526,"line":2008},23,[524,2010,648],{"class":530},[524,2012,1926],{"class":534},[524,2014,542],{"class":530},[524,2016,2018,2020,2022],{"class":526,"line":2017},24,[524,2019,589],{"class":530},[524,2021,608],{"class":534},[524,2023,542],{"class":530},[2025,2026,2027],"style",{},"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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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 .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 .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}",{"title":520,"searchDepth":545,"depth":545,"links":2029},[2030,2035,2040],{"id":404,"depth":545,"text":404,"children":2031},[2032,2033,2034],{"id":424,"depth":559,"text":425},{"id":505,"depth":559,"text":506},{"id":770,"depth":559,"text":771},{"id":1105,"depth":545,"text":1105,"children":2036},[2037,2038,2039],{"id":1123,"depth":559,"text":425},{"id":1187,"depth":559,"text":506},{"id":1262,"depth":559,"text":771},{"id":1437,"depth":545,"text":1438,"children":2041},[2042,2043,2044,2045],{"id":1450,"depth":559,"text":1451},{"id":1481,"depth":559,"text":1482},{"id":1495,"depth":559,"text":1496},{"id":1632,"depth":559,"text":1633},"Client-side route middleware for Shopify authentication, guest redirect, and the built-in login page.","md",null,{},{"title":2051,"description":2052},"Middleware — shopify-app-nuxt API Reference","Reference for the shopify-auth and shopify-guest route middleware and the default auth-login page component.","RlWC-SFi8EvK4uSTaB-c3jd9I3cSKTY72u2GmkTFysY",[2055,2057],{"title":72,"path":73,"stem":74,"description":2056,"children":-1},"Client-side composables for App Bridge and authenticated fetch.",{"title":80,"path":81,"stem":82,"description":2058,"children":-1},"Key TypeScript types and interfaces exported by shopify-app-nuxt.",1776217204629]