@appium/universal-xml-plugin 1.0.0-beta.1 → 1.0.0-beta.12

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.
Files changed (63) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +1 -1
  3. package/build/lib/attr-map.d.ts +58 -0
  4. package/build/lib/attr-map.d.ts.map +1 -0
  5. package/build/lib/attr-map.js +47 -32
  6. package/build/lib/index.d.ts +5 -0
  7. package/build/lib/index.d.ts.map +1 -0
  8. package/build/lib/index.js +49 -0
  9. package/build/lib/logger.d.ts +3 -0
  10. package/build/lib/logger.d.ts.map +1 -0
  11. package/build/lib/logger.js +15 -5
  12. package/build/lib/node-map.d.ts +200 -0
  13. package/build/lib/node-map.d.ts.map +1 -0
  14. package/build/lib/node-map.js +146 -267
  15. package/build/lib/plugin.d.ts +8 -0
  16. package/build/lib/plugin.d.ts.map +1 -0
  17. package/build/lib/plugin.js +90 -87
  18. package/build/lib/source.d.ts +24 -0
  19. package/build/lib/source.d.ts.map +1 -0
  20. package/build/lib/source.js +202 -148
  21. package/build/lib/transformers.d.ts +8 -0
  22. package/build/lib/transformers.d.ts.map +1 -0
  23. package/build/lib/transformers.js +35 -26
  24. package/build/lib/xpath.d.ts +4 -0
  25. package/build/lib/xpath.d.ts.map +1 -0
  26. package/build/lib/xpath.js +46 -40
  27. package/build/tsconfig.tsbuildinfo +1 -0
  28. package/index.js +3 -17
  29. package/lib/attr-map.js +1 -1
  30. package/lib/index.js +19 -0
  31. package/lib/logger.js +1 -1
  32. package/lib/node-map.js +14 -58
  33. package/lib/plugin.js +38 -28
  34. package/lib/source.js +30 -13
  35. package/lib/transformers.js +3 -3
  36. package/lib/xpath.js +7 -6
  37. package/package.json +41 -22
  38. package/build/index.js +0 -25
  39. package/build/test/fixtures/android-transformed-path.xml +0 -39
  40. package/build/test/fixtures/android-transformed.xml +0 -39
  41. package/build/test/fixtures/android.xml +0 -39
  42. package/build/test/fixtures/index.js +0 -25
  43. package/build/test/fixtures/ios-edge.xml +0 -16
  44. package/build/test/fixtures/ios-transformed-edge.xml +0 -16
  45. package/build/test/fixtures/ios-transformed-path.xml +0 -54
  46. package/build/test/fixtures/ios-transformed.xml +0 -54
  47. package/build/test/fixtures/ios.xml +0 -51
  48. package/build/test/unit/plugin-specs.js +0 -76
  49. package/build/test/unit/source-specs.js +0 -82
  50. package/build/test/unit/xpath-specs.js +0 -46
  51. package/test/fixtures/android-transformed-path.xml +0 -39
  52. package/test/fixtures/android-transformed.xml +0 -39
  53. package/test/fixtures/android.xml +0 -39
  54. package/test/fixtures/index.js +0 -14
  55. package/test/fixtures/ios-edge.xml +0 -16
  56. package/test/fixtures/ios-transformed-edge.xml +0 -16
  57. package/test/fixtures/ios-transformed-path.xml +0 -54
  58. package/test/fixtures/ios-transformed.xml +0 -54
  59. package/test/fixtures/ios.xml +0 -51
  60. package/test/unit/plugin-specs.js +0 -57
  61. package/test/unit/source-specs.js +0 -79
  62. package/test/unit/xpath-specs.js +0 -43
  63. package/tsconfig.json +0 -15
@@ -1,95 +1,98 @@
1
1
  "use strict";
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());
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.UniversalXMLPlugin = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _plugin = _interopRequireDefault(require("appium/plugin"));
13
+
14
+ var _driver = require("appium/driver");
15
+
16
+ var _source = require("./source");
17
+
18
+ var _xpath = require("./xpath");
19
+
20
+ var _logger = _interopRequireDefault(require("./logger"));
21
+
22
+ class UniversalXMLPlugin extends _plugin.default {
23
+ commands = ['getPageSource', 'findElement', 'findElements', 'findElementFromElement', 'findElementsFromElement'];
24
+
25
+ async getPageSource(next, driver, sessId, addIndexPath = false) {
26
+ const source = next ? await next() : await driver.getPageSource();
27
+ const metadata = {};
28
+ const {
29
+ platformName
30
+ } = driver.caps;
31
+
32
+ if (platformName.toLowerCase() === 'android') {
33
+ metadata.appPackage = driver.opts.appPackage;
34
+ }
35
+
36
+ const {
37
+ xml,
38
+ unknowns
39
+ } = (0, _source.transformSourceXml)(source, platformName.toLowerCase(), {
40
+ metadata,
41
+ addIndexPath
10
42
  });
11
- };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.UniversalXMLPlugin = void 0;
17
- const base_plugin_1 = __importDefault(require("@appium/base-plugin"));
18
- const appium_base_driver_1 = require("appium-base-driver");
19
- const source_1 = require("./source");
20
- const xpath_1 = require("./xpath");
21
- const logger_1 = __importDefault(require("./logger"));
22
- class UniversalXMLPlugin extends base_plugin_1.default {
23
- constructor() {
24
- super(...arguments);
25
- this.commands = ['getPageSource', 'findElement', 'findElements', 'findElementFromElement',
26
- 'findElementsFromElement'];
43
+
44
+ if (unknowns.nodes.length) {
45
+ _logger.default.warn(`The XML mapper found ${unknowns.nodes.length} node(s) / ` + `tag name(s) that it didn't know about. These should be ` + `reported to improve the quality of the plugin: ` + unknowns.nodes.join(', '));
27
46
  }
28
- getPageSource(next, driver, addIndexPath) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- const source = yield driver.getPageSource();
31
- const metadata = {};
32
- const { platformName } = driver.caps;
33
- if (platformName.toLowerCase() === 'android') {
34
- metadata.appPackage = driver.opts.appPackage;
35
- }
36
- const { xml, unknowns } = source_1.transformSourceXml(source, platformName.toLowerCase(), { metadata, addIndexPath });
37
- if (unknowns.nodes.length) {
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;
50
- });
47
+
48
+ if (unknowns.attrs.length) {
49
+ _logger.default.warn(`The XML mapper found ${unknowns.attrs.length} attributes ` + `that it didn't know about. These should be reported to ` + `improve the quality of the plugin: ` + unknowns.attrs.join(', '));
51
50
  }
52
- findElement(...args) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return yield this._find(false, ...args);
55
- });
51
+
52
+ return xml;
53
+ }
54
+
55
+ async findElement(...args) {
56
+ return await this._find(false, ...args);
57
+ }
58
+
59
+ async findElements(...args) {
60
+ return await this._find(true, ...args);
61
+ }
62
+
63
+ async _find(multiple, next, driver, strategy, selector) {
64
+ const {
65
+ platformName
66
+ } = driver.caps;
67
+
68
+ if (strategy.toLowerCase() !== 'xpath') {
69
+ return await next();
56
70
  }
57
- findElements(...args) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- return yield this._find(true, ...args);
60
- });
71
+
72
+ const xml = await this.getPageSource(null, driver, null, true);
73
+ let newSelector = (0, _xpath.transformQuery)(selector, xml, multiple);
74
+
75
+ if (newSelector === null) {
76
+ _logger.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` + `element does not exist or there was an error in translation`);
77
+
78
+ if (multiple) {
79
+ return [];
80
+ }
81
+
82
+ throw new _driver.errors.NoSuchElementError();
61
83
  }
62
- _find(multiple, next, driver, strategy, selector) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const { platformName } = driver.caps;
65
- if (strategy.toLowerCase() !== 'xpath') {
66
- return yield next();
67
- }
68
- const xml = yield this.getPageSource(null, driver, true);
69
- let newSelector = xpath_1.transformQuery(selector, xml, multiple);
70
- // if the selector was not able to be transformed, that means no elements were found that
71
- // matched, so do the appropriate thing based on element vs elements
72
- if (newSelector === null) {
73
- logger_1.default.warn(`Selector was not able to be translated to underlying XML. Either the requested ` +
74
- `element does not exist or there was an error in translation`);
75
- if (multiple) {
76
- return [];
77
- }
78
- throw new appium_base_driver_1.errors.NoSuchElementError();
79
- }
80
- if (platformName.toLowerCase() === 'ios') {
81
- // with the XCUITest driver, the <AppiumAUT> wrapper element is present in the source but is
82
- // not present in the source considered by WDA, so our index path based xpath queries will
83
- // not work with WDA as-is. We need to remove the first path segment.
84
- newSelector = newSelector.replace(/^\/\*\[1\]/, '');
85
- }
86
- logger_1.default.info(`Selector was translated to: ${newSelector}`);
87
- // otherwise just run the transformed query!
88
- const finder = multiple ? 'findElements' : 'findElement';
89
- return yield driver[finder](strategy, newSelector);
90
- });
84
+
85
+ if (platformName.toLowerCase() === 'ios') {
86
+ newSelector = newSelector.replace(/^\/\*\[1\]/, '');
91
87
  }
88
+
89
+ _logger.default.info(`Selector was translated to: ${newSelector}`);
90
+
91
+ const finder = multiple ? 'findElements' : 'findElement';
92
+ return await driver[finder](strategy, newSelector);
93
+ }
94
+
92
95
  }
93
- exports.default = UniversalXMLPlugin;
94
- exports.UniversalXMLPlugin = UniversalXMLPlugin;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsdWdpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDOzs7Ozs7Ozs7Ozs7Ozs7QUFFekMsc0VBQTZDO0FBQzdDLDJEQUE0QztBQUM1QyxxQ0FBOEM7QUFDOUMsbUNBQXlDO0FBQ3pDLHNEQUEyQjtBQUczQixNQUFxQixrQkFBbUIsU0FBUSxxQkFBVTtJQUExRDs7UUFFRSxhQUFRLEdBQUcsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSx3QkFBd0I7WUFDbEYseUJBQXlCLENBQUMsQ0FBQztJQWtFL0IsQ0FBQztJQWhFTyxhQUFhLENBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZOztZQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxFQUFDLFlBQVksRUFBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDbkMsSUFBSSxZQUFZLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxFQUFFO2dCQUM1QyxRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzlDO1lBQ0QsTUFBTSxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUMsR0FBRywyQkFBa0IsQ0FBQyxNQUFNLEVBQy9DLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pCLGdCQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sYUFBYTtvQkFDMUQseURBQXlEO29CQUN6RCxpREFBaUQ7b0JBQ2pELFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDckM7WUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN6QixnQkFBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLGNBQWM7b0JBQzNELHlEQUF5RDtvQkFDekQscUNBQXFDO29CQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO0tBQUE7SUFFSyxXQUFXLENBQUUsR0FBRyxJQUFJOztZQUN4QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO0tBQUE7SUFFSyxZQUFZLENBQUUsR0FBRyxJQUFJOztZQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO0tBQUE7SUFFSyxLQUFLLENBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVE7O1lBQ3JELE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ25DLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRTtnQkFDdEMsT0FBTyxNQUFNLElBQUksRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsSUFBSSxXQUFXLEdBQUcsc0JBQWMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRTFELHlGQUF5RjtZQUN6RixvRUFBb0U7WUFDcEUsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUN4QixnQkFBRyxDQUFDLElBQUksQ0FBQyxpRkFBaUY7b0JBQ2pGLDZEQUE2RCxDQUFDLENBQUM7Z0JBQ3hFLElBQUksUUFBUSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDO2lCQUNYO2dCQUNELE1BQU0sSUFBSSwyQkFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDdkM7WUFFRCxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLEVBQUU7Z0JBQ3hDLDRGQUE0RjtnQkFDNUYsMEZBQTBGO2dCQUMxRixxRUFBcUU7Z0JBQ3JFLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNELGdCQUFHLENBQUMsSUFBSSxDQUFDLCtCQUErQixXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRXZELDRDQUE0QztZQUM1QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ3pELE9BQU8sTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELENBQUM7S0FBQTtDQUVGO0FBckVELHFDQXFFQztBQUVRLGdEQUFrQiJ9
96
+
97
+ exports.UniversalXMLPlugin = exports.default = UniversalXMLPlugin;
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVbml2ZXJzYWxYTUxQbHVnaW4iLCJCYXNlUGx1Z2luIiwiY29tbWFuZHMiLCJnZXRQYWdlU291cmNlIiwibmV4dCIsImRyaXZlciIsInNlc3NJZCIsImFkZEluZGV4UGF0aCIsInNvdXJjZSIsIm1ldGFkYXRhIiwicGxhdGZvcm1OYW1lIiwiY2FwcyIsInRvTG93ZXJDYXNlIiwiYXBwUGFja2FnZSIsIm9wdHMiLCJ4bWwiLCJ1bmtub3ducyIsInRyYW5zZm9ybVNvdXJjZVhtbCIsIm5vZGVzIiwibGVuZ3RoIiwibG9nIiwid2FybiIsImpvaW4iLCJhdHRycyIsImZpbmRFbGVtZW50IiwiYXJncyIsIl9maW5kIiwiZmluZEVsZW1lbnRzIiwibXVsdGlwbGUiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwibmV3U2VsZWN0b3IiLCJ0cmFuc2Zvcm1RdWVyeSIsImVycm9ycyIsIk5vU3VjaEVsZW1lbnRFcnJvciIsInJlcGxhY2UiLCJpbmZvIiwiZmluZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsdWdpbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jYXNlLWRlY2xhcmF0aW9ucyAqL1xuXG5pbXBvcnQgQmFzZVBsdWdpbiBmcm9tICdhcHBpdW0vcGx1Z2luJztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7dHJhbnNmb3JtU291cmNlWG1sfSBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQge3RyYW5zZm9ybVF1ZXJ5fSBmcm9tICcuL3hwYXRoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVbml2ZXJzYWxYTUxQbHVnaW4gZXh0ZW5kcyBCYXNlUGx1Z2luIHtcbiAgY29tbWFuZHMgPSBbXG4gICAgJ2dldFBhZ2VTb3VyY2UnLFxuICAgICdmaW5kRWxlbWVudCcsXG4gICAgJ2ZpbmRFbGVtZW50cycsXG4gICAgJ2ZpbmRFbGVtZW50RnJvbUVsZW1lbnQnLFxuICAgICdmaW5kRWxlbWVudHNGcm9tRWxlbWVudCcsXG4gIF07XG5cbiAgYXN5bmMgZ2V0UGFnZVNvdXJjZShuZXh0LCBkcml2ZXIsIHNlc3NJZCwgYWRkSW5kZXhQYXRoID0gZmFsc2UpIHtcbiAgICBjb25zdCBzb3VyY2UgPSBuZXh0ID8gYXdhaXQgbmV4dCgpIDogYXdhaXQgZHJpdmVyLmdldFBhZ2VTb3VyY2UoKTtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHt9O1xuICAgIGNvbnN0IHtwbGF0Zm9ybU5hbWV9ID0gZHJpdmVyLmNhcHM7XG4gICAgaWYgKHBsYXRmb3JtTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYW5kcm9pZCcpIHtcbiAgICAgIG1ldGFkYXRhLmFwcFBhY2thZ2UgPSBkcml2ZXIub3B0cy5hcHBQYWNrYWdlO1xuICAgIH1cbiAgICBjb25zdCB7eG1sLCB1bmtub3duc30gPSB0cmFuc2Zvcm1Tb3VyY2VYbWwoc291cmNlLCBwbGF0Zm9ybU5hbWUudG9Mb3dlckNhc2UoKSwge1xuICAgICAgbWV0YWRhdGEsXG4gICAgICBhZGRJbmRleFBhdGgsXG4gICAgfSk7XG4gICAgaWYgKHVua25vd25zLm5vZGVzLmxlbmd0aCkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgWE1MIG1hcHBlciBmb3VuZCAke3Vua25vd25zLm5vZGVzLmxlbmd0aH0gbm9kZShzKSAvIGAgK1xuICAgICAgICAgIGB0YWcgbmFtZShzKSB0aGF0IGl0IGRpZG4ndCBrbm93IGFib3V0LiBUaGVzZSBzaG91bGQgYmUgYCArXG4gICAgICAgICAgYHJlcG9ydGVkIHRvIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgdGhlIHBsdWdpbjogYCArXG4gICAgICAgICAgdW5rbm93bnMubm9kZXMuam9pbignLCAnKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVua25vd25zLmF0dHJzLmxlbmd0aCkge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBUaGUgWE1MIG1hcHBlciBmb3VuZCAke3Vua25vd25zLmF0dHJzLmxlbmd0aH0gYXR0cmlidXRlcyBgICtcbiAgICAgICAgICBgdGhhdCBpdCBkaWRuJ3Qga25vdyBhYm91dC4gVGhlc2Ugc2hvdWxkIGJlIHJlcG9ydGVkIHRvIGAgK1xuICAgICAgICAgIGBpbXByb3ZlIHRoZSBxdWFsaXR5IG9mIHRoZSBwbHVnaW46IGAgK1xuICAgICAgICAgIHVua25vd25zLmF0dHJzLmpvaW4oJywgJylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB4bWw7XG4gIH1cblxuICBhc3luYyBmaW5kRWxlbWVudCguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2ZpbmQoZmFsc2UsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZEVsZW1lbnRzKC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fZmluZCh0cnVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIF9maW5kKG11bHRpcGxlLCBuZXh0LCBkcml2ZXIsIHN0cmF0ZWd5LCBzZWxlY3Rvcikge1xuICAgIGNvbnN0IHtwbGF0Zm9ybU5hbWV9ID0gZHJpdmVyLmNhcHM7XG4gICAgaWYgKHN0cmF0ZWd5LnRvTG93ZXJDYXNlKCkgIT09ICd4cGF0aCcpIHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXh0KCk7XG4gICAgfVxuICAgIGNvbnN0IHhtbCA9IGF3YWl0IHRoaXMuZ2V0UGFnZVNvdXJjZShudWxsLCBkcml2ZXIsIG51bGwsIHRydWUpO1xuICAgIGxldCBuZXdTZWxlY3RvciA9IHRyYW5zZm9ybVF1ZXJ5KHNlbGVjdG9yLCB4bWwsIG11bHRpcGxlKTtcblxuICAgIC8vIGlmIHRoZSBzZWxlY3RvciB3YXMgbm90IGFibGUgdG8gYmUgdHJhbnNmb3JtZWQsIHRoYXQgbWVhbnMgbm8gZWxlbWVudHMgd2VyZSBmb3VuZCB0aGF0XG4gICAgLy8gbWF0Y2hlZCwgc28gZG8gdGhlIGFwcHJvcHJpYXRlIHRoaW5nIGJhc2VkIG9uIGVsZW1lbnQgdnMgZWxlbWVudHNcbiAgICBpZiAobmV3U2VsZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgU2VsZWN0b3Igd2FzIG5vdCBhYmxlIHRvIGJlIHRyYW5zbGF0ZWQgdG8gdW5kZXJseWluZyBYTUwuIEVpdGhlciB0aGUgcmVxdWVzdGVkIGAgK1xuICAgICAgICAgIGBlbGVtZW50IGRvZXMgbm90IGV4aXN0IG9yIHRoZXJlIHdhcyBhbiBlcnJvciBpbiB0cmFuc2xhdGlvbmBcbiAgICAgICk7XG4gICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hFbGVtZW50RXJyb3IoKTtcbiAgICB9XG5cbiAgICBpZiAocGxhdGZvcm1OYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpb3MnKSB7XG4gICAgICAvLyB3aXRoIHRoZSBYQ1VJVGVzdCBkcml2ZXIsIHRoZSA8QXBwaXVtQVVUPiB3cmFwcGVyIGVsZW1lbnQgaXMgcHJlc2VudCBpbiB0aGUgc291cmNlIGJ1dCBpc1xuICAgICAgLy8gbm90IHByZXNlbnQgaW4gdGhlIHNvdXJjZSBjb25zaWRlcmVkIGJ5IFdEQSwgc28gb3VyIGluZGV4IHBhdGggYmFzZWQgeHBhdGggcXVlcmllcyB3aWxsXG4gICAgICAvLyBub3Qgd29yayB3aXRoIFdEQSBhcy1pcy4gV2UgbmVlZCB0byByZW1vdmUgdGhlIGZpcnN0IHBhdGggc2VnbWVudC5cbiAgICAgIG5ld1NlbGVjdG9yID0gbmV3U2VsZWN0b3IucmVwbGFjZSgvXlxcL1xcKlxcWzFcXF0vLCAnJyk7XG4gICAgfVxuICAgIGxvZy5pbmZvKGBTZWxlY3RvciB3YXMgdHJhbnNsYXRlZCB0bzogJHtuZXdTZWxlY3Rvcn1gKTtcblxuICAgIC8vIG90aGVyd2lzZSBqdXN0IHJ1biB0aGUgdHJhbnNmb3JtZWQgcXVlcnkhXG4gICAgY29uc3QgZmluZGVyID0gbXVsdGlwbGUgPyAnZmluZEVsZW1lbnRzJyA6ICdmaW5kRWxlbWVudCc7XG4gICAgcmV0dXJuIGF3YWl0IGRyaXZlcltmaW5kZXJdKHN0cmF0ZWd5LCBuZXdTZWxlY3Rvcik7XG4gIH1cbn1cblxuZXhwb3J0IHtVbml2ZXJzYWxYTUxQbHVnaW59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVlLE1BQU1BLGtCQUFOLFNBQWlDQyxlQUFqQyxDQUE0QztFQUN6REMsUUFBUSxHQUFHLENBQ1QsZUFEUyxFQUVULGFBRlMsRUFHVCxjQUhTLEVBSVQsd0JBSlMsRUFLVCx5QkFMUyxDQUFIOztFQVFXLE1BQWJDLGFBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxNQUFQLEVBQWVDLE1BQWYsRUFBdUJDLFlBQVksR0FBRyxLQUF0QyxFQUE2QztJQUM5RCxNQUFNQyxNQUFNLEdBQUdKLElBQUksR0FBRyxNQUFNQSxJQUFJLEVBQWIsR0FBa0IsTUFBTUMsTUFBTSxDQUFDRixhQUFQLEVBQTNDO0lBQ0EsTUFBTU0sUUFBUSxHQUFHLEVBQWpCO0lBQ0EsTUFBTTtNQUFDQztJQUFELElBQWlCTCxNQUFNLENBQUNNLElBQTlCOztJQUNBLElBQUlELFlBQVksQ0FBQ0UsV0FBYixPQUErQixTQUFuQyxFQUE4QztNQUM1Q0gsUUFBUSxDQUFDSSxVQUFULEdBQXNCUixNQUFNLENBQUNTLElBQVAsQ0FBWUQsVUFBbEM7SUFDRDs7SUFDRCxNQUFNO01BQUNFLEdBQUQ7TUFBTUM7SUFBTixJQUFrQixJQUFBQywwQkFBQSxFQUFtQlQsTUFBbkIsRUFBMkJFLFlBQVksQ0FBQ0UsV0FBYixFQUEzQixFQUF1RDtNQUM3RUgsUUFENkU7TUFFN0VGO0lBRjZFLENBQXZELENBQXhCOztJQUlBLElBQUlTLFFBQVEsQ0FBQ0UsS0FBVCxDQUFlQyxNQUFuQixFQUEyQjtNQUN6QkMsZUFBQSxDQUFJQyxJQUFKLENBQ0csd0JBQXVCTCxRQUFRLENBQUNFLEtBQVQsQ0FBZUMsTUFBTyxhQUE5QyxHQUNHLHlEQURILEdBRUcsaURBRkgsR0FHRUgsUUFBUSxDQUFDRSxLQUFULENBQWVJLElBQWYsQ0FBb0IsSUFBcEIsQ0FKSjtJQU1EOztJQUNELElBQUlOLFFBQVEsQ0FBQ08sS0FBVCxDQUFlSixNQUFuQixFQUEyQjtNQUN6QkMsZUFBQSxDQUFJQyxJQUFKLENBQ0csd0JBQXVCTCxRQUFRLENBQUNPLEtBQVQsQ0FBZUosTUFBTyxjQUE5QyxHQUNHLHlEQURILEdBRUcscUNBRkgsR0FHRUgsUUFBUSxDQUFDTyxLQUFULENBQWVELElBQWYsQ0FBb0IsSUFBcEIsQ0FKSjtJQU1EOztJQUNELE9BQU9QLEdBQVA7RUFDRDs7RUFFZ0IsTUFBWFMsV0FBVyxDQUFDLEdBQUdDLElBQUosRUFBVTtJQUN6QixPQUFPLE1BQU0sS0FBS0MsS0FBTCxDQUFXLEtBQVgsRUFBa0IsR0FBR0QsSUFBckIsQ0FBYjtFQUNEOztFQUVpQixNQUFaRSxZQUFZLENBQUMsR0FBR0YsSUFBSixFQUFVO0lBQzFCLE9BQU8sTUFBTSxLQUFLQyxLQUFMLENBQVcsSUFBWCxFQUFpQixHQUFHRCxJQUFwQixDQUFiO0VBQ0Q7O0VBRVUsTUFBTEMsS0FBSyxDQUFDRSxRQUFELEVBQVd4QixJQUFYLEVBQWlCQyxNQUFqQixFQUF5QndCLFFBQXpCLEVBQW1DQyxRQUFuQyxFQUE2QztJQUN0RCxNQUFNO01BQUNwQjtJQUFELElBQWlCTCxNQUFNLENBQUNNLElBQTlCOztJQUNBLElBQUlrQixRQUFRLENBQUNqQixXQUFULE9BQTJCLE9BQS9CLEVBQXdDO01BQ3RDLE9BQU8sTUFBTVIsSUFBSSxFQUFqQjtJQUNEOztJQUNELE1BQU1XLEdBQUcsR0FBRyxNQUFNLEtBQUtaLGFBQUwsQ0FBbUIsSUFBbkIsRUFBeUJFLE1BQXpCLEVBQWlDLElBQWpDLEVBQXVDLElBQXZDLENBQWxCO0lBQ0EsSUFBSTBCLFdBQVcsR0FBRyxJQUFBQyxxQkFBQSxFQUFlRixRQUFmLEVBQXlCZixHQUF6QixFQUE4QmEsUUFBOUIsQ0FBbEI7O0lBSUEsSUFBSUcsV0FBVyxLQUFLLElBQXBCLEVBQTBCO01BQ3hCWCxlQUFBLENBQUlDLElBQUosQ0FDRyxpRkFBRCxHQUNHLDZEQUZMOztNQUlBLElBQUlPLFFBQUosRUFBYztRQUNaLE9BQU8sRUFBUDtNQUNEOztNQUNELE1BQU0sSUFBSUssY0FBQSxDQUFPQyxrQkFBWCxFQUFOO0lBQ0Q7O0lBRUQsSUFBSXhCLFlBQVksQ0FBQ0UsV0FBYixPQUErQixLQUFuQyxFQUEwQztNQUl4Q21CLFdBQVcsR0FBR0EsV0FBVyxDQUFDSSxPQUFaLENBQW9CLFlBQXBCLEVBQWtDLEVBQWxDLENBQWQ7SUFDRDs7SUFDRGYsZUFBQSxDQUFJZ0IsSUFBSixDQUFVLCtCQUE4QkwsV0FBWSxFQUFwRDs7SUFHQSxNQUFNTSxNQUFNLEdBQUdULFFBQVEsR0FBRyxjQUFILEdBQW9CLGFBQTNDO0lBQ0EsT0FBTyxNQUFNdkIsTUFBTSxDQUFDZ0MsTUFBRCxDQUFOLENBQWVSLFFBQWYsRUFBeUJFLFdBQXpCLENBQWI7RUFDRDs7QUEvRXdEIn0=
@@ -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"}