system-testing 1.0.111 → 1.0.114
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/browser-command-runner.js +29 -1
- package/build/browser.d.ts +12 -0
- package/build/browser.js +20 -7
- package/build/cli-helpers.js +39 -1
- package/build/cli.js +2 -1
- package/build/drivers/appium-driver.d.ts +29 -3
- package/build/drivers/appium-driver.js +182 -22
- package/build/drivers/webdriver-driver.d.ts +49 -2
- package/build/drivers/webdriver-driver.js +84 -5
- package/build/system-test.d.ts +18 -2
- package/build/system-test.js +30 -2
- package/package.json +2 -2
package/build/cli-helpers.js
CHANGED
|
@@ -63,6 +63,41 @@ function resolveCliTimeout(timeoutFlag) {
|
|
|
63
63
|
}
|
|
64
64
|
throw new Error(`Invalid timeout flag: ${timeoutFlag}`);
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* @param {any} numberFlag
|
|
68
|
+
* @param {string} flagName
|
|
69
|
+
* @returns {number | undefined}
|
|
70
|
+
*/
|
|
71
|
+
function resolveCliNumber(numberFlag, flagName) {
|
|
72
|
+
if (numberFlag === undefined)
|
|
73
|
+
return undefined;
|
|
74
|
+
const numberValue = Number(numberFlag);
|
|
75
|
+
if (Number.isNaN(numberValue)) {
|
|
76
|
+
throw new Error(`Invalid ${flagName} flag: ${numberFlag}`);
|
|
77
|
+
}
|
|
78
|
+
return numberValue;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @param {Record<string, any>} flags
|
|
82
|
+
* @param {Record<string, any>} args
|
|
83
|
+
* @returns {void}
|
|
84
|
+
*/
|
|
85
|
+
function applyPointerFlags(flags, args) {
|
|
86
|
+
const clickOffsetX = resolveCliNumber(flags["click-offset-x"], "click-offset-x");
|
|
87
|
+
const clickOffsetY = resolveCliNumber(flags["click-offset-y"], "click-offset-y");
|
|
88
|
+
const humanStepDelay = resolveCliNumber(flags["human-step-delay"], "human-step-delay");
|
|
89
|
+
const humanSteps = resolveCliNumber(flags["human-steps"], "human-steps");
|
|
90
|
+
if (flags.method !== undefined)
|
|
91
|
+
args.method = flags.method;
|
|
92
|
+
if (clickOffsetX !== undefined)
|
|
93
|
+
args.clickOffsetX = clickOffsetX;
|
|
94
|
+
if (clickOffsetY !== undefined)
|
|
95
|
+
args.clickOffsetY = clickOffsetY;
|
|
96
|
+
if (humanStepDelay !== undefined)
|
|
97
|
+
args.humanStepDelay = humanStepDelay;
|
|
98
|
+
if (humanSteps !== undefined)
|
|
99
|
+
args.humanSteps = humanSteps;
|
|
100
|
+
}
|
|
66
101
|
/**
|
|
67
102
|
* @param {Record<string, any>} flags
|
|
68
103
|
* @returns {{command: string, args: Record<string, any>}}
|
|
@@ -125,6 +160,7 @@ export function resolveBrowserCommand(flags) {
|
|
|
125
160
|
useBaseSelector: flags["use-base-selector"],
|
|
126
161
|
visible: flags.visible
|
|
127
162
|
};
|
|
163
|
+
applyPointerFlags(flags, args);
|
|
128
164
|
if (flags["scroll-to"] !== undefined) {
|
|
129
165
|
args.scrollTo = flags["scroll-to"];
|
|
130
166
|
}
|
|
@@ -182,6 +218,8 @@ export function resolveBrowserCommand(flags) {
|
|
|
182
218
|
args.methodName = flags.method;
|
|
183
219
|
if (flags.arg)
|
|
184
220
|
args.args = Array.isArray(flags.arg) ? flags.arg : [flags.arg];
|
|
221
|
+
if (flags.command !== "interact")
|
|
222
|
+
applyPointerFlags(flags, args);
|
|
185
223
|
if (flags["with-fallback"] !== undefined)
|
|
186
224
|
args.withFallback = flags["with-fallback"];
|
|
187
225
|
if (timeout !== undefined)
|
|
@@ -217,4 +255,4 @@ export function resolveBrowserCommand(flags) {
|
|
|
217
255
|
}
|
|
218
256
|
throw new Error("No browser command was given");
|
|
219
257
|
}
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWhlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFJO0lBQzVCLHdEQUF3RDtJQUN4RCxNQUFNLE1BQU0sR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFBO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3RFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUN6QixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLENBQUMsQ0FBQTtJQUVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXpCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFB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QUMsZUFBZSxDQUFDO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDaEUsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDMUQsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzlFLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDdEYsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzlFLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUV4RSxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmd2XG4gKiBAcmV0dXJucyB7e186IHN0cmluZ1tdLCBmbGFnczogUmVjb3JkPHN0cmluZywgYW55Pn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFyZ3YoYXJndikge1xuICAvKiogQHR5cGUge3tfOiBzdHJpbmdbXSwgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT59fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XzogW10sIGZsYWdzOiB7fX1cbiAgY29uc3Qgc2V0RmxhZyA9ICgvKiogQHR5cGUge3N0cmluZ30gKi8ga2V5LCAvKiogQHR5cGUge2FueX0gKi8gdmFsdWUpID0+IHtcbiAgICBpZiAoIShrZXkgaW4gcmVzdWx0LmZsYWdzKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSB2YWx1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3VsdC5mbGFnc1trZXldKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSBbcmVzdWx0LmZsYWdzW2tleV1dXG4gICAgfVxuXG4gICAgcmVzdWx0LmZsYWdzW2tleV0ucHVzaCh2YWx1ZSlcbiAgfVxuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcmd2Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHZhbHVlID0gYXJndltpbmRleF1cblxuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICByZXN1bHQuXy5wdXNoKHZhbHVlKVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBmbGFnID0gdmFsdWUuc2xpY2UoMilcblxuICAgIGlmIChmbGFnLmluY2x1ZGVzKFwiPVwiKSkge1xuICAgICAgY29uc3QgW2tleSwgLi4ucmVzdF0gPSBmbGFnLnNwbGl0KFwiPVwiKVxuXG4gICAgICBzZXRGbGFnKGtleSwgcmVzdC5qb2luKFwiPVwiKSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gYXJndltpbmRleCArIDFdXG5cbiAgICBpZiAobmV4dFZhbHVlICYmICFuZXh0VmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICBzZXRGbGFnKGZsYWcsIG5leHRWYWx1ZSlcbiAgICAgIGluZGV4ICs9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RmxhZyhmbGFnLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBDTEkgdGltZW91dCBmbGFnIGludG8gbWlsbGlzZWNvbmRzLlxuICogQmFyZSBudW1lcmljIHZhbHVlcyBhcmUgdHJlYXRlZCBhcyBzZWNvbmRzIGZvciBDTEkgZXJnb25vbWljcy5cbiAqIEBwYXJhbSB7YW55fSB0aW1lb3V0RmxhZ1xuICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNsaVRpbWVvdXQodGltZW91dEZsYWcpIHtcbiAgaWYgKHRpbWVvdXRGbGFnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWVvdXRGbGFnID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHRpbWVvdXRGbGFnICogMTAwMFxuICB9XG5cbiAgY29uc3QgdGltZW91dFN0cmluZyA9IFN0cmluZyh0aW1lb3V0RmxhZykudHJpbSgpXG5cbiAgaWYgKC9eXFxkKyhcXC5cXGQrKT9tcyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0yKSlcbiAgfVxuXG4gIGlmICgvXlxcZCsoXFwuXFxkKyk/cyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0xKSkgKiAxMDAwXG4gIH1cblxuICBpZiAoL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGltZW91dFN0cmluZykpIHtcbiAgICByZXR1cm4gTnVtYmVyKHRpbWVvdXRTdHJpbmcpICogMTAwMFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVvdXQgZmxhZzogJHt0aW1lb3V0RmxhZ31gKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZmxhZ3NcbiAqIEByZXR1cm5zIHt7Y29tbWFuZDogc3RyaW5nLCBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCcm93c2VyQ29tbWFuZChmbGFncykge1xuICBjb25zdCB0aW1lb3V0ID0gcmVzb2x2ZUNsaVRpbWVvdXQoZmxhZ3MudGltZW91dClcblxuICBpZiAoZmxhZ3MudmlzaXQpIHtcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gICAgY29uc3QgYXJncyA9IHt1cmw6IGZsYWdzLnZpc2l0fVxuXG4gICAgaWYgKHRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy50aW1lb3V0ID0gdGltZW91dFxuICAgIH1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogXCJ2aXNpdFwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZGlzbWlzcy10b1wiXSkge1xuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgICBjb25zdCBhcmdzID0ge3BhdGg6IGZsYWdzW1wiZGlzbWlzcy10b1wiXX1cblxuICAgIGlmICh0aW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFyZ3MudGltZW91dCA9IHRpbWVvdXRcbiAgICB9XG5cbiAgICByZXR1cm4ge2FyZ3MsIGNvbW1hbmQ6IFwiZGlzbWlzc1RvXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJmaW5kLWJ5LXRlc3QtaWRcIl0pIHtcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gICAgY29uc3QgYXJncyA9IHtcbiAgICAgIHRlc3RJRDogZmxhZ3NbXCJmaW5kLWJ5LXRlc3QtaWRcIl0sXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZEJ5VGVzdElEXCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3MuZmluZCkge1xuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgICBjb25zdCBhcmdzID0ge1xuICAgICAgc2VsZWN0b3I6IGZsYWdzLmZpbmQsXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZFwiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzLmNsaWNrKSB7XG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICBzZWxlY3RvcjogZmxhZ3MuY2xpY2ssXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiY2xpY2tcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFnc1tcIndhaXQtZm9yLW5vLXNlbGVjdG9yXCJdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzW1wid2FpdC1mb3Itbm8tc2VsZWN0b3JcIl0sXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwid2FpdEZvck5vU2VsZWN0b3JcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImV4cGVjdC1uby1lbGVtZW50XCJdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzW1wiZXhwZWN0LW5vLWVsZW1lbnRcIl0sXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwiZXhwZWN0Tm9FbGVtZW50XCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJzZXQtYmFzZS1zZWxlY3RvclwiXSkge1xuICAgIHJldHVybiB7YXJnczoge3NlbGVjdG9yOiBmbGFnc1tcInNldC1iYXNlLXNlbGVjdG9yXCJdfSwgY29tbWFuZDogXCJzZXRCYXNlU2VsZWN0b3JcIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImdldC1odG1sXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRIVE1MXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJnZXQtYnJvd3Nlci1sb2dzXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRCcm93c2VyTG9nc1wifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZ2V0LWN1cnJlbnQtdXJsXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRDdXJyZW50VXJsXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJ0YWtlLXNjcmVlbnNob3RcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHt9LCBjb21tYW5kOiBcInRha2VTY3JlZW5zaG90XCJ9XG4gIH1cblxuICBpZiAoZmxhZ3MuY29tbWFuZCkge1xuICAgIGNvbnN0IGFyZ3MgPSB7fVxuXG4gICAgaWYgKGZsYWdzLnVybCkgYXJncy51cmwgPSBmbGFncy51cmxcbiAgICBpZiAoZmxhZ3MucGF0aCkgYXJncy5wYXRoID0gZmxhZ3MucGF0aFxuICAgIGlmIChmbGFncy5zZWxlY3RvcikgYXJncy5zZWxlY3RvciA9IGZsYWdzLnNlbGVjdG9yXG4gICAgaWYgKGZsYWdzW1widGVzdC1pZFwiXSkgYXJncy50ZXN0SUQgPSBmbGFnc1tcInRlc3QtaWRcIl1cbiAgICBpZiAoZmxhZ3MubWV0aG9kKSBhcmdzLm1ldGhvZE5hbWUgPSBmbGFncy5tZXRob2RcbiAgICBpZiAoZmxhZ3MuYXJnKSBhcmdzLmFyZ3MgPSBBcnJheS5pc0FycmF5KGZsYWdzLmFyZykgPyBmbGFncy5hcmcgOiBbZmxhZ3MuYXJnXVxuICAgIGlmIChmbGFnc1tcIndpdGgtZmFsbGJhY2tcIl0gIT09IHVuZGVmaW5lZCkgYXJncy53aXRoRmFsbGJhY2sgPSBmbGFnc1tcIndpdGgtZmFsbGJhY2tcIl1cbiAgICBpZiAodGltZW91dCAhPT0gdW5kZWZpbmVkKSBhcmdzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgaWYgKGZsYWdzW1wic2Nyb2xsLXRvXCJdICE9PSB1bmRlZmluZWQpIGFyZ3Muc2Nyb2xsVG8gPSBmbGFnc1tcInNjcm9sbC10b1wiXVxuICAgIGlmIChmbGFncy52aXNpYmxlICE9PSB1bmRlZmluZWQpIGFyZ3MudmlzaWJsZSA9IGZsYWdzLnZpc2libGVcbiAgICBpZiAoZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLnVzZUJhc2VTZWxlY3RvciA9IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl1cbiAgICBpZiAoZmxhZ3Muc2NyaXB0KSBhcmdzLnNjcmlwdCA9IGZsYWdzLnNjcmlwdFxuICAgIC8vIENvb2tpZSBmbGFncyB1c2UgYSBgY29va2llLWAgcHJlZml4IHNvIHRoZSBjb29raWUgbmFtZSBkb2VzIG5vdFxuICAgIC8vIGNvbGxpZGUgd2l0aCB0aGUgZGFlbW9uLWxldmVsIGAtLW5hbWUgPG15LWJyb3dzZXI+YCBmbGFnIHRoZSBDTElcbiAgICAvLyBhbHJlYWR5IGNvbnN1bWVzIGZvciByb3V0aW5nLlxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1uYW1lXCJdKSBhcmdzLm5hbWUgPSBmbGFnc1tcImNvb2tpZS1uYW1lXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLXZhbHVlXCJdICE9PSB1bmRlZmluZWQpIGFyZ3MudmFsdWUgPSBmbGFnc1tcImNvb2tpZS12YWx1ZVwiXVxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1kb21haW5cIl0pIGFyZ3MuZG9tYWluID0gZmxhZ3NbXCJjb29raWUtZG9tYWluXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLXBhdGhcIl0pIGFyZ3MucGF0aCA9IGZsYWdzW1wiY29va2llLXBhdGhcIl1cbiAgICBpZiAoZmxhZ3NbXCJjb29raWUtc2VjdXJlXCJdICE9PSB1bmRlZmluZWQpIGFyZ3Muc2VjdXJlID0gZmxhZ3NbXCJjb29raWUtc2VjdXJlXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLWh0dHAtb25seVwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLmh0dHBPbmx5ID0gZmxhZ3NbXCJjb29raWUtaHR0cC1vbmx5XCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLWV4cGlyeVwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLmV4cGlyeSA9IGZsYWdzW1wiY29va2llLWV4cGlyeVwiXVxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1zYW1lLXNpdGVcIl0pIGFyZ3Muc2FtZVNpdGUgPSBmbGFnc1tcImNvb2tpZS1zYW1lLXNpdGVcIl1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogZmxhZ3MuY29tbWFuZH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcIk5vIGJyb3dzZXIgY29tbWFuZCB3YXMgZ2l2ZW5cIilcbn1cbiJdfQ==
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLWhlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFJO0lBQzVCLHdEQUF3RDtJQUN4RCxNQUFNLE1BQU0sR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFBO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3RFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtZQUN6QixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLENBQUMsQ0FBQTtJQUVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXpCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEIsU0FBUTtRQUNWLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTNCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBRXRDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzVCLFNBQVE7UUFDVixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUVqQyxJQUFJLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1lBQ3hCLEtBQUssSUFBSSxDQUFDLENBQUE7UUFDWixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsaUJBQWlCLENBQUMsV0FBVztJQUNwQyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QixPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxPQUFPLFdBQVcsR0FBRyxJQUFJLENBQUE7SUFDM0IsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUVoRCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBQ2xELENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUE7SUFDckMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLFdBQVcsRUFBRSxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRO0lBQzVDLElBQUksVUFBVSxLQUFLLFNBQVM7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFdEMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFFBQVEsVUFBVSxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQTtBQUNwQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUk7SUFDcEMsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNoRixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ2hGLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDdEYsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBRXhFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFBO0lBQzFELElBQUksWUFBWSxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNoRSxJQUFJLFlBQVksS0FBSyxTQUFTO1FBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7SUFDaEUsSUFBSSxjQUFjLEtBQUssU0FBUztRQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO0lBQ3RFLElBQUksVUFBVSxLQUFLLFNBQVM7UUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtBQUM1RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQUs7SUFDekMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRWhELElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLGtDQUFrQztRQUNsQyxNQUFNLElBQUksR0FBRyxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFDLENBQUE7UUFFL0IsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDeEIsQ0FBQztRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3hCLGtDQUFrQztRQUNsQyxNQUFNLElBQUksR0FBRyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQTtRQUV4QyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN4QixDQUFDO1FBRUQsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUM3QixrQ0FBa0M7UUFDbEMsTUFBTSxJQUFJLEdBQUc7WUFDWCxNQUFNLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBQ2hDLE9BQU87WUFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1lBQzNDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDcEMsQ0FBQztRQUVELE9BQU87WUFDTCxJQUFJO1lBQ0osT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNmLGtDQUFrQztRQUNsQyxNQUFNLElBQUksR0FBRztZQUNYLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNwQixPQUFPO1lBQ1AsZUFBZSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUMzQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQTtRQUVELElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSTtZQUNKLE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsa0NBQWtDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHO1lBQ1gsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ3JCLE9BQU87WUFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1lBQzNDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFBO1FBQ0QsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBRTlCLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSTtZQUNKLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTCxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdkMsT0FBTztnQkFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2FBQzVDO1lBQ0QsT0FBTyxFQUFFLG1CQUFtQjtTQUM3QixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3BDLE9BQU87Z0JBQ1AsZUFBZSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzthQUM1QztZQUNELE9BQU8sRUFBRSxpQkFBaUI7U0FDM0IsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUVmLElBQUksS0FBSyxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUE7UUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO1FBQ2xELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BELElBQUksS0FBSyxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDaEQsSUFBSSxLQUFLLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzdFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxVQUFVO1lBQUUsaUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2hFLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNwRixJQUFJLE9BQU8sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDakQsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3hFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFBO1FBQzdELElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDL0YsSUFBSSxLQUFLLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtRQUM1QyxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLGdDQUFnQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxRCxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0UsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDaEUsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDMUQsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzlFLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDdEYsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQzlFLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUV4RSxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmd2XG4gKiBAcmV0dXJucyB7e186IHN0cmluZ1tdLCBmbGFnczogUmVjb3JkPHN0cmluZywgYW55Pn19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUFyZ3YoYXJndikge1xuICAvKiogQHR5cGUge3tfOiBzdHJpbmdbXSwgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGFueT59fSAqL1xuICBjb25zdCByZXN1bHQgPSB7XzogW10sIGZsYWdzOiB7fX1cbiAgY29uc3Qgc2V0RmxhZyA9ICgvKiogQHR5cGUge3N0cmluZ30gKi8ga2V5LCAvKiogQHR5cGUge2FueX0gKi8gdmFsdWUpID0+IHtcbiAgICBpZiAoIShrZXkgaW4gcmVzdWx0LmZsYWdzKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSB2YWx1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3VsdC5mbGFnc1trZXldKSkge1xuICAgICAgcmVzdWx0LmZsYWdzW2tleV0gPSBbcmVzdWx0LmZsYWdzW2tleV1dXG4gICAgfVxuXG4gICAgcmVzdWx0LmZsYWdzW2tleV0ucHVzaCh2YWx1ZSlcbiAgfVxuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcmd2Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHZhbHVlID0gYXJndltpbmRleF1cblxuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICByZXN1bHQuXy5wdXNoKHZhbHVlKVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBmbGFnID0gdmFsdWUuc2xpY2UoMilcblxuICAgIGlmIChmbGFnLmluY2x1ZGVzKFwiPVwiKSkge1xuICAgICAgY29uc3QgW2tleSwgLi4ucmVzdF0gPSBmbGFnLnNwbGl0KFwiPVwiKVxuXG4gICAgICBzZXRGbGFnKGtleSwgcmVzdC5qb2luKFwiPVwiKSlcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFZhbHVlID0gYXJndltpbmRleCArIDFdXG5cbiAgICBpZiAobmV4dFZhbHVlICYmICFuZXh0VmFsdWUuc3RhcnRzV2l0aChcIi0tXCIpKSB7XG4gICAgICBzZXRGbGFnKGZsYWcsIG5leHRWYWx1ZSlcbiAgICAgIGluZGV4ICs9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RmxhZyhmbGFnLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBDTEkgdGltZW91dCBmbGFnIGludG8gbWlsbGlzZWNvbmRzLlxuICogQmFyZSBudW1lcmljIHZhbHVlcyBhcmUgdHJlYXRlZCBhcyBzZWNvbmRzIGZvciBDTEkgZXJnb25vbWljcy5cbiAqIEBwYXJhbSB7YW55fSB0aW1lb3V0RmxhZ1xuICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUNsaVRpbWVvdXQodGltZW91dEZsYWcpIHtcbiAgaWYgKHRpbWVvdXRGbGFnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWVvdXRGbGFnID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHRpbWVvdXRGbGFnICogMTAwMFxuICB9XG5cbiAgY29uc3QgdGltZW91dFN0cmluZyA9IFN0cmluZyh0aW1lb3V0RmxhZykudHJpbSgpXG5cbiAgaWYgKC9eXFxkKyhcXC5cXGQrKT9tcyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0yKSlcbiAgfVxuXG4gIGlmICgvXlxcZCsoXFwuXFxkKyk/cyQvaS50ZXN0KHRpbWVvdXRTdHJpbmcpKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aW1lb3V0U3RyaW5nLnNsaWNlKDAsIC0xKSkgKiAxMDAwXG4gIH1cblxuICBpZiAoL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGltZW91dFN0cmluZykpIHtcbiAgICByZXR1cm4gTnVtYmVyKHRpbWVvdXRTdHJpbmcpICogMTAwMFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVvdXQgZmxhZzogJHt0aW1lb3V0RmxhZ31gKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBudW1iZXJGbGFnXG4gKiBAcGFyYW0ge3N0cmluZ30gZmxhZ05hbWVcbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVDbGlOdW1iZXIobnVtYmVyRmxhZywgZmxhZ05hbWUpIHtcbiAgaWYgKG51bWJlckZsYWcgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBudW1iZXJWYWx1ZSA9IE51bWJlcihudW1iZXJGbGFnKVxuXG4gIGlmIChOdW1iZXIuaXNOYU4obnVtYmVyVmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZmxhZ05hbWV9IGZsYWc6ICR7bnVtYmVyRmxhZ31gKVxuICB9XG5cbiAgcmV0dXJuIG51bWJlclZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBmbGFnc1xuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gYXBwbHlQb2ludGVyRmxhZ3MoZmxhZ3MsIGFyZ3MpIHtcbiAgY29uc3QgY2xpY2tPZmZzZXRYID0gcmVzb2x2ZUNsaU51bWJlcihmbGFnc1tcImNsaWNrLW9mZnNldC14XCJdLCBcImNsaWNrLW9mZnNldC14XCIpXG4gIGNvbnN0IGNsaWNrT2Zmc2V0WSA9IHJlc29sdmVDbGlOdW1iZXIoZmxhZ3NbXCJjbGljay1vZmZzZXQteVwiXSwgXCJjbGljay1vZmZzZXQteVwiKVxuICBjb25zdCBodW1hblN0ZXBEZWxheSA9IHJlc29sdmVDbGlOdW1iZXIoZmxhZ3NbXCJodW1hbi1zdGVwLWRlbGF5XCJdLCBcImh1bWFuLXN0ZXAtZGVsYXlcIilcbiAgY29uc3QgaHVtYW5TdGVwcyA9IHJlc29sdmVDbGlOdW1iZXIoZmxhZ3NbXCJodW1hbi1zdGVwc1wiXSwgXCJodW1hbi1zdGVwc1wiKVxuXG4gIGlmIChmbGFncy5tZXRob2QgIT09IHVuZGVmaW5lZCkgYXJncy5tZXRob2QgPSBmbGFncy5tZXRob2RcbiAgaWYgKGNsaWNrT2Zmc2V0WCAhPT0gdW5kZWZpbmVkKSBhcmdzLmNsaWNrT2Zmc2V0WCA9IGNsaWNrT2Zmc2V0WFxuICBpZiAoY2xpY2tPZmZzZXRZICE9PSB1bmRlZmluZWQpIGFyZ3MuY2xpY2tPZmZzZXRZID0gY2xpY2tPZmZzZXRZXG4gIGlmIChodW1hblN0ZXBEZWxheSAhPT0gdW5kZWZpbmVkKSBhcmdzLmh1bWFuU3RlcERlbGF5ID0gaHVtYW5TdGVwRGVsYXlcbiAgaWYgKGh1bWFuU3RlcHMgIT09IHVuZGVmaW5lZCkgYXJncy5odW1hblN0ZXBzID0gaHVtYW5TdGVwc1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZmxhZ3NcbiAqIEByZXR1cm5zIHt7Y29tbWFuZDogc3RyaW5nLCBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCcm93c2VyQ29tbWFuZChmbGFncykge1xuICBjb25zdCB0aW1lb3V0ID0gcmVzb2x2ZUNsaVRpbWVvdXQoZmxhZ3MudGltZW91dClcblxuICBpZiAoZmxhZ3MudmlzaXQpIHtcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gICAgY29uc3QgYXJncyA9IHt1cmw6IGZsYWdzLnZpc2l0fVxuXG4gICAgaWYgKHRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXJncy50aW1lb3V0ID0gdGltZW91dFxuICAgIH1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogXCJ2aXNpdFwifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZGlzbWlzcy10b1wiXSkge1xuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgICBjb25zdCBhcmdzID0ge3BhdGg6IGZsYWdzW1wiZGlzbWlzcy10b1wiXX1cblxuICAgIGlmICh0aW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFyZ3MudGltZW91dCA9IHRpbWVvdXRcbiAgICB9XG5cbiAgICByZXR1cm4ge2FyZ3MsIGNvbW1hbmQ6IFwiZGlzbWlzc1RvXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJmaW5kLWJ5LXRlc3QtaWRcIl0pIHtcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gICAgY29uc3QgYXJncyA9IHtcbiAgICAgIHRlc3RJRDogZmxhZ3NbXCJmaW5kLWJ5LXRlc3QtaWRcIl0sXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZEJ5VGVzdElEXCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3MuZmluZCkge1xuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgICBjb25zdCBhcmdzID0ge1xuICAgICAgc2VsZWN0b3I6IGZsYWdzLmZpbmQsXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiZmluZFwiXG4gICAgfVxuICB9XG5cbiAgaWYgKGZsYWdzLmNsaWNrKSB7XG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICBzZWxlY3RvcjogZmxhZ3MuY2xpY2ssXG4gICAgICB0aW1lb3V0LFxuICAgICAgdXNlQmFzZVNlbGVjdG9yOiBmbGFnc1tcInVzZS1iYXNlLXNlbGVjdG9yXCJdLFxuICAgICAgdmlzaWJsZTogZmxhZ3MudmlzaWJsZVxuICAgIH1cbiAgICBhcHBseVBvaW50ZXJGbGFncyhmbGFncywgYXJncylcblxuICAgIGlmIChmbGFnc1tcInNjcm9sbC10b1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmdzLnNjcm9sbFRvID0gZmxhZ3NbXCJzY3JvbGwtdG9cIl1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJncyxcbiAgICAgIGNvbW1hbmQ6IFwiY2xpY2tcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFnc1tcIndhaXQtZm9yLW5vLXNlbGVjdG9yXCJdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzW1wid2FpdC1mb3Itbm8tc2VsZWN0b3JcIl0sXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwid2FpdEZvck5vU2VsZWN0b3JcIlxuICAgIH1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImV4cGVjdC1uby1lbGVtZW50XCJdKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgc2VsZWN0b3I6IGZsYWdzW1wiZXhwZWN0LW5vLWVsZW1lbnRcIl0sXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICAgIHVzZUJhc2VTZWxlY3RvcjogZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXVxuICAgICAgfSxcbiAgICAgIGNvbW1hbmQ6IFwiZXhwZWN0Tm9FbGVtZW50XCJcbiAgICB9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJzZXQtYmFzZS1zZWxlY3RvclwiXSkge1xuICAgIHJldHVybiB7YXJnczoge3NlbGVjdG9yOiBmbGFnc1tcInNldC1iYXNlLXNlbGVjdG9yXCJdfSwgY29tbWFuZDogXCJzZXRCYXNlU2VsZWN0b3JcIn1cbiAgfVxuXG4gIGlmIChmbGFnc1tcImdldC1odG1sXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRIVE1MXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJnZXQtYnJvd3Nlci1sb2dzXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRCcm93c2VyTG9nc1wifVxuICB9XG5cbiAgaWYgKGZsYWdzW1wiZ2V0LWN1cnJlbnQtdXJsXCJdKSB7XG4gICAgcmV0dXJuIHthcmdzOiB7fSwgY29tbWFuZDogXCJnZXRDdXJyZW50VXJsXCJ9XG4gIH1cblxuICBpZiAoZmxhZ3NbXCJ0YWtlLXNjcmVlbnNob3RcIl0pIHtcbiAgICByZXR1cm4ge2FyZ3M6IHt9LCBjb21tYW5kOiBcInRha2VTY3JlZW5zaG90XCJ9XG4gIH1cblxuICBpZiAoZmxhZ3MuY29tbWFuZCkge1xuICAgIGNvbnN0IGFyZ3MgPSB7fVxuXG4gICAgaWYgKGZsYWdzLnVybCkgYXJncy51cmwgPSBmbGFncy51cmxcbiAgICBpZiAoZmxhZ3MucGF0aCkgYXJncy5wYXRoID0gZmxhZ3MucGF0aFxuICAgIGlmIChmbGFncy5zZWxlY3RvcikgYXJncy5zZWxlY3RvciA9IGZsYWdzLnNlbGVjdG9yXG4gICAgaWYgKGZsYWdzW1widGVzdC1pZFwiXSkgYXJncy50ZXN0SUQgPSBmbGFnc1tcInRlc3QtaWRcIl1cbiAgICBpZiAoZmxhZ3MubWV0aG9kKSBhcmdzLm1ldGhvZE5hbWUgPSBmbGFncy5tZXRob2RcbiAgICBpZiAoZmxhZ3MuYXJnKSBhcmdzLmFyZ3MgPSBBcnJheS5pc0FycmF5KGZsYWdzLmFyZykgPyBmbGFncy5hcmcgOiBbZmxhZ3MuYXJnXVxuICAgIGlmIChmbGFncy5jb21tYW5kICE9PSBcImludGVyYWN0XCIpIGFwcGx5UG9pbnRlckZsYWdzKGZsYWdzLCBhcmdzKVxuICAgIGlmIChmbGFnc1tcIndpdGgtZmFsbGJhY2tcIl0gIT09IHVuZGVmaW5lZCkgYXJncy53aXRoRmFsbGJhY2sgPSBmbGFnc1tcIndpdGgtZmFsbGJhY2tcIl1cbiAgICBpZiAodGltZW91dCAhPT0gdW5kZWZpbmVkKSBhcmdzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgaWYgKGZsYWdzW1wic2Nyb2xsLXRvXCJdICE9PSB1bmRlZmluZWQpIGFyZ3Muc2Nyb2xsVG8gPSBmbGFnc1tcInNjcm9sbC10b1wiXVxuICAgIGlmIChmbGFncy52aXNpYmxlICE9PSB1bmRlZmluZWQpIGFyZ3MudmlzaWJsZSA9IGZsYWdzLnZpc2libGVcbiAgICBpZiAoZmxhZ3NbXCJ1c2UtYmFzZS1zZWxlY3RvclwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLnVzZUJhc2VTZWxlY3RvciA9IGZsYWdzW1widXNlLWJhc2Utc2VsZWN0b3JcIl1cbiAgICBpZiAoZmxhZ3Muc2NyaXB0KSBhcmdzLnNjcmlwdCA9IGZsYWdzLnNjcmlwdFxuICAgIC8vIENvb2tpZSBmbGFncyB1c2UgYSBgY29va2llLWAgcHJlZml4IHNvIHRoZSBjb29raWUgbmFtZSBkb2VzIG5vdFxuICAgIC8vIGNvbGxpZGUgd2l0aCB0aGUgZGFlbW9uLWxldmVsIGAtLW5hbWUgPG15LWJyb3dzZXI+YCBmbGFnIHRoZSBDTElcbiAgICAvLyBhbHJlYWR5IGNvbnN1bWVzIGZvciByb3V0aW5nLlxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1uYW1lXCJdKSBhcmdzLm5hbWUgPSBmbGFnc1tcImNvb2tpZS1uYW1lXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLXZhbHVlXCJdICE9PSB1bmRlZmluZWQpIGFyZ3MudmFsdWUgPSBmbGFnc1tcImNvb2tpZS12YWx1ZVwiXVxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1kb21haW5cIl0pIGFyZ3MuZG9tYWluID0gZmxhZ3NbXCJjb29raWUtZG9tYWluXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLXBhdGhcIl0pIGFyZ3MucGF0aCA9IGZsYWdzW1wiY29va2llLXBhdGhcIl1cbiAgICBpZiAoZmxhZ3NbXCJjb29raWUtc2VjdXJlXCJdICE9PSB1bmRlZmluZWQpIGFyZ3Muc2VjdXJlID0gZmxhZ3NbXCJjb29raWUtc2VjdXJlXCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLWh0dHAtb25seVwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLmh0dHBPbmx5ID0gZmxhZ3NbXCJjb29raWUtaHR0cC1vbmx5XCJdXG4gICAgaWYgKGZsYWdzW1wiY29va2llLWV4cGlyeVwiXSAhPT0gdW5kZWZpbmVkKSBhcmdzLmV4cGlyeSA9IGZsYWdzW1wiY29va2llLWV4cGlyeVwiXVxuICAgIGlmIChmbGFnc1tcImNvb2tpZS1zYW1lLXNpdGVcIl0pIGFyZ3Muc2FtZVNpdGUgPSBmbGFnc1tcImNvb2tpZS1zYW1lLXNpdGVcIl1cblxuICAgIHJldHVybiB7YXJncywgY29tbWFuZDogZmxhZ3MuY29tbWFuZH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcIk5vIGJyb3dzZXIgY29tbWFuZCB3YXMgZ2l2ZW5cIilcbn1cbiJdfQ==
|
package/build/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ function printHelp() {
|
|
|
12
12
|
system-testing browser-command [--name my-browser] [--port 1991] --visit=https://example.com
|
|
13
13
|
system-testing browser-command [--name my-browser] --find-by-test-id someID [--timeout 15]
|
|
14
14
|
system-testing browser-command [--name my-browser] --take-screenshot
|
|
15
|
+
system-testing browser-command [--name my-browser] --click selector [--method human] [--click-offset-x 32] [--click-offset-y 28] [--human-steps 5] [--human-step-delay 75]
|
|
15
16
|
system-testing browser-command [--name my-browser] --command=executeScript --script='return document.title' [--arg ...]
|
|
16
17
|
system-testing browser-command [--name my-browser] --command=addCookie --cookie-name=auth --cookie-value=... [--cookie-domain=127.0.0.1] [--cookie-path=/]
|
|
17
18
|
`);
|
|
@@ -80,4 +81,4 @@ main(process.argv.slice(2)).catch((error) => {
|
|
|
80
81
|
console.error(error instanceof Error ? error.message : String(error));
|
|
81
82
|
process.exit(1);
|
|
82
83
|
});
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxvQkFBb0IsTUFBTSw2QkFBNkIsQ0FBQTtBQUM5RCxPQUFPLGNBQWMsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLGVBQWUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUE7QUFFakUsc0JBQXNCO0FBQ3RCLFNBQVMsU0FBUztJQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDOzs7Ozs7Ozs7O0NBVWIsQ0FBQyxDQUFBO0FBQ0YsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxJQUFJLENBQUMsSUFBSTtJQUN0QixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUUvQixJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsU0FBUyxFQUFFLENBQUE7UUFDWCxPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUN4QyxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDakMsV0FBVyxFQUFFO2dCQUNYLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0s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LElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqQixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IEJyb3dzZXJDb21tYW5kQ2xpZW50IGZyb20gXCIuL2Jyb3dzZXItY29tbWFuZC1jbGllbnQuanNcIlxuaW1wb3J0IEJyb3dzZXJQcm9jZXNzIGZyb20gXCIuL2Jyb3dzZXItcHJvY2Vzcy5qc1wiXG5pbXBvcnQgQnJvd3NlclJlZ2lzdHJ5IGZyb20gXCIuL2Jyb3dzZXItcmVnaXN0cnkuanNcIlxuaW1wb3J0IHtwYXJzZUFyZ3YsIHJlc29sdmVCcm93c2VyQ29tbWFuZH0gZnJvbSBcIi4vY2xpLWhlbHBlcnMuanNcIlxuXG4vKiogQHJldHVybnMge3ZvaWR9ICovXG5mdW5jdGlvbiBwcmludEhlbHAoKSB7XG4gIGNvbnNvbGUubG9nKGBVc2FnZTpcbiAgc3lzdGVtLXRlc3RpbmcgYnJvd3NlciA8bmFtZT4gWy0tcG9ydCAxOTkxXSBbLS1iYXNlLXVybCBodHRwczovL2V4YW1wbGUuY29tXVxuICBzeXN0ZW0tdGVzdGluZyBicm93c2VyLWxpc3RcbiAgc3lzdGVtLXRlc3RpbmcgYnJvd3Nlci1zdG9wIFstLW5hbWUgbXktYnJvd3Nlcl1cbiAgc3lzdGVtLXRlc3RpbmcgYnJvd3Nlci1jb21tYW5kIFstLW5hbWUgbXktYnJvd3Nlcl0gWy0tcG9ydCAxOTkxXSAtLXZpc2l0PWh0dHBzOi8vZXhhbXBsZS5jb21cbiAgc3lzdGVtLXRlc3RpbmcgYnJvd3Nlci1jb21tYW5kIFstLW5hbWUgbXktYnJvd3Nlcl0gLS1maW5kLWJ5LXRlc3QtaWQgc29tZUlEIFstLXRpbWVvdXQgMTVdXG4gIHN5c3RlbS10ZXN0aW5nIGJyb3dzZXItY29tbWFuZCBbLS1uYW1lIG15LWJyb3dzZXJdIC0tdGFrZS1zY3JlZW5zaG90XG4gIHN5c3RlbS10ZXN0aW5nIGJyb3dzZXItY29tbWFuZCBbLS1uYW1lIG15LWJyb3dzZXJdIC0tY2xpY2sgc2VsZWN0b3IgWy0tbWV0aG9kIGh1bWFuXSBbLS1jbGljay1vZmZzZXQteCAzMl0gWy0tY2xpY2stb2Zmc2V0LXkgMjhdIFstLWh1bWFuLXN0ZXBzIDVdIFstLWh1bWFuLXN0ZXAtZGVsYXkgNzVdXG4gIHN5c3RlbS10ZXN0aW5nIGJyb3dzZXItY29tbWFuZCBbLS1uYW1lIG15LWJyb3dzZXJdIC0tY29tbWFuZD1leGVjdXRlU2NyaXB0IC0tc2NyaXB0PSdyZXR1cm4gZG9jdW1lbnQudGl0bGUnIFstLWFyZyAuLi5dXG4gIHN5c3RlbS10ZXN0aW5nIGJyb3dzZXItY29tbWFuZCBbLS1uYW1lIG15LWJyb3dzZXJdIC0tY29tbWFuZD1hZGRDb29raWUgLS1jb29raWUtbmFtZT1hdXRoIC0tY29va2llLXZhbHVlPS4uLiBbLS1jb29raWUtZG9tYWluPTEyNy4wLjAuMV0gWy0tY29va2llLXBhdGg9L11cbmApXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJndlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJndikge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZUFyZ3YoYXJndilcbiAgY29uc3QgbWFpbkNvbW1hbmQgPSBwYXJzZWQuX1swXVxuXG4gIGlmICghbWFpbkNvbW1hbmQgfHwgcGFyc2VkLmZsYWdzLmhlbHApIHtcbiAgICBwcmludEhlbHAoKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKG1haW5Db21tYW5kID09PSBcImJyb3dzZXJcIikge1xuICAgIGNvbnN0IG5hbWUgPSBwYXJzZWQuX1sxXVxuXG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJicm93c2VyIHJlcXVpcmVzIGEgbmFtZVwiKVxuICAgIH1cblxuICAgIGNvbnN0IGJyb3dzZXJQcm9jZXNzID0gbmV3IEJyb3dzZXJQcm9jZXNzKHtcbiAgICAgIGJhc2VVcmw6IHBhcnNlZC5mbGFnc1tcImJhc2UtdXJsXCJdLFxuICAgICAgYnJvd3NlckFyZ3M6IHtcbiAgICAgICAgZHJpdmVyOiBwYXJzZWQuZmxhZ3MuZHJpdmVyID8ge3R5cGU6IHBhcnNlZC5mbGFncy5kcml2ZXJ9IDogdW5kZWZpbmVkXG4gICAgICB9LFxuICAgICAgZGVidWc6IHBhcnNlZC5mbGFncy5kZWJ1ZyA9PT0gdHJ1ZSB8fCBwYXJzZWQuZmxhZ3MuZGVidWcgPT09IFwidHJ1ZVwiLFxuICAgICAgbmFtZSxcbiAgICAgIHBvcnQ6IHBhcnNlZC5mbGFncy5wb3J0ID8gTnVtYmVyKHBhcnNlZC5mbGFncy5wb3J0KSA6IDBcbiAgICB9KVxuXG4gICAgYXdhaXQgYnJvd3NlclByb2Nlc3Muc3RhcnQoKVxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHtuYW1lLCBwaWQ6IHByb2Nlc3MucGlkLCBwb3J0OiBicm93c2VyUHJvY2Vzcy5wb3J0fSkpXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKCkgPT4ge30pXG4gIH0gZWxzZSBpZiAobWFpbkNvbW1hbmQgPT09IFwiYnJvd3Nlci1saXN0XCIpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gYXdhaXQgQnJvd3NlclJlZ2lzdHJ5Lmxpc3QoKVxuXG4gICAgaWYgKHBhcnNlZC5mbGFncy5qc29uKSB7XG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShlbnRyaWVzLCBudWxsLCAyKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgY29uc29sZS5sb2coYCR7ZW50cnkubmFtZX1cXHQke2VudHJ5LnBvcnR9XFx0cGlkPSR7ZW50cnkucGlkfWApXG4gICAgfVxuICB9IGVsc2UgaWYgKG1haW5Db21tYW5kID09PSBcImJyb3dzZXItc3RvcFwiKSB7XG4gICAgY29uc3Qgc3RvcHBlZEVudHJ5ID0gYXdhaXQgQnJvd3NlclJlZ2lzdHJ5LnN0b3AocGFyc2VkLmZsYWdzLm5hbWUpXG5cbiAgICBpZiAocGFyc2VkLmZsYWdzLmpzb24pIHtcbiAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHN0b3BwZWRFbnRyeSwgbnVsbCwgMikpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgU3RvcHBlZCAke3N0b3BwZWRFbnRyeS5uYW1lfVxcdHBpZD0ke3N0b3BwZWRFbnRyeS5waWR9YClcbiAgfSBlbHNlIGlmIChtYWluQ29tbWFuZCA9PT0gXCJicm93c2VyLWNvbW1hbmRcIikge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBCcm93c2VyQ29tbWFuZENsaWVudCh7XG4gICAgICBuYW1lOiBwYXJzZWQuZmxhZ3MubmFtZSxcbiAgICAgIHBvcnQ6IHBhcnNlZC5mbGFncy5wb3J0ID8gTnVtYmVyKHBhcnNlZC5mbGFncy5wb3J0KSA6IHVuZGVmaW5lZFxuICAgIH0pXG4gICAgY29uc3Qge2FyZ3MsIGNvbW1hbmR9ID0gcmVzb2x2ZUJyb3dzZXJDb21tYW5kKHBhcnNlZC5mbGFncylcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuc2VuZCh7YXJncywgY29tbWFuZCwgdHlwZTogXCJicm93c2VyLWNvbW1hbmRcIn0pXG5cbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsIDIpKVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb21tYW5kOiAke21haW5Db21tYW5kfWApXG4gIH1cbn1cblxubWFpbihwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmVycm9yKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSlcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl19
|
|
@@ -118,6 +118,14 @@ export default class AppiumDriver extends WebDriverDriver {
|
|
|
118
118
|
* @returns {Promise<import("selenium-webdriver").WebElement>} Native element containing the text.
|
|
119
119
|
*/
|
|
120
120
|
findByNativeText(expectedText: string, args?: FindArgs): Promise<import("selenium-webdriver").WebElement>;
|
|
121
|
+
/**
|
|
122
|
+
* Waits until a test id owns expected visible text or an accessibility label.
|
|
123
|
+
* @param {string} testId Stable native resource id suffix.
|
|
124
|
+
* @param {string} expectedText Text that must appear under the test id.
|
|
125
|
+
* @param {FindArgs} [args] Optional lookup settings.
|
|
126
|
+
* @returns {Promise<void>}
|
|
127
|
+
*/
|
|
128
|
+
waitForTestIDText(testId: string, expectedText: string, args?: FindArgs): Promise<void>;
|
|
121
129
|
/**
|
|
122
130
|
* Finds a native Android control by resource id, scrolling it into view first when requested.
|
|
123
131
|
* @param {string} testId Stable native resource id suffix.
|
|
@@ -132,6 +140,18 @@ export default class AppiumDriver extends WebDriverDriver {
|
|
|
132
140
|
* @returns {Promise<import("selenium-webdriver").WebElement>} Matching native element.
|
|
133
141
|
*/
|
|
134
142
|
findNativeControlWithScrolling(lookup: NativeControlLookup, args?: FindArgs): Promise<import("selenium-webdriver").WebElement>;
|
|
143
|
+
/**
|
|
144
|
+
* Searches native content around the current viewport so retained offsets and
|
|
145
|
+
* below-fold targets are both reachable without exhausting the timeout budget.
|
|
146
|
+
* @param {() => Promise<import("selenium-webdriver").WebElement>} directFind Lookup to retry after each scroll.
|
|
147
|
+
* @param {string[]} scrollContainerTestIDs Native test IDs that may identify scroll containers.
|
|
148
|
+
* @returns {Promise<import("selenium-webdriver").WebElement>} Matching control.
|
|
149
|
+
*/
|
|
150
|
+
findNativeControlWithViewportScan(directFind: () => Promise<import("selenium-webdriver").WebElement>, scrollContainerTestIDs: string[]): Promise<import("selenium-webdriver").WebElement>;
|
|
151
|
+
/**
|
|
152
|
+
* @returns {NativeViewportScrollState} Fresh scroll fallback state.
|
|
153
|
+
*/
|
|
154
|
+
newNativeViewportScrollState(): NativeViewportScrollState;
|
|
135
155
|
/**
|
|
136
156
|
* Runs explicit native polling without Appium's implicit wait extending every failed probe.
|
|
137
157
|
* @template TResult Result type.
|
|
@@ -141,18 +161,20 @@ export default class AppiumDriver extends WebDriverDriver {
|
|
|
141
161
|
*/
|
|
142
162
|
withNativeImplicitWait<TResult>(implicitWaitMs: number, callback: () => Promise<TResult>): Promise<TResult>;
|
|
143
163
|
/**
|
|
144
|
-
* Scrolls the visible native viewport
|
|
164
|
+
* Scrolls the visible native viewport when UiScrollable cannot identify the owning ScrollView.
|
|
145
165
|
* @param {NativeViewportScrollState} scrollState Per-lookup Appium scroll state.
|
|
146
166
|
* @param {string[]} scrollContainerTestIDs Native test IDs that may identify scroll containers.
|
|
167
|
+
* @param {NativeViewportScrollDirection} direction Direction to scroll the content.
|
|
147
168
|
* @returns {Promise<void>} Resolves after Appium performs the gesture.
|
|
148
169
|
*/
|
|
149
|
-
|
|
170
|
+
scrollNativeViewport(scrollState: NativeViewportScrollState, scrollContainerTestIDs: string[], direction: NativeViewportScrollDirection): Promise<void>;
|
|
150
171
|
/**
|
|
151
172
|
* Scrolls a specific native Android element by test id when Appium exposes it as a scroll container.
|
|
152
173
|
* @param {string} testId Stable native resource id suffix.
|
|
174
|
+
* @param {NativeViewportScrollDirection} direction Direction to scroll the content.
|
|
153
175
|
* @returns {Promise<boolean>} Whether Appium reported more content to scroll.
|
|
154
176
|
*/
|
|
155
|
-
|
|
177
|
+
scrollNativeElement(testId: string, direction: NativeViewportScrollDirection): Promise<boolean>;
|
|
156
178
|
/**
|
|
157
179
|
* Moves an offscreen Android control into a ScrollView-backed native hierarchy.
|
|
158
180
|
* @param {string} uiSelector UiAutomator selector for the target control.
|
|
@@ -203,6 +225,10 @@ export type NativeViewportScrollState = {
|
|
|
203
225
|
tryElementScroll: boolean;
|
|
204
226
|
tryViewportScroll: boolean;
|
|
205
227
|
};
|
|
228
|
+
/**
|
|
229
|
+
* Native viewport scroll direction.
|
|
230
|
+
*/
|
|
231
|
+
export type NativeViewportScrollDirection = "down" | "up";
|
|
206
232
|
/**
|
|
207
233
|
* Native Android lookup work executed by the scrolling poller.
|
|
208
234
|
*/
|