@se-studio/contentful-cms 1.0.53 → 1.0.56

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 (54) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +24 -16
  3. package/dist/commands/create-from-json.d.ts.map +1 -1
  4. package/dist/commands/create-from-json.js +61 -17
  5. package/dist/commands/create-from-json.js.map +1 -1
  6. package/dist/commands/nav.d.ts.map +1 -1
  7. package/dist/commands/nav.js +11 -5
  8. package/dist/commands/nav.js.map +1 -1
  9. package/dist/commands/rtf.d.ts.map +1 -1
  10. package/dist/commands/rtf.js +105 -40
  11. package/dist/commands/rtf.js.map +1 -1
  12. package/dist/commands/set.d.ts.map +1 -1
  13. package/dist/commands/set.js +117 -14
  14. package/dist/commands/set.js.map +1 -1
  15. package/dist/contentful/set-field-schema.d.ts +0 -2
  16. package/dist/contentful/set-field-schema.d.ts.map +1 -1
  17. package/dist/contentful/set-field-schema.js +1 -1
  18. package/dist/contentful/set-field-schema.js.map +1 -1
  19. package/dist/rtf/convertToRtf.d.ts +7 -0
  20. package/dist/rtf/convertToRtf.d.ts.map +1 -0
  21. package/dist/rtf/convertToRtf.js +24 -0
  22. package/dist/rtf/convertToRtf.js.map +1 -0
  23. package/dist/rtf/fromHtml.d.ts +8 -0
  24. package/dist/rtf/fromHtml.d.ts.map +1 -0
  25. package/dist/rtf/fromHtml.js +290 -0
  26. package/dist/rtf/fromHtml.js.map +1 -0
  27. package/dist/rtf/fromPlainText.d.ts +7 -0
  28. package/dist/rtf/fromPlainText.d.ts.map +1 -0
  29. package/dist/rtf/fromPlainText.js +39 -0
  30. package/dist/rtf/fromPlainText.js.map +1 -0
  31. package/dist/rtf/fromRtfJson.d.ts +10 -0
  32. package/dist/rtf/fromRtfJson.d.ts.map +1 -0
  33. package/dist/rtf/fromRtfJson.js +52 -0
  34. package/dist/rtf/fromRtfJson.js.map +1 -0
  35. package/dist/rtf/inlineHtml.d.ts +6 -0
  36. package/dist/rtf/inlineHtml.d.ts.map +1 -0
  37. package/dist/rtf/inlineHtml.js +152 -0
  38. package/dist/rtf/inlineHtml.js.map +1 -0
  39. package/dist/rtf/replacePlainText.d.ts +8 -0
  40. package/dist/rtf/replacePlainText.d.ts.map +1 -1
  41. package/dist/rtf/replacePlainText.js +48 -11
  42. package/dist/rtf/replacePlainText.js.map +1 -1
  43. package/dist/rtf/resolveRtfInput.d.ts +11 -0
  44. package/dist/rtf/resolveRtfInput.d.ts.map +1 -0
  45. package/dist/rtf/{resolveMarkdownInput.js → resolveRtfInput.js} +13 -7
  46. package/dist/rtf/resolveRtfInput.js.map +1 -0
  47. package/dist/rtf/types.d.ts +5 -0
  48. package/dist/rtf/types.d.ts.map +1 -0
  49. package/dist/rtf/types.js +2 -0
  50. package/dist/rtf/types.js.map +1 -0
  51. package/package.json +5 -5
  52. package/dist/rtf/resolveMarkdownInput.d.ts +0 -6
  53. package/dist/rtf/resolveMarkdownInput.d.ts.map +0 -1
  54. package/dist/rtf/resolveMarkdownInput.js.map +0 -1
@@ -4,40 +4,59 @@ import { BLOCKS } from '@contentful/rich-text-types';
4
4
  import pc from 'picocolors';
5
5
  import { isJsonMode } from '../output/mode.js';
6
6
  import { errorMsg, successMsg, warnMsg } from '../output/print.js';
7
- import { markdownToRtf } from '../rtf/fromMarkdown.js';
7
+ import { stringToRtfDocument } from '../rtf/convertToRtf.js';
8
8
  import { extractBlockPlainText, getHeadingLevel, isHeadingBlock, RichTextReplaceError, replaceRtfPlainText, } from '../rtf/replacePlainText.js';
9
- import { resolveMarkdownInput } from '../rtf/resolveMarkdownInput.js';
9
+ import { resolveRtfInput } from '../rtf/resolveRtfInput.js';
10
10
  import { rtfToMarkdown } from '../rtf/toMarkdown.js';
11
11
  import { isRtfDocument } from '../rtf/utils.js';
12
12
  import { resolveRef } from '../session/refs.js';
13
13
  import { requireSession, saveSession } from '../session/store.js';
14
- const RTF_DESCRIPTION = 'Set a rich text field from Markdown input.\n' +
15
- 'Inline (short content): rtf @c0 body "# Heading\\n\\nParagraph."\n' +
16
- 'Named flag (preferred for AI use): rtf @c0 body --content "# Heading\\n\\nParagraph."\n' +
17
- 'Base64 (cross-environment, no filesystem): rtf @c0 body --base64 <base64-encoded-markdown>\n' +
18
- 'File (long content or Windows path): rtf @c0 body --file <absolute-path>\n' +
19
- 'Note: --file requires a platform-native absolute path (e.g. C:\\\\Users\\\\... on Windows).\n' +
20
- 'Supports: # headings, **bold**, _italic_, [links](url), - lists, 1. lists, > blockquotes.\n' +
14
+ function pickRtfFormat(opts) {
15
+ const chosen = [];
16
+ if (opts.text)
17
+ chosen.push('text');
18
+ if (opts.markdown)
19
+ chosen.push('markdown');
20
+ if (opts.html)
21
+ chosen.push('html');
22
+ if (opts.json)
23
+ chosen.push('json');
24
+ if (chosen.length > 1) {
25
+ throw new Error('Use only one of --text, --markdown, --html, --json');
26
+ }
27
+ return chosen[0] ?? 'markdown';
28
+ }
29
+ const RTF_DESCRIPTION = 'Set a rich text field from plain text, Markdown, HTML, or Rich Text JSON.\n' +
30
+ 'Format: --text | --markdown (default) | --html | --json — exactly one optional flag.\n' +
31
+ 'Inline (short content): rtf @c0 body --markdown "# Heading\\n\\nParagraph."\n' +
32
+ 'Named flag: rtf @c0 body --content "<p>…</p>" --html\n' +
33
+ 'Base64: rtf @c0 body --base64 <base64> --json\n' +
34
+ 'File: rtf @c0 body --file <absolute-path> --markdown\n' +
21
35
  'Subcommands: embed — embedded blocks; replace — surgical find/replace; patch — JSON batch replace; edit — replace via stdin; headings — list heading blocks.';
22
36
  export function registerRtfCommand(program) {
23
37
  const rtfCmd = program
24
- .command('rtf [ref] [field] [markdown]')
38
+ .command('rtf [ref] [field] [content]')
25
39
  .description(RTF_DESCRIPTION)
26
- .option('--file <path>', 'Read Markdown from a file (platform-native absolute path)')
27
- .option('--content <markdown>', 'Markdown content as a named string flag (preferred for AI use)')
28
- .option('--base64 <encoded>', 'Base64-encoded Markdown — eliminates filesystem dependency')
29
- .action(async (ref, field, markdownArg, opts, cmd) => {
40
+ .option('--file <path>', 'Read input from a file (platform-native absolute path)')
41
+ .option('--content <string>', 'Content as a named string flag (preferred for AI use)')
42
+ .option('--base64 <encoded>', 'Base64-encoded input — eliminates filesystem dependency')
43
+ .option('--text', 'Interpret input as plain text (paragraphs from newlines; inline **bold** allowed)')
44
+ .option('--markdown', 'Interpret input as Markdown (default when no format flag)')
45
+ .option('--html', 'Interpret input as HTML')
46
+ .option('--json', 'Interpret input as Contentful Rich Text document JSON')
47
+ .action(async (ref, field, contentArg, opts, cmd) => {
30
48
  try {
31
49
  if (!ref || !field) {
32
50
  errorMsg('Set rich text: provide <ref> and <field>. Example: cms-edit rtf @c1 body "..."');
33
51
  process.exit(1);
34
52
  }
35
- const markdown = await resolveMarkdownInput(markdownArg, opts.file, opts.content, opts.base64);
53
+ const format = pickRtfFormat(opts);
54
+ const raw = await resolveRtfInput(format, contentArg, opts.file, opts.content, opts.base64);
36
55
  const parentOpts = cmd.parent?.opts() ?? {};
37
56
  const session = requireSession(parentOpts.session, parentOpts.config);
38
57
  const entry = resolveRef(session, ref);
39
58
  const locale = session.defaultLocale;
40
- const document = markdownToRtf(markdown);
59
+ const document = stringToRtfDocument(raw, format);
41
60
  if (!entry.fields[field]) {
42
61
  entry.fields[field] = {};
43
62
  }
@@ -67,6 +86,8 @@ export function registerRtfCommand(program) {
67
86
  .option('--find-plain <text>', 'Alias for --find; use when the search string contains * characters')
68
87
  .option('--replace <markdown>', 'Replacement as inline Markdown (**bold**, [links](url), …)')
69
88
  .option('--replace-plain <text>', 'Replacement as literal text (no Markdown); use for strings containing *')
89
+ .option('--replace-html <html>', 'Replacement as inline HTML (bold, links, …)')
90
+ .option('--replace-json <json>', 'Replacement as JSON array of inline rich-text nodes')
70
91
  .option('--mode <mode>', 'all = replace every match; exactlyOne = require a single match (default: all)', 'all')
71
92
  .option('--ignore-marks', 'Match across adjacent bold/plain text node splits within the same block')
72
93
  .option('--in-table-col <n>', 'Restrict replacements to table column N (1-indexed); non-table content is unaffected', (v) => Number.parseInt(v, 10))
@@ -93,6 +114,8 @@ export function registerRtfCommand(program) {
93
114
  const findStr = (hasFind ? opts.find : opts.findPlain) ?? '';
94
115
  const hasMd = opts.replace !== undefined && opts.replace !== '';
95
116
  const hasPlain = opts.replacePlain !== undefined && opts.replacePlain !== '';
117
+ const hasHtml = opts.replaceHtml !== undefined && opts.replaceHtml !== '';
118
+ const hasJson = opts.replaceJson !== undefined && opts.replaceJson !== '';
96
119
  if (opts.mode !== 'all' && opts.mode !== 'exactlyOne') {
97
120
  errorMsg('--mode must be "all" or "exactlyOne".');
98
121
  process.exit(1);
@@ -132,11 +155,14 @@ export function registerRtfCommand(program) {
132
155
  errorMsg(`Field "${field}" is not rich text on ${ref}.`);
133
156
  process.exit(1);
134
157
  }
135
- // In dry-run mode, --replace / --replace-plain can be omitted
158
+ // In dry-run mode, replacement flags can be omitted
136
159
  const isDryRun = !!opts.dryRun;
137
- if (!isDryRun && hasMd === hasPlain) {
138
- errorMsg('Provide exactly one of --replace or --replace-plain.');
139
- process.exit(1);
160
+ if (!isDryRun) {
161
+ const replaceCount = [hasMd, hasPlain, hasHtml, hasJson].filter(Boolean).length;
162
+ if (replaceCount !== 1) {
163
+ errorMsg('Provide exactly one of --replace, --replace-plain, --replace-html, or --replace-json.');
164
+ process.exit(1);
165
+ }
140
166
  }
141
167
  if (opts.inTableRow !== undefined &&
142
168
  (Number.isNaN(opts.inTableRow) || opts.inTableRow < 1)) {
@@ -150,7 +176,11 @@ export function registerRtfCommand(program) {
150
176
  ? { replacePlain: opts.replacePlain ?? '' }
151
177
  : hasMd
152
178
  ? { replaceMarkdown: opts.replace ?? '' }
153
- : { replacePlain: '' }), // dry-run placeholder
179
+ : hasHtml
180
+ ? { replaceHtml: opts.replaceHtml ?? '' }
181
+ : hasJson
182
+ ? { replaceJson: opts.replaceJson ?? '' }
183
+ : { replacePlain: '' }), // dry-run placeholder
154
184
  ...(opts.ignoreMarks ? { ignoreMarks: true } : {}),
155
185
  ...(opts.inTableCol !== undefined ? { tableCol: opts.inTableCol } : {}),
156
186
  ...(opts.inTableRow !== undefined ? { tableRow: opts.inTableRow } : {}),
@@ -315,10 +345,10 @@ export function registerRtfCommand(program) {
315
345
  .command('patch <ref> <field>')
316
346
  .description('Apply a JSON array of find/replace operations to a rich text field in sequence.\n' +
317
347
  'Pass --file <path> to read from a file; omit to read JSON from stdin.\n' +
318
- 'Each op: { "find": "...", "replaceWith": "...", "replaceIsMarkdown": true, "mode": "all"|"exactlyOne", ... }\n' +
319
- '"replaceWith" is treated as plain text unless "replaceIsMarkdown" is true.\n' +
320
- 'Supported op fields: find, replaceWith, replaceIsMarkdown, mode, ignoreMarks, inTableCol, inTableRow,\n' +
321
- ' inRowContaining, inColContaining, section, sectionNth, protectPattern.\n' +
348
+ 'Each op: { "find": "...", "replaceWith": "...", "replaceIsMarkdown"|"replaceIsHtml"|"replaceIsJson": true, ... }\n' +
349
+ 'Or use "replaceFormat": "plain"|"markdown"|"html"|"json" with "replaceWith".\n' +
350
+ 'Supported op fields: find, replaceWith, replaceIsMarkdown, replaceIsHtml, replaceIsJson, replaceFormat, mode, ignoreMarks,\n' +
351
+ ' inTableCol, inTableRow, inRowContaining, inColContaining, section, sectionNth, protectPattern.\n' +
322
352
  'All ops are applied in order; if any fails, no changes are saved.')
323
353
  .option('--file <path>', 'Read JSON patch ops from a file (omit to read from stdin)')
324
354
  .option('--dry-run', 'Count matches for each op without writing changes')
@@ -372,17 +402,47 @@ export function registerRtfCommand(program) {
372
402
  }
373
403
  const replaceWith = typeof o['replaceWith'] === 'string' ? o['replaceWith'] : '';
374
404
  const replaceIsMarkdown = !!o['replaceIsMarkdown'];
405
+ const replaceIsHtml = !!o['replaceIsHtml'];
406
+ const replaceIsJson = !!o['replaceIsJson'];
407
+ const replaceFormatRaw = typeof o['replaceFormat'] === 'string' ? o['replaceFormat'].toLowerCase().trim() : '';
375
408
  const mode = typeof o['mode'] === 'string' ? o['mode'] : 'all';
376
409
  if (mode !== 'all' && mode !== 'exactlyOne') {
377
410
  errorMsg(`Op ${String(i)}: "mode" must be "all" or "exactlyOne".`);
378
411
  process.exit(1);
379
412
  }
413
+ const fmtFlags = [
414
+ replaceIsMarkdown,
415
+ replaceIsHtml,
416
+ replaceIsJson,
417
+ replaceFormatRaw !== '',
418
+ ].filter(Boolean).length;
419
+ if (fmtFlags > 1) {
420
+ errorMsg(`Op ${String(i)}: use at most one of replaceIsMarkdown, replaceIsHtml, replaceIsJson, replaceFormat.`);
421
+ process.exit(1);
422
+ }
423
+ let replacePart;
424
+ if (replaceIsMarkdown || replaceFormatRaw === 'markdown') {
425
+ replacePart = { replaceMarkdown: replaceWith };
426
+ }
427
+ else if (replaceIsHtml || replaceFormatRaw === 'html') {
428
+ replacePart = { replaceHtml: replaceWith };
429
+ }
430
+ else if (replaceIsJson || replaceFormatRaw === 'json') {
431
+ replacePart = { replaceJson: replaceWith };
432
+ }
433
+ else if (replaceFormatRaw === 'plain' ||
434
+ replaceFormatRaw === 'text' ||
435
+ replaceFormatRaw === '') {
436
+ replacePart = { replacePlain: replaceWith };
437
+ }
438
+ else {
439
+ errorMsg(`Op ${String(i)}: "replaceFormat" must be plain, text, markdown, html, or json.`);
440
+ process.exit(1);
441
+ }
380
442
  const opOptions = {
381
443
  find: o['find'],
382
444
  mode: mode,
383
- ...(replaceIsMarkdown
384
- ? { replaceMarkdown: replaceWith }
385
- : { replacePlain: replaceWith }),
445
+ ...replacePart,
386
446
  ...(o['ignoreMarks'] ? { ignoreMarks: true } : {}),
387
447
  ...(typeof o['inTableCol'] === 'number'
388
448
  ? { tableCol: o['inTableCol'] }
@@ -463,10 +523,15 @@ export function registerRtfCommand(program) {
463
523
  });
464
524
  rtfCmd
465
525
  .command('edit <ref> <field>')
466
- .description('Replace a rich text field by reading replacement Markdown from stdin.\n' +
526
+ .description('Replace a rich text field by reading new content from stdin.\n' +
527
+ 'Format: --text | --markdown (default) | --html | --json.\n' +
467
528
  'In human mode, the current field content is printed to stdout as Markdown first.\n' +
468
- 'Example: echo "# New heading\\n\\nBody text." | cms-edit rtf edit @c1 body')
469
- .action(async (ref, field, _opts, cmd) => {
529
+ 'Example: echo "# New heading\\n\\nBody text." | cms-edit rtf edit @c1 body --markdown')
530
+ .option('--text', 'Stdin is plain text')
531
+ .option('--markdown', 'Stdin is Markdown (default)')
532
+ .option('--html', 'Stdin is HTML')
533
+ .option('--json', 'Stdin is Rich Text document JSON')
534
+ .action(async (ref, field, opts, cmd) => {
470
535
  const parentOpts = cmd.parent?.parent?.opts() ?? {};
471
536
  try {
472
537
  const session = requireSession(parentOpts.session, parentOpts.config);
@@ -477,28 +542,28 @@ export function registerRtfCommand(program) {
477
542
  errorMsg(`Field "${field}" is missing on ${ref}.`);
478
543
  process.exit(1);
479
544
  }
480
- const raw = fieldData[locale] ?? fieldData['en-US'];
481
- if (raw === undefined || raw === null) {
545
+ const rawField = fieldData[locale] ?? fieldData['en-US'];
546
+ if (rawField === undefined || rawField === null) {
482
547
  errorMsg(`Field "${field}" has no value for locale on ${ref}.`);
483
548
  process.exit(1);
484
549
  }
485
- if (typeof raw !== 'object' ||
486
- raw === null ||
487
- raw.nodeType !== BLOCKS.DOCUMENT) {
550
+ if (typeof rawField !== 'object' ||
551
+ rawField === null ||
552
+ rawField.nodeType !== BLOCKS.DOCUMENT) {
488
553
  errorMsg(`Field "${field}" is not rich text on ${ref}.`);
489
554
  process.exit(1);
490
555
  }
491
556
  // In human mode, print current content as Markdown so the caller can diff
492
557
  if (!isJsonMode()) {
493
- const currentMarkdown = rtfToMarkdown(raw);
558
+ const currentMarkdown = rtfToMarkdown(rawField);
494
559
  process.stdout.write(currentMarkdown);
495
560
  if (!currentMarkdown.endsWith('\n')) {
496
561
  process.stdout.write('\n');
497
562
  }
498
563
  }
499
- // Read replacement Markdown from stdin
500
- const newMarkdown = await resolveMarkdownInput('-', undefined);
501
- const newDocument = markdownToRtf(newMarkdown);
564
+ const format = pickRtfFormat(opts);
565
+ const replacement = await resolveRtfInput(format, '-', undefined);
566
+ const newDocument = stringToRtfDocument(replacement, format);
502
567
  entry.fields[field][locale] = newDocument;
503
568
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
504
569
  session.modifiedEntryIds.push(entry.sys.id);
@@ -1 +1 @@
1
- {"version":3,"file":"rtf.js","sourceRoot":"","sources":["../../src/commands/rtf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rtf.js","sourceRoot":"","sources":["../../src/commands/rtf.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6PzD"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyVzD"}
@@ -4,6 +4,8 @@ import { loadConfig, resolveSpaceConfig } from '../config/load.js';
4
4
  import { createSafeEnvironment } from '../contentful/client.js';
5
5
  import { getActiveFieldDef, getContentTypeCached, validateLinksSetAgainstFieldSchema, validateScalarSetAgainstFieldSchema, } from '../contentful/set-field-schema.js';
6
6
  import { errorMsg, successMsg, warnMsg } from '../output/print.js';
7
+ import { stringToRtfDocument } from '../rtf/convertToRtf.js';
8
+ import { isRtfDocument } from '../rtf/utils.js';
7
9
  import { makeAssetLink, makeEntryLink, resolveRef, resolveRefToId } from '../session/refs.js';
8
10
  import { requireSession, saveSession } from '../session/store.js';
9
11
  import { everyTokenLooksLikeMultiAssignment, parseMultiSetAssignments, } from './multiset-assignments.js';
@@ -16,12 +18,12 @@ export function registerSetCommand(program) {
16
18
  ' Multi-set applies scalar values to any number of entries in one command.\n' +
17
19
  ' Flags (--link, --asset, --links, --file, --json) apply to single mode only.\n' +
18
20
  'Scalar (default): pass a string, boolean, or number as <value>.\n' +
21
+ 'Rich text: use --rtf-text | --rtf-markdown (default) | --rtf-html | --rtf-json with a string value, or --file/--json with a full document.\n' +
19
22
  'Object/JSON: use --file <path> to read JSON from a file, or --json <json> for inline JSON.\n' +
20
23
  'Plain text file: use --text-file <path> to read a file as a plain string (for rawHtml, customCss, etc.).\n' +
21
24
  'Entry link: use --link (value = linked entry ID).\n' +
22
25
  'Asset link: use --asset (value = asset ID).\n' +
23
- 'Entry link array: use --links (value = comma-separated refs or IDs); field must be an array of entry links; use --append to append.\n' +
24
- 'For rich text fields use "cms-edit rtf" instead.')
26
+ 'Entry link array: use --links (value = comma-separated refs or IDs); field must be an array of entry links; use --append to append.')
25
27
  .option('--link', 'Value is an entry ID for a single-entry link field')
26
28
  .option('--asset', 'Value is an asset ID for a single-asset link field')
27
29
  .option('--links', 'Value is comma-separated refs or entry IDs; field must be an array of entry links')
@@ -29,13 +31,34 @@ export function registerSetCommand(program) {
29
31
  .option('--file <path>', 'Read JSON from a file and set the field as an Object value')
30
32
  .option('--text-file <path>', 'Read a plain text file and set the field as a Text value (for rawHtml, customCss, etc.)')
31
33
  .option('--json <json>', 'Inline JSON string to set the field as an Object value')
34
+ .option('--rtf-text', 'Interpret scalar value as plain text → Rich Text (paragraph breaks)')
35
+ .option('--rtf-markdown', 'Interpret scalar value as Markdown → Rich Text (default for RichText fields)')
36
+ .option('--rtf-html', 'Interpret scalar value as HTML → Rich Text')
37
+ .option('--rtf-json', 'Interpret scalar value as Contentful Rich Text document JSON')
32
38
  .action(async (assignments, opts, cmd) => {
33
39
  const parentOpts = cmd.parent?.opts() ?? {};
34
40
  try {
35
41
  // Multi-set mode: all tokens match @ref:field=value
36
42
  if (everyTokenLooksLikeMultiAssignment(assignments)) {
37
43
  const session = requireSession(parentOpts.session, parentOpts.config);
38
- await handleMultiSet(assignments, session, parentOpts);
44
+ let rtfFormatMulti = 'markdown';
45
+ try {
46
+ rtfFormatMulti = resolveSetRtfFormat(opts);
47
+ }
48
+ catch (e) {
49
+ errorMsg(e instanceof Error ? e.message : String(e));
50
+ process.exit(1);
51
+ }
52
+ const hasRtfMulti = !!(opts.rtfText ||
53
+ opts.rtfMarkdown ||
54
+ opts.rtfHtml ||
55
+ opts.rtfJson);
56
+ if (hasRtfMulti &&
57
+ (opts.link || opts.asset || opts.links || opts.file || opts.json || opts.textFile)) {
58
+ errorMsg('Cannot combine --rtf-* with --link, --asset, --links, --file, --json, or --text-file in multi-set mode.');
59
+ process.exit(1);
60
+ }
61
+ await handleMultiSet(assignments, session, parentOpts, rtfFormatMulti);
39
62
  return;
40
63
  }
41
64
  const ref = assignments[0];
@@ -78,9 +101,37 @@ export function registerSetCommand(program) {
78
101
  const session = requireSession(parentOpts.session, parentOpts.config);
79
102
  const entry = resolveRef(session, ref);
80
103
  const locale = session.defaultLocale;
104
+ let rtfFormat = 'markdown';
105
+ try {
106
+ rtfFormat = resolveSetRtfFormat(opts);
107
+ }
108
+ catch (e) {
109
+ errorMsg(e instanceof Error ? e.message : String(e));
110
+ process.exit(1);
111
+ }
112
+ const hasRtfFlag = !!(opts.rtfText || opts.rtfMarkdown || opts.rtfHtml || opts.rtfJson);
113
+ if (hasRtfFlag && (opts.link || opts.asset || opts.links || isObjectMode)) {
114
+ errorMsg('Cannot combine --rtf-* with --link, --asset, --links, or object JSON (--file/--json).');
115
+ process.exit(1);
116
+ }
117
+ let fieldDef;
118
+ try {
119
+ const config = loadConfig(parentOpts.config);
120
+ const { space } = resolveSpaceConfig(config, session.spaceKey);
121
+ const env = await createSafeEnvironment(space);
122
+ const ct = await getContentTypeCached(env, session, entry.sys.contentType.sys.id);
123
+ fieldDef = getActiveFieldDef(ct, field);
124
+ }
125
+ catch {
126
+ fieldDef = undefined;
127
+ }
81
128
  if (isObjectMode) {
82
129
  const jsonString = opts.file ? readFileStrict(opts.file) : opts.json;
83
130
  const parsed = parseJsonStrict(jsonString, opts.file);
131
+ if (fieldDef?.type === 'RichText' && !isRtfDocument(parsed)) {
132
+ errorMsg(`Field "${field}" is Rich Text — JSON must be a full Rich Text document (root nodeType "document").`);
133
+ process.exit(1);
134
+ }
84
135
  if (!entry.fields[field]) {
85
136
  entry.fields[field] = {};
86
137
  }
@@ -96,10 +147,25 @@ export function registerSetCommand(program) {
96
147
  }
97
148
  if (opts.textFile) {
98
149
  const text = readFileStrict(opts.textFile);
150
+ let stored = text;
151
+ if (fieldDef?.type === 'RichText') {
152
+ const hasExplicitRtfFlag = !!(opts.rtfText ||
153
+ opts.rtfMarkdown ||
154
+ opts.rtfHtml ||
155
+ opts.rtfJson);
156
+ const fmt = hasExplicitRtfFlag ? rtfFormat : 'text';
157
+ try {
158
+ stored = stringToRtfDocument(text, fmt);
159
+ }
160
+ catch (e) {
161
+ errorMsg(e instanceof Error ? e.message : String(e));
162
+ process.exit(1);
163
+ }
164
+ }
99
165
  if (!entry.fields[field]) {
100
166
  entry.fields[field] = {};
101
167
  }
102
- entry.fields[field][locale] = text;
168
+ entry.fields[field][locale] = stored;
103
169
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
104
170
  session.modifiedEntryIds.push(entry.sys.id);
105
171
  }
@@ -113,11 +179,6 @@ export function registerSetCommand(program) {
113
179
  }
114
180
  if (!isObjectMode && !opts.link && !opts.asset && !opts.links) {
115
181
  try {
116
- const config = loadConfig(parentOpts.config);
117
- const { space } = resolveSpaceConfig(config, session.spaceKey);
118
- const env = await createSafeEnvironment(space);
119
- const ct = await getContentTypeCached(env, session, entry.sys.contentType.sys.id);
120
- const fieldDef = getActiveFieldDef(ct, field);
121
182
  const conflict = validateScalarSetAgainstFieldSchema(fieldDef);
122
183
  if (conflict) {
123
184
  errorMsg(formatSetSchemaConflict(ref, field, conflict));
@@ -168,11 +229,23 @@ export function registerSetCommand(program) {
168
229
  : `Set ${field} on ${ref} to ${linkArray.length} link(s).`);
169
230
  return;
170
231
  }
171
- const value = opts.link
232
+ let value = opts.link
172
233
  ? makeEntryLink(effectiveValue.trim())
173
234
  : opts.asset
174
235
  ? makeAssetLink(effectiveValue.trim())
175
236
  : parseScalarValue(effectiveValue);
237
+ if (!opts.link &&
238
+ !opts.asset &&
239
+ fieldDef?.type === 'RichText' &&
240
+ typeof value === 'string') {
241
+ try {
242
+ value = stringToRtfDocument(value, rtfFormat);
243
+ }
244
+ catch (e) {
245
+ errorMsg(e instanceof Error ? e.message : String(e));
246
+ process.exit(1);
247
+ }
248
+ }
176
249
  if (!entry.fields[field]) {
177
250
  entry.fields[field] = {};
178
251
  }
@@ -216,8 +289,6 @@ function parseJsonStrict(jsonString, sourceFile) {
216
289
  }
217
290
  function formatSetSchemaConflict(ref, field, conflict) {
218
291
  switch (conflict.kind) {
219
- case 'richText':
220
- return `'${field}' is a RichText field — use: cms-edit rtf ${ref} ${field}`;
221
292
  case 'entryLink':
222
293
  return `'${field}' is an Entry link field — use: cms-edit set ${ref} ${field} <entry-id> --link`;
223
294
  case 'assetLink':
@@ -261,7 +332,22 @@ function parseScalarValue(raw) {
261
332
  * Handles multi-set mode: applies scalar values to multiple entries in one command.
262
333
  * Token format: @ref:fieldName=value (e.g. @c1:cmsLabel=Hero — School avoidance)
263
334
  */
264
- async function handleMultiSet(tokens, session, parentOpts) {
335
+ function resolveSetRtfFormat(opts) {
336
+ const chosen = [];
337
+ if (opts.rtfText)
338
+ chosen.push('text');
339
+ if (opts.rtfMarkdown)
340
+ chosen.push('markdown');
341
+ if (opts.rtfHtml)
342
+ chosen.push('html');
343
+ if (opts.rtfJson)
344
+ chosen.push('json');
345
+ if (chosen.length > 1) {
346
+ throw new Error('Use only one of --rtf-text, --rtf-markdown, --rtf-html, --rtf-json');
347
+ }
348
+ return chosen[0] ?? 'markdown';
349
+ }
350
+ async function handleMultiSet(tokens, session, parentOpts, rtfFormat) {
265
351
  let parsed;
266
352
  try {
267
353
  parsed = parseMultiSetAssignments(tokens);
@@ -301,7 +387,24 @@ async function handleMultiSet(tokens, session, parentOpts) {
301
387
  const applied = [];
302
388
  for (const { ref, field, raw } of parsed) {
303
389
  const entry = entryByRef.get(ref);
304
- const value = parseScalarValue(raw);
390
+ let value = parseScalarValue(raw);
391
+ const ctId = entry.sys.contentType.sys.id;
392
+ let ct = ctByContentTypeId.get(ctId);
393
+ if (!ct) {
394
+ ct = await getContentTypeCached(env, session, ctId);
395
+ ctByContentTypeId.set(ctId, ct);
396
+ }
397
+ const fd = getActiveFieldDef(ct, field);
398
+ if (fd?.type === 'RichText' && typeof value === 'string') {
399
+ try {
400
+ value = stringToRtfDocument(value, rtfFormat);
401
+ }
402
+ catch (e) {
403
+ errorMsg(e instanceof Error ? e.message : String(e));
404
+ process.exit(1);
405
+ return;
406
+ }
407
+ }
305
408
  if (!entry.fields[field]) {
306
409
  entry.fields[field] = {};
307
410
  }