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.
- package/LICENSE +202 -0
- package/README.md +609 -0
- package/ROADMAP.md +175 -0
- package/build/lib/commands/actions.d.ts +12 -0
- package/build/lib/commands/actions.d.ts.map +1 -0
- package/build/lib/commands/actions.js +242 -0
- package/build/lib/commands/actions.js.map +1 -0
- package/build/lib/commands/app.d.ts +18 -0
- package/build/lib/commands/app.d.ts.map +1 -0
- package/build/lib/commands/app.js +280 -0
- package/build/lib/commands/app.js.map +1 -0
- package/build/lib/commands/device.d.ts +11 -0
- package/build/lib/commands/device.d.ts.map +1 -0
- package/build/lib/commands/device.js +236 -0
- package/build/lib/commands/device.js.map +1 -0
- package/build/lib/commands/element.d.ts +16 -0
- package/build/lib/commands/element.d.ts.map +1 -0
- package/build/lib/commands/element.js +233 -0
- package/build/lib/commands/element.js.map +1 -0
- package/build/lib/commands/extension.d.ts +124 -0
- package/build/lib/commands/extension.d.ts.map +1 -0
- package/build/lib/commands/extension.js +715 -0
- package/build/lib/commands/extension.js.map +1 -0
- package/build/lib/commands/functions.d.ts +3 -0
- package/build/lib/commands/functions.d.ts.map +1 -0
- package/build/lib/commands/functions.js +194 -0
- package/build/lib/commands/functions.js.map +1 -0
- package/build/lib/commands/index.d.ts +178 -0
- package/build/lib/commands/index.d.ts.map +1 -0
- package/build/lib/commands/index.js +54 -0
- package/build/lib/commands/index.js.map +1 -0
- package/build/lib/commands/powershell.d.ts +6 -0
- package/build/lib/commands/powershell.d.ts.map +1 -0
- package/build/lib/commands/powershell.js +202 -0
- package/build/lib/commands/powershell.js.map +1 -0
- package/build/lib/commands/screen-recorder.d.ts +40 -0
- package/build/lib/commands/screen-recorder.d.ts.map +1 -0
- package/build/lib/commands/screen-recorder.js +183 -0
- package/build/lib/commands/screen-recorder.js.map +1 -0
- package/build/lib/commands/system.d.ts +4 -0
- package/build/lib/commands/system.d.ts.map +1 -0
- package/build/lib/commands/system.js +8 -0
- package/build/lib/commands/system.js.map +1 -0
- package/build/lib/constants.d.ts +3 -0
- package/build/lib/constants.d.ts.map +1 -0
- package/build/lib/constants.js +6 -0
- package/build/lib/constants.js.map +1 -0
- package/build/lib/constraints.d.ts +58 -0
- package/build/lib/constraints.d.ts.map +1 -0
- package/build/lib/constraints.js +60 -0
- package/build/lib/constraints.js.map +1 -0
- package/build/lib/driver.d.ts +36 -0
- package/build/lib/driver.d.ts.map +1 -0
- package/build/lib/driver.js +209 -0
- package/build/lib/driver.js.map +1 -0
- package/build/lib/enums.d.ts +89 -0
- package/build/lib/enums.d.ts.map +1 -0
- package/build/lib/enums.js +83 -0
- package/build/lib/enums.js.map +1 -0
- package/build/lib/mcp/appium-manager.d.ts +8 -0
- package/build/lib/mcp/appium-manager.d.ts.map +1 -0
- package/build/lib/mcp/appium-manager.js +160 -0
- package/build/lib/mcp/appium-manager.js.map +1 -0
- package/build/lib/mcp/config.d.ts +7 -0
- package/build/lib/mcp/config.d.ts.map +1 -0
- package/build/lib/mcp/config.js +14 -0
- package/build/lib/mcp/config.js.map +1 -0
- package/build/lib/mcp/constants.d.ts +3 -0
- package/build/lib/mcp/constants.d.ts.map +1 -0
- package/build/lib/mcp/constants.js +6 -0
- package/build/lib/mcp/constants.js.map +1 -0
- package/build/lib/mcp/errors.d.ts +2 -0
- package/build/lib/mcp/errors.d.ts.map +1 -0
- package/build/lib/mcp/errors.js +10 -0
- package/build/lib/mcp/errors.js.map +1 -0
- package/build/lib/mcp/index.d.ts +3 -0
- package/build/lib/mcp/index.d.ts.map +1 -0
- package/build/lib/mcp/index.js +113 -0
- package/build/lib/mcp/index.js.map +1 -0
- package/build/lib/mcp/session.d.ts +24 -0
- package/build/lib/mcp/session.d.ts.map +1 -0
- package/build/lib/mcp/session.js +77 -0
- package/build/lib/mcp/session.js.map +1 -0
- package/build/lib/mcp/tools/advanced.d.ts +4 -0
- package/build/lib/mcp/tools/advanced.d.ts.map +1 -0
- package/build/lib/mcp/tools/advanced.js +119 -0
- package/build/lib/mcp/tools/advanced.js.map +1 -0
- package/build/lib/mcp/tools/app.d.ts +4 -0
- package/build/lib/mcp/tools/app.d.ts.map +1 -0
- package/build/lib/mcp/tools/app.js +64 -0
- package/build/lib/mcp/tools/app.js.map +1 -0
- package/build/lib/mcp/tools/clipboard.d.ts +4 -0
- package/build/lib/mcp/tools/clipboard.d.ts.map +1 -0
- package/build/lib/mcp/tools/clipboard.js +41 -0
- package/build/lib/mcp/tools/clipboard.js.map +1 -0
- package/build/lib/mcp/tools/find.d.ts +4 -0
- package/build/lib/mcp/tools/find.d.ts.map +1 -0
- package/build/lib/mcp/tools/find.js +119 -0
- package/build/lib/mcp/tools/find.js.map +1 -0
- package/build/lib/mcp/tools/index.d.ts +4 -0
- package/build/lib/mcp/tools/index.d.ts.map +1 -0
- package/build/lib/mcp/tools/index.js +24 -0
- package/build/lib/mcp/tools/index.js.map +1 -0
- package/build/lib/mcp/tools/inspect.d.ts +4 -0
- package/build/lib/mcp/tools/inspect.d.ts.map +1 -0
- package/build/lib/mcp/tools/inspect.js +106 -0
- package/build/lib/mcp/tools/inspect.js.map +1 -0
- package/build/lib/mcp/tools/interact.d.ts +4 -0
- package/build/lib/mcp/tools/interact.d.ts.map +1 -0
- package/build/lib/mcp/tools/interact.js +121 -0
- package/build/lib/mcp/tools/interact.js.map +1 -0
- package/build/lib/mcp/tools/patterns.d.ts +4 -0
- package/build/lib/mcp/tools/patterns.d.ts.map +1 -0
- package/build/lib/mcp/tools/patterns.js +136 -0
- package/build/lib/mcp/tools/patterns.js.map +1 -0
- package/build/lib/mcp/tools/session.d.ts +4 -0
- package/build/lib/mcp/tools/session.d.ts.map +1 -0
- package/build/lib/mcp/tools/session.js +55 -0
- package/build/lib/mcp/tools/session.js.map +1 -0
- package/build/lib/mcp/tools/window.d.ts +4 -0
- package/build/lib/mcp/tools/window.d.ts.map +1 -0
- package/build/lib/mcp/tools/window.js +134 -0
- package/build/lib/mcp/tools/window.js.map +1 -0
- package/build/lib/powershell/common.d.ts +39 -0
- package/build/lib/powershell/common.d.ts.map +1 -0
- package/build/lib/powershell/common.js +121 -0
- package/build/lib/powershell/common.js.map +1 -0
- package/build/lib/powershell/conditions.d.ts +24 -0
- package/build/lib/powershell/conditions.d.ts.map +1 -0
- package/build/lib/powershell/conditions.js +131 -0
- package/build/lib/powershell/conditions.js.map +1 -0
- package/build/lib/powershell/converter.d.ts +3 -0
- package/build/lib/powershell/converter.d.ts.map +1 -0
- package/build/lib/powershell/converter.js +273 -0
- package/build/lib/powershell/converter.js.map +1 -0
- package/build/lib/powershell/core.d.ts +8 -0
- package/build/lib/powershell/core.d.ts.map +1 -0
- package/build/lib/powershell/core.js +30 -0
- package/build/lib/powershell/core.js.map +1 -0
- package/build/lib/powershell/elements.d.ts +70 -0
- package/build/lib/powershell/elements.d.ts.map +1 -0
- package/build/lib/powershell/elements.js +523 -0
- package/build/lib/powershell/elements.js.map +1 -0
- package/build/lib/powershell/index.d.ts +8 -0
- package/build/lib/powershell/index.d.ts.map +1 -0
- package/build/lib/powershell/index.js +24 -0
- package/build/lib/powershell/index.js.map +1 -0
- package/build/lib/powershell/regex.d.ts +19 -0
- package/build/lib/powershell/regex.d.ts.map +1 -0
- package/build/lib/powershell/regex.js +68 -0
- package/build/lib/powershell/regex.js.map +1 -0
- package/build/lib/powershell/types.d.ts +155 -0
- package/build/lib/powershell/types.d.ts.map +1 -0
- package/build/lib/powershell/types.js +141 -0
- package/build/lib/powershell/types.js.map +1 -0
- package/build/lib/util.d.ts +17 -0
- package/build/lib/util.d.ts.map +1 -0
- package/build/lib/util.js +76 -0
- package/build/lib/util.js.map +1 -0
- package/build/lib/winapi/types/index.d.ts +8 -0
- package/build/lib/winapi/types/index.d.ts.map +1 -0
- package/build/lib/winapi/types/index.js +24 -0
- package/build/lib/winapi/types/index.js.map +1 -0
- package/build/lib/winapi/types/input.d.ts +11 -0
- package/build/lib/winapi/types/input.d.ts.map +1 -0
- package/build/lib/winapi/types/input.js +12 -0
- package/build/lib/winapi/types/input.js.map +1 -0
- package/build/lib/winapi/types/keyeventf.d.ts +13 -0
- package/build/lib/winapi/types/keyeventf.d.ts.map +1 -0
- package/build/lib/winapi/types/keyeventf.js +14 -0
- package/build/lib/winapi/types/keyeventf.js.map +1 -0
- package/build/lib/winapi/types/mouseeventf.d.ts +34 -0
- package/build/lib/winapi/types/mouseeventf.d.ts.map +1 -0
- package/build/lib/winapi/types/mouseeventf.js +37 -0
- package/build/lib/winapi/types/mouseeventf.js.map +1 -0
- package/build/lib/winapi/types/scancode.d.ts +95 -0
- package/build/lib/winapi/types/scancode.d.ts.map +1 -0
- package/build/lib/winapi/types/scancode.js +96 -0
- package/build/lib/winapi/types/scancode.js.map +1 -0
- package/build/lib/winapi/types/systemmetric.d.ts +214 -0
- package/build/lib/winapi/types/systemmetric.d.ts.map +1 -0
- package/build/lib/winapi/types/systemmetric.js +215 -0
- package/build/lib/winapi/types/systemmetric.js.map +1 -0
- package/build/lib/winapi/types/virtualkey.d.ts +353 -0
- package/build/lib/winapi/types/virtualkey.d.ts.map +1 -0
- package/build/lib/winapi/types/virtualkey.js +354 -0
- package/build/lib/winapi/types/virtualkey.js.map +1 -0
- package/build/lib/winapi/types/xmousebutton.d.ts +7 -0
- package/build/lib/winapi/types/xmousebutton.d.ts.map +1 -0
- package/build/lib/winapi/types/xmousebutton.js +8 -0
- package/build/lib/winapi/types/xmousebutton.js.map +1 -0
- package/build/lib/winapi/user32.d.ts +56 -0
- package/build/lib/winapi/user32.d.ts.map +1 -0
- package/build/lib/winapi/user32.js +592 -0
- package/build/lib/winapi/user32.js.map +1 -0
- package/build/lib/xpath/core.d.ts +8 -0
- package/build/lib/xpath/core.d.ts.map +1 -0
- package/build/lib/xpath/core.js +593 -0
- package/build/lib/xpath/core.js.map +1 -0
- package/build/lib/xpath/functions.d.ts +4 -0
- package/build/lib/xpath/functions.d.ts.map +1 -0
- package/build/lib/xpath/functions.js +271 -0
- package/build/lib/xpath/functions.js.map +1 -0
- package/build/lib/xpath/index.d.ts +3 -0
- package/build/lib/xpath/index.d.ts.map +1 -0
- package/build/lib/xpath/index.js +19 -0
- package/build/lib/xpath/index.js.map +1 -0
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GA,4CA+CC;AAED,0CA+GC;AAwCD,gEA6IC;AA6ND,wEA8BC;AAzrBD,qDAA8D;AAE9D,iEAgDwB;AAExB,8CAqBuB;AAEvB,2CAAiD;AAEjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEhD,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,qBAAQ,CAAC,eAAe;IACxB,qBAAQ,CAAC,UAAU;IACnB,qBAAQ,CAAC,aAAa;IACtB,qBAAQ,CAAC,UAAU;IACnB,qBAAQ,CAAC,YAAY;IACrB,qBAAQ,CAAC,kBAAkB;IAC3B,qBAAQ,CAAC,SAAS;IAClB,qBAAQ,CAAC,kBAAkB;IAC3B,qBAAQ,CAAC,kBAAkB;IAC3B,qBAAQ,CAAC,UAAU;IACnB,qBAAQ,CAAC,qBAAqB;IAC9B,qBAAQ,CAAC,YAAY;IACrB,qBAAQ,CAAC,WAAW;IACpB,qBAAQ,CAAC,oBAAoB;IAC7B,qBAAQ,CAAC,WAAW;IACpB,qBAAQ,CAAC,SAAS;IAClB,qBAAQ,CAAC,sBAAsB;IAC/B,qBAAQ,CAAC,IAAI;IACb,qBAAQ,CAAC,WAAW;IACpB,qBAAQ,CAAC,UAAU;IACnB,qBAAQ,CAAC,UAAU;CACb,CAAC,CAAC;AAIL,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAa,EAAE,OAA2B,EAAE,qBAA2D;IAC5J,IAAI,WAAqB,CAAC;IAE1B,IAAI,CAAC;QACD,WAAW,GAAG,IAAI,wBAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAM,CAAC,oBAAoB,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,oBAAM,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,WAAW,CAAC,IAAI,KAAK,sBAAK,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBACd,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YACjE,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBACd,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YACjE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBAC7F,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,wBAAwB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAK,EAAE,CAAC;QACvF,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,qBAAI,CAAC;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,eAAe,CAAyB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,mCAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,8BAAiB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAC1L,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,mCAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,6BAAe,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAElI,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,oBAAM,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,eAAe,CAAI,QAAkB,EAAE,OAA0B,EAAE,qBAA2D;IAChJ,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,uBAAM;YACP,OAAO,CAAC,QAAQ,CAAC,MAAW,CAAC,CAAC;QAClC,KAAK,wBAAO;YACR,OAAO,CAAC,QAAQ,CAAC,MAAW,CAAC,CAAC;QAClC,KAAK,sBAAK;YACN,OAAO,CAAC,GAAG,MAAM,eAAe,CAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE,GAAG,MAAM,eAAe,CAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAClK,KAAK,8BAAa;YACd,OAAO,MAAM,IAAA,8BAAkB,EAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrG,KAAK,uCAAsB,CAAC;QAC5B,KAAK,uCAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAQ,CAAC,CAAC;YAC3F,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,KAAK,qBAAI,CAAC,CAAC,CAAC;YACR,MAAM,YAAY,GAAG,MAAM,eAAe,CAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC/F,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAC9B,IAAI,IAAI,YAAY,8BAAiB,EAAE,CAAC;oBACpC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC;wBAC5C,IAAI,EAAE,uCAAsB;wBAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACxB,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,cAAqB,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,KAAK,uBAAM,CAAC,CAAC,CAAC;YACV,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC9F,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,IAAI,YAAY,8BAAiB,EAAE,CAAC;oBACpC,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;wBACnC,IAAI,EAAE,qBAAI;wBACV,IAAI,EAAE;4BACF,IAAI,EAAE,+BAAc;4BACpB,IAAI,EAAE,qBAAI;yBACb;wBACD,UAAU,EAAE,QAAQ,CAAC,UAAU;qBAClC,EAAE,IAAI,EAAE,qBAAqB,CAAM,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,KAAK,mBAAE,CAAC;QACJ,KAAK,oBAAG,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAI,wBAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAI,wBAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEjG,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAG,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,KAAK,yBAAQ;YACT,OAAO,CAAC,CAAC,MAAM,IAAA,8BAAkB,EAAI,uBAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAM,CAAC,CAAC;QACrG,KAAK,yBAAQ,CAAC;QACd,KAAK,2BAAU,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAS,uBAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAS,uBAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,yBAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAM,CAAC,CAAC;YAClF,CAAC;YAED,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,yBAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAM,CAAC,CAAC;QAClH,CAAC;QACD,KAAK,yBAAQ,CAAC;QACd,KAAK,2BAAU,CAAC;QAChB,KAAK,6BAAY,CAAC;QAClB,KAAK,sCAAqB,CAAC;QAC3B,KAAK,0BAAS,CAAC;QACf,KAAK,mCAAkB,CAAC;QACxB,KAAK,wBAAO,CAAC;QACb,KAAK,+BAAc,CAAC;QACpB,KAAK,4BAAW;YAChB,CAAC;gBACG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAS,uBAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAS,uBAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAErG,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,yBAAQ;wBACT,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,2BAAU;wBACX,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,6BAAY;wBACb,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,sCAAqB;wBACtB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAM,CAAC,CAAC;oBAC/B,KAAK,0BAAS;wBACV,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,mCAAkB;wBACnB,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAM,CAAC,CAAC;oBAC/B,KAAK,wBAAO;wBACR,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,+BAAc;wBACf,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;oBAC9B,KAAK,4BAAW;wBACZ,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAM,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAsB,EAAE,OAA0B,EAAE,qBAA2D;IAC7I,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,oBAAM,CAAC,oBAAoB,CAAC,gCAAgC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,uCAAsB,EAAE,CAAC;QAC3C,OAAO,GAAG,8BAAiB,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,YAAY,mCAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,oBAAM,CAAC,oBAAoB,CAAC,2DAA2D,OAAO,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;IACxI,CAAC;IAED,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,0BAAS,EAAE,CAAC;YAC1B,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO,MAAM,qCAAqC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC;QAED,IAAI,OAAO,YAAY,mCAAsB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,GAAG,IAAI,mCAAsB,CAAC,GAAG,uCAAuC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAAC,QAAkB,EAAE,OAA0B,EAAE,SAAsB,EAAE,qBAA2D,EAAE,iBAA8B;IAChN,iBAAiB,KAAK,EAAE,CAAC;IACzB,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,uBAAM;YACP,OAAO,MAAM,0BAA0B,CAAC;gBACpC,IAAI,EAAE,yBAAQ;gBACd,GAAG,EAAE;oBACD,IAAI,EAAE,8BAAa;oBACnB,IAAI,EAAE,yBAAQ;oBACd,IAAI,EAAE,EAAE;iBACX;gBACD,GAAG,EAAE;oBACD,IAAI,EAAE,uBAAM;oBACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;iBAC1B;aACJ,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;QACrE,KAAK,mBAAE;YACH,OAAO,CAAC,IAAI,wBAAW,CACf,CAAC,MAAM,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACjH,CAAC,MAAM,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CACxH,EAAE,iBAAiB,CAAC,CAAC;QAC1B,KAAK,oBAAG;YACJ,OAAO,CAAC,IAAI,yBAAY,CAChB,CAAC,MAAM,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EACjH,CAAC,MAAM,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CACxH,EAAE,iBAAiB,CAAC,CAAC;QAC1B,KAAK,yBAAQ,CAAC;QACd,KAAK,2BAAU,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB,CAAC,EAAE,CAAC;gBACpG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB;uBACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAS;uBACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,+BAAc;uBAClD,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAA4B,CAAC,EAC9G,CAAC;oBACC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAc,CAAC;oBAChF,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;oBACpF,IAAI,YAAY,KAAK,qBAAQ,CAAC,UAAU,EAAE,CAAC;wBACvC,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,yBAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAC5H,CAAC;oBAED,IAAI,YAAY,KAAK,qBAAQ,CAAC,WAAW,EAAE,CAAC;wBACxC,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,8BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAC1G,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,0BAAa,CAAC,CAAC,QAAQ,CAAC,YAA6B,CAAC,EAAE,CAAC;wBACvE,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,oBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChG,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,2BAAc,CAAC,CAAC,QAAQ,CAAC,YAA8B,CAAC,EAAE,CAAC;wBACzE,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,qBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACjG,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,4BAAe,CAAC,CAAC,QAAQ,CAAC,YAA+B,CAAC,EAAE,CAAC;wBAC3E,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACnG,CAAC;gBACL,CAAC;gBAED,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB;uBACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAS;uBACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,+BAAc;uBAClD,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAA4B,CAAC,EAC9G,CAAC;oBACC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAc,CAAC;oBAChF,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;oBACpF,IAAI,YAAY,KAAK,qBAAQ,CAAC,UAAU,EAAE,CAAC;wBACvC,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,yBAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAC5H,CAAC;oBAED,IAAI,YAAY,KAAK,qBAAQ,CAAC,WAAW,EAAE,CAAC;wBACxC,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,8BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAC1G,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,0BAAa,CAAC,CAAC,QAAQ,CAAC,YAA6B,CAAC,EAAE,CAAC;wBACvE,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,oBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAChG,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,2BAAc,CAAC,CAAC,QAAQ,CAAC,YAA8B,CAAC,EAAE,CAAC;wBACzE,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,qBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACjG,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,CAAC,4BAAe,CAAC,CAAC,QAAQ,CAAC,YAA+B,CAAC,EAAE,CAAC;wBAC3E,OAAO,CAAC,IAAI,8BAAiB,CAAC,YAAY,EAAE,IAAI,sBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBACnG,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,yBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,yBAAQ,CAAC,EAAE,CAAC;gBAC7J,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,yBAAQ,EAAE,CAAC;oBACxE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,qBAAI,EAAE,CAAC;wBACpE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAS,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;wBAE5F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAC5B,OAAO,CAAC,IAAI,2BAAc,EAAE,CAAC,CAAC;wBAClC,CAAC;wBAED,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAED,OAAO,CAAC,IAAI,0BAAa,CAAC,CAAC;gBAC/B,CAAC;gBAED,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,yBAAQ,EAAE,CAAC;oBACxE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,qBAAI,EAAE,CAAC;wBACpE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAS,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;wBAE5F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAC5B,OAAO,CAAC,IAAI,2BAAc,EAAE,CAAC,CAAC;wBAClC,CAAC;wBAED,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;oBAED,OAAO,CAAC,IAAI,0BAAa,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAE/E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,OAAO,MAAM,0BAA0B,CAAC;oBACpC,IAAI,EAAE,yBAAQ;oBACd,GAAG,EAAE;wBACD,IAAI,EAAE,8BAAa;wBACnB,IAAI,EAAE,yBAAQ;wBACd,IAAI,EAAE,EAAE;qBACX;oBACD,GAAG,EAAE;wBACD,IAAI,EAAE,uBAAM;wBACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;qBACpB;iBACJ,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;YACrE,CAAC;YAED,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,0BAAa,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAc,EAAE,OAA0B,EAAE,qBAA2D;IAC9H,MAAM,mBAAmB,GAAgB,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACtH,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACZ,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QACzC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,yBAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3K,IAAI,IAAuB,CAAC;IAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,yBAAQ;YACT,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpI,MAAM;QACV,KAAK,iCAAgB;YACjB,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACpJ,MAAM;QACV,KAAK,sBAAK;YACN,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClI,MAAM;QACV,KAAK,2BAAU;YACX,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACxI,MAAM;QACV,KAAK,mCAAkB;YACnB,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAChI,MAAM;QACV,KAAK,0BAAS;YACV,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpI,MAAM;QACV,KAAK,kCAAiB;YAClB,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACpJ,MAAM;QACV,KAAK,0BAAS;YACV,OAAO,IAAI,mCAAsB,EAAC,WAAW,CAAC,CAAC;QACnD,KAAK,uBAAM;YACP,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC9H,MAAM;QACV,KAAK,0BAAS;YACV,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpI,MAAM;QACV,KAAK,kCAAiB;YAClB,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACpJ,MAAM;QACV,KAAK,qBAAI;YACL,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAChI,MAAM;QACV;YACI,MAAM,IAAI,oBAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,0DAA0D;IAC3G,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,mCAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACnB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAC,wBAAO,EAAE,EAAE,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,mCAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,mCAAsB,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpK,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAsB;IACtD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,+BAAc;YACf,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,OAAO,IAAI,0BAAa,EAAE,CAAC;YAC/B,CAAC;YACD,iFAAiF;YACjF,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;gBAC7F,mFAAmF;gBACnF,OAAO,IAAI,8BAAiB,CAAC,qBAAQ,CAAC,sBAAsB,EAAE,IAAI,qBAAQ,CAAC,IAAI,0BAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC7H,CAAC;YACD,OAAO,IAAI,8BAAiB,CAAC,qBAAQ,CAAC,YAAY,EAAE,IAAI,0BAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,KAAK,+BAAc;YACf,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAI,EAAE,CAAC;gBACzB,OAAO,IAAI,0BAAa,EAAE,CAAC;YAC/B,CAAC;QACL,0CAA0C;QAC1C,KAAK,4CAA2B;YAC5B,OAAO,IAAI,2BAAc,EAAE,CAAC;IACpC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qCAAqC,CAAC,QAAsB,EAAE,OAA0B,EAAE,qBAA2D;IAChK,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,uBAAuB,CAAC,qBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,mCAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,+BAAc;YACf,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAI,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAQ,CAAC,EAAE,CAAC;oBACzC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChF,CAAC;gBACL,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,OAAO,EAAE,CAAC;QACd,KAAK,+BAAc;YACf,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;oBAC9E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACxH,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAc,CAAC,EAAE,CAAC;gBAC5E,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzF,CAAC;gBAED,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,0CAA0C;QAC1C,KAAK,4CAA2B,CAAC;QACjC;YACI,OAAO,EAAE,CAAC;IAClB,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA0B;IACrD,IAAI,OAAO,YAAY,mCAAsB,EAAE,CAAC;QAC5C,OAAO,uCAAuC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,uCAAuC,CAAC,QAA6B;IAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,QAAQ,CAAC,MAAM,CAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACpD,IAAI,EAAE,YAAY,mCAAsB,EAAE,CAAC;YACvC,OAAO,GAAG,CAAC,MAAM,CAAC,uCAAuC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,IAAI,EAAE,YAAY,mCAAsB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,OAAO,GAAG,CAAC;YACf,CAAC;YAED,IAAI,EAAE,YAAY,mCAAsB,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,GAAG,CAAC;QACf,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAiB;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,2FAA2F;QAC3F,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,mCAAkB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,+BAAc,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAK,EAAE,CAAC;YACnJ,MAAM,aAAa,GAAa,EAAE,IAAI,EAAE,2BAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACnH,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YAC3C,CAAC;YACD,MAAM,UAAU,GAAe,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,8BAAa,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,qBAAI,IAAI,SAAS,CAAC,IAAI,KAAK,yBAAQ,CAAC,CAAC,EAAE,CAAC;gBACxI,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,+BAAc,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClH,CAAC;YAED,0CAA0C;YAC1C,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,aAAqC,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAE7C,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,aAAa,GAAG,MAAM,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAgB,8BAA8B,CAAC,QAAkB;IAC7D,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,mBAAE,CAAC;QACR,KAAK,oBAAG;YACJ,OAAO,8BAA8B,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,8BAA8B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxG,KAAK,yBAAQ,CAAC;QACd,KAAK,2BAAU,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB,CAAC,EAAE,CAAC;gBACpG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB;uBACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAS;uBACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,+BAAc;uBAClD,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAA4B,CAAC,EAC9G,CAAC;oBACC,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,uCAAsB;uBACzC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,0BAAS;uBACxC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,+BAAc;uBAClD,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAA4B,CAAC,EAC9G,CAAC;oBACC,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,0CAA0C;QAC1C,OAAO,CAAC,CAAC,CAAC;YACN,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -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"}
|