@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.
Files changed (78) hide show
  1. package/build/lib/console.d.ts +2 -2
  2. package/build/lib/console.d.ts.map +1 -1
  3. package/build/lib/console.js +4 -5
  4. package/build/lib/console.js.map +1 -1
  5. package/build/lib/doctor.d.ts +6 -6
  6. package/build/lib/doctor.d.ts.map +1 -1
  7. package/build/lib/doctor.js +7 -7
  8. package/build/lib/doctor.js.map +1 -1
  9. package/build/lib/env.d.ts +12 -5
  10. package/build/lib/env.d.ts.map +1 -1
  11. package/build/lib/env.js +5 -5
  12. package/build/lib/env.js.map +1 -1
  13. package/build/lib/fs.d.ts.map +1 -1
  14. package/build/lib/fs.js +11 -14
  15. package/build/lib/fs.js.map +1 -1
  16. package/build/lib/image-util.d.ts.map +1 -1
  17. package/build/lib/image-util.js +1 -1
  18. package/build/lib/image-util.js.map +1 -1
  19. package/build/lib/index.d.ts +1 -1
  20. package/build/lib/index.d.ts.map +1 -1
  21. package/build/lib/logging.d.ts.map +1 -1
  22. package/build/lib/logging.js +5 -8
  23. package/build/lib/logging.js.map +1 -1
  24. package/build/lib/mjpeg.d.ts.map +1 -1
  25. package/build/lib/mjpeg.js +7 -7
  26. package/build/lib/mjpeg.js.map +1 -1
  27. package/build/lib/net.d.ts.map +1 -1
  28. package/build/lib/net.js +21 -14
  29. package/build/lib/net.js.map +1 -1
  30. package/build/lib/node.d.ts.map +1 -1
  31. package/build/lib/node.js +7 -8
  32. package/build/lib/node.js.map +1 -1
  33. package/build/lib/npm.d.ts.map +1 -1
  34. package/build/lib/npm.js +3 -3
  35. package/build/lib/npm.js.map +1 -1
  36. package/build/lib/plist.js +11 -11
  37. package/build/lib/plist.js.map +1 -1
  38. package/build/lib/process.d.ts.map +1 -1
  39. package/build/lib/process.js +2 -2
  40. package/build/lib/process.js.map +1 -1
  41. package/build/lib/system.d.ts.map +1 -1
  42. package/build/lib/system.js +2 -3
  43. package/build/lib/system.js.map +1 -1
  44. package/build/lib/tempdir.d.ts +3 -2
  45. package/build/lib/tempdir.d.ts.map +1 -1
  46. package/build/lib/tempdir.js +2 -2
  47. package/build/lib/tempdir.js.map +1 -1
  48. package/build/lib/timing.d.ts.map +1 -1
  49. package/build/lib/timing.js +3 -7
  50. package/build/lib/timing.js.map +1 -1
  51. package/build/lib/util.d.ts +103 -24
  52. package/build/lib/util.d.ts.map +1 -1
  53. package/build/lib/util.js +158 -22
  54. package/build/lib/util.js.map +1 -1
  55. package/build/lib/zip.d.ts +42 -42
  56. package/build/lib/zip.d.ts.map +1 -1
  57. package/build/lib/zip.js +142 -142
  58. package/build/lib/zip.js.map +1 -1
  59. package/lib/console.ts +8 -9
  60. package/lib/doctor.ts +6 -6
  61. package/lib/env.ts +5 -5
  62. package/lib/fs.ts +14 -14
  63. package/lib/image-util.ts +2 -1
  64. package/lib/index.ts +7 -1
  65. package/lib/logging.ts +5 -5
  66. package/lib/mjpeg.ts +9 -7
  67. package/lib/net.ts +25 -19
  68. package/lib/node.ts +7 -8
  69. package/lib/npm.ts +5 -3
  70. package/lib/plist.ts +11 -11
  71. package/lib/process.ts +8 -2
  72. package/lib/system.ts +2 -3
  73. package/lib/tempdir.ts +2 -2
  74. package/lib/timing.ts +3 -5
  75. package/lib/util.ts +197 -44
  76. package/lib/zip.ts +223 -221
  77. package/package.json +11 -12
  78. 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
- 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();
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 = lodash_1.default.memoize(
478
+ const getExecutablePath = (0, util_1.memoize)(
479
479
  /**
480
480
  * @returns Full Path to the executable
481
481
  */
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+PA,oCAwBC;AAUD,0CAyCC;AAWD,kCA0BC;AAYD,sCAsFC;AAQD,wCAwBC;AAUD,8BAgCC;AA3hBD,yCAAoC;AACpC,6CAA+B;AAC/B,wDAAgC;AAChC,qCAA0C;AAC1C,0DAA6B;AAC7B,8DAAiC;AACjC,mDAA8C;AAC9C,6BAAwB;AACxB,qCAAmC;AACnC,iDAA2C;AAC3C,iCAAqE;AACrE,qCAA+B;AAC/B,sDAA2B;AAC3B,4DAAmC;AACnC,+CAAkC;AAElC,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,IAAI,CAGT,CAAC;AAE5B,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC;AACjC,MAAM,KAAK,GAAG,kBAAkB,CAAC;AA0EjC,gGAAgG;AAChG,MAAM,YAAY;IAChB,OAAO,CAAiB;IACP,OAAO,CAAS;IAChB,IAAI,CAAsB;IACnC,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,UAAkB,EAAE,IAAyB;QACvD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAC,GAAG,EAAE,iBAAiB,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YACzC,WAAW,EAAE,IAAI;YACjB,iIAAiI;YACjI,aAAa,EAAE,CAAC,iBAAiB;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC;oBACH,MAAM,OAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;oBAE3C,MAAM,gBAAgB,GAAG,MAAM,OAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACpD,MAAM,eAAe,GAAG,mBAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;oBAE7D,IAAI,eAAe,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnD,MAAM,IAAI,KAAK,CACb,sBAAsB,gBAAgB,iCAAiC,QAAQ,EAAE,CAClF,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,KAAkB;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAkB;QAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEtC,yDAAyD;QACzD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;QAC3D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC;QAC1C,MAAM,KAAK,GACT,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK;YACvB,gCAAgC;YAChC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtB,wDAAwD;YACxD,2EAA2E;YAC3E,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QAC5D,oCAAoC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,YAAY,GAAmC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;QACvE,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC/B,CAAC;QACD,MAAM,OAAE,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAA,qBAAS,EAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACW,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC;YACzC,MAAM,OAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,mBAAQ,EAAC,UAAU,EAAE,OAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,SAAiB,EAAE,KAAc;QACxD,MAAM,EAAC,cAAc,EAAE,eAAe,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAEpD,IAAI,IAAI,GAAG,SAAS,CAAC;QACrB,6BAA6B;QAC7B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,OAAe,EACf,OAA0B,EAAE;IAE5B,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,8BAA8B,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,OAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,OAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,sBAAsB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,gBAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE;QAC9C,GAAI,IAAyD;QAC7D,GAAG;KACJ,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe,CACnC,OAAsB,EACtB,KAAkB,EAClB,OAAe;IAEf,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,IAAA,gBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,iCAAiC,KAAK,CAAC,QAAQ,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,OAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,OAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO;IACT,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,OAAE,CAAC,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,OAAE,CAAC,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,IAAA,2BAAiB,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/D,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAElC,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhC,qEAAqE;IACrE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,OAAsE;IAEtE,4CAA4C;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAChE,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9B,6DAA6D;QAC7D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAkB,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;gBACxB,KAAK;gBACL,cAAc,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;aAC1F,CAAC,CAAC;YACH,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,EAAE,CAAC;IAEpB,wDAAwD;IACxD,MAAM,oBAAoB,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,OAAmB,EAAE;IAErB,IAAI,CAAC,CAAC,MAAM,OAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,EAAC,SAAS,GAAG,IAAI,EAAE,cAAc,GAAG,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,UAAG,EAAE,KAAK,GAAG,CAAC,EAAC,GAAG,IAAI,CAAC;IACtF,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,IAAI,qBAAM,CAAC,QAAQ,CAAC;QAC5C,KAAK,CAAC,MAAc,EAAE,SAAiB,EAAE,IAA2B;YAClE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,iBAAiB,IAAI,MAAM,CAAC,MAAM,CAAC;YACnC,IAAI,OAAO,GAAG,CAAC,IAAI,iBAAiB,GAAG,OAAO,EAAE,CAAC;gBAC/C,iBAAiB,CAAC,IAAI,CACpB,OAAO,EACP,IAAI,KAAK,CACP,4BAA4B;oBAC1B,oCAAoC,IAAA,2BAAoB,EAAC,OAAO,CAAC,EAAE,CACtE,CACF,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE;QAC9B,IAAI,EAAE,EAAC,KAAK,EAAC;KACd,CAAC,CAAC;IACH,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,4BAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrE,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;YAC3C,IAAI,mBAAmB,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACpC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE,CACjC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,cAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAI,CAAC,MAAM,OAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,IAAI,EAAE,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAExF,IAAI,KAAK,EAAE,CAAC;QACV,gBAAG,CAAC,KAAK,CACP,UAAU,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;YACrD,IAAI,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;YAC9B,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAA,2BAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAClD,uBAAuB,KAAK,GAAG,CAClC,CAAC;IACJ,CAAC;IACD,+DAA+D;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,CAAC,CAAC,MAAM,OAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,OAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,oCAAoC,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,OAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,SAAS,QAAQ,IAAI;gBACnD,uDAAuD,SAAS,GAAG,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,OAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,SAAS,CAC7B,OAAe,EACf,MAAwB,EAAE,EAC1B,OAA8B,EAAE;IAEhC,MAAM,EAAC,KAAK,GAAG,CAAC,EAAC,GAAG,IAAI,CAAC;IACzB,MAAM,EAAC,OAAO,GAAG,MAAM,EAAE,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,EAAE,EAAC,GAAG,GAAG,CAAC;IACzE,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,EAAC,KAAK,EAAC,EAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,OAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC1D,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAQ,EAAE,EAAE;gBACnC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1B,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO;aACJ,IAAI,CAAC,OAAO,EAAE;YACb,GAAG;YACH,MAAM;SACP,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;aACnB,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;aAChD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;aACrB,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,OAAe;IACxE,MAAM,aAAa,GAAG,IAAA,kBAAS,GAAE,CAAC;IAClC,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,8CAA8C;QAC9C,MAAM,IAAA,mBAAI,EAAC,cAAc,EAAE;YACzB,UAAU;YACV,gBAAgB;YAChB,cAAc;YACd,WAAW;YACX,kBAAkB;YAClB,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,qBAAqB;QACrB,qBAAqB;QACrB,MAAM,IAAA,mBAAI,EAAC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAA,cAAO;AAC/B;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,QAAQ,GAAG,MAAM,OAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5C,gBAAG,CAAC,KAAK,CAAC,UAAU,UAAU,SAAS,QAAQ,GAAG,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC,CACF,CAAC;AAEF,kBAAe;IACb,YAAY;IACZ,WAAW;IACX,aAAa;IACb,cAAc;IACd,SAAS;CACV,CAAC"}
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 (!_.isString(msg) || !_.isString(symbol) || !this.#useSymbols) {
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 = _.memoize(
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 = _.memoize(
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 = _.memoize(
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 = _.memoize(
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 = _.memoize(
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(`The source path '${from}' does not exist or is not accessible`);
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
- (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
- })();
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 {PluralizeOptions, EncodingOptions, LockFileOptions, NonEmptyString} from './util';
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: _.noop,
38
+ log: noop,
39
39
  }),
40
- ...(_.fromPairs(LEVELS.map((l) => [l, _.noop])) as Record<
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 _.isError(args[0]) ? args[0] : new Error(args.join('\n'));
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 = (_.isFunction(prefix) ? prefix() : prefix) ?? '';
147
+ const result = (typeof prefix === 'function' ? prefix() : prefix) ?? '';
148
148
  if (!shouldLogTimestamp) {
149
149
  return result;
150
150
  }