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;