{"_id":"@commercetools-demo/page-builder","_rev":"7-83ed72aaaa84415e8da22a7dd51f7ce4","name":"@commercetools-demo/page-builder","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"@commercetools-demo/page-builder","version":"0.1.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.1.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"97074a4c14680d92694c357bef9b56cba9ba4ec2","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.1.0.tgz","fileCount":82,"integrity":"sha512-kcGDsYztEQQGYxxmTV7He+DM/0b35KYj8zkWMfGzHvTscXyQ52jW0OyIbEpPsRu0Su/dyQxOw9M2zj2CnbuVJw==","signatures":[{"sig":"MEUCIQDbGck573XTm546eeZO0Y83xHqytUmgm2r/uWZQPH3nfwIgRjwFAXV8qJyq+YY/H6KINStxstMHoVg4yCLGhJfIcSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"c292fc4c7202207a0a8f0836afb833a8c419f39d","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.1.0_1784145818867_0.07901862658119008","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@commercetools-demo/page-builder","version":"0.2.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.2.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"85d8162cbe090e89d55bee45cebc55c11e2103b0","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.2.0.tgz","fileCount":95,"integrity":"sha512-kCmK5n545Bpz7Mkier0qCdaT6f01qpxDIwWrtr+dOjz6kBPT3b4PnCCj1TXZK6085JYIfgWUWizs8MPaLY/vRA==","signatures":[{"sig":"MEUCIDp2c+cDviSs+45Cnq9oEoTjvdO4KZ/mte5bh5KGG8fzAiEAkjXv2JUHYAdg6oBO64blEwicgcyzRj1lGCCVN5zVQBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206760},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ccf8f2b457eda8a854ceba514dea9728d012b883","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.2.0_1784230662700_0.9991386341354278","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@commercetools-demo/page-builder","version":"0.3.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.3.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"4e30064b29529a94a17af67a981fa5b7fce6b949","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.3.0.tgz","fileCount":112,"integrity":"sha512-XFY9osIQ7ooijHKDbnDnQ8C5p6LlGi3pl5IKuq45WPoBrOOMZvdC2kiii2hScL4gE1CCv1HR6n7wnWO7P60Ddg==","signatures":[{"sig":"MEQCIFSeuTEflJZ3JmttmjCz8Zq/t25Vl4876509kbU/EHD8AiBkP+Kv8v1zlWhk//kDIlIYdYxHLbwA6jeMpNCEz0y9Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246966},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ccf8f2b457eda8a854ceba514dea9728d012b883","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.3.0_1784650315393_0.41519129384946774","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@commercetools-demo/page-builder","version":"0.5.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.5.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"3d673d028a52c7dabc196e70bf15a1cea00b3ee1","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.5.0.tgz","fileCount":111,"integrity":"sha512-oHq0n+2pTPSa4EpRRjrZ23PFpRORtCXFZx9HNEZxRfPVKDReWe+pHHoTxHt1C4yWzuTrcwh3a6Ohw9a28p4yFw==","signatures":[{"sig":"MEQCIA7QFE7A9szqTibUBvqBi/I7/x6TRErMp/80iXt35LZ/AiAYYKk8wHy2GY1g4gJDO1DHSGKduo7nfrod3MR6Zo+q7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260189},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ccf8f2b457eda8a854ceba514dea9728d012b883","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.5.0_1784740441990_0.8973558378395305","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@commercetools-demo/page-builder","version":"0.7.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.7.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"7f6e1797a7195c2a1e43fcf61fc1cb6beb944d4f","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.7.0.tgz","fileCount":111,"integrity":"sha512-MLdVzRXIZ+5QIypB4D2CcLRIe7TBkTBaV8r5RtCfCd8aChT1u1skU8XgJxK/DzuoD3b3B0dIsm+pTbqzgU3rNg==","signatures":[{"sig":"MEUCIQCzSfiyVypt6PgJLT3YvO2OYSxl02fu2jiJelRdOnRzXgIgFoKQKsNuUqu/KFtPlnNL+RWC0MSguxixAw3nzLt0fSE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"ad37b679d8f457826973dec48c4a08906fa6b55e","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.7.0_1784907680284_0.8347136664155883","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@commercetools-demo/page-builder","version":"0.8.0","keywords":["commercetools","page-builder","custom-objects","storefront"],"license":"MIT","_id":"@commercetools-demo/page-builder@0.8.0","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"bin":{"page-builder":"dist/cli.js"},"dist":{"shasum":"409e035711152db86ec503ca10694e40d035f980","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.8.0.tgz","fileCount":111,"integrity":"sha512-TM1Ifa+soY+bo96A/How7Zv5/Z5ae4IedShlQEMrpbSja3T/qTX/tJkskXEO2c2S1aHWA3UYDu3rNwkt8aqViw==","signatures":[{"sig":"MEYCIQCLmKmPBOPF46LFw/BRy3Z8lWHk2beIh50SShZ/KXCsZQIhALtOytYrF6mXwhV0e0Ck4WzOWhYJbVyvfCUADXp2pxtp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263142},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"}},"gitHead":"3e65460791ce335dd09dd7861ef18d2d02b39e86","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"_npmVersion":"10.9.4","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","typescript":"^5.9.2","@types/node":"^20.11.0","@types/react":"^19.0.0"},"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/page-builder_0.8.0_1785334131406_0.8514319323173019","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@commercetools-demo/page-builder","version":"0.9.0","description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","license":"MIT","type":"module","bin":{"page-builder":"dist/cli.js"},"publishConfig":{"access":"public"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./bridge":{"types":"./dist/react/visual-editing-bridge.d.ts","default":"./dist/react/visual-editing-bridge.js"},"./contract":{"types":"./dist/contract.d.ts","default":"./dist/contract.js"},"./core":{"types":"./dist/core/index.d.ts","default":"./dist/core/index.js"}},"engines":{"node":">=18"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsc -p tsconfig.json --watch","prepublishOnly":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"keywords":["commercetools","page-builder","custom-objects","storefront"],"peerDependencies":{"react":">=18"},"peerDependenciesMeta":{"react":{"optional":true}},"devDependencies":{"@types/node":"^20.11.0","@types/react":"^19.0.0","react":"^19.0.0","typescript":"^5.9.2"},"_id":"@commercetools-demo/page-builder@0.9.0","gitHead":"7d9a96ee46ec31e792ac020a8a2fc05736a9ad19","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-VQq/O+PiiTVHroUI8DngQksxTmppXZViC3gneuzK298gOCbt0gxwJZET1I30Uf8bgJCrIfV5vq6u7dFHrIn1Sg==","shasum":"6111dac998a61cfc159348864f2437bc7f34894c","tarball":"https://registry.npmjs.org/@commercetools-demo/page-builder/-/page-builder-0.9.0.tgz","fileCount":115,"unpackedSize":282744,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBEenfmLXvu6LNbE1A2hbr2IJviZzh/7BoAxjt3Dt8BfAiEA6eSHodx0kXUnGfRqsd/waKG9C3YE8Vb+2LJr8G80vZs="}]},"_npmUser":{"name":"behnam777","email":"behnam777@gmail.com"},"directories":{},"maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/page-builder_0.9.0_1785526173116_0.4050785677070705"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-15T20:03:38.757Z","modified":"2026-07-31T19:29:33.422Z","0.1.0":"2026-07-15T20:03:39.014Z","0.2.0":"2026-07-16T19:37:42.838Z","0.3.0":"2026-07-21T16:11:55.519Z","0.5.0":"2026-07-22T17:14:02.157Z","0.7.0":"2026-07-24T15:41:20.438Z","0.8.0":"2026-07-29T14:08:51.591Z","0.9.0":"2026-07-31T19:29:33.248Z"},"license":"MIT","keywords":["commercetools","page-builder","custom-objects","storefront"],"description":"Host-side page-builder SDK: the render runtime (transform/resolve engine, registry primitives, React grid, visual-editing bridge) plus the CLI that syncs component/data-source/section definitions into commercetools, and the shared contract types.","maintainers":[{"name":"lgiavedoni","email":"lgiavedoni@gmail.com"},{"name":"behnam777","email":"behnam777@gmail.com"}],"readme":"# @commercetools-demo/page-builder\n\nThe host-side page-builder SDK — one package containing:\n\n1. **The render runtime** a host storefront uses to render page-builder content.\n2. **The `page-builder` CLI** that syncs component / data-source / section **definitions**\n   (authored in host code) into the commercetools custom objects the Merchant Center Page\n   Builder reads.\n3. **The shared contract types** (single source of truth) both of the above import.\n\n> Normative contract: [`docs/sdd/definitions-contract.md`](../../docs/sdd/definitions-contract.md).\n\n## Install\n\n```sh\nnpm i @commercetools-demo/page-builder     # runtime + contract (react is an optional peer)\n```\n\n## Entrypoints\n\n- **`.`** — framework-agnostic core: the transform/resolve engine\n  (`transformPageEditorToSections`, `resolveDataSources`, `localizeConfig`, `pickPage`,\n  `pickValid`, `responsiveSize`), registry primitives (`defineBlock`, `defineDataSource`,\n  `buildCatalog`, `buildManifest`), resolver/render/page types, preview flag helpers, and\n  the full contract types.\n- **`./react`** — `createSections({ componentForType, sectionBg })` → the grid render tree\n  (Grid/Cell/Item/Sections/MissingItem), React Server Components. `createPageBuilderSections`\n  wraps that AND the whole data side (config, `createPageStore`, `dynamicPages` gating,\n  `resolvePageBuilderRoute`) into one `<Sections pageType params searchParams>` component a\n  route mounts directly — no separate `renderPage` call. Add this package to the host's\n  Tailwind `@source` and safelist the dynamic `col-span-*` / visibility classes.\n- **`./bridge`** — `<VisualEditingBridge allowedOrigins components onRefresh />`, the\n  `'use client'` visual-editing bridge. Framework-agnostic: the host injects `onRefresh`\n  (e.g. Next's `router.refresh`).\n- **`./contract`** — the contract types only (no runtime), for consumers that just want the\n  wire types.\n\nReact is an **optional peer** — the `.`, `./contract`, and CLI never import it, so a\nCLI-only or non-React consumer isn't forced to install React.\n\n## CLI\n\n```sh\npage-builder init                                          # scaffold a starter integration (no CT access)\npage-builder validate --input page-builder.catalog.json   # lint (no CT access)\npage-builder sync     --input page-builder.catalog.json   # push as draft (idempotent)\npage-builder publish                                       # promote draft → published\npage-builder pull     --out page-builder.catalog.json      # CT → disk (migration/parity)\n```\n\nFlags: `--only components,data-sources,sections`, `--dry-run`, `--diff`, `--force`,\n`--env <path>`, `--out <file|dir>`, `--stubs <file>`. Credentials via `CTP_*` env — defaults to\nreading `.env` in the current directory (no `--env` needed); the client just needs\n`manage_key_value_documents` in addition to whatever the storefront runtime already uses it\nfor. Pass `--env <path>` only if you want the CLI to use a different client/file. See\n`.env.example`.\n\n### `init` — scaffold a host integration\n\n`page-builder init` copies a starter integration into the current repo (`--out <dir>` to\ntarget elsewhere): a TS **catalog** (`lib/page-builder/catalog.ts`) + **registry**\n(`registry.tsx`), the **sections** render binding (`createPageBuilderSections` — the full\nrequest → render pipeline as one component, `sections.tsx`), a **bridge** mount\n(`components/page-builder/BridgeMount.tsx`), placeholder block components, a checked-in\n`page-builder.catalog.json` (so `sync` works immediately), `.env.example`, and an `AGENTS.md`\nexplaining how to finish wiring. It writes **new files only** (skips existing ones unless\n`--force`) and never edits your code — the printed checklist covers the manual steps (Tailwind\n`@source`/safelist, mounting the bridge, env). Typical first run:\n\n```sh\nnpx @commercetools-demo/page-builder init\nnpx @commercetools-demo/page-builder sync --input page-builder.catalog.json\nnpx @commercetools-demo/page-builder publish\n```\n\n## Host usage sketch\n\n```ts\n// lib/layout.ts — bind the engine to this host's resolvers\nimport { transformPageEditorToSections, pickPage } from '@commercetools-demo/page-builder';\n```\n```tsx\n// components/grid — bind the render layer to this host's registry + theme\nimport { createSections } from '@commercetools-demo/page-builder/react';\nimport { VisualEditingBridge } from '@commercetools-demo/page-builder/bridge';\n```\n```ts\n// build:catalog step — serialize definitions for the CLI\nimport { buildCatalog } from '@commercetools-demo/page-builder';\n```\n\n## Lifecycle\n\n`sync` writes **draft** only, idempotently (no-op when the payload's `sourceHash` is\nunchanged), preserving draft history (capped at 50). `publish` is the separate go-live step.\nRecommended order per deploy: **deploy host → sync (draft) → publish**.\n","readmeFilename":"README.md"}