[{"data":1,"prerenderedAt":1872},["ShallowReactive",2],{"navigation_docs":3,"-docs-cms-frameworks-nuxt":357,"-docs-cms-frameworks-nuxt-surround":1867,"docs-site-config":1857},[4,74,135,139,161,195,273],{"title":5,"path":6,"stem":7,"children":8},"Assets API","\u002Fdocs\u002Fassets","docs\u002Fassets\u002Findex",[9,10,32,57],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14,"page":31},"Getting Started","\u002Fdocs\u002Fassets\u002Fgetting-started","docs\u002Fassets\u002F1.getting-started",[15,19,23,27],{"title":16,"path":17,"stem":18},"Base URL","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fbase-url","docs\u002Fassets\u002F1.getting-started\u002F1.base-url",{"title":20,"path":21,"stem":22},"Important Notes","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fimportant-notes","docs\u002Fassets\u002F1.getting-started\u002F2.important-notes",{"title":24,"path":25,"stem":26},"URL Format","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Furl-format","docs\u002Fassets\u002F1.getting-started\u002F3.url-format",{"title":28,"path":29,"stem":30},"Custom Domains","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fcustom-domains","docs\u002Fassets\u002F1.getting-started\u002F4.custom-domains",false,{"title":33,"path":34,"stem":35,"children":36,"page":31},"Usage","\u002Fdocs\u002Fassets\u002Fusage","docs\u002Fassets\u002F2.usage",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"Transforms","\u002Fdocs\u002Fassets\u002Fusage\u002Ftransforms","docs\u002Fassets\u002F2.usage\u002F1.transforms",{"title":42,"path":43,"stem":44},"Caching","\u002Fdocs\u002Fassets\u002Fusage\u002Fcaching","docs\u002Fassets\u002F2.usage\u002F2.caching",{"title":46,"path":47,"stem":48},"Recipes","\u002Fdocs\u002Fassets\u002Fusage\u002Frecipes","docs\u002Fassets\u002F2.usage\u002F3.recipes",{"title":50,"path":51,"stem":52},"Best Practices","\u002Fdocs\u002Fassets\u002Fusage\u002Fbest-practices","docs\u002Fassets\u002F2.usage\u002F4.best-practices",{"title":54,"path":55,"stem":56},"Reference","\u002Fdocs\u002Fassets\u002Fusage\u002Freference","docs\u002Fassets\u002F2.usage\u002F5.reference",{"title":58,"path":59,"stem":60,"children":61,"page":31},"Integration","\u002Fdocs\u002Fassets\u002Fintegration","docs\u002Fassets\u002F3.integration",[62,66,70],{"title":63,"path":64,"stem":65},"Nuxt","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnuxt","docs\u002Fassets\u002F3.integration\u002F1.nuxt",{"title":67,"path":68,"stem":69},"Next.js","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnextjs","docs\u002Fassets\u002F3.integration\u002F2.nextjs",{"title":71,"path":72,"stem":73},"Plain HTML","\u002Fdocs\u002Fassets\u002Fintegration\u002Fhtml","docs\u002Fassets\u002F3.integration\u002F3.html",{"title":75,"path":76,"stem":77,"children":78},"Avvyr CMS","\u002Fdocs\u002Fcms","docs\u002Fcms\u002Findex",[79,80,92,105,118,131],{"title":75,"path":76,"stem":77},{"title":11,"path":81,"stem":82,"children":83,"page":31},"\u002Fdocs\u002Fcms\u002Fgetting-started","docs\u002Fcms\u002F1.getting-started",[84,88],{"title":85,"path":86,"stem":87},"Quickstart","\u002Fdocs\u002Fcms\u002Fgetting-started\u002Fquickstart","docs\u002Fcms\u002F1.getting-started\u002F1.quickstart",{"title":89,"path":90,"stem":91},"Keys and access","\u002Fdocs\u002Fcms\u002Fgetting-started\u002Fkeys-and-access","docs\u002Fcms\u002F1.getting-started\u002F2.keys-and-access",{"title":93,"path":94,"stem":95,"children":96,"page":31},"Content Model","\u002Fdocs\u002Fcms\u002Fcontent-model","docs\u002Fcms\u002F2.content-model",[97,101],{"title":98,"path":99,"stem":100},"Types and fields","\u002Fdocs\u002Fcms\u002Fcontent-model\u002Ftypes-and-fields","docs\u002Fcms\u002F2.content-model\u002F1.types-and-fields",{"title":102,"path":103,"stem":104},"Entries and publishing","\u002Fdocs\u002Fcms\u002Fcontent-model\u002Fentries-and-publishing","docs\u002Fcms\u002F2.content-model\u002F2.entries-and-publishing",{"title":106,"path":107,"stem":108,"children":109,"page":31},"Delivery","\u002Fdocs\u002Fcms\u002Fdelivery","docs\u002Fcms\u002F3.delivery",[110,114],{"title":111,"path":112,"stem":113},"Delivery API","\u002Fdocs\u002Fcms\u002Fdelivery\u002Fdelivery-api","docs\u002Fcms\u002F3.delivery\u002F1.delivery-api",{"title":115,"path":116,"stem":117},"Preview and live editing","\u002Fdocs\u002Fcms\u002Fdelivery\u002Fpreview","docs\u002Fcms\u002F3.delivery\u002F2.preview",{"title":119,"path":120,"stem":121,"children":122,"page":31},"Frameworks","\u002Fdocs\u002Fcms\u002Fframeworks","docs\u002Fcms\u002F4.frameworks",[123,127],{"title":124,"path":125,"stem":126},"JavaScript client","\u002Fdocs\u002Fcms\u002Fframeworks\u002Fjavascript-client","docs\u002Fcms\u002F4.frameworks\u002F1.javascript-client",{"title":128,"path":129,"stem":130},"Nuxt layer","\u002Fdocs\u002Fcms\u002Fframeworks\u002Fnuxt","docs\u002Fcms\u002F4.frameworks\u002F2.nuxt",{"title":132,"path":133,"stem":134},"Management API","\u002Fdocs\u002Fcms\u002Fmanagement-api","docs\u002Fcms\u002F5.management-api",{"title":136,"path":137,"stem":138},"Early Access","\u002Fdocs\u002Fearly-access","docs\u002Fearly-access",{"title":140,"path":141,"stem":142,"children":143},"Events API","\u002Fdocs\u002Fevents","docs\u002Fevents\u002Findex",[144,145],{"title":140,"path":141,"stem":142},{"title":11,"path":146,"stem":147,"children":148,"page":31},"\u002Fdocs\u002Fevents\u002Fgetting-started","docs\u002Fevents\u002F1.getting-started",[149,153,157],{"title":150,"path":151,"stem":152},"Subscribing","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fsubscribing","docs\u002Fevents\u002F1.getting-started\u002F1.subscribing",{"title":154,"path":155,"stem":156},"Event Delivery","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-delivery","docs\u002Fevents\u002F1.getting-started\u002F2.event-delivery",{"title":158,"path":159,"stem":160},"Event Reference","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-reference","docs\u002Fevents\u002F1.getting-started\u002F3.event-reference",{"title":162,"path":163,"stem":164,"children":165},"Integrations API","\u002Fdocs\u002Fintegrations","docs\u002Fintegrations\u002Findex",[166,167],{"title":162,"path":163,"stem":164},{"title":11,"path":168,"stem":169,"children":170,"page":31},"\u002Fdocs\u002Fintegrations\u002Fgetting-started","docs\u002Fintegrations\u002F1.getting-started",[171,175,179,183,187,191],{"title":172,"path":173,"stem":174},"Why Use It?","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwhy-integrations-api","docs\u002Fintegrations\u002F1.getting-started\u002F1.why-integrations-api",{"title":176,"path":177,"stem":178},"Use Cases","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwho-is-it-for","docs\u002Fintegrations\u002F1.getting-started\u002F2.who-is-it-for",{"title":180,"path":181,"stem":182},"Pre-built Connectors","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fpre-built-integrations","docs\u002Fintegrations\u002F1.getting-started\u002F3.pre-built-integrations",{"title":184,"path":185,"stem":186},"Custom Inbound","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fcustom-inbound-api","docs\u002Fintegrations\u002F1.getting-started\u002F4.custom-inbound-api",{"title":188,"path":189,"stem":190},"Event Lifecycle","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fevent-lifecycle","docs\u002Fintegrations\u002F1.getting-started\u002F5.event-lifecycle",{"title":192,"path":193,"stem":194},"API Endpoints","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fmanagement-api-endpoints","docs\u002Fintegrations\u002F1.getting-started\u002F6.management-api-endpoints",{"title":196,"path":197,"stem":198,"children":199},"MCP Server","\u002Fdocs\u002Fmcp","docs\u002Fmcp\u002Findex",[200,201,225,234,244],{"title":196,"path":197,"stem":198},{"title":11,"path":202,"stem":203,"children":204,"page":31},"\u002Fdocs\u002Fmcp\u002Fgetting-started","docs\u002Fmcp\u002F1.getting-started",[205,209,213,217,221],{"title":206,"path":207,"stem":208},"Claude","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fclaude","docs\u002Fmcp\u002F1.getting-started\u002F1.claude",{"title":210,"path":211,"stem":212},"Claude Code","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fclaude-code","docs\u002Fmcp\u002F1.getting-started\u002F2.claude-code",{"title":214,"path":215,"stem":216},"VS Code","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fvscode","docs\u002Fmcp\u002F1.getting-started\u002F3.vscode",{"title":218,"path":219,"stem":220},"Cursor","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fcursor","docs\u002Fmcp\u002F1.getting-started\u002F4.cursor",{"title":222,"path":223,"stem":224},"Verify the connection","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fverify","docs\u002Fmcp\u002F1.getting-started\u002F5.verify",{"title":226,"path":227,"stem":228,"children":229,"page":31},"Docs Server","\u002Fdocs\u002Fmcp\u002Fdocs-server","docs\u002Fmcp\u002F2.docs-server",[230],{"title":231,"path":232,"stem":233},"Docs server tools","\u002Fdocs\u002Fmcp\u002Fdocs-server\u002Ftools","docs\u002Fmcp\u002F2.docs-server\u002F1.tools",{"title":235,"path":236,"stem":237,"children":238},"API Server","\u002Fdocs\u002Fmcp\u002Fapi-server","docs\u002Fmcp\u002F3.api-server\u002Findex",[239,240],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"Available tools","\u002Fdocs\u002Fmcp\u002Fapi-server\u002Ftools","docs\u002Fmcp\u002F3.api-server\u002F1.tools",{"title":245,"path":246,"stem":247,"children":248,"page":31},"Examples","\u002Fdocs\u002Fmcp\u002Fexamples","docs\u002Fmcp\u002F4.examples",[249,253,257,261,265,269],{"title":250,"path":251,"stem":252},"Exploring an API","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fexploring-an-api","docs\u002Fmcp\u002F4.examples\u002F1.exploring-an-api",{"title":254,"path":255,"stem":256},"Building a Feature","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fbuilding-a-feature","docs\u002Fmcp\u002F4.examples\u002F2.building-a-feature",{"title":258,"path":259,"stem":260},"Understanding Models","\u002Fdocs\u002Fmcp\u002Fexamples\u002Funderstanding-models","docs\u002Fmcp\u002F4.examples\u002F3.understanding-models",{"title":262,"path":263,"stem":264},"Code Review","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fcode-review","docs\u002Fmcp\u002F4.examples\u002F4.code-review",{"title":266,"path":267,"stem":268},"Combining MCP Servers","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fmulti-mcp","docs\u002Fmcp\u002F4.examples\u002F5.multi-mcp",{"title":270,"path":271,"stem":272},"Tips","\u002Fdocs\u002Fmcp\u002Fexamples\u002Ftips","docs\u002Fmcp\u002F4.examples\u002F6.tips",{"title":274,"path":275,"stem":276,"children":277,"page":31},"Storefront SDK","\u002Fdocs\u002Fstorefront-sdk","docs\u002Fstorefront-sdk",[278,290,323,338],{"title":11,"path":279,"stem":280,"children":281,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started","docs\u002Fstorefront-sdk\u002F1.getting-started",[282,286],{"title":283,"path":284,"stem":285},"Installation","\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started\u002Finstallation","docs\u002Fstorefront-sdk\u002F1.getting-started\u002F1.installation",{"title":287,"path":288,"stem":289},"Configuration","\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started\u002Fconfiguration","docs\u002Fstorefront-sdk\u002F1.getting-started\u002F2.configuration",{"title":291,"path":292,"stem":293,"children":294,"page":31},"Resources","\u002Fdocs\u002Fstorefront-sdk\u002Fresources","docs\u002Fstorefront-sdk\u002F2.resources",[295,299,303,307,311,315,319],{"title":296,"path":297,"stem":298},"Products","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fproducts","docs\u002Fstorefront-sdk\u002F2.resources\u002F1.products",{"title":300,"path":301,"stem":302},"Cart","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fcart","docs\u002Fstorefront-sdk\u002F2.resources\u002F2.cart",{"title":304,"path":305,"stem":306},"Auth","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fauth","docs\u002Fstorefront-sdk\u002F2.resources\u002F3.auth",{"title":308,"path":309,"stem":310},"Checkout & Shipping","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fcheckout-shipping","docs\u002Fstorefront-sdk\u002F2.resources\u002F4.checkout-shipping",{"title":312,"path":313,"stem":314},"Orders, Returns & Reviews","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Forders-returns-reviews","docs\u002Fstorefront-sdk\u002F2.resources\u002F5.orders-returns-reviews",{"title":316,"path":317,"stem":318},"Customer assistant","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fassistant","docs\u002Fstorefront-sdk\u002F2.resources\u002F6.assistant",{"title":320,"path":321,"stem":322},"Products in images","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fproducts-in-images","docs\u002Fstorefront-sdk\u002F2.resources\u002F7.products-in-images",{"title":128,"path":324,"stem":325,"children":326,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer","docs\u002Fstorefront-sdk\u002F3.nuxt-layer",[327,331,335],{"title":328,"path":329,"stem":330},"Overview","\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Foverview","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F1.overview",{"title":332,"path":333,"stem":334},"Composables","\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Fcomposables","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F2.composables",{"title":316,"path":336,"stem":337},"\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Fassistant","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F3.assistant",{"title":67,"path":339,"stem":340,"children":341,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs","docs\u002Fstorefront-sdk\u002F4.nextjs",[342,345,349,353],{"title":328,"path":343,"stem":344},"\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Foverview","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F1.overview",{"title":346,"path":347,"stem":348},"Hooks","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fhooks","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F2.hooks",{"title":350,"path":351,"stem":352},"Server helpers and proxy","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fserver","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F3.server",{"title":354,"path":355,"stem":356},"Components","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fcomponents","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F4.components",{"id":358,"title":128,"body":359,"description":1855,"extension":1856,"links":1857,"meta":1858,"navigation":780,"path":129,"seo":1865,"stem":130,"__hash__":1866},"docs\u002Fdocs\u002Fcms\u002F4.frameworks\u002F2.nuxt.md",{"type":360,"value":361,"toc":1845},"minimark",[362,374,379,404,603,704,708,1049,1052,1160,1171,1174,1181,1258,1274,1555,1573,1575,1633,1637,1679,1684,1687,1698,1765,1772,1776,1834,1841],[363,364,365,369,370,373],"p",{},[366,367,368],"code",{},"@avvyr\u002Fcms-nuxt"," is a Nuxt 4 layer. The site's published content lives in the Nitro server's memory, so rendering a page is a lookup, not an API call. It includes composables, a block renderer, rich text, responsive images, preview, live editing and a sitemap helper. It does not depend on the storefront packages, but works alongside ",[366,371,372],{},"@avvyr\u002Fstorefront-nuxt",".",[375,376,378],"h2",{"id":377},"install","Install",[380,381,386],"pre",{"className":382,"code":383,"language":384,"meta":385,"style":385},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @avvyr\u002Fcms-nuxt\n","bash","",[366,387,388],{"__ignoreMap":385},[389,390,393,397,401],"span",{"class":391,"line":392},"line",1,[389,394,396],{"class":395},"sBMFI","npm",[389,398,400],{"class":399},"sfazB"," install",[389,402,403],{"class":399}," @avvyr\u002Fcms-nuxt\n",[380,405,409],{"className":406,"code":407,"language":408,"meta":385,"style":385},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  extends: ['@avvyr\u002Fcms-nuxt'],\n  cms: {\n    siteId: '\u003Csite id>',\n    locales: ['sv', 'en'],        \u002F\u002F optional, default: every language on the site\n    defaultLocale: 'sv',          \u002F\u002F optional, default: the site's default\n    syncIntervalMs: 5000,         \u002F\u002F optional\n    editorOrigins: ['https:\u002F\u002Fapp.avvyr.com'], \u002F\u002F optional, who may drive live editing\n  },\n})\n","ts",[366,410,411,417,439,465,476,494,528,547,564,588,594],{"__ignoreMap":385},[389,412,413],{"class":391,"line":392},[389,414,416],{"class":415},"sHwdD","\u002F\u002F nuxt.config.ts\n",[389,418,420,424,427,431,435],{"class":391,"line":419},2,[389,421,423],{"class":422},"s7zQu","export",[389,425,426],{"class":422}," default",[389,428,430],{"class":429},"s2Zo4"," defineNuxtConfig",[389,432,434],{"class":433},"sTEyZ","(",[389,436,438],{"class":437},"sMK4o","{\n",[389,440,442,446,449,452,455,457,459,462],{"class":391,"line":441},3,[389,443,445],{"class":444},"swJcz","  extends",[389,447,448],{"class":437},":",[389,450,451],{"class":433}," [",[389,453,454],{"class":437},"'",[389,456,368],{"class":399},[389,458,454],{"class":437},[389,460,461],{"class":433},"]",[389,463,464],{"class":437},",\n",[389,466,468,471,473],{"class":391,"line":467},4,[389,469,470],{"class":444},"  cms",[389,472,448],{"class":437},[389,474,475],{"class":437}," {\n",[389,477,479,482,484,487,490,492],{"class":391,"line":478},5,[389,480,481],{"class":444},"    siteId",[389,483,448],{"class":437},[389,485,486],{"class":437}," '",[389,488,489],{"class":399},"\u003Csite id>",[389,491,454],{"class":437},[389,493,464],{"class":437},[389,495,497,500,502,504,506,509,511,514,516,519,521,523,525],{"class":391,"line":496},6,[389,498,499],{"class":444},"    locales",[389,501,448],{"class":437},[389,503,451],{"class":433},[389,505,454],{"class":437},[389,507,508],{"class":399},"sv",[389,510,454],{"class":437},[389,512,513],{"class":437},",",[389,515,486],{"class":437},[389,517,518],{"class":399},"en",[389,520,454],{"class":437},[389,522,461],{"class":433},[389,524,513],{"class":437},[389,526,527],{"class":415},"        \u002F\u002F optional, default: every language on the site\n",[389,529,531,534,536,538,540,542,544],{"class":391,"line":530},7,[389,532,533],{"class":444},"    defaultLocale",[389,535,448],{"class":437},[389,537,486],{"class":437},[389,539,508],{"class":399},[389,541,454],{"class":437},[389,543,513],{"class":437},[389,545,546],{"class":415},"          \u002F\u002F optional, default: the site's default\n",[389,548,550,553,555,559,561],{"class":391,"line":549},8,[389,551,552],{"class":444},"    syncIntervalMs",[389,554,448],{"class":437},[389,556,558],{"class":557},"sbssI"," 5000",[389,560,513],{"class":437},[389,562,563],{"class":415},"         \u002F\u002F optional\n",[389,565,567,570,572,574,576,579,581,583,585],{"class":391,"line":566},9,[389,568,569],{"class":444},"    editorOrigins",[389,571,448],{"class":437},[389,573,451],{"class":433},[389,575,454],{"class":437},[389,577,578],{"class":399},"https:\u002F\u002Fapp.avvyr.com",[389,580,454],{"class":437},[389,582,461],{"class":433},[389,584,513],{"class":437},[389,586,587],{"class":415}," \u002F\u002F optional, who may drive live editing\n",[389,589,591],{"class":391,"line":590},10,[389,592,593],{"class":437},"  },\n",[389,595,597,600],{"class":391,"line":596},11,[389,598,599],{"class":437},"}",[389,601,602],{"class":433},")\n",[604,605,606,618],"table",{},[607,608,609],"thead",{},[610,611,612,616],"tr",{},[613,614,615],"th",{},"Environment variable",[613,617],{},[619,620,621,632,642,656,669,690],"tbody",{},[610,622,623,629],{},[624,625,626],"td",{},[366,627,628],{},"NUXT_CMS_KEY",[624,630,631],{},"Public delivery key. Server only: every read goes through your server.",[610,633,634,639],{},[624,635,636],{},[366,637,638],{},"NUXT_CMS_PREVIEW_KEY",[624,640,641],{},"Preview key, for drafts. Server only.",[610,643,644,649],{},[624,645,646],{},[366,647,648],{},"NUXT_CMS_WEBHOOK_SECRET",[624,650,651,652,655],{},"Secret for ",[366,653,654],{},"POST \u002Fapi\u002F_cms\u002Fsync",". The route is off until it is set.",[610,657,658,663],{},[624,659,660],{},[366,661,662],{},"NUXT_CMS_BASE_URL",[624,664,665,666,373],{},"Default ",[366,667,668],{},"https:\u002F\u002Fapi.avvyr.com",[610,670,671,683],{},[624,672,673,676,677,676,680],{},[366,674,675],{},"NUXT_CMS_SITE_ID",", ",[366,678,679],{},"NUXT_CMS_LOCALES",[366,681,682],{},"NUXT_CMS_SYNC_INTERVAL_MS",[624,684,685,686,689],{},"Override the ",[366,687,688],{},"cms"," config at runtime.",[610,691,692,697],{},[624,693,694],{},[366,695,696],{},"NUXT_PUBLIC_CMS_EDITOR_ORIGINS",[624,698,699,700,703],{},"Overrides ",[366,701,702],{},"editorOrigins",": a JSON array or a comma-separated list.",[375,705,707],{"id":706},"a-catch-all-page","A catch-all page",[380,709,713],{"className":710,"code":711,"language":712,"meta":385,"style":385},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- app\u002Fpages\u002F[...slug].vue -->\n\u003Cscript setup lang=\"ts\">\nimport type { CmsBlock } from '@avvyr\u002Fcms'\n\nconst route = useRoute()\nconst { data: page, error } = await useCmsPage\u003C{ body?: CmsBlock[] }>(() => route.path)\nif (error.value) throw createError({ statusCode: 404, fatal: true })\n\nuseCmsAlternates(page, { xDefault: 'sv' }) \u002F\u002F hreflang links\nuseSeoMeta({ title: () => page.value?.title })\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCmsBlocks :blocks=\"page?.fields.body\" \u002F>\n\u003C\u002Ftemplate>\n","vue",[366,714,715,720,748,776,782,798,861,908,912,943,979,988,993,1003,1040],{"__ignoreMap":385},[389,716,717],{"class":391,"line":392},[389,718,719],{"class":415},"\u003C!-- app\u002Fpages\u002F[...slug].vue -->\n",[389,721,722,725,728,732,735,738,741,743,745],{"class":391,"line":419},[389,723,724],{"class":437},"\u003C",[389,726,727],{"class":444},"script",[389,729,731],{"class":730},"spNyl"," setup",[389,733,734],{"class":730}," lang",[389,736,737],{"class":437},"=",[389,739,740],{"class":437},"\"",[389,742,408],{"class":399},[389,744,740],{"class":437},[389,746,747],{"class":437},">\n",[389,749,750,753,756,759,762,765,768,770,773],{"class":391,"line":441},[389,751,752],{"class":422},"import",[389,754,755],{"class":422}," type",[389,757,758],{"class":437}," {",[389,760,761],{"class":433}," CmsBlock",[389,763,764],{"class":437}," }",[389,766,767],{"class":422}," from",[389,769,486],{"class":437},[389,771,772],{"class":399},"@avvyr\u002Fcms",[389,774,775],{"class":437},"'\n",[389,777,778],{"class":391,"line":467},[389,779,781],{"emptyLinePlaceholder":780},true,"\n",[389,783,784,787,790,792,795],{"class":391,"line":478},[389,785,786],{"class":730},"const",[389,788,789],{"class":433}," route ",[389,791,737],{"class":437},[389,793,794],{"class":429}," useRoute",[389,796,797],{"class":433},"()\n",[389,799,800,802,804,807,809,812,814,817,819,822,825,828,831,834,837,839,842,845,847,850,853,856,858],{"class":391,"line":496},[389,801,786],{"class":730},[389,803,758],{"class":437},[389,805,806],{"class":444}," data",[389,808,448],{"class":437},[389,810,811],{"class":433}," page",[389,813,513],{"class":437},[389,815,816],{"class":433}," error ",[389,818,599],{"class":437},[389,820,821],{"class":437}," =",[389,823,824],{"class":422}," await",[389,826,827],{"class":429}," useCmsPage",[389,829,830],{"class":437},"\u003C{",[389,832,833],{"class":444}," body",[389,835,836],{"class":437},"?:",[389,838,761],{"class":395},[389,840,841],{"class":433},"[] ",[389,843,844],{"class":437},"}>",[389,846,434],{"class":433},[389,848,849],{"class":437},"()",[389,851,852],{"class":730}," =>",[389,854,855],{"class":433}," route",[389,857,373],{"class":437},[389,859,860],{"class":433},"path)\n",[389,862,863,866,869,871,874,877,880,882,885,888,890,893,895,898,900,904,906],{"class":391,"line":530},[389,864,865],{"class":422},"if",[389,867,868],{"class":433}," (error",[389,870,373],{"class":437},[389,872,873],{"class":433},"value) ",[389,875,876],{"class":422},"throw",[389,878,879],{"class":429}," createError",[389,881,434],{"class":433},[389,883,884],{"class":437},"{",[389,886,887],{"class":444}," statusCode",[389,889,448],{"class":437},[389,891,892],{"class":557}," 404",[389,894,513],{"class":437},[389,896,897],{"class":444}," fatal",[389,899,448],{"class":437},[389,901,903],{"class":902},"sfNiH"," true",[389,905,764],{"class":437},[389,907,602],{"class":433},[389,909,910],{"class":391,"line":549},[389,911,781],{"emptyLinePlaceholder":780},[389,913,914,917,920,922,924,927,929,931,933,935,937,940],{"class":391,"line":566},[389,915,916],{"class":429},"useCmsAlternates",[389,918,919],{"class":433},"(page",[389,921,513],{"class":437},[389,923,758],{"class":437},[389,925,926],{"class":444}," xDefault",[389,928,448],{"class":437},[389,930,486],{"class":437},[389,932,508],{"class":399},[389,934,454],{"class":437},[389,936,764],{"class":437},[389,938,939],{"class":433},") ",[389,941,942],{"class":415},"\u002F\u002F hreflang links\n",[389,944,945,948,950,952,955,957,960,962,964,966,969,972,975,977],{"class":391,"line":590},[389,946,947],{"class":429},"useSeoMeta",[389,949,434],{"class":433},[389,951,884],{"class":437},[389,953,954],{"class":429}," title",[389,956,448],{"class":437},[389,958,959],{"class":437}," ()",[389,961,852],{"class":730},[389,963,811],{"class":433},[389,965,373],{"class":437},[389,967,968],{"class":433},"value",[389,970,971],{"class":437},"?.",[389,973,974],{"class":433},"title ",[389,976,599],{"class":437},[389,978,602],{"class":433},[389,980,981,984,986],{"class":391,"line":596},[389,982,983],{"class":437},"\u003C\u002F",[389,985,727],{"class":444},[389,987,747],{"class":437},[389,989,991],{"class":391,"line":990},12,[389,992,781],{"emptyLinePlaceholder":780},[389,994,996,998,1001],{"class":391,"line":995},13,[389,997,724],{"class":437},[389,999,1000],{"class":444},"template",[389,1002,747],{"class":437},[389,1004,1006,1009,1012,1015,1018,1020,1022,1025,1027,1030,1032,1035,1037],{"class":391,"line":1005},14,[389,1007,1008],{"class":437},"  \u003C",[389,1010,1011],{"class":444},"CmsBlocks",[389,1013,1014],{"class":437}," :",[389,1016,1017],{"class":730},"blocks",[389,1019,737],{"class":437},[389,1021,740],{"class":437},[389,1023,1024],{"class":433},"page",[389,1026,971],{"class":437},[389,1028,1029],{"class":433},"fields",[389,1031,373],{"class":437},[389,1033,1034],{"class":433},"body",[389,1036,740],{"class":437},[389,1038,1039],{"class":437}," \u002F>\n",[389,1041,1043,1045,1047],{"class":391,"line":1042},15,[389,1044,983],{"class":437},[389,1046,1000],{"class":444},[389,1048,747],{"class":437},[375,1050,332],{"id":1051},"composables",[604,1053,1054,1064],{},[607,1055,1056],{},[610,1057,1058,1061],{},[613,1059,1060],{},"Composable",[613,1062,1063],{},"Returns",[619,1065,1066,1084,1100,1110,1120,1130,1147],{},[610,1067,1068,1073],{},[624,1069,1070],{},[366,1071,1072],{},"useCmsPage(path, { locale, lazy, server, preview })",[624,1074,1075,1076,1079,1080,1083],{},"The document, or ",[366,1077,1078],{},"null"," with ",[366,1081,1082],{},"error"," set on 404. Loads the draft while a preview token is in the URL.",[610,1085,1086,1091],{},[624,1087,1088],{},[366,1089,1090],{},"useCmsEntries(query)",[624,1092,1093,1096,1097],{},[366,1094,1095],{},"{ data, total }",": manifest rows, or documents with ",[366,1098,1099],{},"include: 'documents'",[610,1101,1102,1107],{},[624,1103,1104],{},[366,1105,1106],{},"useCmsSingleton(type)",[624,1108,1109],{},"The singleton's document",[610,1111,1112,1117],{},[624,1113,1114],{},[366,1115,1116],{},"useCmsManifest()",[624,1118,1119],{},"Every published entry and folder",[610,1121,1122,1127],{},[624,1123,1124],{},[366,1125,1126],{},"useCmsAlternates(doc, { origin, xDefault, hreflang, head })",[624,1128,1129],{},"hreflang links for the document's languages",[610,1131,1132,1137],{},[624,1133,1134],{},[366,1135,1136],{},"useCmsLocale()",[624,1138,1139,1140,1143,1144],{},"The language used when none is passed: the ",[366,1141,1142],{},"@nuxtjs\u002Fi18n"," locale if it is a CMS language, otherwise ",[366,1145,1146],{},"defaultLocale",[610,1148,1149,1154],{},[624,1150,1151],{},[366,1152,1153],{},"useCmsPreview()",[624,1155,1156,1159],{},[366,1157,1158],{},"{ path, locale, ... }"," from the preview URL, for a dedicated preview route",[363,1161,1162,1163,1166,1167,1170],{},"All of them use ",[366,1164,1165],{},"useAsyncData"," with stable keys. Pass ",[366,1168,1169],{},"locale"," explicitly when your i18n codes differ from the CMS language codes.",[375,1172,1173],{"id":1017},"Blocks",[363,1175,1176,1177,1180],{},"Register a component per block type, once, in ",[366,1178,1179],{},"app.vue"," or a layout:",[380,1182,1184],{"className":406,"code":1183,"language":408,"meta":385,"style":385},"\u002F\u002F app\u002Fapp.vue\nimport Hero from '~\u002Fcomponents\u002Fblocks\u002FHero.vue'\nimport TextSection from '~\u002Fcomponents\u002Fblocks\u002FTextSection.vue'\n\nprovideCmsBlocks({ hero: Hero, textSection: TextSection })\n",[366,1185,1186,1191,1208,1224,1228],{"__ignoreMap":385},[389,1187,1188],{"class":391,"line":392},[389,1189,1190],{"class":415},"\u002F\u002F app\u002Fapp.vue\n",[389,1192,1193,1195,1198,1201,1203,1206],{"class":391,"line":419},[389,1194,752],{"class":422},[389,1196,1197],{"class":433}," Hero ",[389,1199,1200],{"class":422},"from",[389,1202,486],{"class":437},[389,1204,1205],{"class":399},"~\u002Fcomponents\u002Fblocks\u002FHero.vue",[389,1207,775],{"class":437},[389,1209,1210,1212,1215,1217,1219,1222],{"class":391,"line":441},[389,1211,752],{"class":422},[389,1213,1214],{"class":433}," TextSection ",[389,1216,1200],{"class":422},[389,1218,486],{"class":437},[389,1220,1221],{"class":399},"~\u002Fcomponents\u002Fblocks\u002FTextSection.vue",[389,1223,775],{"class":437},[389,1225,1226],{"class":391,"line":467},[389,1227,781],{"emptyLinePlaceholder":780},[389,1229,1230,1233,1235,1237,1240,1242,1245,1247,1250,1252,1254,1256],{"class":391,"line":478},[389,1231,1232],{"class":429},"provideCmsBlocks",[389,1234,434],{"class":433},[389,1236,884],{"class":437},[389,1238,1239],{"class":444}," hero",[389,1241,448],{"class":437},[389,1243,1244],{"class":433}," Hero",[389,1246,513],{"class":437},[389,1248,1249],{"class":444}," textSection",[389,1251,448],{"class":437},[389,1253,1214],{"class":433},[389,1255,599],{"class":437},[389,1257,602],{"class":433},[363,1259,1260,1261,676,1264,676,1266,1269,1270,1273],{},"A block component gets ",[366,1262,1263],{},"block",[366,1265,1029],{},[366,1267,1268],{},"index"," and ",[366,1271,1272],{},"first",", whichever it declares as props:",[380,1275,1277],{"className":710,"code":1276,"language":712,"meta":385,"style":385},"\u003C!-- app\u002Fcomponents\u002Fblocks\u002FHero.vue -->\n\u003Cscript setup lang=\"ts\">\nimport type { CmsMedia, CmsRichTextDoc } from '@avvyr\u002Fcms'\n\ndefineProps\u003C{ fields: { title?: string, image?: CmsMedia | null, body?: CmsRichTextDoc | null }, first?: boolean }>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Csection>\n    \u003Ccomponent :is=\"first ? 'h1' : 'h2'\">{{ fields.title }}\u003C\u002Fcomponent>\n    \u003CCmsImage :media=\"fields.image\" :width=\"1200\" sizes=\"100vw\" \u002F>\n    \u003CCmsRichText :doc=\"fields.body\" \u002F>\n  \u003C\u002Fsection>\n\u003C\u002Ftemplate>\n",[366,1278,1279,1284,1304,1330,1334,1398,1406,1410,1418,1427,1459,1512,1538,1547],{"__ignoreMap":385},[389,1280,1281],{"class":391,"line":392},[389,1282,1283],{"class":415},"\u003C!-- app\u002Fcomponents\u002Fblocks\u002FHero.vue -->\n",[389,1285,1286,1288,1290,1292,1294,1296,1298,1300,1302],{"class":391,"line":419},[389,1287,724],{"class":437},[389,1289,727],{"class":444},[389,1291,731],{"class":730},[389,1293,734],{"class":730},[389,1295,737],{"class":437},[389,1297,740],{"class":437},[389,1299,408],{"class":399},[389,1301,740],{"class":437},[389,1303,747],{"class":437},[389,1305,1306,1308,1310,1312,1315,1317,1320,1322,1324,1326,1328],{"class":391,"line":441},[389,1307,752],{"class":422},[389,1309,755],{"class":422},[389,1311,758],{"class":437},[389,1313,1314],{"class":433}," CmsMedia",[389,1316,513],{"class":437},[389,1318,1319],{"class":433}," CmsRichTextDoc",[389,1321,764],{"class":437},[389,1323,767],{"class":422},[389,1325,486],{"class":437},[389,1327,772],{"class":399},[389,1329,775],{"class":437},[389,1331,1332],{"class":391,"line":467},[389,1333,781],{"emptyLinePlaceholder":780},[389,1335,1336,1339,1341,1344,1346,1348,1350,1352,1355,1357,1360,1362,1364,1367,1370,1372,1374,1376,1378,1380,1382,1385,1388,1390,1393,1396],{"class":391,"line":478},[389,1337,1338],{"class":429},"defineProps",[389,1340,830],{"class":437},[389,1342,1343],{"class":444}," fields",[389,1345,448],{"class":437},[389,1347,758],{"class":437},[389,1349,954],{"class":444},[389,1351,836],{"class":437},[389,1353,1354],{"class":395}," string",[389,1356,513],{"class":437},[389,1358,1359],{"class":444}," image",[389,1361,836],{"class":437},[389,1363,1314],{"class":395},[389,1365,1366],{"class":437}," |",[389,1368,1369],{"class":395}," null",[389,1371,513],{"class":437},[389,1373,833],{"class":444},[389,1375,836],{"class":437},[389,1377,1319],{"class":395},[389,1379,1366],{"class":437},[389,1381,1369],{"class":395},[389,1383,1384],{"class":437}," },",[389,1386,1387],{"class":444}," first",[389,1389,836],{"class":437},[389,1391,1392],{"class":395}," boolean",[389,1394,1395],{"class":437}," }>",[389,1397,797],{"class":433},[389,1399,1400,1402,1404],{"class":391,"line":496},[389,1401,983],{"class":437},[389,1403,727],{"class":444},[389,1405,747],{"class":437},[389,1407,1408],{"class":391,"line":530},[389,1409,781],{"emptyLinePlaceholder":780},[389,1411,1412,1414,1416],{"class":391,"line":549},[389,1413,724],{"class":437},[389,1415,1000],{"class":444},[389,1417,747],{"class":437},[389,1419,1420,1422,1425],{"class":391,"line":566},[389,1421,1008],{"class":437},[389,1423,1424],{"class":444},"section",[389,1426,747],{"class":437},[389,1428,1429,1432,1435,1438,1440,1442,1445,1447,1450,1453,1455,1457],{"class":391,"line":590},[389,1430,1431],{"class":437},"    \u003C",[389,1433,1434],{"class":444},"component",[389,1436,1437],{"class":730}," :is",[389,1439,737],{"class":437},[389,1441,740],{"class":437},[389,1443,1444],{"class":399},"first ? 'h1' : 'h2'",[389,1446,740],{"class":437},[389,1448,1449],{"class":437},">",[389,1451,1452],{"class":433},"{{ fields.title }}",[389,1454,983],{"class":437},[389,1456,1434],{"class":444},[389,1458,747],{"class":437},[389,1460,1461,1463,1466,1468,1471,1473,1475,1477,1479,1482,1484,1486,1489,1491,1493,1496,1498,1501,1503,1505,1508,1510],{"class":391,"line":596},[389,1462,1431],{"class":437},[389,1464,1465],{"class":444},"CmsImage",[389,1467,1014],{"class":437},[389,1469,1470],{"class":730},"media",[389,1472,737],{"class":437},[389,1474,740],{"class":437},[389,1476,1029],{"class":433},[389,1478,373],{"class":437},[389,1480,1481],{"class":433},"image",[389,1483,740],{"class":437},[389,1485,1014],{"class":437},[389,1487,1488],{"class":730},"width",[389,1490,737],{"class":437},[389,1492,740],{"class":437},[389,1494,1495],{"class":557},"1200",[389,1497,740],{"class":437},[389,1499,1500],{"class":730}," sizes",[389,1502,737],{"class":437},[389,1504,740],{"class":437},[389,1506,1507],{"class":399},"100vw",[389,1509,740],{"class":437},[389,1511,1039],{"class":437},[389,1513,1514,1516,1519,1521,1524,1526,1528,1530,1532,1534,1536],{"class":391,"line":990},[389,1515,1431],{"class":437},[389,1517,1518],{"class":444},"CmsRichText",[389,1520,1014],{"class":437},[389,1522,1523],{"class":730},"doc",[389,1525,737],{"class":437},[389,1527,740],{"class":437},[389,1529,1029],{"class":433},[389,1531,373],{"class":437},[389,1533,1034],{"class":433},[389,1535,740],{"class":437},[389,1537,1039],{"class":437},[389,1539,1540,1543,1545],{"class":391,"line":995},[389,1541,1542],{"class":437},"  \u003C\u002F",[389,1544,1424],{"class":444},[389,1546,747],{"class":437},[389,1548,1549,1551,1553],{"class":391,"line":1005},[389,1550,983],{"class":437},[389,1552,1000],{"class":444},[389,1554,747],{"class":437},[363,1556,1557,1560,1561,1564,1565,1568,1569,1572],{},[366,1558,1559],{},"\u003CCmsBlocks>"," can also take the map as a ",[366,1562,1563],{},"components"," prop, or read it from ",[366,1566,1567],{},"cms.blocks"," in ",[366,1570,1571],{},"app.config.ts",". Unknown block types render nothing, with a warning in development.",[375,1574,354],{"id":1563},[1576,1577,1578,1596,1612],"ul",{},[1579,1580,1581,1587,1588,1591,1592,1595],"li",{},[1582,1583,1584],"strong",{},[366,1585,1586],{},"\u003CCmsBlocks :blocks :components>"," renders blocks by type, each wrapped in a ",[366,1589,1590],{},"data-cms-block"," element for live editing (",[366,1593,1594],{},"display: contents"," by default).",[1579,1597,1598,1603,1604,1607,1608,1611],{},[1582,1599,1600],{},[366,1601,1602],{},"\u003CCmsRichText :doc>"," renders rich text as VNodes, not ",[366,1605,1606],{},"v-html",". Links to entries become ",[366,1609,1610],{},"\u003CNuxtLink>",", and unsafe hrefs are dropped.",[1579,1613,1614,1619,1620,1623,1624,1269,1626,1629,1630,373],{},[1582,1615,1616],{},[366,1617,1618],{},"\u003CCmsImage :media :width :height :sizes>"," renders a ",[366,1621,1622],{},"\u003Cpicture>"," with AVIF and WebP sources and the image's own ",[366,1625,1488],{},[366,1627,1628],{},"height",", so nothing shifts. The focal point becomes ",[366,1631,1632],{},"object-position",[375,1634,1636],{"id":1635},"how-content-stays-fresh","How content stays fresh",[1576,1638,1639,1642,1657,1660,1671],{},[1579,1640,1641],{},"At startup the server loads each language's bundle into memory.",[1579,1643,1644,1645,1648,1649,1652,1653,1656],{},"Every ",[366,1646,1647],{},"syncIntervalMs"," (and on requests, on serverless hosts) it checks ",[366,1650,1651],{},"\u002Fversion",". When the version moved, it fetches ",[366,1654,1655],{},"\u002Fchanges"," and refetches only what changed. Large change sets or errors fall back to the full bundle.",[1579,1658,1659],{},"Reads never wait for a sync. The previous version is served until the new one is swapped in whole.",[1579,1661,1662,1663,1666,1667,1670],{},"Each bundle is also written to Nitro storage at ",[366,1664,1665],{},"cache:avvyr-cms:\u003CsiteId>:\u003Clocale>",", so a cold instance starts from it. Mount ",[366,1668,1669],{},"cache"," on persistent storage (for example Azure Blob) in production.",[1579,1672,1673,1079,1675,1678],{},[366,1674,654],{},[366,1676,1677],{},"x-cms-webhook-secret: \u003CNUXT_CMS_WEBHOOK_SECRET>"," syncs at once.",[363,1680,1681,1682,373],{},"A publish therefore reaches the site within ",[366,1683,1647],{},[375,1685,115],{"id":1686},"preview-and-live-editing",[363,1688,1689,1690,1693,1694,1697],{},"Both work without code. While ",[366,1691,1692],{},"?token="," is in the URL, pages load drafts and get ",[366,1695,1696],{},"noindex",", and the live editing bridge starts when the editor frames the site. Your site must allow the app to frame it:",[380,1699,1701],{"className":406,"code":1700,"language":408,"meta":385,"style":385},"\u002F\u002F nuxt.config.ts\nrouteRules: {\n  '\u002F**': { headers: { 'Content-Security-Policy': \"frame-ancestors 'self' https:\u002F\u002Fapp.avvyr.com\" } },\n},\n",[366,1702,1703,1707,1716,1760],{"__ignoreMap":385},[389,1704,1705],{"class":391,"line":392},[389,1706,416],{"class":415},[389,1708,1709,1712,1714],{"class":391,"line":419},[389,1710,1711],{"class":395},"routeRules",[389,1713,448],{"class":437},[389,1715,475],{"class":437},[389,1717,1718,1721,1724,1726,1729,1731,1734,1736,1738,1740,1743,1745,1747,1750,1753,1755,1757],{"class":391,"line":441},[389,1719,1720],{"class":437},"  '",[389,1722,1723],{"class":399},"\u002F**",[389,1725,454],{"class":437},[389,1727,1728],{"class":444},": ",[389,1730,884],{"class":437},[389,1732,1733],{"class":444}," headers",[389,1735,448],{"class":437},[389,1737,758],{"class":437},[389,1739,486],{"class":437},[389,1741,1742],{"class":444},"Content-Security-Policy",[389,1744,454],{"class":437},[389,1746,448],{"class":437},[389,1748,1749],{"class":437}," \"",[389,1751,1752],{"class":399},"frame-ancestors 'self' https:\u002F\u002Fapp.avvyr.com",[389,1754,740],{"class":437},[389,1756,764],{"class":437},[389,1758,1759],{"class":437}," },\n",[389,1761,1762],{"class":391,"line":467},[389,1763,1764],{"class":437},"},\n",[363,1766,1767,1768,1771],{},"See ",[1769,1770,115],"a",{"href":116}," for how it works.",[375,1773,1775],{"id":1774},"sitemap","Sitemap",[380,1777,1779],{"className":406,"code":1778,"language":408,"meta":385,"style":385},"\u002F\u002F server\u002Froutes\u002Fsitemap-cms.json.get.ts\nexport default defineEventHandler(event => getCmsSitemapEntries(event, { locale: 'sv' }))\n\u002F\u002F → [{ path, lastmod, alternates: { en: '\u002Fabout-us' } }]\n",[366,1780,1781,1786,1829],{"__ignoreMap":385},[389,1782,1783],{"class":391,"line":392},[389,1784,1785],{"class":415},"\u002F\u002F server\u002Froutes\u002Fsitemap-cms.json.get.ts\n",[389,1787,1788,1790,1792,1795,1797,1801,1803,1806,1809,1811,1813,1816,1818,1820,1822,1824,1826],{"class":391,"line":419},[389,1789,423],{"class":422},[389,1791,426],{"class":422},[389,1793,1794],{"class":429}," defineEventHandler",[389,1796,434],{"class":433},[389,1798,1800],{"class":1799},"sHdIc","event",[389,1802,852],{"class":730},[389,1804,1805],{"class":429}," getCmsSitemapEntries",[389,1807,1808],{"class":433},"(event",[389,1810,513],{"class":437},[389,1812,758],{"class":437},[389,1814,1815],{"class":444}," locale",[389,1817,448],{"class":437},[389,1819,486],{"class":437},[389,1821,508],{"class":399},[389,1823,454],{"class":437},[389,1825,764],{"class":437},[389,1827,1828],{"class":433},"))\n",[389,1830,1831],{"class":391,"line":441},[389,1832,1833],{"class":415},"\u002F\u002F → [{ path, lastmod, alternates: { en: '\u002Fabout-us' } }]\n",[363,1835,1836,1837,1840],{},"Feed it to ",[366,1838,1839],{},"@nuxtjs\u002Fsitemap"," as a source, or build the XML yourself.",[1842,1843,1844],"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 .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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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":385,"searchDepth":419,"depth":419,"links":1846},[1847,1848,1849,1850,1851,1852,1853,1854],{"id":377,"depth":419,"text":378},{"id":706,"depth":419,"text":707},{"id":1051,"depth":419,"text":332},{"id":1017,"depth":419,"text":1173},{"id":1563,"depth":419,"text":354},{"id":1635,"depth":419,"text":1636},{"id":1686,"depth":419,"text":115},{"id":1774,"depth":419,"text":1775},"Install @avvyr\u002Fcms-nuxt to serve the whole site from server memory, with composables, block rendering, images, preview and sitemap","md",null,{"questions":1859},{"en":1860},[1861,1862,1863,1864],"How do I install the CMS Nuxt layer?","How do I register my block components?","How does content stay fresh after a publish?","How do I add CMS pages to my sitemap?",{"title":128,"description":1855},"OeX4rqNlvVMFqKfRgwMqNicFkSskSn90B79uiqwoKTQ",[1868,1870],{"title":124,"path":125,"stem":126,"description":1869,"children":-1},"Read content with @avvyr\u002Fcms in any JavaScript runtime, and render blocks, images and rich text yourself",{"title":132,"path":133,"stem":134,"description":1871,"children":-1},"Every \u002Fv1\u002Fcms endpoint for sites, types, folders, entries, publishing and history",1793388935899]