@appium/universal-xml-plugin 2.1.3 → 2.1.4
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/plugin.d.ts.map +1 -1
- package/build/lib/plugin.js +1 -0
- package/build/lib/plugin.js.map +1 -1
- package/build/lib/source.js +11 -11
- package/build/lib/source.js.map +1 -1
- package/build/lib/xpath.d.ts.map +1 -1
- package/build/lib/xpath.js +1 -5
- package/build/lib/xpath.js.map +1 -1
- package/lib/plugin.ts +3 -2
- package/lib/source.ts +11 -11
- package/lib/xpath.ts +1 -2
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAIzC,OAAO,KAAK,EAAC,cAAc,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAG/E,qBAAa,kBAAmB,SAAQ,UAAU;IAC1C,aAAa,CACjB,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,GAAG,EACZ,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAIzC,OAAO,KAAK,EAAC,cAAc,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAG/E,qBAAa,kBAAmB,SAAQ,UAAU;IAC1C,aAAa,CACjB,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,GAAG,EACZ,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,CAAC;IA+BZ,WAAW,CACf,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IAIb,YAAY,CAChB,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC;YAIP,KAAK;CAqDpB"}
|
package/build/lib/plugin.js
CHANGED
|
@@ -7,6 +7,7 @@ const source_1 = require("./source");
|
|
|
7
7
|
const xpath_1 = require("./xpath");
|
|
8
8
|
class UniversalXMLPlugin extends plugin_1.BasePlugin {
|
|
9
9
|
async getPageSource(next, driver, sessId, addIndexPath = false) {
|
|
10
|
+
void sessId;
|
|
10
11
|
const source = (next ? await next() : await driver.getPageSource());
|
|
11
12
|
const metadata = {};
|
|
12
13
|
const platformName = getPlatformName(driver);
|
package/build/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,0CAAqC;AACrC,qCAA4C;AAC5C,mCAAuC;AAIvC,MAAa,kBAAmB,SAAQ,mBAAU;IAChD,KAAK,CAAC,aAAa,CACjB,IAA+B,EAC/B,MAAsB,EACtB,MAAY,EACZ,eAAwB,KAAK;QAE7B,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAW,CAAC;QAC9E,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,QAAQ,CAAC,UAAU,GAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"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"}
|
package/build/lib/source.js
CHANGED
|
@@ -43,7 +43,7 @@ exports.getUniversalAttrName = getUniversalAttrName;
|
|
|
43
43
|
exports.transformNode = transformNode;
|
|
44
44
|
exports.transformChildNodes = transformChildNodes;
|
|
45
45
|
exports.transformAttrs = transformAttrs;
|
|
46
|
-
const
|
|
46
|
+
const support_1 = require("@appium/support");
|
|
47
47
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
48
48
|
const node_map_1 = __importDefault(require("./node-map"));
|
|
49
49
|
const attr_map_1 = require("./attr-map");
|
|
@@ -108,7 +108,7 @@ function getUniversalAttrName(attrName, platform) {
|
|
|
108
108
|
function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }) {
|
|
109
109
|
const unknownNodes = [];
|
|
110
110
|
const unknownAttrs = [];
|
|
111
|
-
if (
|
|
111
|
+
if (support_1.util.isPlainObject(nodeObj)) {
|
|
112
112
|
const keys = Object.keys(nodeObj);
|
|
113
113
|
const childNodeNames = keys.filter(isNode);
|
|
114
114
|
const attrs = keys.filter(isAttr);
|
|
@@ -133,7 +133,7 @@ function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }
|
|
|
133
133
|
unknownAttrs.push(...unknowns.attrs);
|
|
134
134
|
unknownNodes.push(...unknowns.nodes);
|
|
135
135
|
}
|
|
136
|
-
else if (
|
|
136
|
+
else if (Array.isArray(nodeObj)) {
|
|
137
137
|
for (const childObj of nodeObj) {
|
|
138
138
|
const { nodes, attrs } = transformNode(childObj, platform, {
|
|
139
139
|
metadata,
|
|
@@ -145,8 +145,8 @@ function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
return {
|
|
148
|
-
nodes:
|
|
149
|
-
attrs:
|
|
148
|
+
nodes: support_1.util.uniq(unknownNodes),
|
|
149
|
+
attrs: support_1.util.uniq(unknownAttrs),
|
|
150
150
|
};
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
@@ -183,8 +183,8 @@ function transformChildNodes(nodeObj, childNodeNames, platform, { metadata, addI
|
|
|
183
183
|
// if we already have a node with the universal name, that means we are mapping a second
|
|
184
184
|
// original node name to the same universal node name, so we just push all its children into
|
|
185
185
|
// the list
|
|
186
|
-
if (
|
|
187
|
-
if (
|
|
186
|
+
if (Array.isArray(nodeObj[universalName])) {
|
|
187
|
+
if (Array.isArray(nodeObj[nodeName])) {
|
|
188
188
|
nodeObj[universalName].push(...nodeObj[nodeName]);
|
|
189
189
|
}
|
|
190
190
|
else {
|
|
@@ -193,7 +193,7 @@ function transformChildNodes(nodeObj, childNodeNames, platform, { metadata, addI
|
|
|
193
193
|
}
|
|
194
194
|
else {
|
|
195
195
|
nodeObj[universalName] = [nodeObj[universalName]];
|
|
196
|
-
if (
|
|
196
|
+
if (Array.isArray(nodeObj[nodeName])) {
|
|
197
197
|
nodeObj[universalName].push(...nodeObj[nodeName]);
|
|
198
198
|
}
|
|
199
199
|
else {
|
|
@@ -248,7 +248,7 @@ function transformAttrs(nodeObj, attrs, platform) {
|
|
|
248
248
|
function getUniversalName(nameMap, name, platform) {
|
|
249
249
|
for (const translatedName of Object.keys(nameMap)) {
|
|
250
250
|
const sourceNodes = nameMap[translatedName]?.[platform];
|
|
251
|
-
if (
|
|
251
|
+
if (Array.isArray(sourceNodes) && sourceNodes.includes(name)) {
|
|
252
252
|
return translatedName;
|
|
253
253
|
}
|
|
254
254
|
if (sourceNodes === name) {
|
|
@@ -257,7 +257,7 @@ function getUniversalName(nameMap, name, platform) {
|
|
|
257
257
|
}
|
|
258
258
|
return null;
|
|
259
259
|
}
|
|
260
|
-
const singletonXmlBuilder =
|
|
260
|
+
const singletonXmlBuilder = support_1.util.memoize(function makeXmlBuilder() {
|
|
261
261
|
return new fast_xml_parser_1.XMLBuilder({
|
|
262
262
|
ignoreAttributes: false,
|
|
263
263
|
attributeNamePrefix: exports.ATTR_PREFIX,
|
|
@@ -265,7 +265,7 @@ const singletonXmlBuilder = lodash_1.default.memoize(function makeXmlBuilder() {
|
|
|
265
265
|
format: true,
|
|
266
266
|
});
|
|
267
267
|
});
|
|
268
|
-
const singletonXmlParser =
|
|
268
|
+
const singletonXmlParser = support_1.util.memoize(function makeXmlParser() {
|
|
269
269
|
return new fast_xml_parser_1.XMLParser({
|
|
270
270
|
ignoreAttributes: false,
|
|
271
271
|
ignoreDeclaration: true,
|
package/build/lib/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../lib/source.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,gDAiBC;AASD,oDAEC;AASD,oDAEC;AAUD,sCAiDC;AAWD,kDAoDC;AAUD,wCAoBC;AA7ND,
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../lib/source.ts"],"names":[],"mappings":"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"}
|
package/build/lib/xpath.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xpath.d.ts","sourceRoot":"","sources":["../../lib/xpath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xpath.d.ts","sourceRoot":"","sources":["../../lib/xpath.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAM7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA2B9F;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9D"}
|
package/build/lib/xpath.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.runQuery = runQuery;
|
|
7
4
|
exports.transformQuery = transformQuery;
|
|
8
5
|
exports.getNodeAttrVal = getNodeAttrVal;
|
|
9
6
|
const xpath_1 = require("xpath");
|
|
10
7
|
const xmldom_1 = require("@xmldom/xmldom");
|
|
11
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
12
8
|
/**
|
|
13
9
|
* Runs an XPath query against an XML string.
|
|
14
10
|
* @param query XPath query.
|
|
@@ -31,7 +27,7 @@ function runQuery(query, xmlStr) {
|
|
|
31
27
|
*/
|
|
32
28
|
function transformQuery(query, xmlStr, multiple) {
|
|
33
29
|
const nodes = runQuery(query, xmlStr);
|
|
34
|
-
if (!
|
|
30
|
+
if (!Array.isArray(nodes)) {
|
|
35
31
|
return null;
|
|
36
32
|
}
|
|
37
33
|
const newQueries = nodes.map((node) => {
|
package/build/lib/xpath.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xpath.js","sourceRoot":"","sources":["../../lib/xpath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xpath.js","sourceRoot":"","sources":["../../lib/xpath.ts"],"names":[],"mappings":";;AAQA,4BAMC;AAUD,wCA2BC;AAUD,wCAMC;AAnED,iCAA2C;AAC3C,2CAAoD;AAEpD;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAa,EAAE,MAAc;IACpD,MAAM,GAAG,GAAG,IAAI,kBAAS,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAS,CAAC,QAAQ,CAAC,CAAC;IACxE,2DAA2D;IAC3D,8CAA8C;IAC9C,MAAM,KAAK,GAAG,IAAA,cAAU,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,KAAc,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,QAAiB;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;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,MAAM,QAAQ,GAAG,SAAS;aACvB,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,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,IAAS,EAAE,IAAY;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC9F,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,+BAA+B,CAAC,CAAC;IAC9F,CAAC;IACD,OAAQ,QAAQ,CAAC,CAAC,CAAS,CAAC,KAAK,CAAC;AACpC,CAAC"}
|
package/lib/plugin.ts
CHANGED
|
@@ -12,11 +12,12 @@ export class UniversalXMLPlugin extends BasePlugin {
|
|
|
12
12
|
sessId?: any,
|
|
13
13
|
addIndexPath: boolean = false
|
|
14
14
|
): Promise<string> {
|
|
15
|
+
void sessId;
|
|
15
16
|
const source = (next ? await next() : await driver.getPageSource()) as string;
|
|
16
17
|
const metadata: TransformMetadata = {};
|
|
17
18
|
const platformName = getPlatformName(driver);
|
|
18
19
|
if (platformName.toLowerCase() === 'android') {
|
|
19
|
-
metadata.appPackage = (driver.opts as
|
|
20
|
+
metadata.appPackage = (driver.opts as Record<string, unknown>)?.appPackage as string;
|
|
20
21
|
}
|
|
21
22
|
const {xml, unknowns} = await transformSourceXml(source, platformName.toLowerCase(), {
|
|
22
23
|
metadata,
|
|
@@ -115,5 +116,5 @@ export class UniversalXMLPlugin extends BasePlugin {
|
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
function getPlatformName(driver: ExternalDriver): string {
|
|
118
|
-
return ((driver.caps as
|
|
119
|
+
return ((driver.caps as Record<string, unknown>)?.platformName as string) || '';
|
|
119
120
|
}
|
package/lib/source.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {util} from '@appium/support';
|
|
2
2
|
import {XMLBuilder, XMLParser} from 'fast-xml-parser';
|
|
3
3
|
import NODE_MAP from './node-map';
|
|
4
4
|
import {ATTR_MAP, REMOVE_ATTRS} from './attr-map';
|
|
@@ -84,7 +84,7 @@ export function transformNode(
|
|
|
84
84
|
): NodesAndAttributes {
|
|
85
85
|
const unknownNodes: string[] = [];
|
|
86
86
|
const unknownAttrs: string[] = [];
|
|
87
|
-
if (
|
|
87
|
+
if (util.isPlainObject(nodeObj)) {
|
|
88
88
|
const keys = Object.keys(nodeObj);
|
|
89
89
|
const childNodeNames = keys.filter(isNode);
|
|
90
90
|
const attrs = keys.filter(isAttr);
|
|
@@ -111,7 +111,7 @@ export function transformNode(
|
|
|
111
111
|
});
|
|
112
112
|
unknownAttrs.push(...unknowns.attrs);
|
|
113
113
|
unknownNodes.push(...unknowns.nodes);
|
|
114
|
-
} else if (
|
|
114
|
+
} else if (Array.isArray(nodeObj)) {
|
|
115
115
|
for (const childObj of nodeObj) {
|
|
116
116
|
const {nodes, attrs} = transformNode(childObj, platform, {
|
|
117
117
|
metadata,
|
|
@@ -123,8 +123,8 @@ export function transformNode(
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
return {
|
|
126
|
-
nodes:
|
|
127
|
-
attrs:
|
|
126
|
+
nodes: util.uniq(unknownNodes),
|
|
127
|
+
attrs: util.uniq(unknownAttrs),
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
|
|
@@ -169,15 +169,15 @@ export function transformChildNodes(
|
|
|
169
169
|
// if we already have a node with the universal name, that means we are mapping a second
|
|
170
170
|
// original node name to the same universal node name, so we just push all its children into
|
|
171
171
|
// the list
|
|
172
|
-
if (
|
|
173
|
-
if (
|
|
172
|
+
if (Array.isArray(nodeObj[universalName])) {
|
|
173
|
+
if (Array.isArray(nodeObj[nodeName])) {
|
|
174
174
|
nodeObj[universalName].push(...nodeObj[nodeName]);
|
|
175
175
|
} else {
|
|
176
176
|
nodeObj[universalName].push(nodeObj[nodeName]);
|
|
177
177
|
}
|
|
178
178
|
} else {
|
|
179
179
|
nodeObj[universalName] = [nodeObj[universalName]];
|
|
180
|
-
if (
|
|
180
|
+
if (Array.isArray(nodeObj[nodeName])) {
|
|
181
181
|
nodeObj[universalName].push(...nodeObj[nodeName]);
|
|
182
182
|
} else {
|
|
183
183
|
nodeObj[universalName].push(nodeObj[nodeName]);
|
|
@@ -236,7 +236,7 @@ function getUniversalName(
|
|
|
236
236
|
): string | null {
|
|
237
237
|
for (const translatedName of Object.keys(nameMap)) {
|
|
238
238
|
const sourceNodes = nameMap[translatedName]?.[platform];
|
|
239
|
-
if (
|
|
239
|
+
if (Array.isArray(sourceNodes) && sourceNodes.includes(name)) {
|
|
240
240
|
return translatedName;
|
|
241
241
|
}
|
|
242
242
|
if (sourceNodes === name) {
|
|
@@ -246,7 +246,7 @@ function getUniversalName(
|
|
|
246
246
|
return null;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
const singletonXmlBuilder =
|
|
249
|
+
const singletonXmlBuilder = util.memoize(function makeXmlBuilder() {
|
|
250
250
|
return new XMLBuilder({
|
|
251
251
|
ignoreAttributes: false,
|
|
252
252
|
attributeNamePrefix: ATTR_PREFIX,
|
|
@@ -255,7 +255,7 @@ const singletonXmlBuilder = _.memoize(function makeXmlBuilder() {
|
|
|
255
255
|
});
|
|
256
256
|
});
|
|
257
257
|
|
|
258
|
-
const singletonXmlParser =
|
|
258
|
+
const singletonXmlParser = util.memoize(function makeXmlParser() {
|
|
259
259
|
return new XMLParser({
|
|
260
260
|
ignoreAttributes: false,
|
|
261
261
|
ignoreDeclaration: true,
|
package/lib/xpath.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {select as xpathQuery} from 'xpath';
|
|
2
2
|
import {DOMParser, MIME_TYPE} from '@xmldom/xmldom';
|
|
3
|
-
import _ from 'lodash';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Runs an XPath query against an XML string.
|
|
@@ -25,7 +24,7 @@ export function runQuery(query: string, xmlStr: string): any[] {
|
|
|
25
24
|
*/
|
|
26
25
|
export function transformQuery(query: string, xmlStr: string, multiple: boolean): string | null {
|
|
27
26
|
const nodes = runQuery(query, xmlStr);
|
|
28
|
-
if (!
|
|
27
|
+
if (!Array.isArray(nodes)) {
|
|
29
28
|
return null;
|
|
30
29
|
}
|
|
31
30
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/universal-xml-plugin",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.4",
|
|
4
4
|
"description": "Appium plugin for making XML source and XPath queries the same across iOS and Android",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"test:unit": "mocha \"./test/unit/**/*.spec.*ts\""
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
+
"@appium/support": "7.2.3",
|
|
41
42
|
"@xmldom/xmldom": "0.9.10",
|
|
42
|
-
"fast-xml-parser": "5.
|
|
43
|
-
"lodash": "4.18.1",
|
|
43
|
+
"fast-xml-parser": "5.8.0",
|
|
44
44
|
"xpath": "0.0.34"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "8018f8b70ecc975fa115e19072ef337b8473865d"
|
|
61
61
|
}
|