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