sf-plugin-cms 0.3.0 → 0.4.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 +99 -14
- package/lib/command-base.d.ts +4 -0
- package/lib/command-base.js +34 -0
- package/lib/command-base.js.map +1 -1
- package/lib/commands/cms/export/workspace.d.ts +2 -1
- package/lib/commands/cms/export/workspace.js +31 -18
- package/lib/commands/cms/export/workspace.js.map +1 -1
- package/lib/commands/cms/import/workspace.d.ts +3 -1
- package/lib/commands/cms/import/workspace.js +43 -22
- package/lib/commands/cms/import/workspace.js.map +1 -1
- package/lib/commands/cms/info.d.ts +1 -1
- package/lib/commands/cms/info.js +11 -13
- package/lib/commands/cms/info.js.map +1 -1
- package/lib/runtime-version.d.ts +2 -0
- package/lib/runtime-version.js +18 -0
- package/lib/runtime-version.js.map +1 -0
- package/lib/services/atomic-publish.d.ts +15 -0
- package/lib/services/atomic-publish.js +109 -0
- package/lib/services/atomic-publish.js.map +1 -0
- package/lib/services/bulk-export-workspaces.js +12 -5
- 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/export-references.js +3 -1
- package/lib/services/export-references.js.map +1 -1
- package/lib/services/export-workspace.d.ts +8 -0
- package/lib/services/export-workspace.js +46 -15
- package/lib/services/export-workspace.js.map +1 -1
- 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 +39 -0
- package/lib/services/import-workspace.js +316 -20
- package/lib/services/import-workspace.js.map +1 -1
- 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/messages/cms.export.workspace.md +12 -2
- package/messages/cms.import.workspace.md +23 -3
- package/package.json +15 -5
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { Flags } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
2
3
|
import { assertWorkspaceImportResult, WORKSPACE_IMPORT_CONTRACT, } from '../../../contracts/workspace-import.js';
|
|
3
|
-
import {
|
|
4
|
-
import { executeWorkspaceImport, loadWorkspaceExport, } from '../../../services/import-workspace.js';
|
|
4
|
+
import { sanitizeDiagnostics, } from '../../../contracts/shared.js';
|
|
5
|
+
import { executeWorkspaceImport, loadWorkspaceExport, planNativeWorkspaceImport, } from '../../../services/import-workspace.js';
|
|
5
6
|
import { assertWorkspaceSelector, resolveWorkspace } from '../../../services/resolve-workspace.js';
|
|
6
7
|
import { apiVersionFlag, CmsCommand, targetOrgFlag } from '../../../command-base.js';
|
|
7
8
|
export default class ImportWorkspace extends CmsCommand {
|
|
8
9
|
static summary = 'Safely plan or apply a create-only import into a CMS workspace.';
|
|
9
|
-
static description = 'Validates the source workspace export locally
|
|
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.';
|
|
10
11
|
static examples = [
|
|
11
12
|
'<%= config.bin %> cms import workspace --target-org my-org --workspace-name "Destination" --source-dir ./cms/Source',
|
|
12
13
|
'<%= 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
|
+
'<%= 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
|
+
'<%= 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',
|
|
13
16
|
];
|
|
14
17
|
static flags = {
|
|
15
18
|
'target-org': targetOrgFlag,
|
|
@@ -26,9 +29,18 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
26
29
|
required: true,
|
|
27
30
|
summary: 'Source workspace export containing manifest.json and items/.',
|
|
28
31
|
}),
|
|
32
|
+
'editable-dir': Flags.directory({
|
|
33
|
+
exists: true,
|
|
34
|
+
dependsOn: ['native-copy-map'],
|
|
35
|
+
summary: 'Verified companion directory with editable native email/template raw HTML; original source package remains required.',
|
|
36
|
+
}),
|
|
37
|
+
'native-copy-map': Flags.file({
|
|
38
|
+
exists: true,
|
|
39
|
+
summary: 'JSON array selecting native raw-HTML parents: sourceContentKey, language, fresh apiName and urlName. Server generates keys; no updates or publication.',
|
|
40
|
+
}),
|
|
29
41
|
apply: Flags.boolean({
|
|
30
42
|
default: false,
|
|
31
|
-
summary: 'Create
|
|
43
|
+
summary: 'Create after local validation and bounded profile preflight; dry-run does not establish full conflict or apply readiness.',
|
|
32
44
|
}),
|
|
33
45
|
'allow-partial': Flags.boolean({
|
|
34
46
|
default: false,
|
|
@@ -44,7 +56,7 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
44
56
|
const { flags } = await this.parse(ImportWorkspace);
|
|
45
57
|
const requestedVersion = flags['contract-version'] ?? 1;
|
|
46
58
|
if (requestedVersion !== 1) {
|
|
47
|
-
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', null, [
|
|
59
|
+
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
|
|
48
60
|
{
|
|
49
61
|
code: 'UNSUPPORTED_CONTRACT_VERSION',
|
|
50
62
|
message: `Contract major ${requestedVersion} is unsupported; supported major is 1.`,
|
|
@@ -53,7 +65,7 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
53
65
|
]));
|
|
54
66
|
}
|
|
55
67
|
if (flags.apply && flags['report-dir'] === undefined) {
|
|
56
|
-
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', null, [
|
|
68
|
+
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
|
|
57
69
|
{
|
|
58
70
|
code: 'REPORT_DIRECTORY_REQUIRED',
|
|
59
71
|
message: '--report-dir is required when --apply is set.',
|
|
@@ -62,10 +74,17 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
62
74
|
]));
|
|
63
75
|
}
|
|
64
76
|
let source;
|
|
77
|
+
let nativeCopyMappings;
|
|
65
78
|
try {
|
|
79
|
+
if (flags['editable-dir'] !== undefined && flags['native-copy-map'] === undefined)
|
|
80
|
+
throw new TypeError('--editable-dir requires --native-copy-map');
|
|
66
81
|
source = await loadWorkspaceExport(flags['source-dir'], {
|
|
67
82
|
allowPartial: flags['allow-partial'],
|
|
68
83
|
});
|
|
84
|
+
if (flags['native-copy-map'] !== undefined) {
|
|
85
|
+
nativeCopyMappings = JSON.parse(await readFile(flags['native-copy-map'], 'utf8'));
|
|
86
|
+
await planNativeWorkspaceImport(source, nativeCopyMappings, flags['editable-dir']);
|
|
87
|
+
}
|
|
69
88
|
assertWorkspaceSelector({
|
|
70
89
|
workspaceId: flags['workspace-id'],
|
|
71
90
|
workspaceName: flags['workspace-name'],
|
|
@@ -74,7 +93,7 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
74
93
|
catch (error) {
|
|
75
94
|
const message = error instanceof Error ? error.message : String(error);
|
|
76
95
|
const packageVersionFailure = /manifest contract\/version is unsupported|schemaVersion\/mode is unsupported/u.test(message);
|
|
77
|
-
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', null, [
|
|
96
|
+
return this.finish(envelope('blocked', flags['api-version'], 'unresolved-org', this.pluginVersion, null, [
|
|
78
97
|
{
|
|
79
98
|
code: packageVersionFailure
|
|
80
99
|
? 'UNSUPPORTED_PACKAGE_VERSION'
|
|
@@ -97,18 +116,20 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
97
116
|
destinationWorkspace: selected.workspace,
|
|
98
117
|
dryRun: !flags.apply,
|
|
99
118
|
loadedSource: source,
|
|
119
|
+
editableDirectory: flags['editable-dir'],
|
|
120
|
+
nativeCopyMappings,
|
|
100
121
|
reportDirectory: flags['report-dir'],
|
|
101
122
|
sourceDirectory: flags['source-dir'],
|
|
102
123
|
workspaceId: selected.id,
|
|
103
124
|
});
|
|
104
125
|
const status = source.isPartial ? 'partial' : 'success';
|
|
105
|
-
const result = envelope(status, flags['api-version'], orgId, execution.contractResult, []);
|
|
126
|
+
const result = envelope(status, flags['api-version'], orgId, this.pluginVersion, execution.contractResult, [], execution.diagnostics);
|
|
106
127
|
if (!this.jsonEnabled())
|
|
107
128
|
this.showPlan(execution, result);
|
|
108
129
|
return this.finish(result);
|
|
109
130
|
}
|
|
110
131
|
catch (error) {
|
|
111
|
-
return this.finish(envelope('failed', flags['api-version'], orgId, null, [
|
|
132
|
+
return this.finish(envelope('failed', flags['api-version'], orgId, this.pluginVersion, null, [
|
|
112
133
|
{
|
|
113
134
|
code: 'IMPORT_FAILED',
|
|
114
135
|
message: error instanceof Error ? error.message : String(error),
|
|
@@ -118,14 +139,7 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
118
139
|
}
|
|
119
140
|
}
|
|
120
141
|
finish(result) {
|
|
121
|
-
|
|
122
|
-
if (result.status === 'success')
|
|
123
|
-
process.exitCode = 0;
|
|
124
|
-
else if (result.status === 'partial')
|
|
125
|
-
process.exitCode = 2;
|
|
126
|
-
else
|
|
127
|
-
process.exitCode = 1;
|
|
128
|
-
return result;
|
|
142
|
+
return this.finishEnvelope(result, assertWorkspaceImportResult);
|
|
129
143
|
}
|
|
130
144
|
showPlan(execution, envelopeResult) {
|
|
131
145
|
const primaryCount = execution.plan.groups.length;
|
|
@@ -138,28 +152,35 @@ export default class ImportWorkspace extends CmsCommand {
|
|
|
138
152
|
this.log(`Resolved mappings: ${execution.contractResult.mappings.length}`);
|
|
139
153
|
this.log(`Explicit unresolved/unsupported references: ${execution.contractResult.references.length}`);
|
|
140
154
|
if (execution.dryRun) {
|
|
141
|
-
this.log('No content was created.
|
|
155
|
+
this.log('No content was created. This proposal does not establish deploy readiness.');
|
|
156
|
+
for (const diagnostic of execution.diagnostics)
|
|
157
|
+
this.log(diagnostic.message);
|
|
142
158
|
}
|
|
143
159
|
else {
|
|
144
160
|
this.log(`Run report: ${execution.reportFile ?? ''}`);
|
|
161
|
+
for (const diagnostic of execution.diagnostics)
|
|
162
|
+
this.log(diagnostic.message);
|
|
145
163
|
}
|
|
146
164
|
}
|
|
147
165
|
}
|
|
148
|
-
function envelope(status, apiVersion, orgId, result, errors) {
|
|
166
|
+
function envelope(status, apiVersion, orgId, pluginVersion, result, errors, warnings = []) {
|
|
149
167
|
return {
|
|
150
168
|
contract: WORKSPACE_IMPORT_CONTRACT,
|
|
151
169
|
contractVersion: '1.0.0',
|
|
152
170
|
status,
|
|
153
171
|
metadata: {
|
|
154
172
|
operation: 'workspace.import',
|
|
155
|
-
plugin: { name: 'sf-plugin-cms', version:
|
|
173
|
+
plugin: { name: 'sf-plugin-cms', version: pluginVersion },
|
|
156
174
|
apiVersion,
|
|
157
175
|
},
|
|
158
|
-
diagnostics: {
|
|
176
|
+
diagnostics: {
|
|
177
|
+
warnings: sanitizeDiagnostics(warnings, 'diagnostics.warnings'),
|
|
178
|
+
errors: sanitizeDiagnostics(errors, 'diagnostics.errors'),
|
|
179
|
+
},
|
|
159
180
|
provenance: {
|
|
160
181
|
producer: 'sf-plugin-cms',
|
|
161
182
|
sourceOrgId: orgId,
|
|
162
|
-
pluginVersion
|
|
183
|
+
pluginVersion,
|
|
163
184
|
command: 'sf cms import workspace',
|
|
164
185
|
generatedAt: new Date().toISOString(),
|
|
165
186
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/commands/cms/import/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../src/commands/cms/import/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CmsInfoResult } from '../../contracts/info.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { CmsEnvelope } from '../../contracts/shared.js';
|
|
3
3
|
import { CmsCommand } from '../../command-base.js';
|
|
4
4
|
/** Reports the offline CMS CLI contract and capability envelope. */
|
|
5
5
|
export default class Info extends CmsCommand<CmsEnvelope<CmsInfoResult>> {
|
package/lib/commands/cms/info.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Flags } from '@salesforce/sf-plugins-core';
|
|
2
2
|
import { assertCmsInfoResult, CMS_INFO_CONTRACT, } from '../../contracts/info.js';
|
|
3
|
-
import { assertCmsEnvelope } from '../../contracts/shared.js';
|
|
4
3
|
import { CmsCommand } from '../../command-base.js';
|
|
5
|
-
const PLUGIN_VERSION = '0.3.0';
|
|
6
4
|
/** Reports the offline CMS CLI contract and capability envelope. */
|
|
7
5
|
export default class Info extends CmsCommand {
|
|
8
6
|
static summary = 'Show offline CMS contract and capability information.';
|
|
@@ -22,34 +20,34 @@ export default class Info extends CmsCommand {
|
|
|
22
20
|
async run() {
|
|
23
21
|
const { flags } = await this.parse(Info);
|
|
24
22
|
const requestedVersion = flags['contract-version'] ?? 1;
|
|
25
|
-
const result = requestedVersion === 1
|
|
26
|
-
|
|
23
|
+
const result = requestedVersion === 1
|
|
24
|
+
? successEnvelope(this.pluginVersion)
|
|
25
|
+
: blockedEnvelope(requestedVersion, this.pluginVersion);
|
|
27
26
|
if (!this.jsonEnabled())
|
|
28
27
|
this.styledJSON(result);
|
|
29
|
-
|
|
30
|
-
return result;
|
|
28
|
+
return this.finishEnvelope(result, assertCmsInfoResult);
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
|
-
function successEnvelope() {
|
|
31
|
+
function successEnvelope(pluginVersion) {
|
|
34
32
|
return {
|
|
35
33
|
contract: CMS_INFO_CONTRACT,
|
|
36
34
|
contractVersion: '1.0.0',
|
|
37
35
|
status: 'success',
|
|
38
36
|
metadata: {
|
|
39
37
|
operation: 'cms.info',
|
|
40
|
-
plugin: { name: 'sf-plugin-cms', version:
|
|
38
|
+
plugin: { name: 'sf-plugin-cms', version: pluginVersion },
|
|
41
39
|
apiVersion: null,
|
|
42
40
|
},
|
|
43
41
|
diagnostics: { warnings: [], errors: [] },
|
|
44
42
|
provenance: {
|
|
45
43
|
producer: 'sf-plugin-cms',
|
|
46
44
|
sourceOrgId: 'offline',
|
|
47
|
-
pluginVersion
|
|
45
|
+
pluginVersion,
|
|
48
46
|
command: 'sf cms info',
|
|
49
47
|
generatedAt: new Date().toISOString(),
|
|
50
48
|
},
|
|
51
49
|
result: {
|
|
52
|
-
plugin: { name: 'sf-plugin-cms', version:
|
|
50
|
+
plugin: { name: 'sf-plugin-cms', version: pluginVersion },
|
|
53
51
|
api: { defaultVersion: '67.0', testedVersions: ['67.0'] },
|
|
54
52
|
contracts: {
|
|
55
53
|
commandResults: {
|
|
@@ -95,14 +93,14 @@ function successEnvelope() {
|
|
|
95
93
|
},
|
|
96
94
|
};
|
|
97
95
|
}
|
|
98
|
-
function blockedEnvelope(requestedVersion) {
|
|
96
|
+
function blockedEnvelope(requestedVersion, pluginVersion) {
|
|
99
97
|
return {
|
|
100
98
|
contract: CMS_INFO_CONTRACT,
|
|
101
99
|
contractVersion: '1.0.0',
|
|
102
100
|
status: 'blocked',
|
|
103
101
|
metadata: {
|
|
104
102
|
operation: 'cms.info',
|
|
105
|
-
plugin: { name: 'sf-plugin-cms', version:
|
|
103
|
+
plugin: { name: 'sf-plugin-cms', version: pluginVersion },
|
|
106
104
|
apiVersion: null,
|
|
107
105
|
},
|
|
108
106
|
diagnostics: {
|
|
@@ -118,7 +116,7 @@ function blockedEnvelope(requestedVersion) {
|
|
|
118
116
|
provenance: {
|
|
119
117
|
producer: 'sf-plugin-cms',
|
|
120
118
|
sourceOrgId: 'offline',
|
|
121
|
-
pluginVersion
|
|
119
|
+
pluginVersion,
|
|
122
120
|
command: 'sf cms info',
|
|
123
121
|
generatedAt: new Date().toISOString(),
|
|
124
122
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/cms/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/cms/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
const PLUGIN_NAME = 'sf-plugin-cms';
|
|
3
|
+
let packageVersion;
|
|
4
|
+
export function getPluginVersion(config) {
|
|
5
|
+
const configuredVersion = config?.plugins.get(PLUGIN_NAME)?.version;
|
|
6
|
+
if (configuredVersion !== undefined && configuredVersion.length > 0)
|
|
7
|
+
return configuredVersion;
|
|
8
|
+
packageVersion ??= readPackageVersion();
|
|
9
|
+
return packageVersion;
|
|
10
|
+
}
|
|
11
|
+
function readPackageVersion() {
|
|
12
|
+
const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
13
|
+
if (packageJson.name !== PLUGIN_NAME || typeof packageJson.version !== 'string') {
|
|
14
|
+
throw new Error(`${PLUGIN_NAME} runtime package metadata is invalid.`);
|
|
15
|
+
}
|
|
16
|
+
return packageJson.version;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=runtime-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-version.js","sourceRoot":"","sources":["../src/runtime-version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,IAAI,cAAkC,CAAC;AAEvC,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,MAAM,iBAAiB,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACpE,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAE9F,cAAc,KAAK,kBAAkB,EAAE,CAAC;IACxC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CACzB,CAAC;IAC3C,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,uCAAuC,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { rename, rm } from 'node:fs/promises';
|
|
2
|
+
export type AtomicPublishOptions = {
|
|
3
|
+
readonly delay?: (milliseconds: number) => Promise<void>;
|
|
4
|
+
readonly platform?: NodeJS.Platform;
|
|
5
|
+
readonly renamePath?: typeof rename;
|
|
6
|
+
};
|
|
7
|
+
export type CleanupOptions = {
|
|
8
|
+
readonly removePath?: typeof rm;
|
|
9
|
+
};
|
|
10
|
+
export type DirectoryPublishOptions = AtomicPublishOptions & {
|
|
11
|
+
readonly publishPath?: (temporary: string, destination: string) => Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export declare function replaceFileByAtomicRename(temporary: string, destination: string, options?: AtomicPublishOptions): Promise<void>;
|
|
14
|
+
export declare function publishDirectoryNoClobber(temporary: string, destination: string, options?: DirectoryPublishOptions): Promise<void>;
|
|
15
|
+
export declare function cleanupOwnedPath(ownedPath: string, primaryError: unknown, options?: CleanupOptions): Promise<never>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { open, rename, rm } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
const windowsRenameRetryDelays = [10, 25, 50];
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const runtimeReport = process.report.getReport();
|
|
7
|
+
const linuxLibc = runtimeReport.header?.glibcVersionRuntime === undefined ? 'musl' : 'gnu';
|
|
8
|
+
const nativeNoReplacePackages = {
|
|
9
|
+
darwin: {
|
|
10
|
+
arm64: '@skill-steward/rename-noreplace-darwin-arm64',
|
|
11
|
+
x64: '@skill-steward/rename-noreplace-darwin-x64',
|
|
12
|
+
},
|
|
13
|
+
linux: {
|
|
14
|
+
arm64: `@skill-steward/rename-noreplace-linux-arm64-${linuxLibc}`,
|
|
15
|
+
x64: `@skill-steward/rename-noreplace-linux-x64-${linuxLibc}`,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
function errorCode(error) {
|
|
19
|
+
return typeof error === 'object' &&
|
|
20
|
+
error !== null &&
|
|
21
|
+
'code' in error &&
|
|
22
|
+
typeof error.code === 'string'
|
|
23
|
+
? error.code
|
|
24
|
+
: undefined;
|
|
25
|
+
}
|
|
26
|
+
function delay(milliseconds) {
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
setTimeout(resolve, milliseconds);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async function renameWithNarrowWindowsRetry(temporary, destination, options) {
|
|
32
|
+
const renamePath = options.renamePath ?? rename;
|
|
33
|
+
const wait = options.delay ?? delay;
|
|
34
|
+
for (let attempt = 0;; attempt += 1) {
|
|
35
|
+
try {
|
|
36
|
+
await renamePath(temporary, destination);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const retryDelay = windowsRenameRetryDelays[attempt];
|
|
41
|
+
const code = errorCode(error);
|
|
42
|
+
if ((options.platform ?? process.platform) !== 'win32' ||
|
|
43
|
+
(code !== 'EPERM' && code !== 'EBUSY') ||
|
|
44
|
+
retryDelay === undefined) {
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
await wait(retryDelay);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export async function replaceFileByAtomicRename(temporary, destination, options = {}) {
|
|
52
|
+
await renameWithNarrowWindowsRetry(temporary, destination, options);
|
|
53
|
+
}
|
|
54
|
+
function nativeDirectoryPublisher() {
|
|
55
|
+
if (process.platform === 'win32')
|
|
56
|
+
return rename;
|
|
57
|
+
const packageName = nativeNoReplacePackages[process.platform]?.[process.arch];
|
|
58
|
+
if (packageName === undefined) {
|
|
59
|
+
throw new Error(`Atomic no-clobber directory publication is unsupported on ${process.platform}/${process.arch}`);
|
|
60
|
+
}
|
|
61
|
+
const binding = require(packageName);
|
|
62
|
+
const renameNoReplace = typeof binding === 'function' ? binding : binding.renameNoReplace;
|
|
63
|
+
if (renameNoReplace === undefined) {
|
|
64
|
+
throw new TypeError(`${packageName} does not export renameNoReplace`);
|
|
65
|
+
}
|
|
66
|
+
return async (temporary, destination) => {
|
|
67
|
+
const parent = path.dirname(temporary);
|
|
68
|
+
if (path.dirname(destination) !== parent) {
|
|
69
|
+
throw new Error('Atomic no-clobber publication requires sibling paths');
|
|
70
|
+
}
|
|
71
|
+
const directory = await open(parent, 'r');
|
|
72
|
+
try {
|
|
73
|
+
renameNoReplace(directory.fd, path.basename(temporary), path.basename(destination));
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await directory.close();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export async function publishDirectoryNoClobber(temporary, destination, options = {}) {
|
|
81
|
+
const publishPath = options.publishPath ?? options.renamePath ?? nativeDirectoryPublisher();
|
|
82
|
+
await renameWithNarrowWindowsRetry(temporary, destination, {
|
|
83
|
+
...options,
|
|
84
|
+
renamePath: publishPath,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export async function cleanupOwnedPath(ownedPath, primaryError, options = {}) {
|
|
88
|
+
try {
|
|
89
|
+
await (options.removePath ?? rm)(ownedPath, { force: true, recursive: true });
|
|
90
|
+
}
|
|
91
|
+
catch (cleanupError) {
|
|
92
|
+
try {
|
|
93
|
+
if (typeof primaryError === 'object' &&
|
|
94
|
+
primaryError !== null &&
|
|
95
|
+
Object.isExtensible(primaryError)) {
|
|
96
|
+
Object.defineProperty(primaryError, 'cleanupError', {
|
|
97
|
+
configurable: true,
|
|
98
|
+
enumerable: false,
|
|
99
|
+
value: cleanupError,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// Preserve the primary publication error even when diagnostics cannot be attached.
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
throw primaryError;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=atomic-publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomic-publish.js","sourceRoot":"","sources":["../../src/services/atomic-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { mkdir, stat } from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { assertCmsEnvelope, MAX_DIAGNOSTICS_PER_KIND, sanitizeDiagnostics, } from '../contracts/shared.js';
|
|
5
5
|
import { assertWorkspaceExportSetResult, WORKSPACE_EXPORT_MANIFEST_CONTRACT, WORKSPACE_EXPORT_SET_CONTRACT, } from '../contracts/workspace-export.js';
|
|
6
|
+
import { getPluginVersion } from '../runtime-version.js';
|
|
6
7
|
import { redactSecrets } from '../transport/redact-secrets.js';
|
|
7
8
|
import { exportWorkspace, safeWorkspaceDirectoryName } from './export-workspace.js';
|
|
8
9
|
import { getWorkspace } from './read.js';
|
|
@@ -16,14 +17,16 @@ function nonemptyString(value) {
|
|
|
16
17
|
function folded(value) {
|
|
17
18
|
return value.normalize('NFKC').toLocaleLowerCase('en-US');
|
|
18
19
|
}
|
|
19
|
-
function actualWorkspaceType(workspace) {
|
|
20
|
+
function actualWorkspaceType(workspace, listedType) {
|
|
20
21
|
const spaceType = workspace.spaceType;
|
|
21
22
|
if (typeof spaceType === 'string')
|
|
22
23
|
return normalizeWorkspaceType(spaceType);
|
|
23
24
|
if (isRecord(spaceType) && typeof spaceType.apiName === 'string') {
|
|
24
25
|
return normalizeWorkspaceType(spaceType.apiName);
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
if (spaceType === undefined && listedType !== undefined)
|
|
28
|
+
return listedType;
|
|
29
|
+
return normalizeWorkspaceType(spaceType);
|
|
27
30
|
}
|
|
28
31
|
export function normalizeWorkspaceType(value) {
|
|
29
32
|
if (typeof value === 'string') {
|
|
@@ -85,7 +88,11 @@ function hashExportSet(result) {
|
|
|
85
88
|
return `export-set:${createHash('sha256').update(JSON.stringify(result)).digest('hex')}`;
|
|
86
89
|
}
|
|
87
90
|
export async function preflightBulkWorkspaceExport(connection, outputDirectory, workspaceType, options = {}) {
|
|
88
|
-
const
|
|
91
|
+
const listedTypes = new Map();
|
|
92
|
+
const listed = await enumerateWorkspaces(connection, options, {}, {
|
|
93
|
+
collectWorkspaceType: true,
|
|
94
|
+
workspaceTypes: listedTypes,
|
|
95
|
+
});
|
|
89
96
|
const canonical = [];
|
|
90
97
|
const canonicalNames = new Map();
|
|
91
98
|
for (const summary of listed) {
|
|
@@ -99,7 +106,7 @@ export async function preflightBulkWorkspaceExport(connection, outputDirectory,
|
|
|
99
106
|
throw new Error(`Workspace names for IDs ${existingNameId} and ${summary.id} differ only by case or Unicode normalization and are ambiguous.`);
|
|
100
107
|
}
|
|
101
108
|
canonicalNames.set(nameKey, summary.id);
|
|
102
|
-
const type = actualWorkspaceType(workspace);
|
|
109
|
+
const type = actualWorkspaceType(workspace, listedTypes.get(summary.id));
|
|
103
110
|
if (workspaceType !== undefined && type !== workspaceType)
|
|
104
111
|
continue;
|
|
105
112
|
canonical.push({
|
|
@@ -127,7 +134,7 @@ export async function preflightBulkWorkspaceExport(connection, outputDirectory,
|
|
|
127
134
|
}
|
|
128
135
|
export async function exportAllWorkspaces(connection, outputDirectory, workspaceType, options = {}) {
|
|
129
136
|
const generatedAt = options.generatedAt ?? new Date().toISOString();
|
|
130
|
-
const pluginVersion = options.pluginVersion ??
|
|
137
|
+
const pluginVersion = options.pluginVersion ?? getPluginVersion();
|
|
131
138
|
const sourceOrgId = options.sourceOrgId ?? 'unknown-org';
|
|
132
139
|
const preflight = await preflightBulkWorkspaceExport(connection, outputDirectory, workspaceType, options);
|
|
133
140
|
if (preflight.selected.length > 0)
|
|
@@ -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>;
|