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,593 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.xpathToElIdOrIds = xpathToElIdOrIds;
37
+ exports.processExprNode = processExprNode;
38
+ exports.processExprNodeAsPredicate = processExprNodeAsPredicate;
39
+ exports.predicateProcessableBeforeNode = predicateProcessableBeforeNode;
40
+ const base_driver_1 = require("@appium/base-driver");
41
+ const xpath_analyzer_1 = __importStar(require("xpath-analyzer"));
42
+ const powershell_1 = require("../powershell");
43
+ const functions_1 = require("./functions");
44
+ const OptimizeLastStep = Symbol.for('LastStep');
45
+ const XPathAllowedProperties = Object.freeze([
46
+ powershell_1.Property.ACCELERATOR_KEY,
47
+ powershell_1.Property.ACCESS_KEY,
48
+ powershell_1.Property.AUTOMATION_ID,
49
+ powershell_1.Property.CLASS_NAME,
50
+ powershell_1.Property.FRAMEWORK_ID,
51
+ powershell_1.Property.HAS_KEYBOARD_FOCUS,
52
+ powershell_1.Property.HELP_TEXT,
53
+ powershell_1.Property.IS_CONTENT_ELEMENT,
54
+ powershell_1.Property.IS_CONTROL_ELEMENT,
55
+ powershell_1.Property.IS_ENABLED,
56
+ powershell_1.Property.IS_KEYBOARD_FOCUSABLE,
57
+ powershell_1.Property.IS_OFFSCREEN,
58
+ powershell_1.Property.IS_PASSWORD,
59
+ powershell_1.Property.IS_REQUIRED_FOR_FORM,
60
+ powershell_1.Property.ITEM_STATUS,
61
+ powershell_1.Property.ITEM_TYPE,
62
+ powershell_1.Property.LOCALIZED_CONTROL_TYPE,
63
+ powershell_1.Property.NAME,
64
+ powershell_1.Property.ORIENTATION,
65
+ powershell_1.Property.PROCESS_ID,
66
+ powershell_1.Property.RUNTIME_ID,
67
+ ]);
68
+ async function xpathToElIdOrIds(selector, mult, context, sendPowerShellCommand) {
69
+ let parsedXPath;
70
+ try {
71
+ parsedXPath = new xpath_analyzer_1.default(selector).parse();
72
+ }
73
+ catch (error) {
74
+ if (error instanceof Error) {
75
+ throw new base_driver_1.errors.InvalidSelectorError(`Malformed XPath: ${error.message}`);
76
+ }
77
+ else {
78
+ throw new base_driver_1.errors.InvalidSelectorError('Malformed XPath');
79
+ }
80
+ }
81
+ if (!mult) {
82
+ if (parsedXPath.type === xpath_analyzer_1.UNION) {
83
+ const lhsLastStep = findLastStep(parsedXPath.lhs);
84
+ const rhsLastStep = findLastStep(parsedXPath.rhs);
85
+ if (lhsLastStep) {
86
+ lhsLastStep[lhsLastStep.length - 1][OptimizeLastStep] = true;
87
+ }
88
+ if (rhsLastStep) {
89
+ rhsLastStep[rhsLastStep.length - 1][OptimizeLastStep] = true;
90
+ }
91
+ }
92
+ else {
93
+ const lastStep = findLastStep(parsedXPath);
94
+ if (lastStep && lastStep[lastStep.length - 1].predicates.every(predicateProcessableBeforeNode)) {
95
+ lastStep[lastStep.length - 1][OptimizeLastStep] = true;
96
+ }
97
+ }
98
+ }
99
+ if (parsedXPath.type === 'absolute-location-path' && parsedXPath.steps[0].axis === xpath_analyzer_1.CHILD) {
100
+ parsedXPath.steps[0].axis = xpath_analyzer_1.SELF;
101
+ }
102
+ const foundElements = await processExprNode(parsedXPath, context ? new powershell_1.FoundAutomationElement(context) : powershell_1.AutomationElement.automationRoot, sendPowerShellCommand);
103
+ const els = foundElements.filter((el) => el instanceof powershell_1.FoundAutomationElement).map((el) => ({ [base_driver_1.W3C_ELEMENT_KEY]: el.runtimeId }));
104
+ if (mult) {
105
+ return els;
106
+ }
107
+ if (els.length === 0) {
108
+ throw new base_driver_1.errors.NoSuchElementError();
109
+ }
110
+ return els[0];
111
+ }
112
+ async function processExprNode(exprNode, context, sendPowerShellCommand) {
113
+ switch (exprNode.type) {
114
+ case xpath_analyzer_1.NUMBER:
115
+ return [exprNode.number];
116
+ case xpath_analyzer_1.LITERAL:
117
+ return [exprNode.string];
118
+ case xpath_analyzer_1.UNION:
119
+ return [...await processExprNode(exprNode.lhs, context, sendPowerShellCommand), ...await processExprNode(exprNode.rhs, context, sendPowerShellCommand)];
120
+ case xpath_analyzer_1.FUNCTION_CALL:
121
+ return await (0, functions_1.handleFunctionCall)(exprNode.name, context, sendPowerShellCommand, ...exprNode.args);
122
+ case xpath_analyzer_1.ABSOLUTE_LOCATION_PATH:
123
+ case xpath_analyzer_1.RELATIVE_LOCATION_PATH: {
124
+ const result = [];
125
+ for (const element of convertToElementArray(context)) {
126
+ result.push(await handleLocationNode(exprNode, element, sendPowerShellCommand));
127
+ }
128
+ return result.flat();
129
+ }
130
+ case xpath_analyzer_1.PATH: {
131
+ const filterResult = await processExprNode(exprNode.filter, context, sendPowerShellCommand);
132
+ const result = [];
133
+ for (const item of filterResult) {
134
+ if (item instanceof powershell_1.AutomationElement) {
135
+ const itemAfterSteps = await handleLocationNode({
136
+ type: xpath_analyzer_1.RELATIVE_LOCATION_PATH,
137
+ steps: exprNode.steps,
138
+ }, item, sendPowerShellCommand);
139
+ result.push(itemAfterSteps);
140
+ }
141
+ }
142
+ return result.flat();
143
+ }
144
+ case xpath_analyzer_1.FILTER: {
145
+ const result = [];
146
+ const exprResult = await processExprNode(exprNode.primary, context, sendPowerShellCommand);
147
+ for (const item of exprResult) {
148
+ if (item instanceof powershell_1.AutomationElement) {
149
+ const filteredItem = await executeStep({
150
+ axis: xpath_analyzer_1.SELF,
151
+ test: {
152
+ type: xpath_analyzer_1.NODE_TYPE_TEST,
153
+ name: xpath_analyzer_1.NODE,
154
+ },
155
+ predicates: exprNode.predicates,
156
+ }, item, sendPowerShellCommand);
157
+ result.push(filteredItem);
158
+ }
159
+ }
160
+ return result;
161
+ }
162
+ case xpath_analyzer_1.OR:
163
+ case xpath_analyzer_1.AND: {
164
+ const [lhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.BOOLEAN, context, sendPowerShellCommand, exprNode.lhs);
165
+ const [rhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.BOOLEAN, context, sendPowerShellCommand, exprNode.rhs);
166
+ if (exprNode.type === xpath_analyzer_1.AND) {
167
+ return [lhs && rhs];
168
+ }
169
+ else {
170
+ return [lhs || rhs];
171
+ }
172
+ }
173
+ case xpath_analyzer_1.NEGATION:
174
+ return [-await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.NUMBER, context, sendPowerShellCommand, exprNode.lhs)];
175
+ case xpath_analyzer_1.EQUALITY:
176
+ case xpath_analyzer_1.INEQUALITY: {
177
+ const [lhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.STRING, context, sendPowerShellCommand, exprNode.lhs);
178
+ const [rhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.STRING, context, sendPowerShellCommand, exprNode.rhs);
179
+ if (isNaN(Number(lhs)) || isNaN(Number(rhs))) {
180
+ return [exprNode.type === xpath_analyzer_1.EQUALITY ? (lhs === rhs) : (lhs !== rhs)];
181
+ }
182
+ return [exprNode.type === xpath_analyzer_1.EQUALITY ? (Number(lhs) === Number(rhs)) : (Number(lhs) !== Number(rhs))];
183
+ }
184
+ case xpath_analyzer_1.ADDITIVE:
185
+ case xpath_analyzer_1.DIVISIONAL:
186
+ case xpath_analyzer_1.GREATER_THAN:
187
+ case xpath_analyzer_1.GREATER_THAN_OR_EQUAL:
188
+ case xpath_analyzer_1.LESS_THAN:
189
+ case xpath_analyzer_1.LESS_THAN_OR_EQUAL:
190
+ case xpath_analyzer_1.MODULUS:
191
+ case xpath_analyzer_1.MULTIPLICATIVE:
192
+ case xpath_analyzer_1.SUBTRACTIVE:
193
+ {
194
+ const [lhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.NUMBER, context, sendPowerShellCommand, exprNode.lhs);
195
+ const [rhs] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.NUMBER, context, sendPowerShellCommand, exprNode.rhs);
196
+ switch (exprNode.type) {
197
+ case xpath_analyzer_1.ADDITIVE:
198
+ return [(lhs + rhs)];
199
+ case xpath_analyzer_1.DIVISIONAL:
200
+ return [(lhs / rhs)];
201
+ case xpath_analyzer_1.GREATER_THAN:
202
+ return [(lhs > rhs)];
203
+ case xpath_analyzer_1.GREATER_THAN_OR_EQUAL:
204
+ return [(lhs >= rhs)];
205
+ case xpath_analyzer_1.LESS_THAN:
206
+ return [(lhs < rhs)];
207
+ case xpath_analyzer_1.LESS_THAN_OR_EQUAL:
208
+ return [(lhs <= rhs)];
209
+ case xpath_analyzer_1.MODULUS:
210
+ return [(lhs % rhs)];
211
+ case xpath_analyzer_1.MULTIPLICATIVE:
212
+ return [(lhs * rhs)];
213
+ case xpath_analyzer_1.SUBTRACTIVE:
214
+ return [(lhs - rhs)];
215
+ }
216
+ }
217
+ }
218
+ }
219
+ async function handleLocationNode(location, context, sendPowerShellCommand) {
220
+ if (location.steps.some((step) => step.test.name === null)) {
221
+ throw new base_driver_1.errors.InvalidSelectorError('Expected path step expression.');
222
+ }
223
+ if (location.type === xpath_analyzer_1.ABSOLUTE_LOCATION_PATH) {
224
+ context = powershell_1.AutomationElement.automationRoot;
225
+ }
226
+ if (context instanceof powershell_1.AutomationElementGroup && context.groups.length > 1) {
227
+ throw new base_driver_1.errors.InvalidArgumentError(`handleLocationNode expects single context, but received ${context.groups.length} contexts.`);
228
+ }
229
+ optimizeDoubleSlash(location.steps);
230
+ for (const [index, step] of location.steps.entries()) {
231
+ if (step.axis === xpath_analyzer_1.ATTRIBUTE) {
232
+ if (index === location.steps.length - 1) {
233
+ return await convertAttributeNodeTestToStringArray(step.test, context, sendPowerShellCommand);
234
+ }
235
+ else {
236
+ return [];
237
+ }
238
+ }
239
+ if (context instanceof powershell_1.AutomationElementGroup) {
240
+ const results = [];
241
+ for (const el of context.groups) {
242
+ results.push(await executeStep(step, el, sendPowerShellCommand));
243
+ }
244
+ context = new powershell_1.AutomationElementGroup(...flattenElementGroupsAndRemoveDuplicates(results));
245
+ }
246
+ else {
247
+ context = await executeStep(step, context, sendPowerShellCommand);
248
+ }
249
+ }
250
+ return convertToElementArray(context);
251
+ }
252
+ async function processExprNodeAsPredicate(exprNode, context, positions, sendPowerShellCommand, relativeExprNodes) {
253
+ relativeExprNodes ??= [];
254
+ switch (exprNode.type) {
255
+ case xpath_analyzer_1.NUMBER:
256
+ return await processExprNodeAsPredicate({
257
+ type: xpath_analyzer_1.EQUALITY,
258
+ lhs: {
259
+ type: xpath_analyzer_1.FUNCTION_CALL,
260
+ name: xpath_analyzer_1.POSITION,
261
+ args: [],
262
+ },
263
+ rhs: {
264
+ type: xpath_analyzer_1.NUMBER,
265
+ number: exprNode.number,
266
+ }
267
+ }, context, positions, sendPowerShellCommand, relativeExprNodes);
268
+ case xpath_analyzer_1.OR:
269
+ return [new powershell_1.OrCondition((await processExprNodeAsPredicate(exprNode.lhs, context, positions, sendPowerShellCommand, relativeExprNodes))[0], (await processExprNodeAsPredicate(exprNode.rhs, context, positions, sendPowerShellCommand, relativeExprNodes))[0]), relativeExprNodes];
270
+ case xpath_analyzer_1.AND:
271
+ return [new powershell_1.AndCondition((await processExprNodeAsPredicate(exprNode.lhs, context, positions, sendPowerShellCommand, relativeExprNodes))[0], (await processExprNodeAsPredicate(exprNode.rhs, context, positions, sendPowerShellCommand, relativeExprNodes))[0]), relativeExprNodes];
272
+ case xpath_analyzer_1.EQUALITY:
273
+ case xpath_analyzer_1.INEQUALITY: {
274
+ if ((exprNode.lhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH) !== (exprNode.rhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH)) {
275
+ if (exprNode.lhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH
276
+ && exprNode.lhs.steps[0].axis === xpath_analyzer_1.ATTRIBUTE
277
+ && exprNode.lhs.steps[0].test.type === xpath_analyzer_1.NODE_NAME_TEST
278
+ && XPathAllowedProperties.includes(exprNode.lhs.steps[0].test.name?.toLowerCase())) {
279
+ const propertyName = exprNode.lhs.steps[0].test.name?.toLowerCase();
280
+ const [value] = await processExprNode(exprNode.rhs, context, sendPowerShellCommand);
281
+ if (propertyName === powershell_1.Property.RUNTIME_ID) {
282
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSInt32Array(String(value).split('.').map(Number))), relativeExprNodes];
283
+ }
284
+ if (propertyName === powershell_1.Property.ORIENTATION) {
285
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSOrientationType(String(value))), relativeExprNodes];
286
+ }
287
+ if (Object.values(powershell_1.Int32Property).includes(propertyName)) {
288
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSInt32(Number(value))), relativeExprNodes];
289
+ }
290
+ if (Object.values(powershell_1.StringProperty).includes(propertyName)) {
291
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSString(String(value))), relativeExprNodes];
292
+ }
293
+ if (Object.values(powershell_1.BooleanProperty).includes(propertyName)) {
294
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSBoolean(Boolean(value))), relativeExprNodes];
295
+ }
296
+ }
297
+ if (exprNode.rhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH
298
+ && exprNode.rhs.steps[0].axis === xpath_analyzer_1.ATTRIBUTE
299
+ && exprNode.rhs.steps[0].test.type === xpath_analyzer_1.NODE_NAME_TEST
300
+ && XPathAllowedProperties.includes(exprNode.rhs.steps[0].test.name?.toLowerCase())) {
301
+ const propertyName = exprNode.rhs.steps[0].test.name?.toLowerCase();
302
+ const [value] = await processExprNode(exprNode.lhs, context, sendPowerShellCommand);
303
+ if (propertyName === powershell_1.Property.RUNTIME_ID) {
304
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSInt32Array(String(value).split('.').map(Number))), relativeExprNodes];
305
+ }
306
+ if (propertyName === powershell_1.Property.ORIENTATION) {
307
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSOrientationType(String(value))), relativeExprNodes];
308
+ }
309
+ if (Object.values(powershell_1.Int32Property).includes(propertyName)) {
310
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSInt32(Number(value))), relativeExprNodes];
311
+ }
312
+ if (Object.values(powershell_1.StringProperty).includes(propertyName)) {
313
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSString(String(value))), relativeExprNodes];
314
+ }
315
+ if (Object.values(powershell_1.BooleanProperty).includes(propertyName)) {
316
+ return [new powershell_1.PropertyCondition(propertyName, new powershell_1.PSBoolean(Boolean(value))), relativeExprNodes];
317
+ }
318
+ }
319
+ }
320
+ else if ((exprNode.lhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.lhs.name === xpath_analyzer_1.POSITION) !== (exprNode.rhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.rhs.name === xpath_analyzer_1.POSITION)) {
321
+ if (exprNode.lhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.lhs.name === xpath_analyzer_1.POSITION) {
322
+ if (exprNode.rhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.rhs.name === xpath_analyzer_1.LAST) {
323
+ positions.add(0x7FFFFFFF);
324
+ }
325
+ else {
326
+ const [value] = await processExprNode(exprNode.rhs, context, sendPowerShellCommand);
327
+ if (typeof value !== 'number') {
328
+ return [new powershell_1.FalseCondition()];
329
+ }
330
+ positions.add(value);
331
+ }
332
+ return [new powershell_1.TrueCondition];
333
+ }
334
+ if (exprNode.rhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.rhs.name === xpath_analyzer_1.POSITION) {
335
+ if (exprNode.lhs.type === xpath_analyzer_1.FUNCTION_CALL && exprNode.lhs.name === xpath_analyzer_1.LAST) {
336
+ positions.add(0x7FFFFFFF);
337
+ }
338
+ else {
339
+ const [value] = await processExprNode(exprNode.lhs, context, sendPowerShellCommand);
340
+ if (typeof value !== 'number') {
341
+ return [new powershell_1.FalseCondition()];
342
+ }
343
+ positions.add(value);
344
+ }
345
+ return [new powershell_1.TrueCondition];
346
+ }
347
+ }
348
+ }
349
+ // eslint-disable-next-line no-fallthrough
350
+ default: {
351
+ const result = await processExprNode(exprNode, context, sendPowerShellCommand);
352
+ if (result.length === 1 && typeof result[0] === 'number' && !isNaN(result[0])) {
353
+ return await processExprNodeAsPredicate({
354
+ type: xpath_analyzer_1.EQUALITY,
355
+ lhs: {
356
+ type: xpath_analyzer_1.FUNCTION_CALL,
357
+ name: xpath_analyzer_1.POSITION,
358
+ args: [],
359
+ },
360
+ rhs: {
361
+ type: xpath_analyzer_1.NUMBER,
362
+ number: result[0],
363
+ }
364
+ }, context, positions, sendPowerShellCommand, relativeExprNodes);
365
+ }
366
+ relativeExprNodes.push(exprNode);
367
+ return [new powershell_1.TrueCondition(), relativeExprNodes];
368
+ }
369
+ }
370
+ }
371
+ async function executeStep(step, context, sendPowerShellCommand) {
372
+ const predicateConditions = [];
373
+ const relativeExprNodes = [];
374
+ const positions = new Set();
375
+ for (const predicate of step.predicates) {
376
+ const [condition, exprNodes] = await processExprNodeAsPredicate(predicate, context, positions, sendPowerShellCommand);
377
+ predicateConditions.push(condition);
378
+ if (exprNodes) {
379
+ relativeExprNodes.push(...exprNodes);
380
+ }
381
+ }
382
+ const condition = predicateConditions.length > 0 ? new powershell_1.AndCondition(convertNodeTestToCondition(step.test), ...predicateConditions) : convertNodeTestToCondition(step.test);
383
+ let find;
384
+ switch (step.axis) {
385
+ case xpath_analyzer_1.ANCESTOR:
386
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.ANCESTORS, condition) : context.findAll(powershell_1.TreeScope.ANCESTORS, condition);
387
+ break;
388
+ case xpath_analyzer_1.ANCESTOR_OR_SELF:
389
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.ANCESTORS_OR_SELF, condition) : context.findAll(powershell_1.TreeScope.ANCESTORS_OR_SELF, condition);
390
+ break;
391
+ case xpath_analyzer_1.CHILD:
392
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.CHILDREN, condition) : context.findAll(powershell_1.TreeScope.CHILDREN, condition);
393
+ break;
394
+ case xpath_analyzer_1.DESCENDANT:
395
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.DESCENDANTS, condition) : context.findAll(powershell_1.TreeScope.DESCENDANTS, condition);
396
+ break;
397
+ case xpath_analyzer_1.DESCENDANT_OR_SELF:
398
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.SUBTREE, condition) : context.findAll(powershell_1.TreeScope.SUBTREE, condition);
399
+ break;
400
+ case xpath_analyzer_1.FOLLOWING:
401
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.FOLLOWING, condition) : context.findAll(powershell_1.TreeScope.FOLLOWING, condition);
402
+ break;
403
+ case xpath_analyzer_1.FOLLOWING_SIBLING:
404
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.FOLLOWING_SIBLING, condition) : context.findAll(powershell_1.TreeScope.FOLLOWING_SIBLING, condition);
405
+ break;
406
+ case xpath_analyzer_1.NAMESPACE:
407
+ return new powershell_1.AutomationElementGroup( /* empty */);
408
+ case xpath_analyzer_1.PARENT:
409
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.PARENT, condition) : context.findAll(powershell_1.TreeScope.PARENT, condition);
410
+ break;
411
+ case xpath_analyzer_1.PRECEDING:
412
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.PRECEDING, condition) : context.findAll(powershell_1.TreeScope.PRECEDING, condition);
413
+ break;
414
+ case xpath_analyzer_1.PRECEDING_SIBLING:
415
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.PRECEDING_SIBLING, condition) : context.findAll(powershell_1.TreeScope.PRECEDING_SIBLING, condition);
416
+ break;
417
+ case xpath_analyzer_1.SELF:
418
+ find = step[OptimizeLastStep] ? context.findFirst(powershell_1.TreeScope.ELEMENT, condition) : context.findAll(powershell_1.TreeScope.ELEMENT, condition);
419
+ break;
420
+ default:
421
+ throw new base_driver_1.errors.InvalidArgumentError(); // should not be reached, attribute is handled before that
422
+ }
423
+ const result = await sendPowerShellCommand(find.buildCommand());
424
+ const els = result.split('\n').map((id) => id.trim()).filter(Boolean).map((id) => new powershell_1.FoundAutomationElement(id));
425
+ const validEls = [];
426
+ for (const el of els) {
427
+ let isValid = true;
428
+ for (const exprNode of relativeExprNodes) {
429
+ const [isTrue] = await (0, functions_1.handleFunctionCall)(xpath_analyzer_1.BOOLEAN, el, sendPowerShellCommand, exprNode);
430
+ if (!isTrue) {
431
+ isValid = false;
432
+ break;
433
+ }
434
+ }
435
+ if (isValid) {
436
+ validEls.push(el);
437
+ }
438
+ }
439
+ const positionsArray = Array.from(positions);
440
+ if (positionsArray.length === 0) {
441
+ return new powershell_1.AutomationElementGroup(...validEls);
442
+ }
443
+ else {
444
+ return new powershell_1.AutomationElementGroup(...positionsArray.map((index) => index === 0x7FFFFFFF ? validEls[validEls.length - 1] : validEls[index - 1]).filter(Boolean));
445
+ }
446
+ }
447
+ function convertNodeTestToCondition(nodeTest) {
448
+ switch (nodeTest.type) {
449
+ case xpath_analyzer_1.NODE_NAME_TEST:
450
+ if (nodeTest.name === '*') {
451
+ return new powershell_1.TrueCondition();
452
+ }
453
+ // workaround for ControlType 50039 and 50040 not supported in UIAutomationClient
454
+ if (nodeTest.name.toLowerCase() === 'appbar' || nodeTest.name.toLowerCase() === 'semanticzoom') {
455
+ // PSControlType already has a logic to correct the value to localized control type
456
+ return new powershell_1.PropertyCondition(powershell_1.Property.LOCALIZED_CONTROL_TYPE, new powershell_1.PSString(new powershell_1.PSControlType(nodeTest.name).toString()));
457
+ }
458
+ return new powershell_1.PropertyCondition(powershell_1.Property.CONTROL_TYPE, new powershell_1.PSControlType(nodeTest.name));
459
+ case xpath_analyzer_1.NODE_TYPE_TEST:
460
+ if (nodeTest.name === xpath_analyzer_1.NODE) {
461
+ return new powershell_1.TrueCondition();
462
+ }
463
+ // eslint-disable-next-line no-fallthrough
464
+ case xpath_analyzer_1.PROCESSING_INSTRUCTION_TEST:
465
+ return new powershell_1.FalseCondition();
466
+ }
467
+ }
468
+ async function convertAttributeNodeTestToStringArray(nodeTest, context, sendPowerShellCommand) {
469
+ const result = await sendPowerShellCommand(context.buildGetPropertyCommand(powershell_1.Property.RUNTIME_ID));
470
+ const els = result.split('\n').map((id) => id.trim()).filter(Boolean).map((id) => new powershell_1.FoundAutomationElement(id.trim()));
471
+ const extraProperties = ['x', 'y', 'width', 'height'];
472
+ switch (nodeTest.type) {
473
+ case xpath_analyzer_1.NODE_TYPE_TEST:
474
+ if (nodeTest.name === xpath_analyzer_1.NODE) {
475
+ const results = [];
476
+ for (const name of Object.values(powershell_1.Property)) {
477
+ for (const el of els) {
478
+ results.push(await sendPowerShellCommand(el.buildGetPropertyCommand(name)));
479
+ }
480
+ }
481
+ return results;
482
+ }
483
+ return [];
484
+ case xpath_analyzer_1.NODE_NAME_TEST:
485
+ if (extraProperties.includes(nodeTest.name.toLowerCase())) {
486
+ const results = [];
487
+ for (const el of els) {
488
+ const rectJson = await sendPowerShellCommand(el.buildGetElementRectCommand());
489
+ results.push(JSON.parse(rectJson.replaceAll(/(?:infinity)/gi, 0x7FFFFFFF.toString()))[nodeTest.name.toLowerCase()]);
490
+ }
491
+ return results;
492
+ }
493
+ if (Object.values(powershell_1.Property).includes(nodeTest.name.toLowerCase())) {
494
+ const results = [];
495
+ for (const el of els) {
496
+ results.push(await sendPowerShellCommand(el.buildGetPropertyCommand(nodeTest.name)));
497
+ }
498
+ return results;
499
+ }
500
+ // eslint-disable-next-line no-fallthrough
501
+ case xpath_analyzer_1.PROCESSING_INSTRUCTION_TEST:
502
+ default:
503
+ return [];
504
+ }
505
+ }
506
+ function convertToElementArray(element) {
507
+ if (element instanceof powershell_1.AutomationElementGroup) {
508
+ return flattenElementGroupsAndRemoveDuplicates(element.groups);
509
+ }
510
+ return [element];
511
+ }
512
+ function flattenElementGroupsAndRemoveDuplicates(elements) {
513
+ const seen = new Set();
514
+ return elements.reduce((acc, el) => {
515
+ if (el instanceof powershell_1.AutomationElementGroup) {
516
+ return acc.concat(flattenElementGroupsAndRemoveDuplicates(el.groups));
517
+ }
518
+ else {
519
+ if (el instanceof powershell_1.FoundAutomationElement && seen.has(el.runtimeId)) {
520
+ return acc;
521
+ }
522
+ if (el instanceof powershell_1.FoundAutomationElement) {
523
+ seen.add(el.runtimeId);
524
+ }
525
+ acc.push(el);
526
+ return acc;
527
+ }
528
+ }, []);
529
+ }
530
+ function optimizeDoubleSlash(steps) {
531
+ for (let i = 0; i < steps.length - 1; i++) {
532
+ // detect double slash: //element is the same as /descendant-or-self::node()/child::element
533
+ if (steps[i].axis === xpath_analyzer_1.DESCENDANT_OR_SELF && steps[i].test.type === xpath_analyzer_1.NODE_TYPE_TEST && steps[i].predicates.length === 0 && steps[i + 1].axis === xpath_analyzer_1.CHILD) {
534
+ const optimizedStep = { axis: xpath_analyzer_1.DESCENDANT, test: steps[i + 1].test, predicates: steps[i + 1].predicates };
535
+ if (steps[i + 1][OptimizeLastStep]) {
536
+ optimizedStep[OptimizeLastStep] = true;
537
+ }
538
+ const stepsToAdd = [optimizedStep];
539
+ if (steps[i].predicates.some((predicate) => predicate.type === xpath_analyzer_1.FUNCTION_CALL && (predicate.name === xpath_analyzer_1.LAST || predicate.name === xpath_analyzer_1.POSITION))) {
540
+ stepsToAdd.push({ axis: xpath_analyzer_1.PARENT, test: { type: xpath_analyzer_1.NODE_TYPE_TEST, name: 'node' }, predicates: [] }, steps[i + 1]);
541
+ }
542
+ // mutates the original array by reference
543
+ steps.splice(i, 2, ...stepsToAdd);
544
+ }
545
+ }
546
+ }
547
+ function findLastStep(obj) {
548
+ if (Array.isArray(obj)) {
549
+ return findLastStep(obj[obj.length - 1]);
550
+ }
551
+ let lastStepArray;
552
+ for (const key in obj) {
553
+ if (key === 'steps' && Array.isArray(obj[key])) {
554
+ lastStepArray = obj[key];
555
+ }
556
+ if (typeof obj[key] === 'object') {
557
+ const result = findLastStep(obj[key]);
558
+ if (result !== undefined) {
559
+ lastStepArray = result;
560
+ }
561
+ }
562
+ }
563
+ return lastStepArray;
564
+ }
565
+ function predicateProcessableBeforeNode(exprNode) {
566
+ switch (exprNode.type) {
567
+ case xpath_analyzer_1.OR:
568
+ case xpath_analyzer_1.AND:
569
+ return predicateProcessableBeforeNode(exprNode.lhs) && predicateProcessableBeforeNode(exprNode.rhs);
570
+ case xpath_analyzer_1.EQUALITY:
571
+ case xpath_analyzer_1.INEQUALITY: {
572
+ if ((exprNode.lhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH) !== (exprNode.rhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH)) {
573
+ if (exprNode.lhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH
574
+ && exprNode.lhs.steps[0].axis === xpath_analyzer_1.ATTRIBUTE
575
+ && exprNode.lhs.steps[0].test.type === xpath_analyzer_1.NODE_NAME_TEST
576
+ && XPathAllowedProperties.includes(exprNode.lhs.steps[0].test.name?.toLowerCase())) {
577
+ return true;
578
+ }
579
+ if (exprNode.rhs.type === xpath_analyzer_1.RELATIVE_LOCATION_PATH
580
+ && exprNode.rhs.steps[0].axis === xpath_analyzer_1.ATTRIBUTE
581
+ && exprNode.rhs.steps[0].test.type === xpath_analyzer_1.NODE_NAME_TEST
582
+ && XPathAllowedProperties.includes(exprNode.rhs.steps[0].test.name?.toLowerCase())) {
583
+ return true;
584
+ }
585
+ }
586
+ }
587
+ // eslint-disable-next-line no-fallthrough
588
+ default: {
589
+ return false;
590
+ }
591
+ }
592
+ }
593
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../lib/xpath/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { FunctionName, ExprNode } from 'xpath-analyzer';
2
+ import { AutomationElement } from '../powershell';
3
+ export declare function handleFunctionCall<T>(name: FunctionName, context: AutomationElement, sendPowerShellCommand: (command: string) => Promise<string>, ...args: ExprNode[]): Promise<T[]>;
4
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../lib/xpath/functions.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,YAAY,EACZ,QAAQ,EA0BX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAgF,MAAM,eAAe,CAAC;AAMhI,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CA4T1L"}