Skip to content

Commit 2befb80

Browse files
Merge pull request #764 from forcedotcom/t/managed-packaging/W-17561980/display-dependency-graph-3
W-17561980 Verified GPG Signing Outputs DOT Code for DisplayDependencies Command
2 parents 8ba8a97 + fe10bd2 commit 2befb80

7 files changed

Lines changed: 1049 additions & 223 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# invalidPackageVersionIdError
2+
3+
Can't display package dependencies. The package version ID %s you specified is invalid. Review the package version ID and then retry this command.
4+
5+
# transitiveDependenciesRequiredError
6+
7+
Can't display package dependencies. To display package dependencies, you must first add the calculateTransitiveDependencies parameter to the sfdx-project.json file, and set the value to "true". Next, create a new package version and then run this command using the 04t ID for the new package version.
8+
9+
# invalidDependencyGraphError
10+
11+
Can't display package dependencies. There's an issue generating the dependency graph. Before retrying this command, make sure you added the calculateTransitiveDependencies parameter to the sfdx-project.json file and set the value to "true". After setting the attribute and before retrying this command, you must create a new package version.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
],
4444
"dependencies": {
4545
"@jsforce/jsforce-node": "^3.6.5",
46-
"@salesforce/core": "^8.15.0",
46+
"@salesforce/core": "^8.18.5",
4747
"@salesforce/kit": "^3.2.3",
4848
"@salesforce/schemas": "^1.9.1",
4949
"@salesforce/source-deploy-retrieve": "^12.16.9",

src/interfaces/packagingInterfacesAndType.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { ConvertResult } from '@salesforce/source-deploy-retrieve';
1515
import type { Package } from '@salesforce/types/metadata';
1616
import { PackageProfileApi } from '../package/packageProfileApi';
1717
import { PackageAncestryNode } from '../package/packageAncestry';
18+
import { VersionNumber } from '../package/versionNumber';
1819
import { PackagingSObjects } from './packagingSObjects';
1920
import Package2VersionStatus = PackagingSObjects.Package2VersionStatus;
2021
import PackageInstallRequest = PackagingSObjects.PackageInstallRequest;
@@ -500,6 +501,31 @@ export type AncestryRepresentationProducer = {
500501
produce(): PackageAncestryNodeData | string | void;
501502
};
502503

504+
export type PackageVersionDependencyOptions = {
505+
packageVersionId: string;
506+
project?: SfProject;
507+
connection: Connection;
508+
verbose?: boolean;
509+
edgeDirection?: 'root-first' | 'root-last';
510+
};
511+
512+
export type DependencyGraphData = {
513+
creator: string;
514+
nodes: DependencyGraphNode[];
515+
edges: DependencyGraphEdge[];
516+
};
517+
518+
export type DependencyGraphNode = {
519+
subscriberPackageVersionId: string;
520+
packageName: string;
521+
version: VersionNumber;
522+
};
523+
524+
export type DependencyGraphEdge = {
525+
source: string;
526+
target: string;
527+
};
528+
503529
export const PackageEvents = {
504530
convert: {
505531
success: 'Package/convert-success',

src/package/package.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { retrievePackageVersionMetadata } from './packageVersionRetrieve';
2727
import { listPackageVersions } from './packageVersionList';
2828
import { deletePackage } from './packageDelete';
2929
import { PackageAncestry } from './packageAncestry';
30+
import { PackageVersionDependency } from './packageVersionDependency';
3031

3132
const packagePrefixes = {
3233
PackageId: '0Ho',
@@ -177,6 +178,29 @@ export class Package {
177178
});
178179
}
179180

181+
/**
182+
* create a PackageVersionDependency instance
183+
*
184+
* @param packageVersionId to get version information for
185+
* @param project SfProject instance
186+
* @param connection Hub Org Connection
187+
* @param options flags for the command line
188+
*/
189+
public static async getDependencyGraph(
190+
packageVersionId: string,
191+
project: SfProject | undefined,
192+
connection: Connection,
193+
options?: { verbose?: boolean; edgeDirection?: 'root-first' | 'root-last' }
194+
): Promise<PackageVersionDependency> {
195+
return PackageVersionDependency.create({
196+
packageVersionId,
197+
project,
198+
connection,
199+
verbose: options?.verbose ?? false,
200+
edgeDirection: options?.edgeDirection ?? 'root-first',
201+
});
202+
}
203+
180204
/**
181205
* Convert a 1st generation package to a 2nd generation package.
182206
* See {@link ConvertPackageOptions} for conversion options.

0 commit comments

Comments
 (0)