@appium/support 4.4.0 → 5.0.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.
package/README.md CHANGED
@@ -51,7 +51,6 @@ All utility functions are split into a bunch of different categories. Each categ
51
51
  |env|Several helpers needed by the server to cope with internal dependencies and manifests|
52
52
  |fs|Most of the functions here are just thin wrappers over utility functions available in [Promises API](https://nodejs.org/api/fs.html#promises-api)|
53
53
  |image-util|Utilities to work with images. Use [sharp](https://github.com/lovell/sharp) under the hood.<br>:bangbang: Node >=18.17 is required to use these utilities|
54
- |log-internal|Utilities needed for internal Appium log config assistance|
55
54
  |logging|See [the logging section below](#logging)|
56
55
  |mjpeg|Helpers needed to implement [MJPEG streaming](https://en.wikipedia.org/wiki/Motion_JPEG#Video_streaming)|
57
56
  |net|Helpers needed for network interactions, for example, upload and download of files|
@@ -96,5 +96,4 @@ export type { InstallPackageOpts, ExecOpts, NpmInstallReceipt } from './npm';
96
96
  export type { Affixes, OpenedAffixes } from './tempdir';
97
97
  export type { PluralizeOptions, EncodingOptions, LockFileOptions, NonEmptyString } from './util';
98
98
  export type { ExtractAllOptions, ZipEntry, ZipOptions, ZipCompressionOptions, ZipSourceOptions, } from './zip';
99
- export type { SecureValuePreprocessingRule } from './log-internal';
100
99
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAO,gBAAgB,8BAAQ,CAAC;AAEhC,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,EAAE,EACF,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,SAAS,EACT,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,GACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACF,wBAmBE;AAEF,YAAY,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,MAAM,CAAC;AAClD,YAAY,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,OAAO,CAAC;AACf,YAAY,EAAC,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAC3E,YAAY,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AACtD,YAAY,EAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC/F,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,YAAY,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAO,gBAAgB,8BAAQ,CAAC;AAEhC,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,EAAE,EACF,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,SAAS,EACT,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,EACP,MAAM,GACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACF,wBAmBE;AAEF,YAAY,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,MAAM,CAAC;AAClD,YAAY,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,OAAO,CAAC;AACf,YAAY,EAAC,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAC3E,YAAY,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,WAAW,CAAC;AACtD,YAAY,EAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC/F,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,OAAO,CAAC"}
@@ -1,46 +1,14 @@
1
+ /**
2
+ *
3
+ * @param {AppiumLoggerPrefix?} [prefix=null]
4
+ * @returns {AppiumLogger}
5
+ */
6
+ export function getLogger(prefix?: import("@appium/types").AppiumLoggerPrefix | null | undefined): AppiumLogger;
1
7
  /** @type {import('@appium/types').AppiumLoggerLevel[]} */
2
8
  export const LEVELS: import('@appium/types').AppiumLoggerLevel[];
9
+ export const log: import("@appium/types").AppiumLogger;
3
10
  export default log;
4
- export type LoadResult = {
5
- /**
6
- * The list of rule parsing issues (one item per rule).
7
- * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
8
- */
9
- issues: string[];
10
- /**
11
- * The list of successfully loaded
12
- * replacement rules. The list could be empty if no rules were loaded.
13
- */
14
- rules: import('./log-internal').SecureValuePreprocessingRule[];
15
- };
16
11
  export type AppiumLoggerPrefix = import('@appium/types').AppiumLoggerPrefix;
17
12
  export type AppiumLogger = import('@appium/types').AppiumLogger;
18
13
  export type AppiumLoggerLevel = import('@appium/types').AppiumLoggerLevel;
19
- export const log: import("@appium/types").AppiumLogger;
20
- /**
21
- *
22
- * @param {AppiumLoggerPrefix?} prefix
23
- * @returns {AppiumLogger}
24
- */
25
- export function getLogger(prefix?: AppiumLoggerPrefix | null): AppiumLogger;
26
- /**
27
- * @typedef LoadResult
28
- * @property {string[]} issues The list of rule parsing issues (one item per rule).
29
- * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
30
- * @property {import('./log-internal').SecureValuePreprocessingRule[]} rules The list of successfully loaded
31
- * replacement rules. The list could be empty if no rules were loaded.
32
- */
33
- /**
34
- * Loads the JSON file containing secure values replacement rules.
35
- * This might be necessary to hide sensitive values that may possibly
36
- * appear in Appium logs.
37
- * Each call to this method replaces the previously loaded rules if any existed.
38
- *
39
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} rulesJsonPath The full path to the JSON file containing
40
- * the replacement rules. Each rule could either be a string to be replaced
41
- * or an object with predefined properties.
42
- * @throws {Error} If the given file cannot be loaded
43
- * @returns {Promise<LoadResult>}
44
- */
45
- export function loadSecureValuesPreprocessingRules(rulesJsonPath: string | string[] | import('@appium/types').LogFiltersConfig): Promise<LoadResult>;
46
14
  //# sourceMappingURL=logging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":"AAOA,0DAA0D;AAC1D,qBADW,OAAO,eAAe,EAAE,iBAAiB,EAAE,CAC+B;;;;;;;YA6GvE,MAAM,EAAE;;;;;WAER,OAAO,gBAAgB,EAAE,4BAA4B,EAAE;;iCA+BxD,OAAO,eAAe,EAAE,kBAAkB;2BAC1C,OAAO,eAAe,EAAE,YAAY;gCACpC,OAAO,eAAe,EAAE,iBAAiB;AARtD,uDAAwB;AA1FxB;;;;GAIG;AACH,mCAHW,kBAAkB,UAChB,YAAY,CAwDxB;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AACH,kEANW,MAAM,GAAC,MAAM,EAAE,GAAC,OAAO,eAAe,EAAE,gBAAgB,GAItD,QAAQ,UAAU,CAAC,CAQ/B"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,mGAFa,YAAY,CA0DxB;AAjFD,0DAA0D;AAC1D,qBADW,OAAO,eAAe,EAAE,iBAAiB,EAAE,CAC+B;AAIrF,uDAA+B;;iCAoHlB,OAAO,eAAe,EAAE,kBAAkB;2BAC1C,OAAO,eAAe,EAAE,YAAY;gCACpC,OAAO,eAAe,EAAE,iBAAiB"}
@@ -1,68 +1,63 @@
1
1
  "use strict";
2
- // @ts-check
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
6
5
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.loadSecureValuesPreprocessingRules = exports.getLogger = exports.log = exports.LEVELS = void 0;
6
+ exports.getLogger = exports.log = exports.LEVELS = void 0;
8
7
  const logger_1 = __importDefault(require("@appium/logger"));
9
8
  const lodash_1 = __importDefault(require("lodash"));
10
9
  const moment_1 = __importDefault(require("moment"));
11
- const log_internal_1 = __importDefault(require("./log-internal"));
12
10
  /** @type {import('@appium/types').AppiumLoggerLevel[]} */
13
11
  exports.LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
14
12
  const MAX_LOG_RECORDS_COUNT = 3000;
15
13
  const PREFIX_TIMESTAMP_FORMAT = 'HH-mm-ss:SSS';
16
- // mock log object used in testing mode
17
- let mockLog = {};
18
- for (let level of exports.LEVELS) {
19
- mockLog[level] = () => { };
20
- }
21
- /**
22
- *
23
- * @returns {[import('@appium/logger').Logger, boolean]}
24
- */
25
- function _getLogger() {
26
- // check if the user set the `_TESTING` or `_FORCE_LOGS` flag
27
- const testingMode = process.env._TESTING === '1';
28
- const forceLogMode = process.env._FORCE_LOGS === '1';
29
- // if is possible that there is a logger instance that is already around,
30
- // in which case we want t o use that
31
- const usingGlobalLog = !!global._global_npmlog;
32
- let logger;
33
- if (testingMode && !forceLogMode) {
34
- // in testing mode, use a mock logger object that we can query
35
- logger = mockLog;
36
- }
37
- else {
38
- // otherwise, either use the global, or a new `npmlog` object
39
- logger = global._global_npmlog || logger_1.default;
40
- // The default value is 10000, which causes excessive memory usage
41
- logger.maxRecordSize = MAX_LOG_RECORDS_COUNT;
42
- }
43
- return [logger, usingGlobalLog];
44
- }
45
- /**
46
- * @param {AppiumLoggerPrefix?} prefix
47
- * @param {boolean} logTimestamp whether to include timestamps into log prefixes
48
- * @returns {string}
49
- */
50
- function getActualPrefix(prefix, logTimestamp = false) {
51
- const result = (lodash_1.default.isFunction(prefix) ? prefix() : prefix) ?? '';
52
- return logTimestamp ? `[${(0, moment_1.default)().format(PREFIX_TIMESTAMP_FORMAT)}] ${result}` : result;
53
- }
14
+ // export a default logger with no prefix
15
+ exports.log = getLogger();
16
+ // mock log object is used in testing mode to silence the output
17
+ const MOCK_LOG = {
18
+ unwrap: () => ({
19
+ loadSecureValuesPreprocessingRules: () => ({
20
+ issues: [],
21
+ rules: [],
22
+ }),
23
+ level: 'verbose',
24
+ prefix: '',
25
+ log: lodash_1.default.noop,
26
+ }),
27
+ ...(lodash_1.default.fromPairs(exports.LEVELS.map((l) => [l, lodash_1.default.noop]))),
28
+ };
54
29
  /**
55
30
  *
56
- * @param {AppiumLoggerPrefix?} prefix
31
+ * @param {AppiumLoggerPrefix?} [prefix=null]
57
32
  * @returns {AppiumLogger}
58
33
  */
59
34
  function getLogger(prefix = null) {
60
- let [logger, usingGlobalLog] = _getLogger();
35
+ const [logger, usingGlobalLog] = _getLogger();
61
36
  // wrap the logger so that we can catch and modify any logging
62
- let wrappedLogger = {
37
+ const wrappedLogger = {
63
38
  unwrap: () => logger,
64
39
  levels: exports.LEVELS,
65
40
  prefix,
41
+ /**
42
+ * Logs given arguments at the error level and returns
43
+ * the error object.
44
+ *
45
+ * @param {...any} args
46
+ * @returns {Error}
47
+ */
48
+ errorWithException(/** @type {any[]} */ ...args) {
49
+ this.error(...args);
50
+ // make sure we have an `Error` object. Wrap if necessary
51
+ return lodash_1.default.isError(args[0]) ? args[0] : new Error(args.join('\n'));
52
+ },
53
+ /**
54
+ * @deprecated Use {@link errorWithException} instead
55
+ * @param {...any} args
56
+ * @throws {Error}
57
+ */
58
+ errorAndThrow(/** @type {any[]} */ ...args) {
59
+ throw this.errorWithException(args);
60
+ },
66
61
  };
67
62
  // allow access to the level of the underlying logger
68
63
  Object.defineProperty(wrappedLogger, 'level', {
@@ -75,30 +70,15 @@ function getLogger(prefix = null) {
75
70
  enumerable: true,
76
71
  configurable: true,
77
72
  });
78
- const logTimestamp = process.env._LOG_TIMESTAMP === '1';
73
+ const isDebugTimestampLoggingEnabled = process.env._LOG_TIMESTAMP === '1';
79
74
  // add all the levels from `npmlog`, and map to the underlying logger
80
75
  for (const level of exports.LEVELS) {
81
- wrappedLogger[level] = /** @param {...any} args */ function (...args) {
82
- const actualPrefix = getActualPrefix(this.prefix, logTimestamp);
83
- for (const arg of args) {
84
- const out = lodash_1.default.isError(arg) && arg.stack ? arg.stack : `${arg}`;
85
- for (const line of out.split('\n')) {
86
- logger[level](actualPrefix, log_internal_1.default.preprocess(line));
87
- }
88
- }
76
+ wrappedLogger[level] = /** @param {any[]} args */ function (...args) {
77
+ const finalPrefix = getFinalPrefix(this.prefix, isDebugTimestampLoggingEnabled);
78
+ // @ts-ignore This is OK
79
+ logger[level](finalPrefix, ...args);
89
80
  };
90
81
  }
91
- wrappedLogger.errorWithException = function (/** @type {any[]} */ ...args) {
92
- this.error(...args);
93
- // make sure we have an `Error` object. Wrap if necessary
94
- return lodash_1.default.isError(args[0]) ? args[0] : new Error(args.join('\n'));
95
- };
96
- /**
97
- * @deprecated Use {@link errorWithException} instead
98
- */
99
- wrappedLogger.errorAndThrow = function (/** @type {any[]} */ ...args) {
100
- throw this.errorWithException(args);
101
- };
102
82
  if (!usingGlobalLog) {
103
83
  // if we're not using a global log specified from some top-level package,
104
84
  // set the log level to a default of verbose. Otherwise, let the top-level
@@ -109,36 +89,39 @@ function getLogger(prefix = null) {
109
89
  }
110
90
  exports.getLogger = getLogger;
111
91
  /**
112
- * @typedef LoadResult
113
- * @property {string[]} issues The list of rule parsing issues (one item per rule).
114
- * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
115
- * @property {import('./log-internal').SecureValuePreprocessingRule[]} rules The list of successfully loaded
116
- * replacement rules. The list could be empty if no rules were loaded.
92
+ *
93
+ * @returns {[import('@appium/logger').Logger, boolean]}
117
94
  */
95
+ function _getLogger() {
96
+ // check if the user set the `_TESTING` or `_FORCE_LOGS` flag
97
+ const testingMode = process.env._TESTING === '1';
98
+ const forceLogMode = process.env._FORCE_LOGS === '1';
99
+ // if is possible that there is a logger instance that is already around,
100
+ // in which case we want t o use that
101
+ const useGlobalLog = !!global._global_npmlog;
102
+ const logger = testingMode && !forceLogMode
103
+ // in testing mode, use a mock logger object that we can query
104
+ ? MOCK_LOG
105
+ // otherwise, either use the global, or a new `npmlog` object
106
+ : (global._global_npmlog || logger_1.default);
107
+ // The default value is 10000, which causes excessive memory usage
108
+ logger.maxRecordSize = MAX_LOG_RECORDS_COUNT;
109
+ return [logger, useGlobalLog];
110
+ }
118
111
  /**
119
- * Loads the JSON file containing secure values replacement rules.
120
- * This might be necessary to hide sensitive values that may possibly
121
- * appear in Appium logs.
122
- * Each call to this method replaces the previously loaded rules if any existed.
123
- *
124
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} rulesJsonPath The full path to the JSON file containing
125
- * the replacement rules. Each rule could either be a string to be replaced
126
- * or an object with predefined properties.
127
- * @throws {Error} If the given file cannot be loaded
128
- * @returns {Promise<LoadResult>}
112
+ * @param {AppiumLoggerPrefix?} prefix
113
+ * @param {boolean} [shouldLogTimestamp=false] whether to include timestamps into log prefixes
114
+ * @returns {string}
129
115
  */
130
- async function loadSecureValuesPreprocessingRules(rulesJsonPath) {
131
- const issues = await log_internal_1.default.loadRules(rulesJsonPath);
132
- return {
133
- issues,
134
- rules: lodash_1.default.cloneDeep(log_internal_1.default.rules),
135
- };
116
+ function getFinalPrefix(prefix, shouldLogTimestamp = false) {
117
+ const result = (lodash_1.default.isFunction(prefix) ? prefix() : prefix) ?? '';
118
+ if (!shouldLogTimestamp) {
119
+ return result;
120
+ }
121
+ const formattedTimestamp = `[${(0, moment_1.default)().format(PREFIX_TIMESTAMP_FORMAT)}]`;
122
+ return result ? `${formattedTimestamp} ${result}` : formattedTimestamp;
136
123
  }
137
- exports.loadSecureValuesPreprocessingRules = loadSecureValuesPreprocessingRules;
138
- // export a default logger with no prefix
139
- const log = getLogger();
140
- exports.log = log;
141
- exports.default = log;
124
+ exports.default = exports.log;
142
125
  /**
143
126
  * @typedef {import('@appium/types').AppiumLoggerPrefix} AppiumLoggerPrefix
144
127
  * @typedef {import('@appium/types').AppiumLogger} AppiumLogger
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":"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"}
@@ -137,15 +137,6 @@ export function coerceVersion<Strict extends boolean = true>(ver: string, strict
137
137
  * @returns {string} - The arguments, quoted
138
138
  */
139
139
  export function quote(args: string | string[]): string;
140
- /**
141
- * This function is necessary to workaround unexpected memory leaks
142
- * caused by NodeJS string interning
143
- * behavior described in https://bugs.chromium.org/p/v8/issues/detail?id=2869
144
- *
145
- * @param {any} s - The string to unleak
146
- * @return {string} Either the unleaked string or the original object converted to string
147
- */
148
- export function unleakString(s: any): string;
149
140
  /**
150
141
  * Stringifies the object passed in, converting Buffers into Strings for better
151
142
  * display. This mimics JSON.stringify (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,+EAEC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA6hBY,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;AA3hBrC;;;;;;;GAOG;AACH,2DAMC;AAGD,2CAEC;AAED,oEAsBC;AAED,+BAUC;AAMD,kDAoBC;AAED,8DAEC;AAED;;;;;GAKG;AACH,mCAHW,GAAG,GACD,GAAG,CASf;AAoDD;;;;GAIG;AACH,uCAHW,MAAM,GACJ,OAAO,eAAe,EAAE,OAAO,CAO3C;AA1BD;;;;;;GAMG;AACH,kCAHW,OAAO,eAAe,EAAE,OAAO,GAAC,MAAM,GACpC,MAAM,CASlB;AAsBD,4DAgBC;AAED;;;;;;;;GAQG;AACH,4CANW,MAAM,GAAC,MAAM,GACX,MAAM,CAkBlB;AAED;;;;;;;;;GASG;AACH,wCANW,MAAM,QACN,MAAM,eACL,OAAO,UACN,OAAO,CAanB;AAxPD,+EAAyE;AA0PzE;;;;;;;;GAQG;AACH,yCALW,MAAM,SACN,MAAM,YACH,MAAM,KACP,QAAQ,OAAO,CAAC,CAoB5B;AAuBD;;;;;;;;;;;;GAYG;AACH,sCAVW,MAAM,YAIN,MAAM,QAFN,MAAM,GAIJ,OAAO,CAenB;AA7CD;;;;;;;;;;GAUG;AACH,kEAPW,MAAM,6EAahB;AA8BD;;;;;;GAMG;AACH,4BAHW,MAAM,GAAC,MAAM,EAAE,GACb,MAAM,CAIlB;AAED;;;;;;;GAOG;AACH,gCAHW,GAAG,GACF,MAAM,CAIjB;AAvOD;;;;;;;;;;;GAWG;AACH,mCAPW,GAAG,aACH,CAAC,CAAC,GAAG,EAAC,GAAG,EAAE,KAAK,EAAC,GAAG,KAAK,GAAG,CAAC,iBAE7B,MAAM,GAAC,MAAM,GAAC,SAAS,GAErB,MAAM,CAsBlB;AAyMD;;;GAGG;AAEH;;;;;;;;GAQG;AACH,gCANW,MAAM,SACN,MAAM,YACN,gBAAgB,GAAC,OAAO,GAEtB,MAAM,CAYlB;AAlXD,yBAAuB;AADvB,yBAAuB;AADvB,uBAAiB;AAsXjB;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,0CANW,MAAM,SACN,eAAe,GACb,QAAQ,MAAM,CAAC,CAmD3B;6BA7bM,MAAM;6BAAN,MAAM;6BAAN,MAAM;6BAAN,MAAM;oCAVN,aAAa;AAycpB;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,8CALW,MAAM,SACN,eAAe;yBAcH,GAAG,EAAE;;EA0C3B;cAzhBa,UAAU"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,+EAEC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAghBY,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;AA9gBrC;;;;;;;GAOG;AACH,2DAMC;AAGD,2CAEC;AAED,oEAsBC;AAED,+BAUC;AAMD,kDAoBC;AAED,8DAEC;AAED;;;;;GAKG;AACH,mCAHW,GAAG,GACD,GAAG,CASf;AAoDD;;;;GAIG;AACH,uCAHW,MAAM,GACJ,OAAO,eAAe,EAAE,OAAO,CAO3C;AA1BD;;;;;;GAMG;AACH,kCAHW,OAAO,eAAe,EAAE,OAAO,GAAC,MAAM,GACpC,MAAM,CASlB;AAsBD,4DAgBC;AAED;;;;;;;;GAQG;AACH,4CANW,MAAM,GAAC,MAAM,GACX,MAAM,CAkBlB;AAED;;;;;;;;;GASG;AACH,wCANW,MAAM,QACN,MAAM,eACL,OAAO,UACN,OAAO,CAanB;AAxPD,+EAAyE;AA0PzE;;;;;;;;GAQG;AACH,yCALW,MAAM,SACN,MAAM,YACH,MAAM,KACP,QAAQ,OAAO,CAAC,CAoB5B;AAuBD;;;;;;;;;;;;GAYG;AACH,sCAVW,MAAM,YAIN,MAAM,QAFN,MAAM,GAIJ,OAAO,CAenB;AA7CD;;;;;;;;;;GAUG;AACH,kEAPW,MAAM,6EAahB;AA8BD;;;;;;GAMG;AACH,4BAHW,MAAM,GAAC,MAAM,EAAE,GACb,MAAM,CAIlB;AA3ND;;;;;;;;;;;GAWG;AACH,mCAPW,GAAG,aACH,CAAC,CAAC,GAAG,EAAC,GAAG,EAAE,KAAK,EAAC,GAAG,KAAK,GAAG,CAAC,iBAE7B,MAAM,GAAC,MAAM,GAAC,SAAS,GAErB,MAAM,CAsBlB;AA6LD;;;GAGG;AAEH;;;;;;;;GAQG;AACH,gCANW,MAAM,SACN,MAAM,YACN,gBAAgB,GAAC,OAAO,GAEtB,MAAM,CAYlB;AAtWD,yBAAuB;AADvB,yBAAuB;AADvB,uBAAiB;AA0WjB;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,0CANW,MAAM,SACN,eAAe,GACb,QAAQ,MAAM,CAAC,CAmD3B;6BAjbM,MAAM;6BAAN,MAAM;6BAAN,MAAM;6BAAN,MAAM;oCAVN,aAAa;AA6bpB;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,8CALW,MAAM,SACN,eAAe;yBAcH,GAAG,EAAE;;EA0C3B;cA7gBa,UAAU"}
package/build/lib/util.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getLockFileGuard = exports.shellParse = exports.uuidV5 = exports.uuidV4 = exports.uuidV3 = exports.uuidV1 = exports.toInMemoryBase64 = exports.KiB = exports.MiB = exports.GiB = exports.pluralize = exports.jsonStringify = exports.unleakString = exports.quote = exports.coerceVersion = exports.compareVersions = exports.isSameDestination = exports.W3C_WEB_ELEMENT_IDENTIFIER = exports.isSubPath = exports.toReadableSizeString = exports.filterObject = exports.unwrapElement = exports.wrapElement = exports.safeJsonParse = exports.multiResolve = exports.cancellableDelay = exports.localIp = exports.escapeSpecialChars = exports.escapeSpace = exports.hasValue = exports.hasContent = void 0;
6
+ exports.getLockFileGuard = exports.shellParse = exports.uuidV5 = exports.uuidV4 = exports.uuidV3 = exports.uuidV1 = exports.toInMemoryBase64 = exports.KiB = exports.MiB = exports.GiB = exports.pluralize = exports.jsonStringify = exports.quote = exports.coerceVersion = exports.compareVersions = exports.isSameDestination = exports.W3C_WEB_ELEMENT_IDENTIFIER = exports.isSubPath = exports.toReadableSizeString = exports.filterObject = exports.unwrapElement = exports.wrapElement = exports.safeJsonParse = exports.multiResolve = exports.cancellableDelay = exports.localIp = exports.escapeSpecialChars = exports.escapeSpace = exports.hasValue = exports.hasContent = void 0;
7
7
  const bluebird_1 = __importDefault(require("bluebird"));
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
9
  const os_1 = __importDefault(require("os"));
@@ -350,18 +350,6 @@ function quote(args) {
350
350
  return (0, shell_quote_1.quote)(lodash_1.default.castArray(args));
351
351
  }
352
352
  exports.quote = quote;
353
- /**
354
- * This function is necessary to workaround unexpected memory leaks
355
- * caused by NodeJS string interning
356
- * behavior described in https://bugs.chromium.org/p/v8/issues/detail?id=2869
357
- *
358
- * @param {any} s - The string to unleak
359
- * @return {string} Either the unleaked string or the original object converted to string
360
- */
361
- function unleakString(s) {
362
- return ` ${s}`.substring(1);
363
- }
364
- exports.unleakString = unleakString;
365
353
  /**
366
354
  * @typedef PluralizeOptions
367
355
  * @property {boolean} [inclusive=false] - Whether to prefix with the number (e.g., 3 ducks)
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"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"}
package/lib/index.ts CHANGED
@@ -80,4 +80,3 @@ export type {
80
80
  ZipCompressionOptions,
81
81
  ZipSourceOptions,
82
82
  } from './zip';
83
- export type {SecureValuePreprocessingRule} from './log-internal';
package/lib/logging.js CHANGED
@@ -1,72 +1,61 @@
1
- // @ts-check
2
-
3
1
  import globalLog from '@appium/logger';
4
2
  import _ from 'lodash';
5
3
  import moment from 'moment';
6
- import SECURE_VALUES_PREPROCESSOR from './log-internal';
7
4
 
8
5
  /** @type {import('@appium/types').AppiumLoggerLevel[]} */
9
6
  export const LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
10
7
  const MAX_LOG_RECORDS_COUNT = 3000;
11
-
12
8
  const PREFIX_TIMESTAMP_FORMAT = 'HH-mm-ss:SSS';
13
-
14
- // mock log object used in testing mode
15
- let mockLog = {};
16
- for (let level of LEVELS) {
17
- mockLog[level] = () => {};
18
- }
19
-
20
- /**
21
- *
22
- * @returns {[import('@appium/logger').Logger, boolean]}
23
- */
24
- function _getLogger() {
25
- // check if the user set the `_TESTING` or `_FORCE_LOGS` flag
26
- const testingMode = process.env._TESTING === '1';
27
- const forceLogMode = process.env._FORCE_LOGS === '1';
28
-
29
- // if is possible that there is a logger instance that is already around,
30
- // in which case we want t o use that
31
- const usingGlobalLog = !!global._global_npmlog;
32
- let logger;
33
- if (testingMode && !forceLogMode) {
34
- // in testing mode, use a mock logger object that we can query
35
- logger = mockLog;
36
- } else {
37
- // otherwise, either use the global, or a new `npmlog` object
38
- logger = global._global_npmlog || globalLog;
39
- // The default value is 10000, which causes excessive memory usage
40
- logger.maxRecordSize = MAX_LOG_RECORDS_COUNT;
41
- }
42
- return [logger, usingGlobalLog];
43
- }
44
-
45
- /**
46
- * @param {AppiumLoggerPrefix?} prefix
47
- * @param {boolean} logTimestamp whether to include timestamps into log prefixes
48
- * @returns {string}
49
- */
50
- function getActualPrefix(prefix, logTimestamp = false) {
51
- const result = (_.isFunction(prefix) ? prefix() : prefix) ?? '';
52
- return logTimestamp ? `[${moment().format(PREFIX_TIMESTAMP_FORMAT)}] ${result}` : result;
53
- }
9
+ // export a default logger with no prefix
10
+ export const log = getLogger();
11
+ // mock log object is used in testing mode to silence the output
12
+ const MOCK_LOG = {
13
+ unwrap: () => ({
14
+ loadSecureValuesPreprocessingRules: () => ({
15
+ issues: [],
16
+ rules: [],
17
+ }),
18
+ level: 'verbose',
19
+ prefix: '',
20
+ log: _.noop,
21
+ }),
22
+ ...(_.fromPairs(LEVELS.map((l) => [l, _.noop]))),
23
+ };
54
24
 
55
25
  /**
56
26
  *
57
- * @param {AppiumLoggerPrefix?} prefix
27
+ * @param {AppiumLoggerPrefix?} [prefix=null]
58
28
  * @returns {AppiumLogger}
59
29
  */
60
- function getLogger(prefix = null) {
61
- let [logger, usingGlobalLog] = _getLogger();
30
+ export function getLogger(prefix = null) {
31
+ const [logger, usingGlobalLog] = _getLogger();
62
32
 
63
33
  // wrap the logger so that we can catch and modify any logging
64
- let wrappedLogger = {
34
+ const wrappedLogger = {
65
35
  unwrap: () => logger,
66
36
  levels: LEVELS,
67
37
  prefix,
38
+ /**
39
+ * Logs given arguments at the error level and returns
40
+ * the error object.
41
+ *
42
+ * @param {...any} args
43
+ * @returns {Error}
44
+ */
45
+ errorWithException (/** @type {any[]} */ ...args) {
46
+ this.error(...args);
47
+ // make sure we have an `Error` object. Wrap if necessary
48
+ return _.isError(args[0]) ? args[0] : new Error(args.join('\n'));
49
+ },
50
+ /**
51
+ * @deprecated Use {@link errorWithException} instead
52
+ * @param {...any} args
53
+ * @throws {Error}
54
+ */
55
+ errorAndThrow (/** @type {any[]} */ ...args) {
56
+ throw this.errorWithException(args);
57
+ },
68
58
  };
69
-
70
59
  // allow access to the level of the underlying logger
71
60
  Object.defineProperty(wrappedLogger, 'level', {
72
61
  get() {
@@ -78,32 +67,15 @@ function getLogger(prefix = null) {
78
67
  enumerable: true,
79
68
  configurable: true,
80
69
  });
81
-
82
- const logTimestamp = process.env._LOG_TIMESTAMP === '1';
83
-
70
+ const isDebugTimestampLoggingEnabled = process.env._LOG_TIMESTAMP === '1';
84
71
  // add all the levels from `npmlog`, and map to the underlying logger
85
72
  for (const level of LEVELS) {
86
- wrappedLogger[level] = /** @param {...any} args */ function (...args) {
87
- const actualPrefix = getActualPrefix(this.prefix, logTimestamp);
88
- for (const arg of args) {
89
- const out = _.isError(arg) && arg.stack ? arg.stack : `${arg}`;
90
- for (const line of out.split('\n')) {
91
- logger[level](actualPrefix, SECURE_VALUES_PREPROCESSOR.preprocess(line));
92
- }
93
- }
73
+ wrappedLogger[level] = /** @param {any[]} args */ function (...args) {
74
+ const finalPrefix = getFinalPrefix(this.prefix, isDebugTimestampLoggingEnabled);
75
+ // @ts-ignore This is OK
76
+ logger[level](finalPrefix, ...args);
94
77
  };
95
78
  }
96
- wrappedLogger.errorWithException = function (/** @type {any[]} */ ...args) {
97
- this.error(...args);
98
- // make sure we have an `Error` object. Wrap if necessary
99
- return _.isError(args[0]) ? args[0] : new Error(args.join('\n'));
100
- };
101
- /**
102
- * @deprecated Use {@link errorWithException} instead
103
- */
104
- wrappedLogger.errorAndThrow = function (/** @type {any[]} */ ...args) {
105
- throw this.errorWithException(args);
106
- };
107
79
  if (!usingGlobalLog) {
108
80
  // if we're not using a global log specified from some top-level package,
109
81
  // set the log level to a default of verbose. Otherwise, let the top-level
@@ -114,37 +86,40 @@ function getLogger(prefix = null) {
114
86
  }
115
87
 
116
88
  /**
117
- * @typedef LoadResult
118
- * @property {string[]} issues The list of rule parsing issues (one item per rule).
119
- * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
120
- * @property {import('./log-internal').SecureValuePreprocessingRule[]} rules The list of successfully loaded
121
- * replacement rules. The list could be empty if no rules were loaded.
89
+ *
90
+ * @returns {[import('@appium/logger').Logger, boolean]}
122
91
  */
92
+ function _getLogger() {
93
+ // check if the user set the `_TESTING` or `_FORCE_LOGS` flag
94
+ const testingMode = process.env._TESTING === '1';
95
+ const forceLogMode = process.env._FORCE_LOGS === '1';
96
+ // if is possible that there is a logger instance that is already around,
97
+ // in which case we want t o use that
98
+ const useGlobalLog = !!global._global_npmlog;
99
+ const logger = testingMode && !forceLogMode
100
+ // in testing mode, use a mock logger object that we can query
101
+ ? MOCK_LOG
102
+ // otherwise, either use the global, or a new `npmlog` object
103
+ : (global._global_npmlog || globalLog);
104
+ // The default value is 10000, which causes excessive memory usage
105
+ logger.maxRecordSize = MAX_LOG_RECORDS_COUNT;
106
+ return [logger, useGlobalLog];
107
+ }
123
108
 
124
109
  /**
125
- * Loads the JSON file containing secure values replacement rules.
126
- * This might be necessary to hide sensitive values that may possibly
127
- * appear in Appium logs.
128
- * Each call to this method replaces the previously loaded rules if any existed.
129
- *
130
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} rulesJsonPath The full path to the JSON file containing
131
- * the replacement rules. Each rule could either be a string to be replaced
132
- * or an object with predefined properties.
133
- * @throws {Error} If the given file cannot be loaded
134
- * @returns {Promise<LoadResult>}
110
+ * @param {AppiumLoggerPrefix?} prefix
111
+ * @param {boolean} [shouldLogTimestamp=false] whether to include timestamps into log prefixes
112
+ * @returns {string}
135
113
  */
136
- async function loadSecureValuesPreprocessingRules(rulesJsonPath) {
137
- const issues = await SECURE_VALUES_PREPROCESSOR.loadRules(rulesJsonPath);
138
- return {
139
- issues,
140
- rules: _.cloneDeep(SECURE_VALUES_PREPROCESSOR.rules),
141
- };
114
+ function getFinalPrefix(prefix, shouldLogTimestamp = false) {
115
+ const result = (_.isFunction(prefix) ? prefix() : prefix) ?? '';
116
+ if (!shouldLogTimestamp) {
117
+ return result;
118
+ }
119
+ const formattedTimestamp = `[${moment().format(PREFIX_TIMESTAMP_FORMAT)}]`;
120
+ return result ? `${formattedTimestamp} ${result}` : formattedTimestamp;
142
121
  }
143
122
 
144
- // export a default logger with no prefix
145
- const log = getLogger();
146
-
147
- export {log, getLogger, loadSecureValuesPreprocessingRules};
148
123
  export default log;
149
124
 
150
125
  /**
package/lib/util.js CHANGED
@@ -358,18 +358,6 @@ function quote(args) {
358
358
  return shellQuote(_.castArray(args));
359
359
  }
360
360
 
361
- /**
362
- * This function is necessary to workaround unexpected memory leaks
363
- * caused by NodeJS string interning
364
- * behavior described in https://bugs.chromium.org/p/v8/issues/detail?id=2869
365
- *
366
- * @param {any} s - The string to unleak
367
- * @return {string} Either the unleaked string or the original object converted to string
368
- */
369
- function unleakString(s) {
370
- return ` ${s}`.substring(1);
371
- }
372
-
373
361
  /**
374
362
  * @typedef PluralizeOptions
375
363
  * @property {boolean} [inclusive=false] - Whether to prefix with the number (e.g., 3 ducks)
@@ -555,7 +543,6 @@ export {
555
543
  compareVersions,
556
544
  coerceVersion,
557
545
  quote,
558
- unleakString,
559
546
  jsonStringify,
560
547
  pluralize,
561
548
  GiB,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/support",
3
- "version": "4.4.0",
3
+ "version": "5.0.1",
4
4
  "description": "Support libs used across appium packages",
5
5
  "keywords": [
6
6
  "automation",
@@ -41,9 +41,9 @@
41
41
  "test:unit": "mocha \"./test/unit/**/*.spec.js\""
42
42
  },
43
43
  "dependencies": {
44
- "@appium/logger": "^1.2.0",
44
+ "@appium/logger": "^1.4.1",
45
45
  "@appium/tsconfig": "^0.3.3",
46
- "@appium/types": "^0.19.1",
46
+ "@appium/types": "^0.20.1",
47
47
  "@colors/colors": "1.6.0",
48
48
  "@types/archiver": "6.0.2",
49
49
  "@types/base64-stream": "1.0.5",
@@ -89,7 +89,7 @@
89
89
  "source-map-support": "0.5.21",
90
90
  "supports-color": "8.1.1",
91
91
  "teen_process": "2.1.4",
92
- "type-fest": "4.19.0",
92
+ "type-fest": "4.20.0",
93
93
  "uuid": "9.0.1",
94
94
  "which": "4.0.0",
95
95
  "yauzl": "3.1.3"
@@ -104,5 +104,5 @@
104
104
  "publishConfig": {
105
105
  "access": "public"
106
106
  },
107
- "gitHead": "5b043cc1ab85079be3e187bfed0bbd219426bae5"
107
+ "gitHead": "192f1f379301539540aa7882f4b667a802cbc4a8"
108
108
  }
@@ -1,51 +0,0 @@
1
- export default SECURE_VALUES_PREPROCESSOR;
2
- export type SecureValuePreprocessingRule = {
3
- /**
4
- * The parsed pattern which is going to be used for replacement
5
- */
6
- pattern: RegExp;
7
- /**
8
- * The replacer value to use. By default
9
- * equals to `DEFAULT_SECURE_REPLACER`
10
- */
11
- replacer?: string | undefined;
12
- };
13
- export const SECURE_VALUES_PREPROCESSOR: SecureValuesPreprocessor;
14
- export class SecureValuesPreprocessor {
15
- _rules: any[];
16
- /**
17
- * @returns {Array<SecureValuePreprocessingRule>} The list of successfully
18
- * parsed preprocessing rules
19
- */
20
- get rules(): SecureValuePreprocessingRule[];
21
- /**
22
- * Parses single rule from the given JSON file
23
- *
24
- * @param {string|import('@appium/types').LogFilter} rule The rule might
25
- * either be represented as a single string or a configuration object
26
- * @throws {Error} If there was an error while parsing the rule
27
- * @returns {SecureValuePreprocessingRule} The parsed rule
28
- */
29
- parseRule(rule: string | import('@appium/types').LogFilter): SecureValuePreprocessingRule;
30
- /**
31
- * Loads rules from the given JSON file
32
- *
33
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} filters
34
- * One or more log parsing rules
35
- * @throws {Error} If the format of the source file is invalid or
36
- * it does not exist
37
- * @returns {Promise<string[]>} The list of issues found while parsing each rule.
38
- * An empty list is returned if no rule parsing issues were found
39
- */
40
- loadRules(filters: string | string[] | import('@appium/types').LogFiltersConfig): Promise<string[]>;
41
- /**
42
- * Performs secure values replacement inside the given string
43
- * according to the previously loaded rules. No replacement is made
44
- * if there are no rules or the given value is not a string
45
- *
46
- * @param {string} str The string to make replacements in
47
- * @returns {string} The string with replacements made
48
- */
49
- preprocess(str: string): string;
50
- }
51
- //# sourceMappingURL=log-internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-internal.d.ts","sourceRoot":"","sources":["../../lib/log-internal.js"],"names":[],"mappings":";;;;;aAuJc,MAAM;;;;;;;AAPpB,kEAAkE;AAnIlE;IAEI,cAAgB;IAGlB;;;OAGG;IACH,4CAEC;IAED;;;;;;;OAOG;IACH,gBALW,MAAM,GAAC,OAAO,eAAe,EAAE,SAAS,GAGtC,4BAA4B,CAsDxC;IAED;;;;;;;;;OASG;IACH,mBAPW,MAAM,GAAC,MAAM,EAAE,GAAC,OAAO,eAAe,EAAE,gBAAgB,GAItD,QAAQ,MAAM,EAAE,CAAC,CA0B7B;IAED;;;;;;;OAOG;IACH,gBAHW,MAAM,GACJ,MAAM,CAYlB;CACF"}
@@ -1,149 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SecureValuesPreprocessor = exports.SECURE_VALUES_PREPROCESSOR = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const DEFAULT_REPLACER = '**SECURE**';
9
- /**
10
- * Type guard for log filter type
11
- * @param {object} value
12
- * @returns {value is import('@appium/types').LogFilterRegex}
13
- */
14
- function isLogFilterRegex(value) {
15
- return 'pattern' in value;
16
- }
17
- class SecureValuesPreprocessor {
18
- constructor() {
19
- this._rules = [];
20
- }
21
- /**
22
- * @returns {Array<SecureValuePreprocessingRule>} The list of successfully
23
- * parsed preprocessing rules
24
- */
25
- get rules() {
26
- return this._rules;
27
- }
28
- /**
29
- * Parses single rule from the given JSON file
30
- *
31
- * @param {string|import('@appium/types').LogFilter} rule The rule might
32
- * either be represented as a single string or a configuration object
33
- * @throws {Error} If there was an error while parsing the rule
34
- * @returns {SecureValuePreprocessingRule} The parsed rule
35
- */
36
- parseRule(rule) {
37
- let pattern;
38
- let replacer = DEFAULT_REPLACER;
39
- let flags = ['g'];
40
- if (lodash_1.default.isString(rule)) {
41
- if (rule.length === 0) {
42
- throw new Error(`${JSON.stringify(rule)} -> The value must not be empty`);
43
- }
44
- pattern = `\\b${lodash_1.default.escapeRegExp(rule)}\\b`;
45
- }
46
- else if (lodash_1.default.isPlainObject(rule)) {
47
- if (isLogFilterRegex(rule)) {
48
- if (!lodash_1.default.isString(rule.pattern) || rule.pattern.length === 0) {
49
- throw new Error(`${JSON.stringify(rule)} -> The value of 'pattern' must be a valid non-empty string`);
50
- }
51
- pattern = rule.pattern;
52
- }
53
- else if (lodash_1.default.has(rule, 'text')) {
54
- if (!lodash_1.default.isString(rule.text) || rule.text.length === 0) {
55
- throw new Error(`${JSON.stringify(rule)} -> The value of 'text' must be a valid non-empty string`);
56
- }
57
- pattern = `\\b${lodash_1.default.escapeRegExp(rule.text)}\\b`;
58
- }
59
- if (!pattern) {
60
- throw new Error(`${JSON.stringify(rule)} -> Must either have a field named 'pattern' or 'text'`);
61
- }
62
- if (lodash_1.default.has(rule, 'flags')) {
63
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags_2
64
- for (const flag of ['i', 'g', 'm', 's', 'u', 'y']) {
65
- if (lodash_1.default.includes(rule.flags, flag)) {
66
- flags.push(flag);
67
- }
68
- }
69
- flags = lodash_1.default.uniq(flags);
70
- }
71
- if (lodash_1.default.isString(rule.replacer)) {
72
- replacer = rule.replacer;
73
- }
74
- }
75
- else {
76
- throw new Error(`${JSON.stringify(rule)} -> Must either be a string or an object`);
77
- }
78
- return {
79
- pattern: new RegExp(pattern, flags.join('')),
80
- replacer,
81
- };
82
- }
83
- /**
84
- * Loads rules from the given JSON file
85
- *
86
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} filters
87
- * One or more log parsing rules
88
- * @throws {Error} If the format of the source file is invalid or
89
- * it does not exist
90
- * @returns {Promise<string[]>} The list of issues found while parsing each rule.
91
- * An empty list is returned if no rule parsing issues were found
92
- */
93
- async loadRules(filters) {
94
- /** @type {string[]} */
95
- const issues = [];
96
- /** @type {(import('@appium/types').LogFilter|string)[]} */
97
- const rawRules = [];
98
- for (const source of (lodash_1.default.isArray(filters) ? filters : [filters])) {
99
- if (lodash_1.default.isPlainObject(source)) {
100
- rawRules.push(/** @type {import('@appium/types').LogFilter} */ (source));
101
- }
102
- else if (lodash_1.default.isString(source)) {
103
- rawRules.push(source);
104
- }
105
- else {
106
- issues.push(`'${source}' must be a valid log filtering rule`);
107
- }
108
- }
109
- this._rules = [];
110
- for (const rawRule of rawRules) {
111
- try {
112
- this._rules.push(this.parseRule(rawRule));
113
- }
114
- catch (e) {
115
- issues.push(e.message);
116
- }
117
- }
118
- return issues;
119
- }
120
- /**
121
- * Performs secure values replacement inside the given string
122
- * according to the previously loaded rules. No replacement is made
123
- * if there are no rules or the given value is not a string
124
- *
125
- * @param {string} str The string to make replacements in
126
- * @returns {string} The string with replacements made
127
- */
128
- preprocess(str) {
129
- if (this._rules.length === 0 || !lodash_1.default.isString(str)) {
130
- return str;
131
- }
132
- let result = str;
133
- for (const rule of this._rules) {
134
- result = result.replace(rule.pattern, rule.replacer);
135
- }
136
- return result;
137
- }
138
- }
139
- exports.SecureValuesPreprocessor = SecureValuesPreprocessor;
140
- const SECURE_VALUES_PREPROCESSOR = new SecureValuesPreprocessor();
141
- exports.SECURE_VALUES_PREPROCESSOR = SECURE_VALUES_PREPROCESSOR;
142
- exports.default = SECURE_VALUES_PREPROCESSOR;
143
- /**
144
- * @typedef SecureValuePreprocessingRule
145
- * @property {RegExp} pattern The parsed pattern which is going to be used for replacement
146
- * @property {string} [replacer] The replacer value to use. By default
147
- * equals to `DEFAULT_SECURE_REPLACER`
148
- */
149
- //# sourceMappingURL=log-internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-internal.js","sourceRoot":"","sources":["../../lib/log-internal.js"],"names":[],"mappings":"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"}
@@ -1,155 +0,0 @@
1
- import _ from 'lodash';
2
-
3
- const DEFAULT_REPLACER = '**SECURE**';
4
-
5
- /**
6
- * Type guard for log filter type
7
- * @param {object} value
8
- * @returns {value is import('@appium/types').LogFilterRegex}
9
- */
10
- function isLogFilterRegex(value) {
11
- return 'pattern' in value;
12
- }
13
-
14
- class SecureValuesPreprocessor {
15
- constructor() {
16
- this._rules = [];
17
- }
18
-
19
- /**
20
- * @returns {Array<SecureValuePreprocessingRule>} The list of successfully
21
- * parsed preprocessing rules
22
- */
23
- get rules() {
24
- return this._rules;
25
- }
26
-
27
- /**
28
- * Parses single rule from the given JSON file
29
- *
30
- * @param {string|import('@appium/types').LogFilter} rule The rule might
31
- * either be represented as a single string or a configuration object
32
- * @throws {Error} If there was an error while parsing the rule
33
- * @returns {SecureValuePreprocessingRule} The parsed rule
34
- */
35
- parseRule(rule) {
36
- let pattern;
37
- let replacer = DEFAULT_REPLACER;
38
- let flags = ['g'];
39
- if (_.isString(rule)) {
40
- if (rule.length === 0) {
41
- throw new Error(`${JSON.stringify(rule)} -> The value must not be empty`);
42
- }
43
- pattern = `\\b${_.escapeRegExp(rule)}\\b`;
44
- } else if (_.isPlainObject(rule)) {
45
- if (isLogFilterRegex(rule)) {
46
- if (!_.isString(rule.pattern) || rule.pattern.length === 0) {
47
- throw new Error(
48
- `${JSON.stringify(rule)} -> The value of 'pattern' must be a valid non-empty string`
49
- );
50
- }
51
- pattern = rule.pattern;
52
- } else if (_.has(rule, 'text')) {
53
- if (!_.isString(rule.text) || rule.text.length === 0) {
54
- throw new Error(
55
- `${JSON.stringify(rule)} -> The value of 'text' must be a valid non-empty string`
56
- );
57
- }
58
- pattern = `\\b${_.escapeRegExp(rule.text)}\\b`;
59
- }
60
- if (!pattern) {
61
- throw new Error(
62
- `${JSON.stringify(rule)} -> Must either have a field named 'pattern' or 'text'`
63
- );
64
- }
65
-
66
- if (_.has(rule, 'flags')) {
67
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags_2
68
- for (const flag of ['i', 'g', 'm', 's', 'u', 'y']) {
69
- if (_.includes(rule.flags, flag)) {
70
- flags.push(flag);
71
- }
72
- }
73
- flags = _.uniq(flags);
74
- }
75
-
76
- if (_.isString(rule.replacer)) {
77
- replacer = rule.replacer;
78
- }
79
- } else {
80
- throw new Error(`${JSON.stringify(rule)} -> Must either be a string or an object`);
81
- }
82
-
83
- return {
84
- pattern: new RegExp(pattern, flags.join('')),
85
- replacer,
86
- };
87
- }
88
-
89
- /**
90
- * Loads rules from the given JSON file
91
- *
92
- * @param {string|string[]|import('@appium/types').LogFiltersConfig} filters
93
- * One or more log parsing rules
94
- * @throws {Error} If the format of the source file is invalid or
95
- * it does not exist
96
- * @returns {Promise<string[]>} The list of issues found while parsing each rule.
97
- * An empty list is returned if no rule parsing issues were found
98
- */
99
- async loadRules(filters) {
100
- /** @type {string[]} */
101
- const issues = [];
102
- /** @type {(import('@appium/types').LogFilter|string)[]} */
103
- const rawRules = [];
104
- for (const source of (_.isArray(filters) ? filters : [filters])) {
105
- if (_.isPlainObject(source)) {
106
- rawRules.push(/** @type {import('@appium/types').LogFilter} */ (source));
107
- } else if (_.isString(source)) {
108
- rawRules.push(source);
109
- } else {
110
- issues.push(`'${source}' must be a valid log filtering rule`);
111
- }
112
- }
113
- this._rules = [];
114
- for (const rawRule of rawRules) {
115
- try {
116
- this._rules.push(this.parseRule(rawRule));
117
- } catch (e) {
118
- issues.push(e.message);
119
- }
120
- }
121
- return issues;
122
- }
123
-
124
- /**
125
- * Performs secure values replacement inside the given string
126
- * according to the previously loaded rules. No replacement is made
127
- * if there are no rules or the given value is not a string
128
- *
129
- * @param {string} str The string to make replacements in
130
- * @returns {string} The string with replacements made
131
- */
132
- preprocess(str) {
133
- if (this._rules.length === 0 || !_.isString(str)) {
134
- return str;
135
- }
136
-
137
- let result = str;
138
- for (const rule of this._rules) {
139
- result = result.replace(rule.pattern, rule.replacer);
140
- }
141
- return result;
142
- }
143
- }
144
-
145
- const SECURE_VALUES_PREPROCESSOR = new SecureValuesPreprocessor();
146
-
147
- export {SECURE_VALUES_PREPROCESSOR, SecureValuesPreprocessor};
148
- export default SECURE_VALUES_PREPROCESSOR;
149
-
150
- /**
151
- * @typedef SecureValuePreprocessingRule
152
- * @property {RegExp} pattern The parsed pattern which is going to be used for replacement
153
- * @property {string} [replacer] The replacer value to use. By default
154
- * equals to `DEFAULT_SECURE_REPLACER`
155
- */