[{"data":1,"prerenderedAt":6114},["ShallowReactive",2],{"navigation_docs":3,"-docs-sdk-nuxt":419,"docs-navigation-with-icons":5969,"-docs-sdk-nuxt-surround":6109},[4,66,87,124,405],{"title":5,"path":6,"stem":7,"children":8,"page":65},"Api","\u002Fdocs\u002Fapi","docs\u002Fapi",[9,13,17,21,25,29,33,37,41,45,49,53,57,61],{"title":10,"path":11,"stem":12},"Best Practices","\u002Fdocs\u002Fapi\u002Fbest-practices","docs\u002Fapi\u002Fbest-practices",{"title":14,"path":15,"stem":16},"Blog","\u002Fdocs\u002Fapi\u002Fblog","docs\u002Fapi\u002Fblog",{"title":18,"path":19,"stem":20},"Code Examples","\u002Fdocs\u002Fapi\u002Fcode-examples","docs\u002Fapi\u002Fcode-examples",{"title":22,"path":23,"stem":24},"Collections","\u002Fdocs\u002Fapi\u002Fcollections","docs\u002Fapi\u002Fcollections",{"title":26,"path":27,"stem":28},"Field Types","\u002Fdocs\u002Fapi\u002Ffield-types","docs\u002Fapi\u002Ffield-types",{"title":30,"path":31,"stem":32},"Rate Limits & Errors","\u002Fdocs\u002Fapi\u002Flimits-and-errors","docs\u002Fapi\u002Flimits-and-errors",{"title":34,"path":35,"stem":36},"Media","\u002Fdocs\u002Fapi\u002Fmedia","docs\u002Fapi\u002Fmedia",{"title":38,"path":39,"stem":40},"Overview","\u002Fdocs\u002Fapi\u002Foverview","docs\u002Fapi\u002Foverview",{"title":42,"path":43,"stem":44},"Pages","\u002Fdocs\u002Fapi\u002Fpages","docs\u002Fapi\u002Fpages",{"title":46,"path":47,"stem":48},"Query Parameters","\u002Fdocs\u002Fapi\u002Fquery-parameters","docs\u002Fapi\u002Fquery-parameters",{"title":50,"path":51,"stem":52},"Responses & Caching","\u002Fdocs\u002Fapi\u002Fresponses","docs\u002Fapi\u002Fresponses",{"title":54,"path":55,"stem":56},"Troubleshooting","\u002Fdocs\u002Fapi\u002Ftroubleshooting","docs\u002Fapi\u002Ftroubleshooting",{"title":58,"path":59,"stem":60},"Validation","\u002Fdocs\u002Fapi\u002Fvalidation","docs\u002Fapi\u002Fvalidation",{"title":62,"path":63,"stem":64},"Webhooks","\u002Fdocs\u002Fapi\u002Fwebhooks","docs\u002Fapi\u002Fwebhooks",false,{"title":67,"path":68,"stem":69,"children":70,"page":65},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[71,75,79,83],{"title":72,"path":73,"stem":74},"Authentication","\u002Fdocs\u002Fgetting-started\u002Fauthentication","docs\u002Fgetting-started\u002Fauthentication",{"title":76,"path":77,"stem":78},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002Fgetting-started\u002Fintroduction",{"title":80,"path":81,"stem":82},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002Fgetting-started\u002Fquickstart",{"title":84,"path":85,"stem":86},"Write Operations","\u002Fdocs\u002Fgetting-started\u002Fwrite-operations","docs\u002Fgetting-started\u002Fwrite-operations",{"title":88,"path":89,"stem":90,"children":91,"page":65},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[92,96,100,104,108,112,116,120],{"title":93,"path":94,"stem":95},"Admin Interface","\u002Fdocs\u002Fguides\u002Fadmin-interface","docs\u002Fguides\u002Fadmin-interface",{"title":97,"path":98,"stem":99},"ButterCMS Migration","\u002Fdocs\u002Fguides\u002Fbuttercms-migration","docs\u002Fguides\u002Fbuttercms-migration",{"title":101,"path":102,"stem":103},"Migrations","\u002Fdocs\u002Fguides\u002Fmigrations","docs\u002Fguides\u002Fmigrations",{"title":105,"path":106,"stem":107},"Page Management","\u002Fdocs\u002Fguides\u002Fpage-management","docs\u002Fguides\u002Fpage-management",{"title":109,"path":110,"stem":111},"Public API Usage","\u002Fdocs\u002Fguides\u002Fpublic-api-usage","docs\u002Fguides\u002Fpublic-api-usage",{"title":113,"path":114,"stem":115},"Schema Builder","\u002Fdocs\u002Fguides\u002Fschema-builder","docs\u002Fguides\u002Fschema-builder",{"title":117,"path":118,"stem":119},"User Management","\u002Fdocs\u002Fguides\u002Fuser-management","docs\u002Fguides\u002Fuser-management",{"title":121,"path":122,"stem":123},"Rich Text Editor","\u002Fdocs\u002Fguides\u002Fwysiwyg-editor","docs\u002Fguides\u002Fwysiwyg-editor",{"title":125,"path":126,"stem":127,"children":128,"page":65},"Sdk","\u002Fdocs\u002Fsdk","docs\u002Fsdk",[129,132,136,140,144],{"title":38,"path":130,"stem":131},"\u002Fdocs\u002Fsdk\u002Freadme","docs\u002Fsdk\u002FREADME",{"title":133,"path":134,"stem":135},"Astro","\u002Fdocs\u002Fsdk\u002Fastro","docs\u002Fsdk\u002Fastro",{"title":137,"path":138,"stem":139},"Next.js","\u002Fdocs\u002Fsdk\u002Fnextjs","docs\u002Fsdk\u002Fnextjs",{"title":141,"path":142,"stem":143},"Nuxt","\u002Fdocs\u002Fsdk\u002Fnuxt","docs\u002Fsdk\u002Fnuxt",{"title":145,"path":146,"stem":147,"children":148,"page":65},"Reference","\u002Fdocs\u002Fsdk\u002Freference","docs\u002Fsdk\u002Freference",[149,153,222,235,380],{"title":150,"path":151,"stem":152},"@tentocms\u002Fclient","\u002Fdocs\u002Fsdk\u002Freference\u002Freadme","docs\u002Fsdk\u002Freference\u002FREADME",{"title":154,"path":155,"stem":156,"children":157,"page":65},"Classes","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses","docs\u002Fsdk\u002Freference\u002Fclasses",[158,162,166,170,174,178,182,186,190,194,198,202,206,210,214,218],{"title":159,"path":160,"stem":161},"Class: BlogCategoriesResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogcategoriesresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogCategoriesResource",{"title":163,"path":164,"stem":165},"Class: BlogPostsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogpostsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogPostsResource",{"title":167,"path":168,"stem":169},"Class: BlogResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogResource",{"title":171,"path":172,"stem":173},"Class: BlogTagsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fblogtagsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FBlogTagsResource",{"title":175,"path":176,"stem":177},"Class: CollectionsResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fcollectionsresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FCollectionsResource",{"title":179,"path":180,"stem":181},"Class: CollectionsWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fcollectionswriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FCollectionsWriteResource",{"title":183,"path":184,"stem":185},"Class: MediaResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fmediaresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FMediaResource",{"title":187,"path":188,"stem":189},"Class: MediaWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fmediawriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FMediaWriteResource",{"title":191,"path":192,"stem":193},"Class: PagesResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fpagesresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FPagesResource",{"title":195,"path":196,"stem":197},"Class: PagesWriteResource","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Fpageswriteresource","docs\u002Fsdk\u002Freference\u002Fclasses\u002FPagesWriteResource",{"title":199,"path":200,"stem":201},"Class: TentoAuthenticationError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoauthenticationerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoAuthenticationError",{"title":203,"path":204,"stem":205},"Class: TentoClient","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoclient","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoClient",{"title":207,"path":208,"stem":209},"Class: TentoError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoError",{"title":211,"path":212,"stem":213},"Class: TentoNetworkError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentonetworkerror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoNetworkError",{"title":215,"path":216,"stem":217},"Class: TentoNotFoundError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentonotfounderror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoNotFoundError",{"title":219,"path":220,"stem":221},"Class: TentoRateLimitError","\u002Fdocs\u002Fsdk\u002Freference\u002Fclasses\u002Ftentoratelimiterror","docs\u002Fsdk\u002Freference\u002Fclasses\u002FTentoRateLimitError",{"title":223,"path":224,"stem":225,"children":226,"page":65},"Functions","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions","docs\u002Fsdk\u002Freference\u002Ffunctions",[227,231],{"title":228,"path":229,"stem":230},"Function: getUrl()","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions\u002Fgeturl","docs\u002Fsdk\u002Freference\u002Ffunctions\u002FgetUrl",{"title":232,"path":233,"stem":234},"Function: mockMedia()","\u002Fdocs\u002Fsdk\u002Freference\u002Ffunctions\u002Fmockmedia","docs\u002Fsdk\u002Freference\u002Ffunctions\u002FmockMedia",{"title":236,"path":237,"stem":238,"children":239,"page":65},"Interfaces","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces","docs\u002Fsdk\u002Freference\u002Finterfaces",[240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376],{"title":241,"path":242,"stem":243},"Interface: BlogAuthor","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogauthor","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogAuthor",{"title":245,"path":246,"stem":247},"Interface: BlogCategory","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogcategory","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogCategory",{"title":249,"path":250,"stem":251},"Interface: BlogPost","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogpost","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogPost",{"title":253,"path":254,"stem":255},"Interface: BlogPostListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogpostlistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogPostListOptions",{"title":257,"path":258,"stem":259},"Interface: BlogTag","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fblogtag","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FBlogTag",{"title":261,"path":262,"stem":263},"Interface: CollectionItemResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionitemresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionItemResponse",{"title":265,"path":266,"stem":267},"Interface: CollectionListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionlistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionListOptions",{"title":269,"path":270,"stem":271},"Interface: CollectionListResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectionlistresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionListResponse",{"title":273,"path":274,"stem":275},"Interface: CollectionTypeMeta","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcollectiontypemeta","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCollectionTypeMeta",{"title":277,"path":278,"stem":279},"Interface: CreateCollectionItemInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcreatecollectioniteminput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCreateCollectionItemInput",{"title":281,"path":282,"stem":283},"Interface: CreatePageInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fcreatepageinput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FCreatePageInput",{"title":285,"path":286,"stem":287},"Interface: DryRunResult","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fdryrunresult","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FDryRunResult",{"title":289,"path":290,"stem":291},"Interface: FilterCondition","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ffiltercondition","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FFilterCondition",{"title":293,"path":294,"stem":295},"Interface: ItemResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fitemresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FItemResponse",{"title":297,"path":298,"stem":299},"Interface: ListResponse\u003CT>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Flistresponse","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FListResponse",{"title":301,"path":302,"stem":303},"Interface: Media","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmedia","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMedia",{"title":305,"path":306,"stem":307},"Interface: MediaItem","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediaitem","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaItem",{"title":309,"path":310,"stem":311},"Interface: MediaOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediaoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaOption",{"title":313,"path":314,"stem":315},"Interface: MediaTransformOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fmediatransformoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FMediaTransformOptions",{"title":317,"path":318,"stem":319},"Interface: Page\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpage","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPage",{"title":321,"path":322,"stem":323},"Interface: PageGetOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagegetoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageGetOptions",{"title":325,"path":326,"stem":327},"Interface: PageListOptions","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagelistoptions","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageListOptions",{"title":329,"path":330,"stem":331},"Interface: PageWithRedirect\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpagewithredirect","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPageWithRedirect",{"title":333,"path":334,"stem":335},"Interface: PaginationMeta","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpaginationmeta","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPaginationMeta",{"title":337,"path":338,"stem":339},"Interface: PreviewOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fpreviewoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FPreviewOption",{"title":341,"path":342,"stem":343},"Interface: RedirectInfo","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fredirectinfo","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FRedirectInfo",{"title":345,"path":346,"stem":347},"Interface: RefTypesOption","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Freftypesoption","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FRefTypesOption",{"title":349,"path":350,"stem":351},"Interface: SeoMetadata","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fseometadata","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FSeoMetadata",{"title":353,"path":354,"stem":355},"Interface: TentoClientConfig","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ftentoclientconfig","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FTentoClientConfig",{"title":357,"path":358,"stem":359},"Interface: TentoMedia","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Ftentomedia","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FTentoMedia",{"title":361,"path":362,"stem":363},"Interface: UpdateCollectionItemInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fupdatecollectioniteminput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUpdateCollectionItemInput",{"title":365,"path":366,"stem":367},"Interface: UpdatePageInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fupdatepageinput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUpdatePageInput",{"title":369,"path":370,"stem":371},"Interface: UploadMediaInput","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fuploadmediainput","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FUploadMediaInput",{"title":373,"path":374,"stem":375},"Interface: WriteCollectionItem","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fwritecollectionitem","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FWriteCollectionItem",{"title":377,"path":378,"stem":379},"Interface: WritePage","\u002Fdocs\u002Fsdk\u002Freference\u002Finterfaces\u002Fwritepage","docs\u002Fsdk\u002Freference\u002Finterfaces\u002FWritePage",{"title":381,"path":382,"stem":383,"children":384,"page":65},"Type Aliases","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases","docs\u002Fsdk\u002Freference\u002Ftype-aliases",[385,389,393,397,401],{"title":386,"path":387,"stem":388},"Type Alias: BlogPostListItem","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fblogpostlistitem","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FBlogPostListItem",{"title":390,"path":391,"stem":392},"Type Alias: BlogPostListResponse","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fblogpostlistresponse","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FBlogPostListResponse",{"title":394,"path":395,"stem":396},"Type Alias: CollectionItem\u003CTContent>","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fcollectionitem","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FCollectionItem",{"title":398,"path":399,"stem":400},"Type Alias: FilterOperator","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Ffilteroperator","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FFilterOperator",{"title":402,"path":403,"stem":404},"Type Alias: MediaMode","\u002Fdocs\u002Fsdk\u002Freference\u002Ftype-aliases\u002Fmediamode","docs\u002Fsdk\u002Freference\u002Ftype-aliases\u002FMediaMode",{"title":406,"path":407,"stem":408,"children":409,"page":65},"Typegen","\u002Fdocs\u002Ftypegen","docs\u002Ftypegen",[410,413,416],{"title":133,"path":411,"stem":412},"\u002Fdocs\u002Ftypegen\u002Fastro","docs\u002Ftypegen\u002Fastro",{"title":137,"path":414,"stem":415},"\u002Fdocs\u002Ftypegen\u002Fnextjs","docs\u002Ftypegen\u002Fnextjs",{"title":141,"path":417,"stem":418},"\u002Fdocs\u002Ftypegen\u002Fnuxt","docs\u002Ftypegen\u002Fnuxt",{"id":420,"title":141,"body":421,"description":5962,"extension":5963,"icon":5964,"links":5965,"meta":5966,"navigation":603,"path":142,"seo":5967,"stem":143,"__hash__":5968},"docs\u002Fdocs\u002Fsdk\u002Fnuxt.md",{"type":422,"value":423,"toc":5927},"minimark",[424,428,434,439,465,469,493,498,505,675,679,690,1080,1084,1087,1095,1275,1283,1519,1523,1528,1562,1566,1577,1579,1770,1774,2043,2045,2285,2289,2293,2303,2629,2634,2706,2719,2920,2924,3320,3324,3338,3343,3797,3801,4218,4221,4225,4412,4416,4469,4473,4476,4484,4702,4707,5000,5004,5010,5250,5256,5260,5271,5552,5556,5560,5576,5592,5596,5767,5771,5780,5784,5881,5884,5888,5923],[425,426,427],"p",{},"Complete guide for integrating TentoCMS with Nuxt 3 and Nuxt 4 applications.",[429,430,431],"blockquote",{},[425,432,433],{},"Verified against Nuxt 3–4.",[435,436,438],"h2",{"id":437},"installation","Installation",[440,441,446],"pre",{"className":442,"code":443,"language":444,"meta":445,"style":445},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @tentocms\u002Fclient\n","bash","",[447,448,449],"code",{"__ignoreMap":445},[450,451,454,458,462],"span",{"class":452,"line":453},"line",1,[450,455,457],{"class":456},"sBMFI","pnpm",[450,459,461],{"class":460},"sfazB"," add",[450,463,464],{"class":460}," @tentocms\u002Fclient\n",[435,466,468],{"id":467},"setup","Setup",[429,470,471],{},[425,472,473,477,480,481,484,485,488,489,492],{},[474,475,476],"strong",{},"Security: use a server-side client for SSR.",[447,478,479],{},"tentoApiKey"," and ",[447,482,483],{},"tentoPreviewKey"," are private runtimeConfig keys — they are empty string on the client. A universal Nuxt plugin (the default plugin location) runs on the client too and will crash with ",[447,486,487],{},"\"API key is required\"",". The recommended pattern below keeps the SDK and your API keys entirely server-side. Only ",[447,490,491],{},"tentoBaseUrl"," is a public config value; it is safe to expose in a plugin.",[494,495,497],"h3",{"id":496},"_1-configure-runtime-config","1. Configure runtime config",[425,499,500,501,504],{},"Add to ",[447,502,503],{},"nuxt.config.ts",":",[440,506,510],{"className":507,"code":508,"language":509,"meta":445,"style":445},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  runtimeConfig: {\n    \u002F\u002F Private keys — server-side only, never sent to the browser\n    tentoApiKey: process.env.TENTO_API_KEY,\n    tentoPreviewKey: process.env.TENTO_PREVIEW_KEY,\n\n    \u002F\u002F Public config — available on both server and client\n    public: {\n      tentoBaseUrl: process.env.TENTO_BASE_URL || 'https:\u002F\u002Ftento-api.intelligentlending.co.uk',\n    },\n  },\n})\n","typescript",[447,511,512,533,545,552,577,598,605,611,621,654,660,666],{"__ignoreMap":445},[450,513,514,518,521,525,529],{"class":452,"line":453},[450,515,517],{"class":516},"s7zQu","export",[450,519,520],{"class":516}," default",[450,522,524],{"class":523},"s2Zo4"," defineNuxtConfig",[450,526,528],{"class":527},"sTEyZ","(",[450,530,532],{"class":531},"sMK4o","{\n",[450,534,536,540,542],{"class":452,"line":535},2,[450,537,539],{"class":538},"swJcz","  runtimeConfig",[450,541,504],{"class":531},[450,543,544],{"class":531}," {\n",[450,546,548],{"class":452,"line":547},3,[450,549,551],{"class":550},"sHwdD","    \u002F\u002F Private keys — server-side only, never sent to the browser\n",[450,553,555,558,560,563,566,569,571,574],{"class":452,"line":554},4,[450,556,557],{"class":538},"    tentoApiKey",[450,559,504],{"class":531},[450,561,562],{"class":527}," process",[450,564,565],{"class":531},".",[450,567,568],{"class":527},"env",[450,570,565],{"class":531},[450,572,573],{"class":527},"TENTO_API_KEY",[450,575,576],{"class":531},",\n",[450,578,580,583,585,587,589,591,593,596],{"class":452,"line":579},5,[450,581,582],{"class":538},"    tentoPreviewKey",[450,584,504],{"class":531},[450,586,562],{"class":527},[450,588,565],{"class":531},[450,590,568],{"class":527},[450,592,565],{"class":531},[450,594,595],{"class":527},"TENTO_PREVIEW_KEY",[450,597,576],{"class":531},[450,599,601],{"class":452,"line":600},6,[450,602,604],{"emptyLinePlaceholder":603},true,"\n",[450,606,608],{"class":452,"line":607},7,[450,609,610],{"class":550},"    \u002F\u002F Public config — available on both server and client\n",[450,612,614,617,619],{"class":452,"line":613},8,[450,615,616],{"class":538},"    public",[450,618,504],{"class":531},[450,620,544],{"class":531},[450,622,624,627,629,631,633,635,637,640,643,646,649,652],{"class":452,"line":623},9,[450,625,626],{"class":538},"      tentoBaseUrl",[450,628,504],{"class":531},[450,630,562],{"class":527},[450,632,565],{"class":531},[450,634,568],{"class":527},[450,636,565],{"class":531},[450,638,639],{"class":527},"TENTO_BASE_URL ",[450,641,642],{"class":531},"||",[450,644,645],{"class":531}," '",[450,647,648],{"class":460},"https:\u002F\u002Ftento-api.intelligentlending.co.uk",[450,650,651],{"class":531},"'",[450,653,576],{"class":531},[450,655,657],{"class":452,"line":656},10,[450,658,659],{"class":531},"    },\n",[450,661,663],{"class":452,"line":662},11,[450,664,665],{"class":531},"  },\n",[450,667,669,672],{"class":452,"line":668},12,[450,670,671],{"class":531},"}",[450,673,674],{"class":527},")\n",[494,676,678],{"id":677},"_2-create-a-server-side-utility","2. Create a server-side utility",[425,680,681,682,685,686,689],{},"Create ",[447,683,684],{},"server\u002Futils\u002Ftento.ts",". This constructs a memoised ",[447,687,688],{},"TentoClient"," that is only ever instantiated inside the Node\u002FWorkers server process.",[440,691,693],{"className":507,"code":692,"language":509,"meta":445,"style":445},"import { TentoClient } from '@tentocms\u002Fclient'\n\nlet _client: TentoClient | undefined\nlet _previewClient: TentoClient | undefined\n\n\u002F**\n * Returns a memoised TentoClient for use inside server routes and event handlers.\n * Never import this in pages, components, or universal composables.\n *\u002F\nexport function getTentoClient(): TentoClient {\n  if (!_client) {\n    const config = useRuntimeConfig()\n    _client = new TentoClient({\n      apiKey: config.tentoApiKey,\n      baseUrl: config.public.tentoBaseUrl,\n    })\n  }\n  return _client\n}\n\n\u002F**\n * Returns a TentoClient with the preview key attached.\n * Used inside the preview server route only.\n *\u002F\nexport function getTentoPreviewClient(): TentoClient {\n  if (!_previewClient) {\n    const config = useRuntimeConfig()\n    _previewClient = new TentoClient({\n      apiKey: config.tentoApiKey,\n      previewKey: config.tentoPreviewKey,\n      baseUrl: config.public.tentoBaseUrl,\n    })\n  }\n  return _previewClient\n}\n",[447,694,695,719,723,742,757,761,766,771,776,781,798,817,834,851,867,888,896,902,911,917,922,927,933,939,944,960,976,989,1005,1020,1036,1055,1062,1067,1075],{"__ignoreMap":445},[450,696,697,700,703,706,709,712,714,716],{"class":452,"line":453},[450,698,699],{"class":516},"import",[450,701,702],{"class":531}," {",[450,704,705],{"class":527}," TentoClient",[450,707,708],{"class":531}," }",[450,710,711],{"class":516}," from",[450,713,645],{"class":531},[450,715,150],{"class":460},[450,717,718],{"class":531},"'\n",[450,720,721],{"class":452,"line":535},[450,722,604],{"emptyLinePlaceholder":603},[450,724,725,729,732,734,736,739],{"class":452,"line":547},[450,726,728],{"class":727},"spNyl","let",[450,730,731],{"class":527}," _client",[450,733,504],{"class":531},[450,735,705],{"class":456},[450,737,738],{"class":531}," |",[450,740,741],{"class":456}," undefined\n",[450,743,744,746,749,751,753,755],{"class":452,"line":554},[450,745,728],{"class":727},[450,747,748],{"class":527}," _previewClient",[450,750,504],{"class":531},[450,752,705],{"class":456},[450,754,738],{"class":531},[450,756,741],{"class":456},[450,758,759],{"class":452,"line":579},[450,760,604],{"emptyLinePlaceholder":603},[450,762,763],{"class":452,"line":600},[450,764,765],{"class":550},"\u002F**\n",[450,767,768],{"class":452,"line":607},[450,769,770],{"class":550}," * Returns a memoised TentoClient for use inside server routes and event handlers.\n",[450,772,773],{"class":452,"line":613},[450,774,775],{"class":550}," * Never import this in pages, components, or universal composables.\n",[450,777,778],{"class":452,"line":623},[450,779,780],{"class":550}," *\u002F\n",[450,782,783,785,788,791,794,796],{"class":452,"line":656},[450,784,517],{"class":516},[450,786,787],{"class":727}," function",[450,789,790],{"class":523}," getTentoClient",[450,792,793],{"class":531},"():",[450,795,705],{"class":456},[450,797,544],{"class":531},[450,799,800,803,806,809,812,815],{"class":452,"line":662},[450,801,802],{"class":516},"  if",[450,804,805],{"class":538}," (",[450,807,808],{"class":531},"!",[450,810,811],{"class":527},"_client",[450,813,814],{"class":538},") ",[450,816,532],{"class":531},[450,818,819,822,825,828,831],{"class":452,"line":668},[450,820,821],{"class":727},"    const",[450,823,824],{"class":527}," config",[450,826,827],{"class":531}," =",[450,829,830],{"class":523}," useRuntimeConfig",[450,832,833],{"class":538},"()\n",[450,835,837,840,842,845,847,849],{"class":452,"line":836},13,[450,838,839],{"class":527},"    _client",[450,841,827],{"class":531},[450,843,844],{"class":531}," new",[450,846,705],{"class":523},[450,848,528],{"class":538},[450,850,532],{"class":531},[450,852,854,857,859,861,863,865],{"class":452,"line":853},14,[450,855,856],{"class":538},"      apiKey",[450,858,504],{"class":531},[450,860,824],{"class":527},[450,862,565],{"class":531},[450,864,479],{"class":527},[450,866,576],{"class":531},[450,868,870,873,875,877,879,882,884,886],{"class":452,"line":869},15,[450,871,872],{"class":538},"      baseUrl",[450,874,504],{"class":531},[450,876,824],{"class":527},[450,878,565],{"class":531},[450,880,881],{"class":527},"public",[450,883,565],{"class":531},[450,885,491],{"class":527},[450,887,576],{"class":531},[450,889,891,894],{"class":452,"line":890},16,[450,892,893],{"class":531},"    }",[450,895,674],{"class":538},[450,897,899],{"class":452,"line":898},17,[450,900,901],{"class":531},"  }\n",[450,903,905,908],{"class":452,"line":904},18,[450,906,907],{"class":516},"  return",[450,909,910],{"class":527}," _client\n",[450,912,914],{"class":452,"line":913},19,[450,915,916],{"class":531},"}\n",[450,918,920],{"class":452,"line":919},20,[450,921,604],{"emptyLinePlaceholder":603},[450,923,925],{"class":452,"line":924},21,[450,926,765],{"class":550},[450,928,930],{"class":452,"line":929},22,[450,931,932],{"class":550}," * Returns a TentoClient with the preview key attached.\n",[450,934,936],{"class":452,"line":935},23,[450,937,938],{"class":550}," * Used inside the preview server route only.\n",[450,940,942],{"class":452,"line":941},24,[450,943,780],{"class":550},[450,945,947,949,951,954,956,958],{"class":452,"line":946},25,[450,948,517],{"class":516},[450,950,787],{"class":727},[450,952,953],{"class":523}," getTentoPreviewClient",[450,955,793],{"class":531},[450,957,705],{"class":456},[450,959,544],{"class":531},[450,961,963,965,967,969,972,974],{"class":452,"line":962},26,[450,964,802],{"class":516},[450,966,805],{"class":538},[450,968,808],{"class":531},[450,970,971],{"class":527},"_previewClient",[450,973,814],{"class":538},[450,975,532],{"class":531},[450,977,979,981,983,985,987],{"class":452,"line":978},27,[450,980,821],{"class":727},[450,982,824],{"class":527},[450,984,827],{"class":531},[450,986,830],{"class":523},[450,988,833],{"class":538},[450,990,992,995,997,999,1001,1003],{"class":452,"line":991},28,[450,993,994],{"class":527},"    _previewClient",[450,996,827],{"class":531},[450,998,844],{"class":531},[450,1000,705],{"class":523},[450,1002,528],{"class":538},[450,1004,532],{"class":531},[450,1006,1008,1010,1012,1014,1016,1018],{"class":452,"line":1007},29,[450,1009,856],{"class":538},[450,1011,504],{"class":531},[450,1013,824],{"class":527},[450,1015,565],{"class":531},[450,1017,479],{"class":527},[450,1019,576],{"class":531},[450,1021,1023,1026,1028,1030,1032,1034],{"class":452,"line":1022},30,[450,1024,1025],{"class":538},"      previewKey",[450,1027,504],{"class":531},[450,1029,824],{"class":527},[450,1031,565],{"class":531},[450,1033,483],{"class":527},[450,1035,576],{"class":531},[450,1037,1039,1041,1043,1045,1047,1049,1051,1053],{"class":452,"line":1038},31,[450,1040,872],{"class":538},[450,1042,504],{"class":531},[450,1044,824],{"class":527},[450,1046,565],{"class":531},[450,1048,881],{"class":527},[450,1050,565],{"class":531},[450,1052,491],{"class":527},[450,1054,576],{"class":531},[450,1056,1058,1060],{"class":452,"line":1057},32,[450,1059,893],{"class":531},[450,1061,674],{"class":538},[450,1063,1065],{"class":452,"line":1064},33,[450,1066,901],{"class":531},[450,1068,1070,1072],{"class":452,"line":1069},34,[450,1071,907],{"class":516},[450,1073,1074],{"class":527}," _previewClient\n",[450,1076,1078],{"class":452,"line":1077},35,[450,1079,916],{"class":531},[494,1081,1083],{"id":1082},"_3-create-server-api-routes","3. Create server API routes",[425,1085,1086],{},"Pages and components never call the SDK directly. They call a thin Nuxt server route that uses the server utility above. Only the rendered data reaches the browser.",[425,1088,1089,1094],{},[474,1090,1091],{},[447,1092,1093],{},"server\u002Fapi\u002Fcms\u002Fpage.get.ts"," — fetch a page by slug:",[440,1096,1098],{"className":507,"code":1097,"language":509,"meta":445,"style":445},"export default defineEventHandler(async (event) => {\n  const { slug } = getQuery(event) as { slug: string }\n\n  if (!slug) {\n    throw createError({ statusCode: 400, message: 'slug is required' })\n  }\n\n  const tento = getTentoClient()\n  return tento.pages.getBySlug(slug)\n})\n",[447,1099,1100,1128,1166,1170,1185,1226,1230,1234,1247,1269],{"__ignoreMap":445},[450,1101,1102,1104,1106,1109,1111,1114,1116,1120,1123,1126],{"class":452,"line":453},[450,1103,517],{"class":516},[450,1105,520],{"class":516},[450,1107,1108],{"class":523}," defineEventHandler",[450,1110,528],{"class":527},[450,1112,1113],{"class":727},"async",[450,1115,805],{"class":531},[450,1117,1119],{"class":1118},"sHdIc","event",[450,1121,1122],{"class":531},")",[450,1124,1125],{"class":727}," =>",[450,1127,544],{"class":531},[450,1129,1130,1133,1135,1138,1140,1142,1145,1147,1149,1151,1154,1156,1158,1160,1163],{"class":452,"line":535},[450,1131,1132],{"class":727},"  const",[450,1134,702],{"class":531},[450,1136,1137],{"class":527}," slug",[450,1139,708],{"class":531},[450,1141,827],{"class":531},[450,1143,1144],{"class":523}," getQuery",[450,1146,528],{"class":538},[450,1148,1119],{"class":527},[450,1150,814],{"class":538},[450,1152,1153],{"class":516},"as",[450,1155,702],{"class":531},[450,1157,1137],{"class":538},[450,1159,504],{"class":531},[450,1161,1162],{"class":456}," string",[450,1164,1165],{"class":531}," }\n",[450,1167,1168],{"class":452,"line":547},[450,1169,604],{"emptyLinePlaceholder":603},[450,1171,1172,1174,1176,1178,1181,1183],{"class":452,"line":554},[450,1173,802],{"class":516},[450,1175,805],{"class":538},[450,1177,808],{"class":531},[450,1179,1180],{"class":527},"slug",[450,1182,814],{"class":538},[450,1184,532],{"class":531},[450,1186,1187,1190,1193,1195,1198,1201,1203,1207,1210,1213,1215,1217,1220,1222,1224],{"class":452,"line":579},[450,1188,1189],{"class":516},"    throw",[450,1191,1192],{"class":523}," createError",[450,1194,528],{"class":538},[450,1196,1197],{"class":531},"{",[450,1199,1200],{"class":538}," statusCode",[450,1202,504],{"class":531},[450,1204,1206],{"class":1205},"sbssI"," 400",[450,1208,1209],{"class":531},",",[450,1211,1212],{"class":538}," message",[450,1214,504],{"class":531},[450,1216,645],{"class":531},[450,1218,1219],{"class":460},"slug is required",[450,1221,651],{"class":531},[450,1223,708],{"class":531},[450,1225,674],{"class":538},[450,1227,1228],{"class":452,"line":600},[450,1229,901],{"class":531},[450,1231,1232],{"class":452,"line":607},[450,1233,604],{"emptyLinePlaceholder":603},[450,1235,1236,1238,1241,1243,1245],{"class":452,"line":613},[450,1237,1132],{"class":727},[450,1239,1240],{"class":527}," tento",[450,1242,827],{"class":531},[450,1244,790],{"class":523},[450,1246,833],{"class":538},[450,1248,1249,1251,1253,1255,1258,1260,1263,1265,1267],{"class":452,"line":623},[450,1250,907],{"class":516},[450,1252,1240],{"class":527},[450,1254,565],{"class":531},[450,1256,1257],{"class":527},"pages",[450,1259,565],{"class":531},[450,1261,1262],{"class":523},"getBySlug",[450,1264,528],{"class":538},[450,1266,1180],{"class":527},[450,1268,674],{"class":538},[450,1270,1271,1273],{"class":452,"line":656},[450,1272,671],{"class":531},[450,1274,674],{"class":527},[425,1276,1277,1282],{},[474,1278,1279],{},[447,1280,1281],{},"server\u002Fapi\u002Fcms\u002Fcollection.get.ts"," — list collection items:",[440,1284,1286],{"className":507,"code":1285,"language":509,"meta":445,"style":445},"export default defineEventHandler(async (event) => {\n  const { type, limit, sort } = getQuery(event) as {\n    type: string\n    limit?: string\n    sort?: string\n  }\n\n  if (!type) {\n    throw createError({ statusCode: 400, message: 'type is required' })\n  }\n\n  const tento = getTentoClient()\n  return tento.collections.list(type, {\n    limit: limit ? Number(limit) : undefined,\n    sort,\n  })\n})\n",[447,1287,1288,1310,1345,1355,1365,1374,1378,1382,1397,1430,1434,1438,1450,1474,1500,1506,1513],{"__ignoreMap":445},[450,1289,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308],{"class":452,"line":453},[450,1291,517],{"class":516},[450,1293,520],{"class":516},[450,1295,1108],{"class":523},[450,1297,528],{"class":527},[450,1299,1113],{"class":727},[450,1301,805],{"class":531},[450,1303,1119],{"class":1118},[450,1305,1122],{"class":531},[450,1307,1125],{"class":727},[450,1309,544],{"class":531},[450,1311,1312,1314,1316,1319,1321,1324,1326,1329,1331,1333,1335,1337,1339,1341,1343],{"class":452,"line":535},[450,1313,1132],{"class":727},[450,1315,702],{"class":531},[450,1317,1318],{"class":527}," type",[450,1320,1209],{"class":531},[450,1322,1323],{"class":527}," limit",[450,1325,1209],{"class":531},[450,1327,1328],{"class":527}," sort",[450,1330,708],{"class":531},[450,1332,827],{"class":531},[450,1334,1144],{"class":523},[450,1336,528],{"class":538},[450,1338,1119],{"class":527},[450,1340,814],{"class":538},[450,1342,1153],{"class":516},[450,1344,544],{"class":531},[450,1346,1347,1350,1352],{"class":452,"line":547},[450,1348,1349],{"class":538},"    type",[450,1351,504],{"class":531},[450,1353,1354],{"class":456}," string\n",[450,1356,1357,1360,1363],{"class":452,"line":554},[450,1358,1359],{"class":538},"    limit",[450,1361,1362],{"class":531},"?:",[450,1364,1354],{"class":456},[450,1366,1367,1370,1372],{"class":452,"line":579},[450,1368,1369],{"class":538},"    sort",[450,1371,1362],{"class":531},[450,1373,1354],{"class":456},[450,1375,1376],{"class":452,"line":600},[450,1377,901],{"class":531},[450,1379,1380],{"class":452,"line":607},[450,1381,604],{"emptyLinePlaceholder":603},[450,1383,1384,1386,1388,1390,1393,1395],{"class":452,"line":613},[450,1385,802],{"class":516},[450,1387,805],{"class":538},[450,1389,808],{"class":531},[450,1391,1392],{"class":527},"type",[450,1394,814],{"class":538},[450,1396,532],{"class":531},[450,1398,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421,1424,1426,1428],{"class":452,"line":623},[450,1400,1189],{"class":516},[450,1402,1192],{"class":523},[450,1404,528],{"class":538},[450,1406,1197],{"class":531},[450,1408,1200],{"class":538},[450,1410,504],{"class":531},[450,1412,1206],{"class":1205},[450,1414,1209],{"class":531},[450,1416,1212],{"class":538},[450,1418,504],{"class":531},[450,1420,645],{"class":531},[450,1422,1423],{"class":460},"type is required",[450,1425,651],{"class":531},[450,1427,708],{"class":531},[450,1429,674],{"class":538},[450,1431,1432],{"class":452,"line":656},[450,1433,901],{"class":531},[450,1435,1436],{"class":452,"line":662},[450,1437,604],{"emptyLinePlaceholder":603},[450,1439,1440,1442,1444,1446,1448],{"class":452,"line":668},[450,1441,1132],{"class":727},[450,1443,1240],{"class":527},[450,1445,827],{"class":531},[450,1447,790],{"class":523},[450,1449,833],{"class":538},[450,1451,1452,1454,1456,1458,1461,1463,1466,1468,1470,1472],{"class":452,"line":836},[450,1453,907],{"class":516},[450,1455,1240],{"class":527},[450,1457,565],{"class":531},[450,1459,1460],{"class":527},"collections",[450,1462,565],{"class":531},[450,1464,1465],{"class":523},"list",[450,1467,528],{"class":538},[450,1469,1392],{"class":527},[450,1471,1209],{"class":531},[450,1473,544],{"class":531},[450,1475,1476,1478,1480,1482,1485,1488,1490,1493,1495,1497],{"class":452,"line":853},[450,1477,1359],{"class":538},[450,1479,504],{"class":531},[450,1481,1323],{"class":527},[450,1483,1484],{"class":531}," ?",[450,1486,1487],{"class":523}," Number",[450,1489,528],{"class":538},[450,1491,1492],{"class":527},"limit",[450,1494,814],{"class":538},[450,1496,504],{"class":531},[450,1498,1499],{"class":531}," undefined,\n",[450,1501,1502,1504],{"class":452,"line":869},[450,1503,1369],{"class":527},[450,1505,576],{"class":531},[450,1507,1508,1511],{"class":452,"line":890},[450,1509,1510],{"class":531},"  }",[450,1512,674],{"class":538},[450,1514,1515,1517],{"class":452,"line":898},[450,1516,671],{"class":531},[450,1518,674],{"class":527},[494,1520,1522],{"id":1521},"_4-environment-variables","4. Environment variables",[425,1524,681,1525,504],{},[447,1526,1527],{},".env",[440,1529,1531],{"className":442,"code":1530,"language":444,"meta":445,"style":445},"TENTO_API_KEY=tento_pk_1234567890\nTENTO_PREVIEW_KEY=preview_abc123def456789...\nTENTO_BASE_URL=https:\u002F\u002Ftento-api.intelligentlending.co.uk\n",[447,1532,1533,1543,1552],{"__ignoreMap":445},[450,1534,1535,1537,1540],{"class":452,"line":453},[450,1536,573],{"class":527},[450,1538,1539],{"class":531},"=",[450,1541,1542],{"class":460},"tento_pk_1234567890\n",[450,1544,1545,1547,1549],{"class":452,"line":535},[450,1546,595],{"class":527},[450,1548,1539],{"class":531},[450,1550,1551],{"class":460},"preview_abc123def456789...\n",[450,1553,1554,1557,1559],{"class":452,"line":547},[450,1555,1556],{"class":527},"TENTO_BASE_URL",[450,1558,1539],{"class":531},[450,1560,1561],{"class":460},"https:\u002F\u002Ftento-api.intelligentlending.co.uk\n",[435,1563,1565],{"id":1564},"basic-usage","Basic Usage",[425,1567,1568,1569,1572,1573,1576],{},"Pages fetch data through the server routes created above using ",[447,1570,1571],{},"useFetch"," or ",[447,1574,1575],{},"useAsyncData",". The SDK and API keys never leave the server.",[494,1578,42],{"id":1257},[440,1580,1584],{"className":1581,"code":1582,"language":1583,"meta":445,"style":445},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data: page } = await useFetch('\u002Fapi\u002Fcms\u002Fpage', {\n  query: { slug: 'homepage' },\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ page?.fields.title }}\u003C\u002Fh1>\n    \u003Cdiv v-html=\"page?.fields.content\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue",[447,1585,1586,1613,1651,1674,1680,1689,1693,1702,1712,1732,1753,1762],{"__ignoreMap":445},[450,1587,1588,1591,1594,1597,1600,1602,1605,1608,1610],{"class":452,"line":453},[450,1589,1590],{"class":531},"\u003C",[450,1592,1593],{"class":538},"script",[450,1595,1596],{"class":727}," setup",[450,1598,1599],{"class":727}," lang",[450,1601,1539],{"class":531},[450,1603,1604],{"class":531},"\"",[450,1606,1607],{"class":460},"ts",[450,1609,1604],{"class":531},[450,1611,1612],{"class":531},">\n",[450,1614,1615,1618,1620,1623,1625,1628,1630,1632,1635,1638,1640,1642,1645,1647,1649],{"class":452,"line":535},[450,1616,1617],{"class":727},"const",[450,1619,702],{"class":531},[450,1621,1622],{"class":538}," data",[450,1624,504],{"class":531},[450,1626,1627],{"class":527}," page ",[450,1629,671],{"class":531},[450,1631,827],{"class":531},[450,1633,1634],{"class":516}," await",[450,1636,1637],{"class":523}," useFetch",[450,1639,528],{"class":527},[450,1641,651],{"class":531},[450,1643,1644],{"class":460},"\u002Fapi\u002Fcms\u002Fpage",[450,1646,651],{"class":531},[450,1648,1209],{"class":531},[450,1650,544],{"class":531},[450,1652,1653,1656,1658,1660,1662,1664,1666,1669,1671],{"class":452,"line":547},[450,1654,1655],{"class":538},"  query",[450,1657,504],{"class":531},[450,1659,702],{"class":531},[450,1661,1137],{"class":538},[450,1663,504],{"class":531},[450,1665,645],{"class":531},[450,1667,1668],{"class":460},"homepage",[450,1670,651],{"class":531},[450,1672,1673],{"class":531}," },\n",[450,1675,1676,1678],{"class":452,"line":554},[450,1677,671],{"class":531},[450,1679,674],{"class":527},[450,1681,1682,1685,1687],{"class":452,"line":579},[450,1683,1684],{"class":531},"\u003C\u002F",[450,1686,1593],{"class":538},[450,1688,1612],{"class":531},[450,1690,1691],{"class":452,"line":600},[450,1692,604],{"emptyLinePlaceholder":603},[450,1694,1695,1697,1700],{"class":452,"line":607},[450,1696,1590],{"class":531},[450,1698,1699],{"class":538},"template",[450,1701,1612],{"class":531},[450,1703,1704,1707,1710],{"class":452,"line":613},[450,1705,1706],{"class":531},"  \u003C",[450,1708,1709],{"class":538},"div",[450,1711,1612],{"class":531},[450,1713,1714,1717,1720,1723,1726,1728,1730],{"class":452,"line":623},[450,1715,1716],{"class":531},"    \u003C",[450,1718,1719],{"class":538},"h1",[450,1721,1722],{"class":531},">",[450,1724,1725],{"class":527},"{{ page?.fields.title }}",[450,1727,1684],{"class":531},[450,1729,1719],{"class":538},[450,1731,1612],{"class":531},[450,1733,1734,1736,1738,1741,1743,1745,1748,1750],{"class":452,"line":656},[450,1735,1716],{"class":531},[450,1737,1709],{"class":538},[450,1739,1740],{"class":727}," v-html",[450,1742,1539],{"class":531},[450,1744,1604],{"class":531},[450,1746,1747],{"class":460},"page?.fields.content",[450,1749,1604],{"class":531},[450,1751,1752],{"class":531}," \u002F>\n",[450,1754,1755,1758,1760],{"class":452,"line":662},[450,1756,1757],{"class":531},"  \u003C\u002F",[450,1759,1709],{"class":538},[450,1761,1612],{"class":531},[450,1763,1764,1766,1768],{"class":452,"line":668},[450,1765,1684],{"class":531},[450,1767,1699],{"class":538},[450,1769,1612],{"class":531},[494,1771,1773],{"id":1772},"dynamic-pages","Dynamic pages",[440,1775,1777],{"className":1581,"code":1776,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\n\nconst { data: page } = await useFetch('\u002Fapi\u002Fcms\u002Fpage', {\n  query: { slug: route.params.slug },\n  key: `page-${route.params.slug}`,\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"page\">\n    \u003Ch1>{{ page.fields.title }}\u003C\u002Fh1>\n    \u003Cdiv v-html=\"page.fields.content\" \u002F>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else>\n    \u003Cp>Page not found\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,1778,1779,1799,1813,1817,1849,1877,1909,1915,1923,1927,1935,1955,1972,1991,1999,2010,2027,2035],{"__ignoreMap":445},[450,1780,1781,1783,1785,1787,1789,1791,1793,1795,1797],{"class":452,"line":453},[450,1782,1590],{"class":531},[450,1784,1593],{"class":538},[450,1786,1596],{"class":727},[450,1788,1599],{"class":727},[450,1790,1539],{"class":531},[450,1792,1604],{"class":531},[450,1794,1607],{"class":460},[450,1796,1604],{"class":531},[450,1798,1612],{"class":531},[450,1800,1801,1803,1806,1808,1811],{"class":452,"line":535},[450,1802,1617],{"class":727},[450,1804,1805],{"class":527}," route ",[450,1807,1539],{"class":531},[450,1809,1810],{"class":523}," useRoute",[450,1812,833],{"class":527},[450,1814,1815],{"class":452,"line":547},[450,1816,604],{"emptyLinePlaceholder":603},[450,1818,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847],{"class":452,"line":554},[450,1820,1617],{"class":727},[450,1822,702],{"class":531},[450,1824,1622],{"class":538},[450,1826,504],{"class":531},[450,1828,1627],{"class":527},[450,1830,671],{"class":531},[450,1832,827],{"class":531},[450,1834,1634],{"class":516},[450,1836,1637],{"class":523},[450,1838,528],{"class":527},[450,1840,651],{"class":531},[450,1842,1644],{"class":460},[450,1844,651],{"class":531},[450,1846,1209],{"class":531},[450,1848,544],{"class":531},[450,1850,1851,1853,1855,1857,1859,1861,1864,1866,1869,1871,1874],{"class":452,"line":579},[450,1852,1655],{"class":538},[450,1854,504],{"class":531},[450,1856,702],{"class":531},[450,1858,1137],{"class":538},[450,1860,504],{"class":531},[450,1862,1863],{"class":527}," route",[450,1865,565],{"class":531},[450,1867,1868],{"class":527},"params",[450,1870,565],{"class":531},[450,1872,1873],{"class":527},"slug ",[450,1875,1876],{"class":531},"},\n",[450,1878,1879,1882,1884,1887,1890,1893,1896,1898,1900,1902,1904,1907],{"class":452,"line":600},[450,1880,1881],{"class":538},"  key",[450,1883,504],{"class":531},[450,1885,1886],{"class":531}," `",[450,1888,1889],{"class":460},"page-",[450,1891,1892],{"class":531},"${",[450,1894,1895],{"class":527},"route",[450,1897,565],{"class":531},[450,1899,1868],{"class":527},[450,1901,565],{"class":531},[450,1903,1180],{"class":527},[450,1905,1906],{"class":531},"}`",[450,1908,576],{"class":531},[450,1910,1911,1913],{"class":452,"line":607},[450,1912,671],{"class":531},[450,1914,674],{"class":527},[450,1916,1917,1919,1921],{"class":452,"line":613},[450,1918,1684],{"class":531},[450,1920,1593],{"class":538},[450,1922,1612],{"class":531},[450,1924,1925],{"class":452,"line":623},[450,1926,604],{"emptyLinePlaceholder":603},[450,1928,1929,1931,1933],{"class":452,"line":656},[450,1930,1590],{"class":531},[450,1932,1699],{"class":538},[450,1934,1612],{"class":531},[450,1936,1937,1939,1941,1944,1946,1948,1951,1953],{"class":452,"line":662},[450,1938,1706],{"class":531},[450,1940,1709],{"class":538},[450,1942,1943],{"class":727}," v-if",[450,1945,1539],{"class":531},[450,1947,1604],{"class":531},[450,1949,1950],{"class":460},"page",[450,1952,1604],{"class":531},[450,1954,1612],{"class":531},[450,1956,1957,1959,1961,1963,1966,1968,1970],{"class":452,"line":668},[450,1958,1716],{"class":531},[450,1960,1719],{"class":538},[450,1962,1722],{"class":531},[450,1964,1965],{"class":527},"{{ page.fields.title }}",[450,1967,1684],{"class":531},[450,1969,1719],{"class":538},[450,1971,1612],{"class":531},[450,1973,1974,1976,1978,1980,1982,1984,1987,1989],{"class":452,"line":836},[450,1975,1716],{"class":531},[450,1977,1709],{"class":538},[450,1979,1740],{"class":727},[450,1981,1539],{"class":531},[450,1983,1604],{"class":531},[450,1985,1986],{"class":460},"page.fields.content",[450,1988,1604],{"class":531},[450,1990,1752],{"class":531},[450,1992,1993,1995,1997],{"class":452,"line":853},[450,1994,1757],{"class":531},[450,1996,1709],{"class":538},[450,1998,1612],{"class":531},[450,2000,2001,2003,2005,2008],{"class":452,"line":869},[450,2002,1706],{"class":531},[450,2004,1709],{"class":538},[450,2006,2007],{"class":727}," v-else",[450,2009,1612],{"class":531},[450,2011,2012,2014,2016,2018,2021,2023,2025],{"class":452,"line":890},[450,2013,1716],{"class":531},[450,2015,425],{"class":538},[450,2017,1722],{"class":531},[450,2019,2020],{"class":527},"Page not found",[450,2022,1684],{"class":531},[450,2024,425],{"class":538},[450,2026,1612],{"class":531},[450,2028,2029,2031,2033],{"class":452,"line":898},[450,2030,1757],{"class":531},[450,2032,1709],{"class":538},[450,2034,1612],{"class":531},[450,2036,2037,2039,2041],{"class":452,"line":904},[450,2038,1684],{"class":531},[450,2040,1699],{"class":538},[450,2042,1612],{"class":531},[494,2044,22],{"id":1460},[440,2046,2048],{"className":1581,"code":2047,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst { data: products } = await useFetch('\u002Fapi\u002Fcms\u002Fcollection', {\n  query: { type: 'products', limit: 12, sort: '-createdAt' },\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"grid grid-cols-3 gap-4\">\n    \u003Cdiv v-for=\"product in products?.data\" :key=\"product.slug\">\n      \u003Ch3>{{ product.name }}\u003C\u002Fh3>\n      \u003Cp>{{ product.price }}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,2049,2050,2070,2104,2147,2153,2161,2165,2173,2193,2225,2243,2260,2269,2277],{"__ignoreMap":445},[450,2051,2052,2054,2056,2058,2060,2062,2064,2066,2068],{"class":452,"line":453},[450,2053,1590],{"class":531},[450,2055,1593],{"class":538},[450,2057,1596],{"class":727},[450,2059,1599],{"class":727},[450,2061,1539],{"class":531},[450,2063,1604],{"class":531},[450,2065,1607],{"class":460},[450,2067,1604],{"class":531},[450,2069,1612],{"class":531},[450,2071,2072,2074,2076,2078,2080,2083,2085,2087,2089,2091,2093,2095,2098,2100,2102],{"class":452,"line":535},[450,2073,1617],{"class":727},[450,2075,702],{"class":531},[450,2077,1622],{"class":538},[450,2079,504],{"class":531},[450,2081,2082],{"class":527}," products ",[450,2084,671],{"class":531},[450,2086,827],{"class":531},[450,2088,1634],{"class":516},[450,2090,1637],{"class":523},[450,2092,528],{"class":527},[450,2094,651],{"class":531},[450,2096,2097],{"class":460},"\u002Fapi\u002Fcms\u002Fcollection",[450,2099,651],{"class":531},[450,2101,1209],{"class":531},[450,2103,544],{"class":531},[450,2105,2106,2108,2110,2112,2114,2116,2118,2121,2123,2125,2127,2129,2132,2134,2136,2138,2140,2143,2145],{"class":452,"line":547},[450,2107,1655],{"class":538},[450,2109,504],{"class":531},[450,2111,702],{"class":531},[450,2113,1318],{"class":538},[450,2115,504],{"class":531},[450,2117,645],{"class":531},[450,2119,2120],{"class":460},"products",[450,2122,651],{"class":531},[450,2124,1209],{"class":531},[450,2126,1323],{"class":538},[450,2128,504],{"class":531},[450,2130,2131],{"class":1205}," 12",[450,2133,1209],{"class":531},[450,2135,1328],{"class":538},[450,2137,504],{"class":531},[450,2139,645],{"class":531},[450,2141,2142],{"class":460},"-createdAt",[450,2144,651],{"class":531},[450,2146,1673],{"class":531},[450,2148,2149,2151],{"class":452,"line":554},[450,2150,671],{"class":531},[450,2152,674],{"class":527},[450,2154,2155,2157,2159],{"class":452,"line":579},[450,2156,1684],{"class":531},[450,2158,1593],{"class":538},[450,2160,1612],{"class":531},[450,2162,2163],{"class":452,"line":600},[450,2164,604],{"emptyLinePlaceholder":603},[450,2166,2167,2169,2171],{"class":452,"line":607},[450,2168,1590],{"class":531},[450,2170,1699],{"class":538},[450,2172,1612],{"class":531},[450,2174,2175,2177,2179,2182,2184,2186,2189,2191],{"class":452,"line":613},[450,2176,1706],{"class":531},[450,2178,1709],{"class":538},[450,2180,2181],{"class":727}," class",[450,2183,1539],{"class":531},[450,2185,1604],{"class":531},[450,2187,2188],{"class":460},"grid grid-cols-3 gap-4",[450,2190,1604],{"class":531},[450,2192,1612],{"class":531},[450,2194,2195,2197,2199,2202,2204,2206,2209,2211,2214,2216,2218,2221,2223],{"class":452,"line":623},[450,2196,1716],{"class":531},[450,2198,1709],{"class":538},[450,2200,2201],{"class":727}," v-for",[450,2203,1539],{"class":531},[450,2205,1604],{"class":531},[450,2207,2208],{"class":460},"product in products?.data",[450,2210,1604],{"class":531},[450,2212,2213],{"class":727}," :key",[450,2215,1539],{"class":531},[450,2217,1604],{"class":531},[450,2219,2220],{"class":460},"product.slug",[450,2222,1604],{"class":531},[450,2224,1612],{"class":531},[450,2226,2227,2230,2232,2234,2237,2239,2241],{"class":452,"line":656},[450,2228,2229],{"class":531},"      \u003C",[450,2231,494],{"class":538},[450,2233,1722],{"class":531},[450,2235,2236],{"class":527},"{{ product.name }}",[450,2238,1684],{"class":531},[450,2240,494],{"class":538},[450,2242,1612],{"class":531},[450,2244,2245,2247,2249,2251,2254,2256,2258],{"class":452,"line":662},[450,2246,2229],{"class":531},[450,2248,425],{"class":538},[450,2250,1722],{"class":531},[450,2252,2253],{"class":527},"{{ product.price }}",[450,2255,1684],{"class":531},[450,2257,425],{"class":538},[450,2259,1612],{"class":531},[450,2261,2262,2265,2267],{"class":452,"line":668},[450,2263,2264],{"class":531},"    \u003C\u002F",[450,2266,1709],{"class":538},[450,2268,1612],{"class":531},[450,2270,2271,2273,2275],{"class":452,"line":836},[450,2272,1757],{"class":531},[450,2274,1709],{"class":538},[450,2276,1612],{"class":531},[450,2278,2279,2281,2283],{"class":452,"line":853},[450,2280,1684],{"class":531},[450,2282,1699],{"class":538},[450,2284,1612],{"class":531},[435,2286,2288],{"id":2287},"preview-mode","Preview Mode",[494,2290,2292],{"id":2291},"setup-preview-routes","Setup preview routes",[425,2294,681,2295,2298,2299,2302],{},[447,2296,2297],{},"server\u002Fapi\u002Fpreview.ts"," — validates the secret server-side and sets an ",[447,2300,2301],{},"httpOnly"," cookie:",[440,2304,2306],{"className":507,"code":2305,"language":509,"meta":445,"style":445},"export default defineEventHandler(async (event) => {\n  const query = getQuery(event)\n  const slug = query.slug as string\n  const secret = query.secret as string\n\n  if (secret !== useRuntimeConfig().tentoPreviewKey) {\n    throw createError({\n      statusCode: 401,\n      message: 'Invalid preview secret'\n    })\n  }\n\n  setCookie(event, 'tento-preview', 'true', {\n    path: '\u002F',\n    maxAge: 60 * 60, \u002F\u002F 1 hour\n    httpOnly: true,\n    secure: process.env.NODE_ENV === 'production',\n    sameSite: 'lax'\n  })\n\n  return sendRedirect(event, `\u002F${slug}`)\n})\n",[447,2307,2308,2330,2347,2366,2386,2390,2414,2424,2436,2450,2456,2460,2464,2495,2511,2531,2544,2574,2588,2594,2598,2623],{"__ignoreMap":445},[450,2309,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328],{"class":452,"line":453},[450,2311,517],{"class":516},[450,2313,520],{"class":516},[450,2315,1108],{"class":523},[450,2317,528],{"class":527},[450,2319,1113],{"class":727},[450,2321,805],{"class":531},[450,2323,1119],{"class":1118},[450,2325,1122],{"class":531},[450,2327,1125],{"class":727},[450,2329,544],{"class":531},[450,2331,2332,2334,2337,2339,2341,2343,2345],{"class":452,"line":535},[450,2333,1132],{"class":727},[450,2335,2336],{"class":527}," query",[450,2338,827],{"class":531},[450,2340,1144],{"class":523},[450,2342,528],{"class":538},[450,2344,1119],{"class":527},[450,2346,674],{"class":538},[450,2348,2349,2351,2353,2355,2357,2359,2361,2364],{"class":452,"line":547},[450,2350,1132],{"class":727},[450,2352,1137],{"class":527},[450,2354,827],{"class":531},[450,2356,2336],{"class":527},[450,2358,565],{"class":531},[450,2360,1180],{"class":527},[450,2362,2363],{"class":516}," as",[450,2365,1354],{"class":456},[450,2367,2368,2370,2373,2375,2377,2379,2382,2384],{"class":452,"line":554},[450,2369,1132],{"class":727},[450,2371,2372],{"class":527}," secret",[450,2374,827],{"class":531},[450,2376,2336],{"class":527},[450,2378,565],{"class":531},[450,2380,2381],{"class":527},"secret",[450,2383,2363],{"class":516},[450,2385,1354],{"class":456},[450,2387,2388],{"class":452,"line":579},[450,2389,604],{"emptyLinePlaceholder":603},[450,2391,2392,2394,2396,2398,2401,2403,2406,2408,2410,2412],{"class":452,"line":600},[450,2393,802],{"class":516},[450,2395,805],{"class":538},[450,2397,2381],{"class":527},[450,2399,2400],{"class":531}," !==",[450,2402,830],{"class":523},[450,2404,2405],{"class":538},"()",[450,2407,565],{"class":531},[450,2409,483],{"class":527},[450,2411,814],{"class":538},[450,2413,532],{"class":531},[450,2415,2416,2418,2420,2422],{"class":452,"line":607},[450,2417,1189],{"class":516},[450,2419,1192],{"class":523},[450,2421,528],{"class":538},[450,2423,532],{"class":531},[450,2425,2426,2429,2431,2434],{"class":452,"line":613},[450,2427,2428],{"class":538},"      statusCode",[450,2430,504],{"class":531},[450,2432,2433],{"class":1205}," 401",[450,2435,576],{"class":531},[450,2437,2438,2441,2443,2445,2448],{"class":452,"line":623},[450,2439,2440],{"class":538},"      message",[450,2442,504],{"class":531},[450,2444,645],{"class":531},[450,2446,2447],{"class":460},"Invalid preview secret",[450,2449,718],{"class":531},[450,2451,2452,2454],{"class":452,"line":656},[450,2453,893],{"class":531},[450,2455,674],{"class":538},[450,2457,2458],{"class":452,"line":662},[450,2459,901],{"class":531},[450,2461,2462],{"class":452,"line":668},[450,2463,604],{"emptyLinePlaceholder":603},[450,2465,2466,2469,2471,2473,2475,2477,2480,2482,2484,2486,2489,2491,2493],{"class":452,"line":836},[450,2467,2468],{"class":523},"  setCookie",[450,2470,528],{"class":538},[450,2472,1119],{"class":527},[450,2474,1209],{"class":531},[450,2476,645],{"class":531},[450,2478,2479],{"class":460},"tento-preview",[450,2481,651],{"class":531},[450,2483,1209],{"class":531},[450,2485,645],{"class":531},[450,2487,2488],{"class":460},"true",[450,2490,651],{"class":531},[450,2492,1209],{"class":531},[450,2494,544],{"class":531},[450,2496,2497,2500,2502,2504,2507,2509],{"class":452,"line":853},[450,2498,2499],{"class":538},"    path",[450,2501,504],{"class":531},[450,2503,645],{"class":531},[450,2505,2506],{"class":460},"\u002F",[450,2508,651],{"class":531},[450,2510,576],{"class":531},[450,2512,2513,2516,2518,2521,2524,2526,2528],{"class":452,"line":869},[450,2514,2515],{"class":538},"    maxAge",[450,2517,504],{"class":531},[450,2519,2520],{"class":1205}," 60",[450,2522,2523],{"class":531}," *",[450,2525,2520],{"class":1205},[450,2527,1209],{"class":531},[450,2529,2530],{"class":550}," \u002F\u002F 1 hour\n",[450,2532,2533,2536,2538,2542],{"class":452,"line":890},[450,2534,2535],{"class":538},"    httpOnly",[450,2537,504],{"class":531},[450,2539,2541],{"class":2540},"sfNiH"," true",[450,2543,576],{"class":531},[450,2545,2546,2549,2551,2553,2555,2557,2559,2562,2565,2567,2570,2572],{"class":452,"line":898},[450,2547,2548],{"class":538},"    secure",[450,2550,504],{"class":531},[450,2552,562],{"class":527},[450,2554,565],{"class":531},[450,2556,568],{"class":527},[450,2558,565],{"class":531},[450,2560,2561],{"class":527},"NODE_ENV",[450,2563,2564],{"class":531}," ===",[450,2566,645],{"class":531},[450,2568,2569],{"class":460},"production",[450,2571,651],{"class":531},[450,2573,576],{"class":531},[450,2575,2576,2579,2581,2583,2586],{"class":452,"line":904},[450,2577,2578],{"class":538},"    sameSite",[450,2580,504],{"class":531},[450,2582,645],{"class":531},[450,2584,2585],{"class":460},"lax",[450,2587,718],{"class":531},[450,2589,2590,2592],{"class":452,"line":913},[450,2591,1510],{"class":531},[450,2593,674],{"class":538},[450,2595,2596],{"class":452,"line":919},[450,2597,604],{"emptyLinePlaceholder":603},[450,2599,2600,2602,2605,2607,2609,2611,2613,2615,2617,2619,2621],{"class":452,"line":924},[450,2601,907],{"class":516},[450,2603,2604],{"class":523}," sendRedirect",[450,2606,528],{"class":538},[450,2608,1119],{"class":527},[450,2610,1209],{"class":531},[450,2612,1886],{"class":531},[450,2614,2506],{"class":460},[450,2616,1892],{"class":531},[450,2618,1180],{"class":527},[450,2620,1906],{"class":531},[450,2622,674],{"class":538},[450,2624,2625,2627],{"class":452,"line":929},[450,2626,671],{"class":531},[450,2628,674],{"class":527},[425,2630,681,2631,504],{},[447,2632,2633],{},"server\u002Fapi\u002Fexit-preview.ts",[440,2635,2637],{"className":507,"code":2636,"language":509,"meta":445,"style":445},"export default defineEventHandler(async (event) => {\n  deleteCookie(event, 'tento-preview')\n  return sendRedirect(event, '\u002F')\n})\n",[447,2638,2639,2661,2680,2700],{"__ignoreMap":445},[450,2640,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659],{"class":452,"line":453},[450,2642,517],{"class":516},[450,2644,520],{"class":516},[450,2646,1108],{"class":523},[450,2648,528],{"class":527},[450,2650,1113],{"class":727},[450,2652,805],{"class":531},[450,2654,1119],{"class":1118},[450,2656,1122],{"class":531},[450,2658,1125],{"class":727},[450,2660,544],{"class":531},[450,2662,2663,2666,2668,2670,2672,2674,2676,2678],{"class":452,"line":535},[450,2664,2665],{"class":523},"  deleteCookie",[450,2667,528],{"class":538},[450,2669,1119],{"class":527},[450,2671,1209],{"class":531},[450,2673,645],{"class":531},[450,2675,2479],{"class":460},[450,2677,651],{"class":531},[450,2679,674],{"class":538},[450,2681,2682,2684,2686,2688,2690,2692,2694,2696,2698],{"class":452,"line":547},[450,2683,907],{"class":516},[450,2685,2604],{"class":523},[450,2687,528],{"class":538},[450,2689,1119],{"class":527},[450,2691,1209],{"class":531},[450,2693,645],{"class":531},[450,2695,2506],{"class":460},[450,2697,651],{"class":531},[450,2699,674],{"class":538},[450,2701,2702,2704],{"class":452,"line":554},[450,2703,671],{"class":531},[450,2705,674],{"class":527},[425,2707,681,2708,2711,2712,2715,2716,2718],{},[447,2709,2710],{},"server\u002Fapi\u002Fcms\u002Fpage-preview.get.ts"," — serves draft content when preview mode is active. Uses ",[447,2713,2714],{},"getTentoPreviewClient()"," from ",[447,2717,684],{}," so the preview key stays server-side:",[440,2720,2722],{"className":507,"code":2721,"language":509,"meta":445,"style":445},"export default defineEventHandler(async (event) => {\n  const { slug } = getQuery(event) as { slug: string }\n\n  if (!slug) {\n    throw createError({ statusCode: 400, message: 'slug is required' })\n  }\n\n  const preview = getCookie(event, 'tento-preview') === 'true'\n  const tento = preview ? getTentoPreviewClient() : getTentoClient()\n  return tento.pages.getBySlug(slug)\n})\n",[447,2723,2724,2746,2778,2782,2796,2828,2832,2836,2871,2894,2914],{"__ignoreMap":445},[450,2725,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744],{"class":452,"line":453},[450,2727,517],{"class":516},[450,2729,520],{"class":516},[450,2731,1108],{"class":523},[450,2733,528],{"class":527},[450,2735,1113],{"class":727},[450,2737,805],{"class":531},[450,2739,1119],{"class":1118},[450,2741,1122],{"class":531},[450,2743,1125],{"class":727},[450,2745,544],{"class":531},[450,2747,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776],{"class":452,"line":535},[450,2749,1132],{"class":727},[450,2751,702],{"class":531},[450,2753,1137],{"class":527},[450,2755,708],{"class":531},[450,2757,827],{"class":531},[450,2759,1144],{"class":523},[450,2761,528],{"class":538},[450,2763,1119],{"class":527},[450,2765,814],{"class":538},[450,2767,1153],{"class":516},[450,2769,702],{"class":531},[450,2771,1137],{"class":538},[450,2773,504],{"class":531},[450,2775,1162],{"class":456},[450,2777,1165],{"class":531},[450,2779,2780],{"class":452,"line":547},[450,2781,604],{"emptyLinePlaceholder":603},[450,2783,2784,2786,2788,2790,2792,2794],{"class":452,"line":554},[450,2785,802],{"class":516},[450,2787,805],{"class":538},[450,2789,808],{"class":531},[450,2791,1180],{"class":527},[450,2793,814],{"class":538},[450,2795,532],{"class":531},[450,2797,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826],{"class":452,"line":579},[450,2799,1189],{"class":516},[450,2801,1192],{"class":523},[450,2803,528],{"class":538},[450,2805,1197],{"class":531},[450,2807,1200],{"class":538},[450,2809,504],{"class":531},[450,2811,1206],{"class":1205},[450,2813,1209],{"class":531},[450,2815,1212],{"class":538},[450,2817,504],{"class":531},[450,2819,645],{"class":531},[450,2821,1219],{"class":460},[450,2823,651],{"class":531},[450,2825,708],{"class":531},[450,2827,674],{"class":538},[450,2829,2830],{"class":452,"line":600},[450,2831,901],{"class":531},[450,2833,2834],{"class":452,"line":607},[450,2835,604],{"emptyLinePlaceholder":603},[450,2837,2838,2840,2843,2845,2848,2850,2852,2854,2856,2858,2860,2862,2865,2867,2869],{"class":452,"line":613},[450,2839,1132],{"class":727},[450,2841,2842],{"class":527}," preview",[450,2844,827],{"class":531},[450,2846,2847],{"class":523}," getCookie",[450,2849,528],{"class":538},[450,2851,1119],{"class":527},[450,2853,1209],{"class":531},[450,2855,645],{"class":531},[450,2857,2479],{"class":460},[450,2859,651],{"class":531},[450,2861,814],{"class":538},[450,2863,2864],{"class":531},"===",[450,2866,645],{"class":531},[450,2868,2488],{"class":460},[450,2870,718],{"class":531},[450,2872,2873,2875,2877,2879,2881,2883,2885,2888,2890,2892],{"class":452,"line":623},[450,2874,1132],{"class":727},[450,2876,1240],{"class":527},[450,2878,827],{"class":531},[450,2880,2842],{"class":527},[450,2882,1484],{"class":531},[450,2884,953],{"class":523},[450,2886,2887],{"class":538},"() ",[450,2889,504],{"class":531},[450,2891,790],{"class":523},[450,2893,833],{"class":538},[450,2895,2896,2898,2900,2902,2904,2906,2908,2910,2912],{"class":452,"line":656},[450,2897,907],{"class":516},[450,2899,1240],{"class":527},[450,2901,565],{"class":531},[450,2903,1257],{"class":527},[450,2905,565],{"class":531},[450,2907,1262],{"class":523},[450,2909,528],{"class":538},[450,2911,1180],{"class":527},[450,2913,674],{"class":538},[450,2915,2916,2918],{"class":452,"line":662},[450,2917,671],{"class":531},[450,2919,674],{"class":527},[494,2921,2923],{"id":2922},"use-in-pages","Use in pages",[440,2925,2927],{"className":1581,"code":2926,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\nconst previewCookie = useCookie('tento-preview')\nconst isPreview = computed(() => previewCookie.value === 'true')\n\n\u002F\u002F Always hits the server route — the server decides which client to use\nconst { data: page } = await useFetch('\u002Fapi\u002Fcms\u002Fpage-preview', {\n  query: { slug: route.params.slug },\n  key: `page-preview-${route.params.slug}`,\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!-- Preview banner -->\n    \u003Cdiv v-if=\"isPreview\" class=\"bg-yellow-400 p-4 text-center\">\n      Preview Mode — viewing draft content.\n      \u003Ca href=\"\u002Fapi\u002Fexit-preview\" class=\"ml-4 underline\">Exit preview\u003C\u002Fa>\n    \u003C\u002Fdiv>\n\n    \u003C!-- Page content -->\n    \u003Cdiv v-if=\"page\">\n      \u003Ch1>{{ page.fields.title }}\u003C\u002Fh1>\n      \u003Cdiv v-html=\"page.fields.content\" \u002F>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,2928,2929,2949,2961,2983,3019,3023,3028,3061,3085,3112,3118,3126,3130,3138,3146,3151,3181,3186,3227,3235,3239,3244,3262,3278,3296,3304,3312],{"__ignoreMap":445},[450,2930,2931,2933,2935,2937,2939,2941,2943,2945,2947],{"class":452,"line":453},[450,2932,1590],{"class":531},[450,2934,1593],{"class":538},[450,2936,1596],{"class":727},[450,2938,1599],{"class":727},[450,2940,1539],{"class":531},[450,2942,1604],{"class":531},[450,2944,1607],{"class":460},[450,2946,1604],{"class":531},[450,2948,1612],{"class":531},[450,2950,2951,2953,2955,2957,2959],{"class":452,"line":535},[450,2952,1617],{"class":727},[450,2954,1805],{"class":527},[450,2956,1539],{"class":531},[450,2958,1810],{"class":523},[450,2960,833],{"class":527},[450,2962,2963,2965,2968,2970,2973,2975,2977,2979,2981],{"class":452,"line":547},[450,2964,1617],{"class":727},[450,2966,2967],{"class":527}," previewCookie ",[450,2969,1539],{"class":531},[450,2971,2972],{"class":523}," useCookie",[450,2974,528],{"class":527},[450,2976,651],{"class":531},[450,2978,2479],{"class":460},[450,2980,651],{"class":531},[450,2982,674],{"class":527},[450,2984,2985,2987,2990,2992,2995,2997,2999,3001,3004,3006,3009,3011,3013,3015,3017],{"class":452,"line":554},[450,2986,1617],{"class":727},[450,2988,2989],{"class":527}," isPreview ",[450,2991,1539],{"class":531},[450,2993,2994],{"class":523}," computed",[450,2996,528],{"class":527},[450,2998,2405],{"class":531},[450,3000,1125],{"class":727},[450,3002,3003],{"class":527}," previewCookie",[450,3005,565],{"class":531},[450,3007,3008],{"class":527},"value ",[450,3010,2864],{"class":531},[450,3012,645],{"class":531},[450,3014,2488],{"class":460},[450,3016,651],{"class":531},[450,3018,674],{"class":527},[450,3020,3021],{"class":452,"line":579},[450,3022,604],{"emptyLinePlaceholder":603},[450,3024,3025],{"class":452,"line":600},[450,3026,3027],{"class":550},"\u002F\u002F Always hits the server route — the server decides which client to use\n",[450,3029,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3055,3057,3059],{"class":452,"line":607},[450,3031,1617],{"class":727},[450,3033,702],{"class":531},[450,3035,1622],{"class":538},[450,3037,504],{"class":531},[450,3039,1627],{"class":527},[450,3041,671],{"class":531},[450,3043,827],{"class":531},[450,3045,1634],{"class":516},[450,3047,1637],{"class":523},[450,3049,528],{"class":527},[450,3051,651],{"class":531},[450,3053,3054],{"class":460},"\u002Fapi\u002Fcms\u002Fpage-preview",[450,3056,651],{"class":531},[450,3058,1209],{"class":531},[450,3060,544],{"class":531},[450,3062,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083],{"class":452,"line":613},[450,3064,1655],{"class":538},[450,3066,504],{"class":531},[450,3068,702],{"class":531},[450,3070,1137],{"class":538},[450,3072,504],{"class":531},[450,3074,1863],{"class":527},[450,3076,565],{"class":531},[450,3078,1868],{"class":527},[450,3080,565],{"class":531},[450,3082,1873],{"class":527},[450,3084,1876],{"class":531},[450,3086,3087,3089,3091,3093,3096,3098,3100,3102,3104,3106,3108,3110],{"class":452,"line":623},[450,3088,1881],{"class":538},[450,3090,504],{"class":531},[450,3092,1886],{"class":531},[450,3094,3095],{"class":460},"page-preview-",[450,3097,1892],{"class":531},[450,3099,1895],{"class":527},[450,3101,565],{"class":531},[450,3103,1868],{"class":527},[450,3105,565],{"class":531},[450,3107,1180],{"class":527},[450,3109,1906],{"class":531},[450,3111,576],{"class":531},[450,3113,3114,3116],{"class":452,"line":656},[450,3115,671],{"class":531},[450,3117,674],{"class":527},[450,3119,3120,3122,3124],{"class":452,"line":662},[450,3121,1684],{"class":531},[450,3123,1593],{"class":538},[450,3125,1612],{"class":531},[450,3127,3128],{"class":452,"line":668},[450,3129,604],{"emptyLinePlaceholder":603},[450,3131,3132,3134,3136],{"class":452,"line":836},[450,3133,1590],{"class":531},[450,3135,1699],{"class":538},[450,3137,1612],{"class":531},[450,3139,3140,3142,3144],{"class":452,"line":853},[450,3141,1706],{"class":531},[450,3143,1709],{"class":538},[450,3145,1612],{"class":531},[450,3147,3148],{"class":452,"line":869},[450,3149,3150],{"class":550},"    \u003C!-- Preview banner -->\n",[450,3152,3153,3155,3157,3159,3161,3163,3166,3168,3170,3172,3174,3177,3179],{"class":452,"line":890},[450,3154,1716],{"class":531},[450,3156,1709],{"class":538},[450,3158,1943],{"class":727},[450,3160,1539],{"class":531},[450,3162,1604],{"class":531},[450,3164,3165],{"class":460},"isPreview",[450,3167,1604],{"class":531},[450,3169,2181],{"class":727},[450,3171,1539],{"class":531},[450,3173,1604],{"class":531},[450,3175,3176],{"class":460},"bg-yellow-400 p-4 text-center",[450,3178,1604],{"class":531},[450,3180,1612],{"class":531},[450,3182,3183],{"class":452,"line":898},[450,3184,3185],{"class":527},"      Preview Mode — viewing draft content.\n",[450,3187,3188,3190,3193,3196,3198,3200,3203,3205,3207,3209,3211,3214,3216,3218,3221,3223,3225],{"class":452,"line":904},[450,3189,2229],{"class":531},[450,3191,3192],{"class":538},"a",[450,3194,3195],{"class":727}," href",[450,3197,1539],{"class":531},[450,3199,1604],{"class":531},[450,3201,3202],{"class":460},"\u002Fapi\u002Fexit-preview",[450,3204,1604],{"class":531},[450,3206,2181],{"class":727},[450,3208,1539],{"class":531},[450,3210,1604],{"class":531},[450,3212,3213],{"class":460},"ml-4 underline",[450,3215,1604],{"class":531},[450,3217,1722],{"class":531},[450,3219,3220],{"class":527},"Exit preview",[450,3222,1684],{"class":531},[450,3224,3192],{"class":538},[450,3226,1612],{"class":531},[450,3228,3229,3231,3233],{"class":452,"line":913},[450,3230,2264],{"class":531},[450,3232,1709],{"class":538},[450,3234,1612],{"class":531},[450,3236,3237],{"class":452,"line":919},[450,3238,604],{"emptyLinePlaceholder":603},[450,3240,3241],{"class":452,"line":924},[450,3242,3243],{"class":550},"    \u003C!-- Page content -->\n",[450,3245,3246,3248,3250,3252,3254,3256,3258,3260],{"class":452,"line":929},[450,3247,1716],{"class":531},[450,3249,1709],{"class":538},[450,3251,1943],{"class":727},[450,3253,1539],{"class":531},[450,3255,1604],{"class":531},[450,3257,1950],{"class":460},[450,3259,1604],{"class":531},[450,3261,1612],{"class":531},[450,3263,3264,3266,3268,3270,3272,3274,3276],{"class":452,"line":935},[450,3265,2229],{"class":531},[450,3267,1719],{"class":538},[450,3269,1722],{"class":531},[450,3271,1965],{"class":527},[450,3273,1684],{"class":531},[450,3275,1719],{"class":538},[450,3277,1612],{"class":531},[450,3279,3280,3282,3284,3286,3288,3290,3292,3294],{"class":452,"line":941},[450,3281,2229],{"class":531},[450,3283,1709],{"class":538},[450,3285,1740],{"class":727},[450,3287,1539],{"class":531},[450,3289,1604],{"class":531},[450,3291,1986],{"class":460},[450,3293,1604],{"class":531},[450,3295,1752],{"class":531},[450,3297,3298,3300,3302],{"class":452,"line":946},[450,3299,2264],{"class":531},[450,3301,1709],{"class":538},[450,3303,1612],{"class":531},[450,3305,3306,3308,3310],{"class":452,"line":962},[450,3307,1757],{"class":531},[450,3309,1709],{"class":538},[450,3311,1612],{"class":531},[450,3313,3314,3316,3318],{"class":452,"line":978},[450,3315,1684],{"class":531},[450,3317,1699],{"class":538},[450,3319,1612],{"class":531},[435,3321,3323],{"id":3322},"composables","Composables",[425,3325,3326,3327,3329,3330,3332,3333,3335,3336,565],{},"Composables wrap ",[447,3328,1571],{}," \u002F ",[447,3331,1575],{}," calls to the server routes. They do NOT import or instantiate ",[447,3334,688],{}," — that stays in ",[447,3337,684],{},[425,3339,681,3340,504],{},[447,3341,3342],{},"composables\u002FuseTento.ts",[440,3344,3346],{"className":507,"code":3345,"language":509,"meta":445,"style":445},"import type { CollectionListResponse } from '@tentocms\u002Fclient'\n\n\u002F**\n * Fetch a page by slug via the CMS server route.\n *\u002F\nexport function useTentoPage\u003CT = Record\u003Cstring, unknown>>(slug: string) {\n  return useFetch\u003CT>('\u002Fapi\u002Fcms\u002Fpage', {\n    query: { slug },\n    key: `page-${slug}`,\n  })\n}\n\n\u002F**\n * Fetch collection items via the CMS server route.\n *\u002F\nexport function useTentoCollection\u003CT = Record\u003Cstring, unknown>>(\n  type: string,\n  options?: { limit?: number; sort?: string }\n) {\n  \u002F\u002F The route returns collections.list()'s envelope:\n  \u002F\u002F { data: T[] | T, collectionType, pagination? } — `data` is a single item for singletons.\n  return useFetch\u003CCollectionListResponse\u003CT>>('\u002Fapi\u002Fcms\u002Fcollection', {\n    query: { type, ...options },\n    key: `collection-${type}`,\n  })\n}\n\n\u002F**\n * Fetch a page with preview support via the CMS server route.\n * The server route reads the preview cookie and picks the right client.\n *\u002F\nexport function useTentoPagePreview\u003CT = Record\u003Cstring, unknown>>(slug: string) {\n  return useFetch\u003CT>('\u002Fapi\u002Fcms\u002Fpage-preview', {\n    query: { slug },\n    key: `page-preview-${slug}`,\n  })\n}\n",[447,3347,3348,3369,3373,3377,3382,3386,3428,3452,3465,3484,3490,3494,3498,3502,3507,3511,3539,3550,3577,3583,3588,3593,3623,3643,3662,3668,3672,3676,3680,3685,3690,3694,3731,3755,3767,3785,3792],{"__ignoreMap":445},[450,3349,3350,3352,3354,3356,3359,3361,3363,3365,3367],{"class":452,"line":453},[450,3351,699],{"class":516},[450,3353,1318],{"class":516},[450,3355,702],{"class":531},[450,3357,3358],{"class":527}," CollectionListResponse",[450,3360,708],{"class":531},[450,3362,711],{"class":516},[450,3364,645],{"class":531},[450,3366,150],{"class":460},[450,3368,718],{"class":531},[450,3370,3371],{"class":452,"line":535},[450,3372,604],{"emptyLinePlaceholder":603},[450,3374,3375],{"class":452,"line":547},[450,3376,765],{"class":550},[450,3378,3379],{"class":452,"line":554},[450,3380,3381],{"class":550}," * Fetch a page by slug via the CMS server route.\n",[450,3383,3384],{"class":452,"line":579},[450,3385,780],{"class":550},[450,3387,3388,3390,3392,3395,3397,3400,3402,3405,3407,3410,3412,3415,3418,3420,3422,3424,3426],{"class":452,"line":600},[450,3389,517],{"class":516},[450,3391,787],{"class":727},[450,3393,3394],{"class":523}," useTentoPage",[450,3396,1590],{"class":531},[450,3398,3399],{"class":456},"T",[450,3401,827],{"class":531},[450,3403,3404],{"class":456}," Record",[450,3406,1590],{"class":531},[450,3408,3409],{"class":456},"string",[450,3411,1209],{"class":531},[450,3413,3414],{"class":456}," unknown",[450,3416,3417],{"class":531},">>(",[450,3419,1180],{"class":1118},[450,3421,504],{"class":531},[450,3423,1162],{"class":456},[450,3425,1122],{"class":531},[450,3427,544],{"class":531},[450,3429,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450],{"class":452,"line":607},[450,3431,907],{"class":516},[450,3433,1637],{"class":523},[450,3435,1590],{"class":531},[450,3437,3399],{"class":456},[450,3439,1722],{"class":531},[450,3441,528],{"class":538},[450,3443,651],{"class":531},[450,3445,1644],{"class":460},[450,3447,651],{"class":531},[450,3449,1209],{"class":531},[450,3451,544],{"class":531},[450,3453,3454,3457,3459,3461,3463],{"class":452,"line":613},[450,3455,3456],{"class":538},"    query",[450,3458,504],{"class":531},[450,3460,702],{"class":531},[450,3462,1137],{"class":527},[450,3464,1673],{"class":531},[450,3466,3467,3470,3472,3474,3476,3478,3480,3482],{"class":452,"line":623},[450,3468,3469],{"class":538},"    key",[450,3471,504],{"class":531},[450,3473,1886],{"class":531},[450,3475,1889],{"class":460},[450,3477,1892],{"class":531},[450,3479,1180],{"class":527},[450,3481,1906],{"class":531},[450,3483,576],{"class":531},[450,3485,3486,3488],{"class":452,"line":656},[450,3487,1510],{"class":531},[450,3489,674],{"class":538},[450,3491,3492],{"class":452,"line":662},[450,3493,916],{"class":531},[450,3495,3496],{"class":452,"line":668},[450,3497,604],{"emptyLinePlaceholder":603},[450,3499,3500],{"class":452,"line":836},[450,3501,765],{"class":550},[450,3503,3504],{"class":452,"line":853},[450,3505,3506],{"class":550}," * Fetch collection items via the CMS server route.\n",[450,3508,3509],{"class":452,"line":869},[450,3510,780],{"class":550},[450,3512,3513,3515,3517,3520,3522,3524,3526,3528,3530,3532,3534,3536],{"class":452,"line":890},[450,3514,517],{"class":516},[450,3516,787],{"class":727},[450,3518,3519],{"class":523}," useTentoCollection",[450,3521,1590],{"class":531},[450,3523,3399],{"class":456},[450,3525,827],{"class":531},[450,3527,3404],{"class":456},[450,3529,1590],{"class":531},[450,3531,3409],{"class":456},[450,3533,1209],{"class":531},[450,3535,3414],{"class":456},[450,3537,3538],{"class":531},">>(\n",[450,3540,3541,3544,3546,3548],{"class":452,"line":898},[450,3542,3543],{"class":1118},"  type",[450,3545,504],{"class":531},[450,3547,1162],{"class":456},[450,3549,576],{"class":531},[450,3551,3552,3555,3557,3559,3561,3563,3566,3569,3571,3573,3575],{"class":452,"line":904},[450,3553,3554],{"class":1118},"  options",[450,3556,1362],{"class":531},[450,3558,702],{"class":531},[450,3560,1323],{"class":538},[450,3562,1362],{"class":531},[450,3564,3565],{"class":456}," number",[450,3567,3568],{"class":531},";",[450,3570,1328],{"class":538},[450,3572,1362],{"class":531},[450,3574,1162],{"class":456},[450,3576,1165],{"class":531},[450,3578,3579,3581],{"class":452,"line":913},[450,3580,1122],{"class":531},[450,3582,544],{"class":531},[450,3584,3585],{"class":452,"line":919},[450,3586,3587],{"class":550},"  \u002F\u002F The route returns collections.list()'s envelope:\n",[450,3589,3590],{"class":452,"line":924},[450,3591,3592],{"class":550},"  \u002F\u002F { data: T[] | T, collectionType, pagination? } — `data` is a single item for singletons.\n",[450,3594,3595,3597,3599,3601,3604,3606,3608,3611,3613,3615,3617,3619,3621],{"class":452,"line":929},[450,3596,907],{"class":516},[450,3598,1637],{"class":523},[450,3600,1590],{"class":531},[450,3602,3603],{"class":456},"CollectionListResponse",[450,3605,1590],{"class":531},[450,3607,3399],{"class":456},[450,3609,3610],{"class":531},">>",[450,3612,528],{"class":538},[450,3614,651],{"class":531},[450,3616,2097],{"class":460},[450,3618,651],{"class":531},[450,3620,1209],{"class":531},[450,3622,544],{"class":531},[450,3624,3625,3627,3629,3631,3633,3635,3638,3641],{"class":452,"line":935},[450,3626,3456],{"class":538},[450,3628,504],{"class":531},[450,3630,702],{"class":531},[450,3632,1318],{"class":527},[450,3634,1209],{"class":531},[450,3636,3637],{"class":531}," ...",[450,3639,3640],{"class":527},"options",[450,3642,1673],{"class":531},[450,3644,3645,3647,3649,3651,3654,3656,3658,3660],{"class":452,"line":941},[450,3646,3469],{"class":538},[450,3648,504],{"class":531},[450,3650,1886],{"class":531},[450,3652,3653],{"class":460},"collection-",[450,3655,1892],{"class":531},[450,3657,1392],{"class":527},[450,3659,1906],{"class":531},[450,3661,576],{"class":531},[450,3663,3664,3666],{"class":452,"line":946},[450,3665,1510],{"class":531},[450,3667,674],{"class":538},[450,3669,3670],{"class":452,"line":962},[450,3671,916],{"class":531},[450,3673,3674],{"class":452,"line":978},[450,3675,604],{"emptyLinePlaceholder":603},[450,3677,3678],{"class":452,"line":991},[450,3679,765],{"class":550},[450,3681,3682],{"class":452,"line":1007},[450,3683,3684],{"class":550}," * Fetch a page with preview support via the CMS server route.\n",[450,3686,3687],{"class":452,"line":1022},[450,3688,3689],{"class":550}," * The server route reads the preview cookie and picks the right client.\n",[450,3691,3692],{"class":452,"line":1038},[450,3693,780],{"class":550},[450,3695,3696,3698,3700,3703,3705,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725,3727,3729],{"class":452,"line":1057},[450,3697,517],{"class":516},[450,3699,787],{"class":727},[450,3701,3702],{"class":523}," useTentoPagePreview",[450,3704,1590],{"class":531},[450,3706,3399],{"class":456},[450,3708,827],{"class":531},[450,3710,3404],{"class":456},[450,3712,1590],{"class":531},[450,3714,3409],{"class":456},[450,3716,1209],{"class":531},[450,3718,3414],{"class":456},[450,3720,3417],{"class":531},[450,3722,1180],{"class":1118},[450,3724,504],{"class":531},[450,3726,1162],{"class":456},[450,3728,1122],{"class":531},[450,3730,544],{"class":531},[450,3732,3733,3735,3737,3739,3741,3743,3745,3747,3749,3751,3753],{"class":452,"line":1064},[450,3734,907],{"class":516},[450,3736,1637],{"class":523},[450,3738,1590],{"class":531},[450,3740,3399],{"class":456},[450,3742,1722],{"class":531},[450,3744,528],{"class":538},[450,3746,651],{"class":531},[450,3748,3054],{"class":460},[450,3750,651],{"class":531},[450,3752,1209],{"class":531},[450,3754,544],{"class":531},[450,3756,3757,3759,3761,3763,3765],{"class":452,"line":1069},[450,3758,3456],{"class":538},[450,3760,504],{"class":531},[450,3762,702],{"class":531},[450,3764,1137],{"class":527},[450,3766,1673],{"class":531},[450,3768,3769,3771,3773,3775,3777,3779,3781,3783],{"class":452,"line":1077},[450,3770,3469],{"class":538},[450,3772,504],{"class":531},[450,3774,1886],{"class":531},[450,3776,3095],{"class":460},[450,3778,1892],{"class":531},[450,3780,1180],{"class":527},[450,3782,1906],{"class":531},[450,3784,576],{"class":531},[450,3786,3788,3790],{"class":452,"line":3787},36,[450,3789,1510],{"class":531},[450,3791,674],{"class":538},[450,3793,3795],{"class":452,"line":3794},37,[450,3796,916],{"class":531},[494,3798,3800],{"id":3799},"using-composables","Using composables",[440,3802,3804],{"className":1581,"code":3803,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\ninterface BlogPost {\n  title: string\n  excerpt: string\n  publishedAt: string\n}\n\n\u002F\u002F Simple page fetch\nconst { data: homepage } = await useTentoPage('homepage')\n\n\u002F\u002F Collection fetch\nconst { data: products } = await useTentoCollection('products', {\n  limit: 10,\n  sort: '-createdAt',\n})\n\n\u002F\u002F Page with preview support (cookie handled server-side)\nconst route = useRoute()\nconst { data: page } = await useTentoPagePreview(route.params.slug as string)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ homepage?.fields.title }}\u003C\u002Fh1>\n\n    \u003Cdiv class=\"products\">\n      \u003Cdiv v-for=\"product in products?.data\" :key=\"product.slug\">\n        {{ product.name }}\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv v-if=\"page\">\n      \u003Ch1>{{ page.fields.title }}\u003C\u002Fh1>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,3805,3806,3826,3836,3845,3854,3863,3867,3871,3876,3907,3911,3916,3948,3960,3975,3981,3985,3990,4002,4039,4047,4051,4059,4067,4084,4088,4106,4134,4139,4148,4156,4160,4178,4194,4202,4210],{"__ignoreMap":445},[450,3807,3808,3810,3812,3814,3816,3818,3820,3822,3824],{"class":452,"line":453},[450,3809,1590],{"class":531},[450,3811,1593],{"class":538},[450,3813,1596],{"class":727},[450,3815,1599],{"class":727},[450,3817,1539],{"class":531},[450,3819,1604],{"class":531},[450,3821,1607],{"class":460},[450,3823,1604],{"class":531},[450,3825,1612],{"class":531},[450,3827,3828,3831,3834],{"class":452,"line":535},[450,3829,3830],{"class":727},"interface",[450,3832,3833],{"class":456}," BlogPost",[450,3835,544],{"class":531},[450,3837,3838,3841,3843],{"class":452,"line":547},[450,3839,3840],{"class":538},"  title",[450,3842,504],{"class":531},[450,3844,1354],{"class":456},[450,3846,3847,3850,3852],{"class":452,"line":554},[450,3848,3849],{"class":538},"  excerpt",[450,3851,504],{"class":531},[450,3853,1354],{"class":456},[450,3855,3856,3859,3861],{"class":452,"line":579},[450,3857,3858],{"class":538},"  publishedAt",[450,3860,504],{"class":531},[450,3862,1354],{"class":456},[450,3864,3865],{"class":452,"line":600},[450,3866,916],{"class":531},[450,3868,3869],{"class":452,"line":607},[450,3870,604],{"emptyLinePlaceholder":603},[450,3872,3873],{"class":452,"line":613},[450,3874,3875],{"class":550},"\u002F\u002F Simple page fetch\n",[450,3877,3878,3880,3882,3884,3886,3889,3891,3893,3895,3897,3899,3901,3903,3905],{"class":452,"line":623},[450,3879,1617],{"class":727},[450,3881,702],{"class":531},[450,3883,1622],{"class":538},[450,3885,504],{"class":531},[450,3887,3888],{"class":527}," homepage ",[450,3890,671],{"class":531},[450,3892,827],{"class":531},[450,3894,1634],{"class":516},[450,3896,3394],{"class":523},[450,3898,528],{"class":527},[450,3900,651],{"class":531},[450,3902,1668],{"class":460},[450,3904,651],{"class":531},[450,3906,674],{"class":527},[450,3908,3909],{"class":452,"line":656},[450,3910,604],{"emptyLinePlaceholder":603},[450,3912,3913],{"class":452,"line":662},[450,3914,3915],{"class":550},"\u002F\u002F Collection fetch\n",[450,3917,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946],{"class":452,"line":668},[450,3919,1617],{"class":727},[450,3921,702],{"class":531},[450,3923,1622],{"class":538},[450,3925,504],{"class":531},[450,3927,2082],{"class":527},[450,3929,671],{"class":531},[450,3931,827],{"class":531},[450,3933,1634],{"class":516},[450,3935,3519],{"class":523},[450,3937,528],{"class":527},[450,3939,651],{"class":531},[450,3941,2120],{"class":460},[450,3943,651],{"class":531},[450,3945,1209],{"class":531},[450,3947,544],{"class":531},[450,3949,3950,3953,3955,3958],{"class":452,"line":836},[450,3951,3952],{"class":538},"  limit",[450,3954,504],{"class":531},[450,3956,3957],{"class":1205}," 10",[450,3959,576],{"class":531},[450,3961,3962,3965,3967,3969,3971,3973],{"class":452,"line":853},[450,3963,3964],{"class":538},"  sort",[450,3966,504],{"class":531},[450,3968,645],{"class":531},[450,3970,2142],{"class":460},[450,3972,651],{"class":531},[450,3974,576],{"class":531},[450,3976,3977,3979],{"class":452,"line":869},[450,3978,671],{"class":531},[450,3980,674],{"class":527},[450,3982,3983],{"class":452,"line":890},[450,3984,604],{"emptyLinePlaceholder":603},[450,3986,3987],{"class":452,"line":898},[450,3988,3989],{"class":550},"\u002F\u002F Page with preview support (cookie handled server-side)\n",[450,3991,3992,3994,3996,3998,4000],{"class":452,"line":904},[450,3993,1617],{"class":727},[450,3995,1805],{"class":527},[450,3997,1539],{"class":531},[450,3999,1810],{"class":523},[450,4001,833],{"class":527},[450,4003,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4025,4027,4029,4031,4033,4035,4037],{"class":452,"line":913},[450,4005,1617],{"class":727},[450,4007,702],{"class":531},[450,4009,1622],{"class":538},[450,4011,504],{"class":531},[450,4013,1627],{"class":527},[450,4015,671],{"class":531},[450,4017,827],{"class":531},[450,4019,1634],{"class":516},[450,4021,3702],{"class":523},[450,4023,4024],{"class":527},"(route",[450,4026,565],{"class":531},[450,4028,1868],{"class":527},[450,4030,565],{"class":531},[450,4032,1873],{"class":527},[450,4034,1153],{"class":516},[450,4036,1162],{"class":456},[450,4038,674],{"class":527},[450,4040,4041,4043,4045],{"class":452,"line":919},[450,4042,1684],{"class":531},[450,4044,1593],{"class":538},[450,4046,1612],{"class":531},[450,4048,4049],{"class":452,"line":924},[450,4050,604],{"emptyLinePlaceholder":603},[450,4052,4053,4055,4057],{"class":452,"line":929},[450,4054,1590],{"class":531},[450,4056,1699],{"class":538},[450,4058,1612],{"class":531},[450,4060,4061,4063,4065],{"class":452,"line":935},[450,4062,1706],{"class":531},[450,4064,1709],{"class":538},[450,4066,1612],{"class":531},[450,4068,4069,4071,4073,4075,4078,4080,4082],{"class":452,"line":941},[450,4070,1716],{"class":531},[450,4072,1719],{"class":538},[450,4074,1722],{"class":531},[450,4076,4077],{"class":527},"{{ homepage?.fields.title }}",[450,4079,1684],{"class":531},[450,4081,1719],{"class":538},[450,4083,1612],{"class":531},[450,4085,4086],{"class":452,"line":946},[450,4087,604],{"emptyLinePlaceholder":603},[450,4089,4090,4092,4094,4096,4098,4100,4102,4104],{"class":452,"line":962},[450,4091,1716],{"class":531},[450,4093,1709],{"class":538},[450,4095,2181],{"class":727},[450,4097,1539],{"class":531},[450,4099,1604],{"class":531},[450,4101,2120],{"class":460},[450,4103,1604],{"class":531},[450,4105,1612],{"class":531},[450,4107,4108,4110,4112,4114,4116,4118,4120,4122,4124,4126,4128,4130,4132],{"class":452,"line":978},[450,4109,2229],{"class":531},[450,4111,1709],{"class":538},[450,4113,2201],{"class":727},[450,4115,1539],{"class":531},[450,4117,1604],{"class":531},[450,4119,2208],{"class":460},[450,4121,1604],{"class":531},[450,4123,2213],{"class":727},[450,4125,1539],{"class":531},[450,4127,1604],{"class":531},[450,4129,2220],{"class":460},[450,4131,1604],{"class":531},[450,4133,1612],{"class":531},[450,4135,4136],{"class":452,"line":991},[450,4137,4138],{"class":527},"        {{ product.name }}\n",[450,4140,4141,4144,4146],{"class":452,"line":1007},[450,4142,4143],{"class":531},"      \u003C\u002F",[450,4145,1709],{"class":538},[450,4147,1612],{"class":531},[450,4149,4150,4152,4154],{"class":452,"line":1022},[450,4151,2264],{"class":531},[450,4153,1709],{"class":538},[450,4155,1612],{"class":531},[450,4157,4158],{"class":452,"line":1038},[450,4159,604],{"emptyLinePlaceholder":603},[450,4161,4162,4164,4166,4168,4170,4172,4174,4176],{"class":452,"line":1057},[450,4163,1716],{"class":531},[450,4165,1709],{"class":538},[450,4167,1943],{"class":727},[450,4169,1539],{"class":531},[450,4171,1604],{"class":531},[450,4173,1950],{"class":460},[450,4175,1604],{"class":531},[450,4177,1612],{"class":531},[450,4179,4180,4182,4184,4186,4188,4190,4192],{"class":452,"line":1064},[450,4181,2229],{"class":531},[450,4183,1719],{"class":538},[450,4185,1722],{"class":531},[450,4187,1965],{"class":527},[450,4189,1684],{"class":531},[450,4191,1719],{"class":538},[450,4193,1612],{"class":531},[450,4195,4196,4198,4200],{"class":452,"line":1069},[450,4197,2264],{"class":531},[450,4199,1709],{"class":538},[450,4201,1612],{"class":531},[450,4203,4204,4206,4208],{"class":452,"line":1077},[450,4205,1757],{"class":531},[450,4207,1709],{"class":538},[450,4209,1612],{"class":531},[450,4211,4212,4214,4216],{"class":452,"line":3787},[450,4213,1684],{"class":531},[450,4215,1699],{"class":538},[450,4217,1612],{"class":531},[435,4219,4220],{"id":509},"TypeScript",[494,4222,4224],{"id":4223},"type-safe-content","Type-safe content",[440,4226,4228],{"className":1581,"code":4227,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\ninterface HomepageContent {\n  heroTitle: string\n  heroSubtitle: string\n  featuredProducts: string[]\n}\n\nconst { data: homepage } = await useTentoPage\u003CHomepageContent>('homepage')\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ homepage?.fields.heroTitle }}\u003C\u002Fh1>\n    \u003Cp>{{ homepage?.fields.heroSubtitle }}\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,4229,4230,4250,4259,4268,4277,4289,4293,4297,4334,4342,4346,4354,4362,4379,4396,4404],{"__ignoreMap":445},[450,4231,4232,4234,4236,4238,4240,4242,4244,4246,4248],{"class":452,"line":453},[450,4233,1590],{"class":531},[450,4235,1593],{"class":538},[450,4237,1596],{"class":727},[450,4239,1599],{"class":727},[450,4241,1539],{"class":531},[450,4243,1604],{"class":531},[450,4245,1607],{"class":460},[450,4247,1604],{"class":531},[450,4249,1612],{"class":531},[450,4251,4252,4254,4257],{"class":452,"line":535},[450,4253,3830],{"class":727},[450,4255,4256],{"class":456}," HomepageContent",[450,4258,544],{"class":531},[450,4260,4261,4264,4266],{"class":452,"line":547},[450,4262,4263],{"class":538},"  heroTitle",[450,4265,504],{"class":531},[450,4267,1354],{"class":456},[450,4269,4270,4273,4275],{"class":452,"line":554},[450,4271,4272],{"class":538},"  heroSubtitle",[450,4274,504],{"class":531},[450,4276,1354],{"class":456},[450,4278,4279,4282,4284,4286],{"class":452,"line":579},[450,4280,4281],{"class":538},"  featuredProducts",[450,4283,504],{"class":531},[450,4285,1162],{"class":456},[450,4287,4288],{"class":527},"[]\n",[450,4290,4291],{"class":452,"line":600},[450,4292,916],{"class":531},[450,4294,4295],{"class":452,"line":607},[450,4296,604],{"emptyLinePlaceholder":603},[450,4298,4299,4301,4303,4305,4307,4309,4311,4313,4315,4317,4319,4322,4324,4326,4328,4330,4332],{"class":452,"line":613},[450,4300,1617],{"class":727},[450,4302,702],{"class":531},[450,4304,1622],{"class":538},[450,4306,504],{"class":531},[450,4308,3888],{"class":527},[450,4310,671],{"class":531},[450,4312,827],{"class":531},[450,4314,1634],{"class":516},[450,4316,3394],{"class":523},[450,4318,1590],{"class":531},[450,4320,4321],{"class":456},"HomepageContent",[450,4323,1722],{"class":531},[450,4325,528],{"class":527},[450,4327,651],{"class":531},[450,4329,1668],{"class":460},[450,4331,651],{"class":531},[450,4333,674],{"class":527},[450,4335,4336,4338,4340],{"class":452,"line":623},[450,4337,1684],{"class":531},[450,4339,1593],{"class":538},[450,4341,1612],{"class":531},[450,4343,4344],{"class":452,"line":656},[450,4345,604],{"emptyLinePlaceholder":603},[450,4347,4348,4350,4352],{"class":452,"line":662},[450,4349,1590],{"class":531},[450,4351,1699],{"class":538},[450,4353,1612],{"class":531},[450,4355,4356,4358,4360],{"class":452,"line":668},[450,4357,1706],{"class":531},[450,4359,1709],{"class":538},[450,4361,1612],{"class":531},[450,4363,4364,4366,4368,4370,4373,4375,4377],{"class":452,"line":836},[450,4365,1716],{"class":531},[450,4367,1719],{"class":538},[450,4369,1722],{"class":531},[450,4371,4372],{"class":527},"{{ homepage?.fields.heroTitle }}",[450,4374,1684],{"class":531},[450,4376,1719],{"class":538},[450,4378,1612],{"class":531},[450,4380,4381,4383,4385,4387,4390,4392,4394],{"class":452,"line":853},[450,4382,1716],{"class":531},[450,4384,425],{"class":538},[450,4386,1722],{"class":531},[450,4388,4389],{"class":527},"{{ homepage?.fields.heroSubtitle }}",[450,4391,1684],{"class":531},[450,4393,425],{"class":538},[450,4395,1612],{"class":531},[450,4397,4398,4400,4402],{"class":452,"line":869},[450,4399,1757],{"class":531},[450,4401,1709],{"class":538},[450,4403,1612],{"class":531},[450,4405,4406,4408,4410],{"class":452,"line":890},[450,4407,1684],{"class":531},[450,4409,1699],{"class":538},[450,4411,1612],{"class":531},[494,4413,4415],{"id":4414},"import-types","Import types",[440,4417,4419],{"className":507,"code":4418,"language":509,"meta":445,"style":445},"import type {\n  Page,\n  CollectionItem,\n  BlogPost,\n  MediaItem,\n} from '@tentocms\u002Fclient'\n",[447,4420,4421,4429,4436,4443,4450,4457],{"__ignoreMap":445},[450,4422,4423,4425,4427],{"class":452,"line":453},[450,4424,699],{"class":516},[450,4426,1318],{"class":516},[450,4428,544],{"class":531},[450,4430,4431,4434],{"class":452,"line":535},[450,4432,4433],{"class":527},"  Page",[450,4435,576],{"class":531},[450,4437,4438,4441],{"class":452,"line":547},[450,4439,4440],{"class":527},"  CollectionItem",[450,4442,576],{"class":531},[450,4444,4445,4448],{"class":452,"line":554},[450,4446,4447],{"class":527},"  BlogPost",[450,4449,576],{"class":531},[450,4451,4452,4455],{"class":452,"line":579},[450,4453,4454],{"class":527},"  MediaItem",[450,4456,576],{"class":531},[450,4458,4459,4461,4463,4465,4467],{"class":452,"line":600},[450,4460,671],{"class":531},[450,4462,711],{"class":516},[450,4464,645],{"class":531},[450,4466,150],{"class":460},[450,4468,718],{"class":531},[435,4470,4472],{"id":4471},"error-handling","Error handling",[425,4474,4475],{},"Handle errors in the server route and in the page component:",[425,4477,4478,805,4481,4483],{},[474,4479,4480],{},"Server route",[447,4482,1093],{},"):",[440,4485,4487],{"className":507,"code":4486,"language":509,"meta":445,"style":445},"import { TentoNotFoundError } from '@tentocms\u002Fclient'\n\nexport default defineEventHandler(async (event) => {\n  const { slug } = getQuery(event) as { slug: string }\n\n  try {\n    const tento = getTentoClient()\n    return await tento.pages.getBySlug(slug)\n  } catch (err) {\n    if (err instanceof TentoNotFoundError) {\n      throw createError({ statusCode: 404, message: 'Page not found' })\n    }\n    throw err\n  }\n})\n",[447,4488,4489,4508,4512,4534,4566,4570,4577,4589,4612,4628,4646,4680,4685,4692,4696],{"__ignoreMap":445},[450,4490,4491,4493,4495,4498,4500,4502,4504,4506],{"class":452,"line":453},[450,4492,699],{"class":516},[450,4494,702],{"class":531},[450,4496,4497],{"class":527}," TentoNotFoundError",[450,4499,708],{"class":531},[450,4501,711],{"class":516},[450,4503,645],{"class":531},[450,4505,150],{"class":460},[450,4507,718],{"class":531},[450,4509,4510],{"class":452,"line":535},[450,4511,604],{"emptyLinePlaceholder":603},[450,4513,4514,4516,4518,4520,4522,4524,4526,4528,4530,4532],{"class":452,"line":547},[450,4515,517],{"class":516},[450,4517,520],{"class":516},[450,4519,1108],{"class":523},[450,4521,528],{"class":527},[450,4523,1113],{"class":727},[450,4525,805],{"class":531},[450,4527,1119],{"class":1118},[450,4529,1122],{"class":531},[450,4531,1125],{"class":727},[450,4533,544],{"class":531},[450,4535,4536,4538,4540,4542,4544,4546,4548,4550,4552,4554,4556,4558,4560,4562,4564],{"class":452,"line":554},[450,4537,1132],{"class":727},[450,4539,702],{"class":531},[450,4541,1137],{"class":527},[450,4543,708],{"class":531},[450,4545,827],{"class":531},[450,4547,1144],{"class":523},[450,4549,528],{"class":538},[450,4551,1119],{"class":527},[450,4553,814],{"class":538},[450,4555,1153],{"class":516},[450,4557,702],{"class":531},[450,4559,1137],{"class":538},[450,4561,504],{"class":531},[450,4563,1162],{"class":456},[450,4565,1165],{"class":531},[450,4567,4568],{"class":452,"line":579},[450,4569,604],{"emptyLinePlaceholder":603},[450,4571,4572,4575],{"class":452,"line":600},[450,4573,4574],{"class":516},"  try",[450,4576,544],{"class":531},[450,4578,4579,4581,4583,4585,4587],{"class":452,"line":607},[450,4580,821],{"class":727},[450,4582,1240],{"class":527},[450,4584,827],{"class":531},[450,4586,790],{"class":523},[450,4588,833],{"class":538},[450,4590,4591,4594,4596,4598,4600,4602,4604,4606,4608,4610],{"class":452,"line":613},[450,4592,4593],{"class":516},"    return",[450,4595,1634],{"class":516},[450,4597,1240],{"class":527},[450,4599,565],{"class":531},[450,4601,1257],{"class":527},[450,4603,565],{"class":531},[450,4605,1262],{"class":523},[450,4607,528],{"class":538},[450,4609,1180],{"class":527},[450,4611,674],{"class":538},[450,4613,4614,4616,4619,4621,4624,4626],{"class":452,"line":623},[450,4615,1510],{"class":531},[450,4617,4618],{"class":516}," catch",[450,4620,805],{"class":538},[450,4622,4623],{"class":527},"err",[450,4625,814],{"class":538},[450,4627,532],{"class":531},[450,4629,4630,4633,4635,4637,4640,4642,4644],{"class":452,"line":656},[450,4631,4632],{"class":516},"    if",[450,4634,805],{"class":538},[450,4636,4623],{"class":527},[450,4638,4639],{"class":531}," instanceof",[450,4641,4497],{"class":456},[450,4643,814],{"class":538},[450,4645,532],{"class":531},[450,4647,4648,4651,4653,4655,4657,4659,4661,4664,4666,4668,4670,4672,4674,4676,4678],{"class":452,"line":662},[450,4649,4650],{"class":516},"      throw",[450,4652,1192],{"class":523},[450,4654,528],{"class":538},[450,4656,1197],{"class":531},[450,4658,1200],{"class":538},[450,4660,504],{"class":531},[450,4662,4663],{"class":1205}," 404",[450,4665,1209],{"class":531},[450,4667,1212],{"class":538},[450,4669,504],{"class":531},[450,4671,645],{"class":531},[450,4673,2020],{"class":460},[450,4675,651],{"class":531},[450,4677,708],{"class":531},[450,4679,674],{"class":538},[450,4681,4682],{"class":452,"line":668},[450,4683,4684],{"class":531},"    }\n",[450,4686,4687,4689],{"class":452,"line":836},[450,4688,1189],{"class":516},[450,4690,4691],{"class":527}," err\n",[450,4693,4694],{"class":452,"line":853},[450,4695,901],{"class":531},[450,4697,4698,4700],{"class":452,"line":869},[450,4699,671],{"class":531},[450,4701,674],{"class":527},[425,4703,4704,504],{},[474,4705,4706],{},"Page component",[440,4708,4710],{"className":1581,"code":4709,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\n\nconst { data: page, error } = await useFetch('\u002Fapi\u002Fcms\u002Fpage', {\n  query: { slug: route.params.slug },\n  key: `page-${route.params.slug}`,\n})\n\nif (error.value) {\n  throw createError({\n    statusCode: error.value.statusCode || 500,\n    message: error.value.message,\n  })\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"page\">\n    \u003Ch1>{{ page.fields.title }}\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[447,4711,4712,4732,4744,4748,4786,4810,4836,4842,4846,4861,4872,4900,4920,4926,4930,4938,4942,4950,4968,4984,4992],{"__ignoreMap":445},[450,4713,4714,4716,4718,4720,4722,4724,4726,4728,4730],{"class":452,"line":453},[450,4715,1590],{"class":531},[450,4717,1593],{"class":538},[450,4719,1596],{"class":727},[450,4721,1599],{"class":727},[450,4723,1539],{"class":531},[450,4725,1604],{"class":531},[450,4727,1607],{"class":460},[450,4729,1604],{"class":531},[450,4731,1612],{"class":531},[450,4733,4734,4736,4738,4740,4742],{"class":452,"line":535},[450,4735,1617],{"class":727},[450,4737,1805],{"class":527},[450,4739,1539],{"class":531},[450,4741,1810],{"class":523},[450,4743,833],{"class":527},[450,4745,4746],{"class":452,"line":547},[450,4747,604],{"emptyLinePlaceholder":603},[450,4749,4750,4752,4754,4756,4758,4761,4763,4766,4768,4770,4772,4774,4776,4778,4780,4782,4784],{"class":452,"line":554},[450,4751,1617],{"class":727},[450,4753,702],{"class":531},[450,4755,1622],{"class":538},[450,4757,504],{"class":531},[450,4759,4760],{"class":527}," page",[450,4762,1209],{"class":531},[450,4764,4765],{"class":527}," error ",[450,4767,671],{"class":531},[450,4769,827],{"class":531},[450,4771,1634],{"class":516},[450,4773,1637],{"class":523},[450,4775,528],{"class":527},[450,4777,651],{"class":531},[450,4779,1644],{"class":460},[450,4781,651],{"class":531},[450,4783,1209],{"class":531},[450,4785,544],{"class":531},[450,4787,4788,4790,4792,4794,4796,4798,4800,4802,4804,4806,4808],{"class":452,"line":579},[450,4789,1655],{"class":538},[450,4791,504],{"class":531},[450,4793,702],{"class":531},[450,4795,1137],{"class":538},[450,4797,504],{"class":531},[450,4799,1863],{"class":527},[450,4801,565],{"class":531},[450,4803,1868],{"class":527},[450,4805,565],{"class":531},[450,4807,1873],{"class":527},[450,4809,1876],{"class":531},[450,4811,4812,4814,4816,4818,4820,4822,4824,4826,4828,4830,4832,4834],{"class":452,"line":600},[450,4813,1881],{"class":538},[450,4815,504],{"class":531},[450,4817,1886],{"class":531},[450,4819,1889],{"class":460},[450,4821,1892],{"class":531},[450,4823,1895],{"class":527},[450,4825,565],{"class":531},[450,4827,1868],{"class":527},[450,4829,565],{"class":531},[450,4831,1180],{"class":527},[450,4833,1906],{"class":531},[450,4835,576],{"class":531},[450,4837,4838,4840],{"class":452,"line":607},[450,4839,671],{"class":531},[450,4841,674],{"class":527},[450,4843,4844],{"class":452,"line":613},[450,4845,604],{"emptyLinePlaceholder":603},[450,4847,4848,4851,4854,4856,4859],{"class":452,"line":623},[450,4849,4850],{"class":516},"if",[450,4852,4853],{"class":527}," (error",[450,4855,565],{"class":531},[450,4857,4858],{"class":527},"value) ",[450,4860,532],{"class":531},[450,4862,4863,4866,4868,4870],{"class":452,"line":656},[450,4864,4865],{"class":516},"  throw",[450,4867,1192],{"class":523},[450,4869,528],{"class":538},[450,4871,532],{"class":531},[450,4873,4874,4877,4879,4882,4884,4887,4889,4892,4895,4898],{"class":452,"line":662},[450,4875,4876],{"class":538},"    statusCode",[450,4878,504],{"class":531},[450,4880,4881],{"class":527}," error",[450,4883,565],{"class":531},[450,4885,4886],{"class":527},"value",[450,4888,565],{"class":531},[450,4890,4891],{"class":527},"statusCode",[450,4893,4894],{"class":531}," ||",[450,4896,4897],{"class":1205}," 500",[450,4899,576],{"class":531},[450,4901,4902,4905,4907,4909,4911,4913,4915,4918],{"class":452,"line":668},[450,4903,4904],{"class":538},"    message",[450,4906,504],{"class":531},[450,4908,4881],{"class":527},[450,4910,565],{"class":531},[450,4912,4886],{"class":527},[450,4914,565],{"class":531},[450,4916,4917],{"class":527},"message",[450,4919,576],{"class":531},[450,4921,4922,4924],{"class":452,"line":836},[450,4923,1510],{"class":531},[450,4925,674],{"class":538},[450,4927,4928],{"class":452,"line":853},[450,4929,916],{"class":531},[450,4931,4932,4934,4936],{"class":452,"line":869},[450,4933,1684],{"class":531},[450,4935,1593],{"class":538},[450,4937,1612],{"class":531},[450,4939,4940],{"class":452,"line":890},[450,4941,604],{"emptyLinePlaceholder":603},[450,4943,4944,4946,4948],{"class":452,"line":898},[450,4945,1590],{"class":531},[450,4947,1699],{"class":538},[450,4949,1612],{"class":531},[450,4951,4952,4954,4956,4958,4960,4962,4964,4966],{"class":452,"line":904},[450,4953,1706],{"class":531},[450,4955,1709],{"class":538},[450,4957,1943],{"class":727},[450,4959,1539],{"class":531},[450,4961,1604],{"class":531},[450,4963,1950],{"class":460},[450,4965,1604],{"class":531},[450,4967,1612],{"class":531},[450,4969,4970,4972,4974,4976,4978,4980,4982],{"class":452,"line":913},[450,4971,1716],{"class":531},[450,4973,1719],{"class":538},[450,4975,1722],{"class":531},[450,4977,1965],{"class":527},[450,4979,1684],{"class":531},[450,4981,1719],{"class":538},[450,4983,1612],{"class":531},[450,4985,4986,4988,4990],{"class":452,"line":919},[450,4987,1757],{"class":531},[450,4989,1709],{"class":538},[450,4991,1612],{"class":531},[450,4993,4994,4996,4998],{"class":452,"line":924},[450,4995,1684],{"class":531},[450,4997,1699],{"class":538},[450,4999,1612],{"class":531},[435,5001,5003],{"id":5002},"ssg-static-site-generation","SSG (Static Site Generation)",[425,5005,5006,5007,5009],{},"Generate static routes at build time. The ",[447,5008,503],{}," prerender hook runs in a Node process and can use environment variables directly:",[440,5011,5013],{"className":507,"code":5012,"language":509,"meta":445,"style":445},"\u002F\u002F nuxt.config.ts\nimport { TentoClient } from '@tentocms\u002Fclient'\n\nexport default defineNuxtConfig({\n  nitro: {\n    prerender: {\n      routes: async () => {\n        const tento = new TentoClient({\n          apiKey: process.env.TENTO_API_KEY!,\n          baseUrl: process.env.TENTO_BASE_URL!,\n        })\n\n        const pages = await tento.pages.list({ limit: 100 })\n        return pages.data.map(page => `\u002F${page.slug}`)\n      },\n    },\n  },\n})\n",[447,5014,5015,5020,5038,5042,5054,5063,5072,5089,5106,5126,5145,5152,5156,5192,5231,5236,5240,5244],{"__ignoreMap":445},[450,5016,5017],{"class":452,"line":453},[450,5018,5019],{"class":550},"\u002F\u002F nuxt.config.ts\n",[450,5021,5022,5024,5026,5028,5030,5032,5034,5036],{"class":452,"line":535},[450,5023,699],{"class":516},[450,5025,702],{"class":531},[450,5027,705],{"class":527},[450,5029,708],{"class":531},[450,5031,711],{"class":516},[450,5033,645],{"class":531},[450,5035,150],{"class":460},[450,5037,718],{"class":531},[450,5039,5040],{"class":452,"line":547},[450,5041,604],{"emptyLinePlaceholder":603},[450,5043,5044,5046,5048,5050,5052],{"class":452,"line":554},[450,5045,517],{"class":516},[450,5047,520],{"class":516},[450,5049,524],{"class":523},[450,5051,528],{"class":527},[450,5053,532],{"class":531},[450,5055,5056,5059,5061],{"class":452,"line":579},[450,5057,5058],{"class":538},"  nitro",[450,5060,504],{"class":531},[450,5062,544],{"class":531},[450,5064,5065,5068,5070],{"class":452,"line":600},[450,5066,5067],{"class":538},"    prerender",[450,5069,504],{"class":531},[450,5071,544],{"class":531},[450,5073,5074,5077,5079,5082,5085,5087],{"class":452,"line":607},[450,5075,5076],{"class":523},"      routes",[450,5078,504],{"class":531},[450,5080,5081],{"class":727}," async",[450,5083,5084],{"class":531}," ()",[450,5086,1125],{"class":727},[450,5088,544],{"class":531},[450,5090,5091,5094,5096,5098,5100,5102,5104],{"class":452,"line":613},[450,5092,5093],{"class":727},"        const",[450,5095,1240],{"class":527},[450,5097,827],{"class":531},[450,5099,844],{"class":531},[450,5101,705],{"class":523},[450,5103,528],{"class":538},[450,5105,532],{"class":531},[450,5107,5108,5111,5113,5115,5117,5119,5121,5123],{"class":452,"line":623},[450,5109,5110],{"class":538},"          apiKey",[450,5112,504],{"class":531},[450,5114,562],{"class":527},[450,5116,565],{"class":531},[450,5118,568],{"class":527},[450,5120,565],{"class":531},[450,5122,573],{"class":527},[450,5124,5125],{"class":531},"!,\n",[450,5127,5128,5131,5133,5135,5137,5139,5141,5143],{"class":452,"line":656},[450,5129,5130],{"class":538},"          baseUrl",[450,5132,504],{"class":531},[450,5134,562],{"class":527},[450,5136,565],{"class":531},[450,5138,568],{"class":527},[450,5140,565],{"class":531},[450,5142,1556],{"class":527},[450,5144,5125],{"class":531},[450,5146,5147,5150],{"class":452,"line":662},[450,5148,5149],{"class":531},"        }",[450,5151,674],{"class":538},[450,5153,5154],{"class":452,"line":668},[450,5155,604],{"emptyLinePlaceholder":603},[450,5157,5158,5160,5163,5165,5167,5169,5171,5173,5175,5177,5179,5181,5183,5185,5188,5190],{"class":452,"line":836},[450,5159,5093],{"class":727},[450,5161,5162],{"class":527}," pages",[450,5164,827],{"class":531},[450,5166,1634],{"class":516},[450,5168,1240],{"class":527},[450,5170,565],{"class":531},[450,5172,1257],{"class":527},[450,5174,565],{"class":531},[450,5176,1465],{"class":523},[450,5178,528],{"class":538},[450,5180,1197],{"class":531},[450,5182,1323],{"class":538},[450,5184,504],{"class":531},[450,5186,5187],{"class":1205}," 100",[450,5189,708],{"class":531},[450,5191,674],{"class":538},[450,5193,5194,5197,5199,5201,5204,5206,5209,5211,5213,5215,5217,5219,5221,5223,5225,5227,5229],{"class":452,"line":853},[450,5195,5196],{"class":516},"        return",[450,5198,5162],{"class":527},[450,5200,565],{"class":531},[450,5202,5203],{"class":527},"data",[450,5205,565],{"class":531},[450,5207,5208],{"class":523},"map",[450,5210,528],{"class":538},[450,5212,1950],{"class":1118},[450,5214,1125],{"class":727},[450,5216,1886],{"class":531},[450,5218,2506],{"class":460},[450,5220,1892],{"class":531},[450,5222,1950],{"class":527},[450,5224,565],{"class":531},[450,5226,1180],{"class":527},[450,5228,1906],{"class":531},[450,5230,674],{"class":538},[450,5232,5233],{"class":452,"line":869},[450,5234,5235],{"class":531},"      },\n",[450,5237,5238],{"class":452,"line":890},[450,5239,659],{"class":531},[450,5241,5242],{"class":452,"line":898},[450,5243,665],{"class":531},[450,5245,5246,5248],{"class":452,"line":904},[450,5247,671],{"class":531},[450,5249,674],{"class":527},[425,5251,5252,5253,5255],{},"This is a build-time script, not a browser or universal context, so constructing ",[447,5254,688],{}," directly is safe here.",[435,5257,5259],{"id":5258},"caching","Caching",[425,5261,5262,5263,3329,5265,5267,5268,504],{},"Nuxt automatically caches ",[447,5264,1571],{},[447,5266,1575],{}," responses for the duration of a request. Configure a time-based cache with ",[447,5269,5270],{},"getCachedData",[440,5272,5274],{"className":1581,"code":5273,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst nuxtApp = useNuxtApp()\n\nconst { data: page } = await useFetch('\u002Fapi\u002Fcms\u002Fpage', {\n  query: { slug: 'homepage' },\n  getCachedData: (key) => {\n    const cached = nuxtApp.payload.data[key] || nuxtApp.static.data[key]\n    if (!cached) return\n\n    \u002F\u002F Invalidate after 1 hour\n    const timestamp = nuxtApp.payload.timestamps?.[key] || 0\n    if (Date.now() - timestamp > 3_600_000) return\n\n    return cached\n  },\n})\n\u003C\u002Fscript>\n",[447,5275,5276,5296,5310,5314,5346,5366,5384,5433,5449,5453,5458,5492,5523,5527,5534,5538,5544],{"__ignoreMap":445},[450,5277,5278,5280,5282,5284,5286,5288,5290,5292,5294],{"class":452,"line":453},[450,5279,1590],{"class":531},[450,5281,1593],{"class":538},[450,5283,1596],{"class":727},[450,5285,1599],{"class":727},[450,5287,1539],{"class":531},[450,5289,1604],{"class":531},[450,5291,1607],{"class":460},[450,5293,1604],{"class":531},[450,5295,1612],{"class":531},[450,5297,5298,5300,5303,5305,5308],{"class":452,"line":535},[450,5299,1617],{"class":727},[450,5301,5302],{"class":527}," nuxtApp ",[450,5304,1539],{"class":531},[450,5306,5307],{"class":523}," useNuxtApp",[450,5309,833],{"class":527},[450,5311,5312],{"class":452,"line":547},[450,5313,604],{"emptyLinePlaceholder":603},[450,5315,5316,5318,5320,5322,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342,5344],{"class":452,"line":554},[450,5317,1617],{"class":727},[450,5319,702],{"class":531},[450,5321,1622],{"class":538},[450,5323,504],{"class":531},[450,5325,1627],{"class":527},[450,5327,671],{"class":531},[450,5329,827],{"class":531},[450,5331,1634],{"class":516},[450,5333,1637],{"class":523},[450,5335,528],{"class":527},[450,5337,651],{"class":531},[450,5339,1644],{"class":460},[450,5341,651],{"class":531},[450,5343,1209],{"class":531},[450,5345,544],{"class":531},[450,5347,5348,5350,5352,5354,5356,5358,5360,5362,5364],{"class":452,"line":579},[450,5349,1655],{"class":538},[450,5351,504],{"class":531},[450,5353,702],{"class":531},[450,5355,1137],{"class":538},[450,5357,504],{"class":531},[450,5359,645],{"class":531},[450,5361,1668],{"class":460},[450,5363,651],{"class":531},[450,5365,1673],{"class":531},[450,5367,5368,5371,5373,5375,5378,5380,5382],{"class":452,"line":600},[450,5369,5370],{"class":523},"  getCachedData",[450,5372,504],{"class":531},[450,5374,805],{"class":531},[450,5376,5377],{"class":1118},"key",[450,5379,1122],{"class":531},[450,5381,1125],{"class":727},[450,5383,544],{"class":531},[450,5385,5386,5388,5391,5393,5396,5398,5401,5403,5405,5408,5410,5413,5415,5417,5419,5422,5424,5426,5428,5430],{"class":452,"line":607},[450,5387,821],{"class":727},[450,5389,5390],{"class":527}," cached",[450,5392,827],{"class":531},[450,5394,5395],{"class":527}," nuxtApp",[450,5397,565],{"class":531},[450,5399,5400],{"class":527},"payload",[450,5402,565],{"class":531},[450,5404,5203],{"class":527},[450,5406,5407],{"class":538},"[",[450,5409,5377],{"class":527},[450,5411,5412],{"class":538},"] ",[450,5414,642],{"class":531},[450,5416,5395],{"class":527},[450,5418,565],{"class":531},[450,5420,5421],{"class":527},"static",[450,5423,565],{"class":531},[450,5425,5203],{"class":527},[450,5427,5407],{"class":538},[450,5429,5377],{"class":527},[450,5431,5432],{"class":538},"]\n",[450,5434,5435,5437,5439,5441,5444,5446],{"class":452,"line":613},[450,5436,4632],{"class":516},[450,5438,805],{"class":538},[450,5440,808],{"class":531},[450,5442,5443],{"class":527},"cached",[450,5445,814],{"class":538},[450,5447,5448],{"class":516},"return\n",[450,5450,5451],{"class":452,"line":623},[450,5452,604],{"emptyLinePlaceholder":603},[450,5454,5455],{"class":452,"line":656},[450,5456,5457],{"class":550},"    \u002F\u002F Invalidate after 1 hour\n",[450,5459,5460,5462,5465,5467,5469,5471,5473,5475,5478,5481,5483,5485,5487,5489],{"class":452,"line":662},[450,5461,821],{"class":727},[450,5463,5464],{"class":527}," timestamp",[450,5466,827],{"class":531},[450,5468,5395],{"class":527},[450,5470,565],{"class":531},[450,5472,5400],{"class":527},[450,5474,565],{"class":531},[450,5476,5477],{"class":527},"timestamps",[450,5479,5480],{"class":531},"?.",[450,5482,5407],{"class":538},[450,5484,5377],{"class":527},[450,5486,5412],{"class":538},[450,5488,642],{"class":531},[450,5490,5491],{"class":1205}," 0\n",[450,5493,5494,5496,5498,5501,5503,5506,5508,5511,5513,5516,5519,5521],{"class":452,"line":668},[450,5495,4632],{"class":516},[450,5497,805],{"class":538},[450,5499,5500],{"class":527},"Date",[450,5502,565],{"class":531},[450,5504,5505],{"class":523},"now",[450,5507,2887],{"class":538},[450,5509,5510],{"class":531},"-",[450,5512,5464],{"class":527},[450,5514,5515],{"class":531}," >",[450,5517,5518],{"class":1205}," 3_600_000",[450,5520,814],{"class":538},[450,5522,5448],{"class":516},[450,5524,5525],{"class":452,"line":836},[450,5526,604],{"emptyLinePlaceholder":603},[450,5528,5529,5531],{"class":452,"line":853},[450,5530,4593],{"class":516},[450,5532,5533],{"class":527}," cached\n",[450,5535,5536],{"class":452,"line":869},[450,5537,665],{"class":531},[450,5539,5540,5542],{"class":452,"line":890},[450,5541,671],{"class":531},[450,5543,674],{"class":527},[450,5545,5546,5548,5550],{"class":452,"line":898},[450,5547,1684],{"class":531},[450,5549,1593],{"class":538},[450,5551,1612],{"class":531},[435,5553,5555],{"id":5554},"best-practices","Best practices",[494,5557,5559],{"id":5558},"_1-keep-the-sdk-server-side","1. Keep the SDK server-side",[425,5561,5562,5563,5565,5566,480,5568,5571,5572,5575],{},"All ",[447,5564,688],{}," usage lives in ",[447,5567,684],{},[447,5569,5570],{},"server\u002Fapi\u002Fcms\u002F"," routes. Pages and components only call ",[447,5573,5574],{},"useFetch('\u002Fapi\u002Fcms\u002F...')",". This ensures:",[5577,5578,5579,5583,5589],"ul",{},[5580,5581,5582],"li",{},"API keys never reach the browser.",[5580,5584,5585,5586,5588],{},"No client-side ",[447,5587,487],{}," crash.",[5580,5590,5591],{},"A single place to update auth or retry logic.",[494,5593,5595],{"id":5594},"_2-implement-error-boundaries","2. Implement error boundaries",[440,5597,5599],{"className":1581,"code":5598,"language":1583,"meta":445,"style":445},"\u003Cscript setup lang=\"ts\">\nconst { data: page, error } = await useFetch('\u002Fapi\u002Fcms\u002Fpage', {\n  query: { slug: 'homepage' },\n})\n\nif (error.value) {\n  throw createError({\n    statusCode: error.value.statusCode || 500,\n    message: error.value.message,\n  })\n}\n\u003C\u002Fscript>\n",[447,5600,5601,5621,5657,5677,5683,5687,5699,5709,5731,5749,5755,5759],{"__ignoreMap":445},[450,5602,5603,5605,5607,5609,5611,5613,5615,5617,5619],{"class":452,"line":453},[450,5604,1590],{"class":531},[450,5606,1593],{"class":538},[450,5608,1596],{"class":727},[450,5610,1599],{"class":727},[450,5612,1539],{"class":531},[450,5614,1604],{"class":531},[450,5616,1607],{"class":460},[450,5618,1604],{"class":531},[450,5620,1612],{"class":531},[450,5622,5623,5625,5627,5629,5631,5633,5635,5637,5639,5641,5643,5645,5647,5649,5651,5653,5655],{"class":452,"line":535},[450,5624,1617],{"class":727},[450,5626,702],{"class":531},[450,5628,1622],{"class":538},[450,5630,504],{"class":531},[450,5632,4760],{"class":527},[450,5634,1209],{"class":531},[450,5636,4765],{"class":527},[450,5638,671],{"class":531},[450,5640,827],{"class":531},[450,5642,1634],{"class":516},[450,5644,1637],{"class":523},[450,5646,528],{"class":527},[450,5648,651],{"class":531},[450,5650,1644],{"class":460},[450,5652,651],{"class":531},[450,5654,1209],{"class":531},[450,5656,544],{"class":531},[450,5658,5659,5661,5663,5665,5667,5669,5671,5673,5675],{"class":452,"line":547},[450,5660,1655],{"class":538},[450,5662,504],{"class":531},[450,5664,702],{"class":531},[450,5666,1137],{"class":538},[450,5668,504],{"class":531},[450,5670,645],{"class":531},[450,5672,1668],{"class":460},[450,5674,651],{"class":531},[450,5676,1673],{"class":531},[450,5678,5679,5681],{"class":452,"line":554},[450,5680,671],{"class":531},[450,5682,674],{"class":527},[450,5684,5685],{"class":452,"line":579},[450,5686,604],{"emptyLinePlaceholder":603},[450,5688,5689,5691,5693,5695,5697],{"class":452,"line":600},[450,5690,4850],{"class":516},[450,5692,4853],{"class":527},[450,5694,565],{"class":531},[450,5696,4858],{"class":527},[450,5698,532],{"class":531},[450,5700,5701,5703,5705,5707],{"class":452,"line":607},[450,5702,4865],{"class":516},[450,5704,1192],{"class":523},[450,5706,528],{"class":538},[450,5708,532],{"class":531},[450,5710,5711,5713,5715,5717,5719,5721,5723,5725,5727,5729],{"class":452,"line":613},[450,5712,4876],{"class":538},[450,5714,504],{"class":531},[450,5716,4881],{"class":527},[450,5718,565],{"class":531},[450,5720,4886],{"class":527},[450,5722,565],{"class":531},[450,5724,4891],{"class":527},[450,5726,4894],{"class":531},[450,5728,4897],{"class":1205},[450,5730,576],{"class":531},[450,5732,5733,5735,5737,5739,5741,5743,5745,5747],{"class":452,"line":623},[450,5734,4904],{"class":538},[450,5736,504],{"class":531},[450,5738,4881],{"class":527},[450,5740,565],{"class":531},[450,5742,4886],{"class":527},[450,5744,565],{"class":531},[450,5746,4917],{"class":527},[450,5748,576],{"class":531},[450,5750,5751,5753],{"class":452,"line":656},[450,5752,1510],{"class":531},[450,5754,674],{"class":538},[450,5756,5757],{"class":452,"line":662},[450,5758,916],{"class":531},[450,5760,5761,5763,5765],{"class":452,"line":668},[450,5762,1684],{"class":531},[450,5764,1593],{"class":538},[450,5766,1612],{"class":531},[494,5768,5770],{"id":5769},"_3-use-composables-for-reusability","3. Use composables for reusability",[425,5772,5773,5774,5776,5777,5779],{},"Centralise server-route calls in ",[447,5775,3342],{}," rather than repeating ",[447,5778,1571],{}," paths across components.",[494,5781,5783],{"id":5782},"_4-optimise-images","4. Optimise images",[440,5785,5787],{"className":1581,"code":5786,"language":1583,"meta":445,"style":445},"\u003Ctemplate>\n  \u003CNuxtImg\n    :src=\"imageUrl\"\n    :width=\"800\"\n    :height=\"600\"\n    alt=\"Product image\"\n  \u002F>\n\u003C\u002Ftemplate>\n",[447,5788,5789,5797,5804,5822,5838,5854,5868,5873],{"__ignoreMap":445},[450,5790,5791,5793,5795],{"class":452,"line":453},[450,5792,1590],{"class":531},[450,5794,1699],{"class":538},[450,5796,1612],{"class":531},[450,5798,5799,5801],{"class":452,"line":535},[450,5800,1706],{"class":531},[450,5802,5803],{"class":538},"NuxtImg\n",[450,5805,5806,5809,5812,5814,5816,5819],{"class":452,"line":547},[450,5807,5808],{"class":531},"    :",[450,5810,5811],{"class":727},"src",[450,5813,1539],{"class":531},[450,5815,1604],{"class":531},[450,5817,5818],{"class":527},"imageUrl",[450,5820,5821],{"class":531},"\"\n",[450,5823,5824,5826,5829,5831,5833,5836],{"class":452,"line":554},[450,5825,5808],{"class":531},[450,5827,5828],{"class":727},"width",[450,5830,1539],{"class":531},[450,5832,1604],{"class":531},[450,5834,5835],{"class":1205},"800",[450,5837,5821],{"class":531},[450,5839,5840,5842,5845,5847,5849,5852],{"class":452,"line":579},[450,5841,5808],{"class":531},[450,5843,5844],{"class":727},"height",[450,5846,1539],{"class":531},[450,5848,1604],{"class":531},[450,5850,5851],{"class":1205},"600",[450,5853,5821],{"class":531},[450,5855,5856,5859,5861,5863,5866],{"class":452,"line":600},[450,5857,5858],{"class":727},"    alt",[450,5860,1539],{"class":531},[450,5862,1604],{"class":531},[450,5864,5865],{"class":460},"Product image",[450,5867,5821],{"class":531},[450,5869,5870],{"class":452,"line":607},[450,5871,5872],{"class":531},"  \u002F>\n",[450,5874,5875,5877,5879],{"class":452,"line":613},[450,5876,1684],{"class":531},[450,5878,1699],{"class":538},[450,5880,1612],{"class":531},[425,5882,5883],{},"Resolve image URLs in the server route and return them as part of the page data, rather than calling SDK media helpers client-side.",[435,5885,5887],{"id":5886},"resources","Resources",[5577,5889,5890,5898,5904,5910,5917],{},[5580,5891,5892],{},[3192,5893,5897],{"href":5894,"rel":5895},"https:\u002F\u002Fnuxt.com",[5896],"nofollow","Nuxt Documentation",[5580,5899,5900],{},[3192,5901,1571],{"href":5902,"rel":5903},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-fetch",[5896],[5580,5905,5906],{},[3192,5907,1575],{"href":5908,"rel":5909},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-async-data",[5896],[5580,5911,5912],{},[3192,5913,5916],{"href":5914,"rel":5915},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fdirectory-structure\u002Fserver",[5896],"Server Routes",[5580,5918,5919],{},[3192,5920,5922],{"href":5921},".\u002Freference\u002Freadme","TentoCMS SDK Reference",[5924,5925,5926],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":445,"searchDepth":535,"depth":535,"links":5928},[5929,5930,5936,5941,5945,5948,5952,5953,5954,5955,5961],{"id":437,"depth":535,"text":438},{"id":467,"depth":535,"text":468,"children":5931},[5932,5933,5934,5935],{"id":496,"depth":547,"text":497},{"id":677,"depth":547,"text":678},{"id":1082,"depth":547,"text":1083},{"id":1521,"depth":547,"text":1522},{"id":1564,"depth":535,"text":1565,"children":5937},[5938,5939,5940],{"id":1257,"depth":547,"text":42},{"id":1772,"depth":547,"text":1773},{"id":1460,"depth":547,"text":22},{"id":2287,"depth":535,"text":2288,"children":5942},[5943,5944],{"id":2291,"depth":547,"text":2292},{"id":2922,"depth":547,"text":2923},{"id":3322,"depth":535,"text":3323,"children":5946},[5947],{"id":3799,"depth":547,"text":3800},{"id":509,"depth":535,"text":4220,"children":5949},[5950,5951],{"id":4223,"depth":547,"text":4224},{"id":4414,"depth":547,"text":4415},{"id":4471,"depth":535,"text":4472},{"id":5002,"depth":535,"text":5003},{"id":5258,"depth":535,"text":5259},{"id":5554,"depth":535,"text":5555,"children":5956},[5957,5958,5959,5960],{"id":5558,"depth":547,"text":5559},{"id":5594,"depth":547,"text":5595},{"id":5769,"depth":547,"text":5770},{"id":5782,"depth":547,"text":5783},{"id":5886,"depth":535,"text":5887},"Using @tentocms\u002Fclient with Nuxt 3 and Nuxt 4.","md","i-lucide-hexagon",null,{},{"title":141,"description":5962},"66BN4EGiGEhNrg_3zeM2sjdXODHM_AlFu3RgTrcnjYg",[5970,6000,6010,6028,6104],{"title":5,"path":6,"stem":7,"children":5971,"page":65},[5972,5974,5976,5978,5980,5982,5984,5986,5988,5990,5992,5994,5996,5998],{"title":10,"path":11,"stem":12,"icon":5973},"i-lucide-sparkles",{"title":14,"path":15,"stem":16,"icon":5975},"i-lucide-newspaper",{"title":18,"path":19,"stem":20,"icon":5977},"i-lucide-terminal",{"title":22,"path":23,"stem":24,"icon":5979},"i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":5981},"i-lucide-type",{"title":30,"path":31,"stem":32,"icon":5983},"i-lucide-triangle-alert",{"title":34,"path":35,"stem":36,"icon":5985},"i-lucide-image",{"title":38,"path":39,"stem":40,"icon":5987},"i-lucide-map",{"title":42,"path":43,"stem":44,"icon":5989},"i-lucide-file-text",{"title":46,"path":47,"stem":48,"icon":5991},"i-lucide-sliders-horizontal",{"title":50,"path":51,"stem":52,"icon":5993},"i-lucide-braces",{"title":54,"path":55,"stem":56,"icon":5995},"i-lucide-wrench",{"title":58,"path":59,"stem":60,"icon":5997},"i-lucide-shield-check",{"title":62,"path":63,"stem":64,"icon":5999},"i-lucide-webhook",{"title":67,"path":68,"stem":69,"children":6001,"page":65},[6002,6004,6006,6008],{"title":72,"path":73,"stem":74,"icon":6003},"i-lucide-key-round",{"title":76,"path":77,"stem":78,"icon":6005},"i-lucide-compass",{"title":80,"path":81,"stem":82,"icon":6007},"i-lucide-rocket",{"title":84,"path":85,"stem":86,"icon":6009},"i-lucide-pencil",{"title":88,"path":89,"stem":90,"children":6011,"page":65},[6012,6014,6016,6018,6020,6022,6024,6026],{"title":93,"path":94,"stem":95,"icon":6013},"i-lucide-layout-dashboard",{"title":97,"path":98,"stem":99,"icon":6015},"i-lucide-package",{"title":101,"path":102,"stem":103,"icon":6017},"i-lucide-git-branch",{"title":105,"path":106,"stem":107,"icon":6019},"i-lucide-files",{"title":109,"path":110,"stem":111,"icon":6021},"i-lucide-plug-zap",{"title":113,"path":114,"stem":115,"icon":6023},"i-lucide-wand",{"title":117,"path":118,"stem":119,"icon":6025},"i-lucide-users",{"title":121,"path":122,"stem":123,"icon":6027},"i-lucide-pilcrow",{"title":125,"path":126,"stem":127,"children":6029,"page":65},[6030,6031,6032,6034,6035],{"title":38,"path":130,"stem":131,"icon":6015},{"title":133,"path":134,"stem":135,"icon":6007},{"title":137,"path":138,"stem":139,"icon":6033},"i-lucide-triangle",{"title":141,"path":142,"stem":143,"icon":5964},{"title":145,"path":146,"stem":147,"children":6036,"page":65},[6037,6038,6056,6060,6097],{"title":150,"path":151,"stem":152,"icon":5965},{"title":154,"path":155,"stem":156,"children":6039,"page":65},[6040,6041,6042,6043,6044,6045,6046,6047,6048,6049,6050,6051,6052,6053,6054,6055],{"title":159,"path":160,"stem":161,"icon":5965},{"title":163,"path":164,"stem":165,"icon":5965},{"title":167,"path":168,"stem":169,"icon":5965},{"title":171,"path":172,"stem":173,"icon":5965},{"title":175,"path":176,"stem":177,"icon":5965},{"title":179,"path":180,"stem":181,"icon":5965},{"title":183,"path":184,"stem":185,"icon":5965},{"title":187,"path":188,"stem":189,"icon":5965},{"title":191,"path":192,"stem":193,"icon":5965},{"title":195,"path":196,"stem":197,"icon":5965},{"title":199,"path":200,"stem":201,"icon":5965},{"title":203,"path":204,"stem":205,"icon":5965},{"title":207,"path":208,"stem":209,"icon":5965},{"title":211,"path":212,"stem":213,"icon":5965},{"title":215,"path":216,"stem":217,"icon":5965},{"title":219,"path":220,"stem":221,"icon":5965},{"title":223,"path":224,"stem":225,"children":6057,"page":65},[6058,6059],{"title":228,"path":229,"stem":230,"icon":5965},{"title":232,"path":233,"stem":234,"icon":5965},{"title":236,"path":237,"stem":238,"children":6061,"page":65},[6062,6063,6064,6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080,6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096],{"title":241,"path":242,"stem":243,"icon":5965},{"title":245,"path":246,"stem":247,"icon":5965},{"title":249,"path":250,"stem":251,"icon":5965},{"title":253,"path":254,"stem":255,"icon":5965},{"title":257,"path":258,"stem":259,"icon":5965},{"title":261,"path":262,"stem":263,"icon":5965},{"title":265,"path":266,"stem":267,"icon":5965},{"title":269,"path":270,"stem":271,"icon":5965},{"title":273,"path":274,"stem":275,"icon":5965},{"title":277,"path":278,"stem":279,"icon":5965},{"title":281,"path":282,"stem":283,"icon":5965},{"title":285,"path":286,"stem":287,"icon":5965},{"title":289,"path":290,"stem":291,"icon":5965},{"title":293,"path":294,"stem":295,"icon":5965},{"title":297,"path":298,"stem":299,"icon":5965},{"title":301,"path":302,"stem":303,"icon":5965},{"title":305,"path":306,"stem":307,"icon":5965},{"title":309,"path":310,"stem":311,"icon":5965},{"title":313,"path":314,"stem":315,"icon":5965},{"title":317,"path":318,"stem":319,"icon":5965},{"title":321,"path":322,"stem":323,"icon":5965},{"title":325,"path":326,"stem":327,"icon":5965},{"title":329,"path":330,"stem":331,"icon":5965},{"title":333,"path":334,"stem":335,"icon":5965},{"title":337,"path":338,"stem":339,"icon":5965},{"title":341,"path":342,"stem":343,"icon":5965},{"title":345,"path":346,"stem":347,"icon":5965},{"title":349,"path":350,"stem":351,"icon":5965},{"title":353,"path":354,"stem":355,"icon":5965},{"title":357,"path":358,"stem":359,"icon":5965},{"title":361,"path":362,"stem":363,"icon":5965},{"title":365,"path":366,"stem":367,"icon":5965},{"title":369,"path":370,"stem":371,"icon":5965},{"title":373,"path":374,"stem":375,"icon":5965},{"title":377,"path":378,"stem":379,"icon":5965},{"title":381,"path":382,"stem":383,"children":6098,"page":65},[6099,6100,6101,6102,6103],{"title":386,"path":387,"stem":388,"icon":5965},{"title":390,"path":391,"stem":392,"icon":5965},{"title":394,"path":395,"stem":396,"icon":5965},{"title":398,"path":399,"stem":400,"icon":5965},{"title":402,"path":403,"stem":404,"icon":5965},{"title":406,"path":407,"stem":408,"children":6105,"page":65},[6106,6107,6108],{"title":133,"path":411,"stem":412,"icon":6007},{"title":137,"path":414,"stem":415,"icon":6033},{"title":141,"path":417,"stem":418,"icon":5964},[6110,6112],{"title":137,"path":138,"stem":139,"description":6111,"children":-1},"Using @tentocms\u002Fclient with Next.js.",{"title":150,"path":151,"stem":152,"description":6113,"children":-1},"Official TypeScript SDK for TentoCMS",1787919215696]