@appium/schema 0.0.8 → 0.1.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/appium-config-schema.d.ts +95 -12
- package/build/appium-config-schema.js +321 -243
- package/build/appium-config-schema.js.map +1 -0
- package/build/index.js +16 -19
- package/build/index.js.map +1 -0
- package/lib/appium-config-schema.js +67 -6
- package/lib/appium-config.schema.json +83 -7
- package/package.json +14 -15
|
@@ -3,11 +3,20 @@ export namespace AppiumConfigJsonSchema {
|
|
|
3
3
|
export const additionalProperties: false;
|
|
4
4
|
export const description: "A schema for Appium configuration files";
|
|
5
5
|
export namespace properties {
|
|
6
|
-
namespace
|
|
6
|
+
export namespace $schema_1 {
|
|
7
|
+
const description_1: "The JSON schema for this file";
|
|
8
|
+
export { description_1 as description };
|
|
9
|
+
const _default: "https://raw.githubusercontent.com/appium/appium/master/packages/schema/lib/appium-config.schema.json";
|
|
10
|
+
export { _default as default };
|
|
11
|
+
export const type: "string";
|
|
12
|
+
export const format: "uri";
|
|
13
|
+
}
|
|
14
|
+
export { $schema_1 as $schema };
|
|
15
|
+
export namespace server {
|
|
7
16
|
const additionalProperties_1: false;
|
|
8
17
|
export { additionalProperties_1 as additionalProperties };
|
|
9
|
-
const
|
|
10
|
-
export {
|
|
18
|
+
const description_2: "Configuration when running Appium as a server";
|
|
19
|
+
export { description_2 as description };
|
|
11
20
|
const properties_1: {
|
|
12
21
|
readonly address: {
|
|
13
22
|
readonly $comment: "I think hostname covers both DNS and IPv4...could be wrong";
|
|
@@ -110,13 +119,13 @@ export namespace AppiumConfigJsonSchema {
|
|
|
110
119
|
readonly type: "string";
|
|
111
120
|
};
|
|
112
121
|
readonly 'log-filters': {
|
|
113
|
-
readonly $comment: "TODO";
|
|
114
122
|
readonly description: "One or more log filtering rules";
|
|
115
|
-
readonly items: {
|
|
116
|
-
readonly type: "string";
|
|
117
|
-
};
|
|
118
123
|
readonly title: "log-filters config";
|
|
119
124
|
readonly type: "array";
|
|
125
|
+
readonly items: {
|
|
126
|
+
readonly $ref: "#/$defs/logFilter";
|
|
127
|
+
};
|
|
128
|
+
readonly appiumCliTransformer: "json";
|
|
120
129
|
};
|
|
121
130
|
readonly 'log-level': {
|
|
122
131
|
readonly appiumCliDest: "loglevel";
|
|
@@ -202,7 +211,7 @@ export namespace AppiumConfigJsonSchema {
|
|
|
202
211
|
readonly type: "string";
|
|
203
212
|
};
|
|
204
213
|
readonly 'use-drivers': {
|
|
205
|
-
readonly appiumCliDescription: "A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated.";
|
|
214
|
+
readonly appiumCliDescription: "A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.";
|
|
206
215
|
readonly default: readonly [];
|
|
207
216
|
readonly description: "A list of drivers to activate. By default, all installed drivers will be activated.";
|
|
208
217
|
readonly items: {
|
|
@@ -213,7 +222,7 @@ export namespace AppiumConfigJsonSchema {
|
|
|
213
222
|
readonly uniqueItems: true;
|
|
214
223
|
};
|
|
215
224
|
readonly 'use-plugins': {
|
|
216
|
-
readonly appiumCliDescription: "A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string \"all\" to use all installed plugins.";
|
|
225
|
+
readonly appiumCliDescription: "A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string \"all\" to use all installed plugins. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.";
|
|
217
226
|
readonly default: readonly [];
|
|
218
227
|
readonly description: "A list of plugins to activate. To activate all plugins, the value should be an array with a single item \"all\".";
|
|
219
228
|
readonly items: {
|
|
@@ -234,12 +243,86 @@ export namespace AppiumConfigJsonSchema {
|
|
|
234
243
|
};
|
|
235
244
|
export { properties_1 as properties };
|
|
236
245
|
export const title: "server config";
|
|
237
|
-
|
|
246
|
+
const type_1: "object";
|
|
247
|
+
export { type_1 as type };
|
|
238
248
|
}
|
|
239
249
|
}
|
|
240
250
|
const title_1: "Appium Configuration";
|
|
241
251
|
export { title_1 as title };
|
|
242
|
-
const
|
|
243
|
-
export {
|
|
252
|
+
const type_2: "object";
|
|
253
|
+
export { type_2 as type };
|
|
254
|
+
export namespace $defs {
|
|
255
|
+
namespace logFilterText {
|
|
256
|
+
const type_3: "object";
|
|
257
|
+
export { type_3 as type };
|
|
258
|
+
const description_3: "Log filter with plain text";
|
|
259
|
+
export { description_3 as description };
|
|
260
|
+
export namespace properties_2 {
|
|
261
|
+
namespace text {
|
|
262
|
+
const description_4: "Text to match";
|
|
263
|
+
export { description_4 as description };
|
|
264
|
+
const type_4: "string";
|
|
265
|
+
export { type_4 as type };
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
export { properties_2 as properties };
|
|
269
|
+
export const required: readonly ["text"];
|
|
270
|
+
export namespace not {
|
|
271
|
+
const required_1: readonly ["pattern"];
|
|
272
|
+
export { required_1 as required };
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
namespace logFilterRegex {
|
|
276
|
+
const type_5: "object";
|
|
277
|
+
export { type_5 as type };
|
|
278
|
+
const description_5: "Log filter with regular expression";
|
|
279
|
+
export { description_5 as description };
|
|
280
|
+
export namespace properties_3 {
|
|
281
|
+
namespace pattern {
|
|
282
|
+
const description_6: "Regex pattern to match";
|
|
283
|
+
export { description_6 as description };
|
|
284
|
+
const type_6: "string";
|
|
285
|
+
export { type_6 as type };
|
|
286
|
+
const format_1: "regex";
|
|
287
|
+
export { format_1 as format };
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
export { properties_3 as properties };
|
|
291
|
+
const required_2: readonly ["pattern"];
|
|
292
|
+
export { required_2 as required };
|
|
293
|
+
export namespace not_1 {
|
|
294
|
+
const required_3: readonly ["text"];
|
|
295
|
+
export { required_3 as required };
|
|
296
|
+
}
|
|
297
|
+
export { not_1 as not };
|
|
298
|
+
}
|
|
299
|
+
namespace logFilter {
|
|
300
|
+
const type_7: "object";
|
|
301
|
+
export { type_7 as type };
|
|
302
|
+
const description_7: "Log filtering rule";
|
|
303
|
+
export { description_7 as description };
|
|
304
|
+
export const allOf: readonly [{
|
|
305
|
+
readonly type: "object";
|
|
306
|
+
readonly properties: {
|
|
307
|
+
readonly replacer: {
|
|
308
|
+
readonly description: "Replacement string for matched text";
|
|
309
|
+
readonly type: "string";
|
|
310
|
+
readonly default: "**SECURE**";
|
|
311
|
+
};
|
|
312
|
+
readonly flags: {
|
|
313
|
+
readonly description: "Matching flags; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags";
|
|
314
|
+
readonly type: "string";
|
|
315
|
+
readonly pattern: "^[igmsduy](,[igmsduy])*$";
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
}, {
|
|
319
|
+
readonly oneOf: readonly [{
|
|
320
|
+
readonly $ref: "#/$defs/logFilterText";
|
|
321
|
+
}, {
|
|
322
|
+
readonly $ref: "#/$defs/logFilterRegex";
|
|
323
|
+
}];
|
|
324
|
+
}];
|
|
325
|
+
}
|
|
326
|
+
}
|
|
244
327
|
}
|
|
245
328
|
//# sourceMappingURL=appium-config-schema.d.ts.map
|
|
@@ -1,250 +1,328 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The single-source-of-truth of the Appium server configuration
|
|
4
|
+
*
|
|
5
|
+
* This defines _both_ what the CLI supports and what the config files support.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
8
|
exports.AppiumConfigJsonSchema = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
description: 'Configuration when running Appium as a server',
|
|
18
|
-
properties: {
|
|
19
|
-
address: {
|
|
20
|
-
$comment: 'I think hostname covers both DNS and IPv4...could be wrong',
|
|
21
|
-
appiumCliAliases: ['a'],
|
|
22
|
-
default: '0.0.0.0',
|
|
23
|
-
description: 'IP address to listen on',
|
|
24
|
-
format: 'hostname',
|
|
25
|
-
title: 'address config',
|
|
26
|
-
type: 'string'
|
|
27
|
-
},
|
|
28
|
-
'allow-cors': {
|
|
29
|
-
description: 'Whether the Appium server should allow web browser connections from any host',
|
|
30
|
-
title: 'allow-cors config',
|
|
31
|
-
type: 'boolean',
|
|
32
|
-
default: false
|
|
33
|
-
},
|
|
34
|
-
'allow-insecure': {
|
|
35
|
-
appiumCliTransformer: 'csv',
|
|
36
|
-
default: [],
|
|
37
|
-
description: 'Set which insecure features are allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Note that features defined via "deny-insecure" will be disabled, even if also listed here. If string, a path to a text file containing policy or a comma-delimited list.',
|
|
38
|
-
items: {
|
|
39
|
-
type: 'string'
|
|
40
|
-
},
|
|
41
|
-
title: 'allow-insecure config',
|
|
42
|
-
type: 'array',
|
|
43
|
-
uniqueItems: true
|
|
44
|
-
},
|
|
45
|
-
'base-path': {
|
|
46
|
-
appiumCliAliases: ['pa'],
|
|
47
|
-
default: '',
|
|
48
|
-
description: 'Base path to use as the prefix for all webdriver routes running on the server',
|
|
49
|
-
title: 'base-path config',
|
|
50
|
-
type: 'string'
|
|
51
|
-
},
|
|
52
|
-
'callback-address': {
|
|
53
|
-
appiumCliAliases: ['ca'],
|
|
54
|
-
description: 'Callback IP address (default: same as "address")',
|
|
55
|
-
title: 'callback-address config',
|
|
56
|
-
type: 'string'
|
|
57
|
-
},
|
|
58
|
-
'callback-port': {
|
|
59
|
-
appiumCliAliases: ['cp'],
|
|
60
|
-
default: 4723,
|
|
61
|
-
description: 'Callback port (default: same as "port")',
|
|
62
|
-
maximum: 65535,
|
|
63
|
-
minimum: 1,
|
|
64
|
-
title: 'callback-port config',
|
|
65
|
-
type: 'integer'
|
|
66
|
-
},
|
|
67
|
-
'debug-log-spacing': {
|
|
68
|
-
default: false,
|
|
69
|
-
description: 'Add exaggerated spacing in logs to help with visual inspection',
|
|
70
|
-
title: 'debug-log-spacing config',
|
|
71
|
-
type: 'boolean'
|
|
72
|
-
},
|
|
73
|
-
'default-capabilities': {
|
|
74
|
-
$comment: 'TODO',
|
|
75
|
-
appiumCliAliases: ['dc'],
|
|
76
|
-
description: 'Set the default desired capabilities, which will be set on each session unless overridden by received capabilities. If a string, a path to a JSON file containing the capabilities, or raw JSON.',
|
|
77
|
-
title: 'default-capabilities config',
|
|
78
|
-
type: 'object'
|
|
79
|
-
},
|
|
80
|
-
'deny-insecure': {
|
|
81
|
-
$comment: 'Allowed values are defined by drivers',
|
|
82
|
-
appiumCliTransformer: 'csv',
|
|
83
|
-
default: [],
|
|
84
|
-
description: 'Set which insecure features are not allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Features listed here will not be enabled even if also listed in "allow-insecure", and even if "relaxed-security" is enabled. If string, a path to a text file containing policy or a comma-delimited list.',
|
|
85
|
-
items: {
|
|
86
|
-
type: 'string'
|
|
87
|
-
},
|
|
88
|
-
title: 'deny-insecure config',
|
|
89
|
-
type: 'array',
|
|
90
|
-
uniqueItems: true
|
|
91
|
-
},
|
|
92
|
-
driver: {
|
|
93
|
-
description: 'Driver-specific configuration. Keys should correspond to driver package names',
|
|
94
|
-
properties: {},
|
|
95
|
-
title: 'driver config',
|
|
96
|
-
type: 'object'
|
|
97
|
-
},
|
|
98
|
-
'keep-alive-timeout': {
|
|
99
|
-
appiumCliAliases: ['ka'],
|
|
100
|
-
default: 600,
|
|
101
|
-
description: 'Number of seconds the Appium server should apply as both the keep-alive timeout and the connection timeout for all requests. A value of 0 disables the timeout.',
|
|
102
|
-
minimum: 0,
|
|
103
|
-
title: 'keep-alive-timeout config',
|
|
104
|
-
type: 'integer'
|
|
105
|
-
},
|
|
106
|
-
'local-timezone': {
|
|
107
|
-
default: false,
|
|
108
|
-
description: 'Use local timezone for timestamps',
|
|
109
|
-
title: 'local-timezone config',
|
|
110
|
-
type: 'boolean'
|
|
111
|
-
},
|
|
112
|
-
log: {
|
|
113
|
-
appiumCliAliases: ['g'],
|
|
114
|
-
appiumCliDest: 'logFile',
|
|
115
|
-
description: 'Also send log output to this file',
|
|
116
|
-
title: 'log config',
|
|
117
|
-
type: 'string'
|
|
9
|
+
exports.AppiumConfigJsonSchema = ({
|
|
10
|
+
$schema: 'http://json-schema.org/draft-07/schema',
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
description: 'A schema for Appium configuration files',
|
|
13
|
+
properties: {
|
|
14
|
+
$schema: {
|
|
15
|
+
description: 'The JSON schema for this file',
|
|
16
|
+
default: 'https://raw.githubusercontent.com/appium/appium/master/packages/schema/lib/appium-config.schema.json',
|
|
17
|
+
type: 'string',
|
|
18
|
+
format: 'uri',
|
|
118
19
|
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
20
|
+
server: {
|
|
21
|
+
additionalProperties: false,
|
|
22
|
+
description: 'Configuration when running Appium as a server',
|
|
23
|
+
properties: {
|
|
24
|
+
address: {
|
|
25
|
+
$comment: 'I think hostname covers both DNS and IPv4...could be wrong',
|
|
26
|
+
appiumCliAliases: ['a'],
|
|
27
|
+
default: '0.0.0.0',
|
|
28
|
+
description: 'IP address to listen on',
|
|
29
|
+
format: 'hostname',
|
|
30
|
+
title: 'address config',
|
|
31
|
+
type: 'string',
|
|
32
|
+
},
|
|
33
|
+
'allow-cors': {
|
|
34
|
+
description: 'Whether the Appium server should allow web browser connections from any host',
|
|
35
|
+
title: 'allow-cors config',
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
default: false,
|
|
38
|
+
},
|
|
39
|
+
'allow-insecure': {
|
|
40
|
+
appiumCliTransformer: 'csv',
|
|
41
|
+
default: [],
|
|
42
|
+
description: 'Set which insecure features are allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Note that features defined via "deny-insecure" will be disabled, even if also listed here. If string, a path to a text file containing policy or a comma-delimited list.',
|
|
43
|
+
items: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
},
|
|
46
|
+
title: 'allow-insecure config',
|
|
47
|
+
type: 'array',
|
|
48
|
+
uniqueItems: true,
|
|
49
|
+
},
|
|
50
|
+
'base-path': {
|
|
51
|
+
appiumCliAliases: ['pa'],
|
|
52
|
+
default: '',
|
|
53
|
+
description: 'Base path to use as the prefix for all webdriver routes running on the server',
|
|
54
|
+
title: 'base-path config',
|
|
55
|
+
type: 'string',
|
|
56
|
+
},
|
|
57
|
+
'callback-address': {
|
|
58
|
+
appiumCliAliases: ['ca'],
|
|
59
|
+
description: 'Callback IP address (default: same as "address")',
|
|
60
|
+
title: 'callback-address config',
|
|
61
|
+
type: 'string',
|
|
62
|
+
},
|
|
63
|
+
'callback-port': {
|
|
64
|
+
appiumCliAliases: ['cp'],
|
|
65
|
+
default: 4723,
|
|
66
|
+
description: 'Callback port (default: same as "port")',
|
|
67
|
+
maximum: 65535,
|
|
68
|
+
minimum: 1,
|
|
69
|
+
title: 'callback-port config',
|
|
70
|
+
type: 'integer',
|
|
71
|
+
},
|
|
72
|
+
'debug-log-spacing': {
|
|
73
|
+
default: false,
|
|
74
|
+
description: 'Add exaggerated spacing in logs to help with visual inspection',
|
|
75
|
+
title: 'debug-log-spacing config',
|
|
76
|
+
type: 'boolean',
|
|
77
|
+
},
|
|
78
|
+
'default-capabilities': {
|
|
79
|
+
$comment: 'TODO',
|
|
80
|
+
appiumCliAliases: ['dc'],
|
|
81
|
+
description: 'Set the default desired capabilities, which will be set on each session unless overridden by received capabilities. If a string, a path to a JSON file containing the capabilities, or raw JSON.',
|
|
82
|
+
title: 'default-capabilities config',
|
|
83
|
+
type: 'object',
|
|
84
|
+
},
|
|
85
|
+
'deny-insecure': {
|
|
86
|
+
$comment: 'Allowed values are defined by drivers',
|
|
87
|
+
appiumCliTransformer: 'csv',
|
|
88
|
+
default: [],
|
|
89
|
+
description: 'Set which insecure features are not allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Features listed here will not be enabled even if also listed in "allow-insecure", and even if "relaxed-security" is enabled. If string, a path to a text file containing policy or a comma-delimited list.',
|
|
90
|
+
items: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
},
|
|
93
|
+
title: 'deny-insecure config',
|
|
94
|
+
type: 'array',
|
|
95
|
+
uniqueItems: true,
|
|
96
|
+
},
|
|
97
|
+
driver: {
|
|
98
|
+
description: 'Driver-specific configuration. Keys should correspond to driver package names',
|
|
99
|
+
properties: /** @type {Record<string,import('json-schema').JSONSchema7>} */ ({}),
|
|
100
|
+
title: 'driver config',
|
|
101
|
+
type: 'object',
|
|
102
|
+
},
|
|
103
|
+
'keep-alive-timeout': {
|
|
104
|
+
appiumCliAliases: ['ka'],
|
|
105
|
+
default: 600,
|
|
106
|
+
description: 'Number of seconds the Appium server should apply as both the keep-alive timeout and the connection timeout for all requests. A value of 0 disables the timeout.',
|
|
107
|
+
minimum: 0,
|
|
108
|
+
title: 'keep-alive-timeout config',
|
|
109
|
+
type: 'integer',
|
|
110
|
+
},
|
|
111
|
+
'local-timezone': {
|
|
112
|
+
default: false,
|
|
113
|
+
description: 'Use local timezone for timestamps',
|
|
114
|
+
title: 'local-timezone config',
|
|
115
|
+
type: 'boolean',
|
|
116
|
+
},
|
|
117
|
+
log: {
|
|
118
|
+
appiumCliAliases: ['g'],
|
|
119
|
+
appiumCliDest: 'logFile',
|
|
120
|
+
description: 'Also send log output to this file',
|
|
121
|
+
title: 'log config',
|
|
122
|
+
type: 'string',
|
|
123
|
+
},
|
|
124
|
+
'log-filters': {
|
|
125
|
+
description: 'One or more log filtering rules',
|
|
126
|
+
title: 'log-filters config',
|
|
127
|
+
type: 'array',
|
|
128
|
+
items: { $ref: '#/$defs/logFilter' },
|
|
129
|
+
appiumCliTransformer: 'json',
|
|
130
|
+
},
|
|
131
|
+
'log-level': {
|
|
132
|
+
appiumCliDest: 'loglevel',
|
|
133
|
+
default: 'debug',
|
|
134
|
+
description: 'Log level (console[:file])',
|
|
135
|
+
enum: [
|
|
136
|
+
'info',
|
|
137
|
+
'info:debug',
|
|
138
|
+
'info:info',
|
|
139
|
+
'info:warn',
|
|
140
|
+
'info:error',
|
|
141
|
+
'warn',
|
|
142
|
+
'warn:debug',
|
|
143
|
+
'warn:info',
|
|
144
|
+
'warn:warn',
|
|
145
|
+
'warn:error',
|
|
146
|
+
'error',
|
|
147
|
+
'error:debug',
|
|
148
|
+
'error:info',
|
|
149
|
+
'error:warn',
|
|
150
|
+
'error:error',
|
|
151
|
+
'debug',
|
|
152
|
+
'debug:debug',
|
|
153
|
+
'debug:info',
|
|
154
|
+
'debug:warn',
|
|
155
|
+
'debug:error',
|
|
156
|
+
],
|
|
157
|
+
title: 'log-level config',
|
|
158
|
+
type: 'string',
|
|
159
|
+
},
|
|
160
|
+
'log-no-colors': {
|
|
161
|
+
default: false,
|
|
162
|
+
description: 'Do not use color in console output',
|
|
163
|
+
title: 'log-no-colors config',
|
|
164
|
+
type: 'boolean',
|
|
165
|
+
},
|
|
166
|
+
'log-timestamp': {
|
|
167
|
+
default: false,
|
|
168
|
+
description: 'Show timestamps in console output',
|
|
169
|
+
title: 'log-timestamp config',
|
|
170
|
+
type: 'boolean',
|
|
171
|
+
},
|
|
172
|
+
'long-stacktrace': {
|
|
173
|
+
default: false,
|
|
174
|
+
description: 'Add long stack traces to log entries. Recommended for debugging only.',
|
|
175
|
+
title: 'long-stacktrace config',
|
|
176
|
+
type: 'boolean',
|
|
177
|
+
},
|
|
178
|
+
'no-perms-check': {
|
|
179
|
+
default: false,
|
|
180
|
+
description: 'Do not check that needed files are readable and/or writable',
|
|
181
|
+
title: 'no-perms-check config',
|
|
182
|
+
type: 'boolean',
|
|
183
|
+
},
|
|
184
|
+
nodeconfig: {
|
|
185
|
+
$comment: 'Selenium Grid 3 is unmaintained and Selenium Grid 4 no longer supports this file.',
|
|
186
|
+
description: 'Path to configuration JSON file to register Appium as a node with Selenium Grid 3; otherwise the configuration itself',
|
|
187
|
+
title: 'nodeconfig config',
|
|
188
|
+
type: 'object',
|
|
189
|
+
},
|
|
190
|
+
plugin: {
|
|
191
|
+
description: 'Plugin-specific configuration. Keys should correspond to plugin package names',
|
|
192
|
+
properties: /** @type {Record<string,import('json-schema').JSONSchema7>} */ ({}),
|
|
193
|
+
title: 'plugin config',
|
|
194
|
+
type: 'object',
|
|
195
|
+
},
|
|
196
|
+
port: {
|
|
197
|
+
appiumCliAliases: ['p'],
|
|
198
|
+
default: 4723,
|
|
199
|
+
description: 'Port to listen on',
|
|
200
|
+
maximum: 65535,
|
|
201
|
+
minimum: 1,
|
|
202
|
+
title: 'port config',
|
|
203
|
+
type: 'integer',
|
|
204
|
+
},
|
|
205
|
+
'relaxed-security': {
|
|
206
|
+
default: false,
|
|
207
|
+
description: 'Disable additional security checks, so it is possible to use some advanced features, provided by drivers supporting this option. Only enable it if all the clients are in the trusted network and it\'s not the case if a client could potentially break out of the session sandbox. Specific features can be overridden by using "deny-insecure"',
|
|
208
|
+
title: 'relaxed-security config',
|
|
209
|
+
type: 'boolean',
|
|
210
|
+
appiumCliDest: 'relaxedSecurityEnabled',
|
|
211
|
+
},
|
|
212
|
+
'session-override': {
|
|
213
|
+
default: false,
|
|
214
|
+
description: 'Enables session override (clobbering)',
|
|
215
|
+
title: 'session-override config',
|
|
216
|
+
type: 'boolean',
|
|
217
|
+
},
|
|
218
|
+
'strict-caps': {
|
|
219
|
+
default: false,
|
|
220
|
+
description: 'Cause sessions to fail if desired caps are sent in that Appium does not recognize as valid for the selected device',
|
|
221
|
+
title: 'strict-caps config',
|
|
222
|
+
type: 'boolean',
|
|
223
|
+
},
|
|
224
|
+
tmp: {
|
|
225
|
+
appiumCliDest: 'tmpDir',
|
|
226
|
+
description: 'Absolute path to directory Appium can use to manage temp files. Defaults to C:\\Windows\\Temp on Windows and /tmp otherwise.',
|
|
227
|
+
title: 'tmp config',
|
|
228
|
+
type: 'string',
|
|
229
|
+
},
|
|
230
|
+
'trace-dir': {
|
|
231
|
+
description: 'Absolute path to directory Appium can use to save iOS instrument traces; defaults to <tmp>/appium-instruments',
|
|
232
|
+
title: 'trace-dir config',
|
|
233
|
+
type: 'string',
|
|
234
|
+
},
|
|
235
|
+
'use-drivers': {
|
|
236
|
+
appiumCliDescription: 'A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.',
|
|
237
|
+
default: [],
|
|
238
|
+
description: 'A list of drivers to activate. By default, all installed drivers will be activated.',
|
|
239
|
+
items: {
|
|
240
|
+
type: 'string',
|
|
241
|
+
},
|
|
242
|
+
title: 'use-drivers config',
|
|
243
|
+
type: 'array',
|
|
244
|
+
uniqueItems: true,
|
|
245
|
+
},
|
|
246
|
+
'use-plugins': {
|
|
247
|
+
appiumCliDescription: 'A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string "all" to use all installed plugins. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.',
|
|
248
|
+
default: [],
|
|
249
|
+
description: 'A list of plugins to activate. To activate all plugins, the value should be an array with a single item "all".',
|
|
250
|
+
items: {
|
|
251
|
+
type: 'string',
|
|
252
|
+
},
|
|
253
|
+
title: 'use-plugins config',
|
|
254
|
+
type: 'array',
|
|
255
|
+
uniqueItems: true,
|
|
256
|
+
},
|
|
257
|
+
webhook: {
|
|
258
|
+
$comment: 'This should probably use a uri-template format to restrict the protocol to http/https',
|
|
259
|
+
appiumCliAliases: ['G'],
|
|
260
|
+
description: 'Also send log output to this http listener',
|
|
261
|
+
format: 'uri',
|
|
262
|
+
title: 'webhook config',
|
|
263
|
+
type: 'string',
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
title: 'server config',
|
|
267
|
+
type: 'object',
|
|
127
268
|
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
269
|
+
},
|
|
270
|
+
title: 'Appium Configuration',
|
|
271
|
+
type: 'object',
|
|
272
|
+
$defs: {
|
|
273
|
+
logFilterText: {
|
|
274
|
+
type: 'object',
|
|
275
|
+
description: 'Log filter with plain text',
|
|
276
|
+
properties: {
|
|
277
|
+
text: {
|
|
278
|
+
description: 'Text to match',
|
|
279
|
+
type: 'string',
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
required: ['text'],
|
|
283
|
+
not: {
|
|
284
|
+
required: ['pattern'],
|
|
285
|
+
},
|
|
135
286
|
},
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
287
|
+
logFilterRegex: {
|
|
288
|
+
type: 'object',
|
|
289
|
+
description: 'Log filter with regular expression',
|
|
290
|
+
properties: {
|
|
291
|
+
pattern: {
|
|
292
|
+
description: 'Regex pattern to match',
|
|
293
|
+
type: 'string',
|
|
294
|
+
format: 'regex',
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
required: ['pattern'],
|
|
298
|
+
not: {
|
|
299
|
+
required: ['text'],
|
|
300
|
+
},
|
|
141
301
|
},
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
302
|
+
logFilter: {
|
|
303
|
+
type: 'object',
|
|
304
|
+
description: 'Log filtering rule',
|
|
305
|
+
allOf: [
|
|
306
|
+
{
|
|
307
|
+
type: 'object',
|
|
308
|
+
properties: {
|
|
309
|
+
replacer: {
|
|
310
|
+
description: 'Replacement string for matched text',
|
|
311
|
+
type: 'string',
|
|
312
|
+
default: '**SECURE**',
|
|
313
|
+
},
|
|
314
|
+
flags: {
|
|
315
|
+
description: 'Matching flags; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags',
|
|
316
|
+
type: 'string',
|
|
317
|
+
pattern: '^[igmsduy](,[igmsduy])*$',
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
oneOf: [{ $ref: '#/$defs/logFilterText' }, { $ref: '#/$defs/logFilterRegex' }],
|
|
323
|
+
},
|
|
324
|
+
],
|
|
147
325
|
},
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
title: 'long-stacktrace config',
|
|
152
|
-
type: 'boolean'
|
|
153
|
-
},
|
|
154
|
-
'no-perms-check': {
|
|
155
|
-
default: false,
|
|
156
|
-
description: 'Do not check that needed files are readable and/or writable',
|
|
157
|
-
title: 'no-perms-check config',
|
|
158
|
-
type: 'boolean'
|
|
159
|
-
},
|
|
160
|
-
nodeconfig: {
|
|
161
|
-
$comment: 'Selenium Grid 3 is unmaintained and Selenium Grid 4 no longer supports this file.',
|
|
162
|
-
description: 'Path to configuration JSON file to register Appium as a node with Selenium Grid 3; otherwise the configuration itself',
|
|
163
|
-
title: 'nodeconfig config',
|
|
164
|
-
type: 'object'
|
|
165
|
-
},
|
|
166
|
-
plugin: {
|
|
167
|
-
description: 'Plugin-specific configuration. Keys should correspond to plugin package names',
|
|
168
|
-
properties: {},
|
|
169
|
-
title: 'plugin config',
|
|
170
|
-
type: 'object'
|
|
171
|
-
},
|
|
172
|
-
port: {
|
|
173
|
-
appiumCliAliases: ['p'],
|
|
174
|
-
default: 4723,
|
|
175
|
-
description: 'Port to listen on',
|
|
176
|
-
maximum: 65535,
|
|
177
|
-
minimum: 1,
|
|
178
|
-
title: 'port config',
|
|
179
|
-
type: 'integer'
|
|
180
|
-
},
|
|
181
|
-
'relaxed-security': {
|
|
182
|
-
default: false,
|
|
183
|
-
description: 'Disable additional security checks, so it is possible to use some advanced features, provided by drivers supporting this option. Only enable it if all the clients are in the trusted network and it\'s not the case if a client could potentially break out of the session sandbox. Specific features can be overridden by using "deny-insecure"',
|
|
184
|
-
title: 'relaxed-security config',
|
|
185
|
-
type: 'boolean',
|
|
186
|
-
appiumCliDest: 'relaxedSecurityEnabled'
|
|
187
|
-
},
|
|
188
|
-
'session-override': {
|
|
189
|
-
default: false,
|
|
190
|
-
description: 'Enables session override (clobbering)',
|
|
191
|
-
title: 'session-override config',
|
|
192
|
-
type: 'boolean'
|
|
193
|
-
},
|
|
194
|
-
'strict-caps': {
|
|
195
|
-
default: false,
|
|
196
|
-
description: 'Cause sessions to fail if desired caps are sent in that Appium does not recognize as valid for the selected device',
|
|
197
|
-
title: 'strict-caps config',
|
|
198
|
-
type: 'boolean'
|
|
199
|
-
},
|
|
200
|
-
tmp: {
|
|
201
|
-
appiumCliDest: 'tmpDir',
|
|
202
|
-
description: 'Absolute path to directory Appium can use to manage temp files. Defaults to C:\\Windows\\Temp on Windows and /tmp otherwise.',
|
|
203
|
-
title: 'tmp config',
|
|
204
|
-
type: 'string'
|
|
205
|
-
},
|
|
206
|
-
'trace-dir': {
|
|
207
|
-
description: 'Absolute path to directory Appium can use to save iOS instrument traces; defaults to <tmp>/appium-instruments',
|
|
208
|
-
title: 'trace-dir config',
|
|
209
|
-
type: 'string'
|
|
210
|
-
},
|
|
211
|
-
'use-drivers': {
|
|
212
|
-
appiumCliDescription: 'A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated.',
|
|
213
|
-
default: [],
|
|
214
|
-
description: 'A list of drivers to activate. By default, all installed drivers will be activated.',
|
|
215
|
-
items: {
|
|
216
|
-
type: 'string'
|
|
217
|
-
},
|
|
218
|
-
title: 'use-drivers config',
|
|
219
|
-
type: 'array',
|
|
220
|
-
uniqueItems: true
|
|
221
|
-
},
|
|
222
|
-
'use-plugins': {
|
|
223
|
-
appiumCliDescription: 'A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string "all" to use all installed plugins.',
|
|
224
|
-
default: [],
|
|
225
|
-
description: 'A list of plugins to activate. To activate all plugins, the value should be an array with a single item "all".',
|
|
226
|
-
items: {
|
|
227
|
-
type: 'string'
|
|
228
|
-
},
|
|
229
|
-
title: 'use-plugins config',
|
|
230
|
-
type: 'array',
|
|
231
|
-
uniqueItems: true
|
|
232
|
-
},
|
|
233
|
-
webhook: {
|
|
234
|
-
$comment: 'This should probably use a uri-template format to restrict the protocol to http/https',
|
|
235
|
-
appiumCliAliases: ['G'],
|
|
236
|
-
description: 'Also send log output to this http listener',
|
|
237
|
-
format: 'uri',
|
|
238
|
-
title: 'webhook config',
|
|
239
|
-
type: 'string'
|
|
240
|
-
}
|
|
241
|
-
},
|
|
242
|
-
title: 'server config',
|
|
243
|
-
type: 'object'
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
title: 'Appium Configuration',
|
|
247
|
-
type: 'object'
|
|
248
|
-
};
|
|
249
|
-
exports.AppiumConfigJsonSchema = AppiumConfigJsonSchema;
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBcHBpdW1Db25maWdKc29uU2NoZW1hIiwiJHNjaGVtYSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiZGVzY3JpcHRpb24iLCJwcm9wZXJ0aWVzIiwic2VydmVyIiwiYWRkcmVzcyIsIiRjb21tZW50IiwiYXBwaXVtQ2xpQWxpYXNlcyIsImRlZmF1bHQiLCJmb3JtYXQiLCJ0aXRsZSIsInR5cGUiLCJhcHBpdW1DbGlUcmFuc2Zvcm1lciIsIml0ZW1zIiwidW5pcXVlSXRlbXMiLCJtYXhpbXVtIiwibWluaW11bSIsImRyaXZlciIsImxvZyIsImFwcGl1bUNsaURlc3QiLCJlbnVtIiwibm9kZWNvbmZpZyIsInBsdWdpbiIsInBvcnQiLCJ0bXAiLCJhcHBpdW1DbGlEZXNjcmlwdGlvbiIsIndlYmhvb2siXSwic291cmNlcyI6WyIuLi9saWIvYXBwaXVtLWNvbmZpZy1zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgc2luZ2xlLXNvdXJjZS1vZi10cnV0aCBvZiB0aGUgQXBwaXVtIHNlcnZlciBjb25maWd1cmF0aW9uXG4gKlxuICogVGhpcyBkZWZpbmVzIF9ib3RoXyB3aGF0IHRoZSBDTEkgc3VwcG9ydHMgYW5kIHdoYXQgdGhlIGNvbmZpZyBmaWxlcyBzdXBwb3J0LlxuICovXG5cbmV4cG9ydCBjb25zdCBBcHBpdW1Db25maWdKc29uU2NoZW1hID0gLyoqIEB0eXBlIHtjb25zdH0gKi8gKHtcbiAgJHNjaGVtYTogJ2h0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hJyxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICBkZXNjcmlwdGlvbjogJ0Egc2NoZW1hIGZvciBBcHBpdW0gY29uZmlndXJhdGlvbiBmaWxlcycsXG4gIHByb3BlcnRpZXM6IHtcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgQXBwaXVtIGFzIGEgc2VydmVyJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgYWRkcmVzczoge1xuICAgICAgICAgICRjb21tZW50OiAnSSB0aGluayBob3N0bmFtZSBjb3ZlcnMgYm90aCBETlMgYW5kIElQdjQuLi5jb3VsZCBiZSB3cm9uZycsXG4gICAgICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydhJ10sXG4gICAgICAgICAgZGVmYXVsdDogJzAuMC4wLjAnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnSVAgYWRkcmVzcyB0byBsaXN0ZW4gb24nLFxuICAgICAgICAgIGZvcm1hdDogJ2hvc3RuYW1lJyxcbiAgICAgICAgICB0aXRsZTogJ2FkZHJlc3MgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FsbG93LWNvcnMnOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnV2hldGhlciB0aGUgQXBwaXVtIHNlcnZlciBzaG91bGQgYWxsb3cgd2ViIGJyb3dzZXIgY29ubmVjdGlvbnMgZnJvbSBhbnkgaG9zdCcsXG4gICAgICAgICAgdGl0bGU6ICdhbGxvdy1jb3JzIGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICAnYWxsb3ctaW5zZWN1cmUnOiB7XG4gICAgICAgICAgYXBwaXVtQ2xpVHJhbnNmb3JtZXI6ICdjc3YnLFxuICAgICAgICAgIGRlZmF1bHQ6IFtdLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ1NldCB3aGljaCBpbnNlY3VyZSBmZWF0dXJlcyBhcmUgYWxsb3dlZCB0byBydW4gaW4gdGhpcyBzZXJ2ZXJcXCdzIHNlc3Npb25zLiBGZWF0dXJlcyBhcmUgZGVmaW5lZCBvbiBhIGRyaXZlciBsZXZlbDsgc2VlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4gTm90ZSB0aGF0IGZlYXR1cmVzIGRlZmluZWQgdmlhIFwiZGVueS1pbnNlY3VyZVwiIHdpbGwgYmUgZGlzYWJsZWQsIGV2ZW4gaWYgYWxzbyBsaXN0ZWQgaGVyZS4gSWYgc3RyaW5nLCBhIHBhdGggdG8gYSB0ZXh0IGZpbGUgY29udGFpbmluZyBwb2xpY3kgb3IgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdC4nLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpdGxlOiAnYWxsb3ctaW5zZWN1cmUgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICAnYmFzZS1wYXRoJzoge1xuICAgICAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsncGEnXSxcbiAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdCYXNlIHBhdGggdG8gdXNlIGFzIHRoZSBwcmVmaXggZm9yIGFsbCB3ZWJkcml2ZXIgcm91dGVzIHJ1bm5pbmcgb24gdGhlIHNlcnZlcicsXG4gICAgICAgICAgdGl0bGU6ICdiYXNlLXBhdGggY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2NhbGxiYWNrLWFkZHJlc3MnOiB7XG4gICAgICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydjYSddLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2FsbGJhY2sgSVAgYWRkcmVzcyAoZGVmYXVsdDogc2FtZSBhcyBcImFkZHJlc3NcIiknLFxuICAgICAgICAgIHRpdGxlOiAnY2FsbGJhY2stYWRkcmVzcyBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICAnY2FsbGJhY2stcG9ydCc6IHtcbiAgICAgICAgICBhcHBpdW1DbGlBbGlhc2VzOiBbJ2NwJ10sXG4gICAgICAgICAgZGVmYXVsdDogNDcyMyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NhbGxiYWNrIHBvcnQgKGRlZmF1bHQ6IHNhbWUgYXMgXCJwb3J0XCIpJyxcbiAgICAgICAgICBtYXhpbXVtOiA2NTUzNSxcbiAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgIHRpdGxlOiAnY2FsbGJhY2stcG9ydCBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2RlYnVnLWxvZy1zcGFjaW5nJzoge1xuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQWRkIGV4YWdnZXJhdGVkIHNwYWNpbmcgaW4gbG9ncyB0byBoZWxwIHdpdGggdmlzdWFsIGluc3BlY3Rpb24nLFxuICAgICAgICAgIHRpdGxlOiAnZGVidWctbG9nLXNwYWNpbmcgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgICdkZWZhdWx0LWNhcGFiaWxpdGllcyc6IHtcbiAgICAgICAgICAkY29tbWVudDogJ1RPRE8nLFxuICAgICAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsnZGMnXSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdTZXQgdGhlIGRlZmF1bHQgZGVzaXJlZCBjYXBhYmlsaXRpZXMsIHdoaWNoIHdpbGwgYmUgc2V0IG9uIGVhY2ggc2Vzc2lvbiB1bmxlc3Mgb3ZlcnJpZGRlbiBieSByZWNlaXZlZCBjYXBhYmlsaXRpZXMuIElmIGEgc3RyaW5nLCBhIHBhdGggdG8gYSBKU09OIGZpbGUgY29udGFpbmluZyB0aGUgY2FwYWJpbGl0aWVzLCBvciByYXcgSlNPTi4nLFxuICAgICAgICAgIHRpdGxlOiAnZGVmYXVsdC1jYXBhYmlsaXRpZXMgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2RlbnktaW5zZWN1cmUnOiB7XG4gICAgICAgICAgJGNvbW1lbnQ6ICdBbGxvd2VkIHZhbHVlcyBhcmUgZGVmaW5lZCBieSBkcml2ZXJzJyxcbiAgICAgICAgICBhcHBpdW1DbGlUcmFuc2Zvcm1lcjogJ2NzdicsXG4gICAgICAgICAgZGVmYXVsdDogW10sXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnU2V0IHdoaWNoIGluc2VjdXJlIGZlYXR1cmVzIGFyZSBub3QgYWxsb3dlZCB0byBydW4gaW4gdGhpcyBzZXJ2ZXJcXCdzIHNlc3Npb25zLiBGZWF0dXJlcyBhcmUgZGVmaW5lZCBvbiBhIGRyaXZlciBsZXZlbDsgc2VlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4gRmVhdHVyZXMgbGlzdGVkIGhlcmUgd2lsbCBub3QgYmUgZW5hYmxlZCBldmVuIGlmIGFsc28gbGlzdGVkIGluIFwiYWxsb3ctaW5zZWN1cmVcIiwgYW5kIGV2ZW4gaWYgXCJyZWxheGVkLXNlY3VyaXR5XCIgaXMgZW5hYmxlZC4gSWYgc3RyaW5nLCBhIHBhdGggdG8gYSB0ZXh0IGZpbGUgY29udGFpbmluZyBwb2xpY3kgb3IgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdC4nLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpdGxlOiAnZGVueS1pbnNlY3VyZSBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRyaXZlcjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ0RyaXZlci1zcGVjaWZpYyBjb25maWd1cmF0aW9uLiBLZXlzIHNob3VsZCBjb3JyZXNwb25kIHRvIGRyaXZlciBwYWNrYWdlIG5hbWVzJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsaW1wb3J0KCdqc29uLXNjaGVtYScpLkpTT05TY2hlbWE3Pn0gKi8gKHt9KSxcbiAgICAgICAgICB0aXRsZTogJ2RyaXZlciBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICB9LFxuICAgICAgICAna2VlcC1hbGl2ZS10aW1lb3V0Jzoge1xuICAgICAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsna2EnXSxcbiAgICAgICAgICBkZWZhdWx0OiA2MDAsXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnTnVtYmVyIG9mIHNlY29uZHMgdGhlIEFwcGl1bSBzZXJ2ZXIgc2hvdWxkIGFwcGx5IGFzIGJvdGggdGhlIGtlZXAtYWxpdmUgdGltZW91dCBhbmQgdGhlIGNvbm5lY3Rpb24gdGltZW91dCBmb3IgYWxsIHJlcXVlc3RzLiBBIHZhbHVlIG9mIDAgZGlzYWJsZXMgdGhlIHRpbWVvdXQuJyxcbiAgICAgICAgICBtaW5pbXVtOiAwLFxuICAgICAgICAgIHRpdGxlOiAna2VlcC1hbGl2ZS10aW1lb3V0IGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICB9LFxuICAgICAgICAnbG9jYWwtdGltZXpvbmUnOiB7XG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgbG9jYWwgdGltZXpvbmUgZm9yIHRpbWVzdGFtcHMnLFxuICAgICAgICAgIHRpdGxlOiAnbG9jYWwtdGltZXpvbmUgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIGxvZzoge1xuICAgICAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsnZyddLFxuICAgICAgICAgIGFwcGl1bUNsaURlc3Q6ICdsb2dGaWxlJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Fsc28gc2VuZCBsb2cgb3V0cHV0IHRvIHRoaXMgZmlsZScsXG4gICAgICAgICAgdGl0bGU6ICdsb2cgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2xvZy1maWx0ZXJzJzoge1xuICAgICAgICAgICRjb21tZW50OiAnVE9ETycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdPbmUgb3IgbW9yZSBsb2cgZmlsdGVyaW5nIHJ1bGVzJyxcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogJ2xvZy1maWx0ZXJzIGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2xvZy1sZXZlbCc6IHtcbiAgICAgICAgICBhcHBpdW1DbGlEZXN0OiAnbG9nbGV2ZWwnLFxuICAgICAgICAgIGRlZmF1bHQ6ICdkZWJ1ZycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdMb2cgbGV2ZWwgKGNvbnNvbGVbOmZpbGVdKScsXG4gICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgJ2luZm8nLFxuICAgICAgICAgICAgJ2luZm86ZGVidWcnLFxuICAgICAgICAgICAgJ2luZm86aW5mbycsXG4gICAgICAgICAgICAnaW5mbzp3YXJuJyxcbiAgICAgICAgICAgICdpbmZvOmVycm9yJyxcbiAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICd3YXJuOmRlYnVnJyxcbiAgICAgICAgICAgICd3YXJuOmluZm8nLFxuICAgICAgICAgICAgJ3dhcm46d2FybicsXG4gICAgICAgICAgICAnd2FybjplcnJvcicsXG4gICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgJ2Vycm9yOmRlYnVnJyxcbiAgICAgICAgICAgICdlcnJvcjppbmZvJyxcbiAgICAgICAgICAgICdlcnJvcjp3YXJuJyxcbiAgICAgICAgICAgICdlcnJvcjplcnJvcicsXG4gICAgICAgICAgICAnZGVidWcnLFxuICAgICAgICAgICAgJ2RlYnVnOmRlYnVnJyxcbiAgICAgICAgICAgICdkZWJ1ZzppbmZvJyxcbiAgICAgICAgICAgICdkZWJ1Zzp3YXJuJyxcbiAgICAgICAgICAgICdkZWJ1ZzplcnJvcicsXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0aXRsZTogJ2xvZy1sZXZlbCBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICAnbG9nLW5vLWNvbG9ycyc6IHtcbiAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RvIG5vdCB1c2UgY29sb3IgaW4gY29uc29sZSBvdXRwdXQnLFxuICAgICAgICAgIHRpdGxlOiAnbG9nLW5vLWNvbG9ycyBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2xvZy10aW1lc3RhbXAnOiB7XG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdTaG93IHRpbWVzdGFtcHMgaW4gY29uc29sZSBvdXRwdXQnLFxuICAgICAgICAgIHRpdGxlOiAnbG9nLXRpbWVzdGFtcCBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2xvbmctc3RhY2t0cmFjZSc6IHtcbiAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBsb25nIHN0YWNrIHRyYWNlcyB0byBsb2cgZW50cmllcy4gUmVjb21tZW5kZWQgZm9yIGRlYnVnZ2luZyBvbmx5LicsXG4gICAgICAgICAgdGl0bGU6ICdsb25nLXN0YWNrdHJhY2UgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgICduby1wZXJtcy1jaGVjayc6IHtcbiAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RvIG5vdCBjaGVjayB0aGF0IG5lZWRlZCBmaWxlcyBhcmUgcmVhZGFibGUgYW5kL29yIHdyaXRhYmxlJyxcbiAgICAgICAgICB0aXRsZTogJ25vLXBlcm1zLWNoZWNrIGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICBub2RlY29uZmlnOiB7XG4gICAgICAgICAgJGNvbW1lbnQ6XG4gICAgICAgICAgICAnU2VsZW5pdW0gR3JpZCAzIGlzIHVubWFpbnRhaW5lZCBhbmQgU2VsZW5pdW0gR3JpZCA0IG5vIGxvbmdlciBzdXBwb3J0cyB0aGlzIGZpbGUuJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdQYXRoIHRvIGNvbmZpZ3VyYXRpb24gSlNPTiBmaWxlIHRvIHJlZ2lzdGVyIEFwcGl1bSBhcyBhIG5vZGUgd2l0aCBTZWxlbml1bSBHcmlkIDM7IG90aGVyd2lzZSB0aGUgY29uZmlndXJhdGlvbiBpdHNlbGYnLFxuICAgICAgICAgIHRpdGxlOiAnbm9kZWNvbmZpZyBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdQbHVnaW4tc3BlY2lmaWMgY29uZmlndXJhdGlvbi4gS2V5cyBzaG91bGQgY29ycmVzcG9uZCB0byBwbHVnaW4gcGFja2FnZSBuYW1lcycsXG4gICAgICAgICAgcHJvcGVydGllczogLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLGltcG9ydCgnanNvbi1zY2hlbWEnKS5KU09OU2NoZW1hNz59ICovICh7fSksXG4gICAgICAgICAgdGl0bGU6ICdwbHVnaW4gY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgfSxcbiAgICAgICAgcG9ydDoge1xuICAgICAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsncCddLFxuICAgICAgICAgIGRlZmF1bHQ6IDQ3MjMsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdQb3J0IHRvIGxpc3RlbiBvbicsXG4gICAgICAgICAgbWF4aW11bTogNjU1MzUsXG4gICAgICAgICAgbWluaW11bTogMSxcbiAgICAgICAgICB0aXRsZTogJ3BvcnQgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgIH0sXG4gICAgICAgICdyZWxheGVkLXNlY3VyaXR5Jzoge1xuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ0Rpc2FibGUgYWRkaXRpb25hbCBzZWN1cml0eSBjaGVja3MsIHNvIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBzb21lIGFkdmFuY2VkIGZlYXR1cmVzLCBwcm92aWRlZCBieSBkcml2ZXJzIHN1cHBvcnRpbmcgdGhpcyBvcHRpb24uIE9ubHkgZW5hYmxlIGl0IGlmIGFsbCB0aGUgY2xpZW50cyBhcmUgaW4gdGhlIHRydXN0ZWQgbmV0d29yayBhbmQgaXRcXCdzIG5vdCB0aGUgY2FzZSBpZiBhIGNsaWVudCBjb3VsZCBwb3RlbnRpYWxseSBicmVhayBvdXQgb2YgdGhlIHNlc3Npb24gc2FuZGJveC4gU3BlY2lmaWMgZmVhdHVyZXMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdXNpbmcgXCJkZW55LWluc2VjdXJlXCInLFxuICAgICAgICAgIHRpdGxlOiAncmVsYXhlZC1zZWN1cml0eSBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBhcHBpdW1DbGlEZXN0OiAncmVsYXhlZFNlY3VyaXR5RW5hYmxlZCcsXG4gICAgICAgIH0sXG4gICAgICAgICdzZXNzaW9uLW92ZXJyaWRlJzoge1xuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRW5hYmxlcyBzZXNzaW9uIG92ZXJyaWRlIChjbG9iYmVyaW5nKScsXG4gICAgICAgICAgdGl0bGU6ICdzZXNzaW9uLW92ZXJyaWRlIGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICAnc3RyaWN0LWNhcHMnOiB7XG4gICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQ2F1c2Ugc2Vzc2lvbnMgdG8gZmFpbCBpZiBkZXNpcmVkIGNhcHMgYXJlIHNlbnQgaW4gdGhhdCBBcHBpdW0gZG9lcyBub3QgcmVjb2duaXplIGFzIHZhbGlkIGZvciB0aGUgc2VsZWN0ZWQgZGV2aWNlJyxcbiAgICAgICAgICB0aXRsZTogJ3N0cmljdC1jYXBzIGNvbmZpZycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB0bXA6IHtcbiAgICAgICAgICBhcHBpdW1DbGlEZXN0OiAndG1wRGlyJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdBYnNvbHV0ZSBwYXRoIHRvIGRpcmVjdG9yeSBBcHBpdW0gY2FuIHVzZSB0byBtYW5hZ2UgdGVtcCBmaWxlcy4gRGVmYXVsdHMgdG8gQzpcXFxcV2luZG93c1xcXFxUZW1wIG9uIFdpbmRvd3MgYW5kIC90bXAgb3RoZXJ3aXNlLicsXG4gICAgICAgICAgdGl0bGU6ICd0bXAgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ3RyYWNlLWRpcic6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdBYnNvbHV0ZSBwYXRoIHRvIGRpcmVjdG9yeSBBcHBpdW0gY2FuIHVzZSB0byBzYXZlIGlPUyBpbnN0cnVtZW50IHRyYWNlczsgZGVmYXVsdHMgdG8gPHRtcD4vYXBwaXVtLWluc3RydW1lbnRzJyxcbiAgICAgICAgICB0aXRsZTogJ3RyYWNlLWRpciBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgICAndXNlLWRyaXZlcnMnOiB7XG4gICAgICAgICAgYXBwaXVtQ2xpRGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQSBsaXN0IG9mIGRyaXZlcnMgdG8gYWN0aXZhdGUuIENhbiBiZSBhIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcgb3IgcGF0aCB0byBDU1YgZmlsZS4gQnkgZGVmYXVsdCwgYWxsIGluc3RhbGxlZCBkcml2ZXJzIHdpbGwgYmUgYWN0aXZhdGVkLicsXG4gICAgICAgICAgZGVmYXVsdDogW10sXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQSBsaXN0IG9mIGRyaXZlcnMgdG8gYWN0aXZhdGUuIEJ5IGRlZmF1bHQsIGFsbCBpbnN0YWxsZWQgZHJpdmVycyB3aWxsIGJlIGFjdGl2YXRlZC4nLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpdGxlOiAndXNlLWRyaXZlcnMgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICAndXNlLXBsdWdpbnMnOiB7XG4gICAgICAgICAgYXBwaXVtQ2xpRGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQSBsaXN0IG9mIHBsdWdpbnMgdG8gYWN0aXZhdGUuIENhbiBiZSBhIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcsIHBhdGggdG8gQ1NWIGZpbGUsIG9yIHRoZSBzdHJpbmcgXCJhbGxcIiB0byB1c2UgYWxsIGluc3RhbGxlZCBwbHVnaW5zLicsXG4gICAgICAgICAgZGVmYXVsdDogW10sXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnQSBsaXN0IG9mIHBsdWdpbnMgdG8gYWN0aXZhdGUuIFRvIGFjdGl2YXRlIGFsbCBwbHVnaW5zLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGFuIGFycmF5IHdpdGggYSBzaW5nbGUgaXRlbSBcImFsbFwiLicsXG4gICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGl0bGU6ICd1c2UtcGx1Z2lucyBjb25maWcnLFxuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHdlYmhvb2s6IHtcbiAgICAgICAgICAkY29tbWVudDpcbiAgICAgICAgICAgICdUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgYSB1cmktdGVtcGxhdGUgZm9ybWF0IHRvIHJlc3RyaWN0IHRoZSBwcm90b2NvbCB0byBodHRwL2h0dHBzJyxcbiAgICAgICAgICBhcHBpdW1DbGlBbGlhc2VzOiBbJ0cnXSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Fsc28gc2VuZCBsb2cgb3V0cHV0IHRvIHRoaXMgaHR0cCBsaXN0ZW5lcicsXG4gICAgICAgICAgZm9ybWF0OiAndXJpJyxcbiAgICAgICAgICB0aXRsZTogJ3dlYmhvb2sgY29uZmlnJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0aXRsZTogJ3NlcnZlciBjb25maWcnLFxuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgfSxcbiAgfSxcbiAgdGl0bGU6ICdBcHBpdW0gQ29uZmlndXJhdGlvbicsXG4gIHR5cGU6ICdvYmplY3QnLFxufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1PLE1BQU1BLHNCQUFzQixHQUF5QjtFQUMxREMsT0FBTyxFQUFFLHdDQURpRDtFQUUxREMsb0JBQW9CLEVBQUUsS0FGb0M7RUFHMURDLFdBQVcsRUFBRSx5Q0FINkM7RUFJMURDLFVBQVUsRUFBRTtJQUNWQyxNQUFNLEVBQUU7TUFDTkgsb0JBQW9CLEVBQUUsS0FEaEI7TUFFTkMsV0FBVyxFQUFFLCtDQUZQO01BR05DLFVBQVUsRUFB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
|
|
326
|
+
},
|
|
327
|
+
});
|
|
328
|
+
//# sourceMappingURL=appium-config-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appium-config-schema.js","sourceRoot":"","sources":["../lib/appium-config-schema.js"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
require("source-map-support/register");
|
|
8
|
-
|
|
9
|
-
var _appiumConfigSchema = require("./appium-config-schema");
|
|
10
|
-
|
|
11
|
-
Object.keys(_appiumConfigSchema).forEach(function (key) {
|
|
12
|
-
if (key === "default" || key === "__esModule") return;
|
|
13
|
-
if (key in exports && exports[key] === _appiumConfigSchema[key]) return;
|
|
14
|
-
Object.defineProperty(exports, key, {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return _appiumConfigSchema[key];
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
7
|
}
|
|
19
|
-
|
|
20
|
-
})
|
|
21
|
-
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./appium-config-schema"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
|
|
@@ -9,6 +9,13 @@ export const AppiumConfigJsonSchema = /** @type {const} */ ({
|
|
|
9
9
|
additionalProperties: false,
|
|
10
10
|
description: 'A schema for Appium configuration files',
|
|
11
11
|
properties: {
|
|
12
|
+
$schema: {
|
|
13
|
+
description: 'The JSON schema for this file',
|
|
14
|
+
default:
|
|
15
|
+
'https://raw.githubusercontent.com/appium/appium/master/packages/schema/lib/appium-config.schema.json',
|
|
16
|
+
type: 'string',
|
|
17
|
+
format: 'uri',
|
|
18
|
+
},
|
|
12
19
|
server: {
|
|
13
20
|
additionalProperties: false,
|
|
14
21
|
description: 'Configuration when running Appium as a server',
|
|
@@ -121,13 +128,11 @@ export const AppiumConfigJsonSchema = /** @type {const} */ ({
|
|
|
121
128
|
type: 'string',
|
|
122
129
|
},
|
|
123
130
|
'log-filters': {
|
|
124
|
-
$comment: 'TODO',
|
|
125
131
|
description: 'One or more log filtering rules',
|
|
126
|
-
items: {
|
|
127
|
-
type: 'string',
|
|
128
|
-
},
|
|
129
132
|
title: 'log-filters config',
|
|
130
133
|
type: 'array',
|
|
134
|
+
items: {$ref: '#/$defs/logFilter'},
|
|
135
|
+
appiumCliTransformer: 'json',
|
|
131
136
|
},
|
|
132
137
|
'log-level': {
|
|
133
138
|
appiumCliDest: 'loglevel',
|
|
@@ -242,7 +247,7 @@ export const AppiumConfigJsonSchema = /** @type {const} */ ({
|
|
|
242
247
|
},
|
|
243
248
|
'use-drivers': {
|
|
244
249
|
appiumCliDescription:
|
|
245
|
-
'A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated.',
|
|
250
|
+
'A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.',
|
|
246
251
|
default: [],
|
|
247
252
|
description:
|
|
248
253
|
'A list of drivers to activate. By default, all installed drivers will be activated.',
|
|
@@ -255,7 +260,7 @@ export const AppiumConfigJsonSchema = /** @type {const} */ ({
|
|
|
255
260
|
},
|
|
256
261
|
'use-plugins': {
|
|
257
262
|
appiumCliDescription:
|
|
258
|
-
'A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string "all" to use all installed plugins.',
|
|
263
|
+
'A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string "all" to use all installed plugins. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.',
|
|
259
264
|
default: [],
|
|
260
265
|
description:
|
|
261
266
|
'A list of plugins to activate. To activate all plugins, the value should be an array with a single item "all".',
|
|
@@ -282,4 +287,60 @@ export const AppiumConfigJsonSchema = /** @type {const} */ ({
|
|
|
282
287
|
},
|
|
283
288
|
title: 'Appium Configuration',
|
|
284
289
|
type: 'object',
|
|
290
|
+
$defs: {
|
|
291
|
+
logFilterText: {
|
|
292
|
+
type: 'object',
|
|
293
|
+
description: 'Log filter with plain text',
|
|
294
|
+
properties: {
|
|
295
|
+
text: {
|
|
296
|
+
description: 'Text to match',
|
|
297
|
+
type: 'string',
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
required: ['text'],
|
|
301
|
+
not: {
|
|
302
|
+
required: ['pattern'],
|
|
303
|
+
},
|
|
304
|
+
},
|
|
305
|
+
logFilterRegex: {
|
|
306
|
+
type: 'object',
|
|
307
|
+
description: 'Log filter with regular expression',
|
|
308
|
+
properties: {
|
|
309
|
+
pattern: {
|
|
310
|
+
description: 'Regex pattern to match',
|
|
311
|
+
type: 'string',
|
|
312
|
+
format: 'regex',
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
required: ['pattern'],
|
|
316
|
+
not: {
|
|
317
|
+
required: ['text'],
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
logFilter: {
|
|
321
|
+
type: 'object',
|
|
322
|
+
description: 'Log filtering rule',
|
|
323
|
+
allOf: [
|
|
324
|
+
{
|
|
325
|
+
type: 'object',
|
|
326
|
+
properties: {
|
|
327
|
+
replacer: {
|
|
328
|
+
description: 'Replacement string for matched text',
|
|
329
|
+
type: 'string',
|
|
330
|
+
default: '**SECURE**',
|
|
331
|
+
},
|
|
332
|
+
flags: {
|
|
333
|
+
description:
|
|
334
|
+
'Matching flags; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags',
|
|
335
|
+
type: 'string',
|
|
336
|
+
pattern: '^[igmsduy](,[igmsduy])*$',
|
|
337
|
+
},
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
oneOf: [{$ref: '#/$defs/logFilterText'}, {$ref: '#/$defs/logFilterRegex'}],
|
|
342
|
+
},
|
|
343
|
+
],
|
|
344
|
+
},
|
|
345
|
+
},
|
|
285
346
|
});
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
"additionalProperties": false,
|
|
4
4
|
"description": "A schema for Appium configuration files",
|
|
5
5
|
"properties": {
|
|
6
|
+
"$schema": {
|
|
7
|
+
"description": "The JSON schema for this file",
|
|
8
|
+
"default": "https://raw.githubusercontent.com/appium/appium/master/packages/schema/lib/appium-config.schema.json",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"format": "uri"
|
|
11
|
+
},
|
|
6
12
|
"server": {
|
|
7
13
|
"additionalProperties": false,
|
|
8
14
|
"description": "Configuration when running Appium as a server",
|
|
@@ -122,13 +128,13 @@
|
|
|
122
128
|
"type": "string"
|
|
123
129
|
},
|
|
124
130
|
"log-filters": {
|
|
125
|
-
"$comment": "TODO",
|
|
126
131
|
"description": "One or more log filtering rules",
|
|
132
|
+
"title": "log-filters config",
|
|
133
|
+
"type": "array",
|
|
127
134
|
"items": {
|
|
128
|
-
"
|
|
135
|
+
"$ref": "#/$defs/logFilter"
|
|
129
136
|
},
|
|
130
|
-
"
|
|
131
|
-
"type": "array"
|
|
137
|
+
"appiumCliTransformer": "json"
|
|
132
138
|
},
|
|
133
139
|
"log-level": {
|
|
134
140
|
"appiumCliDest": "loglevel",
|
|
@@ -237,7 +243,7 @@
|
|
|
237
243
|
"type": "string"
|
|
238
244
|
},
|
|
239
245
|
"use-drivers": {
|
|
240
|
-
"appiumCliDescription": "A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated.",
|
|
246
|
+
"appiumCliDescription": "A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.",
|
|
241
247
|
"default": [],
|
|
242
248
|
"description": "A list of drivers to activate. By default, all installed drivers will be activated.",
|
|
243
249
|
"items": {
|
|
@@ -248,7 +254,7 @@
|
|
|
248
254
|
"uniqueItems": true
|
|
249
255
|
},
|
|
250
256
|
"use-plugins": {
|
|
251
|
-
"appiumCliDescription": "A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string \"all\" to use all installed plugins.",
|
|
257
|
+
"appiumCliDescription": "A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string \"all\" to use all installed plugins. Windows environments may require wrapping the comma-delimited string with quotes to escape the comma.",
|
|
252
258
|
"default": [],
|
|
253
259
|
"description": "A list of plugins to activate. To activate all plugins, the value should be an array with a single item \"all\".",
|
|
254
260
|
"items": {
|
|
@@ -274,5 +280,75 @@
|
|
|
274
280
|
}
|
|
275
281
|
},
|
|
276
282
|
"title": "Appium Configuration",
|
|
277
|
-
"type": "object"
|
|
283
|
+
"type": "object",
|
|
284
|
+
"$defs": {
|
|
285
|
+
"logFilterText": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"description": "Log filter with plain text",
|
|
288
|
+
"properties": {
|
|
289
|
+
"text": {
|
|
290
|
+
"description": "Text to match",
|
|
291
|
+
"type": "string"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"required": [
|
|
295
|
+
"text"
|
|
296
|
+
],
|
|
297
|
+
"not": {
|
|
298
|
+
"required": [
|
|
299
|
+
"pattern"
|
|
300
|
+
]
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"logFilterRegex": {
|
|
304
|
+
"type": "object",
|
|
305
|
+
"description": "Log filter with regular expression",
|
|
306
|
+
"properties": {
|
|
307
|
+
"pattern": {
|
|
308
|
+
"description": "Regex pattern to match",
|
|
309
|
+
"type": "string",
|
|
310
|
+
"format": "regex"
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
"required": [
|
|
314
|
+
"pattern"
|
|
315
|
+
],
|
|
316
|
+
"not": {
|
|
317
|
+
"required": [
|
|
318
|
+
"text"
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"logFilter": {
|
|
323
|
+
"type": "object",
|
|
324
|
+
"description": "Log filtering rule",
|
|
325
|
+
"allOf": [
|
|
326
|
+
{
|
|
327
|
+
"type": "object",
|
|
328
|
+
"properties": {
|
|
329
|
+
"replacer": {
|
|
330
|
+
"description": "Replacement string for matched text",
|
|
331
|
+
"type": "string",
|
|
332
|
+
"default": "**SECURE**"
|
|
333
|
+
},
|
|
334
|
+
"flags": {
|
|
335
|
+
"description": "Matching flags; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags",
|
|
336
|
+
"type": "string",
|
|
337
|
+
"pattern": "^[igmsduy](,[igmsduy])*$"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"oneOf": [
|
|
343
|
+
{
|
|
344
|
+
"$ref": "#/$defs/logFilterText"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"$ref": "#/$defs/logFilterRegex"
|
|
348
|
+
}
|
|
349
|
+
]
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
}
|
|
353
|
+
}
|
|
278
354
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/schema",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Appium Configuration Schema",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -30,25 +30,24 @@
|
|
|
30
30
|
"index.js"
|
|
31
31
|
],
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "
|
|
34
|
-
"
|
|
35
|
-
"build:schema-json": "node ./scripts/generate-schema-json.js",
|
|
36
|
-
"dev": "npm run build:distfiles -- --watch",
|
|
37
|
-
"fix": "npm run lint -- --fix",
|
|
38
|
-
"lint": "eslint -c ../../.eslintrc --ignore-path ../../.eslintignore .",
|
|
39
|
-
"prepare": "npm run build",
|
|
33
|
+
"build": "node ./scripts/generate-schema-json.js",
|
|
34
|
+
"clean": "git checkout -- ./lib/appium-config.schema.json || true",
|
|
40
35
|
"test:smoke": "node ./index.js"
|
|
41
36
|
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@types/json-schema": "7.0.11",
|
|
39
|
+
"json-schema": "0.4.0",
|
|
40
|
+
"source-map-support": "0.5.21"
|
|
41
|
+
},
|
|
42
42
|
"engines": {
|
|
43
|
-
"node": ">=
|
|
44
|
-
"npm": ">=
|
|
43
|
+
"node": "^14.17.0 || ^16.13.0 || >=18.0.0",
|
|
44
|
+
"npm": ">=8"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
49
|
+
"typedoc": {
|
|
50
|
+
"entryPoint": "./build/index.js"
|
|
51
|
+
},
|
|
52
|
+
"gitHead": "0823f0b60e40395cd1dc3b72cfa3c0092bc81302"
|
|
54
53
|
}
|