@appium/support 7.0.5 → 7.0.6

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 (114) hide show
  1. package/LICENSE +201 -0
  2. package/build/lib/console.d.ts +42 -88
  3. package/build/lib/console.d.ts.map +1 -1
  4. package/build/lib/console.js +20 -80
  5. package/build/lib/console.js.map +1 -1
  6. package/build/lib/doctor.d.ts +6 -18
  7. package/build/lib/doctor.d.ts.map +1 -1
  8. package/build/lib/doctor.js +0 -15
  9. package/build/lib/doctor.js.map +1 -1
  10. package/build/lib/env.d.ts +14 -20
  11. package/build/lib/env.d.ts.map +1 -1
  12. package/build/lib/env.js +13 -50
  13. package/build/lib/env.js.map +1 -1
  14. package/build/lib/fs.d.ts +109 -148
  15. package/build/lib/fs.d.ts.map +1 -1
  16. package/build/lib/fs.js +88 -188
  17. package/build/lib/fs.js.map +1 -1
  18. package/build/lib/image-util.d.ts +7 -6
  19. package/build/lib/image-util.d.ts.map +1 -1
  20. package/build/lib/image-util.js +9 -6
  21. package/build/lib/image-util.js.map +1 -1
  22. package/build/lib/index.d.ts +19 -17
  23. package/build/lib/index.d.ts.map +1 -1
  24. package/build/lib/logger.d.ts +1 -1
  25. package/build/lib/logger.d.ts.map +1 -1
  26. package/build/lib/logger.js +1 -1
  27. package/build/lib/logger.js.map +1 -1
  28. package/build/lib/logging.d.ts +7 -15
  29. package/build/lib/logging.d.ts.map +1 -1
  30. package/build/lib/logging.js +36 -62
  31. package/build/lib/logging.js.map +1 -1
  32. package/build/lib/mjpeg.d.ts +19 -56
  33. package/build/lib/mjpeg.d.ts.map +1 -1
  34. package/build/lib/mjpeg.js +53 -76
  35. package/build/lib/mjpeg.js.map +1 -1
  36. package/build/lib/mkdirp.d.ts +4 -1
  37. package/build/lib/mkdirp.d.ts.map +1 -1
  38. package/build/lib/mkdirp.js +1 -2
  39. package/build/lib/mkdirp.js.map +1 -1
  40. package/build/lib/net.d.ts +52 -90
  41. package/build/lib/net.d.ts.map +1 -1
  42. package/build/lib/net.js +104 -193
  43. package/build/lib/net.js.map +1 -1
  44. package/build/lib/node.d.ts +16 -17
  45. package/build/lib/node.d.ts.map +1 -1
  46. package/build/lib/node.js +106 -111
  47. package/build/lib/node.js.map +1 -1
  48. package/build/lib/npm.d.ts +65 -86
  49. package/build/lib/npm.d.ts.map +1 -1
  50. package/build/lib/npm.js +59 -117
  51. package/build/lib/npm.js.map +1 -1
  52. package/build/lib/plist.d.ts +36 -29
  53. package/build/lib/plist.d.ts.map +1 -1
  54. package/build/lib/plist.js +62 -59
  55. package/build/lib/plist.js.map +1 -1
  56. package/build/lib/process.d.ts +19 -2
  57. package/build/lib/process.d.ts.map +1 -1
  58. package/build/lib/process.js +24 -7
  59. package/build/lib/process.js.map +1 -1
  60. package/build/lib/system.d.ts +41 -6
  61. package/build/lib/system.d.ts.map +1 -1
  62. package/build/lib/system.js +46 -11
  63. package/build/lib/system.js.map +1 -1
  64. package/build/lib/tempdir.d.ts +26 -49
  65. package/build/lib/tempdir.d.ts.map +1 -1
  66. package/build/lib/tempdir.js +41 -73
  67. package/build/lib/tempdir.js.map +1 -1
  68. package/build/lib/timing.d.ts +28 -22
  69. package/build/lib/timing.d.ts.map +1 -1
  70. package/build/lib/timing.js +16 -17
  71. package/build/lib/timing.js.map +1 -1
  72. package/build/lib/util.d.ts +164 -181
  73. package/build/lib/util.d.ts.map +1 -1
  74. package/build/lib/util.js +193 -247
  75. package/build/lib/util.js.map +1 -1
  76. package/build/lib/zip.d.ts +81 -139
  77. package/build/lib/zip.d.ts.map +1 -1
  78. package/build/lib/zip.js +210 -258
  79. package/build/lib/zip.js.map +1 -1
  80. package/lib/console.ts +139 -0
  81. package/lib/{doctor.js → doctor.ts} +6 -20
  82. package/lib/{env.js → env.ts} +31 -59
  83. package/lib/fs.ts +453 -0
  84. package/lib/image-util.ts +40 -0
  85. package/lib/index.ts +1 -0
  86. package/lib/{logger.js → logger.ts} +1 -1
  87. package/lib/logging.ts +157 -0
  88. package/lib/mjpeg.ts +186 -0
  89. package/lib/{mkdirp.js → mkdirp.ts} +2 -2
  90. package/lib/net.ts +305 -0
  91. package/lib/{node.js → node.ts} +134 -133
  92. package/lib/npm.ts +291 -0
  93. package/lib/plist.ts +187 -0
  94. package/lib/process.ts +62 -0
  95. package/lib/system.ts +95 -0
  96. package/lib/tempdir.ts +115 -0
  97. package/lib/{timing.js → timing.ts} +28 -33
  98. package/lib/util.ts +561 -0
  99. package/lib/{zip.js → zip.ts} +341 -296
  100. package/package.json +20 -22
  101. package/tsconfig.json +3 -5
  102. package/index.js +0 -1
  103. package/lib/console.js +0 -173
  104. package/lib/fs.js +0 -496
  105. package/lib/image-util.js +0 -32
  106. package/lib/logging.js +0 -145
  107. package/lib/mjpeg.js +0 -207
  108. package/lib/net.js +0 -336
  109. package/lib/npm.js +0 -310
  110. package/lib/plist.js +0 -182
  111. package/lib/process.js +0 -46
  112. package/lib/system.js +0 -48
  113. package/lib/tempdir.js +0 -131
  114. package/lib/util.js +0 -584
@@ -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.Duration = exports.Timer = void 0;
6
+ exports.default = exports.Timer = exports.Duration = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const NS_PER_S = 1e9;
9
9
  const NS_PER_MS = 1e6;
@@ -11,8 +11,9 @@ const NS_PER_MS = 1e6;
11
11
  * Class representing a duration, encapsulating the number and units.
12
12
  */
13
13
  class Duration {
14
- constructor(nanos) {
15
- this._nanos = nanos;
14
+ _nanos;
15
+ constructor(_nanos) {
16
+ this._nanos = _nanos;
16
17
  }
17
18
  get nanos() {
18
19
  return this._nanos;
@@ -48,11 +49,12 @@ class Duration {
48
49
  }
49
50
  exports.Duration = Duration;
50
51
  class Timer {
52
+ _startTime;
51
53
  /**
52
54
  * Creates a timer
53
55
  */
54
- constructor() {
55
- this._startTime = null;
56
+ constructor(_startTime = null) {
57
+ this._startTime = _startTime;
56
58
  }
57
59
  get startTime() {
58
60
  return this._startTime;
@@ -63,13 +65,10 @@ class Timer {
63
65
  * @return {Timer} The current instance, for chaining
64
66
  */
65
67
  start() {
66
- if (!lodash_1.default.isNull(this.startTime)) {
68
+ if (!lodash_1.default.isNull(this._startTime)) {
67
69
  throw new Error('Timer has already been started.');
68
70
  }
69
- // once Node 10 is no longer supported, this check can be removed
70
- this._startTime = lodash_1.default.isFunction(process.hrtime.bigint)
71
- ? process.hrtime.bigint()
72
- : process.hrtime();
71
+ this._startTime = process.hrtime.bigint();
73
72
  return this;
74
73
  }
75
74
  /**
@@ -78,23 +77,23 @@ class Timer {
78
77
  * @return {Duration} the duration
79
78
  */
80
79
  getDuration() {
81
- if (lodash_1.default.isNull(this.startTime)) {
82
- throw new Error(`Unable to get duration. Timer was not started`);
80
+ if (lodash_1.default.isNull(this._startTime)) {
81
+ throw new Error('Unable to get duration. Timer was not started');
83
82
  }
84
83
  let nanoDuration;
85
- if (lodash_1.default.isArray(this.startTime)) {
84
+ if (lodash_1.default.isArray(this._startTime)) {
86
85
  // startTime was created using process.hrtime()
87
- const [seconds, nanos] = process.hrtime(this.startTime);
86
+ const [seconds, nanos] = process.hrtime(this._startTime);
88
87
  nanoDuration = seconds * NS_PER_S + nanos;
89
88
  }
90
- else if (typeof this.startTime === 'bigint' && lodash_1.default.isFunction(process.hrtime.bigint)) {
89
+ else if (typeof this._startTime === 'bigint') {
91
90
  // startTime was created using process.hrtime.bigint()
92
91
  const endTime = process.hrtime.bigint();
93
92
  // get the difference, and convert to number
94
- nanoDuration = Number(endTime - this.startTime);
93
+ nanoDuration = Number(endTime - this._startTime);
95
94
  }
96
95
  else {
97
- throw new Error(`Unable to get duration. Start time '${this.startTime}' cannot be parsed`);
96
+ throw new Error(`Unable to get duration. Start time '${this._startTime}' cannot be parsed`);
98
97
  }
99
98
  return new Duration(nanoDuration);
100
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../lib/timing.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../lib/timing.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,SAAS,GAAG,GAAG,CAAC;AAKtB;;GAEG;AACH,MAAa,QAAQ;IACC;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,mCAAmC;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAtCD,4BAsCC;AAED,MAAa,KAAK;IAII;IAHpB;;OAEG;IACH,YAAoB,aAA4B,IAAI;QAAhC,eAAU,GAAV,UAAU,CAAsB;IAAG,CAAC;IAExD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,+CAA+C;YAC/C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAA8B,CAAC,CAAC;YAC7E,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC/C,sDAAsD;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,4CAA4C;YAC5C,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,UAAU,oBAAoB,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAU,GAAa,CAAC,OAAO,GAAG,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AAzDD,sBAyDC;AAEgB,wBAAO"}
@@ -1,233 +1,216 @@
1
- /**
2
- * @template {string} T
3
- * @param {T} val
4
- * @returns {val is NonEmptyString<T>}
5
- */
6
- export function hasContent<T extends string>(val: T): val is NonEmptyString<T>;
7
- export type PluralizeOptions = {
8
- /**
9
- * - Whether to prefix with the number (e.g., 3 ducks)
10
- */
11
- inclusive?: boolean | undefined;
12
- };
13
- export type EncodingOptions = {
14
- /**
15
- * The maximum size of
16
- * the resulting buffer in bytes. This is set to 1GB by default, because
17
- * Appium limits the maximum HTTP body size to 1GB. Also, the NodeJS heap
18
- * size must be enough to keep the resulting object (usually this size is
19
- * limited to 1.4 GB)
20
- */
21
- maxSize?: number | undefined;
22
- };
23
- export type LockFileOptions = {
24
- /**
25
- * The max time in seconds to wait for the lock
26
- */
27
- timeout?: number | undefined;
28
- /**
29
- * Whether to try lock recovery if
30
- * the first attempt to acquire it timed out.
31
- */
32
- tryRecovery?: boolean | undefined;
33
- };
34
- /**
35
- * A `string` which is never `''`.
36
- */
37
- export type NonEmptyString<T extends string> = T extends "" ? never : T;
38
- /**
39
- * return true if the the value is not `undefined`, `null`, or `NaN`.
1
+ import B from 'bluebird';
2
+ import { parse as shellParse } from 'shell-quote';
3
+ export { shellParse };
4
+ export { v1 as uuidV1, v3 as uuidV3, v4 as uuidV4, v5 as uuidV5 } from 'uuid';
5
+ import type { Element } from '@appium/types';
6
+ /** W3C WebDriver element identifier key used in element objects. */
7
+ export declare const W3C_WEB_ELEMENT_IDENTIFIER = "element-6066-11e4-a52e-4f735466cecf";
8
+ /** Size of one kibibyte in bytes (1024). */
9
+ export declare const KiB = 1024;
10
+ /** Size of one mebibyte in bytes (1024 * 1024). */
11
+ export declare const MiB: number;
12
+ /** Size of one gibibyte in bytes (1024 * 1024 * 1024). */
13
+ export declare const GiB: number;
14
+ /** A string which is never `''`. */
15
+ export type NonEmptyString<T extends string = string> = T extends '' ? never : T;
16
+ /**
17
+ * Type guard: returns true if the value is a non-empty string.
40
18
  *
41
- * XXX: `NaN` is not expressible in TypeScript.
42
- * @template T
43
- * @param {T} val
44
- * @returns {val is NonNullable<T>}
19
+ * @param val - Value to check
20
+ * @returns `true` if `val` is a string with at least one character
45
21
  */
46
- export function hasValue<T>(val: T): val is NonNullable<T>;
22
+ export declare function hasContent(val: unknown): val is NonEmptyString;
47
23
  /**
48
- * Escape spaces in string, for commandline calls
49
- * @param {string} str - The string to escape spaces in
50
- * @returns {string} The string with escaped spaces
24
+ * Type guard: returns true if the value is not `undefined`, `null`, or `NaN`.
25
+ *
26
+ * @param val - Value to check
27
+ * @returns `true` if `val` is non-null and non-undefined (and not NaN for numbers)
51
28
  */
52
- export function escapeSpace(str: string): string;
29
+ export declare function hasValue<T>(val: T): val is NonNullable<T>;
53
30
  /**
54
- * Escape special characters in string
55
- * @param {string|any} str - The string to escape special characters in
56
- * @param {string} quoteEscape - Whether to escape quotes
57
- * @returns {string|any} The string with escaped special characters, or original value if not a string
31
+ * Escapes spaces in a string for use in command-line arguments (e.g. ` ` → `\ `).
32
+ *
33
+ * @param str - String that may contain spaces
34
+ * @returns String with spaces escaped by a backslash
58
35
  */
59
- export function escapeSpecialChars(str: string | any, quoteEscape: string): string | any;
36
+ export declare function escapeSpace(str: string): string;
60
37
  /**
61
- * Get the local IP address of the machine
62
- * @returns {string|undefined} The local IP address of the first external IPv4 interface, or undefined if not found
38
+ * Escapes special characters in a string (backslash, slash, quotes, control chars).
39
+ * If `quoteEscape` is provided, that character is also escaped.
40
+ *
41
+ * @param str - String to escape, or non-string value (returned unchanged)
42
+ * @param quoteEscape - Optional character to escape, or `false` to skip
43
+ * @returns Escaped string, or original value if `str` is not a string
63
44
  */
64
- export function localIp(): string | undefined;
65
- export function cancellableDelay(ms: any): B<any>;
66
- export function multiResolve(roots: any, ...args: any[]): any;
45
+ export declare function escapeSpecialChars(str: string | unknown, quoteEscape?: string | false): string | unknown;
67
46
  /**
68
- * Parses an object if possible. Otherwise returns the object without parsing.
47
+ * Returns the first non-internal IPv4 address of the machine, if any.
69
48
  *
70
- * @param {any} obj
71
- * @returns {any}
49
+ * @returns The local IPv4 address, or `undefined` if none found
72
50
  */
73
- export function safeJsonParse(obj: any): any;
51
+ export declare function localIp(): string | undefined;
74
52
  /**
53
+ * Creates a promise that resolves after a delay and can be cancelled via `.cancel()`.
75
54
  *
76
- * @param {string} elementId
77
- * @returns {import('@appium/types').Element}
55
+ * @param ms - Delay in milliseconds before the promise resolves
56
+ * @returns A Bluebird promise with a `cancel()` method; cancel rejects with CancellationError
78
57
  */
79
- export function wrapElement(elementId: string): import("@appium/types").Element;
58
+ export declare function cancellableDelay(ms: number): B<void> & {
59
+ cancel: () => void;
60
+ };
80
61
  /**
81
- * Removes the wrapper from element, if it exists.
82
- * { ELEMENT: 4 } becomes 4
83
- * { element-6066-11e4-a52e-4f735466cecf: 5 } becomes 5
84
- * @param {import('@appium/types').Element|string} el
85
- * @returns {string}
62
+ * Resolves each root path with the given path segments, returning an array of absolute paths.
63
+ *
64
+ * @param roots - Base directory paths to resolve against
65
+ * @param args - Path segments to join with each root (e.g. 'foo', 'bar' → root/foo/bar)
66
+ * @returns Array of absolute paths, one per root
86
67
  */
87
- export function unwrapElement(el: import("@appium/types").Element | string): string;
88
- export function filterObject(obj: any, predicate: any): any;
68
+ export declare function multiResolve(roots: string[], ...args: string[]): string[];
89
69
  /**
90
- * Converts number of bytes to a readable size string.
70
+ * Parses a value as JSON if it is a string; otherwise returns the value as-is.
91
71
  *
92
- * @param {number|string} bytes - The actual number of bytes.
93
- * @returns {string} The actual string representation, for example
94
- * '1.00 KB' for '1024 B'
95
- * @throws {Error} If bytes count cannot be converted to an integer or
96
- * if it is less than zero.
72
+ * @param obj - String (to parse) or other value (returned unchanged)
73
+ * @returns Parsed object or original value
97
74
  */
98
- export function toReadableSizeString(bytes: number | string): string;
75
+ export declare function safeJsonParse<T>(obj: unknown): T;
99
76
  /**
100
- * Checks whether the given path is a subpath of the
101
- * particular root folder. Both paths can include .. and . specifiers
77
+ * Stringifies an object to JSON, converting Buffers to strings for readable output.
102
78
  *
103
- * @param {string} originalPath The absolute file/folder path
104
- * @param {string} root The absolute root folder path
105
- * @param {?boolean} forcePosix Set it to true if paths must be interpreted in POSIX format
106
- * @returns {boolean} true if the given original path is the subpath of the root folder
107
- * @throws {Error} if any of the given paths is not absolute
79
+ * @param obj - Object to serialize
80
+ * @param replacer - Optional replacer function (same as JSON.stringify)
81
+ * @param space - Indentation for pretty-printing. Defaults to 2
82
+ * @returns JSON string
108
83
  */
109
- export function isSubPath(originalPath: string, root: string, forcePosix?: boolean | null): boolean;
110
- export const W3C_WEB_ELEMENT_IDENTIFIER: "element-6066-11e4-a52e-4f735466cecf";
84
+ export declare function jsonStringify(obj: unknown, replacer?: ((key: string, value: unknown) => unknown) | null, space?: number | string): string;
111
85
  /**
112
- * Checks whether the given paths are pointing to the same file system
113
- * destination.
86
+ * Extracts the element ID from a W3C or JSONWP element object, or returns the string if already an ID.
114
87
  *
115
- * @param {string} path1 - Absolute or relative path to a file/folder
116
- * @param {string} path2 - Absolute or relative path to a file/folder
117
- * @param {...string} pathN - Zero or more absolute or relative paths to files/folders
118
- * @returns {Promise<boolean>} true if all paths are pointing to the same file system item
88
+ * @param el - Element object (with ELEMENT or W3C identifier) or raw element ID string
89
+ * @returns The element ID string
119
90
  */
120
- export function isSameDestination(path1: string, path2: string, ...pathN: string[]): Promise<boolean>;
91
+ export declare function unwrapElement(el: Element | string): string;
121
92
  /**
122
- * Compares two version strings
93
+ * Wraps an element ID string in an element object compatible with both W3C and JSONWP.
123
94
  *
124
- * @param {string} ver1 - The first version number to compare. Should be a valid
125
- * version number supported by semver parser.
126
- * @param {string} ver2 - The second version number to compare. Should be a valid
127
- * version number supported by semver parser.
128
- * @param {string} operator - One of supported version number operators:
129
- * ==, !=, >, <, <=, >=, =
130
- * @returns {boolean} true or false depending on the actual comparison result
131
- * @throws {Error} if an unsupported operator is supplied or any of the supplied
132
- * version strings cannot be coerced
95
+ * @param elementId - The element ID to wrap
96
+ * @returns Element object with both ELEMENT and W3C identifier keys
133
97
  */
134
- export function compareVersions(ver1: string, operator: string, ver2: string): boolean;
98
+ export declare function wrapElement(elementId: string): Element;
135
99
  /**
136
- * Coerces the given number/string to a valid version string
100
+ * Returns a copy of the object containing only properties that pass the predicate.
101
+ * If the predicate is missing, removes properties whose values are undefined.
102
+ * If the predicate is a scalar, keeps only properties whose value equals that scalar.
103
+ * If the predicate is a function, calls it for each (value, obj) and keeps properties where it returns true.
137
104
  *
138
- * @template {boolean} [Strict=true]
139
- * @param {string} ver - Version string to coerce
140
- * @param {Strict} [strict] - If `true` then an exception will be thrown
141
- * if `ver` cannot be coerced
142
- * @returns {Strict extends true ? string : string|null} Coerced version number or null if the string cannot be
143
- * coerced and strict mode is disabled
144
- * @throws {Error} if strict mode is enabled and `ver` cannot be coerced
105
+ * @param obj - Source object to filter
106
+ * @param predicate - Optional filter: undefined (drop undefined values), scalar (value match), or function
107
+ * @returns New object with only the properties that pass the predicate
145
108
  */
146
- export function coerceVersion<Strict extends boolean = true>(ver: string, strict?: Strict): Strict extends true ? string : string | null;
109
+ export declare function filterObject<T extends Record<string, unknown>>(obj: T, predicate?: ((value: unknown, obj: T) => boolean) | unknown): Partial<T>;
147
110
  /**
148
- * Add appropriate quotes to command arguments. See https://github.com/substack/node-shell-quote
149
- * for more details
111
+ * Converts a byte count to a human-readable size string (e.g. "1.50 MB").
150
112
  *
151
- * @param {string|string[]} args - The arguments that will be parsed
152
- * @returns {string} - The arguments, quoted
113
+ * @param bytes - Number of bytes (or string coercible to a number)
114
+ * @returns Formatted string like "123 B", "1.50 KB", "2.00 MB", "3.00 GB"
115
+ * @throws {Error} If bytes cannot be converted to a non-negative integer
153
116
  */
154
- export function quote(args: string | string[]): string;
117
+ export declare function toReadableSizeString(bytes: number | string): string;
155
118
  /**
156
- * Stringifies the object passed in, converting Buffers into Strings for better
157
- * display. This mimics JSON.stringify (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
158
- * except the `replacer` argument can only be a function.
119
+ * Checks whether the given path is a subpath of the given root folder.
159
120
  *
160
- * @param {any} obj - the object to be serialized
161
- * @param {((key:any, value:any) => any)?} replacer - function to transform the properties added to the
162
- * serialized object
163
- * @param {number|string|undefined} space - used to insert white space into the output JSON
164
- * string for readability purposes. Defaults to 2
165
- * @returns {string} - the JSON object serialized as a string
121
+ * @param originalPath - The absolute file or folder path to test
122
+ * @param root - The absolute root folder path
123
+ * @param forcePosix - If true, interpret paths in POSIX format (e.g. on Windows)
124
+ * @returns `true` if `originalPath` is under `root`
125
+ * @throws {Error} If either path is not absolute
166
126
  */
167
- export function jsonStringify(obj: any, replacer?: ((key: any, value: any) => any) | null, space?: number | string | undefined): string;
127
+ export declare function isSubPath(originalPath: string, root: string, forcePosix?: boolean | null): boolean;
168
128
  /**
169
- * @typedef PluralizeOptions
170
- * @property {boolean} [inclusive=false] - Whether to prefix with the number (e.g., 3 ducks)
129
+ * Checks whether the given paths refer to the same file system entity (same inode).
130
+ * All paths must exist.
131
+ *
132
+ * @param path1 - First path
133
+ * @param path2 - Second path
134
+ * @param pathN - Additional paths to compare
135
+ * @returns `true` if all paths resolve to the same file/directory
171
136
  */
137
+ export declare function isSameDestination(path1: string, path2: string, ...pathN: string[]): Promise<boolean>;
172
138
  /**
173
- * Get the form of a word appropriate to the count
139
+ * Coerces a value to a valid semver string (e.g. "1.0" → "1.0.0").
174
140
  *
175
- * @param {string} word - The word to pluralize
176
- * @param {number} count - How many of the word exist
177
- * @param {PluralizeOptions|boolean} options - options for word pluralization,
178
- * or a boolean indicating the options.inclusive property
179
- * @returns {string} The word pluralized according to the number
141
+ * @param ver - Version string or number to coerce
142
+ * @param strict - If true, throws when coercion fails; if false, returns null
143
+ * @returns Valid semver string, or null when strict is false and coercion fails
144
+ * @throws {Error} When strict is true and ver cannot be coerced
180
145
  */
181
- export function pluralize(word: string, count: number, options?: PluralizeOptions | boolean): string;
182
- export const GiB: number;
183
- export const MiB: number;
184
- export const KiB: 1024;
146
+ export declare function coerceVersion(ver: string, strict: true): string;
147
+ export declare function coerceVersion(ver: string, strict?: false): string | null;
185
148
  /**
186
- * @typedef EncodingOptions
187
- * @property {number} [maxSize=1073741824] The maximum size of
188
- * the resulting buffer in bytes. This is set to 1GB by default, because
189
- * Appium limits the maximum HTTP body size to 1GB. Also, the NodeJS heap
190
- * size must be enough to keep the resulting object (usually this size is
191
- * limited to 1.4 GB)
149
+ * Compares two version strings using the given operator.
150
+ *
151
+ * @param ver1 - First version string
152
+ * @param operator - One of: ==, !=, >, <, >=, <=, =
153
+ * @param ver2 - Second version string
154
+ * @returns `true` if ver1 operator ver2 holds (e.g. "2.0.0" >= "1.0.0")
155
+ * @throws {Error} If operator is unsupported or either version cannot be coerced
192
156
  */
157
+ export declare function compareVersions(ver1: string, operator: string, ver2: string): boolean;
193
158
  /**
194
- * Converts contents of a local file to an in-memory base-64 encoded buffer.
195
- * The operation is memory-usage friendly and should be used while encoding
196
- * large files to base64
159
+ * Quotes and escapes command-line arguments so they can be safely passed to a shell.
197
160
  *
198
- * @param {string} srcPath The full path to the file being encoded
199
- * @param {EncodingOptions} opts
200
- * @returns {Promise<Buffer>} base64-encoded content of the source file as memory buffer
201
- * @throws {Error} if there was an error while reading the source file
202
- * or the source file is too
161
+ * @param args - Single argument or array of arguments to quote
162
+ * @returns Quoted string suitable for shell parsing
203
163
  */
204
- export function toInMemoryBase64(srcPath: string, opts?: EncodingOptions): Promise<Buffer>;
205
- import { v1 as uuidV1 } from 'uuid';
206
- import { v3 as uuidV3 } from 'uuid';
207
- import { v4 as uuidV4 } from 'uuid';
208
- import { v5 as uuidV5 } from 'uuid';
209
- import { parse as shellParse } from 'shell-quote';
164
+ export declare function quote(args: string | string[]): string;
165
+ /** Options for pluralize(). */
166
+ export interface PluralizeOptions {
167
+ /** If true, prefix the result with the count (e.g. "3 ducks"). */
168
+ inclusive?: boolean;
169
+ }
210
170
  /**
211
- * @typedef LockFileOptions
212
- * @property {number} [timeout=120] The max time in seconds to wait for the lock
213
- * @property {boolean} [tryRecovery=false] Whether to try lock recovery if
214
- * the first attempt to acquire it timed out.
215
- */
171
+ * Returns the plural or singular form of a word appropriate to the count (e.g. "duck" + 1 → "duck", + 2 → "ducks").
172
+ *
173
+ * @param word - The word to pluralize (or singularize when count is 1)
174
+ * @param count - The count used to choose singular vs plural
175
+ * @param options - Options object or boolean: use `inclusive: true` (or `true`) to prefix with the number (e.g. "3 ducks")
176
+ * @returns The correctly inflected word, optionally prefixed with the count
177
+ */
178
+ export declare function pluralize(word: string, count: number, options?: PluralizeOptions | boolean): string;
179
+ /** Options for toInMemoryBase64(). */
180
+ export interface EncodingOptions {
181
+ /** Maximum size of the resulting buffer in bytes. Default 1GB. */
182
+ maxSize?: number;
183
+ }
184
+ /**
185
+ * Reads a file and returns its contents as a base64-encoded buffer.
186
+ *
187
+ * @param srcPath - Full path to the file to encode
188
+ * @param opts - Encoding options (e.g. maxSize to cap buffer size)
189
+ * @returns Buffer containing the base64-encoded file content
190
+ * @throws {Error} If the file does not exist, is a directory, cannot be read, or exceeds maxSize
191
+ */
192
+ export declare function toInMemoryBase64(srcPath: string, opts?: EncodingOptions): Promise<Buffer>;
193
+ /** Options for getLockFileGuard(). */
194
+ export interface LockFileOptions {
195
+ /** Max time in seconds to wait for the lock. Default 120. */
196
+ timeout?: number;
197
+ /** If true, attempt to unlock and retry once if the first acquisition times out (e.g. stale lock). */
198
+ tryRecovery?: boolean;
199
+ }
200
+ /** Guard function that runs the given behavior under the lock. */
201
+ type LockFileGuardFn<T> = (behavior: () => Promise<T> | T) => Promise<T>;
202
+ /** Return type of getLockFileGuard: guard function with a .check() method. */
203
+ type LockFileGuard<T> = LockFileGuardFn<T> & {
204
+ check: () => Promise<boolean>;
205
+ };
216
206
  /**
217
- * Create an async function which, when called, will not proceed until a certain file is no
218
- * longer present on the system. This allows for preventing concurrent behavior across processes
219
- * using a known lockfile path.
207
+ * Creates a guard that serializes access to a critical section using a lock file.
208
+ * The returned function acquires the lock, runs the given behavior, then releases the lock.
209
+ * Also exposes `.check()` to test whether the lock is currently held.
220
210
  *
221
- * @template T
222
- * @param {string} lockFile The full path to the file used for the lock
223
- * @param {LockFileOptions} opts
224
- * @returns async function that takes another async function defining the locked
225
- * behavior
211
+ * @param lockFile - Full path to the lock file
212
+ * @param opts - Options (see {@link LockFileOptions})
213
+ * @returns Async function that accepts a callback to run under the lock, plus a `.check()` method
226
214
  */
227
- export function getLockFileGuard<T>(lockFile: string, opts?: LockFileOptions): {
228
- (behavior: (...args: any[]) => T): Promise<T>;
229
- check(): Promise<boolean>;
230
- };
231
- import B from 'bluebird';
232
- export { uuidV1, uuidV3, uuidV4, uuidV5, shellParse };
215
+ export declare function getLockFileGuard<T>(lockFile: string, opts?: LockFileOptions): LockFileGuard<T>;
233
216
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,2BAJsB,CAAC,SAAV,MAAQ,OACV,CAAC,GACC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAkiBqB,CAAC,SAAV,MAAQ,IACR,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;AAjiBrC;;;;;;;GAOG;AACH,yBAJa,CAAC,OACH,CAAC,GACC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAQjC;AAED;;;;GAIG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;GAKG;AACH,wCAJW,MAAM,GAAC,GAAG,eACV,MAAM,GACJ,MAAM,GAAC,GAAG,CAyBtB;AAED;;;GAGG;AACH,2BAFa,MAAM,GAAC,SAAS,CAY5B;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,OAAA,GACN,OAAO,CAanB;AAvQD,yCAAmC,qCAAqC,CAAC;AAyQzE;;;;;;;;GAQG;AACH,yCALW,MAAM,SACN,MAAM,YACH,MAAM,EAAA,GACP,OAAO,CAAC,OAAO,CAAC,CAoB5B;AA2BD;;;;;;;;;;;;GAYG;AACH,sCAVW,MAAM,YAIN,MAAM,QAFN,MAAM,GAIJ,OAAO,CAenB;AAjDD;;;;;;;;;;GAUG;AACH,8BARwB,MAAM,SAAjB,OAAS,cACX,MAAM,WACN,MAAM,GAEJ,MAAM,SAAS,IAAI,GAAG,MAAM,GAAG,MAAM,GAAC,IAAI,CActD;AA8BD;;;;;;GAMG;AACH,4BAHW,MAAM,GAAC,MAAM,EAAE,GACb,MAAM,CAIlB;AA/ND;;;;;;;;;;;GAWG;AACH,mCAPW,GAAG,aACH,CAAC,CAAC,GAAG,EAAC,GAAG,EAAE,KAAK,EAAC,GAAG,KAAK,GAAG,CAAC,OAAC,UAE9B,MAAM,GAAC,MAAM,GAAC,SAAS,GAErB,MAAM,CAsBlB;AAiMD;;;GAGG;AAEH;;;;;;;;GAQG;AACH,gCANW,MAAM,SACN,MAAM,YACN,gBAAgB,GAAC,OAAO,GAEtB,MAAM,CAYlB;AAzXD,yBAAuB;AADvB,yBAAuB;AADvB,kBAAY,IAAI,CAAC;AA6XjB;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,0CANW,MAAM,SACN,eAAe,GACb,OAAO,CAAC,MAAM,CAAC,CAmD3B;6BApcM,MAAM;6BAAN,MAAM;6BAAN,MAAM;6BAAN,MAAM;oCAVN,aAAa;AAgdpB;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,iCANa,CAAC,YACH,MAAM,SACN,eAAe;eAcb,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;;EAyCxB;cAhiBa,UAAU"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.ts"],"names":[],"mappings":"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"}