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,5 +1,68 @@
|
|
|
1
1
|
export declare const WORKSPACE_IMPORT_CONTRACT: "sf-cms-workspace-import";
|
|
2
|
+
export declare const WORKSPACE_IMPORT_CONTRACT_V2: "sf-cms-workspace-import@2";
|
|
2
3
|
export declare const WORKSPACE_IMPORT_OPERATIONS: readonly ["created", "matched", "updated", "unchanged"];
|
|
4
|
+
export declare const IMAGE_IMPORT_IDENTITY_FIELDS: readonly ["contentKey", "apiName", "title", "urlName"];
|
|
5
|
+
export declare const IMAGE_IMPORT_STRATEGIES: readonly ["preserve", "fresh", "generated"];
|
|
6
|
+
export type ComponentStableIdentity = {
|
|
7
|
+
family: 'cms';
|
|
8
|
+
type: string;
|
|
9
|
+
apiName: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
workspaceId?: string;
|
|
12
|
+
language?: string;
|
|
13
|
+
serverId?: string;
|
|
14
|
+
version?: string;
|
|
15
|
+
};
|
|
16
|
+
export type ComponentResolutionEvidence = {
|
|
17
|
+
method: 'explicit-map' | 'api-name' | 'title-fallback';
|
|
18
|
+
target: ComponentStableIdentity;
|
|
19
|
+
};
|
|
20
|
+
export type ImageImportIdentityField = (typeof IMAGE_IMPORT_IDENTITY_FIELDS)[number];
|
|
21
|
+
export type ImageImportStrategy = (typeof IMAGE_IMPORT_STRATEGIES)[number];
|
|
22
|
+
export type ImageImportFieldPlan = {
|
|
23
|
+
strategy: ImageImportStrategy;
|
|
24
|
+
source?: string;
|
|
25
|
+
submitted?: string;
|
|
26
|
+
returned?: string;
|
|
27
|
+
};
|
|
28
|
+
export type WorkspaceImageImportAssetResult = {
|
|
29
|
+
source: ComponentStableIdentity;
|
|
30
|
+
resolution?: ComponentResolutionEvidence;
|
|
31
|
+
mutation?: {
|
|
32
|
+
requestSha256: string;
|
|
33
|
+
contentId: string;
|
|
34
|
+
variantId: string;
|
|
35
|
+
};
|
|
36
|
+
identities: Record<ImageImportIdentityField, ImageImportFieldPlan>;
|
|
37
|
+
binary: {
|
|
38
|
+
path: string;
|
|
39
|
+
sha256: string;
|
|
40
|
+
md5: string;
|
|
41
|
+
bytes: number;
|
|
42
|
+
mimeType: string;
|
|
43
|
+
};
|
|
44
|
+
metadataReadback: 'not-attempted' | 'passed' | 'failed';
|
|
45
|
+
byteProof: 'passed' | 'unavailable' | 'failed';
|
|
46
|
+
operationStatus: 'planned' | 'succeeded' | 'failed';
|
|
47
|
+
reportStatus: 'not-created' | 'recorded' | 'failed';
|
|
48
|
+
};
|
|
49
|
+
export type WorkspaceImageImportResultV2 = {
|
|
50
|
+
sourcePackage: {
|
|
51
|
+
manifestSha256: string;
|
|
52
|
+
workspaceId: string;
|
|
53
|
+
manifestVersion: 2;
|
|
54
|
+
};
|
|
55
|
+
target: {
|
|
56
|
+
orgId: string;
|
|
57
|
+
workspaceId: string;
|
|
58
|
+
};
|
|
59
|
+
status: 'planned' | 'completed' | 'failed';
|
|
60
|
+
assets: WorkspaceImageImportAssetResult[];
|
|
61
|
+
};
|
|
62
|
+
export declare class InvalidImageImportMapError extends TypeError {
|
|
63
|
+
readonly code: "INVALID_IMAGE_IMPORT_MAP";
|
|
64
|
+
constructor(message: string);
|
|
65
|
+
}
|
|
3
66
|
export declare const WORKSPACE_IMPORT_MAPPING_STATUSES: readonly ["resolved", "unresolved", "ambiguous", "failed"];
|
|
4
67
|
export declare const WORKSPACE_IMPORT_REFERENCE_STATUSES: readonly ["resolved", "unresolved", "ambiguous", "failed", "unsupported"];
|
|
5
68
|
export type WorkspaceImportMapping = {
|
|
@@ -43,4 +106,5 @@ export type WorkspaceImportResult = {
|
|
|
43
106
|
mappings: WorkspaceImportMapping[];
|
|
44
107
|
references: WorkspaceImportReference[];
|
|
45
108
|
};
|
|
109
|
+
export declare function assertWorkspaceImageImportResultV2(value: unknown): asserts value is WorkspaceImageImportResultV2;
|
|
46
110
|
export declare function assertWorkspaceImportResult(value: unknown): asserts value is WorkspaceImportResult;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { assertExactKeys, assertIdentifier, assertNonemptyString, assertReferenceId, assertSha256, } from './shared.js';
|
|
2
2
|
export const WORKSPACE_IMPORT_CONTRACT = 'sf-cms-workspace-import';
|
|
3
|
+
export const WORKSPACE_IMPORT_CONTRACT_V2 = 'sf-cms-workspace-import@2';
|
|
3
4
|
export const WORKSPACE_IMPORT_OPERATIONS = ['created', 'matched', 'updated', 'unchanged'];
|
|
5
|
+
export const IMAGE_IMPORT_IDENTITY_FIELDS = ['contentKey', 'apiName', 'title', 'urlName'];
|
|
6
|
+
export const IMAGE_IMPORT_STRATEGIES = ['preserve', 'fresh', 'generated'];
|
|
7
|
+
export class InvalidImageImportMapError extends TypeError {
|
|
8
|
+
code = 'INVALID_IMAGE_IMPORT_MAP';
|
|
9
|
+
constructor(message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'InvalidImageImportMapError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
4
14
|
export const WORKSPACE_IMPORT_MAPPING_STATUSES = [
|
|
5
15
|
'resolved',
|
|
6
16
|
'unresolved',
|
|
@@ -11,6 +21,115 @@ export const WORKSPACE_IMPORT_REFERENCE_STATUSES = [
|
|
|
11
21
|
...WORKSPACE_IMPORT_MAPPING_STATUSES,
|
|
12
22
|
'unsupported',
|
|
13
23
|
];
|
|
24
|
+
function assertComponentIdentity(value, label) {
|
|
25
|
+
const identity = value;
|
|
26
|
+
assertExactKeys(value, [
|
|
27
|
+
'family',
|
|
28
|
+
'type',
|
|
29
|
+
'apiName',
|
|
30
|
+
...(identity.title === undefined ? [] : ['title']),
|
|
31
|
+
...(identity.workspaceId === undefined ? [] : ['workspaceId']),
|
|
32
|
+
...(identity.language === undefined ? [] : ['language']),
|
|
33
|
+
...(identity.serverId === undefined ? [] : ['serverId']),
|
|
34
|
+
...(identity.version === undefined ? [] : ['version']),
|
|
35
|
+
], label);
|
|
36
|
+
if (identity.family !== 'cms')
|
|
37
|
+
throw new TypeError(`${label}.family is unsupported`);
|
|
38
|
+
assertIdentifier(identity.type, `${label}.type`);
|
|
39
|
+
assertNonemptyString(identity.apiName, `${label}.apiName`);
|
|
40
|
+
for (const key of ['title', 'workspaceId', 'language']) {
|
|
41
|
+
if (identity[key] !== undefined)
|
|
42
|
+
assertNonemptyString(identity[key], `${label}.${key}`);
|
|
43
|
+
}
|
|
44
|
+
if (identity.serverId !== undefined)
|
|
45
|
+
assertIdentifier(identity.serverId, `${label}.serverId`);
|
|
46
|
+
if (identity.version !== undefined)
|
|
47
|
+
assertNonemptyString(identity.version, `${label}.version`);
|
|
48
|
+
}
|
|
49
|
+
export function assertWorkspaceImageImportResultV2(value) {
|
|
50
|
+
assertExactKeys(value, ['sourcePackage', 'target', 'status', 'assets'], 'result');
|
|
51
|
+
assertExactKeys(value.sourcePackage, ['manifestSha256', 'workspaceId', 'manifestVersion'], 'result.sourcePackage');
|
|
52
|
+
assertSha256(value.sourcePackage.manifestSha256, 'result.sourcePackage.manifestSha256');
|
|
53
|
+
assertIdentifier(value.sourcePackage.workspaceId, 'result.sourcePackage.workspaceId');
|
|
54
|
+
if (value.sourcePackage.manifestVersion !== 2)
|
|
55
|
+
throw new TypeError('result.sourcePackage.manifestVersion must be 2');
|
|
56
|
+
assertExactKeys(value.target, ['orgId', 'workspaceId'], 'result.target');
|
|
57
|
+
assertIdentifier(value.target.orgId, 'result.target.orgId');
|
|
58
|
+
assertIdentifier(value.target.workspaceId, 'result.target.workspaceId');
|
|
59
|
+
if (!['planned', 'completed', 'failed'].includes(value.status))
|
|
60
|
+
throw new TypeError('result.status is invalid');
|
|
61
|
+
if (!Array.isArray(value.assets) || value.assets.length === 0)
|
|
62
|
+
throw new TypeError('result.assets must be a nonempty array');
|
|
63
|
+
let previous = '';
|
|
64
|
+
const sources = new Set();
|
|
65
|
+
for (const [index, asset] of value.assets.entries()) {
|
|
66
|
+
const label = `result.assets[${index}]`;
|
|
67
|
+
assertExactKeys(asset, [
|
|
68
|
+
'source',
|
|
69
|
+
...(asset.resolution === undefined ? [] : ['resolution']),
|
|
70
|
+
...(asset.mutation === undefined ? [] : ['mutation']),
|
|
71
|
+
'identities',
|
|
72
|
+
'binary',
|
|
73
|
+
'metadataReadback',
|
|
74
|
+
'byteProof',
|
|
75
|
+
'operationStatus',
|
|
76
|
+
'reportStatus',
|
|
77
|
+
], label);
|
|
78
|
+
assertComponentIdentity(asset.source, `${label}.source`);
|
|
79
|
+
if (asset.resolution !== undefined) {
|
|
80
|
+
assertExactKeys(asset.resolution, ['method', 'target'], `${label}.resolution`);
|
|
81
|
+
if (!['explicit-map', 'api-name', 'title-fallback'].includes(asset.resolution.method)) {
|
|
82
|
+
throw new TypeError(`${label}.resolution.method is invalid`);
|
|
83
|
+
}
|
|
84
|
+
assertComponentIdentity(asset.resolution.target, `${label}.resolution.target`);
|
|
85
|
+
}
|
|
86
|
+
if (asset.mutation !== undefined) {
|
|
87
|
+
assertExactKeys(asset.mutation, ['requestSha256', 'contentId', 'variantId'], `${label}.mutation`);
|
|
88
|
+
assertSha256(asset.mutation.requestSha256, `${label}.mutation.requestSha256`);
|
|
89
|
+
assertIdentifier(asset.mutation.contentId, `${label}.mutation.contentId`);
|
|
90
|
+
assertIdentifier(asset.mutation.variantId, `${label}.mutation.variantId`);
|
|
91
|
+
}
|
|
92
|
+
const sourceKey = `${asset.source.family}\0${asset.source.type}\0${asset.source.apiName}`;
|
|
93
|
+
if (sourceKey.localeCompare(previous) < 0)
|
|
94
|
+
throw new TypeError('result.assets must be sorted by typed source identity');
|
|
95
|
+
if (sources.has(sourceKey))
|
|
96
|
+
throw new TypeError('duplicate result asset source');
|
|
97
|
+
previous = sourceKey;
|
|
98
|
+
sources.add(sourceKey);
|
|
99
|
+
assertExactKeys(asset.identities, IMAGE_IMPORT_IDENTITY_FIELDS, `${label}.identities`);
|
|
100
|
+
for (const field of IMAGE_IMPORT_IDENTITY_FIELDS) {
|
|
101
|
+
const plan = asset.identities[field];
|
|
102
|
+
const planLabel = `${label}.identities.${field}`;
|
|
103
|
+
assertExactKeys(plan, [
|
|
104
|
+
'strategy',
|
|
105
|
+
...(plan.source === undefined ? [] : ['source']),
|
|
106
|
+
...(plan.submitted === undefined ? [] : ['submitted']),
|
|
107
|
+
...(plan.returned === undefined ? [] : ['returned']),
|
|
108
|
+
], planLabel);
|
|
109
|
+
if (!IMAGE_IMPORT_STRATEGIES.includes(plan.strategy))
|
|
110
|
+
throw new TypeError(`${planLabel}.strategy is invalid`);
|
|
111
|
+
for (const key of ['source', 'submitted', 'returned']) {
|
|
112
|
+
if (plan[key] !== undefined)
|
|
113
|
+
assertNonemptyString(plan[key], `${planLabel}.${key}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
assertExactKeys(asset.binary, ['path', 'sha256', 'md5', 'bytes', 'mimeType'], `${label}.binary`);
|
|
117
|
+
assertNonemptyString(asset.binary.path, `${label}.binary.path`);
|
|
118
|
+
assertSha256(asset.binary.sha256, `${label}.binary.sha256`);
|
|
119
|
+
if (typeof asset.binary.md5 !== 'string' || !/^[a-f\d]{32}$/u.test(asset.binary.md5))
|
|
120
|
+
throw new TypeError(`${label}.binary.md5 is invalid`);
|
|
121
|
+
assertCount(asset.binary.bytes, `${label}.binary.bytes`);
|
|
122
|
+
assertNonemptyString(asset.binary.mimeType, `${label}.binary.mimeType`);
|
|
123
|
+
if (!['not-attempted', 'passed', 'failed'].includes(asset.metadataReadback))
|
|
124
|
+
throw new TypeError(`${label}.metadataReadback is invalid`);
|
|
125
|
+
if (!['passed', 'unavailable', 'failed'].includes(asset.byteProof))
|
|
126
|
+
throw new TypeError(`${label}.byteProof is invalid`);
|
|
127
|
+
if (!['planned', 'succeeded', 'failed'].includes(asset.operationStatus))
|
|
128
|
+
throw new TypeError(`${label}.operationStatus is invalid`);
|
|
129
|
+
if (!['not-created', 'recorded', 'failed'].includes(asset.reportStatus))
|
|
130
|
+
throw new TypeError(`${label}.reportStatus is invalid`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
14
133
|
export function assertWorkspaceImportResult(value) {
|
|
15
134
|
assertExactKeys(value, ['sourcePackage', 'target', 'integrity', 'mappings', 'references'], 'result');
|
|
16
135
|
assertExactKeys(value.sourcePackage, ['manifestSha256', 'workspaceId'], 'result.sourcePackage');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-import.js","sourceRoot":"","sources":["../../src/contracts/workspace-import.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-import.js","sourceRoot":"","sources":["../../src/contracts/workspace-import.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { default as GetWorkspace } from './commands/cms/get/workspace.js';
|
|
|
5
5
|
export { default as Info } from './commands/cms/info.js';
|
|
6
6
|
export { default as ListChannel } from './commands/cms/list/channel.js';
|
|
7
7
|
export { default as ListWorkspace } from './commands/cms/list/workspace.js';
|
|
8
|
-
export { executeWorkspaceImport, loadWorkspaceExport, planWorkspaceImport, type CreatedParentRecord, type DestinationWorkspace, type ExecuteWorkspaceImportOptions, type LoadedWorkspaceExport, type WorkspaceImportGroupPlan, type WorkspaceImportItem, type WorkspaceImportPlan, type WorkspaceImportExecutionResult, type WorkspaceImportRunReport, } from './services/import-workspace.js';
|
|
8
|
+
export { executeWorkspaceImport, loadWorkspaceExport, planWorkspaceImport, type CreatedParentRecord, type DestinationWorkspace, type ExecuteWorkspaceImportOptions, type LoadedWorkspaceExport, type WorkspaceImportGroupPlan, type WorkspaceImportItem, type WorkspaceImportPlan, type WorkspaceImportExecutionResult, type WorkspaceImportRunReport, type WorkspaceExportLoadProfile, } from './services/import-workspace.js';
|
|
9
|
+
export { applyImageImports, planImageImports, preflightImageImports, type ImageImportApplyOptions, type ImageImportApplyResult, type ImageImportMapField, type ImageImportMapRow, type ImageImportOperation, type ImageImportPreflightOptions, type ImageImportPreflightResult, type ImageImportReportPersistence, type ImageImportRunReport, type PlannedImageImport, } from './services/image-import.js';
|
|
10
|
+
export { assertWorkspaceImageImportResultV2, InvalidImageImportMapError, type WorkspaceImageImportAssetResult, type WorkspaceImageImportResultV2, } from './contracts/workspace-import.js';
|
package/lib/index.js
CHANGED
|
@@ -6,4 +6,6 @@ export { default as Info } from './commands/cms/info.js';
|
|
|
6
6
|
export { default as ListChannel } from './commands/cms/list/channel.js';
|
|
7
7
|
export { default as ListWorkspace } from './commands/cms/list/workspace.js';
|
|
8
8
|
export { executeWorkspaceImport, loadWorkspaceExport, planWorkspaceImport, } from './services/import-workspace.js';
|
|
9
|
+
export { applyImageImports, planImageImports, preflightImageImports, } from './services/image-import.js';
|
|
10
|
+
export { assertWorkspaceImageImportResultV2, InvalidImageImportMapError, } from './contracts/workspace-import.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GAWpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GAWtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kCAAkC,EAClC,0BAA0B,GAG3B,MAAM,iCAAiC,CAAC"}
|
|
@@ -17,14 +17,16 @@ function nonemptyString(value) {
|
|
|
17
17
|
function folded(value) {
|
|
18
18
|
return value.normalize('NFKC').toLocaleLowerCase('en-US');
|
|
19
19
|
}
|
|
20
|
-
function actualWorkspaceType(workspace) {
|
|
20
|
+
function actualWorkspaceType(workspace, listedType) {
|
|
21
21
|
const spaceType = workspace.spaceType;
|
|
22
22
|
if (typeof spaceType === 'string')
|
|
23
23
|
return normalizeWorkspaceType(spaceType);
|
|
24
24
|
if (isRecord(spaceType) && typeof spaceType.apiName === 'string') {
|
|
25
25
|
return normalizeWorkspaceType(spaceType.apiName);
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
if (spaceType === undefined && listedType !== undefined)
|
|
28
|
+
return listedType;
|
|
29
|
+
return normalizeWorkspaceType(spaceType);
|
|
28
30
|
}
|
|
29
31
|
export function normalizeWorkspaceType(value) {
|
|
30
32
|
if (typeof value === 'string') {
|
|
@@ -86,7 +88,11 @@ function hashExportSet(result) {
|
|
|
86
88
|
return `export-set:${createHash('sha256').update(JSON.stringify(result)).digest('hex')}`;
|
|
87
89
|
}
|
|
88
90
|
export async function preflightBulkWorkspaceExport(connection, outputDirectory, workspaceType, options = {}) {
|
|
89
|
-
const
|
|
91
|
+
const listedTypes = new Map();
|
|
92
|
+
const listed = await enumerateWorkspaces(connection, options, {}, {
|
|
93
|
+
collectWorkspaceType: true,
|
|
94
|
+
workspaceTypes: listedTypes,
|
|
95
|
+
});
|
|
90
96
|
const canonical = [];
|
|
91
97
|
const canonicalNames = new Map();
|
|
92
98
|
for (const summary of listed) {
|
|
@@ -100,7 +106,7 @@ export async function preflightBulkWorkspaceExport(connection, outputDirectory,
|
|
|
100
106
|
throw new Error(`Workspace names for IDs ${existingNameId} and ${summary.id} differ only by case or Unicode normalization and are ambiguous.`);
|
|
101
107
|
}
|
|
102
108
|
canonicalNames.set(nameKey, summary.id);
|
|
103
|
-
const type = actualWorkspaceType(workspace);
|
|
109
|
+
const type = actualWorkspaceType(workspace, listedTypes.get(summary.id));
|
|
104
110
|
if (workspaceType !== undefined && type !== workspaceType)
|
|
105
111
|
continue;
|
|
106
112
|
canonical.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-export-workspaces.js","sourceRoot":"","sources":["../../src/services/bulk-export-workspaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bulk-export-workspaces.js","sourceRoot":"","sources":["../../src/services/bulk-export-workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type CleanupOptions, type DirectoryPublishOptions } from './atomic-publish.js';
|
|
2
|
+
import { type EditableRawItem } from './editable-raw-html.js';
|
|
3
|
+
export type EditablePublishOptions = DirectoryPublishOptions & CleanupOptions;
|
|
4
|
+
/**
|
|
5
|
+
* Validate portable directory paths and reject observed symlink routes.
|
|
6
|
+
* @param {string} destination - Local directory path.
|
|
7
|
+
* @param {boolean} requireNew - Whether the final directory must not exist.
|
|
8
|
+
* @returns {Promise<void>} Resolves for a safe directory route.
|
|
9
|
+
*/
|
|
10
|
+
export declare function assertEditableDirectoryPath(destination: string, requireNew?: boolean): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Validate disjoint, new destinations without writes or org access.
|
|
13
|
+
* @param {string} outputDirectory - Explicit immutable package destination.
|
|
14
|
+
* @param {string} editableDirectory - Separate new companion destination.
|
|
15
|
+
* @returns {Promise<void>} Resolves when both local destinations are safe.
|
|
16
|
+
*/
|
|
17
|
+
export declare function preflightEditableExport(outputDirectory: string, editableDirectory: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Publish only the fixed companion paths from original raw variant JSON.
|
|
20
|
+
* @param {readonly EditableRawItem[]} rawItems - Verified original JSON paired with manifest IDs.
|
|
21
|
+
* @param {string} sourceManifestSha256 - Verified immutable manifest digest.
|
|
22
|
+
* @param {string} destination - New companion directory.
|
|
23
|
+
* @param {EditablePublishOptions} options - Atomic publication and cleanup hooks.
|
|
24
|
+
* @returns {Promise<void>} Resolves after no-clobber publication.
|
|
25
|
+
*/
|
|
26
|
+
export declare function writeEditableRawHtml(rawItems: readonly EditableRawItem[], sourceManifestSha256: string, destination: string, options?: EditablePublishOptions): Promise<void>;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { lstat, mkdir, mkdtemp, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { cleanupOwnedPath, publishDirectoryNoClobber, } from './atomic-publish.js';
|
|
4
|
+
import { projectEditableRawHtml } from './editable-raw-html.js';
|
|
5
|
+
/**
|
|
6
|
+
* Validate portable directory paths and reject observed symlink routes.
|
|
7
|
+
* @param {string} destination - Local directory path.
|
|
8
|
+
* @param {boolean} requireNew - Whether the final directory must not exist.
|
|
9
|
+
* @returns {Promise<void>} Resolves for a safe directory route.
|
|
10
|
+
*/
|
|
11
|
+
export async function assertEditableDirectoryPath(destination, requireNew = true) {
|
|
12
|
+
if (!destination.trim())
|
|
13
|
+
throw new TypeError('Editable export paths must be nonempty');
|
|
14
|
+
if (destination.startsWith('\\\\') || destination.startsWith('//')) {
|
|
15
|
+
throw new TypeError('Editable export paths must not use network or device namespaces');
|
|
16
|
+
}
|
|
17
|
+
// Reject path aliases before normalization, including Windows device/stream spellings.
|
|
18
|
+
for (const component of destination.slice(path.parse(destination).root.length).split(/[\\/]/u)) {
|
|
19
|
+
if (component === '' || component === '.')
|
|
20
|
+
continue;
|
|
21
|
+
if (component === '..' ||
|
|
22
|
+
/[. ]$/u.test(component) ||
|
|
23
|
+
/[<>:"|?*]/u.test(component) ||
|
|
24
|
+
[...component].some((character) => (character.codePointAt(0) ?? 0) < 32) ||
|
|
25
|
+
/^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/iu.test(component))
|
|
26
|
+
throw new TypeError('Unsafe editable export path component');
|
|
27
|
+
}
|
|
28
|
+
const absolute = path.resolve(destination);
|
|
29
|
+
let current = path.parse(absolute).root;
|
|
30
|
+
for (const component of absolute.slice(current.length).split(path.sep)) {
|
|
31
|
+
current = path.join(current, component);
|
|
32
|
+
let information;
|
|
33
|
+
try {
|
|
34
|
+
information = await lstat(current);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error.code === 'ENOENT')
|
|
38
|
+
continue;
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
if (information.isSymbolicLink() || !information.isDirectory()) {
|
|
42
|
+
throw new TypeError(`Export path must use regular directories, not symlinks or reparse points: ${current}`);
|
|
43
|
+
}
|
|
44
|
+
if (requireNew && current === absolute)
|
|
45
|
+
throw new Error(`Export destination already exists: ${destination}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Validate disjoint, new destinations without writes or org access.
|
|
50
|
+
* @param {string} outputDirectory - Explicit immutable package destination.
|
|
51
|
+
* @param {string} editableDirectory - Separate new companion destination.
|
|
52
|
+
* @returns {Promise<void>} Resolves when both local destinations are safe.
|
|
53
|
+
*/
|
|
54
|
+
export async function preflightEditableExport(outputDirectory, editableDirectory) {
|
|
55
|
+
const output = path.resolve(outputDirectory);
|
|
56
|
+
const editable = path.resolve(editableDirectory);
|
|
57
|
+
const contains = (parent, child) => {
|
|
58
|
+
const relative = path.relative(parent, child);
|
|
59
|
+
return (relative === '' ||
|
|
60
|
+
(!path.isAbsolute(relative) && relative !== '..' && !relative.startsWith(`..${path.sep}`)));
|
|
61
|
+
};
|
|
62
|
+
if (contains(output, editable) || contains(editable, output)) {
|
|
63
|
+
throw new TypeError('--output-dir and --editable-dir must not overlap');
|
|
64
|
+
}
|
|
65
|
+
await assertEditableDirectoryPath(outputDirectory);
|
|
66
|
+
await assertEditableDirectoryPath(editableDirectory);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Publish only the fixed companion paths from original raw variant JSON.
|
|
70
|
+
* @param {readonly EditableRawItem[]} rawItems - Verified original JSON paired with manifest IDs.
|
|
71
|
+
* @param {string} sourceManifestSha256 - Verified immutable manifest digest.
|
|
72
|
+
* @param {string} destination - New companion directory.
|
|
73
|
+
* @param {EditablePublishOptions} options - Atomic publication and cleanup hooks.
|
|
74
|
+
* @returns {Promise<void>} Resolves after no-clobber publication.
|
|
75
|
+
*/
|
|
76
|
+
export async function writeEditableRawHtml(rawItems, sourceManifestSha256, destination, options = {}) {
|
|
77
|
+
await assertEditableDirectoryPath(destination);
|
|
78
|
+
const projection = projectEditableRawHtml(rawItems, sourceManifestSha256);
|
|
79
|
+
const absolute = path.resolve(destination);
|
|
80
|
+
const parent = path.dirname(absolute);
|
|
81
|
+
await mkdir(parent, { recursive: true });
|
|
82
|
+
await assertEditableDirectoryPath(destination);
|
|
83
|
+
const temporary = await mkdtemp(path.join(parent, `.${path.basename(absolute)}.tmp-`));
|
|
84
|
+
try {
|
|
85
|
+
await mkdir(path.join(temporary, 'items'));
|
|
86
|
+
await writeFile(path.join(temporary, 'editable.json'), projection.descriptorBytes, {
|
|
87
|
+
flag: 'wx',
|
|
88
|
+
});
|
|
89
|
+
for (const item of projection.items) {
|
|
90
|
+
await writeFile(path.join(temporary, item.metadataPath), item.metadataBytes, { flag: 'wx' });
|
|
91
|
+
await writeFile(path.join(temporary, item.htmlPath), item.htmlBytes, { flag: 'wx' });
|
|
92
|
+
}
|
|
93
|
+
await assertEditableDirectoryPath(destination);
|
|
94
|
+
await publishDirectoryNoClobber(temporary, absolute, options);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
await cleanupOwnedPath(temporary, error, options);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=editable-raw-html-export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editable-raw-html-export.js","sourceRoot":"","sources":["../../src/services/editable-raw-html-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type LoadedWorkspaceExport, type WorkspaceImportItem } from './import-workspace.js';
|
|
2
|
+
export type EditableHtmlEvidence = {
|
|
3
|
+
readonly contract: 'sf-cms-editable-raw-html';
|
|
4
|
+
readonly sourceManifestSha256: string;
|
|
5
|
+
readonly entries: readonly {
|
|
6
|
+
readonly variantId: string;
|
|
7
|
+
readonly originalHtmlSha256: string;
|
|
8
|
+
readonly currentHtmlSha256: string;
|
|
9
|
+
readonly changed: boolean;
|
|
10
|
+
}[];
|
|
11
|
+
};
|
|
12
|
+
export type LoadedEditableRawHtml = {
|
|
13
|
+
readonly items: readonly WorkspaceImportItem[];
|
|
14
|
+
readonly literalHtmlVariantIds: ReadonlySet<string>;
|
|
15
|
+
readonly editableSource: EditableHtmlEvidence;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Reverify the complete original export and reconstruct only declared literal HTML sidecars.
|
|
19
|
+
* Metadata and descriptor expectations always come from original raw JSON, not editable hashes.
|
|
20
|
+
* @param {LoadedWorkspaceExport} source - Complete original integrity-loaded package (not a selected/proposed view).
|
|
21
|
+
* @param {string} editableDirectory - Separate companion directory.
|
|
22
|
+
* @param {readonly string[]} selectedVariantIds - Selected original variants; defaults to the complete editable subset.
|
|
23
|
+
* @returns {Promise<LoadedEditableRawHtml>} Detached selected items, literal-input provenance, and all-companion edit inventory.
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadEditableRawHtml(source: LoadedWorkspaceExport, editableDirectory: string, selectedVariantIds?: readonly string[]): Promise<LoadedEditableRawHtml>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
4
|
+
import { assertEditableDirectoryPath } from './editable-raw-html-export.js';
|
|
5
|
+
import { projectEditableRawHtml } from './editable-raw-html.js';
|
|
6
|
+
import { enumeratePackageFiles, loadWorkspaceExport, readStableRegularFile, } from './import-workspace.js';
|
|
7
|
+
function sha256(bytes) {
|
|
8
|
+
return createHash('sha256').update(bytes).digest('hex');
|
|
9
|
+
}
|
|
10
|
+
function utf8(bytes, label) {
|
|
11
|
+
if (bytes.subarray(0, 3).equals(Buffer.from('\uFEFF', 'utf8'))) {
|
|
12
|
+
throw new TypeError(`${label} must be UTF-8 without a BOM`);
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
return new TextDecoder('utf-8', { fatal: true }).decode(bytes);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
throw new TypeError(`${label} must contain valid UTF-8`, { cause: error });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Reverify the complete original export and reconstruct only declared literal HTML sidecars.
|
|
23
|
+
* Metadata and descriptor expectations always come from original raw JSON, not editable hashes.
|
|
24
|
+
* @param {LoadedWorkspaceExport} source - Complete original integrity-loaded package (not a selected/proposed view).
|
|
25
|
+
* @param {string} editableDirectory - Separate companion directory.
|
|
26
|
+
* @param {readonly string[]} selectedVariantIds - Selected original variants; defaults to the complete editable subset.
|
|
27
|
+
* @returns {Promise<LoadedEditableRawHtml>} Detached selected items, literal-input provenance, and all-companion edit inventory.
|
|
28
|
+
*/
|
|
29
|
+
export async function loadEditableRawHtml(source, editableDirectory, selectedVariantIds) {
|
|
30
|
+
if (!source.integrity.verified)
|
|
31
|
+
throw new TypeError('Source integrity must be verified first');
|
|
32
|
+
await assertEditableDirectoryPath(source.sourceDirectory, false);
|
|
33
|
+
// Recheck all baseline files, including unselected items, before reading any editable input.
|
|
34
|
+
const baseline = await loadWorkspaceExport(source.sourceDirectory, {
|
|
35
|
+
allowPartial: source.isPartial,
|
|
36
|
+
});
|
|
37
|
+
if (baseline.manifestSha256 !== source.manifestSha256) {
|
|
38
|
+
throw new TypeError('Original source manifest changed since integrity loading');
|
|
39
|
+
}
|
|
40
|
+
const rawItems = [];
|
|
41
|
+
for (const entry of baseline.manifest.entries) {
|
|
42
|
+
const bytes = await readStableRegularFile(path.join(baseline.sourceDirectory, entry.file), `Original item ${entry.variantId}`);
|
|
43
|
+
const declared = baseline.manifest.items.find((item) => item.path === entry.file);
|
|
44
|
+
if (sha256(bytes) !== declared?.sha256) {
|
|
45
|
+
throw new TypeError(`Original item ${entry.variantId} failed SHA-256 verification`);
|
|
46
|
+
}
|
|
47
|
+
rawItems.push({
|
|
48
|
+
variantId: entry.variantId,
|
|
49
|
+
raw: JSON.parse(bytes.toString()),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const projection = projectEditableRawHtml(rawItems, baseline.manifestSha256);
|
|
53
|
+
await assertEditableDirectoryPath(editableDirectory, false);
|
|
54
|
+
const directory = path.resolve(editableDirectory);
|
|
55
|
+
const files = await enumeratePackageFiles(directory, directory);
|
|
56
|
+
const expectedFiles = [
|
|
57
|
+
'editable.json',
|
|
58
|
+
...projection.items.flatMap((item) => [item.metadataPath, item.htmlPath]),
|
|
59
|
+
].toSorted();
|
|
60
|
+
if (!isDeepStrictEqual(files, expectedFiles)) {
|
|
61
|
+
throw new TypeError('Editable companion contains missing, substituted, or unlisted regular files');
|
|
62
|
+
}
|
|
63
|
+
const descriptorBytes = await readStableRegularFile(path.join(directory, 'editable.json'), 'Editable descriptor');
|
|
64
|
+
const descriptor = JSON.parse(utf8(descriptorBytes, 'Editable descriptor'));
|
|
65
|
+
if (!isDeepStrictEqual(descriptor, projection.descriptor)) {
|
|
66
|
+
throw new TypeError('Editable descriptor does not match the verified original baseline');
|
|
67
|
+
}
|
|
68
|
+
const html = new Map();
|
|
69
|
+
const entries = [];
|
|
70
|
+
for (const item of projection.items) {
|
|
71
|
+
const metadata = await readStableRegularFile(path.join(directory, item.metadataPath), `Editable metadata ${item.variantId}`);
|
|
72
|
+
if (!metadata.equals(item.metadataBytes)) {
|
|
73
|
+
throw new TypeError(`Editable metadata ${item.variantId} differs from the original baseline; only HTML edits are supported`);
|
|
74
|
+
}
|
|
75
|
+
const bytes = await readStableRegularFile(path.join(directory, item.htmlPath), `Editable HTML ${item.variantId}`);
|
|
76
|
+
html.set(item.variantId, utf8(bytes, `Editable HTML ${item.variantId}`));
|
|
77
|
+
const originalHtmlSha256 = sha256(item.htmlBytes);
|
|
78
|
+
const currentHtmlSha256 = sha256(bytes);
|
|
79
|
+
entries.push({
|
|
80
|
+
variantId: item.variantId,
|
|
81
|
+
originalHtmlSha256,
|
|
82
|
+
currentHtmlSha256,
|
|
83
|
+
changed: currentHtmlSha256 !== originalHtmlSha256,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const selected = selectedVariantIds ?? projection.items.map((item) => item.variantId);
|
|
87
|
+
if (new Set(selected).size !== selected.length)
|
|
88
|
+
throw new TypeError('Duplicate selected editable variant');
|
|
89
|
+
const items = selected.map((id) => {
|
|
90
|
+
const original = baseline.items.find((item) => item.id === id);
|
|
91
|
+
const rawHtml = html.get(id);
|
|
92
|
+
if (!original || rawHtml === undefined)
|
|
93
|
+
throw new TypeError(`Selected variant ${id} is missing from the editable companion`);
|
|
94
|
+
const detached = structuredClone(original);
|
|
95
|
+
return { ...detached, contentBody: { ...detached.contentBody, rawHtml } };
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
items,
|
|
99
|
+
literalHtmlVariantIds: new Set(selected),
|
|
100
|
+
editableSource: {
|
|
101
|
+
contract: 'sf-cms-editable-raw-html',
|
|
102
|
+
sourceManifestSha256: baseline.manifestSha256,
|
|
103
|
+
entries,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=editable-raw-html-import.js.map
|