sf-plugin-cms 0.3.1 → 0.5.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.
- package/README.md +334 -28
- package/lib/commands/cms/export/workspace.d.ts +6 -1
- package/lib/commands/cms/export/workspace.js +80 -3
- package/lib/commands/cms/export/workspace.js.map +1 -1
- package/lib/commands/cms/import/workspace.d.ts +14 -4
- package/lib/commands/cms/import/workspace.js +199 -24
- package/lib/commands/cms/import/workspace.js.map +1 -1
- package/lib/commands/cms/info.js +21 -2
- package/lib/commands/cms/info.js.map +1 -1
- package/lib/contracts/info.d.ts +7 -4
- package/lib/contracts/info.js +17 -8
- package/lib/contracts/info.js.map +1 -1
- package/lib/contracts/shared.d.ts +2 -1
- package/lib/contracts/shared.js +11 -3
- package/lib/contracts/shared.js.map +1 -1
- package/lib/contracts/workspace-export.d.ts +23 -3
- package/lib/contracts/workspace-export.js +118 -5
- package/lib/contracts/workspace-export.js.map +1 -1
- package/lib/contracts/workspace-import.d.ts +64 -0
- package/lib/contracts/workspace-import.js +119 -0
- package/lib/contracts/workspace-import.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/services/bulk-export-workspaces.js +10 -4
- package/lib/services/bulk-export-workspaces.js.map +1 -1
- package/lib/services/editable-raw-html-export.d.ts +26 -0
- package/lib/services/editable-raw-html-export.js +100 -0
- package/lib/services/editable-raw-html-export.js.map +1 -0
- package/lib/services/editable-raw-html-import.d.ts +25 -0
- package/lib/services/editable-raw-html-import.js +107 -0
- package/lib/services/editable-raw-html-import.js.map +1 -0
- package/lib/services/editable-raw-html.d.ts +34 -0
- package/lib/services/editable-raw-html.js +83 -0
- package/lib/services/editable-raw-html.js.map +1 -0
- package/lib/services/email-fragment.d.ts +15 -0
- package/lib/services/email-fragment.js +199 -0
- package/lib/services/email-fragment.js.map +1 -0
- package/lib/services/export-references.js +3 -1
- package/lib/services/export-references.js.map +1 -1
- package/lib/services/export-workspace.d.ts +16 -1
- package/lib/services/export-workspace.js +222 -15
- package/lib/services/export-workspace.js.map +1 -1
- package/lib/services/image-import.d.ts +91 -0
- package/lib/services/image-import.js +579 -0
- package/lib/services/image-import.js.map +1 -0
- package/lib/services/import-identities.d.ts +33 -0
- package/lib/services/import-identities.js +287 -0
- package/lib/services/import-identities.js.map +1 -0
- package/lib/services/import-workspace.d.ts +50 -1
- package/lib/services/import-workspace.js +445 -21
- package/lib/services/import-workspace.js.map +1 -1
- package/lib/services/landing-page-template.d.ts +52 -0
- package/lib/services/landing-page-template.js +421 -0
- package/lib/services/landing-page-template.js.map +1 -0
- package/lib/services/landing-page.d.ts +43 -0
- package/lib/services/landing-page.js +117 -0
- package/lib/services/landing-page.js.map +1 -0
- package/lib/services/resolve-workspace.d.ts +6 -1
- package/lib/services/resolve-workspace.js +51 -4
- package/lib/services/resolve-workspace.js.map +1 -1
- package/lib/services/variant-identity.d.ts +13 -0
- package/lib/services/variant-identity.js +34 -0
- package/lib/services/variant-identity.js.map +1 -0
- package/lib/services/web-fragment.d.ts +41 -0
- package/lib/services/web-fragment.js +245 -0
- package/lib/services/web-fragment.js.map +1 -0
- package/lib/transport/experimental-media.d.ts +30 -0
- package/lib/transport/experimental-media.js +224 -0
- package/lib/transport/experimental-media.js.map +1 -0
- package/lib/transport/json-request.d.ts +9 -1
- package/lib/transport/json-request.js +30 -3
- package/lib/transport/json-request.js.map +1 -1
- package/lib/transport/multipart-image-create.d.ts +28 -0
- package/lib/transport/multipart-image-create.js +189 -0
- package/lib/transport/multipart-image-create.js.map +1 -0
- package/messages/cms.export.workspace.md +12 -2
- package/messages/cms.import.workspace.md +29 -3
- package/package.json +1 -1
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { lstat, mkdir, mkdtemp, open, readdir, readFile, stat } from 'node:fs/promises';
|
|
2
|
+
import { lstat, mkdir, mkdtemp, open, readdir, readFile, stat, unlink } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { assertWorkspaceExportManifest, WORKSPACE_EXPORT_MANIFEST_CONTRACT, } from '../contracts/workspace-export.js';
|
|
5
5
|
import { getSelectedOperation, requestJson, } from '../transport/json-request.js';
|
|
6
6
|
import { getPluginVersion } from '../runtime-version.js';
|
|
7
7
|
import { cleanupOwnedPath, publishDirectoryNoClobber, } from './atomic-publish.js';
|
|
8
8
|
import { inventoryExportReferences } from './export-references.js';
|
|
9
|
+
import { preflightEditableExport, writeEditableRawHtml, } from './editable-raw-html-export.js';
|
|
9
10
|
import { getVariant } from './read.js';
|
|
11
|
+
import { downloadExperimentalCmsMedia, EXPERIMENTAL_MEDIA_POLICY, } from '../transport/experimental-media.js';
|
|
10
12
|
const PAGE_SIZE = 250;
|
|
11
13
|
const ABSOLUTE_PAGE_CAP = 1000;
|
|
14
|
+
function mediaByteCap(value, maximum, label) {
|
|
15
|
+
const configured = value ?? maximum;
|
|
16
|
+
if (!Number.isSafeInteger(configured) || configured <= 0) {
|
|
17
|
+
throw new TypeError(`${label} must be a positive safe integer`);
|
|
18
|
+
}
|
|
19
|
+
return Math.min(configured, maximum);
|
|
20
|
+
}
|
|
12
21
|
function isRecord(value) {
|
|
13
22
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
14
23
|
}
|
|
@@ -16,17 +25,20 @@ function nonemptyString(value) {
|
|
|
16
25
|
return typeof value === 'string' && value.length > 0;
|
|
17
26
|
}
|
|
18
27
|
function responseItems(value) {
|
|
19
|
-
|
|
28
|
+
if (!isRecord(value) || !Array.isArray(value.items)) {
|
|
29
|
+
throw new TypeError('Workspace variant search response must contain an items array.');
|
|
30
|
+
}
|
|
31
|
+
return value.items;
|
|
20
32
|
}
|
|
21
33
|
function responseCount(value) {
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
if (isRecord(value)) {
|
|
35
|
+
for (const key of ['total', 'totalCount', 'count']) {
|
|
36
|
+
const count = value[key];
|
|
37
|
+
if (typeof count === 'number' && Number.isInteger(count) && count >= 0)
|
|
38
|
+
return count;
|
|
39
|
+
}
|
|
28
40
|
}
|
|
29
|
-
|
|
41
|
+
throw new TypeError('Workspace variant search response must contain a nonnegative integer count.');
|
|
30
42
|
}
|
|
31
43
|
function searchRow(value) {
|
|
32
44
|
if (!isRecord(value))
|
|
@@ -80,6 +92,59 @@ async function exists(path) {
|
|
|
80
92
|
throw error;
|
|
81
93
|
}
|
|
82
94
|
}
|
|
95
|
+
function mediaValue(record) {
|
|
96
|
+
const body = record.contentBody;
|
|
97
|
+
if (!isRecord(body))
|
|
98
|
+
return undefined;
|
|
99
|
+
const media = body['sfdc_cms:media'];
|
|
100
|
+
return isRecord(media) ? media : undefined;
|
|
101
|
+
}
|
|
102
|
+
function imageEvidence(record) {
|
|
103
|
+
const contentType = isRecord(record.contentType)
|
|
104
|
+
? record.contentType.fullyQualifiedName
|
|
105
|
+
: record.contentType;
|
|
106
|
+
if (contentType !== 'sfdc_cms__image')
|
|
107
|
+
return undefined;
|
|
108
|
+
const media = mediaValue(record);
|
|
109
|
+
const source = isRecord(media?.source) ? media.source : undefined;
|
|
110
|
+
const status = isRecord(record.status) ? record.status.status : undefined;
|
|
111
|
+
const url = media?.url;
|
|
112
|
+
if (!nonemptyString(record.contentKey) ||
|
|
113
|
+
!nonemptyString(source?.mimeType) ||
|
|
114
|
+
typeof source.size !== 'number' ||
|
|
115
|
+
!Number.isSafeInteger(source.size) ||
|
|
116
|
+
source.size < 0 ||
|
|
117
|
+
!nonemptyString(status) ||
|
|
118
|
+
!nonemptyString(record.lastModifiedDate) ||
|
|
119
|
+
!nonemptyString(url)) {
|
|
120
|
+
throw new TypeError('Experimental image authoring metadata is incomplete');
|
|
121
|
+
}
|
|
122
|
+
const parsed = new URL(url, 'https://invalid.example');
|
|
123
|
+
const fileName = parsed.searchParams.get('fileName');
|
|
124
|
+
const md5 = parsed.searchParams.get('fileHash');
|
|
125
|
+
const version = parsed.searchParams.get('version');
|
|
126
|
+
if (!/^\/cms\/media\/[^/]+$/u.test(parsed.pathname) ||
|
|
127
|
+
[...parsed.searchParams.keys()].toSorted().join(',') !== 'fileHash,fileName,version' ||
|
|
128
|
+
!nonemptyString(fileName) ||
|
|
129
|
+
fileName.includes('/') ||
|
|
130
|
+
fileName.includes('\\') ||
|
|
131
|
+
typeof md5 !== 'string' ||
|
|
132
|
+
!/^[a-f\d]{32}$/iu.test(md5) ||
|
|
133
|
+
!nonemptyString(version)) {
|
|
134
|
+
throw new TypeError('Experimental image authoring URL binding is unsupported');
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
contentKey: record.contentKey,
|
|
138
|
+
fileName,
|
|
139
|
+
md5: md5.toLowerCase(),
|
|
140
|
+
mimeType: source.mimeType,
|
|
141
|
+
modifiedAt: record.lastModifiedDate,
|
|
142
|
+
size: source.size,
|
|
143
|
+
status,
|
|
144
|
+
url,
|
|
145
|
+
version,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
83
148
|
async function writeExclusive(path, value) {
|
|
84
149
|
const handle = await open(path, 'wx');
|
|
85
150
|
try {
|
|
@@ -122,8 +187,30 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
122
187
|
throw new TypeError('workspaceId must be a nonempty string');
|
|
123
188
|
if (!nonemptyString(destination))
|
|
124
189
|
throw new TypeError('destination must be a nonempty string');
|
|
190
|
+
const mediaCaps = options.experimentalMedia === undefined
|
|
191
|
+
? undefined
|
|
192
|
+
: {
|
|
193
|
+
perImageBytes: mediaByteCap(options.experimentalMedia.perImageBytes, EXPERIMENTAL_MEDIA_POLICY.perImageBytes, 'Experimental media per-image byte cap'),
|
|
194
|
+
totalBytes: mediaByteCap(options.experimentalMedia.totalBytes, EXPERIMENTAL_MEDIA_POLICY.totalBytes, 'Experimental media total byte cap'),
|
|
195
|
+
};
|
|
196
|
+
if (options.editableDirectory !== undefined) {
|
|
197
|
+
await preflightEditableExport(destination, options.editableDirectory);
|
|
198
|
+
}
|
|
125
199
|
if (await exists(destination))
|
|
126
200
|
throw new Error(`Export destination already exists: ${destination}`);
|
|
201
|
+
const selection = options.selection;
|
|
202
|
+
if (selection !== undefined) {
|
|
203
|
+
if (!nonemptyString(selection.contentType) || !Array.isArray(selection.apiNames)) {
|
|
204
|
+
throw new TypeError('Component export selection is malformed');
|
|
205
|
+
}
|
|
206
|
+
if (selection.apiNames.length === 0 ||
|
|
207
|
+
selection.apiNames.some((value) => !nonemptyString(value))) {
|
|
208
|
+
throw new TypeError('Component export selection requires one or more exact API names');
|
|
209
|
+
}
|
|
210
|
+
if (new Set(selection.apiNames).size !== selection.apiNames.length) {
|
|
211
|
+
throw new TypeError('Component export API names must be unique');
|
|
212
|
+
}
|
|
213
|
+
}
|
|
127
214
|
const warnings = [
|
|
128
215
|
{
|
|
129
216
|
code: 'UNSUPPORTED_WILDCARD',
|
|
@@ -142,10 +229,11 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
142
229
|
const response = await requestJson(connection, getSelectedOperation('workspace.variant.search'), {
|
|
143
230
|
query: {
|
|
144
231
|
contentSpaceOrFolderIds: [workspaceId],
|
|
232
|
+
...(selection === undefined ? {} : { contentTypeFQN: selection.contentType }),
|
|
145
233
|
languages: ['All'],
|
|
146
234
|
page,
|
|
147
235
|
pageSize: PAGE_SIZE,
|
|
148
|
-
queryTerm: '*',
|
|
236
|
+
queryTerm: selection === undefined ? '*' : selection.apiNames.join(' '),
|
|
149
237
|
},
|
|
150
238
|
}, options);
|
|
151
239
|
pagesRequested += 1;
|
|
@@ -229,6 +317,27 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
229
317
|
variantIds: [...ownershipMismatchIds].toSorted(),
|
|
230
318
|
});
|
|
231
319
|
}
|
|
320
|
+
if (selection !== undefined) {
|
|
321
|
+
const selected = new Map(selection.apiNames.map((apiName) => [apiName, []]));
|
|
322
|
+
for (const [variantId, detail] of details) {
|
|
323
|
+
const contentType = isRecord(detail.contentType)
|
|
324
|
+
? detail.contentType.fullyQualifiedName
|
|
325
|
+
: detail.contentType;
|
|
326
|
+
if (contentType !== selection.contentType || !nonemptyString(detail.apiName))
|
|
327
|
+
continue;
|
|
328
|
+
selected.get(detail.apiName)?.push(variantId);
|
|
329
|
+
}
|
|
330
|
+
for (const [apiName, matches] of selected) {
|
|
331
|
+
if (matches.length !== 1) {
|
|
332
|
+
throw new TypeError(`Exact component API name must resolve once for ${selection.contentType}: ${apiName}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const selectedIds = new Set([...selected.values()].flat());
|
|
336
|
+
for (const variantId of details.keys()) {
|
|
337
|
+
if (!selectedIds.has(variantId))
|
|
338
|
+
details.delete(variantId);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
232
341
|
const entries = [...details.keys()].toSorted().map((variantId) => ({
|
|
233
342
|
file: `items/${variantId}.json`,
|
|
234
343
|
variantId,
|
|
@@ -249,8 +358,12 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
249
358
|
...(referenceId === undefined ? {} : { referenceId }),
|
|
250
359
|
};
|
|
251
360
|
});
|
|
361
|
+
const mediaCandidates = [...details.entries()].flatMap(([variantId, detail]) => {
|
|
362
|
+
const evidence = imageEvidence(detail);
|
|
363
|
+
return evidence === undefined ? [] : [{ variantId, evidence }];
|
|
364
|
+
});
|
|
252
365
|
const manifest = {
|
|
253
|
-
schemaVersion: 1,
|
|
366
|
+
schemaVersion: mediaCandidates.length > 0 ? 2 : 1,
|
|
254
367
|
mode: 'experimental-best-effort',
|
|
255
368
|
workspaceId,
|
|
256
369
|
search: {
|
|
@@ -259,8 +372,8 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
259
372
|
pageSize: PAGE_SIZE,
|
|
260
373
|
queryTerm: '*',
|
|
261
374
|
},
|
|
262
|
-
expectedCount,
|
|
263
|
-
foundCount: candidates.size,
|
|
375
|
+
expectedCount: selection === undefined ? expectedCount : selection.apiNames.length,
|
|
376
|
+
foundCount: selection === undefined ? candidates.size : details.size,
|
|
264
377
|
exportedCount: entries.length,
|
|
265
378
|
pagesRequested,
|
|
266
379
|
entries,
|
|
@@ -268,7 +381,8 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
268
381
|
failedVariantIds: failedIds.toSorted(),
|
|
269
382
|
warnings,
|
|
270
383
|
contract: WORKSPACE_EXPORT_MANIFEST_CONTRACT,
|
|
271
|
-
contractVersion: '1.0.0',
|
|
384
|
+
contractVersion: mediaCandidates.length > 0 ? '2.0.0' : '1.0.0',
|
|
385
|
+
...(mediaCandidates.length === 0 ? {} : { media: [] }),
|
|
272
386
|
provenance: {
|
|
273
387
|
producer: 'sf-plugin-cms',
|
|
274
388
|
sourceOrgId: options.sourceOrgId ?? 'unknown-org',
|
|
@@ -281,7 +395,17 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
281
395
|
externalReferences: referenceInventory.externalReferences,
|
|
282
396
|
items: manifestItems,
|
|
283
397
|
};
|
|
284
|
-
|
|
398
|
+
if (mediaCandidates.length > 0 && options.experimentalMedia === undefined) {
|
|
399
|
+
warnings.push({
|
|
400
|
+
code: 'MEDIA_EXPORT_FAILED',
|
|
401
|
+
message: 'Image candidate JSON was exported without media binaries because --experimental-media was not enabled.',
|
|
402
|
+
variantIds: mediaCandidates.map(({ variantId }) => variantId),
|
|
403
|
+
});
|
|
404
|
+
manifest.completeness = 'partial';
|
|
405
|
+
}
|
|
406
|
+
if (options.editableDirectory !== undefined) {
|
|
407
|
+
await preflightEditableExport(destination, options.editableDirectory);
|
|
408
|
+
}
|
|
285
409
|
const parent = path.dirname(destination);
|
|
286
410
|
await mkdir(parent, { recursive: true });
|
|
287
411
|
const temporary = await (options.atomicPublish?.makeTemporaryDirectory ?? mkdtemp)(path.join(parent, `.${path.basename(destination)}.tmp-`));
|
|
@@ -290,6 +414,68 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
290
414
|
for (const entry of entries) {
|
|
291
415
|
await writeExclusive(path.join(temporary, entry.file), details.get(entry.variantId));
|
|
292
416
|
}
|
|
417
|
+
if (mediaCandidates.length > 0 && options.experimentalMedia !== undefined) {
|
|
418
|
+
await mkdir(path.join(temporary, 'media'));
|
|
419
|
+
let totalBytes = 0;
|
|
420
|
+
for (const { variantId, evidence } of mediaCandidates) {
|
|
421
|
+
const mediaPath = `media/${variantId}-${evidence.fileName}`;
|
|
422
|
+
try {
|
|
423
|
+
const remainingTotal = mediaCaps.totalBytes - totalBytes;
|
|
424
|
+
if (!Number.isSafeInteger(remainingTotal) || remainingTotal <= 0) {
|
|
425
|
+
throw new TypeError('Experimental media total byte cap is exhausted');
|
|
426
|
+
}
|
|
427
|
+
const downloaded = await downloadExperimentalCmsMedia(new URL(evidence.url, options.experimentalMedia.instanceUrl), {
|
|
428
|
+
accessToken: options.experimentalMedia.accessToken,
|
|
429
|
+
expectedMd5: evidence.md5,
|
|
430
|
+
expectedMimeType: evidence.mimeType,
|
|
431
|
+
expectedSize: evidence.size,
|
|
432
|
+
fetch: options.experimentalMedia.fetch,
|
|
433
|
+
instanceUrl: options.experimentalMedia.instanceUrl,
|
|
434
|
+
maxBytes: Math.min(mediaCaps.perImageBytes, remainingTotal),
|
|
435
|
+
outputFile: path.join(temporary, mediaPath),
|
|
436
|
+
});
|
|
437
|
+
if (downloaded.bytes > mediaCaps.totalBytes - totalBytes) {
|
|
438
|
+
throw new TypeError('Experimental media total byte accounting exceeded the cap');
|
|
439
|
+
}
|
|
440
|
+
totalBytes += downloaded.bytes;
|
|
441
|
+
const current = imageEvidence(await getVariant(connection, variantId, options));
|
|
442
|
+
if (current === undefined || JSON.stringify(current) !== JSON.stringify(evidence)) {
|
|
443
|
+
throw new TypeError('Experimental image authoring metadata changed during export');
|
|
444
|
+
}
|
|
445
|
+
manifest.media.push({
|
|
446
|
+
variantId,
|
|
447
|
+
contentKey: evidence.contentKey,
|
|
448
|
+
path: mediaPath,
|
|
449
|
+
sha256: downloaded.sha256,
|
|
450
|
+
md5: downloaded.md5,
|
|
451
|
+
bytes: downloaded.bytes,
|
|
452
|
+
mimeType: downloaded.mimeType,
|
|
453
|
+
fileName: evidence.fileName,
|
|
454
|
+
sourceStatus: evidence.status,
|
|
455
|
+
sourceModifiedAt: evidence.modifiedAt,
|
|
456
|
+
sourceVersion: evidence.version,
|
|
457
|
+
sourceUrl: evidence.url,
|
|
458
|
+
transport: 'experimental-undocumented-authoring-media',
|
|
459
|
+
});
|
|
460
|
+
manifest.items.push({
|
|
461
|
+
path: mediaPath,
|
|
462
|
+
sha256: downloaded.sha256,
|
|
463
|
+
kind: 'cms.media',
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
catch (error) {
|
|
467
|
+
await unlink(path.join(temporary, mediaPath)).catch(() => { });
|
|
468
|
+
warnings.push({
|
|
469
|
+
code: 'MEDIA_EXPORT_FAILED',
|
|
470
|
+
message: `Experimental image export failed for ${variantId}: ${error instanceof Error ? error.message : String(error)}`,
|
|
471
|
+
variantIds: [variantId],
|
|
472
|
+
});
|
|
473
|
+
manifest.completeness = 'partial';
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
assertWorkspaceExportManifest(manifest);
|
|
293
479
|
await assertRegularPackageFiles(temporary, new Set(manifest.items.map(({ path }) => path)));
|
|
294
480
|
await writeExclusive(path.join(temporary, 'manifest.json'), manifest);
|
|
295
481
|
await publishDirectoryNoClobber(temporary, destination, options.atomicPublish);
|
|
@@ -298,6 +484,27 @@ export async function exportWorkspace(connection, workspaceId, destination, opti
|
|
|
298
484
|
await cleanupOwnedPath(temporary, error, options.atomicPublish);
|
|
299
485
|
}
|
|
300
486
|
const manifestSha256 = sha256(await readFile(path.join(destination, 'manifest.json')));
|
|
487
|
+
if (options.editableDirectory !== undefined) {
|
|
488
|
+
try {
|
|
489
|
+
await assertRegularPackageFiles(destination, new Set(manifest.items.map(({ path }) => path)));
|
|
490
|
+
if (manifestSha256 !== sha256(jsonBytes(manifest)))
|
|
491
|
+
throw new Error('Published manifest changed');
|
|
492
|
+
const rawItems = [];
|
|
493
|
+
for (const [index, entry] of entries.entries()) {
|
|
494
|
+
const bytes = await readFile(path.join(destination, entry.file));
|
|
495
|
+
if (sha256(bytes) !== manifest.items[index].sha256)
|
|
496
|
+
throw new Error('Published variant changed');
|
|
497
|
+
rawItems.push({
|
|
498
|
+
variantId: entry.variantId,
|
|
499
|
+
raw: JSON.parse(bytes.toString('utf8')),
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
await writeEditableRawHtml(rawItems, manifestSha256, options.editableDirectory, options.editablePublish);
|
|
503
|
+
}
|
|
504
|
+
catch (error) {
|
|
505
|
+
throw new Error(`Baseline export retained at ${destination}; editable output unavailable: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
506
|
+
}
|
|
507
|
+
}
|
|
301
508
|
return { destination, manifest, manifestSha256 };
|
|
302
509
|
}
|
|
303
510
|
//# sourceMappingURL=export-workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-workspace.js","sourceRoot":"","sources":["../../src/services/export-workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"export-workspace.js","sourceRoot":"","sources":["../../src/services/export-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { Connection } from '@salesforce/core';
|
|
2
|
+
import type { WorkspaceExportMedia } from '../contracts/workspace-export.js';
|
|
3
|
+
import { type ComponentStableIdentity, type ImageImportFieldPlan, type ImageImportIdentityField, type ImageImportStrategy, type WorkspaceImageImportResultV2 } from '../contracts/workspace-import.js';
|
|
4
|
+
import { type JsonRequestOptions } from '../transport/json-request.js';
|
|
5
|
+
import { type LoadedWorkspaceExport, type WorkspaceImportItem } from './import-workspace.js';
|
|
6
|
+
import { type MultipartImageCreateOptions } from '../transport/multipart-image-create.js';
|
|
7
|
+
export type ImageImportMapField = {
|
|
8
|
+
readonly strategy: ImageImportStrategy;
|
|
9
|
+
readonly value?: string;
|
|
10
|
+
};
|
|
11
|
+
export type ImageImportMapRow = {
|
|
12
|
+
readonly source: ComponentStableIdentity;
|
|
13
|
+
readonly contentKey: ImageImportMapField;
|
|
14
|
+
readonly apiName: ImageImportMapField;
|
|
15
|
+
readonly title: ImageImportMapField;
|
|
16
|
+
readonly urlName: ImageImportMapField;
|
|
17
|
+
};
|
|
18
|
+
export type PlannedImageImport = {
|
|
19
|
+
readonly source: WorkspaceImportItem;
|
|
20
|
+
readonly media: WorkspaceExportMedia;
|
|
21
|
+
readonly identities: Record<ImageImportIdentityField, ImageImportFieldPlan>;
|
|
22
|
+
};
|
|
23
|
+
type RequestConnection = Pick<Connection, 'request'>;
|
|
24
|
+
export type ImageImportPreflightOptions = {
|
|
25
|
+
readonly connection: RequestConnection;
|
|
26
|
+
readonly destinationOrgId: string;
|
|
27
|
+
readonly destinationWorkspaceId: string;
|
|
28
|
+
readonly plans: readonly PlannedImageImport[];
|
|
29
|
+
readonly requestOptions?: JsonRequestOptions;
|
|
30
|
+
readonly source: LoadedWorkspaceExport;
|
|
31
|
+
};
|
|
32
|
+
export type ImageImportPreflightResult = {
|
|
33
|
+
readonly contractResult: WorkspaceImageImportResultV2;
|
|
34
|
+
readonly dryRun: true;
|
|
35
|
+
readonly plans: readonly PlannedImageImport[];
|
|
36
|
+
};
|
|
37
|
+
export type ImageImportOperation = {
|
|
38
|
+
readonly operationId: string;
|
|
39
|
+
readonly requestIdentity: string;
|
|
40
|
+
readonly requestSha256: string;
|
|
41
|
+
readonly sourceApiName: string;
|
|
42
|
+
readonly destinationApiName: string;
|
|
43
|
+
readonly destinationOrgId: string;
|
|
44
|
+
readonly destinationWorkspaceId: string;
|
|
45
|
+
readonly runId: string;
|
|
46
|
+
state: 'pending' | 'succeeded' | 'failed';
|
|
47
|
+
error?: string;
|
|
48
|
+
result?: {
|
|
49
|
+
readonly contentKey: string;
|
|
50
|
+
readonly contentId: string;
|
|
51
|
+
readonly variantId: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export type ImageImportRunReport = {
|
|
55
|
+
readonly runId: string;
|
|
56
|
+
readonly sourceDirectory: string;
|
|
57
|
+
readonly sourceManifestSha256: string;
|
|
58
|
+
readonly destinationOrgId: string;
|
|
59
|
+
readonly destinationWorkspaceId: string;
|
|
60
|
+
readonly operations: ImageImportOperation[];
|
|
61
|
+
state: 'applying' | 'completed' | 'failed' | 'ownership-uncertain';
|
|
62
|
+
};
|
|
63
|
+
export type ImageImportReportPersistence = {
|
|
64
|
+
readonly rewrite: (file: string, report: ImageImportRunReport) => Promise<void>;
|
|
65
|
+
};
|
|
66
|
+
export type ImageImportApplyOptions = ImageImportPreflightOptions & {
|
|
67
|
+
readonly reportDirectory: string;
|
|
68
|
+
readonly reportPersistence?: ImageImportReportPersistence;
|
|
69
|
+
readonly createOptions?: MultipartImageCreateOptions;
|
|
70
|
+
};
|
|
71
|
+
export type ImageImportApplyResult = {
|
|
72
|
+
readonly contractResult: WorkspaceImageImportResultV2;
|
|
73
|
+
readonly dryRun: false;
|
|
74
|
+
readonly report: ImageImportRunReport;
|
|
75
|
+
readonly reportFile: string;
|
|
76
|
+
};
|
|
77
|
+
export declare function normalizeImageMultipartFilename(fileName: string, mimeType: string): string;
|
|
78
|
+
export declare function planImageImports(source: LoadedWorkspaceExport, input: unknown): PlannedImageImport[];
|
|
79
|
+
/**
|
|
80
|
+
* Validate every planned image against exact destination scope without mutation.
|
|
81
|
+
* @param {ImageImportPreflightOptions} options - Verified source, plans, destination, and transport.
|
|
82
|
+
* @returns {Promise<ImageImportPreflightResult>} Dry-run evidence after every row passes.
|
|
83
|
+
*/
|
|
84
|
+
export declare function preflightImageImports(options: ImageImportPreflightOptions): Promise<ImageImportPreflightResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Apply verified image plans sequentially with durable mutation evidence.
|
|
87
|
+
* @param {ImageImportApplyOptions} options - Verified source, destination, plans, and report path.
|
|
88
|
+
* @returns {Promise<ImageImportApplyResult>} Completed v2 evidence and durable report.
|
|
89
|
+
*/
|
|
90
|
+
export declare function applyImageImports(options: ImageImportApplyOptions): Promise<ImageImportApplyResult>;
|
|
91
|
+
export {};
|