@appium/universal-xml-plugin 1.0.9 → 1.0.11

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,5 +1,5 @@
1
1
  export function main(): void;
2
2
  export default UniversalXMLPlugin;
3
3
  export { UniversalXMLPlugin };
4
- import UniversalXMLPlugin from "./plugin";
4
+ import UniversalXMLPlugin from './plugin';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":"AAMA,6BAYC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":"AAMA,6BAYC;;;+BAlB8B,UAAU"}
@@ -1,8 +1,8 @@
1
1
  export default class UniversalXMLPlugin extends BasePlugin {
2
- getPageSource(next: any, driver: any, sessId: any, addIndexPath?: boolean): Promise<any>;
2
+ getPageSource(next: any, driver: any, sessId: any, addIndexPath?: boolean): Promise<string>;
3
3
  findElement(...args: any[]): Promise<any>;
4
4
  findElements(...args: any[]): Promise<any>;
5
5
  _find(multiple: any, next: any, driver: any, strategy: any, selector: any): Promise<any>;
6
6
  }
7
- import { BasePlugin } from "@appium/base-plugin";
7
+ import { BasePlugin } from 'appium/plugin';
8
8
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"AAQA;IACE,yFA4BC;IAED,0CAEC;IAED,2CAEC;IAED,yFAgCC;CACF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"AAQA;IACE,4FA4BC;IAED,0CAEC;IAED,2CAEC;IAED,yFAgCC;CACF;2BA9EwB,eAAe"}
@@ -1,24 +1,69 @@
1
- export function transformSourceXml(xmlStr: any, platform: any, { metadata, addIndexPath }?: {
2
- metadata?: {} | undefined;
3
- addIndexPath?: boolean | undefined;
1
+ /**
2
+ *
3
+ * @param {string} xmlStr
4
+ * @param {string} platform
5
+ * @param {{metadata?: Object, addIndexPath?: boolean}} opts
6
+ * @returns {{xml: string, unknowns: NodesAndAttributes}}
7
+ */
8
+ export function transformSourceXml(xmlStr: string, platform: string, { metadata, addIndexPath }?: {
9
+ metadata?: any;
10
+ addIndexPath?: boolean;
4
11
  }): {
5
- xml: any;
6
- unknowns: any;
12
+ xml: string;
13
+ unknowns: NodesAndAttributes;
7
14
  };
8
- export function getUniversalNodeName(nodeName: any, platform: any): string | null;
9
- export function getUniversalAttrName(attrName: any, platform: any): string | null;
10
- export function transformNode(nodeObj: any, platform: any, { metadata, addIndexPath, parentPath }: {
11
- metadata: any;
12
- addIndexPath: any;
13
- parentPath: any;
14
- }): any;
15
- export function transformChildNodes(nodeObj: any, childNodeNames: any, platform: any, { metadata, addIndexPath, parentPath }: {
16
- metadata: any;
17
- addIndexPath: any;
18
- parentPath: any;
19
- }): any;
20
- export function transformAttrs(nodeObj: any, attrs: any, platform: any): any[];
15
+ /**
16
+ *
17
+ * @param {any} nodeName
18
+ * @param {string} platform
19
+ * @returns {string?}
20
+ */
21
+ export function getUniversalNodeName(nodeName: any, platform: string): string | null;
22
+ /**
23
+ *
24
+ * @param {string} attrName
25
+ * @param {string} platform
26
+ * @returns {string?}
27
+ */
28
+ export function getUniversalAttrName(attrName: string, platform: string): string | null;
29
+ /**
30
+ *
31
+ * @param {any} nodeObj
32
+ * @param {string} platform
33
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
34
+ * @returns {NodesAndAttributes}
35
+ */
36
+ export function transformNode(nodeObj: any, platform: string, { metadata, addIndexPath, parentPath }: {
37
+ metadata?: any;
38
+ addIndexPath?: boolean;
39
+ parentPath?: string;
40
+ }): NodesAndAttributes;
41
+ /**
42
+ *
43
+ * @param {any} nodeObj
44
+ * @param {string[]} childNodeNames
45
+ * @param {string} platform
46
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
47
+ * @returns {NodesAndAttributes}
48
+ */
49
+ export function transformChildNodes(nodeObj: any, childNodeNames: string[], platform: string, { metadata, addIndexPath, parentPath }: {
50
+ metadata?: any;
51
+ addIndexPath?: boolean;
52
+ parentPath?: string;
53
+ }): NodesAndAttributes;
54
+ /**
55
+ *
56
+ * @param {any} nodeObj
57
+ * @param {string[]} attrs
58
+ * @param {string} platform
59
+ * @returns {string[]}
60
+ */
61
+ export function transformAttrs(nodeObj: any, attrs: string[], platform: string): string[];
21
62
  export const ATTR_PREFIX: "@_";
22
63
  export const IDX_PATH_PREFIX: string;
23
64
  export const IDX_PREFIX: string;
65
+ export type NodesAndAttributes = {
66
+ nodes: string[];
67
+ attrs: string[];
68
+ };
24
69
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":"AAwBA;;;;;;EAcC;AAeD,kFAEC;AAED,kFAEC;AAED;;;;QA0CC;AAED;;;;QAuCC;AAED,+EAoBC;AArJD,+BAAgC;AAChC,qCAAyD;AACzD,gCAAgD"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":"AA4BA;;;;;;GAMG;AACH,2CALW,MAAM,YACN,MAAM,+BACN;IAAC,QAAQ,CAAC,MAAS;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAC;SACnC,MAAM;cAAY,kBAAkB;EAetD;AAsBD;;;;;GAKG;AACH,+CAJW,GAAG,YACH,MAAM,GACJ,MAAM,QAIlB;AAED;;;;;GAKG;AACH,+CAJW,MAAM,YACN,MAAM,GACJ,MAAM,QAIlB;AAED;;;;;;GAMG;AACH,uCALW,GAAG,YACH,MAAM,0CACN;IAAC,QAAQ,CAAC,MAAS;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,GAC9D,kBAAkB,CA4C9B;AAED;;;;;;;GAOG;AACH,6CANW,GAAG,kBACH,MAAM,EAAE,YACR,MAAM,0CACN;IAAC,QAAQ,CAAC,MAAS;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,GAC9D,kBAAkB,CAyC9B;AAED;;;;;;GAMG;AACH,wCALW,GAAG,SACH,MAAM,EAAE,YACR,MAAM,GACJ,MAAM,EAAE,CAsBpB;AAnND,+BAAgC;AAChC,qCAAyD;AACzD,gCAAgD;iCAoNnC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC"}
@@ -1,67 +1,61 @@
1
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.transformAttrs = exports.transformChildNodes = exports.transformNode = exports.getUniversalAttrName = exports.getUniversalNodeName = exports.transformSourceXml = exports.IDX_PREFIX = exports.IDX_PATH_PREFIX = exports.ATTR_PREFIX = void 0;
30
7
  const lodash_1 = __importDefault(require("lodash"));
31
- const fast_xml_parser_1 = __importStar(require("fast-xml-parser"));
8
+ const fast_xml_parser_1 = require("fast-xml-parser");
32
9
  const node_map_1 = __importDefault(require("./node-map"));
33
10
  const attr_map_1 = require("./attr-map");
34
11
  const transformers_1 = __importDefault(require("./transformers"));
12
+ exports.ATTR_PREFIX = '@_';
13
+ exports.IDX_PATH_PREFIX = `${exports.ATTR_PREFIX}indexPath`;
14
+ exports.IDX_PREFIX = `${exports.ATTR_PREFIX}index`;
35
15
  const PARSE_OPTS = {
36
16
  ignoreAttributes: false,
37
- arrayMode: true,
17
+ ignoreDeclaration: true,
18
+ attributeNamePrefix: exports.ATTR_PREFIX,
19
+ isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
38
20
  };
39
21
  const GEN_OPTS = {
40
22
  ignoreAttributes: false,
41
- arrayMode: true,
23
+ attributeNamePrefix: exports.ATTR_PREFIX,
24
+ allowBooleanAttributes: true,
25
+ suppressBooleanAttributes: false,
42
26
  format: true,
43
27
  };
44
- exports.ATTR_PREFIX = '@_';
45
- exports.IDX_PATH_PREFIX = `${exports.ATTR_PREFIX}indexPath`;
46
- exports.IDX_PREFIX = `${exports.ATTR_PREFIX}index`;
47
- const isAttr = (k) => k.substring(0, 2) === exports.ATTR_PREFIX;
48
- const isNode = (k) => !isAttr(k);
28
+ const isAttr = (/** @type {string} */ k) => k.startsWith(exports.ATTR_PREFIX);
29
+ const isNode = (/** @type {string} */ k) => !isAttr(k);
30
+ /**
31
+ *
32
+ * @param {string} xmlStr
33
+ * @param {string} platform
34
+ * @param {{metadata?: Object, addIndexPath?: boolean}} opts
35
+ * @returns {{xml: string, unknowns: NodesAndAttributes}}
36
+ */
49
37
  function transformSourceXml(xmlStr, platform, { metadata = {}, addIndexPath = false } = {}) {
50
38
  // first thing we want to do is modify the ios source root node, because it doesn't include the
51
39
  // necessary index attribute, so we add it if it's not there
52
40
  xmlStr = xmlStr.replace('<AppiumAUT>', '<AppiumAUT index="0">');
53
- const xmlObj = fast_xml_parser_1.default.parse(xmlStr, PARSE_OPTS);
41
+ const xmlObj = new fast_xml_parser_1.XMLParser(PARSE_OPTS).parse(xmlStr);
54
42
  const unknowns = transformNode(xmlObj, platform, {
55
43
  metadata,
56
44
  addIndexPath,
57
45
  parentPath: '',
58
46
  });
59
- const jParser = new fast_xml_parser_1.j2xParser(GEN_OPTS);
60
- let transformedXml = jParser.parse(xmlObj).trim();
47
+ let transformedXml = new fast_xml_parser_1.XMLBuilder(GEN_OPTS).build(xmlObj).trim();
61
48
  transformedXml = `<?xml version="1.0" encoding="UTF-8"?>\n${transformedXml}`;
62
49
  return { xml: transformedXml, unknowns };
63
50
  }
64
51
  exports.transformSourceXml = transformSourceXml;
52
+ /**
53
+ *
54
+ * @param {Object} nameMap
55
+ * @param {string} name
56
+ * @param {string} platform
57
+ * @returns {string | null}
58
+ */
65
59
  function getUniversalName(nameMap, name, platform) {
66
60
  for (const translatedName of Object.keys(nameMap)) {
67
61
  const sourceNodes = nameMap[translatedName]?.[platform];
@@ -74,14 +68,33 @@ function getUniversalName(nameMap, name, platform) {
74
68
  }
75
69
  return null;
76
70
  }
71
+ /**
72
+ *
73
+ * @param {any} nodeName
74
+ * @param {string} platform
75
+ * @returns {string?}
76
+ */
77
77
  function getUniversalNodeName(nodeName, platform) {
78
78
  return getUniversalName(node_map_1.default, nodeName, platform);
79
79
  }
80
80
  exports.getUniversalNodeName = getUniversalNodeName;
81
+ /**
82
+ *
83
+ * @param {string} attrName
84
+ * @param {string} platform
85
+ * @returns {string?}
86
+ */
81
87
  function getUniversalAttrName(attrName, platform) {
82
88
  return getUniversalName(attr_map_1.ATTR_MAP, attrName, platform);
83
89
  }
84
90
  exports.getUniversalAttrName = getUniversalAttrName;
91
+ /**
92
+ *
93
+ * @param {any} nodeObj
94
+ * @param {string} platform
95
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
96
+ * @returns {NodesAndAttributes}
97
+ */
85
98
  function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }) {
86
99
  const unknownNodes = [];
87
100
  const unknownAttrs = [];
@@ -124,6 +137,14 @@ function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }
124
137
  };
125
138
  }
126
139
  exports.transformNode = transformNode;
140
+ /**
141
+ *
142
+ * @param {any} nodeObj
143
+ * @param {string[]} childNodeNames
144
+ * @param {string} platform
145
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
146
+ * @returns {NodesAndAttributes}
147
+ */
127
148
  function transformChildNodes(nodeObj, childNodeNames, platform, { metadata, addIndexPath, parentPath }) {
128
149
  const unknownNodes = [];
129
150
  const unknownAttrs = [];
@@ -159,6 +180,13 @@ function transformChildNodes(nodeObj, childNodeNames, platform, { metadata, addI
159
180
  return { nodes: unknownNodes, attrs: unknownAttrs };
160
181
  }
161
182
  exports.transformChildNodes = transformChildNodes;
183
+ /**
184
+ *
185
+ * @param {any} nodeObj
186
+ * @param {string[]} attrs
187
+ * @param {string} platform
188
+ * @returns {string[]}
189
+ */
162
190
  function transformAttrs(nodeObj, attrs, platform) {
163
191
  const unknownAttrs = [];
164
192
  for (const attr of attrs) {
@@ -181,4 +209,7 @@ function transformAttrs(nodeObj, attrs, platform) {
181
209
  return unknownAttrs;
182
210
  }
183
211
  exports.transformAttrs = transformAttrs;
212
+ /**
213
+ * @typedef {{nodes: string[], attrs: string[]}} NodesAndAttributes
214
+ */
184
215
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
- export function runQuery(query: any, xmlStr: any): import("xpath").SelectedValue[];
2
- export function transformQuery(query: any, xmlStr: any, multiple: any): string | null;
1
+ export function runQuery(query: any, xmlStr: any): import("xpath").SelectReturnType;
2
+ /**
3
+ *
4
+ * @param {string} query
5
+ * @param {string} xmlStr
6
+ * @param {boolean} multiple
7
+ * @returns {string|null}
8
+ */
9
+ export function transformQuery(query: string, xmlStr: string, multiple: boolean): string | null;
3
10
  export function getNodeAttrVal(node: any, attr: any): any;
4
11
  //# sourceMappingURL=xpath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xpath.d.ts","sourceRoot":"","sources":["../../lib/xpath.js"],"names":[],"mappings":"AAGA,mFAIC;AAED,sFA6BC;AAED,0DAMC"}
1
+ {"version":3,"file":"xpath.d.ts","sourceRoot":"","sources":["../../lib/xpath.js"],"names":[],"mappings":"AAIA,oFAIC;AAED;;;;;;GAMG;AACH,sCALW,MAAM,UACN,MAAM,YACN,OAAO,GACL,MAAM,GAAC,IAAI,CAkCvB;AAED,0DAMC"}
@@ -1,16 +1,30 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getNodeAttrVal = exports.transformQuery = exports.runQuery = void 0;
4
7
  const xpath_1 = require("xpath");
5
8
  const xmldom_1 = require("@xmldom/xmldom");
9
+ const lodash_1 = __importDefault(require("lodash"));
6
10
  function runQuery(query, xmlStr) {
7
11
  const dom = new xmldom_1.DOMParser().parseFromString(xmlStr);
8
12
  const nodes = (0, xpath_1.select)(query, dom);
9
13
  return nodes;
10
14
  }
11
15
  exports.runQuery = runQuery;
16
+ /**
17
+ *
18
+ * @param {string} query
19
+ * @param {string} xmlStr
20
+ * @param {boolean} multiple
21
+ * @returns {string|null}
22
+ */
12
23
  function transformQuery(query, xmlStr, multiple) {
13
24
  const nodes = runQuery(query, xmlStr);
25
+ if (!lodash_1.default.isArray(nodes)) {
26
+ return null;
27
+ }
14
28
  const newQueries = nodes.map((node) => {
15
29
  const indexPath = getNodeAttrVal(node, 'indexPath');
16
30
  // at this point indexPath will look like /0/0/1/1/0/1/0/2
@@ -1 +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"}
1
+ {"version":3,"file":"xpath.js","sourceRoot":"","sources":["../../lib/xpath.js"],"names":[],"mappings":";;;;;;AAAA,iCAA2C;AAC3C,2CAAyC;AACzC,oDAAuB;AAEvB,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;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,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;AAhCD,wCAgCC;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"}
package/index.js CHANGED
@@ -1,5 +1,7 @@
1
- const {main} = require('./build/lib');
1
+ const {main, UniversalXMLPlugin} = require('./build/lib');
2
2
 
3
3
  if (require.main === module) {
4
4
  main();
5
5
  }
6
+
7
+ export {UniversalXMLPlugin};
package/lib/source.js CHANGED
@@ -1,43 +1,60 @@
1
1
  import _ from 'lodash';
2
- import parser, {j2xParser} from 'fast-xml-parser';
2
+ import {XMLParser, XMLBuilder} from 'fast-xml-parser';
3
3
  import NODE_MAP from './node-map';
4
4
  import {ATTR_MAP, REMOVE_ATTRS} from './attr-map';
5
5
  import TRANSFORMS from './transformers';
6
6
 
7
+ export const ATTR_PREFIX = '@_';
8
+ export const IDX_PATH_PREFIX = `${ATTR_PREFIX}indexPath`;
9
+ export const IDX_PREFIX = `${ATTR_PREFIX}index`;
10
+
7
11
  const PARSE_OPTS = {
8
12
  ignoreAttributes: false,
9
- arrayMode: true,
13
+ ignoreDeclaration: true,
14
+ attributeNamePrefix: ATTR_PREFIX,
15
+ isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
10
16
  };
11
17
 
12
18
  const GEN_OPTS = {
13
19
  ignoreAttributes: false,
14
- arrayMode: true,
20
+ attributeNamePrefix: ATTR_PREFIX,
21
+ allowBooleanAttributes: true,
22
+ suppressBooleanAttributes: false,
15
23
  format: true,
16
24
  };
17
25
 
18
- export const ATTR_PREFIX = '@_';
19
- export const IDX_PATH_PREFIX = `${ATTR_PREFIX}indexPath`;
20
- export const IDX_PREFIX = `${ATTR_PREFIX}index`;
21
-
22
- const isAttr = (k) => k.substring(0, 2) === ATTR_PREFIX;
23
- const isNode = (k) => !isAttr(k);
26
+ const isAttr = (/** @type {string} */ k) => k.startsWith(ATTR_PREFIX);
27
+ const isNode = (/** @type {string} */ k) => !isAttr(k);
24
28
 
29
+ /**
30
+ *
31
+ * @param {string} xmlStr
32
+ * @param {string} platform
33
+ * @param {{metadata?: Object, addIndexPath?: boolean}} opts
34
+ * @returns {{xml: string, unknowns: NodesAndAttributes}}
35
+ */
25
36
  export function transformSourceXml(xmlStr, platform, {metadata = {}, addIndexPath = false} = {}) {
26
37
  // first thing we want to do is modify the ios source root node, because it doesn't include the
27
38
  // necessary index attribute, so we add it if it's not there
28
39
  xmlStr = xmlStr.replace('<AppiumAUT>', '<AppiumAUT index="0">');
29
- const xmlObj = parser.parse(xmlStr, PARSE_OPTS);
40
+ const xmlObj = new XMLParser(PARSE_OPTS).parse(xmlStr);
30
41
  const unknowns = transformNode(xmlObj, platform, {
31
42
  metadata,
32
43
  addIndexPath,
33
44
  parentPath: '',
34
45
  });
35
- const jParser = new j2xParser(GEN_OPTS);
36
- let transformedXml = jParser.parse(xmlObj).trim();
46
+ let transformedXml = new XMLBuilder(GEN_OPTS).build(xmlObj).trim();
37
47
  transformedXml = `<?xml version="1.0" encoding="UTF-8"?>\n${transformedXml}`;
38
48
  return {xml: transformedXml, unknowns};
39
49
  }
40
50
 
51
+ /**
52
+ *
53
+ * @param {Object} nameMap
54
+ * @param {string} name
55
+ * @param {string} platform
56
+ * @returns {string | null}
57
+ */
41
58
  function getUniversalName(nameMap, name, platform) {
42
59
  for (const translatedName of Object.keys(nameMap)) {
43
60
  const sourceNodes = nameMap[translatedName]?.[platform];
@@ -51,14 +68,33 @@ function getUniversalName(nameMap, name, platform) {
51
68
  return null;
52
69
  }
53
70
 
71
+ /**
72
+ *
73
+ * @param {any} nodeName
74
+ * @param {string} platform
75
+ * @returns {string?}
76
+ */
54
77
  export function getUniversalNodeName(nodeName, platform) {
55
78
  return getUniversalName(NODE_MAP, nodeName, platform);
56
79
  }
57
80
 
81
+ /**
82
+ *
83
+ * @param {string} attrName
84
+ * @param {string} platform
85
+ * @returns {string?}
86
+ */
58
87
  export function getUniversalAttrName(attrName, platform) {
59
88
  return getUniversalName(ATTR_MAP, attrName, platform);
60
89
  }
61
90
 
91
+ /**
92
+ *
93
+ * @param {any} nodeObj
94
+ * @param {string} platform
95
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
96
+ * @returns {NodesAndAttributes}
97
+ */
62
98
  export function transformNode(nodeObj, platform, {metadata, addIndexPath, parentPath}) {
63
99
  const unknownNodes = [];
64
100
  const unknownAttrs = [];
@@ -103,6 +139,14 @@ export function transformNode(nodeObj, platform, {metadata, addIndexPath, parent
103
139
  };
104
140
  }
105
141
 
142
+ /**
143
+ *
144
+ * @param {any} nodeObj
145
+ * @param {string[]} childNodeNames
146
+ * @param {string} platform
147
+ * @param {{metadata?: Object, addIndexPath?: boolean, parentPath?: string}} opts
148
+ * @returns {NodesAndAttributes}
149
+ */
106
150
  export function transformChildNodes(
107
151
  nodeObj,
108
152
  childNodeNames,
@@ -144,6 +188,13 @@ export function transformChildNodes(
144
188
  return {nodes: unknownNodes, attrs: unknownAttrs};
145
189
  }
146
190
 
191
+ /**
192
+ *
193
+ * @param {any} nodeObj
194
+ * @param {string[]} attrs
195
+ * @param {string} platform
196
+ * @returns {string[]}
197
+ */
147
198
  export function transformAttrs(nodeObj, attrs, platform) {
148
199
  const unknownAttrs = [];
149
200
  for (const attr of attrs) {
@@ -165,3 +216,7 @@ export function transformAttrs(nodeObj, attrs, platform) {
165
216
  }
166
217
  return unknownAttrs;
167
218
  }
219
+
220
+ /**
221
+ * @typedef {{nodes: string[], attrs: string[]}} NodesAndAttributes
222
+ */
package/lib/xpath.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import {select as xpathQuery} from 'xpath';
2
2
  import {DOMParser} from '@xmldom/xmldom';
3
+ import _ from 'lodash';
3
4
 
4
5
  export function runQuery(query, xmlStr) {
5
6
  const dom = new DOMParser().parseFromString(xmlStr);
@@ -7,8 +8,18 @@ export function runQuery(query, xmlStr) {
7
8
  return nodes;
8
9
  }
9
10
 
11
+ /**
12
+ *
13
+ * @param {string} query
14
+ * @param {string} xmlStr
15
+ * @param {boolean} multiple
16
+ * @returns {string|null}
17
+ */
10
18
  export function transformQuery(query, xmlStr, multiple) {
11
19
  const nodes = runQuery(query, xmlStr);
20
+ if (!_.isArray(nodes)) {
21
+ return null;
22
+ }
12
23
 
13
24
  const newQueries = nodes.map((node) => {
14
25
  const indexPath = getNodeAttrVal(node, 'indexPath');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/universal-xml-plugin",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
5
5
  "keywords": [
6
6
  "automation",
@@ -37,11 +37,11 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@types/xmldom": "0.1.31",
40
- "@xmldom/xmldom": "0.8.8",
41
- "fast-xml-parser": "3.21.1",
40
+ "@xmldom/xmldom": "0.8.10",
41
+ "fast-xml-parser": "4.2.7",
42
42
  "lodash": "4.17.21",
43
43
  "source-map-support": "0.5.21",
44
- "xpath": "0.0.32"
44
+ "xpath": "0.0.33"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "appium": "^2.0.0-beta.35"
@@ -57,7 +57,7 @@
57
57
  "publishConfig": {
58
58
  "access": "public"
59
59
  },
60
- "gitHead": "d0ebbaa0c683eeba04d9d967af2d0fde76197950",
60
+ "gitHead": "820428b76931e401c65455e72f6465da0d2c38c1",
61
61
  "typedoc": {
62
62
  "entryPoint": "./lib/index.js"
63
63
  }