sf-plugin-cms 0.4.0 → 0.6.0

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 (71) hide show
  1. package/README.md +276 -20
  2. package/lib/commands/cms/export/workspace.d.ts +7 -1
  3. package/lib/commands/cms/export/workspace.js +113 -2
  4. package/lib/commands/cms/export/workspace.js.map +1 -1
  5. package/lib/commands/cms/import/workspace.d.ts +12 -4
  6. package/lib/commands/cms/import/workspace.js +167 -20
  7. package/lib/commands/cms/import/workspace.js.map +1 -1
  8. package/lib/commands/cms/info.js +21 -2
  9. package/lib/commands/cms/info.js.map +1 -1
  10. package/lib/contracts/info.d.ts +7 -4
  11. package/lib/contracts/info.js +17 -8
  12. package/lib/contracts/info.js.map +1 -1
  13. package/lib/contracts/shared.d.ts +2 -1
  14. package/lib/contracts/shared.js +11 -3
  15. package/lib/contracts/shared.js.map +1 -1
  16. package/lib/contracts/workspace-export.d.ts +41 -3
  17. package/lib/contracts/workspace-export.js +171 -5
  18. package/lib/contracts/workspace-export.js.map +1 -1
  19. package/lib/contracts/workspace-import.d.ts +65 -0
  20. package/lib/contracts/workspace-import.js +132 -1
  21. package/lib/contracts/workspace-import.js.map +1 -1
  22. package/lib/index.d.ts +3 -1
  23. package/lib/index.js +2 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/services/cms-prerequisite-lookup.d.ts +16 -0
  26. package/lib/services/cms-prerequisite-lookup.js +89 -0
  27. package/lib/services/cms-prerequisite-lookup.js.map +1 -0
  28. package/lib/services/content-key.d.ts +9 -0
  29. package/lib/services/content-key.js +15 -0
  30. package/lib/services/content-key.js.map +1 -0
  31. package/lib/services/email-fragment.d.ts +15 -0
  32. package/lib/services/email-fragment.js +203 -0
  33. package/lib/services/email-fragment.js.map +1 -0
  34. package/lib/services/export-workspace.d.ts +15 -1
  35. package/lib/services/export-workspace.js +284 -51
  36. package/lib/services/export-workspace.js.map +1 -1
  37. package/lib/services/image-import.d.ts +91 -0
  38. package/lib/services/image-import.js +575 -0
  39. package/lib/services/image-import.js.map +1 -0
  40. package/lib/services/import-identities.js +5 -1
  41. package/lib/services/import-identities.js.map +1 -1
  42. package/lib/services/import-workspace.d.ts +63 -3
  43. package/lib/services/import-workspace.js +277 -26
  44. package/lib/services/import-workspace.js.map +1 -1
  45. package/lib/services/landing-page-pair-export.d.ts +31 -0
  46. package/lib/services/landing-page-pair-export.js +122 -0
  47. package/lib/services/landing-page-pair-export.js.map +1 -0
  48. package/lib/services/landing-page-template.d.ts +62 -0
  49. package/lib/services/landing-page-template.js +372 -0
  50. package/lib/services/landing-page-template.js.map +1 -0
  51. package/lib/services/landing-page.d.ts +87 -0
  52. package/lib/services/landing-page.js +355 -0
  53. package/lib/services/landing-page.js.map +1 -0
  54. package/lib/services/variant-identity.d.ts +14 -0
  55. package/lib/services/variant-identity.js +24 -0
  56. package/lib/services/variant-identity.js.map +1 -1
  57. package/lib/services/web-fragment.d.ts +47 -0
  58. package/lib/services/web-fragment.js +286 -0
  59. package/lib/services/web-fragment.js.map +1 -0
  60. package/lib/transport/experimental-media.d.ts +30 -0
  61. package/lib/transport/experimental-media.js +224 -0
  62. package/lib/transport/experimental-media.js.map +1 -0
  63. package/lib/transport/json-request.d.ts +9 -1
  64. package/lib/transport/json-request.js +30 -3
  65. package/lib/transport/json-request.js.map +1 -1
  66. package/lib/transport/multipart-image-create.d.ts +28 -0
  67. package/lib/transport/multipart-image-create.js +189 -0
  68. package/lib/transport/multipart-image-create.js.map +1 -0
  69. package/messages/cms.export.workspace.md +20 -0
  70. package/messages/cms.import.workspace.md +12 -2
  71. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
- import { type WorkspaceImportResult } from '../../../contracts/workspace-import.js';
1
+ import { type WorkspaceImageImportResultV2, type WorkspaceImportResult } from '../../../contracts/workspace-import.js';
2
2
  import { type CmsEnvelope } from '../../../contracts/shared.js';
3
3
  import { CmsCommand } from '../../../command-base.js';
4
- export default class ImportWorkspace extends CmsCommand<CmsEnvelope<WorkspaceImportResult>> {
4
+ type WorkspaceImportCommandResult = WorkspaceImportResult | WorkspaceImageImportResultV2;
5
+ export default class ImportWorkspace extends CmsCommand<CmsEnvelope<WorkspaceImportCommandResult>> {
5
6
  static readonly summary = "Safely plan or apply a create-only import into a CMS workspace.";
6
- static readonly description = "Validates the complete source workspace export locally, selects a destination, and defaults to dry-run. The default profile checks source-key absence, but complete server conflict validation and destination name availability are not established. --native-copy-map selects bounded default-language raw-HTML email/template copies with fresh names and server-generated keys; --editable-dir applies verified HTML-only companion edits against the unchanged baseline. Native and edited HTML is not resolved, rewritten, sanitized, or scanned through Phase 7. Pass --apply with a new --report-dir. No updates, publication, rollback, or package transaction.";
7
+ static readonly description = "Validates the complete source workspace export locally, selects a destination, and defaults to dry-run. The default profile checks source-key absence, but complete server conflict validation and destination name availability are not established. --native-copy-map selects bounded default-language raw-HTML email/template copies with fresh names and server-generated keys; --editable-dir applies verified HTML-only companion edits against the unchanged baseline. --email-fragment-map selects only the exact dependency-free sfdc_cms__emailFragment root/section/empty-column profile for create-only destination-default-language Drafts with fresh identities. --web-fragment-map selects exact sfdc_cms__webFragment API names, fresh create identities, and exact preserved or explicitly mapped Data Graph developer-name/data-space prerequisites. --landing-page-template-map selects exact sfdc_cms__landingPageTemplate API names with fresh identities and explicit typed CMS/Data Graph prerequisites. --landing-page-map selects paired sfdc_cms__landingPage exports with an explicitly declared destination Landing Page Template plus exact image and Data Graph prerequisites. Source pairing is title-first and the canonical package template identity is retained as compatibility evidence, not historical provenance. --image-map selects strict workspace package v2 images for exact destination preflight and sequential create-only apply under contract version 2. Profile map flags are mutually exclusive. Native and edited HTML is not resolved, rewritten, sanitized, or scanned through Phase 7. Pass --apply with a new --report-dir. No updates, publication, activation, send, rollback, or package transaction.";
7
8
  static readonly examples: string[];
8
9
  static readonly flags: {
9
10
  'target-org': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
@@ -14,11 +15,18 @@ export default class ImportWorkspace extends CmsCommand<CmsEnvelope<WorkspaceImp
14
15
  'source-dir': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
16
  'editable-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
17
  'native-copy-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'email-fragment-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ 'web-fragment-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ 'landing-page-template-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'landing-page-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'image-map': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
23
  apply: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
24
  'allow-partial': import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
25
  'report-dir': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
26
  };
21
- run(): Promise<CmsEnvelope<WorkspaceImportResult>>;
27
+ run(): Promise<CmsEnvelope<WorkspaceImportCommandResult>>;
22
28
  private finish;
29
+ private showImagePlan;
23
30
  private showPlan;
24
31
  }
32
+ export {};
@@ -1,18 +1,30 @@
1
1
  import { Flags } from '@salesforce/sf-plugins-core';
2
2
  import { readFile } from 'node:fs/promises';
3
- import { assertWorkspaceImportResult, WORKSPACE_IMPORT_CONTRACT, } from '../../../contracts/workspace-import.js';
3
+ import { assertWorkspaceImageImportResultV2, assertWorkspaceImportResult, WORKSPACE_IMPORT_CONTRACT, WORKSPACE_IMPORT_CONTRACT_V2, } from '../../../contracts/workspace-import.js';
4
4
  import { sanitizeDiagnostics, } from '../../../contracts/shared.js';
5
5
  import { executeWorkspaceImport, loadWorkspaceExport, planNativeWorkspaceImport, } from '../../../services/import-workspace.js';
6
+ import { UnsupportedWorkspacePackageVersionError } from '../../../contracts/workspace-export.js';
6
7
  import { assertWorkspaceSelector, resolveWorkspace } from '../../../services/resolve-workspace.js';
8
+ import { planEmailFragmentCopies } from '../../../services/email-fragment.js';
9
+ import { planWebFragmentCopies } from '../../../services/web-fragment.js';
10
+ import { planLandingPageTemplateCopies } from '../../../services/landing-page-template.js';
11
+ import { planLandingPageCopies } from '../../../services/landing-page.js';
12
+ import { applyImageImports, planImageImports, preflightImageImports, } from '../../../services/image-import.js';
7
13
  import { apiVersionFlag, CmsCommand, targetOrgFlag } from '../../../command-base.js';
8
14
  export default class ImportWorkspace extends CmsCommand {
9
15
  static summary = 'Safely plan or apply a create-only import into a CMS workspace.';
10
- static description = 'Validates the complete source workspace export locally, selects a destination, and defaults to dry-run. The default profile checks source-key absence, but complete server conflict validation and destination name availability are not established. --native-copy-map selects bounded default-language raw-HTML email/template copies with fresh names and server-generated keys; --editable-dir applies verified HTML-only companion edits against the unchanged baseline. Native and edited HTML is not resolved, rewritten, sanitized, or scanned through Phase 7. Pass --apply with a new --report-dir. No updates, publication, rollback, or package transaction.';
16
+ static description = 'Validates the complete source workspace export locally, selects a destination, and defaults to dry-run. The default profile checks source-key absence, but complete server conflict validation and destination name availability are not established. --native-copy-map selects bounded default-language raw-HTML email/template copies with fresh names and server-generated keys; --editable-dir applies verified HTML-only companion edits against the unchanged baseline. --email-fragment-map selects only the exact dependency-free sfdc_cms__emailFragment root/section/empty-column profile for create-only destination-default-language Drafts with fresh identities. --web-fragment-map selects exact sfdc_cms__webFragment API names, fresh create identities, and exact preserved or explicitly mapped Data Graph developer-name/data-space prerequisites. --landing-page-template-map selects exact sfdc_cms__landingPageTemplate API names with fresh identities and explicit typed CMS/Data Graph prerequisites. --landing-page-map selects paired sfdc_cms__landingPage exports with an explicitly declared destination Landing Page Template plus exact image and Data Graph prerequisites. Source pairing is title-first and the canonical package template identity is retained as compatibility evidence, not historical provenance. --image-map selects strict workspace package v2 images for exact destination preflight and sequential create-only apply under contract version 2. Profile map flags are mutually exclusive. Native and edited HTML is not resolved, rewritten, sanitized, or scanned through Phase 7. Pass --apply with a new --report-dir. No updates, publication, activation, send, rollback, or package transaction.';
11
17
  static examples = [
12
18
  '<%= config.bin %> cms import workspace --target-org my-org --workspace-name "Destination" --source-dir ./cms/Source',
13
19
  '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0Zu... --source-dir ./cms/Source --apply --report-dir ./cms-import-report --contract-version 1 --json',
14
20
  '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --native-copy-map ./native-copy-map.json --contract-version 1 --json',
15
21
  '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --native-copy-map ./native-copy-map.json --editable-dir ./cms-editable --contract-version 1 --json',
22
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --email-fragment-map ./email-fragment-map.json --contract-version 1 --json',
23
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --web-fragment-map ./web-fragment-map.json --contract-version 1 --json',
24
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --landing-page-template-map ./landing-page-template-map.json --contract-version 1 --json',
25
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-baseline --landing-page-map ./landing-page-map.json --contract-version 1 --json',
26
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-v2 --image-map ./image-map.json --contract-version 2 --json',
27
+ '<%= config.bin %> cms import workspace --target-org my-org --workspace-id 0ZuTARGET --source-dir ./cms-v2 --image-map ./image-map.json --contract-version 2 --apply --report-dir ./image-import-report --json',
16
28
  ];
17
29
  static flags = {
18
30
  'target-org': targetOrgFlag,
@@ -20,7 +32,7 @@ export default class ImportWorkspace extends CmsCommand {
20
32
  'contract-version': Flags.integer({
21
33
  default: 1,
22
34
  min: 1,
23
- summary: 'Machine contract major version (supported: 1).',
35
+ summary: 'Machine contract major version (supported: 1; --image-map requires 2).',
24
36
  }),
25
37
  'workspace-id': Flags.string({ summary: 'Exact destination CMS workspace ID.' }),
26
38
  'workspace-name': Flags.string({ summary: 'Exact case-sensitive destination workspace name.' }),
@@ -36,8 +48,75 @@ export default class ImportWorkspace extends CmsCommand {
36
48
  }),
37
49
  'native-copy-map': Flags.file({
38
50
  exists: true,
51
+ exclusive: [
52
+ 'email-fragment-map',
53
+ 'web-fragment-map',
54
+ 'landing-page-template-map',
55
+ 'landing-page-map',
56
+ 'image-map',
57
+ ],
39
58
  summary: 'JSON array selecting native raw-HTML parents: sourceContentKey, language, fresh apiName and urlName. Server generates keys; no updates or publication.',
40
59
  }),
60
+ 'email-fragment-map': Flags.file({
61
+ exists: true,
62
+ exclusive: [
63
+ 'native-copy-map',
64
+ 'web-fragment-map',
65
+ 'landing-page-template-map',
66
+ 'landing-page-map',
67
+ 'editable-dir',
68
+ 'image-map',
69
+ ],
70
+ summary: 'JSON array selecting exact typed cms/emailFragment API names with fresh target contentKey/apiName; source keys remain provenance.',
71
+ }),
72
+ 'web-fragment-map': Flags.file({
73
+ exists: true,
74
+ exclusive: [
75
+ 'native-copy-map',
76
+ 'email-fragment-map',
77
+ 'landing-page-template-map',
78
+ 'landing-page-map',
79
+ 'editable-dir',
80
+ 'image-map',
81
+ ],
82
+ summary: 'JSON array selecting exact cms/webFragment API names, fresh create identities, and exact Data Graph prerequisite mappings.',
83
+ }),
84
+ 'landing-page-template-map': Flags.file({
85
+ exists: true,
86
+ exclusive: [
87
+ 'native-copy-map',
88
+ 'email-fragment-map',
89
+ 'web-fragment-map',
90
+ 'landing-page-map',
91
+ 'editable-dir',
92
+ 'image-map',
93
+ ],
94
+ summary: 'JSON array selecting exact cms/landingPageTemplate API names, fresh identities, and explicit CMS/Data Graph prerequisites.',
95
+ }),
96
+ 'landing-page-map': Flags.file({
97
+ exists: true,
98
+ exclusive: [
99
+ 'native-copy-map',
100
+ 'email-fragment-map',
101
+ 'web-fragment-map',
102
+ 'landing-page-template-map',
103
+ 'editable-dir',
104
+ 'image-map',
105
+ ],
106
+ summary: 'JSON array selecting paired cms/landingPage API names, fresh identities, an exact Draft template selector, and image/Data Graph prerequisites.',
107
+ }),
108
+ 'image-map': Flags.file({
109
+ exists: true,
110
+ exclusive: [
111
+ 'native-copy-map',
112
+ 'email-fragment-map',
113
+ 'web-fragment-map',
114
+ 'landing-page-template-map',
115
+ 'landing-page-map',
116
+ 'editable-dir',
117
+ ],
118
+ summary: 'JSON array selecting strict v2 package images and explicit preserve/fresh/generated identity strategies; requires --contract-version 2.',
119
+ }),
41
120
  apply: Flags.boolean({
42
121
  default: false,
43
122
  summary: 'Create after local validation and bounded profile preflight; dry-run does not establish full conflict or apply readiness.',
@@ -55,17 +134,16 @@ export default class ImportWorkspace extends CmsCommand {
55
134
  async run() {
56
135
  const { flags } = await this.parse(ImportWorkspace);
57
136
  const requestedVersion = flags['contract-version'] ?? 1;
58
- if (requestedVersion !== 1) {
59
- return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
60
- {
61
- code: 'UNSUPPORTED_CONTRACT_VERSION',
62
- message: `Contract major ${requestedVersion} is unsupported; supported major is 1.`,
63
- retryable: false,
64
- },
65
- ]));
137
+ const imageProfile = flags['image-map'] !== undefined;
138
+ const profileContractMajor = imageProfile ? 2 : 1;
139
+ if (requestedVersion !== profileContractMajor) {
140
+ const message = imageProfile
141
+ ? '--image-map requires --contract-version 2.'
142
+ : `Contract major ${requestedVersion} is unsupported for this profile; supported major is 1.`;
143
+ return this.finish(envelope('blocked', profileContractMajor, flags['api-version'], 'unresolved-org', this.pluginVersion, null, [{ code: 'UNSUPPORTED_CONTRACT_VERSION', message, retryable: false }]));
66
144
  }
67
145
  if (flags.apply && flags['report-dir'] === undefined) {
68
- return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
146
+ return this.finish(envelope('blocked', profileContractMajor, flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
69
147
  {
70
148
  code: 'REPORT_DIRECTORY_REQUIRED',
71
149
  message: '--report-dir is required when --apply is set.',
@@ -74,17 +152,43 @@ export default class ImportWorkspace extends CmsCommand {
74
152
  ]));
75
153
  }
76
154
  let source;
155
+ let emailFragmentMappings;
156
+ let imagePlans;
157
+ let landingPageTemplateMappings;
158
+ let landingPageMappings;
77
159
  let nativeCopyMappings;
160
+ let webFragmentMappings;
78
161
  try {
79
162
  if (flags['editable-dir'] !== undefined && flags['native-copy-map'] === undefined)
80
163
  throw new TypeError('--editable-dir requires --native-copy-map');
81
164
  source = await loadWorkspaceExport(flags['source-dir'], {
82
165
  allowPartial: flags['allow-partial'],
166
+ profile: imageProfile ? 'image' : 'general',
83
167
  });
168
+ if (flags['image-map'] !== undefined) {
169
+ const imageMappings = JSON.parse(await readFile(flags['image-map'], 'utf8'));
170
+ imagePlans = planImageImports(source, imageMappings);
171
+ }
84
172
  if (flags['native-copy-map'] !== undefined) {
85
173
  nativeCopyMappings = JSON.parse(await readFile(flags['native-copy-map'], 'utf8'));
86
174
  await planNativeWorkspaceImport(source, nativeCopyMappings, flags['editable-dir']);
87
175
  }
176
+ if (flags['email-fragment-map'] !== undefined) {
177
+ emailFragmentMappings = JSON.parse(await readFile(flags['email-fragment-map'], 'utf8'));
178
+ planEmailFragmentCopies(source, emailFragmentMappings);
179
+ }
180
+ if (flags['web-fragment-map'] !== undefined) {
181
+ webFragmentMappings = JSON.parse(await readFile(flags['web-fragment-map'], 'utf8'));
182
+ planWebFragmentCopies(source, webFragmentMappings);
183
+ }
184
+ if (flags['landing-page-template-map'] !== undefined) {
185
+ landingPageTemplateMappings = JSON.parse(await readFile(flags['landing-page-template-map'], 'utf8'));
186
+ planLandingPageTemplateCopies(source, landingPageTemplateMappings);
187
+ }
188
+ if (flags['landing-page-map'] !== undefined) {
189
+ landingPageMappings = JSON.parse(await readFile(flags['landing-page-map'], 'utf8'));
190
+ planLandingPageCopies(source, landingPageMappings);
191
+ }
88
192
  assertWorkspaceSelector({
89
193
  workspaceId: flags['workspace-id'],
90
194
  workspaceName: flags['workspace-name'],
@@ -92,8 +196,8 @@ export default class ImportWorkspace extends CmsCommand {
92
196
  }
93
197
  catch (error) {
94
198
  const message = error instanceof Error ? error.message : String(error);
95
- const packageVersionFailure = /manifest contract\/version is unsupported|schemaVersion\/mode is unsupported/u.test(message);
96
- return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
199
+ const packageVersionFailure = error instanceof UnsupportedWorkspacePackageVersionError;
200
+ return this.finish(envelope('blocked', profileContractMajor, flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
97
201
  {
98
202
  code: packageVersionFailure
99
203
  ? 'UNSUPPORTED_PACKAGE_VERSION'
@@ -109,6 +213,28 @@ export default class ImportWorkspace extends CmsCommand {
109
213
  workspaceId: flags['workspace-id'],
110
214
  workspaceName: flags['workspace-name'],
111
215
  });
216
+ if (imagePlans !== undefined) {
217
+ const execution = flags.apply
218
+ ? await applyImageImports({
219
+ connection,
220
+ destinationOrgId: orgId,
221
+ destinationWorkspaceId: selected.id,
222
+ plans: imagePlans,
223
+ reportDirectory: flags['report-dir'],
224
+ source,
225
+ })
226
+ : await preflightImageImports({
227
+ connection,
228
+ destinationOrgId: orgId,
229
+ destinationWorkspaceId: selected.id,
230
+ plans: imagePlans,
231
+ source,
232
+ });
233
+ const result = envelope('success', 2, flags['api-version'], orgId, this.pluginVersion, execution.contractResult, []);
234
+ if (!this.jsonEnabled())
235
+ this.showImagePlan(execution, result);
236
+ return this.finish(result);
237
+ }
112
238
  const execution = await executeWorkspaceImport({
113
239
  allowPartial: flags['allow-partial'],
114
240
  connection,
@@ -117,19 +243,23 @@ export default class ImportWorkspace extends CmsCommand {
117
243
  dryRun: !flags.apply,
118
244
  loadedSource: source,
119
245
  editableDirectory: flags['editable-dir'],
246
+ emailFragmentMappings,
247
+ landingPageTemplateMappings,
248
+ landingPageMappings,
120
249
  nativeCopyMappings,
250
+ webFragmentMappings,
121
251
  reportDirectory: flags['report-dir'],
122
252
  sourceDirectory: flags['source-dir'],
123
253
  workspaceId: selected.id,
124
254
  });
125
255
  const status = source.isPartial ? 'partial' : 'success';
126
- const result = envelope(status, flags['api-version'], orgId, this.pluginVersion, execution.contractResult, [], execution.diagnostics);
256
+ const result = envelope(status, 1, flags['api-version'], orgId, this.pluginVersion, execution.contractResult, [], execution.diagnostics);
127
257
  if (!this.jsonEnabled())
128
258
  this.showPlan(execution, result);
129
259
  return this.finish(result);
130
260
  }
131
261
  catch (error) {
132
- return this.finish(envelope('failed', flags['api-version'], orgId, this.pluginVersion, null, [
262
+ return this.finish(envelope('failed', profileContractMajor, flags['api-version'], orgId, this.pluginVersion, null, [
133
263
  {
134
264
  code: 'IMPORT_FAILED',
135
265
  message: error instanceof Error ? error.message : String(error),
@@ -139,7 +269,24 @@ export default class ImportWorkspace extends CmsCommand {
139
269
  }
140
270
  }
141
271
  finish(result) {
142
- return this.finishEnvelope(result, assertWorkspaceImportResult);
272
+ return result.contractVersion === '2.0.0'
273
+ ? this.finishEnvelope(result, assertWorkspaceImageImportResultV2)
274
+ : this.finishEnvelope(result, assertWorkspaceImportResult);
275
+ }
276
+ showImagePlan(execution, envelopeResult) {
277
+ this.log(`Status: ${envelopeResult.status}`);
278
+ this.log(`Mode: ${execution.dryRun ? 'dry-run (preflight only)' : 'apply (create-only)'}`);
279
+ this.log(`Destination workspace: ${execution.contractResult.target.workspaceId}`);
280
+ this.log(`Selected images: ${execution.contractResult.assets.length}`);
281
+ this.log(`Image result: ${execution.contractResult.status}`);
282
+ if (execution.dryRun) {
283
+ this.log('No images were created. Every selected identity passed exact destination preflight.');
284
+ this.log('Binary byte proof remains unavailable; apply is sequential and stops on first error.');
285
+ }
286
+ else {
287
+ this.log(`Run report: ${execution.reportFile}`);
288
+ this.log('Images were created sequentially; metadata readback passed for every completed asset.');
289
+ }
143
290
  }
144
291
  showPlan(execution, envelopeResult) {
145
292
  const primaryCount = execution.plan.groups.length;
@@ -163,10 +310,10 @@ export default class ImportWorkspace extends CmsCommand {
163
310
  }
164
311
  }
165
312
  }
166
- function envelope(status, apiVersion, orgId, pluginVersion, result, errors, warnings = []) {
313
+ function envelope(status, contractMajor, apiVersion, orgId, pluginVersion, result, errors, warnings = []) {
167
314
  return {
168
- contract: WORKSPACE_IMPORT_CONTRACT,
169
- contractVersion: '1.0.0',
315
+ contract: contractMajor === 2 ? WORKSPACE_IMPORT_CONTRACT_V2 : WORKSPACE_IMPORT_CONTRACT,
316
+ contractVersion: contractMajor === 2 ? '2.0.0' : '1.0.0',
170
317
  status,
171
318
  metadata: {
172
319
  operation: 'workspace.import',
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/commands/cms/import/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/commands/cms/import/workspace.ts"],"names":[],"mappings":"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"}
@@ -53,15 +53,16 @@ function successEnvelope(pluginVersion) {
53
53
  commandResults: {
54
54
  info: ['1.0.0'],
55
55
  workspaceExportSet: ['1.0.0'],
56
- workspaceImport: ['1.0.0'],
56
+ workspaceImport: ['1.0.0', '2.0.0'],
57
57
  },
58
- packageManifests: { workspaceExport: ['1.0.0'] },
58
+ packageManifests: { workspaceExport: ['1.0.0', '2.0.0'] },
59
59
  embeddedResults: {
60
60
  externalReferenceCorrelations: ['sf-cms-external-reference-correlations@1'],
61
61
  },
62
62
  compatibility: {
63
63
  'workspaceExportSet@1': { workspaceExportManifestMajors: [1] },
64
64
  'workspaceImport@1': { workspaceExportManifestMajors: [1] },
65
+ 'workspaceImport@2': { workspaceExportManifestMajors: [2] },
65
66
  },
66
67
  },
67
68
  capabilities: [
@@ -83,6 +84,24 @@ function successEnvelope(pluginVersion) {
83
84
  transport: 'cli-json',
84
85
  contract: 'sf-cms-external-reference-correlations@1',
85
86
  },
87
+ {
88
+ id: 'workspace.export.experimental-media',
89
+ state: 'experimental',
90
+ transport: 'cli-json',
91
+ contract: 'sf-cms-workspace-export@2',
92
+ },
93
+ {
94
+ id: 'workspace.import.email-fragment-create',
95
+ state: 'experimental',
96
+ transport: 'cli-json',
97
+ contract: 'sf-cms-workspace-import@1',
98
+ },
99
+ {
100
+ id: 'workspace.import.image-create',
101
+ state: 'experimental',
102
+ transport: 'cli-json',
103
+ contract: 'sf-cms-workspace-import@2',
104
+ },
86
105
  {
87
106
  id: 'workspace.import.mapping',
88
107
  state: 'experimental',
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/cms/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/cms/info.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ export declare const CMS_INFO_CONTRACT: "sf-cms-info";
3
3
  export declare const CMS_CAPABILITY_STATES: readonly ["implemented", "experimental", "unavailable"];
4
4
  export declare const CMS_CAPABILITY_TRANSPORT: "cli-json";
5
5
  export type CmsCapability = {
6
- id: 'workspace.export.bulk' | 'workspace.export.dependency-closure' | 'workspace.export.external-reference-correlation' | 'workspace.import.mapping';
6
+ id: 'workspace.export.bulk' | 'workspace.export.dependency-closure' | 'workspace.export.external-reference-correlation' | 'workspace.export.experimental-media' | 'workspace.import.email-fragment-create' | 'workspace.import.image-create' | 'workspace.import.mapping';
7
7
  state: (typeof CMS_CAPABILITY_STATES)[number];
8
8
  transport: typeof CMS_CAPABILITY_TRANSPORT;
9
- contract: 'unavailable' | 'sf-cms-workspace-export-set@1' | typeof EXTERNAL_REFERENCE_CORRELATIONS_CONTRACT | 'sf-cms-workspace-import@1';
9
+ contract: 'unavailable' | 'sf-cms-workspace-export-set@1' | 'sf-cms-workspace-export@2' | typeof EXTERNAL_REFERENCE_CORRELATIONS_CONTRACT | 'sf-cms-workspace-import@1' | 'sf-cms-workspace-import@2';
10
10
  };
11
11
  export type CmsInfoResult = {
12
12
  plugin: {
@@ -21,10 +21,10 @@ export type CmsInfoResult = {
21
21
  commandResults: {
22
22
  info: ['1.0.0'];
23
23
  workspaceExportSet: ['1.0.0'];
24
- workspaceImport: ['1.0.0'];
24
+ workspaceImport: ['1.0.0', '2.0.0'];
25
25
  };
26
26
  packageManifests: {
27
- workspaceExport: ['1.0.0'];
27
+ workspaceExport: ['1.0.0', '2.0.0'];
28
28
  };
29
29
  embeddedResults: {
30
30
  externalReferenceCorrelations: [typeof EXTERNAL_REFERENCE_CORRELATIONS_CONTRACT];
@@ -36,6 +36,9 @@ export type CmsInfoResult = {
36
36
  'workspaceImport@1': {
37
37
  workspaceExportManifestMajors: [1];
38
38
  };
39
+ 'workspaceImport@2': {
40
+ workspaceExportManifestMajors: [2];
41
+ };
39
42
  };
40
43
  };
41
44
  capabilities: CmsCapability[];
@@ -15,13 +15,16 @@ export function assertCmsInfoResult(value) {
15
15
  }
16
16
  assertExactKeys(value.contracts, ['commandResults', 'packageManifests', 'embeddedResults', 'compatibility'], 'result.contracts');
17
17
  assertExactKeys(value.contracts.commandResults, ['info', 'workspaceExportSet', 'workspaceImport'], 'result.contracts.commandResults');
18
- for (const key of ['info', 'workspaceExportSet', 'workspaceImport']) {
18
+ for (const key of ['info', 'workspaceExportSet']) {
19
19
  if (!isExactArray(value.contracts.commandResults[key], ['1.0.0'])) {
20
20
  throw new TypeError(`result.contracts.commandResults.${key} is invalid`);
21
21
  }
22
22
  }
23
+ if (!isExactArray(value.contracts.commandResults.workspaceImport, ['1.0.0', '2.0.0'])) {
24
+ throw new TypeError('result.contracts.commandResults.workspaceImport is invalid');
25
+ }
23
26
  assertExactKeys(value.contracts.packageManifests, ['workspaceExport'], 'result.contracts.packageManifests');
24
- if (!isExactArray(value.contracts.packageManifests.workspaceExport, ['1.0.0'])) {
27
+ if (!isExactArray(value.contracts.packageManifests.workspaceExport, ['1.0.0', '2.0.0'])) {
25
28
  throw new TypeError('result.contracts.packageManifests.workspaceExport is invalid');
26
29
  }
27
30
  assertExactKeys(value.contracts.embeddedResults, ['externalReferenceCorrelations'], 'result.contracts.embeddedResults');
@@ -30,12 +33,15 @@ export function assertCmsInfoResult(value) {
30
33
  ])) {
31
34
  throw new TypeError('result.contracts.embeddedResults.externalReferenceCorrelations is invalid');
32
35
  }
33
- assertExactKeys(value.contracts.compatibility, ['workspaceExportSet@1', 'workspaceImport@1'], 'result.contracts.compatibility');
34
- for (const key of ['workspaceExportSet@1', 'workspaceImport@1']) {
35
- assertExactKeys(value.contracts.compatibility[key], ['workspaceExportManifestMajors'], `result.contracts.compatibility.${key}`);
36
- if (!isExactArray(value.contracts.compatibility[key].workspaceExportManifestMajors, [1])) {
37
- throw new TypeError(`result.contracts.compatibility.${key} is invalid`);
38
- }
36
+ assertExactKeys(value.contracts.compatibility, ['workspaceExportSet@1', 'workspaceImport@1', 'workspaceImport@2'], 'result.contracts.compatibility');
37
+ const compatibility = value.contracts.compatibility;
38
+ for (const key of ['workspaceExportSet@1', 'workspaceImport@1', 'workspaceImport@2']) {
39
+ assertExactKeys(compatibility[key], ['workspaceExportManifestMajors'], `result.contracts.compatibility.${key}`);
40
+ }
41
+ if (!isExactArray(compatibility['workspaceExportSet@1'].workspaceExportManifestMajors, [1]) ||
42
+ !isExactArray(compatibility['workspaceImport@1'].workspaceExportManifestMajors, [1]) ||
43
+ !isExactArray(compatibility['workspaceImport@2'].workspaceExportManifestMajors, [2])) {
44
+ throw new TypeError('result.contracts.compatibility is invalid');
39
45
  }
40
46
  if (!Array.isArray(value.capabilities))
41
47
  throw new TypeError('result.capabilities must be an array');
@@ -56,6 +62,9 @@ export function assertCmsInfoResult(value) {
56
62
  ['workspace.export.bulk', 'sf-cms-workspace-export-set@1'],
57
63
  ['workspace.export.dependency-closure', 'unavailable'],
58
64
  ['workspace.export.external-reference-correlation', EXTERNAL_REFERENCE_CORRELATIONS_CONTRACT],
65
+ ['workspace.export.experimental-media', 'sf-cms-workspace-export@2'],
66
+ ['workspace.import.email-fragment-create', 'sf-cms-workspace-import@1'],
67
+ ['workspace.import.image-create', 'sf-cms-workspace-import@2'],
59
68
  ['workspace.import.mapping', 'sf-cms-workspace-import@1'],
60
69
  ]);
61
70
  if (capability.contract !== expectedContracts.get(capability.id)) {
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/contracts/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/contracts/info.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export declare const CMS_CONTRACT_MAJOR: 1;
2
2
  export declare const CMS_CONTRACT_VERSION: "1.0.0";
3
+ export declare const CMS_CONTRACT_VERSIONS: readonly ["1.0.0", "2.0.0"];
3
4
  export declare const CMS_PLUGIN_NAME: "sf-plugin-cms";
4
5
  export declare const CMS_STATUSES: readonly ["success", "partial", "failed", "blocked"];
5
6
  export declare const CMS_OPERATIONS: readonly ["cms.info", "workspace.export.bulk", "workspace.import"];
@@ -55,7 +56,7 @@ export type CmsProvenance = {
55
56
  };
56
57
  export type CmsEnvelope<T> = {
57
58
  contract: string;
58
- contractVersion: typeof CMS_CONTRACT_VERSION;
59
+ contractVersion: (typeof CMS_CONTRACT_VERSIONS)[number];
59
60
  status: CmsStatus;
60
61
  metadata: CmsMetadata;
61
62
  diagnostics: CmsDiagnostics;
@@ -1,6 +1,7 @@
1
1
  import { redactSecrets } from '../transport/redact-secrets.js';
2
2
  export const CMS_CONTRACT_MAJOR = 1;
3
3
  export const CMS_CONTRACT_VERSION = '1.0.0';
4
+ export const CMS_CONTRACT_VERSIONS = ['1.0.0', '2.0.0'];
4
5
  export const CMS_PLUGIN_NAME = 'sf-plugin-cms';
5
6
  export const CMS_STATUSES = ['success', 'partial', 'failed', 'blocked'];
6
7
  export const CMS_OPERATIONS = ['cms.info', 'workspace.export.bulk', 'workspace.import'];
@@ -116,18 +117,25 @@ export function assertOpaqueCmsReference(value, label = 'reference') {
116
117
  export function assertCmsEnvelope(value, resultValidator) {
117
118
  assertExactKeys(value, ['contract', 'contractVersion', 'status', 'metadata', 'diagnostics', 'provenance', 'result'], 'envelope');
118
119
  assertNonemptyString(value.contract, 'envelope.contract');
119
- if (value.contractVersion !== CMS_CONTRACT_VERSION) {
120
- throw new TypeError('envelope.contractVersion must be 1.0.0');
120
+ if (!CMS_CONTRACT_VERSIONS.includes(value.contractVersion)) {
121
+ throw new TypeError('envelope.contractVersion is unsupported');
121
122
  }
122
123
  if (!CMS_STATUSES.includes(value.status))
123
124
  throw new TypeError('envelope.status is invalid');
124
125
  assertMetadata(value.metadata);
126
+ if (value.contractVersion === '2.0.0' && value.metadata.operation !== 'workspace.import') {
127
+ throw new TypeError('envelope.contractVersion 2.0.0 is supported only for workspace.import');
128
+ }
125
129
  const expectedContract = new Map([
126
130
  ['cms.info', 'sf-cms-info'],
127
131
  ['workspace.export.bulk', 'sf-cms-workspace-export-set'],
128
132
  ['workspace.import', 'sf-cms-workspace-import'],
129
133
  ]);
130
- if (value.contract !== expectedContract.get(value.metadata.operation)) {
134
+ const operationContract = expectedContract.get(value.metadata.operation);
135
+ const expected = value.metadata.operation === 'workspace.import' && value.contractVersion === '2.0.0'
136
+ ? 'sf-cms-workspace-import@2'
137
+ : operationContract;
138
+ if (value.contract !== expected) {
131
139
  throw new TypeError('envelope.contract does not match metadata.operation');
132
140
  }
133
141
  assertDiagnostics(value.diagnostics);