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.
- package/CHANGELOG.md +6 -0
- package/build/lib/desired-caps.d.ts +9 -0
- package/build/lib/desired-caps.d.ts.map +1 -1
- package/build/lib/desired-caps.js +9 -0
- package/build/lib/desired-caps.js.map +1 -1
- package/lib/desired-caps.ts +9 -0
- package/node_modules/@appium/coresim/CHANGELOG.md +88 -0
- package/node_modules/@appium/coresim/README.md +11 -3
- package/node_modules/@appium/coresim/binding.gyp +5 -4
- package/node_modules/@appium/coresim/lib/src/commands/duo.d.ts +43 -0
- package/node_modules/@appium/coresim/lib/src/commands/duo.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/duo.js +41 -0
- package/node_modules/@appium/coresim/lib/src/commands/duo.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/hid.d.ts +21 -0
- package/node_modules/@appium/coresim/lib/src/commands/hid.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/hid.js +18 -0
- package/node_modules/@appium/coresim/lib/src/commands/hid.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.d.ts +46 -0
- package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.js +202 -0
- package/node_modules/@appium/coresim/lib/src/commands/jpeg-stream.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/commands/lifecycle.d.ts +8 -0
- package/node_modules/@appium/coresim/lib/src/commands/lifecycle.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/lifecycle.js +9 -0
- package/node_modules/@appium/coresim/lib/src/commands/lifecycle.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/permissions.d.ts +15 -7
- package/node_modules/@appium/coresim/lib/src/commands/permissions.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/permissions.js +66 -6
- package/node_modules/@appium/coresim/lib/src/commands/permissions.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/screenshot.d.ts +3 -3
- package/node_modules/@appium/coresim/lib/src/commands/screenshot.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/screenshot.js +10 -5
- package/node_modules/@appium/coresim/lib/src/commands/screenshot.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/ui.d.ts +21 -0
- package/node_modules/@appium/coresim/lib/src/commands/ui.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/ui.js +22 -0
- package/node_modules/@appium/coresim/lib/src/commands/ui.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/video-recording.d.ts +2 -0
- package/node_modules/@appium/coresim/lib/src/commands/video-recording.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/video-recording.js +13 -6
- package/node_modules/@appium/coresim/lib/src/commands/video-recording.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/video-stream.d.ts +2 -0
- package/node_modules/@appium/coresim/lib/src/commands/video-stream.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/commands/video-stream.js +6 -2
- package/node_modules/@appium/coresim/lib/src/commands/video-stream.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/index.d.ts +3 -2
- package/node_modules/@appium/coresim/lib/src/index.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/index.js +2 -1
- package/node_modules/@appium/coresim/lib/src/index.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/native-simctl.d.ts +32 -9
- package/node_modules/@appium/coresim/lib/src/native-simctl.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/native-simctl.js +26 -18
- package/node_modules/@appium/coresim/lib/src/native-simctl.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/types.d.ts +88 -27
- package/node_modules/@appium/coresim/lib/src/types.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/types.js +8 -0
- package/node_modules/@appium/coresim/lib/src/types.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.d.ts +10 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.js +73 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v2.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.d.ts +4 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.js +16 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model-v3.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.d.ts +19 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.js +2 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-model.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.d.ts +41 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.js +114 -0
- package/node_modules/@appium/coresim/lib/src/utils/bulletin-board-store.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/display.d.ts +24 -0
- package/node_modules/@appium/coresim/lib/src/utils/display.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/display.js +55 -0
- package/node_modules/@appium/coresim/lib/src/utils/display.js.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/index.d.ts +4 -0
- package/node_modules/@appium/coresim/lib/src/utils/index.d.ts.map +1 -1
- package/node_modules/@appium/coresim/lib/src/utils/index.js +3 -0
- package/node_modules/@appium/coresim/lib/src/utils/index.js.map +1 -1
- package/node_modules/@appium/coresim/lib/src/utils/springboard.d.ts +26 -0
- package/node_modules/@appium/coresim/lib/src/utils/springboard.d.ts.map +1 -0
- package/node_modules/@appium/coresim/lib/src/utils/springboard.js +106 -0
- package/node_modules/@appium/coresim/lib/src/utils/springboard.js.map +1 -0
- package/node_modules/@appium/coresim/package.json +9 -16
- package/node_modules/@appium/coresim/prebuilds/darwin-arm64/@appium+coresim.node +0 -0
- package/node_modules/@appium/coresim/src/commands/duo.ts +58 -0
- package/node_modules/@appium/coresim/src/commands/hid.ts +31 -0
- package/node_modules/@appium/coresim/src/commands/jpeg-stream.ts +237 -0
- package/node_modules/@appium/coresim/src/commands/lifecycle.ts +11 -0
- package/node_modules/@appium/coresim/src/commands/permissions.ts +75 -11
- package/node_modules/@appium/coresim/src/commands/screenshot.ts +10 -5
- package/node_modules/@appium/coresim/src/commands/ui.ts +27 -0
- package/node_modules/@appium/coresim/src/commands/video-recording.ts +10 -5
- package/node_modules/@appium/coresim/src/commands/video-stream.ts +6 -2
- package/node_modules/@appium/coresim/src/coresim.mm +266 -6
- package/node_modules/@appium/coresim/src/index.ts +7 -1
- package/node_modules/@appium/coresim/src/native/audio_encoder.mm +1 -1
- package/node_modules/@appium/coresim/src/native/av_recording.h +1 -1
- package/node_modules/@appium/coresim/src/native/av_recording.mm +76 -27
- package/node_modules/@appium/coresim/src/native/sim_audio_tap.mm +3 -3
- package/node_modules/@appium/coresim/src/native/sim_device.h +14 -0
- package/node_modules/@appium/coresim/src/native/sim_device.mm +63 -0
- package/node_modules/@appium/coresim/src/native/sim_duo.h +9 -0
- package/node_modules/@appium/coresim/src/native/sim_duo.mm +65 -0
- package/node_modules/@appium/coresim/src/native/sim_hid.h +8 -0
- package/node_modules/@appium/coresim/src/native/sim_hid.mm +116 -0
- package/node_modules/@appium/coresim/src/native/sim_jpeg_stream.h +69 -0
- package/node_modules/@appium/coresim/src/native/sim_jpeg_stream.mm +322 -0
- package/node_modules/@appium/coresim/src/native/sim_orientation.h +16 -0
- package/node_modules/@appium/coresim/src/native/sim_orientation.mm +58 -0
- package/node_modules/@appium/coresim/src/native/sim_pasteboard.mm +3 -3
- package/node_modules/@appium/coresim/src/native/sim_process.mm +1 -1
- package/node_modules/@appium/coresim/src/native/sim_screenshot.h +25 -7
- package/node_modules/@appium/coresim/src/native/sim_screenshot.mm +71 -30
- package/node_modules/@appium/coresim/src/native/sim_video_recording.mm +2 -43
- package/node_modules/@appium/coresim/src/native/tcc_privacy.mm +1 -1
- package/node_modules/@appium/coresim/src/native/video_encoder.h +9 -2
- package/node_modules/@appium/coresim/src/native/video_encoder.mm +241 -21
- package/node_modules/@appium/coresim/src/native-simctl.ts +65 -19
- package/node_modules/@appium/coresim/src/types.ts +95 -26
- package/node_modules/@appium/coresim/src/utils/bulletin-board-model-v2.ts +79 -0
- package/node_modules/@appium/coresim/src/utils/bulletin-board-model-v3.ts +16 -0
- package/node_modules/@appium/coresim/src/utils/bulletin-board-model.ts +20 -0
- package/node_modules/@appium/coresim/src/utils/bulletin-board-store.ts +126 -0
- package/node_modules/@appium/coresim/src/utils/display.ts +67 -0
- package/node_modules/@appium/coresim/src/utils/index.ts +4 -0
- package/node_modules/@appium/coresim/src/utils/springboard.ts +119 -0
- package/node_modules/@appium/logger/CHANGELOG.md +8 -0
- package/node_modules/@appium/logger/package.json +3 -3
- package/node_modules/@appium/support/build/lib/fs.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/fs.js +7 -0
- package/node_modules/@appium/support/build/lib/fs.js.map +1 -1
- package/node_modules/@appium/support/build/lib/index.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/net.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/net.js +6 -2
- package/node_modules/@appium/support/build/lib/net.js.map +1 -1
- package/node_modules/@appium/support/build/lib/npm.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/npm.js +2 -1
- package/node_modules/@appium/support/build/lib/npm.js.map +1 -1
- package/node_modules/@appium/support/build/lib/util.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/util.js +23 -5
- package/node_modules/@appium/support/build/lib/util.js.map +1 -1
- package/node_modules/@appium/support/build/lib/zip.d.ts +2 -1
- package/node_modules/@appium/support/build/lib/zip.d.ts.map +1 -1
- package/node_modules/@appium/support/build/lib/zip.js +195 -71
- package/node_modules/@appium/support/build/lib/zip.js.map +1 -1
- package/node_modules/@appium/support/lib/fs.ts +8 -1
- package/node_modules/@appium/support/lib/net.ts +7 -2
- package/node_modules/@appium/support/lib/npm.ts +2 -1
- package/node_modules/@appium/support/lib/util.ts +22 -4
- package/node_modules/@appium/support/lib/zip.ts +234 -80
- package/node_modules/@appium/support/package.json +11 -11
- package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts +6 -4
- package/node_modules/@appium/types/build/lib/commands/basedriver.d.ts.map +1 -1
- package/node_modules/@appium/types/lib/commands/basedriver.ts +4 -4
- package/node_modules/@appium/types/package.json +4 -4
- package/node_modules/@img/sharp-darwin-arm64/index.cjs +1 -1
- package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.5.node +0 -0
- package/node_modules/@img/sharp-darwin-arm64/package.json +2 -2
- package/node_modules/@img/sharp-libvips-darwin-arm64/README.md +1 -1
- package/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +2 -2
- package/node_modules/@img/sharp-libvips-darwin-arm64/lib/{libvips-cpp.8.18.6.dylib → libvips-cpp.8.18.7.dylib} +0 -0
- package/node_modules/@img/sharp-libvips-darwin-arm64/package.json +2 -2
- package/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +11 -11
- package/node_modules/asyncbox/README.md +43 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js +35 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncfilter.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.js +23 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncmap.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.d.ts +9 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.js +20 -0
- package/node_modules/asyncbox/build/cjs/lib/errors.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/index.d.ts +12 -0
- package/node_modules/asyncbox/build/cjs/lib/index.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/index.js +24 -0
- package/node_modules/asyncbox/build/cjs/lib/index.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts +3 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.js +15 -0
- package/node_modules/asyncbox/build/cjs/lib/limit-function.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.d.ts +74 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.js +295 -0
- package/node_modules/asyncbox/build/cjs/lib/lock.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts +15 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.js +36 -0
- package/node_modules/asyncbox/build/cjs/lib/long-sleep.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.d.ts +17 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.js +57 -0
- package/node_modules/asyncbox/build/cjs/lib/retry.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts +20 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.js +61 -0
- package/node_modules/asyncbox/build/cjs/lib/sleep.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts +18 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js +51 -0
- package/node_modules/asyncbox/build/cjs/lib/wait-for-condition.js.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts +16 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.d.ts.map +1 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.js +45 -0
- package/node_modules/asyncbox/build/cjs/lib/with-timeout.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.js +32 -0
- package/node_modules/asyncbox/build/esm/lib/asyncfilter.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.js +20 -0
- package/node_modules/asyncbox/build/esm/lib/asyncmap.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/errors.d.ts +9 -0
- package/node_modules/asyncbox/build/esm/lib/errors.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/errors.js +15 -0
- package/node_modules/asyncbox/build/esm/lib/errors.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/index.d.ts +12 -0
- package/node_modules/asyncbox/build/esm/lib/index.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/index.js +10 -0
- package/node_modules/asyncbox/build/esm/lib/index.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts +3 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.js +12 -0
- package/node_modules/asyncbox/build/esm/lib/limit-function.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/lock.d.ts +74 -0
- package/node_modules/asyncbox/build/esm/lib/lock.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/lock.js +291 -0
- package/node_modules/asyncbox/build/esm/lib/lock.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts +15 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.js +33 -0
- package/node_modules/asyncbox/build/esm/lib/long-sleep.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/retry.d.ts +17 -0
- package/node_modules/asyncbox/build/esm/lib/retry.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/retry.js +53 -0
- package/node_modules/asyncbox/build/esm/lib/retry.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.d.ts +20 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.js +58 -0
- package/node_modules/asyncbox/build/esm/lib/sleep.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts +18 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js +48 -0
- package/node_modules/asyncbox/build/esm/lib/wait-for-condition.js.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts +16 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.d.ts.map +1 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.js +42 -0
- package/node_modules/asyncbox/build/esm/lib/with-timeout.js.map +1 -0
- package/node_modules/asyncbox/lib/asyncfilter.ts +38 -0
- package/node_modules/asyncbox/lib/asyncmap.ts +29 -0
- package/node_modules/asyncbox/lib/errors.ts +15 -0
- package/node_modules/asyncbox/lib/index.ts +21 -0
- package/node_modules/asyncbox/lib/limit-function.ts +18 -0
- package/node_modules/asyncbox/lib/lock.ts +360 -0
- package/node_modules/asyncbox/lib/long-sleep.ts +38 -0
- package/node_modules/asyncbox/lib/retry.ts +61 -0
- package/node_modules/asyncbox/lib/sleep.ts +79 -0
- package/node_modules/asyncbox/lib/wait-for-condition.ts +52 -0
- package/node_modules/asyncbox/lib/with-timeout.ts +43 -0
- package/node_modules/asyncbox/package.json +8 -8
- package/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/axios/README.md +233 -5
- package/node_modules/axios/dist/axios.js +387 -89
- package/node_modules/axios/dist/axios.min.js +3 -3
- package/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/axios/dist/browser/axios.cjs +458 -98
- package/node_modules/axios/dist/esm/axios.js +458 -98
- package/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/axios/dist/node/axios.cjs +568 -116
- package/node_modules/axios/index.d.cts +4 -0
- package/node_modules/axios/index.d.ts +4 -0
- package/node_modules/axios/lib/adapters/fetch.js +64 -11
- package/node_modules/axios/lib/adapters/http.js +134 -50
- package/node_modules/axios/lib/adapters/xhr.js +52 -3
- package/node_modules/axios/lib/core/Axios.js +19 -14
- package/node_modules/axios/lib/core/InterceptorManager.js +107 -8
- package/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/axios/lib/core/dispatchRequest.js +8 -2
- package/node_modules/axios/lib/core/mergeConfig.js +1 -1
- package/node_modules/axios/lib/core/methodList.js +17 -0
- package/node_modules/axios/lib/defaults/index.js +2 -1
- package/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
- package/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
- package/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
- package/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
- package/node_modules/axios/lib/helpers/throttle.js +3 -2
- package/node_modules/axios/lib/helpers/toFormData.js +14 -21
- package/node_modules/axios/lib/utils.js +134 -13
- package/node_modules/axios/package.json +1 -1
- package/node_modules/bare-fs/binding.c +52 -23
- package/node_modules/bare-fs/index.d.ts +12 -10
- package/node_modules/bare-fs/index.js +43 -10
- package/node_modules/bare-fs/package.json +2 -1
- package/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/android-ia32/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/android-x64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/win32-arm64/bare-fs.bare +0 -0
- package/node_modules/bare-fs/prebuilds/win32-x64/bare-fs.bare +0 -0
- package/node_modules/bare-url/README.md +4 -0
- package/node_modules/bare-url/index.d.ts +3 -0
- package/node_modules/bare-url/index.js +42 -18
- package/node_modules/bare-url/lib/errors.js +4 -0
- package/node_modules/bare-url/package.json +1 -1
- package/node_modules/bare-url/prebuilds/android-arm/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/android-arm64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/android-ia32/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/android-x64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/darwin-arm64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/linux-x64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare +0 -0
- package/node_modules/bare-url/prebuilds/win32-x64/bare-url.bare +0 -0
- package/node_modules/bplist-creator/README.md +26 -6
- package/node_modules/bplist-creator/dist/index.cjs +508 -0
- package/node_modules/bplist-creator/dist/index.cjs.map +7 -0
- package/node_modules/bplist-creator/dist/index.d.cts +12 -0
- package/node_modules/bplist-creator/dist/index.d.ts +12 -0
- package/node_modules/bplist-creator/dist/index.mjs +472 -0
- package/node_modules/bplist-creator/dist/index.mjs.map +7 -0
- package/node_modules/bplist-creator/package.json +43 -9
- package/node_modules/bplist-parser/README.md +37 -3
- package/node_modules/bplist-parser/dist/index.cjs +385 -0
- package/node_modules/bplist-parser/dist/index.cjs.map +7 -0
- package/node_modules/bplist-parser/dist/index.d.cts +13 -0
- package/node_modules/bplist-parser/dist/index.d.ts +13 -0
- package/node_modules/bplist-parser/{bplistParser.js → dist/index.mjs} +141 -171
- package/node_modules/bplist-parser/dist/index.mjs.map +7 -0
- package/node_modules/bplist-parser/package.json +39 -12
- package/node_modules/follow-redirects/README.md +27 -1
- package/node_modules/follow-redirects/index.js +11 -6
- package/node_modules/follow-redirects/package.json +1 -1
- package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.js.map +1 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.d.ts +5 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.js +7 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts +1400 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/index.js +1733 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/index.js.map +1 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts +12 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/perf.js +10 -0
- package/node_modules/lru-cache/dist/commonjs/react-native/perf.js.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.js.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.d.ts +5 -0
- package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.js +4 -0
- package/node_modules/lru-cache/dist/esm/react-native/index.d.ts +1400 -0
- package/node_modules/lru-cache/dist/esm/react-native/index.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/index.js +1729 -0
- package/node_modules/lru-cache/dist/esm/react-native/index.js.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts +12 -0
- package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts.map +1 -0
- package/node_modules/lru-cache/dist/esm/react-native/perf.js +7 -0
- package/node_modules/lru-cache/dist/esm/react-native/perf.js.map +1 -0
- package/node_modules/lru-cache/package.json +27 -1
- package/node_modules/readable-stream/lib/internal/shims/process.js +19 -0
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/duplexify.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/from.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/legacy.js +6 -1
- package/node_modules/readable-stream/lib/internal/streams/pipeline.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/readable.js +1 -1
- package/node_modules/readable-stream/lib/internal/streams/writable.js +1 -1
- package/node_modules/readable-stream/package.json +3 -2
- package/node_modules/sharp/dist/index.d.cts +2 -2
- package/node_modules/sharp/dist/index.d.mts +3 -3
- package/node_modules/sharp/dist/is.cjs +8 -2
- package/node_modules/sharp/dist/is.mjs +8 -2
- package/node_modules/sharp/dist/operation.cjs +2 -2
- package/node_modules/sharp/dist/operation.mjs +2 -2
- package/node_modules/sharp/dist/output.cjs +1 -0
- package/node_modules/sharp/dist/output.mjs +1 -0
- package/node_modules/sharp/dist/resize.cjs +14 -14
- package/node_modules/sharp/dist/resize.mjs +14 -14
- package/node_modules/sharp/dist/sharp.cjs +3 -3
- package/node_modules/sharp/dist/sharp.mjs +3 -3
- package/node_modules/sharp/lib/index.d.ts +2 -2
- package/node_modules/sharp/package.json +35 -35
- package/node_modules/sharp/src/binding.gyp +1 -1
- package/node_modules/sharp/src/common.cc +4 -4
- package/node_modules/sharp/src/common.h +2 -2
- package/node_modules/sharp/src/pipeline.cc +31 -6
- package/node_modules/sharp/src/utilities.cc +1 -1
- package/node_modules/shell-quote/README.md +37 -4
- package/node_modules/shell-quote/package.json +10 -6
- package/node_modules/shell-quote/parse.d.ts +1 -1
- package/node_modules/shell-quote/parse.js +63 -11
- package/node_modules/shell-quote/quote.d.ts +2 -1
- package/node_modules/shell-quote/quote.js +23 -3
- package/node_modules/stream-buffers/.codeclimate.yml +12 -0
- package/node_modules/stream-buffers/.eslintignore +1 -0
- package/node_modules/stream-buffers/.eslintrc +25 -0
- package/node_modules/stream-buffers/.github/workflows/codeql-analysis.yml +71 -0
- package/node_modules/stream-buffers/.github/workflows/node.js.yml +31 -0
- package/node_modules/stream-buffers/.mailmap +1 -0
- package/node_modules/stream-buffers/.nvmrc +1 -0
- package/node_modules/stream-buffers/README.md +65 -65
- package/node_modules/stream-buffers/lib/constants.js +8 -6
- package/node_modules/stream-buffers/lib/readable_streambuffer.js +114 -136
- package/node_modules/stream-buffers/lib/streambuffer.js +5 -3
- package/node_modules/stream-buffers/lib/writable_streambuffer.js +72 -97
- package/node_modules/stream-buffers/package.json +7 -5
- package/node_modules/tar-stream/package.json +7 -7
- package/node_modules/type-fest/index.d.ts +7 -7
- package/node_modules/type-fest/package.json +2 -1
- package/node_modules/type-fest/readme.md +7 -16
- package/node_modules/type-fest/source/all-extend.d.ts +9 -7
- package/node_modules/type-fest/source/array-reverse.d.ts +13 -12
- package/node_modules/type-fest/source/array-tail.d.ts +3 -3
- package/node_modules/type-fest/source/delimiter-case.d.ts +1 -1
- package/node_modules/type-fest/source/get.d.ts +1 -1
- package/node_modules/type-fest/source/int-closed-range.d.ts +4 -1
- package/node_modules/type-fest/source/int-range.d.ts +56 -9
- package/node_modules/type-fest/source/internal/array.d.ts +14 -13
- package/node_modules/type-fest/source/internal/numeric.d.ts +0 -38
- package/node_modules/type-fest/source/internal/object.d.ts +30 -1
- package/node_modules/type-fest/source/is-boolean-literal.d.ts +39 -0
- package/node_modules/type-fest/source/is-literal.d.ts +43 -269
- package/node_modules/type-fest/source/is-numeric-literal.d.ts +50 -0
- package/node_modules/type-fest/source/is-string-literal.d.ts +72 -0
- package/node_modules/type-fest/source/is-symbol-literal.d.ts +39 -0
- package/node_modules/type-fest/source/is-tuple.d.ts +3 -3
- package/node_modules/type-fest/source/jsonify.d.ts +1 -5
- package/node_modules/type-fest/source/merge-deep.d.ts +3 -3
- package/node_modules/type-fest/source/remove-prefix.d.ts +1 -1
- package/node_modules/type-fest/source/remove-suffix.d.ts +1 -1
- package/node_modules/type-fest/source/rename-keys.d.ts +163 -0
- package/node_modules/type-fest/source/set-required.d.ts +10 -9
- package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +6 -4
- package/node_modules/type-fest/source/some-extend.d.ts +9 -7
- package/node_modules/type-fest/source/split-on-rest-element.d.ts +14 -13
- package/node_modules/type-fest/source/split.d.ts +22 -11
- package/node_modules/type-fest/source/string-repeat.d.ts +1 -1
- package/node_modules/type-fest/source/string-to-array.d.ts +1 -1
- package/node_modules/type-fest/source/tsconfig-json.d.ts +1 -1
- package/node_modules/type-fest/source/typed-array.d.ts +6 -0
- package/node_modules/type-fest/source/union-max.d.ts +56 -0
- package/node_modules/type-fest/source/writable.d.ts +2 -2
- package/node_modules/uuid/package.json +17 -17
- package/package.json +3 -3
- package/node_modules/@appium/support/node_modules/asyncbox/LICENSE +0 -203
- package/node_modules/@appium/support/node_modules/asyncbox/README.md +0 -215
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -301
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts +0 -84
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js +0 -3
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/package.json +0 -3
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -288
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts +0 -84
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js +0 -2
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js.map +0 -1
- package/node_modules/@appium/support/node_modules/asyncbox/build/esm/package.json +0 -3
- package/node_modules/@appium/support/node_modules/asyncbox/lib/asyncbox.ts +0 -365
- package/node_modules/@appium/support/node_modules/asyncbox/lib/types.ts +0 -88
- package/node_modules/@appium/support/node_modules/asyncbox/package.json +0 -74
- package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.4.node +0 -0
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -311
- package/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
- package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
- package/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
- package/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -298
- package/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
- package/node_modules/asyncbox/lib/asyncbox.ts +0 -382
- package/node_modules/big-integer/BigInteger.d.ts +0 -2393
- package/node_modules/big-integer/BigInteger.js +0 -1453
- package/node_modules/big-integer/BigInteger.min.js +0 -1
- package/node_modules/big-integer/LICENSE +0 -24
- package/node_modules/big-integer/README.md +0 -589
- package/node_modules/big-integer/bower.json +0 -29
- package/node_modules/big-integer/package.json +0 -48
- package/node_modules/big-integer/tsconfig.json +0 -24
- package/node_modules/bplist-creator/bplistCreator.d.ts +0 -8
- package/node_modules/bplist-creator/bplistCreator.js +0 -460
- package/node_modules/bplist-creator/test/airplay.bplist +0 -0
- package/node_modules/bplist-creator/test/binaryData.bplist +0 -0
- package/node_modules/bplist-creator/test/creatorTest.js +0 -211
- package/node_modules/bplist-creator/test/iTunes-small.bplist +0 -0
- package/node_modules/bplist-creator/test/integers.bplist +0 -0
- package/node_modules/bplist-creator/test/sample1.bplist +0 -0
- package/node_modules/bplist-creator/test/sample2.bplist +0 -0
- package/node_modules/bplist-creator/test/uid.bplist +0 -0
- package/node_modules/bplist-creator/test/utf16.bplist +0 -0
- package/node_modules/bplist-parser/.editorconfig +0 -12
- package/node_modules/bplist-parser/.eslintignore +0 -1
- package/node_modules/bplist-parser/.eslintrc.js +0 -296
- package/node_modules/bplist-parser/bplistParser.d.ts +0 -8
- package/node_modules/shell-quote/.nycrc +0 -14
- package/node_modules/shell-quote/eslint.config.mjs +0 -29
- package/node_modules/shell-quote/security.md +0 -11
- package/node_modules/shell-quote/test/comment.js +0 -16
- package/node_modules/shell-quote/test/env.js +0 -52
- package/node_modules/shell-quote/test/env_fn.js +0 -21
- package/node_modules/shell-quote/test/op.js +0 -102
- package/node_modules/shell-quote/test/parse.js +0 -149
- package/node_modules/shell-quote/test/quote.js +0 -145
- package/node_modules/shell-quote/test/set.js +0 -31
- package/node_modules/stream-buffers/.travis.yml +0 -28
- package/node_modules/stream-buffers/coverage/coverage.json +0 -1
- package/node_modules/stream-buffers/coverage/lcov-report/base.css +0 -182
- package/node_modules/stream-buffers/coverage/lcov-report/index.html +0 -73
- package/node_modules/stream-buffers/coverage/lcov-report/lib/constants.js.html +0 -63
- package/node_modules/stream-buffers/coverage/lcov-report/lib/index.html +0 -112
- package/node_modules/stream-buffers/coverage/lcov-report/lib/readable_streambuffer.js.html +0 -453
- package/node_modules/stream-buffers/coverage/lcov-report/lib/streambuffer.js.html +0 -54
- package/node_modules/stream-buffers/coverage/lcov-report/lib/writable_streambuffer.js.html +0 -336
- package/node_modules/stream-buffers/coverage/lcov-report/prettify.css +0 -1
- package/node_modules/stream-buffers/coverage/lcov-report/prettify.js +0 -1
- package/node_modules/stream-buffers/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/node_modules/stream-buffers/coverage/lcov-report/sorter.js +0 -156
- 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
|
|
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"}
|
package/lib/desired-caps.ts
CHANGED
|
@@ -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,
|
|
58
|
-
|
|
59
|
-
|
|
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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"}
|