@salesforce/packaging 4.11.0 → 4.12.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.
|
@@ -39,10 +39,12 @@ export declare class DependencyDotProducer {
|
|
|
39
39
|
private subscriberPackageVersionId;
|
|
40
40
|
private connection;
|
|
41
41
|
private dependencyGraphData;
|
|
42
|
+
private selectedNodeIds;
|
|
42
43
|
constructor(connection: Connection, dependencyGraphString: string, verbose: boolean, edgeDirection: 'root-first' | 'root-last', resolvedPackageVersionId: string);
|
|
43
44
|
private static throwErrorOnInvalidRecord;
|
|
44
45
|
init(): Promise<void>;
|
|
45
46
|
produce(): string;
|
|
47
|
+
private addSelectedNodeIds;
|
|
46
48
|
private createDependencyGraphNodes;
|
|
47
49
|
/**
|
|
48
50
|
* Creates a single dependency graph node.
|
|
@@ -58,6 +60,7 @@ export declare class DependencyDotProducer {
|
|
|
58
60
|
* @param node the node id and label
|
|
59
61
|
*/
|
|
60
62
|
private buildDotNode;
|
|
63
|
+
private addColorToSelectedNode;
|
|
61
64
|
/**
|
|
62
65
|
* Builds a DOT edge line of the form fromNode -> toNode
|
|
63
66
|
*
|
|
@@ -141,6 +141,7 @@ class DependencyDotProducer {
|
|
|
141
141
|
subscriberPackageVersionId;
|
|
142
142
|
connection;
|
|
143
143
|
dependencyGraphData;
|
|
144
|
+
selectedNodeIds = [];
|
|
144
145
|
constructor(connection, dependencyGraphString, verbose, edgeDirection, resolvedPackageVersionId) {
|
|
145
146
|
this.verbose = verbose;
|
|
146
147
|
this.edgeDirection = edgeDirection;
|
|
@@ -161,6 +162,7 @@ class DependencyDotProducer {
|
|
|
161
162
|
nodes: await this.createDependencyGraphNodes(dependencyGraphJson.nodes),
|
|
162
163
|
edges: this.createDependencyGraphEdges(dependencyGraphJson.edges),
|
|
163
164
|
};
|
|
165
|
+
this.selectedNodeIds = await this.addSelectedNodeIds();
|
|
164
166
|
}
|
|
165
167
|
produce() {
|
|
166
168
|
const dotLines = [];
|
|
@@ -172,6 +174,36 @@ class DependencyDotProducer {
|
|
|
172
174
|
}
|
|
173
175
|
return `strict digraph G {${node_os_1.EOL}${dotLines.join(node_os_1.EOL)}${node_os_1.EOL}}`;
|
|
174
176
|
}
|
|
177
|
+
async addSelectedNodeIds() {
|
|
178
|
+
const selectedNodes = [];
|
|
179
|
+
if (this.subscriberPackageVersionId === exports.VERSION_BEING_BUILT) {
|
|
180
|
+
selectedNodes.push(this.subscriberPackageVersionId);
|
|
181
|
+
}
|
|
182
|
+
else if (this.subscriberPackageVersionId.startsWith('04t')) {
|
|
183
|
+
selectedNodes.push(this.subscriberPackageVersionId);
|
|
184
|
+
const query = `SELECT Dependencies FROM SubscriberPackageVersion WHERE Id = '${this.subscriberPackageVersionId}'`;
|
|
185
|
+
try {
|
|
186
|
+
const result = await this.connection.tooling.query(query);
|
|
187
|
+
if (result.records?.length !== 1) {
|
|
188
|
+
return selectedNodes;
|
|
189
|
+
}
|
|
190
|
+
const dependencies = result.records[0].Dependencies;
|
|
191
|
+
if (!dependencies) {
|
|
192
|
+
return selectedNodes;
|
|
193
|
+
}
|
|
194
|
+
if (dependencies.ids && Array.isArray(dependencies.ids)) {
|
|
195
|
+
const dependencyIds = dependencies.ids
|
|
196
|
+
.map((dep) => dep.subscriberPackageVersionId)
|
|
197
|
+
.filter((id) => id && typeof id === 'string' && id.startsWith('04t'));
|
|
198
|
+
selectedNodes.push(...dependencyIds);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
throw messages.createError('invalidPackageVersionIdError', [this.subscriberPackageVersionId]);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return selectedNodes;
|
|
206
|
+
}
|
|
175
207
|
async createDependencyGraphNodes(jsonNodes) {
|
|
176
208
|
const nodePromises = jsonNodes.map(async (node) => this.createSingleDependencyGraphNode(node.id));
|
|
177
209
|
const resolvedNodes = await Promise.all(nodePromises);
|
|
@@ -279,7 +311,14 @@ class DependencyDotProducer {
|
|
|
279
311
|
if (this.verbose) {
|
|
280
312
|
label += ` (${node.subscriberPackageVersionId})`;
|
|
281
313
|
}
|
|
282
|
-
|
|
314
|
+
const color = this.addColorToSelectedNode(node);
|
|
315
|
+
return `\t node_${nodeId} [label="${label}"${color}]`;
|
|
316
|
+
}
|
|
317
|
+
addColorToSelectedNode(node) {
|
|
318
|
+
if (this.selectedNodeIds.includes(node.subscriberPackageVersionId)) {
|
|
319
|
+
return ' color="green"';
|
|
320
|
+
}
|
|
321
|
+
return '';
|
|
283
322
|
}
|
|
284
323
|
/**
|
|
285
324
|
* Builds a DOT edge line of the form fromNode -> toNode
|