npm package diff

Package: @forge/cli

Versions: 12.3.0 - 12.3.1-next.1-experimental-b4d61da

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

Index: package/out/deployments/deployments-graphql-client.js
===================================================================
--- package/out/deployments/deployments-graphql-client.js
+++ package/out/deployments/deployments-graphql-client.js
@@ -0,0 +1,77 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DeploymentsGraphqlClient = void 0;
+class DeploymentsGraphqlClient {
+    graphqlClient;
+    constructor(graphqlClient) {
+        this.graphqlClient = graphqlClient;
+    }
+    async listDeployments(appId, interval, filter) {
+        const deployments = await this.getAllDeployments(appId, interval, filter);
+        return deployments;
+    }
+    async getAllDeployments(appId, interval, filter) {
+        const query = `
+      query getAppDeployments($appId: ID!, $interval: IntervalInput!, $first: Int, $after: String) {
+        app(id: $appId) {
+          deployments(interval: $interval, first: $first, after: $after) @optIn(to: ["xls-deployments-by-interval", "xls-deployments-major-version"]) {
+            nodes {
+              status
+              environmentKey
+              buildTag
+              majorVersion {
+                version
+              }
+              createdBy {
+                accountId
+                accountStatus
+                name
+              }
+              createdAt
+            }
+            pageInfo {
+              hasNextPage
+              endCursor
+            }
+          }
+        }
+      }
+    `;
+        const output = [];
+        let cursor = filter?.after;
+        let hasNext = true;
+        do {
+            const graphqlInterval = {
+                startTime: interval.startTimeUtc,
+                endTime: interval.endTimeUtc
+            };
+            const { app } = await this.graphqlClient.query(query, {
+                appId,
+                interval: graphqlInterval,
+                first: filter?.first || 100,
+                after: cursor
+            });
+            if (!app?.deployments?.nodes) {
+                break;
+            }
+            const { nodes, pageInfo } = app.deployments;
+            for (const node of nodes) {
+                if (node) {
+                    output.push({
+                        environmentKey: node.environmentKey,
+                        status: node.status,
+                        buildTag: node.buildTag,
+                        majorVersion: node.majorVersion,
+                        createdBy: node.createdBy,
+                        createdAt: node.createdAt
+                    });
+                }
+            }
+            cursor = pageInfo.endCursor;
+            hasNext = pageInfo.hasNextPage;
+        } while (hasNext && cursor);
+        return output;
+    }
+}
+exports.DeploymentsGraphqlClient = DeploymentsGraphqlClient;
+//# sourceMappingURL=deployments-graphql-client.js.map
\ No newline at end of file