@salesforce/plugin-packaging
Version:
SF plugin that support Salesforce Packaging Platform
100 lines • 4.83 kB
JavaScript
/*
* Copyright 2025, 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 { Flags, orgApiVersionFlagWithDeprecations, SfCommand } from '@salesforce/sf-plugins-core';
import { Messages, Logger } from '@salesforce/core';
import { PackagePushUpgrade } from '@salesforce/packaging';
import { requiredHubFlag } from '../../../utils/hubFlag.js';
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
const messages = Messages.loadMessages('@salesforce/plugin-packaging', 'package_pushupgrade_list');
export class PackagePushRequestListCommand extends SfCommand {
static summary = messages.getMessage('summary');
static description = messages.getMessage('description');
static examples = messages.getMessages('examples');
static aliases = ['force:package:push-upgrade:list'];
static flags = {
'target-dev-hub': requiredHubFlag,
'api-version': orgApiVersionFlagWithDeprecations,
package: Flags.string({
char: 'p',
summary: messages.getMessage('flags.package.summary'),
required: true,
}),
'scheduled-last-days': Flags.integer({
char: 'l',
deprecateAliases: true,
aliases: ['scheduledlastdays'],
summary: messages.getMessage('flags.scheduled-last-days.summary'),
}),
status: Flags.custom({
options: ['Created', 'Cancelled', 'Pending', 'In Progress', 'Failed', 'Succeeded'],
})({
char: 's',
summary: messages.getMessage('flags.status.summary'),
}),
'show-push-migrations-only': Flags.boolean({
summary: messages.getMessage('flags.show-push-migrations-only.summary'),
}),
};
async run() {
const { flags } = await this.parse(PackagePushRequestListCommand);
const logger = await Logger.child(this.constructor.name);
const hubOrg = flags['target-dev-hub'];
const connection = hubOrg.getConnection(flags['api-version']);
const scheduledLastDays = flags['scheduled-last-days'];
if (scheduledLastDays !== undefined) {
if (isNaN(scheduledLastDays) || scheduledLastDays <= 0) {
throw new Error('Invalid value for --scheduled-last-days. It must be a positive integer.');
}
}
logger.debug(`Querying PackagePushRequest records from org ${hubOrg.getOrgId()}`);
const results = await PackagePushUpgrade.list(connection, {
packageId: flags.package,
status: flags.status,
scheduledLastDays,
isMigration: flags['show-push-migrations-only'],
});
if (results.length === 0) {
this.warn('No results found');
}
else {
const data = await Promise.all(results.map(async (record) => {
const packagePushRequestId = record?.Id;
const packagePushRequestOptions = { packagePushRequestId };
const totalNumOrgs = await PackagePushUpgrade.getTotalJobs(connection, packagePushRequestOptions);
const numOrgsUpgradedFail = await PackagePushUpgrade.getFailedJobs(connection, packagePushRequestOptions);
const numOrgsUpgradedSuccess = await PackagePushUpgrade.getSucceededJobs(connection, packagePushRequestOptions);
const pv = record?.PackageVersion;
const packageVersionNumber = pv?.MajorVersion != null && pv?.MinorVersion != null ? `${pv.MajorVersion}.${pv.MinorVersion}` : undefined;
return {
Id: record?.Id,
PackageVersionId: record?.PackageVersionId,
PackageVersionName: pv?.Name,
PackageVersionNumber: packageVersionNumber,
Status: record?.Status,
ScheduledStartTime: record?.ScheduledStartTime,
StartTime: record?.StartTime,
EndTime: record?.EndTime,
NumOrgsScheduled: totalNumOrgs,
NumOrgsUpgradedFail: numOrgsUpgradedFail,
NumOrgsUpgradedSuccess: numOrgsUpgradedSuccess,
};
}));
this.table({ data });
}
return results;
}
}
//# sourceMappingURL=list.js.map