@appium/support 7.1.0 → 7.2.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.
- package/build/lib/console.d.ts +2 -2
- package/build/lib/console.d.ts.map +1 -1
- package/build/lib/console.js +4 -5
- package/build/lib/console.js.map +1 -1
- package/build/lib/doctor.d.ts +6 -6
- package/build/lib/doctor.d.ts.map +1 -1
- package/build/lib/doctor.js +7 -7
- package/build/lib/doctor.js.map +1 -1
- package/build/lib/env.d.ts +12 -5
- package/build/lib/env.d.ts.map +1 -1
- package/build/lib/env.js +5 -5
- package/build/lib/env.js.map +1 -1
- package/build/lib/fs.d.ts.map +1 -1
- package/build/lib/fs.js +11 -14
- package/build/lib/fs.js.map +1 -1
- package/build/lib/image-util.d.ts.map +1 -1
- package/build/lib/image-util.js +1 -1
- package/build/lib/image-util.js.map +1 -1
- package/build/lib/index.d.ts +1 -1
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/logging.d.ts.map +1 -1
- package/build/lib/logging.js +5 -8
- package/build/lib/logging.js.map +1 -1
- package/build/lib/mjpeg.d.ts.map +1 -1
- package/build/lib/mjpeg.js +7 -7
- package/build/lib/mjpeg.js.map +1 -1
- package/build/lib/net.d.ts.map +1 -1
- package/build/lib/net.js +21 -14
- package/build/lib/net.js.map +1 -1
- package/build/lib/node.d.ts.map +1 -1
- package/build/lib/node.js +7 -8
- package/build/lib/node.js.map +1 -1
- package/build/lib/npm.d.ts.map +1 -1
- package/build/lib/npm.js +3 -3
- package/build/lib/npm.js.map +1 -1
- package/build/lib/plist.js +11 -11
- package/build/lib/plist.js.map +1 -1
- package/build/lib/process.d.ts.map +1 -1
- package/build/lib/process.js +2 -2
- package/build/lib/process.js.map +1 -1
- package/build/lib/system.d.ts.map +1 -1
- package/build/lib/system.js +2 -3
- package/build/lib/system.js.map +1 -1
- package/build/lib/tempdir.d.ts +3 -2
- package/build/lib/tempdir.d.ts.map +1 -1
- package/build/lib/tempdir.js +2 -2
- package/build/lib/tempdir.js.map +1 -1
- package/build/lib/timing.d.ts.map +1 -1
- package/build/lib/timing.js +3 -7
- package/build/lib/timing.js.map +1 -1
- package/build/lib/util.d.ts +103 -24
- package/build/lib/util.d.ts.map +1 -1
- package/build/lib/util.js +158 -22
- package/build/lib/util.js.map +1 -1
- package/build/lib/zip.d.ts +42 -42
- package/build/lib/zip.d.ts.map +1 -1
- package/build/lib/zip.js +142 -142
- package/build/lib/zip.js.map +1 -1
- package/lib/console.ts +8 -9
- package/lib/doctor.ts +6 -6
- package/lib/env.ts +5 -5
- package/lib/fs.ts +14 -14
- package/lib/image-util.ts +2 -1
- package/lib/index.ts +7 -1
- package/lib/logging.ts +5 -5
- package/lib/mjpeg.ts +9 -7
- package/lib/net.ts +25 -19
- package/lib/node.ts +7 -8
- package/lib/npm.ts +5 -3
- package/lib/plist.ts +11 -11
- package/lib/process.ts +8 -2
- package/lib/system.ts +2 -3
- package/lib/tempdir.ts +2 -2
- package/lib/timing.ts +3 -5
- package/lib/util.ts +197 -44
- package/lib/zip.ts +223 -221
- package/package.json +11 -12
- package/tsconfig.json +1 -0
package/build/lib/zip.js
CHANGED
|
@@ -42,7 +42,6 @@ exports.readEntries = readEntries;
|
|
|
42
42
|
exports.toInMemoryZip = toInMemoryZip;
|
|
43
43
|
exports.assertValidZip = assertValidZip;
|
|
44
44
|
exports.toArchive = toArchive;
|
|
45
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
46
45
|
const node_util_1 = require("node:util");
|
|
47
46
|
const yauzl = __importStar(require("yauzl"));
|
|
48
47
|
const archiver_1 = __importDefault(require("archiver"));
|
|
@@ -63,6 +62,132 @@ const ZIP_MAGIC = 'PK';
|
|
|
63
62
|
const IFMT = 0b1111000000000000;
|
|
64
63
|
const IFDIR = 0b0100000000000000;
|
|
65
64
|
const IFLNK = 0b1010000000000000;
|
|
65
|
+
// This class is mostly copied from https://github.com/maxogden/extract-zip/blob/master/index.js
|
|
66
|
+
class ZipExtractor {
|
|
67
|
+
zipfile;
|
|
68
|
+
zipPath;
|
|
69
|
+
opts;
|
|
70
|
+
canceled = false;
|
|
71
|
+
constructor(sourcePath, opts) {
|
|
72
|
+
this.zipPath = sourcePath;
|
|
73
|
+
this.opts = opts;
|
|
74
|
+
}
|
|
75
|
+
async extract() {
|
|
76
|
+
const { dir, fileNamesEncoding } = this.opts;
|
|
77
|
+
this.zipfile = await openZip(this.zipPath, {
|
|
78
|
+
lazyEntries: true,
|
|
79
|
+
// https://github.com/thejoshwolfe/yauzl/commit/cc7455ac789ba84973184e5ebde0581cdc4c3b39#diff-04c6e90faac2675aa89e2176d2eec7d8R95
|
|
80
|
+
decodeStrings: !fileNamesEncoding,
|
|
81
|
+
});
|
|
82
|
+
this.canceled = false;
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
this.zipfile.on('error', (err) => {
|
|
85
|
+
this.canceled = true;
|
|
86
|
+
reject(err);
|
|
87
|
+
});
|
|
88
|
+
this.zipfile.readEntry();
|
|
89
|
+
this.zipfile.on('close', () => {
|
|
90
|
+
if (!this.canceled) {
|
|
91
|
+
resolve();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
this.zipfile.on('entry', async (entry) => {
|
|
95
|
+
if (this.canceled) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const fileName = this.extractFileName(entry);
|
|
99
|
+
if (fileName.startsWith('__MACOSX/')) {
|
|
100
|
+
this.zipfile.readEntry();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const destDir = node_path_1.default.dirname(node_path_1.default.join(dir, fileName));
|
|
104
|
+
try {
|
|
105
|
+
await fs_1.fs.mkdir(destDir, { recursive: true });
|
|
106
|
+
const canonicalDestDir = await fs_1.fs.realpath(destDir);
|
|
107
|
+
const relativeDestDir = node_path_1.default.relative(dir, canonicalDestDir);
|
|
108
|
+
if (relativeDestDir.split(node_path_1.default.sep).includes('..')) {
|
|
109
|
+
throw new Error(`Out of bound path "${canonicalDestDir}" found while processing file ${fileName}`);
|
|
110
|
+
}
|
|
111
|
+
await this.extractEntry(entry);
|
|
112
|
+
this.zipfile.readEntry();
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
this.canceled = true;
|
|
116
|
+
this.zipfile.close();
|
|
117
|
+
reject(err);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
extractFileName(entry) {
|
|
123
|
+
if (Buffer.isBuffer(entry.fileName)) {
|
|
124
|
+
return entry.fileName.toString(this.opts.fileNamesEncoding);
|
|
125
|
+
}
|
|
126
|
+
return entry.fileName;
|
|
127
|
+
}
|
|
128
|
+
async extractEntry(entry) {
|
|
129
|
+
if (this.canceled) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const { dir } = this.opts;
|
|
133
|
+
const fileName = this.extractFileName(entry);
|
|
134
|
+
const dest = node_path_1.default.join(dir, fileName);
|
|
135
|
+
// convert external file attr int into a fs stat mode int
|
|
136
|
+
const mode = (entry.externalFileAttributes >> 16) & 0xffff;
|
|
137
|
+
// check if it's a symlink or dir (using stat mode constants)
|
|
138
|
+
const isSymlink = (mode & IFMT) === IFLNK;
|
|
139
|
+
const isDir = (mode & IFMT) === IFDIR ||
|
|
140
|
+
// Failsafe, borrowed from jsZip
|
|
141
|
+
fileName.endsWith('/') ||
|
|
142
|
+
// check for windows weird way of specifying a directory
|
|
143
|
+
// https://github.com/maxogden/extract-zip/issues/13#issuecomment-154494566
|
|
144
|
+
(entry.versionMadeBy >> 8 === 0 && entry.externalFileAttributes === 16);
|
|
145
|
+
const procMode = this.getExtractedMode(mode, isDir) & 0o777;
|
|
146
|
+
// always ensure folders are created
|
|
147
|
+
const destDir = isDir ? dest : node_path_1.default.dirname(dest);
|
|
148
|
+
const mkdirOptions = { recursive: true };
|
|
149
|
+
if (isDir) {
|
|
150
|
+
mkdirOptions.mode = procMode;
|
|
151
|
+
}
|
|
152
|
+
await fs_1.fs.mkdir(destDir, mkdirOptions);
|
|
153
|
+
if (isDir) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const openReadStream = (0, node_util_1.promisify)(this.zipfile.openReadStream.bind(this.zipfile));
|
|
157
|
+
const readStream = await openReadStream(entry);
|
|
158
|
+
if (isSymlink) {
|
|
159
|
+
const link = await (0, get_stream_1.default)(readStream);
|
|
160
|
+
await fs_1.fs.symlink(link, dest);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
await (0, promises_1.pipeline)(readStream, fs_1.fs.createWriteStream(dest, { mode: procMode }));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
getExtractedMode(entryMode, isDir) {
|
|
167
|
+
const { defaultDirMode, defaultFileMode } = this.opts;
|
|
168
|
+
let mode = entryMode;
|
|
169
|
+
// Set defaults, if necessary
|
|
170
|
+
if (mode === 0) {
|
|
171
|
+
if (isDir) {
|
|
172
|
+
if (defaultDirMode) {
|
|
173
|
+
mode = parseInt(defaultDirMode, 10);
|
|
174
|
+
}
|
|
175
|
+
if (!mode) {
|
|
176
|
+
mode = 0o755;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
if (defaultFileMode) {
|
|
181
|
+
mode = parseInt(defaultFileMode, 10);
|
|
182
|
+
}
|
|
183
|
+
if (!mode) {
|
|
184
|
+
mode = 0o644;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return mode;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
66
191
|
/**
|
|
67
192
|
* Extract zipfile to a directory
|
|
68
193
|
*
|
|
@@ -234,9 +359,7 @@ async function toInMemoryZip(srcPath, opts = {}) {
|
|
|
234
359
|
else {
|
|
235
360
|
archive.pipe(resultWriteStream);
|
|
236
361
|
}
|
|
237
|
-
archive.finalize();
|
|
238
|
-
// Wait for the streams to finish
|
|
239
|
-
await Promise.all([archiveStreamPromise, resultWriteStreamPromise]);
|
|
362
|
+
await Promise.all([archive.finalize(), archiveStreamPromise, resultWriteStreamPromise]);
|
|
240
363
|
if (timer) {
|
|
241
364
|
logger_1.default.debug(`Zipped ${encodeToBase64 ? 'and base64-encoded ' : ''}` +
|
|
242
365
|
`'${node_path_1.default.basename(srcPath)}' ` +
|
|
@@ -290,6 +413,15 @@ async function toArchive(dstPath, src = {}, opts = {}) {
|
|
|
290
413
|
const archive = (0, archiver_1.default)('zip', { zlib: { level } });
|
|
291
414
|
const outStream = fs_1.fs.createWriteStream(dstPath);
|
|
292
415
|
await new Promise((resolve, reject) => {
|
|
416
|
+
const outFinished = new Promise((_resolve, _reject) => {
|
|
417
|
+
outStream.once('error', (e) => {
|
|
418
|
+
archive.unpipe(outStream);
|
|
419
|
+
archive.abort();
|
|
420
|
+
archive.destroy();
|
|
421
|
+
_reject(e);
|
|
422
|
+
});
|
|
423
|
+
outStream.once('finish', () => _resolve());
|
|
424
|
+
});
|
|
293
425
|
archive
|
|
294
426
|
.glob(pattern, {
|
|
295
427
|
cwd,
|
|
@@ -297,143 +429,11 @@ async function toArchive(dstPath, src = {}, opts = {}) {
|
|
|
297
429
|
})
|
|
298
430
|
.on('error', reject)
|
|
299
431
|
.pipe(outStream);
|
|
300
|
-
|
|
301
|
-
.
|
|
302
|
-
|
|
303
|
-
archive.abort();
|
|
304
|
-
archive.destroy();
|
|
305
|
-
reject(e);
|
|
306
|
-
})
|
|
307
|
-
.on('finish', resolve);
|
|
308
|
-
archive.finalize();
|
|
432
|
+
void Promise.all([archive.finalize(), outFinished])
|
|
433
|
+
.then(() => resolve())
|
|
434
|
+
.catch(reject);
|
|
309
435
|
});
|
|
310
436
|
}
|
|
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
437
|
/**
|
|
438
438
|
* Executes system unzip (e.g., `/usr/bin/unzip`). If available, it is
|
|
439
439
|
* significantly faster than the JS implementation.
|
|
@@ -449,8 +449,8 @@ async function extractWithSystemUnzip(zipFilePath, destDir) {
|
|
|
449
449
|
try {
|
|
450
450
|
executablePath = await getExecutablePath(isWindowsHost ? 'powershell.exe' : 'unzip');
|
|
451
451
|
}
|
|
452
|
-
catch {
|
|
453
|
-
throw new Error('Could not find system unzip');
|
|
452
|
+
catch (e) {
|
|
453
|
+
throw new Error('Could not find system unzip', { cause: e });
|
|
454
454
|
}
|
|
455
455
|
if (isWindowsHost) {
|
|
456
456
|
// on Windows we use PowerShell to unzip files
|
|
@@ -475,7 +475,7 @@ async function extractWithSystemUnzip(zipFilePath, destDir) {
|
|
|
475
475
|
* Finds and memoizes the full path to the given executable.
|
|
476
476
|
* Rejects if it is not found.
|
|
477
477
|
*/
|
|
478
|
-
const getExecutablePath =
|
|
478
|
+
const getExecutablePath = (0, util_1.memoize)(
|
|
479
479
|
/**
|
|
480
480
|
* @returns Full Path to the executable
|
|
481
481
|
*/
|
package/build/lib/zip.js.map
CHANGED
|
@@ -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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import {createSupportsColor} from 'supports-color';
|
|
3
2
|
import {Console as NodeConsole} from 'node:console';
|
|
4
3
|
import type {Color} from '@colors/colors';
|
|
@@ -8,9 +7,6 @@ import {Writable} from 'node:stream';
|
|
|
8
7
|
import type {InspectOptions} from 'node:util';
|
|
9
8
|
import type {JsonValue} from 'type-fest';
|
|
10
9
|
|
|
11
|
-
/** Symbol keys from log-symbols used for decoration */
|
|
12
|
-
type SymbolKey = keyof typeof symbols;
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* Options for {@linkcode CliConsole}.
|
|
16
12
|
*
|
|
@@ -25,6 +21,9 @@ export interface ConsoleOpts {
|
|
|
25
21
|
useColor?: boolean;
|
|
26
22
|
}
|
|
27
23
|
|
|
24
|
+
/** Symbol keys from log-symbols used for decoration */
|
|
25
|
+
type SymbolKey = keyof typeof symbols;
|
|
26
|
+
|
|
28
27
|
/**
|
|
29
28
|
* Stream to nowhere. Used when we want to disable any output other than JSON output.
|
|
30
29
|
*/
|
|
@@ -50,10 +49,6 @@ class NullWritable extends Writable {
|
|
|
50
49
|
* DO NOT extend this to do anything other than what it already does. Download a library or something.
|
|
51
50
|
*/
|
|
52
51
|
export class CliConsole {
|
|
53
|
-
readonly #console: InstanceType<typeof NodeConsole>;
|
|
54
|
-
readonly #useSymbols: boolean;
|
|
55
|
-
readonly #useColor: boolean;
|
|
56
|
-
|
|
57
52
|
static readonly symbolToColor: Record<SymbolKey, keyof Color> = {
|
|
58
53
|
success: 'green',
|
|
59
54
|
info: 'cyan',
|
|
@@ -61,6 +56,10 @@ export class CliConsole {
|
|
|
61
56
|
error: 'red',
|
|
62
57
|
};
|
|
63
58
|
|
|
59
|
+
readonly #console: InstanceType<typeof NodeConsole>;
|
|
60
|
+
readonly #useSymbols: boolean;
|
|
61
|
+
readonly #useColor: boolean;
|
|
62
|
+
|
|
64
63
|
constructor(opts: ConsoleOpts = {}) {
|
|
65
64
|
const {jsonMode = false, useSymbols = true, useColor} = opts;
|
|
66
65
|
this.#console = new NodeConsole(
|
|
@@ -77,7 +76,7 @@ export class CliConsole {
|
|
|
77
76
|
* Returns `undefined` if `msg` is `undefined`.
|
|
78
77
|
*/
|
|
79
78
|
decorate(msg: string | undefined, symbol?: SymbolKey): string | undefined {
|
|
80
|
-
if (
|
|
79
|
+
if (typeof msg !== 'string' || typeof symbol !== 'string' || !this.#useSymbols) {
|
|
81
80
|
return msg;
|
|
82
81
|
}
|
|
83
82
|
|
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/env.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import {homedir} from 'node:os';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import {readPackage, type NormalizedPackageJson} from 'read-pkg';
|
|
5
4
|
import * as semver from 'semver';
|
|
5
|
+
import {memoize} from './util';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Path to the default `APPIUM_HOME` dir (`~/.appium`).
|
|
@@ -36,7 +36,7 @@ export async function hasAppiumDependency(cwd: string): Promise<boolean> {
|
|
|
36
36
|
*
|
|
37
37
|
* Looks at `dependencies` and `devDependencies` for `appium`.
|
|
38
38
|
*/
|
|
39
|
-
export const findAppiumDependencyPackage =
|
|
39
|
+
export const findAppiumDependencyPackage = memoize(
|
|
40
40
|
async function findAppiumDependencyPackage(
|
|
41
41
|
cwd: string = process.cwd(),
|
|
42
42
|
acceptableVersionRange: string | semver.Range = '>=2.0.0-beta'
|
|
@@ -76,7 +76,7 @@ export const findAppiumDependencyPackage = _.memoize(
|
|
|
76
76
|
/**
|
|
77
77
|
* Read a `package.json` in dir `cwd`. If none found, return `undefined`.
|
|
78
78
|
*/
|
|
79
|
-
export const readPackageInDir =
|
|
79
|
+
export const readPackageInDir = memoize(
|
|
80
80
|
async function _readPackageInDir(cwd: string): Promise<NormalizedPackageJson> {
|
|
81
81
|
return await readPackage({cwd, normalize: true});
|
|
82
82
|
}
|
|
@@ -90,7 +90,7 @@ export const readPackageInDir = _.memoize(
|
|
|
90
90
|
*
|
|
91
91
|
* All returned paths will be absolute.
|
|
92
92
|
*/
|
|
93
|
-
export const resolveAppiumHome =
|
|
93
|
+
export const resolveAppiumHome = memoize(
|
|
94
94
|
async function _resolveAppiumHome(cwd: string = process.cwd()): Promise<string> {
|
|
95
95
|
if (!path.isAbsolute(cwd)) {
|
|
96
96
|
throw new TypeError('`cwd` parameter must be an absolute path');
|
|
@@ -110,7 +110,7 @@ export const resolveAppiumHome = _.memoize(
|
|
|
110
110
|
* The assumption is that, if `appiumHome` has been provided, it was resolved via {@link resolveAppiumHome `resolveAppiumHome()`}! If unsure,
|
|
111
111
|
* don't pass a parameter and let `resolveAppiumHome()` handle it.
|
|
112
112
|
*/
|
|
113
|
-
export const resolveManifestPath =
|
|
113
|
+
export const resolveManifestPath = memoize(
|
|
114
114
|
async function _resolveManifestPath(
|
|
115
115
|
appiumHome?: string
|
|
116
116
|
): Promise<string> {
|
package/lib/fs.ts
CHANGED
|
@@ -20,7 +20,6 @@ import {glob} from 'glob';
|
|
|
20
20
|
import type {GlobOptions} from 'glob';
|
|
21
21
|
import klaw from 'klaw';
|
|
22
22
|
import type {Walker} from 'klaw';
|
|
23
|
-
import _ from 'lodash';
|
|
24
23
|
import ncp from 'ncp';
|
|
25
24
|
import {packageDirectorySync} from 'package-directory';
|
|
26
25
|
import path from 'node:path';
|
|
@@ -30,14 +29,14 @@ import which from 'which';
|
|
|
30
29
|
import log from './logger';
|
|
31
30
|
import {Timer} from './timing';
|
|
32
31
|
import {isWindows} from './system';
|
|
33
|
-
import {pluralize} from './util';
|
|
32
|
+
import {memoize, pluralize} from './util';
|
|
34
33
|
|
|
35
34
|
const ncpAsync = promisify(ncp) as (
|
|
36
35
|
source: string,
|
|
37
36
|
dest: string,
|
|
38
37
|
opts?: ncp.Options
|
|
39
38
|
) => Promise<void>;
|
|
40
|
-
const findRootCached =
|
|
39
|
+
const findRootCached = memoize(
|
|
41
40
|
packageDirectorySync,
|
|
42
41
|
(opts: {cwd?: string} | undefined) => opts?.cwd
|
|
43
42
|
);
|
|
@@ -213,7 +212,10 @@ export const fs = {
|
|
|
213
212
|
fromStat = await fsPromises.stat(from);
|
|
214
213
|
} catch (err) {
|
|
215
214
|
if (isErrnoException(err) && err.code === 'ENOENT') {
|
|
216
|
-
throw new Error(
|
|
215
|
+
throw new Error(
|
|
216
|
+
`The source path '${from}' does not exist or is not accessible`,
|
|
217
|
+
{cause: err}
|
|
218
|
+
);
|
|
217
219
|
}
|
|
218
220
|
throw err;
|
|
219
221
|
}
|
|
@@ -355,16 +357,14 @@ export const fs = {
|
|
|
355
357
|
reject(err);
|
|
356
358
|
}
|
|
357
359
|
})
|
|
358
|
-
.on('end', function () {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
}
|
|
367
|
-
})();
|
|
360
|
+
.on('end', async function () {
|
|
361
|
+
try {
|
|
362
|
+
const file = await lastFileProcessed;
|
|
363
|
+
resolve(file ?? null);
|
|
364
|
+
} catch (err) {
|
|
365
|
+
log.warn(`Unexpected error: ${err instanceof Error ? err.message : err}`);
|
|
366
|
+
reject(err);
|
|
367
|
+
}
|
|
368
368
|
});
|
|
369
369
|
}).finally(function () {
|
|
370
370
|
log.debug(
|
package/lib/image-util.ts
CHANGED
|
@@ -14,7 +14,8 @@ export function requireSharp(): typeof sharp {
|
|
|
14
14
|
throw new Error(
|
|
15
15
|
`Cannot load the 'sharp' module needed for images processing. ` +
|
|
16
16
|
`Consider visiting https://sharp.pixelplumbing.com/install ` +
|
|
17
|
-
`for troubleshooting. Original error: ${message}
|
|
17
|
+
`for troubleshooting. Original error: ${message}`,
|
|
18
|
+
{cause: err}
|
|
18
19
|
);
|
|
19
20
|
}
|
|
20
21
|
}
|
package/lib/index.ts
CHANGED
|
@@ -73,7 +73,13 @@ export type {
|
|
|
73
73
|
} from './net';
|
|
74
74
|
export type {InstallPackageOpts, ExecOpts, NpmInstallReceipt} from './npm';
|
|
75
75
|
export type {Affixes, OpenedAffixes} from './tempdir';
|
|
76
|
-
export type {
|
|
76
|
+
export type {
|
|
77
|
+
PluralizeOptions,
|
|
78
|
+
EncodingOptions,
|
|
79
|
+
LockFileOptions,
|
|
80
|
+
TruncateStringOptions,
|
|
81
|
+
NonEmptyString,
|
|
82
|
+
} from './util';
|
|
77
83
|
export type {
|
|
78
84
|
ExtractAllOptions,
|
|
79
85
|
ZipEntry,
|
package/lib/logging.ts
CHANGED
|
@@ -8,7 +8,6 @@ import type {
|
|
|
8
8
|
AppiumLoggerLevel,
|
|
9
9
|
AppiumLoggerPrefix,
|
|
10
10
|
} from '@appium/types';
|
|
11
|
-
import _ from 'lodash';
|
|
12
11
|
|
|
13
12
|
export const LEVELS: readonly AppiumLoggerLevel[] = [
|
|
14
13
|
'silly',
|
|
@@ -27,6 +26,7 @@ interface GlobalWithNpmlog {
|
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
const globalWithNpmlog = globalThis as typeof globalThis & GlobalWithNpmlog;
|
|
29
|
+
const noop = () => {};
|
|
30
30
|
|
|
31
31
|
// mock log object is used in testing mode to silence the output
|
|
32
32
|
const MOCK_LOG = {
|
|
@@ -35,9 +35,9 @@ const MOCK_LOG = {
|
|
|
35
35
|
Promise.resolve({issues: [], rules: []}),
|
|
36
36
|
level: 'verbose',
|
|
37
37
|
prefix: '',
|
|
38
|
-
log:
|
|
38
|
+
log: noop,
|
|
39
39
|
}),
|
|
40
|
-
...(
|
|
40
|
+
...(Object.fromEntries(LEVELS.map((l) => [l, noop])) as Record<
|
|
41
41
|
AppiumLoggerLevel,
|
|
42
42
|
(...args: any[]) => void
|
|
43
43
|
>),
|
|
@@ -58,7 +58,7 @@ export function getLogger(prefix: AppiumLoggerPrefix | null = null): AppiumLogge
|
|
|
58
58
|
prefix: prefix ?? undefined,
|
|
59
59
|
errorWithException(...args: any[]) {
|
|
60
60
|
this.error(...args);
|
|
61
|
-
return
|
|
61
|
+
return args[0] instanceof Error ? args[0] : new Error(args.join('\n'));
|
|
62
62
|
},
|
|
63
63
|
errorAndThrow(...args: any[]) {
|
|
64
64
|
throw this.errorWithException(...args);
|
|
@@ -144,7 +144,7 @@ function getFinalPrefix(
|
|
|
144
144
|
prefix: AppiumLoggerPrefix | null | undefined,
|
|
145
145
|
shouldLogTimestamp = false
|
|
146
146
|
): string {
|
|
147
|
-
const result = (
|
|
147
|
+
const result = (typeof prefix === 'function' ? prefix() : prefix) ?? '';
|
|
148
148
|
if (!shouldLogTimestamp) {
|
|
149
149
|
return result;
|
|
150
150
|
}
|