@wdio/browserstack-service 9.27.0 → 9.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ export declare class BStackLogger {
2
2
  static logFilePath: string;
3
3
  static logFolderPath: string;
4
4
  private static logFileStream;
5
+ private static redactCredentials;
5
6
  static logToFile(logMessage: string, logLevel: string): void;
6
7
  private static formatLog;
7
8
  static info(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bstackLogger.d.ts","sourceRoot":"","sources":["../src/bstackLogger.ts"],"names":[],"mappings":"AAWA,qBAAa,YAAY;IACrB,OAAc,WAAW,SAAsC;IAC/D,OAAc,aAAa,SAAmC;IAC9D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAuB;IAEnD,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAcrD,OAAO,CAAC,MAAM,CAAC,SAAS;WAIV,IAAI,CAAC,OAAO,EAAE,MAAM;WAKpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAKrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;WAStC,IAAI,CAAC,OAAO,EAAE,MAAM;WAKpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAKrB,WAAW;WAOX,YAAY;WAMZ,gBAAgB;CAKjC"}
1
+ {"version":3,"file":"bstackLogger.d.ts","sourceRoot":"","sources":["../src/bstackLogger.ts"],"names":[],"mappings":"AAWA,qBAAa,YAAY;IACrB,OAAc,WAAW,SAAsC;IAC/D,OAAc,aAAa,SAAmC;IAC9D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAuB;IAEnD,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAerD,OAAO,CAAC,MAAM,CAAC,SAAS;WAIV,IAAI,CAAC,OAAO,EAAE,MAAM;WAMpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAMrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;WAUtC,IAAI,CAAC,OAAO,EAAE,MAAM;WAMpB,KAAK,CAAC,OAAO,EAAE,MAAM;WAMrB,WAAW;WAOX,YAAY;WAMZ,gBAAgB;CAKjC"}
package/build/cleanup.js CHANGED
@@ -71,7 +71,7 @@ import logger from "@wdio/logger";
71
71
  // package.json
72
72
  var package_default = {
73
73
  name: "@wdio/browserstack-service",
74
- version: "9.26.1",
74
+ version: "9.27.0",
75
75
  description: "WebdriverIO service for better Browserstack integration",
76
76
  author: "Adam Bjerstedt <abjerstedt@gmail.com>",
77
77
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -122,8 +122,8 @@ var package_default = {
122
122
  "git-repo-info": "^2.1.1",
123
123
  gitconfiglocal: "^2.1.0",
124
124
  glob: "^11.0.0",
125
- tar: "^7.5.7",
126
- undici: "^6.21.3",
125
+ tar: "^7.5.11",
126
+ undici: "^6.24.0",
127
127
  uuid: "^11.1.0",
128
128
  webdriverio: "workspace:*",
129
129
  "winston-transport": "^4.5.0",
@@ -171,14 +171,18 @@ var BStackLogger = class {
171
171
  static logFilePath = path.join(process.cwd(), LOGS_FILE);
172
172
  static logFolderPath = path.join(process.cwd(), "logs");
173
173
  static logFileStream;
174
+ static redactCredentials(logMessage) {
175
+ return logMessage.replace(/(["']?(?:username|userName|accesskey|accessKey|user|key)["']?\s*[:=]\s*["']?)([^"'\s,}]+)/gi, "$1").replace(/([?&](?:username|userName|access_key|accesskey|accessKey|user|key)=)([^&#\s]+)/gi, "$1");
176
+ }
174
177
  static logToFile(logMessage, logLevel) {
175
178
  try {
179
+ const redactedMessage = this.redactCredentials(logMessage);
176
180
  if (!this.logFileStream) {
177
181
  this.ensureLogsFolder();
178
182
  this.logFileStream = fs.createWriteStream(this.logFilePath, { flags: "a" });
179
183
  }
180
184
  if (this.logFileStream && this.logFileStream.writable) {
181
- this.logFileStream.write(this.formatLog(logMessage, logLevel));
185
+ this.logFileStream.write(this.formatLog(redactedMessage, logLevel));
182
186
  }
183
187
  } catch (error) {
184
188
  log.debug(`Failed to log to file. Error ${error}`);
@@ -189,28 +193,33 @@ var BStackLogger = class {
189
193
  `;
190
194
  }
191
195
  static info(message) {
192
- this.logToFile(message, "info");
193
- log.info(message);
196
+ const redactedMessage = this.redactCredentials(message);
197
+ this.logToFile(redactedMessage, "info");
198
+ log.info(redactedMessage);
194
199
  }
195
200
  static error(message) {
196
- this.logToFile(message, "error");
197
- log.error(message);
201
+ const redactedMessage = this.redactCredentials(message);
202
+ this.logToFile(redactedMessage, "error");
203
+ log.error(redactedMessage);
198
204
  }
199
205
  static debug(message, param) {
200
- this.logToFile(message, "debug");
206
+ const redactedMessage = this.redactCredentials(message);
207
+ this.logToFile(redactedMessage, "debug");
201
208
  if (param) {
202
- log.debug(message, param);
209
+ log.debug(redactedMessage, param);
203
210
  } else {
204
- log.debug(message);
211
+ log.debug(redactedMessage);
205
212
  }
206
213
  }
207
214
  static warn(message) {
208
- this.logToFile(message, "warn");
209
- log.warn(message);
215
+ const redactedMessage = this.redactCredentials(message);
216
+ this.logToFile(redactedMessage, "warn");
217
+ log.warn(redactedMessage);
210
218
  }
211
219
  static trace(message) {
212
- this.logToFile(message, "trace");
213
- log.trace(message);
220
+ const redactedMessage = this.redactCredentials(message);
221
+ this.logToFile(redactedMessage, "trace");
222
+ log.trace(redactedMessage);
214
223
  }
215
224
  static clearLogger() {
216
225
  if (this.logFileStream) {
@@ -2089,8 +2098,17 @@ var CrashReporter = class {
2089
2098
  for (const prop in obj) {
2090
2099
  if (keys.includes(prop.toLowerCase())) {
2091
2100
  obj[prop] = "[REDACTED]";
2092
- } else if (typeof obj[prop] === "object") {
2101
+ } else if (typeof obj[prop] === "object" && obj[prop] !== null) {
2093
2102
  this.recursivelyRedactKeysFromObject(obj[prop], keys);
2103
+ } else if (typeof obj[prop] === "string") {
2104
+ try {
2105
+ const parsed = JSON.parse(obj[prop]);
2106
+ if (typeof parsed === "object" && parsed !== null) {
2107
+ this.recursivelyRedactKeysFromObject(parsed, keys);
2108
+ obj[prop] = JSON.stringify(parsed);
2109
+ }
2110
+ } catch {
2111
+ }
2094
2112
  }
2095
2113
  }
2096
2114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,uBAAuB,MAAM,yCAAyC,CAAA;AAK7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAkB,MAAM,aAAa,CAAA;AAI1F;;;;;GAKG;AACH,qBAAa,eAAe;;IAExB,MAAM,CAAC,OAAO,UAAQ;IACtB,WAAW,EAAC,OAAO,CAAA;IACnB,MAAM,EAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAC,MAAM,CAAA;IACd,kBAAkB,EAAE,OAAO,CAAC,UAAU,GAAC,EAAE,CAAA;IACzC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAO;IACnC,eAAe,UAAQ;IACvB,gBAAgB,UAAQ;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IACxC,aAAa,EAAE,sBAAsB,GAAC,IAAI,CAAO;IACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAO;IAC/C,mBAAmB,EAAE,uBAAuB,GAAC,IAAI,CAAO;IACxD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAO;IACtC,MAAM,sBAAe;IACrB,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,EAAE,CAAA;;IAWtD;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,SAAG;IA2B7G;;;OAGG;IACG,SAAS;IAUf;;;OAGG;IACH,WAAW,CAAC,gBAAgB,EAAE,uBAAuB;IAgDrD;;;OAGG;IACG,gBAAgB;IAUtB;;;;OAIG;IACG,KAAK;IAkEX;;;OAGG;IACG,IAAI;IAiDV;;;;OAIG;IACG,kBAAkB;IASxB;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM5C;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM;IAgBrC;;;OAGG;IACH,SAAS;IAWT;;;OAGG;IACH,qBAAqB;IAIrB;;;;OAIG;IACH,qBAAqB,CAAC,kBAAkB,EAAC,OAAO,CAAC,UAAU;IAI3D;;;OAGG;IACG,aAAa;IAOnB;;;OAGG;IACH,YAAY;IAIZ;;;OAGG;IACH,SAAS;IAIT;;;;MAIE;IACF,SAAS,CAAC,QAAQ,EAAE,uBAAuB;IAS3C;;;OAGG;IACH,kBAAkB;IAOlB;;;OAGG;IACH,wBAAwB;IAOxB;;;OAGG;IACH,gBAAgB;IAIhB;;;OAGG;IACH,sBAAsB;CAGzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,uBAAuB,MAAM,yCAAyC,CAAA;AAK7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAkB,MAAM,aAAa,CAAA;AAK1F;;;;;GAKG;AACH,qBAAa,eAAe;;IAExB,MAAM,CAAC,OAAO,UAAQ;IACtB,WAAW,EAAC,OAAO,CAAA;IACnB,MAAM,EAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAC,MAAM,CAAA;IACd,kBAAkB,EAAE,OAAO,CAAC,UAAU,GAAC,EAAE,CAAA;IACzC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAO;IACnC,eAAe,UAAQ;IACvB,gBAAgB,UAAQ;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IACxC,aAAa,EAAE,sBAAsB,GAAC,IAAI,CAAO;IACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAO;IAC/C,mBAAmB,EAAE,uBAAuB,GAAC,IAAI,CAAO;IACxD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAO;IACtC,MAAM,sBAAe;IACrB,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,EAAE,CAAA;;IAWtD;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,SAAG;IA2B7G;;;OAGG;IACG,SAAS;IAYf;;;OAGG;IACH,WAAW,CAAC,gBAAgB,EAAE,uBAAuB;IAgDrD;;;OAGG;IACG,gBAAgB;IAUtB;;;;OAIG;IACG,KAAK;IAkEX;;;OAGG;IACG,IAAI;IAiDV;;;;OAIG;IACG,kBAAkB;IASxB;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM5C;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM;IAkBrC;;;OAGG;IACH,SAAS;IAWT;;;OAGG;IACH,qBAAqB;IAIrB;;;;OAIG;IACH,qBAAqB,CAAC,kBAAkB,EAAC,OAAO,CAAC,UAAU;IAI3D;;;OAGG;IACG,aAAa;IAOnB;;;OAGG;IACH,YAAY;IAIZ;;;OAGG;IACH,SAAS;IAIT;;;;MAIE;IACF,SAAS,CAAC,QAAQ,EAAE,uBAAuB;IAW3C;;;OAGG;IACH,kBAAkB;IAOlB;;;OAGG;IACH,wBAAwB;IAOxB;;;OAGG;IACH,gBAAgB;IAIhB;;;OAGG;IACH,sBAAsB;CAGzB"}
@@ -1,6 +1,6 @@
1
1
  import type { Capabilities, Options } from '@wdio/types';
2
2
  import type { BrowserstackConfig, UserConfigforReporting } from './types.js';
3
- type Dict = Record<string, string>;
3
+ type Dict = Record<string, unknown>;
4
4
  export default class CrashReporter {
5
5
  static userConfigForReporting: UserConfigforReporting;
6
6
  private static credentialsForCrashReportUpload;
@@ -1 +1 @@
1
- {"version":3,"file":"crash-reporter.d.ts","sourceRoot":"","sources":["../src/crash-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,kBAAkB,EAAmC,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAO7G,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAc,sBAAsB,EAAE,sBAAsB,CAAK;IAEjE,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAsC;IAEpF,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAQtH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,sBAAsB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU;WAiB9I,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IA4DpE,MAAM,CAAC,+BAA+B,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAiB9E,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAO9D,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,sBAAsB;IAM3E,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU;CA6BlD"}
1
+ {"version":3,"file":"crash-reporter.d.ts","sourceRoot":"","sources":["../src/crash-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,kBAAkB,EAAmC,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAO7G,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnC,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAc,sBAAsB,EAAE,sBAAsB,CAAK;IAEjE,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAsC;IAEpF,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAQtH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,sBAAsB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU;WAiB9I,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IA4DpE,MAAM,CAAC,+BAA+B,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IA2B9E,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAO9D,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,sBAAsB;IAM3E,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU;CA6BlD"}
package/build/index.js CHANGED
@@ -23,7 +23,7 @@ var init_package = __esm({
23
23
  "package.json"() {
24
24
  package_default = {
25
25
  name: "@wdio/browserstack-service",
26
- version: "9.26.1",
26
+ version: "9.27.0",
27
27
  description: "WebdriverIO service for better Browserstack integration",
28
28
  author: "Adam Bjerstedt <abjerstedt@gmail.com>",
29
29
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -74,8 +74,8 @@ var init_package = __esm({
74
74
  "git-repo-info": "^2.1.1",
75
75
  gitconfiglocal: "^2.1.0",
76
76
  glob: "^11.0.0",
77
- tar: "^7.5.7",
78
- undici: "^6.21.3",
77
+ tar: "^7.5.11",
78
+ undici: "^6.24.0",
79
79
  uuid: "^11.1.0",
80
80
  webdriverio: "workspace:*",
81
81
  "winston-transport": "^4.5.0",
@@ -2131,8 +2131,17 @@ var init_crash_reporter = __esm({
2131
2131
  for (const prop in obj) {
2132
2132
  if (keys.includes(prop.toLowerCase())) {
2133
2133
  obj[prop] = "[REDACTED]";
2134
- } else if (typeof obj[prop] === "object") {
2134
+ } else if (typeof obj[prop] === "object" && obj[prop] !== null) {
2135
2135
  this.recursivelyRedactKeysFromObject(obj[prop], keys);
2136
+ } else if (typeof obj[prop] === "string") {
2137
+ try {
2138
+ const parsed = JSON.parse(obj[prop]);
2139
+ if (typeof parsed === "object" && parsed !== null) {
2140
+ this.recursivelyRedactKeysFromObject(parsed, keys);
2141
+ obj[prop] = JSON.stringify(parsed);
2142
+ }
2143
+ } catch {
2144
+ }
2136
2145
  }
2137
2146
  }
2138
2147
  }
@@ -4113,14 +4122,18 @@ var init_bstackLogger = __esm({
4113
4122
  static logFilePath = path6.join(process.cwd(), LOGS_FILE);
4114
4123
  static logFolderPath = path6.join(process.cwd(), "logs");
4115
4124
  static logFileStream;
4125
+ static redactCredentials(logMessage) {
4126
+ return logMessage.replace(/(["']?(?:username|userName|accesskey|accessKey|user|key)["']?\s*[:=]\s*["']?)([^"'\s,}]+)/gi, "$1").replace(/([?&](?:username|userName|access_key|accesskey|accessKey|user|key)=)([^&#\s]+)/gi, "$1");
4127
+ }
4116
4128
  static logToFile(logMessage, logLevel) {
4117
4129
  try {
4130
+ const redactedMessage = this.redactCredentials(logMessage);
4118
4131
  if (!this.logFileStream) {
4119
4132
  this.ensureLogsFolder();
4120
4133
  this.logFileStream = fs7.createWriteStream(this.logFilePath, { flags: "a" });
4121
4134
  }
4122
4135
  if (this.logFileStream && this.logFileStream.writable) {
4123
- this.logFileStream.write(this.formatLog(logMessage, logLevel));
4136
+ this.logFileStream.write(this.formatLog(redactedMessage, logLevel));
4124
4137
  }
4125
4138
  } catch (error) {
4126
4139
  log2.debug(`Failed to log to file. Error ${error}`);
@@ -4131,28 +4144,33 @@ var init_bstackLogger = __esm({
4131
4144
  `;
4132
4145
  }
4133
4146
  static info(message) {
4134
- this.logToFile(message, "info");
4135
- log2.info(message);
4147
+ const redactedMessage = this.redactCredentials(message);
4148
+ this.logToFile(redactedMessage, "info");
4149
+ log2.info(redactedMessage);
4136
4150
  }
4137
4151
  static error(message) {
4138
- this.logToFile(message, "error");
4139
- log2.error(message);
4152
+ const redactedMessage = this.redactCredentials(message);
4153
+ this.logToFile(redactedMessage, "error");
4154
+ log2.error(redactedMessage);
4140
4155
  }
4141
4156
  static debug(message, param) {
4142
- this.logToFile(message, "debug");
4157
+ const redactedMessage = this.redactCredentials(message);
4158
+ this.logToFile(redactedMessage, "debug");
4143
4159
  if (param) {
4144
- log2.debug(message, param);
4160
+ log2.debug(redactedMessage, param);
4145
4161
  } else {
4146
- log2.debug(message);
4162
+ log2.debug(redactedMessage);
4147
4163
  }
4148
4164
  }
4149
4165
  static warn(message) {
4150
- this.logToFile(message, "warn");
4151
- log2.warn(message);
4166
+ const redactedMessage = this.redactCredentials(message);
4167
+ this.logToFile(redactedMessage, "warn");
4168
+ log2.warn(redactedMessage);
4152
4169
  }
4153
4170
  static trace(message) {
4154
- this.logToFile(message, "trace");
4155
- log2.trace(message);
4171
+ const redactedMessage = this.redactCredentials(message);
4172
+ this.logToFile(redactedMessage, "trace");
4173
+ log2.trace(redactedMessage);
4156
4174
  }
4157
4175
  static clearLogger() {
4158
4176
  if (this.logFileStream) {
@@ -9049,6 +9067,7 @@ var init_cli = __esm({
9049
9067
  init_accessibilityModule();
9050
9068
  init_util();
9051
9069
  init_observabilityModule();
9070
+ init_crash_reporter();
9052
9071
  init_percyModule();
9053
9072
  init_apiUtils();
9054
9073
  BrowserstackCLI = class _BrowserstackCLI {
@@ -9125,7 +9144,9 @@ var init_cli = __esm({
9125
9144
  await this.start();
9126
9145
  this.logger.debug("startMain: main-process started");
9127
9146
  const response = await GrpcClient.getInstance().startBinSession(this.wdioConfig);
9128
- BStackLogger.debug(`start: startBinSession response=${JSON.stringify(response)}`);
9147
+ const redactedStartResponse = JSON.parse(JSON.stringify(response));
9148
+ CrashReporter.recursivelyRedactKeysFromObject(redactedStartResponse, ["user", "username", "key", "accesskey", "password"]);
9149
+ BStackLogger.debug(`start: startBinSession response=${JSON.stringify(redactedStartResponse)}`);
9129
9150
  this.loadModules(response);
9130
9151
  this.isMainConnected = true;
9131
9152
  }
@@ -9317,7 +9338,9 @@ var init_cli = __esm({
9317
9338
  this.logger.info(`Starting as child process with session ID: ${binSessionId}`);
9318
9339
  GrpcClient.getInstance().connect();
9319
9340
  const response = await GrpcClient.getInstance().connectBinSession();
9320
- this.logger.info(`Connected to bin session: ${JSON.stringify(response)}`);
9341
+ const redactedResponse = JSON.parse(JSON.stringify(response));
9342
+ CrashReporter.recursivelyRedactKeysFromObject(redactedResponse, ["user", "username", "key", "accesskey", "password"]);
9343
+ this.logger.info(`Connected to bin session: ${JSON.stringify(redactedResponse)}`);
9321
9344
  this.loadModules(response);
9322
9345
  this.isChildConnected = true;
9323
9346
  PerformanceTester.end(EVENTS.SDK_CONNECT_BIN_SESSION);
@@ -9385,7 +9408,9 @@ var init_cli = __esm({
9385
9408
  setConfig(response) {
9386
9409
  try {
9387
9410
  this.config = JSON.parse(response.config);
9388
- this.logger.debug(`loadModules: config=${JSON.stringify(this.config)}`);
9411
+ const redactedConfig = JSON.parse(response.config);
9412
+ CrashReporter.recursivelyRedactKeysFromObject(redactedConfig, ["user", "username", "key", "accesskey", "password"]);
9413
+ this.logger.debug(`loadModules: config=${JSON.stringify(redactedConfig)}`);
9389
9414
  } catch (error) {
9390
9415
  this.logger.error(`setConfig: error=${util10.format(error)}`);
9391
9416
  }
@@ -11215,7 +11240,7 @@ var BrowserstackLauncherService = class {
11215
11240
  BStackLogger2.debug(`_options data: ${JSON.stringify(_options)}`);
11216
11241
  BStackLogger2.debug(`webdriver capabilities data: ${JSON.stringify(capabilities)}`);
11217
11242
  const configCopy = JSON.parse(JSON.stringify(_config));
11218
- CrashReporter.recursivelyRedactKeysFromObject(configCopy, ["user", "key", "accesskey", "password"]);
11243
+ CrashReporter.recursivelyRedactKeysFromObject(configCopy, ["user", "username", "key", "accesskey", "password"]);
11219
11244
  BStackLogger2.debug(`_config data: ${JSON.stringify(configCopy)}`);
11220
11245
  if (Array.isArray(capabilities)) {
11221
11246
  capabilities.flatMap((c) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wdio/browserstack-service",
3
- "version": "9.27.0",
3
+ "version": "9.27.1",
4
4
  "description": "WebdriverIO service for better Browserstack integration",
5
5
  "author": "Adam Bjerstedt <abjerstedt@gmail.com>",
6
6
  "homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -42,8 +42,8 @@
42
42
  "@percy/selenium-webdriver": "^2.2.2",
43
43
  "@types/gitconfiglocal": "^2.0.1",
44
44
  "@wdio/logger": "9.18.0",
45
- "@wdio/reporter": "9.27.0",
46
- "@wdio/types": "9.27.0",
45
+ "@wdio/reporter": "9.27.1",
46
+ "@wdio/types": "9.27.1",
47
47
  "browserstack-local": "^1.5.1",
48
48
  "chalk": "^5.3.0",
49
49
  "csv-writer": "^1.6.0",
@@ -51,10 +51,10 @@
51
51
  "git-repo-info": "^2.1.1",
52
52
  "gitconfiglocal": "^2.1.0",
53
53
  "glob": "^11.0.0",
54
- "tar": "^7.5.7",
55
- "undici": "^6.21.3",
54
+ "tar": "^7.5.11",
55
+ "undici": "^6.24.0",
56
56
  "uuid": "^11.1.0",
57
- "webdriverio": "9.27.0",
57
+ "webdriverio": "9.27.1",
58
58
  "winston-transport": "^4.5.0",
59
59
  "yauzl": "^3.0.0"
60
60
  },
@@ -65,10 +65,10 @@
65
65
  "@types/node": "^20.1.0",
66
66
  "@types/tar": "^7.0.87",
67
67
  "@types/yauzl": "^2.10.3",
68
- "@wdio/globals": "9.27.0"
68
+ "@wdio/globals": "9.27.1"
69
69
  },
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "2a7beb52c6d6f9aa81445a258202c9eb830b1a00"
73
+ "gitHead": "e2b5652f61da0858251860e7d3bc0c0aaffbb525"
74
74
  }