claude-in-mobile 3.14.0 → 4.0.0-dev
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/README.md +61 -574
- package/dist/a11y/types.d.ts +1 -1
- package/dist/a11y/types.d.ts.map +1 -1
- package/dist/adapters/contracts.d.ts +66 -0
- package/dist/adapters/contracts.d.ts.map +1 -0
- package/dist/adapters/contracts.js +15 -0
- package/dist/adapters/contracts.js.map +1 -0
- package/dist/adapters/index.d.ts +0 -5
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -5
- package/dist/adapters/index.js.map +1 -1
- package/dist/autopilot/explorer.js +1 -1
- package/dist/autopilot/explorer.js.map +1 -1
- package/dist/autopilot/healer.d.ts +1 -1
- package/dist/autopilot/healer.d.ts.map +1 -1
- package/dist/autopilot/screen-fingerprint.d.ts +1 -1
- package/dist/autopilot/screen-fingerprint.d.ts.map +1 -1
- package/dist/autopilot/types.d.ts +1 -1
- package/dist/autopilot/types.d.ts.map +1 -1
- package/dist/device/client-cache.d.ts +1 -1
- package/dist/device/client-cache.d.ts.map +1 -1
- package/dist/device/client-cache.js +4 -24
- package/dist/device/client-cache.js.map +1 -1
- package/dist/device/proxies/desktop-facade.d.ts +5 -8
- package/dist/device/proxies/desktop-facade.d.ts.map +1 -1
- package/dist/device/proxies/desktop-facade.js +12 -14
- package/dist/device/proxies/desktop-facade.js.map +1 -1
- package/dist/device-manager.d.ts +16 -16
- package/dist/device-manager.d.ts.map +1 -1
- package/dist/device-manager.js +23 -17
- package/dist/device-manager.js.map +1 -1
- package/dist/index.js +21 -6
- package/dist/index.js.map +1 -1
- package/dist/perf/collector.d.ts +5 -5
- package/dist/perf/collector.d.ts.map +1 -1
- package/dist/perf/collector.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +7 -0
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +87 -15
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/cli.d.ts.map +1 -1
- package/dist/runtime/cli.js +14 -0
- package/dist/runtime/cli.js.map +1 -1
- package/dist/runtime/platform-cli.d.ts +24 -0
- package/dist/runtime/platform-cli.d.ts.map +1 -0
- package/dist/runtime/platform-cli.js +116 -0
- package/dist/runtime/platform-cli.js.map +1 -0
- package/dist/runtime/platform-config.d.ts +21 -0
- package/dist/runtime/platform-config.d.ts.map +1 -0
- package/dist/runtime/platform-config.js +71 -0
- package/dist/runtime/platform-config.js.map +1 -0
- package/dist/tools/browser-tools.js.map +1 -1
- package/dist/tools/clipboard-tools.js +1 -1
- package/dist/tools/clipboard-tools.js.map +1 -1
- package/dist/tools/context/hints.d.ts +1 -1
- package/dist/tools/context/hints.d.ts.map +1 -1
- package/dist/tools/context/hints.js +1 -1
- package/dist/tools/context/hints.js.map +1 -1
- package/dist/tools/context/ios-helpers.d.ts +1 -1
- package/dist/tools/context/ios-helpers.d.ts.map +1 -1
- package/dist/tools/context/shared-state-class.d.ts +1 -1
- package/dist/tools/context/shared-state-class.d.ts.map +1 -1
- package/dist/tools/context/shared-state.d.ts +1 -1
- package/dist/tools/context/shared-state.d.ts.map +1 -1
- package/dist/tools/context.d.ts +2 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +17 -9
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/desktop-tools.d.ts.map +1 -1
- package/dist/tools/desktop-tools.js.map +1 -1
- package/dist/tools/flow/common.js +1 -1
- package/dist/tools/flow/common.js.map +1 -1
- package/dist/tools/flow/run.js +1 -1
- package/dist/tools/flow/run.js.map +1 -1
- package/dist/tools/helpers/get-elements.d.ts +1 -1
- package/dist/tools/helpers/get-elements.d.ts.map +1 -1
- package/dist/tools/helpers/get-elements.js +1 -1
- package/dist/tools/helpers/get-elements.js.map +1 -1
- package/dist/tools/helpers/resolve-element.js +1 -1
- package/dist/tools/helpers/resolve-element.js.map +1 -1
- package/dist/tools/screenshot-tools.js +1 -1
- package/dist/tools/screenshot-tools.js.map +1 -1
- package/dist/tools/ui/analyze.js +1 -1
- package/dist/tools/ui/analyze.js.map +1 -1
- package/dist/tools/ui/assert.js +1 -1
- package/dist/tools/ui/assert.js.map +1 -1
- package/dist/tools/ui/find.js +1 -1
- package/dist/tools/ui/find.js.map +1 -1
- package/dist/tools/ui/tree.js +1 -1
- package/dist/tools/ui/tree.js.map +1 -1
- package/dist/tools/ui/wait.js +1 -1
- package/dist/tools/ui/wait.js.map +1 -1
- package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
- package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
- package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
- package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
- package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
- package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/types.js.map +1 -0
- package/dist/ui-tree/ui-parser.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser.js.map +1 -0
- package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
- package/dist/ui-tree/ui-scoring.js.map +1 -0
- package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
- package/dist/ui-tree/ui-tree-cache.js.map +1 -0
- package/dist/utils/image/annotate.d.ts +1 -1
- package/dist/utils/image/annotate.d.ts.map +1 -1
- package/package.json +11 -6
- package/dist/adapters/android-adapter.d.ts +0 -64
- package/dist/adapters/android-adapter.d.ts.map +0 -1
- package/dist/adapters/android-adapter.js +0 -164
- package/dist/adapters/android-adapter.js.map +0 -1
- package/dist/adapters/aurora-adapter.d.ts +0 -56
- package/dist/adapters/aurora-adapter.d.ts.map +0 -1
- package/dist/adapters/aurora-adapter.js +0 -118
- package/dist/adapters/aurora-adapter.js.map +0 -1
- package/dist/adapters/browser-adapter.d.ts +0 -51
- package/dist/adapters/browser-adapter.d.ts.map +0 -1
- package/dist/adapters/browser-adapter.js +0 -223
- package/dist/adapters/browser-adapter.js.map +0 -1
- package/dist/adapters/desktop-adapter.d.ts +0 -64
- package/dist/adapters/desktop-adapter.d.ts.map +0 -1
- package/dist/adapters/desktop-adapter.js +0 -202
- package/dist/adapters/desktop-adapter.js.map +0 -1
- package/dist/adapters/ios-adapter.d.ts +0 -60
- package/dist/adapters/ios-adapter.d.ts.map +0 -1
- package/dist/adapters/ios-adapter.js +0 -146
- package/dist/adapters/ios-adapter.js.map +0 -1
- package/dist/adb/client.d.ts +0 -238
- package/dist/adb/client.d.ts.map +0 -1
- package/dist/adb/client.js +0 -462
- package/dist/adb/client.js.map +0 -1
- package/dist/adb/exec.d.ts +0 -23
- package/dist/adb/exec.d.ts.map +0 -1
- package/dist/adb/exec.js +0 -98
- package/dist/adb/exec.js.map +0 -1
- package/dist/adb/index.d.ts +0 -5
- package/dist/adb/index.d.ts.map +0 -1
- package/dist/adb/index.js +0 -3
- package/dist/adb/index.js.map +0 -1
- package/dist/adb/keycodes.d.ts +0 -22
- package/dist/adb/keycodes.d.ts.map +0 -1
- package/dist/adb/keycodes.js +0 -69
- package/dist/adb/keycodes.js.map +0 -1
- package/dist/adb/logcat.d.ts +0 -23
- package/dist/adb/logcat.d.ts.map +0 -1
- package/dist/adb/logcat.js +0 -40
- package/dist/adb/logcat.js.map +0 -1
- package/dist/adb/parsers.d.ts +0 -60
- package/dist/adb/parsers.d.ts.map +0 -1
- package/dist/adb/parsers.js +0 -118
- package/dist/adb/parsers.js.map +0 -1
- package/dist/adb/resolver.d.ts +0 -24
- package/dist/adb/resolver.d.ts.map +0 -1
- package/dist/adb/resolver.js +0 -130
- package/dist/adb/resolver.js.map +0 -1
- package/dist/adb/text-escape.d.ts +0 -23
- package/dist/adb/text-escape.d.ts.map +0 -1
- package/dist/adb/text-escape.js +0 -41
- package/dist/adb/text-escape.js.map +0 -1
- package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
- package/dist/adb/ui-parser/diff-engine.js.map +0 -1
- package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
- package/dist/adb/ui-parser/element-builder.js.map +0 -1
- package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
- package/dist/adb/ui-parser/element-finders.js.map +0 -1
- package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
- package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/full.js.map +0 -1
- package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/index.js.map +0 -1
- package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
- package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
- package/dist/adb/ui-parser/node-parser.js.map +0 -1
- package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
- package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
- package/dist/adb/ui-parser/types.d.ts.map +0 -1
- package/dist/adb/ui-parser/types.js.map +0 -1
- package/dist/adb/ui-parser.d.ts.map +0 -1
- package/dist/adb/ui-parser.js.map +0 -1
- package/dist/adb/ui-scoring.d.ts.map +0 -1
- package/dist/adb/ui-scoring.js.map +0 -1
- package/dist/adb/ui-tree-cache.d.ts.map +0 -1
- package/dist/adb/ui-tree-cache.js.map +0 -1
- package/dist/adb/webview.d.ts +0 -59
- package/dist/adb/webview.d.ts.map +0 -1
- package/dist/adb/webview.js +0 -169
- package/dist/adb/webview.js.map +0 -1
- package/dist/aurora/client.d.ts +0 -180
- package/dist/aurora/client.d.ts.map +0 -1
- package/dist/aurora/client.js +0 -324
- package/dist/aurora/client.js.map +0 -1
- package/dist/aurora/index.d.ts +0 -2
- package/dist/aurora/index.d.ts.map +0 -1
- package/dist/aurora/index.js +0 -2
- package/dist/aurora/index.js.map +0 -1
- package/dist/browser/cdp-helpers.d.ts +0 -17
- package/dist/browser/cdp-helpers.d.ts.map +0 -1
- package/dist/browser/cdp-helpers.js +0 -79
- package/dist/browser/cdp-helpers.js.map +0 -1
- package/dist/browser/cdp-types.d.ts +0 -167
- package/dist/browser/cdp-types.d.ts.map +0 -1
- package/dist/browser/cdp-types.js +0 -9
- package/dist/browser/cdp-types.js.map +0 -1
- package/dist/browser/client.d.ts +0 -29
- package/dist/browser/client.d.ts.map +0 -1
- package/dist/browser/client.js +0 -391
- package/dist/browser/client.js.map +0 -1
- package/dist/browser/index.d.ts +0 -5
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -4
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/key-map.d.ts +0 -16
- package/dist/browser/key-map.d.ts.map +0 -1
- package/dist/browser/key-map.js +0 -35
- package/dist/browser/key-map.js.map +0 -1
- package/dist/browser/session-manager.d.ts +0 -21
- package/dist/browser/session-manager.d.ts.map +0 -1
- package/dist/browser/session-manager.js +0 -109
- package/dist/browser/session-manager.js.map +0 -1
- package/dist/browser/snapshot-builder.d.ts +0 -4
- package/dist/browser/snapshot-builder.d.ts.map +0 -1
- package/dist/browser/snapshot-builder.js +0 -76
- package/dist/browser/snapshot-builder.js.map +0 -1
- package/dist/browser/types.d.ts +0 -75
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -11
- package/dist/browser/types.js.map +0 -1
- package/dist/desktop/client.d.ts +0 -196
- package/dist/desktop/client.d.ts.map +0 -1
- package/dist/desktop/client.js +0 -540
- package/dist/desktop/client.js.map +0 -1
- package/dist/desktop/gradle.d.ts +0 -45
- package/dist/desktop/gradle.d.ts.map +0 -1
- package/dist/desktop/gradle.js +0 -234
- package/dist/desktop/gradle.js.map +0 -1
- package/dist/desktop/index.d.ts +0 -7
- package/dist/desktop/index.d.ts.map +0 -1
- package/dist/desktop/index.js +0 -7
- package/dist/desktop/index.js.map +0 -1
- package/dist/desktop/launch-options.d.ts +0 -13
- package/dist/desktop/launch-options.d.ts.map +0 -1
- package/dist/desktop/launch-options.js +0 -54
- package/dist/desktop/launch-options.js.map +0 -1
- package/dist/desktop/launchers.d.ts +0 -52
- package/dist/desktop/launchers.d.ts.map +0 -1
- package/dist/desktop/launchers.js +0 -125
- package/dist/desktop/launchers.js.map +0 -1
- package/dist/desktop/log-ring.d.ts +0 -21
- package/dist/desktop/log-ring.d.ts.map +0 -1
- package/dist/desktop/log-ring.js +0 -45
- package/dist/desktop/log-ring.js.map +0 -1
- package/dist/desktop/permission-allowlist.d.ts +0 -47
- package/dist/desktop/permission-allowlist.d.ts.map +0 -1
- package/dist/desktop/permission-allowlist.js +0 -148
- package/dist/desktop/permission-allowlist.js.map +0 -1
- package/dist/desktop/types.d.ts +0 -177
- package/dist/desktop/types.d.ts.map +0 -1
- package/dist/desktop/types.js +0 -5
- package/dist/desktop/types.js.map +0 -1
- package/dist/ios/client.d.ts +0 -204
- package/dist/ios/client.d.ts.map +0 -1
- package/dist/ios/client.js +0 -483
- package/dist/ios/client.js.map +0 -1
- package/dist/ios/go-ios/client.d.ts +0 -23
- package/dist/ios/go-ios/client.d.ts.map +0 -1
- package/dist/ios/go-ios/client.js +0 -51
- package/dist/ios/go-ios/client.js.map +0 -1
- package/dist/ios/go-ios/index.d.ts +0 -4
- package/dist/ios/go-ios/index.d.ts.map +0 -1
- package/dist/ios/go-ios/index.js +0 -3
- package/dist/ios/go-ios/index.js.map +0 -1
- package/dist/ios/go-ios/parsers.d.ts +0 -28
- package/dist/ios/go-ios/parsers.d.ts.map +0 -1
- package/dist/ios/go-ios/parsers.js +0 -71
- package/dist/ios/go-ios/parsers.js.map +0 -1
- package/dist/ios/index.d.ts +0 -2
- package/dist/ios/index.d.ts.map +0 -1
- package/dist/ios/index.js +0 -2
- package/dist/ios/index.js.map +0 -1
- package/dist/ios/keymap.d.ts +0 -20
- package/dist/ios/keymap.d.ts.map +0 -1
- package/dist/ios/keymap.js +0 -33
- package/dist/ios/keymap.js.map +0 -1
- package/dist/ios/simctl-commands.d.ts +0 -35
- package/dist/ios/simctl-commands.d.ts.map +0 -1
- package/dist/ios/simctl-commands.js +0 -60
- package/dist/ios/simctl-commands.js.map +0 -1
- package/dist/ios/simctl-exec.d.ts +0 -19
- package/dist/ios/simctl-exec.d.ts.map +0 -1
- package/dist/ios/simctl-exec.js +0 -55
- package/dist/ios/simctl-exec.js.map +0 -1
- package/dist/ios/simctl-parsers.d.ts +0 -10
- package/dist/ios/simctl-parsers.d.ts.map +0 -1
- package/dist/ios/simctl-parsers.js +0 -29
- package/dist/ios/simctl-parsers.js.map +0 -1
- package/dist/ios/types.d.ts +0 -8
- package/dist/ios/types.d.ts.map +0 -1
- package/dist/ios/types.js +0 -2
- package/dist/ios/types.js.map +0 -1
- package/dist/ios/wda/index.d.ts +0 -4
- package/dist/ios/wda/index.d.ts.map +0 -1
- package/dist/ios/wda/index.js +0 -4
- package/dist/ios/wda/index.js.map +0 -1
- package/dist/ios/wda/wda-client.d.ts +0 -33
- package/dist/ios/wda/wda-client.d.ts.map +0 -1
- package/dist/ios/wda/wda-client.js +0 -250
- package/dist/ios/wda/wda-client.js.map +0 -1
- package/dist/ios/wda/wda-manager.d.ts +0 -34
- package/dist/ios/wda/wda-manager.d.ts.map +0 -1
- package/dist/ios/wda/wda-manager.js +0 -392
- package/dist/ios/wda/wda-manager.js.map +0 -1
- package/dist/ios/wda/wda-types.d.ts +0 -39
- package/dist/ios/wda/wda-types.d.ts.map +0 -1
- package/dist/ios/wda/wda-types.js +0 -2
- package/dist/ios/wda/wda-types.js.map +0 -1
- package/dist/ios/wda-errors.d.ts +0 -8
- package/dist/ios/wda-errors.d.ts.map +0 -1
- package/dist/ios/wda-errors.js +0 -13
- package/dist/ios/wda-errors.js.map +0 -1
- package/dist/ios/wda-payloads.d.ts +0 -32
- package/dist/ios/wda-payloads.d.ts.map +0 -1
- package/dist/ios/wda-payloads.js +0 -31
- package/dist/ios/wda-payloads.js.map +0 -1
- package/dist/plugins/android/index.d.ts +0 -23
- package/dist/plugins/android/index.d.ts.map +0 -1
- package/dist/plugins/android/index.js +0 -45
- package/dist/plugins/android/index.js.map +0 -1
- package/dist/plugins/aurora/index.d.ts +0 -17
- package/dist/plugins/aurora/index.d.ts.map +0 -1
- package/dist/plugins/aurora/index.js +0 -27
- package/dist/plugins/aurora/index.js.map +0 -1
- package/dist/plugins/desktop/index.d.ts +0 -18
- package/dist/plugins/desktop/index.d.ts.map +0 -1
- package/dist/plugins/desktop/index.js +0 -28
- package/dist/plugins/desktop/index.js.map +0 -1
- package/dist/plugins/ios/index.d.ts +0 -17
- package/dist/plugins/ios/index.d.ts.map +0 -1
- package/dist/plugins/ios/index.js +0 -36
- package/dist/plugins/ios/index.js.map +0 -1
- package/dist/plugins/web/index.d.ts +0 -17
- package/dist/plugins/web/index.d.ts.map +0 -1
- package/dist/plugins/web/index.js +0 -27
- package/dist/plugins/web/index.js.map +0 -1
- /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
- /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
- /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure parsers for go-ios (`ios`) JSON output. No I/O.
|
|
3
|
-
*
|
|
4
|
-
* go-ios emits newline-delimited JSON: structured log lines (level/msg/time)
|
|
5
|
-
* interleaved with the actual result object. These parsers scan every line and
|
|
6
|
-
* pick the one carrying the expected result key, so log noise (e.g. the
|
|
7
|
-
* "agent is not running" WARN on iOS 17+) never corrupts the result.
|
|
8
|
-
*/
|
|
9
|
-
/** Parse each line as JSON, ignoring blanks and non-JSON noise. */
|
|
10
|
-
function parseJsonLines(output) {
|
|
11
|
-
const out = [];
|
|
12
|
-
for (const line of output.split("\n")) {
|
|
13
|
-
const trimmed = line.trim();
|
|
14
|
-
if (!trimmed.startsWith("{"))
|
|
15
|
-
continue;
|
|
16
|
-
try {
|
|
17
|
-
const v = JSON.parse(trimmed);
|
|
18
|
-
if (v && typeof v === "object")
|
|
19
|
-
out.push(v);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// structured-log line that isn't valid standalone JSON — skip
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return out;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Parse `ios list` output into a list of physical-device UDIDs. The result line
|
|
29
|
-
* looks like `{"deviceList":["00008130-..."]}`; log lines are skipped.
|
|
30
|
-
*/
|
|
31
|
-
export function parseDeviceList(output) {
|
|
32
|
-
for (const obj of parseJsonLines(output)) {
|
|
33
|
-
const list = obj.deviceList;
|
|
34
|
-
if (Array.isArray(list)) {
|
|
35
|
-
return list.filter((x) => typeof x === "string");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Parse `ios info` output. The result object is the one carrying device
|
|
42
|
-
* identity keys (UniqueDeviceID / ProductVersion); log lines are skipped.
|
|
43
|
-
*/
|
|
44
|
-
export function parseInfo(output) {
|
|
45
|
-
for (const obj of parseJsonLines(output)) {
|
|
46
|
-
if ("ProductVersion" in obj || "UniqueDeviceID" in obj) {
|
|
47
|
-
return {
|
|
48
|
-
name: strOrUndef(obj.DeviceName),
|
|
49
|
-
productVersion: strOrUndef(obj.ProductVersion),
|
|
50
|
-
productType: strOrUndef(obj.ProductType),
|
|
51
|
-
deviceClass: strOrUndef(obj.DeviceClass),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return {};
|
|
56
|
-
}
|
|
57
|
-
/** Build an `IosDevice` for a physical device from its udid + (optional) info. */
|
|
58
|
-
export function toIosDevice(udid, info) {
|
|
59
|
-
return {
|
|
60
|
-
id: udid,
|
|
61
|
-
name: info.name ?? info.productType ?? info.deviceClass ?? "iOS device",
|
|
62
|
-
// Physical devices report "connected"; autoDetectDevice already matches it.
|
|
63
|
-
state: "connected",
|
|
64
|
-
runtime: info.productVersion ? `iOS ${info.productVersion}` : "iOS",
|
|
65
|
-
isSimulator: false,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function strOrUndef(v) {
|
|
69
|
-
return typeof v === "string" ? v : undefined;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=parsers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/ios/go-ios/parsers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,mEAAmE;AACnE,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,IAAI,gBAAgB,IAAI,GAAG,IAAI,gBAAgB,IAAI,GAAG,EAAE,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;gBAChC,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC9C,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;gBACxC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;aACzC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAe;IACvD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY;QACvE,4EAA4E;QAC5E,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK;QACnE,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC"}
|
package/dist/ios/index.d.ts
DELETED
package/dist/ios/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/ios/index.js
DELETED
package/dist/ios/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ios/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC"}
|
package/dist/ios/keymap.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* iOS key mapping and AppleScript literals for the Simulator host.
|
|
3
|
-
*
|
|
4
|
-
* SECURITY: AppleScript strings here are fixed literals passed as distinct
|
|
5
|
-
* argv slots to execFileSync("osascript", [...]). They never reach /bin/sh.
|
|
6
|
-
*/
|
|
7
|
-
export declare const IOS_KEY_MAP: Record<string, string>;
|
|
8
|
-
/**
|
|
9
|
-
* Resolve a logical key name to its simctl/AppleScript token.
|
|
10
|
-
*/
|
|
11
|
-
export declare function mapKey(key: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* AppleScript argv that activates Simulator and triggers Cmd+Shift+H (home).
|
|
14
|
-
*/
|
|
15
|
-
export declare const HOME_KEY_OSASCRIPT_ARGS: readonly string[];
|
|
16
|
-
/**
|
|
17
|
-
* AppleScript argv that just brings Simulator to focus.
|
|
18
|
-
*/
|
|
19
|
-
export declare const ACTIVATE_SIMULATOR_OSASCRIPT_ARGS: readonly string[];
|
|
20
|
-
//# sourceMappingURL=keymap.d.ts.map
|
package/dist/ios/keymap.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../../src/ios/keymap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAGpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAE9D,CAAC"}
|
package/dist/ios/keymap.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* iOS key mapping and AppleScript literals for the Simulator host.
|
|
3
|
-
*
|
|
4
|
-
* SECURITY: AppleScript strings here are fixed literals passed as distinct
|
|
5
|
-
* argv slots to execFileSync("osascript", [...]). They never reach /bin/sh.
|
|
6
|
-
*/
|
|
7
|
-
export const IOS_KEY_MAP = {
|
|
8
|
-
HOME: "home",
|
|
9
|
-
BACK: "home", // iOS doesn't have back, use home
|
|
10
|
-
VOLUME_UP: "volumeUp",
|
|
11
|
-
VOLUME_DOWN: "volumeDown",
|
|
12
|
-
LOCK: "lock",
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Resolve a logical key name to its simctl/AppleScript token.
|
|
16
|
-
*/
|
|
17
|
-
export function mapKey(key) {
|
|
18
|
-
return IOS_KEY_MAP[key.toUpperCase()] ?? key.toLowerCase();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* AppleScript argv that activates Simulator and triggers Cmd+Shift+H (home).
|
|
22
|
-
*/
|
|
23
|
-
export const HOME_KEY_OSASCRIPT_ARGS = [
|
|
24
|
-
"-e", 'tell application "Simulator" to activate',
|
|
25
|
-
"-e", 'tell application "System Events" to keystroke "h" using {command down, shift down}',
|
|
26
|
-
];
|
|
27
|
-
/**
|
|
28
|
-
* AppleScript argv that just brings Simulator to focus.
|
|
29
|
-
*/
|
|
30
|
-
export const ACTIVATE_SIMULATOR_OSASCRIPT_ARGS = [
|
|
31
|
-
"-e", 'tell application "Simulator" to activate',
|
|
32
|
-
];
|
|
33
|
-
//# sourceMappingURL=keymap.js.map
|
package/dist/ios/keymap.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keymap.js","sourceRoot":"","sources":["../../src/ios/keymap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM,EAAE,kCAAkC;IAChD,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,YAAY;IACzB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,oFAAoF;CAC3F,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAsB;IAClE,IAAI,EAAE,0CAA0C;CACjD,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure simctl argv builders. No I/O.
|
|
3
|
-
*
|
|
4
|
-
* SECURITY: All builders return string[] for execFileSync — no shell parsing.
|
|
5
|
-
* Predicate strings and paths travel as distinct argv slots.
|
|
6
|
-
*/
|
|
7
|
-
export interface LogShowOptions {
|
|
8
|
-
predicate?: string;
|
|
9
|
-
level?: "debug" | "info" | "default" | "error" | "fault";
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Build argv for `simctl spawn <device> log show ...`.
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildLogShowArgs(device: string, lastWindow: string, options?: LogShowOptions): string[];
|
|
15
|
-
/**
|
|
16
|
-
* Build argv for app-scoped log query (predicate = subsystem == "<bundleId>").
|
|
17
|
-
* Caller must validate bundleId BEFORE calling this builder.
|
|
18
|
-
*/
|
|
19
|
-
export declare function buildAppLogArgs(device: string, bundleId: string, lastWindow?: string): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Split a whitespace-separated command into argv tokens.
|
|
22
|
-
* Safe only for commands without quoted strings / spaces inside args.
|
|
23
|
-
*/
|
|
24
|
-
export declare function splitArgs(command: string): string[];
|
|
25
|
-
/**
|
|
26
|
-
* Slice the last `n` lines from a newline-delimited string.
|
|
27
|
-
* Node-side replacement for `| tail -n` (no shell needed).
|
|
28
|
-
*/
|
|
29
|
-
export declare function sliceLastLines(text: string, n: number): string;
|
|
30
|
-
/**
|
|
31
|
-
* Coerce a lat/lon pair into finite numbers; throw on NaN/Infinity.
|
|
32
|
-
* Returns the canonical `lat,lon` argument string expected by `simctl location set`.
|
|
33
|
-
*/
|
|
34
|
-
export declare function formatLatLon(lat: number, lon: number): string;
|
|
35
|
-
//# sourceMappingURL=simctl-commands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-commands.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,cAAmB,GAC3B,MAAM,EAAE,CAWV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,MAAM,EAAE,CAMrG;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7D"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure simctl argv builders. No I/O.
|
|
3
|
-
*
|
|
4
|
-
* SECURITY: All builders return string[] for execFileSync — no shell parsing.
|
|
5
|
-
* Predicate strings and paths travel as distinct argv slots.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Build argv for `simctl spawn <device> log show ...`.
|
|
9
|
-
*/
|
|
10
|
-
export function buildLogShowArgs(device, lastWindow, options = {}) {
|
|
11
|
-
const args = [
|
|
12
|
-
"spawn", device, "log", "show", "--style", "compact", "--last", lastWindow,
|
|
13
|
-
];
|
|
14
|
-
if (options.level) {
|
|
15
|
-
args.push("--predicate", `messageType == ${options.level}`);
|
|
16
|
-
}
|
|
17
|
-
if (options.predicate) {
|
|
18
|
-
args.push("--predicate", options.predicate);
|
|
19
|
-
}
|
|
20
|
-
return args;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Build argv for app-scoped log query (predicate = subsystem == "<bundleId>").
|
|
24
|
-
* Caller must validate bundleId BEFORE calling this builder.
|
|
25
|
-
*/
|
|
26
|
-
export function buildAppLogArgs(device, bundleId, lastWindow = "5m") {
|
|
27
|
-
return [
|
|
28
|
-
"spawn", device, "log", "show", "--style", "compact",
|
|
29
|
-
"--last", lastWindow,
|
|
30
|
-
"--predicate", `subsystem == "${bundleId}"`,
|
|
31
|
-
];
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Split a whitespace-separated command into argv tokens.
|
|
35
|
-
* Safe only for commands without quoted strings / spaces inside args.
|
|
36
|
-
*/
|
|
37
|
-
export function splitArgs(command) {
|
|
38
|
-
return command.split(/\s+/).filter(Boolean);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Slice the last `n` lines from a newline-delimited string.
|
|
42
|
-
* Node-side replacement for `| tail -n` (no shell needed).
|
|
43
|
-
*/
|
|
44
|
-
export function sliceLastLines(text, n) {
|
|
45
|
-
const linesN = Math.trunc(Math.max(0, n));
|
|
46
|
-
return text.split("\n").slice(-linesN).join("\n");
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Coerce a lat/lon pair into finite numbers; throw on NaN/Infinity.
|
|
50
|
-
* Returns the canonical `lat,lon` argument string expected by `simctl location set`.
|
|
51
|
-
*/
|
|
52
|
-
export function formatLatLon(lat, lon) {
|
|
53
|
-
const latN = Number(lat);
|
|
54
|
-
const lonN = Number(lon);
|
|
55
|
-
if (!Number.isFinite(latN) || !Number.isFinite(lonN)) {
|
|
56
|
-
throw new Error(`Invalid coordinates: lat=${lat}, lon=${lon}`);
|
|
57
|
-
}
|
|
58
|
-
return `${latN},${lonN}`;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=simctl-commands.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-commands.js","sourceRoot":"","sources":["../../src/ios/simctl-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,UAAkB,EAClB,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAa;QACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU;KAC3E,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,aAAqB,IAAI;IACzF,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACpD,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,iBAAiB,QAAQ,GAAG;KAC5C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,CAAS;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Low-level simctl invocation. Centralises the argv-form exec so the host shell
|
|
3
|
-
* (/bin/sh) is never spawned — see SECURITY notes on each helper.
|
|
4
|
-
*
|
|
5
|
-
* No `IosClient` state is involved here; behaviour is parameterised entirely by
|
|
6
|
-
* arguments. Retry / WDA loops live in client.ts and call into these as leaves.
|
|
7
|
-
*/
|
|
8
|
-
export declare const SIMCTL_EXEC_TIMEOUT_MS = 15000;
|
|
9
|
-
/**
|
|
10
|
-
* SECURITY: routes through execFileSync — no /bin/sh -c. Shell metacharacters
|
|
11
|
-
* in `args` are passed as literal argv slots (CWE-78 mitigation, issue #40).
|
|
12
|
-
*/
|
|
13
|
-
export declare function execSimctl(args: string[]): string;
|
|
14
|
-
/**
|
|
15
|
-
* Variant that suppresses stderr (replaces shell `2>/dev/null`).
|
|
16
|
-
* Same security guarantee as execSimctl.
|
|
17
|
-
*/
|
|
18
|
-
export declare function execSimctlQuiet(args: string[]): string;
|
|
19
|
-
//# sourceMappingURL=simctl-exec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-exec.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-exec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAoB7C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAatD"}
|
package/dist/ios/simctl-exec.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Low-level simctl invocation. Centralises the argv-form exec so the host shell
|
|
3
|
-
* (/bin/sh) is never spawned — see SECURITY notes on each helper.
|
|
4
|
-
*
|
|
5
|
-
* No `IosClient` state is involved here; behaviour is parameterised entirely by
|
|
6
|
-
* arguments. Retry / WDA loops live in client.ts and call into these as leaves.
|
|
7
|
-
*/
|
|
8
|
-
import { execFileSync } from "child_process";
|
|
9
|
-
import { classifySimctlError } from "../errors.js";
|
|
10
|
-
export const SIMCTL_EXEC_TIMEOUT_MS = 15_000;
|
|
11
|
-
function handleExecError(error, fullArgs) {
|
|
12
|
-
const e = error;
|
|
13
|
-
const display = `xcrun ${fullArgs.join(" ")}`;
|
|
14
|
-
if (e.killed === true || e.signal === "SIGTERM") {
|
|
15
|
-
throw new Error(`simctl command timed out after ${SIMCTL_EXEC_TIMEOUT_MS}ms: ${display}. Simulator may be unresponsive.`);
|
|
16
|
-
}
|
|
17
|
-
throw classifySimctlError(e.stderr?.toString() ?? e.message ?? String(error), display);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* SECURITY: routes through execFileSync — no /bin/sh -c. Shell metacharacters
|
|
21
|
-
* in `args` are passed as literal argv slots (CWE-78 mitigation, issue #40).
|
|
22
|
-
*/
|
|
23
|
-
export function execSimctl(args) {
|
|
24
|
-
const fullArgs = ["simctl", ...args];
|
|
25
|
-
try {
|
|
26
|
-
return execFileSync("xcrun", fullArgs, {
|
|
27
|
-
encoding: "utf-8",
|
|
28
|
-
timeout: SIMCTL_EXEC_TIMEOUT_MS,
|
|
29
|
-
maxBuffer: 50 * 1024 * 1024,
|
|
30
|
-
}).trim();
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
handleExecError(error, fullArgs);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Variant that suppresses stderr (replaces shell `2>/dev/null`).
|
|
38
|
-
* Same security guarantee as execSimctl.
|
|
39
|
-
*/
|
|
40
|
-
export function execSimctlQuiet(args) {
|
|
41
|
-
const fullArgs = ["simctl", ...args];
|
|
42
|
-
try {
|
|
43
|
-
const out = execFileSync("xcrun", fullArgs, {
|
|
44
|
-
encoding: "utf-8",
|
|
45
|
-
timeout: SIMCTL_EXEC_TIMEOUT_MS,
|
|
46
|
-
maxBuffer: 50 * 1024 * 1024,
|
|
47
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
48
|
-
});
|
|
49
|
-
return out.toString().trim();
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
handleExecError(error, fullArgs);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=simctl-exec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-exec.js","sourceRoot":"","sources":["../../src/ios/simctl-exec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAS7C,SAAS,eAAe,CAAC,KAAc,EAAE,QAAkB;IACzD,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,MAAM,OAAO,GAAG,SAAS,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,kCAAkC,sBAAsB,OAAO,OAAO,kCAAkC,CACzG,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE;YACrC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure parsers for simctl JSON / text output. No I/O.
|
|
3
|
-
*/
|
|
4
|
-
import type { IosDevice } from "./types.js";
|
|
5
|
-
/**
|
|
6
|
-
* Parse output of `xcrun simctl list devices -j` into a flat list of available
|
|
7
|
-
* simulators. Unavailable devices are filtered out.
|
|
8
|
-
*/
|
|
9
|
-
export declare function parseDevicesJson(output: string): IosDevice[];
|
|
10
|
-
//# sourceMappingURL=simctl-parsers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-parsers.d.ts","sourceRoot":"","sources":["../../src/ios/simctl-parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAe5C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,CAqB5D"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure parsers for simctl JSON / text output. No I/O.
|
|
3
|
-
*/
|
|
4
|
-
const RUNTIME_PREFIX = "com.apple.CoreSimulator.SimRuntime.";
|
|
5
|
-
/**
|
|
6
|
-
* Parse output of `xcrun simctl list devices -j` into a flat list of available
|
|
7
|
-
* simulators. Unavailable devices are filtered out.
|
|
8
|
-
*/
|
|
9
|
-
export function parseDevicesJson(output) {
|
|
10
|
-
const data = JSON.parse(output);
|
|
11
|
-
const devices = [];
|
|
12
|
-
for (const [runtime, deviceList] of Object.entries(data.devices)) {
|
|
13
|
-
if (!Array.isArray(deviceList))
|
|
14
|
-
continue;
|
|
15
|
-
for (const device of deviceList) {
|
|
16
|
-
if (device.isAvailable) {
|
|
17
|
-
devices.push({
|
|
18
|
-
id: device.udid,
|
|
19
|
-
name: device.name,
|
|
20
|
-
state: device.state.toLowerCase(),
|
|
21
|
-
runtime: runtime.replace(RUNTIME_PREFIX, ""),
|
|
22
|
-
isSimulator: true,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return devices;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=simctl-parsers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simctl-parsers.js","sourceRoot":"","sources":["../../src/ios/simctl-parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAmB,CAAC;IAClD,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,SAAS;QAEzC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,MAAM,CAAC,IAAI;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;oBACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC5C,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/ios/types.d.ts
DELETED
package/dist/ios/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
package/dist/ios/types.js
DELETED
package/dist/ios/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ios/types.ts"],"names":[],"mappings":""}
|
package/dist/ios/wda/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ios/wda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
|
package/dist/ios/wda/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ios/wda/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { WDAElement, WDARect, UITreeNode, LocatorStrategy } from "./wda-types.js";
|
|
2
|
-
export declare class WDAClient {
|
|
3
|
-
private baseUrl;
|
|
4
|
-
private sessionId;
|
|
5
|
-
private readonly operationTimeout;
|
|
6
|
-
constructor(port: number);
|
|
7
|
-
ensureSession(deviceId: string): Promise<void>;
|
|
8
|
-
private createSession;
|
|
9
|
-
deleteSession(): Promise<void>;
|
|
10
|
-
getAccessibleSource(): Promise<UITreeNode>;
|
|
11
|
-
findElement(strategy: LocatorStrategy, selector: string): Promise<WDAElement>;
|
|
12
|
-
findElements(strategy: LocatorStrategy, selector: string): Promise<WDAElement[]>;
|
|
13
|
-
clickElement(elementId: string): Promise<void>;
|
|
14
|
-
tapByCoordinates(x: number, y: number): Promise<void>;
|
|
15
|
-
longPress(x: number, y: number, durationMs?: number): Promise<void>;
|
|
16
|
-
typeText(text: string): Promise<void>;
|
|
17
|
-
getWindowSize(): Promise<{
|
|
18
|
-
width: number;
|
|
19
|
-
height: number;
|
|
20
|
-
}>;
|
|
21
|
-
swipe(x1: number, y1: number, x2: number, y2: number, duration?: number): Promise<void>;
|
|
22
|
-
getElementRect(elementId: string): Promise<WDARect>;
|
|
23
|
-
getElementText(elementId: string): Promise<string>;
|
|
24
|
-
isElementDisplayed(elementId: string): Promise<boolean>;
|
|
25
|
-
/**
|
|
26
|
-
* Capture a screenshot via WDA (`GET /screenshot`). Works for both
|
|
27
|
-
* simulators and physical devices — the only screenshot path that does NOT
|
|
28
|
-
* depend on simctl. Returns a PNG buffer.
|
|
29
|
-
*/
|
|
30
|
-
screenshot(): Promise<Buffer>;
|
|
31
|
-
private request;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=wda-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wda-client.d.ts","sourceRoot":"","sources":["../../../src/ios/wda/wda-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,OAAO,EACP,UAAU,EACV,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,IAAI,EAAE,MAAM;IAIlB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBtC,aAAa;IAwBrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC;IAY1C,WAAW,CACf,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;IAiBhB,YAAY,CAChB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC;IAiBlB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrC,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAY3D,KAAK,CACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAwBV,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAanD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAalD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa7D;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YASrB,OAAO;CAgDtB"}
|