npm package diff

Package: @forge/cli

Versions: 11.1.0 - 11.2.0-next.17-experimental-26b1489

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

Index: package/out/command-line/controller/install-controller.js
===================================================================
--- package/out/command-line/controller/install-controller.js
+++ package/out/command-line/controller/install-controller.js
@@ -249,9 +249,9 @@
         }
         else {
             const allowedProducts = this.supportedProductsService.getSupportedSecondaryProductsForXPA([]);
             if (products.some((product) => !allowedProducts.includes(product))) {
-                throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.invalidProduct);
+                throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.invalidContext(allowedProducts));
             }
             if (requiredProducts.includes(products[0])) {
                 this.ui.info(cli_shared_1.Text.install.installingToRequiredProduct(products[0]));
             }
@@ -271,10 +271,15 @@
         });
         const productsToUpgrade = nonTechnicalInstallations
             .filter((installation) => !installation.version.isLatest)
             .map((installation) => installation.product);
-        const installedProducts = nonTechnicalInstallations.map((installation) => installation.product);
-        const productsToInstall = uniqueProductsFromScopes.filter((product) => !installedProducts.includes(product));
+        const allInstalledProducts = nonTechnicalInstallations
+            .flatMap((install) => {
+            const secondaryProducts = install.secondaryProducts ?? [];
+            return [...secondaryProducts, install.product];
+        })
+            .filter((product) => product !== undefined);
+        const productsToInstall = uniqueProductsFromScopes.filter((product) => !allInstalledProducts.includes(product));
         if (productsToInstall.length === 0 && productsToUpgrade.length === 0)
             return;
         this.ui.warn(cli_shared_1.Text.install.multiProductScopesDetected(productsToInstall, productsToUpgrade, site.host, environment));
     };