@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
- return `\t node_${nodeId} [label="${label}"]`;
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/packaging",
3
- "version": "4.11.0",
3
+ "version": "4.12.0",
4
4
  "description": "Packaging library for the Salesforce packaging platform",
5
5
  "main": "lib/exported",
6
6
  "types": "lib/exported.d.ts",