@forge/cli

13.4.0-next.3-experimental-f258a6d13.4.0-next.5-experimental-016ed9d
out/site/graphql-client.js
+out/site/graphql-client.jsNew file
+86
Index: package/out/site/graphql-client.js
===================================================================
--- package/out/site/graphql-client.js
+++ package/out/site/graphql-client.js
@@ -0,0 +1,86 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DemoSiteGraphQLClient = void 0;
+const cli_shared_1 = require("@forge/cli-shared");
+class DemoSiteGraphQLClient {
+    graphqlClient;
+    constructor(graphqlClient) {
+        this.graphqlClient = graphqlClient;
+    }
+    async provisionDemoSite() {
+        const mutation = `
+      mutation forge_cli_provisionDemoSite {
+        provisionDemoSite {
+          success
+          errors {
+            message
+            extensions {
+              errorType
+              statusCode
+            }
+          }
+          taskId
+          cloudName
+          xnId
+        }
+      }
+    `;
+        const { response, requestId } = await this.graphqlClient.mutate(mutation, {});
+        const payload = response?.provisionDemoSite;
+        if (!payload || payload.success === false || !payload.taskId) {
+            const error = (0, cli_shared_1.getError)(payload?.errors);
+            const message = error.message ?? 'Failed to start demo site provisioning';
+            throw new cli_shared_1.GraphQlMutationError(`${message} (requestId: ${requestId || 'unknown'})`, {
+                requestId,
+                code: error.code,
+                statusCode: error.statusCode
+            });
+        }
+        return {
+            taskId: payload.taskId,
+            cloudName: payload.cloudName,
+            xnId: payload.xnId
+        };
+    }
+    async getDemoSiteProvisioning(taskId) {
+        const query = `
+      query forge_cli_demoSiteProvisioning($taskId: ID!) {
+        demoSiteProvisioning(taskId: $taskId) {
+          taskId
+          cloudName
+          status
+          startedAt
+          finishedAt
+          site {
+            dfId
+            cloudName
+            siteUrl
+            status
+            createdAt
+            expiresAt
+          }
+        }
+      }
+    `;
+        const result = await this.graphqlClient.query(query, { taskId });
+        return result?.demoSiteProvisioning ?? undefined;
+    }
+    async getDemoSite() {
+        const query = `
+      query forge_cli_demoSite {
+        demoSite {
+          dfId
+          cloudName
+          siteUrl
+          status
+          createdAt
+          expiresAt
+        }
+      }
+    `;
+        const result = await this.graphqlClient.query(query, {});
+        return result?.demoSite ?? undefined;
+    }
+}
+exports.DemoSiteGraphQLClient = DemoSiteGraphQLClient;
+//# sourceMappingURL=graphql-client.js.map
\ No newline at end of file