npm package diff
Package: @forge/cli
Versions: 11.4.0-next.1-experimental-5364136 - 11.4.0-next.14
File: package/out/version/graphql-client.js
Index: package/out/version/graphql-client.js
===================================================================
--- package/out/version/graphql-client.js
+++ package/out/version/graphql-client.js
@@ -237,9 +237,9 @@
};
});
return output.filter((version) => version.upgradeableTo);
}
- async createAppVersionUpgradeRollout(environmentKey, sourceVersionId, targetVersionId) {
+ async createAppVersionUpgradeRollout(environmentKey, sourceVersionId, targetVersionId, sourceVersionNumber, targetVersionNumber) {
const query = `
mutation forge_cli_createAppVersionUpgradeRollout($input: CreateAppVersionRolloutInput!) {
ecosystem {
createAppVersionRollout(input: $input) {
@@ -282,21 +282,21 @@
errors.forEach((error) => {
if (error?.extensions?.errorType && error.message) {
switch (error.extensions.errorType) {
case 'APP_ROLLOUT_RUNNING':
- errorList.push(cli_shared_1.Text.version.upgrade.error.appVersionRolloutRunning);
+ errorList.push(cli_shared_1.Text.version.upgrade.start.error.appVersionRolloutRunning);
break;
case 'PermissionDeniedError':
- errorList.push(cli_shared_1.Text.version.upgrade.error.permissionDeniedError(sourceVersionId, targetVersionId, environmentKey));
+ errorList.push(cli_shared_1.Text.version.upgrade.start.error.permissionDeniedError(sourceVersionNumber, targetVersionNumber, environmentKey));
break;
case 'APP_NOT_FOUND':
- errorList.push(cli_shared_1.Text.version.upgrade.error.inValidVersionNumberSpecified(sourceVersionId, targetVersionId));
+ errorList.push(cli_shared_1.Text.version.upgrade.start.error.inValidVersionNumberSpecified(sourceVersionNumber, targetVersionNumber));
break;
case 'TOO_MANY_APP_ROLLOUTS_RUNNING_FOR_ACCOUNT':
- errorList.push(cli_shared_1.Text.version.upgrade.error.tooManyRequestsFromAccount);
+ errorList.push(cli_shared_1.Text.version.upgrade.start.error.tooManyRequestsFromAccount);
break;
case 'APP_ROLLOUTS_UNAVAILABLE':
- errorList.push(cli_shared_1.Text.version.upgrade.error.tooManyRequestsGlobally);
+ errorList.push(cli_shared_1.Text.version.upgrade.start.error.tooManyRequestsGlobally);
break;
default:
errorList.push(error.message);
break;
@@ -338,14 +338,171 @@
if (!result.app.environmentByKey) {
throw new EnvironmentNotFoundError(environmentKey);
}
if (!result.app.environmentByKey.versions?.nodes?.length || !result.app.environmentByKey.versions?.nodes?.[0]) {
- throw new Error(cli_shared_1.Text.version.upgrade.error.inValidMajorVersionNumberSpecified(majorVersion));
+ throw new Error(cli_shared_1.Text.version.upgrade.start.error.inValidMajorVersionNumberSpecified(majorVersion));
}
return {
id: result.app.environmentByKey.versions?.nodes?.[0]?.id,
appVersion: result.app.environmentByKey.versions?.nodes?.[0]?.version
};
}
+ async getAppVersionRolloutsList(appId, environmentKey) {
+ const query = `
+ query forge_cli_getAppVersionRolloutsList(
+ $appId: ID!,
+ $environmentKey: String!
+ ) {
+ app(id: $appId) {
+ environmentByKey(key: $environmentKey) {
+ id
+ type
+ versions {
+ nodes {
+ version
+ id
+ }
+ }
+ appVersionRollouts {
+ nodes {
+ id
+ appId
+ appEnvironmentId
+ createdAt
+ completedAt
+ status
+ sourceVersionId
+ targetVersionId
+ progress {
+ completedUpgradeCount
+ failedUpgradeCount
+ pendingUpgradeCount
+ }
+ }
+ }
+ }
+ }
+ }
+ `;
+ const output = [];
+ const result = await this.graphqlClient.query(query, {
+ appId,
+ environmentKey
+ });
+ if (!result.app) {
+ throw new MissingAppError();
+ }
+ const environment = result.app.environmentByKey;
+ const versionRollouts = environment?.appVersionRollouts?.nodes;
+ if (!versionRollouts || versionRollouts.length === 0) {
+ return output;
+ }
+ output.push(...versionRollouts.map((node) => {
+ return {
+ id: node?.id,
+ appId: node?.appId,
+ environmentType: environment.type,
+ status: node?.status,
+ createdAt: node?.createdAt.toString(),
+ completedAt: node?.completedAt ? node?.completedAt.toString() : 'In progress',
+ sourceVersionId: environment.versions?.nodes?.find((version) => version?.id === node?.sourceVersionId)
+ ?.version,
+ targetVersionId: environment.versions?.nodes?.find((version) => version?.id === node?.targetVersionId)
+ ?.version,
+ completedUpgradeCount: node?.progress.completedUpgradeCount,
+ pendingUpgradeCount: node?.progress.pendingUpgradeCount,
+ failedUpgradeCount: node?.progress.failedUpgradeCount
+ };
+ }));
+ return output;
+ }
+ async getAppVersionRollout(appRolloutId) {
+ const query = `
+ query forge_cli_getAppVersionRollout($appRolloutId: ID!) {
+ ecosystem {
+ appVersionRollout(id: $appRolloutId) {
+ progress {
+ completedUpgradeCount
+ failedUpgradeCount
+ pendingUpgradeCount
+ }
+ sourceVersionId
+ targetVersionId
+ status
+ id
+ appId
+ completedAt
+ }
+ }
+ }`;
+ const result = await this.graphqlClient.query(query, {
+ appRolloutId
+ });
+ if (!result?.ecosystem?.appVersionRollout?.id) {
+ throw new Error(cli_shared_1.Text.version.upgrade.cancel.error.inValidRolloutIdSpecified);
+ }
+ const appVersionRollout = result.ecosystem.appVersionRollout;
+ return {
+ completedUpgradeCount: appVersionRollout.progress.completedUpgradeCount,
+ failedUpgradeCount: appVersionRollout.progress.failedUpgradeCount,
+ pendingUpgradeCount: appVersionRollout.progress.pendingUpgradeCount,
+ appId: appVersionRollout.appId,
+ id: appVersionRollout.id,
+ sourceVersionId: appVersionRollout.sourceVersionId,
+ targetVersionId: appVersionRollout.targetVersionId,
+ status: appVersionRollout.status
+ };
+ }
+ async cancelAppVersionUpgradeRollout(appRolloutId, environmentKey) {
+ const query = `
+ mutation forge_cli_cancelAppVersionUpgradeRollout($input: CancelAppVersionRolloutInput!) {
+ ecosystem {
+ cancelAppVersionRollout(input: $input) {
+ success
+ errors {
+ extensions {
+ errorType
+ statusCode
+ }
+ message
+ }
+ }
+ }
+ }
+ `;
+ const variables = {
+ input: {
+ id: appRolloutId
+ }
+ };
+ const { response: { ecosystem: { cancelAppVersionRollout } }, requestId } = await this.graphqlClient.mutate(query, variables);
+ if (!cancelAppVersionRollout) {
+ throw new cli_shared_1.GraphQlMutationError(`Unable to get a response (requestId: ${requestId || 'unknown'})`, { requestId });
+ }
+ const { success, errors } = cancelAppVersionRollout;
+ if (!success && errors && errors.length > 0) {
+ const errorList = [];
+ errors.forEach((error) => {
+ if (error?.extensions?.errorType && error.message) {
+ switch (error.extensions.errorType) {
+ case 'PermissionDeniedError':
+ errorList.push(cli_shared_1.Text.version.upgrade.cancel.error.permissionDeniedError(environmentKey));
+ break;
+ case 'APP_ROLLOUT_NOT_RUNNING':
+ errorList.push(cli_shared_1.Text.version.upgrade.cancel.error.noUpdateInProgress(environmentKey));
+ break;
+ default:
+ errorList.push(error.message);
+ break;
+ }
+ }
+ else {
+ errorList.push(error?.message ? error.message : '');
+ }
+ });
+ throw new Error(errorList.join(`\n`));
+ }
+ return true;
+ }
}
exports.AppVersionDetailsClient = AppVersionDetailsClient;
\ No newline at end of file