npm package diff

Package: @forge/cli-shared

Versions: 8.3.0-next.0-experimental-8a53773 - 8.3.0-next.2

File: package/out/graphql/debugging-graphql-runner.js

Index: package/out/graphql/debugging-graphql-runner.js
===================================================================
--- package/out/graphql/debugging-graphql-runner.js
+++ package/out/graphql/debugging-graphql-runner.js
@@ -9,17 +9,40 @@
 class DebuggingGraphqlRunner {
     innerClient;
     endpoint;
     logger;
+    sensitivePatterns = [/X-Amz-Security-Token/i];
     constructor(innerClient, endpoint, logger) {
         this.innerClient = innerClient;
         this.endpoint = endpoint;
         this.logger = logger;
     }
+    filterSensitiveData(data) {
+        if (!data)
+            return data;
+        if (Array.isArray(data)) {
+            return data.map((item) => this.filterSensitiveData(item));
+        }
+        if (typeof data === 'object' && data !== null) {
+            const filtered = { ...data };
+            for (const key of Object.keys(filtered)) {
+                if (this.sensitivePatterns.some((pattern) => pattern.test(key))) {
+                    delete filtered[key];
+                }
+                else if (typeof filtered[key] === 'object' && filtered[key] !== null) {
+                    filtered[key] = this.filterSensitiveData(filtered[key]);
+                }
+            }
+            return filtered;
+        }
+        return data;
+    }
     async run(query, variables) {
-        this.logger.trace(ui_1.Text.graphQL.request(this.endpoint, query, stringify(variables)));
+        const filteredVariables = this.filterSensitiveData(variables);
+        this.logger.trace(ui_1.Text.graphQL.request(this.endpoint, query, stringify(filteredVariables)));
         const { requestId, response } = await this.innerClient.run(query, variables);
-        this.logger.trace(ui_1.Text.graphQL.response(stringify(response), requestId));
+        const filteredResponse = this.filterSensitiveData(response);
+        this.logger.trace(ui_1.Text.graphQL.response(stringify(filteredResponse), requestId));
         return { requestId, response };
     }
 }
 exports.DebuggingGraphqlRunner = DebuggingGraphqlRunner;