@appium/universal-xml-plugin 1.0.2 → 1.0.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/LICENSE +2 -2
- package/README.md +1 -1
- package/build/lib/attr-map.d.ts +58 -0
- package/build/lib/attr-map.d.ts.map +1 -0
- package/build/lib/attr-map.js +1 -1
- package/build/lib/attr-map.js.map +1 -0
- package/build/lib/index.d.ts +5 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +26 -0
- package/build/lib/index.js.map +1 -0
- package/build/lib/logger.d.ts +3 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -0
- package/build/lib/node-map.d.ts +200 -0
- package/build/lib/node-map.d.ts.map +1 -0
- package/build/lib/node-map.js +15 -57
- package/build/lib/node-map.js.map +1 -0
- package/build/lib/plugin.d.ts +8 -0
- package/build/lib/plugin.d.ts.map +1 -0
- package/build/lib/plugin.js +64 -73
- package/build/lib/plugin.js.map +1 -0
- package/build/lib/source.d.ts +24 -0
- package/build/lib/source.d.ts.map +1 -0
- package/build/lib/source.js +24 -10
- package/build/lib/source.js.map +1 -0
- package/build/lib/transformers.d.ts +8 -0
- package/build/lib/transformers.d.ts.map +1 -0
- package/build/lib/transformers.js +1 -1
- package/build/lib/transformers.js.map +1 -0
- package/build/lib/xpath.d.ts +4 -0
- package/build/lib/xpath.d.ts.map +1 -0
- package/build/lib/xpath.js +3 -2
- package/build/lib/xpath.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/index.js +3 -17
- package/lib/attr-map.js +1 -1
- package/lib/index.js +19 -0
- package/lib/logger.js +1 -1
- package/lib/node-map.js +14 -58
- package/lib/plugin.js +36 -25
- package/lib/source.js +30 -13
- package/lib/transformers.js +3 -3
- package/lib/xpath.js +7 -6
- package/package.json +48 -23
- package/tsconfig.json +3 -11
- package/build/index.js +0 -25
- package/build/test/fixtures/android-transformed-path.xml +0 -39
- package/build/test/fixtures/android-transformed.xml +0 -39
- package/build/test/fixtures/android.xml +0 -39
- package/build/test/fixtures/index.js +0 -25
- package/build/test/fixtures/ios-edge.xml +0 -16
- package/build/test/fixtures/ios-transformed-edge.xml +0 -16
- package/build/test/fixtures/ios-transformed-path.xml +0 -54
- package/build/test/fixtures/ios-transformed.xml +0 -54
- package/build/test/fixtures/ios.xml +0 -51
- package/build/test/unit/plugin-specs.js +0 -76
- package/build/test/unit/source-specs.js +0 -82
- package/build/test/unit/xpath-specs.js +0 -46
- package/test/fixtures/android-transformed-path.xml +0 -39
- package/test/fixtures/android-transformed.xml +0 -39
- package/test/fixtures/android.xml +0 -39
- package/test/fixtures/index.js +0 -14
- package/test/fixtures/ios-edge.xml +0 -16
- package/test/fixtures/ios-transformed-edge.xml +0 -16
- package/test/fixtures/ios-transformed-path.xml +0 -54
- package/test/fixtures/ios-transformed.xml +0 -54
- package/test/fixtures/ios.xml +0 -51
- package/test/unit/plugin-specs.js +0 -57
- package/test/unit/source-specs.js +0 -79
- package/test/unit/xpath-specs.js +0 -43
package/build/lib/plugin.js
CHANGED
|
@@ -1,95 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable no-case-declarations */
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
5
|
};
|
|
15
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
7
|
exports.UniversalXMLPlugin = void 0;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
8
|
+
const plugin_1 = __importDefault(require("appium/plugin"));
|
|
9
|
+
const driver_1 = require("appium/driver");
|
|
19
10
|
const source_1 = require("./source");
|
|
20
11
|
const xpath_1 = require("./xpath");
|
|
21
12
|
const logger_1 = __importDefault(require("./logger"));
|
|
22
|
-
class UniversalXMLPlugin extends
|
|
13
|
+
class UniversalXMLPlugin extends plugin_1.default {
|
|
23
14
|
constructor() {
|
|
24
15
|
super(...arguments);
|
|
25
|
-
this.commands = [
|
|
26
|
-
'
|
|
16
|
+
this.commands = [
|
|
17
|
+
'getPageSource',
|
|
18
|
+
'findElement',
|
|
19
|
+
'findElements',
|
|
20
|
+
'findElementFromElement',
|
|
21
|
+
'findElementsFromElement',
|
|
22
|
+
];
|
|
27
23
|
}
|
|
28
|
-
getPageSource(next, driver, sessId, addIndexPath = false) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
logger_1.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` +
|
|
39
|
-
`tag name(s) that it didn't know about. These should be ` +
|
|
40
|
-
`reported to improve the quality of the plugin: ` +
|
|
41
|
-
unknowns.nodes.join(', '));
|
|
42
|
-
}
|
|
43
|
-
if (unknowns.attrs.length) {
|
|
44
|
-
logger_1.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` +
|
|
45
|
-
`that it didn't know about. These should be reported to ` +
|
|
46
|
-
`improve the quality of the plugin: ` +
|
|
47
|
-
unknowns.attrs.join(', '));
|
|
48
|
-
}
|
|
49
|
-
return xml;
|
|
24
|
+
async getPageSource(next, driver, sessId, addIndexPath = false) {
|
|
25
|
+
const source = next ? await next() : await driver.getPageSource();
|
|
26
|
+
const metadata = {};
|
|
27
|
+
const { platformName } = driver.caps;
|
|
28
|
+
if (platformName.toLowerCase() === 'android') {
|
|
29
|
+
metadata.appPackage = driver.opts.appPackage;
|
|
30
|
+
}
|
|
31
|
+
const { xml, unknowns } = (0, source_1.transformSourceXml)(source, platformName.toLowerCase(), {
|
|
32
|
+
metadata,
|
|
33
|
+
addIndexPath,
|
|
50
34
|
});
|
|
35
|
+
if (unknowns.nodes.length) {
|
|
36
|
+
logger_1.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` +
|
|
37
|
+
`tag name(s) that it didn't know about. These should be ` +
|
|
38
|
+
`reported to improve the quality of the plugin: ` +
|
|
39
|
+
unknowns.nodes.join(', '));
|
|
40
|
+
}
|
|
41
|
+
if (unknowns.attrs.length) {
|
|
42
|
+
logger_1.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` +
|
|
43
|
+
`that it didn't know about. These should be reported to ` +
|
|
44
|
+
`improve the quality of the plugin: ` +
|
|
45
|
+
unknowns.attrs.join(', '));
|
|
46
|
+
}
|
|
47
|
+
return xml;
|
|
51
48
|
}
|
|
52
|
-
findElement(...args) {
|
|
53
|
-
return
|
|
54
|
-
return yield this._find(false, ...args);
|
|
55
|
-
});
|
|
49
|
+
async findElement(...args) {
|
|
50
|
+
return await this._find(false, ...args);
|
|
56
51
|
}
|
|
57
|
-
findElements(...args) {
|
|
58
|
-
return
|
|
59
|
-
return yield this._find(true, ...args);
|
|
60
|
-
});
|
|
52
|
+
async findElements(...args) {
|
|
53
|
+
return await this._find(true, ...args);
|
|
61
54
|
}
|
|
62
|
-
_find(multiple, next, driver, strategy, selector) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return [];
|
|
77
|
-
}
|
|
78
|
-
throw new base_driver_1.errors.NoSuchElementError();
|
|
55
|
+
async _find(multiple, next, driver, strategy, selector) {
|
|
56
|
+
const { platformName } = driver.caps;
|
|
57
|
+
if (strategy.toLowerCase() !== 'xpath') {
|
|
58
|
+
return await next();
|
|
59
|
+
}
|
|
60
|
+
const xml = await this.getPageSource(null, driver, null, true);
|
|
61
|
+
let newSelector = (0, xpath_1.transformQuery)(selector, xml, multiple);
|
|
62
|
+
// if the selector was not able to be transformed, that means no elements were found that
|
|
63
|
+
// matched, so do the appropriate thing based on element vs elements
|
|
64
|
+
if (newSelector === null) {
|
|
65
|
+
logger_1.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` +
|
|
66
|
+
`element does not exist or there was an error in translation`);
|
|
67
|
+
if (multiple) {
|
|
68
|
+
return [];
|
|
79
69
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
70
|
+
throw new driver_1.errors.NoSuchElementError();
|
|
71
|
+
}
|
|
72
|
+
if (platformName.toLowerCase() === 'ios') {
|
|
73
|
+
// with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is
|
|
74
|
+
// not present in the source considered by WDA, so our index path based xpath queries will
|
|
75
|
+
// not work with WDA as-is. We need to remove the first path segment.
|
|
76
|
+
newSelector = newSelector.replace(/^\/\*\[1\]/, '');
|
|
77
|
+
}
|
|
78
|
+
logger_1.default.info(`Selector was translated to: ${newSelector}`);
|
|
79
|
+
// otherwise just run the transformed query!
|
|
80
|
+
const finder = multiple ? 'findElements' : 'findElement';
|
|
81
|
+
return await driver[finder](strategy, newSelector);
|
|
91
82
|
}
|
|
92
83
|
}
|
|
93
84
|
exports.default = UniversalXMLPlugin;
|
|
94
85
|
exports.UniversalXMLPlugin = UniversalXMLPlugin;
|
|
95
|
-
//# sourceMappingURL=
|
|
86
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.js"],"names":[],"mappings":";AAAA,yCAAyC;;;;;;AAEzC,2DAAuC;AACvC,0CAAqC;AACrC,qCAA4C;AAC5C,mCAAuC;AACvC,sDAA2B;AAE3B,MAAqB,kBAAmB,SAAQ,gBAAU;IAA1D;;QACE,aAAQ,GAAG;YACT,eAAe;YACf,aAAa;YACb,cAAc;YACd,wBAAwB;YACxB,yBAAyB;SAC1B,CAAC;IAyEJ,CAAC;IAvEC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,KAAK;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACnC,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;YAC5C,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC9C;QACD,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,GAAG,IAAA,2BAAkB,EAAC,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,EAAE;YAC7E,QAAQ;YACR,YAAY;SACb,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACzB,gBAAG,CAAC,IAAI,CACN,wBAAwB,QAAQ,CAAC,KAAK,CAAC,MAAM,aAAa;gBACxD,yDAAyD;gBACzD,iDAAiD;gBACjD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;SACH;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACzB,gBAAG,CAAC,IAAI,CACN,wBAAwB,QAAQ,CAAC,KAAK,CAAC,MAAM,cAAc;gBACzD,yDAAyD;gBACzD,qCAAqC;gBACrC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;QACvB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI;QACxB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;QACpD,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACnC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YACtC,OAAO,MAAM,IAAI,EAAE,CAAC;SACrB;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,WAAW,GAAG,IAAA,sBAAc,EAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAE1D,yFAAyF;QACzF,oEAAoE;QACpE,IAAI,WAAW,KAAK,IAAI,EAAE;YACxB,gBAAG,CAAC,IAAI,CACN,iFAAiF;gBAC/E,6DAA6D,CAChE,CAAC;YACF,IAAI,QAAQ,EAAE;gBACZ,OAAO,EAAE,CAAC;aACX;YACD,MAAM,IAAI,eAAM,CAAC,kBAAkB,EAAE,CAAC;SACvC;QAED,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;YACxC,4FAA4F;YAC5F,0FAA0F;YAC1F,qEAAqE;YACrE,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SACrD;QACD,gBAAG,CAAC,IAAI,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;QAEvD,4CAA4C;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;QACzD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;CACF;AAhFD,qCAgFC;AAEO,gDAAkB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function transformSourceXml(xmlStr: any, platform: any, { metadata, addIndexPath }?: {
|
|
2
|
+
metadata?: {} | undefined;
|
|
3
|
+
addIndexPath?: boolean | undefined;
|
|
4
|
+
}): {
|
|
5
|
+
xml: any;
|
|
6
|
+
unknowns: any;
|
|
7
|
+
};
|
|
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[];
|
|
21
|
+
export const ATTR_PREFIX: "@_";
|
|
22
|
+
export const IDX_PATH_PREFIX: string;
|
|
23
|
+
export const IDX_PREFIX: string;
|
|
24
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +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"}
|
package/build/lib/source.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -47,7 +51,11 @@ function transformSourceXml(xmlStr, platform, { metadata = {}, addIndexPath = fa
|
|
|
47
51
|
// necessary index attribute, so we add it if it's not there
|
|
48
52
|
xmlStr = xmlStr.replace('<AppiumAUT>', '<AppiumAUT index="0">');
|
|
49
53
|
const xmlObj = fast_xml_parser_1.default.parse(xmlStr, PARSE_OPTS);
|
|
50
|
-
const unknowns = transformNode(xmlObj, platform, {
|
|
54
|
+
const unknowns = transformNode(xmlObj, platform, {
|
|
55
|
+
metadata,
|
|
56
|
+
addIndexPath,
|
|
57
|
+
parentPath: '',
|
|
58
|
+
});
|
|
51
59
|
const jParser = new fast_xml_parser_1.j2xParser(GEN_OPTS);
|
|
52
60
|
let transformedXml = jParser.parse(xmlObj).trim();
|
|
53
61
|
transformedXml = `<?xml version="1.0" encoding="UTF-8"?>\n${transformedXml}`;
|
|
@@ -55,9 +63,8 @@ function transformSourceXml(xmlStr, platform, { metadata = {}, addIndexPath = fa
|
|
|
55
63
|
}
|
|
56
64
|
exports.transformSourceXml = transformSourceXml;
|
|
57
65
|
function getUniversalName(nameMap, name, platform) {
|
|
58
|
-
var _a;
|
|
59
66
|
for (const translatedName of Object.keys(nameMap)) {
|
|
60
|
-
const sourceNodes =
|
|
67
|
+
const sourceNodes = nameMap[translatedName]?.[platform];
|
|
61
68
|
if (lodash_1.default.isArray(sourceNodes) && sourceNodes.includes(name)) {
|
|
62
69
|
return translatedName;
|
|
63
70
|
}
|
|
@@ -76,7 +83,6 @@ function getUniversalAttrName(attrName, platform) {
|
|
|
76
83
|
}
|
|
77
84
|
exports.getUniversalAttrName = getUniversalAttrName;
|
|
78
85
|
function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }) {
|
|
79
|
-
var _a;
|
|
80
86
|
const unknownNodes = [];
|
|
81
87
|
const unknownAttrs = [];
|
|
82
88
|
if (lodash_1.default.isPlainObject(nodeObj)) {
|
|
@@ -91,10 +97,12 @@ function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }
|
|
|
91
97
|
thisIndexPath = `${parentPath}/${nodeObj[exports.IDX_PREFIX]}`;
|
|
92
98
|
nodeObj[exports.IDX_PATH_PREFIX] = thisIndexPath;
|
|
93
99
|
}
|
|
94
|
-
|
|
100
|
+
transformers_1.default[platform]?.(nodeObj, metadata);
|
|
95
101
|
unknownAttrs.push(...transformAttrs(nodeObj, attrs, platform));
|
|
96
102
|
const unknowns = transformChildNodes(nodeObj, childNodeNames, platform, {
|
|
97
|
-
metadata,
|
|
103
|
+
metadata,
|
|
104
|
+
addIndexPath,
|
|
105
|
+
parentPath: thisIndexPath,
|
|
98
106
|
});
|
|
99
107
|
unknownAttrs.push(...unknowns.attrs);
|
|
100
108
|
unknownNodes.push(...unknowns.nodes);
|
|
@@ -102,7 +110,9 @@ function transformNode(nodeObj, platform, { metadata, addIndexPath, parentPath }
|
|
|
102
110
|
else if (lodash_1.default.isArray(nodeObj)) {
|
|
103
111
|
for (const childObj of nodeObj) {
|
|
104
112
|
const { nodes, attrs } = transformNode(childObj, platform, {
|
|
105
|
-
metadata,
|
|
113
|
+
metadata,
|
|
114
|
+
addIndexPath,
|
|
115
|
+
parentPath,
|
|
106
116
|
});
|
|
107
117
|
unknownNodes.push(...nodes);
|
|
108
118
|
unknownAttrs.push(...attrs);
|
|
@@ -119,7 +129,11 @@ function transformChildNodes(nodeObj, childNodeNames, platform, { metadata, addI
|
|
|
119
129
|
const unknownAttrs = [];
|
|
120
130
|
for (const nodeName of childNodeNames) {
|
|
121
131
|
// before modifying the name of this child node, recurse down and modify the subtree
|
|
122
|
-
const { nodes, attrs } = transformNode(nodeObj[nodeName], platform, {
|
|
132
|
+
const { nodes, attrs } = transformNode(nodeObj[nodeName], platform, {
|
|
133
|
+
metadata,
|
|
134
|
+
addIndexPath,
|
|
135
|
+
parentPath,
|
|
136
|
+
});
|
|
123
137
|
unknownNodes.push(...nodes);
|
|
124
138
|
unknownAttrs.push(...attrs);
|
|
125
139
|
// now translate the node name and replace the subtree with this node
|
|
@@ -167,4 +181,4 @@ function transformAttrs(nodeObj, attrs, platform) {
|
|
|
167
181
|
return unknownAttrs;
|
|
168
182
|
}
|
|
169
183
|
exports.transformAttrs = transformAttrs;
|
|
170
|
-
//# sourceMappingURL=
|
|
184
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../lib/source.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,mEAAkD;AAClD,0DAAkC;AAClC,yCAAkD;AAClD,kEAAwC;AAExC,MAAM,UAAU,GAAG;IACjB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;CACb,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,CAAC;AACnB,QAAA,eAAe,GAAG,GAAG,mBAAW,WAAW,CAAC;AAC5C,QAAA,UAAU,GAAG,GAAG,mBAAW,OAAO,CAAC;AAEhD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,mBAAW,CAAC;AACxD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEjC,SAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAC,QAAQ,GAAG,EAAE,EAAE,YAAY,GAAG,KAAK,EAAC,GAAG,EAAE;IAC7F,+FAA+F;IAC/F,4DAA4D;IAC5D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,yBAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;QAC/C,QAAQ;QACR,YAAY;QACZ,UAAU,EAAE,EAAE;KACf,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,2BAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,cAAc,GAAG,2CAA2C,cAAc,EAAE,CAAC;IAC7E,OAAO,EAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAC,CAAC;AACzC,CAAC;AAdD,gDAcC;AAED,SAAS,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;IAC/C,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACjD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,gBAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO,cAAc,CAAC;SACvB;QACD,IAAI,WAAW,KAAK,IAAI,EAAE;YACxB,OAAO,cAAc,CAAC;SACvB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IACrD,OAAO,gBAAgB,CAAC,kBAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IACrD,OAAO,gBAAgB,CAAC,mBAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAFD,oDAEC;AAED,SAAgB,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAC;IACnF,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,IAAI,gBAAC,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,aAAa,GAAG,UAAU,CAAC;QAE/B,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAU,CAAC,EAAE;gBAC/B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;aACpF;YAED,aAAa,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,kBAAU,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,uBAAe,CAAC,GAAG,aAAa,CAAC;SAC1C;QAED,sBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE;YACtE,QAAQ;YACR,YAAY;YACZ,UAAU,EAAE,aAAa;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtC;SAAM,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC7B,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;YAC9B,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE;gBACvD,QAAQ;gBACR,YAAY;gBACZ,UAAU;aACX,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;SAC7B;KACF;IACD,OAAO;QACL,KAAK,EAAE,gBAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,gBAAC,CAAC,IAAI,CAAC,YAAY,CAAC;KAC5B,CAAC;AACJ,CAAC;AA1CD,sCA0CC;AAED,SAAgB,mBAAmB,CACjC,OAAO,EACP,cAAc,EACd,QAAQ,EACR,EAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAC;IAEpC,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE;QACrC,oFAAoF;QACpF,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE;YAChE,QAAQ;YACR,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAE5B,qEAAqE;QACrE,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,SAAS;SACV;QAED,4FAA4F;QAC5F,2FAA2F;QAC3F,mFAAmF;QACnF,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;YAC1B,wFAAwF;YACxF,4FAA4F;YAC5F,WAAW;YACX,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC5C;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC1B;IACD,OAAO,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;AACpD,CAAC;AAvCD,kDAuCC;AAED,SAAgB,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ;IACrD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,uBAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS;SACV;QACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,SAAS;SACV;QACD,MAAM,OAAO,GAAG,GAAG,mBAAW,GAAG,aAAa,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AApBD,wCAoBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../lib/transformers.js"],"names":[],"mappings":";;;;;AAEA,wCAEC;AAED,4DAoBC"}
|
|
@@ -28,4 +28,4 @@ exports.default = {
|
|
|
28
28
|
ios,
|
|
29
29
|
android,
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xpath.d.ts","sourceRoot":"","sources":["../../lib/xpath.js"],"names":[],"mappings":"AAGA,mFAIC;AAED,sFA6BC;AAED,0DAMC"}
|
package/build/lib/xpath.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getNodeAttrVal = exports.transformQuery = exports.runQuery = void 0;
|
|
4
4
|
const xpath_1 = require("xpath");
|
|
5
|
-
const xmldom_1 = require("xmldom");
|
|
5
|
+
const xmldom_1 = require("@xmldom/xmldom");
|
|
6
6
|
function runQuery(query, xmlStr) {
|
|
7
7
|
const dom = new xmldom_1.DOMParser().parseFromString(xmlStr);
|
|
8
8
|
const nodes = (0, xpath_1.select)(query, dom);
|
|
@@ -18,6 +18,7 @@ function transformQuery(query, xmlStr, multiple) {
|
|
|
18
18
|
.substring(1) // remove leading / so we can split
|
|
19
19
|
.split('/') // split into idnexes
|
|
20
20
|
.map((indexStr) => {
|
|
21
|
+
// map to xpath node indexes (1-based)
|
|
21
22
|
const xpathIndex = parseInt(indexStr, 10) + 1;
|
|
22
23
|
return `*[${xpathIndex}]`;
|
|
23
24
|
})
|
|
@@ -45,4 +46,4 @@ function getNodeAttrVal(node, attr) {
|
|
|
45
46
|
return attrObjs[0].value;
|
|
46
47
|
}
|
|
47
48
|
exports.getNodeAttrVal = getNodeAttrVal;
|
|
48
|
-
//# sourceMappingURL=
|
|
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"}
|