npm package diff

Package: @forge/cli

Versions: 11.4.0-next.1-experimental-5364136 - 11.4.0-next.14

File: package/out/command-line/view/version-view.js

Index: package/out/command-line/view/version-view.js
===================================================================
--- package/out/command-line/view/version-view.js
+++ package/out/command-line/view/version-view.js
@@ -129,8 +129,20 @@
 exports.getDetailsTable = getDetailsTable;
 const getPropertySummary = (property) => {
     return property.map((item) => `${item.type}: ${item.count}`).join('\n');
 };
+const getRolloutStatus = (status) => {
+    switch (status) {
+        case 'COMPLETE':
+            return 'Completed';
+        case 'RUNNING':
+            return 'In progress';
+        case 'CANCELLED':
+            return 'Cancelled';
+        default:
+            return 'Unknown';
+    }
+};
 class VersionView {
     ui;
     constructor(ui) {
         this.ui = ui;
@@ -143,23 +155,39 @@
     }
     async displayListProgress(progress) {
         return this.ui.displayProgress(progress, cli_shared_1.Text.version.list.start, cli_shared_1.Text.version.list.end);
     }
+    async displayBulkUpgradeListProgress(progress) {
+        return this.ui.displayProgress(progress, cli_shared_1.Text.version.upgrade.list.start, cli_shared_1.Text.version.upgrade.list.end);
+    }
     async displaySingleSelectVersion(columns, versions, versionTablePrompt, versionTableOverview) {
         return await this.ui.promptForSingleChoiceTable(versionTablePrompt, versionTableOverview ?? '', columns, versions);
     }
     displayInfo(message) {
         this.ui.info(message);
     }
     displayAppVersionRolloutCreationSuccess(appRolloutVersionId) {
         this.ui.emptyLine();
-        this.ui.info(cli_shared_1.Text.version.upgrade.appVersionRolloutSuccess(appRolloutVersionId));
+        this.ui.info(cli_shared_1.Text.version.upgrade.start.appVersionRolloutSuccess(appRolloutVersionId));
     }
+    displayAppVersionRolloutCancelCreationSuccess(appRolloutId) {
+        this.ui.emptyLine();
+        this.ui.info(cli_shared_1.Text.version.upgrade.cancel.appVersionRolloutCancelSuccess(appRolloutId));
+    }
+    displayAppVersionRolloutCancelNotInProgress(environmentKey) {
+        this.ui.emptyLine();
+        this.ui.error(new Error(cli_shared_1.Text.version.upgrade.cancel.error.noUpdateInProgress(environmentKey)));
+    }
     async confirmAppVersionRolloutCreation(sourceVersionId, targetVersionId, installations) {
         this.ui.emptyLine();
-        this.ui.warn(cli_shared_1.Text.version.upgrade.warningMessage(sourceVersionId, targetVersionId, installations));
-        return this.ui.confirm(cli_shared_1.Text.version.upgrade.promptConfirmation);
+        this.ui.warn(cli_shared_1.Text.version.upgrade.start.warningMessage(sourceVersionId, targetVersionId, installations));
+        return this.ui.confirm(cli_shared_1.Text.version.upgrade.start.promptConfirmation);
     }
+    async confirmAppVersionRolloutCancel(appRolloutId, sourceVersionId, targetVersionId, installationComplete, totalInstallations) {
+        this.ui.emptyLine();
+        this.ui.warn(cli_shared_1.Text.version.upgrade.cancel.warningMessage(appRolloutId, sourceVersionId, targetVersionId, installationComplete, totalInstallations));
+        return this.ui.confirm(cli_shared_1.Text.version.upgrade.cancel.promptConfirmation);
+    }
     async promptVersionDetailsProperties() {
         const { options, properties: { descriptions, banner, info, headers } } = cli_shared_1.Text.version.check.details.prompt;
         const propsOptions = [
             {
@@ -260,11 +288,39 @@
         this.ui.emptyLine();
         this.ui.info(cli_shared_1.Text.version.list.details.banner(envKey, envType, versions));
         this.ui.emptyLine();
     }
+    displayBulkUpgradeListBanner(versions, envKey, envType) {
+        this.ui.emptyLine();
+        this.ui.info(cli_shared_1.Text.version.upgrade.list.details.banner(envKey, envType, versions));
+        this.ui.emptyLine();
+    }
     displayWriteToFile(outFile) {
         this.ui.info(cli_shared_1.Text.version.check.details.writeToFile(outFile));
     }
+    displayBulkUpgradeList(data) {
+        this.ui.table([
+            ['id', 'Upgrade ID'],
+            ['status', 'Status'],
+            ['createdAt', 'Started'],
+            ['completedAt', 'Completed'],
+            ['sourceVersionId', 'From version'],
+            ['targetVersionId', 'To version'],
+            ['completedCount', 'Completed'],
+            ['pendingCount', 'Pending'],
+            ['failedCount', 'Failed']
+        ], data.map(({ id, status, createdAt, completedAt, sourceVersionId, targetVersionId, completedUpgradeCount, pendingUpgradeCount, failedUpgradeCount }) => ({
+            id,
+            status: getRolloutStatus(status),
+            createdAt: createdAt,
+            completedAt: completedAt,
+            sourceVersionId,
+            targetVersionId,
+            completedCount: completedUpgradeCount.toString(),
+            pendingCount: pendingUpgradeCount.toString(),
+            failedCount: failedUpgradeCount.toString()
+        })));
+    }
     displayVersionList(data) {
         this.ui.table([
             ['version', 'Major Versions'],
             ['deploymentDate', 'Deployment Date'],