npm package diff
Package: @forge/cli
Versions: 10.13.6 - 11.0.0-next.18
Removed: package/out/installations/site-translation/cloudid-products.js
Removed: package/out/installations/site-translation/cloudid-products.d.ts.map
Removed: package/out/installations/site-translation/cloudid-products.d.ts
Added: package/out/version/graphql-client.js
Added: package/out/command-line/register-version-commands.js
Added: package/out/installations/site-translation/sited-products.js
Added: package/out/command-line/controller/version-controller.js
Added: package/out/service/version-service.js
Added: package/out/command-line/view/version-view.js
Added: package/out/version/graphql-client.d.ts.map
Added: package/out/command-line/register-version-commands.d.ts.map
Added: package/out/installations/site-translation/sited-products.d.ts.map
Added: package/out/command-line/controller/version-controller.d.ts.map
Added: package/out/service/version-service.d.ts.map
Added: package/out/command-line/view/version-view.d.ts.map
Added: package/out/version/graphql-client.d.ts
Added: package/out/command-line/register-version-commands.d.ts
Added: package/out/installations/site-translation/sited-products.d.ts
Added: package/out/command-line/controller/version-controller.d.ts
Added: package/out/service/version-service.d.ts
Added: package/out/command-line/view/version-view.d.ts
Added: package/LICENSE.txt
Modified: package/out/installations/site-translation/bitbucket.js
Index: package/out/installations/site-translation/bitbucket.js
===================================================================
--- package/out/installations/site-translation/bitbucket.js
+++ package/out/installations/site-translation/bitbucket.js
@@ -93,9 +93,9 @@
extractWorkspaceName(workspaceURL) {
if (workspaceURL.hostname !== BITBUCKET_URL.hostname) {
throw new InvalidWorkspaceError(workspaceURL);
}
- const pathnames = workspaceURL.pathname.substr(1).split('/');
+ const pathnames = workspaceURL.pathname.substring(1).split('/');
if (!pathnames.length) {
throw new InvalidWorkspaceError(workspaceURL);
}
return pathnames[0];
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
@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.getAutocompleteConfig = exports.Command = exports.WrapperError = void 0;
+exports.validateContext = exports.getAutocompleteConfig = exports.Command = exports.WrapperError = void 0;
const tslib_1 = require("tslib");
const commander_1 = tslib_1.__importStar(require("commander"));
const semver_1 = tslib_1.__importDefault(require("semver"));
const cli_shared_1 = require("@forge/cli-shared");
@@ -35,8 +35,9 @@
cliDetails;
credentialStore;
defaultEnvironmentController;
featureFlagService;
+ supportedProductsService;
get verbose() {
return this.cmd.opts().verbose;
}
static isError = (cmdError) => {
@@ -62,20 +63,21 @@
requiresAuthentication;
requiresAnalyticsConsent;
requiredOptionFlags = [];
preconditionFn = [];
- static program(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService) {
- const cmd = new Command(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, {});
+ 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);
}
- constructor(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, { cmd, analyticsName, requiresAuthentication, requiresAnalyticsConsent, requiredOptionFlags, preconditionFn }) {
+ constructor(ui, analyticsClient, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, 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;
this.requiresAnalyticsConsent = requiresAnalyticsConsent ?? true;
@@ -89,9 +91,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, {
+ return new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.featureFlagService, this.supportedProductsService, {
cmd: this.cmd,
analyticsName: this.analyticsName,
requiresAuthentication: this.requiresAuthentication,
requiresAnalyticsConsent: this.requiresAnalyticsConsent,
@@ -108,9 +110,9 @@
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, {
+ const subCommand = new Command(this.ui, this.analyticsClient, this.preCommandController, this.cliDetails, this.credentialStore, this.defaultEnvironmentController, this.featureFlagService, this.supportedProductsService, {
cmd,
analyticsName: Command.concatenateNames(this.analyticsName, cmd.name())
}).option('--verbose', cli_shared_1.Text.optionVerbose);
return subCommand;
@@ -175,8 +177,17 @@
const environment = environmentArg || (await this.defaultEnvironmentController.run(nonInteractive));
return { environment: (0, environment_1.checkEnvironmentOption)(environment) };
});
}
+ contextOption(supportedProducts) {
+ const supportedProductsService = this.supportedProductsService;
+ return this.option('-s, --site [site]', cli_shared_1.Text.optionSite)
+ .option('-p, --product [product]', cli_shared_1.Text.optionProduct(supportedProducts))
+ .precondition(async (...args) => {
+ const { site, product } = last(args);
+ return await validateContext({ supportedProductsService, site, product });
+ });
+ }
jsonOption() {
return this.option('--json', cli_shared_1.Text.optionJson, false);
}
requireNoAuthentication() {
@@ -415,4 +426,16 @@
const options = getOptionsData(cmd);
return { commands, options };
}
exports.getAutocompleteConfig = getAutocompleteConfig;
+async function validateContext({ supportedProductsService, site, product }) {
+ let maybeSupportedProduct = undefined;
+ let maybeSiteUrl = undefined;
+ if (product !== undefined) {
+ maybeSupportedProduct = await supportedProductsService.validateSupportedProduct(product);
+ }
+ if (site) {
+ maybeSiteUrl = await supportedProductsService.validateSite(site, maybeSupportedProduct);
+ }
+ return { site: maybeSiteUrl, product: maybeSupportedProduct };
+}
+exports.validateContext = validateContext;
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
@@ -68,8 +68,12 @@
const graphql_client_8 = require("../eligibility/graphql-client");
const roa_service_1 = require("../service/roa-service");
const eligibility_controller_1 = require("./controller/eligibility-controller");
const eligibility_view_1 = require("./view/eligibility-view");
+const version_controller_1 = require("./controller/version-controller");
+const version_service_1 = require("../service/version-service");
+const version_view_1 = require("./view/version-view");
+const graphql_client_9 = require("../version/graphql-client");
const getDependencies = async (cliDetails) => {
let cmd;
const ui = new cli_shared_1.CommandLineUI(() => cmd.verbose);
const cachedConf = cli_shared_1.CachedConf.getCache(cli_shared_1.CONFIG_PROJECT_NAME);
@@ -92,8 +96,9 @@
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(statsigService);
const settingsView = new settings_view_1.SettingsView(ui);
const settingsController = new settings_controller_1.SettingsController(settingsView, cachedConfigService, assertiveAppConfigReader);
const liteLintView = new lite_lint_view_1.LiteLintView(ui);
const liteLintService = new lite_lint_service_1.LiteLintService();
@@ -138,9 +143,9 @@
const entitiesClient = new graphql_client_4.EntitiesGraphqlClient(graphQLClient);
const customEntitiesService = new custom_entities_service_1.CustomEntitiesService(assertiveAppConfigReader, appOauthClientGraphql, entitiesClient);
const listEntitiesIndexesCommand = new list_indexes_1.ListEntitiesIndexesCommand(customEntitiesService);
const bitbucketTranslation = new site_translation_1.BitbucketTranslator();
- const cloudProductTranslation = new site_translation_1.CloudIdTranslator(graphQLClient);
+ const cloudProductTranslation = new site_translation_1.SitedProductTranslator(graphQLClient);
const installationsClient = new graphql_client_6.InstallationsGraphqlClient(graphQLClient, cloudProductTranslation, bitbucketTranslation, cli_shared_1.pause);
const installAppSiteCommand = new install_app_site_1.InstallAppSiteCommand(assertiveAppConfigReader, installationsClient);
const uninstallAppCommand = new uninstall_app_1.UninstallAppCommand(assertiveAppConfigReader, installationsClient);
const deployMonitorClient = new deploy_1.DeployMonitorGraphqlClient(graphQLClient);
@@ -158,13 +163,14 @@
const sandboxAppPackager = new deploy_1.AppPackager(sandboxRuntimeBundler, nativeUiBundler, ui);
const nodeAppPackager = new deploy_1.AppPackager(nodeRuntimeBundler, nativeUiBundler, ui);
const getWebTriggerURLCommand = new get_webtrigger_url_1.GetWebTriggerURLCommand(assertiveAppConfigReader, installationsClient, appEnvironmentClient, webTriggerGraphqlClient);
const autocompleteController = new autocomplete_controller_1.AutocompleteController(ui);
- const installationsService = new installation_service_1.InstallationService(assertiveAppConfigReader, installationsClient, installationsClient);
+ const installationsService = new installation_service_1.InstallationService(assertiveAppConfigReader, installationsClient, installationsClient, installationsClient);
const installView = new install_view_1.InstallView(ui);
- const installController = new install_controller_1.InstallController(assertiveAppConfigReader, configFile, ui, installAppSiteCommand, installationsService, installView, statsigService);
+ const installController = new install_controller_1.InstallController(assertiveAppConfigReader, configFile, ui, installAppSiteCommand, installationsService, installView, supportedProductsService);
const feedbackController = new feedback_controller_1.FeedbackController(credentialStore, feedbackPostClient);
const eligibilityController = new eligibility_controller_1.EligibilityController(new roa_service_1.RoaService(assertiveAppConfigReader, new graphql_client_8.RoaEligibilityClient(graphQLClient)), new eligibility_view_1.EligibilityView(ui));
+ const versionController = new version_controller_1.VersionController(new version_service_1.VersionService(assertiveAppConfigReader, new graphql_client_9.AppVersionDetailsClient(graphQLClient)), new version_view_1.VersionView(ui));
const lintService = new lint_service_1.LintService(configFile, fileReader);
const lintView = new lint_view_1.LintView(ui);
const lintController = new lint_controller_1.LintController(lintService, lintView);
const deployView = new deploy_view_1.DeployView(ui);
@@ -191,9 +197,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);
+ cmd = command_1.Command.program(ui, analyticsClientReporter, preCommandController, cliDetails, credentialStore, defaultEnvironmentController, featureFlagService, supportedProductsService);
return {
ui,
cmd,
configFile,
@@ -227,9 +233,10 @@
installationsService,
migrationKeysService,
customEntitiesService,
credentialStore,
- userRepository
+ userRepository,
+ supportedProductsService
},
controllers: {
autocompleteController,
deployController,
@@ -241,9 +248,10 @@
tunnelController,
settingsController,
stubController,
prerequisitesController,
- defaultEnvironmentController
+ defaultEnvironmentController,
+ versionController
}
};
};
exports.getDependencies = getDependencies;
Modified: package/out/command-line/controller/deploy-controller.js
Index: package/out/command-line/controller/deploy-controller.js
===================================================================
--- package/out/command-line/controller/deploy-controller.js
+++ package/out/command-line/controller/deploy-controller.js
@@ -202,17 +202,14 @@
}
}
const handlers = await this.configFile.getAppHandlers();
const resources = await this.configFile.getResources();
- let hasProdInstallations = false;
+ let hasNoInstallationsForEnv = true;
try {
- const prodInstallations = await this.installationsService.listAppInstallations({
- environment: 'production'
- });
- hasProdInstallations = !prodInstallations.installations.length;
+ hasNoInstallationsForEnv = await this.installationsService.hasNoAppInstallationsForEnv(appDetails.environmentType);
}
catch (err) {
- this.deployView.displayListAppInstallationsError();
+ this.deployView.displayHasNoAppInstallationsForEnvError();
if (verify) {
throw err;
}
}
@@ -220,9 +217,9 @@
? this.nodePackageUploadDeployCommand
: this.sandboxPackageUploadDeployCommand;
const config = await this.configFile.readConfig();
const packageConfig = config.app?.package;
- const analytics = await this.deployView.reportDeploymentProgress(appDetails, hasProdInstallations, () => deployCommand.execute({
+ const analytics = await this.deployView.reportDeploymentProgress(appDetails, hasNoInstallationsForEnv, () => deployCommand.execute({
handlers,
resources,
environmentKey: environment,
packageConfig,
Modified: package/out/command-line/view/deploy-view.js
Index: package/out/command-line/view/deploy-view.js
===================================================================
--- package/out/command-line/view/deploy-view.js
+++ package/out/command-line/view/deploy-view.js
@@ -14,10 +14,10 @@
}
displayStart(environment, environmentType) {
this.ui.info(cli_shared_1.Text.deploy.cmd.start1(environment, environmentType));
}
- displayListAppInstallationsError() {
- this.ui.info(cli_shared_1.Text.deploy.taskListInstallation.listInstallationError);
+ displayHasNoAppInstallationsForEnvError() {
+ this.ui.info(cli_shared_1.Text.deploy.hasNoAppInstallationsForEnv.hasNoAppInstallationsForEnvError);
}
displayLintRunning() {
this.ui.info(cli_shared_1.Text.lint.running);
}
Modified: package/out/environment/graphql-client.js
Index: package/out/environment/graphql-client.js
===================================================================
--- package/out/environment/graphql-client.js
+++ package/out/environment/graphql-client.js
@@ -58,8 +58,9 @@
createdAt
versions(first: 1) {
nodes {
updatedAt
+ primaryProduct
}
}
}
}
@@ -74,9 +75,10 @@
return app.environments.map((environment) => {
return {
type: environment.type,
key: environment.key,
- lastDeployedAt: environment.versions?.nodes?.[0]?.updatedAt || environment.createdAt
+ lastDeployedAt: environment.versions?.nodes?.[0]?.updatedAt || environment.createdAt,
+ primaryProduct: environment.versions?.nodes?.[0]?.primaryProduct || undefined
};
});
}
async deleteEnvironments(details) {
Modified: package/out/installations/graphql-client.js
Index: package/out/installations/graphql-client.js
===================================================================
--- package/out/installations/graphql-client.js
+++ package/out/installations/graphql-client.js
@@ -72,9 +72,9 @@
}
exports.InstallationNotFoundError = InstallationNotFoundError;
class InstallationsGraphqlClient {
graphqlClient;
- cloudIdTranslator;
+ sitedProductTranslator;
bitbucketTranslator;
pause;
SITE_RESOURCE_TYPE = 'site';
WORKSPACE_RESOURCE_TYPE = 'workspace';
@@ -85,11 +85,11 @@
resourceId: resourceId
});
return ari.toString();
}
- constructor(graphqlClient, cloudIdTranslator, bitbucketTranslator, pause) {
+ constructor(graphqlClient, sitedProductTranslator, bitbucketTranslator, pause) {
this.graphqlClient = graphqlClient;
- this.cloudIdTranslator = cloudIdTranslator;
+ this.sitedProductTranslator = sitedProductTranslator;
this.bitbucketTranslator = bitbucketTranslator;
this.pause = pause;
}
async buildInstallationContext(product, site) {
@@ -99,9 +99,9 @@
getProductTranslation(product) {
if (product && (0, cli_shared_1.isBitbucketProduct)(product)) {
return this.bitbucketTranslator;
}
- return this.cloudIdTranslator;
+ return this.sitedProductTranslator;
}
async installAppIntoSite({ environmentKey, site, product, appId, licenseOverride, overrides }) {
const workspaceAri = await this.buildInstallationContext(product, site);
const query = `
@@ -259,8 +259,34 @@
return matchedInstallation;
}
throw new InstallationNotFoundError(cli_shared_1.Text.installationId.errors.notFound(installationId));
}
+ async hasNoAppInstallationsForEnv(appId, appEnv) {
+ const query = `
+ query forge_cli_hasNoAppInstallationsForEnv($filter: AppInstallationsByAppFilter!) {
+ ecosystem {
+ appInstallationsByApp(filter: $filter, first: 1) {
+ totalCount
+ }
+ }
+ }
+ `;
+ const result = (await this.graphqlClient.query(query, {
+ filter: {
+ apps: {
+ ids: [appId]
+ },
+ appEnvironments: {
+ types: [appEnv]
+ }
+ }
+ }));
+ const totalCount = result?.ecosystem?.appInstallationsByApp?.totalCount ?? -1;
+ if (totalCount < 0) {
+ throw new MissingAppError();
+ }
+ return totalCount === 0;
+ }
async getAppInstallationTask(taskId) {
const query = `
query forge_cli_getInstallationTask($id: ID!) {
appInstallationTask(id: $id) {
@@ -314,11 +340,13 @@
return [...new Set(installationContexts.filter((context) => condition(context)))];
}
async getCombinedHostnameMap(installationContexts) {
const bitbucketAris = this.getResourceArisForProduct(installationContexts, this.bitbucketTranslator.ariBelongsToProduct);
- const bbWorkspaceAriToHostname = await this.bitbucketTranslator.getSitesForResourceAris(bitbucketAris);
- const cloudIdAris = this.getResourceArisForProduct(installationContexts, this.cloudIdTranslator.ariBelongsToProduct);
- const siteAriToHostname = await this.cloudIdTranslator.getSitesForResourceAris(cloudIdAris);
+ const cloudIdAris = this.getResourceArisForProduct(installationContexts, this.sitedProductTranslator.ariBelongsToProduct);
+ const [siteAriToHostname, bbWorkspaceAriToHostname] = await Promise.all([
+ this.sitedProductTranslator.getSitesForResourceAris(cloudIdAris),
+ this.bitbucketTranslator.getSitesForResourceAris(bitbucketAris)
+ ]);
const combinedAriToHostname = {
...siteAriToHostname,
...bbWorkspaceAriToHostname
};
@@ -332,14 +360,21 @@
const combinedAriToHostname = await this.getCombinedHostnameMap(installationContexts);
return installationContexts.map((context, i) => {
const { environment, environmentType, installation } = installations[i];
const site = combinedAriToHostname[context.toString()];
+ const secondaryProducts = (installation.secondaryInstallationContexts ?? [])
+ .map((context) => (0, cli_shared_1.parseInstallationContext)(context))
+ .map((context) => context.resourceOwner);
return {
id: installation.id,
+ ...(secondaryProducts.length > 0 ? { secondaryProducts } : {}),
product: context.resourceOwner,
environmentKey: environment,
environmentType,
context: installation.installationContext,
+ ...(installation.secondaryInstallationContexts?.length
+ ? { secondaryContexts: installation.secondaryInstallationContexts }
+ : {}),
site,
version: installation.appEnvironmentVersion || {
isLatest: false,
version: '1.0.0'
@@ -354,8 +389,9 @@
appInstallationsByApp(filter: $filter, first: $first, after: $after) {
nodes {
id
installationContext
+ secondaryInstallationContexts
appEnvironment {
key
type
}
@@ -413,8 +449,9 @@
environmentByKey(key: $environmentKey) {
type
versions(first: $firstN) {
nodes {
+ primaryProduct
permissions {
egress {
addresses
}
Modified: package/out/command-line/index.js
Index: package/out/command-line/index.js
===================================================================
--- package/out/command-line/index.js
+++ package/out/command-line/index.js
@@ -19,25 +19,27 @@
const register_providers_commands_1 = require("./register-providers-commands");
const register_environments_commands_1 = require("./register-environments-commands");
const register_storage_commands_1 = require("./register-storage-commands");
const register_eligibility_commands_1 = require("./register-eligibility-commands");
-function registerCommands(deps) {
+const register_version_commands_1 = require("./register-version-commands");
+async function registerCommands(deps) {
(0, register_autocomplete_commands_1.registerCommands)(deps);
(0, register_authentication_command_1.registerCommands)(deps);
(0, register_app_commands_1.registerCommands)(deps);
(0, register_deployment_commands_1.registerCommands)(deps);
- (0, register_installation_commands_1.registerCommands)(deps);
+ await (0, register_installation_commands_1.registerCommands)(deps);
(0, register_environments_commands_1.registerCommands)(deps);
(0, register_environment_variables_commands_1.registerCommands)(deps);
(0, register_lint_command_1.registerCommands)(deps);
(0, register_log_commands_1.registerCommands)(deps);
(0, register_tunnel_commands_1.registerCommands)(deps);
- (0, register_webtrigger_commands_1.registerCommands)(deps);
+ await (0, register_webtrigger_commands_1.registerCommands)(deps);
(0, register_feedback_commands_1.registerCommands)(deps);
(0, register_settings_commands_1.registerCommands)(deps);
(0, register_providers_commands_1.registerCommands)(deps);
(0, register_storage_commands_1.registerCommands)(deps);
(0, register_eligibility_commands_1.registerCommands)(deps);
+ (0, register_version_commands_1.registerCommands)(deps);
}
exports.registerCommands = registerCommands;
const registerEvents = ({ ui }) => {
process.on('unhandledRejection', async (reason) => {
@@ -47,9 +49,9 @@
const main = async () => {
const cliDetails = (0, version_info_1.getCLIDetails)();
const deps = await (0, dependency_injection_1.getDependencies)(cliDetails);
registerEvents(deps);
- registerCommands(deps);
+ await registerCommands(deps);
await deps.controllers.prerequisitesController.check();
await deps.cmd.parse(process.argv);
};
exports.main = main;
Modified: package/out/installations/site-translation/index.js
Index: package/out/installations/site-translation/index.js
===================================================================
--- package/out/installations/site-translation/index.js
+++ package/out/installations/site-translation/index.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./bitbucket"), exports);
-tslib_1.__exportStar(require("./cloudid-products"), exports);
+tslib_1.__exportStar(require("./sited-products"), exports);
tslib_1.__exportStar(require("./site-translation"), exports);
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
@@ -15,17 +15,17 @@
ui;
installAppSiteCommand;
installationService;
installView;
- statsigService;
- constructor(appConfigProvider, configFile, ui, installAppSiteCommand, installationService, installView, statsigService) {
+ supportedProductsService;
+ constructor(appConfigProvider, configFile, ui, installAppSiteCommand, installationService, installView, supportedProductsService) {
this.appConfigProvider = appConfigProvider;
this.configFile = configFile;
this.ui = ui;
this.installAppSiteCommand = installAppSiteCommand;
this.installationService = installationService;
this.installView = installView;
- this.statsigService = statsigService;
+ this.supportedProductsService = supportedProductsService;
}
async securityPrompt(site) {
this.ui.info(cli_shared_1.Text.install.security.banner(site.host));
let isTrustedApp = true;
@@ -42,8 +42,9 @@
}
}
}
async installOrUpgrade(upgrade, environment, environmentType, site, product, appId, text, license, overrides) {
+ const isWorkspaceProduct = !!product && (await this.supportedProductsService.isWorkspaceProduct(product));
return this.ui.displayProgress(async () => {
if (upgrade) {
const isAlreadyUpdated = await this.installationService.upgradeInstallation(site, product, environment, appId);
return isAlreadyUpdated;
@@ -59,9 +60,9 @@
return false;
}
}, text.cmd.start(environment, environmentType), (alreadyUpdated) => {
if (alreadyUpdated) {
- return product && (0, cli_shared_1.isWorkspaceProduct)(product)
+ return isWorkspaceProduct
? cli_shared_1.Text.upgrade.alreadyUpdated.spinnerWorkspace
: cli_shared_1.Text.upgrade.alreadyUpdated.spinnerSite;
}
else {
@@ -70,13 +71,12 @@
});
}
async promptForProduct() {
this.ui.info(cli_shared_1.Text.installationContext.overviewProduct);
- const enableAtlas = await this.statsigService.isAtlasProductSupported();
- return await this.ui.promptForList(cli_shared_1.Text.installationContext.promptProduct, (0, cli_shared_1.getSupportedProducts)({ enableAtlas }));
+ return await this.ui.promptForList(cli_shared_1.Text.installationContext.promptProduct, await this.supportedProductsService.getSupportedProducts());
}
async promptForSite(product) {
- const isWorkspaceBased = product && (0, cli_shared_1.isWorkspaceProduct)(product);
+ const isWorkspaceBased = product && (await this.supportedProductsService.isWorkspaceProduct(product));
const overviewText = isWorkspaceBased
? cli_shared_1.Text.installationContext.overviewWorkspace
: cli_shared_1.Text.installationContext.overviewSite;
this.ui.info(overviewText);
@@ -87,20 +87,21 @@
const invalidText = isWorkspaceBased ? cli_shared_1.Text.error.invalidWorkspace : cli_shared_1.Text.error.invalidSite;
if (!trySite) {
throw new cli_shared_1.ValidationError(invalidText);
}
- return (0, cli_shared_1.validateSite)(trySite, product);
+ return this.supportedProductsService.validateSite(trySite, product);
}
async promptForUpgrade(siteOption, productOption, environmentOption) {
const { installations } = await this.installationService.listNonTechnicalAppInstallations({
- site: siteOption?.host,
+ site: siteOption,
product: productOption,
environment: environmentOption
});
const { site, product, environmentKey, environmentType } = await this.installView.promptForUpgrade(installations);
+ const productName = (0, cli_shared_1.productDisplayName)(product);
return {
- site: (0, cli_shared_1.validateSite)(site, product),
- product: (0, cli_shared_1.productDisplayName)(product),
+ site: await this.supportedProductsService.validateSite(site, productName),
+ product: productName,
environment: environmentKey,
environmentType
};
}
@@ -154,9 +155,11 @@
product = upgradeResult.product;
}
product = product ? product : await this.promptForProduct();
site = site ? site : await this.promptForSite(product);
- const bannerText = product && (0, cli_shared_1.isWorkspaceProduct)(product) ? text.bannerWorkspace : text.bannerSite;
+ const bannerText = product && (await this.supportedProductsService.isWorkspaceProduct(product))
+ ? text.bannerWorkspace
+ : text.bannerSite;
this.ui.info(bannerText);
if ((0, cli_shared_1.isSecureSite)(site)) {
await this.securityPrompt(site);
}
@@ -192,9 +195,9 @@
const uniqueProductsFromScopes = this.getUniqueInstallationProductsFromScopes(environmentScopes);
if (!uniqueProductsFromScopes || uniqueProductsFromScopes.length <= 1)
return;
const { installations } = await this.installationService.listNonTechnicalAppInstallations({
- site: site.host,
+ site,
environment
});
const productsToUpgrade = installations
.filter((installation) => !installation.version.isLatest)
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
@@ -18,9 +18,9 @@
const installationIndex = await ui.promptForSingleChoiceTable(installationTablePrompt, installationTableOverview, ['Environment', 'Site', 'Product', 'Version', 'Major Version'], installations.map(({ id, environmentKey, product, site, version }) => ({
names: [
(0, cli_shared_1.environmentToOption)(environmentKey),
site,
- (0, cli_shared_1.capitalise)(product),
+ (0, cli_shared_1.productDisplayName)(product),
cli_shared_1.Text.install.booleanToScope(version.isLatest),
(0, semver_1.major)(version.version).toString()
],
value: id,
Modified: package/out/service/installation-service.js
Index: package/out/service/installation-service.js
===================================================================
--- package/out/service/installation-service.js
+++ package/out/service/installation-service.js
@@ -1,44 +1,75 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.InstallationService = void 0;
+exports.InstallationService = exports.MultipleMatchingInstallationsError = void 0;
const cli_shared_1 = require("@forge/cli-shared");
const egress_1 = require("@forge/egress");
const lodash_1 = require("lodash");
const graphql_client_1 = require("../installations/graphql-client");
const IDENTITY_PRODUCT_NAME = 'identity';
+const BITBUCKET_PRODUCT_NAME = 'bitbucket';
const JIRA_SERVICE_DESK_PRODUCT_NAME = 'jira-servicedesk';
+class MultipleMatchingInstallationsError extends cli_shared_1.BaseError {
+ constructor() {
+ super(cli_shared_1.Text.error.multipleMatchingInstallations);
+ }
+}
+exports.MultipleMatchingInstallationsError = MultipleMatchingInstallationsError;
class InstallationService {
getAppConfig;
listInstallationsClient;
upgradeAppInstallationsClient;
- constructor(getAppConfig, listInstallationsClient, upgradeAppInstallationsClient) {
+ hasNoAppInstallationsForEnvClient;
+ constructor(getAppConfig, listInstallationsClient, upgradeAppInstallationsClient, hasNoAppInstallationsForEnvClient) {
this.getAppConfig = getAppConfig;
this.listInstallationsClient = listInstallationsClient;
this.upgradeAppInstallationsClient = upgradeAppInstallationsClient;
+ this.hasNoAppInstallationsForEnvClient = hasNoAppInstallationsForEnvClient;
}
+ comparePossibleInstallations(url1, url2) {
+ const trimmedUrl1 = url1.replace(/\/+$/, '');
+ const trimmedUrl2 = url2.replace(/\/+$/, '');
+ return trimmedUrl1 === trimmedUrl2;
+ }
+ matchSiteForProduct(filterSite, installationSite, installationProduct) {
+ if (installationProduct === BITBUCKET_PRODUCT_NAME) {
+ return this.comparePossibleInstallations(filterSite.href, installationSite);
+ }
+ return this.comparePossibleInstallations(filterSite.host, installationSite);
+ }
filterInstallations(installations, { site: filterSite, product: filterProduct, environment: filterEnvironment }) {
- const isDefaultEnvironment = (env) => env === (0, cli_shared_1.optionToEnvironment)(cli_shared_1.DEFAULT_ENVIRONMENT_OPTION);
return installations.filter(({ product, site, environmentKey }) => {
const matchProduct = !filterProduct || filterProduct === (0, cli_shared_1.productDisplayName)(product);
- const matchSite = !filterSite || filterSite === site;
- const matchEnvironment = filterEnvironment
- ? isDefaultEnvironment(filterEnvironment) || filterEnvironment === (0, cli_shared_1.environmentToOption)(environmentKey)
- : true;
+ const matchSite = !filterSite || this.matchSiteForProduct(filterSite, site, product);
+ const matchEnvironment = !filterEnvironment || filterEnvironment === (0, cli_shared_1.optionToEnvironment)(environmentKey);
return matchProduct && matchSite && matchEnvironment;
});
}
async listAppInstallations(filter) {
const { id: appId } = await this.getAppConfig();
const installations = await this.listInstallationsClient.listInstallations(appId);
return { installations: this.filterInstallations(installations, { ...filter }) };
}
+ async hasNoAppInstallationsForEnv(appEnv) {
+ const { id: appId } = await this.getAppConfig();
+ return this.hasNoAppInstallationsForEnvClient.hasNoAppInstallationsForEnv(appId, appEnv);
+ }
async listNonTechnicalAppInstallations(filter) {
const { installations } = await this.listAppInstallations(filter);
return {
installations: installations.filter(({ product }) => product !== IDENTITY_PRODUCT_NAME && product !== JIRA_SERVICE_DESK_PRODUCT_NAME)
};
}
+ async findOnlyMatchingInstallation(filter) {
+ const filterInstalls = await this.listNonTechnicalAppInstallations(filter);
+ if (!filterInstalls.installations.length) {
+ throw new cli_shared_1.UserError(cli_shared_1.Text.error.invalidInstallationContext);
+ }
+ if (filterInstalls.installations.length !== 1) {
+ throw new MultipleMatchingInstallationsError();
+ }
+ return filterInstalls.installations[0];
+ }
async hasOutdatedProductInstallation(environment) {
const { installations } = await this.listNonTechnicalAppInstallations({
environment
});
@@ -64,25 +95,27 @@
}
}
getPermissionsFromAppEnvironmentVersion(appEnvironmentVersion) {
const permissions = appEnvironmentVersion?.permissions[0];
+ const primaryProduct = appEnvironmentVersion?.primaryProduct ?? undefined;
if (!permissions) {
- return { scopes: [], egressAddresses: [] };
+ return { scopes: [], egressAddresses: [], primaryProduct };
}
const scopes = permissions.scopes.map((s) => s.key);
const egressAddresses = permissions?.egress ? (0, cli_shared_1.flatMap)(permissions.egress, ({ addresses }) => addresses ?? []) : [];
- return { scopes, egressAddresses };
+ return { scopes, egressAddresses, primaryProduct };
}
async getAppEnvironmentPermissions(appId, environmentKey) {
const versionDetails = await this.listInstallationsClient.getVersions(appId, environmentKey, 2);
const versions = versionDetails?.nodes;
if (!versions || versions.length === 0)
return;
- const [{ scopes, egressAddresses }, oldVersion] = versions.map((appEnvironmentVersion) => this.getPermissionsFromAppEnvironmentVersion(appEnvironmentVersion));
+ const [{ scopes, egressAddresses, primaryProduct }, oldVersion] = versions.map((appEnvironmentVersion) => this.getPermissionsFromAppEnvironmentVersion(appEnvironmentVersion));
const groupedEgressAddresses = (0, egress_1.sortAndGroupEgressPermissionsByDomain)(egressAddresses);
if (!oldVersion) {
return {
scopes,
+ primaryProduct,
hasDeployments: false,
egressAddresses: groupedEgressAddresses,
addedScopes: scopes,
environmentType: versionDetails.environmentType
@@ -91,8 +124,9 @@
const { scopes: oldScopes } = oldVersion;
const addedScopes = (0, lodash_1.difference)(scopes, oldScopes);
return {
scopes,
+ primaryProduct,
hasDeployments: true,
egressAddresses: groupedEgressAddresses,
addedScopes,
environmentType: versionDetails.environmentType
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
@@ -12,9 +12,17 @@
TemplateCategory["UI_KIT_2"] = "UI Kit";
TemplateCategory["CUSTOM_UI"] = "Custom UI";
TemplateCategory["BACKEND"] = "Triggers and Validators";
})(TemplateCategory || (TemplateCategory = {}));
-const PRODUCT_OPTIONS = ['show-all', 'bitbucket', 'compass', 'confluence', 'jira', 'jira-service-management'];
+const PRODUCT_OPTIONS = [
+ 'show-all',
+ 'bitbucket',
+ 'compass',
+ 'confluence',
+ 'jira',
+ 'jira-service-management',
+ 'teamwork-graph'
+];
const MAX_NAME_LENGTH = 60;
function formatProduct(product) {
return product
.split('-')
Modified: package/out/command-line/register-installation-commands.js
Index: package/out/command-line/register-installation-commands.js
===================================================================
--- package/out/command-line/register-installation-commands.js
+++ package/out/command-line/register-installation-commands.js
@@ -1,41 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.registerCommands = exports.performMultipleUninstalls = exports.performSingleUninstall = exports.validateContext = void 0;
+exports.registerCommands = exports.performMultipleUninstalls = exports.performSingleUninstall = exports.registerListInstallationsCommand = void 0;
const cli_shared_1 = require("@forge/cli-shared");
const shared_1 = require("../installations/shared");
const errors_1 = require("./errors");
const semver_1 = require("semver");
const COMMAND_NAME = 'install';
-async function validateContext({ site, product }) {
- if (product) {
- product = (0, cli_shared_1.productDisplayName)(product);
- if (!(0, cli_shared_1.isSupportedProduct)(product)) {
- throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.invalidProduct);
- }
- }
- const siteURL = site ? (0, cli_shared_1.validateSite)(site, product) : undefined;
- return { siteURL, product };
-}
-exports.validateContext = validateContext;
-const registerInstallAppCommand = ({ cmd, controllers: { installController } }) => {
+const registerInstallAppCommand = async ({ cmd, controllers: { installController }, services: { supportedProductsService } }) => {
+ const supportedProducts = await supportedProductsService.getSupportedProducts();
cmd
.requireAppId()
.environmentOption()
- .option('-s, --site [site]', cli_shared_1.Text.optionSite)
- .option('-p, --product [product]', cli_shared_1.Text.optionProduct((0, cli_shared_1.getSupportedProducts)()))
- .precondition(validateContext)
+ .contextOption(supportedProducts)
.option('--upgrade', cli_shared_1.Text.install.optionUpgrade, false)
.option('--confirm-scopes', cli_shared_1.Text.install.optionConfirmScopes, false)
.option('-l, --license [license]', cli_shared_1.Text.install.optionLicense)
.option('--license-modes [licenseModes...]', cli_shared_1.Text.install.optionLicenseModes)
.option('--users-with-access [user...]', cli_shared_1.Text.install.optionUsersWithAccess)
.nonInteractiveOption('--site', '--product', '--environment')
.description(cli_shared_1.Text.install.cmd.description)
- .action(async ({ environment, siteURL, product, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive }) => {
+ .action(async ({ environment, site, product, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive }) => {
await installController.run({
environment,
- site: siteURL,
+ site,
product,
upgrade,
confirmScopes,
license,
@@ -53,20 +41,21 @@
.jsonOption()
.description(cli_shared_1.Text.installList.cmd)
.action(async ({ json }) => {
const { installations } = await installationsService.listAppInstallations();
+ const hasSecondaryInstallations = installations.some(({ secondaryProducts }) => secondaryProducts?.length);
ui.table([
['id', 'Installation ID'],
['environment', 'Environment'],
['site', 'Site'],
- ['product', 'Product'],
+ ['product', hasSecondaryInstallations ? 'Product(s)' : 'Product'],
['version', 'Version'],
['majorVersion', 'Major Version']
- ], installations.map(({ id, environmentKey, product, site, version: { isLatest, version } }) => ({
+ ], installations.map(({ id, environmentKey, product, secondaryProducts, site, version: { isLatest, version } }) => ({
id,
environment: (0, cli_shared_1.environmentToOption)(environmentKey),
site,
- product: (0, cli_shared_1.productDisplayName)(product),
+ product: (0, cli_shared_1.productsDisplayName)(product, secondaryProducts),
version: cli_shared_1.Text.install.booleanToScope(isLatest),
majorVersion: (0, semver_1.major)(version).toString()
})), {
json,
@@ -74,8 +63,9 @@
preMessage: cli_shared_1.Text.installList.banner
});
});
};
+exports.registerListInstallationsCommand = registerListInstallationsCommand;
const performSingleUninstall = async (installId, { ui, commands: { uninstallAppCommand } }) => {
const installation = await ui.displayProgress(() => uninstallAppCommand.execute(installId), cli_shared_1.Text.uninstall.cmd.start, (result) => ({
successful: !!result.successful,
message: cli_shared_1.Text.uninstall.cmd.success(false)
@@ -120,26 +110,33 @@
ui.info(cli_shared_1.Text.uninstall.interactive.done);
}
};
exports.performMultipleUninstalls = performMultipleUninstalls;
-const registerUninstallCommand = (deps) => {
- const { cmd, ui, services: { installationsService } } = deps;
+const registerUninstallCommand = async (deps) => {
+ const { cmd, ui, services: { installationsService, supportedProductsService } } = deps;
+ const supportedProducts = await supportedProductsService.getSupportedProducts();
cmd
- .command('uninstall [installationId]')
+ .command('uninstall')
+ .contextOption(supportedProducts)
+ .environmentOption()
.requireAppId()
.description(cli_shared_1.Text.uninstall.cmd.desc)
- .action(async (installationId) => {
+ .action(async ({ site, environment, product }) => {
const { installations } = await installationsService.listAppInstallations();
if (!installations.length) {
ui.info(cli_shared_1.Text.installList.noInstallations);
return;
}
- const installId = installationId?.trim();
- if (installId && installId.length > 0) {
+ if (site && product) {
+ const installation = await installationsService.findOnlyMatchingInstallation({
+ site,
+ product,
+ environment
+ });
ui.info(cli_shared_1.Text.uninstall.info);
ui.info(cli_shared_1.Text.ctrlC);
ui.emptyLine();
- await (0, exports.performSingleUninstall)(installId, deps);
+ await (0, exports.performSingleUninstall)(installation.id, deps);
}
else {
const filteredInstallations = installations.filter((install) => install.product !== 'identity' && install.product !== 'jira-servicedesk');
const selectedSitesIndexes = await ui.promptForTable(cli_shared_1.Text.uninstall.interactive.desc, cli_shared_1.Text.uninstall.interactive.progressInfo, ['Environment', 'Site', 'Product'], filteredInstallations.map(({ id, environmentKey, product, site }) => ({
@@ -159,12 +156,12 @@
}
});
};
const DEPRECATED_LIST_COMMAND = 'install:list';
-const registerCommands = ({ cmd, ...deps }) => {
+const registerCommands = async ({ cmd, ...deps }) => {
const install = cmd.command(COMMAND_NAME).description(cli_shared_1.Text.variables.description);
- registerUninstallCommand({ cmd, ...deps });
+ await registerUninstallCommand({ cmd, ...deps });
cmd.deprecatedCommand(DEPRECATED_LIST_COMMAND, `${COMMAND_NAME} ${LIST_COMMAND_NAME}`, deps.controllers.stubController);
- registerInstallAppCommand({ cmd: install, ...deps });
- registerListInstallationsCommand({ cmd: install, ...deps });
+ await registerInstallAppCommand({ cmd: install, ...deps });
+ (0, exports.registerListInstallationsCommand)({ cmd: install, ...deps });
};
exports.registerCommands = registerCommands;
Modified: package/out/command-line/register-webtrigger-commands.js
Index: package/out/command-line/register-webtrigger-commands.js
===================================================================
--- package/out/command-line/register-webtrigger-commands.js
+++ package/out/command-line/register-webtrigger-commands.js
@@ -25,9 +25,9 @@
return async () => {
await getValidWebtriggers(configFile);
};
}
-const registerCommands = ({ cmd, ui, graphqlGateway, configFile, services: { installationsService }, commands: { getWebTriggerURLCommand } }) => {
+const registerCommands = async ({ cmd, ui, configFile, services: { installationsService, supportedProductsService }, commands: { getWebTriggerURLCommand } }) => {
const validateWebtriggerKey = async (functionKey) => {
const availableWebTriggers = await getValidWebtriggers(configFile);
if (functionKey) {
if (!availableWebTriggers.has(functionKey)) {
@@ -39,19 +39,27 @@
const options = [...availableWebTriggers.keys()];
return await ui.promptForList(cli_shared_1.Text.webtrigger.promptFuncKey, options);
}
};
+ const supportedProducts = await supportedProductsService.getSupportedProducts();
cmd
- .command('webtrigger [installationId]')
+ .command('webtrigger')
.requireAppId()
.description(cli_shared_1.Text.webtrigger.cmd)
.option('-f, --functionKey [function]', cli_shared_1.Text.webtrigger.optionFuncKey)
+ .contextOption(supportedProducts)
+ .environmentOption()
.precondition(manifestDefinesTriggers(configFile))
- .action(async (argInstallationId, { functionKey }) => {
+ .action(async ({ functionKey, site, environment, product }) => {
let selectedInstallationId = '';
- if (argInstallationId) {
+ if (site && product) {
ui.info(cli_shared_1.Text.webtrigger.overviewFuncKey);
- selectedInstallationId = (0, installation_helper_1.validateInstallationId)(argInstallationId);
+ const installation = await installationsService.findOnlyMatchingInstallation({
+ site,
+ environment,
+ product
+ });
+ selectedInstallationId = (0, installation_helper_1.validateInstallationId)(installation?.id);
}
else {
const appInstallation = await installationsService.listNonTechnicalAppInstallations();
const installation = await (0, installation_helper_1.selectSingleInstallation)(ui, appInstallation.installations, cli_shared_1.Text.webtrigger.promptInstallationTable, cli_shared_1.Text.webtrigger.overViewInstallationTable);
Modified: package/out/service/tunnel-service.js
Index: package/out/service/tunnel-service.js
===================================================================
--- package/out/service/tunnel-service.js
+++ package/out/service/tunnel-service.js
@@ -239,9 +239,9 @@
const options = [`-v=${process.cwd()}:/app:cached`];
if (process.env.FORGE_DEV_DOCKER_TUNNEL) {
const monorepoRoot = (0, path_1.join)(__dirname, '../../../..');
options.push(`-v=${monorepoRoot}:/monorepo:cached`);
- options.push(`-v=${monorepoRoot}/node_modules/@koterpillar/cloudflared/docker-bin:/monorepo/node_modules/@koterpillar/cloudflared/bin`);
+ options.push(`-v=${monorepoRoot}/node_modules/cloudflared/docker-bin:/monorepo/node_modules/cloudflared/bin`);
}
if (process.env.FORGE_TUNNEL_MOUNT_DIRECTORIES) {
const mounts = process.env.FORGE_TUNNEL_MOUNT_DIRECTORIES.split(',');
mounts.forEach((mount) => {
Modified: package/out/autocomplete/autocomplete-config.json
Index: package/out/autocomplete/autocomplete-config.json
===================================================================
--- package/out/autocomplete/autocomplete-config.json
+++ package/out/autocomplete/autocomplete-config.json
@@ -121,8 +121,17 @@
"uninstall": {
"--verbose": {
"requireUserArg": false
},
+ "--site": {
+ "requireUserArg": true
+ },
+ "--product": {
+ "requireUserArg": true
+ },
+ "--environment": {
+ "requireUserArg": true
+ },
"--help": {
"requireUserArg": false
}
},
@@ -205,8 +214,17 @@
},
"--functionKey": {
"requireUserArg": true
},
+ "--site": {
+ "requireUserArg": true
+ },
+ "--product": {
+ "requireUserArg": true
+ },
+ "--environment": {
+ "requireUserArg": true
+ },
"--help": {
"requireUserArg": false
}
},
@@ -257,8 +275,16 @@
},
"--help": {
"requireUserArg": false
}
+ },
+ "version": {
+ "--verbose": {
+ "requireUserArg": false
+ },
+ "--help": {
+ "requireUserArg": false
+ }
}
},
"options": {
"--version": {
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,10 +1,10 @@
{
"name": "@forge/cli",
- "version": "10.13.6",
+ "version": "11.0.0-next.18",
"description": "A command line interface for managing Atlassian-hosted apps",
"author": "Atlassian",
- "license": "UNLICENSED",
+ "license": "SEE LICENSE IN LICENSE.txt",
"bin": {
"forge": "out/bin/cli.js"
},
"homepage": "https://developer.atlassian.com/platform/forge",
@@ -17,18 +17,18 @@
"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.7",
- "@forge/cli-shared": "6.5.4",
- "@forge/egress": "1.3.0",
- "@forge/lint": "5.6.7",
- "@forge/manifest": "8.6.0",
- "@forge/runtime": "5.10.4",
- "@forge/tunnel": "5.9.1",
- "@forge/util": "1.4.6",
+ "@forge/bundler": "4.20.8-next.13",
+ "@forge/cli-shared": "6.6.0-next.11",
+ "@forge/egress": "1.3.1-next.0",
+ "@forge/lint": "5.7.0-next.13",
+ "@forge/manifest": "8.6.1-next.4",
+ "@forge/runtime": "5.10.5-next.2",
+ "@forge/tunnel": "5.9.2-next.15",
+ "@forge/util": "1.4.7-next.2",
"@sentry/node": "7.106.0",
- "@forge/i18n": "0.0.2",
+ "@forge/i18n": "0.0.3-next.2",
"ajv": "^8.12.0",
"archiver": "^6.0.2",
"case": "^1.6.3",
"chalk": "^4.1.2",
@@ -38,8 +38,9 @@
"commander": "^11.1.0",
"cross-spawn": "^7.0.3",
"dayjs": "^1.11.10",
"didyoumean": "^1.2.2",
+ "diff": "^7.0.0",
"env-paths": "^2.2.1",
"exponential-backoff": "^3.1.1",
"form-data": "^4.0.0",
"fs-extra": "^11.2.0",
@@ -62,8 +63,9 @@
"@types/cheerio": "^0.22.35",
"@types/command-exists": "^1.2.3",
"@types/cross-spawn": "^6.0.6",
"@types/didyoumean": "^1.2.2",
+ "@types/diff": "^6.0.0",
"@types/fs-extra": "^11.0.4",
"@types/hidefile": "^3.0.3",
"@types/inquirer": "^8.2.10",
"@types/jest": "^29.5.12",
Modified: package/out/installations/site-translation/bitbucket.d.ts.map
Index: package/out/installations/site-translation/bitbucket.d.ts.map
===================================================================
--- package/out/installations/site-translation/bitbucket.d.ts.map
+++ package/out/installations/site-translation/bitbucket.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"bitbucket.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/bitbucket.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAU,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AAExE,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,GAAG,EAAE,GAAG;CAGrB;AAOD,eAAO,MAAM,oBAAoB,QAAO,MAEvC,CAAC;AAEF,qBAAa,mBAAoB,YAAW,cAAc;IACjD,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;IAIxC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAUlE,uBAAuB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAc5E,cAAc;IAwBf,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAsBtE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,iBAAiB;CAG1B"}
\ No newline at end of file
+{"version":3,"file":"bitbucket.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/bitbucket.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,GAAG,EAAE,GAAG;CAGrB;AAOD,eAAO,MAAM,oBAAoB,QAAO,MAEvC,CAAC;AAEF,qBAAa,mBAAoB,YAAW,cAAc;IACjD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAUlE,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAcvE,cAAc;IAwBf,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAsBtE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,iBAAiB;CAG1B"}
\ 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":"AAAA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAU,MAAM,WAAW,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAEL,MAAM,EAEN,UAAU,EAEV,gBAAgB,EAChB,+BAA+B,EAE/B,kBAAkB,EAClB,cAAc,EAEd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,aAAK,YAAY,GAAG,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,+BAA+B,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAEhG,qBAAa,YAAa,SAAQ,cAAe,YAAW,kBAAkB;IAC5E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM;IAK/C,cAAc,QAAO,MAAM,CAAqB;IAEhD,aAAa,IAAI,cAAc;CAKvC;AAED,aAAK,OAAO,GAAG,EAAE,CAAC;AAOlB,aAAK,SAAS,CACZ,OAAO,SAAS,MAAM,EACtB,OAAO,SAAS,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,IACtD,OAAO,SAAS,IAAI,MAAM,CAAC,OAAO,MAAM,IAAI,EAAE,GAC9C,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,GAC/B,OAAO,SAAS,KAAK,MAAM,IAAI,KAAK,MAAM,CAAC,MAAM,GAC/C;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;CAAE,GAC9C,OAAO,SAAS,KAAK,MAAM,IAAI,KAAK,MAAM,CAAC,MAAM,GAC/C;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;CAAE,GAC9C,OAAO,SAAS,KAAK,MAAM,IAAI,KAAK,MAAM,CAAC,GAAG,GAC5C;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO;CAAE,GAC5C,OAAO,SAAS,KAAK,MAAM,IAAI,KAAK,MAAM,CAAC,GAAG,GAC5C;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO;CAAE,GAC5C,OAAO,SAAS,QAAQ,MAAM,IAAI,EAAE,GAClC,OAAO,SAAS,SAAS,GACvB;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO;CAAE,GACnC,KAAK,GACP,OAAO,SAAS,KAAK,MAAM,IAAI,EAAE,GAC/B,OAAO,SAAS,OAAO,GACrB;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO;CAAE,GACnC,OAAO,SAAS,SAAS,GACvB;KAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,GACpC,KAAK,GACT,KAAK,CAAC;AAEtB,oBAAY,WAAW,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhD,aAAK,OAAO,GAAG,MAAM,EAAE,CAAC;AAExB,aAAK,SAAS,CAAC,OAAO,SAAS,MAAM,IAAI,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAExH,aAAK,UAAU,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;AAE9E,aAAK,oBAAoB,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,QAAQ,IAAI,CAChF,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAC5B,OAAO,CAAC,QAAQ,CAAC,CAAC;AAevB,qBAAa,OAAO,CAAC,IAAI,SAAS,OAAO,GAAG,EAAE,EAAE,IAAI,SAAS,OAAO,GAAG,WAAW;IA+D9E,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IArE3C,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,CAEpB;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAE5B;IAEF,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAE/B;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAE7B;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAE7B;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAE7B;IAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAExC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyD;IAExF,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,uBAAuB,EACxC,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,eAAe,EAAE,gBAAgB,EACjC,4BAA4B,EAAE,4BAA4B,EAC1D,kBAAkB,EAAE,kBAAkB,EACtC,wBAAwB,EAAE,wBAAwB,GACjD,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC;IAgB3B,OAAO;IAoCP,OAAO,CAAC,KAAK;IAsBN,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAKzD,OAAO,CAAC,OAAO,SAAS,MAAM,EACnC,IAAI,EAAE,OAAO,EACb,IAAI,CAAC,EAAE,SAAS,CAAC,cAAc,GAC9B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAyBpC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAOzF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAK9C,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,EAC5F,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAM7C,YAAY,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAC7E,YAAY,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAK1G,mBAAmB,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAI1C,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAInC,oBAAoB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAI3F,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAQ5E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1C,iBAAiB,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAUlE,aAAa,CAClB,iBAAiB,EAAE,gBAAgB,EAAE,GACpC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAW5D,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAIrD,uBAAuB,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAI9C,yBAAyB,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAIvD,OAAO,CAAC,8BAA8B;IAW/B,eAAe,mBACJ,WAAW,IAAI,EAAE,IAAI,CAAC,4BAC7B,WAAW,IAAI,EAAE,IAAI,CAAC,mBAmG/B;YAGY,kBAAkB;YAUlB,mBAAmB;IAQjC,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,oBAAoB;IAuBrB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIlC,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAehD,cAAc;IAqC5B,OAAO,CAAC,eAAe;IA0BvB,qBAAqB,IAAI,YAAY,CAAC,kBAAkB;CAGzD;AAiCD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,GAAG,YAAY,CAAC,kBAAkB,CAY7F;AAED,wBAAsB,eAAe,CAAC,EACpC,wBAAwB,EACxB,IAAI,EACJ,OAAO,EACR,EAAE;IACD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CActD"}
\ 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,EAKnB,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;AAG5E,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmXvE,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8XvE,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/command-line/controller/deploy-controller.d.ts.map
Index: package/out/command-line/controller/deploy-controller.d.ts.map
===================================================================
--- package/out/command-line/controller/deploy-controller.d.ts.map
+++ package/out/command-line/controller/deploy-controller.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAGpB,UAAU,EACV,cAAc,EAEd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAXxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,6BAA6B;YAWvB,wBAAwB;YA2BxB,mBAAmB;YAmCnB,oBAAoB;YA4BpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EACf,WAAW,EACX,MAAM,EACN,cAAc,EACd,YAAY,EACb,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAkFpD"}
\ No newline at end of file
+{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAGpB,UAAU,EACV,cAAc,EAEd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAXxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,6BAA6B;YAWvB,wBAAwB;YA2BxB,mBAAmB;YAmCnB,oBAAoB;YA4BpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EACf,WAAW,EACX,MAAM,EACN,cAAc,EACd,YAAY,EACb,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAiFpD"}
\ No newline at end of file
Modified: package/out/command-line/view/deploy-view.d.ts.map
Index: package/out/command-line/view/deploy-view.d.ts.map
===================================================================
--- package/out/command-line/view/deploy-view.d.ts.map
+++ package/out/command-line/view/deploy-view.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"deploy-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/deploy-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAkB,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,SAAS,IAAI,EAAE;IAIf,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,GAAG,IAAI;IAI5E,gCAAgC,IAAI,IAAI;IAIxC,kBAAkB,IAAI,IAAI;IAI1B,mCAAmC,IAAI,IAAI;IAK3C,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK1G,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK1G,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKjD,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAKlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,qBAAqB,IAAI,IAAI;IAI7B,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAInG,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzD,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjF,0CAA0C,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAIrF,iCAAiC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAM5D,wCAAwC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK7D,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5D,wCAAwC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAM7C,yCAAyC,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnE,0CAA0C,IAAI,IAAI;IAKlD,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAMlD,wBAAwB,CACnC,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,qBAAqB,EACxE,wBAAwB,EAAE,OAAO,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC;CAY7B"}
\ No newline at end of file
+{"version":3,"file":"deploy-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/deploy-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAkB,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE5B,SAAS,IAAI,EAAE;IAIf,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,GAAG,IAAI;IAI5E,uCAAuC,IAAI,IAAI;IAI/C,kBAAkB,IAAI,IAAI;IAI1B,mCAAmC,IAAI,IAAI;IAK3C,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK1G,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK1G,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKjD,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAKlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,qBAAqB,IAAI,IAAI;IAI7B,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAInG,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIzD,mCAAmC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjF,0CAA0C,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAIrF,iCAAiC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAM5D,wCAAwC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK7D,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5D,wCAAwC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,kCAAkC,IAAI,OAAO,CAAC,OAAO,CAAC;IAItD,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAM7C,yCAAyC,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnE,0CAA0C,IAAI,IAAI;IAKlD,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAMlD,wBAAwB,CACnC,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,qBAAqB,EACxE,wBAAwB,EAAE,OAAO,EACjC,cAAc,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC;CAY7B"}
\ No newline at end of file
Modified: package/out/environment/graphql-client.d.ts.map
Index: package/out/environment/graphql-client.d.ts.map
===================================================================
--- package/out/environment/graphql-client.d.ts.map
+++ package/out/environment/graphql-client.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EAIb,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,aAAc,YAAW,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB;IAC/F,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;IAgDhD,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;;IAmC/C,kBAAkB,CAAC,OAAO,EAAE,6BAA6B;IAkBzD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;CAuDjE"}
\ No newline at end of file
+{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAIlB,aAAa,EAIb,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,aAAc,YAAW,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB;IAC/F,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;IAgDhD,eAAe,CAAC,OAAO,EAAE,sBAAsB;;;;;;IAqC/C,kBAAkB,CAAC,OAAO,EAAE,6BAA6B;IAkBzD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;CAuDjE"}
\ No newline at end of file
Modified: package/out/installations/graphql-client.d.ts.map
Index: package/out/installations/graphql-client.d.ts.map
===================================================================
--- package/out/installations/graphql-client.d.ts.map
+++ package/out/installations/graphql-client.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/installations/graphql-client.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Modified: package/out/command-line/index.d.ts.map
Index: package/out/command-line/index.d.ts.map
===================================================================
--- package/out/command-line/index.d.ts.map
+++ package/out/command-line/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoBvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAiBlD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAUzC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAqBvE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,iBAkBxD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAUzC,CAAC"}
\ No newline at end of file
Modified: package/out/installations/site-translation/index.d.ts.map
Index: package/out/installations/site-translation/index.d.ts.map
===================================================================
--- package/out/installations/site-translation/index.d.ts.map
+++ package/out/installations/site-translation/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
\ 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,EAcF,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA6B,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,cAAc;gBANd,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc;YAGnC,cAAc;YAmBd,gBAAgB;YA6ChB,gBAAgB;YAMhB,aAAa;YAsBb,gBAAgB;IAqB9B,OAAO,CAAC,uCAAuC;IAY/C,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB,CAK3B;IAEW,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACf,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YA+GrB,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,uBAAuB;YAoBjB,8CAA8C;CAW7D"}
\ 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,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA6B,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,gBAAgB;YAQhB,aAAa;YAsBb,gBAAgB;IAwB9B,OAAO,CAAC,uCAAuC;IAY/C,OAAO,CAAC,cAAc;IAGtB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB,CAK3B;IAEW,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACf,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAkHrB,kBAAkB;IAUhC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,uBAAuB;YAoBjB,8CAA8C;CAW7D"}
\ 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,EAAyC,EAAE,EAAmB,MAAM,mBAAmB,CAAC;AAE/F,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,CAmBvB"}
\ 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,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,CAmBvB"}
\ No newline at end of file
Modified: package/out/service/installation-service.d.ts.map
Index: package/out/service/installation-service.d.ts.map
===================================================================
--- package/out/service/installation-service.d.ts.map
+++ package/out/service/installation-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"installation-service.d.ts","sourceRoot":"","sources":["../../src/service/installation-service.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EAKrB,KAAK,EAEN,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,kBAAkB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAA0B,SAAQ,gCAAgC;IACjF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,kBAAkB,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,yBAAyB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,IAAI,CAAC;IACnD,eAAe,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACxG;AAED,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG;AAKD,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,6BAA6B;gBAF7B,YAAY,EAAE,iBAAiB,EAC/B,uBAAuB,EAAE,0BAA0B,EACnD,6BAA6B,EAAE,6BAA6B;IAG/E,OAAO,CAAC,mBAAmB;IAiBd,oBAAoB,CAAC,MAAM,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAOlF,gCAAgC,CAAC,MAAM,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;IAU9F,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrE,mBAAmB,CAC9B,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAkBnB,OAAO,CAAC,uCAAuC;IAgBlC,4BAA4B,CACvC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;CAiClD"}
\ No newline at end of file
+{"version":3,"file":"installation-service.d.ts","sourceRoot":"","sources":["../../src/service/installation-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Modified: package/out/environment/list-environment.d.ts.map
Index: package/out/environment/list-environment.d.ts.map
===================================================================
--- package/out/environment/list-environment.d.ts.map
+++ package/out/environment/list-environment.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"list-environment.d.ts","sourceRoot":"","sources":["../../src/environment/list-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;IACjF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACpF;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,MAAM,EAAE,qBAAqB,EAC7B,YAAY,EAAE,iBAAiB;IAGrC,OAAO;CAMrB"}
\ No newline at end of file
+{"version":3,"file":"list-environment.d.ts","sourceRoot":"","sources":["../../src/environment/list-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,CAAC;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;CACpF;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,MAAM,EAAE,qBAAqB,EAC7B,YAAY,EAAE,iBAAiB;IAGrC,OAAO;CAMrB"}
\ 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;AAetD,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;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
Modified: package/out/command-line/register-installation-commands.d.ts.map
Index: package/out/command-line/register-installation-commands.d.ts.map
===================================================================
--- package/out/command-line/register-installation-commands.d.ts.map
+++ package/out/command-line/register-installation-commands.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"register-installation-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-installation-commands.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAY1B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM/D,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,OAAO,EACR,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAW/C;AA+ED,eAAO,MAAM,sBAAsB,cACtB,MAAM,6CAC0B,YAAY,kBAuBxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,oBACnB,YAAY,EAAE,6CACY,YAAY,kBA8CxD,CAAC;AAgEF,eAAO,MAAM,gBAAgB,qBAAsB,YAAY,KAAG,IAejE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"register-installation-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-installation-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAqD/D,eAAO,MAAM,gCAAgC,oDAAqD,YAAY,SAmC7G,CAAC;AAEF,eAAO,MAAM,sBAAsB,cACtB,MAAM,6CAC0B,YAAY,kBAuBxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,oBACnB,YAAY,EAAE,6CACY,YAAY,kBA8CxD,CAAC;AAsEF,eAAO,MAAM,gBAAgB,qBAA4B,YAAY,KAAG,QAAQ,IAAI,CAenF,CAAC"}
\ No newline at end of file
Modified: package/out/command-line/register-webtrigger-commands.d.ts.map
Index: package/out/command-line/register-webtrigger-commands.d.ts.map
===================================================================
--- package/out/command-line/register-webtrigger-commands.d.ts.map
+++ package/out/command-line/register-webtrigger-commands.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"register-webtrigger-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-webtrigger-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgCtD,eAAO,MAAM,gBAAgB,uHAO1B,YAAY,SA6Cd,CAAC"}
\ No newline at end of file
+{"version":3,"file":"register-webtrigger-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-webtrigger-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgCtD,eAAO,MAAM,gBAAgB,iIAM1B,YAAY,kBAyDd,CAAC"}
\ No newline at end of file
Modified: package/out/installations/site-translation/site-translation.d.ts.map
Index: package/out/installations/site-translation/site-translation.d.ts.map
===================================================================
--- package/out/installations/site-translation/site-translation.d.ts.map
+++ package/out/installations/site-translation/site-translation.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"site-translation.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/site-translation.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvE,uBAAuB,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,mBAAmB,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC;CACpD"}
\ No newline at end of file
+{"version":3,"file":"site-translation.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/site-translation.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvE,uBAAuB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/C"}
\ No newline at end of file
Modified: package/out/service/tunnel-service.d.ts.map
Index: package/out/service/tunnel-service.d.ts.map
===================================================================
--- package/out/service/tunnel-service.d.ts.map
+++ package/out/service/tunnel-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Modified: package/CHANGELOG.md
Large diffs are not rendered by default.
Modified: package/out/installations/site-translation/bitbucket.d.ts
Index: package/out/installations/site-translation/bitbucket.d.ts
===================================================================
--- package/out/installations/site-translation/bitbucket.d.ts
+++ package/out/installations/site-translation/bitbucket.d.ts
@@ -1,17 +1,16 @@
/// <reference types="node" />
import { SiteTranslator } from './site-translation';
import { URL } from 'url';
-import { Ari } from '@forge/util/packages/ari';
-import { EnrichedAri } from '@forge/cli-shared';
+import { Ari, AnyAri } from '@forge/util/packages/ari';
export declare class InvalidWorkspaceError extends Error {
constructor(url: URL);
}
export declare const getBitbucketEndpoint: () => string;
export declare class BitbucketTranslator implements SiteTranslator {
- ariBelongsToProduct(ari: EnrichedAri): boolean;
+ ariBelongsToProduct(ari: AnyAri): boolean;
buildInstallationContext(product: string, site: URL): Promise<Ari>;
- getSitesForResourceAris(aris: EnrichedAri[]): Promise<Record<string, string>>;
+ getSitesForResourceAris(aris: AnyAri[]): Promise<Record<string, string>>;
private getWorkspaceId;
getWorkspaceUrl(workspaceId: string): Promise<URL | null>;
private decorateWorkspaceId;
private extractWorkspaceId;
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 } from '@forge/cli-shared';
+import { Logger, CLIDetails, CredentialGetter, PersonalApiCredentialsValidated, ErrorWithAnalytics, ErrorAnalytics, FeatureFlagService, 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';
@@ -46,8 +46,9 @@
private readonly cliDetails;
private readonly credentialStore;
private readonly defaultEnvironmentController;
private readonly featureFlagService;
+ private readonly supportedProductsService;
get verbose(): boolean;
private static isError;
private static isHelpTriggered;
private static isVersionTriggered;
@@ -59,9 +60,9 @@
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): Command<[], DefaultOpts>;
+ static program(ui: Logger, analyticsClient: AnalyticsClientReporter, preCommandController: PreCommandController, cliDetails: CLIDetails | undefined, credentialStore: CredentialGetter, defaultEnvironmentController: DefaultEnvironmentController, featureFlagService: FeatureFlagService, 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>;
@@ -79,8 +80,12 @@
parse(argv: string[]): Promise<void>;
environmentOption(): Command<Args, Opts & {
environment: string;
}>;
+ contextOption(supportedProducts: SupportedProduct[]): Command<Args, Opts & {
+ site?: URL;
+ product?: SupportedProduct;
+ }>;
jsonOption(): Command<Args, Opts & {
json: boolean;
}>;
requireNoAuthentication(): Command<Args, Opts>;
@@ -98,6 +103,14 @@
private assertValidArgs;
getAutocompleteConfig(): autocomplete.AutocompleteConfig;
}
export declare function getAutocompleteConfig(cmd: commander.Command): autocomplete.AutocompleteConfig;
+export declare function validateContext({ supportedProductsService, site, product }: {
+ supportedProductsService: SupportedProductsService;
+ site?: string;
+ product?: string;
+}): Promise<{
+ site?: URL;
+ product?: SupportedProduct;
+}>;
export {};
//# sourceMappingURL=command.d.ts.map
\ No newline at end of file
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 } from '@forge/cli-shared';
+import { CLIDetails, CommandLineUI, ConfigFile, CreateAppCommand, FeatureFlagService, 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';
@@ -28,8 +28,9 @@
import { StubController } from './controller/stubController';
import { PrerequisitesController } from './controller/prerequisites-controller';
import { DefaultEnvironmentController } from './controller/default-environment-controller';
import { EligibilityController } from './controller/eligibility-controller';
+import { VersionController } from './controller/version-controller';
export declare const getDependencies: (cliDetails: CLIDetails | undefined) => Promise<{
ui: CommandLineUI;
cmd: Command<[], import("./command").DefaultOpts>;
configFile: ConfigFile;
@@ -64,8 +65,9 @@
migrationKeysService: MigrationKeysService;
customEntitiesService: CustomEntitiesService;
credentialStore: import("@forge/cli-shared").CredentialStore;
userRepository: UserRepositoryImpl;
+ supportedProductsService: SupportedProductsService;
};
controllers: {
autocompleteController: AutocompleteController;
deployController: DeployController;
@@ -78,8 +80,9 @@
settingsController: SettingsController;
stubController: StubController;
prerequisitesController: PrerequisitesController;
defaultEnvironmentController: DefaultEnvironmentController;
+ versionController: VersionController;
};
}>;
declare type PromiseType<T> = T extends Promise<infer R> ? R : never;
export declare type Dependencies = PromiseType<ReturnType<typeof getDependencies>>;
Modified: package/out/command-line/view/deploy-view.d.ts
Index: package/out/command-line/view/deploy-view.d.ts
===================================================================
--- package/out/command-line/view/deploy-view.d.ts
+++ package/out/command-line/view/deploy-view.d.ts
@@ -5,9 +5,9 @@
private readonly ui;
constructor(ui: UI);
getLogger(): UI;
displayStart(environment: string, environmentType: AppEnvironmentType): void;
- displayListAppInstallationsError(): void;
+ displayHasNoAppInstallationsForEnvError(): void;
displayLintRunning(): void;
displayOutdatedInstallationsMessage(): void;
displayRoaEligibilityFailureMessage(appVersion: string, envKey: string, envType: AppEnvironmentType): void;
displayRoaEligibilitySuccessMessage(appVersion: string, envKey: string, envType: AppEnvironmentType): void;
Modified: package/out/environment/graphql-client.d.ts
Index: package/out/environment/graphql-client.d.ts
===================================================================
--- package/out/environment/graphql-client.d.ts
+++ package/out/environment/graphql-client.d.ts
@@ -12,8 +12,9 @@
listEnvironment(details: ListEnvironmentDetails): Promise<{
type: AppEnvironmentType;
key: string;
lastDeployedAt: string;
+ primaryProduct: import("@forge/cli-shared").EcosystemPrimaryProduct | undefined;
}[]>;
deleteEnvironments(details: BatchDeleteEnvironmentDetails): Promise<DeleteEnvironmentOutput[]>;
deleteEnvironment(details: DeleteEnvironmentDetails): Promise<true>;
}
Modified: package/out/installations/graphql-client.d.ts
Index: package/out/installations/graphql-client.d.ts
===================================================================
--- package/out/installations/graphql-client.d.ts
+++ package/out/installations/graphql-client.d.ts
@@ -1,7 +1,7 @@
-import { AppUninstallationInput, GraphQLClient, GraphQlMutationError, Pause, BaseError, UserError } from '@forge/cli-shared';
+import { AppEnvironmentType, AppUninstallationInput, GraphQLClient, GraphQlMutationError, Pause, BaseError, UserError } from '@forge/cli-shared';
import { AppInstallSiteDetails, InstallAppClient } from './install-app-site';
-import { AppEnvironmentVersionData, Installation, ListAppInstallationsClient, UpgradeAppInstallationsClient } from '../service/installation-service';
+import { AppEnvironmentVersionData, HasNoAppInstallationsForEnvClient, Installation, ListAppInstallationsClient, UpgradeAppInstallationsClient } from '../service/installation-service';
import { UninstallAppClient, UninstallAppOutput } from './uninstall-app';
import { SiteTranslator } from './site-translation';
export declare const UNINSTALLATION_EVENT_POLL_INTERVAL = 500;
export declare const ALREADY_UPGRADED_CODE = "INSTALLATION_ALREADY_UPGRADED";
@@ -43,17 +43,17 @@
export declare class MissingAppUninstallTask extends Error {
}
export declare class InstallationNotFoundError extends UserError {
}
-export declare class InstallationsGraphqlClient implements InstallAppClient, ListAppInstallationsClient, UninstallAppClient, UpgradeAppInstallationsClient {
+export declare class InstallationsGraphqlClient implements InstallAppClient, ListAppInstallationsClient, UninstallAppClient, UpgradeAppInstallationsClient, HasNoAppInstallationsForEnvClient {
private readonly graphqlClient;
- private readonly cloudIdTranslator;
+ private readonly sitedProductTranslator;
private readonly bitbucketTranslator;
private readonly pause;
SITE_RESOURCE_TYPE: string;
WORKSPACE_RESOURCE_TYPE: string;
static buildInstallationContext(product: string, resourceId: string, resourceType: string): string;
- constructor(graphqlClient: GraphQLClient, cloudIdTranslator: SiteTranslator, bitbucketTranslator: SiteTranslator, pause: Pause);
+ constructor(graphqlClient: GraphQLClient, sitedProductTranslator: SiteTranslator, bitbucketTranslator: SiteTranslator, pause: Pause);
private buildInstallationContext;
private getProductTranslation;
installAppIntoSite({ environmentKey, site, product, appId, licenseOverride, overrides }: AppInstallSiteDetails): Promise<void>;
upgradeInstallation({ site, product, environmentKey, appId }: AppInstallSiteDetails): Promise<void>;
@@ -61,8 +61,9 @@
uninstallApp(input: AppUninstallationInput): Promise<boolean>;
uninstallMultipleApps(apps: AppUninstallationInput[]): Promise<Partial<UninstallAppOutput>[]>;
listInstallations(appId: string): Promise<Installation[]>;
getInstallation(appId: string, installationId: string): Promise<Installation>;
+ hasNoAppInstallationsForEnv(appId: string, appEnv: AppEnvironmentType): Promise<boolean>;
private getAppInstallationTask;
private getAppInstallationTaskRetry;
private monitorUninstallApp;
private getResourceArisForProduct;
Modified: package/out/command-line/index.d.ts
Index: package/out/command-line/index.d.ts
===================================================================
--- package/out/command-line/index.d.ts
+++ package/out/command-line/index.d.ts
@@ -1,4 +1,4 @@
import { Dependencies } from './dependency-injection';
-export declare function registerCommands(deps: Dependencies): void;
+export declare function registerCommands(deps: Dependencies): Promise<void>;
export declare const main: () => Promise<void>;
//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
Modified: package/out/installations/site-translation/index.d.ts
Index: package/out/installations/site-translation/index.d.ts
===================================================================
--- package/out/installations/site-translation/index.d.ts
+++ package/out/installations/site-translation/index.d.ts
@@ -1,4 +1,4 @@
export * from './bitbucket';
-export * from './cloudid-products';
+export * from './sited-products';
export * from './site-translation';
//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
Modified: package/out/command-line/controller/install-controller.d.ts
Index: package/out/command-line/controller/install-controller.d.ts
===================================================================
--- package/out/command-line/controller/install-controller.d.ts
+++ package/out/command-line/controller/install-controller.d.ts
@@ -1,6 +1,6 @@
/// <reference types="node" />
-import { AppConfigProvider, ConfigFile, UI, StatsigService } from '@forge/cli-shared';
+import { AppConfigProvider, ConfigFile, UI, SupportedProductsService } from '@forge/cli-shared';
import { URL } from 'url';
import { InstallAppSiteCommand } from '../../installations/install-app-site';
import { InstallationService } from '../../service/installation-service';
import { InstallView } from '../view/install-view';
@@ -24,10 +24,10 @@
private readonly ui;
private readonly installAppSiteCommand;
private readonly installationService;
private readonly installView;
- private readonly statsigService;
- constructor(appConfigProvider: AppConfigProvider, configFile: ConfigFile, ui: UI, installAppSiteCommand: InstallAppSiteCommand, installationService: InstallationService, installView: InstallView, statsigService: StatsigService);
+ private readonly supportedProductsService;
+ constructor(appConfigProvider: AppConfigProvider, configFile: ConfigFile, ui: UI, installAppSiteCommand: InstallAppSiteCommand, installationService: InstallationService, installView: InstallView, supportedProductsService: SupportedProductsService);
private securityPrompt;
private installOrUpgrade;
private promptForProduct;
private promptForSite;
Modified: package/out/service/installation-service.d.ts
Index: package/out/service/installation-service.d.ts
===================================================================
--- package/out/service/installation-service.d.ts
+++ package/out/service/installation-service.d.ts
@@ -1,15 +1,17 @@
/// <reference types="node" />
-import { AppConfigProvider, AppEnvironmentType, AppEnvironmentVersion, Maybe } from '@forge/cli-shared';
+import { AppConfigProvider, AppEnvironmentType, AppEnvironmentVersion, Maybe, SupportedProduct, BaseError } from '@forge/cli-shared';
import { URL } from 'url';
import { AppInstallSiteDetails } from '../installations/install-app-site';
export interface Installation {
id: string;
product: string;
+ secondaryProducts?: string[];
site: string;
environmentKey: string;
environmentType: AppEnvironmentType;
context: string;
+ secondaryContexts?: string[];
version: {
isLatest: boolean;
version: string;
};
@@ -19,17 +21,18 @@
}
export interface AppEnvironmentVersionPermissions {
scopes: string[];
egressAddresses: string[];
+ primaryProduct?: string;
}
export interface AppEnvironmentPermissions extends AppEnvironmentVersionPermissions {
addedScopes: string[];
environmentType: AppEnvironmentType;
hasDeployments: boolean;
}
interface InstallationFilterOptions {
- site?: string;
- product?: 'Jira' | 'Confluence';
+ site?: URL;
+ product?: SupportedProduct;
environment?: string;
}
export interface AppEnvironmentVersionData {
nodes?: Array<Maybe<AppEnvironmentVersion>> | null;
@@ -41,16 +44,27 @@
}
export interface UpgradeAppInstallationsClient {
upgradeInstallation({ site, product, environmentKey, appId }: AppInstallSiteDetails): Promise<void>;
}
+export interface HasNoAppInstallationsForEnvClient {
+ hasNoAppInstallationsForEnv(appId: string, appEnv: AppEnvironmentType): Promise<boolean>;
+}
+export declare class MultipleMatchingInstallationsError extends BaseError {
+ constructor();
+}
export declare class InstallationService {
private readonly getAppConfig;
private readonly listInstallationsClient;
private readonly upgradeAppInstallationsClient;
- constructor(getAppConfig: AppConfigProvider, listInstallationsClient: ListAppInstallationsClient, upgradeAppInstallationsClient: UpgradeAppInstallationsClient);
+ private readonly hasNoAppInstallationsForEnvClient;
+ constructor(getAppConfig: AppConfigProvider, listInstallationsClient: ListAppInstallationsClient, upgradeAppInstallationsClient: UpgradeAppInstallationsClient, hasNoAppInstallationsForEnvClient: HasNoAppInstallationsForEnvClient);
+ private comparePossibleInstallations;
+ private matchSiteForProduct;
private filterInstallations;
listAppInstallations(filter?: InstallationFilterOptions): Promise<AppInstallation>;
+ hasNoAppInstallationsForEnv(appEnv: AppEnvironmentType): Promise<boolean>;
listNonTechnicalAppInstallations(filter?: InstallationFilterOptions): Promise<AppInstallation>;
+ findOnlyMatchingInstallation(filter: InstallationFilterOptions): Promise<Installation>;
hasOutdatedProductInstallation(environment: string): Promise<boolean>;
upgradeInstallation(site: URL, product: string, environmentKey: string, appId: string): Promise<boolean>;
private getPermissionsFromAppEnvironmentVersion;
getAppEnvironmentPermissions(appId: string, environmentKey: string): Promise<AppEnvironmentPermissions | undefined>;
Modified: package/out/environment/list-environment.d.ts
Index: package/out/environment/list-environment.d.ts
===================================================================
--- package/out/environment/list-environment.d.ts
+++ package/out/environment/list-environment.d.ts
@@ -3,8 +3,9 @@
appId: string;
}
export interface ListEnvironmentOutput extends Pick<AppEnvironment, 'key' | 'type'> {
lastDeployedAt: string;
+ primaryProduct?: string;
}
export interface ListEnvironmentClient {
listEnvironment(details: ListEnvironmentDetails): Promise<ListEnvironmentOutput[]>;
}
Modified: package/out/command-line/register-installation-commands.d.ts
Index: package/out/command-line/register-installation-commands.d.ts
===================================================================
--- package/out/command-line/register-installation-commands.d.ts
+++ package/out/command-line/register-installation-commands.d.ts
@@ -1,15 +1,7 @@
-/// <reference types="node" />
-import { URL } from 'url';
import { Dependencies } from './dependency-injection';
import { Installation } from '../service/installation-service';
-export declare function validateContext({ site, product }: {
- site?: string;
- product?: string;
-}): Promise<{
- siteURL?: URL;
- product?: string;
-}>;
+export declare const registerListInstallationsCommand: ({ cmd, ui, services: { installationsService } }: Dependencies) => void;
export declare const performSingleUninstall: (installId: string, { ui, commands: { uninstallAppCommand } }: Dependencies) => Promise<void>;
export declare const performMultipleUninstalls: (appsToUninstall: Installation[], { ui, commands: { uninstallAppCommand } }: Dependencies) => Promise<void>;
-export declare const registerCommands: ({ cmd, ...deps }: Dependencies) => void;
+export declare const registerCommands: ({ cmd, ...deps }: Dependencies) => Promise<void>;
//# sourceMappingURL=register-installation-commands.d.ts.map
\ No newline at end of file
Modified: package/out/command-line/register-webtrigger-commands.d.ts
Index: package/out/command-line/register-webtrigger-commands.d.ts
===================================================================
--- package/out/command-line/register-webtrigger-commands.d.ts
+++ package/out/command-line/register-webtrigger-commands.d.ts
@@ -1,3 +1,3 @@
import { Dependencies } from './dependency-injection';
-export declare const registerCommands: ({ cmd, ui, graphqlGateway, configFile, services: { installationsService }, commands: { getWebTriggerURLCommand } }: Dependencies) => void;
+export declare const registerCommands: ({ cmd, ui, configFile, services: { installationsService, supportedProductsService }, commands: { getWebTriggerURLCommand } }: Dependencies) => Promise<void>;
//# sourceMappingURL=register-webtrigger-commands.d.ts.map
\ No newline at end of file
Modified: package/out/installations/site-translation/site-translation.d.ts
Index: package/out/installations/site-translation/site-translation.d.ts
===================================================================
--- package/out/installations/site-translation/site-translation.d.ts
+++ package/out/installations/site-translation/site-translation.d.ts
@@ -1,10 +1,9 @@
/// <reference types="node" />
import { URL } from 'url';
-import { Ari } from '@forge/util/packages/ari';
-import { EnrichedAri } from '@forge/cli-shared';
+import { AnyAri, Ari } from '@forge/util/packages/ari';
export interface SiteTranslator {
buildInstallationContext: (product: string, site: URL) => Promise<Ari>;
- getSitesForResourceAris: (ari: EnrichedAri[]) => Promise<Record<string, string>>;
- ariBelongsToProduct: (ari: EnrichedAri) => boolean;
+ getSitesForResourceAris: (ari: AnyAri[]) => Promise<Record<string, string>>;
+ ariBelongsToProduct: (ari: AnyAri) => boolean;
}
//# sourceMappingURL=site-translation.d.ts.map
\ No newline at end of file