npm package diff
Package: @forge/cli
Versions: 10.13.4 - 10.13.5-next.0-experimental-4d5d98e
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
@@ -0,0 +1,144 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AppVersionDetailsClient = exports.MissingAppVersionError = exports.EnvironmentNotFoundError = exports.MissingAppError = void 0;
+const cli_shared_1 = require("@forge/cli-shared");
+class MissingAppError extends cli_shared_1.UserError {
+}
+exports.MissingAppError = MissingAppError;
+class EnvironmentNotFoundError extends cli_shared_1.UserError {
+ constructor(environmentKey) {
+ super(cli_shared_1.Text.env.error.envNotExist(environmentKey));
+ }
+}
+exports.EnvironmentNotFoundError = EnvironmentNotFoundError;
+class MissingAppVersionError extends Error {
+}
+exports.MissingAppVersionError = MissingAppVersionError;
+class AppVersionDetailsClient {
+ graphqlClient;
+ constructor(graphqlClient) {
+ this.graphqlClient = graphqlClient;
+ }
+ async getVersionDetails(appId, environmentKey, majorVersion) {
+ const query = `
+ query forge_cli_getApplicationVersionDetails($appId: ID!, $environmentKey: String!, $firstN: Int!, $majorVersion: Int) {
+ app(id: $appId) {
+ environmentByKey(key: $environmentKey) {
+ type
+ versions(first: $firstN, majorVersion: $majorVersion) {
+ nodes {
+ version
+ createdAt
+ isLatest
+ requiresLicense
+ permissions {
+ scopes {
+ key
+ }
+ egress {
+ type
+ addresses
+ }
+ securityPolicies {
+ type
+ policies
+ }
+ }
+ extensions {
+ nodes {
+ id
+ key
+ extensionData
+ }
+ }
+ storage {
+ hosted {
+ classifications
+ locations
+ }
+ remotes {
+ key
+ baseUrl
+ classifications
+ locations
+ }
+ }
+ migrationKeys {
+ jira
+ confluence
+ }
+ }
+ }
+ }
+ }
+ }
+ `;
+ const result = await this.graphqlClient.query(query, {
+ appId,
+ environmentKey,
+ firstN: 1,
+ majorVersion
+ });
+ if (!result.app) {
+ throw new MissingAppError();
+ }
+ if (!result.app.environmentByKey) {
+ throw new EnvironmentNotFoundError(environmentKey);
+ }
+ if (!result.app.environmentByKey.versions?.nodes?.length || !result.app.environmentByKey.versions?.nodes?.[0]) {
+ throw new MissingAppVersionError();
+ }
+ return {
+ migrationKeys: result.app.environmentByKey.versions?.nodes?.[0]?.migrationKeys,
+ environmentType: result.app.environmentByKey.type,
+ appVersion: result.app.environmentByKey.versions?.nodes?.[0]?.version,
+ deploymentDateTime: new Date(Number.parseInt(result.app.environmentByKey.versions?.nodes?.[0]?.createdAt)),
+ storage: result.app.environmentByKey.versions?.nodes?.[0]?.storage,
+ requiresLicense: result.app.environmentByKey.versions?.nodes?.[0]?.requiresLicense,
+ permissions: result.app.environmentByKey.versions?.nodes?.[0]?.permissions,
+ modules: result.app.environmentByKey.versions?.nodes?.[0]?.extensions?.nodes
+ };
+ }
+ async getVersionList(appId, environmentKey) {
+ const query = `
+ query forge_cli_getApplicationVersionList($appId: ID!, $first: Int, $after: String) {
+ app(id: $appId) {
+ environments {
+ key
+ versions(first: $first, after: $after) {
+ nodes {
+ version
+ }
+ pageInfo {
+ hasNextPage
+ endCursor
+ }
+ }
+ }
+ }
+ }
+ `;
+ const output = [];
+ let cursor = undefined;
+ let hasNext = undefined;
+ do {
+ const result = await this.graphqlClient.query(query, {
+ appId,
+ first: 20,
+ after: cursor
+ });
+ if (!result.app) {
+ throw new MissingAppError();
+ }
+ if (!result.app.environments) {
+ throw new MissingAppVersionError();
+ }
+ const environment = result.app.environments.filter((env) => env.key === environmentKey)[0];
+ cursor = environment?.versions?.pageInfo.endCursor;
+ hasNext = environment?.versions?.pageInfo.hasNextPage;
+ output.push(...(environment?.versions?.nodes?.map((node) => node?.version) || []).filter((item) => Boolean(item)));
+ } while (hasNext && cursor);
+ return output;
+ }
+}
+exports.AppVersionDetailsClient = AppVersionDetailsClient;