@appium/support 2.61.0 → 3.0.0

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.
Files changed (59) hide show
  1. package/build/lib/console.d.ts +1 -1
  2. package/build/lib/console.js +169 -105
  3. package/build/lib/console.js.map +1 -1
  4. package/build/lib/env.js +142 -117
  5. package/build/lib/env.js.map +1 -1
  6. package/build/lib/fs.d.ts +9 -2
  7. package/build/lib/fs.d.ts.map +1 -1
  8. package/build/lib/fs.js +358 -246
  9. package/build/lib/fs.js.map +1 -1
  10. package/build/lib/image-util.js +139 -124
  11. package/build/lib/image-util.js.map +1 -1
  12. package/build/lib/index.js +64 -103
  13. package/build/lib/index.js.map +1 -1
  14. package/build/lib/log-internal.d.ts +4 -27
  15. package/build/lib/log-internal.d.ts.map +1 -1
  16. package/build/lib/log-internal.js +141 -123
  17. package/build/lib/log-internal.js.map +1 -1
  18. package/build/lib/logger.d.ts +1 -1
  19. package/build/lib/logger.d.ts.map +1 -1
  20. package/build/lib/logger.js +5 -14
  21. package/build/lib/logger.js.map +1 -1
  22. package/build/lib/logging.d.ts +3 -4
  23. package/build/lib/logging.d.ts.map +1 -1
  24. package/build/lib/logging.js +139 -110
  25. package/build/lib/logging.js.map +1 -1
  26. package/build/lib/mjpeg.js +169 -141
  27. package/build/lib/mjpeg.js.map +1 -1
  28. package/build/lib/mkdirp.js +7 -13
  29. package/build/lib/mkdirp.js.map +1 -1
  30. package/build/lib/net.d.ts.map +1 -1
  31. package/build/lib/net.js +278 -254
  32. package/build/lib/net.js.map +1 -1
  33. package/build/lib/node.js +203 -192
  34. package/build/lib/node.js.map +1 -1
  35. package/build/lib/npm.d.ts +19 -4
  36. package/build/lib/npm.d.ts.map +1 -1
  37. package/build/lib/npm.js +277 -228
  38. package/build/lib/npm.js.map +1 -1
  39. package/build/lib/plist.js +145 -136
  40. package/build/lib/plist.js.map +1 -1
  41. package/build/lib/process.js +41 -42
  42. package/build/lib/process.js.map +1 -1
  43. package/build/lib/system.js +39 -56
  44. package/build/lib/system.js.map +1 -1
  45. package/build/lib/tempdir.js +112 -73
  46. package/build/lib/tempdir.js.map +1 -1
  47. package/build/lib/timing.js +99 -84
  48. package/build/lib/timing.js.map +1 -1
  49. package/build/lib/util.js +454 -356
  50. package/build/lib/util.js.map +1 -1
  51. package/build/lib/zip.js +469 -423
  52. package/build/lib/zip.js.map +1 -1
  53. package/build/tsconfig.tsbuildinfo +1 -1
  54. package/lib/fs.js +15 -1
  55. package/lib/log-internal.js +12 -16
  56. package/lib/logging.js +2 -3
  57. package/lib/net.js +15 -6
  58. package/lib/npm.js +28 -18
  59. package/package.json +20 -19
@@ -26,7 +26,7 @@ export class CliConsole {
26
26
  * @param {keyof typeof CliConsole['symbolToColor']} [symbol] - Symbol to use
27
27
  * @returns {string|undefined}
28
28
  */
29
- decorate(msg?: string | undefined, symbol?: "error" | "info" | "success" | "warning" | undefined): string | undefined;
29
+ decorate(msg?: string | undefined, symbol?: "info" | "success" | "warning" | "error" | undefined): string | undefined;
30
30
  /**
31
31
  * Writes to `STDOUT`. Must be stringifyable.
32
32
  *
@@ -1,113 +1,177 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.console = exports.CliConsole = void 0;
7
- Object.defineProperty(exports, "symbols", {
8
- enumerable: true,
9
- get: function () {
10
- return _logSymbols.default;
11
- }
12
- });
13
-
14
- require("source-map-support/register");
15
-
16
- var _lodash = _interopRequireDefault(require("lodash"));
17
-
18
- var _supportsColor = require("supports-color");
19
-
20
- var _console = require("console");
21
-
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _CliConsole_console, _CliConsole_useSymbols, _CliConsole_useColor;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.symbols = exports.console = exports.CliConsole = void 0;
19
+ const lodash_1 = __importDefault(require("lodash"));
20
+ const supports_color_1 = require("supports-color");
21
+ const console_1 = require("console");
22
22
  require("@colors/colors");
23
-
24
- var _logSymbols = _interopRequireDefault(require("log-symbols"));
25
-
26
- var _stream = require("stream");
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
- class NullWritable extends _stream.Writable {
31
- _write(chunk, encoding, callback) {
32
- setImmediate(callback);
33
- }
34
-
23
+ const log_symbols_1 = __importDefault(require("log-symbols"));
24
+ exports.symbols = log_symbols_1.default;
25
+ const stream_1 = require("stream");
26
+ /**
27
+ * Stream to nowhere. Used when we want to disable any output other than JSON output.
28
+ */
29
+ class NullWritable extends stream_1.Writable {
30
+ // eslint-disable-next-line promise/prefer-await-to-callbacks
31
+ _write(chunk, encoding, callback) {
32
+ setImmediate(callback);
33
+ }
35
34
  }
36
-
35
+ /**
36
+ * A particular console/logging class for Appium's CLI.
37
+ *
38
+ * - By default, uses some fancy symbols
39
+ * - Writes to `STDERR`, generally.
40
+ * - In "JSON mode", `STDERR` is squelched. Use {@linkcode Console.json} to write the JSON.
41
+ *
42
+ * DO NOT extend this to do anything other than what it already does. Download a library or something.
43
+ */
37
44
  class CliConsole {
38
- #console;
39
- #useSymbols;
40
- #useColor;
41
- static symbolToColor = {
42
- success: 'green',
43
- info: 'cyan',
44
- warning: 'yellow',
45
- error: 'red'
46
- };
47
-
48
- constructor({
49
- jsonMode = false,
50
- useSymbols = true,
51
- useColor
52
- } = {}) {
53
- this.#console = new _console.Console(process.stdout, jsonMode ? new NullWritable() : process.stderr);
54
- this.#useSymbols = Boolean(useSymbols);
55
- this.#useColor = Boolean(useColor ?? (0, _supportsColor.supportsColor)(process.stderr));
56
- }
57
-
58
- decorate(msg, symbol) {
59
- if (_lodash.default.isString(msg)) {
60
- let newMsg = msg;
61
-
62
- if (_lodash.default.isString(symbol) && this.#useSymbols) {
63
- newMsg = `${_logSymbols.default[symbol]} ${newMsg}`;
64
-
65
- if (this.#useColor) {
66
- newMsg = newMsg[CliConsole.symbolToColor[symbol]];
45
+ /**
46
+ *
47
+ * @param {ConsoleOpts} opts
48
+ */
49
+ constructor({ jsonMode = false, useSymbols = true, useColor } = {}) {
50
+ /**
51
+ * Internal console
52
+ * @type {globalThis.Console}
53
+ */
54
+ _CliConsole_console.set(this, void 0);
55
+ /**
56
+ * Whether or not to use fancy symbols when logging.
57
+ * @type {boolean}
58
+ *
59
+ */
60
+ _CliConsole_useSymbols.set(this, void 0);
61
+ /**
62
+ * Whether or not to use color.
63
+ */
64
+ _CliConsole_useColor.set(this, void 0);
65
+ __classPrivateFieldSet(this, _CliConsole_console, new console_1.Console(process.stdout, jsonMode ? new NullWritable() : process.stderr), "f");
66
+ __classPrivateFieldSet(this, _CliConsole_useSymbols, Boolean(useSymbols), "f");
67
+ __classPrivateFieldSet(this, _CliConsole_useColor, Boolean(useColor ?? (0, supports_color_1.supportsColor)(process.stderr)), "f");
68
+ }
69
+ /**
70
+ * Wraps a message string in breathtaking fanciness
71
+ *
72
+ * Returns `undefined` if `msg` is `undefined`.
73
+ * @param {string} [msg] - Message to decorate, if anything
74
+ * @param {keyof typeof CliConsole['symbolToColor']} [symbol] - Symbol to use
75
+ * @returns {string|undefined}
76
+ */
77
+ decorate(msg, symbol) {
78
+ if (lodash_1.default.isString(msg)) {
79
+ let newMsg = /** @type {string} */ (msg);
80
+ if (lodash_1.default.isString(symbol) && __classPrivateFieldGet(this, _CliConsole_useSymbols, "f")) {
81
+ newMsg = `${log_symbols_1.default[symbol]} ${newMsg}`;
82
+ if (__classPrivateFieldGet(this, _CliConsole_useColor, "f")) {
83
+ newMsg = newMsg[CliConsole.symbolToColor[symbol]];
84
+ }
85
+ }
86
+ return newMsg;
67
87
  }
68
- }
69
-
70
- return newMsg;
88
+ return msg;
89
+ }
90
+ /**
91
+ * Writes to `STDOUT`. Must be stringifyable.
92
+ *
93
+ * You probably don't want to call this more than once before exiting (since that will output invalid JSON).
94
+ * @param {import('type-fest').JsonValue} value
95
+ */
96
+ json(value) {
97
+ __classPrivateFieldGet(this, _CliConsole_console, "f").log(JSON.stringify(value));
98
+ }
99
+ /**
100
+ * General logging function.
101
+ * @param {string} [message]
102
+ * @param {...any} args
103
+ */
104
+ log(message, ...args) {
105
+ __classPrivateFieldGet(this, _CliConsole_console, "f").error(message, ...args);
106
+ }
107
+ /**
108
+ * A "success" message
109
+ * @param {string} [message]
110
+ * @param {...any} args
111
+ */
112
+ ok(message, ...args) {
113
+ __classPrivateFieldGet(this, _CliConsole_console, "f").error(this.decorate(message, 'success'), ...args);
114
+ }
115
+ /**
116
+ * Alias for {@linkcode Console.log}
117
+ * @param {string} [message]
118
+ * @param {...any} args
119
+ */
120
+ debug(message, ...args) {
121
+ this.log(message, ...args);
122
+ }
123
+ /**
124
+ * Wraps {@link console.dir}
125
+ * @param {any} item
126
+ * @param {import('util').InspectOptions} [opts]
127
+ */
128
+ dump(item, opts) {
129
+ __classPrivateFieldGet(this, _CliConsole_console, "f").dir(item, opts);
130
+ }
131
+ /**
132
+ * An "info" message
133
+ * @param {string} [message]
134
+ * @param {...any} args
135
+ */
136
+ info(message, ...args) {
137
+ this.log(this.decorate(message, 'info'), ...args);
138
+ }
139
+ /**
140
+ * A "warning" message
141
+ * @param {string} [message]
142
+ * @param {...any} args
143
+ */
144
+ warn(message, ...args) {
145
+ this.log(this.decorate(message, 'warning'), ...args);
146
+ }
147
+ /**
148
+ * An "error" message
149
+ * @param {string} [message]
150
+ * @param {...any} args
151
+ */
152
+ error(message, ...args) {
153
+ this.log(this.decorate(message, 'error'), ...args);
71
154
  }
72
-
73
- return msg;
74
- }
75
-
76
- json(value) {
77
- this.#console.log(JSON.stringify(value));
78
- }
79
-
80
- log(message, ...args) {
81
- this.#console.error(message, ...args);
82
- }
83
-
84
- ok(message, ...args) {
85
- this.#console.error(this.decorate(message, 'success'), ...args);
86
- }
87
-
88
- debug(message, ...args) {
89
- this.log(message, ...args);
90
- }
91
-
92
- dump(item, opts) {
93
- this.#console.dir(item, opts);
94
- }
95
-
96
- info(message, ...args) {
97
- this.log(this.decorate(message, 'info'), ...args);
98
- }
99
-
100
- warn(message, ...args) {
101
- this.log(this.decorate(message, 'warning'), ...args);
102
- }
103
-
104
- error(message, ...args) {
105
- this.log(this.decorate(message, 'error'), ...args);
106
- }
107
-
108
155
  }
109
-
110
156
  exports.CliConsole = CliConsole;
111
- const console = new CliConsole();
112
- exports.console = console;
113
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdWxsV3JpdGFibGUiLCJXcml0YWJsZSIsIl93cml0ZSIsImNodW5rIiwiZW5jb2RpbmciLCJjYWxsYmFjayIsInNldEltbWVkaWF0ZSIsIkNsaUNvbnNvbGUiLCJjb25zb2xlIiwidXNlU3ltYm9scyIsInVzZUNvbG9yIiwic3ltYm9sVG9Db2xvciIsInN1Y2Nlc3MiLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiY29uc3RydWN0b3IiLCJqc29uTW9kZSIsIk5vZGVDb25zb2xlIiwicHJvY2VzcyIsInN0ZG91dCIsInN0ZGVyciIsIkJvb2xlYW4iLCJzdXBwb3J0c0NvbG9yIiwiZGVjb3JhdGUiLCJtc2ciLCJzeW1ib2wiLCJfIiwiaXNTdHJpbmciLCJuZXdNc2ciLCJzeW1ib2xzIiwianNvbiIsInZhbHVlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1lc3NhZ2UiLCJhcmdzIiwib2siLCJkZWJ1ZyIsImR1bXAiLCJpdGVtIiwib3B0cyIsImRpciIsIndhcm4iXSwic291cmNlcyI6WyIuLi8uLi9saWIvY29uc29sZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtzdXBwb3J0c0NvbG9yfSBmcm9tICdzdXBwb3J0cy1jb2xvcic7XG5pbXBvcnQge0NvbnNvbGUgYXMgTm9kZUNvbnNvbGV9IGZyb20gJ2NvbnNvbGUnO1xuaW1wb3J0ICdAY29sb3JzL2NvbG9ycyc7XG5pbXBvcnQgc3ltYm9scyBmcm9tICdsb2ctc3ltYm9scyc7XG5pbXBvcnQge1dyaXRhYmxlfSBmcm9tICdzdHJlYW0nO1xuXG4vKipcbiAqIFN0cmVhbSB0byBub3doZXJlLiBVc2VkIHdoZW4gd2Ugd2FudCB0byBkaXNhYmxlIGFueSBvdXRwdXQgb3RoZXIgdGhhbiBKU09OIG91dHB1dC5cbiAqL1xuY2xhc3MgTnVsbFdyaXRhYmxlIGV4dGVuZHMgV3JpdGFibGUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tY2FsbGJhY2tzXG4gIF93cml0ZShjaHVuaywgZW5jb2RpbmcsIGNhbGxiYWNrKSB7XG4gICAgc2V0SW1tZWRpYXRlKGNhbGxiYWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcGFydGljdWxhciBjb25zb2xlL2xvZ2dpbmcgY2xhc3MgZm9yIEFwcGl1bSdzIENMSS5cbiAqXG4gKiAtIEJ5IGRlZmF1bHQsIHVzZXMgc29tZSBmYW5jeSBzeW1ib2xzXG4gKiAtIFdyaXRlcyB0byBgU1RERVJSYCwgZ2VuZXJhbGx5LlxuICogLSBJbiBcIkpTT04gbW9kZVwiLCBgU1RERVJSYCBpcyBzcXVlbGNoZWQuIFVzZSB7QGxpbmtjb2RlIENvbnNvbGUuanNvbn0gdG8gd3JpdGUgdGhlIEpTT04uXG4gKlxuICogRE8gTk9UIGV4dGVuZCB0aGlzIHRvIGRvIGFueXRoaW5nIG90aGVyIHRoYW4gd2hhdCBpdCBhbHJlYWR5IGRvZXMuIERvd25sb2FkIGEgbGlicmFyeSBvciBzb21ldGhpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGlDb25zb2xlIHtcbiAgLyoqXG4gICAqIEludGVybmFsIGNvbnNvbGVcbiAgICogQHR5cGUge2dsb2JhbFRoaXMuQ29uc29sZX1cbiAgICovXG4gICNjb25zb2xlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgZmFuY3kgc3ltYm9scyB3aGVuIGxvZ2dpbmcuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKlxuICAgKi9cbiAgI3VzZVN5bWJvbHM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBjb2xvci5cbiAgICovXG4gICN1c2VDb2xvcjtcblxuICAvKipcbiAgICogQHR5cGUge1JlY29yZDxrZXlvZiB0eXBlb2Ygc3ltYm9scyxrZXlvZiBFeHRyYWN0PGltcG9ydCgnQGNvbG9ycy9jb2xvcnMnKS5Db2xvciwgJ3N0cmluZyc+Pn1cbiAgICovXG4gIHN0YXRpYyBzeW1ib2xUb0NvbG9yID0ge1xuICAgIHN1Y2Nlc3M6ICdncmVlbicsXG4gICAgaW5mbzogJ2N5YW4nLFxuICAgIHdhcm5pbmc6ICd5ZWxsb3cnLFxuICAgIGVycm9yOiAncmVkJyxcbiAgfTtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xlT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3Ioe2pzb25Nb2RlID0gZmFsc2UsIHVzZVN5bWJvbHMgPSB0cnVlLCB1c2VDb2xvcn0gPSB7fSkge1xuICAgIHRoaXMuI2NvbnNvbGUgPSBuZXcgTm9kZUNvbnNvbGUocHJvY2Vzcy5zdGRvdXQsIGpzb25Nb2RlID8gbmV3IE51bGxXcml0YWJsZSgpIDogcHJvY2Vzcy5zdGRlcnIpO1xuICAgIHRoaXMuI3VzZVN5bWJvbHMgPSBCb29sZWFuKHVzZVN5bWJvbHMpO1xuICAgIHRoaXMuI3VzZUNvbG9yID0gQm9vbGVhbih1c2VDb2xvciA/PyBzdXBwb3J0c0NvbG9yKHByb2Nlc3Muc3RkZXJyKSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHMgYSBtZXNzYWdlIHN0cmluZyBpbiBicmVhdGh0YWtpbmcgZmFuY2luZXNzXG4gICAqXG4gICAqIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgYG1zZ2AgaXMgYHVuZGVmaW5lZGAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbXNnXSAtIE1lc3NhZ2UgdG8gZGVjb3JhdGUsIGlmIGFueXRoaW5nXG4gICAqIEBwYXJhbSB7a2V5b2YgdHlwZW9mIENsaUNvbnNvbGVbJ3N5bWJvbFRvQ29sb3InXX0gW3N5bWJvbF0gLSBTeW1ib2wgdG8gdXNlXG4gICAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfVxuICAgKi9cbiAgZGVjb3JhdGUobXNnLCBzeW1ib2wpIHtcbiAgICBpZiAoXy5pc1N0cmluZyhtc2cpKSB7XG4gICAgICBsZXQgbmV3TXNnID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChtc2cpO1xuICAgICAgaWYgKF8uaXNTdHJpbmcoc3ltYm9sKSAmJiB0aGlzLiN1c2VTeW1ib2xzKSB7XG4gICAgICAgIG5ld01zZyA9IGAke3N5bWJvbHNbc3ltYm9sXX0gJHtuZXdNc2d9YDtcbiAgICAgICAgaWYgKHRoaXMuI3VzZUNvbG9yKSB7XG4gICAgICAgICAgbmV3TXNnID0gbmV3TXNnW0NsaUNvbnNvbGUuc3ltYm9sVG9Db2xvcltzeW1ib2xdXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld01zZztcbiAgICB9XG4gICAgcmV0dXJuIG1zZztcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdG8gYFNURE9VVGAuICBNdXN0IGJlIHN0cmluZ2lmeWFibGUuXG4gICAqXG4gICAqIFlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIGNhbGwgdGhpcyBtb3JlIHRoYW4gb25jZSBiZWZvcmUgZXhpdGluZyAoc2luY2UgdGhhdCB3aWxsIG91dHB1dCBpbnZhbGlkIEpTT04pLlxuICAgKiBAcGFyYW0ge2ltcG9ydCgndHlwZS1mZXN0JykuSnNvblZhbHVlfSB2YWx1ZVxuICAgKi9cbiAganNvbih2YWx1ZSkge1xuICAgIHRoaXMuI2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhbCBsb2dnaW5nIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqL1xuICBsb2cobWVzc2FnZSwgLi4uYXJncykge1xuICAgIHRoaXMuI2NvbnNvbGUuZXJyb3IobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQSBcInN1Y2Nlc3NcIiBtZXNzYWdlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAgICogQHBhcmFtIHsuLi5hbnl9IGFyZ3NcbiAgICovXG4gIG9rKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLiNjb25zb2xlLmVycm9yKHRoaXMuZGVjb3JhdGUobWVzc2FnZSwgJ3N1Y2Nlc3MnKSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQWxpYXMgZm9yIHtAbGlua2NvZGUgQ29uc29sZS5sb2d9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAgICogQHBhcmFtIHsuLi5hbnl9IGFyZ3NcbiAgICovXG4gIGRlYnVnKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLmxvZyhtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcyB7QGxpbmsgY29uc29sZS5kaXJ9XG4gICAqIEBwYXJhbSB7YW55fSBpdGVtXG4gICAqIEBwYXJhbSB7aW1wb3J0KCd1dGlsJykuSW5zcGVjdE9wdGlvbnN9IFtvcHRzXVxuICAgKi9cbiAgZHVtcChpdGVtLCBvcHRzKSB7XG4gICAgdGhpcy4jY29uc29sZS5kaXIoaXRlbSwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQW4gXCJpbmZvXCIgbWVzc2FnZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqL1xuICBpbmZvKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLmxvZyh0aGlzLmRlY29yYXRlKG1lc3NhZ2UsICdpbmZvJyksIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgXCJ3YXJuaW5nXCIgbWVzc2FnZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gICAqL1xuICB3YXJuKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLmxvZyh0aGlzLmRlY29yYXRlKG1lc3NhZ2UsICd3YXJuaW5nJyksIC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIFwiZXJyb3JcIiBtZXNzYWdlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAgICogQHBhcmFtIHsuLi5hbnl9IGFyZ3NcbiAgICovXG4gIGVycm9yKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICB0aGlzLmxvZyh0aGlzLmRlY29yYXRlKG1lc3NhZ2UsICdlcnJvcicpLCAuLi5hcmdzKTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGlua2NvZGUgQ2xpQ29uc29sZX0uXG4gKlxuICogQHR5cGVkZWYgQ29uc29sZU9wdHNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2pzb25Nb2RlXSAtIElmIF90cnV0aHlfLCBzdXByZXNzIGFsbCBvdXRwdXQgZXhjZXB0IEpTT04gKHVzZSB7QGxpbmtjb2RlIENsaUNvbnNvbGUjanNvbn0pLCB3aGljaCB3cml0ZXMgdG8gYFNURE9VVGAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFt1c2VTeW1ib2xzXSAtIElmIF9mYWxzeV8sIGRvIG5vdCB1c2UgZmFuY3kgc3ltYm9scy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3VzZUNvbG9yXSAtIElmIF9mYWxzeV8sIGRvIG5vdCB1c2UgY29sb3Igb3V0cHV0LiBJZiBfdHJ1dGh5XywgZm9yY2VzIGNvbG9yIG91dHB1dC4gQnkgZGVmYXVsdCwgY2hlY2tzIHRlcm1pbmFsL1RUWSBmb3Igc3VwcG9ydCB2aWEgcGtnIGBzdXBwb3J0cy1jb2xvcmAuIElnbm9yZWQgaWYgYHVzZVN5bWJvbHNgIGlzIGBmYWxzZWAuXG4gKiBAc2VlIGh0dHBzOi8vbnBtLmltL3N1cHBvcnRzLWNvbG9yXG4gKi9cblxuZXhwb3J0IGNvbnN0IGNvbnNvbGUgPSBuZXcgQ2xpQ29uc29sZSgpO1xuZXhwb3J0IHtzeW1ib2xzfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFLQSxNQUFNQSxZQUFOLFNBQTJCQyxnQkFBM0IsQ0FBb0M7RUFFbENDLE1BQU0sQ0FBQ0MsS0FBRCxFQUFRQyxRQUFSLEVBQWtCQyxRQUFsQixFQUE0QjtJQUNoQ0MsWUFBWSxDQUFDRCxRQUFELENBQVo7RUFDRDs7QUFKaUM7O0FBZ0I3QixNQUFNRSxVQUFOLENBQWlCO0VBS3RC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
157
+ _CliConsole_console = new WeakMap(), _CliConsole_useSymbols = new WeakMap(), _CliConsole_useColor = new WeakMap();
158
+ /**
159
+ * @type {Record<keyof typeof symbols,keyof Extract<import('@colors/colors').Color, 'string'>>}
160
+ */
161
+ CliConsole.symbolToColor = {
162
+ success: 'green',
163
+ info: 'cyan',
164
+ warning: 'yellow',
165
+ error: 'red',
166
+ };
167
+ /**
168
+ * Options for {@linkcode CliConsole}.
169
+ *
170
+ * @typedef ConsoleOpts
171
+ * @property {boolean} [jsonMode] - If _truthy_, supress all output except JSON (use {@linkcode CliConsole#json}), which writes to `STDOUT`.
172
+ * @property {boolean} [useSymbols] - If _falsy_, do not use fancy symbols.
173
+ * @property {boolean} [useColor] - If _falsy_, do not use color output. If _truthy_, forces color output. By default, checks terminal/TTY for support via pkg `supports-color`. Ignored if `useSymbols` is `false`.
174
+ * @see https://npm.im/supports-color
175
+ */
176
+ exports.console = new CliConsole();
177
+ //# sourceMappingURL=console.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","names":["NullWritable","Writable","_write","chunk","encoding","callback","setImmediate","CliConsole","console","useSymbols","useColor","symbolToColor","success","info","warning","error","constructor","jsonMode","NodeConsole","process","stdout","stderr","Boolean","supportsColor","decorate","msg","symbol","_","isString","newMsg","symbols","json","value","log","JSON","stringify","message","args","ok","debug","dump","item","opts","dir","warn"],"sources":["../../lib/console.js"],"sourcesContent":["import _ from 'lodash';\nimport {supportsColor} from 'supports-color';\nimport {Console as NodeConsole} from 'console';\nimport '@colors/colors';\nimport symbols from 'log-symbols';\nimport {Writable} from 'stream';\n\n/**\n * Stream to nowhere. Used when we want to disable any output other than JSON output.\n */\nclass NullWritable extends Writable {\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n _write(chunk, encoding, callback) {\n setImmediate(callback);\n }\n}\n\n/**\n * A particular console/logging class for Appium's CLI.\n *\n * - By default, uses some fancy symbols\n * - Writes to `STDERR`, generally.\n * - In \"JSON mode\", `STDERR` is squelched. Use {@linkcode Console.json} to write the JSON.\n *\n * DO NOT extend this to do anything other than what it already does. Download a library or something.\n */\nexport class CliConsole {\n /**\n * Internal console\n * @type {globalThis.Console}\n */\n #console;\n\n /**\n * Whether or not to use fancy symbols when logging.\n * @type {boolean}\n *\n */\n #useSymbols;\n\n /**\n * Whether or not to use color.\n */\n #useColor;\n\n /**\n * @type {Record<keyof typeof symbols,keyof Extract<import('@colors/colors').Color, 'string'>>}\n */\n static symbolToColor = {\n success: 'green',\n info: 'cyan',\n warning: 'yellow',\n error: 'red',\n };\n\n /**\n *\n * @param {ConsoleOpts} opts\n */\n constructor({jsonMode = false, useSymbols = true, useColor} = {}) {\n this.#console = new NodeConsole(process.stdout, jsonMode ? new NullWritable() : process.stderr);\n this.#useSymbols = Boolean(useSymbols);\n this.#useColor = Boolean(useColor ?? supportsColor(process.stderr));\n }\n\n /**\n * Wraps a message string in breathtaking fanciness\n *\n * Returns `undefined` if `msg` is `undefined`.\n * @param {string} [msg] - Message to decorate, if anything\n * @param {keyof typeof CliConsole['symbolToColor']} [symbol] - Symbol to use\n * @returns {string|undefined}\n */\n decorate(msg, symbol) {\n if (_.isString(msg)) {\n let newMsg = /** @type {string} */ (msg);\n if (_.isString(symbol) && this.#useSymbols) {\n newMsg = `${symbols[symbol]} ${newMsg}`;\n if (this.#useColor) {\n newMsg = newMsg[CliConsole.symbolToColor[symbol]];\n }\n }\n return newMsg;\n }\n return msg;\n }\n\n /**\n * Writes to `STDOUT`. Must be stringifyable.\n *\n * You probably don't want to call this more than once before exiting (since that will output invalid JSON).\n * @param {import('type-fest').JsonValue} value\n */\n json(value) {\n this.#console.log(JSON.stringify(value));\n }\n\n /**\n * General logging function.\n * @param {string} [message]\n * @param {...any} args\n */\n log(message, ...args) {\n this.#console.error(message, ...args);\n }\n\n /**\n * A \"success\" message\n * @param {string} [message]\n * @param {...any} args\n */\n ok(message, ...args) {\n this.#console.error(this.decorate(message, 'success'), ...args);\n }\n\n /**\n * Alias for {@linkcode Console.log}\n * @param {string} [message]\n * @param {...any} args\n */\n debug(message, ...args) {\n this.log(message, ...args);\n }\n\n /**\n * Wraps {@link console.dir}\n * @param {any} item\n * @param {import('util').InspectOptions} [opts]\n */\n dump(item, opts) {\n this.#console.dir(item, opts);\n }\n\n /**\n * An \"info\" message\n * @param {string} [message]\n * @param {...any} args\n */\n info(message, ...args) {\n this.log(this.decorate(message, 'info'), ...args);\n }\n\n /**\n * A \"warning\" message\n * @param {string} [message]\n * @param {...any} args\n */\n warn(message, ...args) {\n this.log(this.decorate(message, 'warning'), ...args);\n }\n\n /**\n * An \"error\" message\n * @param {string} [message]\n * @param {...any} args\n */\n error(message, ...args) {\n this.log(this.decorate(message, 'error'), ...args);\n }\n}\n\n/**\n * Options for {@linkcode CliConsole}.\n *\n * @typedef ConsoleOpts\n * @property {boolean} [jsonMode] - If _truthy_, supress all output except JSON (use {@linkcode CliConsole#json}), which writes to `STDOUT`.\n * @property {boolean} [useSymbols] - If _falsy_, do not use fancy symbols.\n * @property {boolean} [useColor] - If _falsy_, do not use color output. If _truthy_, forces color output. By default, checks terminal/TTY for support via pkg `supports-color`. Ignored if `useSymbols` is `false`.\n * @see https://npm.im/supports-color\n */\n\nexport const console = new CliConsole();\nexport {symbols};\n"],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../lib/console.js"],"names":[],"mappings":"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"}