@appium/universal-xml-plugin 1.0.0-beta.15 → 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.
@@ -1,54 +1,49 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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
- const dom = new _xmldom.DOMParser().parseFromString(xmlStr);
18
- const nodes = (0, _xpath.select)(query, dom);
19
- return nodes;
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
- const nodes = runQuery(query, xmlStr);
24
- const newQueries = nodes.map(node => {
25
- const indexPath = getNodeAttrVal(node, 'indexPath');
26
- let newQuery = indexPath.substring(1).split('/').map(indexStr => {
27
- const xpathIndex = parseInt(indexStr, 10) + 1;
28
- return `*[${xpathIndex}]`;
29
- }).join('/');
30
- return `/${newQuery}`;
31
- });
32
- let newSelector = null;
33
-
34
- if (newQueries.length) {
35
- if (multiple) {
36
- newSelector = newQueries.join(' | ');
37
- } else {
38
- newSelector = newQueries[0];
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
- const attrObjs = Object.values(node.attributes).filter(obj => obj.name === attr);
47
-
48
- if (!attrObjs.length) {
49
- throw new Error(`Tried to retrieve a node attribute '${attr}' but the node didn't have it`);
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
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJydW5RdWVyeSIsInF1ZXJ5IiwieG1sU3RyIiwiZG9tIiwiRE9NUGFyc2VyIiwicGFyc2VGcm9tU3RyaW5nIiwibm9kZXMiLCJ4cGF0aFF1ZXJ5IiwidHJhbnNmb3JtUXVlcnkiLCJtdWx0aXBsZSIsIm5ld1F1ZXJpZXMiLCJtYXAiLCJub2RlIiwiaW5kZXhQYXRoIiwiZ2V0Tm9kZUF0dHJWYWwiLCJuZXdRdWVyeSIsInN1YnN0cmluZyIsInNwbGl0IiwiaW5kZXhTdHIiLCJ4cGF0aEluZGV4IiwicGFyc2VJbnQiLCJqb2luIiwibmV3U2VsZWN0b3IiLCJsZW5ndGgiLCJhdHRyIiwiYXR0ck9ianMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJhdHRyaWJ1dGVzIiwiZmlsdGVyIiwib2JqIiwibmFtZSIsIkVycm9yIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi9saWIveHBhdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzZWxlY3QgYXMgeHBhdGhRdWVyeX0gZnJvbSAneHBhdGgnO1xuaW1wb3J0IHtET01QYXJzZXJ9IGZyb20gJ3htbGRvbSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5RdWVyeShxdWVyeSwgeG1sU3RyKSB7XG4gIGNvbnN0IGRvbSA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeG1sU3RyKTtcbiAgY29uc3Qgbm9kZXMgPSB4cGF0aFF1ZXJ5KHF1ZXJ5LCBkb20pO1xuICByZXR1cm4gbm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1RdWVyeShxdWVyeSwgeG1sU3RyLCBtdWx0aXBsZSkge1xuICBjb25zdCBub2RlcyA9IHJ1blF1ZXJ5KHF1ZXJ5LCB4bWxTdHIpO1xuXG4gIGNvbnN0IG5ld1F1ZXJpZXMgPSBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICBjb25zdCBpbmRleFBhdGggPSBnZXROb2RlQXR0clZhbChub2RlLCAnaW5kZXhQYXRoJyk7XG4gICAgLy8gYXQgdGhpcyBwb2ludCBpbmRleFBhdGggd2lsbCBsb29rIGxpa2UgLzAvMC8xLzEvMC8xLzAvMlxuICAgIGxldCBuZXdRdWVyeSA9IGluZGV4UGF0aFxuICAgICAgLnN1YnN0cmluZygxKSAvLyByZW1vdmUgbGVhZGluZyAvIHNvIHdlIGNhbiBzcGxpdFxuICAgICAgLnNwbGl0KCcvJykgLy8gc3BsaXQgaW50byBpZG5leGVzXG4gICAgICAubWFwKChpbmRleFN0cikgPT4ge1xuICAgICAgICAvLyBtYXAgdG8geHBhdGggbm9kZSBpbmRleGVzICgxLWJhc2VkKVxuICAgICAgICBjb25zdCB4cGF0aEluZGV4ID0gcGFyc2VJbnQoaW5kZXhTdHIsIDEwKSArIDE7XG4gICAgICAgIHJldHVybiBgKlske3hwYXRoSW5kZXh9XWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJy8nKTsgLy8gcmVhcHBseSAvXG5cbiAgICAvLyBub3cgdG8gbWFrZSB0aGlzIGEgdmFsaWQgeHBhdGggZnJvbSB0aGUgcm9vdCwgcHJlcGVuZCB0aGUgLyB3ZSByZW1vdmVkIGVhcmxpZXJcbiAgICByZXR1cm4gYC8ke25ld1F1ZXJ5fWA7XG4gIH0pO1xuXG4gIGxldCBuZXdTZWxlY3RvciA9IG51bGw7XG4gIGlmIChuZXdRdWVyaWVzLmxlbmd0aCkge1xuICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgbmV3U2VsZWN0b3IgPSBuZXdRdWVyaWVzLmpvaW4oJyB8ICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTZWxlY3RvciA9IG5ld1F1ZXJpZXNbMF07XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdTZWxlY3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVBdHRyVmFsKG5vZGUsIGF0dHIpIHtcbiAgY29uc3QgYXR0ck9ianMgPSBPYmplY3QudmFsdWVzKG5vZGUuYXR0cmlidXRlcykuZmlsdGVyKChvYmopID0+IG9iai5uYW1lID09PSBhdHRyKTtcbiAgaWYgKCFhdHRyT2Jqcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRyaWVkIHRvIHJldHJpZXZlIGEgbm9kZSBhdHRyaWJ1dGUgJyR7YXR0cn0nIGJ1dCB0aGUgbm9kZSBkaWRuJ3QgaGF2ZSBpdGApO1xuICB9XG4gIHJldHVybiBhdHRyT2Jqc1swXS52YWx1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxTQUFTQSxRQUFULENBQWtCQyxLQUFsQixFQUF5QkMsTUFBekIsRUFBaUM7RUFDdEMsTUFBTUMsR0FBRyxHQUFHLElBQUlDLGlCQUFKLEdBQWdCQyxlQUFoQixDQUFnQ0gsTUFBaEMsQ0FBWjtFQUNBLE1BQU1JLEtBQUssR0FBRyxJQUFBQyxhQUFBLEVBQVdOLEtBQVgsRUFBa0JFLEdBQWxCLENBQWQ7RUFDQSxPQUFPRyxLQUFQO0FBQ0Q7O0FBRU0sU0FBU0UsY0FBVCxDQUF3QlAsS0FBeEIsRUFBK0JDLE1BQS9CLEVBQXVDTyxRQUF2QyxFQUFpRDtFQUN0RCxNQUFNSCxLQUFLLEdBQUdOLFFBQVEsQ0FBQ0MsS0FBRCxFQUFRQyxNQUFSLENBQXRCO0VBRUEsTUFBTVEsVUFBVSxHQUFHSixLQUFLLENBQUNLLEdBQU4sQ0FBV0MsSUFBRCxJQUFVO0lBQ3JDLE1BQU1DLFNBQVMsR0FBR0MsY0FBYyxDQUFDRixJQUFELEVBQU8sV0FBUCxDQUFoQztJQUVBLElBQUlHLFFBQVEsR0FBR0YsU0FBUyxDQUNyQkcsU0FEWSxDQUNGLENBREUsRUFFWkMsS0FGWSxDQUVOLEdBRk0sRUFHWk4sR0FIWSxDQUdQTyxRQUFELElBQWM7TUFFakIsTUFBTUMsVUFBVSxHQUFHQyxRQUFRLENBQUNGLFFBQUQsRUFBVyxFQUFYLENBQVIsR0FBeUIsQ0FBNUM7TUFDQSxPQUFRLEtBQUlDLFVBQVcsR0FBdkI7SUFDRCxDQVBZLEVBUVpFLElBUlksQ0FRUCxHQVJPLENBQWY7SUFXQSxPQUFRLElBQUdOLFFBQVMsRUFBcEI7RUFDRCxDQWZrQixDQUFuQjtFQWlCQSxJQUFJTyxXQUFXLEdBQUcsSUFBbEI7O0VBQ0EsSUFBSVosVUFBVSxDQUFDYSxNQUFmLEVBQXVCO0lBQ3JCLElBQUlkLFFBQUosRUFBYztNQUNaYSxXQUFXLEdBQUdaLFVBQVUsQ0FBQ1csSUFBWCxDQUFnQixLQUFoQixDQUFkO0lBQ0QsQ0FGRCxNQUVPO01BQ0xDLFdBQVcsR0FBR1osVUFBVSxDQUFDLENBQUQsQ0FBeEI7SUFDRDtFQUNGOztFQUNELE9BQU9ZLFdBQVA7QUFDRDs7QUFFTSxTQUFTUixjQUFULENBQXdCRixJQUF4QixFQUE4QlksSUFBOUIsRUFBb0M7RUFDekMsTUFBTUMsUUFBUSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBY2YsSUFBSSxDQUFDZ0IsVUFBbkIsRUFBK0JDLE1BQS9CLENBQXVDQyxHQUFELElBQVNBLEdBQUcsQ0FBQ0MsSUFBSixLQUFhUCxJQUE1RCxDQUFqQjs7RUFDQSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0YsTUFBZCxFQUFzQjtJQUNwQixNQUFNLElBQUlTLEtBQUosQ0FBVyx1Q0FBc0NSLElBQUssK0JBQXRELENBQU47RUFDRDs7RUFDRCxPQUFPQyxRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlRLEtBQW5CO0FBQ0QifQ==
48
+ exports.getNodeAttrVal = getNodeAttrVal;
49
+ //# sourceMappingURL=xpath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xpath.js","names":["runQuery","query","xmlStr","dom","DOMParser","parseFromString","nodes","xpathQuery","transformQuery","multiple","newQueries","map","node","indexPath","getNodeAttrVal","newQuery","substring","split","indexStr","xpathIndex","parseInt","join","newSelector","length","attr","attrObjs","Object","values","attributes","filter","obj","name","Error","value"],"sources":["../../lib/xpath.js"],"sourcesContent":["import {select as xpathQuery} from 'xpath';\nimport {DOMParser} from 'xmldom';\n\nexport function runQuery(query, xmlStr) {\n const dom = new DOMParser().parseFromString(xmlStr);\n const nodes = xpathQuery(query, dom);\n return nodes;\n}\n\nexport function transformQuery(query, xmlStr, multiple) {\n const nodes = runQuery(query, xmlStr);\n\n const newQueries = nodes.map((node) => {\n const indexPath = getNodeAttrVal(node, 'indexPath');\n // at this point indexPath will look like /0/0/1/1/0/1/0/2\n let newQuery = indexPath\n .substring(1) // remove leading / so we can split\n .split('/') // split into idnexes\n .map((indexStr) => {\n // map to xpath node indexes (1-based)\n const xpathIndex = parseInt(indexStr, 10) + 1;\n return `*[${xpathIndex}]`;\n })\n .join('/'); // reapply /\n\n // now to make this a valid xpath from the root, prepend the / we removed earlier\n return `/${newQuery}`;\n });\n\n let newSelector = null;\n if (newQueries.length) {\n if (multiple) {\n newSelector = newQueries.join(' | ');\n } else {\n newSelector = newQueries[0];\n }\n }\n return newSelector;\n}\n\nexport function getNodeAttrVal(node, attr) {\n const attrObjs = Object.values(node.attributes).filter((obj) => obj.name === attr);\n if (!attrObjs.length) {\n throw new Error(`Tried to retrieve a node attribute '${attr}' but the node didn't have it`);\n }\n return attrObjs[0].value;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEO,SAASA,QAAT,CAAkBC,KAAlB,EAAyBC,MAAzB,EAAiC;EACtC,MAAMC,GAAG,GAAG,IAAIC,iBAAJ,GAAgBC,eAAhB,CAAgCH,MAAhC,CAAZ;EACA,MAAMI,KAAK,GAAG,IAAAC,aAAA,EAAWN,KAAX,EAAkBE,GAAlB,CAAd;EACA,OAAOG,KAAP;AACD;;AAEM,SAASE,cAAT,CAAwBP,KAAxB,EAA+BC,MAA/B,EAAuCO,QAAvC,EAAiD;EACtD,MAAMH,KAAK,GAAGN,QAAQ,CAACC,KAAD,EAAQC,MAAR,CAAtB;EAEA,MAAMQ,UAAU,GAAGJ,KAAK,CAACK,GAAN,CAAWC,IAAD,IAAU;IACrC,MAAMC,SAAS,GAAGC,cAAc,CAACF,IAAD,EAAO,WAAP,CAAhC;IAEA,IAAIG,QAAQ,GAAGF,SAAS,CACrBG,SADY,CACF,CADE,EAEZC,KAFY,CAEN,GAFM,EAGZN,GAHY,CAGPO,QAAD,IAAc;MAEjB,MAAMC,UAAU,GAAGC,QAAQ,CAACF,QAAD,EAAW,EAAX,CAAR,GAAyB,CAA5C;MACA,OAAQ,KAAIC,UAAW,GAAvB;IACD,CAPY,EAQZE,IARY,CAQP,GARO,CAAf;IAWA,OAAQ,IAAGN,QAAS,EAApB;EACD,CAfkB,CAAnB;EAiBA,IAAIO,WAAW,GAAG,IAAlB;;EACA,IAAIZ,UAAU,CAACa,MAAf,EAAuB;IACrB,IAAId,QAAJ,EAAc;MACZa,WAAW,GAAGZ,UAAU,CAACW,IAAX,CAAgB,KAAhB,CAAd;IACD,CAFD,MAEO;MACLC,WAAW,GAAGZ,UAAU,CAAC,CAAD,CAAxB;IACD;EACF;;EACD,OAAOY,WAAP;AACD;;AAEM,SAASR,cAAT,CAAwBF,IAAxB,EAA8BY,IAA9B,EAAoC;EACzC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAP,CAAcf,IAAI,CAACgB,UAAnB,EAA+BC,MAA/B,CAAuCC,GAAD,IAASA,GAAG,CAACC,IAAJ,KAAaP,IAA5D,CAAjB;;EACA,IAAI,CAACC,QAAQ,CAACF,MAAd,EAAsB;IACpB,MAAM,IAAIS,KAAJ,CAAW,uCAAsCR,IAAK,+BAAtD,CAAN;EACD;;EACD,OAAOC,QAAQ,CAAC,CAAD,CAAR,CAAYQ,KAAnB;AACD"}
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"}