UNPKG

@salesforce/plugin-packaging

Version:

SF plugin that support Salesforce Packaging Platform

90 lines 4.23 kB
/* * Copyright 2026, Salesforce, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Messages } from '@salesforce/core/messages'; import { loglevel, orgApiVersionFlagWithDeprecations, requiredOrgFlagWithDeprecations, SfCommand, } from '@salesforce/sf-plugins-core'; import { SubscriberPackageVersion } from '@salesforce/packaging'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-packaging', 'package_installed_list'); export class PackageInstalledListCommand extends SfCommand { static summary = messages.getMessage('summary'); static examples = messages.getMessages('examples'); static deprecateAliases = true; static aliases = ['force:package:installed:list']; static flags = { loglevel, 'target-org': requiredOrgFlagWithDeprecations, 'api-version': orgApiVersionFlagWithDeprecations, }; async run() { const { flags } = await this.parse(PackageInstalledListCommand); const records = (await SubscriberPackageVersion.installedList(flags['target-org'].getConnection(flags['api-version']))).map((r) => { const transformed = transformRow(r); // Calculate Version Settings from the data already in the result if (r.SubscriberPackageVersion) { const isManaged = r.SubscriberPackageVersion.IsManaged; const package2ContainerOptions = r.SubscriberPackageVersion.Package2ContainerOptions; // Use namespace for 1GP managed packages. For 2GP managed packages use packageId. For anything else, // Version Settings is not applicable, so leave it empty. if (isManaged && !package2ContainerOptions) { transformed.VersionSettings = 'namespace'; } else if (package2ContainerOptions === 'Managed') { transformed.VersionSettings = 'packageId'; } else { transformed.VersionSettings = ''; } } else { transformed.VersionSettings = ''; } return transformed; }); this.table({ data: records, columns: [ { key: 'Id', name: 'ID' }, { key: 'SubscriberPackageId', name: 'Package ID' }, { key: 'SubscriberPackageName', name: 'Package Name' }, { key: 'SubscriberPackageNamespace', name: 'Namespace' }, { key: 'VersionSettings', name: 'Version Settings' }, { key: 'SubscriberPackageVersionId', name: 'Package Version ID' }, { key: 'SubscriberPackageVersionName', name: 'Version Name' }, { key: 'SubscriberPackageVersionNumber', name: 'Version' }, ], overflow: 'wrap', }); return records; } } const transformRow = (r) => ({ Id: r.Id, SubscriberPackageId: r.SubscriberPackageId, ...(r.SubscriberPackage ? { SubscriberPackageName: r.SubscriberPackage.Name, SubscriberPackageNamespace: r.SubscriberPackage.NamespacePrefix, } : {}), ...(r.SubscriberPackageVersion ? { SubscriberPackageVersionId: r.SubscriberPackageVersion.Id, SubscriberPackageVersionName: r.SubscriberPackageVersion.Name, SubscriberPackageVersionNumber: `${r.SubscriberPackageVersion.MajorVersion}.${r.SubscriberPackageVersion.MinorVersion}.${r.SubscriberPackageVersion.PatchVersion}.${r.SubscriberPackageVersion.BuildNumber}`, } : {}), }); //# sourceMappingURL=list.js.map