@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
|
@@ -0,0 +1,860 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: contentful-cms-core
|
|
3
|
+
description: "Use cms-edit CLI to read/edit Contentful content (open → snapshot → read → set/rtf → diff → save)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: contentful-cms CLI
|
|
7
|
+
|
|
8
|
+
Use this skill when you need to read or edit content in Contentful CMS using the `cms-edit` CLI tool.
|
|
9
|
+
|
|
10
|
+
**Before editing:** use skill **`contentful-cms-editor-tasks`** to read `tasks-index` and the matching capability playbook for this site (hosted MCP or local `cms-edit/<site>/editor-pack/`).
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
`cms-edit` lets you read and edit Contentful draft content without publishing. It uses a **snapshot → ref → edit → save** workflow:
|
|
15
|
+
|
|
16
|
+
1. `open` a page to load the content tree into a session
|
|
17
|
+
2. `snapshot` to see the tree with `@ref` labels
|
|
18
|
+
3. `read` an entry to inspect its fields
|
|
19
|
+
4. `set` / `rtf` to modify fields
|
|
20
|
+
5. `diff` to review changes
|
|
21
|
+
6. `save` to write drafts to Contentful (NEVER publishes)
|
|
22
|
+
|
|
23
|
+
## Safety Rules
|
|
24
|
+
|
|
25
|
+
**This tool CANNOT and WILL NOT:**
|
|
26
|
+
- Publish any entry
|
|
27
|
+
- Unpublish any entry
|
|
28
|
+
- Archive or delete published entries
|
|
29
|
+
|
|
30
|
+
All `save` operations create **draft** versions. A human must review and publish in Contentful.
|
|
31
|
+
|
|
32
|
+
**Assets:** Upload **is** supported (`asset upload`). Default workflow: **search and reuse** existing assets first (`index sync` → `asset search`). When uploading:
|
|
33
|
+
- **Hosted MCP:** always `cms_edit_request_staged_upload` → curl → `asset upload --staged` (never `--base64`)
|
|
34
|
+
- **Local CLI:** `--base64` or `--url` when user approves local CLI
|
|
35
|
+
- Use a **sensible fileName** and **descriptive title** (and alt text where the site uses it)
|
|
36
|
+
- Avoid oversized images — width over **2000px** is usually wasteful for web (exact limits vary by project; check `asset audit` / media review guidance)
|
|
37
|
+
- Prefer `--if-exists-by-filename` to avoid duplicates
|
|
38
|
+
|
|
39
|
+
## Prerequisites
|
|
40
|
+
|
|
41
|
+
- `.contentful-cms.json` must exist in the project root (or ancestor directory)
|
|
42
|
+
- A Contentful Management Token with editor-only permissions (no publish rights) must be set as an env var and referenced in the config
|
|
43
|
+
|
|
44
|
+
To get the path to the full README (e.g. for an LLM to read): `cms-edit --docs`
|
|
45
|
+
|
|
46
|
+
## Core Workflow
|
|
47
|
+
|
|
48
|
+
### Step 1: Open a page
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# By page slug (trailing slash OK)
|
|
52
|
+
cms-edit open --page-slug /pricing
|
|
53
|
+
|
|
54
|
+
# By page cmsLabel (when editors use cmsLabel heavily)
|
|
55
|
+
cms-edit open --page-cms-label "Pricing page"
|
|
56
|
+
|
|
57
|
+
# By slug with explicit space
|
|
58
|
+
cms-edit --space om1 open --page-slug /pricing
|
|
59
|
+
|
|
60
|
+
# By Contentful entry ID
|
|
61
|
+
cms-edit open --id 4xKj2abcDef
|
|
62
|
+
|
|
63
|
+
# Home page (slug is 'index')
|
|
64
|
+
cms-edit open --page-slug /
|
|
65
|
+
|
|
66
|
+
# Include template menu/footer/nav (default open skips site chrome)
|
|
67
|
+
cms-edit open --include-chrome --page-slug /pricing
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`open` / `peek` fetch the page (or article) tree and the template entry, but **not** template `menu` / `footer` / navigation. Edit nav with `nav open`. Pass `--include-chrome` only when you need those trees.
|
|
71
|
+
|
|
72
|
+
**Flat lookup flags:** provide **exactly one** primary flag per `open` / `resolve` / `nav open`. See `cms-edit help lookup`. Run `cms-edit index sync` so catalog types resolve from the local index.
|
|
73
|
+
|
|
74
|
+
### Step 2: Read the snapshot
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cms-edit snapshot
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Output:
|
|
81
|
+
```
|
|
82
|
+
Page: /pricing [4xKj2abc | published] · om1
|
|
83
|
+
|
|
84
|
+
@c0 Component[HeroSimple] "Transparent Pricing" [published]
|
|
85
|
+
@c1 Component[RichText] "How it works" [published]
|
|
86
|
+
@c2 Collection[CardGrid] "Plans" [published]
|
|
87
|
+
@c3 Component[Card] "Starter" [published]
|
|
88
|
+
@c4 Component[Card] "Pro" [draft]
|
|
89
|
+
@c5 Component[CTA] "Get started today" [published]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Use `snapshot -c` for compact output (types only, no labels).
|
|
93
|
+
|
|
94
|
+
**Ref cheat sheet:**
|
|
95
|
+
| Ref | Resolves to |
|
|
96
|
+
|-----|-------------|
|
|
97
|
+
| `@root` | Root entry of the current session (works in any session type) |
|
|
98
|
+
| `@p0` | Root entry — alias for `@root` in **page** and **article** sessions only |
|
|
99
|
+
| `@c0` | Same as `@root` (first entry in depth-first traversal order) |
|
|
100
|
+
| `@c1`, `@c2`, … | Child entries in depth-first traversal order |
|
|
101
|
+
|
|
102
|
+
In **navigation sessions**, use `@root` or `@c0` for the nav root — `@p0` is not valid.
|
|
103
|
+
|
|
104
|
+
### Step 3: Read entry fields
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# All fields summary
|
|
108
|
+
cms-edit read @c0
|
|
109
|
+
|
|
110
|
+
# Specific field (shows plain text for scalars, Markdown for rich text)
|
|
111
|
+
cms-edit read @c0 heading
|
|
112
|
+
cms-edit read @c1 body
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Step 4: Edit fields
|
|
116
|
+
|
|
117
|
+
**Scalar fields** (heading, title, slug, showHeading, etc.):
|
|
118
|
+
```bash
|
|
119
|
+
cms-edit set @c0 heading "New heading text"
|
|
120
|
+
cms-edit set @c0 showHeading true
|
|
121
|
+
cms-edit set @c0 preHeading "Featured"
|
|
122
|
+
cms-edit set @c0 anchor "hero-section"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Bulk scalar updates** — set a field on multiple entries in one command:
|
|
126
|
+
```bash
|
|
127
|
+
cms-edit set @c1:cmsLabel="Hero — School avoidance" @c2:cmsLabel="What is school avoidance?" @c3:cmsLabel="Signs of school avoidance"
|
|
128
|
+
cms-edit set @c1:heading="Title A" @c2:heading="Title B"
|
|
129
|
+
```
|
|
130
|
+
Each token is `@ref:fieldName=value`. All values are scalar (string, boolean, number). Flags like `--link`, `--links`, `--json` do not apply in multi mode.
|
|
131
|
+
|
|
132
|
+
**Entry link fields** (template, articleType, etc. — value is the linked entry ID):
|
|
133
|
+
```bash
|
|
134
|
+
cms-edit set @c0 template 3I0HxGKbUd173wIpFCsbVr --link
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Entry link arrays** (`--links` works on any field that is an array of entry links — not just the standard page content fields):
|
|
138
|
+
```bash
|
|
139
|
+
# Standard page content arrays
|
|
140
|
+
cms-edit set @p0 content @c1,@c2,@c3 --links
|
|
141
|
+
cms-edit set @p0 bottomContent @c4 --links --append
|
|
142
|
+
|
|
143
|
+
# Navigation items array (use @root or @c0 in a nav session)
|
|
144
|
+
cms-edit set @root items <id1>,<id2>,<id3> --links
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Rich text fields** (body, additionalCopy):
|
|
148
|
+
```bash
|
|
149
|
+
printf '## Why it matters\n\nOur platform helps teams **move faster** with [confidence](https://example.com).\n\n- Instant setup\n- No code required\n- 99.9%% uptime\n' | cms-edit rtf @c1 body --markdown -
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Markdown support:
|
|
153
|
+
- `# Heading 1` through `###### Heading 6`
|
|
154
|
+
- `**bold**`, `_italic_`, `***bold italic***`
|
|
155
|
+
- `[link text](https://url)`
|
|
156
|
+
- `- item` for unordered lists, `1. item` for ordered
|
|
157
|
+
- `> blockquote`
|
|
158
|
+
- `` `inline code` ``
|
|
159
|
+
- `---` for horizontal rule
|
|
160
|
+
|
|
161
|
+
For any content with multiple paragraphs or newlines, use `printf` piped to stdin — `\n` in a double-quoted shell string is **not** interpreted as a newline by bash:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Correct — printf interprets \n properly
|
|
165
|
+
printf '## Why it matters\n\nOur platform helps teams **move faster**.\n\n- Instant setup\n- No code required\n' | cms-edit rtf @c1 body --markdown -
|
|
166
|
+
|
|
167
|
+
# Also correct — file input
|
|
168
|
+
cms-edit rtf @c1 body --markdown --content "# Heading\n\nBody."
|
|
169
|
+
cms-edit rtf @c1 body --markdown - < path/to/file.md
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Single-line content (no newlines) can be passed as a quoted argument directly:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
cms-edit rtf @c1 body --markdown "Simple single-paragraph body text with **bold**."
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Surgical rich text replace** (compliance / quidget tokens — does not re-import the whole field):
|
|
179
|
+
|
|
180
|
+
- Matching is **per Contentful text node** only. If the author split a phrase with bold (e.g. `**Annual fee: **$95`), the string `Annual fee: $95` will **not** match as one piece; use a shorter `--find` or full `rtf … --content`.
|
|
181
|
+
- Quidget strings contain `*`, which Markdown would treat as italic — use **`--replace-plain`**, not `--replace`.
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Replace every "$95" in this field with the quidget (e.g. multiple table cells)
|
|
185
|
+
cms-edit rtf replace @c2 body --find '$95' --replace-plain '{*credit_card_id*:*5048345*,*field*:*annual_fees*,*api*:*cc*}' --mode all
|
|
186
|
+
|
|
187
|
+
# Exactly one occurrence required (fails if 0 or 2+)
|
|
188
|
+
cms-edit rtf replace @c2 body --find '75,000 miles after spending $4,000 in the first 3 months' \
|
|
189
|
+
--replace-plain '{*credit_card_id*:*5048345*,*field*:*bonus_miles*,*api*:*cc*}' --mode exactlyOne
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Step 5: Review changes
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
cms-edit diff
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Shows a diff of all modified fields across all changed entries.
|
|
199
|
+
|
|
200
|
+
### Step 6: Save
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
cms-edit save
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Writes all changes to Contentful as **drafts**. The changes are visible in Contentful's web app but NOT live until a human publishes them.
|
|
207
|
+
|
|
208
|
+
After saving, the session is cleared automatically if all changes were saved.
|
|
209
|
+
|
|
210
|
+
### Discard
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
cms-edit discard
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Throws away all unsaved local changes without writing to Contentful.
|
|
217
|
+
|
|
218
|
+
## Content Field Names
|
|
219
|
+
|
|
220
|
+
Based on the SE Studio content model:
|
|
221
|
+
|
|
222
|
+
### Component fields
|
|
223
|
+
| Field | Type | Notes |
|
|
224
|
+
|-------|------|-------|
|
|
225
|
+
| `cmsLabel` | string | Internal name (required) |
|
|
226
|
+
| `componentType` | string | Type discriminator (e.g. `HeroSimple`) |
|
|
227
|
+
| `heading` | string | Main heading (only shown when `showHeading` is true) |
|
|
228
|
+
| `showHeading` | boolean | Whether to display the heading |
|
|
229
|
+
| `preHeading` | string | Text above the heading |
|
|
230
|
+
| `postHeading` | string | Text below the heading |
|
|
231
|
+
| `body` | rich text | Main body copy |
|
|
232
|
+
| `additionalCopy` | rich text | Secondary body copy |
|
|
233
|
+
| `anchor` | string | Section anchor ID |
|
|
234
|
+
| `backgroundColour` | string | Background colour name |
|
|
235
|
+
| `textColour` | string | Text colour name |
|
|
236
|
+
|
|
237
|
+
### Collection fields
|
|
238
|
+
Same as Component plus:
|
|
239
|
+
| Field | Type | Notes |
|
|
240
|
+
|-------|------|-------|
|
|
241
|
+
| `collectionType` | string | Type discriminator (e.g. `CardGrid`) |
|
|
242
|
+
|
|
243
|
+
### Page fields
|
|
244
|
+
| Field | Type | Notes |
|
|
245
|
+
|-------|------|-------|
|
|
246
|
+
| `slug` | string | URL slug (no leading slash in CMS) |
|
|
247
|
+
| `title` | string | SEO/display title |
|
|
248
|
+
| `description` | string | Meta description |
|
|
249
|
+
| `indexed` | boolean | Whether to index in search engines |
|
|
250
|
+
|
|
251
|
+
## Order of operations: article + CTA
|
|
252
|
+
|
|
253
|
+
When adding body content and a CTA (e.g. PDF download) to an article:
|
|
254
|
+
|
|
255
|
+
1. `cms-edit open --article-slug <slug>` (or `open --id <id>`)
|
|
256
|
+
2. Set body: `cms-edit rtf @<ref> body --markdown "..."` or `--content` / `--base64`. If you need to add a body component first, use `add` then `rtf`.
|
|
257
|
+
3. `cms-edit add CTA --target bottomContent`
|
|
258
|
+
4. Set CTA links: use `--type external --label "Download PDF" --href <url>` for an external PDF URL, or `--type download --label "Download PDF" --asset-id <asset-id>` for a Contentful asset (get the ID from `cms-edit asset search "..."` or `asset info <id>`).
|
|
259
|
+
5. `cms-edit save`
|
|
260
|
+
|
|
261
|
+
## Structure Commands
|
|
262
|
+
|
|
263
|
+
### Add a new component
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# Add at the end of page content
|
|
267
|
+
cms-edit add HeroSimple
|
|
268
|
+
|
|
269
|
+
# Add to article/page bottomContent (when session is an article or page)
|
|
270
|
+
cms-edit add CTA --target bottomContent
|
|
271
|
+
|
|
272
|
+
# Add after a specific component
|
|
273
|
+
cms-edit add HeroSimple --after @c1
|
|
274
|
+
|
|
275
|
+
# Add inside a collection (--parent derives target field from the parent's content type)
|
|
276
|
+
# collection parent → uses 'contents'; page/article parent → uses 'content' by default
|
|
277
|
+
cms-edit add Card --parent @c2
|
|
278
|
+
cms-edit add Hero --parent @c0 --target content # explicit target when parent is a page
|
|
279
|
+
|
|
280
|
+
# Add an explicit collection type
|
|
281
|
+
cms-edit add CardGrid --content-type collection
|
|
282
|
+
|
|
283
|
+
# Link an EXISTING entry instead of creating a new one (e.g. a shared CTA used on every page)
|
|
284
|
+
cms-edit add CTA --content-type component --existing-id 4xKj2abcDef
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Discover available types first:
|
|
288
|
+
```bash
|
|
289
|
+
cms-edit schema types component
|
|
290
|
+
cms-edit schema types collection
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Remove a component
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
cms-edit remove @c3
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
If the entry is a draft and unreferenced elsewhere, it will be deleted on save. If it's published, it's unlinked only.
|
|
300
|
+
|
|
301
|
+
### Move/reorder
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# Move @c3 to after @c1
|
|
305
|
+
cms-edit move @c3 --after @c1
|
|
306
|
+
|
|
307
|
+
# Move to before @c1
|
|
308
|
+
cms-edit move @c3 --before @c1
|
|
309
|
+
|
|
310
|
+
# Move to first position
|
|
311
|
+
cms-edit move @c3
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Links (CTAs)
|
|
315
|
+
|
|
316
|
+
Put the ref **after the subcommand** (e.g. `links add @c5`). The `links add` command creates the link entry and attaches it to the CTA in one step.
|
|
317
|
+
|
|
318
|
+
- **External:** `--type external --label "..." --href <url>` (required: `--href`)
|
|
319
|
+
- **Internal:** use `--slug /page` to look up by slug, or `--id <entry-id>` to reference by Contentful entry ID (required: `--slug` or `--id`)
|
|
320
|
+
- **Download:** `--type download --label "..." --asset-id <asset-id>` (required: `--asset-id`; get the ID from `asset search` or `asset info`)
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# List current links
|
|
324
|
+
cms-edit links list @c5
|
|
325
|
+
|
|
326
|
+
# Add an external link
|
|
327
|
+
cms-edit links add @c5 --type external --label "Learn more" --href https://example.com
|
|
328
|
+
|
|
329
|
+
# Add an external PDF CTA (URL to the file)
|
|
330
|
+
cms-edit links add @c5 --type external --label "Download PDF" --href "https://www.example.com/whitepaper.pdf"
|
|
331
|
+
|
|
332
|
+
# Add an internal link by slug
|
|
333
|
+
cms-edit links add @c5 --type internal --label "Pricing" --slug /pricing
|
|
334
|
+
|
|
335
|
+
# Add an internal link by entry ID
|
|
336
|
+
cms-edit links add @c5 --type internal --label "About" --id 4xKj2abcDef
|
|
337
|
+
|
|
338
|
+
# Add a download link (Contentful asset)
|
|
339
|
+
cms-edit links add @c5 --type download --label "Download PDF" --asset-id 5xKj2abcDef
|
|
340
|
+
|
|
341
|
+
# Remove link at index 1
|
|
342
|
+
cms-edit links remove @c5 1
|
|
343
|
+
|
|
344
|
+
# Move link from index 2 to index 0
|
|
345
|
+
cms-edit links move @c5 2 0
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
You can also bulk-replace the `links` array on a component using `set --links`:
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
# Replace the entire links array with specific IDs
|
|
352
|
+
cms-edit set @c5 links linkId1,linkId2,linkId3 --links
|
|
353
|
+
|
|
354
|
+
# Append a link entry ID to the existing array
|
|
355
|
+
cms-edit set @c5 links linkId4 --links --append
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
## Assets
|
|
359
|
+
|
|
360
|
+
**Content index:** Run `cms-edit index sync` once per space before asset search, media-by-filename list, asset audit, or `--if-exists-by-filename`. The same sync indexes the full **content catalog** (pages, articles, taxonomy, navigation, templates) for fast `list`, `open`, and `resolve`. Default sync uses the **Preview API** (draft content). See `cms-edit help index-sync` and `cms-edit help lookup`.
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
cms-edit index sync
|
|
364
|
+
cms-edit index status
|
|
365
|
+
cms-edit list --type page
|
|
366
|
+
cms-edit list --type template
|
|
367
|
+
cms-edit resolve --tag-type-slug topic
|
|
368
|
+
|
|
369
|
+
# Published-only index (optional)
|
|
370
|
+
cms-edit index sync --published
|
|
371
|
+
|
|
372
|
+
# Search for an asset by title (requires index)
|
|
373
|
+
cms-edit asset search "hero background"
|
|
374
|
+
|
|
375
|
+
# Search by fileName
|
|
376
|
+
cms-edit asset search --filename istockphoto-123.jpg
|
|
377
|
+
cms-edit asset search --filename-match 'istockphoto-.*'
|
|
378
|
+
|
|
379
|
+
# Local CLI — URL or base64 (hosted MCP rejects --base64)
|
|
380
|
+
cms-edit asset upload --url https://example.com/image.jpg --if-exists-by-filename
|
|
381
|
+
cms-edit asset upload --base64 "$B64" --mime image/png --file-name poster.png
|
|
382
|
+
|
|
383
|
+
# Hosted MCP — always staged upload for binary files
|
|
384
|
+
# cms_edit_request_staged_upload → curl uploadUrl → consumeArgs
|
|
385
|
+
# cms_edit ["asset", "upload", "--staged", "<uploadId>", "--mime", "image/png", "--file-name", "photo.png"]
|
|
386
|
+
|
|
387
|
+
# Upload and create a Media wrapper in one step (--media-name defaults to asset title)
|
|
388
|
+
cms-edit asset upload ./figure.png --with-media --media-position Middle
|
|
389
|
+
|
|
390
|
+
# Create a Media wrapper for an existing asset (name defaults to asset title)
|
|
391
|
+
cms-edit create media --asset-id <asset-id>
|
|
392
|
+
|
|
393
|
+
# Fix a badly labelled Media wrapper (migration "Wrapper for …" labels)
|
|
394
|
+
cms-edit batch set <media-entry-id>:name=<asset-title>
|
|
395
|
+
cms-edit batch save
|
|
396
|
+
|
|
397
|
+
# Get asset details
|
|
398
|
+
cms-edit asset info 5xKj2abcDef
|
|
399
|
+
|
|
400
|
+
# Set a visual field
|
|
401
|
+
cms-edit asset set @c0 visual 5xKj2abcDef
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
JSON output for upload (`CMS_EDIT_JSON=1`): `{ ok, id, fileName, url, mediaId?, mediaIds? }`. Max upload size is **10MB** per file.
|
|
405
|
+
|
|
406
|
+
**Idempotent upload:** `--if-exists-by-filename` is check-then-create. Do not upload the same `fileName` in parallel — serialize per fileName or re-run to converge.
|
|
407
|
+
|
|
408
|
+
## Navigation
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
# Open a navigation entry (navigation uses `name`, not slug)
|
|
412
|
+
cms-edit nav open --nav-name "Main navigation"
|
|
413
|
+
|
|
414
|
+
# Add a new item
|
|
415
|
+
cms-edit nav add --label "Pricing" --slug /pricing
|
|
416
|
+
cms-edit nav add --label "Docs" --href https://docs.example.com --after @c1
|
|
417
|
+
|
|
418
|
+
# Link an existing NavigationItem (share items across navigations)
|
|
419
|
+
cms-edit nav add --existing-id <navigationItem-entry-id>
|
|
420
|
+
|
|
421
|
+
# Clone a navigation (duplicates all items)
|
|
422
|
+
cms-edit nav clone <source-nav-id>
|
|
423
|
+
cms-edit nav clone <source-nav-id> --label "LP Nav" --slug lp-nav
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
## Create New Entries
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# Create a new page (session opens on the new entry)
|
|
430
|
+
# All flags after --title are optional
|
|
431
|
+
cms-edit create page --slug /about-us --title "About Us" --description "Learn about our team"
|
|
432
|
+
cms-edit create page --slug /about-us --title "About Us" \
|
|
433
|
+
--template-id <template-entry-id> \
|
|
434
|
+
--featured-image <asset-id> \
|
|
435
|
+
--indexed \
|
|
436
|
+
--cms-label "About Us (internal)"
|
|
437
|
+
|
|
438
|
+
# Create a new article (requires articleType entry ID)
|
|
439
|
+
cms-edit create article --slug /blog/my-post --title "My Post" --article-type-id 3abcDef456
|
|
440
|
+
|
|
441
|
+
# Create taxonomy entries (draft only)
|
|
442
|
+
cms-edit create tag-type --slug conference-venue --name "Conference Venue"
|
|
443
|
+
cms-edit create article-type --slug resources/publications --name "Publications"
|
|
444
|
+
cms-edit create tag --slug poster-presentation --name "Poster Presentation" --tag-type-slug presentation-type
|
|
445
|
+
# cmsLabel defaults to "<tagType name> — <tag name>" when --cms-label omitted
|
|
446
|
+
cms-edit create tag --slug easl-congress-2026 --name "EASL Congress 2026" --tag-type publication-source \
|
|
447
|
+
--description "Research presented at EASL Congress 2026." --featured-image <logoAssetId>
|
|
448
|
+
|
|
449
|
+
# Full fields via JSON
|
|
450
|
+
cms-edit create tag --json '{"slug":"presentation"}' --tag-type presentation-type --if-not-exists
|
|
451
|
+
|
|
452
|
+
# Batch bootstrap
|
|
453
|
+
cms-edit create taxonomy-from-json --json '{"tagTypes":[...]}' --if-not-exists
|
|
454
|
+
|
|
455
|
+
# Idempotent single-entry creates
|
|
456
|
+
cms-edit create tag-type --slug conference-venue --name "Conference Venue" --if-not-exists
|
|
457
|
+
cms-edit create tag --slug asco-2025 --name "ASCO 2025" --tag-type conference-venue \
|
|
458
|
+
--description "Annual ASCO conference." --featured-image <logoAssetId> --if-not-exists
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
See `cms-edit help fields-taxonomy` and `cms-edit help taxonomy-from-json` for field reference and batch schema.
|
|
462
|
+
|
|
463
|
+
## Person entries
|
|
464
|
+
|
|
465
|
+
Key fields: `name`, `slug`, `jobTitle`, `description`, `media` (featured image), **`bio`** (rich text).
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
# Add a person to a collection or page content array
|
|
469
|
+
cms-edit add "Dr. Jane Smith" --content-type person
|
|
470
|
+
|
|
471
|
+
# Scalars
|
|
472
|
+
cms-edit set @c0 name "Dr. Jane Smith"
|
|
473
|
+
cms-edit set @c0 slug jane-smith
|
|
474
|
+
cms-edit set @c0 jobTitle "Chief Medical Officer"
|
|
475
|
+
|
|
476
|
+
# Bio (same RTF workflow as component body)
|
|
477
|
+
printf '## Background\n\nBoard-certified with 20 years of experience.\n' | cms-edit rtf @c0 bio --markdown -
|
|
478
|
+
cms-edit read @c0 bio
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
**Site/runtime:** Resolved **person links** (`IPersonLink` from the REST API — article authors, collection contents, `contentfulAllPersonLinks`, related-people helpers) include **`bio`** when set in CMS. Use for team cards, related-people collections, and markdown/search export — not only full person detail pages.
|
|
482
|
+
|
|
483
|
+
**Idempotent taxonomy:** `--if-not-exists` is check-then-create — safe for sequential imports, not for parallel creates on the same slug.
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
# Resolve taxonomy IDs without a session
|
|
487
|
+
cms-edit resolve --tag-type-slug presentation-type
|
|
488
|
+
cms-edit resolve --tag-name "ASCO 2025" --tag-type-name "Conference Venue"
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
Use flat flags: `--page-slug`, `--article-cms-label`, `--tag-slug`, `--template-label`, etc. (`cms-edit help lookup`).
|
|
492
|
+
|
|
493
|
+
## Search and Discovery
|
|
494
|
+
|
|
495
|
+
```bash
|
|
496
|
+
# Search entries full-text (searches all content types by default)
|
|
497
|
+
cms-edit search "pricing page"
|
|
498
|
+
cms-edit search "hero" --type component
|
|
499
|
+
|
|
500
|
+
# List valid type values
|
|
501
|
+
cms-edit schema types component
|
|
502
|
+
cms-edit schema types collection
|
|
503
|
+
|
|
504
|
+
# List entries with filters
|
|
505
|
+
cms-edit list --type article --sort date -n 10 # recent articles by publication date
|
|
506
|
+
cms-edit list --type article --has-download # articles with a download asset
|
|
507
|
+
cms-edit list --type article --slug my-article # article with a specific slug
|
|
508
|
+
cms-edit list --type article --has-field tags # articles where tags field is non-empty
|
|
509
|
+
|
|
510
|
+
# Find draft articles, then peek/open (both support drafts via CMA)
|
|
511
|
+
cms-edit list --type article --sort date
|
|
512
|
+
cms-edit peek --article-slug resources/blog/my-post
|
|
513
|
+
# Only list --published / resolve --published are published-only
|
|
514
|
+
|
|
515
|
+
# Resolve any entry or asset by ID (no open session required)
|
|
516
|
+
cms-edit resolve --id 4xKj2abcDefGhijK # entry: shows type, title, slug, status
|
|
517
|
+
cms-edit resolve --id 7pQrStuvWxyzAbc # asset: shows title, fileName, URL
|
|
518
|
+
cms-edit resolve --tag-type-slug presentation-type
|
|
519
|
+
cms-edit resolve --tag-slug asco-2025 --tag-type-slug conference-venue
|
|
520
|
+
cms-edit resolve --tag-type-slug presentation-type --json
|
|
521
|
+
|
|
522
|
+
# Find Media entries by asset
|
|
523
|
+
cms-edit list --type media --asset-id 7pQrStuvWxyzAbc
|
|
524
|
+
cms-edit list --type media --asset-filename istockphoto-123.jpg
|
|
525
|
+
cms-edit list --type media --asset-filename-match 'istockphoto-.*'
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
To resolve a **tag entry ID** to its slug or label (e.g. for constructing article URLs such as `/resources/publications/<tag>/<slug>`):
|
|
529
|
+
|
|
530
|
+
```bash
|
|
531
|
+
cms-edit resolve <tag-entry-id>
|
|
532
|
+
# Output includes: content type, title/slug, status
|
|
533
|
+
# Use the slug field value to build the URL path segment
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
## Multi-space
|
|
537
|
+
|
|
538
|
+
```bash
|
|
539
|
+
# Specify space explicitly
|
|
540
|
+
cms-edit --space brightline open --page-slug /home
|
|
541
|
+
cms-edit --space om1 open --page-slug /pricing
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
Or set `CMS_EDIT_SPACE=om1` environment variable.
|
|
545
|
+
|
|
546
|
+
## Complete Example: Update a Hero Section
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
# 1. Open the page
|
|
550
|
+
cms-edit open --page-slug /about-us
|
|
551
|
+
|
|
552
|
+
# 2. Find the hero component
|
|
553
|
+
cms-edit snapshot
|
|
554
|
+
|
|
555
|
+
# 3. Read it to understand current state
|
|
556
|
+
cms-edit read @c0
|
|
557
|
+
|
|
558
|
+
# 4. Update the heading
|
|
559
|
+
cms-edit set @c0 heading "We build for the future"
|
|
560
|
+
|
|
561
|
+
# 5. Update the body copy (use printf for multiline content)
|
|
562
|
+
printf '## Our mission\n\nWe help companies **ship faster** and _smarter_.\n\n- Founded in 2018\n- 500+ clients\n- [Join us](/careers)\n' | cms-edit rtf @c0 body --markdown -
|
|
563
|
+
|
|
564
|
+
# 6. Review
|
|
565
|
+
cms-edit diff
|
|
566
|
+
|
|
567
|
+
# 7. Save as draft
|
|
568
|
+
cms-edit save
|
|
569
|
+
# → "Saved 1 entry as draft. A human must publish for changes to go live."
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
## Common Patterns
|
|
573
|
+
|
|
574
|
+
### Update an existing article
|
|
575
|
+
```bash
|
|
576
|
+
cms-edit open --article-slug /blog/old-title # or cms-edit open --id <id>
|
|
577
|
+
cms-edit set @p0 title "New Article Title" # @p0 works in article sessions too
|
|
578
|
+
cms-edit set @p0 slug new-article-slug
|
|
579
|
+
cms-edit set @p0 description "Updated description"
|
|
580
|
+
cms-edit save
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### Add a new section to a page
|
|
584
|
+
```bash
|
|
585
|
+
cms-edit open --page-slug /products
|
|
586
|
+
cms-edit schema types component # discover what's available
|
|
587
|
+
cms-edit add CTA --after @c3
|
|
588
|
+
cms-edit set @c4 heading "Ready to get started?"
|
|
589
|
+
cms-edit rtf @c4 body --markdown "Join thousands of teams who trust us."
|
|
590
|
+
cms-edit links add @c4 --type external --label "Start free trial" --href https://app.example.com
|
|
591
|
+
cms-edit save
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
### Reorder page sections
|
|
595
|
+
```bash
|
|
596
|
+
cms-edit open --page-slug /home
|
|
597
|
+
cms-edit snapshot # see current order
|
|
598
|
+
cms-edit move @c3 --after @c1 # move section 3 to position 2
|
|
599
|
+
cms-edit save
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
## Visual checks
|
|
603
|
+
|
|
604
|
+
cms-edit does not capture screenshots. Use preview URL commands, then open the URL with a browser MCP (e.g. Chrome DevTools) to verify layout after edits.
|
|
605
|
+
|
|
606
|
+
**Config:** Add `devBaseUrl` to the space in `.contentful-cms.json`:
|
|
607
|
+
|
|
608
|
+
```json
|
|
609
|
+
{
|
|
610
|
+
"spaces": {
|
|
611
|
+
"om1": {
|
|
612
|
+
"devBaseUrl": "http://localhost:3013"
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
```bash
|
|
619
|
+
# Page (explicit slug or open session root)
|
|
620
|
+
cms-edit preview url /pricing
|
|
621
|
+
cms-edit open --page-slug /pricing
|
|
622
|
+
cms-edit preview url
|
|
623
|
+
|
|
624
|
+
# Component or collection showcase (mock data)
|
|
625
|
+
cms-edit preview showcase --component HeroSimple
|
|
626
|
+
cms-edit preview showcase --collection CardGrid --param backgroundColour=Navy
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
For CMS guidelines batch PNG capture, use `cms-capture-screenshots` from `@se-studio/project-build` (separate from cms-edit; requires agent-browser).
|
|
630
|
+
|
|
631
|
+
## Undo changes
|
|
632
|
+
|
|
633
|
+
There is no field-level revert command. To abandon unsaved edits: `cms-edit diff` to review, then `cms-edit discard` (or `discard --all`). To roll back saved drafts, use the Contentful web app version history.
|
|
634
|
+
|
|
635
|
+
Note: Entries created via `add` that you have not saved can be removed with `cms-edit remove <ref>`.
|
|
636
|
+
|
|
637
|
+
## Health Check
|
|
638
|
+
|
|
639
|
+
Validate config and connectivity before running a workflow.
|
|
640
|
+
|
|
641
|
+
```bash
|
|
642
|
+
cms-edit health # Check config file, space config, Contentful connectivity
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
## Schema Inspection
|
|
646
|
+
|
|
647
|
+
Inspect field definitions for a content type. Use `cms-edit schema types <ct>` for type-discriminator values only.
|
|
648
|
+
|
|
649
|
+
```bash
|
|
650
|
+
cms-edit schema component # Show all fields, types, enum values, link targets
|
|
651
|
+
cms-edit schema component --json # Full JSON output
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
## Content catalog (`list`)
|
|
655
|
+
|
|
656
|
+
Browse entries by content type (index-backed for catalog types). Run `cms-edit index sync` once per space, or let commands auto-sync.
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
cms-edit list --type page # All pages (label sort)
|
|
660
|
+
cms-edit list --type page --sort updated # Most recently updated first
|
|
661
|
+
cms-edit list --type article --sort date # Articles by publication date
|
|
662
|
+
cms-edit list --type pageVariant # A/B or variant pages
|
|
663
|
+
cms-edit list --type tag --tag-type-name "Topic" # Tags under a tag type
|
|
664
|
+
cms-edit list --type tagType # Tag types
|
|
665
|
+
cms-edit list --type articleType # Article types
|
|
666
|
+
cms-edit list --type navigation # Navigations
|
|
667
|
+
cms-edit list --type person --force-cma # People (not in catalog index)
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
## Peek
|
|
671
|
+
|
|
672
|
+
Inspect a page without affecting your active session.
|
|
673
|
+
|
|
674
|
+
```bash
|
|
675
|
+
cms-edit peek --page-slug /pricing # Show snapshot of /pricing; your active session is unchanged
|
|
676
|
+
cms-edit peek --id <entryId> # Look up by entry ID
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
## Batch Operations (batch run)
|
|
680
|
+
|
|
681
|
+
Run a sequence of operations from a JSON file or stdin.
|
|
682
|
+
|
|
683
|
+
```bash
|
|
684
|
+
cms-edit batch run --json '[...]' # Run batch ops from inline JSON
|
|
685
|
+
echo '[...]' | cms-edit batch run # Pipe from stdin
|
|
686
|
+
cms-edit batch run --json '[...]' --dry-run # Validate without saving
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
Supported ops: `open`, `set`, `rtf`, `rtf-replace`, `save`, `add`, `links-add`.
|
|
690
|
+
|
|
691
|
+
| Op | args | opts |
|
|
692
|
+
|----|------|------|
|
|
693
|
+
| `open` | `["/slug"]` | — |
|
|
694
|
+
| `set` | `[ref, field, value]` | — |
|
|
695
|
+
| `rtf` | `[ref, field, markdown]` | — |
|
|
696
|
+
| `rtf-replace` | `[ref, field]` | `{ find, replacePlain?, mode? }` |
|
|
697
|
+
| `save` | — | — |
|
|
698
|
+
| `add` | `[type, contentType]` | `{ after?, parent?, target?, existingId? }` |
|
|
699
|
+
| `links-add` | `[ref]` | `{ type, label, href?, slug?, id?, assetId? }` |
|
|
700
|
+
|
|
701
|
+
The `add` op returns the new `@ref` in the step message; subsequent ops can reference it.
|
|
702
|
+
|
|
703
|
+
Example `ops.json` — update an existing page with a new CTA that has two buttons:
|
|
704
|
+
```json
|
|
705
|
+
[
|
|
706
|
+
{ "cmd": "open", "args": ["/pricing"] },
|
|
707
|
+
{ "cmd": "add", "args": ["CTA", "component"], "opts": { "target": "bottomContent" } },
|
|
708
|
+
{ "cmd": "set", "args": ["@c5", "heading", "Ready to get started?"] },
|
|
709
|
+
{ "cmd": "links-add", "args": ["@c5"], "opts": { "type": "external", "label": "Start free trial", "href": "https://app.example.com" } },
|
|
710
|
+
{ "cmd": "links-add", "args": ["@c5"], "opts": { "type": "internal", "label": "Learn more", "slug": "/about" } },
|
|
711
|
+
{ "cmd": "save" }
|
|
712
|
+
]
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
## Create Page or Article from JSON
|
|
716
|
+
|
|
717
|
+
Create a complete page or article — including all components, fields, and CTA links — from a single declarative JSON file. This is the recommended approach for creating multiple pages or articles in bulk.
|
|
718
|
+
|
|
719
|
+
```bash
|
|
720
|
+
cms-edit create from-json --json '{...}' # Create from inline JSON
|
|
721
|
+
cms-edit create from-json --json '{...}' --dry-run # Preview without writing
|
|
722
|
+
cat page.json | cms-edit create from-json # Pipe from stdin
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
**Page JSON schema:**
|
|
726
|
+
|
|
727
|
+
```json
|
|
728
|
+
{
|
|
729
|
+
"type": "page",
|
|
730
|
+
"slug": "/parent-coaching/digital-life-safety/cyberbullying",
|
|
731
|
+
"title": "Cyberbullying",
|
|
732
|
+
"description": "Optional meta description (SEO)",
|
|
733
|
+
"templateId": "contentful-template-entry-id",
|
|
734
|
+
"indexed": true,
|
|
735
|
+
"components": [
|
|
736
|
+
{
|
|
737
|
+
"contentType": "component",
|
|
738
|
+
"type": "HeroSimple",
|
|
739
|
+
"cmsLabel": "Hero — Protecting Your Child from Cyberbullying",
|
|
740
|
+
"target": "content",
|
|
741
|
+
"fields": {
|
|
742
|
+
"heading": "Protecting Your Child from Cyberbullying",
|
|
743
|
+
"body": "## Why it matters\n\nContent here with **bold** and [links](https://example.com).",
|
|
744
|
+
"backgroundColour": "Yellow"
|
|
745
|
+
},
|
|
746
|
+
"links": [
|
|
747
|
+
{ "type": "external", "label": "Download Guide", "href": "https://example.com/guide.pdf" },
|
|
748
|
+
{ "type": "internal", "label": "Learn More", "slug": "/resources" }
|
|
749
|
+
]
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"contentType": "collection",
|
|
753
|
+
"type": "CardGrid",
|
|
754
|
+
"cmsLabel": "Related topics grid",
|
|
755
|
+
"fields": { "heading": "Related topics" },
|
|
756
|
+
"items": [
|
|
757
|
+
{
|
|
758
|
+
"contentType": "component",
|
|
759
|
+
"type": "Card",
|
|
760
|
+
"cmsLabel": "Card — Screen Time",
|
|
761
|
+
"fields": { "heading": "Screen Time" }
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
"existingId": "abc123def456",
|
|
765
|
+
"comment": "Reuse existing 'Emotional Regulation' card"
|
|
766
|
+
}
|
|
767
|
+
]
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
"existingId": "xyz789ghi012",
|
|
771
|
+
"comment": "Shared 'Join BLK Now' CTA reused on every page"
|
|
772
|
+
}
|
|
773
|
+
]
|
|
774
|
+
}
|
|
775
|
+
```
|
|
776
|
+
|
|
777
|
+
**Article JSON schema:**
|
|
778
|
+
|
|
779
|
+
```json
|
|
780
|
+
{
|
|
781
|
+
"type": "article",
|
|
782
|
+
"slug": "/resources/publications/cyberbullying/new-research-2025",
|
|
783
|
+
"title": "New Research on Cyberbullying 2025",
|
|
784
|
+
"description": "Key findings from the 2025 cyberbullying study.",
|
|
785
|
+
"articleTypeId": "3abcDef456ghi",
|
|
786
|
+
"date": "2025-04-14",
|
|
787
|
+
"components": [
|
|
788
|
+
{
|
|
789
|
+
"contentType": "component",
|
|
790
|
+
"type": "RichText",
|
|
791
|
+
"fields": {
|
|
792
|
+
"body": "## Introduction\n\nNew research shows..."
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
"contentType": "component",
|
|
797
|
+
"type": "CTA",
|
|
798
|
+
"target": "bottomContent",
|
|
799
|
+
"links": [
|
|
800
|
+
{ "type": "external", "label": "Download Full Report", "href": "https://example.com/report.pdf" }
|
|
801
|
+
]
|
|
802
|
+
}
|
|
803
|
+
]
|
|
804
|
+
}
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
- `type` defaults to `"page"`. Set `"type": "article"` (or include `articleTypeId`) for articles.
|
|
808
|
+
- `articleTypeId` is required for articles. Find valid IDs with `cms-edit list --type articleType`.
|
|
809
|
+
- `date` defaults to today (YYYY-MM-DD) if omitted.
|
|
810
|
+
|
|
811
|
+
**Key points:**
|
|
812
|
+
- Any component entry in `components` or `items` may use `{ existingId }` to link an existing entry instead of creating a new one.
|
|
813
|
+
- The same applies to `links` entries — use `{ existingId }` to attach an existing link entry.
|
|
814
|
+
- `cmsLabel` sets the human-readable label shown in Contentful's entry list. Defaults to `type` or `contentType` if omitted. **Always set `cmsLabel` on components when a page has multiple instances of the same type** (e.g. three CTAs) — editors need to distinguish them.
|
|
815
|
+
- String `fields` values become Rich Text when they auto-detect as Markdown (same heuristic), HTML (tag-like), or Rich Text JSON (`nodeType: document`). Otherwise strings stay as-is — use `{ "value": "…", "format": "text"|"markdown"|"html"|"json" }` or `cms-edit rtf` with `--text|--markdown|--html|--rtf-json`.
|
|
816
|
+
- `target` sets which content array to use: `topContent`, `content` (default), or `bottomContent`.
|
|
817
|
+
- Slugs must not have a trailing slash — `from-json` strips it with a warning, but avoid it in source JSON.
|
|
818
|
+
- All entries are created as **drafts**. A human must publish in Contentful.
|
|
819
|
+
- `--dry-run` prints the full plan without writing anything.
|
|
820
|
+
|
|
821
|
+
## Find Existing Entries (for existingId)
|
|
822
|
+
|
|
823
|
+
When building page JSON that references existing entries, find their Contentful IDs first:
|
|
824
|
+
|
|
825
|
+
```bash
|
|
826
|
+
# Search for a shared component by name
|
|
827
|
+
cms-edit search "join blk now" --type component --json
|
|
828
|
+
# → output includes "id" field — use this as existingId in your page JSON
|
|
829
|
+
|
|
830
|
+
# Browse all components of a specific type
|
|
831
|
+
cms-edit list --type component --filter 'fields.componentType=CTA'
|
|
832
|
+
|
|
833
|
+
# Confirm an entry before referencing it
|
|
834
|
+
cms-edit resolve 4xKj2abcDef
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
## Inventory & Status
|
|
838
|
+
|
|
839
|
+
Use `list --type <type>` for inventory. Catalog types (page, article, pageVariant, template, taxonomy, navigation) use the local index. Use `--force-cma` for other types (person, customType, pageTest) or published-only with `--published`.
|
|
840
|
+
|
|
841
|
+
```bash
|
|
842
|
+
cms-edit list --type page
|
|
843
|
+
cms-edit list --type article --sort date -n 20
|
|
844
|
+
cms-edit index dump --reference-only # Full catalog snapshot in terminal
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
**Note on bulk publish:** The tool cannot publish entries — all saves create drafts only. This is intentional. Review and publish drafts from the Contentful web app.
|
|
848
|
+
|
|
849
|
+
## Concurrent Sessions
|
|
850
|
+
|
|
851
|
+
Use `--session <name>` or `CONTENTFUL_CMS_SESSION=<name>` to isolate parallel workflows.
|
|
852
|
+
|
|
853
|
+
```bash
|
|
854
|
+
cms-edit --session agent-1 open --page-slug /pricing
|
|
855
|
+
cms-edit --session agent-2 open --article-slug /blog
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
## Related skills
|
|
859
|
+
|
|
860
|
+
For templates see the **templates** skill; for navigation see the **navigation** skill; for rich text and embeds see the **rich-text** skill.
|