@appium/support 7.1.0 → 7.1.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/build/lib/zip.js CHANGED
@@ -63,6 +63,132 @@ const ZIP_MAGIC = 'PK';
63
63
  const IFMT = 0b1111000000000000;
64
64
  const IFDIR = 0b0100000000000000;
65
65
  const IFLNK = 0b1010000000000000;
66
+ // This class is mostly copied from https://github.com/maxogden/extract-zip/blob/master/index.js
67
+ class ZipExtractor {
68
+ zipfile;
69
+ zipPath;
70
+ opts;
71
+ canceled = false;
72
+ constructor(sourcePath, opts) {
73
+ this.zipPath = sourcePath;
74
+ this.opts = opts;
75
+ }
76
+ async extract() {
77
+ const { dir, fileNamesEncoding } = this.opts;
78
+ this.zipfile = await openZip(this.zipPath, {
79
+ lazyEntries: true,
80
+ // https://github.com/thejoshwolfe/yauzl/commit/cc7455ac789ba84973184e5ebde0581cdc4c3b39#diff-04c6e90faac2675aa89e2176d2eec7d8R95
81
+ decodeStrings: !fileNamesEncoding,
82
+ });
83
+ this.canceled = false;
84
+ return new Promise((resolve, reject) => {
85
+ this.zipfile.on('error', (err) => {
86
+ this.canceled = true;
87
+ reject(err);
88
+ });
89
+ this.zipfile.readEntry();
90
+ this.zipfile.on('close', () => {
91
+ if (!this.canceled) {
92
+ resolve();
93
+ }
94
+ });
95
+ this.zipfile.on('entry', async (entry) => {
96
+ if (this.canceled) {
97
+ return;
98
+ }
99
+ const fileName = this.extractFileName(entry);
100
+ if (fileName.startsWith('__MACOSX/')) {
101
+ this.zipfile.readEntry();
102
+ return;
103
+ }
104
+ const destDir = node_path_1.default.dirname(node_path_1.default.join(dir, fileName));
105
+ try {
106
+ await fs_1.fs.mkdir(destDir, { recursive: true });
107
+ const canonicalDestDir = await fs_1.fs.realpath(destDir);
108
+ const relativeDestDir = node_path_1.default.relative(dir, canonicalDestDir);
109
+ if (relativeDestDir.split(node_path_1.default.sep).includes('..')) {
110
+ throw new Error(`Out of bound path "${canonicalDestDir}" found while processing file ${fileName}`);
111
+ }
112
+ await this.extractEntry(entry);
113
+ this.zipfile.readEntry();
114
+ }
115
+ catch (err) {
116
+ this.canceled = true;
117
+ this.zipfile.close();
118
+ reject(err);
119
+ }
120
+ });
121
+ });
122
+ }
123
+ extractFileName(entry) {
124
+ if (Buffer.isBuffer(entry.fileName)) {
125
+ return entry.fileName.toString(this.opts.fileNamesEncoding);
126
+ }
127
+ return entry.fileName;
128
+ }
129
+ async extractEntry(entry) {
130
+ if (this.canceled) {
131
+ return;
132
+ }
133
+ const { dir } = this.opts;
134
+ const fileName = this.extractFileName(entry);
135
+ const dest = node_path_1.default.join(dir, fileName);
136
+ // convert external file attr int into a fs stat mode int
137
+ const mode = (entry.externalFileAttributes >> 16) & 0xffff;
138
+ // check if it's a symlink or dir (using stat mode constants)
139
+ const isSymlink = (mode & IFMT) === IFLNK;
140
+ const isDir = (mode & IFMT) === IFDIR ||
141
+ // Failsafe, borrowed from jsZip
142
+ fileName.endsWith('/') ||
143
+ // check for windows weird way of specifying a directory
144
+ // https://github.com/maxogden/extract-zip/issues/13#issuecomment-154494566
145
+ (entry.versionMadeBy >> 8 === 0 && entry.externalFileAttributes === 16);
146
+ const procMode = this.getExtractedMode(mode, isDir) & 0o777;
147
+ // always ensure folders are created
148
+ const destDir = isDir ? dest : node_path_1.default.dirname(dest);
149
+ const mkdirOptions = { recursive: true };
150
+ if (isDir) {
151
+ mkdirOptions.mode = procMode;
152
+ }
153
+ await fs_1.fs.mkdir(destDir, mkdirOptions);
154
+ if (isDir) {
155
+ return;
156
+ }
157
+ const openReadStream = (0, node_util_1.promisify)(this.zipfile.openReadStream.bind(this.zipfile));
158
+ const readStream = await openReadStream(entry);
159
+ if (isSymlink) {
160
+ const link = await (0, get_stream_1.default)(readStream);
161
+ await fs_1.fs.symlink(link, dest);
162
+ }
163
+ else {
164
+ await (0, promises_1.pipeline)(readStream, fs_1.fs.createWriteStream(dest, { mode: procMode }));
165
+ }
166
+ }
167
+ getExtractedMode(entryMode, isDir) {
168
+ const { defaultDirMode, defaultFileMode } = this.opts;
169
+ let mode = entryMode;
170
+ // Set defaults, if necessary
171
+ if (mode === 0) {
172
+ if (isDir) {
173
+ if (defaultDirMode) {
174
+ mode = parseInt(defaultDirMode, 10);
175
+ }
176
+ if (!mode) {
177
+ mode = 0o755;
178
+ }
179
+ }
180
+ else {
181
+ if (defaultFileMode) {
182
+ mode = parseInt(defaultFileMode, 10);
183
+ }
184
+ if (!mode) {
185
+ mode = 0o644;
186
+ }
187
+ }
188
+ }
189
+ return mode;
190
+ }
191
+ }
66
192
  /**
67
193
  * Extract zipfile to a directory
68
194
  *
@@ -234,9 +360,7 @@ async function toInMemoryZip(srcPath, opts = {}) {
234
360
  else {
235
361
  archive.pipe(resultWriteStream);
236
362
  }
237
- archive.finalize();
238
- // Wait for the streams to finish
239
- await Promise.all([archiveStreamPromise, resultWriteStreamPromise]);
363
+ await Promise.all([archive.finalize(), archiveStreamPromise, resultWriteStreamPromise]);
240
364
  if (timer) {
241
365
  logger_1.default.debug(`Zipped ${encodeToBase64 ? 'and base64-encoded ' : ''}` +
242
366
  `'${node_path_1.default.basename(srcPath)}' ` +
@@ -290,6 +414,15 @@ async function toArchive(dstPath, src = {}, opts = {}) {
290
414
  const archive = (0, archiver_1.default)('zip', { zlib: { level } });
291
415
  const outStream = fs_1.fs.createWriteStream(dstPath);
292
416
  await new Promise((resolve, reject) => {
417
+ const outFinished = new Promise((_resolve, _reject) => {
418
+ outStream.once('error', (e) => {
419
+ archive.unpipe(outStream);
420
+ archive.abort();
421
+ archive.destroy();
422
+ _reject(e);
423
+ });
424
+ outStream.once('finish', () => _resolve());
425
+ });
293
426
  archive
294
427
  .glob(pattern, {
295
428
  cwd,
@@ -297,143 +430,11 @@ async function toArchive(dstPath, src = {}, opts = {}) {
297
430
  })
298
431
  .on('error', reject)
299
432
  .pipe(outStream);
300
- outStream
301
- .on('error', (e) => {
302
- archive.unpipe(outStream);
303
- archive.abort();
304
- archive.destroy();
305
- reject(e);
306
- })
307
- .on('finish', resolve);
308
- archive.finalize();
433
+ void Promise.all([archive.finalize(), outFinished])
434
+ .then(() => resolve())
435
+ .catch(reject);
309
436
  });
310
437
  }
311
- // This class is mostly copied from https://github.com/maxogden/extract-zip/blob/master/index.js
312
- class ZipExtractor {
313
- zipfile;
314
- zipPath;
315
- opts;
316
- canceled = false;
317
- constructor(sourcePath, opts) {
318
- this.zipPath = sourcePath;
319
- this.opts = opts;
320
- }
321
- extractFileName(entry) {
322
- if (Buffer.isBuffer(entry.fileName)) {
323
- return entry.fileName.toString(this.opts.fileNamesEncoding);
324
- }
325
- return entry.fileName;
326
- }
327
- async extract() {
328
- const { dir, fileNamesEncoding } = this.opts;
329
- this.zipfile = await openZip(this.zipPath, {
330
- lazyEntries: true,
331
- // https://github.com/thejoshwolfe/yauzl/commit/cc7455ac789ba84973184e5ebde0581cdc4c3b39#diff-04c6e90faac2675aa89e2176d2eec7d8R95
332
- decodeStrings: !fileNamesEncoding,
333
- });
334
- this.canceled = false;
335
- return new Promise((resolve, reject) => {
336
- this.zipfile.on('error', (err) => {
337
- this.canceled = true;
338
- reject(err);
339
- });
340
- this.zipfile.readEntry();
341
- this.zipfile.on('close', () => {
342
- if (!this.canceled) {
343
- resolve();
344
- }
345
- });
346
- this.zipfile.on('entry', async (entry) => {
347
- if (this.canceled) {
348
- return;
349
- }
350
- const fileName = this.extractFileName(entry);
351
- if (fileName.startsWith('__MACOSX/')) {
352
- this.zipfile.readEntry();
353
- return;
354
- }
355
- const destDir = node_path_1.default.dirname(node_path_1.default.join(dir, fileName));
356
- try {
357
- await fs_1.fs.mkdir(destDir, { recursive: true });
358
- const canonicalDestDir = await fs_1.fs.realpath(destDir);
359
- const relativeDestDir = node_path_1.default.relative(dir, canonicalDestDir);
360
- if (relativeDestDir.split(node_path_1.default.sep).includes('..')) {
361
- throw new Error(`Out of bound path "${canonicalDestDir}" found while processing file ${fileName}`);
362
- }
363
- await this.extractEntry(entry);
364
- this.zipfile.readEntry();
365
- }
366
- catch (err) {
367
- this.canceled = true;
368
- this.zipfile.close();
369
- reject(err);
370
- }
371
- });
372
- });
373
- }
374
- async extractEntry(entry) {
375
- if (this.canceled) {
376
- return;
377
- }
378
- const { dir } = this.opts;
379
- const fileName = this.extractFileName(entry);
380
- const dest = node_path_1.default.join(dir, fileName);
381
- // convert external file attr int into a fs stat mode int
382
- const mode = (entry.externalFileAttributes >> 16) & 0xffff;
383
- // check if it's a symlink or dir (using stat mode constants)
384
- const isSymlink = (mode & IFMT) === IFLNK;
385
- const isDir = (mode & IFMT) === IFDIR ||
386
- // Failsafe, borrowed from jsZip
387
- fileName.endsWith('/') ||
388
- // check for windows weird way of specifying a directory
389
- // https://github.com/maxogden/extract-zip/issues/13#issuecomment-154494566
390
- (entry.versionMadeBy >> 8 === 0 && entry.externalFileAttributes === 16);
391
- const procMode = this.getExtractedMode(mode, isDir) & 0o777;
392
- // always ensure folders are created
393
- const destDir = isDir ? dest : node_path_1.default.dirname(dest);
394
- const mkdirOptions = { recursive: true };
395
- if (isDir) {
396
- mkdirOptions.mode = procMode;
397
- }
398
- await fs_1.fs.mkdir(destDir, mkdirOptions);
399
- if (isDir) {
400
- return;
401
- }
402
- const openReadStream = (0, node_util_1.promisify)(this.zipfile.openReadStream.bind(this.zipfile));
403
- const readStream = await openReadStream(entry);
404
- if (isSymlink) {
405
- const link = await (0, get_stream_1.default)(readStream);
406
- await fs_1.fs.symlink(link, dest);
407
- }
408
- else {
409
- await (0, promises_1.pipeline)(readStream, fs_1.fs.createWriteStream(dest, { mode: procMode }));
410
- }
411
- }
412
- getExtractedMode(entryMode, isDir) {
413
- const { defaultDirMode, defaultFileMode } = this.opts;
414
- let mode = entryMode;
415
- // Set defaults, if necessary
416
- if (mode === 0) {
417
- if (isDir) {
418
- if (defaultDirMode) {
419
- mode = parseInt(defaultDirMode, 10);
420
- }
421
- if (!mode) {
422
- mode = 0o755;
423
- }
424
- }
425
- else {
426
- if (defaultFileMode) {
427
- mode = parseInt(defaultFileMode, 10);
428
- }
429
- if (!mode) {
430
- mode = 0o644;
431
- }
432
- }
433
- }
434
- return mode;
435
- }
436
- }
437
438
  /**
438
439
  * Executes system unzip (e.g., `/usr/bin/unzip`). If available, it is
439
440
  * significantly faster than the JS implementation.
@@ -1 +1 @@
1
- {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../lib/zip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../lib/zip.ts"],"names":[],"mappings":"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"}
package/lib/console.ts CHANGED
@@ -8,9 +8,6 @@ import {Writable} from 'node:stream';
8
8
  import type {InspectOptions} from 'node:util';
9
9
  import type {JsonValue} from 'type-fest';
10
10
 
11
- /** Symbol keys from log-symbols used for decoration */
12
- type SymbolKey = keyof typeof symbols;
13
-
14
11
  /**
15
12
  * Options for {@linkcode CliConsole}.
16
13
  *
@@ -25,6 +22,9 @@ export interface ConsoleOpts {
25
22
  useColor?: boolean;
26
23
  }
27
24
 
25
+ /** Symbol keys from log-symbols used for decoration */
26
+ type SymbolKey = keyof typeof symbols;
27
+
28
28
  /**
29
29
  * Stream to nowhere. Used when we want to disable any output other than JSON output.
30
30
  */
@@ -50,10 +50,6 @@ class NullWritable extends Writable {
50
50
  * DO NOT extend this to do anything other than what it already does. Download a library or something.
51
51
  */
52
52
  export class CliConsole {
53
- readonly #console: InstanceType<typeof NodeConsole>;
54
- readonly #useSymbols: boolean;
55
- readonly #useColor: boolean;
56
-
57
53
  static readonly symbolToColor: Record<SymbolKey, keyof Color> = {
58
54
  success: 'green',
59
55
  info: 'cyan',
@@ -61,6 +57,10 @@ export class CliConsole {
61
57
  error: 'red',
62
58
  };
63
59
 
60
+ readonly #console: InstanceType<typeof NodeConsole>;
61
+ readonly #useSymbols: boolean;
62
+ readonly #useColor: boolean;
63
+
64
64
  constructor(opts: ConsoleOpts = {}) {
65
65
  const {jsonMode = false, useSymbols = true, useColor} = opts;
66
66
  this.#console = new NodeConsole(
package/lib/doctor.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  import type {DoctorCheckResult} from '@appium/types';
2
2
 
3
+ /**
4
+ * Throw this exception in the fix() method
5
+ * of your doctor check to skip the actual fix if hasAutofix() is true
6
+ */
7
+ export class FixSkippedError extends Error {}
8
+
3
9
  /**
4
10
  * A shortcut for a successful required doctor check
5
11
  */
@@ -27,9 +33,3 @@ export function okOptional(message: string): DoctorCheckResult {
27
33
  export function nokOptional(message: string): DoctorCheckResult {
28
34
  return {ok: false, optional: true, message};
29
35
  }
30
-
31
- /**
32
- * Throw this exception in the fix() method
33
- * of your doctor check to skip the actual fix if hasAutofix() is true
34
- */
35
- export class FixSkippedError extends Error {}
package/lib/fs.ts CHANGED
@@ -355,16 +355,14 @@ export const fs = {
355
355
  reject(err);
356
356
  }
357
357
  })
358
- .on('end', function () {
359
- (async () => {
360
- try {
361
- const file = await lastFileProcessed;
362
- resolve(file ?? null);
363
- } catch (err) {
364
- log.warn(`Unexpected error: ${err instanceof Error ? err.message : err}`);
365
- reject(err);
366
- }
367
- })();
358
+ .on('end', async function () {
359
+ try {
360
+ const file = await lastFileProcessed;
361
+ resolve(file ?? null);
362
+ } catch (err) {
363
+ log.warn(`Unexpected error: ${err instanceof Error ? err.message : err}`);
364
+ reject(err);
365
+ }
368
366
  });
369
367
  }).finally(function () {
370
368
  log.debug(
package/lib/net.ts CHANGED
@@ -63,6 +63,8 @@ export interface FtpUploadOptions extends NetOptions {}
63
63
  /** @deprecated Use {@linkcode FtpUploadOptions} instead. */
64
64
  export type NotHttpUploadOptions = FtpUploadOptions;
65
65
 
66
+ type AuthLike = AuthCredentials | AxiosBasicCredentials;
67
+
66
68
  /**
67
69
  * Uploads the given file to a remote location. HTTP(S) and FTP protocols are supported.
68
70
  */
@@ -107,6 +109,8 @@ export async function uploadFile(
107
109
  }
108
110
  }
109
111
 
112
+ // #region Private helpers
113
+
110
114
  /**
111
115
  * Downloads the given file via HTTP(S).
112
116
  *
@@ -174,10 +178,6 @@ export async function downloadFile(
174
178
  }
175
179
  }
176
180
 
177
- // #region Private helpers
178
-
179
- type AuthLike = AuthCredentials | AxiosBasicCredentials;
180
-
181
181
  function toAxiosAuth(auth: AuthLike | undefined): AxiosBasicCredentials | null {
182
182
  if (!auth || !_.isPlainObject(auth)) {
183
183
  return null;
package/lib/util.ts CHANGED
@@ -354,6 +354,32 @@ export function coerceVersion(ver: string, strict = true): string | null {
354
354
 
355
355
  const SUPPORTED_OPERATORS = ['==', '!=', '>', '<', '>=', '<=', '='];
356
356
 
357
+ /** Options for pluralize(). */
358
+ export interface PluralizeOptions {
359
+ /** If true, prefix the result with the count (e.g. "3 ducks"). */
360
+ inclusive?: boolean;
361
+ }
362
+
363
+ /** Options for toInMemoryBase64(). */
364
+ export interface EncodingOptions {
365
+ /** Maximum size of the resulting buffer in bytes. Default 1GB. */
366
+ maxSize?: number;
367
+ }
368
+
369
+ /** Options for getLockFileGuard(). */
370
+ export interface LockFileOptions {
371
+ /** Max time in seconds to wait for the lock. Default 120. */
372
+ timeout?: number;
373
+ /** If true, attempt to unlock and retry once if the first acquisition times out (e.g. stale lock). */
374
+ tryRecovery?: boolean;
375
+ }
376
+
377
+ /** Guard function that runs the given behavior under the lock. */
378
+ type LockFileGuardFn<T> = (behavior: () => Promise<T> | T) => Promise<T>;
379
+
380
+ /** Return type of getLockFileGuard: guard function with a .check() method. */
381
+ type LockFileGuard<T> = LockFileGuardFn<T> & {check: () => Promise<boolean>};
382
+
357
383
  /**
358
384
  * Compares two version strings using the given operator.
359
385
  *
@@ -392,12 +418,6 @@ export function quote(args: string | string[]): string {
392
418
  return shellQuote(_.castArray(args));
393
419
  }
394
420
 
395
- /** Options for pluralize(). */
396
- export interface PluralizeOptions {
397
- /** If true, prefix the result with the count (e.g. "3 ducks"). */
398
- inclusive?: boolean;
399
- }
400
-
401
421
  /**
402
422
  * Returns the plural or singular form of a word appropriate to the count (e.g. "duck" + 1 → "duck", + 2 → "ducks").
403
423
  *
@@ -420,12 +440,6 @@ export function pluralize(
420
440
  return pluralizeLib(word, count, inclusive);
421
441
  }
422
442
 
423
- /** Options for toInMemoryBase64(). */
424
- export interface EncodingOptions {
425
- /** Maximum size of the resulting buffer in bytes. Default 1GB. */
426
- maxSize?: number;
427
- }
428
-
429
443
  /**
430
444
  * Reads a file and returns its contents as a base64-encoded buffer.
431
445
  *
@@ -487,20 +501,6 @@ export async function toInMemoryBase64(
487
501
  return Buffer.concat(resultBuffers);
488
502
  }
489
503
 
490
- /** Options for getLockFileGuard(). */
491
- export interface LockFileOptions {
492
- /** Max time in seconds to wait for the lock. Default 120. */
493
- timeout?: number;
494
- /** If true, attempt to unlock and retry once if the first acquisition times out (e.g. stale lock). */
495
- tryRecovery?: boolean;
496
- }
497
-
498
- /** Guard function that runs the given behavior under the lock. */
499
- type LockFileGuardFn<T> = (behavior: () => Promise<T> | T) => Promise<T>;
500
-
501
- /** Return type of getLockFileGuard: guard function with a .check() method. */
502
- type LockFileGuard<T> = LockFileGuardFn<T> & {check: () => Promise<boolean>};
503
-
504
504
  /**
505
505
  * Creates a guard that serializes access to a critical section using a lock file.
506
506
  * The returned function acquires the lock, runs the given behavior, then releases the lock.