[{"data":1,"prerenderedAt":13801},["ShallowReactive",2],{"navigation_docs":3,"docs-navigation-with-icons":419,"-docs-guides-public-api-usage":561,"-docs-guides-public-api-usage-surround":13796},[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",[420,450,460,478,556],{"title":5,"path":6,"stem":7,"children":421,"page":65},[422,424,426,428,430,432,434,436,438,440,442,444,446,448],{"title":10,"path":11,"stem":12,"icon":423},"i-lucide-sparkles",{"title":14,"path":15,"stem":16,"icon":425},"i-lucide-newspaper",{"title":18,"path":19,"stem":20,"icon":427},"i-lucide-terminal",{"title":22,"path":23,"stem":24,"icon":429},"i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":431},"i-lucide-type",{"title":30,"path":31,"stem":32,"icon":433},"i-lucide-triangle-alert",{"title":34,"path":35,"stem":36,"icon":435},"i-lucide-image",{"title":38,"path":39,"stem":40,"icon":437},"i-lucide-map",{"title":42,"path":43,"stem":44,"icon":439},"i-lucide-file-text",{"title":46,"path":47,"stem":48,"icon":441},"i-lucide-sliders-horizontal",{"title":50,"path":51,"stem":52,"icon":443},"i-lucide-braces",{"title":54,"path":55,"stem":56,"icon":445},"i-lucide-wrench",{"title":58,"path":59,"stem":60,"icon":447},"i-lucide-shield-check",{"title":62,"path":63,"stem":64,"icon":449},"i-lucide-webhook",{"title":67,"path":68,"stem":69,"children":451,"page":65},[452,454,456,458],{"title":72,"path":73,"stem":74,"icon":453},"i-lucide-key-round",{"title":76,"path":77,"stem":78,"icon":455},"i-lucide-compass",{"title":80,"path":81,"stem":82,"icon":457},"i-lucide-rocket",{"title":84,"path":85,"stem":86,"icon":459},"i-lucide-pencil",{"title":88,"path":89,"stem":90,"children":461,"page":65},[462,464,466,468,470,472,474,476],{"title":93,"path":94,"stem":95,"icon":463},"i-lucide-layout-dashboard",{"title":97,"path":98,"stem":99,"icon":465},"i-lucide-package",{"title":101,"path":102,"stem":103,"icon":467},"i-lucide-git-branch",{"title":105,"path":106,"stem":107,"icon":469},"i-lucide-files",{"title":109,"path":110,"stem":111,"icon":471},"i-lucide-plug-zap",{"title":113,"path":114,"stem":115,"icon":473},"i-lucide-wand",{"title":117,"path":118,"stem":119,"icon":475},"i-lucide-users",{"title":121,"path":122,"stem":123,"icon":477},"i-lucide-pilcrow",{"title":125,"path":126,"stem":127,"children":479,"page":65},[480,481,482,484,486],{"title":38,"path":130,"stem":131,"icon":465},{"title":133,"path":134,"stem":135,"icon":457},{"title":137,"path":138,"stem":139,"icon":483},"i-lucide-triangle",{"title":141,"path":142,"stem":143,"icon":485},"i-lucide-hexagon",{"title":145,"path":146,"stem":147,"children":487,"page":65},[488,490,508,512,549],{"title":150,"path":151,"stem":152,"icon":489},null,{"title":154,"path":155,"stem":156,"children":491,"page":65},[492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507],{"title":159,"path":160,"stem":161,"icon":489},{"title":163,"path":164,"stem":165,"icon":489},{"title":167,"path":168,"stem":169,"icon":489},{"title":171,"path":172,"stem":173,"icon":489},{"title":175,"path":176,"stem":177,"icon":489},{"title":179,"path":180,"stem":181,"icon":489},{"title":183,"path":184,"stem":185,"icon":489},{"title":187,"path":188,"stem":189,"icon":489},{"title":191,"path":192,"stem":193,"icon":489},{"title":195,"path":196,"stem":197,"icon":489},{"title":199,"path":200,"stem":201,"icon":489},{"title":203,"path":204,"stem":205,"icon":489},{"title":207,"path":208,"stem":209,"icon":489},{"title":211,"path":212,"stem":213,"icon":489},{"title":215,"path":216,"stem":217,"icon":489},{"title":219,"path":220,"stem":221,"icon":489},{"title":223,"path":224,"stem":225,"children":509,"page":65},[510,511],{"title":228,"path":229,"stem":230,"icon":489},{"title":232,"path":233,"stem":234,"icon":489},{"title":236,"path":237,"stem":238,"children":513,"page":65},[514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548],{"title":241,"path":242,"stem":243,"icon":489},{"title":245,"path":246,"stem":247,"icon":489},{"title":249,"path":250,"stem":251,"icon":489},{"title":253,"path":254,"stem":255,"icon":489},{"title":257,"path":258,"stem":259,"icon":489},{"title":261,"path":262,"stem":263,"icon":489},{"title":265,"path":266,"stem":267,"icon":489},{"title":269,"path":270,"stem":271,"icon":489},{"title":273,"path":274,"stem":275,"icon":489},{"title":277,"path":278,"stem":279,"icon":489},{"title":281,"path":282,"stem":283,"icon":489},{"title":285,"path":286,"stem":287,"icon":489},{"title":289,"path":290,"stem":291,"icon":489},{"title":293,"path":294,"stem":295,"icon":489},{"title":297,"path":298,"stem":299,"icon":489},{"title":301,"path":302,"stem":303,"icon":489},{"title":305,"path":306,"stem":307,"icon":489},{"title":309,"path":310,"stem":311,"icon":489},{"title":313,"path":314,"stem":315,"icon":489},{"title":317,"path":318,"stem":319,"icon":489},{"title":321,"path":322,"stem":323,"icon":489},{"title":325,"path":326,"stem":327,"icon":489},{"title":329,"path":330,"stem":331,"icon":489},{"title":333,"path":334,"stem":335,"icon":489},{"title":337,"path":338,"stem":339,"icon":489},{"title":341,"path":342,"stem":343,"icon":489},{"title":345,"path":346,"stem":347,"icon":489},{"title":349,"path":350,"stem":351,"icon":489},{"title":353,"path":354,"stem":355,"icon":489},{"title":357,"path":358,"stem":359,"icon":489},{"title":361,"path":362,"stem":363,"icon":489},{"title":365,"path":366,"stem":367,"icon":489},{"title":369,"path":370,"stem":371,"icon":489},{"title":373,"path":374,"stem":375,"icon":489},{"title":377,"path":378,"stem":379,"icon":489},{"title":381,"path":382,"stem":383,"children":550,"page":65},[551,552,553,554,555],{"title":386,"path":387,"stem":388,"icon":489},{"title":390,"path":391,"stem":392,"icon":489},{"title":394,"path":395,"stem":396,"icon":489},{"title":398,"path":399,"stem":400,"icon":489},{"title":402,"path":403,"stem":404,"icon":489},{"title":406,"path":407,"stem":408,"children":557,"page":65},[558,559,560],{"title":133,"path":411,"stem":412,"icon":457},{"title":137,"path":414,"stem":415,"icon":483},{"title":141,"path":417,"stem":418,"icon":485},{"id":562,"title":109,"body":563,"description":13791,"extension":13792,"icon":471,"links":489,"meta":13793,"navigation":867,"path":110,"seo":13794,"stem":111,"__hash__":13795},"docs\u002Fdocs\u002Fguides\u002Fpublic-api-usage.md",{"type":564,"value":565,"toc":13739},"minimark",[566,574,578,581,603,609,670,675,691,694,697,701,704,726,731,741,745,748,789,796,802,806,1150,1154,1157,1275,1278,1437,1439,1443,1447,1453,1719,1723,1728,2056,2060,2063,2161,2167,2403,2407,2413,2492,2497,2570,2575,2863,2870,2893,2965,2979,2983,2988,3549,3551,3555,3558,3563,3568,4172,4176,4181,4483,4487,4492,4785,4788,4792,4797,5003,5007,5558,5562,5920,5924,5928,6773,6777,7261,7265,7268,8108,8112,8592,8594,8598,8602,8605,8622,8627,8647,8651,9252,9256,9304,9765,9767,9771,9775,10241,10245,10631,10635,10932,10934,10938,10942,10948,11055,11059,11325,11329,11507,11511,11848,11850,11854,11858,11863,11938,11943,12068,12073,12234,12238,12255,12260,12507,12509,12512,12516,12948,12952,13366,13370,13648,13650,13654,13659,13709,13714,13727,13729,13735],[567,568,569,570,573],"p",{},"Guide for frontend developers integrating with the TentoCMS Public REST API — authentication, request patterns, caching, and error handling, illustrated primarily against the ",[571,572,42],"strong",{}," endpoints (the patterns apply identically to Blog and Collections; see the cross-references below).",[575,576,38],"h2",{"id":577},"overview",[567,579,580],{},"This guide shows you how to integrate the TentoCMS Public REST API into your frontend applications. You'll learn how to:",[582,583,584,588,591,594,597,600],"ul",{},[585,586,587],"li",{},"Set up authentication with API keys",[585,589,590],{},"Fetch pages and media",[585,592,593],{},"Handle pagination and field selection",[585,595,596],{},"Implement caching strategies",[585,598,599],{},"Handle errors and redirects",[585,601,602],{},"Integrate with popular frameworks (Next.js, Nuxt, React, Vue)",[567,604,605,608],{},[571,606,607],{},"Not covered in depth here"," — see the linked reference docs instead:",[582,610,611,640,650],{},[585,612,613,616,617,621,622,625,626,631,632,634,635,639],{},[571,614,615],{},"Blog and Collections endpoints",": this guide's examples fetch pages; the same auth\u002Fpagination\u002Fcaching\u002Ferror patterns apply unchanged to ",[618,619,620],"code",{},"GET \u002Fapi\u002Fv1\u002Fblog\u002Fposts"," and ",[618,623,624],{},"GET \u002Fapi\u002Fv1\u002Fcollections\u002F:type"," — see the ",[627,628,630],"a",{"href":629},"..\u002Fapi\u002Fblog","Blog API Reference"," and the ",[618,633,624],{}," section of the ",[627,636,638],{"href":637},"..\u002Fapi\u002Foverview#reference-index","Public REST API Reference",".",[585,641,642,645,646,639],{},[571,643,644],{},"Preview Mode"," (fetching draft\u002Fscheduled content with a preview key): see ",[627,647,649],{"href":648},"..\u002Fapi\u002Foverview#preview-mode","Public REST API Reference § Preview Mode",[585,651,652,658,659,662,663,665,666,639],{},[571,653,654,655,657],{},"The official ",[618,656,150],{}," SDK",": this guide shows raw ",[618,660,661],{},"fetch()"," calls for framework-agnostic clarity; if you'd rather not hand-roll a client, ",[618,664,150],{}," wraps auth, pagination, and typed responses — see the ",[627,667,669],{"href":668},"..\u002Fsdk\u002Freadme","SDK docs",[671,672,674],"h3",{"id":673},"prerequisites","Prerequisites",[582,676,677,685,688],{},[585,678,679,680,684],{},"API key from your TentoCMS administrator (",[627,681,683],{"href":682},".\u002Fuser-management","How to get one",")",[585,686,687],{},"Basic knowledge of JavaScript\u002FTypeScript",[585,689,690],{},"Familiarity with your chosen framework",[692,693],"hr",{},[575,695,67],{"id":696},"getting-started",[671,698,700],{"id":699},"step-1-obtain-api-key","Step 1: Obtain API Key",[567,702,703],{},"Contact your TentoCMS administrator to create an API key:",[705,706,707,717,723],"ol",{},[585,708,709,710,713,714],{},"Admin navigates to ",[571,711,712],{},"Settings"," → ",[571,715,716],{},"API Keys",[585,718,719,720],{},"Admin clicks ",[571,721,722],{},"Create API Key",[585,724,725],{},"Admin copies the full key and sends it securely",[567,727,728],{},[571,729,730],{},"Example key:",[732,733,738],"pre",{"className":734,"code":736,"language":737},[735],"language-text","tento_pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6\n","text",[618,739,736],{"__ignoreMap":740},"",[671,742,744],{"id":743},"step-2-set-up-environment-variables","Step 2: Set Up Environment Variables",[567,746,747],{},"Store your API key in environment variables (never commit to git):",[732,749,753],{"className":750,"code":751,"language":752,"meta":740,"style":740},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# .env.local\nCMS_API_KEY=tento_pk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6\nCMS_API_BASE_URL=https:\u002F\u002Ftento-api.intelligentlending.co.uk\u002Fapi\u002Fv1\n","bash",[618,754,755,764,778],{"__ignoreMap":740},[756,757,760],"span",{"class":758,"line":759},"line",1,[756,761,763],{"class":762},"sHwdD","# .env.local\n",[756,765,767,771,775],{"class":758,"line":766},2,[756,768,770],{"class":769},"sTEyZ","CMS_API_KEY",[756,772,774],{"class":773},"sMK4o","=",[756,776,736],{"class":777},"sfazB",[756,779,781,784,786],{"class":758,"line":780},3,[756,782,783],{"class":769},"CMS_API_BASE_URL",[756,785,774],{"class":773},[756,787,788],{"class":777},"https:\u002F\u002Ftento-api.intelligentlending.co.uk\u002Fapi\u002Fv1\n",[567,790,791,792,795],{},"Add to ",[618,793,794],{},".gitignore",":",[732,797,800],{"className":798,"code":799,"language":737},[735],".env\n.env.local\n.env.*.local\n",[618,801,799],{"__ignoreMap":740},[671,803,805],{"id":804},"step-3-make-first-request","Step 3: Make First Request",[732,807,811],{"className":808,"code":809,"language":810,"meta":740,"style":740},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F lib\u002Fcms.js\nconst API_KEY = process.env.CMS_API_KEY\nconst BASE_URL = process.env.CMS_API_BASE_URL\n\nexport async function fetchPages() {\n  const response = await fetch(`${BASE_URL}\u002Fpages`, {\n    headers: {\n      'X-API-Key': API_KEY\n    }\n  })\n\n  if (!response.ok) {\n    throw new Error(`API error: ${response.status}`)\n  }\n\n  return await response.json()\n}\n\n\u002F\u002F Usage\nconst { data, pagination } = await fetchPages()\nconsole.log(`Found ${data.length} pages`)\n","javascript",[618,812,813,818,842,862,869,892,934,944,961,967,976,981,1007,1041,1047,1052,1070,1076,1081,1087,1113],{"__ignoreMap":740},[756,814,815],{"class":758,"line":759},[756,816,817],{"class":762},"\u002F\u002F lib\u002Fcms.js\n",[756,819,820,824,827,829,832,834,837,839],{"class":758,"line":766},[756,821,823],{"class":822},"spNyl","const",[756,825,826],{"class":769}," API_KEY ",[756,828,774],{"class":773},[756,830,831],{"class":769}," process",[756,833,639],{"class":773},[756,835,836],{"class":769},"env",[756,838,639],{"class":773},[756,840,841],{"class":769},"CMS_API_KEY\n",[756,843,844,846,849,851,853,855,857,859],{"class":758,"line":780},[756,845,823],{"class":822},[756,847,848],{"class":769}," BASE_URL ",[756,850,774],{"class":773},[756,852,831],{"class":769},[756,854,639],{"class":773},[756,856,836],{"class":769},[756,858,639],{"class":773},[756,860,861],{"class":769},"CMS_API_BASE_URL\n",[756,863,865],{"class":758,"line":864},4,[756,866,868],{"emptyLinePlaceholder":867},true,"\n",[756,870,872,876,879,882,886,889],{"class":758,"line":871},5,[756,873,875],{"class":874},"s7zQu","export",[756,877,878],{"class":822}," async",[756,880,881],{"class":822}," function",[756,883,885],{"class":884},"s2Zo4"," fetchPages",[756,887,888],{"class":773},"()",[756,890,891],{"class":773}," {\n",[756,893,895,898,901,904,907,910,914,917,920,923,926,929,932],{"class":758,"line":894},6,[756,896,897],{"class":822},"  const",[756,899,900],{"class":769}," response",[756,902,903],{"class":773}," =",[756,905,906],{"class":874}," await",[756,908,909],{"class":884}," fetch",[756,911,913],{"class":912},"swJcz","(",[756,915,916],{"class":773},"`${",[756,918,919],{"class":769},"BASE_URL",[756,921,922],{"class":773},"}",[756,924,925],{"class":777},"\u002Fpages",[756,927,928],{"class":773},"`",[756,930,931],{"class":773},",",[756,933,891],{"class":773},[756,935,937,940,942],{"class":758,"line":936},7,[756,938,939],{"class":912},"    headers",[756,941,795],{"class":773},[756,943,891],{"class":773},[756,945,947,950,953,956,958],{"class":758,"line":946},8,[756,948,949],{"class":773},"      '",[756,951,952],{"class":912},"X-API-Key",[756,954,955],{"class":773},"'",[756,957,795],{"class":773},[756,959,960],{"class":769}," API_KEY\n",[756,962,964],{"class":758,"line":963},9,[756,965,966],{"class":773},"    }\n",[756,968,970,973],{"class":758,"line":969},10,[756,971,972],{"class":773},"  }",[756,974,975],{"class":912},")\n",[756,977,979],{"class":758,"line":978},11,[756,980,868],{"emptyLinePlaceholder":867},[756,982,984,987,990,993,996,998,1001,1004],{"class":758,"line":983},12,[756,985,986],{"class":874},"  if",[756,988,989],{"class":912}," (",[756,991,992],{"class":773},"!",[756,994,995],{"class":769},"response",[756,997,639],{"class":773},[756,999,1000],{"class":769},"ok",[756,1002,1003],{"class":912},") ",[756,1005,1006],{"class":773},"{\n",[756,1008,1010,1013,1016,1019,1021,1023,1026,1029,1031,1033,1036,1039],{"class":758,"line":1009},13,[756,1011,1012],{"class":874},"    throw",[756,1014,1015],{"class":773}," new",[756,1017,1018],{"class":884}," Error",[756,1020,913],{"class":912},[756,1022,928],{"class":773},[756,1024,1025],{"class":777},"API error: ",[756,1027,1028],{"class":773},"${",[756,1030,995],{"class":769},[756,1032,639],{"class":773},[756,1034,1035],{"class":769},"status",[756,1037,1038],{"class":773},"}`",[756,1040,975],{"class":912},[756,1042,1044],{"class":758,"line":1043},14,[756,1045,1046],{"class":773},"  }\n",[756,1048,1050],{"class":758,"line":1049},15,[756,1051,868],{"emptyLinePlaceholder":867},[756,1053,1055,1058,1060,1062,1064,1067],{"class":758,"line":1054},16,[756,1056,1057],{"class":874},"  return",[756,1059,906],{"class":874},[756,1061,900],{"class":769},[756,1063,639],{"class":773},[756,1065,1066],{"class":884},"json",[756,1068,1069],{"class":912},"()\n",[756,1071,1073],{"class":758,"line":1072},17,[756,1074,1075],{"class":773},"}\n",[756,1077,1079],{"class":758,"line":1078},18,[756,1080,868],{"emptyLinePlaceholder":867},[756,1082,1084],{"class":758,"line":1083},19,[756,1085,1086],{"class":762},"\u002F\u002F Usage\n",[756,1088,1090,1092,1095,1098,1100,1103,1105,1107,1109,1111],{"class":758,"line":1089},20,[756,1091,823],{"class":822},[756,1093,1094],{"class":773}," {",[756,1096,1097],{"class":769}," data",[756,1099,931],{"class":773},[756,1101,1102],{"class":769}," pagination ",[756,1104,922],{"class":773},[756,1106,903],{"class":773},[756,1108,906],{"class":874},[756,1110,885],{"class":884},[756,1112,1069],{"class":769},[756,1114,1116,1119,1121,1124,1126,1128,1131,1133,1136,1138,1141,1143,1146,1148],{"class":758,"line":1115},21,[756,1117,1118],{"class":769},"console",[756,1120,639],{"class":773},[756,1122,1123],{"class":884},"log",[756,1125,913],{"class":769},[756,1127,928],{"class":773},[756,1129,1130],{"class":777},"Found ",[756,1132,1028],{"class":773},[756,1134,1135],{"class":769},"data",[756,1137,639],{"class":773},[756,1139,1140],{"class":769},"length",[756,1142,922],{"class":773},[756,1144,1145],{"class":777}," pages",[756,1147,928],{"class":773},[756,1149,975],{"class":769},[671,1151,1153],{"id":1152},"step-4-handle-responses","Step 4: Handle Responses",[567,1155,1156],{},"All successful responses have this structure:",[732,1158,1161],{"className":1159,"code":1160,"language":1066,"meta":740,"style":740},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"data\": [...],\n  \"pagination\": {\n    \"total\": 45,\n    \"page\": 1,\n    \"limit\": 20,\n    \"totalPages\": 3\n  }\n}\n",[618,1162,1163,1167,1188,1201,1221,1237,1253,1267,1271],{"__ignoreMap":740},[756,1164,1165],{"class":758,"line":759},[756,1166,1006],{"class":773},[756,1168,1169,1172,1174,1177,1179,1182,1185],{"class":758,"line":766},[756,1170,1171],{"class":773},"  \"",[756,1173,1135],{"class":822},[756,1175,1176],{"class":773},"\"",[756,1178,795],{"class":773},[756,1180,1181],{"class":773}," [",[756,1183,1184],{"class":769},"...",[756,1186,1187],{"class":773},"],\n",[756,1189,1190,1192,1195,1197,1199],{"class":758,"line":780},[756,1191,1171],{"class":773},[756,1193,1194],{"class":822},"pagination",[756,1196,1176],{"class":773},[756,1198,795],{"class":773},[756,1200,891],{"class":773},[756,1202,1203,1206,1210,1212,1214,1218],{"class":758,"line":864},[756,1204,1205],{"class":773},"    \"",[756,1207,1209],{"class":1208},"sBMFI","total",[756,1211,1176],{"class":773},[756,1213,795],{"class":773},[756,1215,1217],{"class":1216},"sbssI"," 45",[756,1219,1220],{"class":773},",\n",[756,1222,1223,1225,1228,1230,1232,1235],{"class":758,"line":871},[756,1224,1205],{"class":773},[756,1226,1227],{"class":1208},"page",[756,1229,1176],{"class":773},[756,1231,795],{"class":773},[756,1233,1234],{"class":1216}," 1",[756,1236,1220],{"class":773},[756,1238,1239,1241,1244,1246,1248,1251],{"class":758,"line":894},[756,1240,1205],{"class":773},[756,1242,1243],{"class":1208},"limit",[756,1245,1176],{"class":773},[756,1247,795],{"class":773},[756,1249,1250],{"class":1216}," 20",[756,1252,1220],{"class":773},[756,1254,1255,1257,1260,1262,1264],{"class":758,"line":936},[756,1256,1205],{"class":773},[756,1258,1259],{"class":1208},"totalPages",[756,1261,1176],{"class":773},[756,1263,795],{"class":773},[756,1265,1266],{"class":1216}," 3\n",[756,1268,1269],{"class":758,"line":946},[756,1270,1046],{"class":773},[756,1272,1273],{"class":758,"line":963},[756,1274,1075],{"class":773},[567,1276,1277],{},"Access page data:",[732,1279,1281],{"className":808,"code":1280,"language":810,"meta":740,"style":740},"const { data, pagination } = await fetchPages()\n\ndata.forEach(page => {\n  console.log(page.slug) \u002F\u002F \"about-us\"\n  console.log(page.fields.title) \u002F\u002F \"About Us\"\n})\n\nif (pagination.page \u003C pagination.totalPages) {\n  console.log('More pages available')\n}\n",[618,1282,1283,1305,1309,1328,1351,1378,1384,1388,1414,1433],{"__ignoreMap":740},[756,1284,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303],{"class":758,"line":759},[756,1286,823],{"class":822},[756,1288,1094],{"class":773},[756,1290,1097],{"class":769},[756,1292,931],{"class":773},[756,1294,1102],{"class":769},[756,1296,922],{"class":773},[756,1298,903],{"class":773},[756,1300,906],{"class":874},[756,1302,885],{"class":884},[756,1304,1069],{"class":769},[756,1306,1307],{"class":758,"line":766},[756,1308,868],{"emptyLinePlaceholder":867},[756,1310,1311,1313,1315,1318,1320,1323,1326],{"class":758,"line":780},[756,1312,1135],{"class":769},[756,1314,639],{"class":773},[756,1316,1317],{"class":884},"forEach",[756,1319,913],{"class":769},[756,1321,1227],{"class":1322},"sHdIc",[756,1324,1325],{"class":822}," =>",[756,1327,891],{"class":773},[756,1329,1330,1333,1335,1337,1339,1341,1343,1346,1348],{"class":758,"line":864},[756,1331,1332],{"class":769},"  console",[756,1334,639],{"class":773},[756,1336,1123],{"class":884},[756,1338,913],{"class":912},[756,1340,1227],{"class":769},[756,1342,639],{"class":773},[756,1344,1345],{"class":769},"slug",[756,1347,1003],{"class":912},[756,1349,1350],{"class":762},"\u002F\u002F \"about-us\"\n",[756,1352,1353,1355,1357,1359,1361,1363,1365,1368,1370,1373,1375],{"class":758,"line":871},[756,1354,1332],{"class":769},[756,1356,639],{"class":773},[756,1358,1123],{"class":884},[756,1360,913],{"class":912},[756,1362,1227],{"class":769},[756,1364,639],{"class":773},[756,1366,1367],{"class":769},"fields",[756,1369,639],{"class":773},[756,1371,1372],{"class":769},"title",[756,1374,1003],{"class":912},[756,1376,1377],{"class":762},"\u002F\u002F \"About Us\"\n",[756,1379,1380,1382],{"class":758,"line":894},[756,1381,922],{"class":773},[756,1383,975],{"class":769},[756,1385,1386],{"class":758,"line":936},[756,1387,868],{"emptyLinePlaceholder":867},[756,1389,1390,1393,1396,1398,1401,1404,1407,1409,1412],{"class":758,"line":946},[756,1391,1392],{"class":874},"if",[756,1394,1395],{"class":769}," (pagination",[756,1397,639],{"class":773},[756,1399,1400],{"class":769},"page ",[756,1402,1403],{"class":773},"\u003C",[756,1405,1406],{"class":769}," pagination",[756,1408,639],{"class":773},[756,1410,1411],{"class":769},"totalPages) ",[756,1413,1006],{"class":773},[756,1415,1416,1418,1420,1422,1424,1426,1429,1431],{"class":758,"line":963},[756,1417,1332],{"class":769},[756,1419,639],{"class":773},[756,1421,1123],{"class":884},[756,1423,913],{"class":912},[756,1425,955],{"class":773},[756,1427,1428],{"class":777},"More pages available",[756,1430,955],{"class":773},[756,1432,975],{"class":912},[756,1434,1435],{"class":758,"line":969},[756,1436,1075],{"class":773},[692,1438],{},[575,1440,1442],{"id":1441},"common-patterns","Common Patterns",[671,1444,1446],{"id":1445},"fetching-page-list-with-pagination","Fetching Page List with Pagination",[567,1448,1449,1452],{},[571,1450,1451],{},"Goal",": Fetch all blog posts, 20 at a time",[732,1454,1456],{"className":808,"code":1455,"language":810,"meta":740,"style":740},"async function fetchBlogPosts(page = 1, limit = 20) {\n  const response = await fetch(\n    `${BASE_URL}\u002Fpages?pageType=blog-post&limit=${limit}&page=${page}`,\n    { headers: { 'X-API-Key': API_KEY } }\n  )\n\n  const { data, pagination } = await response.json()\n\n  return {\n    posts: data,\n    totalPages: pagination.totalPages,\n    hasNextPage: pagination.page \u003C pagination.totalPages\n  }\n}\n\n\u002F\u002F Usage\nconst page1 = await fetchBlogPosts(1) \u002F\u002F First 20 posts\nconst page2 = await fetchBlogPosts(2) \u002F\u002F Next 20 posts\n",[618,1457,1458,1489,1504,1533,1563,1568,1572,1598,1602,1608,1619,1634,1657,1661,1665,1669,1673,1696],{"__ignoreMap":740},[756,1459,1460,1463,1465,1468,1470,1472,1474,1476,1478,1481,1483,1485,1487],{"class":758,"line":759},[756,1461,1462],{"class":822},"async",[756,1464,881],{"class":822},[756,1466,1467],{"class":884}," fetchBlogPosts",[756,1469,913],{"class":773},[756,1471,1227],{"class":1322},[756,1473,903],{"class":773},[756,1475,1234],{"class":1216},[756,1477,931],{"class":773},[756,1479,1480],{"class":1322}," limit",[756,1482,903],{"class":773},[756,1484,1250],{"class":1216},[756,1486,684],{"class":773},[756,1488,891],{"class":773},[756,1490,1491,1493,1495,1497,1499,1501],{"class":758,"line":766},[756,1492,897],{"class":822},[756,1494,900],{"class":769},[756,1496,903],{"class":773},[756,1498,906],{"class":874},[756,1500,909],{"class":884},[756,1502,1503],{"class":912},"(\n",[756,1505,1506,1509,1511,1513,1516,1518,1520,1522,1525,1527,1529,1531],{"class":758,"line":780},[756,1507,1508],{"class":773},"    `${",[756,1510,919],{"class":769},[756,1512,922],{"class":773},[756,1514,1515],{"class":777},"\u002Fpages?pageType=blog-post&limit=",[756,1517,1028],{"class":773},[756,1519,1243],{"class":769},[756,1521,922],{"class":773},[756,1523,1524],{"class":777},"&page=",[756,1526,1028],{"class":773},[756,1528,1227],{"class":769},[756,1530,1038],{"class":773},[756,1532,1220],{"class":773},[756,1534,1535,1538,1541,1543,1545,1548,1550,1552,1554,1557,1560],{"class":758,"line":864},[756,1536,1537],{"class":773},"    {",[756,1539,1540],{"class":912}," headers",[756,1542,795],{"class":773},[756,1544,1094],{"class":773},[756,1546,1547],{"class":773}," '",[756,1549,952],{"class":912},[756,1551,955],{"class":773},[756,1553,795],{"class":773},[756,1555,1556],{"class":769}," API_KEY",[756,1558,1559],{"class":773}," }",[756,1561,1562],{"class":773}," }\n",[756,1564,1565],{"class":758,"line":871},[756,1566,1567],{"class":912},"  )\n",[756,1569,1570],{"class":758,"line":894},[756,1571,868],{"emptyLinePlaceholder":867},[756,1573,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596],{"class":758,"line":936},[756,1575,897],{"class":822},[756,1577,1094],{"class":773},[756,1579,1097],{"class":769},[756,1581,931],{"class":773},[756,1583,1406],{"class":769},[756,1585,1559],{"class":773},[756,1587,903],{"class":773},[756,1589,906],{"class":874},[756,1591,900],{"class":769},[756,1593,639],{"class":773},[756,1595,1066],{"class":884},[756,1597,1069],{"class":912},[756,1599,1600],{"class":758,"line":946},[756,1601,868],{"emptyLinePlaceholder":867},[756,1603,1604,1606],{"class":758,"line":963},[756,1605,1057],{"class":874},[756,1607,891],{"class":773},[756,1609,1610,1613,1615,1617],{"class":758,"line":969},[756,1611,1612],{"class":912},"    posts",[756,1614,795],{"class":773},[756,1616,1097],{"class":769},[756,1618,1220],{"class":773},[756,1620,1621,1624,1626,1628,1630,1632],{"class":758,"line":978},[756,1622,1623],{"class":912},"    totalPages",[756,1625,795],{"class":773},[756,1627,1406],{"class":769},[756,1629,639],{"class":773},[756,1631,1259],{"class":769},[756,1633,1220],{"class":773},[756,1635,1636,1639,1641,1643,1645,1647,1650,1652,1654],{"class":758,"line":983},[756,1637,1638],{"class":912},"    hasNextPage",[756,1640,795],{"class":773},[756,1642,1406],{"class":769},[756,1644,639],{"class":773},[756,1646,1227],{"class":769},[756,1648,1649],{"class":773}," \u003C",[756,1651,1406],{"class":769},[756,1653,639],{"class":773},[756,1655,1656],{"class":769},"totalPages\n",[756,1658,1659],{"class":758,"line":1009},[756,1660,1046],{"class":773},[756,1662,1663],{"class":758,"line":1043},[756,1664,1075],{"class":773},[756,1666,1667],{"class":758,"line":1049},[756,1668,868],{"emptyLinePlaceholder":867},[756,1670,1671],{"class":758,"line":1054},[756,1672,1086],{"class":762},[756,1674,1675,1677,1680,1682,1684,1686,1688,1691,1693],{"class":758,"line":1072},[756,1676,823],{"class":822},[756,1678,1679],{"class":769}," page1 ",[756,1681,774],{"class":773},[756,1683,906],{"class":874},[756,1685,1467],{"class":884},[756,1687,913],{"class":769},[756,1689,1690],{"class":1216},"1",[756,1692,1003],{"class":769},[756,1694,1695],{"class":762},"\u002F\u002F First 20 posts\n",[756,1697,1698,1700,1703,1705,1707,1709,1711,1714,1716],{"class":758,"line":1078},[756,1699,823],{"class":822},[756,1701,1702],{"class":769}," page2 ",[756,1704,774],{"class":773},[756,1706,906],{"class":874},[756,1708,1467],{"class":884},[756,1710,913],{"class":769},[756,1712,1713],{"class":1216},"2",[756,1715,1003],{"class":769},[756,1717,1718],{"class":762},"\u002F\u002F Next 20 posts\n",[671,1720,1722],{"id":1721},"fetching-single-page-by-slug","Fetching Single Page by Slug",[567,1724,1725,1727],{},[571,1726,1451],{},": Fetch the \"About Us\" page",[732,1729,1731],{"className":808,"code":1730,"language":810,"meta":740,"style":740},"async function fetchPageBySlug(slug) {\n  const response = await fetch(\n    `${BASE_URL}\u002Fpages\u002F${slug}`,\n    { headers: { 'X-API-Key': API_KEY } }\n  )\n\n  if (response.status === 404) {\n    return null \u002F\u002F Page not found\n  }\n\n  const { data, redirect } = await response.json()\n\n  return { page: data, redirect }\n}\n\n\u002F\u002F Usage\nconst result = await fetchPageBySlug('about-us')\n\nif (!result) {\n  console.log('Page not found')\n} else if (result.redirect) {\n  console.log(`Redirected from ${result.redirect.from} to ${result.redirect.to}`)\n}\n",[618,1732,1733,1750,1764,1783,1807,1811,1815,1837,1848,1852,1856,1883,1887,1906,1910,1914,1918,1942,1946,1959,1978,1998,2051],{"__ignoreMap":740},[756,1734,1735,1737,1739,1742,1744,1746,1748],{"class":758,"line":759},[756,1736,1462],{"class":822},[756,1738,881],{"class":822},[756,1740,1741],{"class":884}," fetchPageBySlug",[756,1743,913],{"class":773},[756,1745,1345],{"class":1322},[756,1747,684],{"class":773},[756,1749,891],{"class":773},[756,1751,1752,1754,1756,1758,1760,1762],{"class":758,"line":766},[756,1753,897],{"class":822},[756,1755,900],{"class":769},[756,1757,903],{"class":773},[756,1759,906],{"class":874},[756,1761,909],{"class":884},[756,1763,1503],{"class":912},[756,1765,1766,1768,1770,1772,1775,1777,1779,1781],{"class":758,"line":780},[756,1767,1508],{"class":773},[756,1769,919],{"class":769},[756,1771,922],{"class":773},[756,1773,1774],{"class":777},"\u002Fpages\u002F",[756,1776,1028],{"class":773},[756,1778,1345],{"class":769},[756,1780,1038],{"class":773},[756,1782,1220],{"class":773},[756,1784,1785,1787,1789,1791,1793,1795,1797,1799,1801,1803,1805],{"class":758,"line":864},[756,1786,1537],{"class":773},[756,1788,1540],{"class":912},[756,1790,795],{"class":773},[756,1792,1094],{"class":773},[756,1794,1547],{"class":773},[756,1796,952],{"class":912},[756,1798,955],{"class":773},[756,1800,795],{"class":773},[756,1802,1556],{"class":769},[756,1804,1559],{"class":773},[756,1806,1562],{"class":773},[756,1808,1809],{"class":758,"line":871},[756,1810,1567],{"class":912},[756,1812,1813],{"class":758,"line":894},[756,1814,868],{"emptyLinePlaceholder":867},[756,1816,1817,1819,1821,1823,1825,1827,1830,1833,1835],{"class":758,"line":936},[756,1818,986],{"class":874},[756,1820,989],{"class":912},[756,1822,995],{"class":769},[756,1824,639],{"class":773},[756,1826,1035],{"class":769},[756,1828,1829],{"class":773}," ===",[756,1831,1832],{"class":1216}," 404",[756,1834,1003],{"class":912},[756,1836,1006],{"class":773},[756,1838,1839,1842,1845],{"class":758,"line":946},[756,1840,1841],{"class":874},"    return",[756,1843,1844],{"class":773}," null",[756,1846,1847],{"class":762}," \u002F\u002F Page not found\n",[756,1849,1850],{"class":758,"line":963},[756,1851,1046],{"class":773},[756,1853,1854],{"class":758,"line":969},[756,1855,868],{"emptyLinePlaceholder":867},[756,1857,1858,1860,1862,1864,1866,1869,1871,1873,1875,1877,1879,1881],{"class":758,"line":978},[756,1859,897],{"class":822},[756,1861,1094],{"class":773},[756,1863,1097],{"class":769},[756,1865,931],{"class":773},[756,1867,1868],{"class":769}," redirect",[756,1870,1559],{"class":773},[756,1872,903],{"class":773},[756,1874,906],{"class":874},[756,1876,900],{"class":769},[756,1878,639],{"class":773},[756,1880,1066],{"class":884},[756,1882,1069],{"class":912},[756,1884,1885],{"class":758,"line":983},[756,1886,868],{"emptyLinePlaceholder":867},[756,1888,1889,1891,1893,1896,1898,1900,1902,1904],{"class":758,"line":1009},[756,1890,1057],{"class":874},[756,1892,1094],{"class":773},[756,1894,1895],{"class":912}," page",[756,1897,795],{"class":773},[756,1899,1097],{"class":769},[756,1901,931],{"class":773},[756,1903,1868],{"class":769},[756,1905,1562],{"class":773},[756,1907,1908],{"class":758,"line":1043},[756,1909,1075],{"class":773},[756,1911,1912],{"class":758,"line":1049},[756,1913,868],{"emptyLinePlaceholder":867},[756,1915,1916],{"class":758,"line":1054},[756,1917,1086],{"class":762},[756,1919,1920,1922,1925,1927,1929,1931,1933,1935,1938,1940],{"class":758,"line":1072},[756,1921,823],{"class":822},[756,1923,1924],{"class":769}," result ",[756,1926,774],{"class":773},[756,1928,906],{"class":874},[756,1930,1741],{"class":884},[756,1932,913],{"class":769},[756,1934,955],{"class":773},[756,1936,1937],{"class":777},"about-us",[756,1939,955],{"class":773},[756,1941,975],{"class":769},[756,1943,1944],{"class":758,"line":1078},[756,1945,868],{"emptyLinePlaceholder":867},[756,1947,1948,1950,1952,1954,1957],{"class":758,"line":1083},[756,1949,1392],{"class":874},[756,1951,989],{"class":769},[756,1953,992],{"class":773},[756,1955,1956],{"class":769},"result) ",[756,1958,1006],{"class":773},[756,1960,1961,1963,1965,1967,1969,1971,1974,1976],{"class":758,"line":1089},[756,1962,1332],{"class":769},[756,1964,639],{"class":773},[756,1966,1123],{"class":884},[756,1968,913],{"class":912},[756,1970,955],{"class":773},[756,1972,1973],{"class":777},"Page not found",[756,1975,955],{"class":773},[756,1977,975],{"class":912},[756,1979,1980,1982,1985,1988,1991,1993,1996],{"class":758,"line":1115},[756,1981,922],{"class":773},[756,1983,1984],{"class":874}," else",[756,1986,1987],{"class":874}," if",[756,1989,1990],{"class":769}," (result",[756,1992,639],{"class":773},[756,1994,1995],{"class":769},"redirect) ",[756,1997,1006],{"class":773},[756,1999,2001,2003,2005,2007,2009,2011,2014,2016,2019,2021,2024,2026,2029,2031,2034,2036,2038,2040,2042,2044,2047,2049],{"class":758,"line":2000},22,[756,2002,1332],{"class":769},[756,2004,639],{"class":773},[756,2006,1123],{"class":884},[756,2008,913],{"class":912},[756,2010,928],{"class":773},[756,2012,2013],{"class":777},"Redirected from ",[756,2015,1028],{"class":773},[756,2017,2018],{"class":769},"result",[756,2020,639],{"class":773},[756,2022,2023],{"class":769},"redirect",[756,2025,639],{"class":773},[756,2027,2028],{"class":769},"from",[756,2030,922],{"class":773},[756,2032,2033],{"class":777}," to ",[756,2035,1028],{"class":773},[756,2037,2018],{"class":769},[756,2039,639],{"class":773},[756,2041,2023],{"class":769},[756,2043,639],{"class":773},[756,2045,2046],{"class":769},"to",[756,2048,1038],{"class":773},[756,2050,975],{"class":912},[756,2052,2054],{"class":758,"line":2053},23,[756,2055,1075],{"class":773},[671,2057,2059],{"id":2058},"handling-slug-redirects","Handling Slug Redirects",[567,2061,2062],{},"When a page slug changes, the API returns the page with a redirect object:",[732,2064,2066],{"className":1159,"code":2065,"language":1066,"meta":740,"style":740},"{\n  \"data\": {...},\n  \"redirect\": {\n    \"from\": \"about\",\n    \"to\": \"about-us\",\n    \"permanent\": true\n  }\n}\n",[618,2067,2068,2072,2089,2101,2121,2139,2153,2157],{"__ignoreMap":740},[756,2069,2070],{"class":758,"line":759},[756,2071,1006],{"class":773},[756,2073,2074,2076,2078,2080,2082,2084,2086],{"class":758,"line":766},[756,2075,1171],{"class":773},[756,2077,1135],{"class":822},[756,2079,1176],{"class":773},[756,2081,795],{"class":773},[756,2083,1094],{"class":773},[756,2085,1184],{"class":769},[756,2087,2088],{"class":773},"},\n",[756,2090,2091,2093,2095,2097,2099],{"class":758,"line":780},[756,2092,1171],{"class":773},[756,2094,2023],{"class":822},[756,2096,1176],{"class":773},[756,2098,795],{"class":773},[756,2100,891],{"class":773},[756,2102,2103,2105,2107,2109,2111,2114,2117,2119],{"class":758,"line":864},[756,2104,1205],{"class":773},[756,2106,2028],{"class":1208},[756,2108,1176],{"class":773},[756,2110,795],{"class":773},[756,2112,2113],{"class":773}," \"",[756,2115,2116],{"class":777},"about",[756,2118,1176],{"class":773},[756,2120,1220],{"class":773},[756,2122,2123,2125,2127,2129,2131,2133,2135,2137],{"class":758,"line":871},[756,2124,1205],{"class":773},[756,2126,2046],{"class":1208},[756,2128,1176],{"class":773},[756,2130,795],{"class":773},[756,2132,2113],{"class":773},[756,2134,1937],{"class":777},[756,2136,1176],{"class":773},[756,2138,1220],{"class":773},[756,2140,2141,2143,2146,2148,2150],{"class":758,"line":894},[756,2142,1205],{"class":773},[756,2144,2145],{"class":1208},"permanent",[756,2147,1176],{"class":773},[756,2149,795],{"class":773},[756,2151,2152],{"class":773}," true\n",[756,2154,2155],{"class":758,"line":936},[756,2156,1046],{"class":773},[756,2158,2159],{"class":758,"line":946},[756,2160,1075],{"class":773},[567,2162,2163,2166],{},[571,2164,2165],{},"SEO Best Practice",": Return 301 redirect to update URLs",[732,2168,2170],{"className":808,"code":2169,"language":810,"meta":740,"style":740},"\u002F\u002F Next.js\nexport async function getStaticProps({ params }) {\n  const result = await fetchPageBySlug(params.slug)\n\n  if (!result) {\n    return { notFound: true }\n  }\n\n  \u002F\u002F Handle redirect (301 for SEO)\n  if (result.redirect) {\n    return {\n      redirect: {\n        destination: `\u002F${result.redirect.to}`,\n        permanent: true\n      }\n    }\n  }\n\n  return {\n    props: { page: result.page },\n    revalidate: 60\n  }\n}\n",[618,2171,2172,2177,2199,2223,2227,2241,2258,2262,2266,2271,2287,2293,2302,2331,2340,2345,2349,2353,2357,2363,2385,2395,2399],{"__ignoreMap":740},[756,2173,2174],{"class":758,"line":759},[756,2175,2176],{"class":762},"\u002F\u002F Next.js\n",[756,2178,2179,2181,2183,2185,2188,2191,2194,2197],{"class":758,"line":766},[756,2180,875],{"class":874},[756,2182,878],{"class":822},[756,2184,881],{"class":822},[756,2186,2187],{"class":884}," getStaticProps",[756,2189,2190],{"class":773},"({",[756,2192,2193],{"class":1322}," params",[756,2195,2196],{"class":773}," })",[756,2198,891],{"class":773},[756,2200,2201,2203,2206,2208,2210,2212,2214,2217,2219,2221],{"class":758,"line":780},[756,2202,897],{"class":822},[756,2204,2205],{"class":769}," result",[756,2207,903],{"class":773},[756,2209,906],{"class":874},[756,2211,1741],{"class":884},[756,2213,913],{"class":912},[756,2215,2216],{"class":769},"params",[756,2218,639],{"class":773},[756,2220,1345],{"class":769},[756,2222,975],{"class":912},[756,2224,2225],{"class":758,"line":864},[756,2226,868],{"emptyLinePlaceholder":867},[756,2228,2229,2231,2233,2235,2237,2239],{"class":758,"line":871},[756,2230,986],{"class":874},[756,2232,989],{"class":912},[756,2234,992],{"class":773},[756,2236,2018],{"class":769},[756,2238,1003],{"class":912},[756,2240,1006],{"class":773},[756,2242,2243,2245,2247,2250,2252,2256],{"class":758,"line":894},[756,2244,1841],{"class":874},[756,2246,1094],{"class":773},[756,2248,2249],{"class":912}," notFound",[756,2251,795],{"class":773},[756,2253,2255],{"class":2254},"sfNiH"," true",[756,2257,1562],{"class":773},[756,2259,2260],{"class":758,"line":936},[756,2261,1046],{"class":773},[756,2263,2264],{"class":758,"line":946},[756,2265,868],{"emptyLinePlaceholder":867},[756,2267,2268],{"class":758,"line":963},[756,2269,2270],{"class":762},"  \u002F\u002F Handle redirect (301 for SEO)\n",[756,2272,2273,2275,2277,2279,2281,2283,2285],{"class":758,"line":969},[756,2274,986],{"class":874},[756,2276,989],{"class":912},[756,2278,2018],{"class":769},[756,2280,639],{"class":773},[756,2282,2023],{"class":769},[756,2284,1003],{"class":912},[756,2286,1006],{"class":773},[756,2288,2289,2291],{"class":758,"line":978},[756,2290,1841],{"class":874},[756,2292,891],{"class":773},[756,2294,2295,2298,2300],{"class":758,"line":983},[756,2296,2297],{"class":912},"      redirect",[756,2299,795],{"class":773},[756,2301,891],{"class":773},[756,2303,2304,2307,2309,2312,2315,2317,2319,2321,2323,2325,2327,2329],{"class":758,"line":1009},[756,2305,2306],{"class":912},"        destination",[756,2308,795],{"class":773},[756,2310,2311],{"class":773}," `",[756,2313,2314],{"class":777},"\u002F",[756,2316,1028],{"class":773},[756,2318,2018],{"class":769},[756,2320,639],{"class":773},[756,2322,2023],{"class":769},[756,2324,639],{"class":773},[756,2326,2046],{"class":769},[756,2328,1038],{"class":773},[756,2330,1220],{"class":773},[756,2332,2333,2336,2338],{"class":758,"line":1043},[756,2334,2335],{"class":912},"        permanent",[756,2337,795],{"class":773},[756,2339,2152],{"class":2254},[756,2341,2342],{"class":758,"line":1049},[756,2343,2344],{"class":773},"      }\n",[756,2346,2347],{"class":758,"line":1054},[756,2348,966],{"class":773},[756,2350,2351],{"class":758,"line":1072},[756,2352,1046],{"class":773},[756,2354,2355],{"class":758,"line":1078},[756,2356,868],{"emptyLinePlaceholder":867},[756,2358,2359,2361],{"class":758,"line":1083},[756,2360,1057],{"class":874},[756,2362,891],{"class":773},[756,2364,2365,2368,2370,2372,2374,2376,2378,2380,2382],{"class":758,"line":1089},[756,2366,2367],{"class":912},"    props",[756,2369,795],{"class":773},[756,2371,1094],{"class":773},[756,2373,1895],{"class":912},[756,2375,795],{"class":773},[756,2377,2205],{"class":769},[756,2379,639],{"class":773},[756,2381,1227],{"class":769},[756,2383,2384],{"class":773}," },\n",[756,2386,2387,2390,2392],{"class":758,"line":1115},[756,2388,2389],{"class":912},"    revalidate",[756,2391,795],{"class":773},[756,2393,2394],{"class":1216}," 60\n",[756,2396,2397],{"class":758,"line":2000},[756,2398,1046],{"class":773},[756,2400,2401],{"class":758,"line":2053},[756,2402,1075],{"class":773},[671,2404,2406],{"id":2405},"using-field-selection-for-performance","Using Field Selection for Performance",[567,2408,2409,2412],{},[571,2410,2411],{},"Problem",": Fetching full page content when you only need title and excerpt",[732,2414,2416],{"className":808,"code":2415,"language":810,"meta":740,"style":740},"\u002F\u002F Bad: Returns all fields (~15 KB per page)\nconst pages = await fetch(`${BASE_URL}\u002Fpages`)\n\n\u002F\u002F Good: Returns only title and excerpt (~2 KB per page)\nconst pages = await fetch(\n  `${BASE_URL}\u002Fpages?fields=title,excerpt`\n)\n",[618,2417,2418,2423,2450,2454,2459,2473,2488],{"__ignoreMap":740},[756,2419,2420],{"class":758,"line":759},[756,2421,2422],{"class":762},"\u002F\u002F Bad: Returns all fields (~15 KB per page)\n",[756,2424,2425,2427,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448],{"class":758,"line":766},[756,2426,823],{"class":822},[756,2428,2429],{"class":769}," pages ",[756,2431,774],{"class":773},[756,2433,906],{"class":874},[756,2435,909],{"class":884},[756,2437,913],{"class":769},[756,2439,916],{"class":773},[756,2441,919],{"class":769},[756,2443,922],{"class":773},[756,2445,925],{"class":777},[756,2447,928],{"class":773},[756,2449,975],{"class":769},[756,2451,2452],{"class":758,"line":780},[756,2453,868],{"emptyLinePlaceholder":867},[756,2455,2456],{"class":758,"line":864},[756,2457,2458],{"class":762},"\u002F\u002F Good: Returns only title and excerpt (~2 KB per page)\n",[756,2460,2461,2463,2465,2467,2469,2471],{"class":758,"line":871},[756,2462,823],{"class":822},[756,2464,2429],{"class":769},[756,2466,774],{"class":773},[756,2468,906],{"class":874},[756,2470,909],{"class":884},[756,2472,1503],{"class":769},[756,2474,2475,2478,2480,2482,2485],{"class":758,"line":894},[756,2476,2477],{"class":773},"  `${",[756,2479,919],{"class":769},[756,2481,922],{"class":773},[756,2483,2484],{"class":777},"\u002Fpages?fields=title,excerpt",[756,2486,2487],{"class":773},"`\n",[756,2489,2490],{"class":758,"line":936},[756,2491,975],{"class":769},[567,2493,2494],{},[571,2495,2496],{},"Use Cases:",[2498,2499,2500,2516],"table",{},[2501,2502,2503],"thead",{},[2504,2505,2506,2510,2513],"tr",{},[2507,2508,2509],"th",{},"View",[2507,2511,2512],{},"Fields",[2507,2514,2515],{},"Payload Size",[2517,2518,2519,2533,2546,2559],"tbody",{},[2504,2520,2521,2525,2530],{},[2522,2523,2524],"td",{},"Card grid",[2522,2526,2527],{},[618,2528,2529],{},"title,excerpt,image",[2522,2531,2532],{},"~3 KB",[2504,2534,2535,2538,2543],{},[2522,2536,2537],{},"Navigation menu",[2522,2539,2540],{},[618,2541,2542],{},"title,slug",[2522,2544,2545],{},"~1 KB",[2504,2547,2548,2551,2556],{},[2522,2549,2550],{},"Search results",[2522,2552,2553],{},[618,2554,2555],{},"title,excerpt,publishDate",[2522,2557,2558],{},"~2 KB",[2504,2560,2561,2564,2567],{},[2522,2562,2563],{},"Full page",[2522,2565,2566],{},"(omit fields param)",[2522,2568,2569],{},"~15 KB",[567,2571,2572],{},[571,2573,2574],{},"Example: Blog post cards",[732,2576,2578],{"className":808,"code":2577,"language":810,"meta":740,"style":740},"async function fetchBlogPostCards() {\n  const response = await fetch(\n    `${BASE_URL}\u002Fpages?pageType=blog-post&fields=title,excerpt,coverImage,publishDate`,\n    { headers: { 'X-API-Key': API_KEY } }\n  )\n\n  return await response.json()\n}\n\n\u002F\u002F Result: Only requested fields in response\n{\n  \"data\": [{\n    \"id\": \"page_123\",\n    \"slug\": \"hello-world\",\n    \"type\": \"blog-post\",\n    \"fields\": {\n      \"title\": \"Hello World\",\n      \"excerpt\": \"My first post\",\n      \"coverImage\": \"media_123\",\n      \"publishDate\": \"2025-12-15\"\n    }\n  }]\n}\n",[618,2579,2580,2593,2607,2622,2646,2650,2654,2668,2672,2676,2681,2685,2698,2718,2737,2757,2769,2789,2809,2829,2848,2852,2859],{"__ignoreMap":740},[756,2581,2582,2584,2586,2589,2591],{"class":758,"line":759},[756,2583,1462],{"class":822},[756,2585,881],{"class":822},[756,2587,2588],{"class":884}," fetchBlogPostCards",[756,2590,888],{"class":773},[756,2592,891],{"class":773},[756,2594,2595,2597,2599,2601,2603,2605],{"class":758,"line":766},[756,2596,897],{"class":822},[756,2598,900],{"class":769},[756,2600,903],{"class":773},[756,2602,906],{"class":874},[756,2604,909],{"class":884},[756,2606,1503],{"class":912},[756,2608,2609,2611,2613,2615,2618,2620],{"class":758,"line":780},[756,2610,1508],{"class":773},[756,2612,919],{"class":769},[756,2614,922],{"class":773},[756,2616,2617],{"class":777},"\u002Fpages?pageType=blog-post&fields=title,excerpt,coverImage,publishDate",[756,2619,928],{"class":773},[756,2621,1220],{"class":773},[756,2623,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644],{"class":758,"line":864},[756,2625,1537],{"class":773},[756,2627,1540],{"class":912},[756,2629,795],{"class":773},[756,2631,1094],{"class":773},[756,2633,1547],{"class":773},[756,2635,952],{"class":912},[756,2637,955],{"class":773},[756,2639,795],{"class":773},[756,2641,1556],{"class":769},[756,2643,1559],{"class":773},[756,2645,1562],{"class":773},[756,2647,2648],{"class":758,"line":871},[756,2649,1567],{"class":912},[756,2651,2652],{"class":758,"line":894},[756,2653,868],{"emptyLinePlaceholder":867},[756,2655,2656,2658,2660,2662,2664,2666],{"class":758,"line":936},[756,2657,1057],{"class":874},[756,2659,906],{"class":874},[756,2661,900],{"class":769},[756,2663,639],{"class":773},[756,2665,1066],{"class":884},[756,2667,1069],{"class":912},[756,2669,2670],{"class":758,"line":946},[756,2671,1075],{"class":773},[756,2673,2674],{"class":758,"line":963},[756,2675,868],{"emptyLinePlaceholder":867},[756,2677,2678],{"class":758,"line":969},[756,2679,2680],{"class":762},"\u002F\u002F Result: Only requested fields in response\n",[756,2682,2683],{"class":758,"line":978},[756,2684,1006],{"class":773},[756,2686,2687,2689,2691,2693,2696],{"class":758,"line":983},[756,2688,1171],{"class":773},[756,2690,1135],{"class":777},[756,2692,1176],{"class":773},[756,2694,2695],{"class":912},": [",[756,2697,1006],{"class":773},[756,2699,2700,2702,2705,2707,2709,2711,2714,2716],{"class":758,"line":1009},[756,2701,1205],{"class":773},[756,2703,2704],{"class":912},"id",[756,2706,1176],{"class":773},[756,2708,795],{"class":773},[756,2710,2113],{"class":773},[756,2712,2713],{"class":777},"page_123",[756,2715,1176],{"class":773},[756,2717,1220],{"class":773},[756,2719,2720,2722,2724,2726,2728,2730,2733,2735],{"class":758,"line":1043},[756,2721,1205],{"class":773},[756,2723,1345],{"class":912},[756,2725,1176],{"class":773},[756,2727,795],{"class":773},[756,2729,2113],{"class":773},[756,2731,2732],{"class":777},"hello-world",[756,2734,1176],{"class":773},[756,2736,1220],{"class":773},[756,2738,2739,2741,2744,2746,2748,2750,2753,2755],{"class":758,"line":1049},[756,2740,1205],{"class":773},[756,2742,2743],{"class":912},"type",[756,2745,1176],{"class":773},[756,2747,795],{"class":773},[756,2749,2113],{"class":773},[756,2751,2752],{"class":777},"blog-post",[756,2754,1176],{"class":773},[756,2756,1220],{"class":773},[756,2758,2759,2761,2763,2765,2767],{"class":758,"line":1054},[756,2760,1205],{"class":773},[756,2762,1367],{"class":912},[756,2764,1176],{"class":773},[756,2766,795],{"class":773},[756,2768,891],{"class":773},[756,2770,2771,2774,2776,2778,2780,2782,2785,2787],{"class":758,"line":1072},[756,2772,2773],{"class":773},"      \"",[756,2775,1372],{"class":912},[756,2777,1176],{"class":773},[756,2779,795],{"class":773},[756,2781,2113],{"class":773},[756,2783,2784],{"class":777},"Hello World",[756,2786,1176],{"class":773},[756,2788,1220],{"class":773},[756,2790,2791,2793,2796,2798,2800,2802,2805,2807],{"class":758,"line":1078},[756,2792,2773],{"class":773},[756,2794,2795],{"class":912},"excerpt",[756,2797,1176],{"class":773},[756,2799,795],{"class":773},[756,2801,2113],{"class":773},[756,2803,2804],{"class":777},"My first post",[756,2806,1176],{"class":773},[756,2808,1220],{"class":773},[756,2810,2811,2813,2816,2818,2820,2822,2825,2827],{"class":758,"line":1083},[756,2812,2773],{"class":773},[756,2814,2815],{"class":912},"coverImage",[756,2817,1176],{"class":773},[756,2819,795],{"class":773},[756,2821,2113],{"class":773},[756,2823,2824],{"class":777},"media_123",[756,2826,1176],{"class":773},[756,2828,1220],{"class":773},[756,2830,2831,2833,2836,2838,2840,2842,2845],{"class":758,"line":1089},[756,2832,2773],{"class":773},[756,2834,2835],{"class":912},"publishDate",[756,2837,1176],{"class":773},[756,2839,795],{"class":773},[756,2841,2113],{"class":773},[756,2843,2844],{"class":777},"2025-12-15",[756,2846,2847],{"class":773},"\"\n",[756,2849,2850],{"class":758,"line":1115},[756,2851,966],{"class":773},[756,2853,2854,2856],{"class":758,"line":2000},[756,2855,972],{"class":773},[756,2857,2858],{"class":912},"]\n",[756,2860,2861],{"class":758,"line":2053},[756,2862,1075],{"class":773},[671,2864,2866,2867],{"id":2865},"lighter-media-with-mediaurl","Lighter Media with ",[618,2868,2869],{},"?media=url",[567,2871,2872,2873,2876,2877,2876,2880,2876,2883,2876,2886,2889,2890,2892],{},"By default, media fields resolve to a full object (",[618,2874,2875],{},"_url",", ",[618,2878,2879],{},"_mimeType",[618,2881,2882],{},"_width",[618,2884,2885],{},"_height",[618,2887,2888],{},"_altText","). If your frontend only needs the image URL, add ",[618,2891,2869],{}," to get the URL string instead — a smaller payload:",[732,2894,2896],{"className":808,"code":2895,"language":810,"meta":740,"style":740},"\u002F\u002F Default: media as objects\nawait fetch(`${BASE_URL}\u002Fpages\u002Fhello-world`)\n\u002F\u002F → fields.hero.icon = { \"_url\": \"https:\u002F\u002F...\u002Fabc.webp\", \"_width\": 112, ... }\n\n\u002F\u002F Lighter: media as URL strings\nawait fetch(`${BASE_URL}\u002Fpages\u002Fhello-world?media=url`)\n\u002F\u002F → fields.hero.icon = \"https:\u002F\u002F...\u002Fabc.webp\"\n",[618,2897,2898,2903,2925,2930,2934,2939,2960],{"__ignoreMap":740},[756,2899,2900],{"class":758,"line":759},[756,2901,2902],{"class":762},"\u002F\u002F Default: media as objects\n",[756,2904,2905,2908,2910,2912,2914,2916,2918,2921,2923],{"class":758,"line":766},[756,2906,2907],{"class":874},"await",[756,2909,909],{"class":884},[756,2911,913],{"class":769},[756,2913,916],{"class":773},[756,2915,919],{"class":769},[756,2917,922],{"class":773},[756,2919,2920],{"class":777},"\u002Fpages\u002Fhello-world",[756,2922,928],{"class":773},[756,2924,975],{"class":769},[756,2926,2927],{"class":758,"line":780},[756,2928,2929],{"class":762},"\u002F\u002F → fields.hero.icon = { \"_url\": \"https:\u002F\u002F...\u002Fabc.webp\", \"_width\": 112, ... }\n",[756,2931,2932],{"class":758,"line":864},[756,2933,868],{"emptyLinePlaceholder":867},[756,2935,2936],{"class":758,"line":871},[756,2937,2938],{"class":762},"\u002F\u002F Lighter: media as URL strings\n",[756,2940,2941,2943,2945,2947,2949,2951,2953,2956,2958],{"class":758,"line":894},[756,2942,2907],{"class":874},[756,2944,909],{"class":884},[756,2946,913],{"class":769},[756,2948,916],{"class":773},[756,2950,919],{"class":769},[756,2952,922],{"class":773},[756,2954,2955],{"class":777},"\u002Fpages\u002Fhello-world?media=url",[756,2957,928],{"class":773},[756,2959,975],{"class":769},[756,2961,2962],{"class":758,"line":936},[756,2963,2964],{"class":762},"\u002F\u002F → fields.hero.icon = \"https:\u002F\u002F...\u002Fabc.webp\"\n",[567,2966,2967,2968,2971,2972,2975,2976,639],{},"Keep the default ",[618,2969,2970],{},"object"," mode when you need image dimensions (responsive ",[618,2973,2974],{},"srcset",", avoiding layout shift) or alt text (accessibility). Applies to pages, collections, and blog ",[618,2977,2978],{},"featuredImage",[671,2980,2982],{"id":2981},"implementing-client-side-caching","Implementing Client-Side Caching",[567,2984,2985,2987],{},[571,2986,1451],{},": Avoid redundant API calls for the same data",[732,2989,2991],{"className":808,"code":2990,"language":810,"meta":740,"style":740},"class CachedCMSClient {\n  constructor(apiKey, cacheTTL = 60000) {\n    this.apiKey = apiKey\n    this.cacheTTL = cacheTTL\n    this.cache = new Map()\n  }\n\n  async fetch(endpoint) {\n    const cached = this.cache.get(endpoint)\n\n    \u002F\u002F Return cached if fresh\n    if (cached && Date.now() - cached.timestamp \u003C this.cacheTTL) {\n      console.log('Cache hit:', endpoint)\n      return cached.data\n    }\n\n    \u002F\u002F Fetch fresh data\n    console.log('Cache miss:', endpoint)\n    const response = await fetch(`${BASE_URL}${endpoint}`, {\n      headers: { 'X-API-Key': this.apiKey }\n    })\n\n    const data = await response.json()\n\n    \u002F\u002F Store in cache\n    this.cache.set(endpoint, {\n      data,\n      timestamp: Date.now()\n    })\n\n    return data\n  }\n\n  clearCache() {\n    this.cache.clear()\n  }\n}\n\n\u002F\u002F Usage\nconst client = new CachedCMSClient(API_KEY, 60000) \u002F\u002F 60s TTL\n\nconst pages1 = await client.fetch('\u002Fpages') \u002F\u002F API call\nconst pages2 = await client.fetch('\u002Fpages') \u002F\u002F Cached (instant)\n",[618,2992,2993,3003,3027,3039,3051,3067,3071,3075,3091,3117,3121,3126,3170,3195,3207,3211,3215,3220,3244,3273,3296,3303,3307,3325,3330,3336,3356,3364,3380,3387,3392,3400,3405,3410,3420,3434,3439,3444,3449,3454,3480,3485,3518],{"__ignoreMap":740},[756,2994,2995,2998,3001],{"class":758,"line":759},[756,2996,2997],{"class":822},"class",[756,2999,3000],{"class":1208}," CachedCMSClient",[756,3002,891],{"class":773},[756,3004,3005,3008,3010,3013,3015,3018,3020,3023,3025],{"class":758,"line":766},[756,3006,3007],{"class":822},"  constructor",[756,3009,913],{"class":773},[756,3011,3012],{"class":1322},"apiKey",[756,3014,931],{"class":773},[756,3016,3017],{"class":1322}," cacheTTL",[756,3019,903],{"class":773},[756,3021,3022],{"class":1216}," 60000",[756,3024,684],{"class":773},[756,3026,891],{"class":773},[756,3028,3029,3032,3034,3036],{"class":758,"line":780},[756,3030,3031],{"class":773},"    this.",[756,3033,3012],{"class":769},[756,3035,903],{"class":773},[756,3037,3038],{"class":769}," apiKey\n",[756,3040,3041,3043,3046,3048],{"class":758,"line":864},[756,3042,3031],{"class":773},[756,3044,3045],{"class":769},"cacheTTL",[756,3047,903],{"class":773},[756,3049,3050],{"class":769}," cacheTTL\n",[756,3052,3053,3055,3058,3060,3062,3065],{"class":758,"line":871},[756,3054,3031],{"class":773},[756,3056,3057],{"class":769},"cache",[756,3059,903],{"class":773},[756,3061,1015],{"class":773},[756,3063,3064],{"class":884}," Map",[756,3066,1069],{"class":912},[756,3068,3069],{"class":758,"line":894},[756,3070,1046],{"class":773},[756,3072,3073],{"class":758,"line":936},[756,3074,868],{"emptyLinePlaceholder":867},[756,3076,3077,3080,3082,3084,3087,3089],{"class":758,"line":946},[756,3078,3079],{"class":822},"  async",[756,3081,909],{"class":912},[756,3083,913],{"class":773},[756,3085,3086],{"class":1322},"endpoint",[756,3088,684],{"class":773},[756,3090,891],{"class":773},[756,3092,3093,3096,3099,3101,3104,3106,3108,3111,3113,3115],{"class":758,"line":963},[756,3094,3095],{"class":822},"    const",[756,3097,3098],{"class":769}," cached",[756,3100,903],{"class":773},[756,3102,3103],{"class":773}," this.",[756,3105,3057],{"class":769},[756,3107,639],{"class":773},[756,3109,3110],{"class":884},"get",[756,3112,913],{"class":912},[756,3114,3086],{"class":769},[756,3116,975],{"class":912},[756,3118,3119],{"class":758,"line":969},[756,3120,868],{"emptyLinePlaceholder":867},[756,3122,3123],{"class":758,"line":978},[756,3124,3125],{"class":762},"    \u002F\u002F Return cached if fresh\n",[756,3127,3128,3131,3133,3136,3139,3142,3144,3147,3150,3153,3155,3157,3160,3162,3164,3166,3168],{"class":758,"line":983},[756,3129,3130],{"class":874},"    if",[756,3132,989],{"class":912},[756,3134,3135],{"class":769},"cached",[756,3137,3138],{"class":773}," &&",[756,3140,3141],{"class":769}," Date",[756,3143,639],{"class":773},[756,3145,3146],{"class":884},"now",[756,3148,3149],{"class":912},"() ",[756,3151,3152],{"class":773},"-",[756,3154,3098],{"class":769},[756,3156,639],{"class":773},[756,3158,3159],{"class":769},"timestamp",[756,3161,1649],{"class":773},[756,3163,3103],{"class":773},[756,3165,3045],{"class":769},[756,3167,1003],{"class":912},[756,3169,1006],{"class":773},[756,3171,3172,3175,3177,3179,3181,3183,3186,3188,3190,3193],{"class":758,"line":1009},[756,3173,3174],{"class":769},"      console",[756,3176,639],{"class":773},[756,3178,1123],{"class":884},[756,3180,913],{"class":912},[756,3182,955],{"class":773},[756,3184,3185],{"class":777},"Cache hit:",[756,3187,955],{"class":773},[756,3189,931],{"class":773},[756,3191,3192],{"class":769}," endpoint",[756,3194,975],{"class":912},[756,3196,3197,3200,3202,3204],{"class":758,"line":1043},[756,3198,3199],{"class":874},"      return",[756,3201,3098],{"class":769},[756,3203,639],{"class":773},[756,3205,3206],{"class":769},"data\n",[756,3208,3209],{"class":758,"line":1049},[756,3210,966],{"class":773},[756,3212,3213],{"class":758,"line":1054},[756,3214,868],{"emptyLinePlaceholder":867},[756,3216,3217],{"class":758,"line":1072},[756,3218,3219],{"class":762},"    \u002F\u002F Fetch fresh data\n",[756,3221,3222,3225,3227,3229,3231,3233,3236,3238,3240,3242],{"class":758,"line":1078},[756,3223,3224],{"class":769},"    console",[756,3226,639],{"class":773},[756,3228,1123],{"class":884},[756,3230,913],{"class":912},[756,3232,955],{"class":773},[756,3234,3235],{"class":777},"Cache miss:",[756,3237,955],{"class":773},[756,3239,931],{"class":773},[756,3241,3192],{"class":769},[756,3243,975],{"class":912},[756,3245,3246,3248,3250,3252,3254,3256,3258,3260,3262,3265,3267,3269,3271],{"class":758,"line":1083},[756,3247,3095],{"class":822},[756,3249,900],{"class":769},[756,3251,903],{"class":773},[756,3253,906],{"class":874},[756,3255,909],{"class":884},[756,3257,913],{"class":912},[756,3259,916],{"class":773},[756,3261,919],{"class":769},[756,3263,3264],{"class":773},"}${",[756,3266,3086],{"class":769},[756,3268,1038],{"class":773},[756,3270,931],{"class":773},[756,3272,891],{"class":773},[756,3274,3275,3278,3280,3282,3284,3286,3288,3290,3292,3294],{"class":758,"line":1089},[756,3276,3277],{"class":912},"      headers",[756,3279,795],{"class":773},[756,3281,1094],{"class":773},[756,3283,1547],{"class":773},[756,3285,952],{"class":912},[756,3287,955],{"class":773},[756,3289,795],{"class":773},[756,3291,3103],{"class":773},[756,3293,3012],{"class":769},[756,3295,1562],{"class":773},[756,3297,3298,3301],{"class":758,"line":1115},[756,3299,3300],{"class":773},"    }",[756,3302,975],{"class":912},[756,3304,3305],{"class":758,"line":2000},[756,3306,868],{"emptyLinePlaceholder":867},[756,3308,3309,3311,3313,3315,3317,3319,3321,3323],{"class":758,"line":2053},[756,3310,3095],{"class":822},[756,3312,1097],{"class":769},[756,3314,903],{"class":773},[756,3316,906],{"class":874},[756,3318,900],{"class":769},[756,3320,639],{"class":773},[756,3322,1066],{"class":884},[756,3324,1069],{"class":912},[756,3326,3328],{"class":758,"line":3327},24,[756,3329,868],{"emptyLinePlaceholder":867},[756,3331,3333],{"class":758,"line":3332},25,[756,3334,3335],{"class":762},"    \u002F\u002F Store in cache\n",[756,3337,3339,3341,3343,3345,3348,3350,3352,3354],{"class":758,"line":3338},26,[756,3340,3031],{"class":773},[756,3342,3057],{"class":769},[756,3344,639],{"class":773},[756,3346,3347],{"class":884},"set",[756,3349,913],{"class":912},[756,3351,3086],{"class":769},[756,3353,931],{"class":773},[756,3355,891],{"class":773},[756,3357,3359,3362],{"class":758,"line":3358},27,[756,3360,3361],{"class":769},"      data",[756,3363,1220],{"class":773},[756,3365,3367,3370,3372,3374,3376,3378],{"class":758,"line":3366},28,[756,3368,3369],{"class":912},"      timestamp",[756,3371,795],{"class":773},[756,3373,3141],{"class":769},[756,3375,639],{"class":773},[756,3377,3146],{"class":884},[756,3379,1069],{"class":912},[756,3381,3383,3385],{"class":758,"line":3382},29,[756,3384,3300],{"class":773},[756,3386,975],{"class":912},[756,3388,3390],{"class":758,"line":3389},30,[756,3391,868],{"emptyLinePlaceholder":867},[756,3393,3395,3397],{"class":758,"line":3394},31,[756,3396,1841],{"class":874},[756,3398,3399],{"class":769}," data\n",[756,3401,3403],{"class":758,"line":3402},32,[756,3404,1046],{"class":773},[756,3406,3408],{"class":758,"line":3407},33,[756,3409,868],{"emptyLinePlaceholder":867},[756,3411,3413,3416,3418],{"class":758,"line":3412},34,[756,3414,3415],{"class":912},"  clearCache",[756,3417,888],{"class":773},[756,3419,891],{"class":773},[756,3421,3423,3425,3427,3429,3432],{"class":758,"line":3422},35,[756,3424,3031],{"class":773},[756,3426,3057],{"class":769},[756,3428,639],{"class":773},[756,3430,3431],{"class":884},"clear",[756,3433,1069],{"class":912},[756,3435,3437],{"class":758,"line":3436},36,[756,3438,1046],{"class":773},[756,3440,3442],{"class":758,"line":3441},37,[756,3443,1075],{"class":773},[756,3445,3447],{"class":758,"line":3446},38,[756,3448,868],{"emptyLinePlaceholder":867},[756,3450,3452],{"class":758,"line":3451},39,[756,3453,1086],{"class":762},[756,3455,3457,3459,3462,3464,3466,3468,3471,3473,3475,3477],{"class":758,"line":3456},40,[756,3458,823],{"class":822},[756,3460,3461],{"class":769}," client ",[756,3463,774],{"class":773},[756,3465,1015],{"class":773},[756,3467,3000],{"class":884},[756,3469,3470],{"class":769},"(API_KEY",[756,3472,931],{"class":773},[756,3474,3022],{"class":1216},[756,3476,1003],{"class":769},[756,3478,3479],{"class":762},"\u002F\u002F 60s TTL\n",[756,3481,3483],{"class":758,"line":3482},41,[756,3484,868],{"emptyLinePlaceholder":867},[756,3486,3488,3490,3493,3495,3497,3500,3502,3505,3507,3509,3511,3513,3515],{"class":758,"line":3487},42,[756,3489,823],{"class":822},[756,3491,3492],{"class":769}," pages1 ",[756,3494,774],{"class":773},[756,3496,906],{"class":874},[756,3498,3499],{"class":769}," client",[756,3501,639],{"class":773},[756,3503,3504],{"class":884},"fetch",[756,3506,913],{"class":769},[756,3508,955],{"class":773},[756,3510,925],{"class":777},[756,3512,955],{"class":773},[756,3514,1003],{"class":769},[756,3516,3517],{"class":762},"\u002F\u002F API call\n",[756,3519,3521,3523,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546],{"class":758,"line":3520},43,[756,3522,823],{"class":822},[756,3524,3525],{"class":769}," pages2 ",[756,3527,774],{"class":773},[756,3529,906],{"class":874},[756,3531,3499],{"class":769},[756,3533,639],{"class":773},[756,3535,3504],{"class":884},[756,3537,913],{"class":769},[756,3539,955],{"class":773},[756,3541,925],{"class":777},[756,3543,955],{"class":773},[756,3545,1003],{"class":769},[756,3547,3548],{"class":762},"\u002F\u002F Cached (instant)\n",[692,3550],{},[575,3552,3554],{"id":3553},"framework-integration-examples","Framework Integration Examples",[671,3556,137],{"id":3557},"nextjs",[3559,3560,3562],"h4",{"id":3561},"static-site-generation-ssg","Static Site Generation (SSG)",[567,3564,3565],{},[571,3566,3567],{},"Fetch at build time:",[732,3569,3571],{"className":808,"code":3570,"language":810,"meta":740,"style":740},"\u002F\u002F pages\u002Fblog\u002F[slug].js\nexport async function getStaticPaths() {\n  const response = await fetch(`${BASE_URL}\u002Fpages?pageType=blog-post`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  const { data } = await response.json()\n\n  return {\n    paths: data.map(page => ({ params: { slug: page.slug } })),\n    fallback: 'blocking'\n  }\n}\n\nexport async function getStaticProps({ params }) {\n  const response = await fetch(`${BASE_URL}\u002Fpages\u002F${params.slug}`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  if (response.status === 404) {\n    return { notFound: true }\n  }\n\n  const { data, redirect } = await response.json()\n\n  if (redirect) {\n    return {\n      redirect: {\n        destination: `\u002F${redirect.to}`,\n        permanent: true\n      }\n    }\n  }\n\n  return {\n    props: { page: data },\n    revalidate: 60 \u002F\u002F ISR: Revalidate every 60 seconds\n  }\n}\n\nexport default function BlogPost({ page }) {\n  return (\n    \u003Carticle>\n      \u003Ch1>{page.fields.title}\u003C\u002Fh1>\n      \u003Cdiv dangerouslySetInnerHTML={{ __html: page.fields.body }} \u002F>\n    \u003C\u002Farticle>\n  )\n}\n",[618,3572,3573,3578,3593,3622,3650,3656,3660,3682,3686,3692,3743,3758,3762,3766,3770,3788,3824,3852,3858,3862,3882,3896,3900,3904,3930,3934,3946,3952,3960,3982,3990,3994,3998,4002,4006,4012,4028,4040,4044,4048,4052,4072,4079,4090,4119,4152,4162,4167],{"__ignoreMap":740},[756,3574,3575],{"class":758,"line":759},[756,3576,3577],{"class":762},"\u002F\u002F pages\u002Fblog\u002F[slug].js\n",[756,3579,3580,3582,3584,3586,3589,3591],{"class":758,"line":766},[756,3581,875],{"class":874},[756,3583,878],{"class":822},[756,3585,881],{"class":822},[756,3587,3588],{"class":884}," getStaticPaths",[756,3590,888],{"class":773},[756,3592,891],{"class":773},[756,3594,3595,3597,3599,3601,3603,3605,3607,3609,3611,3613,3616,3618,3620],{"class":758,"line":780},[756,3596,897],{"class":822},[756,3598,900],{"class":769},[756,3600,903],{"class":773},[756,3602,906],{"class":874},[756,3604,909],{"class":884},[756,3606,913],{"class":912},[756,3608,916],{"class":773},[756,3610,919],{"class":769},[756,3612,922],{"class":773},[756,3614,3615],{"class":777},"\u002Fpages?pageType=blog-post",[756,3617,928],{"class":773},[756,3619,931],{"class":773},[756,3621,891],{"class":773},[756,3623,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648],{"class":758,"line":864},[756,3625,939],{"class":912},[756,3627,795],{"class":773},[756,3629,1094],{"class":773},[756,3631,1547],{"class":773},[756,3633,952],{"class":912},[756,3635,955],{"class":773},[756,3637,795],{"class":773},[756,3639,831],{"class":769},[756,3641,639],{"class":773},[756,3643,836],{"class":769},[756,3645,639],{"class":773},[756,3647,770],{"class":769},[756,3649,1562],{"class":773},[756,3651,3652,3654],{"class":758,"line":871},[756,3653,972],{"class":773},[756,3655,975],{"class":912},[756,3657,3658],{"class":758,"line":894},[756,3659,868],{"emptyLinePlaceholder":867},[756,3661,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680],{"class":758,"line":936},[756,3663,897],{"class":822},[756,3665,1094],{"class":773},[756,3667,1097],{"class":769},[756,3669,1559],{"class":773},[756,3671,903],{"class":773},[756,3673,906],{"class":874},[756,3675,900],{"class":769},[756,3677,639],{"class":773},[756,3679,1066],{"class":884},[756,3681,1069],{"class":912},[756,3683,3684],{"class":758,"line":946},[756,3685,868],{"emptyLinePlaceholder":867},[756,3687,3688,3690],{"class":758,"line":963},[756,3689,1057],{"class":874},[756,3691,891],{"class":773},[756,3693,3694,3697,3699,3701,3703,3706,3708,3710,3712,3714,3717,3719,3721,3723,3726,3728,3730,3732,3734,3736,3738,3741],{"class":758,"line":969},[756,3695,3696],{"class":912},"    paths",[756,3698,795],{"class":773},[756,3700,1097],{"class":769},[756,3702,639],{"class":773},[756,3704,3705],{"class":884},"map",[756,3707,913],{"class":912},[756,3709,1227],{"class":1322},[756,3711,1325],{"class":822},[756,3713,989],{"class":912},[756,3715,3716],{"class":773},"{",[756,3718,2193],{"class":912},[756,3720,795],{"class":773},[756,3722,1094],{"class":773},[756,3724,3725],{"class":912}," slug",[756,3727,795],{"class":773},[756,3729,1895],{"class":769},[756,3731,639],{"class":773},[756,3733,1345],{"class":769},[756,3735,1559],{"class":773},[756,3737,1559],{"class":773},[756,3739,3740],{"class":912},"))",[756,3742,1220],{"class":773},[756,3744,3745,3748,3750,3752,3755],{"class":758,"line":978},[756,3746,3747],{"class":912},"    fallback",[756,3749,795],{"class":773},[756,3751,1547],{"class":773},[756,3753,3754],{"class":777},"blocking",[756,3756,3757],{"class":773},"'\n",[756,3759,3760],{"class":758,"line":983},[756,3761,1046],{"class":773},[756,3763,3764],{"class":758,"line":1009},[756,3765,1075],{"class":773},[756,3767,3768],{"class":758,"line":1043},[756,3769,868],{"emptyLinePlaceholder":867},[756,3771,3772,3774,3776,3778,3780,3782,3784,3786],{"class":758,"line":1049},[756,3773,875],{"class":874},[756,3775,878],{"class":822},[756,3777,881],{"class":822},[756,3779,2187],{"class":884},[756,3781,2190],{"class":773},[756,3783,2193],{"class":1322},[756,3785,2196],{"class":773},[756,3787,891],{"class":773},[756,3789,3790,3792,3794,3796,3798,3800,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822],{"class":758,"line":1054},[756,3791,897],{"class":822},[756,3793,900],{"class":769},[756,3795,903],{"class":773},[756,3797,906],{"class":874},[756,3799,909],{"class":884},[756,3801,913],{"class":912},[756,3803,916],{"class":773},[756,3805,919],{"class":769},[756,3807,922],{"class":773},[756,3809,1774],{"class":777},[756,3811,1028],{"class":773},[756,3813,2216],{"class":769},[756,3815,639],{"class":773},[756,3817,1345],{"class":769},[756,3819,1038],{"class":773},[756,3821,931],{"class":773},[756,3823,891],{"class":773},[756,3825,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850],{"class":758,"line":1072},[756,3827,939],{"class":912},[756,3829,795],{"class":773},[756,3831,1094],{"class":773},[756,3833,1547],{"class":773},[756,3835,952],{"class":912},[756,3837,955],{"class":773},[756,3839,795],{"class":773},[756,3841,831],{"class":769},[756,3843,639],{"class":773},[756,3845,836],{"class":769},[756,3847,639],{"class":773},[756,3849,770],{"class":769},[756,3851,1562],{"class":773},[756,3853,3854,3856],{"class":758,"line":1078},[756,3855,972],{"class":773},[756,3857,975],{"class":912},[756,3859,3860],{"class":758,"line":1083},[756,3861,868],{"emptyLinePlaceholder":867},[756,3863,3864,3866,3868,3870,3872,3874,3876,3878,3880],{"class":758,"line":1089},[756,3865,986],{"class":874},[756,3867,989],{"class":912},[756,3869,995],{"class":769},[756,3871,639],{"class":773},[756,3873,1035],{"class":769},[756,3875,1829],{"class":773},[756,3877,1832],{"class":1216},[756,3879,1003],{"class":912},[756,3881,1006],{"class":773},[756,3883,3884,3886,3888,3890,3892,3894],{"class":758,"line":1115},[756,3885,1841],{"class":874},[756,3887,1094],{"class":773},[756,3889,2249],{"class":912},[756,3891,795],{"class":773},[756,3893,2255],{"class":2254},[756,3895,1562],{"class":773},[756,3897,3898],{"class":758,"line":2000},[756,3899,1046],{"class":773},[756,3901,3902],{"class":758,"line":2053},[756,3903,868],{"emptyLinePlaceholder":867},[756,3905,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924,3926,3928],{"class":758,"line":3327},[756,3907,897],{"class":822},[756,3909,1094],{"class":773},[756,3911,1097],{"class":769},[756,3913,931],{"class":773},[756,3915,1868],{"class":769},[756,3917,1559],{"class":773},[756,3919,903],{"class":773},[756,3921,906],{"class":874},[756,3923,900],{"class":769},[756,3925,639],{"class":773},[756,3927,1066],{"class":884},[756,3929,1069],{"class":912},[756,3931,3932],{"class":758,"line":3332},[756,3933,868],{"emptyLinePlaceholder":867},[756,3935,3936,3938,3940,3942,3944],{"class":758,"line":3338},[756,3937,986],{"class":874},[756,3939,989],{"class":912},[756,3941,2023],{"class":769},[756,3943,1003],{"class":912},[756,3945,1006],{"class":773},[756,3947,3948,3950],{"class":758,"line":3358},[756,3949,1841],{"class":874},[756,3951,891],{"class":773},[756,3953,3954,3956,3958],{"class":758,"line":3366},[756,3955,2297],{"class":912},[756,3957,795],{"class":773},[756,3959,891],{"class":773},[756,3961,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980],{"class":758,"line":3382},[756,3963,2306],{"class":912},[756,3965,795],{"class":773},[756,3967,2311],{"class":773},[756,3969,2314],{"class":777},[756,3971,1028],{"class":773},[756,3973,2023],{"class":769},[756,3975,639],{"class":773},[756,3977,2046],{"class":769},[756,3979,1038],{"class":773},[756,3981,1220],{"class":773},[756,3983,3984,3986,3988],{"class":758,"line":3389},[756,3985,2335],{"class":912},[756,3987,795],{"class":773},[756,3989,2152],{"class":2254},[756,3991,3992],{"class":758,"line":3394},[756,3993,2344],{"class":773},[756,3995,3996],{"class":758,"line":3402},[756,3997,966],{"class":773},[756,3999,4000],{"class":758,"line":3407},[756,4001,1046],{"class":773},[756,4003,4004],{"class":758,"line":3412},[756,4005,868],{"emptyLinePlaceholder":867},[756,4007,4008,4010],{"class":758,"line":3422},[756,4009,1057],{"class":874},[756,4011,891],{"class":773},[756,4013,4014,4016,4018,4020,4022,4024,4026],{"class":758,"line":3436},[756,4015,2367],{"class":912},[756,4017,795],{"class":773},[756,4019,1094],{"class":773},[756,4021,1895],{"class":912},[756,4023,795],{"class":773},[756,4025,1097],{"class":769},[756,4027,2384],{"class":773},[756,4029,4030,4032,4034,4037],{"class":758,"line":3441},[756,4031,2389],{"class":912},[756,4033,795],{"class":773},[756,4035,4036],{"class":1216}," 60",[756,4038,4039],{"class":762}," \u002F\u002F ISR: Revalidate every 60 seconds\n",[756,4041,4042],{"class":758,"line":3446},[756,4043,1046],{"class":773},[756,4045,4046],{"class":758,"line":3451},[756,4047,1075],{"class":773},[756,4049,4050],{"class":758,"line":3456},[756,4051,868],{"emptyLinePlaceholder":867},[756,4053,4054,4056,4059,4061,4064,4066,4068,4070],{"class":758,"line":3482},[756,4055,875],{"class":874},[756,4057,4058],{"class":874}," default",[756,4060,881],{"class":822},[756,4062,4063],{"class":884}," BlogPost",[756,4065,2190],{"class":773},[756,4067,1895],{"class":1322},[756,4069,2196],{"class":773},[756,4071,891],{"class":773},[756,4073,4074,4076],{"class":758,"line":3487},[756,4075,1057],{"class":874},[756,4077,4078],{"class":912}," (\n",[756,4080,4081,4084,4087],{"class":758,"line":3520},[756,4082,4083],{"class":773},"    \u003C",[756,4085,4086],{"class":912},"article",[756,4088,4089],{"class":773},">\n",[756,4091,4093,4096,4099,4102,4104,4106,4108,4110,4112,4115,4117],{"class":758,"line":4092},44,[756,4094,4095],{"class":773},"      \u003C",[756,4097,4098],{"class":912},"h1",[756,4100,4101],{"class":773},">{",[756,4103,1227],{"class":769},[756,4105,639],{"class":773},[756,4107,1367],{"class":769},[756,4109,639],{"class":773},[756,4111,1372],{"class":769},[756,4113,4114],{"class":773},"}\u003C\u002F",[756,4116,4098],{"class":912},[756,4118,4089],{"class":773},[756,4120,4122,4124,4127,4130,4133,4136,4138,4140,4142,4144,4146,4149],{"class":758,"line":4121},45,[756,4123,4095],{"class":773},[756,4125,4126],{"class":912},"div",[756,4128,4129],{"class":822}," dangerouslySetInnerHTML",[756,4131,4132],{"class":773},"={{",[756,4134,4135],{"class":912}," __html",[756,4137,795],{"class":773},[756,4139,1895],{"class":769},[756,4141,639],{"class":773},[756,4143,1367],{"class":769},[756,4145,639],{"class":773},[756,4147,4148],{"class":769},"body ",[756,4150,4151],{"class":773},"}} \u002F>\n",[756,4153,4155,4158,4160],{"class":758,"line":4154},46,[756,4156,4157],{"class":773},"    \u003C\u002F",[756,4159,4086],{"class":912},[756,4161,4089],{"class":773},[756,4163,4165],{"class":758,"line":4164},47,[756,4166,1567],{"class":912},[756,4168,4170],{"class":758,"line":4169},48,[756,4171,1075],{"class":773},[3559,4173,4175],{"id":4174},"server-side-rendering-ssr","Server-Side Rendering (SSR)",[567,4177,4178],{},[571,4179,4180],{},"Fetch on each request:",[732,4182,4184],{"className":808,"code":4183,"language":810,"meta":740,"style":740},"\u002F\u002F pages\u002Fblog\u002F[slug].js\nexport async function getServerSideProps({ params }) {\n  const response = await fetch(`${BASE_URL}\u002Fpages\u002F${params.slug}`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  if (response.status === 404) {\n    return { notFound: true }\n  }\n\n  const { data } = await response.json()\n\n  return {\n    props: { page: data }\n  }\n}\n\nexport default function BlogPost({ page }) {\n  return (\n    \u003Carticle>\n      \u003Ch1>{page.fields.title}\u003C\u002Fh1>\n      \u003Cdiv dangerouslySetInnerHTML={{ __html: page.fields.body }} \u002F>\n    \u003C\u002Farticle>\n  )\n}\n",[618,4185,4186,4190,4209,4245,4273,4279,4283,4303,4317,4321,4325,4347,4351,4357,4373,4377,4381,4385,4403,4409,4417,4441,4467,4475,4479],{"__ignoreMap":740},[756,4187,4188],{"class":758,"line":759},[756,4189,3577],{"class":762},[756,4191,4192,4194,4196,4198,4201,4203,4205,4207],{"class":758,"line":766},[756,4193,875],{"class":874},[756,4195,878],{"class":822},[756,4197,881],{"class":822},[756,4199,4200],{"class":884}," getServerSideProps",[756,4202,2190],{"class":773},[756,4204,2193],{"class":1322},[756,4206,2196],{"class":773},[756,4208,891],{"class":773},[756,4210,4211,4213,4215,4217,4219,4221,4223,4225,4227,4229,4231,4233,4235,4237,4239,4241,4243],{"class":758,"line":780},[756,4212,897],{"class":822},[756,4214,900],{"class":769},[756,4216,903],{"class":773},[756,4218,906],{"class":874},[756,4220,909],{"class":884},[756,4222,913],{"class":912},[756,4224,916],{"class":773},[756,4226,919],{"class":769},[756,4228,922],{"class":773},[756,4230,1774],{"class":777},[756,4232,1028],{"class":773},[756,4234,2216],{"class":769},[756,4236,639],{"class":773},[756,4238,1345],{"class":769},[756,4240,1038],{"class":773},[756,4242,931],{"class":773},[756,4244,891],{"class":773},[756,4246,4247,4249,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269,4271],{"class":758,"line":864},[756,4248,939],{"class":912},[756,4250,795],{"class":773},[756,4252,1094],{"class":773},[756,4254,1547],{"class":773},[756,4256,952],{"class":912},[756,4258,955],{"class":773},[756,4260,795],{"class":773},[756,4262,831],{"class":769},[756,4264,639],{"class":773},[756,4266,836],{"class":769},[756,4268,639],{"class":773},[756,4270,770],{"class":769},[756,4272,1562],{"class":773},[756,4274,4275,4277],{"class":758,"line":871},[756,4276,972],{"class":773},[756,4278,975],{"class":912},[756,4280,4281],{"class":758,"line":894},[756,4282,868],{"emptyLinePlaceholder":867},[756,4284,4285,4287,4289,4291,4293,4295,4297,4299,4301],{"class":758,"line":936},[756,4286,986],{"class":874},[756,4288,989],{"class":912},[756,4290,995],{"class":769},[756,4292,639],{"class":773},[756,4294,1035],{"class":769},[756,4296,1829],{"class":773},[756,4298,1832],{"class":1216},[756,4300,1003],{"class":912},[756,4302,1006],{"class":773},[756,4304,4305,4307,4309,4311,4313,4315],{"class":758,"line":946},[756,4306,1841],{"class":874},[756,4308,1094],{"class":773},[756,4310,2249],{"class":912},[756,4312,795],{"class":773},[756,4314,2255],{"class":2254},[756,4316,1562],{"class":773},[756,4318,4319],{"class":758,"line":963},[756,4320,1046],{"class":773},[756,4322,4323],{"class":758,"line":969},[756,4324,868],{"emptyLinePlaceholder":867},[756,4326,4327,4329,4331,4333,4335,4337,4339,4341,4343,4345],{"class":758,"line":978},[756,4328,897],{"class":822},[756,4330,1094],{"class":773},[756,4332,1097],{"class":769},[756,4334,1559],{"class":773},[756,4336,903],{"class":773},[756,4338,906],{"class":874},[756,4340,900],{"class":769},[756,4342,639],{"class":773},[756,4344,1066],{"class":884},[756,4346,1069],{"class":912},[756,4348,4349],{"class":758,"line":983},[756,4350,868],{"emptyLinePlaceholder":867},[756,4352,4353,4355],{"class":758,"line":1009},[756,4354,1057],{"class":874},[756,4356,891],{"class":773},[756,4358,4359,4361,4363,4365,4367,4369,4371],{"class":758,"line":1043},[756,4360,2367],{"class":912},[756,4362,795],{"class":773},[756,4364,1094],{"class":773},[756,4366,1895],{"class":912},[756,4368,795],{"class":773},[756,4370,1097],{"class":769},[756,4372,1562],{"class":773},[756,4374,4375],{"class":758,"line":1049},[756,4376,1046],{"class":773},[756,4378,4379],{"class":758,"line":1054},[756,4380,1075],{"class":773},[756,4382,4383],{"class":758,"line":1072},[756,4384,868],{"emptyLinePlaceholder":867},[756,4386,4387,4389,4391,4393,4395,4397,4399,4401],{"class":758,"line":1078},[756,4388,875],{"class":874},[756,4390,4058],{"class":874},[756,4392,881],{"class":822},[756,4394,4063],{"class":884},[756,4396,2190],{"class":773},[756,4398,1895],{"class":1322},[756,4400,2196],{"class":773},[756,4402,891],{"class":773},[756,4404,4405,4407],{"class":758,"line":1083},[756,4406,1057],{"class":874},[756,4408,4078],{"class":912},[756,4410,4411,4413,4415],{"class":758,"line":1089},[756,4412,4083],{"class":773},[756,4414,4086],{"class":912},[756,4416,4089],{"class":773},[756,4418,4419,4421,4423,4425,4427,4429,4431,4433,4435,4437,4439],{"class":758,"line":1115},[756,4420,4095],{"class":773},[756,4422,4098],{"class":912},[756,4424,4101],{"class":773},[756,4426,1227],{"class":769},[756,4428,639],{"class":773},[756,4430,1367],{"class":769},[756,4432,639],{"class":773},[756,4434,1372],{"class":769},[756,4436,4114],{"class":773},[756,4438,4098],{"class":912},[756,4440,4089],{"class":773},[756,4442,4443,4445,4447,4449,4451,4453,4455,4457,4459,4461,4463,4465],{"class":758,"line":2000},[756,4444,4095],{"class":773},[756,4446,4126],{"class":912},[756,4448,4129],{"class":822},[756,4450,4132],{"class":773},[756,4452,4135],{"class":912},[756,4454,795],{"class":773},[756,4456,1895],{"class":769},[756,4458,639],{"class":773},[756,4460,1367],{"class":769},[756,4462,639],{"class":773},[756,4464,4148],{"class":769},[756,4466,4151],{"class":773},[756,4468,4469,4471,4473],{"class":758,"line":2053},[756,4470,4157],{"class":773},[756,4472,4086],{"class":912},[756,4474,4089],{"class":773},[756,4476,4477],{"class":758,"line":3327},[756,4478,1567],{"class":912},[756,4480,4481],{"class":758,"line":3332},[756,4482,1075],{"class":773},[3559,4484,4486],{"id":4485},"api-routes-proxy-pattern","API Routes (Proxy Pattern)",[567,4488,4489],{},[571,4490,4491],{},"Hide API key from frontend:",[732,4493,4495],{"className":808,"code":4494,"language":810,"meta":740,"style":740},"\u002F\u002F pages\u002Fapi\u002Fcms\u002Fpages\u002F[slug].js\nexport default async function handler(req, res) {\n  const { slug } = req.query\n\n  const response = await fetch(`${BASE_URL}\u002Fpages\u002F${slug}`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  if (!response.ok) {\n    return res.status(response.status).json({ error: 'Page not found' })\n  }\n\n  const data = await response.json()\n  res.json(data)\n}\n\n\u002F\u002F Client-side usage\nconst response = await fetch(`\u002Fapi\u002Fcms\u002Fpages\u002Fabout-us`)\nconst { data } = await response.json()\n",[618,4496,4497,4502,4529,4549,4553,4585,4613,4619,4623,4641,4684,4688,4692,4710,4725,4729,4733,4738,4762],{"__ignoreMap":740},[756,4498,4499],{"class":758,"line":759},[756,4500,4501],{"class":762},"\u002F\u002F pages\u002Fapi\u002Fcms\u002Fpages\u002F[slug].js\n",[756,4503,4504,4506,4508,4510,4512,4515,4517,4520,4522,4525,4527],{"class":758,"line":766},[756,4505,875],{"class":874},[756,4507,4058],{"class":874},[756,4509,878],{"class":822},[756,4511,881],{"class":822},[756,4513,4514],{"class":884}," handler",[756,4516,913],{"class":773},[756,4518,4519],{"class":1322},"req",[756,4521,931],{"class":773},[756,4523,4524],{"class":1322}," res",[756,4526,684],{"class":773},[756,4528,891],{"class":773},[756,4530,4531,4533,4535,4537,4539,4541,4544,4546],{"class":758,"line":780},[756,4532,897],{"class":822},[756,4534,1094],{"class":773},[756,4536,3725],{"class":769},[756,4538,1559],{"class":773},[756,4540,903],{"class":773},[756,4542,4543],{"class":769}," req",[756,4545,639],{"class":773},[756,4547,4548],{"class":769},"query\n",[756,4550,4551],{"class":758,"line":864},[756,4552,868],{"emptyLinePlaceholder":867},[756,4554,4555,4557,4559,4561,4563,4565,4567,4569,4571,4573,4575,4577,4579,4581,4583],{"class":758,"line":871},[756,4556,897],{"class":822},[756,4558,900],{"class":769},[756,4560,903],{"class":773},[756,4562,906],{"class":874},[756,4564,909],{"class":884},[756,4566,913],{"class":912},[756,4568,916],{"class":773},[756,4570,919],{"class":769},[756,4572,922],{"class":773},[756,4574,1774],{"class":777},[756,4576,1028],{"class":773},[756,4578,1345],{"class":769},[756,4580,1038],{"class":773},[756,4582,931],{"class":773},[756,4584,891],{"class":773},[756,4586,4587,4589,4591,4593,4595,4597,4599,4601,4603,4605,4607,4609,4611],{"class":758,"line":894},[756,4588,939],{"class":912},[756,4590,795],{"class":773},[756,4592,1094],{"class":773},[756,4594,1547],{"class":773},[756,4596,952],{"class":912},[756,4598,955],{"class":773},[756,4600,795],{"class":773},[756,4602,831],{"class":769},[756,4604,639],{"class":773},[756,4606,836],{"class":769},[756,4608,639],{"class":773},[756,4610,770],{"class":769},[756,4612,1562],{"class":773},[756,4614,4615,4617],{"class":758,"line":936},[756,4616,972],{"class":773},[756,4618,975],{"class":912},[756,4620,4621],{"class":758,"line":946},[756,4622,868],{"emptyLinePlaceholder":867},[756,4624,4625,4627,4629,4631,4633,4635,4637,4639],{"class":758,"line":963},[756,4626,986],{"class":874},[756,4628,989],{"class":912},[756,4630,992],{"class":773},[756,4632,995],{"class":769},[756,4634,639],{"class":773},[756,4636,1000],{"class":769},[756,4638,1003],{"class":912},[756,4640,1006],{"class":773},[756,4642,4643,4645,4647,4649,4651,4653,4655,4657,4659,4661,4663,4665,4667,4669,4672,4674,4676,4678,4680,4682],{"class":758,"line":969},[756,4644,1841],{"class":874},[756,4646,4524],{"class":769},[756,4648,639],{"class":773},[756,4650,1035],{"class":884},[756,4652,913],{"class":912},[756,4654,995],{"class":769},[756,4656,639],{"class":773},[756,4658,1035],{"class":769},[756,4660,684],{"class":912},[756,4662,639],{"class":773},[756,4664,1066],{"class":884},[756,4666,913],{"class":912},[756,4668,3716],{"class":773},[756,4670,4671],{"class":912}," error",[756,4673,795],{"class":773},[756,4675,1547],{"class":773},[756,4677,1973],{"class":777},[756,4679,955],{"class":773},[756,4681,1559],{"class":773},[756,4683,975],{"class":912},[756,4685,4686],{"class":758,"line":978},[756,4687,1046],{"class":773},[756,4689,4690],{"class":758,"line":983},[756,4691,868],{"emptyLinePlaceholder":867},[756,4693,4694,4696,4698,4700,4702,4704,4706,4708],{"class":758,"line":1009},[756,4695,897],{"class":822},[756,4697,1097],{"class":769},[756,4699,903],{"class":773},[756,4701,906],{"class":874},[756,4703,900],{"class":769},[756,4705,639],{"class":773},[756,4707,1066],{"class":884},[756,4709,1069],{"class":912},[756,4711,4712,4715,4717,4719,4721,4723],{"class":758,"line":1043},[756,4713,4714],{"class":769},"  res",[756,4716,639],{"class":773},[756,4718,1066],{"class":884},[756,4720,913],{"class":912},[756,4722,1135],{"class":769},[756,4724,975],{"class":912},[756,4726,4727],{"class":758,"line":1049},[756,4728,1075],{"class":773},[756,4730,4731],{"class":758,"line":1054},[756,4732,868],{"emptyLinePlaceholder":867},[756,4734,4735],{"class":758,"line":1072},[756,4736,4737],{"class":762},"\u002F\u002F Client-side usage\n",[756,4739,4740,4742,4745,4747,4749,4751,4753,4755,4758,4760],{"class":758,"line":1078},[756,4741,823],{"class":822},[756,4743,4744],{"class":769}," response ",[756,4746,774],{"class":773},[756,4748,906],{"class":874},[756,4750,909],{"class":884},[756,4752,913],{"class":769},[756,4754,928],{"class":773},[756,4756,4757],{"class":777},"\u002Fapi\u002Fcms\u002Fpages\u002Fabout-us",[756,4759,928],{"class":773},[756,4761,975],{"class":769},[756,4763,4764,4766,4768,4771,4773,4775,4777,4779,4781,4783],{"class":758,"line":1083},[756,4765,823],{"class":822},[756,4767,1094],{"class":773},[756,4769,4770],{"class":769}," data ",[756,4772,922],{"class":773},[756,4774,903],{"class":773},[756,4776,906],{"class":874},[756,4778,900],{"class":769},[756,4780,639],{"class":773},[756,4782,1066],{"class":884},[756,4784,1069],{"class":769},[671,4786,141],{"id":4787},"nuxt",[3559,4789,4791],{"id":4790},"server-routes-nuxt-3","Server Routes (Nuxt 3)",[567,4793,4794],{},[571,4795,4796],{},"Fetch at build time or runtime:",[732,4798,4802],{"className":4799,"code":4800,"language":4801,"meta":740,"style":740},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F server\u002Fapi\u002Fpages\u002F[slug].ts\nexport default defineEventHandler(async (event) => {\n  const slug = event.context.params.slug\n\n  const response = await $fetch(`${BASE_URL}\u002Fpages\u002F${slug}`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  if (!response) {\n    throw createError({ statusCode: 404, statusMessage: 'Page not found' })\n  }\n\n  return response\n})\n","typescript",[618,4803,4804,4809,4833,4858,4862,4895,4923,4929,4933,4947,4982,4986,4990,4997],{"__ignoreMap":740},[756,4805,4806],{"class":758,"line":759},[756,4807,4808],{"class":762},"\u002F\u002F server\u002Fapi\u002Fpages\u002F[slug].ts\n",[756,4810,4811,4813,4815,4818,4820,4822,4824,4827,4829,4831],{"class":758,"line":766},[756,4812,875],{"class":874},[756,4814,4058],{"class":874},[756,4816,4817],{"class":884}," defineEventHandler",[756,4819,913],{"class":769},[756,4821,1462],{"class":822},[756,4823,989],{"class":773},[756,4825,4826],{"class":1322},"event",[756,4828,684],{"class":773},[756,4830,1325],{"class":822},[756,4832,891],{"class":773},[756,4834,4835,4837,4839,4841,4844,4846,4849,4851,4853,4855],{"class":758,"line":780},[756,4836,897],{"class":822},[756,4838,3725],{"class":769},[756,4840,903],{"class":773},[756,4842,4843],{"class":769}," event",[756,4845,639],{"class":773},[756,4847,4848],{"class":769},"context",[756,4850,639],{"class":773},[756,4852,2216],{"class":769},[756,4854,639],{"class":773},[756,4856,4857],{"class":769},"slug\n",[756,4859,4860],{"class":758,"line":864},[756,4861,868],{"emptyLinePlaceholder":867},[756,4863,4864,4866,4868,4870,4872,4875,4877,4879,4881,4883,4885,4887,4889,4891,4893],{"class":758,"line":871},[756,4865,897],{"class":822},[756,4867,900],{"class":769},[756,4869,903],{"class":773},[756,4871,906],{"class":874},[756,4873,4874],{"class":884}," $fetch",[756,4876,913],{"class":912},[756,4878,916],{"class":773},[756,4880,919],{"class":769},[756,4882,922],{"class":773},[756,4884,1774],{"class":777},[756,4886,1028],{"class":773},[756,4888,1345],{"class":769},[756,4890,1038],{"class":773},[756,4892,931],{"class":773},[756,4894,891],{"class":773},[756,4896,4897,4899,4901,4903,4905,4907,4909,4911,4913,4915,4917,4919,4921],{"class":758,"line":894},[756,4898,939],{"class":912},[756,4900,795],{"class":773},[756,4902,1094],{"class":773},[756,4904,1547],{"class":773},[756,4906,952],{"class":912},[756,4908,955],{"class":773},[756,4910,795],{"class":773},[756,4912,831],{"class":769},[756,4914,639],{"class":773},[756,4916,836],{"class":769},[756,4918,639],{"class":773},[756,4920,770],{"class":769},[756,4922,1562],{"class":773},[756,4924,4925,4927],{"class":758,"line":936},[756,4926,972],{"class":773},[756,4928,975],{"class":912},[756,4930,4931],{"class":758,"line":946},[756,4932,868],{"emptyLinePlaceholder":867},[756,4934,4935,4937,4939,4941,4943,4945],{"class":758,"line":963},[756,4936,986],{"class":874},[756,4938,989],{"class":912},[756,4940,992],{"class":773},[756,4942,995],{"class":769},[756,4944,1003],{"class":912},[756,4946,1006],{"class":773},[756,4948,4949,4951,4954,4956,4958,4961,4963,4965,4967,4970,4972,4974,4976,4978,4980],{"class":758,"line":969},[756,4950,1012],{"class":874},[756,4952,4953],{"class":884}," createError",[756,4955,913],{"class":912},[756,4957,3716],{"class":773},[756,4959,4960],{"class":912}," statusCode",[756,4962,795],{"class":773},[756,4964,1832],{"class":1216},[756,4966,931],{"class":773},[756,4968,4969],{"class":912}," statusMessage",[756,4971,795],{"class":773},[756,4973,1547],{"class":773},[756,4975,1973],{"class":777},[756,4977,955],{"class":773},[756,4979,1559],{"class":773},[756,4981,975],{"class":912},[756,4983,4984],{"class":758,"line":978},[756,4985,1046],{"class":773},[756,4987,4988],{"class":758,"line":983},[756,4989,868],{"emptyLinePlaceholder":867},[756,4991,4992,4994],{"class":758,"line":1009},[756,4993,1057],{"class":874},[756,4995,4996],{"class":769}," response\n",[756,4998,4999,5001],{"class":758,"line":1043},[756,5000,922],{"class":773},[756,5002,975],{"class":769},[3559,5004,5006],{"id":5005},"composable","Composable",[732,5008,5010],{"className":4799,"code":5009,"language":4801,"meta":740,"style":740},"\u002F\u002F composables\u002FuseCMS.ts\nexport function useCMS() {\n  const config = useRuntimeConfig()\n\n  async function fetchPages(options = {}) {\n    const params = new URLSearchParams({\n      limit: options.limit || '20',\n      page: options.page || '1',\n      ...(options.pageType && { pageType: options.pageType }),\n      ...(options.fields && { fields: options.fields.join(',') })\n    })\n\n    return await $fetch(`${config.public.cmsBaseUrl}\u002Fpages?${params}`, {\n      headers: { 'X-API-Key': config.cmsApiKey }\n    })\n  }\n\n  async function fetchPage(slug) {\n    return await $fetch(`${config.public.cmsBaseUrl}\u002Fpages\u002F${slug}`, {\n      headers: { 'X-API-Key': config.cmsApiKey }\n    })\n  }\n\n  return {\n    fetchPages,\n    fetchPage\n  }\n}\n\n\u002F\u002F Usage in component\n\u003Cscript setup>\nconst { fetchPage } = useCMS()\nconst route = useRoute()\n\nconst { data: page } = await useAsyncData(\n  `page-${route.params.slug}`,\n  () => fetchPage(route.params.slug)\n)\n\u003C\u002Fscript>\n",[618,5011,5012,5017,5030,5044,5048,5068,5085,5111,5134,5169,5215,5221,5225,5265,5290,5296,5300,5304,5321,5357,5381,5387,5391,5395,5401,5408,5413,5417,5421,5425,5430,5439,5456,5470,5474,5498,5523,5544,5548],{"__ignoreMap":740},[756,5013,5014],{"class":758,"line":759},[756,5015,5016],{"class":762},"\u002F\u002F composables\u002FuseCMS.ts\n",[756,5018,5019,5021,5023,5026,5028],{"class":758,"line":766},[756,5020,875],{"class":874},[756,5022,881],{"class":822},[756,5024,5025],{"class":884}," useCMS",[756,5027,888],{"class":773},[756,5029,891],{"class":773},[756,5031,5032,5034,5037,5039,5042],{"class":758,"line":780},[756,5033,897],{"class":822},[756,5035,5036],{"class":769}," config",[756,5038,903],{"class":773},[756,5040,5041],{"class":884}," useRuntimeConfig",[756,5043,1069],{"class":912},[756,5045,5046],{"class":758,"line":864},[756,5047,868],{"emptyLinePlaceholder":867},[756,5049,5050,5052,5054,5056,5058,5061,5063,5066],{"class":758,"line":871},[756,5051,3079],{"class":822},[756,5053,881],{"class":822},[756,5055,885],{"class":884},[756,5057,913],{"class":773},[756,5059,5060],{"class":1322},"options",[756,5062,903],{"class":773},[756,5064,5065],{"class":773}," {})",[756,5067,891],{"class":773},[756,5069,5070,5072,5074,5076,5078,5081,5083],{"class":758,"line":894},[756,5071,3095],{"class":822},[756,5073,2193],{"class":769},[756,5075,903],{"class":773},[756,5077,1015],{"class":773},[756,5079,5080],{"class":884}," URLSearchParams",[756,5082,913],{"class":912},[756,5084,1006],{"class":773},[756,5086,5087,5090,5092,5095,5097,5099,5102,5104,5107,5109],{"class":758,"line":936},[756,5088,5089],{"class":912},"      limit",[756,5091,795],{"class":773},[756,5093,5094],{"class":769}," options",[756,5096,639],{"class":773},[756,5098,1243],{"class":769},[756,5100,5101],{"class":773}," ||",[756,5103,1547],{"class":773},[756,5105,5106],{"class":777},"20",[756,5108,955],{"class":773},[756,5110,1220],{"class":773},[756,5112,5113,5116,5118,5120,5122,5124,5126,5128,5130,5132],{"class":758,"line":946},[756,5114,5115],{"class":912},"      page",[756,5117,795],{"class":773},[756,5119,5094],{"class":769},[756,5121,639],{"class":773},[756,5123,1227],{"class":769},[756,5125,5101],{"class":773},[756,5127,1547],{"class":773},[756,5129,1690],{"class":777},[756,5131,955],{"class":773},[756,5133,1220],{"class":773},[756,5135,5136,5139,5141,5143,5145,5148,5150,5152,5155,5157,5159,5161,5163,5165,5167],{"class":758,"line":963},[756,5137,5138],{"class":773},"      ...",[756,5140,913],{"class":912},[756,5142,5060],{"class":769},[756,5144,639],{"class":773},[756,5146,5147],{"class":769},"pageType",[756,5149,3138],{"class":773},[756,5151,1094],{"class":773},[756,5153,5154],{"class":912}," pageType",[756,5156,795],{"class":773},[756,5158,5094],{"class":769},[756,5160,639],{"class":773},[756,5162,5147],{"class":769},[756,5164,1559],{"class":773},[756,5166,684],{"class":912},[756,5168,1220],{"class":773},[756,5170,5171,5173,5175,5177,5179,5181,5183,5185,5188,5190,5192,5194,5196,5198,5201,5203,5205,5207,5209,5211,5213],{"class":758,"line":969},[756,5172,5138],{"class":773},[756,5174,913],{"class":912},[756,5176,5060],{"class":769},[756,5178,639],{"class":773},[756,5180,1367],{"class":769},[756,5182,3138],{"class":773},[756,5184,1094],{"class":773},[756,5186,5187],{"class":912}," fields",[756,5189,795],{"class":773},[756,5191,5094],{"class":769},[756,5193,639],{"class":773},[756,5195,1367],{"class":769},[756,5197,639],{"class":773},[756,5199,5200],{"class":884},"join",[756,5202,913],{"class":912},[756,5204,955],{"class":773},[756,5206,931],{"class":777},[756,5208,955],{"class":773},[756,5210,1003],{"class":912},[756,5212,922],{"class":773},[756,5214,975],{"class":912},[756,5216,5217,5219],{"class":758,"line":978},[756,5218,3300],{"class":773},[756,5220,975],{"class":912},[756,5222,5223],{"class":758,"line":983},[756,5224,868],{"emptyLinePlaceholder":867},[756,5226,5227,5229,5231,5233,5235,5237,5240,5242,5245,5247,5250,5252,5255,5257,5259,5261,5263],{"class":758,"line":1009},[756,5228,1841],{"class":874},[756,5230,906],{"class":874},[756,5232,4874],{"class":884},[756,5234,913],{"class":912},[756,5236,916],{"class":773},[756,5238,5239],{"class":769},"config",[756,5241,639],{"class":773},[756,5243,5244],{"class":769},"public",[756,5246,639],{"class":773},[756,5248,5249],{"class":769},"cmsBaseUrl",[756,5251,922],{"class":773},[756,5253,5254],{"class":777},"\u002Fpages?",[756,5256,1028],{"class":773},[756,5258,2216],{"class":769},[756,5260,1038],{"class":773},[756,5262,931],{"class":773},[756,5264,891],{"class":773},[756,5266,5267,5269,5271,5273,5275,5277,5279,5281,5283,5285,5288],{"class":758,"line":1043},[756,5268,3277],{"class":912},[756,5270,795],{"class":773},[756,5272,1094],{"class":773},[756,5274,1547],{"class":773},[756,5276,952],{"class":912},[756,5278,955],{"class":773},[756,5280,795],{"class":773},[756,5282,5036],{"class":769},[756,5284,639],{"class":773},[756,5286,5287],{"class":769},"cmsApiKey",[756,5289,1562],{"class":773},[756,5291,5292,5294],{"class":758,"line":1049},[756,5293,3300],{"class":773},[756,5295,975],{"class":912},[756,5297,5298],{"class":758,"line":1054},[756,5299,1046],{"class":773},[756,5301,5302],{"class":758,"line":1072},[756,5303,868],{"emptyLinePlaceholder":867},[756,5305,5306,5308,5310,5313,5315,5317,5319],{"class":758,"line":1078},[756,5307,3079],{"class":822},[756,5309,881],{"class":822},[756,5311,5312],{"class":884}," fetchPage",[756,5314,913],{"class":773},[756,5316,1345],{"class":1322},[756,5318,684],{"class":773},[756,5320,891],{"class":773},[756,5322,5323,5325,5327,5329,5331,5333,5335,5337,5339,5341,5343,5345,5347,5349,5351,5353,5355],{"class":758,"line":1083},[756,5324,1841],{"class":874},[756,5326,906],{"class":874},[756,5328,4874],{"class":884},[756,5330,913],{"class":912},[756,5332,916],{"class":773},[756,5334,5239],{"class":769},[756,5336,639],{"class":773},[756,5338,5244],{"class":769},[756,5340,639],{"class":773},[756,5342,5249],{"class":769},[756,5344,922],{"class":773},[756,5346,1774],{"class":777},[756,5348,1028],{"class":773},[756,5350,1345],{"class":769},[756,5352,1038],{"class":773},[756,5354,931],{"class":773},[756,5356,891],{"class":773},[756,5358,5359,5361,5363,5365,5367,5369,5371,5373,5375,5377,5379],{"class":758,"line":1089},[756,5360,3277],{"class":912},[756,5362,795],{"class":773},[756,5364,1094],{"class":773},[756,5366,1547],{"class":773},[756,5368,952],{"class":912},[756,5370,955],{"class":773},[756,5372,795],{"class":773},[756,5374,5036],{"class":769},[756,5376,639],{"class":773},[756,5378,5287],{"class":769},[756,5380,1562],{"class":773},[756,5382,5383,5385],{"class":758,"line":1115},[756,5384,3300],{"class":773},[756,5386,975],{"class":912},[756,5388,5389],{"class":758,"line":2000},[756,5390,1046],{"class":773},[756,5392,5393],{"class":758,"line":2053},[756,5394,868],{"emptyLinePlaceholder":867},[756,5396,5397,5399],{"class":758,"line":3327},[756,5398,1057],{"class":874},[756,5400,891],{"class":773},[756,5402,5403,5406],{"class":758,"line":3332},[756,5404,5405],{"class":769},"    fetchPages",[756,5407,1220],{"class":773},[756,5409,5410],{"class":758,"line":3338},[756,5411,5412],{"class":769},"    fetchPage\n",[756,5414,5415],{"class":758,"line":3358},[756,5416,1046],{"class":773},[756,5418,5419],{"class":758,"line":3366},[756,5420,1075],{"class":773},[756,5422,5423],{"class":758,"line":3382},[756,5424,868],{"emptyLinePlaceholder":867},[756,5426,5427],{"class":758,"line":3389},[756,5428,5429],{"class":762},"\u002F\u002F Usage in component\n",[756,5431,5432,5434,5437],{"class":758,"line":3394},[756,5433,1403],{"class":773},[756,5435,5436],{"class":769},"script setup",[756,5438,4089],{"class":773},[756,5440,5441,5443,5445,5448,5450,5452,5454],{"class":758,"line":3402},[756,5442,823],{"class":822},[756,5444,1094],{"class":773},[756,5446,5447],{"class":769}," fetchPage ",[756,5449,922],{"class":773},[756,5451,903],{"class":773},[756,5453,5025],{"class":884},[756,5455,1069],{"class":769},[756,5457,5458,5460,5463,5465,5468],{"class":758,"line":3407},[756,5459,823],{"class":822},[756,5461,5462],{"class":769}," route ",[756,5464,774],{"class":773},[756,5466,5467],{"class":884}," useRoute",[756,5469,1069],{"class":769},[756,5471,5472],{"class":758,"line":3412},[756,5473,868],{"emptyLinePlaceholder":867},[756,5475,5476,5478,5480,5482,5484,5487,5489,5491,5493,5496],{"class":758,"line":3422},[756,5477,823],{"class":822},[756,5479,1094],{"class":773},[756,5481,1097],{"class":912},[756,5483,795],{"class":773},[756,5485,5486],{"class":769}," page ",[756,5488,922],{"class":773},[756,5490,903],{"class":773},[756,5492,906],{"class":874},[756,5494,5495],{"class":884}," useAsyncData",[756,5497,1503],{"class":769},[756,5499,5500,5503,5506,5508,5511,5513,5515,5517,5519,5521],{"class":758,"line":3436},[756,5501,5502],{"class":773},"  `",[756,5504,5505],{"class":777},"page-",[756,5507,1028],{"class":773},[756,5509,5510],{"class":769},"route",[756,5512,639],{"class":773},[756,5514,2216],{"class":769},[756,5516,639],{"class":773},[756,5518,1345],{"class":769},[756,5520,1038],{"class":773},[756,5522,1220],{"class":773},[756,5524,5525,5528,5530,5532,5535,5537,5539,5541],{"class":758,"line":3441},[756,5526,5527],{"class":773},"  ()",[756,5529,1325],{"class":822},[756,5531,5312],{"class":884},[756,5533,5534],{"class":769},"(route",[756,5536,639],{"class":773},[756,5538,2216],{"class":769},[756,5540,639],{"class":773},[756,5542,5543],{"class":769},"slug)\n",[756,5545,5546],{"class":758,"line":3446},[756,5547,975],{"class":769},[756,5549,5550,5553,5556],{"class":758,"line":3451},[756,5551,5552],{"class":773},"\u003C\u002F",[756,5554,5555],{"class":769},"script",[756,5557,4089],{"class":773},[3559,5559,5561],{"id":5560},"page-component","Page Component",[732,5563,5567],{"className":5564,"code":5565,"language":5566,"meta":740,"style":740},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- pages\u002Fblog\u002F[slug].vue -->\n\u003Cscript setup>\nconst { fetchPage } = useCMS()\nconst route = useRoute()\n\nconst { data: page, error } = await useAsyncData(\n  `page-${route.params.slug}`,\n  () => fetchPage(route.params.slug)\n)\n\nif (error.value) {\n  throw createError({ statusCode: 404, statusMessage: 'Page not found' })\n}\n\n\u002F\u002F Handle redirects\nif (page.value?.redirect) {\n  await navigateTo(`\u002F${page.value.redirect.to}`, { redirectCode: 301 })\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Carticle v-if=\"page\">\n    \u003Ch1>{{ page.data.fields.title }}\u003C\u002Fh1>\n    \u003Cdiv v-html=\"page.data.fields.body\" \u002F>\n  \u003C\u002Farticle>\n\u003C\u002Ftemplate>\n","vue",[618,5568,5569,5574,5585,5601,5613,5617,5644,5666,5684,5688,5692,5706,5739,5743,5747,5752,5771,5819,5823,5831,5835,5844,5864,5882,5903,5912],{"__ignoreMap":740},[756,5570,5571],{"class":758,"line":759},[756,5572,5573],{"class":762},"\u003C!-- pages\u002Fblog\u002F[slug].vue -->\n",[756,5575,5576,5578,5580,5583],{"class":758,"line":766},[756,5577,1403],{"class":773},[756,5579,5555],{"class":912},[756,5581,5582],{"class":822}," setup",[756,5584,4089],{"class":773},[756,5586,5587,5589,5591,5593,5595,5597,5599],{"class":758,"line":780},[756,5588,823],{"class":822},[756,5590,1094],{"class":773},[756,5592,5447],{"class":769},[756,5594,922],{"class":773},[756,5596,903],{"class":773},[756,5598,5025],{"class":884},[756,5600,1069],{"class":769},[756,5602,5603,5605,5607,5609,5611],{"class":758,"line":864},[756,5604,823],{"class":822},[756,5606,5462],{"class":769},[756,5608,774],{"class":773},[756,5610,5467],{"class":884},[756,5612,1069],{"class":769},[756,5614,5615],{"class":758,"line":871},[756,5616,868],{"emptyLinePlaceholder":867},[756,5618,5619,5621,5623,5625,5627,5629,5631,5634,5636,5638,5640,5642],{"class":758,"line":894},[756,5620,823],{"class":822},[756,5622,1094],{"class":773},[756,5624,1097],{"class":912},[756,5626,795],{"class":773},[756,5628,1895],{"class":769},[756,5630,931],{"class":773},[756,5632,5633],{"class":769}," error ",[756,5635,922],{"class":773},[756,5637,903],{"class":773},[756,5639,906],{"class":874},[756,5641,5495],{"class":884},[756,5643,1503],{"class":769},[756,5645,5646,5648,5650,5652,5654,5656,5658,5660,5662,5664],{"class":758,"line":936},[756,5647,5502],{"class":773},[756,5649,5505],{"class":777},[756,5651,1028],{"class":773},[756,5653,5510],{"class":769},[756,5655,639],{"class":773},[756,5657,2216],{"class":769},[756,5659,639],{"class":773},[756,5661,1345],{"class":769},[756,5663,1038],{"class":773},[756,5665,1220],{"class":773},[756,5667,5668,5670,5672,5674,5676,5678,5680,5682],{"class":758,"line":946},[756,5669,5527],{"class":773},[756,5671,1325],{"class":822},[756,5673,5312],{"class":884},[756,5675,5534],{"class":769},[756,5677,639],{"class":773},[756,5679,2216],{"class":769},[756,5681,639],{"class":773},[756,5683,5543],{"class":769},[756,5685,5686],{"class":758,"line":963},[756,5687,975],{"class":769},[756,5689,5690],{"class":758,"line":969},[756,5691,868],{"emptyLinePlaceholder":867},[756,5693,5694,5696,5699,5701,5704],{"class":758,"line":978},[756,5695,1392],{"class":874},[756,5697,5698],{"class":769}," (error",[756,5700,639],{"class":773},[756,5702,5703],{"class":769},"value) ",[756,5705,1006],{"class":773},[756,5707,5708,5711,5713,5715,5717,5719,5721,5723,5725,5727,5729,5731,5733,5735,5737],{"class":758,"line":983},[756,5709,5710],{"class":874},"  throw",[756,5712,4953],{"class":884},[756,5714,913],{"class":912},[756,5716,3716],{"class":773},[756,5718,4960],{"class":912},[756,5720,795],{"class":773},[756,5722,1832],{"class":1216},[756,5724,931],{"class":773},[756,5726,4969],{"class":912},[756,5728,795],{"class":773},[756,5730,1547],{"class":773},[756,5732,1973],{"class":777},[756,5734,955],{"class":773},[756,5736,1559],{"class":773},[756,5738,975],{"class":912},[756,5740,5741],{"class":758,"line":1009},[756,5742,1075],{"class":773},[756,5744,5745],{"class":758,"line":1043},[756,5746,868],{"emptyLinePlaceholder":867},[756,5748,5749],{"class":758,"line":1049},[756,5750,5751],{"class":762},"\u002F\u002F Handle redirects\n",[756,5753,5754,5756,5759,5761,5764,5767,5769],{"class":758,"line":1054},[756,5755,1392],{"class":874},[756,5757,5758],{"class":769}," (page",[756,5760,639],{"class":773},[756,5762,5763],{"class":769},"value",[756,5765,5766],{"class":773},"?.",[756,5768,1995],{"class":769},[756,5770,1006],{"class":773},[756,5772,5773,5776,5779,5781,5783,5785,5787,5789,5791,5793,5795,5797,5799,5801,5803,5805,5807,5810,5812,5815,5817],{"class":758,"line":1072},[756,5774,5775],{"class":874},"  await",[756,5777,5778],{"class":884}," navigateTo",[756,5780,913],{"class":912},[756,5782,928],{"class":773},[756,5784,2314],{"class":777},[756,5786,1028],{"class":773},[756,5788,1227],{"class":769},[756,5790,639],{"class":773},[756,5792,5763],{"class":769},[756,5794,639],{"class":773},[756,5796,2023],{"class":769},[756,5798,639],{"class":773},[756,5800,2046],{"class":769},[756,5802,1038],{"class":773},[756,5804,931],{"class":773},[756,5806,1094],{"class":773},[756,5808,5809],{"class":912}," redirectCode",[756,5811,795],{"class":773},[756,5813,5814],{"class":1216}," 301",[756,5816,1559],{"class":773},[756,5818,975],{"class":912},[756,5820,5821],{"class":758,"line":1078},[756,5822,1075],{"class":773},[756,5824,5825,5827,5829],{"class":758,"line":1083},[756,5826,5552],{"class":773},[756,5828,5555],{"class":912},[756,5830,4089],{"class":773},[756,5832,5833],{"class":758,"line":1089},[756,5834,868],{"emptyLinePlaceholder":867},[756,5836,5837,5839,5842],{"class":758,"line":1115},[756,5838,1403],{"class":773},[756,5840,5841],{"class":912},"template",[756,5843,4089],{"class":773},[756,5845,5846,5849,5851,5854,5856,5858,5860,5862],{"class":758,"line":2000},[756,5847,5848],{"class":773},"  \u003C",[756,5850,4086],{"class":912},[756,5852,5853],{"class":822}," v-if",[756,5855,774],{"class":773},[756,5857,1176],{"class":773},[756,5859,1227],{"class":777},[756,5861,1176],{"class":773},[756,5863,4089],{"class":773},[756,5865,5866,5868,5870,5873,5876,5878,5880],{"class":758,"line":2053},[756,5867,4083],{"class":773},[756,5869,4098],{"class":912},[756,5871,5872],{"class":773},">",[756,5874,5875],{"class":769},"{{ page.data.fields.title }}",[756,5877,5552],{"class":773},[756,5879,4098],{"class":912},[756,5881,4089],{"class":773},[756,5883,5884,5886,5888,5891,5893,5895,5898,5900],{"class":758,"line":3327},[756,5885,4083],{"class":773},[756,5887,4126],{"class":912},[756,5889,5890],{"class":822}," v-html",[756,5892,774],{"class":773},[756,5894,1176],{"class":773},[756,5896,5897],{"class":777},"page.data.fields.body",[756,5899,1176],{"class":773},[756,5901,5902],{"class":773}," \u002F>\n",[756,5904,5905,5908,5910],{"class":758,"line":3332},[756,5906,5907],{"class":773},"  \u003C\u002F",[756,5909,4086],{"class":912},[756,5911,4089],{"class":773},[756,5913,5914,5916,5918],{"class":758,"line":3338},[756,5915,5552],{"class":773},[756,5917,5841],{"class":912},[756,5919,4089],{"class":773},[671,5921,5923],{"id":5922},"react","React",[3559,5925,5927],{"id":5926},"custom-hook-with-swr","Custom Hook with SWR",[732,5929,5931],{"className":808,"code":5930,"language":810,"meta":740,"style":740},"\u002F\u002F hooks\u002FuseCMS.js\nimport useSWR from 'swr'\n\nconst fetcher = async (url) => {\n  const response = await fetch(url, {\n    headers: { 'X-API-Key': process.env.REACT_APP_CMS_API_KEY }\n  })\n\n  if (!response.ok) {\n    throw new Error('API error')\n  }\n\n  return await response.json()\n}\n\nexport function usePages(options = {}) {\n  const params = new URLSearchParams({\n    limit: options.limit || '20',\n    page: options.page || '1',\n    ...(options.pageType && { pageType: options.pageType })\n  })\n\n  const { data, error, isLoading } = useSWR(\n    `${process.env.REACT_APP_CMS_BASE_URL}\u002Fpages?${params}`,\n    fetcher\n  )\n\n  return {\n    pages: data?.data,\n    pagination: data?.pagination,\n    isLoading,\n    error\n  }\n}\n\nexport function usePage(slug) {\n  const { data, error, isLoading } = useSWR(\n    `${process.env.REACT_APP_CMS_BASE_URL}\u002Fpages\u002F${slug}`,\n    fetcher\n  )\n\n  return {\n    page: data?.data,\n    redirect: data?.redirect,\n    isLoading,\n    error\n  }\n}\n\n\u002F\u002F Usage in component\nfunction BlogPost({ slug }) {\n  const { page, redirect, isLoading, error } = usePage(slug)\n\n  if (isLoading) return \u003Cdiv>Loading...\u003C\u002Fdiv>\n  if (error) return \u003Cdiv>Error loading page\u003C\u002Fdiv>\n\n  if (redirect) {\n    \u002F\u002F Handle redirect\n    window.location.href = `\u002F${redirect.to}`\n    return null\n  }\n\n  return (\n    \u003Carticle>\n      \u003Ch1>{page.fields.title}\u003C\u002Fh1>\n      \u003Cdiv dangerouslySetInnerHTML={{ __html: page.fields.body }} \u002F>\n    \u003C\u002Farticle>\n  )\n}\n",[618,5932,5933,5938,5955,5959,5981,6001,6030,6036,6040,6058,6077,6081,6085,6099,6103,6107,6126,6142,6165,6188,6219,6225,6229,6255,6283,6288,6292,6296,6302,6317,6332,6339,6344,6348,6352,6356,6373,6397,6423,6427,6431,6435,6441,6455,6470,6476,6480,6484,6488,6493,6498,6514,6547,6552,6582,6611,6616,6629,6635,6668,6676,6681,6686,6693,6702,6727,6754,6763,6768],{"__ignoreMap":740},[756,5934,5935],{"class":758,"line":759},[756,5936,5937],{"class":762},"\u002F\u002F hooks\u002FuseCMS.js\n",[756,5939,5940,5943,5946,5948,5950,5953],{"class":758,"line":766},[756,5941,5942],{"class":874},"import",[756,5944,5945],{"class":769}," useSWR ",[756,5947,2028],{"class":874},[756,5949,1547],{"class":773},[756,5951,5952],{"class":777},"swr",[756,5954,3757],{"class":773},[756,5956,5957],{"class":758,"line":780},[756,5958,868],{"emptyLinePlaceholder":867},[756,5960,5961,5963,5966,5968,5970,5972,5975,5977,5979],{"class":758,"line":864},[756,5962,823],{"class":822},[756,5964,5965],{"class":769}," fetcher ",[756,5967,774],{"class":773},[756,5969,878],{"class":822},[756,5971,989],{"class":773},[756,5973,5974],{"class":1322},"url",[756,5976,684],{"class":773},[756,5978,1325],{"class":822},[756,5980,891],{"class":773},[756,5982,5983,5985,5987,5989,5991,5993,5995,5997,5999],{"class":758,"line":871},[756,5984,897],{"class":822},[756,5986,900],{"class":769},[756,5988,903],{"class":773},[756,5990,906],{"class":874},[756,5992,909],{"class":884},[756,5994,913],{"class":912},[756,5996,5974],{"class":769},[756,5998,931],{"class":773},[756,6000,891],{"class":773},[756,6002,6003,6005,6007,6009,6011,6013,6015,6017,6019,6021,6023,6025,6028],{"class":758,"line":894},[756,6004,939],{"class":912},[756,6006,795],{"class":773},[756,6008,1094],{"class":773},[756,6010,1547],{"class":773},[756,6012,952],{"class":912},[756,6014,955],{"class":773},[756,6016,795],{"class":773},[756,6018,831],{"class":769},[756,6020,639],{"class":773},[756,6022,836],{"class":769},[756,6024,639],{"class":773},[756,6026,6027],{"class":769},"REACT_APP_CMS_API_KEY",[756,6029,1562],{"class":773},[756,6031,6032,6034],{"class":758,"line":936},[756,6033,972],{"class":773},[756,6035,975],{"class":912},[756,6037,6038],{"class":758,"line":946},[756,6039,868],{"emptyLinePlaceholder":867},[756,6041,6042,6044,6046,6048,6050,6052,6054,6056],{"class":758,"line":963},[756,6043,986],{"class":874},[756,6045,989],{"class":912},[756,6047,992],{"class":773},[756,6049,995],{"class":769},[756,6051,639],{"class":773},[756,6053,1000],{"class":769},[756,6055,1003],{"class":912},[756,6057,1006],{"class":773},[756,6059,6060,6062,6064,6066,6068,6070,6073,6075],{"class":758,"line":969},[756,6061,1012],{"class":874},[756,6063,1015],{"class":773},[756,6065,1018],{"class":884},[756,6067,913],{"class":912},[756,6069,955],{"class":773},[756,6071,6072],{"class":777},"API error",[756,6074,955],{"class":773},[756,6076,975],{"class":912},[756,6078,6079],{"class":758,"line":978},[756,6080,1046],{"class":773},[756,6082,6083],{"class":758,"line":983},[756,6084,868],{"emptyLinePlaceholder":867},[756,6086,6087,6089,6091,6093,6095,6097],{"class":758,"line":1009},[756,6088,1057],{"class":874},[756,6090,906],{"class":874},[756,6092,900],{"class":769},[756,6094,639],{"class":773},[756,6096,1066],{"class":884},[756,6098,1069],{"class":912},[756,6100,6101],{"class":758,"line":1043},[756,6102,1075],{"class":773},[756,6104,6105],{"class":758,"line":1049},[756,6106,868],{"emptyLinePlaceholder":867},[756,6108,6109,6111,6113,6116,6118,6120,6122,6124],{"class":758,"line":1054},[756,6110,875],{"class":874},[756,6112,881],{"class":822},[756,6114,6115],{"class":884}," usePages",[756,6117,913],{"class":773},[756,6119,5060],{"class":1322},[756,6121,903],{"class":773},[756,6123,5065],{"class":773},[756,6125,891],{"class":773},[756,6127,6128,6130,6132,6134,6136,6138,6140],{"class":758,"line":1072},[756,6129,897],{"class":822},[756,6131,2193],{"class":769},[756,6133,903],{"class":773},[756,6135,1015],{"class":773},[756,6137,5080],{"class":884},[756,6139,913],{"class":912},[756,6141,1006],{"class":773},[756,6143,6144,6147,6149,6151,6153,6155,6157,6159,6161,6163],{"class":758,"line":1078},[756,6145,6146],{"class":912},"    limit",[756,6148,795],{"class":773},[756,6150,5094],{"class":769},[756,6152,639],{"class":773},[756,6154,1243],{"class":769},[756,6156,5101],{"class":773},[756,6158,1547],{"class":773},[756,6160,5106],{"class":777},[756,6162,955],{"class":773},[756,6164,1220],{"class":773},[756,6166,6167,6170,6172,6174,6176,6178,6180,6182,6184,6186],{"class":758,"line":1083},[756,6168,6169],{"class":912},"    page",[756,6171,795],{"class":773},[756,6173,5094],{"class":769},[756,6175,639],{"class":773},[756,6177,1227],{"class":769},[756,6179,5101],{"class":773},[756,6181,1547],{"class":773},[756,6183,1690],{"class":777},[756,6185,955],{"class":773},[756,6187,1220],{"class":773},[756,6189,6190,6193,6195,6197,6199,6201,6203,6205,6207,6209,6211,6213,6215,6217],{"class":758,"line":1089},[756,6191,6192],{"class":773},"    ...",[756,6194,913],{"class":912},[756,6196,5060],{"class":769},[756,6198,639],{"class":773},[756,6200,5147],{"class":769},[756,6202,3138],{"class":773},[756,6204,1094],{"class":773},[756,6206,5154],{"class":912},[756,6208,795],{"class":773},[756,6210,5094],{"class":769},[756,6212,639],{"class":773},[756,6214,5147],{"class":769},[756,6216,1559],{"class":773},[756,6218,975],{"class":912},[756,6220,6221,6223],{"class":758,"line":1115},[756,6222,972],{"class":773},[756,6224,975],{"class":912},[756,6226,6227],{"class":758,"line":2000},[756,6228,868],{"emptyLinePlaceholder":867},[756,6230,6231,6233,6235,6237,6239,6241,6243,6246,6248,6250,6253],{"class":758,"line":2053},[756,6232,897],{"class":822},[756,6234,1094],{"class":773},[756,6236,1097],{"class":769},[756,6238,931],{"class":773},[756,6240,4671],{"class":769},[756,6242,931],{"class":773},[756,6244,6245],{"class":769}," isLoading",[756,6247,1559],{"class":773},[756,6249,903],{"class":773},[756,6251,6252],{"class":884}," useSWR",[756,6254,1503],{"class":912},[756,6256,6257,6259,6262,6264,6266,6268,6271,6273,6275,6277,6279,6281],{"class":758,"line":3327},[756,6258,1508],{"class":773},[756,6260,6261],{"class":769},"process",[756,6263,639],{"class":773},[756,6265,836],{"class":769},[756,6267,639],{"class":773},[756,6269,6270],{"class":769},"REACT_APP_CMS_BASE_URL",[756,6272,922],{"class":773},[756,6274,5254],{"class":777},[756,6276,1028],{"class":773},[756,6278,2216],{"class":769},[756,6280,1038],{"class":773},[756,6282,1220],{"class":773},[756,6284,6285],{"class":758,"line":3332},[756,6286,6287],{"class":769},"    fetcher\n",[756,6289,6290],{"class":758,"line":3338},[756,6291,1567],{"class":912},[756,6293,6294],{"class":758,"line":3358},[756,6295,868],{"emptyLinePlaceholder":867},[756,6297,6298,6300],{"class":758,"line":3366},[756,6299,1057],{"class":874},[756,6301,891],{"class":773},[756,6303,6304,6307,6309,6311,6313,6315],{"class":758,"line":3382},[756,6305,6306],{"class":912},"    pages",[756,6308,795],{"class":773},[756,6310,1097],{"class":769},[756,6312,5766],{"class":773},[756,6314,1135],{"class":769},[756,6316,1220],{"class":773},[756,6318,6319,6322,6324,6326,6328,6330],{"class":758,"line":3389},[756,6320,6321],{"class":912},"    pagination",[756,6323,795],{"class":773},[756,6325,1097],{"class":769},[756,6327,5766],{"class":773},[756,6329,1194],{"class":769},[756,6331,1220],{"class":773},[756,6333,6334,6337],{"class":758,"line":3394},[756,6335,6336],{"class":769},"    isLoading",[756,6338,1220],{"class":773},[756,6340,6341],{"class":758,"line":3402},[756,6342,6343],{"class":769},"    error\n",[756,6345,6346],{"class":758,"line":3407},[756,6347,1046],{"class":773},[756,6349,6350],{"class":758,"line":3412},[756,6351,1075],{"class":773},[756,6353,6354],{"class":758,"line":3422},[756,6355,868],{"emptyLinePlaceholder":867},[756,6357,6358,6360,6362,6365,6367,6369,6371],{"class":758,"line":3436},[756,6359,875],{"class":874},[756,6361,881],{"class":822},[756,6363,6364],{"class":884}," usePage",[756,6366,913],{"class":773},[756,6368,1345],{"class":1322},[756,6370,684],{"class":773},[756,6372,891],{"class":773},[756,6374,6375,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395],{"class":758,"line":3441},[756,6376,897],{"class":822},[756,6378,1094],{"class":773},[756,6380,1097],{"class":769},[756,6382,931],{"class":773},[756,6384,4671],{"class":769},[756,6386,931],{"class":773},[756,6388,6245],{"class":769},[756,6390,1559],{"class":773},[756,6392,903],{"class":773},[756,6394,6252],{"class":884},[756,6396,1503],{"class":912},[756,6398,6399,6401,6403,6405,6407,6409,6411,6413,6415,6417,6419,6421],{"class":758,"line":3446},[756,6400,1508],{"class":773},[756,6402,6261],{"class":769},[756,6404,639],{"class":773},[756,6406,836],{"class":769},[756,6408,639],{"class":773},[756,6410,6270],{"class":769},[756,6412,922],{"class":773},[756,6414,1774],{"class":777},[756,6416,1028],{"class":773},[756,6418,1345],{"class":769},[756,6420,1038],{"class":773},[756,6422,1220],{"class":773},[756,6424,6425],{"class":758,"line":3451},[756,6426,6287],{"class":769},[756,6428,6429],{"class":758,"line":3456},[756,6430,1567],{"class":912},[756,6432,6433],{"class":758,"line":3482},[756,6434,868],{"emptyLinePlaceholder":867},[756,6436,6437,6439],{"class":758,"line":3487},[756,6438,1057],{"class":874},[756,6440,891],{"class":773},[756,6442,6443,6445,6447,6449,6451,6453],{"class":758,"line":3520},[756,6444,6169],{"class":912},[756,6446,795],{"class":773},[756,6448,1097],{"class":769},[756,6450,5766],{"class":773},[756,6452,1135],{"class":769},[756,6454,1220],{"class":773},[756,6456,6457,6460,6462,6464,6466,6468],{"class":758,"line":4092},[756,6458,6459],{"class":912},"    redirect",[756,6461,795],{"class":773},[756,6463,1097],{"class":769},[756,6465,5766],{"class":773},[756,6467,2023],{"class":769},[756,6469,1220],{"class":773},[756,6471,6472,6474],{"class":758,"line":4121},[756,6473,6336],{"class":769},[756,6475,1220],{"class":773},[756,6477,6478],{"class":758,"line":4154},[756,6479,6343],{"class":769},[756,6481,6482],{"class":758,"line":4164},[756,6483,1046],{"class":773},[756,6485,6486],{"class":758,"line":4169},[756,6487,1075],{"class":773},[756,6489,6491],{"class":758,"line":6490},49,[756,6492,868],{"emptyLinePlaceholder":867},[756,6494,6496],{"class":758,"line":6495},50,[756,6497,5429],{"class":762},[756,6499,6501,6504,6506,6508,6510,6512],{"class":758,"line":6500},51,[756,6502,6503],{"class":822},"function",[756,6505,4063],{"class":884},[756,6507,2190],{"class":773},[756,6509,3725],{"class":1322},[756,6511,2196],{"class":773},[756,6513,891],{"class":773},[756,6515,6517,6519,6521,6523,6525,6527,6529,6531,6533,6535,6537,6539,6541,6543,6545],{"class":758,"line":6516},52,[756,6518,897],{"class":822},[756,6520,1094],{"class":773},[756,6522,1895],{"class":769},[756,6524,931],{"class":773},[756,6526,1868],{"class":769},[756,6528,931],{"class":773},[756,6530,6245],{"class":769},[756,6532,931],{"class":773},[756,6534,4671],{"class":769},[756,6536,1559],{"class":773},[756,6538,903],{"class":773},[756,6540,6364],{"class":884},[756,6542,913],{"class":912},[756,6544,1345],{"class":769},[756,6546,975],{"class":912},[756,6548,6550],{"class":758,"line":6549},53,[756,6551,868],{"emptyLinePlaceholder":867},[756,6553,6555,6557,6559,6562,6564,6567,6569,6571,6573,6576,6578,6580],{"class":758,"line":6554},54,[756,6556,986],{"class":874},[756,6558,989],{"class":912},[756,6560,6561],{"class":769},"isLoading",[756,6563,1003],{"class":912},[756,6565,6566],{"class":874},"return",[756,6568,1649],{"class":773},[756,6570,4126],{"class":912},[756,6572,5872],{"class":773},[756,6574,6575],{"class":769},"Loading...",[756,6577,5552],{"class":773},[756,6579,4126],{"class":912},[756,6581,4089],{"class":773},[756,6583,6585,6587,6589,6592,6594,6596,6598,6600,6602,6605,6607,6609],{"class":758,"line":6584},55,[756,6586,986],{"class":874},[756,6588,989],{"class":912},[756,6590,6591],{"class":769},"error",[756,6593,1003],{"class":912},[756,6595,6566],{"class":874},[756,6597,1649],{"class":773},[756,6599,4126],{"class":912},[756,6601,5872],{"class":773},[756,6603,6604],{"class":769},"Error loading page",[756,6606,5552],{"class":773},[756,6608,4126],{"class":912},[756,6610,4089],{"class":773},[756,6612,6614],{"class":758,"line":6613},56,[756,6615,868],{"emptyLinePlaceholder":867},[756,6617,6619,6621,6623,6625,6627],{"class":758,"line":6618},57,[756,6620,986],{"class":874},[756,6622,989],{"class":912},[756,6624,2023],{"class":769},[756,6626,1003],{"class":912},[756,6628,1006],{"class":773},[756,6630,6632],{"class":758,"line":6631},58,[756,6633,6634],{"class":762},"    \u002F\u002F Handle redirect\n",[756,6636,6638,6641,6643,6646,6648,6651,6653,6655,6657,6659,6661,6663,6665],{"class":758,"line":6637},59,[756,6639,6640],{"class":769},"    window",[756,6642,639],{"class":773},[756,6644,6645],{"class":769},"location",[756,6647,639],{"class":773},[756,6649,6650],{"class":769},"href",[756,6652,903],{"class":773},[756,6654,2311],{"class":773},[756,6656,2314],{"class":777},[756,6658,1028],{"class":773},[756,6660,2023],{"class":769},[756,6662,639],{"class":773},[756,6664,2046],{"class":769},[756,6666,6667],{"class":773},"}`\n",[756,6669,6671,6673],{"class":758,"line":6670},60,[756,6672,1841],{"class":874},[756,6674,6675],{"class":773}," null\n",[756,6677,6679],{"class":758,"line":6678},61,[756,6680,1046],{"class":773},[756,6682,6684],{"class":758,"line":6683},62,[756,6685,868],{"emptyLinePlaceholder":867},[756,6687,6689,6691],{"class":758,"line":6688},63,[756,6690,1057],{"class":874},[756,6692,4078],{"class":912},[756,6694,6696,6698,6700],{"class":758,"line":6695},64,[756,6697,4083],{"class":773},[756,6699,4086],{"class":912},[756,6701,4089],{"class":773},[756,6703,6705,6707,6709,6711,6713,6715,6717,6719,6721,6723,6725],{"class":758,"line":6704},65,[756,6706,4095],{"class":773},[756,6708,4098],{"class":912},[756,6710,4101],{"class":773},[756,6712,1227],{"class":769},[756,6714,639],{"class":773},[756,6716,1367],{"class":769},[756,6718,639],{"class":773},[756,6720,1372],{"class":769},[756,6722,4114],{"class":773},[756,6724,4098],{"class":912},[756,6726,4089],{"class":773},[756,6728,6730,6732,6734,6736,6738,6740,6742,6744,6746,6748,6750,6752],{"class":758,"line":6729},66,[756,6731,4095],{"class":773},[756,6733,4126],{"class":912},[756,6735,4129],{"class":822},[756,6737,4132],{"class":773},[756,6739,4135],{"class":912},[756,6741,795],{"class":773},[756,6743,1895],{"class":769},[756,6745,639],{"class":773},[756,6747,1367],{"class":769},[756,6749,639],{"class":773},[756,6751,4148],{"class":769},[756,6753,4151],{"class":773},[756,6755,6757,6759,6761],{"class":758,"line":6756},67,[756,6758,4157],{"class":773},[756,6760,4086],{"class":912},[756,6762,4089],{"class":773},[756,6764,6766],{"class":758,"line":6765},68,[756,6767,1567],{"class":912},[756,6769,6771],{"class":758,"line":6770},69,[756,6772,1075],{"class":773},[3559,6774,6776],{"id":6775},"context-provider","Context Provider",[732,6778,6780],{"className":808,"code":6779,"language":810,"meta":740,"style":740},"\u002F\u002F context\u002FCMSContext.js\nimport { createContext, useContext } from 'react'\n\nconst CMSContext = createContext()\n\nexport function CMSProvider({ children, apiKey, baseUrl }) {\n  async function fetchPages(options) {\n    const params = new URLSearchParams(options)\n    const response = await fetch(`${baseUrl}\u002Fpages?${params}`, {\n      headers: { 'X-API-Key': apiKey }\n    })\n    return await response.json()\n  }\n\n  async function fetchPage(slug) {\n    const response = await fetch(`${baseUrl}\u002Fpages\u002F${slug}`, {\n      headers: { 'X-API-Key': apiKey }\n    })\n    return await response.json()\n  }\n\n  return (\n    \u003CCMSContext.Provider value={{ fetchPages, fetchPage }}>\n      {children}\n    \u003C\u002FCMSContext.Provider>\n  )\n}\n\nexport function useCMS() {\n  return useContext(CMSContext)\n}\n\n\u002F\u002F App.js\nfunction App() {\n  return (\n    \u003CCMSProvider\n      apiKey={process.env.REACT_APP_CMS_API_KEY}\n      baseUrl={process.env.REACT_APP_CMS_BASE_URL}\n    >\n      \u003CYourApp \u002F>\n    \u003C\u002FCMSProvider>\n  )\n}\n",[618,6781,6782,6787,6812,6816,6829,6833,6861,6877,6895,6928,6948,6954,6968,6972,6976,6992,7024,7044,7050,7064,7068,7072,7078,7099,7109,7117,7121,7125,7129,7141,7154,7158,7162,7167,7178,7184,7191,7211,7230,7235,7244,7253,7257],{"__ignoreMap":740},[756,6783,6784],{"class":758,"line":759},[756,6785,6786],{"class":762},"\u002F\u002F context\u002FCMSContext.js\n",[756,6788,6789,6791,6793,6796,6798,6801,6803,6806,6808,6810],{"class":758,"line":766},[756,6790,5942],{"class":874},[756,6792,1094],{"class":773},[756,6794,6795],{"class":769}," createContext",[756,6797,931],{"class":773},[756,6799,6800],{"class":769}," useContext",[756,6802,1559],{"class":773},[756,6804,6805],{"class":874}," from",[756,6807,1547],{"class":773},[756,6809,5922],{"class":777},[756,6811,3757],{"class":773},[756,6813,6814],{"class":758,"line":780},[756,6815,868],{"emptyLinePlaceholder":867},[756,6817,6818,6820,6823,6825,6827],{"class":758,"line":864},[756,6819,823],{"class":822},[756,6821,6822],{"class":769}," CMSContext ",[756,6824,774],{"class":773},[756,6826,6795],{"class":884},[756,6828,1069],{"class":769},[756,6830,6831],{"class":758,"line":871},[756,6832,868],{"emptyLinePlaceholder":867},[756,6834,6835,6837,6839,6842,6844,6847,6849,6852,6854,6857,6859],{"class":758,"line":894},[756,6836,875],{"class":874},[756,6838,881],{"class":822},[756,6840,6841],{"class":884}," CMSProvider",[756,6843,2190],{"class":773},[756,6845,6846],{"class":1322}," children",[756,6848,931],{"class":773},[756,6850,6851],{"class":1322}," apiKey",[756,6853,931],{"class":773},[756,6855,6856],{"class":1322}," baseUrl",[756,6858,2196],{"class":773},[756,6860,891],{"class":773},[756,6862,6863,6865,6867,6869,6871,6873,6875],{"class":758,"line":936},[756,6864,3079],{"class":822},[756,6866,881],{"class":822},[756,6868,885],{"class":884},[756,6870,913],{"class":773},[756,6872,5060],{"class":1322},[756,6874,684],{"class":773},[756,6876,891],{"class":773},[756,6878,6879,6881,6883,6885,6887,6889,6891,6893],{"class":758,"line":946},[756,6880,3095],{"class":822},[756,6882,2193],{"class":769},[756,6884,903],{"class":773},[756,6886,1015],{"class":773},[756,6888,5080],{"class":884},[756,6890,913],{"class":912},[756,6892,5060],{"class":769},[756,6894,975],{"class":912},[756,6896,6897,6899,6901,6903,6905,6907,6909,6911,6914,6916,6918,6920,6922,6924,6926],{"class":758,"line":963},[756,6898,3095],{"class":822},[756,6900,900],{"class":769},[756,6902,903],{"class":773},[756,6904,906],{"class":874},[756,6906,909],{"class":884},[756,6908,913],{"class":912},[756,6910,916],{"class":773},[756,6912,6913],{"class":769},"baseUrl",[756,6915,922],{"class":773},[756,6917,5254],{"class":777},[756,6919,1028],{"class":773},[756,6921,2216],{"class":769},[756,6923,1038],{"class":773},[756,6925,931],{"class":773},[756,6927,891],{"class":773},[756,6929,6930,6932,6934,6936,6938,6940,6942,6944,6946],{"class":758,"line":969},[756,6931,3277],{"class":912},[756,6933,795],{"class":773},[756,6935,1094],{"class":773},[756,6937,1547],{"class":773},[756,6939,952],{"class":912},[756,6941,955],{"class":773},[756,6943,795],{"class":773},[756,6945,6851],{"class":769},[756,6947,1562],{"class":773},[756,6949,6950,6952],{"class":758,"line":978},[756,6951,3300],{"class":773},[756,6953,975],{"class":912},[756,6955,6956,6958,6960,6962,6964,6966],{"class":758,"line":983},[756,6957,1841],{"class":874},[756,6959,906],{"class":874},[756,6961,900],{"class":769},[756,6963,639],{"class":773},[756,6965,1066],{"class":884},[756,6967,1069],{"class":912},[756,6969,6970],{"class":758,"line":1009},[756,6971,1046],{"class":773},[756,6973,6974],{"class":758,"line":1043},[756,6975,868],{"emptyLinePlaceholder":867},[756,6977,6978,6980,6982,6984,6986,6988,6990],{"class":758,"line":1049},[756,6979,3079],{"class":822},[756,6981,881],{"class":822},[756,6983,5312],{"class":884},[756,6985,913],{"class":773},[756,6987,1345],{"class":1322},[756,6989,684],{"class":773},[756,6991,891],{"class":773},[756,6993,6994,6996,6998,7000,7002,7004,7006,7008,7010,7012,7014,7016,7018,7020,7022],{"class":758,"line":1054},[756,6995,3095],{"class":822},[756,6997,900],{"class":769},[756,6999,903],{"class":773},[756,7001,906],{"class":874},[756,7003,909],{"class":884},[756,7005,913],{"class":912},[756,7007,916],{"class":773},[756,7009,6913],{"class":769},[756,7011,922],{"class":773},[756,7013,1774],{"class":777},[756,7015,1028],{"class":773},[756,7017,1345],{"class":769},[756,7019,1038],{"class":773},[756,7021,931],{"class":773},[756,7023,891],{"class":773},[756,7025,7026,7028,7030,7032,7034,7036,7038,7040,7042],{"class":758,"line":1072},[756,7027,3277],{"class":912},[756,7029,795],{"class":773},[756,7031,1094],{"class":773},[756,7033,1547],{"class":773},[756,7035,952],{"class":912},[756,7037,955],{"class":773},[756,7039,795],{"class":773},[756,7041,6851],{"class":769},[756,7043,1562],{"class":773},[756,7045,7046,7048],{"class":758,"line":1078},[756,7047,3300],{"class":773},[756,7049,975],{"class":912},[756,7051,7052,7054,7056,7058,7060,7062],{"class":758,"line":1083},[756,7053,1841],{"class":874},[756,7055,906],{"class":874},[756,7057,900],{"class":769},[756,7059,639],{"class":773},[756,7061,1066],{"class":884},[756,7063,1069],{"class":912},[756,7065,7066],{"class":758,"line":1089},[756,7067,1046],{"class":773},[756,7069,7070],{"class":758,"line":1115},[756,7071,868],{"emptyLinePlaceholder":867},[756,7073,7074,7076],{"class":758,"line":2000},[756,7075,1057],{"class":874},[756,7077,4078],{"class":912},[756,7079,7080,7082,7085,7088,7090,7092,7094,7096],{"class":758,"line":2053},[756,7081,4083],{"class":773},[756,7083,7084],{"class":1208},"CMSContext.Provider",[756,7086,7087],{"class":822}," value",[756,7089,4132],{"class":773},[756,7091,885],{"class":769},[756,7093,931],{"class":773},[756,7095,5447],{"class":769},[756,7097,7098],{"class":773},"}}>\n",[756,7100,7101,7104,7107],{"class":758,"line":3327},[756,7102,7103],{"class":773},"      {",[756,7105,7106],{"class":769},"children",[756,7108,1075],{"class":773},[756,7110,7111,7113,7115],{"class":758,"line":3332},[756,7112,4157],{"class":773},[756,7114,7084],{"class":1208},[756,7116,4089],{"class":773},[756,7118,7119],{"class":758,"line":3338},[756,7120,1567],{"class":912},[756,7122,7123],{"class":758,"line":3358},[756,7124,1075],{"class":773},[756,7126,7127],{"class":758,"line":3366},[756,7128,868],{"emptyLinePlaceholder":867},[756,7130,7131,7133,7135,7137,7139],{"class":758,"line":3382},[756,7132,875],{"class":874},[756,7134,881],{"class":822},[756,7136,5025],{"class":884},[756,7138,888],{"class":773},[756,7140,891],{"class":773},[756,7142,7143,7145,7147,7149,7152],{"class":758,"line":3389},[756,7144,1057],{"class":874},[756,7146,6800],{"class":884},[756,7148,913],{"class":912},[756,7150,7151],{"class":769},"CMSContext",[756,7153,975],{"class":912},[756,7155,7156],{"class":758,"line":3394},[756,7157,1075],{"class":773},[756,7159,7160],{"class":758,"line":3402},[756,7161,868],{"emptyLinePlaceholder":867},[756,7163,7164],{"class":758,"line":3407},[756,7165,7166],{"class":762},"\u002F\u002F App.js\n",[756,7168,7169,7171,7174,7176],{"class":758,"line":3412},[756,7170,6503],{"class":822},[756,7172,7173],{"class":884}," App",[756,7175,888],{"class":773},[756,7177,891],{"class":773},[756,7179,7180,7182],{"class":758,"line":3422},[756,7181,1057],{"class":874},[756,7183,4078],{"class":912},[756,7185,7186,7188],{"class":758,"line":3436},[756,7187,4083],{"class":773},[756,7189,7190],{"class":1208},"CMSProvider\n",[756,7192,7193,7196,7199,7201,7203,7205,7207,7209],{"class":758,"line":3441},[756,7194,7195],{"class":822},"      apiKey",[756,7197,7198],{"class":773},"={",[756,7200,6261],{"class":769},[756,7202,639],{"class":773},[756,7204,836],{"class":769},[756,7206,639],{"class":773},[756,7208,6027],{"class":769},[756,7210,1075],{"class":773},[756,7212,7213,7216,7218,7220,7222,7224,7226,7228],{"class":758,"line":3446},[756,7214,7215],{"class":822},"      baseUrl",[756,7217,7198],{"class":773},[756,7219,6261],{"class":769},[756,7221,639],{"class":773},[756,7223,836],{"class":769},[756,7225,639],{"class":773},[756,7227,6270],{"class":769},[756,7229,1075],{"class":773},[756,7231,7232],{"class":758,"line":3451},[756,7233,7234],{"class":773},"    >\n",[756,7236,7237,7239,7242],{"class":758,"line":3456},[756,7238,4095],{"class":773},[756,7240,7241],{"class":1208},"YourApp",[756,7243,5902],{"class":773},[756,7245,7246,7248,7251],{"class":758,"line":3482},[756,7247,4157],{"class":773},[756,7249,7250],{"class":1208},"CMSProvider",[756,7252,4089],{"class":773},[756,7254,7255],{"class":758,"line":3487},[756,7256,1567],{"class":912},[756,7258,7259],{"class":758,"line":3520},[756,7260,1075],{"class":773},[671,7262,7264],{"id":7263},"vue-3","Vue 3",[3559,7266,5006],{"id":7267},"composable-1",[732,7269,7271],{"className":808,"code":7270,"language":810,"meta":740,"style":740},"\u002F\u002F composables\u002FuseCMS.js\nimport { ref } from 'vue'\n\nexport function useCMS() {\n  const loading = ref(false)\n  const error = ref(null)\n\n  async function fetchPages(options = {}) {\n    loading.value = true\n    error.value = null\n\n    try {\n      const params = new URLSearchParams({\n        limit: options.limit || '20',\n        page: options.page || '1',\n        ...(options.pageType && { pageType: options.pageType }),\n        ...(options.fields && { fields: options.fields.join(',') })\n      })\n\n      const response = await fetch(\n        `${import.meta.env.VITE_CMS_BASE_URL}\u002Fpages?${params}`,\n        { headers: { 'X-API-Key': import.meta.env.VITE_CMS_API_KEY } }\n      )\n\n      if (!response.ok) {\n        throw new Error(`API error: ${response.status}`)\n      }\n\n      return await response.json()\n    } catch (e) {\n      error.value = e.message\n      throw e\n    } finally {\n      loading.value = false\n    }\n  }\n\n  async function fetchPage(slug) {\n    loading.value = true\n    error.value = null\n\n    try {\n      const response = await fetch(\n        `${import.meta.env.VITE_CMS_BASE_URL}\u002Fpages\u002F${slug}`,\n        { headers: { 'X-API-Key': import.meta.env.VITE_CMS_API_KEY } }\n      )\n\n      if (!response.ok) {\n        throw new Error(`API error: ${response.status}`)\n      }\n\n      return await response.json()\n    } catch (e) {\n      error.value = e.message\n      throw e\n    } finally {\n      loading.value = false\n    }\n  }\n\n  return {\n    fetchPages,\n    fetchPage,\n    loading,\n    error\n  }\n}\n",[618,7272,7273,7278,7297,7301,7313,7331,7348,7352,7370,7383,7396,7400,7407,7424,7447,7470,7503,7547,7554,7558,7572,7605,7644,7649,7653,7672,7699,7703,7707,7721,7737,7756,7764,7773,7787,7791,7795,7799,7815,7827,7839,7843,7849,7863,7893,7929,7933,7937,7955,7981,7985,7989,8003,8017,8033,8039,8047,8059,8063,8067,8071,8077,8083,8090,8096,8100,8104],{"__ignoreMap":740},[756,7274,7275],{"class":758,"line":759},[756,7276,7277],{"class":762},"\u002F\u002F composables\u002FuseCMS.js\n",[756,7279,7280,7282,7284,7287,7289,7291,7293,7295],{"class":758,"line":766},[756,7281,5942],{"class":874},[756,7283,1094],{"class":773},[756,7285,7286],{"class":769}," ref",[756,7288,1559],{"class":773},[756,7290,6805],{"class":874},[756,7292,1547],{"class":773},[756,7294,5566],{"class":777},[756,7296,3757],{"class":773},[756,7298,7299],{"class":758,"line":780},[756,7300,868],{"emptyLinePlaceholder":867},[756,7302,7303,7305,7307,7309,7311],{"class":758,"line":864},[756,7304,875],{"class":874},[756,7306,881],{"class":822},[756,7308,5025],{"class":884},[756,7310,888],{"class":773},[756,7312,891],{"class":773},[756,7314,7315,7317,7320,7322,7324,7326,7329],{"class":758,"line":871},[756,7316,897],{"class":822},[756,7318,7319],{"class":769}," loading",[756,7321,903],{"class":773},[756,7323,7286],{"class":884},[756,7325,913],{"class":912},[756,7327,7328],{"class":2254},"false",[756,7330,975],{"class":912},[756,7332,7333,7335,7337,7339,7341,7343,7346],{"class":758,"line":894},[756,7334,897],{"class":822},[756,7336,4671],{"class":769},[756,7338,903],{"class":773},[756,7340,7286],{"class":884},[756,7342,913],{"class":912},[756,7344,7345],{"class":773},"null",[756,7347,975],{"class":912},[756,7349,7350],{"class":758,"line":936},[756,7351,868],{"emptyLinePlaceholder":867},[756,7353,7354,7356,7358,7360,7362,7364,7366,7368],{"class":758,"line":946},[756,7355,3079],{"class":822},[756,7357,881],{"class":822},[756,7359,885],{"class":884},[756,7361,913],{"class":773},[756,7363,5060],{"class":1322},[756,7365,903],{"class":773},[756,7367,5065],{"class":773},[756,7369,891],{"class":773},[756,7371,7372,7375,7377,7379,7381],{"class":758,"line":963},[756,7373,7374],{"class":769},"    loading",[756,7376,639],{"class":773},[756,7378,5763],{"class":769},[756,7380,903],{"class":773},[756,7382,2152],{"class":2254},[756,7384,7385,7388,7390,7392,7394],{"class":758,"line":969},[756,7386,7387],{"class":769},"    error",[756,7389,639],{"class":773},[756,7391,5763],{"class":769},[756,7393,903],{"class":773},[756,7395,6675],{"class":773},[756,7397,7398],{"class":758,"line":978},[756,7399,868],{"emptyLinePlaceholder":867},[756,7401,7402,7405],{"class":758,"line":983},[756,7403,7404],{"class":874},"    try",[756,7406,891],{"class":773},[756,7408,7409,7412,7414,7416,7418,7420,7422],{"class":758,"line":1009},[756,7410,7411],{"class":822},"      const",[756,7413,2193],{"class":769},[756,7415,903],{"class":773},[756,7417,1015],{"class":773},[756,7419,5080],{"class":884},[756,7421,913],{"class":912},[756,7423,1006],{"class":773},[756,7425,7426,7429,7431,7433,7435,7437,7439,7441,7443,7445],{"class":758,"line":1043},[756,7427,7428],{"class":912},"        limit",[756,7430,795],{"class":773},[756,7432,5094],{"class":769},[756,7434,639],{"class":773},[756,7436,1243],{"class":769},[756,7438,5101],{"class":773},[756,7440,1547],{"class":773},[756,7442,5106],{"class":777},[756,7444,955],{"class":773},[756,7446,1220],{"class":773},[756,7448,7449,7452,7454,7456,7458,7460,7462,7464,7466,7468],{"class":758,"line":1049},[756,7450,7451],{"class":912},"        page",[756,7453,795],{"class":773},[756,7455,5094],{"class":769},[756,7457,639],{"class":773},[756,7459,1227],{"class":769},[756,7461,5101],{"class":773},[756,7463,1547],{"class":773},[756,7465,1690],{"class":777},[756,7467,955],{"class":773},[756,7469,1220],{"class":773},[756,7471,7472,7475,7477,7479,7481,7483,7485,7487,7489,7491,7493,7495,7497,7499,7501],{"class":758,"line":1054},[756,7473,7474],{"class":773},"        ...",[756,7476,913],{"class":912},[756,7478,5060],{"class":769},[756,7480,639],{"class":773},[756,7482,5147],{"class":769},[756,7484,3138],{"class":773},[756,7486,1094],{"class":773},[756,7488,5154],{"class":912},[756,7490,795],{"class":773},[756,7492,5094],{"class":769},[756,7494,639],{"class":773},[756,7496,5147],{"class":769},[756,7498,1559],{"class":773},[756,7500,684],{"class":912},[756,7502,1220],{"class":773},[756,7504,7505,7507,7509,7511,7513,7515,7517,7519,7521,7523,7525,7527,7529,7531,7533,7535,7537,7539,7541,7543,7545],{"class":758,"line":1072},[756,7506,7474],{"class":773},[756,7508,913],{"class":912},[756,7510,5060],{"class":769},[756,7512,639],{"class":773},[756,7514,1367],{"class":769},[756,7516,3138],{"class":773},[756,7518,1094],{"class":773},[756,7520,5187],{"class":912},[756,7522,795],{"class":773},[756,7524,5094],{"class":769},[756,7526,639],{"class":773},[756,7528,1367],{"class":769},[756,7530,639],{"class":773},[756,7532,5200],{"class":884},[756,7534,913],{"class":912},[756,7536,955],{"class":773},[756,7538,931],{"class":777},[756,7540,955],{"class":773},[756,7542,1003],{"class":912},[756,7544,922],{"class":773},[756,7546,975],{"class":912},[756,7548,7549,7552],{"class":758,"line":1078},[756,7550,7551],{"class":773},"      }",[756,7553,975],{"class":912},[756,7555,7556],{"class":758,"line":1083},[756,7557,868],{"emptyLinePlaceholder":867},[756,7559,7560,7562,7564,7566,7568,7570],{"class":758,"line":1089},[756,7561,7411],{"class":822},[756,7563,900],{"class":769},[756,7565,903],{"class":773},[756,7567,906],{"class":874},[756,7569,909],{"class":884},[756,7571,1503],{"class":912},[756,7573,7574,7577,7579,7581,7584,7586,7588,7590,7593,7595,7597,7599,7601,7603],{"class":758,"line":1115},[756,7575,7576],{"class":773},"        `${",[756,7578,5942],{"class":874},[756,7580,639],{"class":773},[756,7582,7583],{"class":769},"meta",[756,7585,639],{"class":773},[756,7587,836],{"class":769},[756,7589,639],{"class":773},[756,7591,7592],{"class":769},"VITE_CMS_BASE_URL",[756,7594,922],{"class":773},[756,7596,5254],{"class":777},[756,7598,1028],{"class":773},[756,7600,2216],{"class":769},[756,7602,1038],{"class":773},[756,7604,1220],{"class":773},[756,7606,7607,7610,7612,7614,7616,7618,7620,7622,7624,7627,7629,7631,7633,7635,7637,7640,7642],{"class":758,"line":2000},[756,7608,7609],{"class":773},"        {",[756,7611,1540],{"class":912},[756,7613,795],{"class":773},[756,7615,1094],{"class":773},[756,7617,1547],{"class":773},[756,7619,952],{"class":912},[756,7621,955],{"class":773},[756,7623,795],{"class":773},[756,7625,7626],{"class":874}," import",[756,7628,639],{"class":773},[756,7630,7583],{"class":769},[756,7632,639],{"class":773},[756,7634,836],{"class":769},[756,7636,639],{"class":773},[756,7638,7639],{"class":769},"VITE_CMS_API_KEY",[756,7641,1559],{"class":773},[756,7643,1562],{"class":773},[756,7645,7646],{"class":758,"line":2053},[756,7647,7648],{"class":912},"      )\n",[756,7650,7651],{"class":758,"line":3327},[756,7652,868],{"emptyLinePlaceholder":867},[756,7654,7655,7658,7660,7662,7664,7666,7668,7670],{"class":758,"line":3332},[756,7656,7657],{"class":874},"      if",[756,7659,989],{"class":912},[756,7661,992],{"class":773},[756,7663,995],{"class":769},[756,7665,639],{"class":773},[756,7667,1000],{"class":769},[756,7669,1003],{"class":912},[756,7671,1006],{"class":773},[756,7673,7674,7677,7679,7681,7683,7685,7687,7689,7691,7693,7695,7697],{"class":758,"line":3338},[756,7675,7676],{"class":874},"        throw",[756,7678,1015],{"class":773},[756,7680,1018],{"class":884},[756,7682,913],{"class":912},[756,7684,928],{"class":773},[756,7686,1025],{"class":777},[756,7688,1028],{"class":773},[756,7690,995],{"class":769},[756,7692,639],{"class":773},[756,7694,1035],{"class":769},[756,7696,1038],{"class":773},[756,7698,975],{"class":912},[756,7700,7701],{"class":758,"line":3358},[756,7702,2344],{"class":773},[756,7704,7705],{"class":758,"line":3366},[756,7706,868],{"emptyLinePlaceholder":867},[756,7708,7709,7711,7713,7715,7717,7719],{"class":758,"line":3382},[756,7710,3199],{"class":874},[756,7712,906],{"class":874},[756,7714,900],{"class":769},[756,7716,639],{"class":773},[756,7718,1066],{"class":884},[756,7720,1069],{"class":912},[756,7722,7723,7725,7728,7730,7733,7735],{"class":758,"line":3389},[756,7724,3300],{"class":773},[756,7726,7727],{"class":874}," catch",[756,7729,989],{"class":912},[756,7731,7732],{"class":769},"e",[756,7734,1003],{"class":912},[756,7736,1006],{"class":773},[756,7738,7739,7742,7744,7746,7748,7751,7753],{"class":758,"line":3394},[756,7740,7741],{"class":769},"      error",[756,7743,639],{"class":773},[756,7745,5763],{"class":769},[756,7747,903],{"class":773},[756,7749,7750],{"class":769}," e",[756,7752,639],{"class":773},[756,7754,7755],{"class":769},"message\n",[756,7757,7758,7761],{"class":758,"line":3402},[756,7759,7760],{"class":874},"      throw",[756,7762,7763],{"class":769}," e\n",[756,7765,7766,7768,7771],{"class":758,"line":3407},[756,7767,3300],{"class":773},[756,7769,7770],{"class":874}," finally",[756,7772,891],{"class":773},[756,7774,7775,7778,7780,7782,7784],{"class":758,"line":3412},[756,7776,7777],{"class":769},"      loading",[756,7779,639],{"class":773},[756,7781,5763],{"class":769},[756,7783,903],{"class":773},[756,7785,7786],{"class":2254}," false\n",[756,7788,7789],{"class":758,"line":3422},[756,7790,966],{"class":773},[756,7792,7793],{"class":758,"line":3436},[756,7794,1046],{"class":773},[756,7796,7797],{"class":758,"line":3441},[756,7798,868],{"emptyLinePlaceholder":867},[756,7800,7801,7803,7805,7807,7809,7811,7813],{"class":758,"line":3446},[756,7802,3079],{"class":822},[756,7804,881],{"class":822},[756,7806,5312],{"class":884},[756,7808,913],{"class":773},[756,7810,1345],{"class":1322},[756,7812,684],{"class":773},[756,7814,891],{"class":773},[756,7816,7817,7819,7821,7823,7825],{"class":758,"line":3451},[756,7818,7374],{"class":769},[756,7820,639],{"class":773},[756,7822,5763],{"class":769},[756,7824,903],{"class":773},[756,7826,2152],{"class":2254},[756,7828,7829,7831,7833,7835,7837],{"class":758,"line":3456},[756,7830,7387],{"class":769},[756,7832,639],{"class":773},[756,7834,5763],{"class":769},[756,7836,903],{"class":773},[756,7838,6675],{"class":773},[756,7840,7841],{"class":758,"line":3482},[756,7842,868],{"emptyLinePlaceholder":867},[756,7844,7845,7847],{"class":758,"line":3487},[756,7846,7404],{"class":874},[756,7848,891],{"class":773},[756,7850,7851,7853,7855,7857,7859,7861],{"class":758,"line":3520},[756,7852,7411],{"class":822},[756,7854,900],{"class":769},[756,7856,903],{"class":773},[756,7858,906],{"class":874},[756,7860,909],{"class":884},[756,7862,1503],{"class":912},[756,7864,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891],{"class":758,"line":4092},[756,7866,7576],{"class":773},[756,7868,5942],{"class":874},[756,7870,639],{"class":773},[756,7872,7583],{"class":769},[756,7874,639],{"class":773},[756,7876,836],{"class":769},[756,7878,639],{"class":773},[756,7880,7592],{"class":769},[756,7882,922],{"class":773},[756,7884,1774],{"class":777},[756,7886,1028],{"class":773},[756,7888,1345],{"class":769},[756,7890,1038],{"class":773},[756,7892,1220],{"class":773},[756,7894,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927],{"class":758,"line":4121},[756,7896,7609],{"class":773},[756,7898,1540],{"class":912},[756,7900,795],{"class":773},[756,7902,1094],{"class":773},[756,7904,1547],{"class":773},[756,7906,952],{"class":912},[756,7908,955],{"class":773},[756,7910,795],{"class":773},[756,7912,7626],{"class":874},[756,7914,639],{"class":773},[756,7916,7583],{"class":769},[756,7918,639],{"class":773},[756,7920,836],{"class":769},[756,7922,639],{"class":773},[756,7924,7639],{"class":769},[756,7926,1559],{"class":773},[756,7928,1562],{"class":773},[756,7930,7931],{"class":758,"line":4154},[756,7932,7648],{"class":912},[756,7934,7935],{"class":758,"line":4164},[756,7936,868],{"emptyLinePlaceholder":867},[756,7938,7939,7941,7943,7945,7947,7949,7951,7953],{"class":758,"line":4169},[756,7940,7657],{"class":874},[756,7942,989],{"class":912},[756,7944,992],{"class":773},[756,7946,995],{"class":769},[756,7948,639],{"class":773},[756,7950,1000],{"class":769},[756,7952,1003],{"class":912},[756,7954,1006],{"class":773},[756,7956,7957,7959,7961,7963,7965,7967,7969,7971,7973,7975,7977,7979],{"class":758,"line":6490},[756,7958,7676],{"class":874},[756,7960,1015],{"class":773},[756,7962,1018],{"class":884},[756,7964,913],{"class":912},[756,7966,928],{"class":773},[756,7968,1025],{"class":777},[756,7970,1028],{"class":773},[756,7972,995],{"class":769},[756,7974,639],{"class":773},[756,7976,1035],{"class":769},[756,7978,1038],{"class":773},[756,7980,975],{"class":912},[756,7982,7983],{"class":758,"line":6495},[756,7984,2344],{"class":773},[756,7986,7987],{"class":758,"line":6500},[756,7988,868],{"emptyLinePlaceholder":867},[756,7990,7991,7993,7995,7997,7999,8001],{"class":758,"line":6516},[756,7992,3199],{"class":874},[756,7994,906],{"class":874},[756,7996,900],{"class":769},[756,7998,639],{"class":773},[756,8000,1066],{"class":884},[756,8002,1069],{"class":912},[756,8004,8005,8007,8009,8011,8013,8015],{"class":758,"line":6549},[756,8006,3300],{"class":773},[756,8008,7727],{"class":874},[756,8010,989],{"class":912},[756,8012,7732],{"class":769},[756,8014,1003],{"class":912},[756,8016,1006],{"class":773},[756,8018,8019,8021,8023,8025,8027,8029,8031],{"class":758,"line":6554},[756,8020,7741],{"class":769},[756,8022,639],{"class":773},[756,8024,5763],{"class":769},[756,8026,903],{"class":773},[756,8028,7750],{"class":769},[756,8030,639],{"class":773},[756,8032,7755],{"class":769},[756,8034,8035,8037],{"class":758,"line":6584},[756,8036,7760],{"class":874},[756,8038,7763],{"class":769},[756,8040,8041,8043,8045],{"class":758,"line":6613},[756,8042,3300],{"class":773},[756,8044,7770],{"class":874},[756,8046,891],{"class":773},[756,8048,8049,8051,8053,8055,8057],{"class":758,"line":6618},[756,8050,7777],{"class":769},[756,8052,639],{"class":773},[756,8054,5763],{"class":769},[756,8056,903],{"class":773},[756,8058,7786],{"class":2254},[756,8060,8061],{"class":758,"line":6631},[756,8062,966],{"class":773},[756,8064,8065],{"class":758,"line":6637},[756,8066,1046],{"class":773},[756,8068,8069],{"class":758,"line":6670},[756,8070,868],{"emptyLinePlaceholder":867},[756,8072,8073,8075],{"class":758,"line":6678},[756,8074,1057],{"class":874},[756,8076,891],{"class":773},[756,8078,8079,8081],{"class":758,"line":6683},[756,8080,5405],{"class":769},[756,8082,1220],{"class":773},[756,8084,8085,8088],{"class":758,"line":6688},[756,8086,8087],{"class":769},"    fetchPage",[756,8089,1220],{"class":773},[756,8091,8092,8094],{"class":758,"line":6695},[756,8093,7374],{"class":769},[756,8095,1220],{"class":773},[756,8097,8098],{"class":758,"line":6704},[756,8099,6343],{"class":769},[756,8101,8102],{"class":758,"line":6729},[756,8103,1046],{"class":773},[756,8105,8106],{"class":758,"line":6756},[756,8107,1075],{"class":773},[3559,8109,8111],{"id":8110},"component","Component",[732,8113,8115],{"className":5564,"code":8114,"language":5566,"meta":740,"style":740},"\u003Cscript setup>\nimport { ref, onMounted } from 'vue'\nimport { useCMS } from '@\u002Fcomposables\u002FuseCMS'\nimport { useRoute, useRouter } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { fetchPage, loading, error } = useCMS()\n\nconst page = ref(null)\n\nonMounted(async () => {\n  try {\n    const result = await fetchPage(route.params.slug)\n\n    if (result.redirect) {\n      router.push(`\u002F${result.redirect.to}`)\n      return\n    }\n\n    page.value = result.data\n  } catch (e) {\n    console.error('Failed to load page:', e)\n  }\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"loading\">Loading...\u003C\u002Fdiv>\n  \u003Cdiv v-else-if=\"error\">Error: {{ error }}\u003C\u002Fdiv>\n  \u003Carticle v-else-if=\"page\">\n    \u003Ch1>{{ page.fields.title }}\u003C\u002Fh1>\n    \u003Cdiv v-html=\"page.fields.body\" \u002F>\n  \u003C\u002Farticle>\n\u003C\u002Ftemplate>\n",[618,8116,8117,8127,8150,8169,8193,8197,8209,8222,8246,8250,8266,8270,8286,8293,8319,8323,8339,8371,8376,8380,8384,8400,8414,8437,8441,8447,8455,8459,8467,8494,8522,8540,8557,8576,8584],{"__ignoreMap":740},[756,8118,8119,8121,8123,8125],{"class":758,"line":759},[756,8120,1403],{"class":773},[756,8122,5555],{"class":912},[756,8124,5582],{"class":822},[756,8126,4089],{"class":773},[756,8128,8129,8131,8133,8135,8137,8140,8142,8144,8146,8148],{"class":758,"line":766},[756,8130,5942],{"class":874},[756,8132,1094],{"class":773},[756,8134,7286],{"class":769},[756,8136,931],{"class":773},[756,8138,8139],{"class":769}," onMounted",[756,8141,1559],{"class":773},[756,8143,6805],{"class":874},[756,8145,1547],{"class":773},[756,8147,5566],{"class":777},[756,8149,3757],{"class":773},[756,8151,8152,8154,8156,8158,8160,8162,8164,8167],{"class":758,"line":780},[756,8153,5942],{"class":874},[756,8155,1094],{"class":773},[756,8157,5025],{"class":769},[756,8159,1559],{"class":773},[756,8161,6805],{"class":874},[756,8163,1547],{"class":773},[756,8165,8166],{"class":777},"@\u002Fcomposables\u002FuseCMS",[756,8168,3757],{"class":773},[756,8170,8171,8173,8175,8177,8179,8182,8184,8186,8188,8191],{"class":758,"line":864},[756,8172,5942],{"class":874},[756,8174,1094],{"class":773},[756,8176,5467],{"class":769},[756,8178,931],{"class":773},[756,8180,8181],{"class":769}," useRouter",[756,8183,1559],{"class":773},[756,8185,6805],{"class":874},[756,8187,1547],{"class":773},[756,8189,8190],{"class":777},"vue-router",[756,8192,3757],{"class":773},[756,8194,8195],{"class":758,"line":871},[756,8196,868],{"emptyLinePlaceholder":867},[756,8198,8199,8201,8203,8205,8207],{"class":758,"line":894},[756,8200,823],{"class":822},[756,8202,5462],{"class":769},[756,8204,774],{"class":773},[756,8206,5467],{"class":884},[756,8208,1069],{"class":769},[756,8210,8211,8213,8216,8218,8220],{"class":758,"line":936},[756,8212,823],{"class":822},[756,8214,8215],{"class":769}," router ",[756,8217,774],{"class":773},[756,8219,8181],{"class":884},[756,8221,1069],{"class":769},[756,8223,8224,8226,8228,8230,8232,8234,8236,8238,8240,8242,8244],{"class":758,"line":946},[756,8225,823],{"class":822},[756,8227,1094],{"class":773},[756,8229,5312],{"class":769},[756,8231,931],{"class":773},[756,8233,7319],{"class":769},[756,8235,931],{"class":773},[756,8237,5633],{"class":769},[756,8239,922],{"class":773},[756,8241,903],{"class":773},[756,8243,5025],{"class":884},[756,8245,1069],{"class":769},[756,8247,8248],{"class":758,"line":963},[756,8249,868],{"emptyLinePlaceholder":867},[756,8251,8252,8254,8256,8258,8260,8262,8264],{"class":758,"line":969},[756,8253,823],{"class":822},[756,8255,5486],{"class":769},[756,8257,774],{"class":773},[756,8259,7286],{"class":884},[756,8261,913],{"class":769},[756,8263,7345],{"class":773},[756,8265,975],{"class":769},[756,8267,8268],{"class":758,"line":978},[756,8269,868],{"emptyLinePlaceholder":867},[756,8271,8272,8275,8277,8279,8282,8284],{"class":758,"line":983},[756,8273,8274],{"class":884},"onMounted",[756,8276,913],{"class":769},[756,8278,1462],{"class":822},[756,8280,8281],{"class":773}," ()",[756,8283,1325],{"class":822},[756,8285,891],{"class":773},[756,8287,8288,8291],{"class":758,"line":1009},[756,8289,8290],{"class":874},"  try",[756,8292,891],{"class":773},[756,8294,8295,8297,8299,8301,8303,8305,8307,8309,8311,8313,8315,8317],{"class":758,"line":1043},[756,8296,3095],{"class":822},[756,8298,2205],{"class":769},[756,8300,903],{"class":773},[756,8302,906],{"class":874},[756,8304,5312],{"class":884},[756,8306,913],{"class":912},[756,8308,5510],{"class":769},[756,8310,639],{"class":773},[756,8312,2216],{"class":769},[756,8314,639],{"class":773},[756,8316,1345],{"class":769},[756,8318,975],{"class":912},[756,8320,8321],{"class":758,"line":1049},[756,8322,868],{"emptyLinePlaceholder":867},[756,8324,8325,8327,8329,8331,8333,8335,8337],{"class":758,"line":1054},[756,8326,3130],{"class":874},[756,8328,989],{"class":912},[756,8330,2018],{"class":769},[756,8332,639],{"class":773},[756,8334,2023],{"class":769},[756,8336,1003],{"class":912},[756,8338,1006],{"class":773},[756,8340,8341,8344,8346,8349,8351,8353,8355,8357,8359,8361,8363,8365,8367,8369],{"class":758,"line":1072},[756,8342,8343],{"class":769},"      router",[756,8345,639],{"class":773},[756,8347,8348],{"class":884},"push",[756,8350,913],{"class":912},[756,8352,928],{"class":773},[756,8354,2314],{"class":777},[756,8356,1028],{"class":773},[756,8358,2018],{"class":769},[756,8360,639],{"class":773},[756,8362,2023],{"class":769},[756,8364,639],{"class":773},[756,8366,2046],{"class":769},[756,8368,1038],{"class":773},[756,8370,975],{"class":912},[756,8372,8373],{"class":758,"line":1078},[756,8374,8375],{"class":874},"      return\n",[756,8377,8378],{"class":758,"line":1083},[756,8379,966],{"class":773},[756,8381,8382],{"class":758,"line":1089},[756,8383,868],{"emptyLinePlaceholder":867},[756,8385,8386,8388,8390,8392,8394,8396,8398],{"class":758,"line":1115},[756,8387,6169],{"class":769},[756,8389,639],{"class":773},[756,8391,5763],{"class":769},[756,8393,903],{"class":773},[756,8395,2205],{"class":769},[756,8397,639],{"class":773},[756,8399,3206],{"class":769},[756,8401,8402,8404,8406,8408,8410,8412],{"class":758,"line":2000},[756,8403,972],{"class":773},[756,8405,7727],{"class":874},[756,8407,989],{"class":912},[756,8409,7732],{"class":769},[756,8411,1003],{"class":912},[756,8413,1006],{"class":773},[756,8415,8416,8418,8420,8422,8424,8426,8429,8431,8433,8435],{"class":758,"line":2053},[756,8417,3224],{"class":769},[756,8419,639],{"class":773},[756,8421,6591],{"class":884},[756,8423,913],{"class":912},[756,8425,955],{"class":773},[756,8427,8428],{"class":777},"Failed to load page:",[756,8430,955],{"class":773},[756,8432,931],{"class":773},[756,8434,7750],{"class":769},[756,8436,975],{"class":912},[756,8438,8439],{"class":758,"line":3327},[756,8440,1046],{"class":773},[756,8442,8443,8445],{"class":758,"line":3332},[756,8444,922],{"class":773},[756,8446,975],{"class":769},[756,8448,8449,8451,8453],{"class":758,"line":3338},[756,8450,5552],{"class":773},[756,8452,5555],{"class":912},[756,8454,4089],{"class":773},[756,8456,8457],{"class":758,"line":3358},[756,8458,868],{"emptyLinePlaceholder":867},[756,8460,8461,8463,8465],{"class":758,"line":3366},[756,8462,1403],{"class":773},[756,8464,5841],{"class":912},[756,8466,4089],{"class":773},[756,8468,8469,8471,8473,8475,8477,8479,8482,8484,8486,8488,8490,8492],{"class":758,"line":3382},[756,8470,5848],{"class":773},[756,8472,4126],{"class":912},[756,8474,5853],{"class":822},[756,8476,774],{"class":773},[756,8478,1176],{"class":773},[756,8480,8481],{"class":777},"loading",[756,8483,1176],{"class":773},[756,8485,5872],{"class":773},[756,8487,6575],{"class":769},[756,8489,5552],{"class":773},[756,8491,4126],{"class":912},[756,8493,4089],{"class":773},[756,8495,8496,8498,8500,8503,8505,8507,8509,8511,8513,8516,8518,8520],{"class":758,"line":3389},[756,8497,5848],{"class":773},[756,8499,4126],{"class":912},[756,8501,8502],{"class":822}," v-else-if",[756,8504,774],{"class":773},[756,8506,1176],{"class":773},[756,8508,6591],{"class":777},[756,8510,1176],{"class":773},[756,8512,5872],{"class":773},[756,8514,8515],{"class":769},"Error: {{ error }}",[756,8517,5552],{"class":773},[756,8519,4126],{"class":912},[756,8521,4089],{"class":773},[756,8523,8524,8526,8528,8530,8532,8534,8536,8538],{"class":758,"line":3394},[756,8525,5848],{"class":773},[756,8527,4086],{"class":912},[756,8529,8502],{"class":822},[756,8531,774],{"class":773},[756,8533,1176],{"class":773},[756,8535,1227],{"class":777},[756,8537,1176],{"class":773},[756,8539,4089],{"class":773},[756,8541,8542,8544,8546,8548,8551,8553,8555],{"class":758,"line":3402},[756,8543,4083],{"class":773},[756,8545,4098],{"class":912},[756,8547,5872],{"class":773},[756,8549,8550],{"class":769},"{{ page.fields.title }}",[756,8552,5552],{"class":773},[756,8554,4098],{"class":912},[756,8556,4089],{"class":773},[756,8558,8559,8561,8563,8565,8567,8569,8572,8574],{"class":758,"line":3407},[756,8560,4083],{"class":773},[756,8562,4126],{"class":912},[756,8564,5890],{"class":822},[756,8566,774],{"class":773},[756,8568,1176],{"class":773},[756,8570,8571],{"class":777},"page.fields.body",[756,8573,1176],{"class":773},[756,8575,5902],{"class":773},[756,8577,8578,8580,8582],{"class":758,"line":3412},[756,8579,5907],{"class":773},[756,8581,4086],{"class":912},[756,8583,4089],{"class":773},[756,8585,8586,8588,8590],{"class":758,"line":3422},[756,8587,5552],{"class":773},[756,8589,5841],{"class":912},[756,8591,4089],{"class":773},[692,8593],{},[575,8595,8597],{"id":8596},"caching-strategy","Caching Strategy",[671,8599,8601],{"id":8600},"respecting-cache-control-headers","Respecting Cache-Control Headers",[567,8603,8604],{},"The API includes cache headers:",[732,8606,8610],{"className":8607,"code":8608,"language":8609,"meta":740,"style":740},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Cache-Control: public, max-age=900, stale-while-revalidate=1800\nETag: \"a1b2c3d4\"\n","http",[618,8611,8612,8617],{"__ignoreMap":740},[756,8613,8614],{"class":758,"line":759},[756,8615,8616],{},"Cache-Control: public, max-age=900, stale-while-revalidate=1800\n",[756,8618,8619],{"class":758,"line":766},[756,8620,8621],{},"ETag: \"a1b2c3d4\"\n",[567,8623,8624],{},[571,8625,8626],{},"Recommended Client Strategy:",[705,8628,8629,8635,8641],{},[585,8630,8631,8634],{},[571,8632,8633],{},"Browser caching",": Automatically handled by browser (respects Cache-Control)",[585,8636,8637,8640],{},[571,8638,8639],{},"CDN caching",": If using Cloudflare\u002FCDN, cache is automatic",[585,8642,8643,8646],{},[571,8644,8645],{},"Application caching",": Implement SWR pattern for optimal UX",[671,8648,8650],{"id":8649},"stale-while-revalidate-pattern","stale-while-revalidate Pattern",[732,8652,8654],{"className":808,"code":8653,"language":810,"meta":740,"style":740},"class SWRCache {\n  constructor(maxAge = 300000, staleTime = 600000) {\n    this.maxAge = maxAge\n    this.staleTime = staleTime\n    this.cache = new Map()\n  }\n\n  async fetch(key, fetcher) {\n    const cached = this.cache.get(key)\n    const now = Date.now()\n\n    if (!cached) {\n      \u002F\u002F Cache miss: Fetch fresh\n      const data = await fetcher()\n      this.cache.set(key, { data, timestamp: now })\n      return data\n    }\n\n    const age = now - cached.timestamp\n\n    if (age \u003C this.maxAge) {\n      \u002F\u002F Fresh: Return immediately\n      return cached.data\n    }\n\n    if (age \u003C this.maxAge + this.staleTime) {\n      \u002F\u002F Stale: Return stale, revalidate in background\n      fetcher().then(data => {\n        this.cache.set(key, { data, timestamp: now })\n      })\n      return cached.data\n    }\n\n    \u002F\u002F Expired: Fetch fresh\n    const data = await fetcher()\n    this.cache.set(key, { data, timestamp: now })\n    return data\n  }\n}\n\n\u002F\u002F Usage\nconst cache = new SWRCache()\n\nconst pages = await cache.fetch('\u002Fpages', () =>\n  fetch(`${BASE_URL}\u002Fpages`, {\n    headers: { 'X-API-Key': API_KEY }\n  }).then(r => r.json())\n)\n",[618,8655,8656,8665,8693,8704,8716,8730,8734,8738,8758,8780,8797,8801,8815,8820,8834,8868,8874,8878,8882,8903,8907,8926,8931,8941,8945,8949,8974,8979,8999,9032,9038,9048,9052,9056,9061,9075,9107,9113,9117,9121,9125,9129,9144,9148,9180,9201,9221,9248],{"__ignoreMap":740},[756,8657,8658,8660,8663],{"class":758,"line":759},[756,8659,2997],{"class":822},[756,8661,8662],{"class":1208}," SWRCache",[756,8664,891],{"class":773},[756,8666,8667,8669,8671,8674,8676,8679,8681,8684,8686,8689,8691],{"class":758,"line":766},[756,8668,3007],{"class":822},[756,8670,913],{"class":773},[756,8672,8673],{"class":1322},"maxAge",[756,8675,903],{"class":773},[756,8677,8678],{"class":1216}," 300000",[756,8680,931],{"class":773},[756,8682,8683],{"class":1322}," staleTime",[756,8685,903],{"class":773},[756,8687,8688],{"class":1216}," 600000",[756,8690,684],{"class":773},[756,8692,891],{"class":773},[756,8694,8695,8697,8699,8701],{"class":758,"line":780},[756,8696,3031],{"class":773},[756,8698,8673],{"class":769},[756,8700,903],{"class":773},[756,8702,8703],{"class":769}," maxAge\n",[756,8705,8706,8708,8711,8713],{"class":758,"line":864},[756,8707,3031],{"class":773},[756,8709,8710],{"class":769},"staleTime",[756,8712,903],{"class":773},[756,8714,8715],{"class":769}," staleTime\n",[756,8717,8718,8720,8722,8724,8726,8728],{"class":758,"line":871},[756,8719,3031],{"class":773},[756,8721,3057],{"class":769},[756,8723,903],{"class":773},[756,8725,1015],{"class":773},[756,8727,3064],{"class":884},[756,8729,1069],{"class":912},[756,8731,8732],{"class":758,"line":894},[756,8733,1046],{"class":773},[756,8735,8736],{"class":758,"line":936},[756,8737,868],{"emptyLinePlaceholder":867},[756,8739,8740,8742,8744,8746,8749,8751,8754,8756],{"class":758,"line":946},[756,8741,3079],{"class":822},[756,8743,909],{"class":912},[756,8745,913],{"class":773},[756,8747,8748],{"class":1322},"key",[756,8750,931],{"class":773},[756,8752,8753],{"class":1322}," fetcher",[756,8755,684],{"class":773},[756,8757,891],{"class":773},[756,8759,8760,8762,8764,8766,8768,8770,8772,8774,8776,8778],{"class":758,"line":963},[756,8761,3095],{"class":822},[756,8763,3098],{"class":769},[756,8765,903],{"class":773},[756,8767,3103],{"class":773},[756,8769,3057],{"class":769},[756,8771,639],{"class":773},[756,8773,3110],{"class":884},[756,8775,913],{"class":912},[756,8777,8748],{"class":769},[756,8779,975],{"class":912},[756,8781,8782,8784,8787,8789,8791,8793,8795],{"class":758,"line":969},[756,8783,3095],{"class":822},[756,8785,8786],{"class":769}," now",[756,8788,903],{"class":773},[756,8790,3141],{"class":769},[756,8792,639],{"class":773},[756,8794,3146],{"class":884},[756,8796,1069],{"class":912},[756,8798,8799],{"class":758,"line":978},[756,8800,868],{"emptyLinePlaceholder":867},[756,8802,8803,8805,8807,8809,8811,8813],{"class":758,"line":983},[756,8804,3130],{"class":874},[756,8806,989],{"class":912},[756,8808,992],{"class":773},[756,8810,3135],{"class":769},[756,8812,1003],{"class":912},[756,8814,1006],{"class":773},[756,8816,8817],{"class":758,"line":1009},[756,8818,8819],{"class":762},"      \u002F\u002F Cache miss: Fetch fresh\n",[756,8821,8822,8824,8826,8828,8830,8832],{"class":758,"line":1043},[756,8823,7411],{"class":822},[756,8825,1097],{"class":769},[756,8827,903],{"class":773},[756,8829,906],{"class":874},[756,8831,8753],{"class":884},[756,8833,1069],{"class":912},[756,8835,8836,8839,8841,8843,8845,8847,8849,8851,8853,8855,8857,8860,8862,8864,8866],{"class":758,"line":1049},[756,8837,8838],{"class":773},"      this.",[756,8840,3057],{"class":769},[756,8842,639],{"class":773},[756,8844,3347],{"class":884},[756,8846,913],{"class":912},[756,8848,8748],{"class":769},[756,8850,931],{"class":773},[756,8852,1094],{"class":773},[756,8854,1097],{"class":769},[756,8856,931],{"class":773},[756,8858,8859],{"class":912}," timestamp",[756,8861,795],{"class":773},[756,8863,8786],{"class":769},[756,8865,1559],{"class":773},[756,8867,975],{"class":912},[756,8869,8870,8872],{"class":758,"line":1054},[756,8871,3199],{"class":874},[756,8873,3399],{"class":769},[756,8875,8876],{"class":758,"line":1072},[756,8877,966],{"class":773},[756,8879,8880],{"class":758,"line":1078},[756,8881,868],{"emptyLinePlaceholder":867},[756,8883,8884,8886,8889,8891,8893,8896,8898,8900],{"class":758,"line":1083},[756,8885,3095],{"class":822},[756,8887,8888],{"class":769}," age",[756,8890,903],{"class":773},[756,8892,8786],{"class":769},[756,8894,8895],{"class":773}," -",[756,8897,3098],{"class":769},[756,8899,639],{"class":773},[756,8901,8902],{"class":769},"timestamp\n",[756,8904,8905],{"class":758,"line":1089},[756,8906,868],{"emptyLinePlaceholder":867},[756,8908,8909,8911,8913,8916,8918,8920,8922,8924],{"class":758,"line":1115},[756,8910,3130],{"class":874},[756,8912,989],{"class":912},[756,8914,8915],{"class":769},"age",[756,8917,1649],{"class":773},[756,8919,3103],{"class":773},[756,8921,8673],{"class":769},[756,8923,1003],{"class":912},[756,8925,1006],{"class":773},[756,8927,8928],{"class":758,"line":2000},[756,8929,8930],{"class":762},"      \u002F\u002F Fresh: Return immediately\n",[756,8932,8933,8935,8937,8939],{"class":758,"line":2053},[756,8934,3199],{"class":874},[756,8936,3098],{"class":769},[756,8938,639],{"class":773},[756,8940,3206],{"class":769},[756,8942,8943],{"class":758,"line":3327},[756,8944,966],{"class":773},[756,8946,8947],{"class":758,"line":3332},[756,8948,868],{"emptyLinePlaceholder":867},[756,8950,8951,8953,8955,8957,8959,8961,8963,8966,8968,8970,8972],{"class":758,"line":3338},[756,8952,3130],{"class":874},[756,8954,989],{"class":912},[756,8956,8915],{"class":769},[756,8958,1649],{"class":773},[756,8960,3103],{"class":773},[756,8962,8673],{"class":769},[756,8964,8965],{"class":773}," +",[756,8967,3103],{"class":773},[756,8969,8710],{"class":769},[756,8971,1003],{"class":912},[756,8973,1006],{"class":773},[756,8975,8976],{"class":758,"line":3358},[756,8977,8978],{"class":762},"      \u002F\u002F Stale: Return stale, revalidate in background\n",[756,8980,8981,8984,8986,8988,8991,8993,8995,8997],{"class":758,"line":3366},[756,8982,8983],{"class":884},"      fetcher",[756,8985,888],{"class":912},[756,8987,639],{"class":773},[756,8989,8990],{"class":884},"then",[756,8992,913],{"class":912},[756,8994,1135],{"class":1322},[756,8996,1325],{"class":822},[756,8998,891],{"class":773},[756,9000,9001,9004,9006,9008,9010,9012,9014,9016,9018,9020,9022,9024,9026,9028,9030],{"class":758,"line":3382},[756,9002,9003],{"class":773},"        this.",[756,9005,3057],{"class":769},[756,9007,639],{"class":773},[756,9009,3347],{"class":884},[756,9011,913],{"class":912},[756,9013,8748],{"class":769},[756,9015,931],{"class":773},[756,9017,1094],{"class":773},[756,9019,1097],{"class":769},[756,9021,931],{"class":773},[756,9023,8859],{"class":912},[756,9025,795],{"class":773},[756,9027,8786],{"class":769},[756,9029,1559],{"class":773},[756,9031,975],{"class":912},[756,9033,9034,9036],{"class":758,"line":3389},[756,9035,7551],{"class":773},[756,9037,975],{"class":912},[756,9039,9040,9042,9044,9046],{"class":758,"line":3394},[756,9041,3199],{"class":874},[756,9043,3098],{"class":769},[756,9045,639],{"class":773},[756,9047,3206],{"class":769},[756,9049,9050],{"class":758,"line":3402},[756,9051,966],{"class":773},[756,9053,9054],{"class":758,"line":3407},[756,9055,868],{"emptyLinePlaceholder":867},[756,9057,9058],{"class":758,"line":3412},[756,9059,9060],{"class":762},"    \u002F\u002F Expired: Fetch fresh\n",[756,9062,9063,9065,9067,9069,9071,9073],{"class":758,"line":3422},[756,9064,3095],{"class":822},[756,9066,1097],{"class":769},[756,9068,903],{"class":773},[756,9070,906],{"class":874},[756,9072,8753],{"class":884},[756,9074,1069],{"class":912},[756,9076,9077,9079,9081,9083,9085,9087,9089,9091,9093,9095,9097,9099,9101,9103,9105],{"class":758,"line":3436},[756,9078,3031],{"class":773},[756,9080,3057],{"class":769},[756,9082,639],{"class":773},[756,9084,3347],{"class":884},[756,9086,913],{"class":912},[756,9088,8748],{"class":769},[756,9090,931],{"class":773},[756,9092,1094],{"class":773},[756,9094,1097],{"class":769},[756,9096,931],{"class":773},[756,9098,8859],{"class":912},[756,9100,795],{"class":773},[756,9102,8786],{"class":769},[756,9104,1559],{"class":773},[756,9106,975],{"class":912},[756,9108,9109,9111],{"class":758,"line":3441},[756,9110,1841],{"class":874},[756,9112,3399],{"class":769},[756,9114,9115],{"class":758,"line":3446},[756,9116,1046],{"class":773},[756,9118,9119],{"class":758,"line":3451},[756,9120,1075],{"class":773},[756,9122,9123],{"class":758,"line":3456},[756,9124,868],{"emptyLinePlaceholder":867},[756,9126,9127],{"class":758,"line":3482},[756,9128,1086],{"class":762},[756,9130,9131,9133,9136,9138,9140,9142],{"class":758,"line":3487},[756,9132,823],{"class":822},[756,9134,9135],{"class":769}," cache ",[756,9137,774],{"class":773},[756,9139,1015],{"class":773},[756,9141,8662],{"class":884},[756,9143,1069],{"class":769},[756,9145,9146],{"class":758,"line":3520},[756,9147,868],{"emptyLinePlaceholder":867},[756,9149,9150,9152,9154,9156,9158,9161,9163,9165,9167,9169,9171,9173,9175,9177],{"class":758,"line":4092},[756,9151,823],{"class":822},[756,9153,2429],{"class":769},[756,9155,774],{"class":773},[756,9157,906],{"class":874},[756,9159,9160],{"class":769}," cache",[756,9162,639],{"class":773},[756,9164,3504],{"class":884},[756,9166,913],{"class":769},[756,9168,955],{"class":773},[756,9170,925],{"class":777},[756,9172,955],{"class":773},[756,9174,931],{"class":773},[756,9176,8281],{"class":773},[756,9178,9179],{"class":822}," =>\n",[756,9181,9182,9185,9187,9189,9191,9193,9195,9197,9199],{"class":758,"line":4121},[756,9183,9184],{"class":884},"  fetch",[756,9186,913],{"class":769},[756,9188,916],{"class":773},[756,9190,919],{"class":769},[756,9192,922],{"class":773},[756,9194,925],{"class":777},[756,9196,928],{"class":773},[756,9198,931],{"class":773},[756,9200,891],{"class":773},[756,9202,9203,9205,9207,9209,9211,9213,9215,9217,9219],{"class":758,"line":4154},[756,9204,939],{"class":912},[756,9206,795],{"class":773},[756,9208,1094],{"class":773},[756,9210,1547],{"class":773},[756,9212,952],{"class":912},[756,9214,955],{"class":773},[756,9216,795],{"class":773},[756,9218,826],{"class":769},[756,9220,1075],{"class":773},[756,9222,9223,9225,9227,9229,9231,9233,9236,9238,9241,9243,9245],{"class":758,"line":4164},[756,9224,972],{"class":773},[756,9226,684],{"class":769},[756,9228,639],{"class":773},[756,9230,8990],{"class":884},[756,9232,913],{"class":769},[756,9234,9235],{"class":1322},"r",[756,9237,1325],{"class":822},[756,9239,9240],{"class":769}," r",[756,9242,639],{"class":773},[756,9244,1066],{"class":884},[756,9246,9247],{"class":769},"())\n",[756,9249,9250],{"class":758,"line":4169},[756,9251,975],{"class":769},[671,9253,9255],{"id":9254},"implementing-etag-based-conditional-requests","Implementing ETag-Based Conditional Requests",[9257,9258,9259],"blockquote",{},[567,9260,9261,9264,9265,9268,9269,989,9272,9275,9276,9279,9280,9283,9284,9287,9288,9290,9291,9293,9294,9297,9298,9300,9301,9303],{},[571,9262,9263],{},"304 support is per-endpoint, not universal."," Every pages\u002Fblog\u002Fcollections response sets an\n",[618,9266,9267],{},"ETag"," header, but only the ",[571,9270,9271],{},"single-item page endpoint",[618,9273,9274],{},"GET \u002Fpages\u002F:slug",") actually honours\n",[618,9277,9278],{},"If-None-Match"," and returns ",[618,9281,9282],{},"304 Not Modified",". The list endpoint (",[618,9285,9286],{},"GET \u002Fpages",") and the\nblog\u002Fcollections endpoints set ",[618,9289,9267],{}," for informational\u002Fdebugging purposes but never check\n",[618,9292,9278],{}," — sending it back has no effect, and you'll always get a fresh ",[618,9295,9296],{},"200"," body. Build\n",[618,9299,9267],{},"-based conditional-request caching against ",[618,9302,9274],{}," (as below), not against list\nendpoints.",[732,9305,9307],{"className":808,"code":9306,"language":810,"meta":740,"style":740},"class ETAGCache {\n  constructor() {\n    this.cache = new Map()\n  }\n\n  async fetch(url, options = {}) {\n    const cached = this.cache.get(url)\n\n    \u002F\u002F Add If-None-Match header if we have an ETag\n    const headers = {\n      ...options.headers,\n      ...(cached?.etag && { 'If-None-Match': cached.etag })\n    }\n\n    const response = await fetch(url, { ...options, headers })\n\n    if (response.status === 304) {\n      \u002F\u002F Not modified: Return cached data\n      console.log('304 Not Modified, using cache')\n      return cached.data\n    }\n\n    const data = await response.json()\n    const etag = response.headers.get('ETag')\n\n    if (etag) {\n      this.cache.set(url, { data, etag })\n    }\n\n    return data\n  }\n}\n\n\u002F\u002F Usage — the single-page endpoint supports 304; the list endpoint (\u002Fpages) does not\nconst cache = new ETAGCache()\n\nconst page = await cache.fetch(`${BASE_URL}\u002Fpages\u002Fabout-us`, {\n  headers: { 'X-API-Key': API_KEY }\n})\n",[618,9308,9309,9318,9326,9340,9344,9348,9368,9390,9394,9399,9409,9422,9457,9461,9465,9498,9502,9523,9528,9547,9557,9561,9565,9583,9612,9616,9628,9656,9660,9664,9670,9674,9678,9682,9687,9701,9705,9738,9759],{"__ignoreMap":740},[756,9310,9311,9313,9316],{"class":758,"line":759},[756,9312,2997],{"class":822},[756,9314,9315],{"class":1208}," ETAGCache",[756,9317,891],{"class":773},[756,9319,9320,9322,9324],{"class":758,"line":766},[756,9321,3007],{"class":822},[756,9323,888],{"class":773},[756,9325,891],{"class":773},[756,9327,9328,9330,9332,9334,9336,9338],{"class":758,"line":780},[756,9329,3031],{"class":773},[756,9331,3057],{"class":769},[756,9333,903],{"class":773},[756,9335,1015],{"class":773},[756,9337,3064],{"class":884},[756,9339,1069],{"class":912},[756,9341,9342],{"class":758,"line":864},[756,9343,1046],{"class":773},[756,9345,9346],{"class":758,"line":871},[756,9347,868],{"emptyLinePlaceholder":867},[756,9349,9350,9352,9354,9356,9358,9360,9362,9364,9366],{"class":758,"line":894},[756,9351,3079],{"class":822},[756,9353,909],{"class":912},[756,9355,913],{"class":773},[756,9357,5974],{"class":1322},[756,9359,931],{"class":773},[756,9361,5094],{"class":1322},[756,9363,903],{"class":773},[756,9365,5065],{"class":773},[756,9367,891],{"class":773},[756,9369,9370,9372,9374,9376,9378,9380,9382,9384,9386,9388],{"class":758,"line":936},[756,9371,3095],{"class":822},[756,9373,3098],{"class":769},[756,9375,903],{"class":773},[756,9377,3103],{"class":773},[756,9379,3057],{"class":769},[756,9381,639],{"class":773},[756,9383,3110],{"class":884},[756,9385,913],{"class":912},[756,9387,5974],{"class":769},[756,9389,975],{"class":912},[756,9391,9392],{"class":758,"line":946},[756,9393,868],{"emptyLinePlaceholder":867},[756,9395,9396],{"class":758,"line":963},[756,9397,9398],{"class":762},"    \u002F\u002F Add If-None-Match header if we have an ETag\n",[756,9400,9401,9403,9405,9407],{"class":758,"line":969},[756,9402,3095],{"class":822},[756,9404,1540],{"class":769},[756,9406,903],{"class":773},[756,9408,891],{"class":773},[756,9410,9411,9413,9415,9417,9420],{"class":758,"line":978},[756,9412,5138],{"class":773},[756,9414,5060],{"class":769},[756,9416,639],{"class":773},[756,9418,9419],{"class":769},"headers",[756,9421,1220],{"class":773},[756,9423,9424,9426,9428,9430,9432,9435,9437,9439,9441,9443,9445,9447,9449,9451,9453,9455],{"class":758,"line":983},[756,9425,5138],{"class":773},[756,9427,913],{"class":912},[756,9429,3135],{"class":769},[756,9431,5766],{"class":773},[756,9433,9434],{"class":769},"etag",[756,9436,3138],{"class":773},[756,9438,1094],{"class":773},[756,9440,1547],{"class":773},[756,9442,9278],{"class":912},[756,9444,955],{"class":773},[756,9446,795],{"class":773},[756,9448,3098],{"class":769},[756,9450,639],{"class":773},[756,9452,9434],{"class":769},[756,9454,1559],{"class":773},[756,9456,975],{"class":912},[756,9458,9459],{"class":758,"line":1009},[756,9460,966],{"class":773},[756,9462,9463],{"class":758,"line":1043},[756,9464,868],{"emptyLinePlaceholder":867},[756,9466,9467,9469,9471,9473,9475,9477,9479,9481,9483,9485,9488,9490,9492,9494,9496],{"class":758,"line":1049},[756,9468,3095],{"class":822},[756,9470,900],{"class":769},[756,9472,903],{"class":773},[756,9474,906],{"class":874},[756,9476,909],{"class":884},[756,9478,913],{"class":912},[756,9480,5974],{"class":769},[756,9482,931],{"class":773},[756,9484,1094],{"class":773},[756,9486,9487],{"class":773}," ...",[756,9489,5060],{"class":769},[756,9491,931],{"class":773},[756,9493,1540],{"class":769},[756,9495,1559],{"class":773},[756,9497,975],{"class":912},[756,9499,9500],{"class":758,"line":1054},[756,9501,868],{"emptyLinePlaceholder":867},[756,9503,9504,9506,9508,9510,9512,9514,9516,9519,9521],{"class":758,"line":1072},[756,9505,3130],{"class":874},[756,9507,989],{"class":912},[756,9509,995],{"class":769},[756,9511,639],{"class":773},[756,9513,1035],{"class":769},[756,9515,1829],{"class":773},[756,9517,9518],{"class":1216}," 304",[756,9520,1003],{"class":912},[756,9522,1006],{"class":773},[756,9524,9525],{"class":758,"line":1078},[756,9526,9527],{"class":762},"      \u002F\u002F Not modified: Return cached data\n",[756,9529,9530,9532,9534,9536,9538,9540,9543,9545],{"class":758,"line":1083},[756,9531,3174],{"class":769},[756,9533,639],{"class":773},[756,9535,1123],{"class":884},[756,9537,913],{"class":912},[756,9539,955],{"class":773},[756,9541,9542],{"class":777},"304 Not Modified, using cache",[756,9544,955],{"class":773},[756,9546,975],{"class":912},[756,9548,9549,9551,9553,9555],{"class":758,"line":1089},[756,9550,3199],{"class":874},[756,9552,3098],{"class":769},[756,9554,639],{"class":773},[756,9556,3206],{"class":769},[756,9558,9559],{"class":758,"line":1115},[756,9560,966],{"class":773},[756,9562,9563],{"class":758,"line":2000},[756,9564,868],{"emptyLinePlaceholder":867},[756,9566,9567,9569,9571,9573,9575,9577,9579,9581],{"class":758,"line":2053},[756,9568,3095],{"class":822},[756,9570,1097],{"class":769},[756,9572,903],{"class":773},[756,9574,906],{"class":874},[756,9576,900],{"class":769},[756,9578,639],{"class":773},[756,9580,1066],{"class":884},[756,9582,1069],{"class":912},[756,9584,9585,9587,9590,9592,9594,9596,9598,9600,9602,9604,9606,9608,9610],{"class":758,"line":3327},[756,9586,3095],{"class":822},[756,9588,9589],{"class":769}," etag",[756,9591,903],{"class":773},[756,9593,900],{"class":769},[756,9595,639],{"class":773},[756,9597,9419],{"class":769},[756,9599,639],{"class":773},[756,9601,3110],{"class":884},[756,9603,913],{"class":912},[756,9605,955],{"class":773},[756,9607,9267],{"class":777},[756,9609,955],{"class":773},[756,9611,975],{"class":912},[756,9613,9614],{"class":758,"line":3332},[756,9615,868],{"emptyLinePlaceholder":867},[756,9617,9618,9620,9622,9624,9626],{"class":758,"line":3338},[756,9619,3130],{"class":874},[756,9621,989],{"class":912},[756,9623,9434],{"class":769},[756,9625,1003],{"class":912},[756,9627,1006],{"class":773},[756,9629,9630,9632,9634,9636,9638,9640,9642,9644,9646,9648,9650,9652,9654],{"class":758,"line":3358},[756,9631,8838],{"class":773},[756,9633,3057],{"class":769},[756,9635,639],{"class":773},[756,9637,3347],{"class":884},[756,9639,913],{"class":912},[756,9641,5974],{"class":769},[756,9643,931],{"class":773},[756,9645,1094],{"class":773},[756,9647,1097],{"class":769},[756,9649,931],{"class":773},[756,9651,9589],{"class":769},[756,9653,1559],{"class":773},[756,9655,975],{"class":912},[756,9657,9658],{"class":758,"line":3366},[756,9659,966],{"class":773},[756,9661,9662],{"class":758,"line":3382},[756,9663,868],{"emptyLinePlaceholder":867},[756,9665,9666,9668],{"class":758,"line":3389},[756,9667,1841],{"class":874},[756,9669,3399],{"class":769},[756,9671,9672],{"class":758,"line":3394},[756,9673,1046],{"class":773},[756,9675,9676],{"class":758,"line":3402},[756,9677,1075],{"class":773},[756,9679,9680],{"class":758,"line":3407},[756,9681,868],{"emptyLinePlaceholder":867},[756,9683,9684],{"class":758,"line":3412},[756,9685,9686],{"class":762},"\u002F\u002F Usage — the single-page endpoint supports 304; the list endpoint (\u002Fpages) does not\n",[756,9688,9689,9691,9693,9695,9697,9699],{"class":758,"line":3422},[756,9690,823],{"class":822},[756,9692,9135],{"class":769},[756,9694,774],{"class":773},[756,9696,1015],{"class":773},[756,9698,9315],{"class":884},[756,9700,1069],{"class":769},[756,9702,9703],{"class":758,"line":3436},[756,9704,868],{"emptyLinePlaceholder":867},[756,9706,9707,9709,9711,9713,9715,9717,9719,9721,9723,9725,9727,9729,9732,9734,9736],{"class":758,"line":3441},[756,9708,823],{"class":822},[756,9710,5486],{"class":769},[756,9712,774],{"class":773},[756,9714,906],{"class":874},[756,9716,9160],{"class":769},[756,9718,639],{"class":773},[756,9720,3504],{"class":884},[756,9722,913],{"class":769},[756,9724,916],{"class":773},[756,9726,919],{"class":769},[756,9728,922],{"class":773},[756,9730,9731],{"class":777},"\u002Fpages\u002Fabout-us",[756,9733,928],{"class":773},[756,9735,931],{"class":773},[756,9737,891],{"class":773},[756,9739,9740,9743,9745,9747,9749,9751,9753,9755,9757],{"class":758,"line":3446},[756,9741,9742],{"class":912},"  headers",[756,9744,795],{"class":773},[756,9746,1094],{"class":773},[756,9748,1547],{"class":773},[756,9750,952],{"class":912},[756,9752,955],{"class":773},[756,9754,795],{"class":773},[756,9756,826],{"class":769},[756,9758,1075],{"class":773},[756,9760,9761,9763],{"class":758,"line":3451},[756,9762,922],{"class":773},[756,9764,975],{"class":769},[692,9766],{},[575,9768,9770],{"id":9769},"error-handling","Error Handling",[671,9772,9774],{"id":9773},"retry-logic-for-5xx-errors","Retry Logic for 5xx Errors",[732,9776,9778],{"className":808,"code":9777,"language":810,"meta":740,"style":740},"async function fetchWithRetry(url, options = {}, maxRetries = 3) {\n  for (let attempt = 0; attempt \u003C maxRetries; attempt++) {\n    try {\n      const response = await fetch(url, options)\n\n      \u002F\u002F Success (2xx) or client error (4xx): Don't retry\n      if (response.ok || response.status \u003C 500) {\n        return response\n      }\n\n      \u002F\u002F Server error (5xx): Retry with exponential backoff\n      const backoff = 2 ** attempt * 1000 \u002F\u002F 1s, 2s, 4s\n      console.log(`Server error, retrying in ${backoff}ms...`)\n      await new Promise(resolve => setTimeout(resolve, backoff))\n    } catch (error) {\n      \u002F\u002F Network error: Retry\n      if (attempt === maxRetries - 1) throw error\n\n      const backoff = 2 ** attempt * 1000\n      console.log(`Network error, retrying in ${backoff}ms...`)\n      await new Promise(resolve => setTimeout(resolve, backoff))\n    }\n  }\n\n  throw new Error('Max retries exceeded')\n}\n\n\u002F\u002F Usage\nconst response = await fetchWithRetry(`${BASE_URL}\u002Fpages`, {\n  headers: { 'X-API-Key': API_KEY }\n})\n",[618,9779,9780,9814,9852,9858,9880,9884,9889,9918,9925,9929,9933,9938,9964,9993,10024,10038,10043,10068,10072,10091,10118,10144,10148,10152,10156,10175,10179,10183,10187,10215,10235],{"__ignoreMap":740},[756,9781,9782,9784,9786,9789,9791,9793,9795,9797,9799,9802,9805,9807,9810,9812],{"class":758,"line":759},[756,9783,1462],{"class":822},[756,9785,881],{"class":822},[756,9787,9788],{"class":884}," fetchWithRetry",[756,9790,913],{"class":773},[756,9792,5974],{"class":1322},[756,9794,931],{"class":773},[756,9796,5094],{"class":1322},[756,9798,903],{"class":773},[756,9800,9801],{"class":773}," {},",[756,9803,9804],{"class":1322}," maxRetries",[756,9806,903],{"class":773},[756,9808,9809],{"class":1216}," 3",[756,9811,684],{"class":773},[756,9813,891],{"class":773},[756,9815,9816,9819,9821,9824,9827,9829,9832,9835,9837,9839,9841,9843,9845,9848,9850],{"class":758,"line":766},[756,9817,9818],{"class":874},"  for",[756,9820,989],{"class":912},[756,9822,9823],{"class":822},"let",[756,9825,9826],{"class":769}," attempt",[756,9828,903],{"class":773},[756,9830,9831],{"class":1216}," 0",[756,9833,9834],{"class":773},";",[756,9836,9826],{"class":769},[756,9838,1649],{"class":773},[756,9840,9804],{"class":769},[756,9842,9834],{"class":773},[756,9844,9826],{"class":769},[756,9846,9847],{"class":773},"++",[756,9849,1003],{"class":912},[756,9851,1006],{"class":773},[756,9853,9854,9856],{"class":758,"line":780},[756,9855,7404],{"class":874},[756,9857,891],{"class":773},[756,9859,9860,9862,9864,9866,9868,9870,9872,9874,9876,9878],{"class":758,"line":864},[756,9861,7411],{"class":822},[756,9863,900],{"class":769},[756,9865,903],{"class":773},[756,9867,906],{"class":874},[756,9869,909],{"class":884},[756,9871,913],{"class":912},[756,9873,5974],{"class":769},[756,9875,931],{"class":773},[756,9877,5094],{"class":769},[756,9879,975],{"class":912},[756,9881,9882],{"class":758,"line":871},[756,9883,868],{"emptyLinePlaceholder":867},[756,9885,9886],{"class":758,"line":894},[756,9887,9888],{"class":762},"      \u002F\u002F Success (2xx) or client error (4xx): Don't retry\n",[756,9890,9891,9893,9895,9897,9899,9901,9903,9905,9907,9909,9911,9914,9916],{"class":758,"line":936},[756,9892,7657],{"class":874},[756,9894,989],{"class":912},[756,9896,995],{"class":769},[756,9898,639],{"class":773},[756,9900,1000],{"class":769},[756,9902,5101],{"class":773},[756,9904,900],{"class":769},[756,9906,639],{"class":773},[756,9908,1035],{"class":769},[756,9910,1649],{"class":773},[756,9912,9913],{"class":1216}," 500",[756,9915,1003],{"class":912},[756,9917,1006],{"class":773},[756,9919,9920,9923],{"class":758,"line":946},[756,9921,9922],{"class":874},"        return",[756,9924,4996],{"class":769},[756,9926,9927],{"class":758,"line":963},[756,9928,2344],{"class":773},[756,9930,9931],{"class":758,"line":969},[756,9932,868],{"emptyLinePlaceholder":867},[756,9934,9935],{"class":758,"line":978},[756,9936,9937],{"class":762},"      \u002F\u002F Server error (5xx): Retry with exponential backoff\n",[756,9939,9940,9942,9945,9947,9950,9953,9955,9958,9961],{"class":758,"line":983},[756,9941,7411],{"class":822},[756,9943,9944],{"class":769}," backoff",[756,9946,903],{"class":773},[756,9948,9949],{"class":1216}," 2",[756,9951,9952],{"class":773}," **",[756,9954,9826],{"class":769},[756,9956,9957],{"class":773}," *",[756,9959,9960],{"class":1216}," 1000",[756,9962,9963],{"class":762}," \u002F\u002F 1s, 2s, 4s\n",[756,9965,9966,9968,9970,9972,9974,9976,9979,9981,9984,9986,9989,9991],{"class":758,"line":1009},[756,9967,3174],{"class":769},[756,9969,639],{"class":773},[756,9971,1123],{"class":884},[756,9973,913],{"class":912},[756,9975,928],{"class":773},[756,9977,9978],{"class":777},"Server error, retrying in ",[756,9980,1028],{"class":773},[756,9982,9983],{"class":769},"backoff",[756,9985,922],{"class":773},[756,9987,9988],{"class":777},"ms...",[756,9990,928],{"class":773},[756,9992,975],{"class":912},[756,9994,9995,9998,10000,10003,10005,10008,10010,10013,10015,10017,10019,10021],{"class":758,"line":1043},[756,9996,9997],{"class":874},"      await",[756,9999,1015],{"class":773},[756,10001,10002],{"class":1208}," Promise",[756,10004,913],{"class":912},[756,10006,10007],{"class":1322},"resolve",[756,10009,1325],{"class":822},[756,10011,10012],{"class":884}," setTimeout",[756,10014,913],{"class":912},[756,10016,10007],{"class":769},[756,10018,931],{"class":773},[756,10020,9944],{"class":769},[756,10022,10023],{"class":912},"))\n",[756,10025,10026,10028,10030,10032,10034,10036],{"class":758,"line":1049},[756,10027,3300],{"class":773},[756,10029,7727],{"class":874},[756,10031,989],{"class":912},[756,10033,6591],{"class":769},[756,10035,1003],{"class":912},[756,10037,1006],{"class":773},[756,10039,10040],{"class":758,"line":1054},[756,10041,10042],{"class":762},"      \u002F\u002F Network error: Retry\n",[756,10044,10045,10047,10049,10052,10054,10056,10058,10060,10062,10065],{"class":758,"line":1072},[756,10046,7657],{"class":874},[756,10048,989],{"class":912},[756,10050,10051],{"class":769},"attempt",[756,10053,1829],{"class":773},[756,10055,9804],{"class":769},[756,10057,8895],{"class":773},[756,10059,1234],{"class":1216},[756,10061,1003],{"class":912},[756,10063,10064],{"class":874},"throw",[756,10066,10067],{"class":769}," error\n",[756,10069,10070],{"class":758,"line":1078},[756,10071,868],{"emptyLinePlaceholder":867},[756,10073,10074,10076,10078,10080,10082,10084,10086,10088],{"class":758,"line":1083},[756,10075,7411],{"class":822},[756,10077,9944],{"class":769},[756,10079,903],{"class":773},[756,10081,9949],{"class":1216},[756,10083,9952],{"class":773},[756,10085,9826],{"class":769},[756,10087,9957],{"class":773},[756,10089,10090],{"class":1216}," 1000\n",[756,10092,10093,10095,10097,10099,10101,10103,10106,10108,10110,10112,10114,10116],{"class":758,"line":1089},[756,10094,3174],{"class":769},[756,10096,639],{"class":773},[756,10098,1123],{"class":884},[756,10100,913],{"class":912},[756,10102,928],{"class":773},[756,10104,10105],{"class":777},"Network error, retrying in ",[756,10107,1028],{"class":773},[756,10109,9983],{"class":769},[756,10111,922],{"class":773},[756,10113,9988],{"class":777},[756,10115,928],{"class":773},[756,10117,975],{"class":912},[756,10119,10120,10122,10124,10126,10128,10130,10132,10134,10136,10138,10140,10142],{"class":758,"line":1115},[756,10121,9997],{"class":874},[756,10123,1015],{"class":773},[756,10125,10002],{"class":1208},[756,10127,913],{"class":912},[756,10129,10007],{"class":1322},[756,10131,1325],{"class":822},[756,10133,10012],{"class":884},[756,10135,913],{"class":912},[756,10137,10007],{"class":769},[756,10139,931],{"class":773},[756,10141,9944],{"class":769},[756,10143,10023],{"class":912},[756,10145,10146],{"class":758,"line":2000},[756,10147,966],{"class":773},[756,10149,10150],{"class":758,"line":2053},[756,10151,1046],{"class":773},[756,10153,10154],{"class":758,"line":3327},[756,10155,868],{"emptyLinePlaceholder":867},[756,10157,10158,10160,10162,10164,10166,10168,10171,10173],{"class":758,"line":3332},[756,10159,5710],{"class":874},[756,10161,1015],{"class":773},[756,10163,1018],{"class":884},[756,10165,913],{"class":912},[756,10167,955],{"class":773},[756,10169,10170],{"class":777},"Max retries exceeded",[756,10172,955],{"class":773},[756,10174,975],{"class":912},[756,10176,10177],{"class":758,"line":3338},[756,10178,1075],{"class":773},[756,10180,10181],{"class":758,"line":3358},[756,10182,868],{"emptyLinePlaceholder":867},[756,10184,10185],{"class":758,"line":3366},[756,10186,1086],{"class":762},[756,10188,10189,10191,10193,10195,10197,10199,10201,10203,10205,10207,10209,10211,10213],{"class":758,"line":3382},[756,10190,823],{"class":822},[756,10192,4744],{"class":769},[756,10194,774],{"class":773},[756,10196,906],{"class":874},[756,10198,9788],{"class":884},[756,10200,913],{"class":769},[756,10202,916],{"class":773},[756,10204,919],{"class":769},[756,10206,922],{"class":773},[756,10208,925],{"class":777},[756,10210,928],{"class":773},[756,10212,931],{"class":773},[756,10214,891],{"class":773},[756,10216,10217,10219,10221,10223,10225,10227,10229,10231,10233],{"class":758,"line":3389},[756,10218,9742],{"class":912},[756,10220,795],{"class":773},[756,10222,1094],{"class":773},[756,10224,1547],{"class":773},[756,10226,952],{"class":912},[756,10228,955],{"class":773},[756,10230,795],{"class":773},[756,10232,826],{"class":769},[756,10234,1075],{"class":773},[756,10236,10237,10239],{"class":758,"line":3394},[756,10238,922],{"class":773},[756,10240,975],{"class":769},[671,10242,10244],{"id":10243},"user-friendly-messages-for-4xx-errors","User-Friendly Messages for 4xx Errors",[732,10246,10248],{"className":808,"code":10247,"language":810,"meta":740,"style":740},"async function fetchPage(slug) {\n  const response = await fetch(`${BASE_URL}\u002Fpages\u002F${slug}`, {\n    headers: { 'X-API-Key': API_KEY }\n  })\n\n  if (response.status === 401) {\n    throw new Error('Authentication failed. Please check your API key.')\n  }\n\n  if (response.status === 404) {\n    return null \u002F\u002F Page not found (not an error, just return null)\n  }\n\n  if (response.status === 429) {\n    throw new Error('Too many requests. Please wait a moment and try again.')\n  }\n\n  if (!response.ok) {\n    const error = await response.json()\n    throw new Error(error.error.message || 'Failed to fetch page')\n  }\n\n  return await response.json()\n}\n\n\u002F\u002F Display user-friendly error\ntry {\n  const result = await fetchPage('about-us')\n} catch (error) {\n  showNotification(error.message, 'error')\n}\n",[618,10249,10250,10266,10298,10318,10324,10328,10349,10368,10372,10376,10396,10405,10409,10413,10434,10453,10457,10461,10479,10497,10529,10533,10537,10551,10555,10559,10564,10571,10593,10604,10627],{"__ignoreMap":740},[756,10251,10252,10254,10256,10258,10260,10262,10264],{"class":758,"line":759},[756,10253,1462],{"class":822},[756,10255,881],{"class":822},[756,10257,5312],{"class":884},[756,10259,913],{"class":773},[756,10261,1345],{"class":1322},[756,10263,684],{"class":773},[756,10265,891],{"class":773},[756,10267,10268,10270,10272,10274,10276,10278,10280,10282,10284,10286,10288,10290,10292,10294,10296],{"class":758,"line":766},[756,10269,897],{"class":822},[756,10271,900],{"class":769},[756,10273,903],{"class":773},[756,10275,906],{"class":874},[756,10277,909],{"class":884},[756,10279,913],{"class":912},[756,10281,916],{"class":773},[756,10283,919],{"class":769},[756,10285,922],{"class":773},[756,10287,1774],{"class":777},[756,10289,1028],{"class":773},[756,10291,1345],{"class":769},[756,10293,1038],{"class":773},[756,10295,931],{"class":773},[756,10297,891],{"class":773},[756,10299,10300,10302,10304,10306,10308,10310,10312,10314,10316],{"class":758,"line":780},[756,10301,939],{"class":912},[756,10303,795],{"class":773},[756,10305,1094],{"class":773},[756,10307,1547],{"class":773},[756,10309,952],{"class":912},[756,10311,955],{"class":773},[756,10313,795],{"class":773},[756,10315,1556],{"class":769},[756,10317,1562],{"class":773},[756,10319,10320,10322],{"class":758,"line":864},[756,10321,972],{"class":773},[756,10323,975],{"class":912},[756,10325,10326],{"class":758,"line":871},[756,10327,868],{"emptyLinePlaceholder":867},[756,10329,10330,10332,10334,10336,10338,10340,10342,10345,10347],{"class":758,"line":894},[756,10331,986],{"class":874},[756,10333,989],{"class":912},[756,10335,995],{"class":769},[756,10337,639],{"class":773},[756,10339,1035],{"class":769},[756,10341,1829],{"class":773},[756,10343,10344],{"class":1216}," 401",[756,10346,1003],{"class":912},[756,10348,1006],{"class":773},[756,10350,10351,10353,10355,10357,10359,10361,10364,10366],{"class":758,"line":936},[756,10352,1012],{"class":874},[756,10354,1015],{"class":773},[756,10356,1018],{"class":884},[756,10358,913],{"class":912},[756,10360,955],{"class":773},[756,10362,10363],{"class":777},"Authentication failed. Please check your API key.",[756,10365,955],{"class":773},[756,10367,975],{"class":912},[756,10369,10370],{"class":758,"line":946},[756,10371,1046],{"class":773},[756,10373,10374],{"class":758,"line":963},[756,10375,868],{"emptyLinePlaceholder":867},[756,10377,10378,10380,10382,10384,10386,10388,10390,10392,10394],{"class":758,"line":969},[756,10379,986],{"class":874},[756,10381,989],{"class":912},[756,10383,995],{"class":769},[756,10385,639],{"class":773},[756,10387,1035],{"class":769},[756,10389,1829],{"class":773},[756,10391,1832],{"class":1216},[756,10393,1003],{"class":912},[756,10395,1006],{"class":773},[756,10397,10398,10400,10402],{"class":758,"line":978},[756,10399,1841],{"class":874},[756,10401,1844],{"class":773},[756,10403,10404],{"class":762}," \u002F\u002F Page not found (not an error, just return null)\n",[756,10406,10407],{"class":758,"line":983},[756,10408,1046],{"class":773},[756,10410,10411],{"class":758,"line":1009},[756,10412,868],{"emptyLinePlaceholder":867},[756,10414,10415,10417,10419,10421,10423,10425,10427,10430,10432],{"class":758,"line":1043},[756,10416,986],{"class":874},[756,10418,989],{"class":912},[756,10420,995],{"class":769},[756,10422,639],{"class":773},[756,10424,1035],{"class":769},[756,10426,1829],{"class":773},[756,10428,10429],{"class":1216}," 429",[756,10431,1003],{"class":912},[756,10433,1006],{"class":773},[756,10435,10436,10438,10440,10442,10444,10446,10449,10451],{"class":758,"line":1049},[756,10437,1012],{"class":874},[756,10439,1015],{"class":773},[756,10441,1018],{"class":884},[756,10443,913],{"class":912},[756,10445,955],{"class":773},[756,10447,10448],{"class":777},"Too many requests. Please wait a moment and try again.",[756,10450,955],{"class":773},[756,10452,975],{"class":912},[756,10454,10455],{"class":758,"line":1054},[756,10456,1046],{"class":773},[756,10458,10459],{"class":758,"line":1072},[756,10460,868],{"emptyLinePlaceholder":867},[756,10462,10463,10465,10467,10469,10471,10473,10475,10477],{"class":758,"line":1078},[756,10464,986],{"class":874},[756,10466,989],{"class":912},[756,10468,992],{"class":773},[756,10470,995],{"class":769},[756,10472,639],{"class":773},[756,10474,1000],{"class":769},[756,10476,1003],{"class":912},[756,10478,1006],{"class":773},[756,10480,10481,10483,10485,10487,10489,10491,10493,10495],{"class":758,"line":1083},[756,10482,3095],{"class":822},[756,10484,4671],{"class":769},[756,10486,903],{"class":773},[756,10488,906],{"class":874},[756,10490,900],{"class":769},[756,10492,639],{"class":773},[756,10494,1066],{"class":884},[756,10496,1069],{"class":912},[756,10498,10499,10501,10503,10505,10507,10509,10511,10513,10515,10518,10520,10522,10525,10527],{"class":758,"line":1089},[756,10500,1012],{"class":874},[756,10502,1015],{"class":773},[756,10504,1018],{"class":884},[756,10506,913],{"class":912},[756,10508,6591],{"class":769},[756,10510,639],{"class":773},[756,10512,6591],{"class":769},[756,10514,639],{"class":773},[756,10516,10517],{"class":769},"message",[756,10519,5101],{"class":773},[756,10521,1547],{"class":773},[756,10523,10524],{"class":777},"Failed to fetch page",[756,10526,955],{"class":773},[756,10528,975],{"class":912},[756,10530,10531],{"class":758,"line":1115},[756,10532,1046],{"class":773},[756,10534,10535],{"class":758,"line":2000},[756,10536,868],{"emptyLinePlaceholder":867},[756,10538,10539,10541,10543,10545,10547,10549],{"class":758,"line":2053},[756,10540,1057],{"class":874},[756,10542,906],{"class":874},[756,10544,900],{"class":769},[756,10546,639],{"class":773},[756,10548,1066],{"class":884},[756,10550,1069],{"class":912},[756,10552,10553],{"class":758,"line":3327},[756,10554,1075],{"class":773},[756,10556,10557],{"class":758,"line":3332},[756,10558,868],{"emptyLinePlaceholder":867},[756,10560,10561],{"class":758,"line":3338},[756,10562,10563],{"class":762},"\u002F\u002F Display user-friendly error\n",[756,10565,10566,10569],{"class":758,"line":3358},[756,10567,10568],{"class":874},"try",[756,10570,891],{"class":773},[756,10572,10573,10575,10577,10579,10581,10583,10585,10587,10589,10591],{"class":758,"line":3366},[756,10574,897],{"class":822},[756,10576,2205],{"class":769},[756,10578,903],{"class":773},[756,10580,906],{"class":874},[756,10582,5312],{"class":884},[756,10584,913],{"class":912},[756,10586,955],{"class":773},[756,10588,1937],{"class":777},[756,10590,955],{"class":773},[756,10592,975],{"class":912},[756,10594,10595,10597,10599,10602],{"class":758,"line":3382},[756,10596,922],{"class":773},[756,10598,7727],{"class":874},[756,10600,10601],{"class":769}," (error) ",[756,10603,1006],{"class":773},[756,10605,10606,10609,10611,10613,10615,10617,10619,10621,10623,10625],{"class":758,"line":3389},[756,10607,10608],{"class":884},"  showNotification",[756,10610,913],{"class":912},[756,10612,6591],{"class":769},[756,10614,639],{"class":773},[756,10616,10517],{"class":769},[756,10618,931],{"class":773},[756,10620,1547],{"class":773},[756,10622,6591],{"class":777},[756,10624,955],{"class":773},[756,10626,975],{"class":912},[756,10628,10629],{"class":758,"line":3394},[756,10630,1075],{"class":773},[671,10632,10634],{"id":10633},"rate-limit-backoff-strategies","Rate Limit Backoff Strategies",[732,10636,10638],{"className":808,"code":10637,"language":810,"meta":740,"style":740},"async function fetchWithRateLimitHandling(url, options = {}) {\n  const response = await fetch(url, options)\n\n  if (response.status === 429) {\n    \u002F\u002F Get retry-after header (seconds to wait)\n    const retryAfter = parseInt(response.headers.get('Retry-After') || '60')\n\n    console.log(`Rate limited, waiting ${retryAfter}s...`)\n    await new Promise(resolve => setTimeout(resolve, retryAfter * 1000))\n\n    \u002F\u002F Retry once\n    return await fetch(url, options)\n  }\n\n  return response\n}\n\n\u002F\u002F Usage\nconst response = await fetchWithRateLimitHandling(`${BASE_URL}\u002Fpages`, {\n  headers: { 'X-API-Key': API_KEY }\n})\n",[618,10639,10640,10663,10685,10689,10709,10714,10761,10765,10794,10825,10829,10834,10852,10856,10860,10866,10870,10874,10878,10906,10926],{"__ignoreMap":740},[756,10641,10642,10644,10646,10649,10651,10653,10655,10657,10659,10661],{"class":758,"line":759},[756,10643,1462],{"class":822},[756,10645,881],{"class":822},[756,10647,10648],{"class":884}," fetchWithRateLimitHandling",[756,10650,913],{"class":773},[756,10652,5974],{"class":1322},[756,10654,931],{"class":773},[756,10656,5094],{"class":1322},[756,10658,903],{"class":773},[756,10660,5065],{"class":773},[756,10662,891],{"class":773},[756,10664,10665,10667,10669,10671,10673,10675,10677,10679,10681,10683],{"class":758,"line":766},[756,10666,897],{"class":822},[756,10668,900],{"class":769},[756,10670,903],{"class":773},[756,10672,906],{"class":874},[756,10674,909],{"class":884},[756,10676,913],{"class":912},[756,10678,5974],{"class":769},[756,10680,931],{"class":773},[756,10682,5094],{"class":769},[756,10684,975],{"class":912},[756,10686,10687],{"class":758,"line":780},[756,10688,868],{"emptyLinePlaceholder":867},[756,10690,10691,10693,10695,10697,10699,10701,10703,10705,10707],{"class":758,"line":864},[756,10692,986],{"class":874},[756,10694,989],{"class":912},[756,10696,995],{"class":769},[756,10698,639],{"class":773},[756,10700,1035],{"class":769},[756,10702,1829],{"class":773},[756,10704,10429],{"class":1216},[756,10706,1003],{"class":912},[756,10708,1006],{"class":773},[756,10710,10711],{"class":758,"line":871},[756,10712,10713],{"class":762},"    \u002F\u002F Get retry-after header (seconds to wait)\n",[756,10715,10716,10718,10721,10723,10726,10728,10730,10732,10734,10736,10738,10740,10742,10745,10747,10749,10752,10754,10757,10759],{"class":758,"line":894},[756,10717,3095],{"class":822},[756,10719,10720],{"class":769}," retryAfter",[756,10722,903],{"class":773},[756,10724,10725],{"class":884}," parseInt",[756,10727,913],{"class":912},[756,10729,995],{"class":769},[756,10731,639],{"class":773},[756,10733,9419],{"class":769},[756,10735,639],{"class":773},[756,10737,3110],{"class":884},[756,10739,913],{"class":912},[756,10741,955],{"class":773},[756,10743,10744],{"class":777},"Retry-After",[756,10746,955],{"class":773},[756,10748,1003],{"class":912},[756,10750,10751],{"class":773},"||",[756,10753,1547],{"class":773},[756,10755,10756],{"class":777},"60",[756,10758,955],{"class":773},[756,10760,975],{"class":912},[756,10762,10763],{"class":758,"line":936},[756,10764,868],{"emptyLinePlaceholder":867},[756,10766,10767,10769,10771,10773,10775,10777,10780,10782,10785,10787,10790,10792],{"class":758,"line":946},[756,10768,3224],{"class":769},[756,10770,639],{"class":773},[756,10772,1123],{"class":884},[756,10774,913],{"class":912},[756,10776,928],{"class":773},[756,10778,10779],{"class":777},"Rate limited, waiting ",[756,10781,1028],{"class":773},[756,10783,10784],{"class":769},"retryAfter",[756,10786,922],{"class":773},[756,10788,10789],{"class":777},"s...",[756,10791,928],{"class":773},[756,10793,975],{"class":912},[756,10795,10796,10799,10801,10803,10805,10807,10809,10811,10813,10815,10817,10819,10821,10823],{"class":758,"line":963},[756,10797,10798],{"class":874},"    await",[756,10800,1015],{"class":773},[756,10802,10002],{"class":1208},[756,10804,913],{"class":912},[756,10806,10007],{"class":1322},[756,10808,1325],{"class":822},[756,10810,10012],{"class":884},[756,10812,913],{"class":912},[756,10814,10007],{"class":769},[756,10816,931],{"class":773},[756,10818,10720],{"class":769},[756,10820,9957],{"class":773},[756,10822,9960],{"class":1216},[756,10824,10023],{"class":912},[756,10826,10827],{"class":758,"line":969},[756,10828,868],{"emptyLinePlaceholder":867},[756,10830,10831],{"class":758,"line":978},[756,10832,10833],{"class":762},"    \u002F\u002F Retry once\n",[756,10835,10836,10838,10840,10842,10844,10846,10848,10850],{"class":758,"line":983},[756,10837,1841],{"class":874},[756,10839,906],{"class":874},[756,10841,909],{"class":884},[756,10843,913],{"class":912},[756,10845,5974],{"class":769},[756,10847,931],{"class":773},[756,10849,5094],{"class":769},[756,10851,975],{"class":912},[756,10853,10854],{"class":758,"line":1009},[756,10855,1046],{"class":773},[756,10857,10858],{"class":758,"line":1043},[756,10859,868],{"emptyLinePlaceholder":867},[756,10861,10862,10864],{"class":758,"line":1049},[756,10863,1057],{"class":874},[756,10865,4996],{"class":769},[756,10867,10868],{"class":758,"line":1054},[756,10869,1075],{"class":773},[756,10871,10872],{"class":758,"line":1072},[756,10873,868],{"emptyLinePlaceholder":867},[756,10875,10876],{"class":758,"line":1078},[756,10877,1086],{"class":762},[756,10879,10880,10882,10884,10886,10888,10890,10892,10894,10896,10898,10900,10902,10904],{"class":758,"line":1083},[756,10881,823],{"class":822},[756,10883,4744],{"class":769},[756,10885,774],{"class":773},[756,10887,906],{"class":874},[756,10889,10648],{"class":884},[756,10891,913],{"class":769},[756,10893,916],{"class":773},[756,10895,919],{"class":769},[756,10897,922],{"class":773},[756,10899,925],{"class":777},[756,10901,928],{"class":773},[756,10903,931],{"class":773},[756,10905,891],{"class":773},[756,10907,10908,10910,10912,10914,10916,10918,10920,10922,10924],{"class":758,"line":1089},[756,10909,9742],{"class":912},[756,10911,795],{"class":773},[756,10913,1094],{"class":773},[756,10915,1547],{"class":773},[756,10917,952],{"class":912},[756,10919,955],{"class":773},[756,10921,795],{"class":773},[756,10923,826],{"class":769},[756,10925,1075],{"class":773},[756,10927,10928,10930],{"class":758,"line":1115},[756,10929,922],{"class":773},[756,10931,975],{"class":769},[692,10933],{},[575,10935,10937],{"id":10936},"performance-optimization","Performance Optimization",[671,10939,10941],{"id":10940},"field-selection-to-reduce-payload","Field Selection to Reduce Payload",[567,10943,10944,10947],{},[571,10945,10946],{},"Impact",": Up to 90% smaller responses",[732,10949,10951],{"className":808,"code":10950,"language":810,"meta":740,"style":740},"\u002F\u002F Bad: 15 KB per page\nconst pages = await fetch(`${BASE_URL}\u002Fpages`)\n\n\u002F\u002F Good: 2 KB per page\nconst pages = await fetch(`${BASE_URL}\u002Fpages?fields=title,excerpt`)\n\n\u002F\u002F Best: 1 KB per page (navigation menu)\nconst pages = await fetch(`${BASE_URL}\u002Fpages?fields=title`)\n",[618,10952,10953,10958,10984,10988,10993,11019,11023,11028],{"__ignoreMap":740},[756,10954,10955],{"class":758,"line":759},[756,10956,10957],{"class":762},"\u002F\u002F Bad: 15 KB per page\n",[756,10959,10960,10962,10964,10966,10968,10970,10972,10974,10976,10978,10980,10982],{"class":758,"line":766},[756,10961,823],{"class":822},[756,10963,2429],{"class":769},[756,10965,774],{"class":773},[756,10967,906],{"class":874},[756,10969,909],{"class":884},[756,10971,913],{"class":769},[756,10973,916],{"class":773},[756,10975,919],{"class":769},[756,10977,922],{"class":773},[756,10979,925],{"class":777},[756,10981,928],{"class":773},[756,10983,975],{"class":769},[756,10985,10986],{"class":758,"line":780},[756,10987,868],{"emptyLinePlaceholder":867},[756,10989,10990],{"class":758,"line":864},[756,10991,10992],{"class":762},"\u002F\u002F Good: 2 KB per page\n",[756,10994,10995,10997,10999,11001,11003,11005,11007,11009,11011,11013,11015,11017],{"class":758,"line":871},[756,10996,823],{"class":822},[756,10998,2429],{"class":769},[756,11000,774],{"class":773},[756,11002,906],{"class":874},[756,11004,909],{"class":884},[756,11006,913],{"class":769},[756,11008,916],{"class":773},[756,11010,919],{"class":769},[756,11012,922],{"class":773},[756,11014,2484],{"class":777},[756,11016,928],{"class":773},[756,11018,975],{"class":769},[756,11020,11021],{"class":758,"line":894},[756,11022,868],{"emptyLinePlaceholder":867},[756,11024,11025],{"class":758,"line":936},[756,11026,11027],{"class":762},"\u002F\u002F Best: 1 KB per page (navigation menu)\n",[756,11029,11030,11032,11034,11036,11038,11040,11042,11044,11046,11048,11051,11053],{"class":758,"line":946},[756,11031,823],{"class":822},[756,11033,2429],{"class":769},[756,11035,774],{"class":773},[756,11037,906],{"class":874},[756,11039,909],{"class":884},[756,11041,913],{"class":769},[756,11043,916],{"class":773},[756,11045,919],{"class":769},[756,11047,922],{"class":773},[756,11049,11050],{"class":777},"\u002Fpages?fields=title",[756,11052,928],{"class":773},[756,11054,975],{"class":769},[671,11056,11058],{"id":11057},"pagination-best-practices","Pagination Best Practices",[732,11060,11062],{"className":808,"code":11061,"language":810,"meta":740,"style":740},"\u002F\u002F Bad: limit is capped server-side at 100 — this doesn't slow-fetch everything,\n\u002F\u002F it fails immediately with 400 INVALID_PAGINATION before any data is returned.\nconst allPages = await fetch(`${BASE_URL}\u002Fpages?limit=10000`)\n\n\u002F\u002F Good: Paginate with a limit of 100 or less\nasync function fetchAllPages() {\n  const pages = []\n  let page = 1\n  const limit = 100\n\n  while (true) {\n    const response = await fetch(\n      `${BASE_URL}\u002Fpages?limit=${limit}&page=${page}`\n    )\n    const { data, pagination } = await response.json()\n\n    pages.push(...data)\n\n    if (pagination.page >= pagination.totalPages) break\n    page += 1\n  }\n\n  return pages\n}\n",[618,11063,11064,11069,11074,11102,11106,11111,11124,11135,11147,11158,11162,11176,11190,11216,11221,11247,11251,11267,11271,11297,11306,11310,11314,11321],{"__ignoreMap":740},[756,11065,11066],{"class":758,"line":759},[756,11067,11068],{"class":762},"\u002F\u002F Bad: limit is capped server-side at 100 — this doesn't slow-fetch everything,\n",[756,11070,11071],{"class":758,"line":766},[756,11072,11073],{"class":762},"\u002F\u002F it fails immediately with 400 INVALID_PAGINATION before any data is returned.\n",[756,11075,11076,11078,11081,11083,11085,11087,11089,11091,11093,11095,11098,11100],{"class":758,"line":780},[756,11077,823],{"class":822},[756,11079,11080],{"class":769}," allPages ",[756,11082,774],{"class":773},[756,11084,906],{"class":874},[756,11086,909],{"class":884},[756,11088,913],{"class":769},[756,11090,916],{"class":773},[756,11092,919],{"class":769},[756,11094,922],{"class":773},[756,11096,11097],{"class":777},"\u002Fpages?limit=10000",[756,11099,928],{"class":773},[756,11101,975],{"class":769},[756,11103,11104],{"class":758,"line":864},[756,11105,868],{"emptyLinePlaceholder":867},[756,11107,11108],{"class":758,"line":871},[756,11109,11110],{"class":762},"\u002F\u002F Good: Paginate with a limit of 100 or less\n",[756,11112,11113,11115,11117,11120,11122],{"class":758,"line":894},[756,11114,1462],{"class":822},[756,11116,881],{"class":822},[756,11118,11119],{"class":884}," fetchAllPages",[756,11121,888],{"class":773},[756,11123,891],{"class":773},[756,11125,11126,11128,11130,11132],{"class":758,"line":936},[756,11127,897],{"class":822},[756,11129,1145],{"class":769},[756,11131,903],{"class":773},[756,11133,11134],{"class":912}," []\n",[756,11136,11137,11140,11142,11144],{"class":758,"line":946},[756,11138,11139],{"class":822},"  let",[756,11141,1895],{"class":769},[756,11143,903],{"class":773},[756,11145,11146],{"class":1216}," 1\n",[756,11148,11149,11151,11153,11155],{"class":758,"line":963},[756,11150,897],{"class":822},[756,11152,1480],{"class":769},[756,11154,903],{"class":773},[756,11156,11157],{"class":1216}," 100\n",[756,11159,11160],{"class":758,"line":969},[756,11161,868],{"emptyLinePlaceholder":867},[756,11163,11164,11167,11169,11172,11174],{"class":758,"line":978},[756,11165,11166],{"class":874},"  while",[756,11168,989],{"class":912},[756,11170,11171],{"class":2254},"true",[756,11173,1003],{"class":912},[756,11175,1006],{"class":773},[756,11177,11178,11180,11182,11184,11186,11188],{"class":758,"line":983},[756,11179,3095],{"class":822},[756,11181,900],{"class":769},[756,11183,903],{"class":773},[756,11185,906],{"class":874},[756,11187,909],{"class":884},[756,11189,1503],{"class":912},[756,11191,11192,11195,11197,11199,11202,11204,11206,11208,11210,11212,11214],{"class":758,"line":1009},[756,11193,11194],{"class":773},"      `${",[756,11196,919],{"class":769},[756,11198,922],{"class":773},[756,11200,11201],{"class":777},"\u002Fpages?limit=",[756,11203,1028],{"class":773},[756,11205,1243],{"class":769},[756,11207,922],{"class":773},[756,11209,1524],{"class":777},[756,11211,1028],{"class":773},[756,11213,1227],{"class":769},[756,11215,6667],{"class":773},[756,11217,11218],{"class":758,"line":1043},[756,11219,11220],{"class":912},"    )\n",[756,11222,11223,11225,11227,11229,11231,11233,11235,11237,11239,11241,11243,11245],{"class":758,"line":1049},[756,11224,3095],{"class":822},[756,11226,1094],{"class":773},[756,11228,1097],{"class":769},[756,11230,931],{"class":773},[756,11232,1406],{"class":769},[756,11234,1559],{"class":773},[756,11236,903],{"class":773},[756,11238,906],{"class":874},[756,11240,900],{"class":769},[756,11242,639],{"class":773},[756,11244,1066],{"class":884},[756,11246,1069],{"class":912},[756,11248,11249],{"class":758,"line":1054},[756,11250,868],{"emptyLinePlaceholder":867},[756,11252,11253,11255,11257,11259,11261,11263,11265],{"class":758,"line":1072},[756,11254,6306],{"class":769},[756,11256,639],{"class":773},[756,11258,8348],{"class":884},[756,11260,913],{"class":912},[756,11262,1184],{"class":773},[756,11264,1135],{"class":769},[756,11266,975],{"class":912},[756,11268,11269],{"class":758,"line":1078},[756,11270,868],{"emptyLinePlaceholder":867},[756,11272,11273,11275,11277,11279,11281,11283,11286,11288,11290,11292,11294],{"class":758,"line":1083},[756,11274,3130],{"class":874},[756,11276,989],{"class":912},[756,11278,1194],{"class":769},[756,11280,639],{"class":773},[756,11282,1227],{"class":769},[756,11284,11285],{"class":773}," >=",[756,11287,1406],{"class":769},[756,11289,639],{"class":773},[756,11291,1259],{"class":769},[756,11293,1003],{"class":912},[756,11295,11296],{"class":874},"break\n",[756,11298,11299,11301,11304],{"class":758,"line":1089},[756,11300,6169],{"class":769},[756,11302,11303],{"class":773}," +=",[756,11305,11146],{"class":1216},[756,11307,11308],{"class":758,"line":1115},[756,11309,1046],{"class":773},[756,11311,11312],{"class":758,"line":2000},[756,11313,868],{"emptyLinePlaceholder":867},[756,11315,11316,11318],{"class":758,"line":2053},[756,11317,1057],{"class":874},[756,11319,11320],{"class":769}," pages\n",[756,11322,11323],{"class":758,"line":3327},[756,11324,1075],{"class":773},[671,11326,11328],{"id":11327},"parallel-requests-with-promiseall","Parallel Requests with Promise.all",[732,11330,11332],{"className":808,"code":11331,"language":810,"meta":740,"style":740},"\u002F\u002F Bad: Sequential (slow)\nconst homePage = await fetchPage('home')\nconst aboutPage = await fetchPage('about')\nconst contactPage = await fetchPage('contact')\n\n\u002F\u002F Good: Parallel (fast)\nconst [homePage, aboutPage, contactPage] = await Promise.all([\n  fetchPage('home'),\n  fetchPage('about'),\n  fetchPage('contact')\n])\n",[618,11333,11334,11339,11363,11386,11410,11414,11419,11455,11472,11488,11502],{"__ignoreMap":740},[756,11335,11336],{"class":758,"line":759},[756,11337,11338],{"class":762},"\u002F\u002F Bad: Sequential (slow)\n",[756,11340,11341,11343,11346,11348,11350,11352,11354,11356,11359,11361],{"class":758,"line":766},[756,11342,823],{"class":822},[756,11344,11345],{"class":769}," homePage ",[756,11347,774],{"class":773},[756,11349,906],{"class":874},[756,11351,5312],{"class":884},[756,11353,913],{"class":769},[756,11355,955],{"class":773},[756,11357,11358],{"class":777},"home",[756,11360,955],{"class":773},[756,11362,975],{"class":769},[756,11364,11365,11367,11370,11372,11374,11376,11378,11380,11382,11384],{"class":758,"line":780},[756,11366,823],{"class":822},[756,11368,11369],{"class":769}," aboutPage ",[756,11371,774],{"class":773},[756,11373,906],{"class":874},[756,11375,5312],{"class":884},[756,11377,913],{"class":769},[756,11379,955],{"class":773},[756,11381,2116],{"class":777},[756,11383,955],{"class":773},[756,11385,975],{"class":769},[756,11387,11388,11390,11393,11395,11397,11399,11401,11403,11406,11408],{"class":758,"line":864},[756,11389,823],{"class":822},[756,11391,11392],{"class":769}," contactPage ",[756,11394,774],{"class":773},[756,11396,906],{"class":874},[756,11398,5312],{"class":884},[756,11400,913],{"class":769},[756,11402,955],{"class":773},[756,11404,11405],{"class":777},"contact",[756,11407,955],{"class":773},[756,11409,975],{"class":769},[756,11411,11412],{"class":758,"line":871},[756,11413,868],{"emptyLinePlaceholder":867},[756,11415,11416],{"class":758,"line":894},[756,11417,11418],{"class":762},"\u002F\u002F Good: Parallel (fast)\n",[756,11420,11421,11423,11425,11428,11430,11433,11435,11438,11441,11443,11445,11447,11449,11452],{"class":758,"line":936},[756,11422,823],{"class":822},[756,11424,1181],{"class":773},[756,11426,11427],{"class":769},"homePage",[756,11429,931],{"class":773},[756,11431,11432],{"class":769}," aboutPage",[756,11434,931],{"class":773},[756,11436,11437],{"class":769}," contactPage",[756,11439,11440],{"class":773},"]",[756,11442,903],{"class":773},[756,11444,906],{"class":874},[756,11446,10002],{"class":1208},[756,11448,639],{"class":773},[756,11450,11451],{"class":884},"all",[756,11453,11454],{"class":769},"([\n",[756,11456,11457,11460,11462,11464,11466,11468,11470],{"class":758,"line":946},[756,11458,11459],{"class":884},"  fetchPage",[756,11461,913],{"class":769},[756,11463,955],{"class":773},[756,11465,11358],{"class":777},[756,11467,955],{"class":773},[756,11469,684],{"class":769},[756,11471,1220],{"class":773},[756,11473,11474,11476,11478,11480,11482,11484,11486],{"class":758,"line":963},[756,11475,11459],{"class":884},[756,11477,913],{"class":769},[756,11479,955],{"class":773},[756,11481,2116],{"class":777},[756,11483,955],{"class":773},[756,11485,684],{"class":769},[756,11487,1220],{"class":773},[756,11489,11490,11492,11494,11496,11498,11500],{"class":758,"line":969},[756,11491,11459],{"class":884},[756,11493,913],{"class":769},[756,11495,955],{"class":773},[756,11497,11405],{"class":777},[756,11499,955],{"class":773},[756,11501,975],{"class":769},[756,11503,11504],{"class":758,"line":978},[756,11505,11506],{"class":769},"])\n",[671,11508,11510],{"id":11509},"request-deduplication","Request Deduplication",[732,11512,11514],{"className":808,"code":11513,"language":810,"meta":740,"style":740},"class RequestDeduplicator {\n  constructor() {\n    this.pending = new Map()\n  }\n\n  async fetch(key, fetcher) {\n    \u002F\u002F If request already in flight, wait for it\n    if (this.pending.has(key)) {\n      return await this.pending.get(key)\n    }\n\n    \u002F\u002F Start new request\n    const promise = fetcher().finally(() => {\n      this.pending.delete(key)\n    })\n\n    this.pending.set(key, promise)\n    return await promise\n  }\n}\n\n\u002F\u002F Usage\nconst dedup = new RequestDeduplicator()\n\n\u002F\u002F Multiple calls deduplicated to single request\nconst result1 = dedup.fetch('\u002Fpages', fetchPages)\nconst result2 = dedup.fetch('\u002Fpages', fetchPages) \u002F\u002F Waits for first\nconst result3 = dedup.fetch('\u002Fpages', fetchPages) \u002F\u002F Waits for first\n",[618,11515,11516,11525,11533,11548,11552,11556,11574,11579,11604,11624,11628,11632,11637,11663,11680,11686,11690,11710,11719,11723,11727,11731,11735,11750,11754,11759,11788,11819],{"__ignoreMap":740},[756,11517,11518,11520,11523],{"class":758,"line":759},[756,11519,2997],{"class":822},[756,11521,11522],{"class":1208}," RequestDeduplicator",[756,11524,891],{"class":773},[756,11526,11527,11529,11531],{"class":758,"line":766},[756,11528,3007],{"class":822},[756,11530,888],{"class":773},[756,11532,891],{"class":773},[756,11534,11535,11537,11540,11542,11544,11546],{"class":758,"line":780},[756,11536,3031],{"class":773},[756,11538,11539],{"class":769},"pending",[756,11541,903],{"class":773},[756,11543,1015],{"class":773},[756,11545,3064],{"class":884},[756,11547,1069],{"class":912},[756,11549,11550],{"class":758,"line":864},[756,11551,1046],{"class":773},[756,11553,11554],{"class":758,"line":871},[756,11555,868],{"emptyLinePlaceholder":867},[756,11557,11558,11560,11562,11564,11566,11568,11570,11572],{"class":758,"line":894},[756,11559,3079],{"class":822},[756,11561,909],{"class":912},[756,11563,913],{"class":773},[756,11565,8748],{"class":1322},[756,11567,931],{"class":773},[756,11569,8753],{"class":1322},[756,11571,684],{"class":773},[756,11573,891],{"class":773},[756,11575,11576],{"class":758,"line":936},[756,11577,11578],{"class":762},"    \u002F\u002F If request already in flight, wait for it\n",[756,11580,11581,11583,11585,11588,11590,11592,11595,11597,11599,11602],{"class":758,"line":946},[756,11582,3130],{"class":874},[756,11584,989],{"class":912},[756,11586,11587],{"class":773},"this.",[756,11589,11539],{"class":769},[756,11591,639],{"class":773},[756,11593,11594],{"class":884},"has",[756,11596,913],{"class":912},[756,11598,8748],{"class":769},[756,11600,11601],{"class":912},")) ",[756,11603,1006],{"class":773},[756,11605,11606,11608,11610,11612,11614,11616,11618,11620,11622],{"class":758,"line":963},[756,11607,3199],{"class":874},[756,11609,906],{"class":874},[756,11611,3103],{"class":773},[756,11613,11539],{"class":769},[756,11615,639],{"class":773},[756,11617,3110],{"class":884},[756,11619,913],{"class":912},[756,11621,8748],{"class":769},[756,11623,975],{"class":912},[756,11625,11626],{"class":758,"line":969},[756,11627,966],{"class":773},[756,11629,11630],{"class":758,"line":978},[756,11631,868],{"emptyLinePlaceholder":867},[756,11633,11634],{"class":758,"line":983},[756,11635,11636],{"class":762},"    \u002F\u002F Start new request\n",[756,11638,11639,11641,11644,11646,11648,11650,11652,11655,11657,11659,11661],{"class":758,"line":1009},[756,11640,3095],{"class":822},[756,11642,11643],{"class":769}," promise",[756,11645,903],{"class":773},[756,11647,8753],{"class":884},[756,11649,888],{"class":912},[756,11651,639],{"class":773},[756,11653,11654],{"class":884},"finally",[756,11656,913],{"class":912},[756,11658,888],{"class":773},[756,11660,1325],{"class":822},[756,11662,891],{"class":773},[756,11664,11665,11667,11669,11671,11674,11676,11678],{"class":758,"line":1043},[756,11666,8838],{"class":773},[756,11668,11539],{"class":769},[756,11670,639],{"class":773},[756,11672,11673],{"class":884},"delete",[756,11675,913],{"class":912},[756,11677,8748],{"class":769},[756,11679,975],{"class":912},[756,11681,11682,11684],{"class":758,"line":1049},[756,11683,3300],{"class":773},[756,11685,975],{"class":912},[756,11687,11688],{"class":758,"line":1054},[756,11689,868],{"emptyLinePlaceholder":867},[756,11691,11692,11694,11696,11698,11700,11702,11704,11706,11708],{"class":758,"line":1072},[756,11693,3031],{"class":773},[756,11695,11539],{"class":769},[756,11697,639],{"class":773},[756,11699,3347],{"class":884},[756,11701,913],{"class":912},[756,11703,8748],{"class":769},[756,11705,931],{"class":773},[756,11707,11643],{"class":769},[756,11709,975],{"class":912},[756,11711,11712,11714,11716],{"class":758,"line":1078},[756,11713,1841],{"class":874},[756,11715,906],{"class":874},[756,11717,11718],{"class":769}," promise\n",[756,11720,11721],{"class":758,"line":1083},[756,11722,1046],{"class":773},[756,11724,11725],{"class":758,"line":1089},[756,11726,1075],{"class":773},[756,11728,11729],{"class":758,"line":1115},[756,11730,868],{"emptyLinePlaceholder":867},[756,11732,11733],{"class":758,"line":2000},[756,11734,1086],{"class":762},[756,11736,11737,11739,11742,11744,11746,11748],{"class":758,"line":2053},[756,11738,823],{"class":822},[756,11740,11741],{"class":769}," dedup ",[756,11743,774],{"class":773},[756,11745,1015],{"class":773},[756,11747,11522],{"class":884},[756,11749,1069],{"class":769},[756,11751,11752],{"class":758,"line":3327},[756,11753,868],{"emptyLinePlaceholder":867},[756,11755,11756],{"class":758,"line":3332},[756,11757,11758],{"class":762},"\u002F\u002F Multiple calls deduplicated to single request\n",[756,11760,11761,11763,11766,11768,11771,11773,11775,11777,11779,11781,11783,11785],{"class":758,"line":3338},[756,11762,823],{"class":822},[756,11764,11765],{"class":769}," result1 ",[756,11767,774],{"class":773},[756,11769,11770],{"class":769}," dedup",[756,11772,639],{"class":773},[756,11774,3504],{"class":884},[756,11776,913],{"class":769},[756,11778,955],{"class":773},[756,11780,925],{"class":777},[756,11782,955],{"class":773},[756,11784,931],{"class":773},[756,11786,11787],{"class":769}," fetchPages)\n",[756,11789,11790,11792,11795,11797,11799,11801,11803,11805,11807,11809,11811,11813,11816],{"class":758,"line":3358},[756,11791,823],{"class":822},[756,11793,11794],{"class":769}," result2 ",[756,11796,774],{"class":773},[756,11798,11770],{"class":769},[756,11800,639],{"class":773},[756,11802,3504],{"class":884},[756,11804,913],{"class":769},[756,11806,955],{"class":773},[756,11808,925],{"class":777},[756,11810,955],{"class":773},[756,11812,931],{"class":773},[756,11814,11815],{"class":769}," fetchPages) ",[756,11817,11818],{"class":762},"\u002F\u002F Waits for first\n",[756,11820,11821,11823,11826,11828,11830,11832,11834,11836,11838,11840,11842,11844,11846],{"class":758,"line":3366},[756,11822,823],{"class":822},[756,11824,11825],{"class":769}," result3 ",[756,11827,774],{"class":773},[756,11829,11770],{"class":769},[756,11831,639],{"class":773},[756,11833,3504],{"class":884},[756,11835,913],{"class":769},[756,11837,955],{"class":773},[756,11839,925],{"class":777},[756,11841,955],{"class":773},[756,11843,931],{"class":773},[756,11845,11815],{"class":769},[756,11847,11818],{"class":762},[692,11849],{},[575,11851,11853],{"id":11852},"security","Security",[671,11855,11857],{"id":11856},"never-expose-api-keys-in-frontend-code","Never Expose API Keys in Frontend Code",[567,11859,11860],{},[571,11861,11862],{},"Bad:",[732,11864,11866],{"className":808,"code":11865,"language":810,"meta":740,"style":740},"\u002F\u002F ❌ NEVER DO THIS\nconst API_KEY = 'tento_pk_a1b2c3d4...'\n\nfetch(`${BASE_URL}\u002Fpages`, {\n  headers: { 'X-API-Key': API_KEY }\n})\n",[618,11867,11868,11873,11888,11892,11912,11932],{"__ignoreMap":740},[756,11869,11870],{"class":758,"line":759},[756,11871,11872],{"class":762},"\u002F\u002F ❌ NEVER DO THIS\n",[756,11874,11875,11877,11879,11881,11883,11886],{"class":758,"line":766},[756,11876,823],{"class":822},[756,11878,826],{"class":769},[756,11880,774],{"class":773},[756,11882,1547],{"class":773},[756,11884,11885],{"class":777},"tento_pk_a1b2c3d4...",[756,11887,3757],{"class":773},[756,11889,11890],{"class":758,"line":780},[756,11891,868],{"emptyLinePlaceholder":867},[756,11893,11894,11896,11898,11900,11902,11904,11906,11908,11910],{"class":758,"line":864},[756,11895,3504],{"class":884},[756,11897,913],{"class":769},[756,11899,916],{"class":773},[756,11901,919],{"class":769},[756,11903,922],{"class":773},[756,11905,925],{"class":777},[756,11907,928],{"class":773},[756,11909,931],{"class":773},[756,11911,891],{"class":773},[756,11913,11914,11916,11918,11920,11922,11924,11926,11928,11930],{"class":758,"line":871},[756,11915,9742],{"class":912},[756,11917,795],{"class":773},[756,11919,1094],{"class":773},[756,11921,1547],{"class":773},[756,11923,952],{"class":912},[756,11925,955],{"class":773},[756,11927,795],{"class":773},[756,11929,826],{"class":769},[756,11931,1075],{"class":773},[756,11933,11934,11936],{"class":758,"line":894},[756,11935,922],{"class":773},[756,11937,975],{"class":769},[567,11939,11940],{},[571,11941,11942],{},"Good (SSR\u002FSSG):",[732,11944,11946],{"className":808,"code":11945,"language":810,"meta":740,"style":740},"\u002F\u002F ✅ Server-side only\nexport async function getServerSideProps() {\n  const response = await fetch(`${BASE_URL}\u002Fpages`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  return { props: { data: await response.json() } }\n}\n",[618,11947,11948,11953,11967,11995,12023,12029,12033,12064],{"__ignoreMap":740},[756,11949,11950],{"class":758,"line":759},[756,11951,11952],{"class":762},"\u002F\u002F ✅ Server-side only\n",[756,11954,11955,11957,11959,11961,11963,11965],{"class":758,"line":766},[756,11956,875],{"class":874},[756,11958,878],{"class":822},[756,11960,881],{"class":822},[756,11962,4200],{"class":884},[756,11964,888],{"class":773},[756,11966,891],{"class":773},[756,11968,11969,11971,11973,11975,11977,11979,11981,11983,11985,11987,11989,11991,11993],{"class":758,"line":780},[756,11970,897],{"class":822},[756,11972,900],{"class":769},[756,11974,903],{"class":773},[756,11976,906],{"class":874},[756,11978,909],{"class":884},[756,11980,913],{"class":912},[756,11982,916],{"class":773},[756,11984,919],{"class":769},[756,11986,922],{"class":773},[756,11988,925],{"class":777},[756,11990,928],{"class":773},[756,11992,931],{"class":773},[756,11994,891],{"class":773},[756,11996,11997,11999,12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021],{"class":758,"line":864},[756,11998,939],{"class":912},[756,12000,795],{"class":773},[756,12002,1094],{"class":773},[756,12004,1547],{"class":773},[756,12006,952],{"class":912},[756,12008,955],{"class":773},[756,12010,795],{"class":773},[756,12012,831],{"class":769},[756,12014,639],{"class":773},[756,12016,836],{"class":769},[756,12018,639],{"class":773},[756,12020,770],{"class":769},[756,12022,1562],{"class":773},[756,12024,12025,12027],{"class":758,"line":871},[756,12026,972],{"class":773},[756,12028,975],{"class":912},[756,12030,12031],{"class":758,"line":894},[756,12032,868],{"emptyLinePlaceholder":867},[756,12034,12035,12037,12039,12042,12044,12046,12048,12050,12052,12054,12056,12058,12060,12062],{"class":758,"line":936},[756,12036,1057],{"class":874},[756,12038,1094],{"class":773},[756,12040,12041],{"class":912}," props",[756,12043,795],{"class":773},[756,12045,1094],{"class":773},[756,12047,1097],{"class":912},[756,12049,795],{"class":773},[756,12051,906],{"class":874},[756,12053,900],{"class":769},[756,12055,639],{"class":773},[756,12057,1066],{"class":884},[756,12059,3149],{"class":912},[756,12061,922],{"class":773},[756,12063,1562],{"class":773},[756,12065,12066],{"class":758,"line":946},[756,12067,1075],{"class":773},[567,12069,12070],{},[571,12071,12072],{},"Good (Proxy Pattern):",[732,12074,12076],{"className":808,"code":12075,"language":810,"meta":740,"style":740},"\u002F\u002F ✅ Frontend calls your API, which proxies to CMS\n\u002F\u002F Frontend:\nconst response = await fetch('\u002Fapi\u002Fcms\u002Fpages')\n\n\u002F\u002F Your API:\nexport default async function handler(req, res) {\n  const response = await fetch(`${BASE_URL}\u002Fpages`, {\n    headers: { 'X-API-Key': process.env.CMS_API_KEY }\n  })\n\n  res.json(await response.json())\n}\n",[618,12077,12078,12083,12088,12111,12115,12120,12144,12172,12200,12206,12210,12230],{"__ignoreMap":740},[756,12079,12080],{"class":758,"line":759},[756,12081,12082],{"class":762},"\u002F\u002F ✅ Frontend calls your API, which proxies to CMS\n",[756,12084,12085],{"class":758,"line":766},[756,12086,12087],{"class":762},"\u002F\u002F Frontend:\n",[756,12089,12090,12092,12094,12096,12098,12100,12102,12104,12107,12109],{"class":758,"line":780},[756,12091,823],{"class":822},[756,12093,4744],{"class":769},[756,12095,774],{"class":773},[756,12097,906],{"class":874},[756,12099,909],{"class":884},[756,12101,913],{"class":769},[756,12103,955],{"class":773},[756,12105,12106],{"class":777},"\u002Fapi\u002Fcms\u002Fpages",[756,12108,955],{"class":773},[756,12110,975],{"class":769},[756,12112,12113],{"class":758,"line":864},[756,12114,868],{"emptyLinePlaceholder":867},[756,12116,12117],{"class":758,"line":871},[756,12118,12119],{"class":762},"\u002F\u002F Your API:\n",[756,12121,12122,12124,12126,12128,12130,12132,12134,12136,12138,12140,12142],{"class":758,"line":894},[756,12123,875],{"class":874},[756,12125,4058],{"class":874},[756,12127,878],{"class":822},[756,12129,881],{"class":822},[756,12131,4514],{"class":884},[756,12133,913],{"class":773},[756,12135,4519],{"class":1322},[756,12137,931],{"class":773},[756,12139,4524],{"class":1322},[756,12141,684],{"class":773},[756,12143,891],{"class":773},[756,12145,12146,12148,12150,12152,12154,12156,12158,12160,12162,12164,12166,12168,12170],{"class":758,"line":936},[756,12147,897],{"class":822},[756,12149,900],{"class":769},[756,12151,903],{"class":773},[756,12153,906],{"class":874},[756,12155,909],{"class":884},[756,12157,913],{"class":912},[756,12159,916],{"class":773},[756,12161,919],{"class":769},[756,12163,922],{"class":773},[756,12165,925],{"class":777},[756,12167,928],{"class":773},[756,12169,931],{"class":773},[756,12171,891],{"class":773},[756,12173,12174,12176,12178,12180,12182,12184,12186,12188,12190,12192,12194,12196,12198],{"class":758,"line":946},[756,12175,939],{"class":912},[756,12177,795],{"class":773},[756,12179,1094],{"class":773},[756,12181,1547],{"class":773},[756,12183,952],{"class":912},[756,12185,955],{"class":773},[756,12187,795],{"class":773},[756,12189,831],{"class":769},[756,12191,639],{"class":773},[756,12193,836],{"class":769},[756,12195,639],{"class":773},[756,12197,770],{"class":769},[756,12199,1562],{"class":773},[756,12201,12202,12204],{"class":758,"line":963},[756,12203,972],{"class":773},[756,12205,975],{"class":912},[756,12207,12208],{"class":758,"line":969},[756,12209,868],{"emptyLinePlaceholder":867},[756,12211,12212,12214,12216,12218,12220,12222,12224,12226,12228],{"class":758,"line":978},[756,12213,4714],{"class":769},[756,12215,639],{"class":773},[756,12217,1066],{"class":884},[756,12219,913],{"class":912},[756,12221,2907],{"class":874},[756,12223,900],{"class":769},[756,12225,639],{"class":773},[756,12227,1066],{"class":884},[756,12229,9247],{"class":912},[756,12231,12232],{"class":758,"line":983},[756,12233,1075],{"class":773},[671,12235,12237],{"id":12236},"key-rotation-procedures","Key Rotation Procedures",[705,12239,12240,12243,12246,12249,12252],{},[585,12241,12242],{},"Create new API key in Admin UI",[585,12244,12245],{},"Update environment variables in deployment platform",[585,12247,12248],{},"Deploy with new key",[585,12250,12251],{},"Verify application works",[585,12253,12254],{},"After 24 hours, revoke old key",[567,12256,12257],{},[571,12258,12259],{},"Zero-downtime rotation:",[732,12261,12263],{"className":808,"code":12262,"language":810,"meta":740,"style":740},"\u002F\u002F Support multiple keys during rotation\nconst API_KEYS = [\n  process.env.CMS_API_KEY_NEW,\n  process.env.CMS_API_KEY_OLD\n]\n\nasync function fetchWithFallback(url) {\n  for (const key of API_KEYS) {\n    try {\n      const response = await fetch(url, {\n        headers: { 'X-API-Key': key }\n      })\n\n      if (response.ok || response.status !== 401) {\n        return response\n      }\n    } catch (e) {\n      continue\n    }\n  }\n\n  throw new Error('All API keys failed')\n}\n",[618,12264,12265,12270,12282,12298,12311,12315,12319,12336,12357,12363,12383,12404,12410,12414,12443,12449,12453,12467,12472,12476,12480,12484,12503],{"__ignoreMap":740},[756,12266,12267],{"class":758,"line":759},[756,12268,12269],{"class":762},"\u002F\u002F Support multiple keys during rotation\n",[756,12271,12272,12274,12277,12279],{"class":758,"line":766},[756,12273,823],{"class":822},[756,12275,12276],{"class":769}," API_KEYS ",[756,12278,774],{"class":773},[756,12280,12281],{"class":769}," [\n",[756,12283,12284,12287,12289,12291,12293,12296],{"class":758,"line":780},[756,12285,12286],{"class":769},"  process",[756,12288,639],{"class":773},[756,12290,836],{"class":769},[756,12292,639],{"class":773},[756,12294,12295],{"class":769},"CMS_API_KEY_NEW",[756,12297,1220],{"class":773},[756,12299,12300,12302,12304,12306,12308],{"class":758,"line":864},[756,12301,12286],{"class":769},[756,12303,639],{"class":773},[756,12305,836],{"class":769},[756,12307,639],{"class":773},[756,12309,12310],{"class":769},"CMS_API_KEY_OLD\n",[756,12312,12313],{"class":758,"line":871},[756,12314,2858],{"class":769},[756,12316,12317],{"class":758,"line":894},[756,12318,868],{"emptyLinePlaceholder":867},[756,12320,12321,12323,12325,12328,12330,12332,12334],{"class":758,"line":936},[756,12322,1462],{"class":822},[756,12324,881],{"class":822},[756,12326,12327],{"class":884}," fetchWithFallback",[756,12329,913],{"class":773},[756,12331,5974],{"class":1322},[756,12333,684],{"class":773},[756,12335,891],{"class":773},[756,12337,12338,12340,12342,12344,12347,12350,12353,12355],{"class":758,"line":946},[756,12339,9818],{"class":874},[756,12341,989],{"class":912},[756,12343,823],{"class":822},[756,12345,12346],{"class":769}," key",[756,12348,12349],{"class":773}," of",[756,12351,12352],{"class":769}," API_KEYS",[756,12354,1003],{"class":912},[756,12356,1006],{"class":773},[756,12358,12359,12361],{"class":758,"line":963},[756,12360,7404],{"class":874},[756,12362,891],{"class":773},[756,12364,12365,12367,12369,12371,12373,12375,12377,12379,12381],{"class":758,"line":969},[756,12366,7411],{"class":822},[756,12368,900],{"class":769},[756,12370,903],{"class":773},[756,12372,906],{"class":874},[756,12374,909],{"class":884},[756,12376,913],{"class":912},[756,12378,5974],{"class":769},[756,12380,931],{"class":773},[756,12382,891],{"class":773},[756,12384,12385,12388,12390,12392,12394,12396,12398,12400,12402],{"class":758,"line":978},[756,12386,12387],{"class":912},"        headers",[756,12389,795],{"class":773},[756,12391,1094],{"class":773},[756,12393,1547],{"class":773},[756,12395,952],{"class":912},[756,12397,955],{"class":773},[756,12399,795],{"class":773},[756,12401,12346],{"class":769},[756,12403,1562],{"class":773},[756,12405,12406,12408],{"class":758,"line":983},[756,12407,7551],{"class":773},[756,12409,975],{"class":912},[756,12411,12412],{"class":758,"line":1009},[756,12413,868],{"emptyLinePlaceholder":867},[756,12415,12416,12418,12420,12422,12424,12426,12428,12430,12432,12434,12437,12439,12441],{"class":758,"line":1043},[756,12417,7657],{"class":874},[756,12419,989],{"class":912},[756,12421,995],{"class":769},[756,12423,639],{"class":773},[756,12425,1000],{"class":769},[756,12427,5101],{"class":773},[756,12429,900],{"class":769},[756,12431,639],{"class":773},[756,12433,1035],{"class":769},[756,12435,12436],{"class":773}," !==",[756,12438,10344],{"class":1216},[756,12440,1003],{"class":912},[756,12442,1006],{"class":773},[756,12444,12445,12447],{"class":758,"line":1049},[756,12446,9922],{"class":874},[756,12448,4996],{"class":769},[756,12450,12451],{"class":758,"line":1054},[756,12452,2344],{"class":773},[756,12454,12455,12457,12459,12461,12463,12465],{"class":758,"line":1072},[756,12456,3300],{"class":773},[756,12458,7727],{"class":874},[756,12460,989],{"class":912},[756,12462,7732],{"class":769},[756,12464,1003],{"class":912},[756,12466,1006],{"class":773},[756,12468,12469],{"class":758,"line":1078},[756,12470,12471],{"class":874},"      continue\n",[756,12473,12474],{"class":758,"line":1083},[756,12475,966],{"class":773},[756,12477,12478],{"class":758,"line":1089},[756,12479,1046],{"class":773},[756,12481,12482],{"class":758,"line":1115},[756,12483,868],{"emptyLinePlaceholder":867},[756,12485,12486,12488,12490,12492,12494,12496,12499,12501],{"class":758,"line":2000},[756,12487,5710],{"class":874},[756,12489,1015],{"class":773},[756,12491,1018],{"class":884},[756,12493,913],{"class":912},[756,12495,955],{"class":773},[756,12497,12498],{"class":777},"All API keys failed",[756,12500,955],{"class":773},[756,12502,975],{"class":912},[756,12504,12505],{"class":758,"line":2053},[756,12506,1075],{"class":773},[692,12508],{},[575,12510,54],{"id":12511},"troubleshooting",[671,12513,12515],{"id":12514},"_401-unauthorized-check-key","401 Unauthorized → Check Key",[732,12517,12519],{"className":808,"code":12518,"language":810,"meta":740,"style":740},"\u002F\u002F Debug API key issues\nasync function debugApiKey() {\n  const apiKey = process.env.CMS_API_KEY\n\n  console.log('API Key prefix:', apiKey?.substring(0, 12) + '...')\n  console.log('API Key length:', apiKey?.length)\n  console.log('API Key format valid:', !!apiKey?.match(\u002F^tento_(pk|sk)_[a-z0-9]{32}$\u002F))\n\n  if (!apiKey) {\n    console.error('❌ API key not set')\n    return\n  }\n\n  if (apiKey.length !== 41) {\n    console.error('❌ API key wrong length (should be 41 chars)')\n    return\n  }\n\n  \u002F\u002F Test API call\n  const response = await fetch(`${BASE_URL}\u002Fpages?limit=1`, {\n    headers: { 'X-API-Key': apiKey }\n  })\n\n  if (response.status === 401) {\n    console.error('❌ API key invalid or expired')\n  } else {\n    console.log('✅ API key valid')\n  }\n}\n",[618,12520,12521,12526,12539,12557,12561,12610,12637,12708,12712,12726,12745,12750,12754,12758,12779,12798,12802,12806,12810,12815,12844,12864,12870,12874,12894,12913,12921,12940,12944],{"__ignoreMap":740},[756,12522,12523],{"class":758,"line":759},[756,12524,12525],{"class":762},"\u002F\u002F Debug API key issues\n",[756,12527,12528,12530,12532,12535,12537],{"class":758,"line":766},[756,12529,1462],{"class":822},[756,12531,881],{"class":822},[756,12533,12534],{"class":884}," debugApiKey",[756,12536,888],{"class":773},[756,12538,891],{"class":773},[756,12540,12541,12543,12545,12547,12549,12551,12553,12555],{"class":758,"line":780},[756,12542,897],{"class":822},[756,12544,6851],{"class":769},[756,12546,903],{"class":773},[756,12548,831],{"class":769},[756,12550,639],{"class":773},[756,12552,836],{"class":769},[756,12554,639],{"class":773},[756,12556,841],{"class":769},[756,12558,12559],{"class":758,"line":864},[756,12560,868],{"emptyLinePlaceholder":867},[756,12562,12563,12565,12567,12569,12571,12573,12576,12578,12580,12582,12584,12587,12589,12592,12594,12597,12599,12602,12604,12606,12608],{"class":758,"line":871},[756,12564,1332],{"class":769},[756,12566,639],{"class":773},[756,12568,1123],{"class":884},[756,12570,913],{"class":912},[756,12572,955],{"class":773},[756,12574,12575],{"class":777},"API Key prefix:",[756,12577,955],{"class":773},[756,12579,931],{"class":773},[756,12581,6851],{"class":769},[756,12583,5766],{"class":773},[756,12585,12586],{"class":884},"substring",[756,12588,913],{"class":912},[756,12590,12591],{"class":1216},"0",[756,12593,931],{"class":773},[756,12595,12596],{"class":1216}," 12",[756,12598,1003],{"class":912},[756,12600,12601],{"class":773},"+",[756,12603,1547],{"class":773},[756,12605,1184],{"class":777},[756,12607,955],{"class":773},[756,12609,975],{"class":912},[756,12611,12612,12614,12616,12618,12620,12622,12625,12627,12629,12631,12633,12635],{"class":758,"line":894},[756,12613,1332],{"class":769},[756,12615,639],{"class":773},[756,12617,1123],{"class":884},[756,12619,913],{"class":912},[756,12621,955],{"class":773},[756,12623,12624],{"class":777},"API Key length:",[756,12626,955],{"class":773},[756,12628,931],{"class":773},[756,12630,6851],{"class":769},[756,12632,5766],{"class":773},[756,12634,1140],{"class":769},[756,12636,975],{"class":912},[756,12638,12639,12641,12643,12645,12647,12649,12652,12654,12656,12659,12661,12663,12666,12668,12670,12673,12676,12678,12681,12684,12687,12689,12692,12695,12698,12701,12704,12706],{"class":758,"line":936},[756,12640,1332],{"class":769},[756,12642,639],{"class":773},[756,12644,1123],{"class":884},[756,12646,913],{"class":912},[756,12648,955],{"class":773},[756,12650,12651],{"class":777},"API Key format valid:",[756,12653,955],{"class":773},[756,12655,931],{"class":773},[756,12657,12658],{"class":773}," !!",[756,12660,3012],{"class":769},[756,12662,5766],{"class":773},[756,12664,12665],{"class":884},"match",[756,12667,913],{"class":912},[756,12669,2314],{"class":773},[756,12671,12672],{"class":874},"^",[756,12674,12675],{"class":777},"tento_",[756,12677,913],{"class":773},[756,12679,12680],{"class":777},"pk",[756,12682,12683],{"class":773},"|",[756,12685,12686],{"class":777},"sk",[756,12688,684],{"class":773},[756,12690,12691],{"class":777},"_",[756,12693,12694],{"class":773},"[",[756,12696,12697],{"class":777},"a-z0-9",[756,12699,12700],{"class":773},"]{32}",[756,12702,12703],{"class":874},"$",[756,12705,2314],{"class":773},[756,12707,10023],{"class":912},[756,12709,12710],{"class":758,"line":946},[756,12711,868],{"emptyLinePlaceholder":867},[756,12713,12714,12716,12718,12720,12722,12724],{"class":758,"line":963},[756,12715,986],{"class":874},[756,12717,989],{"class":912},[756,12719,992],{"class":773},[756,12721,3012],{"class":769},[756,12723,1003],{"class":912},[756,12725,1006],{"class":773},[756,12727,12728,12730,12732,12734,12736,12738,12741,12743],{"class":758,"line":969},[756,12729,3224],{"class":769},[756,12731,639],{"class":773},[756,12733,6591],{"class":884},[756,12735,913],{"class":912},[756,12737,955],{"class":773},[756,12739,12740],{"class":777},"❌ API key not set",[756,12742,955],{"class":773},[756,12744,975],{"class":912},[756,12746,12747],{"class":758,"line":978},[756,12748,12749],{"class":874},"    return\n",[756,12751,12752],{"class":758,"line":983},[756,12753,1046],{"class":773},[756,12755,12756],{"class":758,"line":1009},[756,12757,868],{"emptyLinePlaceholder":867},[756,12759,12760,12762,12764,12766,12768,12770,12772,12775,12777],{"class":758,"line":1043},[756,12761,986],{"class":874},[756,12763,989],{"class":912},[756,12765,3012],{"class":769},[756,12767,639],{"class":773},[756,12769,1140],{"class":769},[756,12771,12436],{"class":773},[756,12773,12774],{"class":1216}," 41",[756,12776,1003],{"class":912},[756,12778,1006],{"class":773},[756,12780,12781,12783,12785,12787,12789,12791,12794,12796],{"class":758,"line":1049},[756,12782,3224],{"class":769},[756,12784,639],{"class":773},[756,12786,6591],{"class":884},[756,12788,913],{"class":912},[756,12790,955],{"class":773},[756,12792,12793],{"class":777},"❌ API key wrong length (should be 41 chars)",[756,12795,955],{"class":773},[756,12797,975],{"class":912},[756,12799,12800],{"class":758,"line":1054},[756,12801,12749],{"class":874},[756,12803,12804],{"class":758,"line":1072},[756,12805,1046],{"class":773},[756,12807,12808],{"class":758,"line":1078},[756,12809,868],{"emptyLinePlaceholder":867},[756,12811,12812],{"class":758,"line":1083},[756,12813,12814],{"class":762},"  \u002F\u002F Test API call\n",[756,12816,12817,12819,12821,12823,12825,12827,12829,12831,12833,12835,12838,12840,12842],{"class":758,"line":1089},[756,12818,897],{"class":822},[756,12820,900],{"class":769},[756,12822,903],{"class":773},[756,12824,906],{"class":874},[756,12826,909],{"class":884},[756,12828,913],{"class":912},[756,12830,916],{"class":773},[756,12832,919],{"class":769},[756,12834,922],{"class":773},[756,12836,12837],{"class":777},"\u002Fpages?limit=1",[756,12839,928],{"class":773},[756,12841,931],{"class":773},[756,12843,891],{"class":773},[756,12845,12846,12848,12850,12852,12854,12856,12858,12860,12862],{"class":758,"line":1115},[756,12847,939],{"class":912},[756,12849,795],{"class":773},[756,12851,1094],{"class":773},[756,12853,1547],{"class":773},[756,12855,952],{"class":912},[756,12857,955],{"class":773},[756,12859,795],{"class":773},[756,12861,6851],{"class":769},[756,12863,1562],{"class":773},[756,12865,12866,12868],{"class":758,"line":2000},[756,12867,972],{"class":773},[756,12869,975],{"class":912},[756,12871,12872],{"class":758,"line":2053},[756,12873,868],{"emptyLinePlaceholder":867},[756,12875,12876,12878,12880,12882,12884,12886,12888,12890,12892],{"class":758,"line":3327},[756,12877,986],{"class":874},[756,12879,989],{"class":912},[756,12881,995],{"class":769},[756,12883,639],{"class":773},[756,12885,1035],{"class":769},[756,12887,1829],{"class":773},[756,12889,10344],{"class":1216},[756,12891,1003],{"class":912},[756,12893,1006],{"class":773},[756,12895,12896,12898,12900,12902,12904,12906,12909,12911],{"class":758,"line":3332},[756,12897,3224],{"class":769},[756,12899,639],{"class":773},[756,12901,6591],{"class":884},[756,12903,913],{"class":912},[756,12905,955],{"class":773},[756,12907,12908],{"class":777},"❌ API key invalid or expired",[756,12910,955],{"class":773},[756,12912,975],{"class":912},[756,12914,12915,12917,12919],{"class":758,"line":3338},[756,12916,972],{"class":773},[756,12918,1984],{"class":874},[756,12920,891],{"class":773},[756,12922,12923,12925,12927,12929,12931,12933,12936,12938],{"class":758,"line":3358},[756,12924,3224],{"class":769},[756,12926,639],{"class":773},[756,12928,1123],{"class":884},[756,12930,913],{"class":912},[756,12932,955],{"class":773},[756,12934,12935],{"class":777},"✅ API key valid",[756,12937,955],{"class":773},[756,12939,975],{"class":912},[756,12941,12942],{"class":758,"line":3366},[756,12943,1046],{"class":773},[756,12945,12946],{"class":758,"line":3382},[756,12947,1075],{"class":773},[671,12949,12951],{"id":12950},"_404-not-found-check-slug-check-published-status","404 Not Found → Check Slug, Check Published Status",[732,12953,12955],{"className":808,"code":12954,"language":810,"meta":740,"style":740},"\u002F\u002F Debug 404 errors\nasync function debugPageNotFound(slug) {\n  console.log(`Checking page: ${slug}`)\n\n  \u002F\u002F Try fetching\n  const response = await fetch(`${BASE_URL}\u002Fpages\u002F${slug}`, {\n    headers: { 'X-API-Key': API_KEY }\n  })\n\n  if (response.status === 404) {\n    console.log('❌ Page not found or not published')\n    console.log('Possible causes:')\n    console.log('1. Slug is incorrect (check spelling)')\n    console.log('2. Page exists but not published')\n    console.log('3. Page was deleted')\n    console.log('4. API key is for wrong tenant')\n\n    \u002F\u002F Try fetching all pages to see available slugs\n    const allPages = await fetch(`${BASE_URL}\u002Fpages?limit=100`, {\n      headers: { 'X-API-Key': API_KEY }\n    })\n    const { data } = await allPages.json()\n\n    console.log('Available slugs:')\n    data.forEach(page => console.log(`  - ${page.slug}`))\n  }\n}\n",[618,12956,12957,12962,12979,13002,13006,13011,13043,13063,13069,13073,13093,13112,13131,13150,13169,13188,13207,13211,13216,13246,13266,13272,13294,13298,13317,13358,13362],{"__ignoreMap":740},[756,12958,12959],{"class":758,"line":759},[756,12960,12961],{"class":762},"\u002F\u002F Debug 404 errors\n",[756,12963,12964,12966,12968,12971,12973,12975,12977],{"class":758,"line":766},[756,12965,1462],{"class":822},[756,12967,881],{"class":822},[756,12969,12970],{"class":884}," debugPageNotFound",[756,12972,913],{"class":773},[756,12974,1345],{"class":1322},[756,12976,684],{"class":773},[756,12978,891],{"class":773},[756,12980,12981,12983,12985,12987,12989,12991,12994,12996,12998,13000],{"class":758,"line":780},[756,12982,1332],{"class":769},[756,12984,639],{"class":773},[756,12986,1123],{"class":884},[756,12988,913],{"class":912},[756,12990,928],{"class":773},[756,12992,12993],{"class":777},"Checking page: ",[756,12995,1028],{"class":773},[756,12997,1345],{"class":769},[756,12999,1038],{"class":773},[756,13001,975],{"class":912},[756,13003,13004],{"class":758,"line":864},[756,13005,868],{"emptyLinePlaceholder":867},[756,13007,13008],{"class":758,"line":871},[756,13009,13010],{"class":762},"  \u002F\u002F Try fetching\n",[756,13012,13013,13015,13017,13019,13021,13023,13025,13027,13029,13031,13033,13035,13037,13039,13041],{"class":758,"line":894},[756,13014,897],{"class":822},[756,13016,900],{"class":769},[756,13018,903],{"class":773},[756,13020,906],{"class":874},[756,13022,909],{"class":884},[756,13024,913],{"class":912},[756,13026,916],{"class":773},[756,13028,919],{"class":769},[756,13030,922],{"class":773},[756,13032,1774],{"class":777},[756,13034,1028],{"class":773},[756,13036,1345],{"class":769},[756,13038,1038],{"class":773},[756,13040,931],{"class":773},[756,13042,891],{"class":773},[756,13044,13045,13047,13049,13051,13053,13055,13057,13059,13061],{"class":758,"line":936},[756,13046,939],{"class":912},[756,13048,795],{"class":773},[756,13050,1094],{"class":773},[756,13052,1547],{"class":773},[756,13054,952],{"class":912},[756,13056,955],{"class":773},[756,13058,795],{"class":773},[756,13060,1556],{"class":769},[756,13062,1562],{"class":773},[756,13064,13065,13067],{"class":758,"line":946},[756,13066,972],{"class":773},[756,13068,975],{"class":912},[756,13070,13071],{"class":758,"line":963},[756,13072,868],{"emptyLinePlaceholder":867},[756,13074,13075,13077,13079,13081,13083,13085,13087,13089,13091],{"class":758,"line":969},[756,13076,986],{"class":874},[756,13078,989],{"class":912},[756,13080,995],{"class":769},[756,13082,639],{"class":773},[756,13084,1035],{"class":769},[756,13086,1829],{"class":773},[756,13088,1832],{"class":1216},[756,13090,1003],{"class":912},[756,13092,1006],{"class":773},[756,13094,13095,13097,13099,13101,13103,13105,13108,13110],{"class":758,"line":978},[756,13096,3224],{"class":769},[756,13098,639],{"class":773},[756,13100,1123],{"class":884},[756,13102,913],{"class":912},[756,13104,955],{"class":773},[756,13106,13107],{"class":777},"❌ Page not found or not published",[756,13109,955],{"class":773},[756,13111,975],{"class":912},[756,13113,13114,13116,13118,13120,13122,13124,13127,13129],{"class":758,"line":983},[756,13115,3224],{"class":769},[756,13117,639],{"class":773},[756,13119,1123],{"class":884},[756,13121,913],{"class":912},[756,13123,955],{"class":773},[756,13125,13126],{"class":777},"Possible causes:",[756,13128,955],{"class":773},[756,13130,975],{"class":912},[756,13132,13133,13135,13137,13139,13141,13143,13146,13148],{"class":758,"line":1009},[756,13134,3224],{"class":769},[756,13136,639],{"class":773},[756,13138,1123],{"class":884},[756,13140,913],{"class":912},[756,13142,955],{"class":773},[756,13144,13145],{"class":777},"1. Slug is incorrect (check spelling)",[756,13147,955],{"class":773},[756,13149,975],{"class":912},[756,13151,13152,13154,13156,13158,13160,13162,13165,13167],{"class":758,"line":1043},[756,13153,3224],{"class":769},[756,13155,639],{"class":773},[756,13157,1123],{"class":884},[756,13159,913],{"class":912},[756,13161,955],{"class":773},[756,13163,13164],{"class":777},"2. Page exists but not published",[756,13166,955],{"class":773},[756,13168,975],{"class":912},[756,13170,13171,13173,13175,13177,13179,13181,13184,13186],{"class":758,"line":1049},[756,13172,3224],{"class":769},[756,13174,639],{"class":773},[756,13176,1123],{"class":884},[756,13178,913],{"class":912},[756,13180,955],{"class":773},[756,13182,13183],{"class":777},"3. Page was deleted",[756,13185,955],{"class":773},[756,13187,975],{"class":912},[756,13189,13190,13192,13194,13196,13198,13200,13203,13205],{"class":758,"line":1054},[756,13191,3224],{"class":769},[756,13193,639],{"class":773},[756,13195,1123],{"class":884},[756,13197,913],{"class":912},[756,13199,955],{"class":773},[756,13201,13202],{"class":777},"4. API key is for wrong tenant",[756,13204,955],{"class":773},[756,13206,975],{"class":912},[756,13208,13209],{"class":758,"line":1072},[756,13210,868],{"emptyLinePlaceholder":867},[756,13212,13213],{"class":758,"line":1078},[756,13214,13215],{"class":762},"    \u002F\u002F Try fetching all pages to see available slugs\n",[756,13217,13218,13220,13223,13225,13227,13229,13231,13233,13235,13237,13240,13242,13244],{"class":758,"line":1083},[756,13219,3095],{"class":822},[756,13221,13222],{"class":769}," allPages",[756,13224,903],{"class":773},[756,13226,906],{"class":874},[756,13228,909],{"class":884},[756,13230,913],{"class":912},[756,13232,916],{"class":773},[756,13234,919],{"class":769},[756,13236,922],{"class":773},[756,13238,13239],{"class":777},"\u002Fpages?limit=100",[756,13241,928],{"class":773},[756,13243,931],{"class":773},[756,13245,891],{"class":773},[756,13247,13248,13250,13252,13254,13256,13258,13260,13262,13264],{"class":758,"line":1089},[756,13249,3277],{"class":912},[756,13251,795],{"class":773},[756,13253,1094],{"class":773},[756,13255,1547],{"class":773},[756,13257,952],{"class":912},[756,13259,955],{"class":773},[756,13261,795],{"class":773},[756,13263,1556],{"class":769},[756,13265,1562],{"class":773},[756,13267,13268,13270],{"class":758,"line":1115},[756,13269,3300],{"class":773},[756,13271,975],{"class":912},[756,13273,13274,13276,13278,13280,13282,13284,13286,13288,13290,13292],{"class":758,"line":2000},[756,13275,3095],{"class":822},[756,13277,1094],{"class":773},[756,13279,1097],{"class":769},[756,13281,1559],{"class":773},[756,13283,903],{"class":773},[756,13285,906],{"class":874},[756,13287,13222],{"class":769},[756,13289,639],{"class":773},[756,13291,1066],{"class":884},[756,13293,1069],{"class":912},[756,13295,13296],{"class":758,"line":2053},[756,13297,868],{"emptyLinePlaceholder":867},[756,13299,13300,13302,13304,13306,13308,13310,13313,13315],{"class":758,"line":3327},[756,13301,3224],{"class":769},[756,13303,639],{"class":773},[756,13305,1123],{"class":884},[756,13307,913],{"class":912},[756,13309,955],{"class":773},[756,13311,13312],{"class":777},"Available slugs:",[756,13314,955],{"class":773},[756,13316,975],{"class":912},[756,13318,13319,13322,13324,13326,13328,13330,13332,13335,13337,13339,13341,13343,13346,13348,13350,13352,13354,13356],{"class":758,"line":3332},[756,13320,13321],{"class":769},"    data",[756,13323,639],{"class":773},[756,13325,1317],{"class":884},[756,13327,913],{"class":912},[756,13329,1227],{"class":1322},[756,13331,1325],{"class":822},[756,13333,13334],{"class":769}," console",[756,13336,639],{"class":773},[756,13338,1123],{"class":884},[756,13340,913],{"class":912},[756,13342,928],{"class":773},[756,13344,13345],{"class":777},"  - ",[756,13347,1028],{"class":773},[756,13349,1227],{"class":769},[756,13351,639],{"class":773},[756,13353,1345],{"class":769},[756,13355,1038],{"class":773},[756,13357,10023],{"class":912},[756,13359,13360],{"class":758,"line":3338},[756,13361,1046],{"class":773},[756,13363,13364],{"class":758,"line":3358},[756,13365,1075],{"class":773},[671,13367,13369],{"id":13368},"_429-rate-limited-implement-backoff","429 Rate Limited → Implement Backoff",[732,13371,13373],{"className":808,"code":13372,"language":810,"meta":740,"style":740},"\u002F\u002F Auto-retry with backoff on rate limit\nasync function smartFetch(url, options = {}, maxRetries = 3) {\n  for (let attempt = 0; attempt \u003C maxRetries; attempt++) {\n    const response = await fetch(url, options)\n\n    if (response.status !== 429) {\n      return response\n    }\n\n    const retryAfter = parseInt(response.headers.get('Retry-After') || '60')\n    console.log(`Rate limited (attempt ${attempt + 1}), waiting ${retryAfter}s`)\n    await new Promise(resolve => setTimeout(resolve, retryAfter * 1000))\n  }\n\n  throw new Error('Rate limit exceeded after retries')\n}\n",[618,13374,13375,13380,13411,13443,13465,13469,13489,13495,13499,13503,13545,13587,13617,13621,13625,13644],{"__ignoreMap":740},[756,13376,13377],{"class":758,"line":759},[756,13378,13379],{"class":762},"\u002F\u002F Auto-retry with backoff on rate limit\n",[756,13381,13382,13384,13386,13389,13391,13393,13395,13397,13399,13401,13403,13405,13407,13409],{"class":758,"line":766},[756,13383,1462],{"class":822},[756,13385,881],{"class":822},[756,13387,13388],{"class":884}," smartFetch",[756,13390,913],{"class":773},[756,13392,5974],{"class":1322},[756,13394,931],{"class":773},[756,13396,5094],{"class":1322},[756,13398,903],{"class":773},[756,13400,9801],{"class":773},[756,13402,9804],{"class":1322},[756,13404,903],{"class":773},[756,13406,9809],{"class":1216},[756,13408,684],{"class":773},[756,13410,891],{"class":773},[756,13412,13413,13415,13417,13419,13421,13423,13425,13427,13429,13431,13433,13435,13437,13439,13441],{"class":758,"line":780},[756,13414,9818],{"class":874},[756,13416,989],{"class":912},[756,13418,9823],{"class":822},[756,13420,9826],{"class":769},[756,13422,903],{"class":773},[756,13424,9831],{"class":1216},[756,13426,9834],{"class":773},[756,13428,9826],{"class":769},[756,13430,1649],{"class":773},[756,13432,9804],{"class":769},[756,13434,9834],{"class":773},[756,13436,9826],{"class":769},[756,13438,9847],{"class":773},[756,13440,1003],{"class":912},[756,13442,1006],{"class":773},[756,13444,13445,13447,13449,13451,13453,13455,13457,13459,13461,13463],{"class":758,"line":864},[756,13446,3095],{"class":822},[756,13448,900],{"class":769},[756,13450,903],{"class":773},[756,13452,906],{"class":874},[756,13454,909],{"class":884},[756,13456,913],{"class":912},[756,13458,5974],{"class":769},[756,13460,931],{"class":773},[756,13462,5094],{"class":769},[756,13464,975],{"class":912},[756,13466,13467],{"class":758,"line":871},[756,13468,868],{"emptyLinePlaceholder":867},[756,13470,13471,13473,13475,13477,13479,13481,13483,13485,13487],{"class":758,"line":894},[756,13472,3130],{"class":874},[756,13474,989],{"class":912},[756,13476,995],{"class":769},[756,13478,639],{"class":773},[756,13480,1035],{"class":769},[756,13482,12436],{"class":773},[756,13484,10429],{"class":1216},[756,13486,1003],{"class":912},[756,13488,1006],{"class":773},[756,13490,13491,13493],{"class":758,"line":936},[756,13492,3199],{"class":874},[756,13494,4996],{"class":769},[756,13496,13497],{"class":758,"line":946},[756,13498,966],{"class":773},[756,13500,13501],{"class":758,"line":963},[756,13502,868],{"emptyLinePlaceholder":867},[756,13504,13505,13507,13509,13511,13513,13515,13517,13519,13521,13523,13525,13527,13529,13531,13533,13535,13537,13539,13541,13543],{"class":758,"line":969},[756,13506,3095],{"class":822},[756,13508,10720],{"class":769},[756,13510,903],{"class":773},[756,13512,10725],{"class":884},[756,13514,913],{"class":912},[756,13516,995],{"class":769},[756,13518,639],{"class":773},[756,13520,9419],{"class":769},[756,13522,639],{"class":773},[756,13524,3110],{"class":884},[756,13526,913],{"class":912},[756,13528,955],{"class":773},[756,13530,10744],{"class":777},[756,13532,955],{"class":773},[756,13534,1003],{"class":912},[756,13536,10751],{"class":773},[756,13538,1547],{"class":773},[756,13540,10756],{"class":777},[756,13542,955],{"class":773},[756,13544,975],{"class":912},[756,13546,13547,13549,13551,13553,13555,13557,13560,13562,13565,13567,13569,13571,13574,13576,13578,13580,13583,13585],{"class":758,"line":978},[756,13548,3224],{"class":769},[756,13550,639],{"class":773},[756,13552,1123],{"class":884},[756,13554,913],{"class":912},[756,13556,928],{"class":773},[756,13558,13559],{"class":777},"Rate limited (attempt ",[756,13561,1028],{"class":773},[756,13563,13564],{"class":769},"attempt ",[756,13566,12601],{"class":773},[756,13568,1234],{"class":1216},[756,13570,922],{"class":773},[756,13572,13573],{"class":777},"), waiting ",[756,13575,1028],{"class":773},[756,13577,10784],{"class":769},[756,13579,922],{"class":773},[756,13581,13582],{"class":777},"s",[756,13584,928],{"class":773},[756,13586,975],{"class":912},[756,13588,13589,13591,13593,13595,13597,13599,13601,13603,13605,13607,13609,13611,13613,13615],{"class":758,"line":983},[756,13590,10798],{"class":874},[756,13592,1015],{"class":773},[756,13594,10002],{"class":1208},[756,13596,913],{"class":912},[756,13598,10007],{"class":1322},[756,13600,1325],{"class":822},[756,13602,10012],{"class":884},[756,13604,913],{"class":912},[756,13606,10007],{"class":769},[756,13608,931],{"class":773},[756,13610,10720],{"class":769},[756,13612,9957],{"class":773},[756,13614,9960],{"class":1216},[756,13616,10023],{"class":912},[756,13618,13619],{"class":758,"line":1009},[756,13620,1046],{"class":773},[756,13622,13623],{"class":758,"line":1043},[756,13624,868],{"emptyLinePlaceholder":867},[756,13626,13627,13629,13631,13633,13635,13637,13640,13642],{"class":758,"line":1049},[756,13628,5710],{"class":874},[756,13630,1015],{"class":773},[756,13632,1018],{"class":884},[756,13634,913],{"class":912},[756,13636,955],{"class":773},[756,13638,13639],{"class":777},"Rate limit exceeded after retries",[756,13641,955],{"class":773},[756,13643,975],{"class":912},[756,13645,13646],{"class":758,"line":1054},[756,13647,1075],{"class":773},[692,13649],{},[575,13651,13653],{"id":13652},"summary","Summary",[567,13655,13656],{},[571,13657,13658],{},"Key Takeaways:",[705,13660,13661,13667,13673,13679,13685,13691,13697,13703],{},[585,13662,13663,13666],{},[571,13664,13665],{},"Use environment variables"," for API keys (never commit)",[585,13668,13669,13672],{},[571,13670,13671],{},"Implement caching"," (browser, CDN, application)",[585,13674,13675,13678],{},[571,13676,13677],{},"Use field selection"," to reduce payload size",[585,13680,13681,13684],{},[571,13682,13683],{},"Handle errors gracefully"," (retry 5xx, show user-friendly messages)",[585,13686,13687,13690],{},[571,13688,13689],{},"Implement redirects"," for SEO (301 status)",[585,13692,13693,13696],{},[571,13694,13695],{},"Never expose keys"," in frontend code",[585,13698,13699,13702],{},[571,13700,13701],{},"Use pagination"," for large result sets",[585,13704,13705,13708],{},[571,13706,13707],{},"Parallelize requests"," when possible",[567,13710,13711],{},[571,13712,13713],{},"Next Steps:",[582,13715,13716,13722],{},[585,13717,13718],{},[627,13719,13721],{"href":13720},"..\u002Fapi\u002Foverview","API Reference",[585,13723,13724],{},[627,13725,13726],{"href":682},"User Management & API Keys",[692,13728],{},[567,13730,13731,13734],{},[571,13732,13733],{},"Last Updated",": 2025-12-15",[13736,13737,13738],"style",{},"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 .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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":740,"searchDepth":766,"depth":766,"links":13740},[13741,13744,13750,13759,13765,13770,13775,13781,13785,13790],{"id":577,"depth":766,"text":38,"children":13742},[13743],{"id":673,"depth":780,"text":674},{"id":696,"depth":766,"text":67,"children":13745},[13746,13747,13748,13749],{"id":699,"depth":780,"text":700},{"id":743,"depth":780,"text":744},{"id":804,"depth":780,"text":805},{"id":1152,"depth":780,"text":1153},{"id":1441,"depth":766,"text":1442,"children":13751},[13752,13753,13754,13755,13756,13758],{"id":1445,"depth":780,"text":1446},{"id":1721,"depth":780,"text":1722},{"id":2058,"depth":780,"text":2059},{"id":2405,"depth":780,"text":2406},{"id":2865,"depth":780,"text":13757},"Lighter Media with ?media=url",{"id":2981,"depth":780,"text":2982},{"id":3553,"depth":766,"text":3554,"children":13760},[13761,13762,13763,13764],{"id":3557,"depth":780,"text":137},{"id":4787,"depth":780,"text":141},{"id":5922,"depth":780,"text":5923},{"id":7263,"depth":780,"text":7264},{"id":8596,"depth":766,"text":8597,"children":13766},[13767,13768,13769],{"id":8600,"depth":780,"text":8601},{"id":8649,"depth":780,"text":8650},{"id":9254,"depth":780,"text":9255},{"id":9769,"depth":766,"text":9770,"children":13771},[13772,13773,13774],{"id":9773,"depth":780,"text":9774},{"id":10243,"depth":780,"text":10244},{"id":10633,"depth":780,"text":10634},{"id":10936,"depth":766,"text":10937,"children":13776},[13777,13778,13779,13780],{"id":10940,"depth":780,"text":10941},{"id":11057,"depth":780,"text":11058},{"id":11327,"depth":780,"text":11328},{"id":11509,"depth":780,"text":11510},{"id":11852,"depth":766,"text":11853,"children":13782},[13783,13784],{"id":11856,"depth":780,"text":11857},{"id":12236,"depth":780,"text":12237},{"id":12511,"depth":766,"text":54,"children":13786},[13787,13788,13789],{"id":12514,"depth":780,"text":12515},{"id":12950,"depth":780,"text":12951},{"id":13368,"depth":780,"text":13369},{"id":13652,"depth":766,"text":13653},"Integrating a frontend with the Public REST API — authentication and request patterns.","md",{},{"title":109,"description":13791},"ViX0kZORxX3SEfb8t7KJmareN57Xjy95Uwr49PApU0E",[13797,13799],{"title":105,"path":106,"stem":107,"description":13798,"children":-1},"Managing pages in the TentoCMS admin interface.",{"title":113,"path":114,"stem":115,"description":13800,"children":-1},"Using the Schema Builder to create and manage page type and component schemas.",1787919217575]