appium-desktop-driver 1.7.1 → 1.7.2-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +249 -0
  2. package/README.md +0 -2
  3. package/build/lib/commands/actions.d.ts +5 -3
  4. package/build/lib/commands/actions.d.ts.map +1 -1
  5. package/build/lib/commands/actions.js +83 -91
  6. package/build/lib/commands/actions.js.map +1 -1
  7. package/build/lib/commands/app.d.ts +53 -1
  8. package/build/lib/commands/app.d.ts.map +1 -1
  9. package/build/lib/commands/app.js +415 -142
  10. package/build/lib/commands/app.js.map +1 -1
  11. package/build/lib/commands/contexts.d.ts +64 -0
  12. package/build/lib/commands/contexts.d.ts.map +1 -0
  13. package/build/lib/commands/contexts.js +166 -0
  14. package/build/lib/commands/contexts.js.map +1 -0
  15. package/build/lib/commands/device.d.ts +0 -8
  16. package/build/lib/commands/device.d.ts.map +1 -1
  17. package/build/lib/commands/device.js +4 -229
  18. package/build/lib/commands/device.js.map +1 -1
  19. package/build/lib/commands/element.d.ts +0 -3
  20. package/build/lib/commands/element.d.ts.map +1 -1
  21. package/build/lib/commands/element.js +102 -53
  22. package/build/lib/commands/element.js.map +1 -1
  23. package/build/lib/commands/extension.d.ts +2 -0
  24. package/build/lib/commands/extension.d.ts.map +1 -1
  25. package/build/lib/commands/extension.js +111 -184
  26. package/build/lib/commands/extension.js.map +1 -1
  27. package/build/lib/commands/index.d.ts +28 -17
  28. package/build/lib/commands/index.d.ts.map +1 -1
  29. package/build/lib/commands/index.js +4 -2
  30. package/build/lib/commands/index.js.map +1 -1
  31. package/build/lib/commands/screen-recorder.d.ts +3 -3
  32. package/build/lib/commands/screen-recorder.d.ts.map +1 -1
  33. package/build/lib/commands/screen-recorder.js +33 -24
  34. package/build/lib/commands/screen-recorder.js.map +1 -1
  35. package/build/lib/commands/server-session.d.ts +9 -0
  36. package/build/lib/commands/server-session.d.ts.map +1 -0
  37. package/build/lib/commands/server-session.js +158 -0
  38. package/build/lib/commands/server-session.js.map +1 -0
  39. package/build/lib/constraints.d.ts +26 -7
  40. package/build/lib/constraints.d.ts.map +1 -1
  41. package/build/lib/constraints.js +25 -6
  42. package/build/lib/constraints.js.map +1 -1
  43. package/build/lib/driver.d.ts +22 -13
  44. package/build/lib/driver.d.ts.map +1 -1
  45. package/build/lib/driver.js +130 -49
  46. package/build/lib/driver.js.map +1 -1
  47. package/build/lib/log-file.d.ts +10 -0
  48. package/build/lib/log-file.d.ts.map +1 -0
  49. package/build/lib/log-file.js +86 -0
  50. package/build/lib/log-file.js.map +1 -0
  51. package/build/lib/mcp/tools/context.d.ts +4 -0
  52. package/build/lib/mcp/tools/context.d.ts.map +1 -0
  53. package/build/lib/mcp/tools/context.js +49 -0
  54. package/build/lib/mcp/tools/context.js.map +1 -0
  55. package/build/lib/mcp/tools/index.d.ts.map +1 -1
  56. package/build/lib/mcp/tools/index.js +2 -0
  57. package/build/lib/mcp/tools/index.js.map +1 -1
  58. package/build/lib/powershell/conditions.d.ts.map +1 -1
  59. package/build/lib/powershell/conditions.js +7 -0
  60. package/build/lib/powershell/conditions.js.map +1 -1
  61. package/build/lib/server/client.d.ts +15 -0
  62. package/build/lib/server/client.d.ts.map +1 -0
  63. package/build/lib/server/client.js +169 -0
  64. package/build/lib/server/client.js.map +1 -0
  65. package/build/lib/server/conditions.d.ts +13 -0
  66. package/build/lib/server/conditions.d.ts.map +1 -0
  67. package/build/lib/server/conditions.js +71 -0
  68. package/build/lib/server/conditions.js.map +1 -0
  69. package/build/lib/server/converter-bridge.d.ts +26 -0
  70. package/build/lib/server/converter-bridge.d.ts.map +1 -0
  71. package/build/lib/server/converter-bridge.js +171 -0
  72. package/build/lib/server/converter-bridge.js.map +1 -0
  73. package/build/lib/server/index.d.ts +5 -0
  74. package/build/lib/server/index.d.ts.map +1 -0
  75. package/build/lib/server/index.js +25 -0
  76. package/build/lib/server/index.js.map +1 -0
  77. package/build/lib/server/protocol.d.ts +40 -0
  78. package/build/lib/server/protocol.d.ts.map +1 -0
  79. package/build/lib/server/protocol.js +3 -0
  80. package/build/lib/server/protocol.js.map +1 -0
  81. package/build/lib/util.d.ts +11 -1
  82. package/build/lib/util.d.ts.map +1 -1
  83. package/build/lib/util.js +158 -7
  84. package/build/lib/util.js.map +1 -1
  85. package/build/lib/version.d.ts +2 -0
  86. package/build/lib/version.d.ts.map +1 -0
  87. package/build/lib/version.js +20 -0
  88. package/build/lib/version.js.map +1 -0
  89. package/build/lib/winapi/user32.d.ts +5 -6
  90. package/build/lib/winapi/user32.d.ts.map +1 -1
  91. package/build/lib/winapi/user32.js +131 -88
  92. package/build/lib/winapi/user32.js.map +1 -1
  93. package/build/lib/xpath/core.d.ts +10 -4
  94. package/build/lib/xpath/core.d.ts.map +1 -1
  95. package/build/lib/xpath/core.js +205 -224
  96. package/build/lib/xpath/core.js.map +1 -1
  97. package/build/lib/xpath/functions.d.ts +7 -2
  98. package/build/lib/xpath/functions.d.ts.map +1 -1
  99. package/build/lib/xpath/functions.js +49 -25
  100. package/build/lib/xpath/functions.js.map +1 -1
  101. package/package.json +18 -12
  102. package/scripts/postinstall.js +39 -0
  103. package/build/eslint.config.d.mts +0 -3
  104. package/build/eslint.config.d.mts.map +0 -1
  105. package/build/eslint.config.mjs +0 -22
  106. package/build/eslint.config.mjs.map +0 -1
  107. package/build/lib/commands/powershell.d.ts +0 -6
  108. package/build/lib/commands/powershell.d.ts.map +0 -1
  109. package/build/lib/commands/powershell.js +0 -202
  110. package/build/lib/commands/powershell.js.map +0 -1
  111. package/build/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,249 @@
1
+ ## [1.7.2-preview.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.7.1...v1.7.2-preview.1) (2026-05-27)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **webview:** Chrome CDP context switching and window attachment bugs ([8fafd5b](https://github.com/verisoft-ai/appium-desktop-driver/commit/8fafd5b8de7265b7cdb0a9455926f1e8a2948898))
6
+
7
+ ### Miscellaneous Chores
8
+
9
+ * trigger publish on develop ([2e0123f](https://github.com/verisoft-ai/appium-desktop-driver/commit/2e0123faf5de734874f62fe16280b4e86557d7ac))
10
+
11
+ ## [1.7.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.7.0...v1.7.1) (2026-05-23)
12
+
13
+ ### Miscellaneous Chores
14
+
15
+ * remove powershell insecure check - alway allow ([2225b79](https://github.com/verisoft-ai/appium-desktop-driver/commit/2225b79fc9972f0000ff6a3982b6f993506baca5))
16
+
17
+ ## [1.7.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.6.1...v1.7.0) (2026-05-04)
18
+
19
+ ### Features
20
+
21
+ * add analyze_screen mcp tool ([5c6b998](https://github.com/verisoft-ai/appium-desktop-driver/commit/5c6b998ebde79caa9f05261f252be3fcba847edd))
22
+ * lazy load mcp server ([16a1533](https://github.com/verisoft-ai/appium-desktop-driver/commit/16a15337daacf2a2088f9eb4ee548a5cb03dce71))
23
+
24
+ ### Bug Fixes
25
+
26
+ * remove last residuals of nova windows logs ([5b3627f](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b3627fef8bb40d2cdb640f0956dfe5c254cfb57))
27
+
28
+ ## [1.6.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.6.0...v1.6.1) (2026-04-23)
29
+
30
+ ### Bug Fixes
31
+
32
+ * check amazon user and key ([4f45cf1](https://github.com/verisoft-ai/appium-desktop-driver/commit/4f45cf1ad1a16a6d2412902be1dcfd8a899b1493))
33
+ * **vision:** make model argument mandatory in find_by_vision and executeFindByVision ([2eee54c](https://github.com/verisoft-ai/appium-desktop-driver/commit/2eee54cfa7fec16975f7ad748fe3fa4462bc9709))
34
+
35
+ ## [1.6.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.5.1...v1.6.0) (2026-04-15)
36
+
37
+ ### Features
38
+
39
+ * **vision:** add extra llm support for vision command. ([4055904](https://github.com/verisoft-ai/appium-desktop-driver/commit/40559042ff5e730e84a155c925da71834c220dcd))
40
+
41
+ ### Bug Fixes
42
+
43
+ * **vision:** address multi-provider review findings ([9c8a8ff](https://github.com/verisoft-ai/appium-desktop-driver/commit/9c8a8ff366bff7b3d9a047d3e09298f044d62aaf))
44
+
45
+ ## [1.5.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.5.0...v1.5.1) (2026-04-13)
46
+
47
+ ### Bug Fixes
48
+
49
+ * **actions:** Action execution according to W3C definition. ([8c9019d](https://github.com/verisoft-ai/appium-desktop-driver/commit/8c9019dc39841ec7f61d8770042db72355975d5f))
50
+ * fix json element rect unexpected end error ([8d1498f](https://github.com/verisoft-ai/appium-desktop-driver/commit/8d1498f3dc667e017e3f8ed4d409ec60e3fea72a))
51
+ * fix release actions tracking pressed mouse buttons ([0309ab0](https://github.com/verisoft-ai/appium-desktop-driver/commit/0309ab0a06c33591bb1d36b23e2dcbdf688d1772))
52
+ * **mouse move:** fix silent fail calculating mouse move after scroll into view. ([9e755eb](https://github.com/verisoft-ai/appium-desktop-driver/commit/9e755eb8c5d1ee475d85a8630bab6b583b2a5a8d))
53
+ * **release key:** fix handle null key action not iterating over pressed keys ([db18fd8](https://github.com/verisoft-ai/appium-desktop-driver/commit/db18fd8b8884883dc241b2ce5ef104cde2bccf11))
54
+
55
+ ## [1.5.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.3...v1.5.0) (2026-04-04)
56
+
57
+ ### Features
58
+
59
+ * add new command 'windows: findByVision' ([26c69aa](https://github.com/verisoft-ai/appium-desktop-driver/commit/26c69aaeed15ff94f9f469b1594bd640772fcf51))
60
+ * **mcp:** add analyze_screen tool via agent loop ([0bcbf09](https://github.com/verisoft-ai/appium-desktop-driver/commit/0bcbf0952fbe267e1c2cdc4176dbb722e51cb591))
61
+
62
+ ### Bug Fixes
63
+
64
+ * account display scaling for precise pixel calculation in analyze_screenshot tool. ([611f345](https://github.com/verisoft-ai/appium-desktop-driver/commit/611f345c957de5361af0c06f0857352ab27ad5ed))
65
+ * coordinate mapping with offset calculation ([c68bb4e](https://github.com/verisoft-ai/appium-desktop-driver/commit/c68bb4e7c34b4d39b3472da5ec5f6b566f15cf57))
66
+ * correct stale error message in find_by_vision MCP tool ([c82e107](https://github.com/verisoft-ai/appium-desktop-driver/commit/c82e107f7e1b40297e84d34ca2f62ff7b117f669))
67
+ * fix mock path vision test ([39b9386](https://github.com/verisoft-ai/appium-desktop-driver/commit/39b9386c80ddcc7ab595317ace4b1f1b9384f519))
68
+ * ignore import/no-unresolved for @modelcontextprotocol/sdk subpaths ([688c68c](https://github.com/verisoft-ai/appium-desktop-driver/commit/688c68cdc6d7eb4bf3225dc29d01950b14f94e1d))
69
+
70
+ ### Code Refactoring
71
+
72
+ * **vision:** unify find_by_vision MCP tool and findByVision command ([276d86f](https://github.com/verisoft-ai/appium-desktop-driver/commit/276d86f68be5e501f4510617442968abcac4db87))
73
+
74
+ ## [1.4.3](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.2...v1.4.3) (2026-03-26)
75
+
76
+ ### Miscellaneous Chores
77
+
78
+ * update website hero and footer attribution [skip ci] ([3a67147](https://github.com/verisoft-ai/appium-desktop-driver/commit/3a67147f89bc5f5400092ee7bc4083c55708dc4a))
79
+
80
+ ### Code Refactoring
81
+
82
+ * rename driver class from NovaWindowsDriver to AppiumDesktopDriver ([8a1eb39](https://github.com/verisoft-ai/appium-desktop-driver/commit/8a1eb393f48c7ee2d9fc5a17d7f262fa7e8ae596))
83
+
84
+ ## [1.4.2](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.1...v1.4.2) (2026-03-24)
85
+
86
+ ### Bug Fixes
87
+
88
+ * lint ([9832a8e](https://github.com/verisoft-ai/appium-desktop-driver/commit/9832a8eaf025e96f619d4c1b342c3c0909dfb5fa))
89
+
90
+ ### Miscellaneous Chores
91
+
92
+ * **website:** create website with mcp and driver demos ([5e8e910](https://github.com/verisoft-ai/appium-desktop-driver/commit/5e8e910fc1e69de8a81ec18898b7f0dd28135af6))
93
+
94
+ ## [1.4.1](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.4.0...v1.4.1) (2026-03-23)
95
+
96
+ ### Bug Fixes
97
+
98
+ * **mcp:** change mcp naming to match new Desktop Driver convention ([e77a7b0](https://github.com/verisoft-ai/appium-desktop-driver/commit/e77a7b02d4ed8769d61697c96c239bb03e3aef61))
99
+
100
+ ## [1.4.0](https://github.com/verisoft-ai/appium-desktop-driver/compare/v1.3.1...v1.4.0) (2026-03-23)
101
+
102
+ ### Features
103
+
104
+ * **capability:** Add capabilities windowSwitchRetries and windowSwitchInterval ([a831b3a](https://github.com/verisoft-ai/appium-desktop-driver/commit/a831b3af5d8d531a41483f36391d631cd787c371))
105
+ * custom env variables capabilities ([6a98b5c](https://github.com/verisoft-ai/appium-desktop-driver/commit/6a98b5c76bdfecf1ef6a893ea9c37abdd5e47c33))
106
+ * **display:** add support for multi monitor testing ([1029aec](https://github.com/verisoft-ai/appium-desktop-driver/commit/1029aec97adb420e9525e1f325c64870dc51585c))
107
+ * Implemented missing commands ([4434b99](https://github.com/verisoft-ai/appium-desktop-driver/commit/4434b996fa33cd0214c7cd44073f34806cd1c99f))
108
+ * **mcp:** add MCP server with 39 tools and unit test suite ([cf3d464](https://github.com/verisoft-ai/appium-desktop-driver/commit/cf3d464d1b74efbdddb04aa16ff3a19e19564934))
109
+
110
+ ### Bug Fixes
111
+
112
+ * Add allowed tools to claude code reviewer ([c4c18e9](https://github.com/verisoft-ai/appium-desktop-driver/commit/c4c18e9f35915eb609e41572cb3c5ea15e3314a7))
113
+ * add tabbing ([c0cb0e8](https://github.com/verisoft-ai/appium-desktop-driver/commit/c0cb0e8bb4fb37c9f70b8e891c659c56142c1943))
114
+ * fix attaching to wrong application window ([8960843](https://github.com/verisoft-ai/appium-desktop-driver/commit/8960843d548c98728880c901b154215b6265b69e))
115
+ * fix code review comments ([d7bebd9](https://github.com/verisoft-ai/appium-desktop-driver/commit/d7bebd9ff1660fd065a92e7008344c3b1323bd27))
116
+ * **lint:** resolve lint errors ([5b72f12](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b72f122472cdd4e563aa044b1baa2a52af7d10a))
117
+ * **mcp:** resolve bugs, add tool annotations, and new UIA tools ([fd73365](https://github.com/verisoft-ai/appium-desktop-driver/commit/fd7336552264a52ad2dda8c28bee2afcf44050a6))
118
+ * Remove claude code review workflow ([88f921d](https://github.com/verisoft-ai/appium-desktop-driver/commit/88f921d81ba9b81ff1578b2ac34c81d337670f30))
119
+ * Remove outerloops ([92eedfa](https://github.com/verisoft-ai/appium-desktop-driver/commit/92eedfa5decf6125c0f688da2d4c3bcf896491d5))
120
+ * replace NovaWindows automation name with DesktopDriver ([dd585b9](https://github.com/verisoft-ai/appium-desktop-driver/commit/dd585b9013fd5b128e10c42af86ca4e5f86f6934))
121
+ * **window:** narrow appProcessIds to the attached window's PID ([d281444](https://github.com/verisoft-ai/appium-desktop-driver/commit/d2814445ab5248483d451f1817fbff67d30d7654))
122
+ * **window:** track child processes spawned from launched apps. ([f1e6bff](https://github.com/verisoft-ai/appium-desktop-driver/commit/f1e6bfffe5bfcdebe884de207eabce8381c83a67))
123
+ * **window:** window handles access capability added ([eefb804](https://github.com/verisoft-ai/appium-desktop-driver/commit/eefb8040b2ec43795b4c985e42090dad2fa2e6ae))
124
+
125
+ ### Miscellaneous Chores
126
+
127
+ * bump version to 1.1.0 ([393bdae](https://github.com/verisoft-ai/appium-desktop-driver/commit/393bdaeaa0070385a15a61affe88c059c8967c6a))
128
+ * bump version to 1.2.0 ([94a4f04](https://github.com/verisoft-ai/appium-desktop-driver/commit/94a4f046be53c3b804497ad4e1d2782860e25070))
129
+ * **claude:** Add constraints and context for claude code review ([e95c6b2](https://github.com/verisoft-ai/appium-desktop-driver/commit/e95c6b219f436dd030f4e7dd840713e651af9cb4))
130
+ * **claude:** change constraints for claude code review ([3acee1c](https://github.com/verisoft-ai/appium-desktop-driver/commit/3acee1c1565b575e84f3b087aff6085b6b524229))
131
+ * **npm:** Ignore build artifacts and local mcp/claude config ([c9d3529](https://github.com/verisoft-ai/appium-desktop-driver/commit/c9d3529cf1c259d36eaf82e64702fdd080463195))
132
+ * prepare package for verisoft npm distribution ([5b35ff7](https://github.com/verisoft-ai/appium-desktop-driver/commit/5b35ff722d8254f24fea2bfe5112f4e0bddfc1e7))
133
+ * **release:** bump version and re-added the auto release workflow ([8555903](https://github.com/verisoft-ai/appium-desktop-driver/commit/8555903c4b3038d11fe24c038ef83964f71a1710))
134
+ * remove auto publish on push to main ([e940fd1](https://github.com/verisoft-ai/appium-desktop-driver/commit/e940fd1e4f20a505ea81dd668b4240abd2053d7f))
135
+
136
+ ### Code Refactoring
137
+
138
+ * **mcp:** remove auto-start, require Appium to be running externally ([8b76810](https://github.com/verisoft-ai/appium-desktop-driver/commit/8b76810041db68c960b3448173a8adca52679390))
139
+
140
+ ## [1.3.1](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.3.0...v1.3.1) (2026-03-09)
141
+
142
+ ### Bug Fixes
143
+
144
+ * add stderr encoding for PowerShell session ([a233063](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a233063b4509e41c047fcc3603b29b944c5ac374))
145
+ * fixed incorrect $pattern variable reference ([a0afceb](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a0afceb7e682219b5e82759c52e20c59bff1225f))
146
+ * fixed not being able to attach to slow-starting classic apps on session creation ([f25b000](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/f25b000533be1ef2a7c0bc350bf62a3cd1b60a45))
147
+
148
+ ## [1.3.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.2.0...v1.3.0) (2026-03-06)
149
+
150
+ ### Features
151
+
152
+ * **commands:** add extra W3C commands ([57c654a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/57c654a1e1e43c8a5d31ed8103aba338883efaa9))
153
+ * **commands:** add support for close app and launch app ([26db919](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/26db919c17ce74ff3c5ef2776544affecb32e2fc))
154
+ * **commands:** implement waitForAppLaunch and forceQuit ([6cce956](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6cce9565ce51b9f0e354b14819f41a6fc39ffc50))
155
+ * **tests:** add unit tests and missing commands - recording, deletion and click and drag ([a8989c0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a8989c06816b3f9b5b5de82d85895106ab062aca))
156
+
157
+ ### Bug Fixes
158
+
159
+ * Bind commands to this instance (not prototype) so each driver instance uses its own powershell session ([#56](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/56)) [skip ci] ([6dc2125](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6dc2125c505b392f100036d532326202c0a9c8d4))
160
+ * **capability:** fix post run script ([97b57af](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/97b57af2fe05803ecb66548b8a32202fbe9a45e6))
161
+ * **commands:** add allow-insecure check for fs operations ([4662035](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/466203585796fe08fdb4b119991363246cb00dab))
162
+ * **commands:** match closeApp and launchApp implementation with appium windows driver ([073c566](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/073c566edb3528380196640eb33ee803b4fe2029))
163
+ * fix bugs and implemented end to end tests ([47efa4c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/47efa4cf00fbac2e15e07e572cdf3e4453ec1020))
164
+ * lint ([fb6ebc8](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fb6ebc83b1ed5c0fd0c5230d2948d4f5cb156b17))
165
+ * **lint:** lint ([acf7271](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/acf727179dfe1380d42a33a6d38f5175b22cb90d))
166
+ * **recorder:** fix screen recording ([9da1025](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/9da1025c994cb0c3221119690f01a0584b3cf333))
167
+ * **recorder:** validate outputPath before rimraf ([8aa49dd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/8aa49dd27b2b9bb54329efa0555bb5ef21dc36b5))
168
+
169
+ ### Miscellaneous Chores
170
+
171
+ * **release:** 1.3.0 [skip ci] ([c29b822](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c29b8223fc6f0435363d6207af0ab1185b811b60))
172
+
173
+ ## [1.3.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.2.0...v1.3.0) (2026-03-06)
174
+
175
+ ### Features
176
+
177
+ * **commands:** add extra W3C commands ([57c654a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/57c654a1e1e43c8a5d31ed8103aba338883efaa9))
178
+ * **commands:** add support for close app and launch app ([26db919](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/26db919c17ce74ff3c5ef2776544affecb32e2fc))
179
+ * **commands:** implement waitForAppLaunch and forceQuit ([6cce956](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6cce9565ce51b9f0e354b14819f41a6fc39ffc50))
180
+ * **tests:** add unit tests and missing commands - recording, deletion and click and drag ([a8989c0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a8989c06816b3f9b5b5de82d85895106ab062aca))
181
+
182
+ ### Bug Fixes
183
+
184
+ * Bind commands to this instance (not prototype) so each driver instance uses its own powershell session ([#56](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/56)) [skip ci] ([6dc2125](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6dc2125c505b392f100036d532326202c0a9c8d4))
185
+ * **capability:** fix post run script ([97b57af](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/97b57af2fe05803ecb66548b8a32202fbe9a45e6))
186
+ * **commands:** add allow-insecure check for fs operations ([4662035](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/466203585796fe08fdb4b119991363246cb00dab))
187
+ * **commands:** match closeApp and launchApp implementation with appium windows driver ([073c566](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/073c566edb3528380196640eb33ee803b4fe2029))
188
+ * fix bugs and implemented end to end tests ([47efa4c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/47efa4cf00fbac2e15e07e572cdf3e4453ec1020))
189
+ * lint ([fb6ebc8](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fb6ebc83b1ed5c0fd0c5230d2948d4f5cb156b17))
190
+ * **lint:** lint ([acf7271](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/acf727179dfe1380d42a33a6d38f5175b22cb90d))
191
+ * **recorder:** fix screen recording ([9da1025](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/9da1025c994cb0c3221119690f01a0584b3cf333))
192
+ * **recorder:** validate outputPath before rimraf ([8aa49dd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/8aa49dd27b2b9bb54329efa0555bb5ef21dc36b5))
193
+
194
+ ## [1.2.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.1.0...v1.2.0) (2026-01-09)
195
+
196
+ ### Features
197
+
198
+ * add "none" session option to start without attaching to any element ([22586a2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/22586a237f20e975adee25c13fba8c649420574d))
199
+ * add appWorkingDir, prerun, postrun, and isolatedScriptExecution capabilities ([5a581ae](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5a581ae7ae1e1a013cb8e332454f70762f8749c7))
200
+
201
+ ### Bug Fixes
202
+
203
+ * allow elementId with optional x/y offsets for click/hover ([2d01246](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/2d01246e009e2c7fd67165fc1d313446870021d3))
204
+ * **deps:** downgrade appium peer dependency to 3.0.0-rc.2 ([98262d2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/98262d297268cf40259946e4a52038103618f3b4))
205
+ * make modifierKeys case-insensitive ([7a05300](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/7a05300ef4a0792a9c1160dfab55537c96967f08))
206
+ * update ESLint config ([2e08f8d](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/2e08f8d5a1df9bf277b2c521584dddb5b0935e72))
207
+ * version bump ([a872a23](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a872a23fec5f10f692b9c61ba7f8d671f360211f))
208
+
209
+ ### Miscellaneous Chores
210
+
211
+ * add extra logging ([5da452f](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5da452fa71608d3f52a92c7ea6f82a78ff3139a6))
212
+ * bump peerDependency appium to ^3.1.0 ([cdee0ca](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/cdee0ca44a1423312351449b3227035976ba396f))
213
+ * configure semantic-release branches for stable and preview releases ([a4a1fa2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a4a1fa2b0b20c4494919699e8d307793cf18dc04))
214
+ * remove unnecessary ESLint ignore comments ([4c70038](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/4c7003809c6b6668315ed7e036b5ee6cf3595e51))
215
+ * upgrade dependencies and devDependencies to latest versions ([4fd016c](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/4fd016c5adc091305974b3a41c22423cadf6e3ab))
216
+
217
+ ## [1.1.0](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.0.1...v1.1.0) (2025-08-06)
218
+
219
+ ### Features
220
+
221
+ * adding appArguments option ([#26](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/26)) ([ded917b](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/ded917bdf2f8d224cc9cf917958177ed0e97078b))
222
+
223
+ ## [1.0.1](https://github.com/AutomateThePlanet/appium-novawindows-driver/compare/v1.0.0...v1.0.1) (2025-04-25)
224
+
225
+ ### Bug Fixes
226
+
227
+ * fixed crash in Node 22+ by using Buffer instead of {} with EnumDisplaySettingsA ([#17](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/17)) ([08e4907](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/08e49070020f071f3983fcb00c30e9a3ae16b9dc))
228
+ * set shouldCloseApp's default value to true ([#18](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/18)) ([28dc1d4](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/28dc1d443d416e9a44f4ddcd2fb31828e0b92bcb))
229
+
230
+ ### Code Refactoring
231
+
232
+ * remove unnecessary debug logging for name locator ([#19](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/19)) ([ad50be9](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/ad50be9f9b60145a2f203f294d326eb9499339fb))
233
+
234
+ ## 1.0.0 (2025-04-23)
235
+
236
+ ### Miscellaneous Chores
237
+
238
+ * add .gitignore ([631fa0a](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/631fa0a72f5cda861215ff4d98ccc41c44d357f6))
239
+ * adding eslint ([c05602d](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c05602d1aaa7fa003394ec663302017a3027db82))
240
+ * **ci:** add semantic-release workflow ([a9c39fd](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/a9c39fdab2d361678445a523a2830ea9925c4f1f))
241
+ * **lint:** fix linting issue ([6c2cb42](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/6c2cb42388a7f51842a1a5bd11905a9fe0e86ce9))
242
+ * **npm:** disable package-lock generation ([5a648ac](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/5a648ac7f65fcfef66afd6bf76ce2188b10d4ce9))
243
+ * **package:** add keywords and repository info ([fa165d0](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/fa165d007f6a424c0f11340b59ac73e1185091d8))
244
+ * **release:** rollback version to 0.0.1 for testing ([#11](https://github.com/AutomateThePlanet/appium-novawindows-driver/issues/11)) ([c4dd2c2](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/c4dd2c21e3067f70a11d72206fbc7f5da79380b6))
245
+ * updated dependencies [skip ci] ([08528fb](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/08528fb06727df50c087940fe541730a2a13483f))
246
+
247
+ ### Code Refactoring
248
+
249
+ * adding enums for click and updating ([89dcebf](https://github.com/AutomateThePlanet/appium-novawindows-driver/commit/89dcebfd026f7a68b4052f33fa2c928ba42162bf))
package/README.md CHANGED
@@ -51,8 +51,6 @@ isolatedScriptExecution | Whether PowerShell scripts are executed in an isolated
51
51
  appEnvironment | Optional object of custom environment variables to inject into the PowerShell session. The variables are only available for the lifetime of the session and do not affect the system environment. Example: `{"MY_VAR": "hello", "API_URL": "http://localhost:3000"}`.
52
52
  returnAllWindowHandles | When `true`, `getWindowHandles()` returns all top-level windows on the desktop (UIA root children) instead of only the windows belonging to the launched app. Useful for switching to arbitrary system windows. Default is `false`.
53
53
  ms:waitForAppLaunch | Time in seconds to wait for the app window to appear after launch. Default is `0` (falls back to 10 000 ms internal timeout).
54
- ms:windowSwitchRetries | Maximum number of retry attempts in `setWindow()` when the target window is not yet visible. Must be a non-negative integer. Default is `20`.
55
- ms:windowSwitchInterval | Sleep duration in milliseconds between each retry in `setWindow()`. Must be a non-negative integer. Default is `500`.
56
54
 
57
55
  Please note that more capabilities will be added as the development of this driver progresses. Since it is still in its early stages, some features may be missing or subject to change. If you need a specific capability or encounter any issues, please feel free to open an issue.
58
56
 
@@ -1,9 +1,11 @@
1
- import { ActionSequence, KeyAction, KeyActionSequence, PointerActionSequence, PointerMoveAction, ScrollAction, WheelActionSequence } from '@appium/types';
1
+ import { ActionSequence, KeyAction, KeyActionSequence, NullActionSequence, PointerActionSequence, PointerMoveAction, ScrollAction, WheelActionSequence } from '@appium/types';
2
2
  import { AppiumDesktopDriver } from '../driver';
3
3
  export declare function performActions(this: AppiumDesktopDriver, actionSequences: ActionSequence[]): Promise<void>;
4
4
  export declare function handleKeyActionSequence(this: AppiumDesktopDriver, actionSequence: KeyActionSequence): Promise<void>;
5
- export declare function handleSingleMousePointerAction(this: AppiumDesktopDriver, action: PointerActionSequence['actions'][number]): Promise<void>;
6
- export declare function handleSingleWheelAction(this: AppiumDesktopDriver, action: WheelActionSequence['actions'][number]): Promise<void>;
5
+ export declare function handlePointerActionSequence(this: AppiumDesktopDriver, actionSequence: PointerActionSequence): Promise<void>;
6
+ export declare function handleMousePointerActionSequence(this: AppiumDesktopDriver, actionSequence: PointerActionSequence): Promise<void>;
7
+ export declare function handleWheelActionSequence(this: AppiumDesktopDriver, actionSequence: WheelActionSequence): Promise<void>;
8
+ export declare function handleNullActionSequence(this: AppiumDesktopDriver, actionSequence: NullActionSequence): Promise<void>;
7
9
  export declare function handleMouseMoveAction(this: AppiumDesktopDriver, action: PointerMoveAction | ScrollAction): Promise<void>;
8
10
  export declare function handleKeyAction(this: AppiumDesktopDriver, action: KeyAction): Promise<void>;
9
11
  export declare function releaseActions(this: AppiumDesktopDriver): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../lib/commands/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,SAAS,EACT,iBAAiB,EAEjB,qBAAqB,EACrB,iBAAiB,EAEjB,YAAY,EACZ,mBAAmB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOhD,wBAAsB,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChH;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzH;AAGD,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/I;AAGD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtI;AAGD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B9H;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFjG;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7E"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../lib/commands/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACtB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,wBAAsB,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhH;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzH;AAED,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CASjI;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtI;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7H;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3H;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B9H;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFjG;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B7E"}
@@ -2,58 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.performActions = performActions;
4
4
  exports.handleKeyActionSequence = handleKeyActionSequence;
5
- exports.handleSingleMousePointerAction = handleSingleMousePointerAction;
6
- exports.handleSingleWheelAction = handleSingleWheelAction;
5
+ exports.handlePointerActionSequence = handlePointerActionSequence;
6
+ exports.handleMousePointerActionSequence = handleMousePointerActionSequence;
7
+ exports.handleWheelActionSequence = handleWheelActionSequence;
8
+ exports.handleNullActionSequence = handleNullActionSequence;
7
9
  exports.handleMouseMoveAction = handleMouseMoveAction;
8
10
  exports.handleKeyAction = handleKeyAction;
9
11
  exports.releaseActions = releaseActions;
10
12
  const base_driver_1 = require("@appium/base-driver");
11
13
  const user32_1 = require("../winapi/user32");
12
14
  const util_1 = require("../util");
13
- const powershell_1 = require("../powershell");
14
- const element_1 = require("./element");
15
15
  const enums_1 = require("../enums");
16
16
  async function performActions(actionSequences) {
17
- // Validate all sequences upfront before executing any actions
18
17
  for (const actionSequence of actionSequences) {
19
- if (actionSequence.type === 'pointer' &&
20
- (actionSequence.parameters?.pointerType === 'touch' || actionSequence.parameters?.pointerType === 'pen')) {
21
- throw new base_driver_1.errors.NotImplementedError(`Pointer type ${actionSequence.parameters.pointerType} not implemented yet.`);
22
- }
23
- if (!['key', 'pointer', 'wheel', 'none'].includes(actionSequence.type)) {
24
- throw new base_driver_1.errors.InvalidArgumentError();
25
- }
26
- }
27
- const maxTicks = Math.max(0, ...actionSequences.map((seq) => seq.actions.length));
28
- for (let tick = 0; tick < maxTicks; tick++) {
29
- const tickPromises = [];
30
- for (const actionSequence of actionSequences) {
31
- const action = actionSequence.actions[tick];
32
- if (!action) {
33
- continue;
34
- }
35
- ;
36
- switch (actionSequence.type) {
37
- case 'key':
38
- tickPromises.push(this.handleKeyAction(action));
39
- break;
40
- case 'pointer':
41
- tickPromises.push(this.handleSingleMousePointerAction(action));
42
- break;
43
- case 'wheel':
44
- tickPromises.push(this.handleSingleWheelAction(action));
45
- break;
46
- case 'none': {
47
- const duration = action.duration;
48
- if (duration) {
49
- tickPromises.push((0, util_1.sleep)(duration));
50
- }
51
- ;
52
- break;
53
- }
54
- }
18
+ switch (actionSequence.type) {
19
+ case 'key':
20
+ await this.handleKeyActionSequence(actionSequence);
21
+ break;
22
+ case 'wheel':
23
+ await this.handleWheelActionSequence(actionSequence);
24
+ break;
25
+ case 'pointer':
26
+ await this.handlePointerActionSequence(actionSequence);
27
+ break;
28
+ case 'none':
29
+ await this.handleNullActionSequence(actionSequence);
30
+ break;
31
+ default:
32
+ throw new base_driver_1.errors.InvalidArgumentError();
55
33
  }
56
- await Promise.all(tickPromises);
57
34
  }
58
35
  }
59
36
  ;
@@ -63,44 +40,63 @@ async function handleKeyActionSequence(actionSequence) {
63
40
  await this.handleKeyAction(action);
64
41
  }
65
42
  }
66
- async function handleSingleMousePointerAction(action) {
67
- switch (action.type) {
68
- case 'pointerMove':
69
- await this.handleMouseMoveAction(action);
70
- break;
71
- case 'pointerDown':
72
- (0, user32_1.mouseDown)(action.button);
73
- this.mouseButtonsDown.add(action.button);
74
- break;
75
- case 'pointerUp':
76
- (0, user32_1.mouseUp)(action.button);
77
- this.mouseButtonsDown.delete(action.button);
78
- break;
79
- case 'pause':
80
- if (action.duration) {
81
- await (0, util_1.sleep)(action.duration);
82
- }
83
- break;
43
+ async function handlePointerActionSequence(actionSequence) {
44
+ switch (actionSequence.parameters?.pointerType) {
45
+ case 'touch':
46
+ case 'pen':
47
+ throw new base_driver_1.errors.NotImplementedError(`Pointer type ${actionSequence.parameters?.pointerType} not implemented yet.`);
48
+ case 'mouse':
84
49
  default:
85
- throw new base_driver_1.errors.InvalidArgumentError();
50
+ await this.handleMousePointerActionSequence(actionSequence);
86
51
  }
87
52
  }
88
- async function handleSingleWheelAction(action) {
89
- switch (action.type) {
90
- case 'scroll':
91
- await this.handleMouseMoveAction({ ...action, duration: 0 });
92
- (0, user32_1.mouseScroll)(action.deltaX, action.deltaY);
93
- if (action.duration) {
94
- await (0, util_1.sleep)(action.duration);
95
- }
96
- break;
97
- case 'pause':
98
- if (action.duration) {
99
- await (0, util_1.sleep)(action.duration);
100
- }
101
- break;
102
- default:
103
- throw new base_driver_1.errors.InvalidArgumentError();
53
+ async function handleMousePointerActionSequence(actionSequence) {
54
+ const actions = actionSequence.actions;
55
+ for (const action of actions) {
56
+ switch (action.type) {
57
+ case 'pointerMove':
58
+ await this.handleMouseMoveAction(action);
59
+ break;
60
+ case 'pointerDown':
61
+ (0, user32_1.mouseDown)(action.button);
62
+ break;
63
+ case 'pointerUp':
64
+ (0, user32_1.mouseUp)(action.button);
65
+ break;
66
+ case 'pause':
67
+ if (action.duration) {
68
+ await (0, util_1.sleep)(action.duration);
69
+ }
70
+ break;
71
+ default:
72
+ throw new base_driver_1.errors.InvalidArgumentError();
73
+ }
74
+ }
75
+ }
76
+ async function handleWheelActionSequence(actionSequence) {
77
+ const actions = actionSequence.actions;
78
+ for (const action of actions) {
79
+ switch (action.type) {
80
+ case 'scroll':
81
+ await this.handleMouseMoveAction(action);
82
+ (0, user32_1.mouseScroll)(action.deltaX, action.deltaY);
83
+ break;
84
+ case 'pause':
85
+ if (action.duration) {
86
+ await (0, util_1.sleep)(action.duration);
87
+ }
88
+ break;
89
+ default:
90
+ throw new base_driver_1.errors.InvalidArgumentError();
91
+ }
92
+ }
93
+ }
94
+ async function handleNullActionSequence(actionSequence) {
95
+ const actions = actionSequence.actions;
96
+ for (const action of actions) {
97
+ if (action.duration) {
98
+ await (0, util_1.sleep)(action.duration);
99
+ }
104
100
  }
105
101
  }
106
102
  async function handleMouseMoveAction(action) {
@@ -109,23 +105,20 @@ async function handleMouseMoveAction(action) {
109
105
  case 'pointer':
110
106
  await (0, user32_1.mouseMoveRelative)(action.x, action.y, action.duration, easingFunction);
111
107
  break;
112
- case undefined:
113
108
  case 'viewport': {
114
- const rootRectJson = await this.sendPowerShellCommand(powershell_1.AutomationElement.automationRoot.buildGetElementRectCommand());
115
- const rootRect = JSON.parse(rootRectJson.replaceAll(/(?:infinity)/gi, 0x7FFFFFFF.toString()));
109
+ const rootRect = await this.sendCommand('getRootRect', {});
116
110
  await (0, user32_1.mouseMoveAbsolute)(action.x + rootRect.x, action.y + rootRect.y, action.duration, easingFunction);
117
111
  break;
118
112
  }
119
113
  default:
120
114
  if (action.origin?.[base_driver_1.W3C_ELEMENT_KEY]) {
121
- const element = new powershell_1.FoundAutomationElement(action.origin[base_driver_1.W3C_ELEMENT_KEY]);
122
- let rect = await (0, element_1.fetchElementRect)(this, element);
115
+ const elementId = action.origin[base_driver_1.W3C_ELEMENT_KEY];
116
+ let rect = await this.sendCommand('getRect', { elementId });
123
117
  if (Object.values(rect).some((x) => x === 0x7FFFFFFF)) {
124
- await this.sendPowerShellCommand(element.buildScrollIntoViewCommand());
125
- rect = await (0, element_1.fetchElementRect)(this, element);
118
+ await this.sendCommand('scrollElementIntoView', { elementId });
119
+ rect = await this.sendCommand('getRect', { elementId });
126
120
  }
127
- // W3C spec: x and y are offsets from the element's centre point.
128
- await (0, user32_1.mouseMoveAbsolute)(rect.x + rect.width / 2 + (action.x ?? 0), rect.y + rect.height / 2 + (action.y ?? 0), action.duration, easingFunction);
121
+ await (0, user32_1.mouseMoveAbsolute)(action.x === 0 ? rect.x + rect.width / 2 : action.x, action.y === 0 ? rect.y + rect.height / 2 : action.y, action.duration, easingFunction);
129
122
  break;
130
123
  }
131
124
  throw new base_driver_1.errors.InvalidArgumentError();
@@ -197,7 +190,7 @@ async function handleKeyAction(action) {
197
190
  if (this.keyboardState.alt) {
198
191
  await this.handleKeyAction({ type: 'keyUp', value: enums_1.Key.ALT });
199
192
  }
200
- for (const key of Array.from(this.keyboardState.pressed)) {
193
+ for (const key in Array.of(this.keyboardState.pressed)) {
201
194
  (0, user32_1.keyUp)(key);
202
195
  this.keyboardState.pressed.delete(key);
203
196
  }
@@ -239,9 +232,8 @@ async function releaseActions() {
239
232
  (0, user32_1.keyUp)(key);
240
233
  }
241
234
  this.keyboardState.pressed.clear();
242
- for (const button of this.mouseButtonsDown) {
243
- (0, user32_1.mouseUp)(button);
244
- }
245
- this.mouseButtonsDown.clear();
235
+ (0, user32_1.mouseUp)(0);
236
+ (0, user32_1.mouseUp)(1);
237
+ (0, user32_1.mouseUp)(2);
246
238
  }
247
239
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../lib/commands/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../lib/commands/actions.ts"],"names":[],"mappings":"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"}