@se-studio/contentful-cms 1.0.19 → 1.0.20

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 (81) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +0 -12
  3. package/dist/bin/cms-edit.js +66 -9
  4. package/dist/bin/cms-edit.js.map +1 -1
  5. package/dist/commands/asset.d.ts.map +1 -1
  6. package/dist/commands/asset.js +122 -16
  7. package/dist/commands/asset.js.map +1 -1
  8. package/dist/commands/diff.d.ts.map +1 -1
  9. package/dist/commands/diff.js +119 -26
  10. package/dist/commands/diff.js.map +1 -1
  11. package/dist/commands/discard.d.ts.map +1 -1
  12. package/dist/commands/discard.js +26 -0
  13. package/dist/commands/discard.js.map +1 -1
  14. package/dist/commands/entry-search.d.ts.map +1 -1
  15. package/dist/commands/entry-search.js +10 -1
  16. package/dist/commands/entry-search.js.map +1 -1
  17. package/dist/commands/health.d.ts +4 -0
  18. package/dist/commands/health.d.ts.map +1 -0
  19. package/dist/commands/health.js +167 -0
  20. package/dist/commands/health.js.map +1 -0
  21. package/dist/commands/list.d.ts.map +1 -1
  22. package/dist/commands/list.js +7 -0
  23. package/dist/commands/list.js.map +1 -1
  24. package/dist/commands/peek.d.ts +4 -0
  25. package/dist/commands/peek.d.ts.map +1 -0
  26. package/dist/commands/peek.js +94 -0
  27. package/dist/commands/peek.js.map +1 -0
  28. package/dist/commands/revert.d.ts +4 -0
  29. package/dist/commands/revert.d.ts.map +1 -0
  30. package/dist/commands/revert.js +142 -0
  31. package/dist/commands/revert.js.map +1 -0
  32. package/dist/commands/rtf.d.ts +1 -0
  33. package/dist/commands/rtf.d.ts.map +1 -1
  34. package/dist/commands/rtf.js +308 -14
  35. package/dist/commands/rtf.js.map +1 -1
  36. package/dist/commands/run.d.ts +4 -0
  37. package/dist/commands/run.d.ts.map +1 -0
  38. package/dist/commands/run.js +296 -0
  39. package/dist/commands/run.js.map +1 -0
  40. package/dist/commands/schema.d.ts +4 -0
  41. package/dist/commands/schema.d.ts.map +1 -0
  42. package/dist/commands/schema.js +119 -0
  43. package/dist/commands/schema.js.map +1 -0
  44. package/dist/commands/screenshot.d.ts.map +1 -1
  45. package/dist/commands/screenshot.js +8 -0
  46. package/dist/commands/screenshot.js.map +1 -1
  47. package/dist/commands/sitemap.d.ts +4 -0
  48. package/dist/commands/sitemap.d.ts.map +1 -0
  49. package/dist/commands/sitemap.js +134 -0
  50. package/dist/commands/sitemap.js.map +1 -0
  51. package/dist/contentful/assets.d.ts +14 -1
  52. package/dist/contentful/assets.d.ts.map +1 -1
  53. package/dist/contentful/assets.js +24 -2
  54. package/dist/contentful/assets.js.map +1 -1
  55. package/dist/rtf/replacePlainText.d.ts +52 -9
  56. package/dist/rtf/replacePlainText.d.ts.map +1 -1
  57. package/dist/rtf/replacePlainText.js +169 -63
  58. package/dist/rtf/replacePlainText.js.map +1 -1
  59. package/dist/session/store.d.ts +10 -4
  60. package/dist/session/store.d.ts.map +1 -1
  61. package/dist/session/store.js +46 -11
  62. package/dist/session/store.js.map +1 -1
  63. package/dist/telemetry/index.d.ts +10 -0
  64. package/dist/telemetry/index.d.ts.map +1 -0
  65. package/dist/telemetry/index.js +11 -0
  66. package/dist/telemetry/index.js.map +1 -0
  67. package/dist/telemetry/local.d.ts +9 -0
  68. package/dist/telemetry/local.d.ts.map +1 -0
  69. package/dist/telemetry/local.js +21 -0
  70. package/dist/telemetry/local.js.map +1 -0
  71. package/dist/telemetry/types.d.ts +29 -0
  72. package/dist/telemetry/types.d.ts.map +1 -0
  73. package/dist/telemetry/types.js +2 -0
  74. package/dist/telemetry/types.js.map +1 -0
  75. package/package.json +2 -2
  76. package/skills/core/SKILL.md +82 -0
  77. package/skills/rich-text/SKILL.md +63 -0
  78. package/dist/commands/export-converted.d.ts +0 -8
  79. package/dist/commands/export-converted.d.ts.map +0 -1
  80. package/dist/commands/export-converted.js +0 -62
  81. package/dist/commands/export-converted.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @se-studio/contentful-cms Changelog
2
2
 
3
+ ## 1.0.20
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+
3
9
  ## 1.0.19
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -264,18 +264,6 @@ Use `--out before.png` / `--out after.png` with `agent-browser diff screenshot`
264
264
 
265
265
  **Batch screenshots:** The `cms-capture-screenshots` script (same package) captures multiple variants to `<app-dir>/docs/cms-guidelines/screenshots/`. Run it from the **monorepo root** so the output path is correct: `node packages/contentful-cms/dist/bin/cms-capture-screenshots.js --variants /tmp/type-variants.json --app-dir apps/example-se2026`.
266
266
 
267
- ### export-converted
268
-
269
- Export a session ref's entry as **converted (`IBase*`) JSON** via the app's convert API. Use the output with `screenshot --json-file` for custom variants without a session.
270
-
271
- ```bash
272
- cms-edit open /your-page
273
- # Snapshot shows refs; find the component ref (e.g. @c1)
274
- cms-edit export-converted @c1 --out hero-base.json
275
- ```
276
-
277
- App must be running at `devBaseUrl`. See example-brightline **docs/cms-edit-hero-variants.md** for a full workflow (Hero variants, viewport widths, custom params).
278
-
279
267
  ## Machine-readable Output (`--json`)
280
268
 
281
269
  All commands support JSON output via the global `--json` flag or the `CMS_EDIT_JSON=1` environment variable (see [JSON Mode](#json-mode-llm--machine-readable-output) above). In addition, a subset of data-query commands also accept a per-command `--json` flag:
@@ -11,24 +11,30 @@ import { registerCreateCommand } from '../commands/create.js';
11
11
  import { registerDiffCommand } from '../commands/diff.js';
12
12
  import { registerDiscardCommand } from '../commands/discard.js';
13
13
  import { registerEntrySearchCommand } from '../commands/entry-search.js';
14
- import { registerExportConvertedCommand } from '../commands/export-converted.js';
14
+ import { registerHealthCommand } from '../commands/health.js';
15
15
  import { registerLinksCommand } from '../commands/links.js';
16
16
  import { registerListCommand } from '../commands/list.js';
17
17
  import { registerMoveCommand } from '../commands/move.js';
18
18
  import { registerNavCommand } from '../commands/nav.js';
19
19
  import { registerOpenCommand } from '../commands/open.js';
20
+ import { registerPeekCommand } from '../commands/peek.js';
20
21
  import { registerReadCommand } from '../commands/read.js';
21
22
  import { registerRemoveCommand } from '../commands/remove.js';
22
23
  import { registerResolveCommand } from '../commands/resolve.js';
23
24
  import { registerRestoreCommand } from '../commands/restore.js';
25
+ import { registerRevertCommand } from '../commands/revert.js';
24
26
  import { registerRtfCommand } from '../commands/rtf.js';
27
+ import { registerRunCommand } from '../commands/run.js';
25
28
  import { registerSaveCommand } from '../commands/save.js';
29
+ import { registerSchemaCommand } from '../commands/schema.js';
26
30
  import { registerScreenshotCommand } from '../commands/screenshot.js';
27
31
  import { registerSetCommand } from '../commands/set.js';
32
+ import { registerSitemapCommand } from '../commands/sitemap.js';
28
33
  import { registerSkillCommand } from '../commands/skill.js';
29
34
  import { registerSnapshotCommand } from '../commands/snapshot.js';
30
35
  import { registerTypesCommand } from '../commands/types.js';
31
36
  import { setJsonMode } from '../output/mode.js';
37
+ import { createTelemetryWriter } from '../telemetry/index.js';
32
38
  const program = new Command('cms-edit');
33
39
  const LLM_INTRO = 'Opinionated CLI for editing Contentful draft content (pages, articles, templates, navigation). No publish — all saves create drafts.\n' +
34
40
  'Workflow: open → snapshot → read/set/rtf/add/remove/move → diff → save. Use @refs from snapshot (e.g. @c0); re-snapshot after add/remove/move.\n' +
@@ -40,16 +46,62 @@ program
40
46
  .description(LLM_INTRO)
41
47
  .option('--space <name>', 'Contentful space to use (overrides defaultSpace in config)')
42
48
  .option('--config <path>', 'Path to .contentful-cms.json config file')
49
+ .option('--session <name>', 'Named session for concurrent isolation (also CONTENTFUL_CMS_SESSION env var). ' +
50
+ 'Use the same name in all commands for a given workflow.')
43
51
  .option('--json', 'Output all results as machine-readable JSON (also enabled by CMS_EDIT_JSON=1 env var)')
44
52
  .option('--docs', 'Print absolute path to package README and exit (for LLM tooling)');
45
- // Activate JSON mode before any command action runs, honouring both the global --json flag
46
- // and the CMS_EDIT_JSON environment variable (which is already checked in mode.ts init).
47
- program.hook('preAction', () => {
48
- if (program.opts().json) {
53
+ // ---------------------------------------------------------------------------
54
+ // Telemetry records command name, outcome, and duration to a local log file.
55
+ // No PII is stored (no slugs, entry IDs, field values, query text).
56
+ // ---------------------------------------------------------------------------
57
+ const telemetry = createTelemetryWriter();
58
+ let _telemetryCommand;
59
+ let _telemetrySubcommand;
60
+ let _telemetryStart;
61
+ let _telemetryRecorded = false;
62
+ function recordTelemetry(outcome, exitCode, errName) {
63
+ if (_telemetryRecorded || !_telemetryCommand)
64
+ return;
65
+ _telemetryRecorded = true;
66
+ telemetry.record({
67
+ timestamp: new Date().toISOString(),
68
+ command: _telemetryCommand,
69
+ subcommand: _telemetrySubcommand,
70
+ outcome,
71
+ exit_code: exitCode,
72
+ error_name: errName,
73
+ duration_ms: _telemetryStart !== undefined ? Date.now() - _telemetryStart : 0,
74
+ });
75
+ }
76
+ // Override process.exit to capture exit-path telemetry (commands call process.exit(1) on error)
77
+ const _origExit = process.exit.bind(process);
78
+ process.exit = ((code) => {
79
+ const numCode = typeof code === 'string' ? Number.parseInt(code, 10) : (code ?? 0);
80
+ recordTelemetry(numCode === 0 ? 'success' : 'exit', numCode);
81
+ _origExit(numCode);
82
+ });
83
+ // ---------------------------------------------------------------------------
84
+ // Pre/post action hooks
85
+ // ---------------------------------------------------------------------------
86
+ program.hook('preAction', (_thisCmd, actionCmd) => {
87
+ const opts = program.opts();
88
+ if (opts.json)
49
89
  setJsonMode(true);
50
- }
90
+ // Propagate --session into env var so all commands pick it up via resolveSessionName()
91
+ if (opts.session)
92
+ process.env['CONTENTFUL_CMS_SESSION'] = opts.session;
93
+ // Capture command context for telemetry
94
+ _telemetryCommand =
95
+ actionCmd.parent?.name() !== 'cms-edit' ? actionCmd.parent?.name() : actionCmd.name();
96
+ _telemetrySubcommand = actionCmd.parent?.name() !== 'cms-edit' ? actionCmd.name() : undefined;
97
+ _telemetryStart = Date.now();
98
+ _telemetryRecorded = false;
99
+ });
100
+ program.hook('postAction', () => {
101
+ recordTelemetry('success');
51
102
  });
52
103
  registerOpenCommand(program);
104
+ registerPeekCommand(program);
53
105
  registerSnapshotCommand(program);
54
106
  registerReadCommand(program);
55
107
  registerSetCommand(program);
@@ -63,16 +115,20 @@ registerRemoveCommand(program);
63
115
  registerMoveCommand(program);
64
116
  registerBackupCommand(program);
65
117
  registerRestoreCommand(program);
118
+ registerRevertCommand(program);
66
119
  registerCreateCommand(program);
67
120
  registerNavCommand(program);
68
121
  registerAssetCommand(program);
69
122
  registerTypesCommand(program);
70
123
  registerColoursCommand(program);
71
124
  registerEntrySearchCommand(program);
72
- registerExportConvertedCommand(program);
125
+ registerHealthCommand(program);
126
+ registerSchemaCommand(program);
73
127
  registerListCommand(program);
74
128
  registerResolveCommand(program);
75
129
  registerScreenshotCommand(program);
130
+ registerRunCommand(program);
131
+ registerSitemapCommand(program);
76
132
  registerSkillCommand(program);
77
133
  if (process.argv.includes('--docs')) {
78
134
  const dir = path.dirname(fileURLToPath(import.meta.url));
@@ -91,7 +147,7 @@ while (idx < argv.length) {
91
147
  firstPositional = a;
92
148
  break;
93
149
  }
94
- if (a === '--config' || a === '--space')
150
+ if (a === '--config' || a === '--space' || a === '--session')
95
151
  idx += 2;
96
152
  else
97
153
  idx += 1;
@@ -101,7 +157,8 @@ if (firstPositional === undefined || firstPositional === 'help') {
101
157
  process.exit(0);
102
158
  }
103
159
  program.parseAsync(process.argv).catch((err) => {
160
+ recordTelemetry('error', 1, err instanceof Error ? err.constructor.name : 'UnknownError');
104
161
  console.error(err instanceof Error ? err.message : String(err));
105
- process.exit(1);
162
+ _origExit(1);
106
163
  });
107
164
  //# sourceMappingURL=cms-edit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../src/bin/cms-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../src/bin/cms-edit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/commands/asset.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2G3D"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/commands/asset.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6O3D"}
@@ -1,7 +1,7 @@
1
1
  /** biome-ignore-all lint/suspicious/noConsole: Console output is intentional in CLI */
2
2
  import pc from 'picocolors';
3
3
  import { loadConfig, resolveSpaceConfig } from '../config/load.js';
4
- import { getAssetSummary, searchAssets } from '../contentful/assets.js';
4
+ import { getAssetBacklinks, getAssetSummary, searchAssets } from '../contentful/assets.js';
5
5
  import { createSafeEnvironment } from '../contentful/client.js';
6
6
  import { assetSummaryToJson } from '../output/json.js';
7
7
  import { isJsonMode } from '../output/mode.js';
@@ -13,7 +13,9 @@ export function registerAssetCommand(program) {
13
13
  asset
14
14
  .command('search <query>')
15
15
  .description('Search assets by title')
16
- .option('-n, --limit <n>', 'Max results', '10')
16
+ .option('-n, --limit <n>', 'Max results (default 10)', '10')
17
+ .option('--skip <n>', 'Skip first N results for pagination', '0')
18
+ .option('--type <mime>', 'Filter by MIME type prefix (e.g. image/, application/pdf)')
17
19
  .action(async (query, opts, cmd) => {
18
20
  const parentOpts = cmd.parent?.parent?.opts() ?? {};
19
21
  try {
@@ -21,8 +23,13 @@ export function registerAssetCommand(program) {
21
23
  const config = loadConfig(parentOpts.config);
22
24
  const { space } = resolveSpaceConfig(config, session.spaceKey);
23
25
  const env = await createSafeEnvironment(space);
24
- const limit = Number.parseInt(opts.limit ?? '10', 10);
25
- const results = await searchAssets(env, query, limit);
26
+ const limit = Number.parseInt(opts.limit, 10) || 10;
27
+ const skip = Number.parseInt(opts.skip, 10) || 0;
28
+ const results = await searchAssets(env, query, {
29
+ limit,
30
+ skip,
31
+ ...(opts.type ? { mimeTypePrefix: opts.type } : {}),
32
+ });
26
33
  if (isJsonMode()) {
27
34
  console.log(JSON.stringify(results.map(assetSummaryToJson), null, 2));
28
35
  return;
@@ -33,11 +40,16 @@ export function registerAssetCommand(program) {
33
40
  }
34
41
  console.log(`\n${pc.bold('Assets matching: ')}${pc.cyan(query)}\n`);
35
42
  for (const a of results) {
36
- const dims = a.width && a.height ? pc.dim(` (${a.width}×${a.height})`) : '';
37
- console.log(` ${pc.bold(a.id)} ${a.title}${dims}`);
43
+ const dims = a.width && a.height ? ` ${a.width}×${a.height}` : '';
44
+ const sizeStr = a.size ? ` ${Math.round(a.size / 1024)}KB` : '';
45
+ const ct = a.contentType ? ` ${pc.dim(a.contentType)}` : '';
46
+ console.log(` ${pc.bold(a.id)} ${a.title}${pc.dim(`${dims}${sizeStr}`)}${ct}`);
38
47
  console.log(` ${pc.dim(a.fileName)} ${pc.dim(a.url)}`);
39
48
  }
40
49
  console.log('');
50
+ if (skip > 0 || results.length === limit) {
51
+ console.log(pc.dim(`Use --skip ${String(skip + limit)} to see the next page.`));
52
+ }
41
53
  console.log(pc.dim('Use the asset ID with: cms-edit asset set <ref> <field> <asset-id>'));
42
54
  }
43
55
  catch (err) {
@@ -48,7 +60,7 @@ export function registerAssetCommand(program) {
48
60
  asset
49
61
  .command('info <asset-id>')
50
62
  .description('Show details for a specific asset')
51
- .option('--json', 'Output as a JSON object')
63
+ .option('--no-backlinks', 'Skip fetching entries that reference this asset')
52
64
  .action(async (assetId, opts, cmd) => {
53
65
  const parentOpts = cmd.parent?.parent?.opts() ?? {};
54
66
  try {
@@ -56,14 +68,17 @@ export function registerAssetCommand(program) {
56
68
  const config = loadConfig(parentOpts.config);
57
69
  const { space } = resolveSpaceConfig(config, session.spaceKey);
58
70
  const env = await createSafeEnvironment(space);
71
+ const locale = space.defaultLocale;
59
72
  const summary = await getAssetSummary(env, assetId);
60
73
  if (!summary) {
61
74
  errorMsg(`Asset "${assetId}" not found.`);
62
75
  process.exit(1);
63
76
  return;
64
77
  }
65
- if (opts.json || isJsonMode()) {
66
- console.log(JSON.stringify(assetSummaryToJson(summary), null, 2));
78
+ const fetchBacklinks = opts.backlinks !== false;
79
+ const backlinks = fetchBacklinks ? await getAssetBacklinks(env, assetId, locale) : [];
80
+ if (isJsonMode()) {
81
+ console.log(JSON.stringify({ ...assetSummaryToJson(summary), backlinks: fetchBacklinks ? backlinks : null }, null, 2));
67
82
  return;
68
83
  }
69
84
  console.log(`\n${pc.bold('Asset: ')}${summary.title}`);
@@ -74,7 +89,84 @@ export function registerAssetCommand(program) {
74
89
  console.log(` Dimensions: ${summary.width}×${summary.height}`);
75
90
  if (summary.size)
76
91
  console.log(` Size: ${Math.round(summary.size / 1024)}KB`);
77
- console.log(` URL: ${summary.url}\n`);
92
+ console.log(` URL: ${summary.url}`);
93
+ if (fetchBacklinks) {
94
+ if (backlinks.length === 0) {
95
+ console.log(` Referenced by: (none found)`);
96
+ }
97
+ else {
98
+ console.log(` Referenced by: ${String(backlinks.length)} entr${backlinks.length === 1 ? 'y' : 'ies'}`);
99
+ for (const b of backlinks) {
100
+ console.log(` ${pc.dim(b.entryId)} ${b.contentType} "${b.label}"`);
101
+ }
102
+ }
103
+ }
104
+ console.log('');
105
+ }
106
+ catch (err) {
107
+ errorMsg(err instanceof Error ? err.message : String(err));
108
+ process.exit(1);
109
+ }
110
+ });
111
+ asset
112
+ .command('get <ref> <field>')
113
+ .description('Show the current asset linked on a field in the active session.\n' +
114
+ 'Example: cms-edit asset get @c0 visual')
115
+ .action(async (ref, field, _opts, cmd) => {
116
+ const parentOpts = cmd.parent?.parent?.opts() ?? {};
117
+ try {
118
+ const session = requireSession();
119
+ const entry = resolveRef(session, ref);
120
+ const locale = session.defaultLocale;
121
+ const fieldData = entry.fields[field];
122
+ if (!fieldData) {
123
+ errorMsg(`Field "${field}" is missing on ${ref}.`);
124
+ process.exit(1);
125
+ return;
126
+ }
127
+ const val = fieldData[locale] ?? fieldData['en-US'];
128
+ if (!val || typeof val !== 'object') {
129
+ errorMsg(`Field "${field}" on ${ref} is not set or is not an asset link.`);
130
+ process.exit(1);
131
+ return;
132
+ }
133
+ // Collect asset IDs to look up (handles single Link and Array of Links)
134
+ const assetIds = [];
135
+ const asLink = val;
136
+ if (asLink.sys?.linkType === 'Asset' && asLink.sys.id) {
137
+ assetIds.push(asLink.sys.id);
138
+ }
139
+ else if (Array.isArray(val)) {
140
+ for (const item of val) {
141
+ if (item.sys?.linkType === 'Asset' && item.sys.id) {
142
+ assetIds.push(item.sys.id);
143
+ }
144
+ }
145
+ }
146
+ if (assetIds.length === 0) {
147
+ errorMsg(`Field "${field}" on ${ref} does not contain an asset link.`);
148
+ process.exit(1);
149
+ return;
150
+ }
151
+ const config = loadConfig(parentOpts.config);
152
+ const { space } = resolveSpaceConfig(config, session.spaceKey);
153
+ const env = await createSafeEnvironment(space);
154
+ const summaries = await Promise.all(assetIds.map((id) => getAssetSummary(env, id)));
155
+ if (isJsonMode()) {
156
+ const validSummaries = summaries.flatMap((s) => (s ? [assetSummaryToJson(s)] : []));
157
+ console.log(JSON.stringify({ ref, field, assets: validSummaries }, null, 2));
158
+ return;
159
+ }
160
+ console.log(`\n${pc.bold(`${ref}.${field}`)}\n`);
161
+ for (const s of summaries) {
162
+ if (!s)
163
+ continue;
164
+ const dims = s.width && s.height ? ` ${s.width}×${s.height}` : '';
165
+ const sizeStr = s.size ? ` ${Math.round(s.size / 1024)}KB` : '';
166
+ console.log(` ${pc.bold(s.id)} ${s.fileName}${pc.dim(`${dims}${sizeStr}`)} ${pc.dim(s.contentType)}`);
167
+ console.log(` ${pc.dim(s.url)}`);
168
+ }
169
+ console.log('');
78
170
  }
79
171
  catch (err) {
80
172
  errorMsg(err instanceof Error ? err.message : String(err));
@@ -83,23 +175,37 @@ export function registerAssetCommand(program) {
83
175
  });
84
176
  asset
85
177
  .command('set <ref> <field> <asset-id>')
86
- .description('Set a visual/asset field on an entry to a specific asset ID')
87
- .option('--mobile', 'Set the mobile visual field (mobileVisual) instead of visual')
88
- .action((ref, field, assetId, _opts) => {
178
+ .description('Set a visual/asset field on an entry to a specific asset ID.\n' +
179
+ 'Use --mobile <id> to also set the mobileVisual field in the same operation.\n' +
180
+ 'Example: cms-edit asset set @c0 visual abc123 --mobile def456')
181
+ .option('--mobile <id>', 'Also set the mobileVisual field to this asset ID')
182
+ .action((ref, field, assetId, opts) => {
89
183
  try {
90
184
  const session = requireSession();
91
185
  const entry = resolveRef(session, ref);
92
186
  const locale = session.defaultLocale;
93
- const assetLink = { sys: { type: 'Link', linkType: 'Asset', id: assetId } };
187
+ const makeLink = (id) => ({ sys: { type: 'Link', linkType: 'Asset', id } });
94
188
  if (!entry.fields[field]) {
95
189
  entry.fields[field] = {};
96
190
  }
97
- entry.fields[field][locale] = assetLink;
191
+ entry.fields[field][locale] = makeLink(assetId);
192
+ if (opts.mobile) {
193
+ const mobileField = 'mobileVisual';
194
+ if (!entry.fields[mobileField]) {
195
+ entry.fields[mobileField] = {};
196
+ }
197
+ entry.fields[mobileField][locale] = makeLink(opts.mobile);
198
+ }
98
199
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
99
200
  session.modifiedEntryIds.push(entry.sys.id);
100
201
  }
101
202
  saveSession(session);
102
- successMsg(`Set ${field} on ${ref} to asset ${assetId}.`);
203
+ if (opts.mobile) {
204
+ successMsg(`Set ${field}=${assetId} and mobileVisual=${opts.mobile} on ${ref}.`);
205
+ }
206
+ else {
207
+ successMsg(`Set ${field} on ${ref} to asset ${assetId}.`);
208
+ }
103
209
  }
104
210
  catch (err) {
105
211
  errorMsg(err instanceof Error ? err.message : String(err));
@@ -1 +1 @@
1
- {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/commands/asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/commands/asset.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqH1D"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoM1D"}