appium-safari-driver 5.0.10 → 5.0.11

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 (546) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/lib/desired-caps.d.ts +9 -0
  3. package/build/lib/desired-caps.d.ts.map +1 -1
  4. package/build/lib/desired-caps.js +9 -0
  5. package/build/lib/desired-caps.js.map +1 -1
  6. package/lib/desired-caps.ts +9 -0
  7. package/node_modules/@appium/coresim/CHANGELOG.md +88 -0
  8. package/node_modules/@appium/coresim/README.md +11 -3
  9. package/node_modules/@appium/coresim/binding.gyp +5 -4
  10. package/node_modules/@appium/coresim/lib/src/commands/duo.d.ts +43 -0
  11. package/node_modules/@appium/coresim/lib/src/commands/duo.d.ts.map +1 -0
  12. package/node_modules/@appium/coresim/lib/src/commands/duo.js +41 -0
  13. package/node_modules/@appium/coresim/lib/src/commands/duo.js.map +1 -0
  14. package/node_modules/@appium/coresim/lib/src/commands/hid.d.ts +21 -0
  15. package/node_modules/@appium/coresim/lib/src/commands/hid.d.ts.map +1 -0
  16. package/node_modules/@appium/coresim/lib/src/commands/hid.js +18 -0
  17. package/node_modules/@appium/coresim/lib/src/commands/hid.js.map +1 -0
  18. package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.d.ts +46 -0
  19. package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.d.ts.map +1 -0
  20. package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.js +202 -0
  21. package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.js.map +1 -0
  22. package/node_modules/@appium/coresim/lib/src/commands/lifecycle.d.ts +8 -0
  23. package/node_modules/@appium/coresim/lib/src/commands/lifecycle.d.ts.map +1 -1
  24. package/node_modules/@appium/coresim/lib/src/commands/lifecycle.js +9 -0
  25. package/node_modules/@appium/coresim/lib/src/commands/lifecycle.js.map +1 -1
  26. package/node_modules/@appium/coresim/lib/src/commands/permissions.d.ts +15 -7
  27. package/node_modules/@appium/coresim/lib/src/commands/permissions.d.ts.map +1 -1
  28. package/node_modules/@appium/coresim/lib/src/commands/permissions.js +66 -6
  29. package/node_modules/@appium/coresim/lib/src/commands/permissions.js.map +1 -1
  30. package/node_modules/@appium/coresim/lib/src/commands/screenshot.d.ts +3 -3
  31. package/node_modules/@appium/coresim/lib/src/commands/screenshot.d.ts.map +1 -1
  32. package/node_modules/@appium/coresim/lib/src/commands/screenshot.js +10 -5
  33. package/node_modules/@appium/coresim/lib/src/commands/screenshot.js.map +1 -1
  34. package/node_modules/@appium/coresim/lib/src/commands/ui.d.ts +21 -0
  35. package/node_modules/@appium/coresim/lib/src/commands/ui.d.ts.map +1 -1
  36. package/node_modules/@appium/coresim/lib/src/commands/ui.js +22 -0
  37. package/node_modules/@appium/coresim/lib/src/commands/ui.js.map +1 -1
  38. package/node_modules/@appium/coresim/lib/src/commands/video-recording.d.ts +2 -0
  39. package/node_modules/@appium/coresim/lib/src/commands/video-recording.d.ts.map +1 -1
  40. package/node_modules/@appium/coresim/lib/src/commands/video-recording.js +13 -6
  41. package/node_modules/@appium/coresim/lib/src/commands/video-recording.js.map +1 -1
  42. package/node_modules/@appium/coresim/lib/src/commands/video-stream.d.ts +2 -0
  43. package/node_modules/@appium/coresim/lib/src/commands/video-stream.d.ts.map +1 -1
  44. package/node_modules/@appium/coresim/lib/src/commands/video-stream.js +6 -2
  45. package/node_modules/@appium/coresim/lib/src/commands/video-stream.js.map +1 -1
  46. package/node_modules/@appium/coresim/lib/src/index.d.ts +3 -2
  47. package/node_modules/@appium/coresim/lib/src/index.d.ts.map +1 -1
  48. package/node_modules/@appium/coresim/lib/src/index.js +2 -1
  49. package/node_modules/@appium/coresim/lib/src/index.js.map +1 -1
  50. package/node_modules/@appium/coresim/lib/src/native-simctl.d.ts +32 -9
  51. package/node_modules/@appium/coresim/lib/src/native-simctl.d.ts.map +1 -1
  52. package/node_modules/@appium/coresim/lib/src/native-simctl.js +26 -18
  53. package/node_modules/@appium/coresim/lib/src/native-simctl.js.map +1 -1
  54. package/node_modules/@appium/coresim/lib/src/types.d.ts +88 -27
  55. package/node_modules/@appium/coresim/lib/src/types.d.ts.map +1 -1
  56. package/node_modules/@appium/coresim/lib/src/types.js +8 -0
  57. package/node_modules/@appium/coresim/lib/src/types.js.map +1 -1
  58. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.d.ts +10 -0
  59. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.d.ts.map +1 -0
  60. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.js +73 -0
  61. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.js.map +1 -0
  62. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.d.ts +4 -0
  63. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.d.ts.map +1 -0
  64. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.js +16 -0
  65. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.js.map +1 -0
  66. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.d.ts +19 -0
  67. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.d.ts.map +1 -0
  68. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.js +2 -0
  69. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.js.map +1 -0
  70. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.d.ts +41 -0
  71. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.d.ts.map +1 -0
  72. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.js +114 -0
  73. package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.js.map +1 -0
  74. package/node_modules/@appium/coresim/lib/src/utils/display.d.ts +24 -0
  75. package/node_modules/@appium/coresim/lib/src/utils/display.d.ts.map +1 -0
  76. package/node_modules/@appium/coresim/lib/src/utils/display.js +55 -0
  77. package/node_modules/@appium/coresim/lib/src/utils/display.js.map +1 -0
  78. package/node_modules/@appium/coresim/lib/src/utils/index.d.ts +4 -0
  79. package/node_modules/@appium/coresim/lib/src/utils/index.d.ts.map +1 -1
  80. package/node_modules/@appium/coresim/lib/src/utils/index.js +3 -0
  81. package/node_modules/@appium/coresim/lib/src/utils/index.js.map +1 -1
  82. package/node_modules/@appium/coresim/lib/src/utils/springboard.d.ts +26 -0
  83. package/node_modules/@appium/coresim/lib/src/utils/springboard.d.ts.map +1 -0
  84. package/node_modules/@appium/coresim/lib/src/utils/springboard.js +106 -0
  85. package/node_modules/@appium/coresim/lib/src/utils/springboard.js.map +1 -0
  86. package/node_modules/@appium/coresim/package.json +9 -16
  87. package/node_modules/@appium/coresim/prebuilds/darwin-arm64/@appium+coresim.node +0 -0
  88. package/node_modules/@appium/coresim/src/commands/duo.ts +58 -0
  89. package/node_modules/@appium/coresim/src/commands/hid.ts +31 -0
  90. package/node_modules/@appium/coresim/src/commands/jpeg-stream.ts +237 -0
  91. package/node_modules/@appium/coresim/src/commands/lifecycle.ts +11 -0
  92. package/node_modules/@appium/coresim/src/commands/permissions.ts +75 -11
  93. package/node_modules/@appium/coresim/src/commands/screenshot.ts +10 -5
  94. package/node_modules/@appium/coresim/src/commands/ui.ts +27 -0
  95. package/node_modules/@appium/coresim/src/commands/video-recording.ts +10 -5
  96. package/node_modules/@appium/coresim/src/commands/video-stream.ts +6 -2
  97. package/node_modules/@appium/coresim/src/coresim.mm +266 -6
  98. package/node_modules/@appium/coresim/src/index.ts +7 -1
  99. package/node_modules/@appium/coresim/src/native/audio_encoder.mm +1 -1
  100. package/node_modules/@appium/coresim/src/native/av_recording.h +1 -1
  101. package/node_modules/@appium/coresim/src/native/av_recording.mm +76 -27
  102. package/node_modules/@appium/coresim/src/native/sim_audio_tap.mm +3 -3
  103. package/node_modules/@appium/coresim/src/native/sim_device.h +14 -0
  104. package/node_modules/@appium/coresim/src/native/sim_device.mm +63 -0
  105. package/node_modules/@appium/coresim/src/native/sim_duo.h +9 -0
  106. package/node_modules/@appium/coresim/src/native/sim_duo.mm +65 -0
  107. package/node_modules/@appium/coresim/src/native/sim_hid.h +8 -0
  108. package/node_modules/@appium/coresim/src/native/sim_hid.mm +116 -0
  109. package/node_modules/@appium/coresim/src/native/sim_jpeg_stream.h +69 -0
  110. package/node_modules/@appium/coresim/src/native/sim_jpeg_stream.mm +322 -0
  111. package/node_modules/@appium/coresim/src/native/sim_orientation.h +16 -0
  112. package/node_modules/@appium/coresim/src/native/sim_orientation.mm +58 -0
  113. package/node_modules/@appium/coresim/src/native/sim_pasteboard.mm +3 -3
  114. package/node_modules/@appium/coresim/src/native/sim_process.mm +1 -1
  115. package/node_modules/@appium/coresim/src/native/sim_screenshot.h +25 -7
  116. package/node_modules/@appium/coresim/src/native/sim_screenshot.mm +71 -30
  117. package/node_modules/@appium/coresim/src/native/sim_video_recording.mm +2 -43
  118. package/node_modules/@appium/coresim/src/native/tcc_privacy.mm +1 -1
  119. package/node_modules/@appium/coresim/src/native/video_encoder.h +9 -2
  120. package/node_modules/@appium/coresim/src/native/video_encoder.mm +241 -21
  121. package/node_modules/@appium/coresim/src/native-simctl.ts +65 -19
  122. package/node_modules/@appium/coresim/src/types.ts +95 -26
  123. package/node_modules/@appium/coresim/src/utils/bulletin-board-model-v2.ts +79 -0
  124. package/node_modules/@appium/coresim/src/utils/bulletin-board-model-v3.ts +16 -0
  125. package/node_modules/@appium/coresim/src/utils/bulletin-board-model.ts +20 -0
  126. package/node_modules/@appium/coresim/src/utils/bulletin-board-store.ts +126 -0
  127. package/node_modules/@appium/coresim/src/utils/display.ts +67 -0
  128. package/node_modules/@appium/coresim/src/utils/index.ts +4 -0
  129. package/node_modules/@appium/coresim/src/utils/springboard.ts +119 -0
  130. package/node_modules/@appium/logger/CHANGELOG.md +8 -0
  131. package/node_modules/@appium/logger/package.json +3 -3
  132. package/node_modules/@appium/support/build/lib/fs.d.ts.map +1 -1
  133. package/node_modules/@appium/support/build/lib/fs.js +7 -0
  134. package/node_modules/@appium/support/build/lib/fs.js.map +1 -1
  135. package/node_modules/@appium/support/build/lib/index.d.ts.map +1 -1
  136. package/node_modules/@appium/support/build/lib/net.d.ts.map +1 -1
  137. package/node_modules/@appium/support/build/lib/net.js +6 -2
  138. package/node_modules/@appium/support/build/lib/net.js.map +1 -1
  139. package/node_modules/@appium/support/build/lib/npm.d.ts.map +1 -1
  140. package/node_modules/@appium/support/build/lib/npm.js +2 -1
  141. package/node_modules/@appium/support/build/lib/npm.js.map +1 -1
  142. package/node_modules/@appium/support/build/lib/util.d.ts.map +1 -1
  143. package/node_modules/@appium/support/build/lib/util.js +23 -5
  144. package/node_modules/@appium/support/build/lib/util.js.map +1 -1
  145. package/node_modules/@appium/support/build/lib/zip.d.ts +2 -1
  146. package/node_modules/@appium/support/build/lib/zip.d.ts.map +1 -1
  147. package/node_modules/@appium/support/build/lib/zip.js +195 -71
  148. package/node_modules/@appium/support/build/lib/zip.js.map +1 -1
  149. package/node_modules/@appium/support/lib/fs.ts +8 -1
  150. package/node_modules/@appium/support/lib/net.ts +7 -2
  151. package/node_modules/@appium/support/lib/npm.ts +2 -1
  152. package/node_modules/@appium/support/lib/util.ts +22 -4
  153. package/node_modules/@appium/support/lib/zip.ts +234 -80
  154. package/node_modules/@appium/support/package.json +11 -11
  155. package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts +6 -4
  156. package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts.map +1 -1
  157. package/node_modules/@appium/types/lib/commands/basedriver.ts +4 -4
  158. package/node_modules/@appium/types/package.json +4 -4
  159. package/node_modules/@img/sharp-darwin-arm64/index.cjs +1 -1
  160. package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.5.node +0 -0
  161. package/node_modules/@img/sharp-darwin-arm64/package.json +2 -2
  162. package/node_modules/@img/sharp-libvips-darwin-arm64/README.md +1 -1
  163. package/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +2 -2
  164. package/node_modules/@img/sharp-libvips-darwin-arm64/lib/{libvips-cpp.8.18.6.dylib → libvips-cpp.8.18.7.dylib} +0 -0
  165. package/node_modules/@img/sharp-libvips-darwin-arm64/package.json +2 -2
  166. package/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +11 -11
  167. package/node_modules/asyncbox/README.md +43 -0
  168. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts +9 -0
  169. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts.map +1 -0
  170. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js +35 -0
  171. package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js.map +1 -0
  172. package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts +9 -0
  173. package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts.map +1 -0
  174. package/node_modules/asyncbox/build/cjs/lib/asyncmap.js +23 -0
  175. package/node_modules/asyncbox/build/cjs/lib/asyncmap.js.map +1 -0
  176. package/node_modules/asyncbox/build/cjs/lib/errors.d.ts +9 -0
  177. package/node_modules/asyncbox/build/cjs/lib/errors.d.ts.map +1 -0
  178. package/node_modules/asyncbox/build/cjs/lib/errors.js +20 -0
  179. package/node_modules/asyncbox/build/cjs/lib/errors.js.map +1 -0
  180. package/node_modules/asyncbox/build/cjs/lib/index.d.ts +12 -0
  181. package/node_modules/asyncbox/build/cjs/lib/index.d.ts.map +1 -0
  182. package/node_modules/asyncbox/build/cjs/lib/index.js +24 -0
  183. package/node_modules/asyncbox/build/cjs/lib/index.js.map +1 -0
  184. package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts +3 -0
  185. package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts.map +1 -0
  186. package/node_modules/asyncbox/build/cjs/lib/limit-function.js +15 -0
  187. package/node_modules/asyncbox/build/cjs/lib/limit-function.js.map +1 -0
  188. package/node_modules/asyncbox/build/cjs/lib/lock.d.ts +74 -0
  189. package/node_modules/asyncbox/build/cjs/lib/lock.d.ts.map +1 -0
  190. package/node_modules/asyncbox/build/cjs/lib/lock.js +295 -0
  191. package/node_modules/asyncbox/build/cjs/lib/lock.js.map +1 -0
  192. package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts +15 -0
  193. package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts.map +1 -0
  194. package/node_modules/asyncbox/build/cjs/lib/long-sleep.js +36 -0
  195. package/node_modules/asyncbox/build/cjs/lib/long-sleep.js.map +1 -0
  196. package/node_modules/asyncbox/build/cjs/lib/retry.d.ts +17 -0
  197. package/node_modules/asyncbox/build/cjs/lib/retry.d.ts.map +1 -0
  198. package/node_modules/asyncbox/build/cjs/lib/retry.js +57 -0
  199. package/node_modules/asyncbox/build/cjs/lib/retry.js.map +1 -0
  200. package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts +20 -0
  201. package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts.map +1 -0
  202. package/node_modules/asyncbox/build/cjs/lib/sleep.js +61 -0
  203. package/node_modules/asyncbox/build/cjs/lib/sleep.js.map +1 -0
  204. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts +18 -0
  205. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts.map +1 -0
  206. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js +51 -0
  207. package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js.map +1 -0
  208. package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts +16 -0
  209. package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts.map +1 -0
  210. package/node_modules/asyncbox/build/cjs/lib/with-timeout.js +45 -0
  211. package/node_modules/asyncbox/build/cjs/lib/with-timeout.js.map +1 -0
  212. package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts +9 -0
  213. package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts.map +1 -0
  214. package/node_modules/asyncbox/build/esm/lib/asyncfilter.js +32 -0
  215. package/node_modules/asyncbox/build/esm/lib/asyncfilter.js.map +1 -0
  216. package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts +9 -0
  217. package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts.map +1 -0
  218. package/node_modules/asyncbox/build/esm/lib/asyncmap.js +20 -0
  219. package/node_modules/asyncbox/build/esm/lib/asyncmap.js.map +1 -0
  220. package/node_modules/asyncbox/build/esm/lib/errors.d.ts +9 -0
  221. package/node_modules/asyncbox/build/esm/lib/errors.d.ts.map +1 -0
  222. package/node_modules/asyncbox/build/esm/lib/errors.js +15 -0
  223. package/node_modules/asyncbox/build/esm/lib/errors.js.map +1 -0
  224. package/node_modules/asyncbox/build/esm/lib/index.d.ts +12 -0
  225. package/node_modules/asyncbox/build/esm/lib/index.d.ts.map +1 -0
  226. package/node_modules/asyncbox/build/esm/lib/index.js +10 -0
  227. package/node_modules/asyncbox/build/esm/lib/index.js.map +1 -0
  228. package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts +3 -0
  229. package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts.map +1 -0
  230. package/node_modules/asyncbox/build/esm/lib/limit-function.js +12 -0
  231. package/node_modules/asyncbox/build/esm/lib/limit-function.js.map +1 -0
  232. package/node_modules/asyncbox/build/esm/lib/lock.d.ts +74 -0
  233. package/node_modules/asyncbox/build/esm/lib/lock.d.ts.map +1 -0
  234. package/node_modules/asyncbox/build/esm/lib/lock.js +291 -0
  235. package/node_modules/asyncbox/build/esm/lib/lock.js.map +1 -0
  236. package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts +15 -0
  237. package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts.map +1 -0
  238. package/node_modules/asyncbox/build/esm/lib/long-sleep.js +33 -0
  239. package/node_modules/asyncbox/build/esm/lib/long-sleep.js.map +1 -0
  240. package/node_modules/asyncbox/build/esm/lib/retry.d.ts +17 -0
  241. package/node_modules/asyncbox/build/esm/lib/retry.d.ts.map +1 -0
  242. package/node_modules/asyncbox/build/esm/lib/retry.js +53 -0
  243. package/node_modules/asyncbox/build/esm/lib/retry.js.map +1 -0
  244. package/node_modules/asyncbox/build/esm/lib/sleep.d.ts +20 -0
  245. package/node_modules/asyncbox/build/esm/lib/sleep.d.ts.map +1 -0
  246. package/node_modules/asyncbox/build/esm/lib/sleep.js +58 -0
  247. package/node_modules/asyncbox/build/esm/lib/sleep.js.map +1 -0
  248. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts +18 -0
  249. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts.map +1 -0
  250. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js +48 -0
  251. package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js.map +1 -0
  252. package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts +16 -0
  253. package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts.map +1 -0
  254. package/node_modules/asyncbox/build/esm/lib/with-timeout.js +42 -0
  255. package/node_modules/asyncbox/build/esm/lib/with-timeout.js.map +1 -0
  256. package/node_modules/asyncbox/lib/asyncfilter.ts +38 -0
  257. package/node_modules/asyncbox/lib/asyncmap.ts +29 -0
  258. package/node_modules/asyncbox/lib/errors.ts +15 -0
  259. package/node_modules/asyncbox/lib/index.ts +21 -0
  260. package/node_modules/asyncbox/lib/limit-function.ts +18 -0
  261. package/node_modules/asyncbox/lib/lock.ts +360 -0
  262. package/node_modules/asyncbox/lib/long-sleep.ts +38 -0
  263. package/node_modules/asyncbox/lib/retry.ts +61 -0
  264. package/node_modules/asyncbox/lib/sleep.ts +79 -0
  265. package/node_modules/asyncbox/lib/wait-for-condition.ts +52 -0
  266. package/node_modules/asyncbox/lib/with-timeout.ts +43 -0
  267. package/node_modules/asyncbox/package.json +8 -8
  268. package/node_modules/axios/CHANGELOG.md +62 -0
  269. package/node_modules/axios/README.md +233 -5
  270. package/node_modules/axios/dist/axios.js +387 -89
  271. package/node_modules/axios/dist/axios.min.js +3 -3
  272. package/node_modules/axios/dist/axios.min.js.map +1 -1
  273. package/node_modules/axios/dist/browser/axios.cjs +458 -98
  274. package/node_modules/axios/dist/esm/axios.js +458 -98
  275. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  276. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  277. package/node_modules/axios/dist/node/axios.cjs +568 -116
  278. package/node_modules/axios/index.d.cts +4 -0
  279. package/node_modules/axios/index.d.ts +4 -0
  280. package/node_modules/axios/lib/adapters/fetch.js +64 -11
  281. package/node_modules/axios/lib/adapters/http.js +134 -50
  282. package/node_modules/axios/lib/adapters/xhr.js +52 -3
  283. package/node_modules/axios/lib/core/Axios.js +19 -14
  284. package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
  285. package/node_modules/axios/lib/core/buildFullPath.js +1 -13
  286. package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
  287. package/node_modules/axios/lib/core/mergeConfig.js +1 -1
  288. package/node_modules/axios/lib/core/methodList.js +17 -0
  289. package/node_modules/axios/lib/defaults/index.js +2 -1
  290. package/node_modules/axios/lib/env/data.js +1 -1
  291. package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
  292. package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
  293. package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
  294. package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
  295. package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
  296. package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
  297. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
  298. package/node_modules/axios/lib/helpers/throttle.js +3 -2
  299. package/node_modules/axios/lib/helpers/toFormData.js +14 -21
  300. package/node_modules/axios/lib/utils.js +134 -13
  301. package/node_modules/axios/package.json +1 -1
  302. package/node_modules/bare-fs/binding.c +52 -23
  303. package/node_modules/bare-fs/index.d.ts +12 -10
  304. package/node_modules/bare-fs/index.js +43 -10
  305. package/node_modules/bare-fs/package.json +2 -1
  306. package/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare +0 -0
  307. package/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare +0 -0
  308. package/node_modules/bare-fs/prebuilds/android-ia32/bare-fs.bare +0 -0
  309. package/node_modules/bare-fs/prebuilds/android-x64/bare-fs.bare +0 -0
  310. package/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare +0 -0
  311. package/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare +0 -0
  312. package/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare +0 -0
  313. package/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare +0 -0
  314. package/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare +0 -0
  315. package/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare +0 -0
  316. package/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare +0 -0
  317. package/node_modules/bare-fs/prebuilds/win32-arm64/bare-fs.bare +0 -0
  318. package/node_modules/bare-fs/prebuilds/win32-x64/bare-fs.bare +0 -0
  319. package/node_modules/bare-url/README.md +4 -0
  320. package/node_modules/bare-url/index.d.ts +3 -0
  321. package/node_modules/bare-url/index.js +42 -18
  322. package/node_modules/bare-url/lib/errors.js +4 -0
  323. package/node_modules/bare-url/package.json +1 -1
  324. package/node_modules/bare-url/prebuilds/android-arm/bare-url.bare +0 -0
  325. package/node_modules/bare-url/prebuilds/android-arm64/bare-url.bare +0 -0
  326. package/node_modules/bare-url/prebuilds/android-ia32/bare-url.bare +0 -0
  327. package/node_modules/bare-url/prebuilds/android-x64/bare-url.bare +0 -0
  328. package/node_modules/bare-url/prebuilds/darwin-arm64/bare-url.bare +0 -0
  329. package/node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare +0 -0
  330. package/node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare +0 -0
  331. package/node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare +0 -0
  332. package/node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare +0 -0
  333. package/node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare +0 -0
  334. package/node_modules/bare-url/prebuilds/linux-x64/bare-url.bare +0 -0
  335. package/node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare +0 -0
  336. package/node_modules/bare-url/prebuilds/win32-x64/bare-url.bare +0 -0
  337. package/node_modules/bplist-creator/README.md +26 -6
  338. package/node_modules/bplist-creator/dist/index.cjs +508 -0
  339. package/node_modules/bplist-creator/dist/index.cjs.map +7 -0
  340. package/node_modules/bplist-creator/dist/index.d.cts +12 -0
  341. package/node_modules/bplist-creator/dist/index.d.ts +12 -0
  342. package/node_modules/bplist-creator/dist/index.mjs +472 -0
  343. package/node_modules/bplist-creator/dist/index.mjs.map +7 -0
  344. package/node_modules/bplist-creator/package.json +43 -9
  345. package/node_modules/bplist-parser/README.md +37 -3
  346. package/node_modules/bplist-parser/dist/index.cjs +385 -0
  347. package/node_modules/bplist-parser/dist/index.cjs.map +7 -0
  348. package/node_modules/bplist-parser/dist/index.d.cts +13 -0
  349. package/node_modules/bplist-parser/dist/index.d.ts +13 -0
  350. package/node_modules/bplist-parser/{bplistParser.js → dist/index.mjs} +141 -171
  351. package/node_modules/bplist-parser/dist/index.mjs.map +7 -0
  352. package/node_modules/bplist-parser/package.json +39 -12
  353. package/node_modules/follow-redirects/README.md +27 -1
  354. package/node_modules/follow-redirects/index.js +11 -6
  355. package/node_modules/follow-redirects/package.json +1 -1
  356. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  357. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.js.map +1 -0
  358. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.d.ts +5 -0
  359. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.js +7 -0
  360. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts +1400 -0
  361. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts.map +1 -0
  362. package/node_modules/lru-cache/dist/commonjs/react-native/index.js +1733 -0
  363. package/node_modules/lru-cache/dist/commonjs/react-native/index.js.map +1 -0
  364. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts +12 -0
  365. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts.map +1 -0
  366. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js +10 -0
  367. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js.map +1 -0
  368. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  369. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.js.map +1 -0
  370. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.d.ts +5 -0
  371. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.js +4 -0
  372. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts +1400 -0
  373. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts.map +1 -0
  374. package/node_modules/lru-cache/dist/esm/react-native/index.js +1729 -0
  375. package/node_modules/lru-cache/dist/esm/react-native/index.js.map +1 -0
  376. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts +12 -0
  377. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts.map +1 -0
  378. package/node_modules/lru-cache/dist/esm/react-native/perf.js +7 -0
  379. package/node_modules/lru-cache/dist/esm/react-native/perf.js.map +1 -0
  380. package/node_modules/lru-cache/package.json +27 -1
  381. package/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
  382. package/node_modules/readable-stream/lib/internal/streams/destroy.js +1 -1
  383. package/node_modules/readable-stream/lib/internal/streams/duplexify.js +1 -1
  384. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +1 -1
  385. package/node_modules/readable-stream/lib/internal/streams/from.js +1 -1
  386. package/node_modules/readable-stream/lib/internal/streams/legacy.js +6 -1
  387. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +1 -1
  388. package/node_modules/readable-stream/lib/internal/streams/readable.js +1 -1
  389. package/node_modules/readable-stream/lib/internal/streams/writable.js +1 -1
  390. package/node_modules/readable-stream/package.json +3 -2
  391. package/node_modules/sharp/dist/index.d.cts +2 -2
  392. package/node_modules/sharp/dist/index.d.mts +3 -3
  393. package/node_modules/sharp/dist/is.cjs +8 -2
  394. package/node_modules/sharp/dist/is.mjs +8 -2
  395. package/node_modules/sharp/dist/operation.cjs +2 -2
  396. package/node_modules/sharp/dist/operation.mjs +2 -2
  397. package/node_modules/sharp/dist/output.cjs +1 -0
  398. package/node_modules/sharp/dist/output.mjs +1 -0
  399. package/node_modules/sharp/dist/resize.cjs +14 -14
  400. package/node_modules/sharp/dist/resize.mjs +14 -14
  401. package/node_modules/sharp/dist/sharp.cjs +3 -3
  402. package/node_modules/sharp/dist/sharp.mjs +3 -3
  403. package/node_modules/sharp/lib/index.d.ts +2 -2
  404. package/node_modules/sharp/package.json +35 -35
  405. package/node_modules/sharp/src/binding.gyp +1 -1
  406. package/node_modules/sharp/src/common.cc +4 -4
  407. package/node_modules/sharp/src/common.h +2 -2
  408. package/node_modules/sharp/src/pipeline.cc +31 -6
  409. package/node_modules/sharp/src/utilities.cc +1 -1
  410. package/node_modules/shell-quote/README.md +37 -4
  411. package/node_modules/shell-quote/package.json +10 -6
  412. package/node_modules/shell-quote/parse.d.ts +1 -1
  413. package/node_modules/shell-quote/parse.js +63 -11
  414. package/node_modules/shell-quote/quote.d.ts +2 -1
  415. package/node_modules/shell-quote/quote.js +23 -3
  416. package/node_modules/stream-buffers/.codeclimate.yml +12 -0
  417. package/node_modules/stream-buffers/.eslintignore +1 -0
  418. package/node_modules/stream-buffers/.eslintrc +25 -0
  419. package/node_modules/stream-buffers/.github/workflows/codeql-analysis.yml +71 -0
  420. package/node_modules/stream-buffers/.github/workflows/node.js.yml +31 -0
  421. package/node_modules/stream-buffers/.mailmap +1 -0
  422. package/node_modules/stream-buffers/.nvmrc +1 -0
  423. package/node_modules/stream-buffers/README.md +65 -65
  424. package/node_modules/stream-buffers/lib/constants.js +8 -6
  425. package/node_modules/stream-buffers/lib/readable_streambuffer.js +114 -136
  426. package/node_modules/stream-buffers/lib/streambuffer.js +5 -3
  427. package/node_modules/stream-buffers/lib/writable_streambuffer.js +72 -97
  428. package/node_modules/stream-buffers/package.json +7 -5
  429. package/node_modules/tar-stream/package.json +7 -7
  430. package/node_modules/type-fest/index.d.ts +7 -7
  431. package/node_modules/type-fest/package.json +2 -1
  432. package/node_modules/type-fest/readme.md +7 -16
  433. package/node_modules/type-fest/source/all-extend.d.ts +9 -7
  434. package/node_modules/type-fest/source/array-reverse.d.ts +13 -12
  435. package/node_modules/type-fest/source/array-tail.d.ts +3 -3
  436. package/node_modules/type-fest/source/delimiter-case.d.ts +1 -1
  437. package/node_modules/type-fest/source/get.d.ts +1 -1
  438. package/node_modules/type-fest/source/int-closed-range.d.ts +4 -1
  439. package/node_modules/type-fest/source/int-range.d.ts +56 -9
  440. package/node_modules/type-fest/source/internal/array.d.ts +14 -13
  441. package/node_modules/type-fest/source/internal/numeric.d.ts +0 -38
  442. package/node_modules/type-fest/source/internal/object.d.ts +30 -1
  443. package/node_modules/type-fest/source/is-boolean-literal.d.ts +39 -0
  444. package/node_modules/type-fest/source/is-literal.d.ts +43 -269
  445. package/node_modules/type-fest/source/is-numeric-literal.d.ts +50 -0
  446. package/node_modules/type-fest/source/is-string-literal.d.ts +72 -0
  447. package/node_modules/type-fest/source/is-symbol-literal.d.ts +39 -0
  448. package/node_modules/type-fest/source/is-tuple.d.ts +3 -3
  449. package/node_modules/type-fest/source/jsonify.d.ts +1 -5
  450. package/node_modules/type-fest/source/merge-deep.d.ts +3 -3
  451. package/node_modules/type-fest/source/remove-prefix.d.ts +1 -1
  452. package/node_modules/type-fest/source/remove-suffix.d.ts +1 -1
  453. package/node_modules/type-fest/source/rename-keys.d.ts +163 -0
  454. package/node_modules/type-fest/source/set-required.d.ts +10 -9
  455. package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +6 -4
  456. package/node_modules/type-fest/source/some-extend.d.ts +9 -7
  457. package/node_modules/type-fest/source/split-on-rest-element.d.ts +14 -13
  458. package/node_modules/type-fest/source/split.d.ts +22 -11
  459. package/node_modules/type-fest/source/string-repeat.d.ts +1 -1
  460. package/node_modules/type-fest/source/string-to-array.d.ts +1 -1
  461. package/node_modules/type-fest/source/tsconfig-json.d.ts +1 -1
  462. package/node_modules/type-fest/source/typed-array.d.ts +6 -0
  463. package/node_modules/type-fest/source/union-max.d.ts +56 -0
  464. package/node_modules/type-fest/source/writable.d.ts +2 -2
  465. package/node_modules/uuid/package.json +17 -17
  466. package/package.json +3 -3
  467. package/node_modules/@appium/support/node_modules/asyncbox/LICENSE +0 -203
  468. package/node_modules/@appium/support/node_modules/asyncbox/README.md +0 -215
  469. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
  470. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
  471. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -301
  472. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
  473. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts +0 -84
  474. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts.map +0 -1
  475. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js +0 -3
  476. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js.map +0 -1
  477. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/package.json +0 -3
  478. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
  479. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
  480. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -288
  481. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
  482. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts +0 -84
  483. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts.map +0 -1
  484. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js +0 -2
  485. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js.map +0 -1
  486. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/package.json +0 -3
  487. package/node_modules/@appium/support/node_modules/asyncbox/lib/asyncbox.ts +0 -365
  488. package/node_modules/@appium/support/node_modules/asyncbox/lib/types.ts +0 -88
  489. package/node_modules/@appium/support/node_modules/asyncbox/package.json +0 -74
  490. package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.4.node +0 -0
  491. package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
  492. package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
  493. package/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -311
  494. package/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
  495. package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
  496. package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
  497. package/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -298
  498. package/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
  499. package/node_modules/asyncbox/lib/asyncbox.ts +0 -382
  500. package/node_modules/big-integer/BigInteger.d.ts +0 -2393
  501. package/node_modules/big-integer/BigInteger.js +0 -1453
  502. package/node_modules/big-integer/BigInteger.min.js +0 -1
  503. package/node_modules/big-integer/LICENSE +0 -24
  504. package/node_modules/big-integer/README.md +0 -589
  505. package/node_modules/big-integer/bower.json +0 -29
  506. package/node_modules/big-integer/package.json +0 -48
  507. package/node_modules/big-integer/tsconfig.json +0 -24
  508. package/node_modules/bplist-creator/bplistCreator.d.ts +0 -8
  509. package/node_modules/bplist-creator/bplistCreator.js +0 -460
  510. package/node_modules/bplist-creator/test/airplay.bplist +0 -0
  511. package/node_modules/bplist-creator/test/binaryData.bplist +0 -0
  512. package/node_modules/bplist-creator/test/creatorTest.js +0 -211
  513. package/node_modules/bplist-creator/test/iTunes-small.bplist +0 -0
  514. package/node_modules/bplist-creator/test/integers.bplist +0 -0
  515. package/node_modules/bplist-creator/test/sample1.bplist +0 -0
  516. package/node_modules/bplist-creator/test/sample2.bplist +0 -0
  517. package/node_modules/bplist-creator/test/uid.bplist +0 -0
  518. package/node_modules/bplist-creator/test/utf16.bplist +0 -0
  519. package/node_modules/bplist-parser/.editorconfig +0 -12
  520. package/node_modules/bplist-parser/.eslintignore +0 -1
  521. package/node_modules/bplist-parser/.eslintrc.js +0 -296
  522. package/node_modules/bplist-parser/bplistParser.d.ts +0 -8
  523. package/node_modules/shell-quote/.nycrc +0 -14
  524. package/node_modules/shell-quote/eslint.config.mjs +0 -29
  525. package/node_modules/shell-quote/security.md +0 -11
  526. package/node_modules/shell-quote/test/comment.js +0 -16
  527. package/node_modules/shell-quote/test/env.js +0 -52
  528. package/node_modules/shell-quote/test/env_fn.js +0 -21
  529. package/node_modules/shell-quote/test/op.js +0 -102
  530. package/node_modules/shell-quote/test/parse.js +0 -149
  531. package/node_modules/shell-quote/test/quote.js +0 -145
  532. package/node_modules/shell-quote/test/set.js +0 -31
  533. package/node_modules/stream-buffers/.travis.yml +0 -28
  534. package/node_modules/stream-buffers/coverage/coverage.json +0 -1
  535. package/node_modules/stream-buffers/coverage/lcov-report/base.css +0 -182
  536. package/node_modules/stream-buffers/coverage/lcov-report/index.html +0 -73
  537. package/node_modules/stream-buffers/coverage/lcov-report/lib/constants.js.html +0 -63
  538. package/node_modules/stream-buffers/coverage/lcov-report/lib/index.html +0 -112
  539. package/node_modules/stream-buffers/coverage/lcov-report/lib/readable_streambuffer.js.html +0 -453
  540. package/node_modules/stream-buffers/coverage/lcov-report/lib/streambuffer.js.html +0 -54
  541. package/node_modules/stream-buffers/coverage/lcov-report/lib/writable_streambuffer.js.html +0 -336
  542. package/node_modules/stream-buffers/coverage/lcov-report/prettify.css +0 -1
  543. package/node_modules/stream-buffers/coverage/lcov-report/prettify.js +0 -1
  544. package/node_modules/stream-buffers/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  545. package/node_modules/stream-buffers/coverage/lcov-report/sorter.js +0 -156
  546. package/node_modules/stream-buffers/coverage/lcov.info +0 -305
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [5.0.11](https://github.com/appium/appium-safari-driver/compare/v5.0.10...v5.0.11) (2026-11-03)
2
+
3
+ ### Bug Fixes
4
+
5
+ * add missing capability constraints and document iOS simulator permission handling ([#198](https://github.com/appium/appium-safari-driver/issues/198)) ([4a68aa2](https://github.com/appium/appium-safari-driver/commit/4a68aa2b064f6987dca1a71b4913524f39dd49d6))
6
+
1
7
  ## [5.0.10](https://github.com/appium/appium-safari-driver/compare/v5.0.9...v5.0.10) (2026-09-24)
2
8
 
3
9
  ### Miscellaneous Chores
@@ -32,9 +32,18 @@ declare const desiredCapConstraints: {
32
32
  readonly 'safari:automaticProfiling': {
33
33
  readonly isBoolean: true;
34
34
  };
35
+ readonly 'safari:diagnose': {
36
+ readonly isBoolean: true;
37
+ };
35
38
  readonly 'webkit:WebRTC': {
36
39
  readonly isObject: true;
37
40
  };
41
+ readonly 'webkit:alwaysAllowAutoplay': {
42
+ readonly isBoolean: true;
43
+ };
44
+ readonly 'webkit:siteIsolationEnabled': {
45
+ readonly isBoolean: true;
46
+ };
38
47
  };
39
48
  export { desiredCapConstraints };
40
49
  export type SafariConstraints = typeof desiredCapConstraints;
@@ -1 +1 @@
1
- {"version":3,"file":"desired-caps.d.ts","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCK,CAAC;AAEjC,OAAO,EAAC,qBAAqB,EAAC,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG,OAAO,qBAAqB,CAAC"}
1
+ {"version":3,"file":"desired-caps.d.ts","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CK,CAAC;AAEjC,OAAO,EAAC,qBAAqB,EAAC,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG,OAAO,qBAAqB,CAAC"}
@@ -32,9 +32,18 @@ const desiredCapConstraints = {
32
32
  'safari:automaticProfiling': {
33
33
  isBoolean: true,
34
34
  },
35
+ 'safari:diagnose': {
36
+ isBoolean: true,
37
+ },
35
38
  'webkit:WebRTC': {
36
39
  isObject: true,
37
40
  },
41
+ 'webkit:alwaysAllowAutoplay': {
42
+ isBoolean: true,
43
+ },
44
+ 'webkit:siteIsolationEnabled': {
45
+ isBoolean: true,
46
+ },
38
47
  };
39
48
  export { desiredCapConstraints };
40
49
  //# sourceMappingURL=desired-caps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG;IAC5B,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,4BAA4B,EAAE;QAC5B,SAAS,EAAE,IAAI;KAChB;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;CAC6B,CAAC;AAEjC,OAAO,EAAC,qBAAqB,EAAC,CAAC"}
1
+ {"version":3,"file":"desired-caps.js","sourceRoot":"","sources":["../../lib/desired-caps.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG;IAC5B,WAAW,EAAE;QACX,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;KAChB;IACD,wBAAwB,EAAE;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,4BAA4B,EAAE;QAC5B,SAAS,EAAE,IAAI;KAChB;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE;QACf,QAAQ,EAAE,IAAI;KACf;IACD,4BAA4B,EAAE;QAC5B,SAAS,EAAE,IAAI;KAChB;IACD,6BAA6B,EAAE;QAC7B,SAAS,EAAE,IAAI;KAChB;CAC6B,CAAC;AAEjC,OAAO,EAAC,qBAAqB,EAAC,CAAC"}
@@ -34,9 +34,18 @@ const desiredCapConstraints = {
34
34
  'safari:automaticProfiling': {
35
35
  isBoolean: true,
36
36
  },
37
+ 'safari:diagnose': {
38
+ isBoolean: true,
39
+ },
37
40
  'webkit:WebRTC': {
38
41
  isObject: true,
39
42
  },
43
+ 'webkit:alwaysAllowAutoplay': {
44
+ isBoolean: true,
45
+ },
46
+ 'webkit:siteIsolationEnabled': {
47
+ isBoolean: true,
48
+ },
40
49
  } as const satisfies Constraints;
41
50
 
42
51
  export {desiredCapConstraints};
@@ -1,3 +1,91 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [1.14.0](https://github.com/appium/appium-ios/compare/@appium/coresim@1.13.2...@appium/coresim@1.14.0) (2026-10-24)
7
+
8
+ ### Features
9
+
10
+ * **coresim:** add host-side simulator HID and Duo controls ([#109](https://github.com/appium/appium-ios/issues/109)) ([15f1dd1](https://github.com/appium/appium-ios/commit/15f1dd164f15f243e4a88889964bc2b6b7d2adc9))
11
+
12
+
13
+ ## [1.13.2](https://github.com/appium/appium-ios/compare/@appium/coresim@1.13.1...@appium/coresim@1.13.2) (2026-10-23)
14
+
15
+ ### Miscellaneous Chores
16
+
17
+ * use AsyncLock from asyncbox instead of async-lock ([#107](https://github.com/appium/appium-ios/issues/107)) ([c6f7784](https://github.com/appium/appium-ios/commit/c6f7784ce933cc5910103b756645e159453964a2))
18
+
19
+
20
+ ## [1.13.1](https://github.com/appium/appium-ios/compare/@appium/coresim@1.13.0...@appium/coresim@1.13.1) (2026-10-16)
21
+
22
+ ### Code Refactoring
23
+
24
+ * **coresim:** split notifications store handling out of permissions ([#68](https://github.com/appium/appium-ios/issues/68)) ([7808a34](https://github.com/appium/appium-ios/commit/7808a34bd5c57918414abed62279be31ac18e353))
25
+
26
+
27
+ ## [1.13.0](https://github.com/appium/appium-ios/compare/@appium/coresim@1.12.0...@appium/coresim@1.13.0) (2026-10-15)
28
+
29
+ ### Features
30
+
31
+ * restore the notifications permission and the `all` permissions key ([#38](https://github.com/appium/appium-ios/issues/38)) ([d374250](https://github.com/appium/appium-ios/commit/d374250c24a99d8f91b6d83a77afcc771e00c9b1))
32
+
33
+
34
+ ## [1.12.0](https://github.com/appium/appium-ios/compare/@appium/coresim@1.11.1...@appium/coresim@1.12.0) (2026-10-12)
35
+
36
+ ### Features
37
+
38
+ * support numeric display IDs across capture APIs ([#49](https://github.com/appium/appium-ios/issues/49)) ([ca7649a](https://github.com/appium/appium-ios/commit/ca7649addf546a023bc0d601f784f801b8d99b56))
39
+
40
+
41
+ ## [1.11.1](https://github.com/appium/appium-ios/compare/@appium/coresim@1.11.0...@appium/coresim@1.11.1) (2026-10-05)
42
+
43
+ ### Performance Improvements
44
+
45
+ * **coresim:** reuse one CIContext across getScreenshot calls ([#44](https://github.com/appium/appium-ios/issues/44)) ([ecf353b](https://github.com/appium/appium-ios/commit/ecf353bad640c43c85cf8fa26cb7759b8a9570a0))
46
+
47
+
48
+ ## [1.11.0](https://github.com/appium/appium-ios/compare/@appium/coresim@1.10.2...@appium/coresim@1.11.0) (2026-10-03)
49
+
50
+ ### Features
51
+
52
+ * apply DeviceHub pasteboard sync changes without rebooting the simulator ([#26](https://github.com/appium/appium-ios/issues/26)) ([5c6eabb](https://github.com/appium/appium-ios/commit/5c6eabbf9cfb900563ed816a6392f48db11ef18e))
53
+
54
+
55
+ ## [1.10.2](https://github.com/appium/appium-ios/compare/@appium/coresim@1.10.1...@appium/coresim@1.10.2) (2026-10-02)
56
+
57
+ ### Miscellaneous Chores
58
+
59
+ * ensure Dependabot preserves version ranges ([#24](https://github.com/appium/appium-ios/issues/24)) ([95e4e1a](https://github.com/appium/appium-ios/commit/95e4e1a4703f8ca833f01ecf2af75f4696d98043))
60
+
61
+
62
+ ## [1.10.1](https://github.com/appium/appium-ios/compare/@appium/coresim@1.10.0...@appium/coresim@1.10.1) (2026-09-30)
63
+
64
+ **Note:** Version bump only for package @appium/coresim
65
+
66
+
67
+
68
+
69
+
70
+ ## 1.10.0 (2026-09-29)
71
+
72
+ ### Features
73
+
74
+ * move appium/coresim into the monorepo as packages/coresim ([#16](https://github.com/appium/appium-ios/issues/16)) ([a1acd55](https://github.com/appium/appium-ios/commit/a1acd556f716595d120bc2bf92b317ad84cbfad4))
75
+
76
+
77
+ ## [1.9.0](https://github.com/appium/coresim/compare/v1.8.0...v1.9.0) (2026-09-27)
78
+
79
+ ### Features
80
+
81
+ * add setOrientation and fix video/streaming session resize on device rotation ([#21](https://github.com/appium/coresim/issues/21)) ([3a73986](https://github.com/appium/coresim/commit/3a739869a7669076e764d05bb240f7a0e68cd9df))
82
+
83
+ ## [1.8.0](https://github.com/appium/coresim/compare/v1.7.0...v1.8.0) (2026-09-25)
84
+
85
+ ### Features
86
+
87
+ * add real-time JPEG frame streaming (startJpegStream) ([#20](https://github.com/appium/coresim/issues/20)) ([7a73c0a](https://github.com/appium/coresim/commit/7a73c0a46a5ce72afeb435fb9209e75d7a21df79))
88
+
1
89
  ## [1.7.0](https://github.com/appium/coresim/compare/v1.6.0...v1.7.0) (2026-09-23)
2
90
 
3
91
  ### Features
@@ -27,6 +27,7 @@ instead of crashing.
27
27
  ```ts
28
28
  import {NativeSimctl} from '@appium/coresim';
29
29
 
30
+ // Optionally: new NativeSimctl({developerDir, deviceSetPath}), like `simctl --set <path>`
30
31
  const sim = new NativeSimctl();
31
32
 
32
33
  const devices = await sim.getDevices();
@@ -54,9 +55,16 @@ await sim.deleteDevice(device.udid);
54
55
  readiness with `getBootStatus()`/`waitForBoot()`.
55
56
  - **Apps** — install, remove, launch, terminate, and inspect apps.
56
57
  - **Processes** — spawn a process on the simulator and stream its stdout/stderr live.
57
- - **Screen capture** — screenshots, video recording to a file, and a real-time encoded video
58
- stream — optionally with the device's own audio, muxed into the recording or interleaved into
59
- the stream (`audio: true` on `startVideoRecording`/`startVideoStream`). Audio capture requires:
58
+ - **Screen capture** — screenshots, video recording to a file, a real-time encoded video stream,
59
+ and a real-time JPEG frame stream (`startJpegStream` — configurable fps/quality, no video codec
60
+ involved, meant for callers building their own MJPEG stream out of the frame sequence) —
61
+ optionally with the device's own audio, muxed into the recording or interleaved into the video
62
+ stream (`audio: true` on `startVideoRecording`/`startVideoStream`). All four capture APIs accept
63
+ a port UUID or a numeric XCTest/WDA guest screen ID as `displayId`. Numeric IDs are resolved against the current ports
64
+ on each screenshot or once at recording/stream startup. Missing or ambiguous IDs reject.
65
+ Without an ID, a unique class-0 display is selected; if none exists, native selection falls
66
+ back to the first renderable display. Multiple class-0 displays (such as Duo) require an
67
+ explicit ID. Audio capture requires:
60
68
  - **macOS 14.2+** on the host (Core Audio process taps).
61
69
  - The host's **"System Audio Recording Only"** privacy permission (System Settings > Privacy &
62
70
  Security > Screen & System Audio Recording). This can't be granted programmatically, and a
@@ -10,6 +10,9 @@
10
10
  "src/native/sim_service_context.mm",
11
11
  "src/native/sim_device_set.mm",
12
12
  "src/native/sim_device.mm",
13
+ "src/native/sim_orientation.mm",
14
+ "src/native/sim_hid.mm",
15
+ "src/native/sim_duo.mm",
13
16
  "src/native/tcc_privacy.mm",
14
17
  "src/native/sim_pasteboard.mm",
15
18
  "src/native/sim_process.mm",
@@ -20,14 +23,12 @@
20
23
  "src/native/sim_screenshot.mm",
21
24
  "src/native/sim_video_recording.mm",
22
25
  "src/native/video_encoder.mm",
23
- "src/native/sim_video_stream.mm"
26
+ "src/native/sim_video_stream.mm",
27
+ "src/native/sim_jpeg_stream.mm"
24
28
  ],
25
29
  "include_dirs": [
26
30
  "<!@(node -p \"require('node-addon-api').include\")"
27
31
  ],
28
- "dependencies": [
29
- "<!(node -p \"require('node-addon-api').gyp\")"
30
- ],
31
32
  "cflags!": ["-fno-exceptions"],
32
33
  "cflags_cc!": ["-fno-exceptions"],
33
34
  "defines": ["NAPI_CPP_EXCEPTIONS", "NAPI_VERSION=8"],
@@ -0,0 +1,43 @@
1
+ import type { NativeSimctl } from '../native-simctl.js';
2
+ import type { DeviceOrientation } from '../types.js';
3
+ declare module '../native-simctl.js' {
4
+ interface NativeSimctl {
5
+ isDuo(udid: string): Promise<boolean>;
6
+ setSimulatedHingeAngle(udid: string, angle: number): Promise<void>;
7
+ setHidOrientation(udid: string, orientation: DeviceOrientation, isMainDisplay: boolean): Promise<void>;
8
+ }
9
+ }
10
+ /**
11
+ * Identifies iPhone Duo by its CoreSimulator device type, without booting or sending events.
12
+ * Does not imply HID service availability or infer Duo from hinge/multiple-display support.
13
+ * @param udid - Target simulator identifier.
14
+ * @returns Whether the device type is iPhone Duo; false if its type is no longer installed.
15
+ */
16
+ export declare function isDuo(this: NativeSimctl, udid: string): Promise<boolean>;
17
+ /**
18
+ * Requests a simulated fold through the target simulator's CoreDevice HID service.
19
+ *
20
+ * Requires an iPhone Duo device type and a hinge-capable runtime. Runs in the Mac process using private XPC transport
21
+ * symbols; missing symbols or services produce an error. No guest helper or WDA entitlement
22
+ * is required. Completion confirms submission only: check hinge readings and wait for the
23
+ * expected application layout separately.
24
+ *
25
+ * @param udid - Target simulator identifier.
26
+ * @param angle - Finite hinge angle from 0 (closed) to 180 (fully open), inclusive.
27
+ */
28
+ export declare function setSimulatedHingeAngle(this: NativeSimctl, udid: string, angle: number): Promise<void>;
29
+ /**
30
+ * Sends Duo's vendor orientation control for the selected display through CoreDevice HID.
31
+ * The ordinary `setOrientation` API is unchanged.
32
+ *
33
+ * Runs in the Mac process using private XPC transport symbols; missing symbols or services
34
+ * produce an error. No guest helper or WDA entitlement is required.
35
+ * Completion confirms submission only; verify the app scene separately. This does not update
36
+ * XCTest's cached device orientation, which may remain unknown or retain an earlier value.
37
+ *
38
+ * @param udid - Target simulator identifier.
39
+ * @param orientation - CoreSimulator DeviceOrientation value; landscape numbering differs from UIDeviceOrientation.
40
+ * @param isMainDisplay - Whether the selected panel is the main display; controls the inner-panel orientation mapping.
41
+ */
42
+ export declare function setHidOrientation(this: NativeSimctl, udid: string, orientation: DeviceOrientation, isMainDisplay: boolean): Promise<void>;
43
+ //# sourceMappingURL=duo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duo.d.ts","sourceRoot":"","sources":["../../../src/commands/duo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAGnD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxG;CACF;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,41 @@
1
+ import { runCatchingAsync } from '../utils/index.js';
2
+ /**
3
+ * Identifies iPhone Duo by its CoreSimulator device type, without booting or sending events.
4
+ * Does not imply HID service availability or infer Duo from hinge/multiple-display support.
5
+ * @param udid - Target simulator identifier.
6
+ * @returns Whether the device type is iPhone Duo; false if its type is no longer installed.
7
+ */
8
+ export async function isDuo(udid) {
9
+ return runCatchingAsync(async () => (await this._findDevice(udid)).isDuo());
10
+ }
11
+ /**
12
+ * Requests a simulated fold through the target simulator's CoreDevice HID service.
13
+ *
14
+ * Requires an iPhone Duo device type and a hinge-capable runtime. Runs in the Mac process using private XPC transport
15
+ * symbols; missing symbols or services produce an error. No guest helper or WDA entitlement
16
+ * is required. Completion confirms submission only: check hinge readings and wait for the
17
+ * expected application layout separately.
18
+ *
19
+ * @param udid - Target simulator identifier.
20
+ * @param angle - Finite hinge angle from 0 (closed) to 180 (fully open), inclusive.
21
+ */
22
+ export async function setSimulatedHingeAngle(udid, angle) {
23
+ return runCatchingAsync(async () => (await this._findDevice(udid)).setSimulatedHingeAngle(angle));
24
+ }
25
+ /**
26
+ * Sends Duo's vendor orientation control for the selected display through CoreDevice HID.
27
+ * The ordinary `setOrientation` API is unchanged.
28
+ *
29
+ * Runs in the Mac process using private XPC transport symbols; missing symbols or services
30
+ * produce an error. No guest helper or WDA entitlement is required.
31
+ * Completion confirms submission only; verify the app scene separately. This does not update
32
+ * XCTest's cached device orientation, which may remain unknown or retain an earlier value.
33
+ *
34
+ * @param udid - Target simulator identifier.
35
+ * @param orientation - CoreSimulator DeviceOrientation value; landscape numbering differs from UIDeviceOrientation.
36
+ * @param isMainDisplay - Whether the selected panel is the main display; controls the inner-panel orientation mapping.
37
+ */
38
+ export async function setHidOrientation(udid, orientation, isMainDisplay) {
39
+ return runCatchingAsync(async () => (await this._findDevice(udid)).setHidOrientation(orientation, isMainDisplay));
40
+ }
41
+ //# sourceMappingURL=duo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duo.js","sourceRoot":"","sources":["../../../src/commands/duo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAUnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAqB,IAAY;IAC1D,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAqB,IAAY,EAAE,KAAa;IAC1F,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAErC,IAAY,EACZ,WAA8B,EAC9B,aAAsB;IAEtB,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AACpH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { NativeSimctl } from '../native-simctl.js';
2
+ declare module '../native-simctl.js' {
3
+ interface NativeSimctl {
4
+ pressHidButton(udid: string, page: number, usage: number, duration?: number): Promise<void>;
5
+ }
6
+ }
7
+ /**
8
+ * Sends a paired button press/release through the target simulator's CoreDevice HID service.
9
+ *
10
+ * Runs in the Mac process using private XPC transport symbols; missing symbols or services
11
+ * produce an error. No guest helper or WDA entitlement is required.
12
+ * Completion confirms submission only. Check the resulting lock or application state separately.
13
+ *
14
+ * @param udid - Target simulator identifier.
15
+ * @param page - Unsigned 16-bit HID usage page (`kHIDPage_*` in the linked Apple header).
16
+ * @param usage - Unsigned 16-bit HID usage within the page (`kHIDUsage_*` in the linked Apple header).
17
+ * @param duration - Hold time in seconds, from 0 to 60 inclusive. Defaults to 0.1.
18
+ * @see https://github.com/apple-oss-distributions/IOHIDFamily/blob/main/IOHIDFamily/IOHIDUsageTables.h
19
+ */
20
+ export declare function pressHidButton(this: NativeSimctl, udid: string, page: number, usage: number, duration?: number): Promise<void>;
21
+ //# sourceMappingURL=hid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.d.ts","sourceRoot":"","sources":["../../../src/commands/hid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAGtD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7F;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,SAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,18 @@
1
+ import { runCatchingAsync } from '../utils/index.js';
2
+ /**
3
+ * Sends a paired button press/release through the target simulator's CoreDevice HID service.
4
+ *
5
+ * Runs in the Mac process using private XPC transport symbols; missing symbols or services
6
+ * produce an error. No guest helper or WDA entitlement is required.
7
+ * Completion confirms submission only. Check the resulting lock or application state separately.
8
+ *
9
+ * @param udid - Target simulator identifier.
10
+ * @param page - Unsigned 16-bit HID usage page (`kHIDPage_*` in the linked Apple header).
11
+ * @param usage - Unsigned 16-bit HID usage within the page (`kHIDUsage_*` in the linked Apple header).
12
+ * @param duration - Hold time in seconds, from 0 to 60 inclusive. Defaults to 0.1.
13
+ * @see https://github.com/apple-oss-distributions/IOHIDFamily/blob/main/IOHIDFamily/IOHIDUsageTables.h
14
+ */
15
+ export async function pressHidButton(udid, page, usage, duration = 0.1) {
16
+ return runCatchingAsync(async () => (await this._findDevice(udid)).pressHidButton(page, usage, duration));
17
+ }
18
+ //# sourceMappingURL=hid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hid.js","sourceRoot":"","sources":["../../../src/commands/hid.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAQnD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAElC,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,QAAQ,GAAG,GAAG;IAEd,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { NativeSimctl } from '../native-simctl.js';
3
+ import type { JpegFrame, JpegStreamOptions } from '../types.js';
4
+ declare module '../native-simctl.js' {
5
+ interface NativeSimctl {
6
+ startJpegStream(udid: string, options?: JpegStreamOptions): Promise<JpegStream>;
7
+ }
8
+ }
9
+ /**
10
+ * A live JPEG frame stream from `NativeSimctl.startJpegStream` — polls the device's display and
11
+ * delivers each changed frame as a standalone JPEG image, at a configurable fps/quality. Unlike
12
+ * `startVideoStream`, this produces no video codec bitstream — it's meant for callers that want to
13
+ * build their own MJPEG (`multipart/x-mixed-replace`) HTTP stream, or otherwise just want a plain
14
+ * sequence of images, out of `frames()` themselves.
15
+ */
16
+ export declare class JpegStream extends EventEmitter {
17
+ private handle;
18
+ private readonly stopController;
19
+ private stopPromise;
20
+ private readonly queue;
21
+ private activeConsumers;
22
+ /**
23
+ * Yields each JPEG frame as it's produced, until {@link stop} is called or the stream errors (in
24
+ * which case the error is thrown out of the loop). Pass `signal` to stop iterating without
25
+ * treating that as an error.
26
+ *
27
+ * Only one active consumer is supported at a time — a second concurrent call rejects rather than
28
+ * silently sharing (and corrupting) the first one's single internal waiter slot.
29
+ */
30
+ frames(signal?: AbortSignal): AsyncGenerator<JpegFrame>;
31
+ /** Stops the stream and releases the underlying encoder. Idempotent, including concurrently. */
32
+ stop(): Promise<void>;
33
+ }
34
+ /**
35
+ * Starts polling the device's display and JPEG-encoding each changed frame in real time. Resolves
36
+ * once the encoder has actually started; the returned {@link JpegStream}'s `frames()` then yields
37
+ * each frame as it arrives. Independent of `startVideoStream`/`startVideoRecording` — any number of
38
+ * concurrent streams/recordings can run on the same device at once.
39
+ *
40
+ * Display selection follows {@link validateDisplayId} and {@link resolveDisplayPortId}.
41
+ *
42
+ * @param udid — UDID of the device to stream; must be booted
43
+ * @param options — `displayId`, `fps`, `quality`, `scale` — see {@link JpegStreamOptions}
44
+ */
45
+ export declare function startJpegStream(this: NativeSimctl, udid: string, options?: JpegStreamOptions): Promise<JpegStream>;
46
+ //# sourceMappingURL=jpeg-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jpeg-stream.d.ts","sourceRoot":"","sources":["../../../src/commands/jpeg-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAyB,MAAM,aAAa,CAAC;AAGtF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;KACjF;CACF;AAuGD;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,eAAe,CAAK;IA4B5B;;;;;;;OAOG;IACI,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC;IAmB9D,gGAAgG;IAC1F,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC,CA4BrB"}
@@ -0,0 +1,202 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { logger } from '@appium/support';
3
+ import { resolveDisplayPortId, runCatchingAsync, toTypedError, validateDisplayId } from '../utils/index.js';
4
+ const log = logger.getLogger('CoreSim');
5
+ // Matches the native side's own ThreadSafeFunction queue bound (see coresim.mm's kFrameQueueSize).
6
+ const MAX_BUFFERED_FRAMES = 60;
7
+ const SINGLE_CONSUMER_ERROR = 'JpegStream.frames() supports only one active consumer at a time — a second concurrent call rejects.';
8
+ /**
9
+ * Single-consumer FIFO between native's per-frame callback and `frames()`. Simpler than
10
+ * `AccessUnitQueue` (video-stream.ts): every JPEG frame is independently decodable, so there's no
11
+ * reference chain to protect — overflow just drops the oldest buffered frame(s), keeping delivery
12
+ * as close to real time as possible instead of falling further behind.
13
+ */
14
+ class JpegFrameQueue {
15
+ buffer = [];
16
+ waiter;
17
+ ended = false;
18
+ error;
19
+ push(frame) {
20
+ if (this.ended) {
21
+ return;
22
+ }
23
+ if (this.waiter) {
24
+ const { resolve } = this.waiter;
25
+ this.waiter = undefined;
26
+ resolve({ value: frame, done: false });
27
+ return;
28
+ }
29
+ this.buffer.push(frame);
30
+ if (this.buffer.length > MAX_BUFFERED_FRAMES) {
31
+ this.buffer.shift();
32
+ }
33
+ }
34
+ /** Ends the queue with an error — any pending or future `next()` rejects with it. */
35
+ fail(err) {
36
+ if (this.ended) {
37
+ return;
38
+ }
39
+ this.ended = true;
40
+ this.error = err;
41
+ this.buffer.length = 0;
42
+ if (this.waiter) {
43
+ const { reject } = this.waiter;
44
+ this.waiter = undefined;
45
+ reject(err);
46
+ }
47
+ }
48
+ /** Ends the queue cleanly — any pending or future `next()` resolves `done`. */
49
+ end() {
50
+ if (this.ended) {
51
+ return;
52
+ }
53
+ this.ended = true;
54
+ this.buffer.length = 0;
55
+ if (this.waiter) {
56
+ const { resolve } = this.waiter;
57
+ this.waiter = undefined;
58
+ resolve({ value: undefined, done: true });
59
+ }
60
+ }
61
+ /**
62
+ * Resolves `done` (not rejects) if `signal` aborts while waiting, mirroring `events.on()`.
63
+ * Checks cancellation/end *before* dequeuing, so an already-aborted signal or an already-ended
64
+ * queue never hands out a stale buffered frame.
65
+ */
66
+ next(signal) {
67
+ if (signal.aborted) {
68
+ return Promise.resolve({ value: undefined, done: true });
69
+ }
70
+ if (this.ended) {
71
+ return this.error ? Promise.reject(this.error) : Promise.resolve({ value: undefined, done: true });
72
+ }
73
+ const buffered = this.buffer.shift();
74
+ if (buffered !== undefined) {
75
+ return Promise.resolve({ value: buffered, done: false });
76
+ }
77
+ return new Promise((resolve, reject) => {
78
+ const onAbort = () => {
79
+ this.waiter = undefined;
80
+ resolve({ value: undefined, done: true });
81
+ };
82
+ signal.addEventListener('abort', onAbort, { once: true });
83
+ this.waiter = {
84
+ resolve: (result) => {
85
+ signal.removeEventListener('abort', onAbort);
86
+ resolve(result);
87
+ },
88
+ reject: (err) => {
89
+ signal.removeEventListener('abort', onAbort);
90
+ reject(err);
91
+ },
92
+ };
93
+ });
94
+ }
95
+ }
96
+ /**
97
+ * A live JPEG frame stream from `NativeSimctl.startJpegStream` — polls the device's display and
98
+ * delivers each changed frame as a standalone JPEG image, at a configurable fps/quality. Unlike
99
+ * `startVideoStream`, this produces no video codec bitstream — it's meant for callers that want to
100
+ * build their own MJPEG (`multipart/x-mixed-replace`) HTTP stream, or otherwise just want a plain
101
+ * sequence of images, out of `frames()` themselves.
102
+ */
103
+ export class JpegStream extends EventEmitter {
104
+ handle;
105
+ stopController = new AbortController();
106
+ stopPromise;
107
+ queue = new JpegFrameQueue();
108
+ activeConsumers = 0;
109
+ /** @internal */
110
+ _handleFrame(frame) {
111
+ this.queue.push(frame);
112
+ }
113
+ /**
114
+ * @internal
115
+ * An active `frames()` consumer receives the error via the queue itself (thrown out of its
116
+ * `for await` loop, per that method's contract) rather than the `'error'` event, so `emit` is
117
+ * only used for an explicit external listener; with neither, it's logged instead of lost.
118
+ */
119
+ _handleError(err) {
120
+ const error = toTypedError(err);
121
+ this.queue.fail(error);
122
+ if (this.listenerCount('error') > 0) {
123
+ this.emit('error', error);
124
+ }
125
+ else if (this.activeConsumers === 0) {
126
+ log.error(`Unhandled JpegStream error: ${error.stack ?? error}`);
127
+ }
128
+ }
129
+ /** @internal */
130
+ _attachHandle(handle) {
131
+ this.handle = handle;
132
+ }
133
+ /**
134
+ * Yields each JPEG frame as it's produced, until {@link stop} is called or the stream errors (in
135
+ * which case the error is thrown out of the loop). Pass `signal` to stop iterating without
136
+ * treating that as an error.
137
+ *
138
+ * Only one active consumer is supported at a time — a second concurrent call rejects rather than
139
+ * silently sharing (and corrupting) the first one's single internal waiter slot.
140
+ */
141
+ async *frames(signal) {
142
+ if (this.activeConsumers > 0) {
143
+ throw new Error(SINGLE_CONSUMER_ERROR);
144
+ }
145
+ const combined = signal ? AbortSignal.any([signal, this.stopController.signal]) : this.stopController.signal;
146
+ this.activeConsumers++;
147
+ try {
148
+ for (;;) {
149
+ const result = await this.queue.next(combined);
150
+ if (result.done) {
151
+ return;
152
+ }
153
+ yield result.value;
154
+ }
155
+ }
156
+ finally {
157
+ this.activeConsumers--;
158
+ }
159
+ }
160
+ /** Stops the stream and releases the underlying encoder. Idempotent, including concurrently. */
161
+ async stop() {
162
+ this.stopPromise ??= (async () => {
163
+ this.stopController.abort();
164
+ this.queue.end();
165
+ await this.handle?.stop();
166
+ })();
167
+ return this.stopPromise;
168
+ }
169
+ }
170
+ /**
171
+ * Starts polling the device's display and JPEG-encoding each changed frame in real time. Resolves
172
+ * once the encoder has actually started; the returned {@link JpegStream}'s `frames()` then yields
173
+ * each frame as it arrives. Independent of `startVideoStream`/`startVideoRecording` — any number of
174
+ * concurrent streams/recordings can run on the same device at once.
175
+ *
176
+ * Display selection follows {@link validateDisplayId} and {@link resolveDisplayPortId}.
177
+ *
178
+ * @param udid — UDID of the device to stream; must be booted
179
+ * @param options — `displayId`, `fps`, `quality`, `scale` — see {@link JpegStreamOptions}
180
+ */
181
+ export async function startJpegStream(udid, options = {}) {
182
+ // The native poller clamps below 1 fps to 1 fps rather than actually polling that slowly, so a
183
+ // sub-1 value here would silently poll far more often than requested — rejected instead.
184
+ if (options.fps !== undefined && (!Number.isFinite(options.fps) || options.fps < 1)) {
185
+ throw new RangeError(`fps must be a finite number >= 1, got ${options.fps}`);
186
+ }
187
+ if (options.quality !== undefined &&
188
+ (!Number.isFinite(options.quality) || options.quality < 0 || options.quality > 100)) {
189
+ throw new RangeError(`quality must be a number between 0 and 100, got ${options.quality}`);
190
+ }
191
+ if (options.scale !== undefined && (!Number.isFinite(options.scale) || options.scale <= 0 || options.scale > 100)) {
192
+ throw new RangeError(`scale must be a number greater than 0 and no greater than 100, got ${options.scale}`);
193
+ }
194
+ validateDisplayId(options.displayId);
195
+ const device = await runCatchingAsync(() => this._findDevice(udid));
196
+ const displayId = await runCatchingAsync(() => resolveDisplayPortId(device, options.displayId));
197
+ const stream = new JpegStream();
198
+ const handle = await runCatchingAsync(() => device.startJpegStream({ ...options, displayId }, (frame) => stream._handleFrame(frame), (err) => stream._handleError(err)));
199
+ stream._attachHandle(handle);
200
+ return stream;
201
+ }
202
+ //# sourceMappingURL=jpeg-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jpeg-stream.js","sourceRoot":"","sources":["../../../src/commands/jpeg-stream.ts"],"names":[],"mappings":"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"}