[{"data":1,"prerenderedAt":3033},["ShallowReactive",2],{"navigation_docs":3,"-frontend-orchestr-recipes-identity-cookies":1474,"-frontend-orchestr-recipes-identity-cookies-surround":3028},[4,132,442,591,1159,1231,1237,1243,1302,1401],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","0.getting-started/0.index",[9,10,14,18,56,81,115,128],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Starting new project","/getting-started/starting-new-project","0.getting-started/1.starting-new-project",{"title":15,"path":16,"stem":17},"What is Laioutr?","/getting-started/what-is-laioutr","0.getting-started/2.what-is-laioutr",{"title":19,"path":20,"stem":21,"children":22,"page":55},"Key Concepts","/getting-started/key-concepts","0.getting-started/3.key-concepts",[23,27,31,35,39,43,47,51],{"title":24,"path":25,"stem":26},"Architecture","/getting-started/key-concepts/architecture","0.getting-started/3.key-concepts/1.architecture",{"title":28,"path":29,"stem":30},"Data Model","/getting-started/key-concepts/data-model","0.getting-started/3.key-concepts/2.data-model",{"title":32,"path":33,"stem":34},"Internationalization","/getting-started/key-concepts/5.internationalization","0.getting-started/3.key-concepts/3.5.internationalization",{"title":36,"path":37,"stem":38},"Data Flow","/getting-started/key-concepts/data-flow","0.getting-started/3.key-concepts/3.data-flow",{"title":40,"path":41,"stem":42},"Extensibility","/getting-started/key-concepts/extensibility","0.getting-started/3.key-concepts/4.extensibility",{"title":44,"path":45,"stem":46},"Philosophy","/getting-started/key-concepts/philosophy","0.getting-started/3.key-concepts/5.philosophy",{"title":48,"path":49,"stem":50},"CI/CD Pipeline","/getting-started/key-concepts/ci-cd-pipeline","0.getting-started/3.key-concepts/6.ci-cd-pipeline",{"title":52,"path":53,"stem":54},"Multi-tenancy","/getting-started/key-concepts/multi-tenancy","0.getting-started/3.key-concepts/multi-tenancy",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Next Steps","/getting-started/next-steps","0.getting-started/4.next-steps",[61,65,69,73,77],{"title":62,"path":63,"stem":64},"Create Organization and Project","/getting-started/next-steps/create-org-and-project","0.getting-started/4.next-steps/0.create-org-and-project",{"title":66,"path":67,"stem":68},"First Project Configuration","/getting-started/next-steps/first-project-config","0.getting-started/4.next-steps/1.first-project-config",{"title":70,"path":71,"stem":72},"Setup Local Development Environment","/getting-started/next-steps/local-setup","0.getting-started/4.next-steps/3.local-setup",{"title":74,"path":75,"stem":76},"Create your first custom app","/getting-started/next-steps/create-custom-app","0.getting-started/4.next-steps/4.create-custom-app",{"title":78,"path":79,"stem":80},"CLI","/getting-started/next-steps/cli","0.getting-started/4.next-steps/5.cli",{"title":82,"path":83,"stem":84,"children":85},"Changelogs","/getting-started/changelogs","0.getting-started/5.Changelogs/0.index",[86,87,91,95,99,103,107,111],{"title":82,"path":83,"stem":84},{"title":88,"path":89,"stem":90},"CLI Changelog","/getting-started/changelogs/cli-changelog","0.getting-started/5.Changelogs/cli-changelog",{"title":92,"path":93,"stem":94},"Cockpit Changelog","/getting-started/changelogs/cockpit-changelog","0.getting-started/5.Changelogs/cockpit-changelog",{"title":96,"path":97,"stem":98},"Figma Kit Changelog","/getting-started/changelogs/figma-kit-changelog","0.getting-started/5.Changelogs/figma-kit-changelog",{"title":100,"path":101,"stem":102},"Frontend Changelog","/getting-started/changelogs/frontend-changelog","0.getting-started/5.Changelogs/frontend-changelog",{"title":104,"path":105,"stem":106},"Orchestr Changelog","/getting-started/changelogs/orchestr-changelog","0.getting-started/5.Changelogs/orchestr-changelog",{"title":108,"path":109,"stem":110},"Orchestr Devtools Changelog","/getting-started/changelogs/orchestr-devtools-changelog","0.getting-started/5.Changelogs/orchestr-devtools-changelog",{"title":112,"path":113,"stem":114},"UI Changelog","/getting-started/changelogs/ui-changelog","0.getting-started/5.Changelogs/ui-changelog",{"title":116,"path":117,"stem":118,"children":119,"page":55},"Hints And Tips","/getting-started/hints-and-tips","0.getting-started/6.Hints-and-Tips",[120,124],{"title":121,"path":122,"stem":123},"Introduction","/getting-started/hints-and-tips/introduction","0.getting-started/6.Hints-and-Tips/0.introduction",{"title":125,"path":126,"stem":127},"Developer tools","/getting-started/hints-and-tips/developer-tools","0.getting-started/6.Hints-and-Tips/1.developer-tools",{"title":129,"path":130,"stem":131},"MCP Server","/getting-started/mcp-server","0.getting-started/7.mcp-server",{"title":133,"path":134,"stem":135,"children":136},"Frontend","/frontend","1.Frontend/0.index",[137,138,149,211,237,301],{"title":133,"path":134,"stem":135},{"title":121,"path":139,"stem":140,"children":141,"page":55},"/frontend/introduction","1.Frontend/1.Introduction",[142,145],{"title":19,"path":143,"stem":144},"/frontend/introduction/key-concepts","1.Frontend/1.Introduction/0.key-concepts",{"title":146,"path":147,"stem":148},"Tech Stack","/frontend/introduction/tech-stack","1.Frontend/1.Introduction/1.tech-stack",{"title":150,"path":151,"stem":152,"children":153},"Features","/frontend/features","1.Frontend/2.Features/0.index",[154,155,159,163,167,171,175,179,183,187,191,195,199,203,207],{"title":150,"path":151,"stem":152},{"title":156,"path":157,"stem":158},"Consent Management","/frontend/features/consent-management","1.Frontend/2.Features/consent-management",{"title":160,"path":161,"stem":162},"Currencies","/frontend/features/currencies","1.Frontend/2.Features/currencies",{"title":164,"path":165,"stem":166},"Environments & Staging","/frontend/features/environments","1.Frontend/2.Features/environments",{"title":168,"path":169,"stem":170},"Hooks","/frontend/features/hooks","1.Frontend/2.Features/hooks",{"title":172,"path":173,"stem":174},"Media and Media Library","/frontend/features/media","1.Frontend/2.Features/media",{"title":176,"path":177,"stem":178},"Multi-language Support","/frontend/features/multi-language-support","1.Frontend/2.Features/multi-language-support",{"title":180,"path":181,"stem":182},"Multi-market","/frontend/features/multi-market","1.Frontend/2.Features/multi-market",{"title":184,"path":185,"stem":186},"Page Types","/frontend/features/pagetypes","1.Frontend/2.Features/pagetypes",{"title":188,"path":189,"stem":190},"PWA","/frontend/features/pwa","1.Frontend/2.Features/pwa",{"title":192,"path":193,"stem":194},"Redirects","/frontend/features/redirects","1.Frontend/2.Features/redirects",{"title":196,"path":197,"stem":198},"Routing","/frontend/features/routing","1.Frontend/2.Features/routing",{"title":200,"path":201,"stem":202},"Server-Side Rendering (SSR) and Caching","/frontend/features/ssr-and-caching","1.Frontend/2.Features/ssr-and-caching",{"title":204,"path":205,"stem":206},"Tracking","/frontend/features/tracking","1.Frontend/2.Features/tracking",{"title":208,"path":209,"stem":210},"Z-Ordering","/frontend/features/z-ordering","1.Frontend/2.Features/z-ordering",{"title":212,"path":213,"stem":214,"children":215},"SEO","/frontend/seo","1.Frontend/3.SEO/0.index",[216,217,221,225,229,233],{"title":212,"path":213,"stem":214},{"title":218,"path":219,"stem":220},"Link Checker","/frontend/seo/link-checker","1.Frontend/3.SEO/link-checker",{"title":222,"path":223,"stem":224},"OG Image","/frontend/seo/og-image","1.Frontend/3.SEO/og-image",{"title":226,"path":227,"stem":228},"Robots.txt","/frontend/seo/robots-txt","1.Frontend/3.SEO/robots-txt",{"title":230,"path":231,"stem":232},"Schema.org","/frontend/seo/schema-org","1.Frontend/3.SEO/schema-org",{"title":234,"path":235,"stem":236},"Sitemap","/frontend/seo/sitemap","1.Frontend/3.SEO/sitemap",{"title":238,"path":239,"stem":240,"children":241},"Backend for Frontend","/frontend/orchestr","1.Frontend/4.Orchestr/0.index",[242,243,269,273,277,281,285,289,293,297],{"title":238,"path":239,"stem":240},{"title":244,"path":245,"stem":246,"children":247},"Recipes","/frontend/orchestr/recipes","1.Frontend/4.Orchestr/99.recipes/0.index",[248,249,253,257,261,265],{"title":244,"path":245,"stem":246},{"title":250,"path":251,"stem":252},"Analytics components from query handlers","/frontend/orchestr/recipes/analytics-from-query-handlers","1.Frontend/4.Orchestr/99.recipes/analytics-from-query-handlers",{"title":254,"path":255,"stem":256},"Identity cookies (cart and visitor IDs)","/frontend/orchestr/recipes/identity-cookies","1.Frontend/4.Orchestr/99.recipes/identity-cookies",{"title":258,"path":259,"stem":260},"System bootstrap in extendRequest","/frontend/orchestr/recipes/system-bootstrap","1.Frontend/4.Orchestr/99.recipes/system-bootstrap",{"title":262,"path":263,"stem":264},"Translating vendor errors","/frontend/orchestr/recipes/translating-vendor-errors","1.Frontend/4.Orchestr/99.recipes/translating-vendor-errors",{"title":266,"path":267,"stem":268},"Userland cache patterns","/frontend/orchestr/recipes/userland-cache-patterns","1.Frontend/4.Orchestr/99.recipes/userland-cache-patterns",{"title":270,"path":271,"stem":272},"Actions","/frontend/orchestr/actions","1.Frontend/4.Orchestr/Actions",{"title":274,"path":275,"stem":276},"Caching","/frontend/orchestr/caching","1.Frontend/4.Orchestr/Caching",{"title":278,"path":279,"stem":280},"Middleware","/frontend/orchestr/middleware","1.Frontend/4.Orchestr/Middleware",{"title":282,"path":283,"stem":284},"Queries & Links","/frontend/orchestr/queries","1.Frontend/4.Orchestr/Queries",{"title":286,"path":287,"stem":288},"Component Resolvers","/frontend/orchestr/component-resolvers","1.Frontend/4.Orchestr/component-resolvers",{"title":290,"path":291,"stem":292},"Filters","/frontend/orchestr/filters","1.Frontend/4.Orchestr/filters",{"title":294,"path":295,"stem":296},"URL Query Parameters","/frontend/orchestr/url-query-params","1.Frontend/4.Orchestr/url-query-params",{"title":298,"path":299,"stem":300},"Orchestr Wire Format","/frontend/orchestr/wire-format","1.Frontend/4.Orchestr/wire-format",{"title":302,"path":303,"stem":304,"children":305},"API Reference","/frontend/api-reference","1.Frontend/99.api-reference/0.index",[306,307,364,367,392,408,416,427,435],{"title":302,"path":303,"stem":304},{"title":308,"path":309,"stem":310,"children":311,"page":55},"Entities","/frontend/api-reference/entities","1.Frontend/99.api-reference/01.entities",[312,316,320,324,328,332,336,340,344,348,352,356,360],{"title":313,"path":314,"stem":315},"Product","/frontend/api-reference/entities/product","1.Frontend/99.api-reference/01.entities/1.product",{"title":317,"path":318,"stem":319},"SuggestedSearch","/frontend/api-reference/entities/suggested-search","1.Frontend/99.api-reference/01.entities/10.suggested-search",{"title":321,"path":322,"stem":323},"SuggestedSearchEntry","/frontend/api-reference/entities/suggested-search-entry","1.Frontend/99.api-reference/01.entities/11.suggested-search-entry",{"title":325,"path":326,"stem":327},"BlogCollection","/frontend/api-reference/entities/blog-collection","1.Frontend/99.api-reference/01.entities/12.blog-collection",{"title":329,"path":330,"stem":331},"Comment","/frontend/api-reference/entities/comment","1.Frontend/99.api-reference/01.entities/13.comment",{"title":333,"path":334,"stem":335},"ProductVariant","/frontend/api-reference/entities/product-variant","1.Frontend/99.api-reference/01.entities/2.product-variant",{"title":337,"path":338,"stem":339},"Category","/frontend/api-reference/entities/category","1.Frontend/99.api-reference/01.entities/3.category",{"title":341,"path":342,"stem":343},"Cart","/frontend/api-reference/entities/cart","1.Frontend/99.api-reference/01.entities/4.cart",{"title":345,"path":346,"stem":347},"CartItem","/frontend/api-reference/entities/cart-item","1.Frontend/99.api-reference/01.entities/5.cart-item",{"title":349,"path":350,"stem":351},"Review","/frontend/api-reference/entities/review","1.Frontend/99.api-reference/01.entities/6.review",{"title":353,"path":354,"stem":355},"BreadcrumbItem","/frontend/api-reference/entities/breadcrumb-item","1.Frontend/99.api-reference/01.entities/7.breadcrumb-item",{"title":357,"path":358,"stem":359},"MenuItem","/frontend/api-reference/entities/menu-item","1.Frontend/99.api-reference/01.entities/8.menu-item",{"title":361,"path":362,"stem":363},"BlogPost","/frontend/api-reference/entities/blog-post","1.Frontend/99.api-reference/01.entities/9.blog-post",{"title":184,"path":365,"stem":366},"/frontend/api-reference/page-types","1.Frontend/99.api-reference/02.page-types",{"title":368,"path":369,"stem":370,"children":371,"page":55},"Common Types","/frontend/api-reference/common-types","1.Frontend/99.api-reference/03.common-types",[372,376,380,384,388],{"title":373,"path":374,"stem":375},"Link","/frontend/api-reference/common-types/link","1.Frontend/99.api-reference/03.common-types/1.link",{"title":377,"path":378,"stem":379},"Media","/frontend/api-reference/common-types/media","1.Frontend/99.api-reference/03.common-types/2.media",{"title":381,"path":382,"stem":383},"Money","/frontend/api-reference/common-types/money","1.Frontend/99.api-reference/03.common-types/3.money",{"title":385,"path":386,"stem":387},"UnitPrice","/frontend/api-reference/common-types/unit-price","1.Frontend/99.api-reference/03.common-types/4.unit-price",{"title":389,"path":390,"stem":391},"Measurement","/frontend/api-reference/common-types/measurement","1.Frontend/99.api-reference/03.common-types/5.measurement",{"title":393,"path":394,"stem":395,"children":396,"page":55},"Ecommerce","/frontend/api-reference/ecommerce","1.Frontend/99.api-reference/10.ecommerce",[397,400,404],{"title":270,"path":398,"stem":399},"/frontend/api-reference/ecommerce/actions","1.Frontend/99.api-reference/10.ecommerce/1.actions",{"title":401,"path":402,"stem":403},"Queries","/frontend/api-reference/ecommerce/queries","1.Frontend/99.api-reference/10.ecommerce/2.queries",{"title":405,"path":406,"stem":407},"Errors","/frontend/api-reference/ecommerce/errors","1.Frontend/99.api-reference/10.ecommerce/3.errors",{"title":409,"path":410,"stem":411,"children":412,"page":55},"Newsletter","/frontend/api-reference/newsletter","1.Frontend/99.api-reference/11.newsletter",[413],{"title":270,"path":414,"stem":415},"/frontend/api-reference/newsletter/actions","1.Frontend/99.api-reference/11.newsletter/1.actions",{"title":417,"path":418,"stem":419,"children":420,"page":55},"Blog","/frontend/api-reference/blog","1.Frontend/99.api-reference/12.blog",[421,424],{"title":401,"path":422,"stem":423},"/frontend/api-reference/blog/queries","1.Frontend/99.api-reference/12.blog/1.queries",{"title":405,"path":425,"stem":426},"/frontend/api-reference/blog/errors","1.Frontend/99.api-reference/12.blog/2.errors",{"title":428,"path":429,"stem":430,"children":431,"page":55},"Suggested Search","/frontend/api-reference/suggested-search","1.Frontend/99.api-reference/13.suggested-search",[432],{"title":401,"path":433,"stem":434},"/frontend/api-reference/suggested-search/queries","1.Frontend/99.api-reference/13.suggested-search/1.queries",{"title":204,"path":436,"stem":437,"children":438,"page":55},"/frontend/api-reference/tracking","1.Frontend/99.api-reference/14.tracking",[439],{"title":270,"path":440,"stem":441},"/frontend/api-reference/tracking/actions","1.Frontend/99.api-reference/14.tracking/1.actions",{"title":443,"path":444,"stem":445,"children":446},"Apps","/apps","2.Apps/0.index",[447,448,502,575],{"title":443,"path":444,"stem":445},{"title":449,"path":450,"stem":451,"children":452},"App Development","/apps/app-development","2.Apps/app-development/0.index",[453,454,458,462,466,470,474,478,482,486,490,494,498],{"title":449,"path":450,"stem":451},{"title":455,"path":456,"stem":457},"App Configuration","/apps/app-development/app-configuration","2.Apps/app-development/app-configuration",{"title":459,"path":460,"stem":461},"App Starter","/apps/app-development/app-starter","2.Apps/app-development/app-starter",{"title":463,"path":464,"stem":465},"Best Practice","/apps/app-development/best-practice","2.Apps/app-development/best-practice",{"title":467,"path":468,"stem":469},"Block Definitions","/apps/app-development/block-definitions","2.Apps/app-development/block-definitions",{"title":471,"path":472,"stem":473},"Coding Standards","/apps/app-development/coding-standards","2.Apps/app-development/coding-standards",{"title":475,"path":476,"stem":477},"Consent Adapters","/apps/app-development/consent-adapters","2.Apps/app-development/consent-adapters",{"title":479,"path":480,"stem":481},"Consuming Query Fields","/apps/app-development/consuming-query-fields","2.Apps/app-development/consuming-query-fields",{"title":483,"path":484,"stem":485},"Implementation Overview","/apps/app-development/implementation-overview","2.Apps/app-development/implementation-overview",{"title":487,"path":488,"stem":489},"Platform Dependencies","/apps/app-development/platform-dependencies","2.Apps/app-development/platform-dependencies",{"title":491,"path":492,"stem":493},"Schema Fields","/apps/app-development/schema-fields","2.Apps/app-development/schema-fields",{"title":495,"path":496,"stem":497},"Section Definitions","/apps/app-development/section-definitions","2.Apps/app-development/section-definitions",{"title":499,"path":500,"stem":501},"Studio Icons","/apps/app-development/studio-icons","2.Apps/app-development/studio-icons",{"title":503,"path":504,"stem":505,"children":506,"page":55},"App Docs","/apps/app-docs","2.Apps/app-docs",[507,511,515,519,523,527,531,535,539,543,547,551,555,559,563,567,571],{"title":508,"path":509,"stem":510},"Adobe Commerce","/apps/app-docs/adobe-commerce","2.Apps/app-docs/adobe-commerce",{"title":512,"path":513,"stem":514},"B2Bsellers","/apps/app-docs/b2bsellers","2.Apps/app-docs/b2bsellers",{"title":516,"path":517,"stem":518},"Battery Included","/apps/app-docs/battery-included","2.Apps/app-docs/battery-included",{"title":520,"path":521,"stem":522},"CCM19","/apps/app-docs/ccm19","2.Apps/app-docs/ccm19",{"title":524,"path":525,"stem":526},"Cookiebot","/apps/app-docs/cookiebot","2.Apps/app-docs/cookiebot",{"title":528,"path":529,"stem":530},"Google Tag Manager (GTM)","/apps/app-docs/gtm","2.Apps/app-docs/gtm",{"title":532,"path":533,"stem":534},"Hygraph","/apps/app-docs/hygraph","2.Apps/app-docs/hygraph",{"title":536,"path":537,"stem":538},"Nimstrata Google Retail API","/apps/app-docs/nimstrata","2.Apps/app-docs/nimstrata",{"title":540,"path":541,"stem":542},"Pimcore","/apps/app-docs/pimcore","2.Apps/app-docs/pimcore",{"title":544,"path":545,"stem":546},"Commercetools","/apps/app-docs/commercetools","2.apps/app-docs/commercetools",{"title":548,"path":549,"stem":550},"Emporix","/apps/app-docs/emporix","2.apps/app-docs/emporix",{"title":552,"path":553,"stem":554},"Klaviyo","/apps/app-docs/klaviyo","2.apps/app-docs/klaviyo",{"title":556,"path":557,"stem":558},"OXID eShop","/apps/app-docs/oxid","2.apps/app-docs/oxid",{"title":560,"path":561,"stem":562},"Shopify","/apps/app-docs/shopify","2.apps/app-docs/shopify",{"title":564,"path":565,"stem":566},"Shopware","/apps/app-docs/shopware","2.apps/app-docs/shopware",{"title":568,"path":569,"stem":570},"Vercel Analytics","/apps/app-docs/vercel-analytics","2.apps/app-docs/vercel-analytics",{"title":572,"path":573,"stem":574},"Vercel Speed Insights","/apps/app-docs/vercel-speed-insights","2.apps/app-docs/vercel-speed-insights",{"title":576,"path":577,"stem":578,"children":579,"page":55},"Essentials","/apps/essentials","2.Apps/essentials",[580,584,588],{"title":581,"path":582,"stem":583},"Legal","/apps/essentials/legal","2.Apps/essentials/legal",{"title":585,"path":586,"stem":587},"Mailer","/apps/essentials/mailer","2.Apps/essentials/mailer",{"title":212,"path":589,"stem":590},"/apps/essentials/seo","2.Apps/essentials/seo",{"title":592,"path":593,"stem":594,"children":595},"Laioutr UI","/laioutr-ui","3.laioutr-ui/0.index",[596,597,621,627,633,739,745,751,805,827,880],{"title":592,"path":593,"stem":594},{"title":5,"path":598,"stem":599,"children":600},"/laioutr-ui/getting-started","3.laioutr-ui/01.getting-started/0.index",[601,602,606,610,614,618],{"title":5,"path":598,"stem":599},{"title":603,"path":604,"stem":605},"Browser support","/laioutr-ui/getting-started/browser-support","3.laioutr-ui/01.getting-started/1.browser-support",{"title":607,"path":608,"stem":609},"Common Data","/laioutr-ui/getting-started/common-data","3.laioutr-ui/01.getting-started/99.common-data",{"title":611,"path":612,"stem":613},"Figma Kit","/laioutr-ui/getting-started/figma-kit","3.laioutr-ui/01.getting-started/figma-kit",{"title":615,"path":616,"stem":617},"Theming","/laioutr-ui/getting-started/theming","3.laioutr-ui/01.getting-started/theming",{"title":208,"path":619,"stem":620},"/laioutr-ui/getting-started/z-ordering","3.laioutr-ui/01.getting-started/z-ordering",{"title":622,"path":623,"stem":624,"children":625},"B2B","/laioutr-ui/b2b","3.laioutr-ui/b2b/0.index",[626],{"title":622,"path":623,"stem":624},{"title":628,"path":629,"stem":630,"children":631},"Booking","/laioutr-ui/booking","3.laioutr-ui/booking/0.index",[632],{"title":628,"path":629,"stem":630},{"title":634,"path":635,"stem":636,"children":637},"CMS","/laioutr-ui/cms","3.laioutr-ui/cms/0.index",[638,639,664,672,684,693,714],{"title":634,"path":635,"stem":636},{"title":640,"path":641,"stem":642,"children":643,"page":55},"Banner","/laioutr-ui/cms/banner","3.laioutr-ui/cms/banner",[644,648,652,656,660],{"title":645,"path":646,"stem":647},"Banner Slider","/laioutr-ui/cms/banner/bannerslider","3.laioutr-ui/cms/banner/BannerSlider",{"title":649,"path":650,"stem":651},"Basic Banner with Image and Text","/laioutr-ui/cms/banner/basicbannerwithimageandtext","3.laioutr-ui/cms/banner/BasicBannerWithImageAndText",{"title":653,"path":654,"stem":655},"Content with Image and Text","/laioutr-ui/cms/banner/contentwithimageandtext","3.laioutr-ui/cms/banner/ContentWithImageAndText",{"title":657,"path":658,"stem":659},"Content With Text Columns","/laioutr-ui/cms/banner/contentwithtextcolumns","3.laioutr-ui/cms/banner/ContentWithTextColumns",{"title":661,"path":662,"stem":663},"USP Banner","/laioutr-ui/cms/banner/uspbanner","3.laioutr-ui/cms/banner/UspBanner",{"title":417,"path":665,"stem":666,"children":667,"page":55},"/laioutr-ui/cms/blog","3.laioutr-ui/cms/blog",[668],{"title":669,"path":670,"stem":671},"Blog Post","/laioutr-ui/cms/blog/blogpost","3.laioutr-ui/cms/blog/BlogPost",{"title":409,"path":673,"stem":674,"children":675,"page":55},"/laioutr-ui/cms/newsletter","3.laioutr-ui/cms/newsletter",[676,680],{"title":677,"path":678,"stem":679},"Input for Newsletter","/laioutr-ui/cms/newsletter/inputnewsletter","3.laioutr-ui/cms/newsletter/InputNewsletter",{"title":681,"path":682,"stem":683},"Newsletter Registration","/laioutr-ui/cms/newsletter/newsletterregistration","3.laioutr-ui/cms/newsletter/NewsletterRegistration",{"title":685,"path":686,"stem":687,"children":688,"page":55},"Quotes","/laioutr-ui/cms/quotes","3.laioutr-ui/cms/quotes",[689],{"title":690,"path":691,"stem":692},"Personal Quote with Text and Image","/laioutr-ui/cms/quotes/personalquote","3.laioutr-ui/cms/quotes/PersonalQuote",{"title":694,"path":695,"stem":696,"children":697,"page":55},"Reviews","/laioutr-ui/cms/reviews","3.laioutr-ui/cms/reviews",[698,702,706,710],{"title":699,"path":700,"stem":701},"Quote Card","/laioutr-ui/cms/reviews/quotecard","3.laioutr-ui/cms/reviews/QuoteCard",{"title":703,"path":704,"stem":705},"Rating","/laioutr-ui/cms/reviews/rating","3.laioutr-ui/cms/reviews/Rating",{"title":707,"path":708,"stem":709},"Rating Form","/laioutr-ui/cms/reviews/ratingform","3.laioutr-ui/cms/reviews/RatingForm",{"title":711,"path":712,"stem":713},"Review Section","/laioutr-ui/cms/reviews/reviewsection","3.laioutr-ui/cms/reviews/ReviewSection",{"title":715,"path":716,"stem":717,"children":718,"page":55},"Slider","/laioutr-ui/cms/slider","3.laioutr-ui/cms/slider",[719,723,727,731,735],{"title":720,"path":721,"stem":722},"Hero Slider","/laioutr-ui/cms/slider/heroslider","3.laioutr-ui/cms/slider/HeroSlider",{"title":724,"path":725,"stem":726},"Logo Slider","/laioutr-ui/cms/slider/logoslider","3.laioutr-ui/cms/slider/LogoSlider",{"title":728,"path":729,"stem":730},"Swiper Navigation with Bullets","/laioutr-ui/cms/slider/swipernavigationbullets","3.laioutr-ui/cms/slider/SwiperNavigationBullets",{"title":732,"path":733,"stem":734},"Swiper Navigation Compact","/laioutr-ui/cms/slider/swipernavigationcompact","3.laioutr-ui/cms/slider/SwiperNavigationCompact",{"title":736,"path":737,"stem":738},"Swiper Navigation with Numbers","/laioutr-ui/cms/slider/swipernavigationnumbers","3.laioutr-ui/cms/slider/SwiperNavigationNumbers",{"title":740,"path":741,"stem":742,"children":743},"Marketplace","/laioutr-ui/marketplace","3.laioutr-ui/marketplace/0.index",[744],{"title":740,"path":741,"stem":742},{"title":746,"path":747,"stem":748,"children":749},"Multichannel","/laioutr-ui/multichannel","3.laioutr-ui/multichannel/0.index",[750],{"title":746,"path":747,"stem":748},{"title":752,"path":753,"stem":754,"children":755},"Navigation & Headers","/laioutr-ui/navigation","3.laioutr-ui/navigation/0.index",[756,757,761,765,769,773,777,781,785,789,793,797,801],{"title":752,"path":753,"stem":754},{"title":758,"path":759,"stem":760},"Basic Header","/laioutr-ui/navigation/basicheader","3.laioutr-ui/navigation/BasicHeader",{"title":762,"path":763,"stem":764},"Color Mode Switch","/laioutr-ui/navigation/colormodeswitch","3.laioutr-ui/navigation/ColorModeSwitch",{"title":766,"path":767,"stem":768},"Desktop Side By Side Menu","/laioutr-ui/navigation/desktopsidebysidemenu","3.laioutr-ui/navigation/DesktopSideBySideMenu",{"title":770,"path":771,"stem":772},"Header with Text Links","/laioutr-ui/navigation/headerwithtextlinks","3.laioutr-ui/navigation/HeaderWithTextLinks",{"title":774,"path":775,"stem":776},"Locale Select","/laioutr-ui/navigation/localeselect","3.laioutr-ui/navigation/LocaleSelect",{"title":778,"path":779,"stem":780},"Mega Menu Desktop","/laioutr-ui/navigation/megamenudesktop","3.laioutr-ui/navigation/MegaMenuDesktop",{"title":782,"path":783,"stem":784},"Mobile Menu","/laioutr-ui/navigation/mobilemenu","3.laioutr-ui/navigation/MobileMenu",{"title":786,"path":787,"stem":788},"Search Overlay Input","/laioutr-ui/navigation/searchoverlayinput","3.laioutr-ui/navigation/SearchOverlayInput",{"title":790,"path":791,"stem":792},"Shop Header","/laioutr-ui/navigation/shopheader","3.laioutr-ui/navigation/ShopHeader",{"title":794,"path":795,"stem":796},"Top Bar","/laioutr-ui/navigation/topbar","3.laioutr-ui/navigation/TopBar",{"title":798,"path":799,"stem":800},"Breadcrumb","/laioutr-ui/navigation/breadcrumb","3.laioutr-ui/navigation/breadcrumb",{"title":802,"path":803,"stem":804},"Footer","/laioutr-ui/navigation/footer","3.laioutr-ui/navigation/footer",{"title":806,"path":807,"stem":808,"children":809},"SaaS","/laioutr-ui/saas","3.laioutr-ui/saas/0.index",[810,811,815,819,823],{"title":806,"path":807,"stem":808},{"title":812,"path":813,"stem":814},"Billing Cycle Switch","/laioutr-ui/saas/billingcycleswitch","3.laioutr-ui/saas/BillingCycleSwitch",{"title":816,"path":817,"stem":818},"Pricing Plan","/laioutr-ui/saas/pricingplan","3.laioutr-ui/saas/pricingplan",{"title":820,"path":821,"stem":822},"Pricing Plans","/laioutr-ui/saas/pricingplans","3.laioutr-ui/saas/pricingplans",{"title":824,"path":825,"stem":826},"Pricing Table","/laioutr-ui/saas/pricingtable","3.laioutr-ui/saas/pricingtable",{"title":828,"path":829,"stem":830,"children":831},"Shop","/laioutr-ui/shop","3.laioutr-ui/shop/0.index",[832,833,837,841,845,849,853,857,861,865,869,873,877],{"title":828,"path":829,"stem":830},{"title":834,"path":835,"stem":836},"Cards Container","/laioutr-ui/shop/cardscontainer","3.laioutr-ui/shop/CardsContainer",{"title":838,"path":839,"stem":840},"Grid Card Content","/laioutr-ui/shop/gridcardcontent","3.laioutr-ui/shop/GridCardContent",{"title":842,"path":843,"stem":844},"Grid Card Text Content","/laioutr-ui/shop/gridcardtextcontent","3.laioutr-ui/shop/GridCardTextContent",{"title":846,"path":847,"stem":848},"Inpage Navigation Basic Grid","/laioutr-ui/shop/inpagenavigationbasicgrid","3.laioutr-ui/shop/InpageNavigationBasicGrid",{"title":850,"path":851,"stem":852},"Inpage Navigation Basic Slider","/laioutr-ui/shop/inpagenavigationbasicslider","3.laioutr-ui/shop/InpageNavigationBasicSlider",{"title":854,"path":855,"stem":856},"Inpage Navigation Big Grid","/laioutr-ui/shop/inpagenavigationbiggrid","3.laioutr-ui/shop/InpageNavigationBigGrid",{"title":858,"path":859,"stem":860},"Inpage Navigation Big Slider","/laioutr-ui/shop/inpagenavigationbigslider","3.laioutr-ui/shop/InpageNavigationBigSlider",{"title":862,"path":863,"stem":864},"Inpage Navigation Compact Grid","/laioutr-ui/shop/inpagenavigationcompactgrid","3.laioutr-ui/shop/InpageNavigationCompactGrid",{"title":866,"path":867,"stem":868},"Inpage Navigation Compact Slider","/laioutr-ui/shop/inpagenavigationcompactslider","3.laioutr-ui/shop/InpageNavigationCompactSlider",{"title":870,"path":871,"stem":872},"Product Card","/laioutr-ui/shop/productcard","3.laioutr-ui/shop/ProductCard",{"title":874,"path":875,"stem":876},"Product Slider","/laioutr-ui/shop/productslider","3.laioutr-ui/shop/ProductSlider",{"title":290,"path":878,"stem":879},"/laioutr-ui/shop/filters","3.laioutr-ui/shop/filters",{"title":881,"path":882,"stem":883,"children":884},"UI Kit","/laioutr-ui/ui-kit","3.laioutr-ui/ui-kit/0.index",[885,886,962,982,1003,1036,1057,1122],{"title":881,"path":882,"stem":883},{"title":887,"path":888,"stem":889,"children":890,"page":55},"General","/laioutr-ui/ui-kit/general","3.laioutr-ui/ui-kit/01.general",[891,895,899,903,907,911,915,919,923,927,931,935,938,942,946,950,954,958],{"title":892,"path":893,"stem":894},"Accordion","/laioutr-ui/ui-kit/general/accordion","3.laioutr-ui/ui-kit/01.general/Accordion",{"title":896,"path":897,"stem":898},"Avatar","/laioutr-ui/ui-kit/general/avatar","3.laioutr-ui/ui-kit/01.general/Avatar",{"title":900,"path":901,"stem":902},"Backdrop","/laioutr-ui/ui-kit/general/backdrop","3.laioutr-ui/ui-kit/01.general/Backdrop",{"title":904,"path":905,"stem":906},"Color Swatch","/laioutr-ui/ui-kit/general/colorswatch","3.laioutr-ui/ui-kit/01.general/ColorSwatch",{"title":908,"path":909,"stem":910},"Dropdown Menu","/laioutr-ui/ui-kit/general/dropdownmenu","3.laioutr-ui/ui-kit/01.general/DropdownMenu",{"title":912,"path":913,"stem":914},"Edge Glow","/laioutr-ui/ui-kit/general/edgeglow","3.laioutr-ui/ui-kit/01.general/EdgeGlow",{"title":916,"path":917,"stem":918},"Empty State","/laioutr-ui/ui-kit/general/emptystate","3.laioutr-ui/ui-kit/01.general/EmptyState",{"title":920,"path":921,"stem":922},"Icon","/laioutr-ui/ui-kit/general/icon","3.laioutr-ui/ui-kit/01.general/Icon",{"title":924,"path":925,"stem":926},"Image Contrast Overlay","/laioutr-ui/ui-kit/general/imagecontrastoverlay","3.laioutr-ui/ui-kit/01.general/ImageContrastOverlay",{"title":928,"path":929,"stem":930},"Image Variant Thumbnail","/laioutr-ui/ui-kit/general/imagevariantthumbnail","3.laioutr-ui/ui-kit/01.general/ImageVariantThumbnail",{"title":932,"path":933,"stem":934},"Loading Spinner","/laioutr-ui/ui-kit/general/loadingspinner","3.laioutr-ui/ui-kit/01.general/LoadingSpinner",{"title":377,"path":936,"stem":937},"/laioutr-ui/ui-kit/general/media","3.laioutr-ui/ui-kit/01.general/Media",{"title":939,"path":940,"stem":941},"Navigation Bullets","/laioutr-ui/ui-kit/general/navigationbullets","3.laioutr-ui/ui-kit/01.general/NavigationBullets",{"title":943,"path":944,"stem":945},"Placeholder","/laioutr-ui/ui-kit/general/placeholder","3.laioutr-ui/ui-kit/01.general/Placeholder",{"title":947,"path":948,"stem":949},"Progress Bar","/laioutr-ui/ui-kit/general/progressbar","3.laioutr-ui/ui-kit/01.general/ProgressBar",{"title":951,"path":952,"stem":953},"Scrollbar","/laioutr-ui/ui-kit/general/scrollbar","3.laioutr-ui/ui-kit/01.general/Scrollbar",{"title":955,"path":956,"stem":957},"Swatch Preview","/laioutr-ui/ui-kit/general/swatchpreview","3.laioutr-ui/ui-kit/01.general/SwatchPreview",{"title":959,"path":960,"stem":961},"Thumbnail","/laioutr-ui/ui-kit/general/thumbnail","3.laioutr-ui/ui-kit/01.general/Thumbnail",{"title":963,"path":964,"stem":965,"children":966,"page":55},"Typography","/laioutr-ui/ui-kit/typography","3.laioutr-ui/ui-kit/02.typography",[967,971,974,978],{"title":968,"path":969,"stem":970},"Icon List","/laioutr-ui/ui-kit/typography/iconlist","3.laioutr-ui/ui-kit/02.typography/IconList",{"title":373,"path":972,"stem":973},"/laioutr-ui/ui-kit/typography/link","3.laioutr-ui/ui-kit/02.typography/Link",{"title":975,"path":976,"stem":977},"Rich Content","/laioutr-ui/ui-kit/typography/richcontent","3.laioutr-ui/ui-kit/02.typography/RichContent",{"title":979,"path":980,"stem":981},"Text","/laioutr-ui/ui-kit/typography/text","3.laioutr-ui/ui-kit/02.typography/Text",{"title":983,"path":984,"stem":985,"children":986,"page":55},"Layout","/laioutr-ui/ui-kit/layout","3.laioutr-ui/ui-kit/03.layout",[987,991,995,999],{"title":988,"path":989,"stem":990},"Grid Fill","/laioutr-ui/ui-kit/layout/gridfill","3.laioutr-ui/ui-kit/03.layout/GridFill",{"title":992,"path":993,"stem":994},"Grid Masonry","/laioutr-ui/ui-kit/layout/gridmasonry","3.laioutr-ui/ui-kit/03.layout/GridMasonry",{"title":996,"path":997,"stem":998},"Scroll Area","/laioutr-ui/ui-kit/layout/scrollarea","3.laioutr-ui/ui-kit/03.layout/ScrollArea",{"title":1000,"path":1001,"stem":1002},"Separator","/laioutr-ui/ui-kit/layout/separator","3.laioutr-ui/ui-kit/03.layout/Separator",{"title":1004,"path":1005,"stem":1006,"children":1007,"page":55},"Content","/laioutr-ui/ui-kit/content","3.laioutr-ui/ui-kit/04.content",[1008,1012,1016,1020,1024,1028,1032],{"title":1009,"path":1010,"stem":1011},"Card","/laioutr-ui/ui-kit/content/card","3.laioutr-ui/ui-kit/04.content/Card",{"title":1013,"path":1014,"stem":1015},"CTA Banner Basic","/laioutr-ui/ui-kit/content/ctabannerbasic","3.laioutr-ui/ui-kit/04.content/CtaBannerBasic",{"title":1017,"path":1018,"stem":1019},"CTA Banner Integrated","/laioutr-ui/ui-kit/content/ctabannerintegrated","3.laioutr-ui/ui-kit/04.content/CtaBannerIntegrated",{"title":1021,"path":1022,"stem":1023},"CTA Banner Showcase","/laioutr-ui/ui-kit/content/ctabannershowcase","3.laioutr-ui/ui-kit/04.content/CtaBannerShowcase",{"title":1025,"path":1026,"stem":1027},"Link Tile Basic","/laioutr-ui/ui-kit/content/linktilebasic","3.laioutr-ui/ui-kit/04.content/LinkTileBasic",{"title":1029,"path":1030,"stem":1031},"Link Tile Big","/laioutr-ui/ui-kit/content/linktilebig","3.laioutr-ui/ui-kit/04.content/LinkTileBig",{"title":1033,"path":1034,"stem":1035},"Link Tile Compact","/laioutr-ui/ui-kit/content/linktilecompact","3.laioutr-ui/ui-kit/04.content/LinkTileCompact",{"title":1037,"path":1038,"stem":1039,"children":1040,"page":55},"Surfaces","/laioutr-ui/ui-kit/surfaces","3.laioutr-ui/ui-kit/05.surfaces",[1041,1045,1049,1053],{"title":1042,"path":1043,"stem":1044},"Alert Dialog","/laioutr-ui/ui-kit/surfaces/alertdialog","3.laioutr-ui/ui-kit/05.surfaces/AlertDialog",{"title":1046,"path":1047,"stem":1048},"Sheet","/laioutr-ui/ui-kit/surfaces/sheet","3.laioutr-ui/ui-kit/05.surfaces/Sheet",{"title":1050,"path":1051,"stem":1052},"Toast","/laioutr-ui/ui-kit/surfaces/toast","3.laioutr-ui/ui-kit/05.surfaces/Toast",{"title":1054,"path":1055,"stem":1056},"Toaster","/laioutr-ui/ui-kit/surfaces/toaster","3.laioutr-ui/ui-kit/05.surfaces/Toaster",{"title":1058,"path":1059,"stem":1060,"children":1061,"page":55},"Form","/laioutr-ui/ui-kit/form","3.laioutr-ui/ui-kit/06.form",[1062,1066,1070,1074,1078,1082,1086,1090,1094,1098,1102,1106,1110,1114,1118],{"title":1063,"path":1064,"stem":1065},"Button","/laioutr-ui/ui-kit/form/button","3.laioutr-ui/ui-kit/06.form/Button",{"title":1067,"path":1068,"stem":1069},"Checkbox","/laioutr-ui/ui-kit/form/checkbox","3.laioutr-ui/ui-kit/06.form/Checkbox",{"title":1071,"path":1072,"stem":1073},"Field","/laioutr-ui/ui-kit/form/field","3.laioutr-ui/ui-kit/06.form/Field",{"title":1075,"path":1076,"stem":1077},"Input","/laioutr-ui/ui-kit/form/input","3.laioutr-ui/ui-kit/06.form/Input",{"title":1079,"path":1080,"stem":1081},"Input Checkbox","/laioutr-ui/ui-kit/form/inputcheckbox","3.laioutr-ui/ui-kit/06.form/InputCheckbox",{"title":1083,"path":1084,"stem":1085},"Password Input","/laioutr-ui/ui-kit/form/inputpassword","3.laioutr-ui/ui-kit/06.form/InputPassword",{"title":1087,"path":1088,"stem":1089},"Search Input","/laioutr-ui/ui-kit/form/inputsearch","3.laioutr-ui/ui-kit/06.form/InputSearch",{"title":1091,"path":1092,"stem":1093},"Label","/laioutr-ui/ui-kit/form/label","3.laioutr-ui/ui-kit/06.form/Label",{"title":1095,"path":1096,"stem":1097},"Load More","/laioutr-ui/ui-kit/form/loadmore","3.laioutr-ui/ui-kit/06.form/LoadMore",{"title":1099,"path":1100,"stem":1101},"Pagination","/laioutr-ui/ui-kit/form/pagination","3.laioutr-ui/ui-kit/06.form/Pagination",{"title":1103,"path":1104,"stem":1105},"Quantity Picker","/laioutr-ui/ui-kit/form/quantitypicker","3.laioutr-ui/ui-kit/06.form/QuantityPicker",{"title":1107,"path":1108,"stem":1109},"Radio Group","/laioutr-ui/ui-kit/form/radioselect","3.laioutr-ui/ui-kit/06.form/RadioSelect",{"title":1111,"path":1112,"stem":1113},"Select","/laioutr-ui/ui-kit/form/select","3.laioutr-ui/ui-kit/06.form/Select",{"title":1115,"path":1116,"stem":1117},"Switch","/laioutr-ui/ui-kit/form/switch","3.laioutr-ui/ui-kit/06.form/Switch",{"title":1119,"path":1120,"stem":1121},"Variant Select Button","/laioutr-ui/ui-kit/form/variantselectbutton","3.laioutr-ui/ui-kit/06.form/VariantSelectButton",{"title":1123,"path":1124,"stem":1125,"children":1126,"page":55},"Indicators","/laioutr-ui/ui-kit/indicators","3.laioutr-ui/ui-kit/07.indicators",[1127,1131,1135,1139,1143,1147,1151,1155],{"title":1128,"path":1129,"stem":1130},"Badge","/laioutr-ui/ui-kit/indicators/badge","3.laioutr-ui/ui-kit/07.indicators/Badge",{"title":1132,"path":1133,"stem":1134},"Caption Flag","/laioutr-ui/ui-kit/indicators/captionflag","3.laioutr-ui/ui-kit/07.indicators/CaptionFlag",{"title":1136,"path":1137,"stem":1138},"Category Node Flag","/laioutr-ui/ui-kit/indicators/categorynodeflag","3.laioutr-ui/ui-kit/07.indicators/CategoryNodeFlag",{"title":1140,"path":1141,"stem":1142},"Product Tile Flag","/laioutr-ui/ui-kit/indicators/producttileflag","3.laioutr-ui/ui-kit/07.indicators/ProductTileFlag",{"title":1144,"path":1145,"stem":1146},"Rating Summary","/laioutr-ui/ui-kit/indicators/ratingsummary","3.laioutr-ui/ui-kit/07.indicators/RatingSummary",{"title":1148,"path":1149,"stem":1150},"Rating Summary Small","/laioutr-ui/ui-kit/indicators/ratingsummarysmall","3.laioutr-ui/ui-kit/07.indicators/RatingSummarySmall",{"title":1152,"path":1153,"stem":1154},"Savings Badge","/laioutr-ui/ui-kit/indicators/savingsbadge","3.laioutr-ui/ui-kit/07.indicators/SavingsBadge",{"title":1156,"path":1157,"stem":1158},"Stars Rating","/laioutr-ui/ui-kit/indicators/starsrating","3.laioutr-ui/ui-kit/07.indicators/StarsRating",{"title":1160,"path":1161,"stem":1162,"children":1163},"Hosting","/hosting","4.hosting/0.index",[1164,1165,1171,1201],{"title":1160,"path":1161,"stem":1162},{"title":1166,"path":1167,"stem":1168,"children":1169},"Laioutr Cloud","/hosting/laioutr-cloud","4.hosting/0.laioutr-cloud/0.index",[1170],{"title":1166,"path":1167,"stem":1168},{"title":1172,"path":1173,"stem":1174,"children":1175},"Hosting Adapter","/hosting/hosting-adapter","4.hosting/1.hosting-adapter/0.index",[1176,1177,1181,1185,1189,1193,1197],{"title":1172,"path":1173,"stem":1174},{"title":1178,"path":1179,"stem":1180},"AWS Adapter","/hosting/hosting-adapter/aws-adapter","4.hosting/1.hosting-adapter/aws-adapter",{"title":1182,"path":1183,"stem":1184},"Azure Adapter","/hosting/hosting-adapter/azure-adapter","4.hosting/1.hosting-adapter/azure-adapter",{"title":1186,"path":1187,"stem":1188},"Google Adapter","/hosting/hosting-adapter/google-adapter","4.hosting/1.hosting-adapter/google-adapter",{"title":1190,"path":1191,"stem":1192},"Netlify Adapter","/hosting/hosting-adapter/netlify-adapter","4.hosting/1.hosting-adapter/netlify-adapter",{"title":1194,"path":1195,"stem":1196},"Scale Commerce Adapter","/hosting/hosting-adapter/scale-commerce-adapter","4.hosting/1.hosting-adapter/scale-commerce-adapter",{"title":1198,"path":1199,"stem":1200},"Vercel Adapter","/hosting/hosting-adapter/vercel-adapter","4.hosting/1.hosting-adapter/vercel-adapter",{"title":1202,"path":1203,"stem":1204,"children":1205},"Bring Your Own Server (BYOS)","/hosting/bring-your-own-server-byos","4.hosting/2.bring-your-own-server-byos/0.index",[1206,1207,1211,1215,1219,1223,1227],{"title":1202,"path":1203,"stem":1204},{"title":1208,"path":1209,"stem":1210},"BYOS Agent","/hosting/bring-your-own-server-byos/byos-agent","4.hosting/2.bring-your-own-server-byos/byos-agent",{"title":1212,"path":1213,"stem":1214},"Changelog","/hosting/bring-your-own-server-byos/changelog","4.hosting/2.bring-your-own-server-byos/changelog",{"title":1216,"path":1217,"stem":1218},"DevOps Components","/hosting/bring-your-own-server-byos/devops","4.hosting/2.bring-your-own-server-byos/devops",{"title":1220,"path":1221,"stem":1222},"Infrastructure Requirements","/hosting/bring-your-own-server-byos/infrastructure","4.hosting/2.bring-your-own-server-byos/infrastructure",{"title":1224,"path":1225,"stem":1226},"Software Requirements","/hosting/bring-your-own-server-byos/software","4.hosting/2.bring-your-own-server-byos/software",{"title":1228,"path":1229,"stem":1230},"Webhook Configuration","/hosting/bring-your-own-server-byos/webhook-config","4.hosting/2.bring-your-own-server-byos/webhook-config",{"title":1232,"path":1233,"stem":1234,"children":1235},"Checkout","/checkout","5.Checkout/0.index",[1236],{"title":1232,"path":1233,"stem":1234},{"title":1238,"path":1239,"stem":1240,"children":1241},"Larry AI","/larry-ai","6.Larry-AI/0.index",[1242],{"title":1238,"path":1239,"stem":1240},{"title":611,"path":1244,"stem":1245,"children":1246},"/figma-kit","7.Figma Kit/0.index",[1247,1248,1264],{"title":611,"path":1244,"stem":1245},{"title":121,"path":1249,"stem":1250,"children":1251,"page":55},"/figma-kit/introduction","7.Figma Kit/1.Introduction",[1252,1256,1260],{"title":1253,"path":1254,"stem":1255},"How to Start","/figma-kit/introduction/howtostart","7.Figma Kit/1.Introduction/0.howtostart",{"title":1257,"path":1258,"stem":1259},"Figma Variables","/figma-kit/introduction/figma-variables","7.Figma Kit/1.Introduction/figma-variables",{"title":1261,"path":1262,"stem":1263},"Library Connections","/figma-kit/introduction/library-connections","7.Figma Kit/1.Introduction/library-connections",{"title":1265,"path":1266,"stem":1267,"children":1268,"page":55},"Kits","/figma-kit/kits","7.Figma Kit/Kits",[1269,1272,1275,1278,1282,1285,1289,1293,1296,1299],{"title":622,"path":1270,"stem":1271},"/figma-kit/kits/b2b","7.Figma Kit/Kits/b2b",{"title":628,"path":1273,"stem":1274},"/figma-kit/kits/booking","7.Figma Kit/Kits/booking",{"title":634,"path":1276,"stem":1277},"/figma-kit/kits/cms","7.Figma Kit/Kits/cms",{"title":1279,"path":1280,"stem":1281},"Inpage Navigation","/figma-kit/kits/inpage-navigation","7.Figma Kit/Kits/inpage-navigation",{"title":740,"path":1283,"stem":1284},"/figma-kit/kits/marketplace","7.Figma Kit/Kits/marketplace",{"title":1286,"path":1287,"stem":1288},"Retail & Multichannel","/figma-kit/kits/multichannel","7.Figma Kit/Kits/multichannel",{"title":1290,"path":1291,"stem":1292},"Navigation","/figma-kit/kits/navigation","7.Figma Kit/Kits/navigation",{"title":806,"path":1294,"stem":1295},"/figma-kit/kits/saas","7.Figma Kit/Kits/saas",{"title":828,"path":1297,"stem":1298},"/figma-kit/kits/shop","7.Figma Kit/Kits/shop",{"title":881,"path":1300,"stem":1301},"/figma-kit/kits/ui-kit","7.Figma Kit/Kits/ui-kit",{"title":1303,"path":1304,"stem":1305,"children":1306},"Cockpit","/cockpit","8.Cockpit/0.index",[1307,1308,1338,1355,1372],{"title":1303,"path":1304,"stem":1305},{"title":150,"path":1309,"stem":1310,"children":1311,"page":55},"/cockpit/features","8.Cockpit/1.Features",[1312,1315,1319,1323,1327,1330,1334],{"title":443,"path":1313,"stem":1314},"/cockpit/features/apps","8.Cockpit/1.Features/apps",{"title":1316,"path":1317,"stem":1318},"Content (Collections)","/cockpit/features/content-collections","8.Cockpit/1.Features/content-collections",{"title":1320,"path":1321,"stem":1322},"Deployments","/cockpit/features/deployments","8.Cockpit/1.Features/deployments",{"title":1324,"path":1325,"stem":1326},"Markets","/cockpit/features/markets","8.Cockpit/1.Features/markets",{"title":192,"path":1328,"stem":1329},"/cockpit/features/redirects","8.Cockpit/1.Features/redirects",{"title":1331,"path":1332,"stem":1333},"Studio","/cockpit/features/studio","8.Cockpit/1.Features/studio",{"title":1335,"path":1336,"stem":1337},"Translations","/cockpit/features/translations","8.Cockpit/1.Features/translations",{"title":1339,"path":1340,"stem":1341,"children":1342,"page":55},"Project Settings","/cockpit/project-settings","8.Cockpit/2.Project-Settings",[1343,1347,1351],{"title":1344,"path":1345,"stem":1346},"Delete a project","/cockpit/project-settings/delete-project","8.Cockpit/2.Project-Settings/delete-project",{"title":1348,"path":1349,"stem":1350},"NPM","/cockpit/project-settings/npm","8.Cockpit/2.Project-Settings/npm",{"title":1352,"path":1353,"stem":1354},"Project secret key","/cockpit/project-settings/project-secret-key","8.Cockpit/2.Project-Settings/project-secret-key",{"title":1356,"path":1357,"stem":1358,"children":1359,"page":55},"Account Settings","/cockpit/account-settings","8.Cockpit/3.Account-Settings",[1360,1364,1368],{"title":1361,"path":1362,"stem":1363},"Notifications","/cockpit/account-settings/notifications","8.Cockpit/3.Account-Settings/notifications",{"title":1365,"path":1366,"stem":1367},"Preferences","/cockpit/account-settings/preferences","8.Cockpit/3.Account-Settings/preferences",{"title":1369,"path":1370,"stem":1371},"Security","/cockpit/account-settings/security","8.Cockpit/3.Account-Settings/security",{"title":1373,"path":1374,"stem":1375,"children":1376,"page":55},"Organisation Settings","/cockpit/organisation-settings","8.Cockpit/4.Organisation-Settings",[1377,1381,1385,1389,1393,1397],{"title":1378,"path":1379,"stem":1380},"API keys","/cockpit/organisation-settings/api-keys","8.Cockpit/4.Organisation-Settings/api-keys",{"title":1382,"path":1383,"stem":1384},"Billing","/cockpit/organisation-settings/billing","8.Cockpit/4.Organisation-Settings/billing",{"title":1386,"path":1387,"stem":1388},"General settings","/cockpit/organisation-settings/general-settings","8.Cockpit/4.Organisation-Settings/general-settings",{"title":1390,"path":1391,"stem":1392},"Members","/cockpit/organisation-settings/members","8.Cockpit/4.Organisation-Settings/members",{"title":1394,"path":1395,"stem":1396},"Projects","/cockpit/organisation-settings/projects","8.Cockpit/4.Organisation-Settings/projects",{"title":1398,"path":1399,"stem":1400},"Roles","/cockpit/organisation-settings/roles","8.Cockpit/4.Organisation-Settings/roles",{"title":1402,"path":1403,"stem":1404,"children":1405},"Offering","/offering","9.Offering/0.index",[1406,1407,1439,1452,1465],{"title":1402,"path":1403,"stem":1404},{"title":1408,"path":1409,"stem":1410,"children":1411},"Products","/offering/products","9.Offering/1.Products/0.index",[1412,1413,1418,1423,1428,1434],{"title":1408,"path":1409,"stem":1410},{"title":133,"path":1414,"stem":1415,"children":1416},"/offering/products/frontend","9.Offering/1.Products/1.Frontend/0.index",[1417],{"title":133,"path":1414,"stem":1415},{"title":1303,"path":1419,"stem":1420,"children":1421},"/offering/products/cockpit","9.Offering/1.Products/2.Cockpit/0.index",[1422],{"title":1303,"path":1419,"stem":1420},{"title":1232,"path":1424,"stem":1425,"children":1426},"/offering/products/checkout","9.Offering/1.Products/3.Checkout/0.index",[1427],{"title":1232,"path":1424,"stem":1425},{"title":1429,"path":1430,"stem":1431,"children":1432},"Cloud","/offering/products/cloud","9.Offering/1.Products/4.cloud/0.index",[1433],{"title":1429,"path":1430,"stem":1431},{"title":1238,"path":1435,"stem":1436,"children":1437},"/offering/products/larry-ai","9.Offering/1.Products/5.larry-ai/0.index",[1438],{"title":1238,"path":1435,"stem":1436},{"title":1440,"path":1441,"stem":1442,"children":1443,"page":55},"Service Level Agreement","/offering/service-level-agreement","9.Offering/2.service-level-agreement",[1444,1448],{"title":1445,"path":1446,"stem":1447},"Standard Service Level Agreement Composable Frontend","/offering/service-level-agreement/standard-service-level-agreement","9.Offering/2.service-level-agreement/1.standard-service-level-agreement",{"title":1449,"path":1450,"stem":1451},"Backups","/offering/service-level-agreement/backups","9.Offering/2.service-level-agreement/backups",{"title":1453,"path":1454,"stem":1455,"children":1456,"page":55},"Customer Support","/offering/customer-support","9.Offering/3.customer-support",[1457,1461],{"title":1458,"path":1459,"stem":1460},"Standard Customer Support","/offering/customer-support/standard-customer-support","9.Offering/3.customer-support/1.standard-customer-support",{"title":1462,"path":1463,"stem":1464},"Customer Support Severity Levels of Laioutr products","/offering/customer-support/maximum-serverity-levels","9.Offering/3.customer-support/maximum-serverity-levels",{"title":1466,"path":1467,"stem":1468,"children":1469,"page":55},"Compliance","/offering/compliance","9.Offering/4.Compliance",[1470],{"title":1471,"path":1472,"stem":1473},"Fair usage policy","/offering/compliance/fair-usage-policy","9.Offering/4.Compliance/fair-usage-policy",{"id":1475,"title":254,"body":1476,"description":3017,"extension":3018,"meta":3019,"navigation":1748,"path":255,"seo":3020,"sitemap":3023,"stem":256,"__hash__":3027},"docs/1.Frontend/4.Orchestr/99.recipes/identity-cookies.md",{"type":1477,"value":1478,"toc":3010},"minimark",[1479,1488,1495,1636,1641,1663,1968,1978,1982,1988,2170,2527,2542,2546,2549,2855,2862,2952,2973,2977,2983,2987,3006],[1480,1481,1482,1483,1487],"p",{},"A customer hits \"Add to cart\" for the first time. Your action handler needs a cart ID to call the backend's ",[1484,1485,1486],"code",{},"addLineItem"," mutation, but the cookie is empty because this customer has never had a cart. Or your tracking integration needs a stable visitor ID across requests so it can attribute pageviews to one session, and that ID has to live somewhere durable but anonymous.",[1480,1489,1490,1491,1494],{},"Both problems share the same shape: read a cookie; if missing, create the underlying record; set the cookie; return the ID. The decision worth thinking about is where to run this logic: in ",[1484,1492,1493],{},"extendRequest"," (every request gets the ID) or inside the action handler (only mutations create one).",[1496,1497,1502],"pre",{"className":1498,"code":1499,"language":1500,"meta":1501,"style":1501},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// Pattern (placement varies)\nlet id = getCookie(event, ID_COOKIE);\nif (!id) {\n  id = await createIdentityRecord();\n  setCookie(event, ID_COOKIE, id, secureCookieOptions);\n}\nreturn { id };\n","ts","",[1484,1503,1504,1513,1544,1563,1584,1616,1622],{"__ignoreMap":1501},[1505,1506,1509],"span",{"class":1507,"line":1508},"line",1,[1505,1510,1512],{"class":1511},"sHwdD","// Pattern (placement varies)\n",[1505,1514,1516,1520,1524,1528,1532,1535,1538,1541],{"class":1507,"line":1515},2,[1505,1517,1519],{"class":1518},"spNyl","let",[1505,1521,1523],{"class":1522},"sTEyZ"," id ",[1505,1525,1527],{"class":1526},"sMK4o","=",[1505,1529,1531],{"class":1530},"s2Zo4"," getCookie",[1505,1533,1534],{"class":1522},"(event",[1505,1536,1537],{"class":1526},",",[1505,1539,1540],{"class":1522}," ID_COOKIE)",[1505,1542,1543],{"class":1526},";\n",[1505,1545,1547,1551,1554,1557,1560],{"class":1507,"line":1546},3,[1505,1548,1550],{"class":1549},"s7zQu","if",[1505,1552,1553],{"class":1522}," (",[1505,1555,1556],{"class":1526},"!",[1505,1558,1559],{"class":1522},"id) ",[1505,1561,1562],{"class":1526},"{\n",[1505,1564,1566,1569,1572,1575,1578,1582],{"class":1507,"line":1565},4,[1505,1567,1568],{"class":1522},"  id",[1505,1570,1571],{"class":1526}," =",[1505,1573,1574],{"class":1549}," await",[1505,1576,1577],{"class":1530}," createIdentityRecord",[1505,1579,1581],{"class":1580},"swJcz","()",[1505,1583,1543],{"class":1526},[1505,1585,1587,1590,1593,1596,1598,1601,1603,1606,1608,1611,1614],{"class":1507,"line":1586},5,[1505,1588,1589],{"class":1530},"  setCookie",[1505,1591,1592],{"class":1580},"(",[1505,1594,1595],{"class":1522},"event",[1505,1597,1537],{"class":1526},[1505,1599,1600],{"class":1522}," ID_COOKIE",[1505,1602,1537],{"class":1526},[1505,1604,1605],{"class":1522}," id",[1505,1607,1537],{"class":1526},[1505,1609,1610],{"class":1522}," secureCookieOptions",[1505,1612,1613],{"class":1580},")",[1505,1615,1543],{"class":1526},[1505,1617,1619],{"class":1507,"line":1618},6,[1505,1620,1621],{"class":1526},"}\n",[1505,1623,1625,1628,1631,1633],{"class":1507,"line":1624},7,[1505,1626,1627],{"class":1549},"return",[1505,1629,1630],{"class":1526}," {",[1505,1632,1523],{"class":1522},[1505,1634,1635],{"class":1526},"};\n",[1637,1638,1640],"h2",{"id":1639},"wrap-setcookie-once-not-per-call-site","Wrap setCookie once, not per call site",[1480,1642,1643,1644,1647,1648,1647,1651,1654,1655,1658,1659,1662],{},"Every identity cookie you set should be ",[1484,1645,1646],{},"httpOnly",", ",[1484,1649,1650],{},"secure",[1484,1652,1653],{},"sameSite: 'strict'",", and have an explicit ",[1484,1656,1657],{},"path",". Missing one leaks an attack vector. Wrap ",[1484,1660,1661],{},"setCookie"," once with the defaults locked in:",[1496,1664,1667],{"className":1498,"code":1665,"filename":1666,"language":1500,"meta":1501,"style":1501},"import { CookieOptions } from 'nuxt/app';\nimport { setCookie } from '#imports';\nimport type { H3Event } from 'h3';\n\nconst defaults = {\n  httpOnly: true,\n  secure: true,\n  sameSite: 'strict',\n  path: '/',\n} as const;\n\nexport const cookieHelper = {\n  setCookie: (event: H3Event, name: string, value: string, options: CookieOptions = {}) => {\n    setCookie(event, name, value, { ...defaults, ...options } as CookieOptions);\n  },\n};\n","server/myapp-helper/cookie-helper.ts",[1484,1668,1669,1697,1719,1744,1750,1763,1778,1789,1806,1823,1837,1842,1857,1912,1957,1963],{"__ignoreMap":1501},[1505,1670,1671,1674,1676,1679,1682,1685,1688,1692,1695],{"class":1507,"line":1508},[1505,1672,1673],{"class":1549},"import",[1505,1675,1630],{"class":1526},[1505,1677,1678],{"class":1522}," CookieOptions",[1505,1680,1681],{"class":1526}," }",[1505,1683,1684],{"class":1549}," from",[1505,1686,1687],{"class":1526}," '",[1505,1689,1691],{"class":1690},"sfazB","nuxt/app",[1505,1693,1694],{"class":1526},"'",[1505,1696,1543],{"class":1526},[1505,1698,1699,1701,1703,1706,1708,1710,1712,1715,1717],{"class":1507,"line":1515},[1505,1700,1673],{"class":1549},[1505,1702,1630],{"class":1526},[1505,1704,1705],{"class":1522}," setCookie",[1505,1707,1681],{"class":1526},[1505,1709,1684],{"class":1549},[1505,1711,1687],{"class":1526},[1505,1713,1714],{"class":1690},"#imports",[1505,1716,1694],{"class":1526},[1505,1718,1543],{"class":1526},[1505,1720,1721,1723,1726,1728,1731,1733,1735,1737,1740,1742],{"class":1507,"line":1546},[1505,1722,1673],{"class":1549},[1505,1724,1725],{"class":1549}," type",[1505,1727,1630],{"class":1526},[1505,1729,1730],{"class":1522}," H3Event",[1505,1732,1681],{"class":1526},[1505,1734,1684],{"class":1549},[1505,1736,1687],{"class":1526},[1505,1738,1739],{"class":1690},"h3",[1505,1741,1694],{"class":1526},[1505,1743,1543],{"class":1526},[1505,1745,1746],{"class":1507,"line":1565},[1505,1747,1749],{"emptyLinePlaceholder":1748},true,"\n",[1505,1751,1752,1755,1758,1760],{"class":1507,"line":1586},[1505,1753,1754],{"class":1518},"const",[1505,1756,1757],{"class":1522}," defaults ",[1505,1759,1527],{"class":1526},[1505,1761,1762],{"class":1526}," {\n",[1505,1764,1765,1768,1771,1775],{"class":1507,"line":1618},[1505,1766,1767],{"class":1580},"  httpOnly",[1505,1769,1770],{"class":1526},":",[1505,1772,1774],{"class":1773},"sfNiH"," true",[1505,1776,1777],{"class":1526},",\n",[1505,1779,1780,1783,1785,1787],{"class":1507,"line":1624},[1505,1781,1782],{"class":1580},"  secure",[1505,1784,1770],{"class":1526},[1505,1786,1774],{"class":1773},[1505,1788,1777],{"class":1526},[1505,1790,1792,1795,1797,1799,1802,1804],{"class":1507,"line":1791},8,[1505,1793,1794],{"class":1580},"  sameSite",[1505,1796,1770],{"class":1526},[1505,1798,1687],{"class":1526},[1505,1800,1801],{"class":1690},"strict",[1505,1803,1694],{"class":1526},[1505,1805,1777],{"class":1526},[1505,1807,1809,1812,1814,1816,1819,1821],{"class":1507,"line":1808},9,[1505,1810,1811],{"class":1580},"  path",[1505,1813,1770],{"class":1526},[1505,1815,1687],{"class":1526},[1505,1817,1818],{"class":1690},"/",[1505,1820,1694],{"class":1526},[1505,1822,1777],{"class":1526},[1505,1824,1826,1829,1832,1835],{"class":1507,"line":1825},10,[1505,1827,1828],{"class":1526},"}",[1505,1830,1831],{"class":1549}," as",[1505,1833,1834],{"class":1518}," const",[1505,1836,1543],{"class":1526},[1505,1838,1840],{"class":1507,"line":1839},11,[1505,1841,1749],{"emptyLinePlaceholder":1748},[1505,1843,1845,1848,1850,1853,1855],{"class":1507,"line":1844},12,[1505,1846,1847],{"class":1549},"export",[1505,1849,1834],{"class":1518},[1505,1851,1852],{"class":1522}," cookieHelper ",[1505,1854,1527],{"class":1526},[1505,1856,1762],{"class":1526},[1505,1858,1860,1862,1864,1866,1869,1871,1874,1876,1879,1881,1884,1886,1889,1891,1893,1895,1898,1900,1902,1904,1907,1910],{"class":1507,"line":1859},13,[1505,1861,1589],{"class":1530},[1505,1863,1770],{"class":1526},[1505,1865,1553],{"class":1526},[1505,1867,1595],{"class":1868},"sHdIc",[1505,1870,1770],{"class":1526},[1505,1872,1730],{"class":1873},"sBMFI",[1505,1875,1537],{"class":1526},[1505,1877,1878],{"class":1868}," name",[1505,1880,1770],{"class":1526},[1505,1882,1883],{"class":1873}," string",[1505,1885,1537],{"class":1526},[1505,1887,1888],{"class":1868}," value",[1505,1890,1770],{"class":1526},[1505,1892,1883],{"class":1873},[1505,1894,1537],{"class":1526},[1505,1896,1897],{"class":1868}," options",[1505,1899,1770],{"class":1526},[1505,1901,1678],{"class":1873},[1505,1903,1571],{"class":1526},[1505,1905,1906],{"class":1526}," {})",[1505,1908,1909],{"class":1518}," =>",[1505,1911,1762],{"class":1526},[1505,1913,1915,1918,1920,1922,1924,1926,1928,1930,1932,1934,1937,1940,1942,1944,1947,1949,1951,1953,1955],{"class":1507,"line":1914},14,[1505,1916,1917],{"class":1530},"    setCookie",[1505,1919,1592],{"class":1580},[1505,1921,1595],{"class":1522},[1505,1923,1537],{"class":1526},[1505,1925,1878],{"class":1522},[1505,1927,1537],{"class":1526},[1505,1929,1888],{"class":1522},[1505,1931,1537],{"class":1526},[1505,1933,1630],{"class":1526},[1505,1935,1936],{"class":1526}," ...",[1505,1938,1939],{"class":1522},"defaults",[1505,1941,1537],{"class":1526},[1505,1943,1936],{"class":1526},[1505,1945,1946],{"class":1522},"options",[1505,1948,1681],{"class":1526},[1505,1950,1831],{"class":1549},[1505,1952,1678],{"class":1873},[1505,1954,1613],{"class":1580},[1505,1956,1543],{"class":1526},[1505,1958,1960],{"class":1507,"line":1959},15,[1505,1961,1962],{"class":1526},"  },\n",[1505,1964,1966],{"class":1507,"line":1965},16,[1505,1967,1635],{"class":1526},[1480,1969,1970,1971,1973,1974,1977],{},"Each app keeps its own copy with whatever defaults match its security posture. The Nimstrata app, for example, drops ",[1484,1972,1650],{}," to ",[1484,1975,1976],{},"process.env.NODE_ENV === 'production'"," because its dev server runs over HTTP; everything else stays the same.",[1637,1979,1981],{"id":1980},"when-to-bootstrap-in-extendrequest","When to bootstrap in extendRequest",[1480,1983,1984,1985,1987],{},"Use ",[1484,1986,1493],{}," when the ID is needed by every read, not just mutations. Tracking visitor IDs are the canonical case: they're attached to analytics events sent from queries and links, so they must exist before any handler runs.",[1496,1989,1992],{"className":1498,"code":1990,"filename":1991,"language":1500,"meta":1501,"style":1501},"import { defineOrchestr } from '#imports';\nimport { ensureVisitorId } from '../utils/nimstrata';\n\nexport const defineNimstrata = defineOrchestr\n  .meta({ app: '@laioutr-app/nimstrata', label: 'Nimstrata' })\n  .extendRequest(({ event }) => {\n    const visitorId = ensureVisitorId(event);\n    return { context: { visitorId } };\n  });\n","server/middleware/defineNimstrata.ts",[1484,1993,1994,2015,2037,2041,2055,2099,2120,2140,2161],{"__ignoreMap":1501},[1505,1995,1996,1998,2000,2003,2005,2007,2009,2011,2013],{"class":1507,"line":1508},[1505,1997,1673],{"class":1549},[1505,1999,1630],{"class":1526},[1505,2001,2002],{"class":1522}," defineOrchestr",[1505,2004,1681],{"class":1526},[1505,2006,1684],{"class":1549},[1505,2008,1687],{"class":1526},[1505,2010,1714],{"class":1690},[1505,2012,1694],{"class":1526},[1505,2014,1543],{"class":1526},[1505,2016,2017,2019,2021,2024,2026,2028,2030,2033,2035],{"class":1507,"line":1515},[1505,2018,1673],{"class":1549},[1505,2020,1630],{"class":1526},[1505,2022,2023],{"class":1522}," ensureVisitorId",[1505,2025,1681],{"class":1526},[1505,2027,1684],{"class":1549},[1505,2029,1687],{"class":1526},[1505,2031,2032],{"class":1690},"../utils/nimstrata",[1505,2034,1694],{"class":1526},[1505,2036,1543],{"class":1526},[1505,2038,2039],{"class":1507,"line":1546},[1505,2040,1749],{"emptyLinePlaceholder":1748},[1505,2042,2043,2045,2047,2050,2052],{"class":1507,"line":1565},[1505,2044,1847],{"class":1549},[1505,2046,1834],{"class":1518},[1505,2048,2049],{"class":1522}," defineNimstrata ",[1505,2051,1527],{"class":1526},[1505,2053,2054],{"class":1522}," defineOrchestr\n",[1505,2056,2057,2060,2063,2065,2068,2071,2073,2075,2078,2080,2082,2085,2087,2089,2092,2094,2096],{"class":1507,"line":1586},[1505,2058,2059],{"class":1526},"  .",[1505,2061,2062],{"class":1530},"meta",[1505,2064,1592],{"class":1522},[1505,2066,2067],{"class":1526},"{",[1505,2069,2070],{"class":1580}," app",[1505,2072,1770],{"class":1526},[1505,2074,1687],{"class":1526},[1505,2076,2077],{"class":1690},"@laioutr-app/nimstrata",[1505,2079,1694],{"class":1526},[1505,2081,1537],{"class":1526},[1505,2083,2084],{"class":1580}," label",[1505,2086,1770],{"class":1526},[1505,2088,1687],{"class":1526},[1505,2090,2091],{"class":1690},"Nimstrata",[1505,2093,1694],{"class":1526},[1505,2095,1681],{"class":1526},[1505,2097,2098],{"class":1522},")\n",[1505,2100,2101,2103,2105,2107,2110,2113,2116,2118],{"class":1507,"line":1618},[1505,2102,2059],{"class":1526},[1505,2104,1493],{"class":1530},[1505,2106,1592],{"class":1522},[1505,2108,2109],{"class":1526},"({",[1505,2111,2112],{"class":1868}," event",[1505,2114,2115],{"class":1526}," })",[1505,2117,1909],{"class":1518},[1505,2119,1762],{"class":1526},[1505,2121,2122,2125,2128,2130,2132,2134,2136,2138],{"class":1507,"line":1624},[1505,2123,2124],{"class":1518},"    const",[1505,2126,2127],{"class":1522}," visitorId",[1505,2129,1571],{"class":1526},[1505,2131,2023],{"class":1530},[1505,2133,1592],{"class":1580},[1505,2135,1595],{"class":1522},[1505,2137,1613],{"class":1580},[1505,2139,1543],{"class":1526},[1505,2141,2142,2145,2147,2150,2152,2154,2156,2158],{"class":1507,"line":1791},[1505,2143,2144],{"class":1549},"    return",[1505,2146,1630],{"class":1526},[1505,2148,2149],{"class":1580}," context",[1505,2151,1770],{"class":1526},[1505,2153,1630],{"class":1526},[1505,2155,2127],{"class":1522},[1505,2157,1681],{"class":1526},[1505,2159,2160],{"class":1526}," };\n",[1505,2162,2163,2166,2168],{"class":1507,"line":1808},[1505,2164,2165],{"class":1526},"  }",[1505,2167,1613],{"class":1522},[1505,2169,1543],{"class":1526},[1496,2171,2174],{"className":1498,"code":2172,"filename":2173,"language":1500,"meta":1501,"style":1501},"import { getCookie, setCookie } from '#imports';\nimport type { H3Event } from 'h3';\nimport { VISITOR_ID_COOKIE } from '../const/cookies';\nimport UUIDV4 from './uuid';\n\nexport const ensureVisitorId = (event: H3Event): string => {\n  let visitorId = getCookie(event, VISITOR_ID_COOKIE);\n\n  if (!UUIDV4.validate(visitorId)) {\n    visitorId = UUIDV4.random();\n    setCookie(event, VISITOR_ID_COOKIE, visitorId, {\n      httpOnly: true,\n      secure: process.env.NODE_ENV === 'production',\n      sameSite: 'lax',\n      path: '/',\n      maxAge: 60 * 60 * 24 * 365,\n    });\n  }\n\n  return visitorId;\n};\n","server/utils/nimstrata.ts",[1484,2175,2176,2200,2222,2244,2263,2267,2295,2318,2322,2350,2369,2389,2400,2432,2448,2463,2491,2501,2507,2512,2522],{"__ignoreMap":1501},[1505,2177,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198],{"class":1507,"line":1508},[1505,2179,1673],{"class":1549},[1505,2181,1630],{"class":1526},[1505,2183,1531],{"class":1522},[1505,2185,1537],{"class":1526},[1505,2187,1705],{"class":1522},[1505,2189,1681],{"class":1526},[1505,2191,1684],{"class":1549},[1505,2193,1687],{"class":1526},[1505,2195,1714],{"class":1690},[1505,2197,1694],{"class":1526},[1505,2199,1543],{"class":1526},[1505,2201,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220],{"class":1507,"line":1515},[1505,2203,1673],{"class":1549},[1505,2205,1725],{"class":1549},[1505,2207,1630],{"class":1526},[1505,2209,1730],{"class":1522},[1505,2211,1681],{"class":1526},[1505,2213,1684],{"class":1549},[1505,2215,1687],{"class":1526},[1505,2217,1739],{"class":1690},[1505,2219,1694],{"class":1526},[1505,2221,1543],{"class":1526},[1505,2223,2224,2226,2228,2231,2233,2235,2237,2240,2242],{"class":1507,"line":1546},[1505,2225,1673],{"class":1549},[1505,2227,1630],{"class":1526},[1505,2229,2230],{"class":1522}," VISITOR_ID_COOKIE",[1505,2232,1681],{"class":1526},[1505,2234,1684],{"class":1549},[1505,2236,1687],{"class":1526},[1505,2238,2239],{"class":1690},"../const/cookies",[1505,2241,1694],{"class":1526},[1505,2243,1543],{"class":1526},[1505,2245,2246,2248,2251,2254,2256,2259,2261],{"class":1507,"line":1565},[1505,2247,1673],{"class":1549},[1505,2249,2250],{"class":1522}," UUIDV4 ",[1505,2252,2253],{"class":1549},"from",[1505,2255,1687],{"class":1526},[1505,2257,2258],{"class":1690},"./uuid",[1505,2260,1694],{"class":1526},[1505,2262,1543],{"class":1526},[1505,2264,2265],{"class":1507,"line":1586},[1505,2266,1749],{"emptyLinePlaceholder":1748},[1505,2268,2269,2271,2273,2276,2278,2280,2282,2284,2286,2289,2291,2293],{"class":1507,"line":1618},[1505,2270,1847],{"class":1549},[1505,2272,1834],{"class":1518},[1505,2274,2275],{"class":1522}," ensureVisitorId ",[1505,2277,1527],{"class":1526},[1505,2279,1553],{"class":1526},[1505,2281,1595],{"class":1868},[1505,2283,1770],{"class":1526},[1505,2285,1730],{"class":1873},[1505,2287,2288],{"class":1526},"):",[1505,2290,1883],{"class":1873},[1505,2292,1909],{"class":1518},[1505,2294,1762],{"class":1526},[1505,2296,2297,2300,2302,2304,2306,2308,2310,2312,2314,2316],{"class":1507,"line":1624},[1505,2298,2299],{"class":1518},"  let",[1505,2301,2127],{"class":1522},[1505,2303,1571],{"class":1526},[1505,2305,1531],{"class":1530},[1505,2307,1592],{"class":1580},[1505,2309,1595],{"class":1522},[1505,2311,1537],{"class":1526},[1505,2313,2230],{"class":1522},[1505,2315,1613],{"class":1580},[1505,2317,1543],{"class":1526},[1505,2319,2320],{"class":1507,"line":1791},[1505,2321,1749],{"emptyLinePlaceholder":1748},[1505,2323,2324,2327,2329,2331,2334,2337,2340,2342,2345,2348],{"class":1507,"line":1808},[1505,2325,2326],{"class":1549},"  if",[1505,2328,1553],{"class":1580},[1505,2330,1556],{"class":1526},[1505,2332,2333],{"class":1522},"UUIDV4",[1505,2335,2336],{"class":1526},".",[1505,2338,2339],{"class":1530},"validate",[1505,2341,1592],{"class":1580},[1505,2343,2344],{"class":1522},"visitorId",[1505,2346,2347],{"class":1580},")) ",[1505,2349,1562],{"class":1526},[1505,2351,2352,2355,2357,2360,2362,2365,2367],{"class":1507,"line":1825},[1505,2353,2354],{"class":1522},"    visitorId",[1505,2356,1571],{"class":1526},[1505,2358,2359],{"class":1522}," UUIDV4",[1505,2361,2336],{"class":1526},[1505,2363,2364],{"class":1530},"random",[1505,2366,1581],{"class":1580},[1505,2368,1543],{"class":1526},[1505,2370,2371,2373,2375,2377,2379,2381,2383,2385,2387],{"class":1507,"line":1839},[1505,2372,1917],{"class":1530},[1505,2374,1592],{"class":1580},[1505,2376,1595],{"class":1522},[1505,2378,1537],{"class":1526},[1505,2380,2230],{"class":1522},[1505,2382,1537],{"class":1526},[1505,2384,2127],{"class":1522},[1505,2386,1537],{"class":1526},[1505,2388,1762],{"class":1526},[1505,2390,2391,2394,2396,2398],{"class":1507,"line":1844},[1505,2392,2393],{"class":1580},"      httpOnly",[1505,2395,1770],{"class":1526},[1505,2397,1774],{"class":1773},[1505,2399,1777],{"class":1526},[1505,2401,2402,2405,2407,2410,2412,2415,2417,2420,2423,2425,2428,2430],{"class":1507,"line":1859},[1505,2403,2404],{"class":1580},"      secure",[1505,2406,1770],{"class":1526},[1505,2408,2409],{"class":1522}," process",[1505,2411,2336],{"class":1526},[1505,2413,2414],{"class":1522},"env",[1505,2416,2336],{"class":1526},[1505,2418,2419],{"class":1522},"NODE_ENV",[1505,2421,2422],{"class":1526}," ===",[1505,2424,1687],{"class":1526},[1505,2426,2427],{"class":1690},"production",[1505,2429,1694],{"class":1526},[1505,2431,1777],{"class":1526},[1505,2433,2434,2437,2439,2441,2444,2446],{"class":1507,"line":1914},[1505,2435,2436],{"class":1580},"      sameSite",[1505,2438,1770],{"class":1526},[1505,2440,1687],{"class":1526},[1505,2442,2443],{"class":1690},"lax",[1505,2445,1694],{"class":1526},[1505,2447,1777],{"class":1526},[1505,2449,2450,2453,2455,2457,2459,2461],{"class":1507,"line":1959},[1505,2451,2452],{"class":1580},"      path",[1505,2454,1770],{"class":1526},[1505,2456,1687],{"class":1526},[1505,2458,1818],{"class":1690},[1505,2460,1694],{"class":1526},[1505,2462,1777],{"class":1526},[1505,2464,2465,2468,2470,2474,2477,2479,2481,2484,2486,2489],{"class":1507,"line":1965},[1505,2466,2467],{"class":1580},"      maxAge",[1505,2469,1770],{"class":1526},[1505,2471,2473],{"class":2472},"sbssI"," 60",[1505,2475,2476],{"class":1526}," *",[1505,2478,2473],{"class":2472},[1505,2480,2476],{"class":1526},[1505,2482,2483],{"class":2472}," 24",[1505,2485,2476],{"class":1526},[1505,2487,2488],{"class":2472}," 365",[1505,2490,1777],{"class":1526},[1505,2492,2494,2497,2499],{"class":1507,"line":2493},17,[1505,2495,2496],{"class":1526},"    }",[1505,2498,1613],{"class":1580},[1505,2500,1543],{"class":1526},[1505,2502,2504],{"class":1507,"line":2503},18,[1505,2505,2506],{"class":1526},"  }\n",[1505,2508,2510],{"class":1507,"line":2509},19,[1505,2511,1749],{"emptyLinePlaceholder":1748},[1505,2513,2515,2518,2520],{"class":1507,"line":2514},20,[1505,2516,2517],{"class":1549},"  return",[1505,2519,2127],{"class":1522},[1505,2521,1543],{"class":1526},[1505,2523,2525],{"class":1507,"line":2524},21,[1505,2526,1635],{"class":1526},[1480,2528,2529,2530,2532,2533,2538,2539,2336],{},"This works because ",[1484,2531,1493],{}," is one of the two slots where you can still mutate response headers (see the ",[2534,2535,2537],"a",{"href":2536},"/frontend/orchestr/middleware#setting-cookies-and-response-headers","response-streaming constraint","). Every handler that runs afterwards reads ",[1484,2540,2541],{},"context.visitorId",[1637,2543,2545],{"id":2544},"when-to-bootstrap-in-the-action-handler","When to bootstrap in the action handler",[1480,2547,2548],{},"Use the action-handler placement when the ID is only meaningful for mutations. Cart IDs are the canonical case: read-only handlers (browsing products, viewing categories) shouldn't create a cart for a customer who just landed on the homepage. That cart will never be touched again and pollutes your backend's cart table forever.",[1496,2550,2553],{"className":1498,"code":2551,"filename":2552,"language":1500,"meta":1501,"style":1501},"import type { H3Event } from 'h3';\nimport { getCookie } from '#imports';\nimport { cookieHelper } from '../../../myapp-helper/cookie-helper';\nimport { CART_ID_COOKIE } from '../../../const/keys';\nimport type { MyApiClient } from '../../../client/sdk';\n\nexport const assertCartIdExists = async (event: H3Event, client: MyApiClient) => {\n  let cartId = getCookie(event, CART_ID_COOKIE);\n  if (cartId) return { cartId };\n\n  const { cart_id } = await client.createEmptyCart();\n  cookieHelper.setCookie(event, CART_ID_COOKIE, cart_id, {\n    maxAge: 60 * 60 * 24 * 30,\n  });\n  return { cartId: cart_id };\n};\n","server/utils/orchestr/cart/index.ts",[1484,2554,2555,2577,2597,2619,2641,2665,2669,2706,2729,2749,2753,2780,2805,2829,2837,2851],{"__ignoreMap":1501},[1505,2556,2557,2559,2561,2563,2565,2567,2569,2571,2573,2575],{"class":1507,"line":1508},[1505,2558,1673],{"class":1549},[1505,2560,1725],{"class":1549},[1505,2562,1630],{"class":1526},[1505,2564,1730],{"class":1522},[1505,2566,1681],{"class":1526},[1505,2568,1684],{"class":1549},[1505,2570,1687],{"class":1526},[1505,2572,1739],{"class":1690},[1505,2574,1694],{"class":1526},[1505,2576,1543],{"class":1526},[1505,2578,2579,2581,2583,2585,2587,2589,2591,2593,2595],{"class":1507,"line":1515},[1505,2580,1673],{"class":1549},[1505,2582,1630],{"class":1526},[1505,2584,1531],{"class":1522},[1505,2586,1681],{"class":1526},[1505,2588,1684],{"class":1549},[1505,2590,1687],{"class":1526},[1505,2592,1714],{"class":1690},[1505,2594,1694],{"class":1526},[1505,2596,1543],{"class":1526},[1505,2598,2599,2601,2603,2606,2608,2610,2612,2615,2617],{"class":1507,"line":1546},[1505,2600,1673],{"class":1549},[1505,2602,1630],{"class":1526},[1505,2604,2605],{"class":1522}," cookieHelper",[1505,2607,1681],{"class":1526},[1505,2609,1684],{"class":1549},[1505,2611,1687],{"class":1526},[1505,2613,2614],{"class":1690},"../../../myapp-helper/cookie-helper",[1505,2616,1694],{"class":1526},[1505,2618,1543],{"class":1526},[1505,2620,2621,2623,2625,2628,2630,2632,2634,2637,2639],{"class":1507,"line":1565},[1505,2622,1673],{"class":1549},[1505,2624,1630],{"class":1526},[1505,2626,2627],{"class":1522}," CART_ID_COOKIE",[1505,2629,1681],{"class":1526},[1505,2631,1684],{"class":1549},[1505,2633,1687],{"class":1526},[1505,2635,2636],{"class":1690},"../../../const/keys",[1505,2638,1694],{"class":1526},[1505,2640,1543],{"class":1526},[1505,2642,2643,2645,2647,2649,2652,2654,2656,2658,2661,2663],{"class":1507,"line":1586},[1505,2644,1673],{"class":1549},[1505,2646,1725],{"class":1549},[1505,2648,1630],{"class":1526},[1505,2650,2651],{"class":1522}," MyApiClient",[1505,2653,1681],{"class":1526},[1505,2655,1684],{"class":1549},[1505,2657,1687],{"class":1526},[1505,2659,2660],{"class":1690},"../../../client/sdk",[1505,2662,1694],{"class":1526},[1505,2664,1543],{"class":1526},[1505,2666,2667],{"class":1507,"line":1618},[1505,2668,1749],{"emptyLinePlaceholder":1748},[1505,2670,2671,2673,2675,2678,2680,2683,2685,2687,2689,2691,2693,2696,2698,2700,2702,2704],{"class":1507,"line":1624},[1505,2672,1847],{"class":1549},[1505,2674,1834],{"class":1518},[1505,2676,2677],{"class":1522}," assertCartIdExists ",[1505,2679,1527],{"class":1526},[1505,2681,2682],{"class":1518}," async",[1505,2684,1553],{"class":1526},[1505,2686,1595],{"class":1868},[1505,2688,1770],{"class":1526},[1505,2690,1730],{"class":1873},[1505,2692,1537],{"class":1526},[1505,2694,2695],{"class":1868}," client",[1505,2697,1770],{"class":1526},[1505,2699,2651],{"class":1873},[1505,2701,1613],{"class":1526},[1505,2703,1909],{"class":1518},[1505,2705,1762],{"class":1526},[1505,2707,2708,2710,2713,2715,2717,2719,2721,2723,2725,2727],{"class":1507,"line":1791},[1505,2709,2299],{"class":1518},[1505,2711,2712],{"class":1522}," cartId",[1505,2714,1571],{"class":1526},[1505,2716,1531],{"class":1530},[1505,2718,1592],{"class":1580},[1505,2720,1595],{"class":1522},[1505,2722,1537],{"class":1526},[1505,2724,2627],{"class":1522},[1505,2726,1613],{"class":1580},[1505,2728,1543],{"class":1526},[1505,2730,2731,2733,2735,2738,2741,2743,2745,2747],{"class":1507,"line":1808},[1505,2732,2326],{"class":1549},[1505,2734,1553],{"class":1580},[1505,2736,2737],{"class":1522},"cartId",[1505,2739,2740],{"class":1580},") ",[1505,2742,1627],{"class":1549},[1505,2744,1630],{"class":1526},[1505,2746,2712],{"class":1522},[1505,2748,2160],{"class":1526},[1505,2750,2751],{"class":1507,"line":1825},[1505,2752,1749],{"emptyLinePlaceholder":1748},[1505,2754,2755,2758,2760,2763,2765,2767,2769,2771,2773,2776,2778],{"class":1507,"line":1839},[1505,2756,2757],{"class":1518},"  const",[1505,2759,1630],{"class":1526},[1505,2761,2762],{"class":1522}," cart_id",[1505,2764,1681],{"class":1526},[1505,2766,1571],{"class":1526},[1505,2768,1574],{"class":1549},[1505,2770,2695],{"class":1522},[1505,2772,2336],{"class":1526},[1505,2774,2775],{"class":1530},"createEmptyCart",[1505,2777,1581],{"class":1580},[1505,2779,1543],{"class":1526},[1505,2781,2782,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803],{"class":1507,"line":1844},[1505,2783,2784],{"class":1522},"  cookieHelper",[1505,2786,2336],{"class":1526},[1505,2788,1661],{"class":1530},[1505,2790,1592],{"class":1580},[1505,2792,1595],{"class":1522},[1505,2794,1537],{"class":1526},[1505,2796,2627],{"class":1522},[1505,2798,1537],{"class":1526},[1505,2800,2762],{"class":1522},[1505,2802,1537],{"class":1526},[1505,2804,1762],{"class":1526},[1505,2806,2807,2810,2812,2814,2816,2818,2820,2822,2824,2827],{"class":1507,"line":1859},[1505,2808,2809],{"class":1580},"    maxAge",[1505,2811,1770],{"class":1526},[1505,2813,2473],{"class":2472},[1505,2815,2476],{"class":1526},[1505,2817,2473],{"class":2472},[1505,2819,2476],{"class":1526},[1505,2821,2483],{"class":2472},[1505,2823,2476],{"class":1526},[1505,2825,2826],{"class":2472}," 30",[1505,2828,1777],{"class":1526},[1505,2830,2831,2833,2835],{"class":1507,"line":1914},[1505,2832,2165],{"class":1526},[1505,2834,1613],{"class":1580},[1505,2836,1543],{"class":1526},[1505,2838,2839,2841,2843,2845,2847,2849],{"class":1507,"line":1959},[1505,2840,2517],{"class":1549},[1505,2842,1630],{"class":1526},[1505,2844,2712],{"class":1580},[1505,2846,1770],{"class":1526},[1505,2848,2762],{"class":1522},[1505,2850,2160],{"class":1526},[1505,2852,2853],{"class":1507,"line":1965},[1505,2854,1635],{"class":1526},[1480,2856,2857,2858,2861],{},"Each cart-mutating action calls ",[1484,2859,2860],{},"assertCartIdExists"," at the top:",[1496,2863,2866],{"className":1498,"code":2864,"filename":2865,"language":1500,"meta":1501,"style":1501},"export default defineMyAppAction(CartAddItemsAction, async ({ input, context, event }) => {\n  const { cartId } = await assertCartIdExists(event, context.myApiClient);\n  // ... call client.addToCart(cartId, input.items)\n});\n","server/orchestr/cart/add-items.action.ts",[1484,2867,2868,2905,2939,2944],{"__ignoreMap":1501},[1505,2869,2870,2872,2875,2878,2881,2883,2885,2888,2891,2893,2895,2897,2899,2901,2903],{"class":1507,"line":1508},[1505,2871,1847],{"class":1549},[1505,2873,2874],{"class":1549}," default",[1505,2876,2877],{"class":1530}," defineMyAppAction",[1505,2879,2880],{"class":1522},"(CartAddItemsAction",[1505,2882,1537],{"class":1526},[1505,2884,2682],{"class":1518},[1505,2886,2887],{"class":1526}," ({",[1505,2889,2890],{"class":1868}," input",[1505,2892,1537],{"class":1526},[1505,2894,2149],{"class":1868},[1505,2896,1537],{"class":1526},[1505,2898,2112],{"class":1868},[1505,2900,2115],{"class":1526},[1505,2902,1909],{"class":1518},[1505,2904,1762],{"class":1526},[1505,2906,2907,2909,2911,2913,2915,2917,2919,2922,2924,2926,2928,2930,2932,2935,2937],{"class":1507,"line":1515},[1505,2908,2757],{"class":1518},[1505,2910,1630],{"class":1526},[1505,2912,2712],{"class":1522},[1505,2914,1681],{"class":1526},[1505,2916,1571],{"class":1526},[1505,2918,1574],{"class":1549},[1505,2920,2921],{"class":1530}," assertCartIdExists",[1505,2923,1592],{"class":1580},[1505,2925,1595],{"class":1522},[1505,2927,1537],{"class":1526},[1505,2929,2149],{"class":1522},[1505,2931,2336],{"class":1526},[1505,2933,2934],{"class":1522},"myApiClient",[1505,2936,1613],{"class":1580},[1505,2938,1543],{"class":1526},[1505,2940,2941],{"class":1507,"line":1546},[1505,2942,2943],{"class":1511},"  // ... call client.addToCart(cartId, input.items)\n",[1505,2945,2946,2948,2950],{"class":1507,"line":1565},[1505,2947,1828],{"class":1526},[1505,2949,1613],{"class":1522},[1505,2951,1543],{"class":1526},[1480,2953,2954,2955,2958,2959,2962,2963,2966,2967,2969,2970,2972],{},"This works because the action handler runs to completion before Orchestr starts writing the response: ",[1484,2956,2957],{},"runAction"," returns its result first, then ",[1484,2960,2961],{},"setHeader"," and ",[1484,2964,2965],{},"sendStream"," execute. The ",[1484,2968,1661],{}," call inside the handler mutates the response while headers are still mutable. A query handler runs inside the streaming iterator that ",[1484,2971,2965],{}," is already consuming, so by the time the handler executes the headers have been flushed.",[1637,2974,2976],{"id":2975},"rule-of-thumb","Rule of thumb",[1480,2978,2979,2980,2982],{},"If the storefront expects to read state derived from this ID on the very first page load (visitor segmentation, locale preferences from a logged-in session), bootstrap in ",[1484,2981,1493],{},". If the ID is only consulted when something is being created or changed, bootstrap inside the action handler. The customer who never converts then never gets an empty cart created in your backend.",[1637,2984,2986],{"id":2985},"related","Related",[2988,2989,2990,2997],"ul",{},[2991,2992,2993,2996],"li",{},[2534,2994,2995],{"href":2536},"Middleware: Setting cookies and response headers",": the streaming constraint that determines which middleware slots can write cookies.",[2991,2998,2999,3002,3003,3005],{},[2534,3000,258],{"href":3001},"./system-bootstrap"," (recipe): another ",[1484,3004,1493],{}," pattern that combines naturally with identity bootstrap when an app needs both.",[3007,3008,3009],"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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}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}",{"title":1501,"searchDepth":1515,"depth":1515,"links":3011},[3012,3013,3014,3015,3016],{"id":1639,"depth":1515,"text":1640},{"id":1980,"depth":1515,"text":1981},{"id":2544,"depth":1515,"text":2545},{"id":2975,"depth":1515,"text":2976},{"id":2985,"depth":1515,"text":2986},"Read-or-create-and-set patterns for cart, session, and visitor identity cookies. Where to put the bootstrap depends on when you need the ID.","md",{},{"title":3021,"description":3022},"Identity cookies in Orchestr | Laioutr","Read-or-create-and-set patterns for cart, session, and visitor identity cookies in Orchestr.",{"loc":255,"lastmod":3024,"changefreq":3025,"priority":3026},"2026-05-05","monthly",0.9,"eg-L9zDQMROJyH-vqyvUC96pLRiK6_MkwXtmpYRe3FA",[3029,3031],{"title":250,"path":251,"stem":252,"description":3030,"children":-1},"When per-result context exists only in the originating query response (attribution tokens, search position, relevance scores), provide an entity component inline from the query handler and skip writing a resolver for it.",{"title":258,"path":259,"stem":260,"description":3032,"children":-1},"When your backend needs internal IDs for currency, locale, or sales channel that aren't part of clientEnv, fetch and cache the metadata once, then resolve it on each request.",1778245943342]