npm package diff

Package: @forge/cli

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

Modified: package/out/bin/cli.js

Index: package/out/bin/cli.js
===================================================================
--- package/out/bin/cli.js
+++ package/out/bin/cli.js
@@ -1,6 +1,14 @@
 #!/usr/bin/env node
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+const nodeModule = tslib_1.__importStar(require("module"));
+if (!nodeModule.enableCompileCache) {
+    import('v8-compile-cache');
+}
+else {
+    nodeModule.enableCompileCache();
+}
 require("../autocomplete");
 const command_line_1 = require("../command-line");
 (0, command_line_1.main)();

Modified: package/out/command-line/command.js

Index: package/out/command-line/command.js
===================================================================
--- package/out/command-line/command.js
+++ package/out/command-line/command.js
@@ -34,9 +34,8 @@
     preCommandController;
     cliDetails;
     credentialStore;
     defaultEnvironmentController;
-    featureFlagService;
     supportedProductsService;
     get verbose() {
         return this.cmd.opts().verbose;
     }
@@ -63,20 +62,22 @@
     requiresAuthentication;
     requiresAnalyticsConsent;
     requiredOptionFlags = [];
     preconditionFn = [];
-    static program(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, supportedProductsService) {
-        const cmd = new Command(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, supportedProductsService, {});
-        return cmd.version(cliDetails?.version ?? 'unknown', '--version').option('--verbose', cli_shared_1.Text.optionVerbose);
+    static program(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, supportedProductsService) {
+        const cmd = new Command(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, supportedProductsService, {});
+        return cmd
+            .version(cliDetails?.version ?? 'unknown', '--version')
+            .hiddenOption('--no-color')
+            .option('--verbose', cli_shared_1.Text.optionVerbose);
     }
-    constructor(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, supportedProductsService, { cmd, analyticsName, requiresAuthentication, requiresAnalyticsConsent, requiredOptionFlags, preconditionFn }) {
+    constructor(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, supportedProductsService, { cmd, analyticsName, requiresAuthentication, requiresAnalyticsConsent, requiredOptionFlags, preconditionFn }) {
         this.ui = ui;
         this.analyticsClient = analyticsClient;
         this.preCommandController = preCommandController;
         this.cliDetails = cliDetails;
         this.credentialStore = credentialStore;
         this.defaultEnvironmentController = defaultEnvironmentController;
-        this.featureFlagService = featureFlagService;
         this.supportedProductsService = supportedProductsService;
         this.cmd = cmd || new commander_1.default.Command();
         this.analyticsName = analyticsName;
         this.requiresAuthentication = requiresAuthentication ?? true;
@@ -91,9 +92,9 @@
         });
         this.cmd.configureHelp({ sortSubcommands: true });
     }
     clone(overrides) {
-        return new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.featureFlagService, this.supportedProductsService, {
+        return new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.supportedProductsService, {
             cmd: this.cmd,
             analyticsName: this.analyticsName,
             requiresAuthentication: this.requiresAuthentication,
             requiresAnalyticsConsent: this.requiresAnalyticsConsent,
@@ -110,12 +111,14 @@
         const cmd = this.cmd
             .command(name, opts)
             .allowUnknownOption(false)
             .allowExcessArguments(false);
-        const subCommand = new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.featureFlagService, this.supportedProductsService, {
+        const subCommand = new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.supportedProductsService, {
             cmd,
             analyticsName: Command.concatenateNames(this.analyticsName, cmd.name())
-        }).option('--verbose', cli_shared_1.Text.optionVerbose);
+        })
+            .hiddenOption('--no-color')
+            .option('--verbose', cli_shared_1.Text.optionVerbose);
         return subCommand;
     }
     deprecatedCommand(oldName, newName, stubController) {
         this.command(oldName, { hidden: true })
@@ -130,8 +133,13 @@
     option(flags, description, defaultValue) {
         this.cmd.option(flags, description, defaultValue);
         return this;
     }
+    hiddenOption(flags, defaultValue) {
+        const option = new commander_1.Option(flags).hideHelp().default(defaultValue);
+        this.cmd.addOption(option);
+        return this;
+    }
     precondition(fn) {
         return this.clone({ preconditionFn: [...this.preconditionFn, fn] });
     }
     requireManifestFile() {
@@ -430,11 +438,17 @@
 function validateContext({ supportedProductsService, site, product }) {
     let maybeSupportedProduct = undefined;
     let maybeSiteUrl = undefined;
     if (product !== undefined) {
+        if (typeof product === 'boolean') {
+            throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.missingProductNameValue);
+        }
         maybeSupportedProduct = supportedProductsService.validateSupportedProduct(product);
     }
     if (site) {
+        if (typeof site === 'boolean') {
+            throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.missingSiteUrlValue);
+        }
         maybeSiteUrl = supportedProductsService.validateSite(site, maybeSupportedProduct);
     }
     return { site: maybeSiteUrl, product: maybeSupportedProduct };
 }

Modified: package/out/command-line/dependency-injection.js

Index: package/out/command-line/dependency-injection.js
===================================================================
--- package/out/command-line/dependency-injection.js
+++ package/out/command-line/dependency-injection.js
@@ -94,9 +94,8 @@
     const assertiveAppConfigReader = (0, cli_shared_1.assertiveAppConfigProvider)(appConfigReader);
     const appConfigWriter = (0, cli_shared_1.configFileWriterForSection)(cli_shared_1.appConfigKey, cli_shared_1.appConfigShape, configFile);
     const userRepository = new cli_shared_1.UserRepositoryImpl(createGraphQLClient, ui);
     const credentialStore = (0, cli_shared_1.getCredentialStore)(ui, userRepository);
-    const featureFlagService = new cli_shared_1.FeatureFlagService(ui, cliDetails, credentialStore, appConfigReader);
     const statsigService = new cli_shared_1.StatsigService(ui, cliDetails, credentialStore, appConfigReader);
     const supportedProductsService = new cli_shared_1.SupportedProductsService();
     const settingsView = new settings_view_1.SettingsView(ui);
     const settingsController = new settings_controller_1.SettingsController(settingsView, cachedConfigService, assertiveAppConfigReader);
@@ -155,9 +154,9 @@
     const triggerDeployClient = new deploy_1.TriggerDeployGraphQLClient(graphQLClient);
     const archiveUploader = new deploy_1.AppArchiveUploader(assertiveAppConfigReader, uploaderArtifactClient, fileUploader, ui, new resources_uploader_service_1.ResourcesUploaderService(fileReader));
     const deployer = new deploy_1.ArtifactDeployer(assertiveAppConfigReader, triggerDeployClient, deployMonitorClient, cli_shared_1.pause, ui);
     const sandboxBundle = new bundler_1.SandboxBundler(ui);
-    const nodeBundle = new bundler_1.NodeBundler(ui, (0, bundler_1.getWrapperProvider)({ fileSystemReader: fileReader, statsigService }));
+    const nodeBundle = (0, bundler_1.getNodeBundler)(ui, (0, bundler_1.getWrapperProvider)({ fileSystemReader: fileReader, statsigService }), configFile, statsigService);
     const sandboxRuntimeBundler = new runtime_bundler_1.SandboxRuntimeBundler(archiverFactory, ui, sandboxBundle, fileReader, configFile);
     const nodeRuntimeBundler = new runtime_bundler_1.NodeRuntimeBundler(archiverFactory, ui, nodeBundle, fileReader, configFile);
     const nativeUiBundler = new bundler_1.NativeUIBundler(ui);
     const sandboxAppPackager = new deploy_1.AppPackager(sandboxRuntimeBundler, nativeUiBundler, ui);
@@ -181,9 +180,9 @@
     const sandboxPackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(sandboxAppPackager, archiveUploader, deployer, resourcePackagingService, i18nResourceBundlingService);
     const nodePackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(nodeAppPackager, archiveUploader, deployer, resourcePackagingService, i18nResourceBundlingService);
     const roaService = new roa_service_1.RoaService(assertiveAppConfigReader, new graphql_client_8.RoaEligibilityClient(graphQLClient));
     const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, roaService, migrationKeysService, customEntitiesService, appEnvironmentClient, deployView, sandboxPackageUploadDeployCommand, nodePackageUploadDeployCommand, createEnvironmentCommand);
-    const createSandbox = async (cfg) => new tunnel_2.NodeSandbox(cfg);
+    const createSandbox = async (cfg) => new tunnel_2.NodeSandbox(cfg, statsigService);
     const functionHost = new tunnel_1.LocalFunctionHost(configFile, ui, null, createSandbox);
     const localInvocationService = new tunnel_1.LocalInvocationService(configFile, ui, runtime_1.notImplementedInspector);
     const startTunnelCommand = new tunnel_1.StartTunnelCommand(assertiveAppConfigReader, new tunnel_1.LocalDevelopmentServer(localInvocationService, ui, configFile, fileReader, statsigService), new tunnel_1.CloudflareCreateTunnelService(ui), new tunnel_1.RegisterTunnelServiceImpl(new tunnel_1.TunnelGraphqlClient(graphQLClient)), functionHost, runtime_1.notImplementedInspector, ui, configFile);
     const tunnelInteractor = new tunnel_1.TunnelInteractor(ui);
@@ -197,9 +196,9 @@
     const tunnelController = new tunnel_controller_1.TunnelController(tunnelAnalyticsService, nodeTunnelService, localTunnelService, dockerTunnelService, tunnelView, configFile, credentialStore);
     const stubController = new stubController_1.StubController();
     const prerequisitesController = new prerequisites_controller_1.PrerequisitesController(ui, cliDetails);
     const defaultEnvironmentController = new default_environment_controller_1.DefaultEnvironmentController(ui, credentialStore, cachedConfigService, assertiveAppConfigReader, userRepository, createEnvironmentCommand, listEnvironmentCommand, getAppOwnerQuery);
-    cmd = command_1.Command.program(ui, analyticsClientReporter, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, supportedProductsService);
+    cmd = command_1.Command.program(ui, analyticsClientReporter, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, supportedProductsService);
     await supportedProductsService.initializeWithSupportedProducts(statsigService);
     return {
         ui,
         cmd,
@@ -229,9 +228,8 @@
             getWebTriggerURLCommand,
             listEntitiesIndexesCommand
         },
         services: {
-            featureFlagService,
             installationsService,
             migrationKeysService,
             customEntitiesService,
             credentialStore,

Modified: package/out/deploy/deployer/deployer.js

Index: package/out/deploy/deployer/deployer.js
===================================================================
--- package/out/deploy/deployer/deployer.js
+++ package/out/deploy/deployer/deployer.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.ArtifactDeployer = exports.ManifestValidationFailedError = exports.HostedResourceDeploymentFailedError = exports.AppSnapshotFailedError = exports.AppDeploymentFailedError = void 0;
+exports.ArtifactDeployer = exports.ExistingInstallationsError = exports.ManifestValidationFailedError = exports.HostedResourceDeploymentFailedError = exports.AppSnapshotFailedError = exports.AppDeploymentFailedError = void 0;
 const cli_shared_1 = require("@forge/cli-shared");
 const DEPLOYMENT_EVENT_POLL_INTERVAL = 500;
 class AppDeploymentFailedError extends cli_shared_1.BaseError {
     userError;
@@ -41,8 +41,19 @@
         super(`${message} (requestId: ${requestId || 'unknown'})`, requestId);
     }
 }
 exports.ManifestValidationFailedError = ManifestValidationFailedError;
+class ExistingInstallationsError extends cli_shared_1.BaseError {
+    userError;
+    constructor(userError = false, requestId, message) {
+        super(requestId, `${message} (requestId: ${requestId || 'unknown'})`);
+        this.userError = userError;
+    }
+    isUserError() {
+        return this.userError;
+    }
+}
+exports.ExistingInstallationsError = ExistingInstallationsError;
 function isTransitionEvent(event) {
     return event.__typename === 'AppDeploymentTransitionEvent';
 }
 function isSnapshotLogEvent(event) {
@@ -65,10 +76,10 @@
         this.ui = ui;
     }
     async deploy(environmentKey, artifactUrl, hostedResourceUploadId, majorVersion) {
         const { id } = await this.getConfiguredApp();
-        const deploymentId = await this.doDeploy(id, environmentKey, artifactUrl, hostedResourceUploadId, majorVersion);
-        await this.monitorDeployment(id, environmentKey, deploymentId);
+        const { deploymentId, requestId } = await this.doDeploy(id, environmentKey, artifactUrl, hostedResourceUploadId, majorVersion);
+        await this.monitorDeployment(id, environmentKey, deploymentId, requestId);
     }
     async doDeploy(appId, environmentKey, artifactUrl, hostedResourceUploadId, majorVersion) {
         return await this.deployClient.deploy({
             appId,
@@ -77,10 +88,10 @@
             hostedResourceUploadId,
             majorVersion
         });
     }
-    async pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed) {
-        const { stages, status, errorDetails, requestId } = await this.deployMonitorClient.getDeployment({
+    async pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed, requestId) {
+        const { stages, status, errorDetails } = await this.deployMonitorClient.getDeployment({
             appId,
             environmentKey,
             deploymentId
         });
@@ -99,13 +110,13 @@
             status,
             totalStreamed
         };
     }
-    async monitorDeployment(appId, environmentKey, deploymentId) {
+    async monitorDeployment(appId, environmentKey, deploymentId, requestId) {
         let totalStreamed = 0;
         let status = cli_shared_1.AppDeploymentStatus.InProgress;
         while (status !== cli_shared_1.AppDeploymentStatus.Done) {
-            const checks = await this.pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed);
+            const checks = await this.pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed, requestId);
             totalStreamed = checks.totalStreamed;
             status = checks.status;
             await this.pause(DEPLOYMENT_EVENT_POLL_INTERVAL);
         }
@@ -168,8 +179,11 @@
                     const causeMessage = errorDetails?.fields?.validationResult.message.replace(/Upsert.*Error message: /, '');
                     if (causeMessage?.toLowerCase().includes('egress')) {
                         throw new AppDeploymentFailedError(true, requestId, cli_shared_1.Text.deploy.egressURL.error(causeMessage));
                     }
+                    if (causeMessage?.toLowerCase().includes('existing installations')) {
+                        throw new ExistingInstallationsError(true, requestId, cli_shared_1.Text.deploy.crossContext.error);
+                    }
                     break;
                 }
                 case 'HOSTED_RESOURCE_TOO_MANY_FILES':
                 case 'HOSTED_RESOURCE_ZIP_TOO_BIG':

Modified: 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));
     };

Modified: package/out/installations/installation-helper.js

Index: package/out/installations/installation-helper.js
===================================================================
--- package/out/installations/installation-helper.js
+++ package/out/installations/installation-helper.js
@@ -14,13 +14,14 @@
     return trimmedId;
 }
 exports.validateInstallationId = validateInstallationId;
 async function selectSingleInstallation(ui, installations, installationTablePrompt, installationTableOverview) {
-    const installationIndex = await ui.promptForSingleChoiceTable(installationTablePrompt, installationTableOverview, ['Environment', 'Site', 'Product', 'Major Version'], installations.map(({ id, environmentKey, product, site, version }) => ({
+    const hasSecondaryInstallations = installations.some(({ secondaryProducts }) => secondaryProducts?.length);
+    const installationIndex = await ui.promptForSingleChoiceTable(installationTablePrompt, installationTableOverview, ['Environment', 'Site', hasSecondaryInstallations ? 'Product(s)' : 'Product', 'Major Version'], installations.map(({ id, environmentKey, product, secondaryProducts, site, version }) => ({
         names: [
             (0, cli_shared_1.environmentToOption)(environmentKey),
             site,
-            (0, cli_shared_1.productDisplayName)(product),
+            (0, cli_shared_1.productsDisplayName)(product, secondaryProducts),
             `${(0, semver_1.major)(version.version).toString()} ${cli_shared_1.Text.install.booleanToScope(version.isLatest)}`
         ],
         value: id,
         primary: site

Modified: package/out/command-line/register-app-commands.js

Index: package/out/command-line/register-app-commands.js
===================================================================
--- package/out/command-line/register-app-commands.js
+++ package/out/command-line/register-app-commands.js
@@ -122,10 +122,11 @@
 async function promptAndSelectTemplate(ui, createAppCommand, template, directory) {
     if (!template) {
         ui.info(cli_shared_1.Text.create.overviewTemplates);
         const templates = await ui.displayTemporaryMessage(() => createAppCommand.getAvailableTemplates(), cli_shared_1.Text.create.waitTemplates);
+        const templatesWithoutCsuik = templates.filter((template) => !template.includes('csuik'));
         const type = await ui.promptForList(cli_shared_1.Text.create.promptCategory, Object.values(TemplateCategory));
-        const filteredTemplates = filterTemplatesByCategory(templates, type);
+        const filteredTemplates = filterTemplatesByCategory(templatesWithoutCsuik, type);
         template = await selectedTemplate(filteredTemplates, type, ui);
         template = modifyTemplateByCategory(template, type);
         if (!directory) {
             directory = template;
@@ -140,29 +141,25 @@
         : templates
             .filter((name) => {
             switch (category) {
                 case TemplateCategory.BACKEND:
-                    return (!name.includes('ui-kit') &&
-                        !name.includes('csuik') &&
-                        !name.includes('custom-ui') &&
-                        !name.includes('rovo') &&
-                        name !== 'blank');
+                    return (!name.includes('ui-kit') && !name.includes('custom-ui') && !name.includes('rovo') && name !== 'blank');
                 case TemplateCategory.CUSTOM_UI:
                     return name.includes('custom-ui');
                 case TemplateCategory.UI_KIT_2:
-                    return name.includes('csuik');
+                    return name.includes('ui-kit');
                 case TemplateCategory.ROVO:
                     return name.includes('rovo');
                 default:
                     return true;
             }
         })
-            .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', '').replace('-csuik', '').replace('-rovo', ''));
+            .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', '').replace('-rovo', ''));
 }
 function modifyTemplateByCategory(template, category) {
     switch (category) {
         case TemplateCategory.UI_KIT_2:
-            return `${template}-csuik`;
+            return `${template}-ui-kit`;
         case TemplateCategory.CUSTOM_UI:
             return `${template}-custom-ui`;
         case TemplateCategory.ROVO:
             return `${template}-rovo`;

Modified: package/out/deploy/packager/runtime-bundler.js

Index: package/out/deploy/packager/runtime-bundler.js
===================================================================
--- package/out/deploy/packager/runtime-bundler.js
+++ package/out/deploy/packager/runtime-bundler.js
@@ -11,15 +11,15 @@
     archiverFactory;
     logger;
     bundler;
     fileSystemReader;
-    configFile;
-    constructor(archiverFactory, logger, bundler, fileSystemReader, configFile) {
+    configReader;
+    constructor(archiverFactory, logger, bundler, fileSystemReader, configReader) {
         this.archiverFactory = archiverFactory;
         this.logger = logger;
         this.bundler = bundler;
         this.fileSystemReader = fileSystemReader;
-        this.configFile = configFile;
+        this.configReader = configReader;
     }
     async packageCode(archiver, entryPoints) {
         const moduleList = [];
         if (entryPoints.length > 0) {
@@ -43,9 +43,10 @@
         }
         return moduleList;
     }
     async packageDependencies(archiver) {
-        archiver.addFile(cli_shared_1.manifestFileName, Buffer.from(this.configFile.readConfigAsString()));
+        const manifest = JSON.stringify(await this.configReader.readConfig());
+        archiver.addFile(cli_shared_1.manifestFileName, Buffer.from(manifest));
         for (const fileName of cli_shared_1.dependencyFileNames) {
             if (!this.fileSystemReader.fileExists(fileName)) {
                 continue;
             }

Modified: package/out/deploy/deployer/trigger-deploy-graphql-client.js

Index: package/out/deploy/deployer/trigger-deploy-graphql-client.js
===================================================================
--- package/out/deploy/deployer/trigger-deploy-graphql-client.js
+++ package/out/deploy/deployer/trigger-deploy-graphql-client.js
@@ -44,8 +44,8 @@
         }
         if (!deployment) {
             throw new NoDeploymentError();
         }
-        return deployment.id;
+        return { deploymentId: deployment.id, requestId: requestId || 'unknown' };
     }
 }
 exports.TriggerDeployGraphQLClient = TriggerDeployGraphQLClient;

Modified: package/out/command-line/uninstall-command-helpers.js

Index: package/out/command-line/uninstall-command-helpers.js
===================================================================
--- package/out/command-line/uninstall-command-helpers.js
+++ package/out/command-line/uninstall-command-helpers.js
@@ -3,33 +3,33 @@
 exports.performMultipleUninstalls = exports.performSingleUninstall = exports.getInstallationsFromSelection = exports.getMultiChoiceOptionsForUninstall = void 0;
 const cli_shared_1 = require("@forge/cli-shared");
 const shared_1 = require("../installations/shared");
 const errors_1 = require("./errors");
-function addPrimarySuffix(productDisplayName, secondaryCount) {
-    return secondaryCount ? `${productDisplayName} (Primary)` : productDisplayName;
+function addRequiredSuffix(productDisplayName, secondaryCount) {
+    return secondaryCount ? `${productDisplayName} (Required)` : productDisplayName;
 }
 const getMultiChoiceOptionsForUninstall = (filteredInstallations) => {
     return filteredInstallations.reduce((acc, { id, environmentKey, site, product, secondaryProducts, secondaryContexts }, idx) => {
         acc.push({
             names: [
                 (0, cli_shared_1.environmentToOption)(environmentKey),
                 site,
-                addPrimarySuffix((0, cli_shared_1.productDisplayName)(product), secondaryProducts?.length)
+                addRequiredSuffix((0, cli_shared_1.productDisplayName)(product), secondaryProducts?.length)
             ],
             value: id,
             extra: {
                 installationIdx: idx,
                 product: product,
-                primary: !!secondaryProducts?.length
+                required: !!secondaryProducts?.length
             }
         });
         if (secondaryProducts) {
             secondaryProducts.forEach((secondaryProduct, secondaryIdx) => {
                 const contextAri = secondaryContexts?.[secondaryIdx];
                 acc.push({
                     names: [(0, cli_shared_1.environmentToOption)(environmentKey), site, (0, cli_shared_1.productDisplayName)(secondaryProduct)],
                     value: id,
-                    extra: { secondary: true, contextAri, installationIdx: idx, product: secondaryProduct }
+                    extra: { optional: true, contextAri, installationIdx: idx, product: secondaryProduct }
                 });
             });
         }
         return acc;
@@ -38,16 +38,16 @@
 exports.getMultiChoiceOptionsForUninstall = getMultiChoiceOptionsForUninstall;
 const getInstallationsFromSelection = (options, selectedSitesIndexes, filteredInstallations) => {
     const firstUninstall = options
         .filter((_, idx) => selectedSitesIndexes.includes(idx))
-        .filter(({ extra }) => !extra?.primary)
+        .filter(({ extra }) => !extra?.required)
         .map(({ extra }) => ({
         ...filteredInstallations[extra.installationIdx],
-        ...(extra.secondary && { context: extra.contextAri, product: extra.product })
+        ...(extra.optional && { context: extra.contextAri, product: extra.product })
     }));
     const secondUninstall = options
         .filter((_, idx) => selectedSitesIndexes.includes(idx))
-        .filter(({ extra }) => extra?.primary)
+        .filter(({ extra }) => extra?.required)
         .map(({ extra }) => filteredInstallations[extra.installationIdx]);
     return [firstUninstall, secondUninstall];
 };
 exports.getInstallationsFromSelection = getInstallationsFromSelection;

Modified: package/npm-shrinkwrap.json

Large diffs are not rendered by default.

Modified: package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/cli",
-  "version": "11.1.0",
+  "version": "11.2.0-next.17-experimental-26b1489",
   "description": "A command line interface for managing Atlassian-hosted apps",
   "author": "Atlassian",
   "license": "SEE LICENSE IN LICENSE.txt",
   "bin": {
@@ -17,15 +17,15 @@
     "postbuild": "chmod +x out/bin/*.js && ts-node scripts/configureAutocomplete.ts",
     "postinstall": "node -e \"fs.existsSync('./out/bin/postinstall.js') && require('./out/bin/postinstall.js')\""
   },
   "dependencies": {
-    "@forge/bundler": "4.20.9",
-    "@forge/cli-shared": "6.6.1",
+    "@forge/bundler": "4.21.0-next.13-experimental-26b1489",
+    "@forge/cli-shared": "6.7.0-next.11-experimental-26b1489",
     "@forge/egress": "1.4.0",
-    "@forge/lint": "5.7.1",
-    "@forge/manifest": "8.7.0",
-    "@forge/runtime": "5.10.6",
-    "@forge/tunnel": "5.9.3",
+    "@forge/lint": "5.7.2-next.11-experimental-26b1489",
+    "@forge/manifest": "8.8.0-next.5-experimental-26b1489",
+    "@forge/runtime": "5.10.7-next.0-experimental-26b1489",
+    "@forge/tunnel": "5.10.0-next.13-experimental-26b1489",
     "@forge/util": "1.4.8",
     "@sentry/node": "7.106.0",
     "@forge/i18n": "0.0.4",
     "ajv": "^8.12.0",
@@ -55,9 +55,10 @@
     "sanitize-filename": "^1.6.3",
     "semver": "^7.6.0",
     "tmp": "^0.2.3",
     "tslib": "^2.6.2",
-    "uuid": "^9.0.1"
+    "uuid": "^9.0.1",
+    "v8-compile-cache": "^2.4.0"
   },
   "devDependencies": {
     "@types/archiver": "^6.0.2",
     "@types/cheerio": "^0.22.35",
@@ -85,9 +86,9 @@
     "sentry-testkit": "^5.0.9",
     "type-fest": "4.10.2"
   },
   "engines": {
-    "node": ">=12.13.1"
+    "node": ">=18.20.7"
   },
   "publishConfig": {
     "registry": "https://packages.atlassian.com/api/npm/npm-public/"
   }

Modified: package/out/bin/cli.d.ts.map

Index: package/out/bin/cli.d.ts.map
===================================================================
--- package/out/bin/cli.d.ts.map
+++ package/out/bin/cli.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,iBAAiB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":";AAUA,OAAO,iBAAiB,CAAC"}
\ No newline at end of file

Modified: package/out/command-line/command.d.ts.map

Index: package/out/command-line/command.d.ts.map
===================================================================
--- package/out/command-line/command.d.ts.map
+++ package/out/command-line/command.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/command-line/command.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/command-line/command.ts"],"names":[],"mappings":"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"}
\ No newline at end of file

Modified: package/out/command-line/dependency-injection.d.ts.map

Index: package/out/command-line/dependency-injection.d.ts.map
===================================================================
--- package/out/command-line/dependency-injection.d.ts.map
+++ package/out/command-line/dependency-injection.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAGlB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAKlB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKpE,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoYvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAKhB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAKlB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKpE,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsYvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
\ No newline at end of file

Modified: package/out/deploy/deployer/deployer.d.ts.map

Index: package/out/deploy/deployer/deployer.d.ts.map
===================================================================
--- package/out/deploy/deployer/deployer.d.ts.map
+++ package/out/deploy/deployer/deployer.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EACF,SAAS,EAET,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IAE9D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAG7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAyBD,qBAAa,gBAAiB,YAAW,QAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAJF,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE;IAGZ,MAAM,CACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;YAMF,QAAQ;IAgBT,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;;YA2BpG,iBAAiB;IAa/B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,gBAAgB;CAsDzB"}
\ No newline at end of file
+{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EACF,SAAS,EAET,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAyB,MAAM,iCAAiC,CAAC;AAG7F,qBAAa,wBAAyB,SAAQ,SAAS;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IAE9D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAG7D;AAED,qBAAa,0BAA2B,SAAQ,SAAS;IAErD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAyBD,qBAAa,gBAAiB,YAAW,QAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAJF,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE;IAGZ,MAAM,CACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;YAYF,QAAQ;IAgBT,kBAAkB,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM;;;;YA4BL,iBAAiB;IAa/B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,gBAAgB;CAwDzB"}
\ No newline at end of file

Modified: package/out/command-line/controller/install-controller.d.ts.map

Index: package/out/command-line/controller/install-controller.d.ts.map
===================================================================
--- package/out/command-line/controller/install-controller.d.ts.map
+++ package/out/command-line/controller/install-controller.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"install-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/install-controller.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,iBAAiB,EAEjB,UAAU,EAEV,EAAE,EAYF,wBAAwB,EAGzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA2C,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAYD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,WAAW,EAAE,MAAM;CAGhC;AASD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBANxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,wBAAwB,EAAE,wBAAwB;YAGvD,cAAc;YAmBd,gBAAgB;YA8ChB,iBAAiB;YAyBjB,aAAa;YA0Bb,gBAAgB;IAwB9B,OAAO,CAAC,uCAAuC;IAa/C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB,CAK3B;IAEW,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACf,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+HnC,OAAO,CAAC,qBAAqB,CA8B3B;IAEF,OAAO,CAAC,0BAA0B,CAyBhC;YAEY,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,uBAAuB;YAoBjB,8CAA8C;IAY5D,OAAO,CAAC,+BAA+B,CAWrC;CACH"}
\ No newline at end of file
+{"version":3,"file":"install-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/install-controller.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,iBAAiB,EAEjB,UAAU,EAEV,EAAE,EAYF,wBAAwB,EAGzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA2C,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAYD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,WAAW,EAAE,MAAM;CAGhC;AASD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBANxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,wBAAwB,EAAE,wBAAwB;YAGvD,cAAc;YAmBd,gBAAgB;YA8ChB,iBAAiB;YAyBjB,aAAa;YA0Bb,gBAAgB;IAwB9B,OAAO,CAAC,uCAAuC;IAa/C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB,CAK3B;IAEW,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACf,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8HnC,OAAO,CAAC,qBAAqB,CA8B3B;IAEF,OAAO,CAAC,0BAA0B,CA8BhC;YAEY,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,uBAAuB;YAoBjB,8CAA8C;IAY5D,OAAO,CAAC,+BAA+B,CAWrC;CACH"}
\ No newline at end of file

Modified: package/out/installations/installation-helper.d.ts.map

Index: package/out/installations/installation-helper.d.ts.map
===================================================================
--- package/out/installations/installation-helper.d.ts.map
+++ package/out/installations/installation-helper.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"installation-helper.d.ts","sourceRoot":"","sources":["../../src/installations/installation-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAiD,EAAE,EAAmB,MAAM,mBAAmB,CAAC;AAEvG,wBAAgB,sBAAsB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,YAAY,EAAE,EAC7B,uBAAuB,EAAE,MAAM,EAC/B,yBAAyB,EAAE,MAAM,GAChC,OAAO,CAAC,YAAY,CAAC,CAkBvB"}
\ No newline at end of file
+{"version":3,"file":"installation-helper.d.ts","sourceRoot":"","sources":["../../src/installations/installation-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAkD,EAAE,EAAmB,MAAM,mBAAmB,CAAC;AAExG,wBAAgB,sBAAsB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,YAAY,EAAE,EAC7B,uBAAuB,EAAE,MAAM,EAC/B,yBAAyB,EAAE,MAAM,GAChC,OAAO,CAAC,YAAY,CAAC,CAoBvB"}
\ No newline at end of file

Modified: package/out/command-line/register-app-commands.d.ts.map

Index: package/out/command-line/register-app-commands.d.ts.map
===================================================================
--- package/out/command-line/register-app-commands.d.ts.map
+++ package/out/command-line/register-app-commands.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAqB,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG/G,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAuBtD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AA6CD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC1B,OAAO,CAQT;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;AAuJD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
\ No newline at end of file
+{"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAqB,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG/G,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAuBtD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AA4CD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC1B,OAAO,CAQT;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAuBjC;AAmJD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
\ No newline at end of file

Modified: package/out/deploy/packager/runtime-bundler.d.ts.map

Index: package/out/deploy/packager/runtime-bundler.d.ts.map
===================================================================
--- package/out/deploy/packager/runtime-bundler.d.ts.map
+++ package/out/deploy/packager/runtime-bundler.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA+B,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAEL,OAAO,EACP,MAAM,EAEN,gBAAgB,EAEhB,UAAU,EAEV,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAJV,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EACd,gBAAgB,EAAE,gBAAgB,EACpC,UAAU,EAAE,UAAU;cAGzB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cA4B7E,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAatD,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;IAMnF,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAWhC;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IAC1C,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAMhC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;cACpC,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CASrB"}
\ No newline at end of file
+{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA+B,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAEL,OAAO,EACP,MAAM,EAEN,gBAAgB,EAEhB,YAAY,EAEZ,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAJZ,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EACd,gBAAgB,EAAE,gBAAgB,EACpC,YAAY,EAAE,YAAY;cAG7B,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cA4B7E,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cActD,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;IAMnF,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAWhC;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IAC1C,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAMhC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;cACpC,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CASrB"}
\ No newline at end of file

Modified: package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts.map

Index: package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts.map
===================================================================
--- package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts.map
+++ package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"trigger-deploy-graphql-client.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/trigger-deploy-graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAId,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxD;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAI3C;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB;CA4C5D"}
\ No newline at end of file
+{"version":3,"file":"trigger-deploy-graphql-client.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/trigger-deploy-graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAId,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oBAAY,qBAAqB,GAAG;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACvE;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAI3C;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB;;;;CA4C5D"}
\ No newline at end of file

Modified: package/out/command-line/uninstall-command-helpers.d.ts.map

Index: package/out/command-line/uninstall-command-helpers.d.ts.map
===================================================================
--- package/out/command-line/uninstall-command-helpers.d.ts.map
+++ package/out/command-line/uninstall-command-helpers.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"uninstall-command-helpers.d.ts","sourceRoot":"","sources":["../../src/command-line/uninstall-command-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAClH;AAMD,eAAO,MAAM,iCAAiC,0BAA2B,YAAY,EAAE,KAAG,MAAM,EA8B/F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAC/B,MAAM,EAAE,wBACK,MAAM,EAAE,yBACP,YAAY,EAAE,KACpC,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,CAiBjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,cACtB,MAAM,uBACI,MAAM,6CACgB,YAAY,kBAuBxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,yBACd,YAAY,EAAE,yBACb,YAAY,EAAE,6CACM,YAAY,kBAsDxD,CAAC"}
\ No newline at end of file
+{"version":3,"file":"uninstall-command-helpers.d.ts","sourceRoot":"","sources":["../../src/command-line/uninstall-command-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAClH;AAMD,eAAO,MAAM,iCAAiC,0BAA2B,YAAY,EAAE,KAAG,MAAM,EA8B/F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAC/B,MAAM,EAAE,wBACK,MAAM,EAAE,yBACP,YAAY,EAAE,KACpC,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,CAiBjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,cACtB,MAAM,uBACI,MAAM,6CACgB,YAAY,kBAuBxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,yBACd,YAAY,EAAE,yBACb,YAAY,EAAE,6CACM,YAAY,kBAsDxD,CAAC"}
\ No newline at end of file

Modified: package/CHANGELOG.md

Large diffs are not rendered by default.

Modified: package/out/command-line/command.d.ts

Index: package/out/command-line/command.d.ts
===================================================================
--- package/out/command-line/command.d.ts
+++ package/out/command-line/command.d.ts
@@ -1,8 +1,8 @@
 import commander, { CommanderError } from 'commander';
 import { CamelCase } from 'type-fest';
 import { AnalyticsClientReporter } from '../analytics-client/analytics-client';
-import { Logger, CLIDetails, CredentialGetter, PersonalApiCredentialsValidated, ErrorWithAnalytics, ErrorAnalytics, FeatureFlagService, SupportedProduct, SupportedProductsService } from '@forge/cli-shared';
+import { Logger, CLIDetails, CredentialGetter, PersonalApiCredentialsValidated, ErrorWithAnalytics, ErrorAnalytics, SupportedProduct, SupportedProductsService } from '@forge/cli-shared';
 import { PreCommandController } from './controller/pre-command-controller';
 import * as autocomplete from '../autocomplete/types';
 import { StubController } from './controller/stubController';
 import { DefaultEnvironmentController } from './controller/default-environment-controller';
@@ -33,8 +33,9 @@
     [k in CamelCase<Flag>]?: boolean;
 } : never : never;
 export declare type DefaultOpts = {
     verbose?: boolean;
+    color: boolean;
 };
 declare type AnyArgs = string[];
 declare type ParseArgs<ArgsStr extends string> = ArgsStr extends `${infer _} ${infer Rest}` ? [string, ...ParseArgs<Rest>] : [];
 declare type ActionArgs<Args extends AnyArgs, Opts extends AnyOpts> = [...Args, Opts];
@@ -45,9 +46,8 @@
     private readonly preCommandController;
     private readonly cliDetails;
     private readonly credentialStore;
     private readonly defaultEnvironmentController;
-    private readonly featureFlagService;
     private readonly supportedProductsService;
     get verbose(): boolean;
     private static isError;
     private static isHelpTriggered;
@@ -60,16 +60,17 @@
     private readonly requiresAuthentication;
     private readonly requiresAnalyticsConsent;
     private readonly requiredOptionFlags;
     private readonly preconditionFn;
-    static program(ui: Logger, analyticsClient: AnalyticsClientReporter, preCommandController: PreCommandController, cliDetails: CLIDetails | undefined, credentialStore: CredentialGetter, defaultEnvironmentController: DefaultEnvironmentController, featureFlagService: FeatureFlagService, supportedProductsService: SupportedProductsService): Command<[], DefaultOpts>;
+    static program(ui: Logger, analyticsClient: AnalyticsClientReporter, preCommandController: PreCommandController, cliDetails: CLIDetails | undefined, credentialStore: CredentialGetter, defaultEnvironmentController: DefaultEnvironmentController, supportedProductsService: SupportedProductsService): Command<[], DefaultOpts>;
     private constructor();
     private clone;
     version(str: string, flags?: string): Command<Args, Opts>;
     command<ArgsStr extends string>(name: ArgsStr, opts?: commander.CommandOptions): Command<ParseArgs<ArgsStr>, DefaultOpts>;
     deprecatedCommand(oldName: string, newName: string, stubController: StubController): void;
     description(desc: string): Command<Args, Opts>;
     option<OptsStr extends string, Default extends string | boolean | undefined = undefined>(flags: OptsStr, description: string, defaultValue?: Default): Command<Args, Opts & ParseOpts<OptsStr, Default>>;
+    hiddenOption<OptsStr extends string, Default extends string | boolean | undefined = undefined>(flags: OptsStr, defaultValue?: Default): Command<Args, Opts & ParseOpts<OptsStr, Default>>;
     precondition(fn: PreconditionCallback<Args, Opts, void>): Command<Args, Opts>;
     precondition<More extends AnyOpts>(fn: PreconditionCallback<Args, Opts, More>): Command<Args, Opts & More>;
     requireManifestFile(): Command<Args, Opts>;
     requireAppId(): Command<Args, Opts>;
@@ -105,10 +106,10 @@
 }
 export declare function getAutocompleteConfig(cmd: commander.Command): autocomplete.AutocompleteConfig;
 export declare function validateContext({ supportedProductsService, site, product }: {
     supportedProductsService: SupportedProductsService;
-    site?: string;
-    product?: string;
+    site?: string | boolean;
+    product?: string | boolean;
 }): {
     site?: URL;
     product?: SupportedProduct;
 };

Modified: package/out/command-line/dependency-injection.d.ts

Index: package/out/command-line/dependency-injection.d.ts
===================================================================
--- package/out/command-line/dependency-injection.d.ts
+++ package/out/command-line/dependency-injection.d.ts
@@ -1,5 +1,5 @@
-import { CLIDetails, CommandLineUI, ConfigFile, CreateAppCommand, FeatureFlagService, GetAppOwnerQuery, LoginCommand, LogoutCommand, RegisterAppCommand, ViewAppLogsCommand, UserRepositoryImpl, SupportedProductsService } from '@forge/cli-shared';
+import { CLIDetails, CommandLineUI, ConfigFile, CreateAppCommand, GetAppOwnerQuery, LoginCommand, LogoutCommand, RegisterAppCommand, ViewAppLogsCommand, UserRepositoryImpl, SupportedProductsService } from '@forge/cli-shared';
 import { AnalyticsClientReporter } from '../analytics-client/analytics-client';
 import { PackageUploadDeployCommand } from '../deploy';
 import { DeleteEnvironmentVariableCommand } from '../environment-variables/delete-environment-variable';
 import { ListEnvironmentVariablesCommand } from '../environment-variables/list-environment-variables';
@@ -59,9 +59,8 @@
         getWebTriggerURLCommand: GetWebTriggerURLCommand;
         listEntitiesIndexesCommand: ListEntitiesIndexesCommand;
     };
     services: {
-        featureFlagService: FeatureFlagService;
         installationsService: InstallationService;
         migrationKeysService: MigrationKeysService;
         customEntitiesService: CustomEntitiesService;
         credentialStore: import("@forge/cli-shared").CredentialStore;

Modified: package/out/deploy/deployer/deployer.d.ts

Index: package/out/deploy/deployer/deployer.d.ts
===================================================================
--- package/out/deploy/deployer/deployer.d.ts
+++ package/out/deploy/deployer/deployer.d.ts
@@ -18,8 +18,13 @@
 }
 export declare class ManifestValidationFailedError extends UserError {
     constructor(requestId?: string | undefined, message?: string);
 }
+export declare class ExistingInstallationsError extends BaseError {
+    private readonly userError;
+    constructor(userError?: boolean, requestId?: string | undefined, message?: string);
+    isUserError(): boolean;
+}
 export interface Deployer {
     deploy(environmentKey: string, artifactUrl: string, hostedResourceUploadId?: string, majorVersion?: number): Promise<void>;
 }
 export declare class ArtifactDeployer implements Deployer {
@@ -30,9 +35,9 @@
     private readonly ui;
     constructor(getConfiguredApp: AppConfigProvider, deployClient: TriggerDeployClient, deployMonitorClient: DeployMonitorClient, pause: Pause, ui: UI);
     deploy(environmentKey: string, artifactUrl: string, hostedResourceUploadId?: string, majorVersion?: number): Promise<void>;
     private doDeploy;
-    pollAndCheckEvents(appId: string, environmentKey: string, deploymentId: string, totalStreamed: number): Promise<{
+    pollAndCheckEvents(appId: string, environmentKey: string, deploymentId: string, totalStreamed: number, requestId: string): Promise<{
         status: AppDeploymentStatus;
         totalStreamed: number;
     }>;
     private monitorDeployment;

Modified: package/out/deploy/packager/runtime-bundler.d.ts

Index: package/out/deploy/packager/runtime-bundler.d.ts
===================================================================
--- package/out/deploy/packager/runtime-bundler.d.ts
+++ package/out/deploy/packager/runtime-bundler.d.ts
@@ -1,6 +1,6 @@
 import { Bundler, EntryPoint } from '@forge/bundler';
-import { Handler, Logger, FileSystemReader, ConfigFile, type I18nResourceBundle } from '@forge/cli-shared';
+import { Handler, Logger, FileSystemReader, ConfigReader, type I18nResourceBundle } from '@forge/cli-shared';
 import { App } from '@forge/manifest';
 import { Archiver } from './archiver';
 export interface RuntimeBundleResult {
     runtimeArchivePath: string;
@@ -10,10 +10,10 @@
     private readonly archiverFactory;
     private readonly logger;
     private readonly bundler;
     protected readonly fileSystemReader: FileSystemReader;
-    private readonly configFile;
-    constructor(archiverFactory: () => Archiver, logger: Logger, bundler: Bundler, fileSystemReader: FileSystemReader, configFile: ConfigFile);
+    private readonly configReader;
+    constructor(archiverFactory: () => Archiver, logger: Logger, bundler: Bundler, fileSystemReader: FileSystemReader, configReader: ConfigReader);
     protected packageCode(archiver: Archiver, entryPoints: EntryPoint[]): Promise<string[]>;
     protected packageDependencies(archiver: Archiver): Promise<void>;
     protected packageAll(archiver: Archiver, handlers: Handler[], packageConfig: App['package']): Promise<string[]>;
     protected packageI18nResources(archiver: Archiver, i18nResourceBundle: I18nResourceBundle): void;

Modified: package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts

Index: package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts
===================================================================
--- package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts
+++ package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts
@@ -5,16 +5,23 @@
     artifactUrl: string;
     hostedResourceUploadId?: string;
     majorVersion?: number;
 }
+export declare type TriggerDeployResponse = {
+    deploymentId: string;
+    requestId: string;
+};
 export interface TriggerDeployClient {
-    deploy(details: TriggerDeployDetails): Promise<string>;
+    deploy(details: TriggerDeployDetails): Promise<TriggerDeployResponse>;
 }
 export declare class NoDeploymentError extends Error {
     constructor();
 }
 export declare class TriggerDeployGraphQLClient implements TriggerDeployClient {
     private readonly graphqlClient;
     constructor(graphqlClient: GraphQLClient);
-    deploy(deploymentDetails: TriggerDeployDetails): Promise<string>;
+    deploy(deploymentDetails: TriggerDeployDetails): Promise<{
+        deploymentId: string;
+        requestId: string;
+    }>;
 }
 //# sourceMappingURL=trigger-deploy-graphql-client.d.ts.map
\ No newline at end of file

Modified: package/out/command-line/uninstall-command-helpers.d.ts

Index: package/out/command-line/uninstall-command-helpers.d.ts
===================================================================
--- package/out/command-line/uninstall-command-helpers.d.ts
+++ package/out/command-line/uninstall-command-helpers.d.ts
@@ -3,10 +3,10 @@
 export interface Option {
     names: string[];
     value: string;
     extra: {
-        primary?: boolean;
-        secondary?: boolean;
+        required?: boolean;
+        optional?: boolean;
         contextAri?: string;
         installationIdx: number;
         product: string;
     };