@appium/universal-xml-plugin 1.0.26 → 1.0.28

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
- export function main(): void;
1
+ export function main(): Promise<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;;;+BAlB8B,UAAU"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":"AAMA,sCASC;;;mCAfgC,UAAU"}
@@ -5,19 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UniversalXMLPlugin = void 0;
7
7
  exports.main = main;
8
- const plugin_1 = __importDefault(require("./plugin"));
9
- exports.UniversalXMLPlugin = plugin_1.default;
8
+ const plugin_1 = require("./plugin");
9
+ Object.defineProperty(exports, "UniversalXMLPlugin", { enumerable: true, get: function () { return plugin_1.UniversalXMLPlugin; } });
10
10
  const source_1 = require("./source");
11
- const fs_1 = __importDefault(require("fs"));
12
- exports.default = plugin_1.default;
13
- function main() {
11
+ const promises_1 = __importDefault(require("node:fs/promises"));
12
+ exports.default = plugin_1.UniversalXMLPlugin;
13
+ async function main() {
14
14
  const [, , xmlDataPath, platform, optsJson] = process.argv;
15
- const xmlData = fs_1.default.readFileSync(xmlDataPath, 'utf8');
16
- let opts = {};
17
- if (optsJson) {
18
- opts = JSON.parse(optsJson);
19
- }
20
- const { xml, unknowns } = (0, source_1.transformSourceXml)(xmlData, platform, opts);
15
+ const xmlData = await promises_1.default.readFile(xmlDataPath, 'utf8');
16
+ const opts = optsJson ? JSON.parse(optsJson) : {};
17
+ const { xml, unknowns } = await (0, source_1.transformSourceXml)(xmlData, platform, opts);
21
18
  console.log(xml); // eslint-disable-line no-console
22
19
  if (unknowns.nodes.length || unknowns.attrs.length) {
23
20
  console.error(unknowns); // eslint-disable-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;AAMA,oBAYC;AAlBD,sDAA0C;AAIlC,6BAJD,gBAAkB,CAIC;AAH1B,qCAA4C;AAC5C,4CAAoB;AACpB,kBAAe,gBAAkB,CAAC;AAGlC,SAAgB,IAAI;IAClB,MAAM,CAAC,EAAE,AAAD,EAAG,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG,IAAA,2BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;IACnD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;AAMA,oBASC;AAfD,qCAA4C;AAIpC,mGAJA,2BAAkB,OAIA;AAH1B,qCAA4C;AAC5C,gEAAkC;AAClC,kBAAe,2BAAkB,CAAC;AAG3B,KAAK,UAAU,IAAI;IACxB,MAAM,CAAC,EAAE,AAAD,EAAG,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG,MAAM,IAAA,2BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;IACnD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC;IAC5D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
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
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"AAMA;IACE,4FA4BC;IAED,0CAEC;IAED,2CAEC;IAED,yFAgCC;CACF;2BA9EwB,eAAe"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable no-case-declarations */
3
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
4
  };
@@ -18,7 +17,7 @@ class UniversalXMLPlugin extends plugin_1.BasePlugin {
18
17
  if (platformName.toLowerCase() === 'android') {
19
18
  metadata.appPackage = driver.opts.appPackage;
20
19
  }
21
- const { xml, unknowns } = (0, source_1.transformSourceXml)(source, platformName.toLowerCase(), {
20
+ const { xml, unknowns } = await (0, source_1.transformSourceXml)(source, platformName.toLowerCase(), {
22
21
  metadata,
23
22
  addIndexPath,
24
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":"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"}
@@ -3,15 +3,15 @@
3
3
  * @param {string} xmlStr
4
4
  * @param {string} platform
5
5
  * @param {{metadata?: Object, addIndexPath?: boolean}} opts
6
- * @returns {{xml: string, unknowns: NodesAndAttributes}}
6
+ * @returns {Promise<{xml: string, unknowns: NodesAndAttributes}>}
7
7
  */
8
8
  export function transformSourceXml(xmlStr: string, platform: string, { metadata, addIndexPath }?: {
9
9
  metadata?: any;
10
10
  addIndexPath?: boolean;
11
- }): {
11
+ }): Promise<{
12
12
  xml: string;
13
13
  unknowns: NodesAndAttributes;
14
- };
14
+ }>;
15
15
  /**
16
16
  *
17
17
  * @param {any} nodeName
@@ -1 +1 @@
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,GACzC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAC,CAevD;AAsBD;;;;;GAKG;AACH,+CAJW,GAAG,YACH,MAAM,GACJ,MAAM,OAAC,CAInB;AAED;;;;;GAKG;AACH,+CAJW,MAAM,YACN,MAAM,GACJ,MAAM,OAAC,CAInB;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,0BAA2B,IAAI,CAAC;AAChC,4CAAyD;AACzD,mCAAgD;iCAoNnC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":"AAYA;;;;;;GAMG;AACH,2CALW,MAAM,YACN,MAAM,+BACN;IAAC,QAAQ,CAAC,MAAS;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAC,GACzC,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAC,CAAC,CAehE;AAsBD;;;;;GAKG;AACH,+CAJW,GAAG,YACH,MAAM,GACJ,MAAM,OAAC,CAInB;AAED;;;;;GAKG;AACH,+CAJW,MAAM,YACN,MAAM,GACJ,MAAM,OAAC,CAInB;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;AApMD,0BAA2B,IAAI,CAAC;AAChC,4CAAyD;AACzD,mCAAgD;iCAyNnC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC"}
@@ -11,26 +11,12 @@ exports.transformNode = transformNode;
11
11
  exports.transformChildNodes = transformChildNodes;
12
12
  exports.transformAttrs = transformAttrs;
13
13
  const lodash_1 = __importDefault(require("lodash"));
14
- const fast_xml_parser_1 = require("fast-xml-parser");
15
14
  const node_map_1 = __importDefault(require("./node-map"));
16
15
  const attr_map_1 = require("./attr-map");
17
16
  const transformers_1 = __importDefault(require("./transformers"));
18
17
  exports.ATTR_PREFIX = '@_';
19
18
  exports.IDX_PATH_PREFIX = `${exports.ATTR_PREFIX}indexPath`;
20
19
  exports.IDX_PREFIX = `${exports.ATTR_PREFIX}index`;
21
- const PARSE_OPTS = {
22
- ignoreAttributes: false,
23
- ignoreDeclaration: true,
24
- attributeNamePrefix: exports.ATTR_PREFIX,
25
- isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
26
- };
27
- const GEN_OPTS = {
28
- ignoreAttributes: false,
29
- attributeNamePrefix: exports.ATTR_PREFIX,
30
- allowBooleanAttributes: true,
31
- suppressBooleanAttributes: false,
32
- format: true,
33
- };
34
20
  const isAttr = (/** @type {string} */ k) => k.startsWith(exports.ATTR_PREFIX);
35
21
  const isNode = (/** @type {string} */ k) => !isAttr(k);
36
22
  /**
@@ -38,19 +24,19 @@ const isNode = (/** @type {string} */ k) => !isAttr(k);
38
24
  * @param {string} xmlStr
39
25
  * @param {string} platform
40
26
  * @param {{metadata?: Object, addIndexPath?: boolean}} opts
41
- * @returns {{xml: string, unknowns: NodesAndAttributes}}
27
+ * @returns {Promise<{xml: string, unknowns: NodesAndAttributes}>}
42
28
  */
43
- function transformSourceXml(xmlStr, platform, { metadata = {}, addIndexPath = false } = {}) {
29
+ async function transformSourceXml(xmlStr, platform, { metadata = {}, addIndexPath = false } = {}) {
44
30
  // first thing we want to do is modify the ios source root node, because it doesn't include the
45
31
  // necessary index attribute, so we add it if it's not there
46
32
  xmlStr = xmlStr.replace('<AppiumAUT>', '<AppiumAUT index="0">');
47
- const xmlObj = new fast_xml_parser_1.XMLParser(PARSE_OPTS).parse(xmlStr);
33
+ const xmlObj = (await singletonXmlParser()).parse(xmlStr);
48
34
  const unknowns = transformNode(xmlObj, platform, {
49
35
  metadata,
50
36
  addIndexPath,
51
37
  parentPath: '',
52
38
  });
53
- let transformedXml = new fast_xml_parser_1.XMLBuilder(GEN_OPTS).build(xmlObj).trim();
39
+ let transformedXml = (await singletonXmlBuilder()).build(xmlObj).trim();
54
40
  transformedXml = `<?xml version="1.0" encoding="UTF-8"?>\n${transformedXml}`;
55
41
  return { xml: transformedXml, unknowns };
56
42
  }
@@ -209,6 +195,24 @@ function transformAttrs(nodeObj, attrs, platform) {
209
195
  }
210
196
  return unknownAttrs;
211
197
  }
198
+ const singletonXmlBuilder = lodash_1.default.memoize(async function makeXmlBuilder() {
199
+ const { XMLBuilder } = await import('fast-xml-parser');
200
+ return new XMLBuilder({
201
+ ignoreAttributes: false,
202
+ attributeNamePrefix: exports.ATTR_PREFIX,
203
+ suppressBooleanAttributes: false,
204
+ format: true,
205
+ });
206
+ });
207
+ const singletonXmlParser = lodash_1.default.memoize(async function makeXmlParser() {
208
+ const { XMLParser } = await import('fast-xml-parser');
209
+ return new XMLParser({
210
+ ignoreAttributes: false,
211
+ ignoreDeclaration: true,
212
+ attributeNamePrefix: exports.ATTR_PREFIX,
213
+ isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
214
+ });
215
+ });
212
216
  /**
213
217
  * @typedef {{nodes: string[], attrs: string[]}} NodesAndAttributes
214
218
  */
@@ -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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"}
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const {main, UniversalXMLPlugin} = require('./build/lib');
2
2
 
3
3
  if (require.main === module) {
4
- main();
4
+ (async () => await main())();
5
5
  }
6
6
 
7
7
  module.exports = {UniversalXMLPlugin};
package/lib/index.js CHANGED
@@ -1,17 +1,14 @@
1
- import UniversalXMLPlugin from './plugin';
1
+ import {UniversalXMLPlugin} from './plugin';
2
2
  import {transformSourceXml} from './source';
3
- import fs from 'fs';
3
+ import fs from 'node:fs/promises';
4
4
  export default UniversalXMLPlugin;
5
5
  export {UniversalXMLPlugin};
6
6
 
7
- export function main() {
7
+ export async function main() {
8
8
  const [, , xmlDataPath, platform, optsJson] = process.argv;
9
- const xmlData = fs.readFileSync(xmlDataPath, 'utf8');
10
- let opts = {};
11
- if (optsJson) {
12
- opts = JSON.parse(optsJson);
13
- }
14
- const {xml, unknowns} = transformSourceXml(xmlData, platform, opts);
9
+ const xmlData = await fs.readFile(xmlDataPath, 'utf8');
10
+ const opts = optsJson ? JSON.parse(optsJson) : {};
11
+ const {xml, unknowns} = await transformSourceXml(xmlData, platform, opts);
15
12
  console.log(xml); // eslint-disable-line no-console
16
13
  if (unknowns.nodes.length || unknowns.attrs.length) {
17
14
  console.error(unknowns); // eslint-disable-line no-console
package/lib/plugin.js CHANGED
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-case-declarations */
2
-
3
1
  import {BasePlugin} from 'appium/plugin';
4
2
  import {errors} from 'appium/driver';
5
3
  import {transformSourceXml} from './source';
@@ -14,7 +12,7 @@ export default class UniversalXMLPlugin extends BasePlugin {
14
12
  if (platformName.toLowerCase() === 'android') {
15
13
  metadata.appPackage = driver.opts.appPackage;
16
14
  }
17
- const {xml, unknowns} = transformSourceXml(source, platformName.toLowerCase(), {
15
+ const {xml, unknowns} = await transformSourceXml(source, platformName.toLowerCase(), {
18
16
  metadata,
19
17
  addIndexPath,
20
18
  });
package/lib/source.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import _ from 'lodash';
2
- import {XMLParser, XMLBuilder} from 'fast-xml-parser';
3
2
  import NODE_MAP from './node-map';
4
3
  import {ATTR_MAP, REMOVE_ATTRS} from './attr-map';
5
4
  import TRANSFORMS from './transformers';
@@ -8,21 +7,6 @@ export const ATTR_PREFIX = '@_';
8
7
  export const IDX_PATH_PREFIX = `${ATTR_PREFIX}indexPath`;
9
8
  export const IDX_PREFIX = `${ATTR_PREFIX}index`;
10
9
 
11
- const PARSE_OPTS = {
12
- ignoreAttributes: false,
13
- ignoreDeclaration: true,
14
- attributeNamePrefix: ATTR_PREFIX,
15
- isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
16
- };
17
-
18
- const GEN_OPTS = {
19
- ignoreAttributes: false,
20
- attributeNamePrefix: ATTR_PREFIX,
21
- allowBooleanAttributes: true,
22
- suppressBooleanAttributes: false,
23
- format: true,
24
- };
25
-
26
10
  const isAttr = (/** @type {string} */ k) => k.startsWith(ATTR_PREFIX);
27
11
  const isNode = (/** @type {string} */ k) => !isAttr(k);
28
12
 
@@ -31,19 +15,19 @@ const isNode = (/** @type {string} */ k) => !isAttr(k);
31
15
  * @param {string} xmlStr
32
16
  * @param {string} platform
33
17
  * @param {{metadata?: Object, addIndexPath?: boolean}} opts
34
- * @returns {{xml: string, unknowns: NodesAndAttributes}}
18
+ * @returns {Promise<{xml: string, unknowns: NodesAndAttributes}>}
35
19
  */
36
- export function transformSourceXml(xmlStr, platform, {metadata = {}, addIndexPath = false} = {}) {
20
+ export async function transformSourceXml(xmlStr, platform, {metadata = {}, addIndexPath = false} = {}) {
37
21
  // first thing we want to do is modify the ios source root node, because it doesn't include the
38
22
  // necessary index attribute, so we add it if it's not there
39
23
  xmlStr = xmlStr.replace('<AppiumAUT>', '<AppiumAUT index="0">');
40
- const xmlObj = new XMLParser(PARSE_OPTS).parse(xmlStr);
24
+ const xmlObj = (await singletonXmlParser()).parse(xmlStr);
41
25
  const unknowns = transformNode(xmlObj, platform, {
42
26
  metadata,
43
27
  addIndexPath,
44
28
  parentPath: '',
45
29
  });
46
- let transformedXml = new XMLBuilder(GEN_OPTS).build(xmlObj).trim();
30
+ let transformedXml = (await singletonXmlBuilder()).build(xmlObj).trim();
47
31
  transformedXml = `<?xml version="1.0" encoding="UTF-8"?>\n${transformedXml}`;
48
32
  return {xml: transformedXml, unknowns};
49
33
  }
@@ -217,6 +201,26 @@ export function transformAttrs(nodeObj, attrs, platform) {
217
201
  return unknownAttrs;
218
202
  }
219
203
 
204
+ const singletonXmlBuilder = _.memoize(async function makeXmlBuilder() {
205
+ const { XMLBuilder } = await import('fast-xml-parser');
206
+ return new XMLBuilder({
207
+ ignoreAttributes: false,
208
+ attributeNamePrefix: ATTR_PREFIX,
209
+ suppressBooleanAttributes: false,
210
+ format: true,
211
+ });
212
+ });
213
+
214
+ const singletonXmlParser = _.memoize(async function makeXmlParser() {
215
+ const { XMLParser } = await import('fast-xml-parser');
216
+ return new XMLParser({
217
+ ignoreAttributes: false,
218
+ ignoreDeclaration: true,
219
+ attributeNamePrefix: ATTR_PREFIX,
220
+ isArray: (name, jPath, isLeafNode, isAttribute) => !isAttribute,
221
+ });
222
+ });
223
+
220
224
  /**
221
225
  * @typedef {{nodes: string[], attrs: string[]}} NodesAndAttributes
222
226
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appium/universal-xml-plugin",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
5
5
  "keywords": [
6
6
  "automation",
@@ -36,9 +36,8 @@
36
36
  "test:unit": "mocha \"./test/unit/**/*.spec.js\""
37
37
  },
38
38
  "dependencies": {
39
- "@types/xmldom": "0.1.34",
40
- "@xmldom/xmldom": "0.9.6",
41
- "fast-xml-parser": "4.5.0",
39
+ "@xmldom/xmldom": "0.9.7",
40
+ "fast-xml-parser": "5.0.1",
42
41
  "lodash": "4.17.21",
43
42
  "source-map-support": "0.5.21",
44
43
  "xpath": "0.0.34"
@@ -57,5 +56,5 @@
57
56
  "publishConfig": {
58
57
  "access": "public"
59
58
  },
60
- "gitHead": "1d16ac6b4521b1ac06b8650c6bb5c311d8d49ae3"
59
+ "gitHead": "ea00e3aa18aff3c51d1c19eea6c4d1c8c2483740"
61
60
  }