npm package diff

Package: @forge/cli

Versions: 10.12.1-next.2 - 10.13.0-next.18

File: package/out/eligibility/graphql-client.js

Index: package/out/eligibility/graphql-client.js
===================================================================
--- package/out/eligibility/graphql-client.js
+++ package/out/eligibility/graphql-client.js
@@ -0,0 +1,74 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RoaEligibilityClient = exports.MissingAppEnvironmentError = exports.MissingTrustSignalError = 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 MissingTrustSignalError extends Error {
+}
+exports.MissingTrustSignalError = MissingTrustSignalError;
+class MissingAppEnvironmentError extends Error {
+}
+exports.MissingAppEnvironmentError = MissingAppEnvironmentError;
+class RoaEligibilityClient {
+    graphqlClient;
+    constructor(graphqlClient) {
+        this.graphqlClient = graphqlClient;
+    }
+    async getVersionEligibility(appId, environmentKey, majorVersion) {
+        const query = `
+      query forge_cli_getApplicationRoaEligibility($appId: ID!, $environmentKey: String!, $firstN: Int!, $majorVersion: Int) {
+        app(id: $appId) {
+          environmentByKey(key: $environmentKey) {
+            type
+            versions(first: $firstN, majorVersion: $majorVersion) {
+              nodes {
+                version
+                isLatest
+                trustSignal(key: "RUNS_ON_ATLASSIAN") @optIn(to: ["AppEnvironmentVersionTrustSignal"]) {
+                  key
+                  result
+                  rules {
+                    name
+                    value
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    `;
+        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) {
+            throw new MissingAppEnvironmentError();
+        }
+        if (!result.app.environmentByKey.versions?.nodes?.[0]?.trustSignal) {
+            throw new MissingTrustSignalError();
+        }
+        return {
+            trustSignal: result.app.environmentByKey.versions?.nodes?.[0]?.trustSignal,
+            environmentType: result.app.environmentByKey.type,
+            appVersion: result.app.environmentByKey.versions?.nodes?.[0]?.version
+        };
+    }
+}
+exports.RoaEligibilityClient = RoaEligibilityClient;