@appium/universal-xml-plugin 1.0.0-beta.14 → 1.0.0-beta.16
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/build/lib/attr-map.js +32 -47
- package/build/lib/attr-map.js.map +1 -0
- package/build/lib/index.js +23 -46
- package/build/lib/index.js.map +1 -0
- package/build/lib/logger.js +5 -15
- package/build/lib/logger.js.map +1 -0
- package/build/lib/node-map.js +225 -146
- package/build/lib/node-map.js.map +1 -0
- package/build/lib/plugin.js +79 -91
- package/build/lib/plugin.js.map +1 -0
- package/build/lib/source.js +162 -202
- package/build/lib/source.js.map +1 -0
- package/build/lib/transformers.js +26 -35
- package/build/lib/transformers.js.map +1 -0
- package/build/lib/xpath.js +41 -46
- package/build/lib/xpath.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/xpath.js +1 -1
- package/package.json +4 -10
|
@@ -1,40 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
var _source = require("./source");
|
|
11
|
-
|
|
12
|
-
function ios(nodeObj) {
|
|
13
|
-
return nodeObj;
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const source_1 = require("./source");
|
|
4
|
+
function ios(nodeObj /*, metadata*/) {
|
|
5
|
+
return nodeObj;
|
|
14
6
|
}
|
|
15
|
-
|
|
16
7
|
function android(nodeObj, metadata) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
8
|
+
// strip android:id from front of id
|
|
9
|
+
const resId = nodeObj[`${source_1.ATTR_PREFIX}resource-id`];
|
|
10
|
+
if (resId && metadata.appPackage) {
|
|
11
|
+
nodeObj[`${source_1.ATTR_PREFIX}resource-id`] = resId.replace(`${metadata.appPackage}:id/`, '');
|
|
12
|
+
}
|
|
13
|
+
// turn bounds attr into rect-based attrs
|
|
14
|
+
if (nodeObj[`${source_1.ATTR_PREFIX}bounds`]) {
|
|
15
|
+
const boundsArray = nodeObj[`${source_1.ATTR_PREFIX}bounds`]
|
|
16
|
+
.split(/\[|\]|,/)
|
|
17
|
+
.filter((str) => str !== '');
|
|
18
|
+
const [x, y, x2, y2] = boundsArray;
|
|
19
|
+
const width = x2 - x;
|
|
20
|
+
const height = y2 - y;
|
|
21
|
+
nodeObj[`${source_1.ATTR_PREFIX}x`] = x;
|
|
22
|
+
nodeObj[`${source_1.ATTR_PREFIX}y`] = y;
|
|
23
|
+
nodeObj[`${source_1.ATTR_PREFIX}width`] = width;
|
|
24
|
+
nodeObj[`${source_1.ATTR_PREFIX}height`] = height;
|
|
25
|
+
}
|
|
33
26
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
android
|
|
27
|
+
exports.default = {
|
|
28
|
+
ios,
|
|
29
|
+
android,
|
|
38
30
|
};
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpb3MiLCJub2RlT2JqIiwiYW5kcm9pZCIsIm1ldGFkYXRhIiwicmVzSWQiLCJBVFRSX1BSRUZJWCIsImFwcFBhY2thZ2UiLCJyZXBsYWNlIiwiYm91bmRzQXJyYXkiLCJzcGxpdCIsImZpbHRlciIsInN0ciIsIngiLCJ5IiwieDIiLCJ5MiIsIndpZHRoIiwiaGVpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3RyYW5zZm9ybWVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FUVFJfUFJFRklYfSBmcm9tICcuL3NvdXJjZSc7XG5cbmZ1bmN0aW9uIGlvcyhub2RlT2JqIC8qLCBtZXRhZGF0YSovKSB7XG4gIHJldHVybiBub2RlT2JqO1xufVxuXG5mdW5jdGlvbiBhbmRyb2lkKG5vZGVPYmosIG1ldGFkYXRhKSB7XG4gIC8vIHN0cmlwIGFuZHJvaWQ6aWQgZnJvbSBmcm9udCBvZiBpZFxuICBjb25zdCByZXNJZCA9IG5vZGVPYmpbYCR7QVRUUl9QUkVGSVh9cmVzb3VyY2UtaWRgXTtcbiAgaWYgKHJlc0lkICYmIG1ldGFkYXRhLmFwcFBhY2thZ2UpIHtcbiAgICBub2RlT2JqW2Ake0FUVFJfUFJFRklYfXJlc291cmNlLWlkYF0gPSByZXNJZC5yZXBsYWNlKGAke21ldGFkYXRhLmFwcFBhY2thZ2V9OmlkL2AsICcnKTtcbiAgfVxuXG4gIC8vIHR1cm4gYm91bmRzIGF0dHIgaW50byByZWN0LWJhc2VkIGF0dHJzXG4gIGlmIChub2RlT2JqW2Ake0FUVFJfUFJFRklYfWJvdW5kc2BdKSB7XG4gICAgY29uc3QgYm91bmRzQXJyYXkgPSBub2RlT2JqW2Ake0FUVFJfUFJFRklYfWJvdW5kc2BdXG4gICAgICAuc3BsaXQoL1xcW3xcXF18LC8pXG4gICAgICAuZmlsdGVyKChzdHIpID0+IHN0ciAhPT0gJycpO1xuICAgIGNvbnN0IFt4LCB5LCB4MiwgeTJdID0gYm91bmRzQXJyYXk7XG4gICAgY29uc3Qgd2lkdGggPSB4MiAtIHg7XG4gICAgY29uc3QgaGVpZ2h0ID0geTIgLSB5O1xuICAgIG5vZGVPYmpbYCR7QVRUUl9QUkVGSVh9eGBdID0geDtcbiAgICBub2RlT2JqW2Ake0FUVFJfUFJFRklYfXlgXSA9IHk7XG4gICAgbm9kZU9ialtgJHtBVFRSX1BSRUZJWH13aWR0aGBdID0gd2lkdGg7XG4gICAgbm9kZU9ialtgJHtBVFRSX1BSRUZJWH1oZWlnaHRgXSA9IGhlaWdodDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlvcyxcbiAgYW5kcm9pZCxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLFNBQVNBLEdBQVQsQ0FBYUMsT0FBYixFQUFxQztFQUNuQyxPQUFPQSxPQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsT0FBVCxDQUFpQkQsT0FBakIsRUFBMEJFLFFBQTFCLEVBQW9DO0VBRWxDLE1BQU1DLEtBQUssR0FBR0gsT0FBTyxDQUFFLEdBQUVJLG1CQUFZLGFBQWhCLENBQXJCOztFQUNBLElBQUlELEtBQUssSUFBSUQsUUFBUSxDQUFDRyxVQUF0QixFQUFrQztJQUNoQ0wsT0FBTyxDQUFFLEdBQUVJLG1CQUFZLGFBQWhCLENBQVAsR0FBdUNELEtBQUssQ0FBQ0csT0FBTixDQUFlLEdBQUVKLFFBQVEsQ0FBQ0csVUFBVyxNQUFyQyxFQUE0QyxFQUE1QyxDQUF2QztFQUNEOztFQUdELElBQUlMLE9BQU8sQ0FBRSxHQUFFSSxtQkFBWSxRQUFoQixDQUFYLEVBQXFDO0lBQ25DLE1BQU1HLFdBQVcsR0FBR1AsT0FBTyxDQUFFLEdBQUVJLG1CQUFZLFFBQWhCLENBQVAsQ0FDakJJLEtBRGlCLENBQ1gsU0FEVyxFQUVqQkMsTUFGaUIsQ0FFVEMsR0FBRCxJQUFTQSxHQUFHLEtBQUssRUFGUCxDQUFwQjtJQUdBLE1BQU0sQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLEVBQVAsRUFBV0MsRUFBWCxJQUFpQlAsV0FBdkI7SUFDQSxNQUFNUSxLQUFLLEdBQUdGLEVBQUUsR0FBR0YsQ0FBbkI7SUFDQSxNQUFNSyxNQUFNLEdBQUdGLEVBQUUsR0FBR0YsQ0FBcEI7SUFDQVosT0FBTyxDQUFFLEdBQUVJLG1CQUFZLEdBQWhCLENBQVAsR0FBNkJPLENBQTdCO0lBQ0FYLE9BQU8sQ0FBRSxHQUFFSSxtQkFBWSxHQUFoQixDQUFQLEdBQTZCUSxDQUE3QjtJQUNBWixPQUFPLENBQUUsR0FBRUksbUJBQVksT0FBaEIsQ0FBUCxHQUFpQ1csS0FBakM7SUFDQWYsT0FBTyxDQUFFLEdBQUVJLG1CQUFZLFFBQWhCLENBQVAsR0FBa0NZLE1BQWxDO0VBQ0Q7QUFDRjs7ZUFFYztFQUNiakIsR0FEYTtFQUViRTtBQUZhLEMifQ==
|
|
31
|
+
//# sourceMappingURL=transformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../lib/transformers.js"],"names":[],"mappings":";;AAAA,qCAAqC;AAErC,SAAS,GAAG,CAAC,OAAO,CAAC,cAAc;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,OAAO,EAAE,QAAQ;IAChC,oCAAoC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,oBAAW,aAAa,CAAC,CAAC;IACnD,IAAI,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE;QAChC,OAAO,CAAC,GAAG,oBAAW,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,MAAM,EAAE,EAAE,CAAC,CAAC;KACxF;IAED,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,oBAAW,QAAQ,CAAC,EAAE;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,oBAAW,QAAQ,CAAC;aAChD,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QACnC,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,oBAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,oBAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,oBAAW,OAAO,CAAC,GAAG,KAAK,CAAC;QACvC,OAAO,CAAC,GAAG,oBAAW,QAAQ,CAAC,GAAG,MAAM,CAAC;KAC1C;AACH,CAAC;AAED,kBAAe;IACb,GAAG;IACH,OAAO;CACR,CAAC"}
|
package/build/lib/xpath.js
CHANGED
|
@@ -1,54 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.getNodeAttrVal = getNodeAttrVal;
|
|
7
|
-
exports.runQuery = runQuery;
|
|
8
|
-
exports.transformQuery = transformQuery;
|
|
9
|
-
|
|
10
|
-
require("source-map-support/register");
|
|
11
|
-
|
|
12
|
-
var _xpath = require("xpath");
|
|
13
|
-
|
|
14
|
-
var _xmldom = require("xmldom");
|
|
15
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNodeAttrVal = exports.transformQuery = exports.runQuery = void 0;
|
|
4
|
+
const xpath_1 = require("xpath");
|
|
5
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
16
6
|
function runQuery(query, xmlStr) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
const dom = new xmldom_1.DOMParser().parseFromString(xmlStr);
|
|
8
|
+
const nodes = (0, xpath_1.select)(query, dom);
|
|
9
|
+
return nodes;
|
|
20
10
|
}
|
|
21
|
-
|
|
11
|
+
exports.runQuery = runQuery;
|
|
22
12
|
function transformQuery(query, xmlStr, multiple) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
13
|
+
const nodes = runQuery(query, xmlStr);
|
|
14
|
+
const newQueries = nodes.map((node) => {
|
|
15
|
+
const indexPath = getNodeAttrVal(node, 'indexPath');
|
|
16
|
+
// at this point indexPath will look like /0/0/1/1/0/1/0/2
|
|
17
|
+
let newQuery = indexPath
|
|
18
|
+
.substring(1) // remove leading / so we can split
|
|
19
|
+
.split('/') // split into idnexes
|
|
20
|
+
.map((indexStr) => {
|
|
21
|
+
// map to xpath node indexes (1-based)
|
|
22
|
+
const xpathIndex = parseInt(indexStr, 10) + 1;
|
|
23
|
+
return `*[${xpathIndex}]`;
|
|
24
|
+
})
|
|
25
|
+
.join('/'); // reapply /
|
|
26
|
+
// now to make this a valid xpath from the root, prepend the / we removed earlier
|
|
27
|
+
return `/${newQuery}`;
|
|
28
|
+
});
|
|
29
|
+
let newSelector = null;
|
|
30
|
+
if (newQueries.length) {
|
|
31
|
+
if (multiple) {
|
|
32
|
+
newSelector = newQueries.join(' | ');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
newSelector = newQueries[0];
|
|
36
|
+
}
|
|
39
37
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return newSelector;
|
|
38
|
+
return newSelector;
|
|
43
39
|
}
|
|
44
|
-
|
|
40
|
+
exports.transformQuery = transformQuery;
|
|
45
41
|
function getNodeAttrVal(node, attr) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return attrObjs[0].value;
|
|
42
|
+
const attrObjs = Object.values(node.attributes).filter((obj) => obj.name === attr);
|
|
43
|
+
if (!attrObjs.length) {
|
|
44
|
+
throw new Error(`Tried to retrieve a node attribute '${attr}' but the node didn't have it`);
|
|
45
|
+
}
|
|
46
|
+
return attrObjs[0].value;
|
|
53
47
|
}
|
|
54
|
-
|
|
48
|
+
exports.getNodeAttrVal = getNodeAttrVal;
|
|
49
|
+
//# sourceMappingURL=xpath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xpath.js","sourceRoot":"","sources":["../../lib/xpath.js"],"names":[],"mappings":";;;AAAA,iCAA2C;AAC3C,2CAAyC;AAEzC,SAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACpC,MAAM,GAAG,GAAG,IAAI,kBAAS,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAA,cAAU,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAJD,4BAIC;AAED,SAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACpD,0DAA0D;QAC1D,IAAI,QAAQ,GAAG,SAAS;aACrB,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAmC;aAChD,KAAK,CAAC,GAAG,CAAC,CAAC,qBAAqB;aAChC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,sCAAsC;YACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,KAAK,UAAU,GAAG,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;QAE1B,iFAAiF;QACjF,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,IAAI,QAAQ,EAAE;YACZ,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;YACL,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SAC7B;KACF;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AA7BD,wCA6BC;AAED,SAAgB,cAAc,CAAC,IAAI,EAAE,IAAI;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACnF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,+BAA+B,CAAC,CAAC;KAC7F;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3B,CAAC;AAND,wCAMC"}
|