@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.
Files changed (1031) hide show
  1. package/CHANGELOG.md +1117 -0
  2. package/HOSTED.md +152 -0
  3. package/INSTALL.md +29 -0
  4. package/README.md +674 -0
  5. package/dist/audit/asset-usage.d.ts +29 -0
  6. package/dist/audit/asset-usage.d.ts.map +1 -0
  7. package/dist/audit/asset-usage.js +99 -0
  8. package/dist/audit/asset-usage.js.map +1 -0
  9. package/dist/audit/media-review-rules.d.ts +33 -0
  10. package/dist/audit/media-review-rules.d.ts.map +1 -0
  11. package/dist/audit/media-review-rules.js +120 -0
  12. package/dist/audit/media-review-rules.js.map +1 -0
  13. package/dist/audit/media-review.d.ts +45 -0
  14. package/dist/audit/media-review.d.ts.map +1 -0
  15. package/dist/audit/media-review.js +69 -0
  16. package/dist/audit/media-review.js.map +1 -0
  17. package/dist/bin/cms-edit.d.ts +4 -0
  18. package/dist/bin/cms-edit.d.ts.map +1 -0
  19. package/dist/bin/cms-edit.js +46 -0
  20. package/dist/bin/cms-edit.js.map +1 -0
  21. package/dist/cli/program.d.ts +9 -0
  22. package/dist/cli/program.d.ts.map +1 -0
  23. package/dist/cli/program.js +152 -0
  24. package/dist/cli/program.js.map +1 -0
  25. package/dist/cli/read-json-input.d.ts +27 -0
  26. package/dist/cli/read-json-input.d.ts.map +1 -0
  27. package/dist/cli/read-json-input.js +65 -0
  28. package/dist/cli/read-json-input.js.map +1 -0
  29. package/dist/cli/runner.d.ts +15 -0
  30. package/dist/cli/runner.d.ts.map +1 -0
  31. package/dist/cli/runner.js +113 -0
  32. package/dist/cli/runner.js.map +1 -0
  33. package/dist/commands/add-initial-fields.d.ts +27 -0
  34. package/dist/commands/add-initial-fields.d.ts.map +1 -0
  35. package/dist/commands/add-initial-fields.js +42 -0
  36. package/dist/commands/add-initial-fields.js.map +1 -0
  37. package/dist/commands/add-target-field.d.ts +15 -0
  38. package/dist/commands/add-target-field.d.ts.map +1 -0
  39. package/dist/commands/add-target-field.js +48 -0
  40. package/dist/commands/add-target-field.js.map +1 -0
  41. package/dist/commands/add.d.ts +4 -0
  42. package/dist/commands/add.d.ts.map +1 -0
  43. package/dist/commands/add.js +291 -0
  44. package/dist/commands/add.js.map +1 -0
  45. package/dist/commands/article-tags-from-json.d.ts +4 -0
  46. package/dist/commands/article-tags-from-json.d.ts.map +1 -0
  47. package/dist/commands/article-tags-from-json.js +55 -0
  48. package/dist/commands/article-tags-from-json.js.map +1 -0
  49. package/dist/commands/asset.d.ts +4 -0
  50. package/dist/commands/asset.d.ts.map +1 -0
  51. package/dist/commands/asset.js +685 -0
  52. package/dist/commands/asset.js.map +1 -0
  53. package/dist/commands/batch-assignments.d.ts +16 -0
  54. package/dist/commands/batch-assignments.d.ts.map +1 -0
  55. package/dist/commands/batch-assignments.js +61 -0
  56. package/dist/commands/batch-assignments.js.map +1 -0
  57. package/dist/commands/batch.d.ts +5 -0
  58. package/dist/commands/batch.d.ts.map +1 -0
  59. package/dist/commands/batch.js +272 -0
  60. package/dist/commands/batch.js.map +1 -0
  61. package/dist/commands/bulk-rtf-replace.d.ts +4 -0
  62. package/dist/commands/bulk-rtf-replace.d.ts.map +1 -0
  63. package/dist/commands/bulk-rtf-replace.js +103 -0
  64. package/dist/commands/bulk-rtf-replace.js.map +1 -0
  65. package/dist/commands/create-from-json.d.ts +8 -0
  66. package/dist/commands/create-from-json.d.ts.map +1 -0
  67. package/dist/commands/create-from-json.js +531 -0
  68. package/dist/commands/create-from-json.js.map +1 -0
  69. package/dist/commands/create-person-from-json.d.ts +4 -0
  70. package/dist/commands/create-person-from-json.d.ts.map +1 -0
  71. package/dist/commands/create-person-from-json.js +86 -0
  72. package/dist/commands/create-person-from-json.js.map +1 -0
  73. package/dist/commands/create-person.d.ts +4 -0
  74. package/dist/commands/create-person.d.ts.map +1 -0
  75. package/dist/commands/create-person.js +76 -0
  76. package/dist/commands/create-person.js.map +1 -0
  77. package/dist/commands/create-taxonomy-from-json.d.ts +4 -0
  78. package/dist/commands/create-taxonomy-from-json.d.ts.map +1 -0
  79. package/dist/commands/create-taxonomy-from-json.js +96 -0
  80. package/dist/commands/create-taxonomy-from-json.js.map +1 -0
  81. package/dist/commands/create-taxonomy.d.ts +36 -0
  82. package/dist/commands/create-taxonomy.d.ts.map +1 -0
  83. package/dist/commands/create-taxonomy.js +214 -0
  84. package/dist/commands/create-taxonomy.js.map +1 -0
  85. package/dist/commands/create.d.ts +4 -0
  86. package/dist/commands/create.d.ts.map +1 -0
  87. package/dist/commands/create.js +454 -0
  88. package/dist/commands/create.js.map +1 -0
  89. package/dist/commands/customer.d.ts +4 -0
  90. package/dist/commands/customer.d.ts.map +1 -0
  91. package/dist/commands/customer.js +56 -0
  92. package/dist/commands/customer.js.map +1 -0
  93. package/dist/commands/diagnose.d.ts +29 -0
  94. package/dist/commands/diagnose.d.ts.map +1 -0
  95. package/dist/commands/diagnose.js +119 -0
  96. package/dist/commands/diagnose.js.map +1 -0
  97. package/dist/commands/diff.d.ts +4 -0
  98. package/dist/commands/diff.d.ts.map +1 -0
  99. package/dist/commands/diff.js +33 -0
  100. package/dist/commands/diff.js.map +1 -0
  101. package/dist/commands/discard.d.ts +4 -0
  102. package/dist/commands/discard.d.ts.map +1 -0
  103. package/dist/commands/discard.js +63 -0
  104. package/dist/commands/discard.js.map +1 -0
  105. package/dist/commands/editor-pack.d.ts +4 -0
  106. package/dist/commands/editor-pack.d.ts.map +1 -0
  107. package/dist/commands/editor-pack.js +31 -0
  108. package/dist/commands/editor-pack.js.map +1 -0
  109. package/dist/commands/entry-lookup-target.d.ts +113 -0
  110. package/dist/commands/entry-lookup-target.d.ts.map +1 -0
  111. package/dist/commands/entry-lookup-target.js +235 -0
  112. package/dist/commands/entry-lookup-target.js.map +1 -0
  113. package/dist/commands/entry-search.d.ts +4 -0
  114. package/dist/commands/entry-search.d.ts.map +1 -0
  115. package/dist/commands/entry-search.js +91 -0
  116. package/dist/commands/entry-search.js.map +1 -0
  117. package/dist/commands/guide.d.ts +4 -0
  118. package/dist/commands/guide.d.ts.map +1 -0
  119. package/dist/commands/guide.js +18 -0
  120. package/dist/commands/guide.js.map +1 -0
  121. package/dist/commands/health.d.ts +4 -0
  122. package/dist/commands/health.d.ts.map +1 -0
  123. package/dist/commands/health.js +179 -0
  124. package/dist/commands/health.js.map +1 -0
  125. package/dist/commands/help.d.ts +4 -0
  126. package/dist/commands/help.d.ts.map +1 -0
  127. package/dist/commands/help.js +49 -0
  128. package/dist/commands/help.js.map +1 -0
  129. package/dist/commands/host-scaffold.d.ts +4 -0
  130. package/dist/commands/host-scaffold.d.ts.map +1 -0
  131. package/dist/commands/host-scaffold.js +104 -0
  132. package/dist/commands/host-scaffold.js.map +1 -0
  133. package/dist/commands/host-stage.d.ts +4 -0
  134. package/dist/commands/host-stage.d.ts.map +1 -0
  135. package/dist/commands/host-stage.js +60 -0
  136. package/dist/commands/host-stage.js.map +1 -0
  137. package/dist/commands/host.d.ts +3 -0
  138. package/dist/commands/host.d.ts.map +1 -0
  139. package/dist/commands/host.js +9 -0
  140. package/dist/commands/host.js.map +1 -0
  141. package/dist/commands/index-dump.d.ts +15 -0
  142. package/dist/commands/index-dump.d.ts.map +1 -0
  143. package/dist/commands/index-dump.js +207 -0
  144. package/dist/commands/index-dump.js.map +1 -0
  145. package/dist/commands/index.d.ts +4 -0
  146. package/dist/commands/index.d.ts.map +1 -0
  147. package/dist/commands/index.js +107 -0
  148. package/dist/commands/index.js.map +1 -0
  149. package/dist/commands/links.d.ts +4 -0
  150. package/dist/commands/links.d.ts.map +1 -0
  151. package/dist/commands/links.js +343 -0
  152. package/dist/commands/links.js.map +1 -0
  153. package/dist/commands/list.d.ts +4 -0
  154. package/dist/commands/list.d.ts.map +1 -0
  155. package/dist/commands/list.js +282 -0
  156. package/dist/commands/list.js.map +1 -0
  157. package/dist/commands/media.d.ts +4 -0
  158. package/dist/commands/media.d.ts.map +1 -0
  159. package/dist/commands/media.js +143 -0
  160. package/dist/commands/media.js.map +1 -0
  161. package/dist/commands/move.d.ts +3 -0
  162. package/dist/commands/move.d.ts.map +1 -0
  163. package/dist/commands/move.js +85 -0
  164. package/dist/commands/move.js.map +1 -0
  165. package/dist/commands/multiset-assignments.d.ts +16 -0
  166. package/dist/commands/multiset-assignments.d.ts.map +1 -0
  167. package/dist/commands/multiset-assignments.js +24 -0
  168. package/dist/commands/multiset-assignments.js.map +1 -0
  169. package/dist/commands/nav.d.ts +4 -0
  170. package/dist/commands/nav.d.ts.map +1 -0
  171. package/dist/commands/nav.js +327 -0
  172. package/dist/commands/nav.js.map +1 -0
  173. package/dist/commands/open.d.ts +4 -0
  174. package/dist/commands/open.d.ts.map +1 -0
  175. package/dist/commands/open.js +124 -0
  176. package/dist/commands/open.js.map +1 -0
  177. package/dist/commands/peek.d.ts +4 -0
  178. package/dist/commands/peek.d.ts.map +1 -0
  179. package/dist/commands/peek.js +105 -0
  180. package/dist/commands/peek.js.map +1 -0
  181. package/dist/commands/preview.d.ts +4 -0
  182. package/dist/commands/preview.d.ts.map +1 -0
  183. package/dist/commands/preview.js +242 -0
  184. package/dist/commands/preview.js.map +1 -0
  185. package/dist/commands/project.d.ts +4 -0
  186. package/dist/commands/project.d.ts.map +1 -0
  187. package/dist/commands/project.js +63 -0
  188. package/dist/commands/project.js.map +1 -0
  189. package/dist/commands/read.d.ts +4 -0
  190. package/dist/commands/read.d.ts.map +1 -0
  191. package/dist/commands/read.js +59 -0
  192. package/dist/commands/read.js.map +1 -0
  193. package/dist/commands/remove.d.ts +4 -0
  194. package/dist/commands/remove.d.ts.map +1 -0
  195. package/dist/commands/remove.js +104 -0
  196. package/dist/commands/remove.js.map +1 -0
  197. package/dist/commands/resolve.d.ts +4 -0
  198. package/dist/commands/resolve.d.ts.map +1 -0
  199. package/dist/commands/resolve.js +157 -0
  200. package/dist/commands/resolve.js.map +1 -0
  201. package/dist/commands/rtf.d.ts +4 -0
  202. package/dist/commands/rtf.d.ts.map +1 -0
  203. package/dist/commands/rtf.js +589 -0
  204. package/dist/commands/rtf.js.map +1 -0
  205. package/dist/commands/run.d.ts +4 -0
  206. package/dist/commands/run.d.ts.map +1 -0
  207. package/dist/commands/run.js +515 -0
  208. package/dist/commands/run.js.map +1 -0
  209. package/dist/commands/save-pending.d.ts +3 -0
  210. package/dist/commands/save-pending.d.ts.map +1 -0
  211. package/dist/commands/save-pending.js +5 -0
  212. package/dist/commands/save-pending.js.map +1 -0
  213. package/dist/commands/save.d.ts +4 -0
  214. package/dist/commands/save.d.ts.map +1 -0
  215. package/dist/commands/save.js +79 -0
  216. package/dist/commands/save.js.map +1 -0
  217. package/dist/commands/schema.d.ts +4 -0
  218. package/dist/commands/schema.d.ts.map +1 -0
  219. package/dist/commands/schema.js +283 -0
  220. package/dist/commands/schema.js.map +1 -0
  221. package/dist/commands/session-diff.d.ts +14 -0
  222. package/dist/commands/session-diff.d.ts.map +1 -0
  223. package/dist/commands/session-diff.js +238 -0
  224. package/dist/commands/session-diff.js.map +1 -0
  225. package/dist/commands/set.d.ts +4 -0
  226. package/dist/commands/set.d.ts.map +1 -0
  227. package/dist/commands/set.js +577 -0
  228. package/dist/commands/set.js.map +1 -0
  229. package/dist/commands/snapshot.d.ts +3 -0
  230. package/dist/commands/snapshot.d.ts.map +1 -0
  231. package/dist/commands/snapshot.js +31 -0
  232. package/dist/commands/snapshot.js.map +1 -0
  233. package/dist/commands/staged-upload.d.ts +4 -0
  234. package/dist/commands/staged-upload.d.ts.map +1 -0
  235. package/dist/commands/staged-upload.js +54 -0
  236. package/dist/commands/staged-upload.js.map +1 -0
  237. package/dist/commands/version.d.ts +4 -0
  238. package/dist/commands/version.d.ts.map +1 -0
  239. package/dist/commands/version.js +17 -0
  240. package/dist/commands/version.js.map +1 -0
  241. package/dist/config/data-root.d.ts +6 -0
  242. package/dist/config/data-root.d.ts.map +1 -0
  243. package/dist/config/data-root.js +21 -0
  244. package/dist/config/data-root.js.map +1 -0
  245. package/dist/config/hosted.d.ts +36 -0
  246. package/dist/config/hosted.d.ts.map +1 -0
  247. package/dist/config/hosted.js +113 -0
  248. package/dist/config/hosted.js.map +1 -0
  249. package/dist/config/load.d.ts +27 -0
  250. package/dist/config/load.d.ts.map +1 -0
  251. package/dist/config/load.js +139 -0
  252. package/dist/config/load.js.map +1 -0
  253. package/dist/config/types.d.ts +42 -0
  254. package/dist/config/types.d.ts.map +1 -0
  255. package/dist/config/types.js +2 -0
  256. package/dist/config/types.js.map +1 -0
  257. package/dist/contentful/article-tags-from-json.d.ts +25 -0
  258. package/dist/contentful/article-tags-from-json.d.ts.map +1 -0
  259. package/dist/contentful/article-tags-from-json.js +121 -0
  260. package/dist/contentful/article-tags-from-json.js.map +1 -0
  261. package/dist/contentful/article-type-resolve.d.ts +11 -0
  262. package/dist/contentful/article-type-resolve.d.ts.map +1 -0
  263. package/dist/contentful/article-type-resolve.js +35 -0
  264. package/dist/contentful/article-type-resolve.js.map +1 -0
  265. package/dist/contentful/asset-link-from-json.d.ts +17 -0
  266. package/dist/contentful/asset-link-from-json.d.ts.map +1 -0
  267. package/dist/contentful/asset-link-from-json.js +41 -0
  268. package/dist/contentful/asset-link-from-json.js.map +1 -0
  269. package/dist/contentful/assets.d.ts +54 -0
  270. package/dist/contentful/assets.d.ts.map +1 -0
  271. package/dist/contentful/assets.js +168 -0
  272. package/dist/contentful/assets.js.map +1 -0
  273. package/dist/contentful/bulk-rtf-replace.d.ts +29 -0
  274. package/dist/contentful/bulk-rtf-replace.d.ts.map +1 -0
  275. package/dist/contentful/bulk-rtf-replace.js +119 -0
  276. package/dist/contentful/bulk-rtf-replace.js.map +1 -0
  277. package/dist/contentful/cda-sync.d.ts +45 -0
  278. package/dist/contentful/cda-sync.d.ts.map +1 -0
  279. package/dist/contentful/cda-sync.js +382 -0
  280. package/dist/contentful/cda-sync.js.map +1 -0
  281. package/dist/contentful/client.d.ts +56 -0
  282. package/dist/contentful/client.d.ts.map +1 -0
  283. package/dist/contentful/client.js +78 -0
  284. package/dist/contentful/client.js.map +1 -0
  285. package/dist/contentful/cma-user-agent.d.ts +10 -0
  286. package/dist/contentful/cma-user-agent.d.ts.map +1 -0
  287. package/dist/contentful/cma-user-agent.js +20 -0
  288. package/dist/contentful/cma-user-agent.js.map +1 -0
  289. package/dist/contentful/content-type-disk-cache.d.ts +7 -0
  290. package/dist/contentful/content-type-disk-cache.d.ts.map +1 -0
  291. package/dist/contentful/content-type-disk-cache.js +42 -0
  292. package/dist/contentful/content-type-disk-cache.js.map +1 -0
  293. package/dist/contentful/delivery-token.d.ts +17 -0
  294. package/dist/contentful/delivery-token.d.ts.map +1 -0
  295. package/dist/contentful/delivery-token.js +104 -0
  296. package/dist/contentful/delivery-token.js.map +1 -0
  297. package/dist/contentful/entry-fields.d.ts +74 -0
  298. package/dist/contentful/entry-fields.d.ts.map +1 -0
  299. package/dist/contentful/entry-fields.js +403 -0
  300. package/dist/contentful/entry-fields.js.map +1 -0
  301. package/dist/contentful/entry-lookup.d.ts +16 -0
  302. package/dist/contentful/entry-lookup.d.ts.map +1 -0
  303. package/dist/contentful/entry-lookup.js +273 -0
  304. package/dist/contentful/entry-lookup.js.map +1 -0
  305. package/dist/contentful/featured-image-defaults.d.ts +16 -0
  306. package/dist/contentful/featured-image-defaults.d.ts.map +1 -0
  307. package/dist/contentful/featured-image-defaults.js +117 -0
  308. package/dist/contentful/featured-image-defaults.js.map +1 -0
  309. package/dist/contentful/fetch.d.ts +31 -0
  310. package/dist/contentful/fetch.d.ts.map +1 -0
  311. package/dist/contentful/fetch.js +115 -0
  312. package/dist/contentful/fetch.js.map +1 -0
  313. package/dist/contentful/field-metadata.d.ts +8 -0
  314. package/dist/contentful/field-metadata.d.ts.map +1 -0
  315. package/dist/contentful/field-metadata.js +12 -0
  316. package/dist/contentful/field-metadata.js.map +1 -0
  317. package/dist/contentful/field-value-from-json.d.ts +24 -0
  318. package/dist/contentful/field-value-from-json.d.ts.map +1 -0
  319. package/dist/contentful/field-value-from-json.js +206 -0
  320. package/dist/contentful/field-value-from-json.js.map +1 -0
  321. package/dist/contentful/hosted-asset-upload.d.ts +4 -0
  322. package/dist/contentful/hosted-asset-upload.d.ts.map +1 -0
  323. package/dist/contentful/hosted-asset-upload.js +9 -0
  324. package/dist/contentful/hosted-asset-upload.js.map +1 -0
  325. package/dist/contentful/link-fields.d.ts +22 -0
  326. package/dist/contentful/link-fields.d.ts.map +1 -0
  327. package/dist/contentful/link-fields.js +58 -0
  328. package/dist/contentful/link-fields.js.map +1 -0
  329. package/dist/contentful/linkedEntryFields.d.ts +29 -0
  330. package/dist/contentful/linkedEntryFields.d.ts.map +1 -0
  331. package/dist/contentful/linkedEntryFields.js +97 -0
  332. package/dist/contentful/linkedEntryFields.js.map +1 -0
  333. package/dist/contentful/list-entry-format.d.ts +18 -0
  334. package/dist/contentful/list-entry-format.d.ts.map +1 -0
  335. package/dist/contentful/list-entry-format.js +45 -0
  336. package/dist/contentful/list-entry-format.js.map +1 -0
  337. package/dist/contentful/media.d.ts +26 -0
  338. package/dist/contentful/media.d.ts.map +1 -0
  339. package/dist/contentful/media.js +82 -0
  340. package/dist/contentful/media.js.map +1 -0
  341. package/dist/contentful/person-create.d.ts +32 -0
  342. package/dist/contentful/person-create.d.ts.map +1 -0
  343. package/dist/contentful/person-create.js +102 -0
  344. package/dist/contentful/person-create.js.map +1 -0
  345. package/dist/contentful/reference-record.d.ts +45 -0
  346. package/dist/contentful/reference-record.d.ts.map +1 -0
  347. package/dist/contentful/reference-record.js +106 -0
  348. package/dist/contentful/reference-record.js.map +1 -0
  349. package/dist/contentful/references.d.ts +7 -0
  350. package/dist/contentful/references.d.ts.map +1 -0
  351. package/dist/contentful/references.js +12 -0
  352. package/dist/contentful/references.js.map +1 -0
  353. package/dist/contentful/regex.d.ts +14 -0
  354. package/dist/contentful/regex.d.ts.map +1 -0
  355. package/dist/contentful/regex.js +38 -0
  356. package/dist/contentful/regex.js.map +1 -0
  357. package/dist/contentful/resolve-content-type.d.ts +9 -0
  358. package/dist/contentful/resolve-content-type.d.ts.map +1 -0
  359. package/dist/contentful/resolve-content-type.js +38 -0
  360. package/dist/contentful/resolve-content-type.js.map +1 -0
  361. package/dist/contentful/scalar-value.d.ts +19 -0
  362. package/dist/contentful/scalar-value.d.ts.map +1 -0
  363. package/dist/contentful/scalar-value.js +95 -0
  364. package/dist/contentful/scalar-value.js.map +1 -0
  365. package/dist/contentful/set-field-schema.d.ts +32 -0
  366. package/dist/contentful/set-field-schema.d.ts.map +1 -0
  367. package/dist/contentful/set-field-schema.js +123 -0
  368. package/dist/contentful/set-field-schema.js.map +1 -0
  369. package/dist/contentful/slug-validation.d.ts +7 -0
  370. package/dist/contentful/slug-validation.d.ts.map +1 -0
  371. package/dist/contentful/slug-validation.js +15 -0
  372. package/dist/contentful/slug-validation.js.map +1 -0
  373. package/dist/contentful/upload-fetch.d.ts +11 -0
  374. package/dist/contentful/upload-fetch.d.ts.map +1 -0
  375. package/dist/contentful/upload-fetch.js +26 -0
  376. package/dist/contentful/upload-fetch.js.map +1 -0
  377. package/dist/contentful/upload-limits.d.ts +7 -0
  378. package/dist/contentful/upload-limits.d.ts.map +1 -0
  379. package/dist/contentful/upload-limits.js +13 -0
  380. package/dist/contentful/upload-limits.js.map +1 -0
  381. package/dist/contentful/write.d.ts +16 -0
  382. package/dist/contentful/write.d.ts.map +1 -0
  383. package/dist/contentful/write.js +97 -0
  384. package/dist/contentful/write.js.map +1 -0
  385. package/dist/editor-pack/capabilities.d.ts +105 -0
  386. package/dist/editor-pack/capabilities.d.ts.map +1 -0
  387. package/dist/editor-pack/capabilities.js +497 -0
  388. package/dist/editor-pack/capabilities.js.map +1 -0
  389. package/dist/editor-pack/generate.d.ts +19 -0
  390. package/dist/editor-pack/generate.d.ts.map +1 -0
  391. package/dist/editor-pack/generate.js +337 -0
  392. package/dist/editor-pack/generate.js.map +1 -0
  393. package/dist/editor-pack/load.d.ts +13 -0
  394. package/dist/editor-pack/load.d.ts.map +1 -0
  395. package/dist/editor-pack/load.js +99 -0
  396. package/dist/editor-pack/load.js.map +1 -0
  397. package/dist/editor-pack/parse-constants.d.ts +23 -0
  398. package/dist/editor-pack/parse-constants.d.ts.map +1 -0
  399. package/dist/editor-pack/parse-constants.js +99 -0
  400. package/dist/editor-pack/parse-constants.js.map +1 -0
  401. package/dist/editor-pack/parse-guidelines.d.ts +17 -0
  402. package/dist/editor-pack/parse-guidelines.d.ts.map +1 -0
  403. package/dist/editor-pack/parse-guidelines.js +93 -0
  404. package/dist/editor-pack/parse-guidelines.js.map +1 -0
  405. package/dist/editor-pack/parse-registrations.d.ts +7 -0
  406. package/dist/editor-pack/parse-registrations.d.ts.map +1 -0
  407. package/dist/editor-pack/parse-registrations.js +57 -0
  408. package/dist/editor-pack/parse-registrations.js.map +1 -0
  409. package/dist/editor-pack/production-site.d.ts +3 -0
  410. package/dist/editor-pack/production-site.d.ts.map +1 -0
  411. package/dist/editor-pack/production-site.js +68 -0
  412. package/dist/editor-pack/production-site.js.map +1 -0
  413. package/dist/generated/hosted-guide.d.ts +2 -0
  414. package/dist/generated/hosted-guide.d.ts.map +1 -0
  415. package/dist/generated/hosted-guide.js +3 -0
  416. package/dist/generated/hosted-guide.js.map +1 -0
  417. package/dist/generated/version.d.ts +3 -0
  418. package/dist/generated/version.d.ts.map +1 -0
  419. package/dist/generated/version.js +4 -0
  420. package/dist/generated/version.js.map +1 -0
  421. package/dist/hosted/customer-playbooks.d.ts +23 -0
  422. package/dist/hosted/customer-playbooks.d.ts.map +1 -0
  423. package/dist/hosted/customer-playbooks.js +69 -0
  424. package/dist/hosted/customer-playbooks.js.map +1 -0
  425. package/dist/hosted/index.d.ts +30 -0
  426. package/dist/hosted/index.d.ts.map +1 -0
  427. package/dist/hosted/index.js +29 -0
  428. package/dist/hosted/index.js.map +1 -0
  429. package/dist/hosted/next/HostedPageShell.d.ts +18 -0
  430. package/dist/hosted/next/HostedPageShell.d.ts.map +1 -0
  431. package/dist/hosted/next/HostedPageShell.js +12 -0
  432. package/dist/hosted/next/HostedPageShell.js.map +1 -0
  433. package/dist/hosted/next/claude-connect.d.ts +8 -0
  434. package/dist/hosted/next/claude-connect.d.ts.map +1 -0
  435. package/dist/hosted/next/claude-connect.js +23 -0
  436. package/dist/hosted/next/claude-connect.js.map +1 -0
  437. package/dist/hosted/next/context.d.ts +3 -0
  438. package/dist/hosted/next/context.d.ts.map +1 -0
  439. package/dist/hosted/next/context.js +11 -0
  440. package/dist/hosted/next/context.js.map +1 -0
  441. package/dist/hosted/next/editor-pack-path.d.ts +2 -0
  442. package/dist/hosted/next/editor-pack-path.d.ts.map +1 -0
  443. package/dist/hosted/next/editor-pack-path.js +6 -0
  444. package/dist/hosted/next/editor-pack-path.js.map +1 -0
  445. package/dist/hosted/next/page-styles.d.ts +31 -0
  446. package/dist/hosted/next/page-styles.d.ts.map +1 -0
  447. package/dist/hosted/next/page-styles.js +166 -0
  448. package/dist/hosted/next/page-styles.js.map +1 -0
  449. package/dist/hosted/next/pages/CmsEditPage.d.ts +2 -0
  450. package/dist/hosted/next/pages/CmsEditPage.d.ts.map +1 -0
  451. package/dist/hosted/next/pages/CmsEditPage.js +24 -0
  452. package/dist/hosted/next/pages/CmsEditPage.js.map +1 -0
  453. package/dist/hosted/next/pages/ContentfulCallbackPage.d.ts +2 -0
  454. package/dist/hosted/next/pages/ContentfulCallbackPage.d.ts.map +1 -0
  455. package/dist/hosted/next/pages/ContentfulCallbackPage.js +47 -0
  456. package/dist/hosted/next/pages/ContentfulCallbackPage.js.map +1 -0
  457. package/dist/hosted/next/pages/CustomerPlaybookPage.d.ts +8 -0
  458. package/dist/hosted/next/pages/CustomerPlaybookPage.d.ts.map +1 -0
  459. package/dist/hosted/next/pages/CustomerPlaybookPage.js +24 -0
  460. package/dist/hosted/next/pages/CustomerPlaybookPage.js.map +1 -0
  461. package/dist/hosted/next/pages/CustomerPlaybooksPage.d.ts +2 -0
  462. package/dist/hosted/next/pages/CustomerPlaybooksPage.d.ts.map +1 -0
  463. package/dist/hosted/next/pages/CustomerPlaybooksPage.js +29 -0
  464. package/dist/hosted/next/pages/CustomerPlaybooksPage.js.map +1 -0
  465. package/dist/hosted/next/pages/HomePage.d.ts +2 -0
  466. package/dist/hosted/next/pages/HomePage.d.ts.map +1 -0
  467. package/dist/hosted/next/pages/HomePage.js +37 -0
  468. package/dist/hosted/next/pages/HomePage.js.map +1 -0
  469. package/dist/hosted/next/redis.d.ts +5 -0
  470. package/dist/hosted/next/redis.d.ts.map +1 -0
  471. package/dist/hosted/next/redis.js +49 -0
  472. package/dist/hosted/next/redis.js.map +1 -0
  473. package/dist/hosted/next/routes/connect.d.ts +2 -0
  474. package/dist/hosted/next/routes/connect.d.ts.map +1 -0
  475. package/dist/hosted/next/routes/connect.js +19 -0
  476. package/dist/hosted/next/routes/connect.js.map +1 -0
  477. package/dist/hosted/next/routes/customer-index.d.ts +2 -0
  478. package/dist/hosted/next/routes/customer-index.d.ts.map +1 -0
  479. package/dist/hosted/next/routes/customer-index.js +12 -0
  480. package/dist/hosted/next/routes/customer-index.js.map +1 -0
  481. package/dist/hosted/next/routes/customer-resource.d.ts +8 -0
  482. package/dist/hosted/next/routes/customer-resource.d.ts.map +1 -0
  483. package/dist/hosted/next/routes/customer-resource.js +19 -0
  484. package/dist/hosted/next/routes/customer-resource.js.map +1 -0
  485. package/dist/hosted/next/routes/health.d.ts +2 -0
  486. package/dist/hosted/next/routes/health.d.ts.map +1 -0
  487. package/dist/hosted/next/routes/health.js +82 -0
  488. package/dist/hosted/next/routes/health.js.map +1 -0
  489. package/dist/hosted/next/routes/link-contentful.d.ts +2 -0
  490. package/dist/hosted/next/routes/link-contentful.d.ts.map +1 -0
  491. package/dist/hosted/next/routes/link-contentful.js +6 -0
  492. package/dist/hosted/next/routes/link-contentful.js.map +1 -0
  493. package/dist/hosted/next/routes/mcp.d.ts +4 -0
  494. package/dist/hosted/next/routes/mcp.d.ts.map +1 -0
  495. package/dist/hosted/next/routes/mcp.js +116 -0
  496. package/dist/hosted/next/routes/mcp.js.map +1 -0
  497. package/dist/hosted/next/routes/oauth-authorization-server.d.ts +2 -0
  498. package/dist/hosted/next/routes/oauth-authorization-server.d.ts.map +1 -0
  499. package/dist/hosted/next/routes/oauth-authorization-server.js +5 -0
  500. package/dist/hosted/next/routes/oauth-authorization-server.js.map +1 -0
  501. package/dist/hosted/next/routes/oauth-authorize.d.ts +2 -0
  502. package/dist/hosted/next/routes/oauth-authorize.d.ts.map +1 -0
  503. package/dist/hosted/next/routes/oauth-authorize.js +6 -0
  504. package/dist/hosted/next/routes/oauth-authorize.js.map +1 -0
  505. package/dist/hosted/next/routes/oauth-protected-resource.d.ts +2 -0
  506. package/dist/hosted/next/routes/oauth-protected-resource.d.ts.map +1 -0
  507. package/dist/hosted/next/routes/oauth-protected-resource.js +5 -0
  508. package/dist/hosted/next/routes/oauth-protected-resource.js.map +1 -0
  509. package/dist/hosted/next/routes/oauth-register.d.ts +2 -0
  510. package/dist/hosted/next/routes/oauth-register.d.ts.map +1 -0
  511. package/dist/hosted/next/routes/oauth-register.js +6 -0
  512. package/dist/hosted/next/routes/oauth-register.js.map +1 -0
  513. package/dist/hosted/next/routes/oauth-token.d.ts +2 -0
  514. package/dist/hosted/next/routes/oauth-token.d.ts.map +1 -0
  515. package/dist/hosted/next/routes/oauth-token.js +6 -0
  516. package/dist/hosted/next/routes/oauth-token.js.map +1 -0
  517. package/dist/hosted/next/routes/staged-upload.d.ts +2 -0
  518. package/dist/hosted/next/routes/staged-upload.d.ts.map +1 -0
  519. package/dist/hosted/next/routes/staged-upload.js +83 -0
  520. package/dist/hosted/next/routes/staged-upload.js.map +1 -0
  521. package/dist/hosted/next/stage-site.d.ts +11 -0
  522. package/dist/hosted/next/stage-site.d.ts.map +1 -0
  523. package/dist/hosted/next/stage-site.js +50 -0
  524. package/dist/hosted/next/stage-site.js.map +1 -0
  525. package/dist/hosted/oauth/auth.d.ts +15 -0
  526. package/dist/hosted/oauth/auth.d.ts.map +1 -0
  527. package/dist/hosted/oauth/auth.js +54 -0
  528. package/dist/hosted/oauth/auth.js.map +1 -0
  529. package/dist/hosted/oauth/cached-cma.d.ts +14 -0
  530. package/dist/hosted/oauth/cached-cma.d.ts.map +1 -0
  531. package/dist/hosted/oauth/cached-cma.js +41 -0
  532. package/dist/hosted/oauth/cached-cma.js.map +1 -0
  533. package/dist/hosted/oauth/complete.d.ts +16 -0
  534. package/dist/hosted/oauth/complete.d.ts.map +1 -0
  535. package/dist/hosted/oauth/complete.js +55 -0
  536. package/dist/hosted/oauth/complete.js.map +1 -0
  537. package/dist/hosted/oauth/config.d.ts +7 -0
  538. package/dist/hosted/oauth/config.d.ts.map +1 -0
  539. package/dist/hosted/oauth/config.js +33 -0
  540. package/dist/hosted/oauth/config.js.map +1 -0
  541. package/dist/hosted/oauth/handlers.d.ts +18 -0
  542. package/dist/hosted/oauth/handlers.d.ts.map +1 -0
  543. package/dist/hosted/oauth/handlers.js +262 -0
  544. package/dist/hosted/oauth/handlers.js.map +1 -0
  545. package/dist/hosted/oauth/jwt.d.ts +9 -0
  546. package/dist/hosted/oauth/jwt.d.ts.map +1 -0
  547. package/dist/hosted/oauth/jwt.js +31 -0
  548. package/dist/hosted/oauth/jwt.js.map +1 -0
  549. package/dist/hosted/oauth/log.d.ts +12 -0
  550. package/dist/hosted/oauth/log.d.ts.map +1 -0
  551. package/dist/hosted/oauth/log.js +71 -0
  552. package/dist/hosted/oauth/log.js.map +1 -0
  553. package/dist/hosted/oauth/pat-cache.d.ts +11 -0
  554. package/dist/hosted/oauth/pat-cache.d.ts.map +1 -0
  555. package/dist/hosted/oauth/pat-cache.js +42 -0
  556. package/dist/hosted/oauth/pat-cache.js.map +1 -0
  557. package/dist/hosted/oauth/pkce.d.ts +3 -0
  558. package/dist/hosted/oauth/pkce.d.ts.map +1 -0
  559. package/dist/hosted/oauth/pkce.js +9 -0
  560. package/dist/hosted/oauth/pkce.js.map +1 -0
  561. package/dist/hosted/oauth/redirect-uri.d.ts +10 -0
  562. package/dist/hosted/oauth/redirect-uri.d.ts.map +1 -0
  563. package/dist/hosted/oauth/redirect-uri.js +61 -0
  564. package/dist/hosted/oauth/redirect-uri.js.map +1 -0
  565. package/dist/hosted/oauth/refresh.d.ts +22 -0
  566. package/dist/hosted/oauth/refresh.d.ts.map +1 -0
  567. package/dist/hosted/oauth/refresh.js +46 -0
  568. package/dist/hosted/oauth/refresh.js.map +1 -0
  569. package/dist/hosted/oauth/store.d.ts +75 -0
  570. package/dist/hosted/oauth/store.d.ts.map +1 -0
  571. package/dist/hosted/oauth/store.js +217 -0
  572. package/dist/hosted/oauth/store.js.map +1 -0
  573. package/dist/hosted/oauth/token-grant-response.d.ts +7 -0
  574. package/dist/hosted/oauth/token-grant-response.d.ts.map +1 -0
  575. package/dist/hosted/oauth/token-grant-response.js +34 -0
  576. package/dist/hosted/oauth/token-grant-response.js.map +1 -0
  577. package/dist/hosted/parse-customer-resource.d.ts +3 -0
  578. package/dist/hosted/parse-customer-resource.d.ts.map +1 -0
  579. package/dist/hosted/parse-customer-resource.js +16 -0
  580. package/dist/hosted/parse-customer-resource.js.map +1 -0
  581. package/dist/index/blob.d.ts +5 -0
  582. package/dist/index/blob.d.ts.map +1 -0
  583. package/dist/index/blob.js +15 -0
  584. package/dist/index/blob.js.map +1 -0
  585. package/dist/index/cache-keys.d.ts +9 -0
  586. package/dist/index/cache-keys.d.ts.map +1 -0
  587. package/dist/index/cache-keys.js +13 -0
  588. package/dist/index/cache-keys.js.map +1 -0
  589. package/dist/index/cache-store.d.ts +31 -0
  590. package/dist/index/cache-store.d.ts.map +1 -0
  591. package/dist/index/cache-store.js +17 -0
  592. package/dist/index/cache-store.js.map +1 -0
  593. package/dist/index/db.d.ts +12 -0
  594. package/dist/index/db.d.ts.map +1 -0
  595. package/dist/index/db.js +49 -0
  596. package/dist/index/db.js.map +1 -0
  597. package/dist/index/distributed-sync-lock.d.ts +3 -0
  598. package/dist/index/distributed-sync-lock.d.ts.map +1 -0
  599. package/dist/index/distributed-sync-lock.js +22 -0
  600. package/dist/index/distributed-sync-lock.js.map +1 -0
  601. package/dist/index/errors.d.ts +18 -0
  602. package/dist/index/errors.d.ts.map +1 -0
  603. package/dist/index/errors.js +18 -0
  604. package/dist/index/errors.js.map +1 -0
  605. package/dist/index/file-index-cache.d.ts +16 -0
  606. package/dist/index/file-index-cache.d.ts.map +1 -0
  607. package/dist/index/file-index-cache.js +103 -0
  608. package/dist/index/file-index-cache.js.map +1 -0
  609. package/dist/index/hydrate.d.ts +8 -0
  610. package/dist/index/hydrate.d.ts.map +1 -0
  611. package/dist/index/hydrate.js +26 -0
  612. package/dist/index/hydrate.js.map +1 -0
  613. package/dist/index/invalidate.d.ts +28 -0
  614. package/dist/index/invalidate.d.ts.map +1 -0
  615. package/dist/index/invalidate.js +114 -0
  616. package/dist/index/invalidate.js.map +1 -0
  617. package/dist/index/mode.d.ts +7 -0
  618. package/dist/index/mode.d.ts.map +1 -0
  619. package/dist/index/mode.js +9 -0
  620. package/dist/index/mode.js.map +1 -0
  621. package/dist/index/patch-index.d.ts +12 -0
  622. package/dist/index/patch-index.d.ts.map +1 -0
  623. package/dist/index/patch-index.js +80 -0
  624. package/dist/index/patch-index.js.map +1 -0
  625. package/dist/index/paths.d.ts +6 -0
  626. package/dist/index/paths.d.ts.map +1 -0
  627. package/dist/index/paths.js +23 -0
  628. package/dist/index/paths.js.map +1 -0
  629. package/dist/index/publish-cache.d.ts +5 -0
  630. package/dist/index/publish-cache.d.ts.map +1 -0
  631. package/dist/index/publish-cache.js +26 -0
  632. package/dist/index/publish-cache.js.map +1 -0
  633. package/dist/index/query.d.ts +139 -0
  634. package/dist/index/query.d.ts.map +1 -0
  635. package/dist/index/query.js +451 -0
  636. package/dist/index/query.js.map +1 -0
  637. package/dist/index/redis-index-cache.d.ts +24 -0
  638. package/dist/index/redis-index-cache.d.ts.map +1 -0
  639. package/dist/index/redis-index-cache.js +83 -0
  640. package/dist/index/redis-index-cache.js.map +1 -0
  641. package/dist/index/reference-lookup.d.ts +18 -0
  642. package/dist/index/reference-lookup.d.ts.map +1 -0
  643. package/dist/index/reference-lookup.js +123 -0
  644. package/dist/index/reference-lookup.js.map +1 -0
  645. package/dist/index/require.d.ts +22 -0
  646. package/dist/index/require.d.ts.map +1 -0
  647. package/dist/index/require.js +74 -0
  648. package/dist/index/require.js.map +1 -0
  649. package/dist/index/run-sync.d.ts +22 -0
  650. package/dist/index/run-sync.d.ts.map +1 -0
  651. package/dist/index/run-sync.js +76 -0
  652. package/dist/index/run-sync.js.map +1 -0
  653. package/dist/index/schema.d.ts +19 -0
  654. package/dist/index/schema.d.ts.map +1 -0
  655. package/dist/index/schema.js +81 -0
  656. package/dist/index/schema.js.map +1 -0
  657. package/dist/index/sync-lock.d.ts +9 -0
  658. package/dist/index/sync-lock.d.ts.map +1 -0
  659. package/dist/index/sync-lock.js +98 -0
  660. package/dist/index/sync-lock.js.map +1 -0
  661. package/dist/index/sync-log.d.ts +7 -0
  662. package/dist/index/sync-log.d.ts.map +1 -0
  663. package/dist/index/sync-log.js +23 -0
  664. package/dist/index/sync-log.js.map +1 -0
  665. package/dist/index/sync.d.ts +50 -0
  666. package/dist/index/sync.d.ts.map +1 -0
  667. package/dist/index/sync.js +292 -0
  668. package/dist/index/sync.js.map +1 -0
  669. package/dist/index.d.ts +7 -0
  670. package/dist/index.d.ts.map +1 -0
  671. package/dist/index.js +5 -0
  672. package/dist/index.js.map +1 -0
  673. package/dist/mcp/guide.d.ts +21 -0
  674. package/dist/mcp/guide.d.ts.map +1 -0
  675. package/dist/mcp/guide.js +97 -0
  676. package/dist/mcp/guide.js.map +1 -0
  677. package/dist/mcp/hosted-metadata.d.ts +12 -0
  678. package/dist/mcp/hosted-metadata.d.ts.map +1 -0
  679. package/dist/mcp/hosted-metadata.js +30 -0
  680. package/dist/mcp/hosted-metadata.js.map +1 -0
  681. package/dist/mcp/http-handler.d.ts +15 -0
  682. package/dist/mcp/http-handler.d.ts.map +1 -0
  683. package/dist/mcp/http-handler.js +38 -0
  684. package/dist/mcp/http-handler.js.map +1 -0
  685. package/dist/mcp/prompts/onboarding.d.ts +4 -0
  686. package/dist/mcp/prompts/onboarding.d.ts.map +1 -0
  687. package/dist/mcp/prompts/onboarding.js +398 -0
  688. package/dist/mcp/prompts/onboarding.js.map +1 -0
  689. package/dist/mcp/resources/customer.d.ts +7 -0
  690. package/dist/mcp/resources/customer.d.ts.map +1 -0
  691. package/dist/mcp/resources/customer.js +72 -0
  692. package/dist/mcp/resources/customer.js.map +1 -0
  693. package/dist/mcp/resources/guide.d.ts +4 -0
  694. package/dist/mcp/resources/guide.d.ts.map +1 -0
  695. package/dist/mcp/resources/guide.js +16 -0
  696. package/dist/mcp/resources/guide.js.map +1 -0
  697. package/dist/mcp/server.d.ts +17 -0
  698. package/dist/mcp/server.d.ts.map +1 -0
  699. package/dist/mcp/server.js +63 -0
  700. package/dist/mcp/server.js.map +1 -0
  701. package/dist/mcp/session-args.d.ts +10 -0
  702. package/dist/mcp/session-args.d.ts.map +1 -0
  703. package/dist/mcp/session-args.js +28 -0
  704. package/dist/mcp/session-args.js.map +1 -0
  705. package/dist/mcp/tools/cms-edit.d.ts +10 -0
  706. package/dist/mcp/tools/cms-edit.d.ts.map +1 -0
  707. package/dist/mcp/tools/cms-edit.js +148 -0
  708. package/dist/mcp/tools/cms-edit.js.map +1 -0
  709. package/dist/mcp/tools/customer.d.ts +8 -0
  710. package/dist/mcp/tools/customer.d.ts.map +1 -0
  711. package/dist/mcp/tools/customer.js +41 -0
  712. package/dist/mcp/tools/customer.js.map +1 -0
  713. package/dist/mcp/tools/help.d.ts +4 -0
  714. package/dist/mcp/tools/help.d.ts.map +1 -0
  715. package/dist/mcp/tools/help.js +23 -0
  716. package/dist/mcp/tools/help.js.map +1 -0
  717. package/dist/mcp/tools/media.d.ts +4 -0
  718. package/dist/mcp/tools/media.d.ts.map +1 -0
  719. package/dist/mcp/tools/media.js +176 -0
  720. package/dist/mcp/tools/media.js.map +1 -0
  721. package/dist/mcp/tools/staged-upload.d.ts +4 -0
  722. package/dist/mcp/tools/staged-upload.d.ts.map +1 -0
  723. package/dist/mcp/tools/staged-upload.js +77 -0
  724. package/dist/mcp/tools/staged-upload.js.map +1 -0
  725. package/dist/mcp/types.d.ts +2 -0
  726. package/dist/mcp/types.d.ts.map +1 -0
  727. package/dist/mcp/types.js +2 -0
  728. package/dist/mcp/types.js.map +1 -0
  729. package/dist/media-pipeline/actions.d.ts +32 -0
  730. package/dist/media-pipeline/actions.d.ts.map +1 -0
  731. package/dist/media-pipeline/actions.js +436 -0
  732. package/dist/media-pipeline/actions.js.map +1 -0
  733. package/dist/media-pipeline/client.d.ts +71 -0
  734. package/dist/media-pipeline/client.d.ts.map +1 -0
  735. package/dist/media-pipeline/client.js +79 -0
  736. package/dist/media-pipeline/client.js.map +1 -0
  737. package/dist/media-pipeline/config.d.ts +17 -0
  738. package/dist/media-pipeline/config.d.ts.map +1 -0
  739. package/dist/media-pipeline/config.js +52 -0
  740. package/dist/media-pipeline/config.js.map +1 -0
  741. package/dist/media-pipeline/import-filter.d.ts +36 -0
  742. package/dist/media-pipeline/import-filter.d.ts.map +1 -0
  743. package/dist/media-pipeline/import-filter.js +53 -0
  744. package/dist/media-pipeline/import-filter.js.map +1 -0
  745. package/dist/media-pipeline/import.d.ts +25 -0
  746. package/dist/media-pipeline/import.d.ts.map +1 -0
  747. package/dist/media-pipeline/import.js +225 -0
  748. package/dist/media-pipeline/import.js.map +1 -0
  749. package/dist/media-pipeline/index.d.ts +6 -0
  750. package/dist/media-pipeline/index.d.ts.map +1 -0
  751. package/dist/media-pipeline/index.js +6 -0
  752. package/dist/media-pipeline/index.js.map +1 -0
  753. package/dist/media-pipeline/job-store.d.ts +49 -0
  754. package/dist/media-pipeline/job-store.d.ts.map +1 -0
  755. package/dist/media-pipeline/job-store.js +215 -0
  756. package/dist/media-pipeline/job-store.js.map +1 -0
  757. package/dist/media-pipeline/limits.d.ts +19 -0
  758. package/dist/media-pipeline/limits.d.ts.map +1 -0
  759. package/dist/media-pipeline/limits.js +19 -0
  760. package/dist/media-pipeline/limits.js.map +1 -0
  761. package/dist/media-pipeline/log.d.ts +3 -0
  762. package/dist/media-pipeline/log.d.ts.map +1 -0
  763. package/dist/media-pipeline/log.js +12 -0
  764. package/dist/media-pipeline/log.js.map +1 -0
  765. package/dist/media-pipeline/validate.d.ts +18 -0
  766. package/dist/media-pipeline/validate.d.ts.map +1 -0
  767. package/dist/media-pipeline/validate.js +38 -0
  768. package/dist/media-pipeline/validate.js.map +1 -0
  769. package/dist/output/json.d.ts +53 -0
  770. package/dist/output/json.d.ts.map +1 -0
  771. package/dist/output/json.js +110 -0
  772. package/dist/output/json.js.map +1 -0
  773. package/dist/output/mode.d.ts +3 -0
  774. package/dist/output/mode.d.ts.map +1 -0
  775. package/dist/output/mode.js +16 -0
  776. package/dist/output/mode.js.map +1 -0
  777. package/dist/output/print.d.ts +14 -0
  778. package/dist/output/print.d.ts.map +1 -0
  779. package/dist/output/print.js +61 -0
  780. package/dist/output/print.js.map +1 -0
  781. package/dist/output/terminal-table.d.ts +15 -0
  782. package/dist/output/terminal-table.d.ts.map +1 -0
  783. package/dist/output/terminal-table.js +60 -0
  784. package/dist/output/terminal-table.js.map +1 -0
  785. package/dist/preview/capture-urls.d.ts +12 -0
  786. package/dist/preview/capture-urls.d.ts.map +1 -0
  787. package/dist/preview/capture-urls.js +41 -0
  788. package/dist/preview/capture-urls.js.map +1 -0
  789. package/dist/preview/entry-urls.d.ts +44 -0
  790. package/dist/preview/entry-urls.d.ts.map +1 -0
  791. package/dist/preview/entry-urls.js +153 -0
  792. package/dist/preview/entry-urls.js.map +1 -0
  793. package/dist/project/doctor.d.ts +9 -0
  794. package/dist/project/doctor.d.ts.map +1 -0
  795. package/dist/project/doctor.js +172 -0
  796. package/dist/project/doctor.js.map +1 -0
  797. package/dist/project/load.d.ts +5 -0
  798. package/dist/project/load.d.ts.map +1 -0
  799. package/dist/project/load.js +66 -0
  800. package/dist/project/load.js.map +1 -0
  801. package/dist/project/types.d.ts +54 -0
  802. package/dist/project/types.d.ts.map +1 -0
  803. package/dist/project/types.js +53 -0
  804. package/dist/project/types.js.map +1 -0
  805. package/dist/project/validate-hosted.d.ts +7 -0
  806. package/dist/project/validate-hosted.d.ts.map +1 -0
  807. package/dist/project/validate-hosted.js +12 -0
  808. package/dist/project/validate-hosted.js.map +1 -0
  809. package/dist/project/validate-secrets.d.ts +7 -0
  810. package/dist/project/validate-secrets.d.ts.map +1 -0
  811. package/dist/project/validate-secrets.js +61 -0
  812. package/dist/project/validate-secrets.js.map +1 -0
  813. package/dist/rtf/convertToRtf.d.ts +7 -0
  814. package/dist/rtf/convertToRtf.d.ts.map +1 -0
  815. package/dist/rtf/convertToRtf.js +24 -0
  816. package/dist/rtf/convertToRtf.js.map +1 -0
  817. package/dist/rtf/fromHtml.d.ts +8 -0
  818. package/dist/rtf/fromHtml.d.ts.map +1 -0
  819. package/dist/rtf/fromHtml.js +290 -0
  820. package/dist/rtf/fromHtml.js.map +1 -0
  821. package/dist/rtf/fromMarkdown.d.ts +25 -0
  822. package/dist/rtf/fromMarkdown.d.ts.map +1 -0
  823. package/dist/rtf/fromMarkdown.js +375 -0
  824. package/dist/rtf/fromMarkdown.js.map +1 -0
  825. package/dist/rtf/fromPlainText.d.ts +7 -0
  826. package/dist/rtf/fromPlainText.d.ts.map +1 -0
  827. package/dist/rtf/fromPlainText.js +39 -0
  828. package/dist/rtf/fromPlainText.js.map +1 -0
  829. package/dist/rtf/fromRtfJson.d.ts +10 -0
  830. package/dist/rtf/fromRtfJson.d.ts.map +1 -0
  831. package/dist/rtf/fromRtfJson.js +52 -0
  832. package/dist/rtf/fromRtfJson.js.map +1 -0
  833. package/dist/rtf/inlineHtml.d.ts +6 -0
  834. package/dist/rtf/inlineHtml.d.ts.map +1 -0
  835. package/dist/rtf/inlineHtml.js +152 -0
  836. package/dist/rtf/inlineHtml.js.map +1 -0
  837. package/dist/rtf/references.d.ts +9 -0
  838. package/dist/rtf/references.d.ts.map +1 -0
  839. package/dist/rtf/references.js +49 -0
  840. package/dist/rtf/references.js.map +1 -0
  841. package/dist/rtf/replacePlainText.d.ts +117 -0
  842. package/dist/rtf/replacePlainText.d.ts.map +1 -0
  843. package/dist/rtf/replacePlainText.js +598 -0
  844. package/dist/rtf/replacePlainText.js.map +1 -0
  845. package/dist/rtf/resolveRtfInput.d.ts +11 -0
  846. package/dist/rtf/resolveRtfInput.d.ts.map +1 -0
  847. package/dist/rtf/resolveRtfInput.js +23 -0
  848. package/dist/rtf/resolveRtfInput.js.map +1 -0
  849. package/dist/rtf/toMarkdown.d.ts +6 -0
  850. package/dist/rtf/toMarkdown.d.ts.map +1 -0
  851. package/dist/rtf/toMarkdown.js +179 -0
  852. package/dist/rtf/toMarkdown.js.map +1 -0
  853. package/dist/rtf/types.d.ts +5 -0
  854. package/dist/rtf/types.d.ts.map +1 -0
  855. package/dist/rtf/types.js +2 -0
  856. package/dist/rtf/types.js.map +1 -0
  857. package/dist/rtf/utils.d.ts +7 -0
  858. package/dist/rtf/utils.d.ts.map +1 -0
  859. package/dist/rtf/utils.js +11 -0
  860. package/dist/rtf/utils.js.map +1 -0
  861. package/dist/runtime/context.d.ts +32 -0
  862. package/dist/runtime/context.d.ts.map +1 -0
  863. package/dist/runtime/context.js +9 -0
  864. package/dist/runtime/context.js.map +1 -0
  865. package/dist/session/dirty.d.ts +20 -0
  866. package/dist/session/dirty.d.ts.map +1 -0
  867. package/dist/session/dirty.js +44 -0
  868. package/dist/session/dirty.js.map +1 -0
  869. package/dist/session/file-session-store.d.ts +10 -0
  870. package/dist/session/file-session-store.d.ts.map +1 -0
  871. package/dist/session/file-session-store.js +169 -0
  872. package/dist/session/file-session-store.js.map +1 -0
  873. package/dist/session/log.d.ts +6 -0
  874. package/dist/session/log.d.ts.map +1 -0
  875. package/dist/session/log.js +21 -0
  876. package/dist/session/log.js.map +1 -0
  877. package/dist/session/redis-session-store.d.ts +40 -0
  878. package/dist/session/redis-session-store.d.ts.map +1 -0
  879. package/dist/session/redis-session-store.js +199 -0
  880. package/dist/session/redis-session-store.js.map +1 -0
  881. package/dist/session/refs.d.ts +45 -0
  882. package/dist/session/refs.d.ts.map +1 -0
  883. package/dist/session/refs.js +152 -0
  884. package/dist/session/refs.js.map +1 -0
  885. package/dist/session/session-store.d.ts +27 -0
  886. package/dist/session/session-store.d.ts.map +1 -0
  887. package/dist/session/session-store.js +9 -0
  888. package/dist/session/session-store.js.map +1 -0
  889. package/dist/session/state.d.ts +106 -0
  890. package/dist/session/state.d.ts.map +1 -0
  891. package/dist/session/state.js +93 -0
  892. package/dist/session/state.js.map +1 -0
  893. package/dist/session/store.d.ts +16 -0
  894. package/dist/session/store.d.ts.map +1 -0
  895. package/dist/session/store.js +89 -0
  896. package/dist/session/store.js.map +1 -0
  897. package/dist/snapshot/field-value.d.ts +5 -0
  898. package/dist/snapshot/field-value.d.ts.map +1 -0
  899. package/dist/snapshot/field-value.js +42 -0
  900. package/dist/snapshot/field-value.js.map +1 -0
  901. package/dist/snapshot/fields.d.ts +10 -0
  902. package/dist/snapshot/fields.d.ts.map +1 -0
  903. package/dist/snapshot/fields.js +72 -0
  904. package/dist/snapshot/fields.js.map +1 -0
  905. package/dist/snapshot/render.d.ts +21 -0
  906. package/dist/snapshot/render.d.ts.map +1 -0
  907. package/dist/snapshot/render.js +231 -0
  908. package/dist/snapshot/render.js.map +1 -0
  909. package/dist/staged-upload/hmac.d.ts +6 -0
  910. package/dist/staged-upload/hmac.d.ts.map +1 -0
  911. package/dist/staged-upload/hmac.js +43 -0
  912. package/dist/staged-upload/hmac.js.map +1 -0
  913. package/dist/staged-upload/limits.d.ts +6 -0
  914. package/dist/staged-upload/limits.d.ts.map +1 -0
  915. package/dist/staged-upload/limits.js +9 -0
  916. package/dist/staged-upload/limits.js.map +1 -0
  917. package/dist/staged-upload/mime.d.ts +2 -0
  918. package/dist/staged-upload/mime.d.ts.map +1 -0
  919. package/dist/staged-upload/mime.js +15 -0
  920. package/dist/staged-upload/mime.js.map +1 -0
  921. package/dist/staged-upload/request.d.ts +11 -0
  922. package/dist/staged-upload/request.d.ts.map +1 -0
  923. package/dist/staged-upload/request.js +40 -0
  924. package/dist/staged-upload/request.js.map +1 -0
  925. package/dist/staged-upload/store.d.ts +19 -0
  926. package/dist/staged-upload/store.d.ts.map +1 -0
  927. package/dist/staged-upload/store.js +124 -0
  928. package/dist/staged-upload/store.js.map +1 -0
  929. package/dist/staged-upload/types.d.ts +27 -0
  930. package/dist/staged-upload/types.d.ts.map +1 -0
  931. package/dist/staged-upload/types.js +2 -0
  932. package/dist/staged-upload/types.js.map +1 -0
  933. package/dist/telemetry/axiom.d.ts +22 -0
  934. package/dist/telemetry/axiom.d.ts.map +1 -0
  935. package/dist/telemetry/axiom.js +45 -0
  936. package/dist/telemetry/axiom.js.map +1 -0
  937. package/dist/telemetry/composite.d.ts +9 -0
  938. package/dist/telemetry/composite.d.ts.map +1 -0
  939. package/dist/telemetry/composite.js +16 -0
  940. package/dist/telemetry/composite.js.map +1 -0
  941. package/dist/telemetry/enrich.d.ts +11 -0
  942. package/dist/telemetry/enrich.d.ts.map +1 -0
  943. package/dist/telemetry/enrich.js +32 -0
  944. package/dist/telemetry/enrich.js.map +1 -0
  945. package/dist/telemetry/factory.d.ts +8 -0
  946. package/dist/telemetry/factory.d.ts.map +1 -0
  947. package/dist/telemetry/factory.js +44 -0
  948. package/dist/telemetry/factory.js.map +1 -0
  949. package/dist/telemetry/index.d.ts +10 -0
  950. package/dist/telemetry/index.d.ts.map +1 -0
  951. package/dist/telemetry/index.js +9 -0
  952. package/dist/telemetry/index.js.map +1 -0
  953. package/dist/telemetry/local.d.ts +9 -0
  954. package/dist/telemetry/local.d.ts.map +1 -0
  955. package/dist/telemetry/local.js +21 -0
  956. package/dist/telemetry/local.js.map +1 -0
  957. package/dist/telemetry/noop.d.ts +7 -0
  958. package/dist/telemetry/noop.d.ts.map +1 -0
  959. package/dist/telemetry/noop.js +6 -0
  960. package/dist/telemetry/noop.js.map +1 -0
  961. package/dist/telemetry/record.d.ts +14 -0
  962. package/dist/telemetry/record.d.ts.map +1 -0
  963. package/dist/telemetry/record.js +61 -0
  964. package/dist/telemetry/record.js.map +1 -0
  965. package/dist/telemetry/request-stats.d.ts +15 -0
  966. package/dist/telemetry/request-stats.d.ts.map +1 -0
  967. package/dist/telemetry/request-stats.js +34 -0
  968. package/dist/telemetry/request-stats.js.map +1 -0
  969. package/dist/telemetry/types.d.ts +47 -0
  970. package/dist/telemetry/types.d.ts.map +1 -0
  971. package/dist/telemetry/types.js +2 -0
  972. package/dist/telemetry/types.js.map +1 -0
  973. package/dist/validation/allowed-types.d.ts +7 -0
  974. package/dist/validation/allowed-types.d.ts.map +1 -0
  975. package/dist/validation/allowed-types.js +17 -0
  976. package/dist/validation/allowed-types.js.map +1 -0
  977. package/dist/version.d.ts +9 -0
  978. package/dist/version.d.ts.map +1 -0
  979. package/dist/version.js +10 -0
  980. package/dist/version.js.map +1 -0
  981. package/docs/FEATURE_REQUESTS_ARCHIVE.md +141 -0
  982. package/docs/FUNCTIONAL_SPEC.md +303 -0
  983. package/docs/MEDIA_INDEX_PLAN.md +256 -0
  984. package/docs/SKILLS.md +29 -0
  985. package/docs/TELEMETRY_AXIOM.md +93 -0
  986. package/docs/editor-tasks/article-tags.md +47 -0
  987. package/docs/editor-tasks/authors-import.md +53 -0
  988. package/docs/editor-tasks/bulk-find-replace.md +52 -0
  989. package/docs/editor-tasks/clone-page.md +39 -0
  990. package/docs/editor-tasks/create-article.md +77 -0
  991. package/docs/editor-tasks/create-from-document.md +77 -0
  992. package/docs/editor-tasks/create-page.md +45 -0
  993. package/docs/editor-tasks/edit-rich-text.md +44 -0
  994. package/docs/editor-tasks/edit-scalar-fields.md +47 -0
  995. package/docs/editor-tasks/featured-images.md +46 -0
  996. package/docs/editor-tasks/media-pipeline-prepare.md +175 -0
  997. package/docs/editor-tasks/media-reuse-and-upload.md +122 -0
  998. package/docs/editor-tasks/media-review.md +139 -0
  999. package/docs/editor-tasks/navigation.md +39 -0
  1000. package/docs/editor-tasks/preview-verify.md +93 -0
  1001. package/docs/editor-tasks/publish-handoff.md +41 -0
  1002. package/docs/editor-tasks/seo-descriptions.md +48 -0
  1003. package/docs/editor-tasks/source-readiness-review.md +116 -0
  1004. package/docs/editor-tasks/taxonomy.md +51 -0
  1005. package/docs/help/article-tags-from-json.md +62 -0
  1006. package/docs/help/asset-review.md +56 -0
  1007. package/docs/help/batch-run.md +222 -0
  1008. package/docs/help/batch.md +94 -0
  1009. package/docs/help/bulk-rtf-replace.md +80 -0
  1010. package/docs/help/create-from-json.md +382 -0
  1011. package/docs/help/fields-article.md +161 -0
  1012. package/docs/help/fields-collection.md +133 -0
  1013. package/docs/help/fields-component.md +165 -0
  1014. package/docs/help/fields-page.md +123 -0
  1015. package/docs/help/fields-taxonomy.md +158 -0
  1016. package/docs/help/fields.md +60 -0
  1017. package/docs/help/index-sync.md +136 -0
  1018. package/docs/help/index.md +181 -0
  1019. package/docs/help/lookup.md +132 -0
  1020. package/docs/help/person-from-json.md +82 -0
  1021. package/docs/help/taxonomy-from-json.md +115 -0
  1022. package/docs/help/workflow.md +239 -0
  1023. package/docs/mcp/e2e-test-prompt.md +159 -0
  1024. package/docs/mcp/hosted-guide.md +354 -0
  1025. package/package.json +107 -0
  1026. package/skills/README.md +30 -0
  1027. package/skills/core/SKILL.md +860 -0
  1028. package/skills/editor-tasks/SKILL.md +86 -0
  1029. package/skills/manifest.json +6 -0
  1030. package/skills/setup/SKILL.md +102 -0
  1031. 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.