@se-studio/contentful-cms 0.0.0-next16-20260822103555
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1117 -0
- package/HOSTED.md +152 -0
- package/INSTALL.md +29 -0
- package/README.md +674 -0
- package/dist/audit/asset-usage.d.ts +29 -0
- package/dist/audit/asset-usage.d.ts.map +1 -0
- package/dist/audit/asset-usage.js +99 -0
- package/dist/audit/asset-usage.js.map +1 -0
- package/dist/audit/media-review-rules.d.ts +33 -0
- package/dist/audit/media-review-rules.d.ts.map +1 -0
- package/dist/audit/media-review-rules.js +120 -0
- package/dist/audit/media-review-rules.js.map +1 -0
- package/dist/audit/media-review.d.ts +45 -0
- package/dist/audit/media-review.d.ts.map +1 -0
- package/dist/audit/media-review.js +69 -0
- package/dist/audit/media-review.js.map +1 -0
- package/dist/bin/cms-edit.d.ts +4 -0
- package/dist/bin/cms-edit.d.ts.map +1 -0
- package/dist/bin/cms-edit.js +46 -0
- package/dist/bin/cms-edit.js.map +1 -0
- package/dist/cli/program.d.ts +9 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +152 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/read-json-input.d.ts +27 -0
- package/dist/cli/read-json-input.d.ts.map +1 -0
- package/dist/cli/read-json-input.js +65 -0
- package/dist/cli/read-json-input.js.map +1 -0
- package/dist/cli/runner.d.ts +15 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +113 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/commands/add-initial-fields.d.ts +27 -0
- package/dist/commands/add-initial-fields.d.ts.map +1 -0
- package/dist/commands/add-initial-fields.js +42 -0
- package/dist/commands/add-initial-fields.js.map +1 -0
- package/dist/commands/add-target-field.d.ts +15 -0
- package/dist/commands/add-target-field.d.ts.map +1 -0
- package/dist/commands/add-target-field.js +48 -0
- package/dist/commands/add-target-field.js.map +1 -0
- package/dist/commands/add.d.ts +4 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +291 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/article-tags-from-json.d.ts +4 -0
- package/dist/commands/article-tags-from-json.d.ts.map +1 -0
- package/dist/commands/article-tags-from-json.js +55 -0
- package/dist/commands/article-tags-from-json.js.map +1 -0
- package/dist/commands/asset.d.ts +4 -0
- package/dist/commands/asset.d.ts.map +1 -0
- package/dist/commands/asset.js +685 -0
- package/dist/commands/asset.js.map +1 -0
- package/dist/commands/batch-assignments.d.ts +16 -0
- package/dist/commands/batch-assignments.d.ts.map +1 -0
- package/dist/commands/batch-assignments.js +61 -0
- package/dist/commands/batch-assignments.js.map +1 -0
- package/dist/commands/batch.d.ts +5 -0
- package/dist/commands/batch.d.ts.map +1 -0
- package/dist/commands/batch.js +272 -0
- package/dist/commands/batch.js.map +1 -0
- package/dist/commands/bulk-rtf-replace.d.ts +4 -0
- package/dist/commands/bulk-rtf-replace.d.ts.map +1 -0
- package/dist/commands/bulk-rtf-replace.js +103 -0
- package/dist/commands/bulk-rtf-replace.js.map +1 -0
- package/dist/commands/create-from-json.d.ts +8 -0
- package/dist/commands/create-from-json.d.ts.map +1 -0
- package/dist/commands/create-from-json.js +531 -0
- package/dist/commands/create-from-json.js.map +1 -0
- package/dist/commands/create-person-from-json.d.ts +4 -0
- package/dist/commands/create-person-from-json.d.ts.map +1 -0
- package/dist/commands/create-person-from-json.js +86 -0
- package/dist/commands/create-person-from-json.js.map +1 -0
- package/dist/commands/create-person.d.ts +4 -0
- package/dist/commands/create-person.d.ts.map +1 -0
- package/dist/commands/create-person.js +76 -0
- package/dist/commands/create-person.js.map +1 -0
- package/dist/commands/create-taxonomy-from-json.d.ts +4 -0
- package/dist/commands/create-taxonomy-from-json.d.ts.map +1 -0
- package/dist/commands/create-taxonomy-from-json.js +96 -0
- package/dist/commands/create-taxonomy-from-json.js.map +1 -0
- package/dist/commands/create-taxonomy.d.ts +36 -0
- package/dist/commands/create-taxonomy.d.ts.map +1 -0
- package/dist/commands/create-taxonomy.js +214 -0
- package/dist/commands/create-taxonomy.js.map +1 -0
- package/dist/commands/create.d.ts +4 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +454 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/customer.d.ts +4 -0
- package/dist/commands/customer.d.ts.map +1 -0
- package/dist/commands/customer.js +56 -0
- package/dist/commands/customer.js.map +1 -0
- package/dist/commands/diagnose.d.ts +29 -0
- package/dist/commands/diagnose.d.ts.map +1 -0
- package/dist/commands/diagnose.js +119 -0
- package/dist/commands/diagnose.js.map +1 -0
- package/dist/commands/diff.d.ts +4 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +33 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/discard.d.ts +4 -0
- package/dist/commands/discard.d.ts.map +1 -0
- package/dist/commands/discard.js +63 -0
- package/dist/commands/discard.js.map +1 -0
- package/dist/commands/editor-pack.d.ts +4 -0
- package/dist/commands/editor-pack.d.ts.map +1 -0
- package/dist/commands/editor-pack.js +31 -0
- package/dist/commands/editor-pack.js.map +1 -0
- package/dist/commands/entry-lookup-target.d.ts +113 -0
- package/dist/commands/entry-lookup-target.d.ts.map +1 -0
- package/dist/commands/entry-lookup-target.js +235 -0
- package/dist/commands/entry-lookup-target.js.map +1 -0
- package/dist/commands/entry-search.d.ts +4 -0
- package/dist/commands/entry-search.d.ts.map +1 -0
- package/dist/commands/entry-search.js +91 -0
- package/dist/commands/entry-search.js.map +1 -0
- package/dist/commands/guide.d.ts +4 -0
- package/dist/commands/guide.d.ts.map +1 -0
- package/dist/commands/guide.js +18 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/health.d.ts +4 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +179 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/help.d.ts +4 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +49 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/host-scaffold.d.ts +4 -0
- package/dist/commands/host-scaffold.d.ts.map +1 -0
- package/dist/commands/host-scaffold.js +104 -0
- package/dist/commands/host-scaffold.js.map +1 -0
- package/dist/commands/host-stage.d.ts +4 -0
- package/dist/commands/host-stage.d.ts.map +1 -0
- package/dist/commands/host-stage.js +60 -0
- package/dist/commands/host-stage.js.map +1 -0
- package/dist/commands/host.d.ts +3 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +9 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/index-dump.d.ts +15 -0
- package/dist/commands/index-dump.d.ts.map +1 -0
- package/dist/commands/index-dump.js +207 -0
- package/dist/commands/index-dump.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +107 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/links.d.ts +4 -0
- package/dist/commands/links.d.ts.map +1 -0
- package/dist/commands/links.js +343 -0
- package/dist/commands/links.js.map +1 -0
- package/dist/commands/list.d.ts +4 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +282 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/media.d.ts +4 -0
- package/dist/commands/media.d.ts.map +1 -0
- package/dist/commands/media.js +143 -0
- package/dist/commands/media.js.map +1 -0
- package/dist/commands/move.d.ts +3 -0
- package/dist/commands/move.d.ts.map +1 -0
- package/dist/commands/move.js +85 -0
- package/dist/commands/move.js.map +1 -0
- package/dist/commands/multiset-assignments.d.ts +16 -0
- package/dist/commands/multiset-assignments.d.ts.map +1 -0
- package/dist/commands/multiset-assignments.js +24 -0
- package/dist/commands/multiset-assignments.js.map +1 -0
- package/dist/commands/nav.d.ts +4 -0
- package/dist/commands/nav.d.ts.map +1 -0
- package/dist/commands/nav.js +327 -0
- package/dist/commands/nav.js.map +1 -0
- package/dist/commands/open.d.ts +4 -0
- package/dist/commands/open.d.ts.map +1 -0
- package/dist/commands/open.js +124 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/peek.d.ts +4 -0
- package/dist/commands/peek.d.ts.map +1 -0
- package/dist/commands/peek.js +105 -0
- package/dist/commands/peek.js.map +1 -0
- package/dist/commands/preview.d.ts +4 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +242 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/project.d.ts +4 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +63 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/read.d.ts +4 -0
- package/dist/commands/read.d.ts.map +1 -0
- package/dist/commands/read.js +59 -0
- package/dist/commands/read.js.map +1 -0
- package/dist/commands/remove.d.ts +4 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +104 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/resolve.d.ts +4 -0
- package/dist/commands/resolve.d.ts.map +1 -0
- package/dist/commands/resolve.js +157 -0
- package/dist/commands/resolve.js.map +1 -0
- package/dist/commands/rtf.d.ts +4 -0
- package/dist/commands/rtf.d.ts.map +1 -0
- package/dist/commands/rtf.js +589 -0
- package/dist/commands/rtf.js.map +1 -0
- package/dist/commands/run.d.ts +4 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +515 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/save-pending.d.ts +3 -0
- package/dist/commands/save-pending.d.ts.map +1 -0
- package/dist/commands/save-pending.js +5 -0
- package/dist/commands/save-pending.js.map +1 -0
- package/dist/commands/save.d.ts +4 -0
- package/dist/commands/save.d.ts.map +1 -0
- package/dist/commands/save.js +79 -0
- package/dist/commands/save.js.map +1 -0
- package/dist/commands/schema.d.ts +4 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +283 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/session-diff.d.ts +14 -0
- package/dist/commands/session-diff.d.ts.map +1 -0
- package/dist/commands/session-diff.js +238 -0
- package/dist/commands/session-diff.js.map +1 -0
- package/dist/commands/set.d.ts +4 -0
- package/dist/commands/set.d.ts.map +1 -0
- package/dist/commands/set.js +577 -0
- package/dist/commands/set.js.map +1 -0
- package/dist/commands/snapshot.d.ts +3 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +31 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/staged-upload.d.ts +4 -0
- package/dist/commands/staged-upload.d.ts.map +1 -0
- package/dist/commands/staged-upload.js +54 -0
- package/dist/commands/staged-upload.js.map +1 -0
- package/dist/commands/version.d.ts +4 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +17 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/data-root.d.ts +6 -0
- package/dist/config/data-root.d.ts.map +1 -0
- package/dist/config/data-root.js +21 -0
- package/dist/config/data-root.js.map +1 -0
- package/dist/config/hosted.d.ts +36 -0
- package/dist/config/hosted.d.ts.map +1 -0
- package/dist/config/hosted.js +113 -0
- package/dist/config/hosted.js.map +1 -0
- package/dist/config/load.d.ts +27 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +139 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/types.d.ts +42 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/contentful/article-tags-from-json.d.ts +25 -0
- package/dist/contentful/article-tags-from-json.d.ts.map +1 -0
- package/dist/contentful/article-tags-from-json.js +121 -0
- package/dist/contentful/article-tags-from-json.js.map +1 -0
- package/dist/contentful/article-type-resolve.d.ts +11 -0
- package/dist/contentful/article-type-resolve.d.ts.map +1 -0
- package/dist/contentful/article-type-resolve.js +35 -0
- package/dist/contentful/article-type-resolve.js.map +1 -0
- package/dist/contentful/asset-link-from-json.d.ts +17 -0
- package/dist/contentful/asset-link-from-json.d.ts.map +1 -0
- package/dist/contentful/asset-link-from-json.js +41 -0
- package/dist/contentful/asset-link-from-json.js.map +1 -0
- package/dist/contentful/assets.d.ts +54 -0
- package/dist/contentful/assets.d.ts.map +1 -0
- package/dist/contentful/assets.js +168 -0
- package/dist/contentful/assets.js.map +1 -0
- package/dist/contentful/bulk-rtf-replace.d.ts +29 -0
- package/dist/contentful/bulk-rtf-replace.d.ts.map +1 -0
- package/dist/contentful/bulk-rtf-replace.js +119 -0
- package/dist/contentful/bulk-rtf-replace.js.map +1 -0
- package/dist/contentful/cda-sync.d.ts +45 -0
- package/dist/contentful/cda-sync.d.ts.map +1 -0
- package/dist/contentful/cda-sync.js +382 -0
- package/dist/contentful/cda-sync.js.map +1 -0
- package/dist/contentful/client.d.ts +56 -0
- package/dist/contentful/client.d.ts.map +1 -0
- package/dist/contentful/client.js +78 -0
- package/dist/contentful/client.js.map +1 -0
- package/dist/contentful/cma-user-agent.d.ts +10 -0
- package/dist/contentful/cma-user-agent.d.ts.map +1 -0
- package/dist/contentful/cma-user-agent.js +20 -0
- package/dist/contentful/cma-user-agent.js.map +1 -0
- package/dist/contentful/content-type-disk-cache.d.ts +7 -0
- package/dist/contentful/content-type-disk-cache.d.ts.map +1 -0
- package/dist/contentful/content-type-disk-cache.js +42 -0
- package/dist/contentful/content-type-disk-cache.js.map +1 -0
- package/dist/contentful/delivery-token.d.ts +17 -0
- package/dist/contentful/delivery-token.d.ts.map +1 -0
- package/dist/contentful/delivery-token.js +104 -0
- package/dist/contentful/delivery-token.js.map +1 -0
- package/dist/contentful/entry-fields.d.ts +74 -0
- package/dist/contentful/entry-fields.d.ts.map +1 -0
- package/dist/contentful/entry-fields.js +403 -0
- package/dist/contentful/entry-fields.js.map +1 -0
- package/dist/contentful/entry-lookup.d.ts +16 -0
- package/dist/contentful/entry-lookup.d.ts.map +1 -0
- package/dist/contentful/entry-lookup.js +273 -0
- package/dist/contentful/entry-lookup.js.map +1 -0
- package/dist/contentful/featured-image-defaults.d.ts +16 -0
- package/dist/contentful/featured-image-defaults.d.ts.map +1 -0
- package/dist/contentful/featured-image-defaults.js +117 -0
- package/dist/contentful/featured-image-defaults.js.map +1 -0
- package/dist/contentful/fetch.d.ts +31 -0
- package/dist/contentful/fetch.d.ts.map +1 -0
- package/dist/contentful/fetch.js +115 -0
- package/dist/contentful/fetch.js.map +1 -0
- package/dist/contentful/field-metadata.d.ts +8 -0
- package/dist/contentful/field-metadata.d.ts.map +1 -0
- package/dist/contentful/field-metadata.js +12 -0
- package/dist/contentful/field-metadata.js.map +1 -0
- package/dist/contentful/field-value-from-json.d.ts +24 -0
- package/dist/contentful/field-value-from-json.d.ts.map +1 -0
- package/dist/contentful/field-value-from-json.js +206 -0
- package/dist/contentful/field-value-from-json.js.map +1 -0
- package/dist/contentful/hosted-asset-upload.d.ts +4 -0
- package/dist/contentful/hosted-asset-upload.d.ts.map +1 -0
- package/dist/contentful/hosted-asset-upload.js +9 -0
- package/dist/contentful/hosted-asset-upload.js.map +1 -0
- package/dist/contentful/link-fields.d.ts +22 -0
- package/dist/contentful/link-fields.d.ts.map +1 -0
- package/dist/contentful/link-fields.js +58 -0
- package/dist/contentful/link-fields.js.map +1 -0
- package/dist/contentful/linkedEntryFields.d.ts +29 -0
- package/dist/contentful/linkedEntryFields.d.ts.map +1 -0
- package/dist/contentful/linkedEntryFields.js +97 -0
- package/dist/contentful/linkedEntryFields.js.map +1 -0
- package/dist/contentful/list-entry-format.d.ts +18 -0
- package/dist/contentful/list-entry-format.d.ts.map +1 -0
- package/dist/contentful/list-entry-format.js +45 -0
- package/dist/contentful/list-entry-format.js.map +1 -0
- package/dist/contentful/media.d.ts +26 -0
- package/dist/contentful/media.d.ts.map +1 -0
- package/dist/contentful/media.js +82 -0
- package/dist/contentful/media.js.map +1 -0
- package/dist/contentful/person-create.d.ts +32 -0
- package/dist/contentful/person-create.d.ts.map +1 -0
- package/dist/contentful/person-create.js +102 -0
- package/dist/contentful/person-create.js.map +1 -0
- package/dist/contentful/reference-record.d.ts +45 -0
- package/dist/contentful/reference-record.d.ts.map +1 -0
- package/dist/contentful/reference-record.js +106 -0
- package/dist/contentful/reference-record.js.map +1 -0
- package/dist/contentful/references.d.ts +7 -0
- package/dist/contentful/references.d.ts.map +1 -0
- package/dist/contentful/references.js +12 -0
- package/dist/contentful/references.js.map +1 -0
- package/dist/contentful/regex.d.ts +14 -0
- package/dist/contentful/regex.d.ts.map +1 -0
- package/dist/contentful/regex.js +38 -0
- package/dist/contentful/regex.js.map +1 -0
- package/dist/contentful/resolve-content-type.d.ts +9 -0
- package/dist/contentful/resolve-content-type.d.ts.map +1 -0
- package/dist/contentful/resolve-content-type.js +38 -0
- package/dist/contentful/resolve-content-type.js.map +1 -0
- package/dist/contentful/scalar-value.d.ts +19 -0
- package/dist/contentful/scalar-value.d.ts.map +1 -0
- package/dist/contentful/scalar-value.js +95 -0
- package/dist/contentful/scalar-value.js.map +1 -0
- package/dist/contentful/set-field-schema.d.ts +32 -0
- package/dist/contentful/set-field-schema.d.ts.map +1 -0
- package/dist/contentful/set-field-schema.js +123 -0
- package/dist/contentful/set-field-schema.js.map +1 -0
- package/dist/contentful/slug-validation.d.ts +7 -0
- package/dist/contentful/slug-validation.d.ts.map +1 -0
- package/dist/contentful/slug-validation.js +15 -0
- package/dist/contentful/slug-validation.js.map +1 -0
- package/dist/contentful/upload-fetch.d.ts +11 -0
- package/dist/contentful/upload-fetch.d.ts.map +1 -0
- package/dist/contentful/upload-fetch.js +26 -0
- package/dist/contentful/upload-fetch.js.map +1 -0
- package/dist/contentful/upload-limits.d.ts +7 -0
- package/dist/contentful/upload-limits.d.ts.map +1 -0
- package/dist/contentful/upload-limits.js +13 -0
- package/dist/contentful/upload-limits.js.map +1 -0
- package/dist/contentful/write.d.ts +16 -0
- package/dist/contentful/write.d.ts.map +1 -0
- package/dist/contentful/write.js +97 -0
- package/dist/contentful/write.js.map +1 -0
- package/dist/editor-pack/capabilities.d.ts +105 -0
- package/dist/editor-pack/capabilities.d.ts.map +1 -0
- package/dist/editor-pack/capabilities.js +497 -0
- package/dist/editor-pack/capabilities.js.map +1 -0
- package/dist/editor-pack/generate.d.ts +19 -0
- package/dist/editor-pack/generate.d.ts.map +1 -0
- package/dist/editor-pack/generate.js +337 -0
- package/dist/editor-pack/generate.js.map +1 -0
- package/dist/editor-pack/load.d.ts +13 -0
- package/dist/editor-pack/load.d.ts.map +1 -0
- package/dist/editor-pack/load.js +99 -0
- package/dist/editor-pack/load.js.map +1 -0
- package/dist/editor-pack/parse-constants.d.ts +23 -0
- package/dist/editor-pack/parse-constants.d.ts.map +1 -0
- package/dist/editor-pack/parse-constants.js +99 -0
- package/dist/editor-pack/parse-constants.js.map +1 -0
- package/dist/editor-pack/parse-guidelines.d.ts +17 -0
- package/dist/editor-pack/parse-guidelines.d.ts.map +1 -0
- package/dist/editor-pack/parse-guidelines.js +93 -0
- package/dist/editor-pack/parse-guidelines.js.map +1 -0
- package/dist/editor-pack/parse-registrations.d.ts +7 -0
- package/dist/editor-pack/parse-registrations.d.ts.map +1 -0
- package/dist/editor-pack/parse-registrations.js +57 -0
- package/dist/editor-pack/parse-registrations.js.map +1 -0
- package/dist/editor-pack/production-site.d.ts +3 -0
- package/dist/editor-pack/production-site.d.ts.map +1 -0
- package/dist/editor-pack/production-site.js +68 -0
- package/dist/editor-pack/production-site.js.map +1 -0
- package/dist/generated/hosted-guide.d.ts +2 -0
- package/dist/generated/hosted-guide.d.ts.map +1 -0
- package/dist/generated/hosted-guide.js +3 -0
- package/dist/generated/hosted-guide.js.map +1 -0
- package/dist/generated/version.d.ts +3 -0
- package/dist/generated/version.d.ts.map +1 -0
- package/dist/generated/version.js +4 -0
- package/dist/generated/version.js.map +1 -0
- package/dist/hosted/customer-playbooks.d.ts +23 -0
- package/dist/hosted/customer-playbooks.d.ts.map +1 -0
- package/dist/hosted/customer-playbooks.js +69 -0
- package/dist/hosted/customer-playbooks.js.map +1 -0
- package/dist/hosted/index.d.ts +30 -0
- package/dist/hosted/index.d.ts.map +1 -0
- package/dist/hosted/index.js +29 -0
- package/dist/hosted/index.js.map +1 -0
- package/dist/hosted/next/HostedPageShell.d.ts +18 -0
- package/dist/hosted/next/HostedPageShell.d.ts.map +1 -0
- package/dist/hosted/next/HostedPageShell.js +12 -0
- package/dist/hosted/next/HostedPageShell.js.map +1 -0
- package/dist/hosted/next/claude-connect.d.ts +8 -0
- package/dist/hosted/next/claude-connect.d.ts.map +1 -0
- package/dist/hosted/next/claude-connect.js +23 -0
- package/dist/hosted/next/claude-connect.js.map +1 -0
- package/dist/hosted/next/context.d.ts +3 -0
- package/dist/hosted/next/context.d.ts.map +1 -0
- package/dist/hosted/next/context.js +11 -0
- package/dist/hosted/next/context.js.map +1 -0
- package/dist/hosted/next/editor-pack-path.d.ts +2 -0
- package/dist/hosted/next/editor-pack-path.d.ts.map +1 -0
- package/dist/hosted/next/editor-pack-path.js +6 -0
- package/dist/hosted/next/editor-pack-path.js.map +1 -0
- package/dist/hosted/next/page-styles.d.ts +31 -0
- package/dist/hosted/next/page-styles.d.ts.map +1 -0
- package/dist/hosted/next/page-styles.js +166 -0
- package/dist/hosted/next/page-styles.js.map +1 -0
- package/dist/hosted/next/pages/CmsEditPage.d.ts +2 -0
- package/dist/hosted/next/pages/CmsEditPage.d.ts.map +1 -0
- package/dist/hosted/next/pages/CmsEditPage.js +24 -0
- package/dist/hosted/next/pages/CmsEditPage.js.map +1 -0
- package/dist/hosted/next/pages/ContentfulCallbackPage.d.ts +2 -0
- package/dist/hosted/next/pages/ContentfulCallbackPage.d.ts.map +1 -0
- package/dist/hosted/next/pages/ContentfulCallbackPage.js +47 -0
- package/dist/hosted/next/pages/ContentfulCallbackPage.js.map +1 -0
- package/dist/hosted/next/pages/CustomerPlaybookPage.d.ts +8 -0
- package/dist/hosted/next/pages/CustomerPlaybookPage.d.ts.map +1 -0
- package/dist/hosted/next/pages/CustomerPlaybookPage.js +24 -0
- package/dist/hosted/next/pages/CustomerPlaybookPage.js.map +1 -0
- package/dist/hosted/next/pages/CustomerPlaybooksPage.d.ts +2 -0
- package/dist/hosted/next/pages/CustomerPlaybooksPage.d.ts.map +1 -0
- package/dist/hosted/next/pages/CustomerPlaybooksPage.js +29 -0
- package/dist/hosted/next/pages/CustomerPlaybooksPage.js.map +1 -0
- package/dist/hosted/next/pages/HomePage.d.ts +2 -0
- package/dist/hosted/next/pages/HomePage.d.ts.map +1 -0
- package/dist/hosted/next/pages/HomePage.js +37 -0
- package/dist/hosted/next/pages/HomePage.js.map +1 -0
- package/dist/hosted/next/redis.d.ts +5 -0
- package/dist/hosted/next/redis.d.ts.map +1 -0
- package/dist/hosted/next/redis.js +49 -0
- package/dist/hosted/next/redis.js.map +1 -0
- package/dist/hosted/next/routes/connect.d.ts +2 -0
- package/dist/hosted/next/routes/connect.d.ts.map +1 -0
- package/dist/hosted/next/routes/connect.js +19 -0
- package/dist/hosted/next/routes/connect.js.map +1 -0
- package/dist/hosted/next/routes/customer-index.d.ts +2 -0
- package/dist/hosted/next/routes/customer-index.d.ts.map +1 -0
- package/dist/hosted/next/routes/customer-index.js +12 -0
- package/dist/hosted/next/routes/customer-index.js.map +1 -0
- package/dist/hosted/next/routes/customer-resource.d.ts +8 -0
- package/dist/hosted/next/routes/customer-resource.d.ts.map +1 -0
- package/dist/hosted/next/routes/customer-resource.js +19 -0
- package/dist/hosted/next/routes/customer-resource.js.map +1 -0
- package/dist/hosted/next/routes/health.d.ts +2 -0
- package/dist/hosted/next/routes/health.d.ts.map +1 -0
- package/dist/hosted/next/routes/health.js +82 -0
- package/dist/hosted/next/routes/health.js.map +1 -0
- package/dist/hosted/next/routes/link-contentful.d.ts +2 -0
- package/dist/hosted/next/routes/link-contentful.d.ts.map +1 -0
- package/dist/hosted/next/routes/link-contentful.js +6 -0
- package/dist/hosted/next/routes/link-contentful.js.map +1 -0
- package/dist/hosted/next/routes/mcp.d.ts +4 -0
- package/dist/hosted/next/routes/mcp.d.ts.map +1 -0
- package/dist/hosted/next/routes/mcp.js +116 -0
- package/dist/hosted/next/routes/mcp.js.map +1 -0
- package/dist/hosted/next/routes/oauth-authorization-server.d.ts +2 -0
- package/dist/hosted/next/routes/oauth-authorization-server.d.ts.map +1 -0
- package/dist/hosted/next/routes/oauth-authorization-server.js +5 -0
- package/dist/hosted/next/routes/oauth-authorization-server.js.map +1 -0
- package/dist/hosted/next/routes/oauth-authorize.d.ts +2 -0
- package/dist/hosted/next/routes/oauth-authorize.d.ts.map +1 -0
- package/dist/hosted/next/routes/oauth-authorize.js +6 -0
- package/dist/hosted/next/routes/oauth-authorize.js.map +1 -0
- package/dist/hosted/next/routes/oauth-protected-resource.d.ts +2 -0
- package/dist/hosted/next/routes/oauth-protected-resource.d.ts.map +1 -0
- package/dist/hosted/next/routes/oauth-protected-resource.js +5 -0
- package/dist/hosted/next/routes/oauth-protected-resource.js.map +1 -0
- package/dist/hosted/next/routes/oauth-register.d.ts +2 -0
- package/dist/hosted/next/routes/oauth-register.d.ts.map +1 -0
- package/dist/hosted/next/routes/oauth-register.js +6 -0
- package/dist/hosted/next/routes/oauth-register.js.map +1 -0
- package/dist/hosted/next/routes/oauth-token.d.ts +2 -0
- package/dist/hosted/next/routes/oauth-token.d.ts.map +1 -0
- package/dist/hosted/next/routes/oauth-token.js +6 -0
- package/dist/hosted/next/routes/oauth-token.js.map +1 -0
- package/dist/hosted/next/routes/staged-upload.d.ts +2 -0
- package/dist/hosted/next/routes/staged-upload.d.ts.map +1 -0
- package/dist/hosted/next/routes/staged-upload.js +83 -0
- package/dist/hosted/next/routes/staged-upload.js.map +1 -0
- package/dist/hosted/next/stage-site.d.ts +11 -0
- package/dist/hosted/next/stage-site.d.ts.map +1 -0
- package/dist/hosted/next/stage-site.js +50 -0
- package/dist/hosted/next/stage-site.js.map +1 -0
- package/dist/hosted/oauth/auth.d.ts +15 -0
- package/dist/hosted/oauth/auth.d.ts.map +1 -0
- package/dist/hosted/oauth/auth.js +54 -0
- package/dist/hosted/oauth/auth.js.map +1 -0
- package/dist/hosted/oauth/cached-cma.d.ts +14 -0
- package/dist/hosted/oauth/cached-cma.d.ts.map +1 -0
- package/dist/hosted/oauth/cached-cma.js +41 -0
- package/dist/hosted/oauth/cached-cma.js.map +1 -0
- package/dist/hosted/oauth/complete.d.ts +16 -0
- package/dist/hosted/oauth/complete.d.ts.map +1 -0
- package/dist/hosted/oauth/complete.js +55 -0
- package/dist/hosted/oauth/complete.js.map +1 -0
- package/dist/hosted/oauth/config.d.ts +7 -0
- package/dist/hosted/oauth/config.d.ts.map +1 -0
- package/dist/hosted/oauth/config.js +33 -0
- package/dist/hosted/oauth/config.js.map +1 -0
- package/dist/hosted/oauth/handlers.d.ts +18 -0
- package/dist/hosted/oauth/handlers.d.ts.map +1 -0
- package/dist/hosted/oauth/handlers.js +262 -0
- package/dist/hosted/oauth/handlers.js.map +1 -0
- package/dist/hosted/oauth/jwt.d.ts +9 -0
- package/dist/hosted/oauth/jwt.d.ts.map +1 -0
- package/dist/hosted/oauth/jwt.js +31 -0
- package/dist/hosted/oauth/jwt.js.map +1 -0
- package/dist/hosted/oauth/log.d.ts +12 -0
- package/dist/hosted/oauth/log.d.ts.map +1 -0
- package/dist/hosted/oauth/log.js +71 -0
- package/dist/hosted/oauth/log.js.map +1 -0
- package/dist/hosted/oauth/pat-cache.d.ts +11 -0
- package/dist/hosted/oauth/pat-cache.d.ts.map +1 -0
- package/dist/hosted/oauth/pat-cache.js +42 -0
- package/dist/hosted/oauth/pat-cache.js.map +1 -0
- package/dist/hosted/oauth/pkce.d.ts +3 -0
- package/dist/hosted/oauth/pkce.d.ts.map +1 -0
- package/dist/hosted/oauth/pkce.js +9 -0
- package/dist/hosted/oauth/pkce.js.map +1 -0
- package/dist/hosted/oauth/redirect-uri.d.ts +10 -0
- package/dist/hosted/oauth/redirect-uri.d.ts.map +1 -0
- package/dist/hosted/oauth/redirect-uri.js +61 -0
- package/dist/hosted/oauth/redirect-uri.js.map +1 -0
- package/dist/hosted/oauth/refresh.d.ts +22 -0
- package/dist/hosted/oauth/refresh.d.ts.map +1 -0
- package/dist/hosted/oauth/refresh.js +46 -0
- package/dist/hosted/oauth/refresh.js.map +1 -0
- package/dist/hosted/oauth/store.d.ts +75 -0
- package/dist/hosted/oauth/store.d.ts.map +1 -0
- package/dist/hosted/oauth/store.js +217 -0
- package/dist/hosted/oauth/store.js.map +1 -0
- package/dist/hosted/oauth/token-grant-response.d.ts +7 -0
- package/dist/hosted/oauth/token-grant-response.d.ts.map +1 -0
- package/dist/hosted/oauth/token-grant-response.js +34 -0
- package/dist/hosted/oauth/token-grant-response.js.map +1 -0
- package/dist/hosted/parse-customer-resource.d.ts +3 -0
- package/dist/hosted/parse-customer-resource.d.ts.map +1 -0
- package/dist/hosted/parse-customer-resource.js +16 -0
- package/dist/hosted/parse-customer-resource.js.map +1 -0
- package/dist/index/blob.d.ts +5 -0
- package/dist/index/blob.d.ts.map +1 -0
- package/dist/index/blob.js +15 -0
- package/dist/index/blob.js.map +1 -0
- package/dist/index/cache-keys.d.ts +9 -0
- package/dist/index/cache-keys.d.ts.map +1 -0
- package/dist/index/cache-keys.js +13 -0
- package/dist/index/cache-keys.js.map +1 -0
- package/dist/index/cache-store.d.ts +31 -0
- package/dist/index/cache-store.d.ts.map +1 -0
- package/dist/index/cache-store.js +17 -0
- package/dist/index/cache-store.js.map +1 -0
- package/dist/index/db.d.ts +12 -0
- package/dist/index/db.d.ts.map +1 -0
- package/dist/index/db.js +49 -0
- package/dist/index/db.js.map +1 -0
- package/dist/index/distributed-sync-lock.d.ts +3 -0
- package/dist/index/distributed-sync-lock.d.ts.map +1 -0
- package/dist/index/distributed-sync-lock.js +22 -0
- package/dist/index/distributed-sync-lock.js.map +1 -0
- package/dist/index/errors.d.ts +18 -0
- package/dist/index/errors.d.ts.map +1 -0
- package/dist/index/errors.js +18 -0
- package/dist/index/errors.js.map +1 -0
- package/dist/index/file-index-cache.d.ts +16 -0
- package/dist/index/file-index-cache.d.ts.map +1 -0
- package/dist/index/file-index-cache.js +103 -0
- package/dist/index/file-index-cache.js.map +1 -0
- package/dist/index/hydrate.d.ts +8 -0
- package/dist/index/hydrate.d.ts.map +1 -0
- package/dist/index/hydrate.js +26 -0
- package/dist/index/hydrate.js.map +1 -0
- package/dist/index/invalidate.d.ts +28 -0
- package/dist/index/invalidate.d.ts.map +1 -0
- package/dist/index/invalidate.js +114 -0
- package/dist/index/invalidate.js.map +1 -0
- package/dist/index/mode.d.ts +7 -0
- package/dist/index/mode.d.ts.map +1 -0
- package/dist/index/mode.js +9 -0
- package/dist/index/mode.js.map +1 -0
- package/dist/index/patch-index.d.ts +12 -0
- package/dist/index/patch-index.d.ts.map +1 -0
- package/dist/index/patch-index.js +80 -0
- package/dist/index/patch-index.js.map +1 -0
- package/dist/index/paths.d.ts +6 -0
- package/dist/index/paths.d.ts.map +1 -0
- package/dist/index/paths.js +23 -0
- package/dist/index/paths.js.map +1 -0
- package/dist/index/publish-cache.d.ts +5 -0
- package/dist/index/publish-cache.d.ts.map +1 -0
- package/dist/index/publish-cache.js +26 -0
- package/dist/index/publish-cache.js.map +1 -0
- package/dist/index/query.d.ts +139 -0
- package/dist/index/query.d.ts.map +1 -0
- package/dist/index/query.js +451 -0
- package/dist/index/query.js.map +1 -0
- package/dist/index/redis-index-cache.d.ts +24 -0
- package/dist/index/redis-index-cache.d.ts.map +1 -0
- package/dist/index/redis-index-cache.js +83 -0
- package/dist/index/redis-index-cache.js.map +1 -0
- package/dist/index/reference-lookup.d.ts +18 -0
- package/dist/index/reference-lookup.d.ts.map +1 -0
- package/dist/index/reference-lookup.js +123 -0
- package/dist/index/reference-lookup.js.map +1 -0
- package/dist/index/require.d.ts +22 -0
- package/dist/index/require.d.ts.map +1 -0
- package/dist/index/require.js +74 -0
- package/dist/index/require.js.map +1 -0
- package/dist/index/run-sync.d.ts +22 -0
- package/dist/index/run-sync.d.ts.map +1 -0
- package/dist/index/run-sync.js +76 -0
- package/dist/index/run-sync.js.map +1 -0
- package/dist/index/schema.d.ts +19 -0
- package/dist/index/schema.d.ts.map +1 -0
- package/dist/index/schema.js +81 -0
- package/dist/index/schema.js.map +1 -0
- package/dist/index/sync-lock.d.ts +9 -0
- package/dist/index/sync-lock.d.ts.map +1 -0
- package/dist/index/sync-lock.js +98 -0
- package/dist/index/sync-lock.js.map +1 -0
- package/dist/index/sync-log.d.ts +7 -0
- package/dist/index/sync-log.d.ts.map +1 -0
- package/dist/index/sync-log.js +23 -0
- package/dist/index/sync-log.js.map +1 -0
- package/dist/index/sync.d.ts +50 -0
- package/dist/index/sync.d.ts.map +1 -0
- package/dist/index/sync.js +292 -0
- package/dist/index/sync.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/guide.d.ts +21 -0
- package/dist/mcp/guide.d.ts.map +1 -0
- package/dist/mcp/guide.js +97 -0
- package/dist/mcp/guide.js.map +1 -0
- package/dist/mcp/hosted-metadata.d.ts +12 -0
- package/dist/mcp/hosted-metadata.d.ts.map +1 -0
- package/dist/mcp/hosted-metadata.js +30 -0
- package/dist/mcp/hosted-metadata.js.map +1 -0
- package/dist/mcp/http-handler.d.ts +15 -0
- package/dist/mcp/http-handler.d.ts.map +1 -0
- package/dist/mcp/http-handler.js +38 -0
- package/dist/mcp/http-handler.js.map +1 -0
- package/dist/mcp/prompts/onboarding.d.ts +4 -0
- package/dist/mcp/prompts/onboarding.d.ts.map +1 -0
- package/dist/mcp/prompts/onboarding.js +398 -0
- package/dist/mcp/prompts/onboarding.js.map +1 -0
- package/dist/mcp/resources/customer.d.ts +7 -0
- package/dist/mcp/resources/customer.d.ts.map +1 -0
- package/dist/mcp/resources/customer.js +72 -0
- package/dist/mcp/resources/customer.js.map +1 -0
- package/dist/mcp/resources/guide.d.ts +4 -0
- package/dist/mcp/resources/guide.d.ts.map +1 -0
- package/dist/mcp/resources/guide.js +16 -0
- package/dist/mcp/resources/guide.js.map +1 -0
- package/dist/mcp/server.d.ts +17 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +63 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/session-args.d.ts +10 -0
- package/dist/mcp/session-args.d.ts.map +1 -0
- package/dist/mcp/session-args.js +28 -0
- package/dist/mcp/session-args.js.map +1 -0
- package/dist/mcp/tools/cms-edit.d.ts +10 -0
- package/dist/mcp/tools/cms-edit.d.ts.map +1 -0
- package/dist/mcp/tools/cms-edit.js +148 -0
- package/dist/mcp/tools/cms-edit.js.map +1 -0
- package/dist/mcp/tools/customer.d.ts +8 -0
- package/dist/mcp/tools/customer.d.ts.map +1 -0
- package/dist/mcp/tools/customer.js +41 -0
- package/dist/mcp/tools/customer.js.map +1 -0
- package/dist/mcp/tools/help.d.ts +4 -0
- package/dist/mcp/tools/help.d.ts.map +1 -0
- package/dist/mcp/tools/help.js +23 -0
- package/dist/mcp/tools/help.js.map +1 -0
- package/dist/mcp/tools/media.d.ts +4 -0
- package/dist/mcp/tools/media.d.ts.map +1 -0
- package/dist/mcp/tools/media.js +176 -0
- package/dist/mcp/tools/media.js.map +1 -0
- package/dist/mcp/tools/staged-upload.d.ts +4 -0
- package/dist/mcp/tools/staged-upload.d.ts.map +1 -0
- package/dist/mcp/tools/staged-upload.js +77 -0
- package/dist/mcp/tools/staged-upload.js.map +1 -0
- package/dist/mcp/types.d.ts +2 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +2 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/media-pipeline/actions.d.ts +32 -0
- package/dist/media-pipeline/actions.d.ts.map +1 -0
- package/dist/media-pipeline/actions.js +436 -0
- package/dist/media-pipeline/actions.js.map +1 -0
- package/dist/media-pipeline/client.d.ts +71 -0
- package/dist/media-pipeline/client.d.ts.map +1 -0
- package/dist/media-pipeline/client.js +79 -0
- package/dist/media-pipeline/client.js.map +1 -0
- package/dist/media-pipeline/config.d.ts +17 -0
- package/dist/media-pipeline/config.d.ts.map +1 -0
- package/dist/media-pipeline/config.js +52 -0
- package/dist/media-pipeline/config.js.map +1 -0
- package/dist/media-pipeline/import-filter.d.ts +36 -0
- package/dist/media-pipeline/import-filter.d.ts.map +1 -0
- package/dist/media-pipeline/import-filter.js +53 -0
- package/dist/media-pipeline/import-filter.js.map +1 -0
- package/dist/media-pipeline/import.d.ts +25 -0
- package/dist/media-pipeline/import.d.ts.map +1 -0
- package/dist/media-pipeline/import.js +225 -0
- package/dist/media-pipeline/import.js.map +1 -0
- package/dist/media-pipeline/index.d.ts +6 -0
- package/dist/media-pipeline/index.d.ts.map +1 -0
- package/dist/media-pipeline/index.js +6 -0
- package/dist/media-pipeline/index.js.map +1 -0
- package/dist/media-pipeline/job-store.d.ts +49 -0
- package/dist/media-pipeline/job-store.d.ts.map +1 -0
- package/dist/media-pipeline/job-store.js +215 -0
- package/dist/media-pipeline/job-store.js.map +1 -0
- package/dist/media-pipeline/limits.d.ts +19 -0
- package/dist/media-pipeline/limits.d.ts.map +1 -0
- package/dist/media-pipeline/limits.js +19 -0
- package/dist/media-pipeline/limits.js.map +1 -0
- package/dist/media-pipeline/log.d.ts +3 -0
- package/dist/media-pipeline/log.d.ts.map +1 -0
- package/dist/media-pipeline/log.js +12 -0
- package/dist/media-pipeline/log.js.map +1 -0
- package/dist/media-pipeline/validate.d.ts +18 -0
- package/dist/media-pipeline/validate.d.ts.map +1 -0
- package/dist/media-pipeline/validate.js +38 -0
- package/dist/media-pipeline/validate.js.map +1 -0
- package/dist/output/json.d.ts +53 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +110 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/mode.d.ts +3 -0
- package/dist/output/mode.d.ts.map +1 -0
- package/dist/output/mode.js +16 -0
- package/dist/output/mode.js.map +1 -0
- package/dist/output/print.d.ts +14 -0
- package/dist/output/print.d.ts.map +1 -0
- package/dist/output/print.js +61 -0
- package/dist/output/print.js.map +1 -0
- package/dist/output/terminal-table.d.ts +15 -0
- package/dist/output/terminal-table.d.ts.map +1 -0
- package/dist/output/terminal-table.js +60 -0
- package/dist/output/terminal-table.js.map +1 -0
- package/dist/preview/capture-urls.d.ts +12 -0
- package/dist/preview/capture-urls.d.ts.map +1 -0
- package/dist/preview/capture-urls.js +41 -0
- package/dist/preview/capture-urls.js.map +1 -0
- package/dist/preview/entry-urls.d.ts +44 -0
- package/dist/preview/entry-urls.d.ts.map +1 -0
- package/dist/preview/entry-urls.js +153 -0
- package/dist/preview/entry-urls.js.map +1 -0
- package/dist/project/doctor.d.ts +9 -0
- package/dist/project/doctor.d.ts.map +1 -0
- package/dist/project/doctor.js +172 -0
- package/dist/project/doctor.js.map +1 -0
- package/dist/project/load.d.ts +5 -0
- package/dist/project/load.d.ts.map +1 -0
- package/dist/project/load.js +66 -0
- package/dist/project/load.js.map +1 -0
- package/dist/project/types.d.ts +54 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +53 -0
- package/dist/project/types.js.map +1 -0
- package/dist/project/validate-hosted.d.ts +7 -0
- package/dist/project/validate-hosted.d.ts.map +1 -0
- package/dist/project/validate-hosted.js +12 -0
- package/dist/project/validate-hosted.js.map +1 -0
- package/dist/project/validate-secrets.d.ts +7 -0
- package/dist/project/validate-secrets.d.ts.map +1 -0
- package/dist/project/validate-secrets.js +61 -0
- package/dist/project/validate-secrets.js.map +1 -0
- package/dist/rtf/convertToRtf.d.ts +7 -0
- package/dist/rtf/convertToRtf.d.ts.map +1 -0
- package/dist/rtf/convertToRtf.js +24 -0
- package/dist/rtf/convertToRtf.js.map +1 -0
- package/dist/rtf/fromHtml.d.ts +8 -0
- package/dist/rtf/fromHtml.d.ts.map +1 -0
- package/dist/rtf/fromHtml.js +290 -0
- package/dist/rtf/fromHtml.js.map +1 -0
- package/dist/rtf/fromMarkdown.d.ts +25 -0
- package/dist/rtf/fromMarkdown.d.ts.map +1 -0
- package/dist/rtf/fromMarkdown.js +375 -0
- package/dist/rtf/fromMarkdown.js.map +1 -0
- package/dist/rtf/fromPlainText.d.ts +7 -0
- package/dist/rtf/fromPlainText.d.ts.map +1 -0
- package/dist/rtf/fromPlainText.js +39 -0
- package/dist/rtf/fromPlainText.js.map +1 -0
- package/dist/rtf/fromRtfJson.d.ts +10 -0
- package/dist/rtf/fromRtfJson.d.ts.map +1 -0
- package/dist/rtf/fromRtfJson.js +52 -0
- package/dist/rtf/fromRtfJson.js.map +1 -0
- package/dist/rtf/inlineHtml.d.ts +6 -0
- package/dist/rtf/inlineHtml.d.ts.map +1 -0
- package/dist/rtf/inlineHtml.js +152 -0
- package/dist/rtf/inlineHtml.js.map +1 -0
- package/dist/rtf/references.d.ts +9 -0
- package/dist/rtf/references.d.ts.map +1 -0
- package/dist/rtf/references.js +49 -0
- package/dist/rtf/references.js.map +1 -0
- package/dist/rtf/replacePlainText.d.ts +117 -0
- package/dist/rtf/replacePlainText.d.ts.map +1 -0
- package/dist/rtf/replacePlainText.js +598 -0
- package/dist/rtf/replacePlainText.js.map +1 -0
- package/dist/rtf/resolveRtfInput.d.ts +11 -0
- package/dist/rtf/resolveRtfInput.d.ts.map +1 -0
- package/dist/rtf/resolveRtfInput.js +23 -0
- package/dist/rtf/resolveRtfInput.js.map +1 -0
- package/dist/rtf/toMarkdown.d.ts +6 -0
- package/dist/rtf/toMarkdown.d.ts.map +1 -0
- package/dist/rtf/toMarkdown.js +179 -0
- package/dist/rtf/toMarkdown.js.map +1 -0
- package/dist/rtf/types.d.ts +5 -0
- package/dist/rtf/types.d.ts.map +1 -0
- package/dist/rtf/types.js +2 -0
- package/dist/rtf/types.js.map +1 -0
- package/dist/rtf/utils.d.ts +7 -0
- package/dist/rtf/utils.d.ts.map +1 -0
- package/dist/rtf/utils.js +11 -0
- package/dist/rtf/utils.js.map +1 -0
- package/dist/runtime/context.d.ts +32 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +9 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/session/dirty.d.ts +20 -0
- package/dist/session/dirty.d.ts.map +1 -0
- package/dist/session/dirty.js +44 -0
- package/dist/session/dirty.js.map +1 -0
- package/dist/session/file-session-store.d.ts +10 -0
- package/dist/session/file-session-store.d.ts.map +1 -0
- package/dist/session/file-session-store.js +169 -0
- package/dist/session/file-session-store.js.map +1 -0
- package/dist/session/log.d.ts +6 -0
- package/dist/session/log.d.ts.map +1 -0
- package/dist/session/log.js +21 -0
- package/dist/session/log.js.map +1 -0
- package/dist/session/redis-session-store.d.ts +40 -0
- package/dist/session/redis-session-store.d.ts.map +1 -0
- package/dist/session/redis-session-store.js +199 -0
- package/dist/session/redis-session-store.js.map +1 -0
- package/dist/session/refs.d.ts +45 -0
- package/dist/session/refs.d.ts.map +1 -0
- package/dist/session/refs.js +152 -0
- package/dist/session/refs.js.map +1 -0
- package/dist/session/session-store.d.ts +27 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +9 -0
- package/dist/session/session-store.js.map +1 -0
- package/dist/session/state.d.ts +106 -0
- package/dist/session/state.d.ts.map +1 -0
- package/dist/session/state.js +93 -0
- package/dist/session/state.js.map +1 -0
- package/dist/session/store.d.ts +16 -0
- package/dist/session/store.d.ts.map +1 -0
- package/dist/session/store.js +89 -0
- package/dist/session/store.js.map +1 -0
- package/dist/snapshot/field-value.d.ts +5 -0
- package/dist/snapshot/field-value.d.ts.map +1 -0
- package/dist/snapshot/field-value.js +42 -0
- package/dist/snapshot/field-value.js.map +1 -0
- package/dist/snapshot/fields.d.ts +10 -0
- package/dist/snapshot/fields.d.ts.map +1 -0
- package/dist/snapshot/fields.js +72 -0
- package/dist/snapshot/fields.js.map +1 -0
- package/dist/snapshot/render.d.ts +21 -0
- package/dist/snapshot/render.d.ts.map +1 -0
- package/dist/snapshot/render.js +231 -0
- package/dist/snapshot/render.js.map +1 -0
- package/dist/staged-upload/hmac.d.ts +6 -0
- package/dist/staged-upload/hmac.d.ts.map +1 -0
- package/dist/staged-upload/hmac.js +43 -0
- package/dist/staged-upload/hmac.js.map +1 -0
- package/dist/staged-upload/limits.d.ts +6 -0
- package/dist/staged-upload/limits.d.ts.map +1 -0
- package/dist/staged-upload/limits.js +9 -0
- package/dist/staged-upload/limits.js.map +1 -0
- package/dist/staged-upload/mime.d.ts +2 -0
- package/dist/staged-upload/mime.d.ts.map +1 -0
- package/dist/staged-upload/mime.js +15 -0
- package/dist/staged-upload/mime.js.map +1 -0
- package/dist/staged-upload/request.d.ts +11 -0
- package/dist/staged-upload/request.d.ts.map +1 -0
- package/dist/staged-upload/request.js +40 -0
- package/dist/staged-upload/request.js.map +1 -0
- package/dist/staged-upload/store.d.ts +19 -0
- package/dist/staged-upload/store.d.ts.map +1 -0
- package/dist/staged-upload/store.js +124 -0
- package/dist/staged-upload/store.js.map +1 -0
- package/dist/staged-upload/types.d.ts +27 -0
- package/dist/staged-upload/types.d.ts.map +1 -0
- package/dist/staged-upload/types.js +2 -0
- package/dist/staged-upload/types.js.map +1 -0
- package/dist/telemetry/axiom.d.ts +22 -0
- package/dist/telemetry/axiom.d.ts.map +1 -0
- package/dist/telemetry/axiom.js +45 -0
- package/dist/telemetry/axiom.js.map +1 -0
- package/dist/telemetry/composite.d.ts +9 -0
- package/dist/telemetry/composite.d.ts.map +1 -0
- package/dist/telemetry/composite.js +16 -0
- package/dist/telemetry/composite.js.map +1 -0
- package/dist/telemetry/enrich.d.ts +11 -0
- package/dist/telemetry/enrich.d.ts.map +1 -0
- package/dist/telemetry/enrich.js +32 -0
- package/dist/telemetry/enrich.js.map +1 -0
- package/dist/telemetry/factory.d.ts +8 -0
- package/dist/telemetry/factory.d.ts.map +1 -0
- package/dist/telemetry/factory.js +44 -0
- package/dist/telemetry/factory.js.map +1 -0
- package/dist/telemetry/index.d.ts +10 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +9 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/local.d.ts +9 -0
- package/dist/telemetry/local.d.ts.map +1 -0
- package/dist/telemetry/local.js +21 -0
- package/dist/telemetry/local.js.map +1 -0
- package/dist/telemetry/noop.d.ts +7 -0
- package/dist/telemetry/noop.d.ts.map +1 -0
- package/dist/telemetry/noop.js +6 -0
- package/dist/telemetry/noop.js.map +1 -0
- package/dist/telemetry/record.d.ts +14 -0
- package/dist/telemetry/record.d.ts.map +1 -0
- package/dist/telemetry/record.js +61 -0
- package/dist/telemetry/record.js.map +1 -0
- package/dist/telemetry/request-stats.d.ts +15 -0
- package/dist/telemetry/request-stats.d.ts.map +1 -0
- package/dist/telemetry/request-stats.js +34 -0
- package/dist/telemetry/request-stats.js.map +1 -0
- package/dist/telemetry/types.d.ts +47 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +2 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/validation/allowed-types.d.ts +7 -0
- package/dist/validation/allowed-types.d.ts.map +1 -0
- package/dist/validation/allowed-types.js +17 -0
- package/dist/validation/allowed-types.js.map +1 -0
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/docs/FEATURE_REQUESTS_ARCHIVE.md +141 -0
- package/docs/FUNCTIONAL_SPEC.md +303 -0
- package/docs/MEDIA_INDEX_PLAN.md +256 -0
- package/docs/SKILLS.md +29 -0
- package/docs/TELEMETRY_AXIOM.md +93 -0
- package/docs/editor-tasks/article-tags.md +47 -0
- package/docs/editor-tasks/authors-import.md +53 -0
- package/docs/editor-tasks/bulk-find-replace.md +52 -0
- package/docs/editor-tasks/clone-page.md +39 -0
- package/docs/editor-tasks/create-article.md +77 -0
- package/docs/editor-tasks/create-from-document.md +77 -0
- package/docs/editor-tasks/create-page.md +45 -0
- package/docs/editor-tasks/edit-rich-text.md +44 -0
- package/docs/editor-tasks/edit-scalar-fields.md +47 -0
- package/docs/editor-tasks/featured-images.md +46 -0
- package/docs/editor-tasks/media-pipeline-prepare.md +175 -0
- package/docs/editor-tasks/media-reuse-and-upload.md +122 -0
- package/docs/editor-tasks/media-review.md +139 -0
- package/docs/editor-tasks/navigation.md +39 -0
- package/docs/editor-tasks/preview-verify.md +93 -0
- package/docs/editor-tasks/publish-handoff.md +41 -0
- package/docs/editor-tasks/seo-descriptions.md +48 -0
- package/docs/editor-tasks/source-readiness-review.md +116 -0
- package/docs/editor-tasks/taxonomy.md +51 -0
- package/docs/help/article-tags-from-json.md +62 -0
- package/docs/help/asset-review.md +56 -0
- package/docs/help/batch-run.md +222 -0
- package/docs/help/batch.md +94 -0
- package/docs/help/bulk-rtf-replace.md +80 -0
- package/docs/help/create-from-json.md +382 -0
- package/docs/help/fields-article.md +161 -0
- package/docs/help/fields-collection.md +133 -0
- package/docs/help/fields-component.md +165 -0
- package/docs/help/fields-page.md +123 -0
- package/docs/help/fields-taxonomy.md +158 -0
- package/docs/help/fields.md +60 -0
- package/docs/help/index-sync.md +136 -0
- package/docs/help/index.md +181 -0
- package/docs/help/lookup.md +132 -0
- package/docs/help/person-from-json.md +82 -0
- package/docs/help/taxonomy-from-json.md +115 -0
- package/docs/help/workflow.md +239 -0
- package/docs/mcp/e2e-test-prompt.md +159 -0
- package/docs/mcp/hosted-guide.md +354 -0
- package/package.json +107 -0
- package/skills/README.md +30 -0
- package/skills/core/SKILL.md +860 -0
- package/skills/editor-tasks/SKILL.md +86 -0
- package/skills/manifest.json +6 -0
- package/skills/setup/SKILL.md +102 -0
- package/skills/templates/SKILL.md +21 -0
package/README.md
ADDED
|
@@ -0,0 +1,674 @@
|
|
|
1
|
+
# @se-studio/contentful-cms
|
|
2
|
+
|
|
3
|
+
A CLI tool for AI agents to read and edit Contentful draft content across all SE Studio apps. Provides a `cms-edit` binary with a snapshot → ref → edit → save workflow.
|
|
4
|
+
|
|
5
|
+
**Key constraint:** This tool has NO ability to publish, unpublish, archive, or delete published entries. All writes create drafts that a human must review and publish in Contentful.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @se-studio/contentful-cms
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or from the monorepo root:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm install
|
|
17
|
+
pnpm build
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## MCP Setup (hosted)
|
|
21
|
+
|
|
22
|
+
Editors connect Claude via **hosted cms-edit MCP** (OAuth) — no Node.js or local setup wizard.
|
|
23
|
+
|
|
24
|
+
1. Deploy a thin Next.js host (`cms-edit host scaffold`) or use an existing site host
|
|
25
|
+
2. Configure OAuth env vars (see [HOSTED.md](./HOSTED.md))
|
|
26
|
+
3. Send editors the `/cms-edit` onboarding URL
|
|
27
|
+
|
|
28
|
+
Shared route logic lives in `@se-studio/contentful-cms/hosted/next`. Editor walkthrough: [INSTALL.md](./INSTALL.md).
|
|
29
|
+
|
|
30
|
+
**Local stdio MCP is not supported** — do not register `mcpServers.cms-edit` in Claude Desktop. Developers use the hosted connector URL from the site's `/cms-edit` page, or run `cms-edit` in a repo with `.contentful-cms.json`.
|
|
31
|
+
|
|
32
|
+
### What hosted MCP exposes
|
|
33
|
+
|
|
34
|
+
A single `cms_edit` tool that accepts an `args` array matching any `cms-edit` CLI command:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
["open", "/pricing"]
|
|
38
|
+
["snapshot"]
|
|
39
|
+
["set", "@c0", "heading", "New heading"]
|
|
40
|
+
["save"]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
All output is JSON. Stdin-mode commands (`rtf` with `-`) are not supported via MCP — use `--file` instead.
|
|
44
|
+
|
|
45
|
+
## Contentful Role Setup (Required)
|
|
46
|
+
|
|
47
|
+
Before using this tool, create a dedicated **AI Editor** role in your Contentful space with restricted permissions. This provides defence-in-depth safety on top of the CLI's own restrictions.
|
|
48
|
+
|
|
49
|
+
### Steps
|
|
50
|
+
|
|
51
|
+
1. Go to **Settings → Roles & Permissions** in your Contentful web app
|
|
52
|
+
2. Click **Add Role** and name it `AI Editor`
|
|
53
|
+
3. Under **Content** permissions, set:
|
|
54
|
+
- Entries: ✅ Read, ✅ Create, ✅ Edit — ❌ Publish, ❌ Unpublish, ❌ Archive, ❌ Delete
|
|
55
|
+
- Assets: ✅ Read — ❌ everything else
|
|
56
|
+
4. Under **Space** and **Settings** — leave all ❌
|
|
57
|
+
5. Save the role
|
|
58
|
+
6. Go to **Settings → API Keys** → **Content management tokens**
|
|
59
|
+
7. Create a Personal Access Token scoped to this role (or invite a service account user with this role and generate their token)
|
|
60
|
+
8. Store the token as an environment variable (e.g. `CMS_EDIT_TOKEN`)
|
|
61
|
+
|
|
62
|
+
## Configuration
|
|
63
|
+
|
|
64
|
+
Create `.contentful-cms.json` in your project root (copy from `.contentful-cms.example.json`):
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"defaultSpace": "om1",
|
|
69
|
+
"spaces": {
|
|
70
|
+
"om1": {
|
|
71
|
+
"spaceId": "your-space-id",
|
|
72
|
+
"environment": "master",
|
|
73
|
+
"managementToken": "${CMS_EDIT_TOKEN_OM1}",
|
|
74
|
+
"defaultLocale": "en-US",
|
|
75
|
+
"devBaseUrl": "http://localhost:3013"
|
|
76
|
+
},
|
|
77
|
+
"brightline": {
|
|
78
|
+
"spaceId": "another-space-id",
|
|
79
|
+
"environment": "master",
|
|
80
|
+
"managementToken": "${CMS_EDIT_TOKEN_BRIGHTLINE}",
|
|
81
|
+
"defaultLocale": "en-US",
|
|
82
|
+
"devBaseUrl": "${DEV_BASE_URL}",
|
|
83
|
+
"requestParams": {
|
|
84
|
+
"x-vercel-protection-bypass": "${VERCEL_BYPASS_TOKEN}"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Token values use `${ENV_VAR}` syntax and are resolved from your `.env.local` at runtime.
|
|
92
|
+
|
|
93
|
+
### Deployment Protection Bypass
|
|
94
|
+
|
|
95
|
+
When your dev site is deployed behind Vercel deployment protection (or similar), commands that
|
|
96
|
+
build URLs from `devBaseUrl` (e.g. `preview url`, `preview showcase`) need to bypass the protection.
|
|
97
|
+
|
|
98
|
+
**Via query parameter** (Vercel protection bypass):
|
|
99
|
+
```json
|
|
100
|
+
"requestParams": {
|
|
101
|
+
"x-vercel-protection-bypass": "${VERCEL_BYPASS_TOKEN}"
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
The token is appended as a query parameter to every URL built from `devBaseUrl`.
|
|
105
|
+
|
|
106
|
+
**Via HTTP header** (custom auth headers):
|
|
107
|
+
```json
|
|
108
|
+
"requestHeaders": {
|
|
109
|
+
"x-custom-header": "${CUSTOM_HEADER_VALUE}"
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
`requestHeaders` are read by `cms-capture-screenshots` when driving agent-browser (query bypass uses `requestParams` via `cms-edit preview showcase`).
|
|
113
|
+
|
|
114
|
+
Both `requestParams` and `requestHeaders` values support `${ENV_VAR}` token syntax.
|
|
115
|
+
Set the token values in `.env.local` — they are never committed to version control.
|
|
116
|
+
|
|
117
|
+
## Workflow
|
|
118
|
+
|
|
119
|
+
Use **one explicit lookup flag** per `open` (see [docs/help/lookup.md](./docs/help/lookup.md)). Positional `open <slug>` is no longer supported.
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# 1. Open a page by slug — fetches the entry tree and starts a session
|
|
123
|
+
cms-edit open --page-slug /pricing
|
|
124
|
+
|
|
125
|
+
# 2. View the content tree with @refs
|
|
126
|
+
cms-edit snapshot
|
|
127
|
+
|
|
128
|
+
# 3. Read a specific component's fields
|
|
129
|
+
cms-edit read @c2
|
|
130
|
+
|
|
131
|
+
# 4. Read a specific rich text field
|
|
132
|
+
cms-edit read @c2 body
|
|
133
|
+
|
|
134
|
+
# 5. Edit a scalar field
|
|
135
|
+
cms-edit set @c2 heading "New heading text"
|
|
136
|
+
cms-edit set @c2 showHeading true
|
|
137
|
+
|
|
138
|
+
# 5b. Set an Object/JSON field from a file
|
|
139
|
+
cms-edit set @c2 data --file chart-data.json
|
|
140
|
+
|
|
141
|
+
# 5c. Set an entry link field (e.g. page template)
|
|
142
|
+
cms-edit set @c0 template 3I0HxGKbUd173wIpFCsbVr --link
|
|
143
|
+
|
|
144
|
+
# 6. Edit a rich text field (Markdown — default format when no flag)
|
|
145
|
+
cms-edit rtf @c2 body --markdown "## Why it matters\n\nOur platform helps teams **move faster** with [confidence](https://example.com)."
|
|
146
|
+
|
|
147
|
+
# 7. Review changes before saving
|
|
148
|
+
cms-edit diff
|
|
149
|
+
|
|
150
|
+
# 8. Save all changes as Contentful drafts (NEVER publishes)
|
|
151
|
+
cms-edit save
|
|
152
|
+
|
|
153
|
+
# 9. Discard changes if needed
|
|
154
|
+
cms-edit discard
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Command Reference
|
|
158
|
+
|
|
159
|
+
### Navigation
|
|
160
|
+
|
|
161
|
+
| Command | Description |
|
|
162
|
+
|---------|-------------|
|
|
163
|
+
| `open --page-slug <slug>` | Load a page (see [docs/help/lookup.md](./docs/help/lookup.md)); hard-fails if session is dirty |
|
|
164
|
+
| `open --resume` | Re-print active session without refetch (keeps staged edits) |
|
|
165
|
+
| `open --overwrite …` | Replace session even if dirty (discards staged field edits) |
|
|
166
|
+
| `open --id <id>` | Load by Contentful entry ID |
|
|
167
|
+
| `snapshot [-c]` | Re-print content tree (`-c` for compact) |
|
|
168
|
+
| `read [ref] [field]` | Read all fields of a ref, or a specific field |
|
|
169
|
+
| `diff` | Show unsaved changes |
|
|
170
|
+
| `save` | Write all changes to Contentful as drafts |
|
|
171
|
+
| `discard [--all]` | Discard session changes |
|
|
172
|
+
|
|
173
|
+
### Field Editing
|
|
174
|
+
|
|
175
|
+
| Command | Description |
|
|
176
|
+
|---------|-------------|
|
|
177
|
+
| `set <ref> <field> <value>` | Set a scalar field (string, boolean, number). Rich Text: optional `--rtf-text` \| `--rtf-markdown` (default) \| `--rtf-html` \| `--rtf-json` |
|
|
178
|
+
| `set @c1:field="val" @c2:field="val" …` | Bulk scalar update — same Rich Text flags apply to all assignments |
|
|
179
|
+
| `set <ref> <field> --file <path>` | Set from file — for Rich Text fields the JSON must be a full Rich Text document (`nodeType: document`) |
|
|
180
|
+
| `set <ref> <field> --json '<json>'` | Inline JSON — for Rich Text fields the value must be a full Rich Text document object |
|
|
181
|
+
| `set <ref> <field> <entry-id> --link` | Set an entry link field (e.g. template) |
|
|
182
|
+
| `set <ref> <field> <refs-or-ids> --links [--append]` | Set a content array (topContent, content, bottomContent, contents); replace by default, or append with `--append` |
|
|
183
|
+
| `rtf <ref> <field> "<content>"` | Set Rich Text — format: `--text` \| `--markdown` (default) \| `--html` \| `--rtf-json` |
|
|
184
|
+
| `rtf <ref> <field> --file <path> [--markdown\|--html\|…]` | Set from file with matching format flag |
|
|
185
|
+
| `rtf <ref> <field> - [--format]` | Set from stdin (e.g. `cms-edit rtf @c2 body --markdown - < file.md`) |
|
|
186
|
+
| `rtf replace <ref> <field> --find "…" --replace-plain "…"` | Surgical replace — replacement: `--replace-plain` \| `--replace` (Markdown) \| `--replace-html` \| `--replace-json` |
|
|
187
|
+
| `rtf patch <ref> <field>` | JSON ops — use `replaceIsMarkdown`, `replaceIsHtml`, `replaceIsJson`, or `replaceFormat` per op |
|
|
188
|
+
| `rtf embed <ref> <field> <entry-id> [--at N]` | Insert embedded **entry** block; use `--at N` for 0-based position, omit to append |
|
|
189
|
+
| `rtf embed <ref> <field> <asset-id> --asset [--at N]` | Insert embedded **asset** block (`embedded-asset-block`); Rich Text only allows `data.target` — no per-block width or alignment in the JSON |
|
|
190
|
+
|
|
191
|
+
**Rich text embeds — asset vs Media (width / alignment):**
|
|
192
|
+
|
|
193
|
+
- **Raw asset** (`--asset`): embeds the file as-is. Layout comes from the asset/visual defaults only; you cannot store alignment or width on the block (Contentful validates `embedded-asset-block.data` and rejects extra properties).
|
|
194
|
+
- **Media entry** (omit `--asset`, pass a **Media** entry ID): embed a Media entry whose fields include **width** (percentage) and **horizontal position**. The delivery API resolves it to an `IVisual` and apps render it via the same RTF embedded-entry path (`VisualComponent`). Create a Media entry from the CLI (does not replace your session), then embed by ID:
|
|
195
|
+
```bash
|
|
196
|
+
cms-edit create media --asset-id <asset-id> --name "Figure 1" --position Middle --width 40
|
|
197
|
+
cms-edit rtf embed @c1 body <media-entry-id> --at 4
|
|
198
|
+
```
|
|
199
|
+
Raw asset for comparison: `cms-edit rtf embed @c1 body <asset-id> --asset`
|
|
200
|
+
If the same image needs **different** width or alignment in **two** places, use **two Media entries** that reference the same underlying asset (layout is on the Media entry, not per RTF occurrence).
|
|
201
|
+
|
|
202
|
+
### Structure
|
|
203
|
+
|
|
204
|
+
| Command | Description |
|
|
205
|
+
|---------|-------------|
|
|
206
|
+
| `add <type> --content-type <ct> [--after <ref>] [--parent <ref>] [--target topContent\|content\|bottomContent]` | Create and link a new entry; `--content-type` is required (e.g. `component`, `collection`, `externalComponent`, `person`). `--parent` derives the target field from the parent's content type: collections use `contents`, pages/articles default to `content` (override with `--target`). |
|
|
207
|
+
| `remove <ref>` | Unlink from page (deletes if unreferenced draft) |
|
|
208
|
+
| `move <ref> [--after <ref2>] [--before <ref2>]` | Reorder within parent |
|
|
209
|
+
|
|
210
|
+
**`add` — content type is always explicit:**
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
cms-edit add "Hero" --content-type component
|
|
214
|
+
cms-edit add "Card Grid" --content-type collection
|
|
215
|
+
cms-edit add "Research chart" --content-type externalComponent
|
|
216
|
+
cms-edit add "Dr. Jane Smith" --content-type person
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
For content types that follow the `${contentType}Type` naming convention (e.g. `component` → `componentType`, `externalComponent` → `externalComponentType`), the `<type>` argument is stored in that field. For content types without a type discriminator the `<type>` is used as the initial `cmsLabel` only.
|
|
220
|
+
|
|
221
|
+
### Create
|
|
222
|
+
|
|
223
|
+
| Command | Description |
|
|
224
|
+
|---------|-------------|
|
|
225
|
+
| `create page --slug /x --title "X" [--description "…"] [--cms-label "…"] [--template-id <id>] [--featured-image <asset-id>] [--indexed] [--hidden]` | Create a new page entry; all fields after `--title` are optional |
|
|
226
|
+
| `create article --slug /x --title "X" --article-type-id <id>` | Create a new article |
|
|
227
|
+
| `create from-json --file <path>` | Create a complete page or article (with all components) from a declarative JSON file |
|
|
228
|
+
| `create from-json --file <path> --dry-run` | Preview the creation plan without writing to Contentful |
|
|
229
|
+
| `create from-json --file <path> --strict` | Fail on unknown JSON keys (also strict on `--dry-run`) |
|
|
230
|
+
| `create taxonomy-from-json --file <path> [--if-not-exists] [--dry-run]` | Batch-create tagType, articleType, and tag entries from JSON |
|
|
231
|
+
| `create person-from-json --file <path> [--if-not-exists] [--dry-run]` | Batch-create person/author entries from JSON |
|
|
232
|
+
| `create person --slug <slug> --name "X" [--job-title <t>] [--json-file <path>] [--if-not-exists] [--dry-run]` | Create a person entry (draft) |
|
|
233
|
+
| `create person … [--bio-markdown <md>]` or `[--bio-file <path>]` | Bio as Markdown (mutually exclusive paths) |
|
|
234
|
+
| `create tag-type --slug <slug> --name "X" [--json-file <path>] [--if-not-exists] [--dry-run]` | Create a tagType entry (draft) |
|
|
235
|
+
| `create article-type --slug <slug> --name "X" [--json-file <path>] [--if-not-exists] [--dry-run]` | Create an articleType entry (draft) |
|
|
236
|
+
| `create tag --slug <slug> --name "X" --tag-type <tagType-slug> [--tag-type-id <id>] [--description <desc>] [--featured-image <asset-id>] [--json-file <path>] [--if-not-exists] [--dry-run]` | Create a tag entry (draft) |
|
|
237
|
+
| `create template --label "X"` | Create a new template entry |
|
|
238
|
+
| `create media --asset-id <id> --name "X" [--position Left\|Middle\|Right] [--width <1–100>]` | Create a **Media** entry (draft); does not start a new cms-edit session; prints entry ID for `rtf embed` |
|
|
239
|
+
|
|
240
|
+
**`create from-json` notes:** Optional `cmsLabel` on each component helps editors tell instances apart. **Asset and Media links** use explicit shorthands (`featuredImage`, `featuredImageAssetFilename`, `visualAssetFilename`, `visualMedia`, …) — see `cms-edit help create-from-json`. Unknown JSON keys warn by default; `--strict` or `--dry-run` fails instead. String `fields` values become Rich Text when they auto-detect as Markdown, HTML, or Rich Text JSON; otherwise use `{ "value", "format" }`. Slugs should not end with `/` (the CLI strips one and warns). `*AssetFilename` keys require `cms-edit index sync`.
|
|
241
|
+
|
|
242
|
+
**Taxonomy creates:** Use `--json-file` for full field control on tagType, articleType, and tag entries. See `cms-edit help fields-taxonomy` and `cms-edit help taxonomy-from-json`. Idempotent imports: `cms-edit create tag-type … --if-not-exists`.
|
|
243
|
+
|
|
244
|
+
**Idempotent flags (`--if-not-exists`, `--if-exists-by-filename`):** These use check-then-create against Contentful. They are safe for sequential import scripts, but **not safe under parallel runs** on the same slug or `fileName` — two concurrent commands can both create entries. Serialize imports per slug/fileName, or re-run with the idempotent flag to converge.
|
|
245
|
+
|
|
246
|
+
| Command | Description |
|
|
247
|
+
|---------|-------------|
|
|
248
|
+
| `article-tags-from-json --file <path> [--dry-run]` | Set tags on multiple articles from JSON |
|
|
249
|
+
| `bulk-rtf-replace --find <text> --replace-plain <text> [--include page,article] [--prefix <slug>] [--limit <n>] [--dry-run]` | Find-replace plain text in Rich Text across page/article trees |
|
|
250
|
+
|
|
251
|
+
Set `CMS_EDIT_JSON=1` for machine-readable output (`{ ok, id, slug, contentType, status }`).
|
|
252
|
+
|
|
253
|
+
### Templates
|
|
254
|
+
|
|
255
|
+
Create a template: `cms-edit create template --label 'Campaign Landing'`. Edit: `cms-edit open --id <template-id>`. List template IDs: `cms-edit list --type template`.
|
|
256
|
+
|
|
257
|
+
### Links (CTAs)
|
|
258
|
+
|
|
259
|
+
Put the ref **after the subcommand** (e.g. `links add @c5`).
|
|
260
|
+
|
|
261
|
+
| Command | Description |
|
|
262
|
+
|---------|-------------|
|
|
263
|
+
| `links list <ref>` | List CTA links on an entry |
|
|
264
|
+
| `links add <ref> --type external --label "X" --href <url>` | Add an external link (requires `--href`) |
|
|
265
|
+
| `links add <ref> --type internal --label "X" --slug /page` | Add an internal link by page/article slug |
|
|
266
|
+
| `links add <ref> --type internal --label "X" --id <entry-id>` | Add an internal link by Contentful entry ID |
|
|
267
|
+
| `links add <ref> --type download --label "X" --asset-id <asset-id>` | Add a download link to an asset (requires `--asset-id`) |
|
|
268
|
+
| `links add <ref> … --variant link\|button` | Set link variant on create (see `cms-edit schema link`) |
|
|
269
|
+
| `links set <ref> <index> <field> <value>` | Set a scalar field on an existing link entry (e.g. `variant link`) |
|
|
270
|
+
| `links remove <ref> <index>` | Remove a link by index |
|
|
271
|
+
| `links move <ref> <from> <to>` | Reorder links |
|
|
272
|
+
|
|
273
|
+
**Examples:**
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
cms-edit links list @c5
|
|
277
|
+
cms-edit links add @c5 --type external --label "Download PDF" --href "https://www.example.com/whitepaper.pdf"
|
|
278
|
+
cms-edit links add @c5 --type internal --label "Pricing" --slug /pricing
|
|
279
|
+
cms-edit links add @c5 --type internal --label "About" --id 4xKj2abcDef
|
|
280
|
+
cms-edit links add @c5 --type download --label "Download PDF" --asset-id 5xKj2abcDef
|
|
281
|
+
cms-edit links set @c5 0 variant link
|
|
282
|
+
cms-edit links remove @c5 1
|
|
283
|
+
cms-edit links move @c5 2 0
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Batch edit (by entry ID)
|
|
287
|
+
|
|
288
|
+
Edit unrelated standalone entries without a page session. Uses session name **`batch`** by default (`--session` to override). Scalar fields only in v1.
|
|
289
|
+
|
|
290
|
+
| Command | Description |
|
|
291
|
+
|---------|-------------|
|
|
292
|
+
| `batch set <entryId>:field=value …` | Queue scalar updates for one or more entry IDs |
|
|
293
|
+
| `batch diff` | Show all pending batch changes |
|
|
294
|
+
| `batch save` | Write all batch changes as drafts |
|
|
295
|
+
| `batch discard` | Clear batch session without saving |
|
|
296
|
+
|
|
297
|
+
**Example — link variant sweep:**
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
cms-edit batch set \
|
|
301
|
+
3my7n2M84OrhOaaSLHVHvo:variant=link \
|
|
302
|
+
7MjsLmOq52CR9C5xrYlcub:variant=button
|
|
303
|
+
cms-edit batch diff
|
|
304
|
+
cms-edit batch save
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
See `cms-edit help batch` for limits and named sessions.
|
|
308
|
+
|
|
309
|
+
Content type definitions (field types, enum validations) are cached on the session and under `~/.contentful-cms/content-types/<spaceId>/<environment>/` (24-hour TTL) so batch workflows and repeated sets avoid redundant CMA calls.
|
|
310
|
+
|
|
311
|
+
### Content index (assets, media, content catalog)
|
|
312
|
+
|
|
313
|
+
Build a local SQLite index from the **Content Preview API** before filename search, media-by-filename list, asset audit, or fast page/article/taxonomy/nav lookup:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
cms-edit index sync # draft assets, media, full content catalog (default)
|
|
317
|
+
cms-edit index sync --verbose # progress on stderr (or LOG_CMS_INDEX=1)
|
|
318
|
+
cms-edit index status
|
|
319
|
+
cms-edit index dump # browse index in the terminal
|
|
320
|
+
cms-edit index dump --reference-only
|
|
321
|
+
cms-edit index sync --published # separate DB for published-only content
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Catalog types (`page`, `article`, `pageVariant`, `template`, `articleType`, `tagType`, `tag`, `navigation`, `navigationItem`) list from the index when present; use `list --type page --force-cma` to bypass. Scoped filters: `list --type tag --tag-type-name "…"`, `list --type article --article-type-slug …`. Open/resolve use flat flags (`--page-slug`, `--page-cms-label`, `--nav-name`, etc.) — see [docs/help/lookup.md](./docs/help/lookup.md).
|
|
325
|
+
|
|
326
|
+
**Auto-sync:** Index-backed commands refresh the index automatically when it is missing, on an outdated schema (v3), or older than 24h (incremental upsert when only stale). Manual `index sync` always does a full rebuild. See [docs/help/index-sync.md](./docs/help/index-sync.md).
|
|
327
|
+
|
|
328
|
+
**Agent skills:** Edit `packages/skills/skills/contentful-cms-*`, then `pnpm --filter @se-studio/contentful-cms sync:skills`. See [docs/SKILLS.md](./docs/SKILLS.md).
|
|
329
|
+
|
|
330
|
+
Configure optional tokens in `.contentful-cms.json` (`previewAccessToken` for default sync; `deliveryAccessToken`, `deliveryApiKeyName`, `autoCreateDeliveryApiKey` for `--published`) — see [docs/MEDIA_INDEX_PLAN.md](./docs/MEDIA_INDEX_PLAN.md). If unset, `index sync` resolves a preview or delivery key via the management token.
|
|
331
|
+
|
|
332
|
+
### Assets
|
|
333
|
+
|
|
334
|
+
| Command | Description |
|
|
335
|
+
|---------|-------------|
|
|
336
|
+
| `asset search [query]` | Search assets by title (requires index); `--filename` / `--filename-match` for fileName |
|
|
337
|
+
| `asset audit` | List image assets missing alt text (requires index) |
|
|
338
|
+
| `asset review` | Full visual asset review — filename, alt, dimensions, size, GIF (requires index; use `--json` for spreadsheets) |
|
|
339
|
+
| `asset upload --base64 <encoded> --mime <type> [--file-name <name>]` | Upload from base64 (**local CLI only**; rejected on hosted MCP) |
|
|
340
|
+
| `asset upload --staged <uploadId> --mime <type> --file-name <name>` | Consume staged upload from `cms_edit_request_staged_upload` (**hosted MCP**) |
|
|
341
|
+
| `asset upload --url <https-url> [--mime <type>] [--file-name <name>]` | Fetch and upload from URL |
|
|
342
|
+
| `asset upload … --with-media [--media-name "X"] [--media-position Left\|Middle\|Right] [--media-width <1–100>]` | Also create a draft Media wrapper |
|
|
343
|
+
| `asset upload … --if-exists-by-filename` | Return existing asset (and media if `--with-media`) when fileName matches |
|
|
344
|
+
| `asset info <asset-id>` | Show asset details |
|
|
345
|
+
| `asset set <ref> <field> <asset-id>` | Set a visual/asset field |
|
|
346
|
+
|
|
347
|
+
JSON output for upload (`CMS_EDIT_JSON=1`): `{ ok, id, fileName, url, mediaId?, mediaIds? }`. Uploads are limited to **10MB** per file (local/URL/base64) or **4MB** per staged file on hosted MCP. With `--if-exists-by-filename`, run uploads **one at a time** per `fileName` if your script uses parallelism (see idempotent note above).
|
|
348
|
+
|
|
349
|
+
### Navigation Entries
|
|
350
|
+
|
|
351
|
+
| Command | Description |
|
|
352
|
+
|---------|-------------|
|
|
353
|
+
| `nav open --nav-name <name>` | Load a navigation entry (`--nav-id` also supported) |
|
|
354
|
+
| `nav add --label "X" --slug /page` | Add a navigation item |
|
|
355
|
+
|
|
356
|
+
### Discovery
|
|
357
|
+
|
|
358
|
+
| Command | Description |
|
|
359
|
+
|---------|-------------|
|
|
360
|
+
| `schema types <content-type>` | List valid type-discriminator values for any content type (looks up the `${contentType}Type` field) |
|
|
361
|
+
| `schema colours` | List valid `backgroundColour` and `textColour` values from the content model (one list each, no session required) |
|
|
362
|
+
| `search "<query>"` | Full-text search across entries |
|
|
363
|
+
| `list --type <type>` | List **all** entries of a content type (paginates automatically) |
|
|
364
|
+
| `list --type media --asset-id <id>` | List Media entries linked to an asset |
|
|
365
|
+
| `list --type media --asset-filename <name>` | List Media entries by exact asset fileName |
|
|
366
|
+
| `list --type media --asset-filename-match <pattern>` | List Media entries by asset fileName regex (requires index) |
|
|
367
|
+
| `resolve --page-slug <slug>` | Resolve entry by flat lookup flag (no session). See [docs/help/lookup.md](./docs/help/lookup.md) |
|
|
368
|
+
|
|
369
|
+
Asset search, media list by filename, and `asset audit` use the local index (no bulk CMA asset scans). Run `cms-edit index sync` first — see [docs/help/index-sync.md](./docs/help/index-sync.md).
|
|
370
|
+
|
|
371
|
+
**`schema types` examples:**
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
cms-edit schema types component # lists componentType values
|
|
375
|
+
cms-edit schema types collection # lists collectionType values
|
|
376
|
+
cms-edit schema types externalComponent # lists externalComponentType values
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Preview URLs
|
|
380
|
+
|
|
381
|
+
Generate URLs for visual checks with a browser MCP (no capture built into cms-edit):
|
|
382
|
+
|
|
383
|
+
| Target | Command |
|
|
384
|
+
|--------|---------|
|
|
385
|
+
| Page slug | `cms-edit preview url /pricing` (or `preview url` with an open session) |
|
|
386
|
+
| Component showcase | `cms-edit preview showcase --component HeroSimple` |
|
|
387
|
+
| Collection showcase | `cms-edit preview showcase --collection CardGrid --param backgroundColour=Navy` |
|
|
388
|
+
|
|
389
|
+
Requires `devBaseUrl` in `.contentful-cms.json`. Use `--json` for machine-readable output.
|
|
390
|
+
|
|
391
|
+
**CMS guidelines batch capture:** `@se-studio/project-build` ships `cms-capture-screenshots` for the guidelines pipeline only (requires agent-browser). Run from the site repo root: `cms-capture-screenshots --variants /tmp/type-variants.json --app-dir <app-dir>` (e.g. `apps/example-empty` here, or the app path in a customer repo).
|
|
392
|
+
|
|
393
|
+
## Machine-readable Output (`--json`)
|
|
394
|
+
|
|
395
|
+
All commands support JSON output via the global `--json-output` flag or the `CMS_EDIT_JSON=1` environment variable (see [JSON Mode](#json-mode-llm--machine-readable-output) above). In addition, a subset of data-query commands also accept a per-command `--json` flag:
|
|
396
|
+
|
|
397
|
+
| Command | `--json` output |
|
|
398
|
+
|---------|-----------------|
|
|
399
|
+
| `list --type <type> --json` | JSON array of entry objects including all fields |
|
|
400
|
+
| `search "<query>" --json` | JSON array of entry objects including all fields |
|
|
401
|
+
| `read <ref> --json` | JSON object for one entry including all fields |
|
|
402
|
+
| `read <ref> <field> --json` | JSON value for a single field |
|
|
403
|
+
| `asset info <id> --json` | JSON object for one asset |
|
|
404
|
+
|
|
405
|
+
**Entry JSON shape** (for `list`, `search`, `read`):
|
|
406
|
+
|
|
407
|
+
```json
|
|
408
|
+
{
|
|
409
|
+
"id": "abc123",
|
|
410
|
+
"contentType": "article",
|
|
411
|
+
"title": "My Article",
|
|
412
|
+
"slug": "my-article",
|
|
413
|
+
"status": "published",
|
|
414
|
+
"updatedAt": "2024-01-01T00:00:00Z",
|
|
415
|
+
"fields": {
|
|
416
|
+
"title": "My Article",
|
|
417
|
+
"slug": "my-article",
|
|
418
|
+
"articleType": { "id": "entryId", "linkType": "Entry" },
|
|
419
|
+
"download": { "id": "assetId", "linkType": "Asset" },
|
|
420
|
+
"tags": ["tag1", "tag2"],
|
|
421
|
+
"body": "## Heading\n\nRich text rendered as Markdown."
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
Fields are flattened to the space's default locale. Link fields become `{ id, linkType }` objects. Rich text fields become Markdown strings.
|
|
427
|
+
|
|
428
|
+
**Asset JSON shape** (for `asset info`):
|
|
429
|
+
|
|
430
|
+
```json
|
|
431
|
+
{
|
|
432
|
+
"id": "assetId",
|
|
433
|
+
"title": "My PDF",
|
|
434
|
+
"fileName": "report-2024.pdf",
|
|
435
|
+
"contentType": "application/pdf",
|
|
436
|
+
"url": "https://assets.ctfassets.net/...",
|
|
437
|
+
"width": null,
|
|
438
|
+
"height": null,
|
|
439
|
+
"size": 102400
|
|
440
|
+
}
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
Progress messages from `list` are always written to stderr, so they do not contaminate the JSON on stdout.
|
|
444
|
+
|
|
445
|
+
### Scripting example: build an article–asset mapping
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# 1. Get all articles as JSON (no session required)
|
|
449
|
+
cms-edit list --type article --json > articles.json
|
|
450
|
+
|
|
451
|
+
# 2. For each article, fetch the download asset filename
|
|
452
|
+
jq -r '.[].fields.download.id // empty' articles.json | while read assetId; do
|
|
453
|
+
# Requires an open session for space resolution — run `cms-edit open --page-slug /any-page` first
|
|
454
|
+
cms-edit asset info "$assetId" --json
|
|
455
|
+
done
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
## Global Options
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
--space <name> Override the default space (from config)
|
|
462
|
+
--config <path> Custom config file path
|
|
463
|
+
--json Output all results as machine-readable JSON (see below)
|
|
464
|
+
--docs Print absolute path to this README and exit (for LLM or script tooling)
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
Use `cms-edit --docs` to get the path to the README so an LLM or script can read it.
|
|
468
|
+
|
|
469
|
+
## JSON Mode (LLM / machine-readable output)
|
|
470
|
+
|
|
471
|
+
Enable JSON mode to get machine-readable output from every command. Two ways to activate:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Global flag (placed before the subcommand name):
|
|
475
|
+
cms-edit --json-output snapshot
|
|
476
|
+
cms-edit --json-output diff
|
|
477
|
+
cms-edit --json-output set @c2 heading "New title"
|
|
478
|
+
cms-edit --json-output add "Research chart" --content-type externalComponent --target content
|
|
479
|
+
|
|
480
|
+
# Environment variable (set once for the whole session):
|
|
481
|
+
export CMS_EDIT_JSON=1
|
|
482
|
+
cms-edit snapshot # → JSON
|
|
483
|
+
cms-edit diff # → JSON
|
|
484
|
+
cms-edit set @c2 data --file chart.json # → JSON
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### JSON output shapes
|
|
488
|
+
|
|
489
|
+
**Action commands** (`set`, `rtf`, `add`, `remove`, `move`, `save`, `discard`, `links`, …):
|
|
490
|
+
```json
|
|
491
|
+
{"ok": true, "message": "Set heading on @c2 to: New title"}
|
|
492
|
+
{"ok": false, "error": "Ref @c99 not found. Available refs: @c0, @c1, @c2"}
|
|
493
|
+
{"warn": "Created entry is in Contentful with default fields only. Field edits (set/rtf) … until cms-edit save."}
|
|
494
|
+
```
|
|
495
|
+
Multiple lines may appear for a single command (one per message). Errors go to stderr; warnings and results go to stdout.
|
|
496
|
+
|
|
497
|
+
**`snapshot` / `tree`**:
|
|
498
|
+
```json
|
|
499
|
+
{
|
|
500
|
+
"rootType": "article",
|
|
501
|
+
"rootSlug": "/publications/study-1",
|
|
502
|
+
"rootId": "4xKj2abc",
|
|
503
|
+
"rootStatus": "published",
|
|
504
|
+
"spaceKey": "om1",
|
|
505
|
+
"fetchedAt": "2026-03-05T10:00:00.000Z",
|
|
506
|
+
"unsavedChanges": 1,
|
|
507
|
+
"pendingDeletions": 0,
|
|
508
|
+
"entries": [
|
|
509
|
+
{
|
|
510
|
+
"ref": "@c0",
|
|
511
|
+
"entryId": "abc123",
|
|
512
|
+
"contentType": "component",
|
|
513
|
+
"type": "RichText",
|
|
514
|
+
"label": "Introduction",
|
|
515
|
+
"status": "published",
|
|
516
|
+
"depth": 1,
|
|
517
|
+
"parentRef": null,
|
|
518
|
+
"parentField": "content"
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"ref": "@c1",
|
|
522
|
+
"entryId": "def456",
|
|
523
|
+
"contentType": "externalComponent",
|
|
524
|
+
"type": "Research chart",
|
|
525
|
+
"label": "Figure 1: Cost-Efficiency",
|
|
526
|
+
"status": "draft",
|
|
527
|
+
"depth": 1,
|
|
528
|
+
"parentRef": null,
|
|
529
|
+
"parentField": "content"
|
|
530
|
+
}
|
|
531
|
+
]
|
|
532
|
+
}
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
**`diff`**:
|
|
536
|
+
```json
|
|
537
|
+
{
|
|
538
|
+
"hasChanges": true,
|
|
539
|
+
"modified": [
|
|
540
|
+
{
|
|
541
|
+
"ref": "@c1",
|
|
542
|
+
"entryId": "def456",
|
|
543
|
+
"contentType": "externalComponent",
|
|
544
|
+
"type": "Research chart",
|
|
545
|
+
"label": "Figure 1",
|
|
546
|
+
"isNew": false,
|
|
547
|
+
"fields": {
|
|
548
|
+
"heading": {"before": null, "after": "Figure 1: Cost-Efficiency"},
|
|
549
|
+
"data": {"before": null, "after": {"type": "bar", "categories": ["A", "B"]}}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
],
|
|
553
|
+
"deletions": []
|
|
554
|
+
}
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
**`read`**, **`list`**, **`search`**, **`asset info`**: same JSON shapes as their existing per-command `--json` flag.
|
|
558
|
+
|
|
559
|
+
## Order of operations: article + CTA
|
|
560
|
+
|
|
561
|
+
To add body content and a CTA (e.g. PDF download) to an article:
|
|
562
|
+
|
|
563
|
+
1. **Open the article:** `cms-edit open --article-slug <slug>` or `cms-edit open --id <id>`
|
|
564
|
+
2. **Set or add body:** If the article has a rich text component, use `cms-edit rtf @<ref> body --markdown "..."` or `cms-edit rtf @<ref> body --markdown --file path/to.md`. If you need to add a new body component first, use `add` then `rtf`.
|
|
565
|
+
3. **Add CTA at bottom:** `cms-edit add CTA --content-type component --target bottomContent` (or add to main content with `--after @<ref>` if you prefer)
|
|
566
|
+
4. **Set CTA links:** Use one of:
|
|
567
|
+
- External (e.g. PDF URL): `cms-edit links add @<ctaRef> --type external --label "Download PDF" --href <url>`
|
|
568
|
+
- Download (Contentful asset): `cms-edit links add @<ctaRef> --type download --label "Download PDF" --asset-id <asset-id>` (get the ID from `cms-edit asset search "..."` or `cms-edit asset info <id>`)
|
|
569
|
+
5. **Save:** `cms-edit save`
|
|
570
|
+
|
|
571
|
+
## Order of operations: article + Research chart
|
|
572
|
+
|
|
573
|
+
To populate an article with a Research chart (external component):
|
|
574
|
+
|
|
575
|
+
```bash
|
|
576
|
+
# 1. Open the article
|
|
577
|
+
cms-edit open --article-slug <slug>
|
|
578
|
+
|
|
579
|
+
# 2. Discover valid externalComponentType values
|
|
580
|
+
cms-edit schema types externalComponent
|
|
581
|
+
|
|
582
|
+
# 3. Add a Research chart to the content array
|
|
583
|
+
cms-edit add "Research chart" --content-type externalComponent --target content
|
|
584
|
+
|
|
585
|
+
# 4. Set the heading (scalar field)
|
|
586
|
+
cms-edit set @c2 heading "Figure 1: Cost-Efficiency of Data Automation"
|
|
587
|
+
|
|
588
|
+
# 5. Set the data field from a JSON file
|
|
589
|
+
cms-edit set @c2 data --file figure1-data.json
|
|
590
|
+
|
|
591
|
+
# 6. Set the additionalCopy footnote (rich text)
|
|
592
|
+
cms-edit rtf @c2 additionalCopy --markdown --file footnote.md
|
|
593
|
+
|
|
594
|
+
# 7. Review and save
|
|
595
|
+
cms-edit diff
|
|
596
|
+
cms-edit save
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
## Snapshot Format
|
|
600
|
+
|
|
601
|
+
```
|
|
602
|
+
Page: /pricing [4xKj2abc | published] · om1
|
|
603
|
+
|
|
604
|
+
@c0 Component[HeroSimple] "Transparent Pricing" [changed]
|
|
605
|
+
@c1 Component[RichText] "How it works" [published]
|
|
606
|
+
@c2 Collection[CardGrid] "Plans" [published]
|
|
607
|
+
@c3 Component[Card] "Starter" [published]
|
|
608
|
+
@c4 Component[Card] "Pro" [draft]
|
|
609
|
+
@c5 ExternalComponent[Research chart] "Figure 1: Cost-Efficiency" [draft]
|
|
610
|
+
@c6 Component[CTA] "Get started today" [published]
|
|
611
|
+
@c7 Person "Dr. Jane Smith" [published]
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
The type label follows the `${contentType}Type` convention:
|
|
615
|
+
- `component` → `Component[<componentType>]`
|
|
616
|
+
- `collection` → `Collection[<collectionType>]`
|
|
617
|
+
- `externalComponent` → `ExternalComponent[<externalComponentType>]`
|
|
618
|
+
- Any content type without a type discriminator → capitalised content type ID (e.g. `Person`)
|
|
619
|
+
|
|
620
|
+
**Status badges:**
|
|
621
|
+
- `[published]` — live, no pending changes
|
|
622
|
+
- `[draft]` — never published
|
|
623
|
+
- `[pending]` — published but has newer draft in Contentful
|
|
624
|
+
- `[changed]` — has unsaved local changes (run `save`)
|
|
625
|
+
|
|
626
|
+
## Rich Text input formats
|
|
627
|
+
|
|
628
|
+
Use exactly one of `--text`, `--markdown` (default), `--html`, or `--rtf-json` with `cms-edit rtf` and `rtf edit`. For scalar `cms-edit set` on Rich Text fields, use the `--rtf-*` flags.
|
|
629
|
+
|
|
630
|
+
**Markdown** (`--markdown`) supports:
|
|
631
|
+
|
|
632
|
+
```
|
|
633
|
+
# Heading 1 → heading-1
|
|
634
|
+
## Heading 2 → heading-2
|
|
635
|
+
**bold** → bold mark
|
|
636
|
+
_italic_ → italic mark
|
|
637
|
+
***bold italic***
|
|
638
|
+
[text](url) → hyperlink
|
|
639
|
+
- item → unordered list
|
|
640
|
+
1. item → ordered list
|
|
641
|
+
> quote → blockquote
|
|
642
|
+
--- → horizontal rule
|
|
643
|
+
`code` → code mark
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
**HTML** (`--html`): subset including `h1`–`h6`, `p`, `ul`/`ol`/`li`, `blockquote`, `table`, `a`, `strong`/`em`, `br`.
|
|
647
|
+
|
|
648
|
+
**JSON** (`--json`): full Contentful Rich Text document JSON.
|
|
649
|
+
|
|
650
|
+
**Plain text** (`--text`): paragraph breaks from `\n\n` or `\n`; inline `**bold**` etc. still parsed per Markdown inline rules.
|
|
651
|
+
|
|
652
|
+
## Multi-space Usage
|
|
653
|
+
|
|
654
|
+
```bash
|
|
655
|
+
cms-edit --space om1 open --page-slug /pricing
|
|
656
|
+
cms-edit --space brightline open --page-slug /home
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
## What This Tool Cannot Do
|
|
660
|
+
|
|
661
|
+
By design, the following operations are **not available**:
|
|
662
|
+
|
|
663
|
+
- Publish entries (no `publish` command)
|
|
664
|
+
- Unpublish entries
|
|
665
|
+
- Archive entries
|
|
666
|
+
- Delete published entries
|
|
667
|
+
- Upload new assets
|
|
668
|
+
|
|
669
|
+
These restrictions are enforced at two levels:
|
|
670
|
+
|
|
671
|
+
1. **Contentful Role** — the management token should use a role with no publish permissions
|
|
672
|
+
2. **CLI** — no publish/delete commands exist in this tool
|
|
673
|
+
|
|
674
|
+
All saves create draft versions that remain invisible to visitors until a human reviews and publishes them in the Contentful web app.
|