appium-mac2-driver 1.20.0 → 1.20.2

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.20.2](https://github.com/appium/appium-mac2-driver/compare/v1.20.1...v1.20.2) (2024-10-28)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Support non-strict XPath queries ([#318](https://github.com/appium/appium-mac2-driver/issues/318)) ([f596a61](https://github.com/appium/appium-mac2-driver/commit/f596a6171440004089e2a890511e523c4d72bf2e))
7
+
8
+ ## [1.20.1](https://github.com/appium/appium-mac2-driver/compare/v1.20.0...v1.20.1) (2024-10-16)
9
+
10
+
11
+ ### Miscellaneous Chores
12
+
13
+ * Apply format to the XML source ([#316](https://github.com/appium/appium-mac2-driver/issues/316)) ([a7f973b](https://github.com/appium/appium-mac2-driver/commit/a7f973baa9a401e3fbe07d99b16b0d624fd42005))
14
+
1
15
  ## [1.20.0](https://github.com/appium/appium-mac2-driver/compare/v1.19.1...v1.20.0) (2024-10-13)
2
16
 
3
17
 
package/README.md CHANGED
@@ -87,7 +87,7 @@ accessibilityId, id, name | These all strategies are mapped to the same Mac2 dri
87
87
  className | Class name uses stringified element types for lookup | `⭐⭐⭐⭐⭐` | By.className("XCUIElementTypePopUpButton")
88
88
  predicate | Lookup by predicate is natively supported by XCTest and is as fast as previous lookup strategies. This lookup strategy could only use the supported [element attributes](#element-attributes). Unknown attribute names would throw an exception. Check [NSPredicate cheat sheet](https://academy.realm.io/posts/nspredicate-cheatsheet/) for more details on how to build effective and flexible locators. | `⭐⭐⭐⭐⭐` | AppiumBy.iOSNsPredicateString("elementType == 2 AND label BEGINSWITH 'Safari'")
89
89
  classChain | This strategy is a combination of Xpath flexibility and fast predicate lookup. Prefer it over Xpath unless there is no other way to build the desired locator. Visit [Class Chain Construction Rules tutorial](https://github.com/facebookarchive/WebDriverAgent/wiki/Class-Chain-Queries-Construction-Rules) to get more knowledge on how to build class chain locators. | `⭐⭐⭐⭐` | AppiumBy.iOSClassChain("**/XCUIElementTypeRuler[$elementType == 72 AND value BEGINSWITH '10'$]")
90
- xpath | For elements lookup Xpath strategy the driver uses the same XML tree that is generated by page source API. Only Xpath 1.0 is supported (based on xmllib2). | `⭐⭐⭐` | By.xpath("//XCUIElementTypePopUpButton[@value="Regular" and @label="type face"]")
90
+ xpath | For elements lookup XPath strategy the driver uses the same XML tree that is generated by page source API. [XPath 2.0](https://www.w3.org/TR/xpath20/) is supported since driver version 1.20.0. All driver versions below 1.20.0 only support XPath 1.0 (based on xmllib2). | `⭐⭐⭐` | By.xpath("//XCUIElementTypePopUpButton[@value=\"Regular\" and @label=\"type face\"]")
91
91
 
92
92
  Check the [integration tests](/test/functional/find-e2e-specs.js) for more examples on different location strategies usage.
93
93
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  - (void)testSingleDescendantWithXPath
80
80
  {
81
- NSString *query = @"*//XCUIElementTypeButton[starts-with(@identifier, \"_XCUI:\")]";
81
+ NSString *query = @"//XCUIElementTypeButton[starts-with(@identifier, \"_XCUI:\")]";
82
82
  NSArray<XCUIElement *> *matches = [self.testedApplication fb_descendantsMatchingXPathQuery:query
83
83
  shouldReturnAfterFirstMatch:YES];
84
84
  XCTAssertEqual(matches.count, 1);
@@ -93,6 +93,31 @@
93
93
 
94
94
  @end
95
95
 
96
+ @interface NSString (FBXPathFixes)
97
+
98
+ /**
99
+ https://discuss.appium.io/t/cannot-find-element-with-mac2/44959
100
+ */
101
+ - (NSString *)fb_toFixedXPathQuery;
102
+
103
+ @end
104
+
105
+ @implementation NSString (FBXPathFixes)
106
+
107
+ - (NSString *)fb_toFixedXPathQuery
108
+ {
109
+ NSString *replacePattern = @"^([(]*)(/)";
110
+ NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:replacePattern
111
+ options:NSRegularExpressionCaseInsensitive
112
+ error:nil];
113
+ return [regex stringByReplacingMatchesInString:self
114
+ options:0
115
+ range:NSMakeRange(0, [self length])
116
+ withTemplate:@"$1.$2"];
117
+ }
118
+
119
+ @end
120
+
96
121
  static NSString *const kXMLIndexPathKey = @"private_indexPath";
97
122
 
98
123
 
@@ -114,7 +139,7 @@ static NSString *const kXMLIndexPathKey = @"private_indexPath";
114
139
  return nil;
115
140
  }
116
141
 
117
- return [self xmlRepresentationWithRootElement:snapshot].XMLString;
142
+ return [[self xmlRepresentationWithSnapshot:snapshot] XMLStringWithOptions:NSXMLNodePrettyPrint];
118
143
  }
119
144
 
120
145
  + (NSArray<XCUIElement *> *)matchesWithRootElement:(XCUIElement *)root
@@ -130,9 +155,10 @@ static NSString *const kXMLIndexPathKey = @"private_indexPath";
130
155
  userInfo:@{}];
131
156
  }
132
157
 
133
- NSXMLElement *rootElement = [self writeXmlWithRootSnapshot:snapshot
134
- indexPath:[AMSnapshotUtils hashWithSnapshot:snapshot]];
135
- NSArray<__kindof NSXMLNode *> *matches = [rootElement nodesForXPath:xpathQuery error:&error];
158
+ NSXMLElement *rootElement = [self makeXmlWithRootSnapshot:snapshot
159
+ indexPath:[AMSnapshotUtils hashWithSnapshot:snapshot]];
160
+ NSArray<__kindof NSXMLNode *> *matches = [rootElement nodesForXPath:[xpathQuery fb_toFixedXPathQuery]
161
+ error:&error];
136
162
  if (nil == matches) {
137
163
  @throw [NSException exceptionWithName:FBInvalidXPathException
138
164
  reason:error.description
@@ -186,9 +212,9 @@ static NSString *const kXMLIndexPathKey = @"private_indexPath";
186
212
  : matchingElements.copy;
187
213
  }
188
214
 
189
- + (NSXMLDocument *)xmlRepresentationWithRootElement:(id<XCUIElementSnapshot>)root
215
+ + (NSXMLDocument *)xmlRepresentationWithSnapshot:(id<XCUIElementSnapshot>)root
190
216
  {
191
- NSXMLElement *rootElement = [self writeXmlWithRootSnapshot:root indexPath:nil];
217
+ NSXMLElement *rootElement = [self makeXmlWithRootSnapshot:root indexPath:nil];
192
218
  NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithRootElement:rootElement];
193
219
  [xmlDoc setVersion:@"1.0"];
194
220
  [xmlDoc setCharacterEncoding:@"UTF-8"];
@@ -214,8 +240,8 @@ static NSString *const kXMLIndexPathKey = @"private_indexPath";
214
240
  }
215
241
  }
216
242
 
217
- + (NSXMLElement *)writeXmlWithRootSnapshot:(id<XCUIElementSnapshot>)root
218
- indexPath:(nullable NSString *)indexPath
243
+ + (NSXMLElement *)makeXmlWithRootSnapshot:(id<XCUIElementSnapshot>)root
244
+ indexPath:(nullable NSString *)indexPath
219
245
  {
220
246
  NSString *type = [FBElementTypeTransformer stringWithElementType:root.elementType];
221
247
  NSXMLElement *rootElement = [NSXMLElement elementWithName:type];
@@ -228,8 +254,8 @@ static NSString *const kXMLIndexPathKey = @"private_indexPath";
228
254
  NSString *newIndexPath = (indexPath != nil)
229
255
  ? [AMSnapshotUtils hashWithSnapshot:childSnapshot]
230
256
  : nil;
231
- NSXMLElement *childElement = [self writeXmlWithRootSnapshot:childSnapshot
232
- indexPath:newIndexPath];
257
+ NSXMLElement *childElement = [self makeXmlWithRootSnapshot:childSnapshot
258
+ indexPath:newIndexPath];
233
259
  [rootElement addChild:childElement];
234
260
  }
235
261
  return rootElement;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-mac2-driver",
3
- "version": "1.20.0",
3
+ "version": "1.20.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-mac2-driver",
9
- "version": "1.20.0",
9
+ "version": "1.20.2",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@appium/strongbox": "^0.x",
@@ -66,9 +66,9 @@
66
66
  }
67
67
  },
68
68
  "node_modules/@appium/schema": {
69
- "version": "0.6.1",
70
- "resolved": "https://registry.npmjs.org/@appium/schema/-/schema-0.6.1.tgz",
71
- "integrity": "sha512-tk4ytYaQQ94h5pqz97V2yKqZAmGnBd4ld50ZEw4Tt8QL2VBXOuTuizKDH+AMpyyL6hn/+dMFtcSVjy19iKrsUg==",
69
+ "version": "0.7.0",
70
+ "resolved": "https://registry.npmjs.org/@appium/schema/-/schema-0.7.0.tgz",
71
+ "integrity": "sha512-UhozvcSj8aSeZ0oo8JtT8EoowLpjn7V7xahsIN5bRGeir6+XzqRpjxytKASvnKPoPK0Df7oqCdzJOI0iLa62ZA==",
72
72
  "license": "Apache-2.0",
73
73
  "dependencies": {
74
74
  "@types/json-schema": "7.0.15",
@@ -95,16 +95,16 @@
95
95
  }
96
96
  },
97
97
  "node_modules/@appium/support": {
98
- "version": "5.1.4",
99
- "resolved": "https://registry.npmjs.org/@appium/support/-/support-5.1.4.tgz",
100
- "integrity": "sha512-0jNhtOfSD3gYkSxcSOP3SuTZVUFouq1fTa4ajb91/pNPkvv32IAXdNI8Lg0hz4fjMohw6R/5c2Y6NYjqWQJRwQ==",
98
+ "version": "5.1.6",
99
+ "resolved": "https://registry.npmjs.org/@appium/support/-/support-5.1.6.tgz",
100
+ "integrity": "sha512-BtWnVkIGUOHLDWkuBKSm15C5t2g5qv2+NOguAJ6ujPwDn2VLL86usk82DZF3IJ3Yujn0IrLGUrDLvtlG/uqXUg==",
101
101
  "license": "Apache-2.0",
102
102
  "dependencies": {
103
103
  "@appium/logger": "^1.6.1",
104
104
  "@appium/tsconfig": "^0.3.3",
105
- "@appium/types": "^0.21.3",
105
+ "@appium/types": "^0.22.0",
106
106
  "@colors/colors": "1.6.0",
107
- "@types/archiver": "6.0.2",
107
+ "@types/archiver": "6.0.3",
108
108
  "@types/base64-stream": "1.0.5",
109
109
  "@types/find-root": "1.1.4",
110
110
  "@types/jsftp": "2.1.5",
@@ -125,7 +125,7 @@
125
125
  "bluebird": "3.7.2",
126
126
  "bplist-creator": "0.1.1",
127
127
  "bplist-parser": "0.3.2",
128
- "form-data": "4.0.0",
128
+ "form-data": "4.0.1",
129
129
  "get-stream": "6.0.1",
130
130
  "glob": "10.4.5",
131
131
  "jsftp": "2.1.3",
@@ -175,15 +175,15 @@
175
175
  }
176
176
  },
177
177
  "node_modules/@appium/types": {
178
- "version": "0.21.3",
179
- "resolved": "https://registry.npmjs.org/@appium/types/-/types-0.21.3.tgz",
180
- "integrity": "sha512-jjAv7uWnS9AzV5u2/m63whNQsPvjuyJGXsl/NPy4CQ7z6/wt+BG7GwXP64hmRpwNvA29va7T0DIPQ0kpAa9Dzw==",
178
+ "version": "0.22.0",
179
+ "resolved": "https://registry.npmjs.org/@appium/types/-/types-0.22.0.tgz",
180
+ "integrity": "sha512-2EWAN9Mnjh0ob0n/gTQSpqcflFivBPF/Bh4MLL2Fz09GoiiPCDeILKzdutGo6ZQH9PMEjDd7W//o8b3GwzNfhg==",
181
181
  "license": "Apache-2.0",
182
182
  "dependencies": {
183
183
  "@appium/logger": "^1.6.1",
184
- "@appium/schema": "^0.6.1",
184
+ "@appium/schema": "^0.7.0",
185
185
  "@appium/tsconfig": "^0.3.3",
186
- "@types/express": "4.17.21",
186
+ "@types/express": "5.0.0",
187
187
  "@types/ws": "8.5.12",
188
188
  "type-fest": "4.26.1"
189
189
  },
@@ -193,12 +193,13 @@
193
193
  }
194
194
  },
195
195
  "node_modules/@babel/code-frame": {
196
- "version": "7.25.7",
197
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
198
- "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
196
+ "version": "7.26.0",
197
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz",
198
+ "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==",
199
199
  "license": "MIT",
200
200
  "dependencies": {
201
- "@babel/highlight": "^7.25.7",
201
+ "@babel/helper-validator-identifier": "^7.25.9",
202
+ "js-tokens": "^4.0.0",
202
203
  "picocolors": "^1.0.0"
203
204
  },
204
205
  "engines": {
@@ -206,100 +207,14 @@
206
207
  }
207
208
  },
208
209
  "node_modules/@babel/helper-validator-identifier": {
209
- "version": "7.25.7",
210
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
211
- "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
210
+ "version": "7.25.9",
211
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
212
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
212
213
  "license": "MIT",
213
214
  "engines": {
214
215
  "node": ">=6.9.0"
215
216
  }
216
217
  },
217
- "node_modules/@babel/highlight": {
218
- "version": "7.25.7",
219
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
220
- "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
221
- "license": "MIT",
222
- "dependencies": {
223
- "@babel/helper-validator-identifier": "^7.25.7",
224
- "chalk": "^2.4.2",
225
- "js-tokens": "^4.0.0",
226
- "picocolors": "^1.0.0"
227
- },
228
- "engines": {
229
- "node": ">=6.9.0"
230
- }
231
- },
232
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
233
- "version": "3.2.1",
234
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
235
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
236
- "license": "MIT",
237
- "dependencies": {
238
- "color-convert": "^1.9.0"
239
- },
240
- "engines": {
241
- "node": ">=4"
242
- }
243
- },
244
- "node_modules/@babel/highlight/node_modules/chalk": {
245
- "version": "2.4.2",
246
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
247
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
248
- "license": "MIT",
249
- "dependencies": {
250
- "ansi-styles": "^3.2.1",
251
- "escape-string-regexp": "^1.0.5",
252
- "supports-color": "^5.3.0"
253
- },
254
- "engines": {
255
- "node": ">=4"
256
- }
257
- },
258
- "node_modules/@babel/highlight/node_modules/color-convert": {
259
- "version": "1.9.3",
260
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
261
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
262
- "license": "MIT",
263
- "dependencies": {
264
- "color-name": "1.1.3"
265
- }
266
- },
267
- "node_modules/@babel/highlight/node_modules/color-name": {
268
- "version": "1.1.3",
269
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
270
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
271
- "license": "MIT"
272
- },
273
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
274
- "version": "1.0.5",
275
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
276
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
277
- "license": "MIT",
278
- "engines": {
279
- "node": ">=0.8.0"
280
- }
281
- },
282
- "node_modules/@babel/highlight/node_modules/has-flag": {
283
- "version": "3.0.0",
284
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
285
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
286
- "license": "MIT",
287
- "engines": {
288
- "node": ">=4"
289
- }
290
- },
291
- "node_modules/@babel/highlight/node_modules/supports-color": {
292
- "version": "5.5.0",
293
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
294
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
295
- "license": "MIT",
296
- "dependencies": {
297
- "has-flag": "^3.0.0"
298
- },
299
- "engines": {
300
- "node": ">=4"
301
- }
302
- },
303
218
  "node_modules/@colors/colors": {
304
219
  "version": "1.6.0",
305
220
  "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
@@ -437,9 +352,9 @@
437
352
  "license": "MIT"
438
353
  },
439
354
  "node_modules/@types/archiver": {
440
- "version": "6.0.2",
441
- "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.2.tgz",
442
- "integrity": "sha512-KmROQqbQzKGuaAbmK+ZcytkJ51+YqDa7NmbXjmtC5YBLSyQYo21YaUnQ3HbaPFKL1ooo6RQ6OPYPIDyxfpDDXw==",
355
+ "version": "6.0.3",
356
+ "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.3.tgz",
357
+ "integrity": "sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==",
443
358
  "license": "MIT",
444
359
  "dependencies": {
445
360
  "@types/readdir-glob": "*"
@@ -480,21 +395,21 @@
480
395
  }
481
396
  },
482
397
  "node_modules/@types/express": {
483
- "version": "4.17.21",
484
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
485
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
398
+ "version": "5.0.0",
399
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz",
400
+ "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==",
486
401
  "license": "MIT",
487
402
  "dependencies": {
488
403
  "@types/body-parser": "*",
489
- "@types/express-serve-static-core": "^4.17.33",
404
+ "@types/express-serve-static-core": "^5.0.0",
490
405
  "@types/qs": "*",
491
406
  "@types/serve-static": "*"
492
407
  }
493
408
  },
494
409
  "node_modules/@types/express-serve-static-core": {
495
- "version": "4.19.6",
496
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
497
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
410
+ "version": "5.0.1",
411
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz",
412
+ "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==",
498
413
  "license": "MIT",
499
414
  "dependencies": {
500
415
  "@types/node": "*",
@@ -546,9 +461,9 @@
546
461
  "license": "MIT"
547
462
  },
548
463
  "node_modules/@types/lodash": {
549
- "version": "4.17.10",
550
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz",
551
- "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==",
464
+ "version": "4.17.12",
465
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz",
466
+ "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==",
552
467
  "license": "MIT"
553
468
  },
554
469
  "node_modules/@types/mime": {
@@ -573,9 +488,9 @@
573
488
  }
574
489
  },
575
490
  "node_modules/@types/node": {
576
- "version": "20.16.11",
577
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz",
578
- "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==",
491
+ "version": "20.17.1",
492
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.1.tgz",
493
+ "integrity": "sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==",
579
494
  "license": "MIT",
580
495
  "dependencies": {
581
496
  "undici-types": "~6.19.2"
@@ -1359,9 +1274,9 @@
1359
1274
  }
1360
1275
  },
1361
1276
  "node_modules/form-data": {
1362
- "version": "4.0.0",
1363
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
1364
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
1277
+ "version": "4.0.1",
1278
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
1279
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
1365
1280
  "license": "MIT",
1366
1281
  "dependencies": {
1367
1282
  "asynckit": "^0.4.0",
@@ -2139,9 +2054,9 @@
2139
2054
  "license": "MIT"
2140
2055
  },
2141
2056
  "node_modules/picocolors": {
2142
- "version": "1.1.0",
2143
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
2144
- "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
2057
+ "version": "1.1.1",
2058
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
2059
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
2145
2060
  "license": "ISC"
2146
2061
  },
2147
2062
  "node_modules/pkg-dir": {
@@ -2735,13 +2650,10 @@
2735
2650
  }
2736
2651
  },
2737
2652
  "node_modules/text-decoder": {
2738
- "version": "1.2.0",
2739
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz",
2740
- "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==",
2741
- "license": "Apache-2.0",
2742
- "dependencies": {
2743
- "b4a": "^1.6.4"
2744
- }
2653
+ "version": "1.2.1",
2654
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
2655
+ "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==",
2656
+ "license": "Apache-2.0"
2745
2657
  },
2746
2658
  "node_modules/through": {
2747
2659
  "version": "2.3.8",
@@ -2759,9 +2671,9 @@
2759
2671
  }
2760
2672
  },
2761
2673
  "node_modules/tslib": {
2762
- "version": "2.7.0",
2763
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
2764
- "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
2674
+ "version": "2.8.0",
2675
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz",
2676
+ "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==",
2765
2677
  "extraneous": true,
2766
2678
  "license": "0BSD"
2767
2679
  },
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "mac",
7
7
  "XCTest"
8
8
  ],
9
- "version": "1.20.0",
9
+ "version": "1.20.2",
10
10
  "author": "Appium Contributors",
11
11
  "license": "Apache-2.0",
12
12
  "repository": {