appium 3.2.1 → 3.3.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 (122) hide show
  1. package/build/lib/cli/args.d.ts +16 -12
  2. package/build/lib/cli/args.d.ts.map +1 -1
  3. package/build/lib/cli/args.js +15 -35
  4. package/build/lib/cli/args.js.map +1 -1
  5. package/build/lib/cli/driver-command.d.ts +51 -93
  6. package/build/lib/cli/driver-command.d.ts.map +1 -1
  7. package/build/lib/cli/driver-command.js +11 -66
  8. package/build/lib/cli/driver-command.js.map +1 -1
  9. package/build/lib/cli/extension-command.d.ts +211 -415
  10. package/build/lib/cli/extension-command.d.ts.map +1 -1
  11. package/build/lib/cli/extension-command.js +384 -653
  12. package/build/lib/cli/extension-command.js.map +1 -1
  13. package/build/lib/cli/extension.d.ts +11 -16
  14. package/build/lib/cli/extension.d.ts.map +1 -1
  15. package/build/lib/cli/extension.js +10 -28
  16. package/build/lib/cli/extension.js.map +1 -1
  17. package/build/lib/cli/parser.d.ts +40 -69
  18. package/build/lib/cli/parser.d.ts.map +1 -1
  19. package/build/lib/cli/parser.js +24 -59
  20. package/build/lib/cli/parser.js.map +1 -1
  21. package/build/lib/cli/plugin-command.d.ts +50 -90
  22. package/build/lib/cli/plugin-command.d.ts.map +1 -1
  23. package/build/lib/cli/plugin-command.js +11 -63
  24. package/build/lib/cli/plugin-command.js.map +1 -1
  25. package/build/lib/cli/setup-command.d.ts +21 -26
  26. package/build/lib/cli/setup-command.d.ts.map +1 -1
  27. package/build/lib/cli/setup-command.js +13 -55
  28. package/build/lib/cli/setup-command.js.map +1 -1
  29. package/build/lib/cli/utils.d.ts +27 -29
  30. package/build/lib/cli/utils.d.ts.map +1 -1
  31. package/build/lib/cli/utils.js +29 -31
  32. package/build/lib/cli/utils.js.map +1 -1
  33. package/build/lib/config-file.d.ts +24 -67
  34. package/build/lib/config-file.d.ts.map +1 -1
  35. package/build/lib/config-file.js +56 -115
  36. package/build/lib/config-file.js.map +1 -1
  37. package/build/lib/config.d.ts +42 -44
  38. package/build/lib/config.d.ts.map +1 -1
  39. package/build/lib/config.js +75 -107
  40. package/build/lib/config.js.map +1 -1
  41. package/build/lib/constants.d.ts +23 -23
  42. package/build/lib/constants.d.ts.map +1 -1
  43. package/build/lib/constants.js +10 -15
  44. package/build/lib/constants.js.map +1 -1
  45. package/build/lib/doctor/doctor.d.ts +40 -57
  46. package/build/lib/doctor/doctor.d.ts.map +1 -1
  47. package/build/lib/doctor/doctor.js +29 -60
  48. package/build/lib/doctor/doctor.js.map +1 -1
  49. package/build/lib/grid-register.d.ts +32 -7
  50. package/build/lib/grid-register.d.ts.map +1 -1
  51. package/build/lib/grid-register.js +84 -48
  52. package/build/lib/grid-register.js.map +1 -1
  53. package/build/lib/logsink.d.ts +13 -22
  54. package/build/lib/logsink.d.ts.map +1 -1
  55. package/build/lib/logsink.js +48 -103
  56. package/build/lib/logsink.js.map +1 -1
  57. package/build/lib/main.js +1 -1
  58. package/build/lib/main.js.map +1 -1
  59. package/build/lib/schema/arg-spec.d.ts +32 -107
  60. package/build/lib/schema/arg-spec.d.ts.map +1 -1
  61. package/build/lib/schema/arg-spec.js +11 -107
  62. package/build/lib/schema/arg-spec.js.map +1 -1
  63. package/build/lib/schema/cli-args.d.ts +3 -15
  64. package/build/lib/schema/cli-args.d.ts.map +1 -1
  65. package/build/lib/schema/cli-args.js +15 -105
  66. package/build/lib/schema/cli-args.js.map +1 -1
  67. package/build/lib/schema/cli-transformers.d.ts +15 -12
  68. package/build/lib/schema/cli-transformers.d.ts.map +1 -1
  69. package/build/lib/schema/cli-transformers.js +15 -45
  70. package/build/lib/schema/cli-transformers.js.map +1 -1
  71. package/build/lib/schema/index.d.ts +2 -2
  72. package/build/lib/schema/index.d.ts.map +1 -1
  73. package/build/lib/schema/index.js.map +1 -1
  74. package/build/lib/schema/keywords.d.ts +12 -20
  75. package/build/lib/schema/keywords.d.ts.map +1 -1
  76. package/build/lib/schema/keywords.js +6 -51
  77. package/build/lib/schema/keywords.js.map +1 -1
  78. package/build/lib/schema/schema.d.ts +106 -231
  79. package/build/lib/schema/schema.d.ts.map +1 -1
  80. package/build/lib/schema/schema.js +75 -345
  81. package/build/lib/schema/schema.js.map +1 -1
  82. package/build/lib/utils.d.ts +59 -238
  83. package/build/lib/utils.d.ts.map +1 -1
  84. package/build/lib/utils.js +55 -207
  85. package/build/lib/utils.js.map +1 -1
  86. package/lib/cli/{args.js → args.ts} +40 -51
  87. package/lib/cli/driver-command.ts +122 -0
  88. package/lib/cli/{extension-command.js → extension-command.ts} +610 -689
  89. package/lib/cli/extension.ts +65 -0
  90. package/lib/cli/{parser.js → parser.ts} +48 -71
  91. package/lib/cli/plugin-command.ts +117 -0
  92. package/lib/cli/{setup-command.js → setup-command.ts} +57 -72
  93. package/lib/cli/utils.ts +97 -0
  94. package/lib/config-file.ts +212 -0
  95. package/lib/{config.js → config.ts} +129 -141
  96. package/lib/{constants.js → constants.ts} +30 -41
  97. package/lib/doctor/{doctor.js → doctor.ts} +81 -91
  98. package/lib/grid-register.ts +250 -0
  99. package/lib/{logsink.js → logsink.ts} +91 -137
  100. package/lib/main.js +1 -1
  101. package/lib/schema/arg-spec.ts +131 -0
  102. package/lib/schema/cli-args.ts +171 -0
  103. package/lib/schema/cli-transformers.ts +83 -0
  104. package/lib/schema/keywords.ts +96 -0
  105. package/lib/schema/schema.ts +449 -0
  106. package/lib/utils.ts +404 -0
  107. package/package.json +19 -20
  108. package/tsconfig.json +1 -1
  109. package/build/package.json +0 -99
  110. package/lib/cli/driver-command.js +0 -174
  111. package/lib/cli/extension.js +0 -74
  112. package/lib/cli/plugin-command.js +0 -164
  113. package/lib/cli/utils.js +0 -91
  114. package/lib/config-file.js +0 -228
  115. package/lib/grid-register.js +0 -146
  116. package/lib/schema/arg-spec.js +0 -229
  117. package/lib/schema/cli-args.js +0 -254
  118. package/lib/schema/cli-transformers.js +0 -113
  119. package/lib/schema/keywords.js +0 -136
  120. package/lib/schema/schema.js +0 -725
  121. package/lib/utils.js +0 -512
  122. /package/lib/schema/{index.js → index.ts} +0 -0
@@ -1,44 +1,42 @@
1
- /***
1
+ export declare const JSON_SPACES = 4;
2
+ /**
2
3
  * Log an error to the console and exit the process.
3
- * @param {boolean} json - whether we should log json or text
4
- * @param {any} msg - error message, object, Error instance, etc.
4
+ *
5
+ * @param json - whether we should log json or text
6
+ * @param msg - error message, object, Error instance, etc.
5
7
  */
6
- export function errAndQuit(json: boolean, msg: any): void;
8
+ export declare function errAndQuit(json: boolean, msg: unknown): never;
7
9
  /**
8
- * Conditionally log something to the console
9
- * @param {boolean} json - whether we are in json mode (and should therefore not log)
10
- * @param {string} msg - string to log
10
+ * Conditionally log something to the console.
11
+ *
12
+ * @param json - whether we are in json mode (and should therefore not log)
13
+ * @param msg - string to log
11
14
  */
12
- export function log(json: boolean, msg: string): void;
15
+ export declare function log(json: boolean, msg: string): void;
13
16
  /**
14
- * Start a spinner, execute an async function, and then stop the spinner
15
- * @param {boolean} json - whether we are in json mode (and should therefore not log)
16
- * @param {string} msg - string to log
17
- * @param {function} fn - function to wrap with spinning
17
+ * Start a spinner, execute an async function, and then stop the spinner.
18
+ *
19
+ * @param json - whether we are in json mode (and should therefore not log)
20
+ * @param msg - string to log
21
+ * @param fn - function to wrap with spinning
22
+ * @returns result of `fn`
18
23
  */
19
- export function spinWith(json: boolean, msg: string, fn: Function): Promise<any>;
20
- export const JSON_SPACES: 4;
21
- export class RingBuffer {
24
+ export declare function spinWith<T>(json: boolean, msg: string, fn: () => T | Promise<T>): Promise<T>;
25
+ export declare class RingBuffer<T = any> {
26
+ private readonly size;
27
+ private readonly buffer;
22
28
  constructor(size?: number);
23
- size: number;
24
- buffer: any[];
25
29
  /**
26
- * Get the current buffer contents
27
- *
28
- * @returns {any[]}
30
+ * Get the current buffer contents.
29
31
  */
30
- getBuff(): any[];
32
+ getBuff(): T[];
31
33
  /**
32
- * Remove the oldest item from the buffer
33
- *
34
- * @returns {void}
34
+ * Add an item to the buffer.
35
35
  */
36
- dequeue(): void;
36
+ enqueue(item: T): void;
37
37
  /**
38
- * Add an item to the buffer
39
- *
40
- * @param {any} item
38
+ * Remove the oldest item from the buffer.
41
39
  */
42
- enqueue(item: any): void;
40
+ dequeue(): void;
43
41
  }
44
42
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/cli/utils.js"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,iCAHW,OAAO,OACP,GAAG,QAYb;AAED;;;;GAIG;AACH,0BAHW,OAAO,OACP,MAAM,QAMhB;AAED;;;;;GAKG;AACH,+BAJW,OAAO,OACP,MAAM,8BAiBhB;AAlDD,0BAA2B,CAAC,CAAC;AAoD7B;IACE,2BAGC;IAFC,aAAgB;IAChB,cAAgB;IAGlB;;;;OAIG;IACH,WAFa,GAAG,EAAE,CAIjB;IAED;;;;OAIG;IACH,WAFa,IAAI,CAIhB;IACD;;;;OAIG;IACH,cAFW,GAAG,QAOb;CACF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/cli/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,IAAI,CAAC;AAI7B;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,KAAK,CAU7D;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIpD;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAaZ;AAED,qBAAa,UAAU,CAAC,CAAC,GAAG,GAAG;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,IAAI,SAAK;IAIrB;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE;IAId;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAOtB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -10,27 +10,29 @@ exports.log = log;
10
10
  exports.spinWith = spinWith;
11
11
  const ora_1 = __importDefault(require("ora"));
12
12
  exports.JSON_SPACES = 4;
13
- /***
13
+ /**
14
14
  * Log an error to the console and exit the process.
15
- * @param {boolean} json - whether we should log json or text
16
- * @param {any} msg - error message, object, Error instance, etc.
15
+ *
16
+ * @param json - whether we should log json or text
17
+ * @param msg - error message, object, Error instance, etc.
17
18
  */
18
19
  function errAndQuit(json, msg) {
19
20
  if (json) {
20
- console.log(JSON.stringify({ error: `${msg}` }, null, exports.JSON_SPACES));
21
+ console.log(JSON.stringify({ error: String(msg) }, null, exports.JSON_SPACES));
21
22
  }
22
23
  else {
23
- console.error(`${msg}`.red);
24
- if (msg.stderr) {
25
- console.error(`${msg.stderr}`.red);
24
+ console.error(String(msg).red);
25
+ if (msg?.stderr) {
26
+ console.error(String(msg.stderr).red);
26
27
  }
27
28
  }
28
29
  process.exit(1);
29
30
  }
30
31
  /**
31
- * Conditionally log something to the console
32
- * @param {boolean} json - whether we are in json mode (and should therefore not log)
33
- * @param {string} msg - string to log
32
+ * Conditionally log something to the console.
33
+ *
34
+ * @param json - whether we are in json mode (and should therefore not log)
35
+ * @param msg - string to log
34
36
  */
35
37
  function log(json, msg) {
36
38
  if (!json) {
@@ -38,19 +40,20 @@ function log(json, msg) {
38
40
  }
39
41
  }
40
42
  /**
41
- * Start a spinner, execute an async function, and then stop the spinner
42
- * @param {boolean} json - whether we are in json mode (and should therefore not log)
43
- * @param {string} msg - string to log
44
- * @param {function} fn - function to wrap with spinning
43
+ * Start a spinner, execute an async function, and then stop the spinner.
44
+ *
45
+ * @param json - whether we are in json mode (and should therefore not log)
46
+ * @param msg - string to log
47
+ * @param fn - function to wrap with spinning
48
+ * @returns result of `fn`
45
49
  */
46
50
  async function spinWith(json, msg, fn) {
47
51
  if (json) {
48
52
  return await fn();
49
53
  }
50
54
  const spinner = (0, ora_1.default)(msg).start();
51
- let res;
52
55
  try {
53
- res = await fn();
56
+ const res = await fn();
54
57
  spinner.succeed();
55
58
  return res;
56
59
  }
@@ -60,30 +63,19 @@ async function spinWith(json, msg, fn) {
60
63
  }
61
64
  }
62
65
  class RingBuffer {
66
+ size;
67
+ buffer = [];
63
68
  constructor(size = 50) {
64
69
  this.size = size;
65
- this.buffer = [];
66
70
  }
67
71
  /**
68
- * Get the current buffer contents
69
- *
70
- * @returns {any[]}
72
+ * Get the current buffer contents.
71
73
  */
72
74
  getBuff() {
73
75
  return this.buffer;
74
76
  }
75
77
  /**
76
- * Remove the oldest item from the buffer
77
- *
78
- * @returns {void}
79
- */
80
- dequeue() {
81
- this.buffer.shift();
82
- }
83
- /**
84
- * Add an item to the buffer
85
- *
86
- * @param {any} item
78
+ * Add an item to the buffer.
87
79
  */
88
80
  enqueue(item) {
89
81
  if (this.buffer.length >= this.size) {
@@ -91,6 +83,12 @@ class RingBuffer {
91
83
  }
92
84
  this.buffer.push(item);
93
85
  }
86
+ /**
87
+ * Remove the oldest item from the buffer.
88
+ */
89
+ dequeue() {
90
+ this.buffer.shift();
91
+ }
94
92
  }
95
93
  exports.RingBuffer = RingBuffer;
96
94
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/cli/utils.js"],"names":[],"mappings":";AAAA,+BAA+B;;;;;;AAW/B,gCAUC;AAOD,kBAIC;AAQD,4BAcC;AApDD,8CAAsB;AAET,QAAA,WAAW,GAAG,CAAC,CAAC;AAE7B;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;IAClC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAC,EAAE,IAAI,EAAE,mBAAW,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,GAAG,CAAC,IAAI,EAAE,GAAG;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACjC,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAa,UAAU;IACrB,YAAY,IAAI,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD;;;;OAIG;IACH,OAAO,CAAC,IAAI;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAlCD,gCAkCC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/cli/utils.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;;;;AAc/B,gCAUC;AAQD,kBAIC;AAUD,4BAiBC;AA7DD,8CAAsB;AAET,QAAA,WAAW,GAAG,CAAC,CAAC;AAI7B;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,IAAa,EAAE,GAAY;IACpD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAC,EAAE,IAAI,EAAE,mBAAW,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAE,MAAM,CAAC,GAAG,CAAS,CAAC,GAAG,CAAC,CAAC;QACxC,IAAK,GAAiB,EAAE,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAE,MAAM,CAAE,GAAiB,CAAC,MAAM,CAAS,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,GAAG,CAAC,IAAa,EAAE,GAAW;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,QAAQ,CAC5B,IAAa,EACb,GAAW,EACX,EAAwB;IAExB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAa,UAAU;IACJ,IAAI,CAAS;IACb,MAAM,GAAQ,EAAE,CAAC;IAElC,YAAY,IAAI,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAO;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AA/BD,gCA+BC"}
@@ -1,3 +1,6 @@
1
+ import { type IOutputError } from '@sidvind/better-ajv-errors';
2
+ import type { ErrorObject } from 'ajv';
3
+ import type { AppiumConfig, NormalizedAppiumConfig } from '@appium/types';
1
4
  /**
2
5
  * Given an array of errors and the result of loading a config file, generate a
3
6
  * helpful string for the user.
@@ -6,76 +9,39 @@
6
9
  * _string_ of the config file. This is only applicable if the config file
7
10
  * was in JSON format. If present, it will associate line numbers with errors.
8
11
  * - If `errors` happens to be empty, this will throw.
9
- * @param {import('ajv').ErrorObject[]} errors - Non-empty array of errors. Required.
10
- * @param {ReadConfigFileResult['config']|any} [config] -
11
- * Configuration & metadata
12
- * @param {FormatConfigErrorsOptions} [opts]
12
+ *
13
13
  * @throws {TypeError} If `errors` is empty
14
- * @returns {string}
15
14
  */
16
- export function formatErrors(errors?: import("ajv").ErrorObject[], config?: ReadConfigFileResult["config"] | any, opts?: FormatConfigErrorsOptions): string;
15
+ export declare function formatErrors(errors?: ErrorObject[], config?: ReadConfigFileResult['config'] | Record<string, unknown> | string, opts?: FormatConfigErrorsOptions): string | IOutputError[];
17
16
  /**
18
17
  * Given an optional path, read a config file. Validates the config file.
19
18
  *
20
19
  * Call {@link validate} if you already have a config object.
21
- * @param {string} [filepath] - Path to config file, if we have one
22
- * @param {ReadConfigFileOptions} [opts] - Options
23
20
  * @public
24
- * @returns {Promise<ReadConfigFileResult>} Contains config and filepath, if found, and any errors
21
+ * @returns Contains config and filepath, if found, and any errors
25
22
  */
26
- export function readConfigFile(filepath?: string, opts?: ReadConfigFileOptions): Promise<ReadConfigFileResult>;
23
+ export declare function readConfigFile(filepath?: string, opts?: ReadConfigFileOptions): Promise<ReadConfigFileResult>;
27
24
  /**
28
25
  * Convert schema property names to either a) the value of the `appiumCliDest` property, if any; or b) camel-case
29
- * @param {AppiumConfig} config - Configuration object
30
- * @returns {NormalizedAppiumConfig} New object with camel-cased keys (or `dest` keys).
26
+ * @returns New object with camel-cased keys (or `dest` keys).
31
27
  */
32
- export function normalizeConfig(config: AppiumConfig): NormalizedAppiumConfig;
28
+ export declare function normalizeConfig(config: AppiumConfig): NormalizedAppiumConfig;
33
29
  /**
34
30
  * Result of calling {@link readConfigFile}.
35
31
  */
36
- export type ReadConfigFileResult = {
37
- /**
38
- * - Validation errors
39
- */
40
- errors?: import("ajv").ErrorObject<string, Record<string, any>, any>[] | undefined;
41
- /**
42
- * - The path to the config file, if found
43
- */
44
- filepath?: string | undefined;
45
- /**
46
- * - If `true`, the config file exists but is empty
47
- */
48
- isEmpty?: boolean | undefined;
49
- /**
50
- * - The parsed configuration
51
- */
52
- config?: import("@appium/types").NormalizedAppiumConfig | undefined;
53
- /**
54
- * - Human-readable error messages and suggestions. If the `pretty` option is `true`, this will be a nice string to print.
55
- */
56
- reason?: string | import("@sidvind/better-ajv-errors").IOutputError[] | undefined;
57
- };
32
+ export interface ReadConfigFileResult {
33
+ errors?: ErrorObject[];
34
+ filepath?: string;
35
+ isEmpty?: boolean;
36
+ config?: NormalizedAppiumConfig;
37
+ reason?: string | IOutputError[];
38
+ }
58
39
  /**
59
40
  * Options for {@link readConfigFile}.
60
41
  */
61
- export type ReadConfigFileOptions = {
62
- /**
63
- * If `false`, do not use color and fancy formatting in the `reason` property of the {@link ReadConfigFileResult}. The value of `reason` is then suitable for machine-reading.
64
- */
65
- pretty?: boolean | undefined;
66
- };
67
- /**
68
- * This is an `AsyncSearcher` which is inexplicably _not_ exported by the `lilconfig` type definition.
69
- */
70
- export type LilconfigAsyncSearcher = ReturnType<typeof import("lilconfig")["lilconfig"]>;
71
- /**
72
- * The contents of an Appium config file. Generated from schema
73
- */
74
- export type AppiumConfig = import("@appium/types").AppiumConfig;
75
- /**
76
- * The contents of an Appium config file with camelcased property names (and using `appiumCliDest` value if present). Generated from {@link AppiumConfig}
77
- */
78
- export type NormalizedAppiumConfig = import("@appium/types").NormalizedAppiumConfig;
42
+ export interface ReadConfigFileOptions {
43
+ pretty?: boolean;
44
+ }
79
45
  /**
80
46
  * The string should be a raw JSON string.
81
47
  */
@@ -83,18 +49,9 @@ export type RawJson = string;
83
49
  /**
84
50
  * Options for {@link formatErrors}.
85
51
  */
86
- export type FormatConfigErrorsOptions = {
87
- /**
88
- * - Raw JSON config (as string)
89
- */
90
- json?: string | undefined;
91
- /**
92
- * - Whether to format errors as a CLI-friendly string
93
- */
94
- pretty?: boolean | undefined;
95
- /**
96
- * - Specific ID of a prop; otherwise entire schema
97
- */
98
- schemaId?: string | undefined;
99
- };
52
+ export interface FormatConfigErrorsOptions {
53
+ json?: RawJson;
54
+ pretty?: boolean;
55
+ schemaId?: string;
56
+ }
100
57
  //# sourceMappingURL=config-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../lib/config-file.js"],"names":[],"mappings":"AA0EA;;;;;;;;;;;;;;GAcG;AACH,sCAPW,OAAO,KAAK,EAAE,WAAW,EAAE,WAC3B,oBAAoB,CAAC,QAAQ,CAAC,GAAC,GAAG,SAElC,yBAAyB,GAEvB,MAAM,CAUlB;AAED;;;;;;;;GAQG;AACH,0CALW,MAAM,SACN,qBAAqB,GAEnB,OAAO,CAAC,oBAAoB,CAAC,CAwCzC;AAED;;;;GAIG;AACH,wCAHW,YAAY,GACV,sBAAsB,CAgClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAoBY,UAAU,CAAC,0BAAmB,CAAC,WAAW,CAAC,CAAC;;;;2BAK5C,OAAO,eAAe,EAAE,YAAY;;;;qCAKpC,OAAO,eAAe,EAAE,sBAAsB;;;;sBAK9C,MAAM"}
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../lib/config-file.ts"],"names":[],"mappings":"AAAA,OAAwB,EAAC,KAAK,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAC,WAAW,EAAe,MAAM,KAAK,CAAC;AAInD,OAAO,KAAK,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAUxE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,MAAM,GAAE,WAAW,EAAO,EAC1B,MAAM,GAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAW,EAC9E,IAAI,GAAE,yBAA8B,GACnC,MAAM,GAAG,YAAY,EAAE,CAQzB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAsC/B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,sBAAsB,CAwB5E;AA0DD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -44,71 +44,12 @@ const lilconfig_1 = require("lilconfig");
44
44
  const lodash_1 = __importDefault(require("lodash"));
45
45
  const yaml = __importStar(require("yaml"));
46
46
  const schema_1 = require("./schema/schema");
47
- /**
48
- * lilconfig loader to handle `.yaml` files
49
- * @type {import('lilconfig').LoaderSync}
50
- */
51
- function yamlLoader(filepath, content) {
52
- try {
53
- return yaml.parse(content);
54
- }
55
- catch (e) {
56
- throw new Error(`The YAML config at '${filepath}' cannot be loaded. Original error: ${e.message}`);
57
- }
58
- }
59
47
  /**
60
48
  * A cache of the raw config file (a JSON string) at a filepath.
61
49
  * This is used for better error reporting.
62
50
  * Note that config files needn't be JSON, but it helps if they are.
63
- * @type {Map<string,RawJson>}
64
51
  */
65
52
  const rawConfig = new Map();
66
- /**
67
- * Custom JSON loader that caches the raw config file (for use with `better-ajv-errors`).
68
- * If it weren't for this cache, this would be unnecessary.
69
- * @type {import('lilconfig').LoaderSync}
70
- */
71
- function jsonLoader(filepath, content) {
72
- rawConfig.set(filepath, content);
73
- try {
74
- return JSON.parse(content);
75
- }
76
- catch (e) {
77
- throw new Error(`The JSON config at '${filepath}' cannot be loaded. Original error: ${e.message}`);
78
- }
79
- }
80
- /**
81
- * Loads a config file from an explicit path
82
- * @param {LilconfigAsyncSearcher} lc - lilconfig instance
83
- * @param {string} filepath - Path to config file
84
- * @returns {Promise<import('lilconfig').LilconfigResult>}
85
- */
86
- async function loadConfigFile(lc, filepath) {
87
- try {
88
- // removing "await" will cause any rejection to _not_ be caught in this block!
89
- return await lc.load(filepath);
90
- }
91
- catch ( /** @type {unknown} */err) {
92
- if ( /** @type {NodeJS.ErrnoException} */(err).code === 'ENOENT') {
93
- /** @type {NodeJS.ErrnoException} */ (err).message = `Config file not found at user-provided path: ${filepath}`;
94
- throw err;
95
- }
96
- else if (err instanceof SyntaxError) {
97
- // generally invalid JSON
98
- err.message = `Config file at user-provided path ${filepath} is invalid:\n${err.message}`;
99
- throw err;
100
- }
101
- throw err;
102
- }
103
- }
104
- /**
105
- * Searches for a config file
106
- * @param {LilconfigAsyncSearcher} lc - lilconfig instance
107
- * @returns {Promise<import('lilconfig').LilconfigResult>}
108
- */
109
- async function searchConfigFile(lc) {
110
- return await lc.search();
111
- }
112
53
  /**
113
54
  * Given an array of errors and the result of loading a config file, generate a
114
55
  * helpful string for the user.
@@ -117,12 +58,8 @@ async function searchConfigFile(lc) {
117
58
  * _string_ of the config file. This is only applicable if the config file
118
59
  * was in JSON format. If present, it will associate line numbers with errors.
119
60
  * - If `errors` happens to be empty, this will throw.
120
- * @param {import('ajv').ErrorObject[]} errors - Non-empty array of errors. Required.
121
- * @param {ReadConfigFileResult['config']|any} [config] -
122
- * Configuration & metadata
123
- * @param {FormatConfigErrorsOptions} [opts]
61
+ *
124
62
  * @throws {TypeError} If `errors` is empty
125
- * @returns {string}
126
63
  */
127
64
  function formatErrors(errors = [], config = {}, opts = {}) {
128
65
  if (errors && !errors.length) {
@@ -130,17 +67,15 @@ function formatErrors(errors = [], config = {}, opts = {}) {
130
67
  }
131
68
  return (0, better_ajv_errors_1.default)((0, schema_1.getSchema)(opts.schemaId), config, errors, {
132
69
  json: opts.json,
133
- format: 'cli',
70
+ format: opts.pretty === false ? 'js' : 'cli',
134
71
  });
135
72
  }
136
73
  /**
137
74
  * Given an optional path, read a config file. Validates the config file.
138
75
  *
139
76
  * Call {@link validate} if you already have a config object.
140
- * @param {string} [filepath] - Path to config file, if we have one
141
- * @param {ReadConfigFileOptions} [opts] - Options
142
77
  * @public
143
- * @returns {Promise<ReadConfigFileResult>} Contains config and filepath, if found, and any errors
78
+ * @returns Contains config and filepath, if found, and any errors
144
79
  */
145
80
  async function readConfigFile(filepath, opts = {}) {
146
81
  const lc = (0, lilconfig_1.lilconfig)('appium', {
@@ -169,7 +104,7 @@ async function readConfigFile(filepath, opts = {}) {
169
104
  configResult = reason ? { ...result, errors, reason } : { ...result, errors };
170
105
  }
171
106
  // normalize (to camel case) all top-level property names of the config file
172
- configResult.config = normalizeConfig(/** @type {AppiumConfig} */ (configResult.config));
107
+ configResult.config = normalizeConfig(configResult.config);
173
108
  return configResult;
174
109
  }
175
110
  finally {
@@ -181,69 +116,75 @@ async function readConfigFile(filepath, opts = {}) {
181
116
  }
182
117
  /**
183
118
  * Convert schema property names to either a) the value of the `appiumCliDest` property, if any; or b) camel-case
184
- * @param {AppiumConfig} config - Configuration object
185
- * @returns {NormalizedAppiumConfig} New object with camel-cased keys (or `dest` keys).
119
+ * @returns New object with camel-cased keys (or `dest` keys).
186
120
  */
187
121
  function normalizeConfig(config) {
188
122
  const schema = (0, schema_1.getSchema)();
189
- /**
190
- * @param {AppiumConfig} config
191
- * @param {string} [section] - Keypath (lodash `_.get()` style) to section of config. If omitted, assume root Appium config schema
192
- * @todo Rewrite as a loop
193
- * @returns Normalized section of config
194
- */
195
- const normalize = (config, section) => {
196
- const obj = lodash_1.default.isUndefined(section) ? config : lodash_1.default.get(config, section, config);
197
- const mappedObj = lodash_1.default.mapKeys(obj, (__, prop) => lodash_1.default.get(schema, `properties.server.properties[${prop}].appiumCliDest`, lodash_1.default.camelCase(prop)));
123
+ const isSchemaTypeObject = (schemaObj) => Boolean(schemaObj?.properties || schemaObj?.type === 'object');
124
+ const normalize = (rootConfig, section) => {
125
+ const obj = lodash_1.default.isUndefined(section)
126
+ ? rootConfig
127
+ : lodash_1.default.get(rootConfig, section, rootConfig);
128
+ const mappedObj = lodash_1.default.mapKeys(obj, (_v, prop) => lodash_1.default.get(schema, `properties.server.properties[${prop}].appiumCliDest`, lodash_1.default.camelCase(prop)));
198
129
  return lodash_1.default.mapValues(mappedObj, (value, property) => {
199
130
  const nextSection = section ? `${section}.${property}` : property;
200
131
  return isSchemaTypeObject(schema.properties?.[property])
201
- ? normalize(config, nextSection)
132
+ ? normalize(rootConfig, nextSection)
202
133
  : value;
203
134
  });
204
135
  };
205
- /**
206
- * Returns `true` if the schema prop references an object, or if it's an object itself
207
- * @param {import('ajv').SchemaObject|object} schema - Referencing schema object
208
- */
209
- const isSchemaTypeObject = (schema) => Boolean(schema?.properties || schema?.type === 'object');
210
136
  return normalize(config);
211
137
  }
212
138
  /**
213
- * Result of calling {@link readConfigFile}.
214
- * @typedef ReadConfigFileResult
215
- * @property {import('ajv').ErrorObject[]} [errors] - Validation errors
216
- * @property {string} [filepath] - The path to the config file, if found
217
- * @property {boolean} [isEmpty] - If `true`, the config file exists but is empty
218
- * @property {NormalizedAppiumConfig} [config] - The parsed configuration
219
- * @property {string|import('@sidvind/better-ajv-errors').IOutputError[]} [reason] - Human-readable error messages and suggestions. If the `pretty` option is `true`, this will be a nice string to print.
220
- */
221
- /**
222
- * Options for {@link readConfigFile}.
223
- * @typedef ReadConfigFileOptions
224
- * @property {boolean} [pretty=true] If `false`, do not use color and fancy formatting in the `reason` property of the {@link ReadConfigFileResult}. The value of `reason` is then suitable for machine-reading.
225
- */
226
- /**
227
- * This is an `AsyncSearcher` which is inexplicably _not_ exported by the `lilconfig` type definition.
228
- * @typedef {ReturnType<import('lilconfig')["lilconfig"]>} LilconfigAsyncSearcher
229
- */
230
- /**
231
- * The contents of an Appium config file. Generated from schema
232
- * @typedef {import('@appium/types').AppiumConfig} AppiumConfig
139
+ * lilconfig loader to handle `.yaml` files
233
140
  */
141
+ function yamlLoader(filepath, content) {
142
+ try {
143
+ return yaml.parse(content);
144
+ }
145
+ catch (e) {
146
+ throw new Error(`The YAML config at '${filepath}' cannot be loaded. Original error: ${e.message}`);
147
+ }
148
+ }
234
149
  /**
235
- * The contents of an Appium config file with camelcased property names (and using `appiumCliDest` value if present). Generated from {@link AppiumConfig}
236
- * @typedef {import('@appium/types').NormalizedAppiumConfig} NormalizedAppiumConfig
150
+ * Custom JSON loader that caches the raw config file (for use with `better-ajv-errors`).
151
+ * If it weren't for this cache, this would be unnecessary.
237
152
  */
153
+ function jsonLoader(filepath, content) {
154
+ rawConfig.set(filepath, content);
155
+ try {
156
+ return JSON.parse(content);
157
+ }
158
+ catch (e) {
159
+ rawConfig.delete(filepath);
160
+ throw new Error(`The JSON config at '${filepath}' cannot be loaded. Original error: ${e.message}`);
161
+ }
162
+ }
238
163
  /**
239
- * The string should be a raw JSON string.
240
- * @typedef {string} RawJson
164
+ * Loads a config file from an explicit path
241
165
  */
166
+ async function loadConfigFile(lc, filepath) {
167
+ try {
168
+ // removing "await" will cause any rejection to _not_ be caught in this block!
169
+ return await lc.load(filepath);
170
+ }
171
+ catch (err) {
172
+ if (err.code === 'ENOENT') {
173
+ err.message = `Config file not found at user-provided path: ${filepath}`;
174
+ throw err;
175
+ }
176
+ else if (err instanceof SyntaxError) {
177
+ // generally invalid JSON
178
+ err.message = `Config file at user-provided path ${filepath} is invalid:\n${err.message}`;
179
+ throw err;
180
+ }
181
+ throw err;
182
+ }
183
+ }
242
184
  /**
243
- * Options for {@link formatErrors}.
244
- * @typedef FormatConfigErrorsOptions
245
- * @property {import('./config-file').RawJson} [json] - Raw JSON config (as string)
246
- * @property {boolean} [pretty=true] - Whether to format errors as a CLI-friendly string
247
- * @property {string} [schemaId] - Specific ID of a prop; otherwise entire schema
185
+ * Searches for a config file
248
186
  */
187
+ async function searchConfigFile(lc) {
188
+ return await lc.search();
189
+ }
249
190
  //# sourceMappingURL=config-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../lib/config-file.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../lib/config-file.ts"],"names":[],"mappings":"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"}