npm package diff

Package: @forge/cli

Versions: 12.2.0-experimental-959d7b9 - 12.3.0-next.0-experimental-47556b0

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

Index: package/out/devspace/graphql-client.js
===================================================================
--- package/out/devspace/graphql-client.js
+++ package/out/devspace/graphql-client.js
@@ -0,0 +1,116 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DevSpaceGraphQLClient = void 0;
+const cli_shared_1 = require("@forge/cli-shared");
+class DevSpaceGraphQLClient {
+    graphqlClient;
+    constructor(graphqlClient) {
+        this.graphqlClient = graphqlClient;
+    }
+    async getDevSpacesWithLinkingAccess() {
+        const query = `
+      query GetDevSpaceWithLinkingAccess {
+        ecosystem {
+          devConsole {
+            getDeveloperSpaceWithLinkingAccess
+          }
+        }
+      }
+    `;
+        const result = await this.graphqlClient.query(query, {});
+        const devSpaceIds = result?.ecosystem?.devConsole?.getDeveloperSpaceWithLinkingAccess;
+        if (!devSpaceIds || !Array.isArray(devSpaceIds)) {
+            return [];
+        }
+        return devSpaceIds;
+    }
+    async getDevSpaceDetails(devSpaceIds) {
+        const batchSize = 10;
+        const batches = [];
+        for (let i = 0; i < devSpaceIds.length; i += batchSize) {
+            batches.push(devSpaceIds.slice(i, i + batchSize));
+        }
+        const batchResults = await Promise.all(batches.map((batch) => this.getDevSpaceDetailsBulk(batch)));
+        const devSpaceDetails = [];
+        for (const results of batchResults) {
+            for (const result of results) {
+                if (result.success && result.details) {
+                    devSpaceDetails.push({
+                        id: result.developerSpaceId,
+                        name: result.details.name
+                    });
+                }
+            }
+        }
+        return devSpaceDetails;
+    }
+    async getDevSpaceDetailsBulk(devSpaceIds) {
+        const query = `
+      query GetDevSpaceDetails($devSpaceIds: [String!]!) {
+        ecosystem {
+          devConsole {
+            getDeveloperSpaceDetails(developerSpaceIds: $devSpaceIds) {
+              results {
+                developerSpaceId
+                success
+                details {
+                  name
+                }
+                error {
+                  code
+                  message
+                }
+              }
+            }
+          }
+        }
+      }
+    `;
+        const result = await this.graphqlClient.query(query, {
+            devSpaceIds: devSpaceIds
+        });
+        const bulkResult = result?.ecosystem?.devConsole?.getDeveloperSpaceDetails;
+        if (!bulkResult || !bulkResult.results || !Array.isArray(bulkResult.results)) {
+            return [];
+        }
+        return bulkResult.results;
+    }
+    async createDevSpace(input) {
+        const mutation = `
+      mutation CreateDeveloperSpace($input: DevConsoleCreateDeveloperSpaceInput!) {
+        ecosystem {
+          devConsole {
+            createDeveloperSpace(input: $input) {
+              devSpace {
+                id
+                name
+              }
+              success
+              errors {
+                message
+                extensions {
+                  statusCode
+                  errorType
+                }
+              }
+            }
+          }
+        }
+      }
+    `;
+        const { response: { ecosystem: { devConsole: { createDeveloperSpace: { devSpace, success, errors } } } }, requestId } = await this.graphqlClient.mutate(mutation, {
+            input
+        });
+        const error = (0, cli_shared_1.getError)(errors);
+        if (!success) {
+            throw new cli_shared_1.GraphQlMutationError(`${error.message} (requestId: ${requestId || 'unknown'})`, {
+                requestId,
+                code: error.code,
+                statusCode: error.statusCode
+            });
+        }
+        return devSpace;
+    }
+}
+exports.DevSpaceGraphQLClient = DevSpaceGraphQLClient;
+//# sourceMappingURL=graphql-client.js.map
\ No newline at end of file