npm package diff

Package: @forge/cli

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

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

Index: package/out/command-line/controller/version-controller.js
===================================================================
--- package/out/command-line/controller/version-controller.js
+++ package/out/command-line/controller/version-controller.js
@@ -125,37 +125,80 @@
             const selectedSourceVersion = await this.getSelectedVersion(['Major version', 'Deployment date', 'Installations'], sourceVersions.map(({ version, deploymentDateTime, installations, id }) => ({
                 names: [version, deploymentDateTime, installations],
                 value: id,
                 primary: version
-            })), sourceVersions, cli_shared_1.Text.version.upgrade.promptVersionTable, cli_shared_1.Text.version.upgrade.overViewVersionTable(sourceVersions.length, environment));
+            })), sourceVersions, cli_shared_1.Text.version.upgrade.start.promptVersionTable, cli_shared_1.Text.version.upgrade.start.overViewVersionTable(sourceVersions.length, environment));
             const upgradableToVersions = await this.versionService.getUpgradableVersions(environment, selectedSourceVersion.id);
             if (upgradableToVersions.length == 0) {
-                this.view.displayInfo(cli_shared_1.Text.version.upgrade.error.noTargetVersionAvailable);
+                this.view.displayInfo(cli_shared_1.Text.version.upgrade.start.error.noTargetVersionAvailable);
                 return;
             }
             const selectedTargetVersion = await this.getSelectedVersion(['Major version', 'Deployment date'], upgradableToVersions.map(({ version, deploymentDateTime, id }) => ({
                 names: [version, deploymentDateTime],
                 value: id,
                 primary: version
-            })), upgradableToVersions, cli_shared_1.Text.version.upgrade.selectTargetVersionToUpgrade(selectedSourceVersion.installations));
-            const confirmCreate = await this.view.confirmAppVersionRolloutCreation(selectedSourceVersion.id, selectedTargetVersion.id, selectedSourceVersion.installations);
+            })), upgradableToVersions, cli_shared_1.Text.version.upgrade.start.selectTargetVersionToUpgrade(selectedSourceVersion.installations));
+            const confirmCreate = await this.view.confirmAppVersionRolloutCreation(selectedSourceVersion.version, selectedTargetVersion.version, selectedSourceVersion.installations);
             if (confirmCreate) {
-                appVersionUpgradeRolloutId = await this.versionService.createAppVersionUpgradeRollout(environment, selectedSourceVersion.id, selectedTargetVersion.id);
+                appVersionUpgradeRolloutId = await this.versionService.createAppVersionUpgradeRollout(environment, selectedSourceVersion.id, selectedTargetVersion.id, selectedSourceVersion.version, selectedTargetVersion.version);
             }
             else {
                 return;
             }
         }
         if (outFile) {
-            this.writeToFile(cli_shared_1.Text.version.upgrade.appVersionRolloutSuccess(appVersionUpgradeRolloutId), outFile);
+            this.writeToFile(cli_shared_1.Text.version.upgrade.start.appVersionRolloutSuccess(appVersionUpgradeRolloutId), outFile);
         }
         else if (json) {
-            this.displayInJson(cli_shared_1.Text.version.upgrade.appVersionRolloutSuccess(appVersionUpgradeRolloutId));
+            this.displayInJson(cli_shared_1.Text.version.upgrade.start.appVersionRolloutSuccess(appVersionUpgradeRolloutId));
         }
         else {
             this.view.displayAppVersionRolloutCreationSuccess(appVersionUpgradeRolloutId);
         }
     }
+    async listVersionUpgrades({ environment, json, outFile, nonInteractive }) {
+        const request = this.versionService.getAppVersionUpgradeRolloutsList(environment);
+        const versionUpgradeList = nonInteractive || json ? await request : await this.view.displayBulkUpgradeListProgress(() => request);
+        if (!nonInteractive && !json) {
+            this.view.displayBulkUpgradeListBanner(versionUpgradeList.length, environment, versionUpgradeList[0] ? versionUpgradeList[0].environmentType : undefined);
+        }
+        if (outFile) {
+            this.writeToFile(versionUpgradeList, outFile);
+        }
+        else if (json) {
+            this.displayInJson(versionUpgradeList);
+        }
+        else {
+            this.view.displayBulkUpgradeList(versionUpgradeList);
+        }
+    }
+    async cancelRolloutVersionUpgrade({ environment, json, outFile, appUpgradeId, nonInteractive }) {
+        const appVersionRollout = await this.versionService.getAppVersionRollout(appUpgradeId);
+        if (!appVersionRollout || appVersionRollout.status !== cli_shared_1.AppVersionRolloutStatus.Running) {
+            this.view.displayAppVersionRolloutCancelNotInProgress(environment);
+            return;
+        }
+        let confirmCancel = false;
+        if (!nonInteractive) {
+            confirmCancel = await this.view.confirmAppVersionRolloutCancel(appUpgradeId, appVersionRollout.sourceVersionId, appVersionRollout.targetVersionId, appVersionRollout.completedUpgradeCount, appVersionRollout.completedUpgradeCount +
+                appVersionRollout.failedUpgradeCount +
+                appVersionRollout.pendingUpgradeCount);
+        }
+        if (nonInteractive || confirmCancel) {
+            const result = await this.versionService.cancelAppVersionRollout(appUpgradeId, environment);
+            if (result) {
+                if (outFile) {
+                    this.writeToFile(cli_shared_1.Text.version.upgrade.cancel.appVersionRolloutCancelSuccess(appUpgradeId), outFile);
+                }
+                else if (json) {
+                    this.displayInJson(cli_shared_1.Text.version.upgrade.cancel.appVersionRolloutCancelSuccess(appUpgradeId));
+                }
+                else {
+                    this.view.displayAppVersionRolloutCancelCreationSuccess(appUpgradeId);
+                }
+            }
+        }
+    }
     async getSelectedVersion(columns, tableData, versions, versionTablePrompt, versionTableOverview) {
         const index = await this.view.displaySingleSelectVersion(columns, tableData, versionTablePrompt, versionTableOverview);
         return versions[index];
     }