appium-desktop-driver 1.2.0

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 (208) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +609 -0
  3. package/ROADMAP.md +175 -0
  4. package/build/lib/commands/actions.d.ts +12 -0
  5. package/build/lib/commands/actions.d.ts.map +1 -0
  6. package/build/lib/commands/actions.js +242 -0
  7. package/build/lib/commands/actions.js.map +1 -0
  8. package/build/lib/commands/app.d.ts +18 -0
  9. package/build/lib/commands/app.d.ts.map +1 -0
  10. package/build/lib/commands/app.js +280 -0
  11. package/build/lib/commands/app.js.map +1 -0
  12. package/build/lib/commands/device.d.ts +11 -0
  13. package/build/lib/commands/device.d.ts.map +1 -0
  14. package/build/lib/commands/device.js +236 -0
  15. package/build/lib/commands/device.js.map +1 -0
  16. package/build/lib/commands/element.d.ts +16 -0
  17. package/build/lib/commands/element.d.ts.map +1 -0
  18. package/build/lib/commands/element.js +233 -0
  19. package/build/lib/commands/element.js.map +1 -0
  20. package/build/lib/commands/extension.d.ts +124 -0
  21. package/build/lib/commands/extension.d.ts.map +1 -0
  22. package/build/lib/commands/extension.js +715 -0
  23. package/build/lib/commands/extension.js.map +1 -0
  24. package/build/lib/commands/functions.d.ts +3 -0
  25. package/build/lib/commands/functions.d.ts.map +1 -0
  26. package/build/lib/commands/functions.js +194 -0
  27. package/build/lib/commands/functions.js.map +1 -0
  28. package/build/lib/commands/index.d.ts +178 -0
  29. package/build/lib/commands/index.d.ts.map +1 -0
  30. package/build/lib/commands/index.js +54 -0
  31. package/build/lib/commands/index.js.map +1 -0
  32. package/build/lib/commands/powershell.d.ts +6 -0
  33. package/build/lib/commands/powershell.d.ts.map +1 -0
  34. package/build/lib/commands/powershell.js +202 -0
  35. package/build/lib/commands/powershell.js.map +1 -0
  36. package/build/lib/commands/screen-recorder.d.ts +40 -0
  37. package/build/lib/commands/screen-recorder.d.ts.map +1 -0
  38. package/build/lib/commands/screen-recorder.js +183 -0
  39. package/build/lib/commands/screen-recorder.js.map +1 -0
  40. package/build/lib/commands/system.d.ts +4 -0
  41. package/build/lib/commands/system.d.ts.map +1 -0
  42. package/build/lib/commands/system.js +8 -0
  43. package/build/lib/commands/system.js.map +1 -0
  44. package/build/lib/constants.d.ts +3 -0
  45. package/build/lib/constants.d.ts.map +1 -0
  46. package/build/lib/constants.js +6 -0
  47. package/build/lib/constants.js.map +1 -0
  48. package/build/lib/constraints.d.ts +58 -0
  49. package/build/lib/constraints.d.ts.map +1 -0
  50. package/build/lib/constraints.js +60 -0
  51. package/build/lib/constraints.js.map +1 -0
  52. package/build/lib/driver.d.ts +36 -0
  53. package/build/lib/driver.d.ts.map +1 -0
  54. package/build/lib/driver.js +209 -0
  55. package/build/lib/driver.js.map +1 -0
  56. package/build/lib/enums.d.ts +89 -0
  57. package/build/lib/enums.d.ts.map +1 -0
  58. package/build/lib/enums.js +83 -0
  59. package/build/lib/enums.js.map +1 -0
  60. package/build/lib/mcp/appium-manager.d.ts +8 -0
  61. package/build/lib/mcp/appium-manager.d.ts.map +1 -0
  62. package/build/lib/mcp/appium-manager.js +160 -0
  63. package/build/lib/mcp/appium-manager.js.map +1 -0
  64. package/build/lib/mcp/config.d.ts +7 -0
  65. package/build/lib/mcp/config.d.ts.map +1 -0
  66. package/build/lib/mcp/config.js +14 -0
  67. package/build/lib/mcp/config.js.map +1 -0
  68. package/build/lib/mcp/constants.d.ts +3 -0
  69. package/build/lib/mcp/constants.d.ts.map +1 -0
  70. package/build/lib/mcp/constants.js +6 -0
  71. package/build/lib/mcp/constants.js.map +1 -0
  72. package/build/lib/mcp/errors.d.ts +2 -0
  73. package/build/lib/mcp/errors.d.ts.map +1 -0
  74. package/build/lib/mcp/errors.js +10 -0
  75. package/build/lib/mcp/errors.js.map +1 -0
  76. package/build/lib/mcp/index.d.ts +3 -0
  77. package/build/lib/mcp/index.d.ts.map +1 -0
  78. package/build/lib/mcp/index.js +113 -0
  79. package/build/lib/mcp/index.js.map +1 -0
  80. package/build/lib/mcp/session.d.ts +24 -0
  81. package/build/lib/mcp/session.d.ts.map +1 -0
  82. package/build/lib/mcp/session.js +77 -0
  83. package/build/lib/mcp/session.js.map +1 -0
  84. package/build/lib/mcp/tools/advanced.d.ts +4 -0
  85. package/build/lib/mcp/tools/advanced.d.ts.map +1 -0
  86. package/build/lib/mcp/tools/advanced.js +119 -0
  87. package/build/lib/mcp/tools/advanced.js.map +1 -0
  88. package/build/lib/mcp/tools/app.d.ts +4 -0
  89. package/build/lib/mcp/tools/app.d.ts.map +1 -0
  90. package/build/lib/mcp/tools/app.js +64 -0
  91. package/build/lib/mcp/tools/app.js.map +1 -0
  92. package/build/lib/mcp/tools/clipboard.d.ts +4 -0
  93. package/build/lib/mcp/tools/clipboard.d.ts.map +1 -0
  94. package/build/lib/mcp/tools/clipboard.js +41 -0
  95. package/build/lib/mcp/tools/clipboard.js.map +1 -0
  96. package/build/lib/mcp/tools/find.d.ts +4 -0
  97. package/build/lib/mcp/tools/find.d.ts.map +1 -0
  98. package/build/lib/mcp/tools/find.js +119 -0
  99. package/build/lib/mcp/tools/find.js.map +1 -0
  100. package/build/lib/mcp/tools/index.d.ts +4 -0
  101. package/build/lib/mcp/tools/index.d.ts.map +1 -0
  102. package/build/lib/mcp/tools/index.js +24 -0
  103. package/build/lib/mcp/tools/index.js.map +1 -0
  104. package/build/lib/mcp/tools/inspect.d.ts +4 -0
  105. package/build/lib/mcp/tools/inspect.d.ts.map +1 -0
  106. package/build/lib/mcp/tools/inspect.js +106 -0
  107. package/build/lib/mcp/tools/inspect.js.map +1 -0
  108. package/build/lib/mcp/tools/interact.d.ts +4 -0
  109. package/build/lib/mcp/tools/interact.d.ts.map +1 -0
  110. package/build/lib/mcp/tools/interact.js +121 -0
  111. package/build/lib/mcp/tools/interact.js.map +1 -0
  112. package/build/lib/mcp/tools/patterns.d.ts +4 -0
  113. package/build/lib/mcp/tools/patterns.d.ts.map +1 -0
  114. package/build/lib/mcp/tools/patterns.js +136 -0
  115. package/build/lib/mcp/tools/patterns.js.map +1 -0
  116. package/build/lib/mcp/tools/session.d.ts +4 -0
  117. package/build/lib/mcp/tools/session.d.ts.map +1 -0
  118. package/build/lib/mcp/tools/session.js +55 -0
  119. package/build/lib/mcp/tools/session.js.map +1 -0
  120. package/build/lib/mcp/tools/window.d.ts +4 -0
  121. package/build/lib/mcp/tools/window.d.ts.map +1 -0
  122. package/build/lib/mcp/tools/window.js +134 -0
  123. package/build/lib/mcp/tools/window.js.map +1 -0
  124. package/build/lib/powershell/common.d.ts +39 -0
  125. package/build/lib/powershell/common.d.ts.map +1 -0
  126. package/build/lib/powershell/common.js +121 -0
  127. package/build/lib/powershell/common.js.map +1 -0
  128. package/build/lib/powershell/conditions.d.ts +24 -0
  129. package/build/lib/powershell/conditions.d.ts.map +1 -0
  130. package/build/lib/powershell/conditions.js +131 -0
  131. package/build/lib/powershell/conditions.js.map +1 -0
  132. package/build/lib/powershell/converter.d.ts +3 -0
  133. package/build/lib/powershell/converter.d.ts.map +1 -0
  134. package/build/lib/powershell/converter.js +273 -0
  135. package/build/lib/powershell/converter.js.map +1 -0
  136. package/build/lib/powershell/core.d.ts +8 -0
  137. package/build/lib/powershell/core.d.ts.map +1 -0
  138. package/build/lib/powershell/core.js +30 -0
  139. package/build/lib/powershell/core.js.map +1 -0
  140. package/build/lib/powershell/elements.d.ts +70 -0
  141. package/build/lib/powershell/elements.d.ts.map +1 -0
  142. package/build/lib/powershell/elements.js +523 -0
  143. package/build/lib/powershell/elements.js.map +1 -0
  144. package/build/lib/powershell/index.d.ts +8 -0
  145. package/build/lib/powershell/index.d.ts.map +1 -0
  146. package/build/lib/powershell/index.js +24 -0
  147. package/build/lib/powershell/index.js.map +1 -0
  148. package/build/lib/powershell/regex.d.ts +19 -0
  149. package/build/lib/powershell/regex.d.ts.map +1 -0
  150. package/build/lib/powershell/regex.js +68 -0
  151. package/build/lib/powershell/regex.js.map +1 -0
  152. package/build/lib/powershell/types.d.ts +155 -0
  153. package/build/lib/powershell/types.d.ts.map +1 -0
  154. package/build/lib/powershell/types.js +141 -0
  155. package/build/lib/powershell/types.js.map +1 -0
  156. package/build/lib/util.d.ts +17 -0
  157. package/build/lib/util.d.ts.map +1 -0
  158. package/build/lib/util.js +76 -0
  159. package/build/lib/util.js.map +1 -0
  160. package/build/lib/winapi/types/index.d.ts +8 -0
  161. package/build/lib/winapi/types/index.d.ts.map +1 -0
  162. package/build/lib/winapi/types/index.js +24 -0
  163. package/build/lib/winapi/types/index.js.map +1 -0
  164. package/build/lib/winapi/types/input.d.ts +11 -0
  165. package/build/lib/winapi/types/input.d.ts.map +1 -0
  166. package/build/lib/winapi/types/input.js +12 -0
  167. package/build/lib/winapi/types/input.js.map +1 -0
  168. package/build/lib/winapi/types/keyeventf.d.ts +13 -0
  169. package/build/lib/winapi/types/keyeventf.d.ts.map +1 -0
  170. package/build/lib/winapi/types/keyeventf.js +14 -0
  171. package/build/lib/winapi/types/keyeventf.js.map +1 -0
  172. package/build/lib/winapi/types/mouseeventf.d.ts +34 -0
  173. package/build/lib/winapi/types/mouseeventf.d.ts.map +1 -0
  174. package/build/lib/winapi/types/mouseeventf.js +37 -0
  175. package/build/lib/winapi/types/mouseeventf.js.map +1 -0
  176. package/build/lib/winapi/types/scancode.d.ts +95 -0
  177. package/build/lib/winapi/types/scancode.d.ts.map +1 -0
  178. package/build/lib/winapi/types/scancode.js +96 -0
  179. package/build/lib/winapi/types/scancode.js.map +1 -0
  180. package/build/lib/winapi/types/systemmetric.d.ts +214 -0
  181. package/build/lib/winapi/types/systemmetric.d.ts.map +1 -0
  182. package/build/lib/winapi/types/systemmetric.js +215 -0
  183. package/build/lib/winapi/types/systemmetric.js.map +1 -0
  184. package/build/lib/winapi/types/virtualkey.d.ts +353 -0
  185. package/build/lib/winapi/types/virtualkey.d.ts.map +1 -0
  186. package/build/lib/winapi/types/virtualkey.js +354 -0
  187. package/build/lib/winapi/types/virtualkey.js.map +1 -0
  188. package/build/lib/winapi/types/xmousebutton.d.ts +7 -0
  189. package/build/lib/winapi/types/xmousebutton.d.ts.map +1 -0
  190. package/build/lib/winapi/types/xmousebutton.js +8 -0
  191. package/build/lib/winapi/types/xmousebutton.js.map +1 -0
  192. package/build/lib/winapi/user32.d.ts +56 -0
  193. package/build/lib/winapi/user32.d.ts.map +1 -0
  194. package/build/lib/winapi/user32.js +592 -0
  195. package/build/lib/winapi/user32.js.map +1 -0
  196. package/build/lib/xpath/core.d.ts +8 -0
  197. package/build/lib/xpath/core.d.ts.map +1 -0
  198. package/build/lib/xpath/core.js +593 -0
  199. package/build/lib/xpath/core.js.map +1 -0
  200. package/build/lib/xpath/functions.d.ts +4 -0
  201. package/build/lib/xpath/functions.d.ts.map +1 -0
  202. package/build/lib/xpath/functions.js +271 -0
  203. package/build/lib/xpath/functions.js.map +1 -0
  204. package/build/lib/xpath/index.d.ts +3 -0
  205. package/build/lib/xpath/index.d.ts.map +1 -0
  206. package/build/lib/xpath/index.js +19 -0
  207. package/build/lib/xpath/index.js.map +1 -0
  208. package/package.json +71 -0
@@ -0,0 +1,592 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.keyDown = keyDown;
7
+ exports.keyUp = keyUp;
8
+ exports.mouseMoveRelative = mouseMoveRelative;
9
+ exports.mouseScroll = mouseScroll;
10
+ exports.mouseMoveAbsolute = mouseMoveAbsolute;
11
+ exports.mouseDown = mouseDown;
12
+ exports.mouseUp = mouseUp;
13
+ exports.getDisplayOrientation = getDisplayOrientation;
14
+ exports.setDpiAwareness = setDpiAwareness;
15
+ exports.getWindowAllHandlesForProcessIds = getWindowAllHandlesForProcessIds;
16
+ exports.trySetForegroundWindow = trySetForegroundWindow;
17
+ exports.sendKeyboardEvents = sendKeyboardEvents;
18
+ const koffi_1 = require("koffi");
19
+ const types_1 = require("./types");
20
+ const systemmetric_1 = require("./types/systemmetric");
21
+ const base_driver_1 = require("@appium/base-driver");
22
+ const bezier_easing_1 = __importDefault(require("bezier-easing"));
23
+ const util_1 = require("../util");
24
+ const enums_1 = require("../enums");
25
+ const easingFunctions = Object.freeze({
26
+ 'linear': (x) => x,
27
+ 'ease': (0, bezier_easing_1.default)(0.25, 1, 0.25, 1),
28
+ 'ease-in': (0, bezier_easing_1.default)(0.42, 0, 1, 1),
29
+ 'ease-out': (0, bezier_easing_1.default)(0, 0, 0.58, 1),
30
+ 'ease-in-out': (0, bezier_easing_1.default)(0.42, 0, 0.58, 1),
31
+ });
32
+ const UINT32_MAX = 0xFFFFFFFF;
33
+ const UINT16_MAX = 0xFFFF;
34
+ const user32 = (0, koffi_1.load)('user32.dll');
35
+ const POINT = (0, koffi_1.struct)('POINT', {
36
+ x: 'long',
37
+ y: 'long',
38
+ });
39
+ const MOUSEINPUT = (0, koffi_1.struct)('MOUSEINPUT', {
40
+ dx: 'long',
41
+ dy: 'long',
42
+ mouseData: 'uint32',
43
+ dwFlags: 'uint32',
44
+ time: 'uint32',
45
+ dwExtraInfo: 'uintptr',
46
+ });
47
+ const KEYBDINPUT = (0, koffi_1.struct)('KEYBDINPUT', {
48
+ wVk: 'uint16',
49
+ wScan: 'uint16',
50
+ dwFlags: 'uint32',
51
+ time: 'uint32',
52
+ dwExtraInfo: 'uintptr',
53
+ });
54
+ const HARDWAREINPUT = (0, koffi_1.struct)('HARDWAREINPUT', {
55
+ uMsg: 'uint32',
56
+ wParamL: 'uint16',
57
+ wParamH: 'uint16',
58
+ });
59
+ const INPUT = (0, koffi_1.struct)('INPUT', {
60
+ type: 'uint32',
61
+ u: (0, koffi_1.union)({
62
+ mi: MOUSEINPUT,
63
+ ki: KEYBDINPUT,
64
+ hi: HARDWAREINPUT,
65
+ })
66
+ });
67
+ const DEVMODEA = (0, koffi_1.struct)('DEVMODEA', {
68
+ dmDeviceName: (0, koffi_1.array)('char', 32, 'String'),
69
+ dmSpecVersion: 'uint16',
70
+ dmDriverVersion: 'uint16',
71
+ dmSize: 'uint16',
72
+ dmDriverExtra: 'uint16',
73
+ dmFields: 'uint32',
74
+ u1: (0, koffi_1.union)({
75
+ s1: (0, koffi_1.struct)({
76
+ dmOrientation: 'short',
77
+ dmPaperSize: 'short',
78
+ dmPaperLength: 'short',
79
+ dmPaperWidth: 'short',
80
+ dmScale: 'short',
81
+ dmCopies: 'short',
82
+ dmDefaultSource: 'short',
83
+ dmPrintQuality: 'short',
84
+ }),
85
+ dmPosition: POINT,
86
+ s2: (0, koffi_1.struct)({
87
+ dmPosition: POINT,
88
+ dmDisplayOrientation: 'uint32',
89
+ dmDisplayFixedOutput: 'uint32',
90
+ }),
91
+ }),
92
+ dmColor: 'short',
93
+ dmDuplex: 'short',
94
+ dmYResolution: 'short',
95
+ dmTTOption: 'short',
96
+ dmCollate: 'short',
97
+ dmFormName: (0, koffi_1.array)('char', 32, 'String'),
98
+ dmLogPixels: 'uint16',
99
+ dmBitsPerPel: 'uint32',
100
+ dmPelsWidth: 'uint32',
101
+ dmPelsHeight: 'uint32',
102
+ u2: (0, koffi_1.union)({
103
+ dmDisplayFlags: 'uint32',
104
+ dmNup: 'uint32',
105
+ }),
106
+ dmDisplayFrequency: 'uint32',
107
+ dmICMMethod: 'uint32',
108
+ dmICMIntent: 'uint32',
109
+ dmMediaType: 'uint32',
110
+ dmDitherType: 'uint32',
111
+ dmReserved1: 'uint32',
112
+ dmReserved2: 'uint32',
113
+ dmPanningWidth: 'uint32',
114
+ dmPanningHeight: 'uint32',
115
+ });
116
+ const BOOL = (0, koffi_1.alias)('BOOL', koffi_1.types.bool);
117
+ const DWORD = (0, koffi_1.alias)('DWORD', koffi_1.types.uint32_t);
118
+ const HANDLE = (0, koffi_1.pointer)('HANDLE', (0, koffi_1.opaque)());
119
+ const LONG_PTR = (0, koffi_1.pointer)('LONG_PTR', koffi_1.types.long);
120
+ const LPDWORD = (0, koffi_1.pointer)('LPDWORD', DWORD);
121
+ const HWND = (0, koffi_1.alias)('HWND', HANDLE);
122
+ const LPARAM = (0, koffi_1.alias)('LPARAM', LONG_PTR);
123
+ const LPSTR = (0, koffi_1.pointer)('LPSTR', 'char');
124
+ const EnumWindowsProc = (0, koffi_1.proto)('BOOL __stdcall EnumWindowsProc (HWND hwnd, LPARAM lParam)');
125
+ // TODO: update all functions to have their parameters aliased properly
126
+ const SendInput = user32.func(/* c */ `unsigned int __stdcall SendInput(unsigned int cInputs, INPUT *pInputs, int cbSize)`);
127
+ const GetSystemMetrics = user32.func(/* c */ `int __stdcall GetSystemMetrics(int nIndex)`);
128
+ const SetProcessDPIAware = user32.func(/* c */ `bool __stdcall SetProcessDPIAware()`);
129
+ const GetDpiForSystem = user32.func(/* c */ `unsigned int __stdcall GetDpiForSystem()`);
130
+ const GetCursorPos = user32.func(/* c */ `bool __stdcall GetCursorPos(_Out_ POINT *lpPoint)`);
131
+ const EnumDisplaySettingsA = user32.func(/* c */ `bool __stdcall EnumDisplaySettingsA(str lpszDeviceName, uint iModeNum, _Out_ DEVMODEA *lpDevMode)`);
132
+ // end TODO
133
+ const GetWindowThreadProcessId = user32.func(/* c */ `DWORD __stdcall GetWindowThreadProcessId(HWND hWnd, _Out_ LPDWORD lpdwProcessId)`);
134
+ const GetWindowTextA = user32.func(/* c */ `int __stdcall GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)`);
135
+ const IsWindowVisible = user32.func(/* c */ `BOOL __stdcall IsWindowVisible(HWND hWnd)`);
136
+ const EnumWindows = user32.func(/* c */ `BOOL __stdcall EnumWindows(EnumWindowsProc *enumProc, LPARAM lParam)`);
137
+ const SetForegroundWindow = user32.func(/* c */ `BOOL __stdcall SetForegroundWindow(HWND hWnd)`);
138
+ function makeKeyboardEvent(args) {
139
+ let flags = 0;
140
+ if ((args.scan === undefined && args.vk === undefined) || (args.scan !== undefined && args.vk !== undefined)) {
141
+ throw new base_driver_1.errors.InvalidArgumentError('You should provide either vk or scan, but not both.');
142
+ }
143
+ switch (typeof args.scan) {
144
+ case 'string':
145
+ if (args.scan.length !== 1) {
146
+ throw new base_driver_1.errors.InvalidArgumentError(`scan parameter expects a single character, but received ${args.scan.length}.`);
147
+ }
148
+ flags |= types_1.KeyEventFlags.KEYEVENTF_UNICODE;
149
+ args.scan = args.scan.charCodeAt(0);
150
+ break;
151
+ case 'number':
152
+ flags |= types_1.KeyEventFlags.KEYEVENTF_SCANCODE;
153
+ break;
154
+ }
155
+ if (!args.down) {
156
+ flags |= types_1.KeyEventFlags.KEYEVENTF_KEYUP;
157
+ }
158
+ return {
159
+ type: types_1.InputType.INPUT_KEYBOARD,
160
+ u: {
161
+ ki: {
162
+ wVk: args.vk ?? 0,
163
+ wScan: args.scan ?? 0,
164
+ dwFlags: flags ?? 0,
165
+ time: 0,
166
+ dwExtraInfo: 0,
167
+ }
168
+ }
169
+ };
170
+ }
171
+ function makeEmptyMouseEvent() {
172
+ return {
173
+ type: types_1.InputType.INPUT_MOUSE,
174
+ u: {
175
+ mi: {
176
+ dx: 0,
177
+ dy: 0,
178
+ mouseData: 0,
179
+ dwFlags: 0,
180
+ time: 0,
181
+ dwExtraInfo: 0,
182
+ }
183
+ }
184
+ };
185
+ }
186
+ function makeMouseDownEvents(button) {
187
+ const mouseEvent = makeEmptyMouseEvent();
188
+ switch (button) {
189
+ case 0:
190
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_LEFTDOWN;
191
+ break;
192
+ case 1:
193
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MIDDLEDOWN;
194
+ break;
195
+ case 2:
196
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_RIGHTDOWN;
197
+ break;
198
+ case 3:
199
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XDOWN;
200
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON1;
201
+ break;
202
+ case 4:
203
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XDOWN;
204
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON2;
205
+ break;
206
+ default:
207
+ throw new base_driver_1.errors.InvalidArgumentError('button parameter should be a positive integer between 0 and 4.');
208
+ }
209
+ return [mouseEvent];
210
+ }
211
+ function makeMouseUpEvents(button) {
212
+ const mouseEvent = makeEmptyMouseEvent();
213
+ switch (button) {
214
+ case 0:
215
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_LEFTUP;
216
+ break;
217
+ case 1:
218
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MIDDLEUP;
219
+ break;
220
+ case 2:
221
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_RIGHTUP;
222
+ break;
223
+ case 3:
224
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XUP;
225
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON1;
226
+ break;
227
+ case 4:
228
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_XUP;
229
+ mouseEvent.u.mi.mouseData = types_1.XMouseButton.XBUTTON2;
230
+ break;
231
+ default:
232
+ throw new base_driver_1.errors.InvalidArgumentError('button parameter should be a positive integer between 0 and 4.');
233
+ }
234
+ return [mouseEvent];
235
+ }
236
+ function makeMouseMoveEvents(args) {
237
+ const { x, y, wheel, relative, screenResolutionAndRefreshRate } = args;
238
+ if (wheel) {
239
+ const mouseEvents = [];
240
+ if (x !== 0) {
241
+ const horizontalScrollEvent = makeEmptyMouseEvent();
242
+ horizontalScrollEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_HWHEEL;
243
+ horizontalScrollEvent.u.mi.mouseData = x;
244
+ mouseEvents.push(horizontalScrollEvent);
245
+ }
246
+ if (y !== 0) {
247
+ const verticalScrollEvent = makeEmptyMouseEvent();
248
+ verticalScrollEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_WHEEL;
249
+ verticalScrollEvent.u.mi.mouseData = y;
250
+ mouseEvents.push(verticalScrollEvent);
251
+ }
252
+ return mouseEvents;
253
+ }
254
+ const mouseEvent = makeEmptyMouseEvent();
255
+ if (!screenResolutionAndRefreshRate) {
256
+ throw new base_driver_1.errors.InvalidArgumentError('screenResolution parameter must be set for absolute mouse move.');
257
+ }
258
+ const [screenWidth, screenHeight] = screenResolutionAndRefreshRate;
259
+ mouseEvent.u.mi.dx = relative ? Math.trunc(x) : Math.trunc((x * UINT16_MAX) / screenWidth);
260
+ mouseEvent.u.mi.dy = relative ? Math.trunc(y) : Math.trunc((y * UINT16_MAX) / screenHeight);
261
+ mouseEvent.u.mi.dwFlags = types_1.MouseEventFlags.MOUSEEVENTF_MOVE;
262
+ if (!relative) {
263
+ mouseEvent.u.mi.dwFlags |= types_1.MouseEventFlags.MOUSEEVENTF_ABSOLUTE;
264
+ }
265
+ return [mouseEvent];
266
+ }
267
+ function charToKeyboardEvents(char, down, forceUnicode = false) {
268
+ const charCode = char.charCodeAt(0);
269
+ if ((charCode & 0xF000) === 0xE000) {
270
+ switch (char) {
271
+ case enums_1.Key.CANCEL:
272
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CANCEL, down })];
273
+ case enums_1.Key.HELP:
274
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_HELP, down })];
275
+ case enums_1.Key.BACKSPACE:
276
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_BACK, down })];
277
+ case enums_1.Key.TAB:
278
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_TAB, down })];
279
+ case enums_1.Key.CLEAR:
280
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CLEAR, down })];
281
+ case enums_1.Key.RETURN:
282
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RETURN, down })];
283
+ case enums_1.Key.ENTER:
284
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RETURN, down })];
285
+ case enums_1.Key.SHIFT:
286
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SHIFT, down })];
287
+ case enums_1.Key.CONTROL:
288
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_CONTROL, down })];
289
+ case enums_1.Key.ALT:
290
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_MENU, down })];
291
+ case enums_1.Key.PAUSE:
292
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_PAUSE, down })];
293
+ case enums_1.Key.ESCAPE:
294
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_ESCAPE, down })];
295
+ case enums_1.Key.SPACE:
296
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SPACE, down })];
297
+ case enums_1.Key.PAGE_UP:
298
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_PRIOR, down })];
299
+ case enums_1.Key.PAGE_DOWN:
300
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NEXT, down })];
301
+ case enums_1.Key.END:
302
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_END, down })];
303
+ case enums_1.Key.HOME:
304
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_HOME, down })];
305
+ case enums_1.Key.LEFT:
306
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_LEFT, down })];
307
+ case enums_1.Key.UP:
308
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_UP, down })];
309
+ case enums_1.Key.RIGHT:
310
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RIGHT, down })];
311
+ case enums_1.Key.DOWN:
312
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DOWN, down })];
313
+ case enums_1.Key.INSERT:
314
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_INSERT, down })];
315
+ case enums_1.Key.DELETE:
316
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DELETE, down })];
317
+ case enums_1.Key.SEMICOLON:
318
+ return [makeKeyboardEvent({ scan: types_1.ScanCode.SEMICOLON, down })];
319
+ case enums_1.Key.EQUALS:
320
+ return [makeKeyboardEvent({ scan: types_1.ScanCode.EQUAL, down })];
321
+ case enums_1.Key.NUMPAD0:
322
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD0, down })];
323
+ case enums_1.Key.NUMPAD1:
324
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD1, down })];
325
+ case enums_1.Key.NUMPAD2:
326
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD2, down })];
327
+ case enums_1.Key.NUMPAD3:
328
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD3, down })];
329
+ case enums_1.Key.NUMPAD4:
330
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD4, down })];
331
+ case enums_1.Key.NUMPAD5:
332
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD5, down })];
333
+ case enums_1.Key.NUMPAD6:
334
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD6, down })];
335
+ case enums_1.Key.NUMPAD7:
336
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD7, down })];
337
+ case enums_1.Key.NUMPAD8:
338
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD8, down })];
339
+ case enums_1.Key.NUMPAD9:
340
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD9, down })];
341
+ case enums_1.Key.MULTIPLY:
342
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_MULTIPLY, down })];
343
+ case enums_1.Key.ADD:
344
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_ADD, down })];
345
+ case enums_1.Key.SEPARATOR:
346
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SEPARATOR, down })];
347
+ case enums_1.Key.SUBTRACT:
348
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_SUBTRACT, down })];
349
+ case enums_1.Key.DECIMAL:
350
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DECIMAL, down })];
351
+ case enums_1.Key.DIVIDE:
352
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DIVIDE, down })];
353
+ case enums_1.Key.F1:
354
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F1, down })];
355
+ case enums_1.Key.F2:
356
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F2, down })];
357
+ case enums_1.Key.F3:
358
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F3, down })];
359
+ case enums_1.Key.F4:
360
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F4, down })];
361
+ case enums_1.Key.F5:
362
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F5, down })];
363
+ case enums_1.Key.F6:
364
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F6, down })];
365
+ case enums_1.Key.F7:
366
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F7, down })];
367
+ case enums_1.Key.F8:
368
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F8, down })];
369
+ case enums_1.Key.F9:
370
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F9, down })];
371
+ case enums_1.Key.F10:
372
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F10, down })];
373
+ case enums_1.Key.F11:
374
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F11, down })];
375
+ case enums_1.Key.F12:
376
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_F12, down })];
377
+ case enums_1.Key.META:
378
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_LWIN, down })];
379
+ case enums_1.Key.ZENKAKUHANKAKU:
380
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_OEM_AUTO, down })];
381
+ case enums_1.Key.R_SHIFT:
382
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RSHIFT, down })];
383
+ case enums_1.Key.R_CONTROL:
384
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RCONTROL, down })];
385
+ case enums_1.Key.R_ALT:
386
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RMENU, down })];
387
+ case enums_1.Key.R_META:
388
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_RWIN, down })];
389
+ case enums_1.Key.R_PAGEUP:
390
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD9, down })];
391
+ case enums_1.Key.R_PAGEDOWN:
392
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD3, down })];
393
+ case enums_1.Key.R_END:
394
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD1, down })];
395
+ case enums_1.Key.R_HOME:
396
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD7, down })];
397
+ case enums_1.Key.R_ARROWLEFT:
398
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD4, down })];
399
+ case enums_1.Key.R_ARROWUP:
400
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD8, down })];
401
+ case enums_1.Key.R_ARROWRIGHT:
402
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD6, down })];
403
+ case enums_1.Key.R_ARROWDOWN:
404
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD2, down })];
405
+ case enums_1.Key.R_INSERT:
406
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_NUMPAD0, down })];
407
+ case enums_1.Key.R_DELETE:
408
+ return [makeKeyboardEvent({ vk: types_1.VirtualKey.VK_DECIMAL, down })];
409
+ default:
410
+ throw new base_driver_1.errors.InvalidArgumentError(`Invalid character \\u${charCode.toString(16)}.`);
411
+ }
412
+ }
413
+ // Currently only [a-z0-9] are sent as scan code through performAction (in order for them to work in hotkeys).
414
+ if (!forceUnicode) {
415
+ if (/[a-z]/.test(char)) {
416
+ return [makeKeyboardEvent({ scan: types_1.ScanCode[char.toUpperCase()], down })];
417
+ }
418
+ if (/[0-9]/.test(char)) {
419
+ return [makeKeyboardEvent({ scan: types_1.ScanCode[`N${char}`], down })];
420
+ }
421
+ }
422
+ return [makeKeyboardEvent({ scan: char, down })];
423
+ }
424
+ function sendKeyInput(char, down, forceUnicode = false) {
425
+ const events = charToKeyboardEvents(char, down, forceUnicode);
426
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
427
+ assertSuccessSendInputReturnCode(returnCode);
428
+ }
429
+ function sendMouseButtonInput(button, down) {
430
+ const events = down ? makeMouseDownEvents(button) : makeMouseUpEvents(button);
431
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
432
+ assertSuccessSendInputReturnCode(returnCode);
433
+ }
434
+ async function sendMouseMoveInput(args) {
435
+ const { duration } = args;
436
+ let { x, y, easingFunction, relative } = args;
437
+ const screenResolutionAndRefreshRate = getScreenResolutionAndRefreshRate();
438
+ const [, , refreshRate] = screenResolutionAndRefreshRate;
439
+ const updateInterval = 1000 / refreshRate;
440
+ const iterations = Math.max(Math.floor(duration / updateInterval), 1);
441
+ const cursorPosition = {
442
+ x: 0,
443
+ y: 0,
444
+ };
445
+ if (GetCursorPos(cursorPosition) && iterations > 1) {
446
+ if (relative) {
447
+ x += cursorPosition.x;
448
+ y += cursorPosition.y;
449
+ }
450
+ // setting relative to false since coordinates are now absolute
451
+ relative = false;
452
+ }
453
+ else {
454
+ // ignore easing function of it can't retrieve current cursor position
455
+ // this is preventing the method from failing
456
+ easingFunction = undefined;
457
+ }
458
+ if (easingFunction) {
459
+ let calculatePoint;
460
+ // the lines below assume that the validation has been made on createSession
461
+ if (easingFunction.startsWith('cubic-bezier')) {
462
+ const bezierArgs = /\((.*?)\)/.exec(easingFunction)?.groups?.[0]
463
+ .split(',').map((n) => parseFloat(n.trim())) ?? [0, 0, 1, 1];
464
+ calculatePoint = bezier_easing_1.default.apply(bezierArgs);
465
+ }
466
+ else {
467
+ calculatePoint = easingFunctions[easingFunction];
468
+ }
469
+ for (let i = 1; i < iterations; i++) {
470
+ setTimeout(() => {
471
+ const normalizedProgress = (i + 1) / iterations;
472
+ const easedProgress = i !== iterations - 1 ? calculatePoint(normalizedProgress) : 1;
473
+ const interpolatedX = cursorPosition.x + (x - cursorPosition.x) * easedProgress;
474
+ const interpolatedY = cursorPosition.y + (y - cursorPosition.y) * easedProgress;
475
+ const events = makeMouseMoveEvents({ x: interpolatedX, y: interpolatedY, wheel: false, screenResolutionAndRefreshRate });
476
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
477
+ assertSuccessSendInputReturnCode(returnCode);
478
+ }, i * updateInterval);
479
+ }
480
+ }
481
+ else {
482
+ const events = makeMouseMoveEvents({ x, y, wheel: false, screenResolutionAndRefreshRate });
483
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
484
+ assertSuccessSendInputReturnCode(returnCode);
485
+ }
486
+ await (0, util_1.sleep)(duration);
487
+ }
488
+ function sendMouseScrollInput(x, y) {
489
+ const events = makeMouseMoveEvents({ x, y, wheel: true });
490
+ const returnCode = SendInput(events.length, events, (0, koffi_1.sizeof)(INPUT));
491
+ assertSuccessSendInputReturnCode(returnCode);
492
+ }
493
+ function assertSuccessSendInputReturnCode(returnCode) {
494
+ if (returnCode === UINT32_MAX) {
495
+ throw new base_driver_1.errors.UnknownError('An error occurred while executing SendInput.');
496
+ }
497
+ }
498
+ // TODO: Remove eslint-disable-next-line when used
499
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
500
+ function getResolutionScalingFactor() {
501
+ const dpi = GetDpiForSystem();
502
+ const scalingFactor = dpi / 96;
503
+ // @ts-expect-error temporary quick and dirty version of memoization
504
+ getResolutionScalingFactor = () => scalingFactor;
505
+ return scalingFactor;
506
+ }
507
+ function getScreenResolutionAndRefreshRate() {
508
+ const width = GetSystemMetrics(systemmetric_1.SystemMetric.SM_CXSCREEN);
509
+ const height = GetSystemMetrics(systemmetric_1.SystemMetric.SM_CYSCREEN);
510
+ let refreshRate = null;
511
+ const buffer = Buffer.alloc((0, koffi_1.sizeof)(DEVMODEA));
512
+ EnumDisplaySettingsA(null, -1, buffer);
513
+ const deviceMode = { dmDisplayFrequency: buffer.readUInt32LE(120) };
514
+ refreshRate = deviceMode.dmDisplayFrequency;
515
+ const resolution = [width, height, refreshRate];
516
+ const nonMemoizedMethod = getScreenResolutionAndRefreshRate;
517
+ const currentTime = new Date().getTime();
518
+ // @ts-expect-error memoizing the function to prevent repeated calls that might crash Node.js
519
+ getScreenResolutionAndRefreshRate = () => {
520
+ if (new Date().getTime() - currentTime > 1000) {
521
+ // @ts-expect-error reset memoization after 1 second
522
+ getScreenResolutionAndRefreshRate = nonMemoizedMethod;
523
+ }
524
+ return resolution;
525
+ };
526
+ return resolution;
527
+ }
528
+ function keyDown(char, forceUnicode = false) {
529
+ sendKeyInput(char, true, forceUnicode);
530
+ }
531
+ function keyUp(char, forceUnicode = false) {
532
+ sendKeyInput(char, false, forceUnicode);
533
+ }
534
+ async function mouseMoveRelative(x, y, duration = 0, easingFunction) {
535
+ await sendMouseMoveInput({ x, y, relative: true, duration, easingFunction });
536
+ }
537
+ function mouseScroll(x, y) {
538
+ sendMouseScrollInput(x, y);
539
+ }
540
+ async function mouseMoveAbsolute(x, y, duration = 0, easingFunction) {
541
+ await sendMouseMoveInput({ x, y, relative: false, duration, easingFunction });
542
+ }
543
+ function mouseDown(button = 0) {
544
+ sendMouseButtonInput(button, true);
545
+ }
546
+ function mouseUp(button = 0) {
547
+ sendMouseButtonInput(button, false);
548
+ }
549
+ function getDisplayOrientation() {
550
+ const resolution = getScreenResolutionAndRefreshRate();
551
+ return resolution[0] > resolution[1] ? 'LANDSCAPE' : 'PORTRAIT';
552
+ }
553
+ function setDpiAwareness() {
554
+ if (!SetProcessDPIAware()) {
555
+ throw new base_driver_1.errors.UnknownError('An error occurred while trying to set DPI awareness.');
556
+ }
557
+ ;
558
+ }
559
+ function getWindowAllHandlesForProcessIds(processIds) {
560
+ const handles = [];
561
+ EnumWindows((hWnd) => {
562
+ const ptr = [null];
563
+ GetWindowThreadProcessId(hWnd, ptr);
564
+ const pid = ptr[0];
565
+ if (pid && processIds.includes(pid) && IsWindowVisible(hWnd)) {
566
+ const buffer = Buffer.alloc(256); // Adjust size as needed
567
+ GetWindowTextA(hWnd, buffer, buffer.length);
568
+ const windowTitle = buffer.toString('utf8').replace(/\0/g, '');
569
+ if (windowTitle) {
570
+ handles.push(Number((0, koffi_1.address)(hWnd)));
571
+ }
572
+ }
573
+ return true;
574
+ }, 0);
575
+ return handles;
576
+ }
577
+ function trySetForegroundWindow(windowHandle) {
578
+ return EnumWindows((hWnd) => {
579
+ if (windowHandle === Number((0, koffi_1.address)(hWnd))) {
580
+ SetForegroundWindow(hWnd);
581
+ return false;
582
+ }
583
+ return true;
584
+ }, 0);
585
+ }
586
+ function sendKeyboardEvents(inputs) {
587
+ return SendInput(inputs.length, inputs.map((ki) => ({
588
+ type: types_1.InputType.INPUT_KEYBOARD,
589
+ u: { ki },
590
+ })), (0, koffi_1.sizeof)(INPUT));
591
+ }
592
+ //# sourceMappingURL=user32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user32.js","sourceRoot":"","sources":["../../../lib/winapi/user32.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Element } from '@appium/types';
2
+ import { ExprNode } from 'xpath-analyzer';
3
+ import { Condition, AutomationElement } from '../powershell';
4
+ export declare function xpathToElIdOrIds(selector: string, mult: boolean, context: string | undefined, sendPowerShellCommand: (command: string) => Promise<string>): Promise<Element | Element[]>;
5
+ export declare function processExprNode<T>(exprNode: ExprNode, context: AutomationElement, sendPowerShellCommand: (command: string) => Promise<string>): Promise<T[]>;
6
+ export declare function processExprNodeAsPredicate(exprNode: ExprNode, context: AutomationElement, positions: Set<number>, sendPowerShellCommand: (command: string) => Promise<string>, relativeExprNodes?: ExprNode[]): Promise<[Condition, ExprNode[]?]>;
7
+ export declare function predicateProcessableBeforeNode(exprNode: ExprNode): boolean;
8
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../lib/xpath/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAsB,EAMlB,QAAQ,EA0CX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGH,SAAS,EAIT,iBAAiB,EAcpB,MAAM,eAAe,CAAC;AAgCvB,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CA+C9L;AAED,wBAAsB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA+GlK;AAwCD,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CA6IvP;AA6ND,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CA8B1E"}