Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@openfin/automation-native

Package Overview
Dependencies
Maintainers
46
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@openfin/automation-native - npm Package Compare versions

Comparing version 0.3.3 to 0.3.4

95

dist/cjs/index.js

@@ -7,65 +7,7 @@ 'use strict';

var automationHelpers = require('@openfin/automation-helpers');
var os = require('os');
var win32Api = require('win32-api');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var os__default = /*#__PURE__*/_interopDefaultLegacy(os);
// eslint-disable-next-line @typescript-eslint/naming-convention
const NativeDriverKeys = { ...nutJs.Key };
/* eslint-disable jsdoc/require-jsdoc */
// import { WindowsWindow } from "./windowsWindow";
/**
* Platform specific methods.
*/
class WindowsPlatform {
/**
* Switch to a window by title.
* @param title The title of the window.
* @returns True if the window was switched to.
*/
async switchToWindow(title) {
try {
await this.load();
if (this._user32) {
const lpszWindow = Buffer.from(`${title}\0`, "ucs2");
const window = this._user32?.FindWindowExW(0, 0, null, lpszWindow);
if (window !== 0) {
this._user32.SetForegroundWindow(window);
this._user32.BringWindowToTop(window);
}
return window !== 0;
}
}
catch (err) {
// eslint-disable-next-line no-console
console.error(`Failed in switchToWindow\n${err}`);
}
return false;
}
/**
* Load the modules.
*/
async load() {
if (!this._user32) {
this._user32 = win32Api.User32.load();
}
}
}
let currentPlatform;
/**
* Get the current OS platform.
* @returns The platform if one is available.
*/
function getCurrentPlatform() {
if (!currentPlatform && os__default["default"].platform() === "win32") {
currentPlatform = new WindowsPlatform();
}
return currentPlatform;
}
/**
* Global wrapper with native UI interactions.

@@ -75,35 +17,2 @@ */

/**
* Switch to a window by locator.
* @param locator The locator type.
* @param locatorValue The window locator value to use.
* @returns True if the window was available.
*/
static async switchToWindow(locator, locatorValue) {
if (locator === "title") {
const platform = getCurrentPlatform();
if (platform) {
return platform.switchToWindow(locatorValue);
}
}
return false;
}
/**
* Wait for a window by its locator.
* @param locator The locator type.
* @param value The window locator value to use.
* @param timeoutMs The maximum amount of time to wait in seconds.
* @returns True if the window was found.
*/
static async waitForWindow(locator, value, timeoutMs) {
const start = Date.now();
do {
const found = await this.switchToWindow(locator, value);
if (found) {
return true;
}
await NativeDriver.sleep(1000);
} while (Date.now() - start < timeoutMs);
return false;
}
/**
* Perform actions on the native driver.

@@ -165,4 +74,2 @@ * @param actions The actions to perform.

exports.NativeDriverKeys = NativeDriverKeys;
exports.WindowsPlatform = WindowsPlatform;
exports.getCurrentPlatform = getCurrentPlatform;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL2VzL21vZGVscy9uYXRpdmVEcml2ZXJLZXlzLmpzIiwiLi4vLi4vZXMvcGxhdGZvcm1zL3dpbmRvd3NQbGF0Zm9ybS5qcyIsIi4uLy4uL2VzL3BsYXRmb3Jtcy9wbGF0Zm9ybS5qcyIsIi4uLy4uL2VzL25hdGl2ZURyaXZlcnMvbmF0aXZlRHJpdmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleSB9IGZyb20gXCJAbnV0LXRyZWUvbnV0LWpzXCI7XHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuZXhwb3J0IGNvbnN0IE5hdGl2ZURyaXZlcktleXMgPSB7IC4uLktleSB9O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libUYwYVhabFJISnBkbVZ5UzJWNWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5dGIyUmxiSE12Ym1GMGFYWmxSSEpwZG1WeVMyVjVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc2EwSkJRV3RDTEVOQlFVTTdRVUZQZGtNc1owVkJRV2RGTzBGQlEyaEZMRTFCUVUwc1EwRkJReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRVZCUVVVc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5SjkiLCIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5ldy1jYXAgKi9cclxuaW1wb3J0IHsgVXNlcjMyIH0gZnJvbSBcIndpbjMyLWFwaVwiO1xyXG4vLyBpbXBvcnQgeyBXaW5kb3dzV2luZG93IH0gZnJvbSBcIi4vd2luZG93c1dpbmRvd1wiO1xyXG4vKipcclxuICogUGxhdGZvcm0gc3BlY2lmaWMgbWV0aG9kcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBXaW5kb3dzUGxhdGZvcm0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBTd2l0Y2ggdG8gYSB3aW5kb3cgYnkgdGl0bGUuXHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSB3aW5kb3cuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB3aW5kb3cgd2FzIHN3aXRjaGVkIHRvLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBzd2l0Y2hUb1dpbmRvdyh0aXRsZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdXNlcjMyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBscHN6V2luZG93ID0gQnVmZmVyLmZyb20oYCR7dGl0bGV9XFwwYCwgXCJ1Y3MyXCIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2luZG93ID0gdGhpcy5fdXNlcjMyPy5GaW5kV2luZG93RXhXKDAsIDAsIG51bGwsIGxwc3pXaW5kb3cpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdyAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VzZXIzMi5TZXRGb3JlZ3JvdW5kV2luZG93KHdpbmRvdyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXNlcjMyLkJyaW5nV2luZG93VG9Ub3Aod2luZG93KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cgIT09IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgaW4gc3dpdGNoVG9XaW5kb3dcXG4ke2Vycn1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2FkIHRoZSBtb2R1bGVzLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBsb2FkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fdXNlcjMyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXIzMiA9IFVzZXIzMi5sb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWQybHVaRzkzYzFCc1lYUm1iM0p0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMM0JzWVhSbWIzSnRjeTkzYVc1a2IzZHpVR3hoZEdadmNtMHVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc2QwTkJRWGRETzBGQlEzaERMRFJDUVVFMFFqdEJRVU0xUWl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGdlFpeE5RVUZOTEZkQlFWY3NRMEZCUXp0QlFVVnlSQ3h0UkVGQmJVUTdRVUZGYmtRN08wZEJSVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNaVUZCWlR0SlFVMHpRanM3T3p0UFFVbEhPMGxCUTBrc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eExRVUZoTzFGQlEzaERMRWxCUVVrN1dVRkRTQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVVnNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdaMEpCUTJwQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhMUVVGTExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0blFrRkRja1FzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03WjBKQlJXNUZMRWxCUVVrc1RVRkJUU3hMUVVGTExFTkJRVU1zUlVGQlJUdHZRa0ZEYWtJc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHZRa0ZEZWtNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHBRa0ZEZEVNN1owSkJSVVFzVDBGQlR5eE5RVUZOTEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUTNCQ08xTkJRMFE3VVVGQlF5eFBRVUZQTEVkQlFVY3NSVUZCUlR0WlFVTmlMSE5EUVVGelF6dFpRVU4wUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExEWkNRVUUyUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xTkJRMnhFTzFGQlJVUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaQ3hEUVVGRE8wbEJSVVE3TzA5QlJVYzdTVUZEU3l4TFFVRkxMRU5CUVVNc1NVRkJTVHRSUVVOcVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOc1FpeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFRRVU0zUWp0SlFVTkdMRU5CUVVNN1EwRkRSQ0o5IiwiaW1wb3J0IG9zIGZyb20gXCJvc1wiO1xyXG5pbXBvcnQgeyBXaW5kb3dzUGxhdGZvcm0gfSBmcm9tIFwiLi93aW5kb3dzUGxhdGZvcm1cIjtcclxubGV0IGN1cnJlbnRQbGF0Zm9ybTtcclxuLyoqXHJcbiAqIEdldCB0aGUgY3VycmVudCBPUyBwbGF0Zm9ybS5cclxuICogQHJldHVybnMgVGhlIHBsYXRmb3JtIGlmIG9uZSBpcyBhdmFpbGFibGUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudFBsYXRmb3JtKCkge1xyXG4gICAgaWYgKCFjdXJyZW50UGxhdGZvcm0gJiYgb3MucGxhdGZvcm0oKSA9PT0gXCJ3aW4zMlwiKSB7XHJcbiAgICAgICAgY3VycmVudFBsYXRmb3JtID0gbmV3IFdpbmRvd3NQbGF0Zm9ybSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnRQbGF0Zm9ybTtcclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljR3hoZEdadmNtMHVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTl6Y21NdmNHeGhkR1p2Y20xekwzQnNZWFJtYjNKdExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJRenRCUVVWd1FpeFBRVUZQTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTTdRVUZGY0VRc1NVRkJTU3hsUVVGM1F5eERRVUZETzBGQlJUZERPenM3UjBGSFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4clFrRkJhMEk3U1VGRGFrTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1NVRkJTU3hGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEV0QlFVc3NUMEZCVHl4RlFVRkZPMUZCUTJ4RUxHVkJRV1VzUjBGQlJ5eEpRVUZKTEdWQlFXVXNSVUZCUlN4RFFVRkRPMHRCUTNoRE8wbEJRMFFzVDBGQlR5eGxRVUZsTEVOQlFVTTdRVUZEZUVJc1EwRkJReUo5IiwiaW1wb3J0IHsgQnV0dG9uLCBrZXlib2FyZCwgbW91c2UgfSBmcm9tIFwiQG51dC10cmVlL251dC1qc1wiO1xyXG5pbXBvcnQgeyBNb3VzZUJ1dHRvbiB9IGZyb20gXCJAb3BlbmZpbi9hdXRvbWF0aW9uLWhlbHBlcnNcIjtcclxuaW1wb3J0IHsgZ2V0Q3VycmVudFBsYXRmb3JtIH0gZnJvbSBcIi4uL3BsYXRmb3Jtcy9wbGF0Zm9ybVwiO1xyXG4vKipcclxuICogR2xvYmFsIHdyYXBwZXIgd2l0aCBuYXRpdmUgVUkgaW50ZXJhY3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE5hdGl2ZURyaXZlciB7XHJcbiAgICAvKipcclxuICAgICAqIFN3aXRjaCB0byBhIHdpbmRvdyBieSBsb2NhdG9yLlxyXG4gICAgICogQHBhcmFtIGxvY2F0b3IgVGhlIGxvY2F0b3IgdHlwZS5cclxuICAgICAqIEBwYXJhbSBsb2NhdG9yVmFsdWUgVGhlIHdpbmRvdyBsb2NhdG9yIHZhbHVlIHRvIHVzZS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHdpbmRvdyB3YXMgYXZhaWxhYmxlLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYXN5bmMgc3dpdGNoVG9XaW5kb3cobG9jYXRvciwgbG9jYXRvclZhbHVlKSB7XHJcbiAgICAgICAgaWYgKGxvY2F0b3IgPT09IFwidGl0bGVcIikge1xyXG4gICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IGdldEN1cnJlbnRQbGF0Zm9ybSgpO1xyXG4gICAgICAgICAgICBpZiAocGxhdGZvcm0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwbGF0Zm9ybS5zd2l0Y2hUb1dpbmRvdyhsb2NhdG9yVmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogV2FpdCBmb3IgYSB3aW5kb3cgYnkgaXRzIGxvY2F0b3IuXHJcbiAgICAgKiBAcGFyYW0gbG9jYXRvciBUaGUgbG9jYXRvciB0eXBlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB3aW5kb3cgbG9jYXRvciB2YWx1ZSB0byB1c2UuXHJcbiAgICAgKiBAcGFyYW0gdGltZW91dE1zIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgaW4gc2Vjb25kcy5cclxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHdpbmRvdyB3YXMgZm91bmQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyB3YWl0Rm9yV2luZG93KGxvY2F0b3IsIHZhbHVlLCB0aW1lb3V0TXMpIHtcclxuICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgZG8ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGF3YWl0IHRoaXMuc3dpdGNoVG9XaW5kb3cobG9jYXRvciwgdmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IE5hdGl2ZURyaXZlci5zbGVlcCgxMDAwKTtcclxuICAgICAgICB9IHdoaWxlIChEYXRlLm5vdygpIC0gc3RhcnQgPCB0aW1lb3V0TXMpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhY3Rpb25zIG9uIHRoZSBuYXRpdmUgZHJpdmVyLlxyXG4gICAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGFjdGlvbnMgdG8gcGVyZm9ybS5cclxuICAgICAqIEByZXR1cm5zIE5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBhY3Rpb25zKGFjdGlvbnMpIHtcclxuICAgICAgICBjb25zdCBidXR0b25zID0gW0J1dHRvbi5MRUZULCBCdXR0b24uTUlERExFLCBCdXR0b24uUklHSFRdO1xyXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlRG93blwiKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBtb3VzZS5wcmVzc0J1dHRvbihidXR0b25zW2FjdGlvbi5idXR0b24gPz8gTW91c2VCdXR0b24uTGVmdF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlVXBcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UucmVsZWFzZUJ1dHRvbihidXR0b25zW2FjdGlvbi5idXR0b24gPz8gTW91c2VCdXR0b24uTGVmdF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlQ2xpY2tcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UucHJlc3NCdXR0b24oYnV0dG9uc1thY3Rpb24uYnV0dG9uID8/IE1vdXNlQnV0dG9uLkxlZnRdKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG1vdXNlLnJlbGVhc2VCdXR0b24oYnV0dG9uc1thY3Rpb24uYnV0dG9uID8/IE1vdXNlQnV0dG9uLkxlZnRdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJtb3VzZU1vdmVcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UubW92ZShbeyB4OiBhY3Rpb24ueCA/PyAwLCB5OiBhY3Rpb24ueSA/PyAwIH1dKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJrZXlEb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnByZXNzS2V5KGFjdGlvbi5rZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcImtleVVwXCIpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnJlbGVhc2VLZXkoYWN0aW9uLmtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwia2V5UHJlc3NcIikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGtleXM7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ua2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGtleXMgPSBhY3Rpb24ua2V5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGFjdGlvbi5rZXkgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBrZXlzID0gW2FjdGlvbi5rZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5cyA9IFthY3Rpb24ua2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnR5cGUoLi4ua2V5cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwicGF1c2VcIiAmJiBhY3Rpb24uZHVyYXRpb24gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgYWN0aW9uLmR1cmF0aW9uKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNsZWVwIGZvciB0aGUgc3BlY2lmaWVkIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSBtcyBUaGUgbWlsbGlzZWNvbmRzIHRvIHNsZWVwIGZvci5cclxuICAgICAqIEByZXR1cm5zIE5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBzbGVlcChtcykge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libUYwYVhabFJISnBkbVZ5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMMjVoZEdsMlpVUnlhWFpsY25NdmJtRjBhWFpsUkhKcGRtVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxHdENRVUZyUWl4RFFVRkRPMEZCUXpORUxFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVWN4UkN4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4MVFrRkJkVUlzUTBGQlF6dEJRVVV6UkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVDBGQlR5eFpRVUZaTzBsQlEzaENPenM3T3p0UFFVdEhPMGxCUTBrc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCWjBJc1JVRkJSU3haUVVGdlFqdFJRVU40UlN4SlFVRkpMRTlCUVU4c1MwRkJTeXhQUVVGUExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UlFVRlJMRWRCUVVjc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0WlFVVjBReXhKUVVGSkxGRkJRVkVzUlVGQlJUdG5Ra0ZEWWl4UFFVRlBMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdZVUZETjBNN1UwRkRSRHRSUVVWRUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyUXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOSkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTlCUVdkQ0xFVkJRVVVzUzBGQllTeEZRVUZGTEZOQlFXbENPMUZCUTI1R0xFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVWNlFpeEhRVUZITzFsQlEwWXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVONFJDeEpRVUZKTEV0QlFVc3NSVUZCUlR0blFrRkRWaXhQUVVGUExFbEJRVWtzUTBGQlF6dGhRVU5hTzFsQlEwUXNUVUZCVFN4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlF5OUNMRkZCUVZFc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEV0QlFVc3NSMEZCUnl4VFFVRlRMRVZCUVVVN1VVRkZla01zVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWkN4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFUWkNPMUZCUTNoRUxFMUJRVTBzVDBGQlR5eEhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOeVJTeExRVUZMTEUxQlFVMHNUVUZCVFN4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVNM1FpeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1YwRkJWeXhGUVVGRk8yZENRVU5vUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWxCUVVrc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEY0VVN2FVSkJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNc1JVRkJSVHRuUWtGRGNrTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SlFVRkpMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzUkZPMmxDUVVGTkxFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4WlFVRlpMRVZCUVVVN1owSkJRM2hETEUxQlFVMHNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VVc1RVRkJUU3hMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNSRk8ybENRVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhYUVVGWExFVkJRVVU3WjBKQlEzWkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTXpSRHRwUWtGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1UwRkJVeXhGUVVGRk8yZENRVU55UXl4TlFVRk5MRkZCUVZFc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTNCRE8ybENRVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhQUVVGUExFVkJRVVU3WjBKQlEyNURMRTFCUVUwc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1lVRkRkRU03YVVKQlFVMHNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hMUVVGTExGVkJRVlVzUlVGQlJUdG5Ra0ZEZEVNc1NVRkJTU3hKUVVGdFF5eERRVUZETzJkQ1FVVjRReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8yOUNRVU01UWl4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF6dHBRa0ZEYkVJN2NVSkJRVTBzU1VGQlNTeFBRVUZQTEUxQlFVMHNRMEZCUXl4SFFVRkhMRXRCUVVzc1VVRkJVU3hGUVVGRk8yOUNRVU14UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdhVUpCUTNCQ08zRkNRVUZOTzI5Q1FVTk9MRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0cFFrRkRjRUk3WjBKQlJVUXNUVUZCVFN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdZVUZETjBJN2FVSkJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TFFVRkxMRTlCUVU4c1NVRkJTU3hOUVVGTkxFTkJRVU1zVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeEpRVUZKTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGJrVTdVMEZEUkR0SlFVTkdMRU5CUVVNN1NVRkZSRHM3T3p0UFFVbEhPMGxCUTBrc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCVlR0UlFVTnVReXhQUVVGUExFbEJRVWtzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRUxFTkJRVU03UTBGRFJDSjkiXSwibmFtZXMiOlsiS2V5IiwiVXNlcjMyIiwib3MiLCJCdXR0b24iLCJtb3VzZSIsIk1vdXNlQnV0dG9uIiwia2V5Ym9hcmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNZLE1BQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHQSxTQUFHOztBQ0Z4QztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTSxlQUFlLENBQUM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksTUFBTSxjQUFjLENBQUMsS0FBSyxFQUFFO0FBQ2hDLFFBQVEsSUFBSTtBQUNaLFlBQVksTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDOUIsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7QUFDOUIsZ0JBQWdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyRSxnQkFBZ0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkYsZ0JBQWdCLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNsQyxvQkFBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3RCxvQkFBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxRCxpQkFB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL2VzL21vZGVscy9uYXRpdmVEcml2ZXJLZXlzLmpzIiwiLi4vLi4vZXMvbmF0aXZlRHJpdmVycy9uYXRpdmVEcml2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5IH0gZnJvbSBcIkBudXQtdHJlZS9udXQtanNcIjtcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG5leHBvcnQgY29uc3QgTmF0aXZlRHJpdmVyS2V5cyA9IHsgLi4uS2V5IH07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJtRjBhWFpsUkhKcGRtVnlTMlY1Y3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTl0YjJSbGJITXZibUYwYVhabFJISnBkbVZ5UzJWNWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRkxFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRlBka01zWjBWQlFXZEZPMEZCUTJoRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFVkJRVVVzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXlKOSIsImltcG9ydCB7IEJ1dHRvbiwga2V5Ym9hcmQsIG1vdXNlIH0gZnJvbSBcIkBudXQtdHJlZS9udXQtanNcIjtcclxuaW1wb3J0IHsgTW91c2VCdXR0b24gfSBmcm9tIFwiQG9wZW5maW4vYXV0b21hdGlvbi1oZWxwZXJzXCI7XHJcbi8qKlxyXG4gKiBHbG9iYWwgd3JhcHBlciB3aXRoIG5hdGl2ZSBVSSBpbnRlcmFjdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTmF0aXZlRHJpdmVyIHtcclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhY3Rpb25zIG9uIHRoZSBuYXRpdmUgZHJpdmVyLlxyXG4gICAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGFjdGlvbnMgdG8gcGVyZm9ybS5cclxuICAgICAqIEByZXR1cm5zIE5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBhY3Rpb25zKGFjdGlvbnMpIHtcclxuICAgICAgICBjb25zdCBidXR0b25zID0gW0J1dHRvbi5MRUZULCBCdXR0b24uTUlERExFLCBCdXR0b24uUklHSFRdO1xyXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlRG93blwiKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBtb3VzZS5wcmVzc0J1dHRvbihidXR0b25zW2FjdGlvbi5idXR0b24gPz8gTW91c2VCdXR0b24uTGVmdF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlVXBcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UucmVsZWFzZUJ1dHRvbihidXR0b25zW2FjdGlvbi5idXR0b24gPz8gTW91c2VCdXR0b24uTGVmdF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcIm1vdXNlQ2xpY2tcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UucHJlc3NCdXR0b24oYnV0dG9uc1thY3Rpb24uYnV0dG9uID8/IE1vdXNlQnV0dG9uLkxlZnRdKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG1vdXNlLnJlbGVhc2VCdXR0b24oYnV0dG9uc1thY3Rpb24uYnV0dG9uID8/IE1vdXNlQnV0dG9uLkxlZnRdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJtb3VzZU1vdmVcIikge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgbW91c2UubW92ZShbeyB4OiBhY3Rpb24ueCA/PyAwLCB5OiBhY3Rpb24ueSA/PyAwIH1dKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhY3Rpb24udHlwZSA9PT0gXCJrZXlEb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnByZXNzS2V5KGFjdGlvbi5rZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBcImtleVVwXCIpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnJlbGVhc2VLZXkoYWN0aW9uLmtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwia2V5UHJlc3NcIikge1xyXG4gICAgICAgICAgICAgICAgbGV0IGtleXM7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ua2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGtleXMgPSBhY3Rpb24ua2V5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGFjdGlvbi5rZXkgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBrZXlzID0gW2FjdGlvbi5rZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5cyA9IFthY3Rpb24ua2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGF3YWl0IGtleWJvYXJkLnR5cGUoLi4ua2V5cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwicGF1c2VcIiAmJiBhY3Rpb24uZHVyYXRpb24gPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgYWN0aW9uLmR1cmF0aW9uKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFNsZWVwIGZvciB0aGUgc3BlY2lmaWVkIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSBtcyBUaGUgbWlsbGlzZWNvbmRzIHRvIHNsZWVwIGZvci5cclxuICAgICAqIEByZXR1cm5zIE5vdGhpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhc3luYyBzbGVlcChtcykge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcclxuICAgIH1cclxufVxyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libUYwYVhabFJISnBkbVZ5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dmMzSmpMMjVoZEdsMlpVUnlhWFpsY25NdmJtRjBhWFpsUkhKcGRtVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxHdENRVUZyUWl4RFFVRkRPMEZCUXpORUxFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVWt4UkRzN1IwRkZSenRCUVVOSUxFMUJRVTBzVDBGQlR5eFpRVUZaTzBsQlEzaENPenM3TzA5QlNVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eFBRVUUyUWp0UlFVTjRSQ3hOUVVGTkxFOUJRVThzUjBGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja1VzUzBGQlN5eE5RVUZOTEUxQlFVMHNTVUZCU1N4UFFVRlBMRVZCUVVVN1dVRkROMElzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TFFVRkxMRmRCUVZjc1JVRkJSVHRuUWtGRGFFTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SlFVRkpMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzQkZPMmxDUVVGTkxFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4VFFVRlRMRVZCUVVVN1owSkJRM0pETEUxQlFVMHNTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU4wUlR0cFFrRkJUU3hKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEV0QlFVc3NXVUZCV1N4RlFVRkZPMmRDUVVONFF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzQkZMRTFCUVUwc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1NVRkJTU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTjBSVHRwUWtGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1YwRkJWeXhGUVVGRk8yZENRVU4yUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdZVUZETTBRN2FVSkJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TFFVRkxMRk5CUVZNc1JVRkJSVHRuUWtGRGNrTXNUVUZCVFN4UlFVRlJMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0aFFVTndRenRwUWtGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1QwRkJUeXhGUVVGRk8yZENRVU51UXl4TlFVRk5MRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMkZCUTNSRE8ybENRVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhWUVVGVkxFVkJRVVU3WjBKQlEzUkRMRWxCUVVrc1NVRkJiVU1zUTBGQlF6dG5Ra0ZGZUVNc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSVHR2UWtGRE9VSXNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU03YVVKQlEyeENPM0ZDUVVGTkxFbEJRVWtzVDBGQlR5eE5RVUZOTEVOQlFVTXNSMEZCUnl4TFFVRkxMRkZCUVZFc1JVRkJSVHR2UWtGRE1VTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzJsQ1FVTndRanR4UWtGQlRUdHZRa0ZEVGl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdhVUpCUTNCQ08yZENRVVZFTEUxQlFVMHNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzJGQlF6ZENPMmxDUVVGTkxFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4UFFVRlBMRWxCUVVrc1RVRkJUU3hEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzU1VGQlNTeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRMjVGTzFOQlEwUTdTVUZEUml4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFWVTdVVUZEYmtNc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hEUVVGRE8wTkJRMFFpZlE9PSJdLCJuYW1lcyI6WyJLZXkiLCJCdXR0b24iLCJtb3VzZSIsIk1vdXNlQnV0dG9uIiwia2V5Ym9hcmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTtBQUNZLE1BQUMsZ0JBQWdCLEdBQUcsRUFBRSxHQUFHQSxTQUFHOztBQ0F4QztBQUNBO0FBQ0E7QUFDTyxNQUFNLFlBQVksQ0FBQztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxhQUFhLE9BQU8sQ0FBQyxPQUFPLEVBQUU7QUFDbEMsUUFBUSxNQUFNLE9BQU8sR0FBRyxDQUFDQyxZQUFNLENBQUMsSUFBSSxFQUFFQSxZQUFNLENBQUMsTUFBTSxFQUFFQSxZQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkUsUUFBUSxLQUFLLE1BQU0s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

7

package.json
{
"name": "@openfin/automation-native",
"version": "0.3.3",
"version": "0.3.4",
"description": "Helper methods for native testing in the OpenFin ecosystem",

@@ -28,5 +28,4 @@ "author": "martyn.janes@openfin.co",

"dependencies": {
"@openfin/automation-helpers": "0.3.3",
"@nut-tree/nut-js": "2.1.1",
"win32-api": "9.6.0"
"@openfin/automation-helpers": "0.3.4",
"@nut-tree/nut-js": "2.1.1"
},

@@ -33,0 +32,0 @@ "devDependencies": {

@@ -5,3 +5,1 @@ export * from "./models/IOSPlatform";

export * from "./nativeDrivers/nativeDriver";
export * from "./platforms/platform";
export * from "./platforms/windowsPlatform";

@@ -7,17 +7,2 @@ import type { NativeDriverAction } from "../models/nativeDriverAction";

/**
* Switch to a window by locator.
* @param locator The locator type.
* @param locatorValue The window locator value to use.
* @returns True if the window was available.
*/
static switchToWindow(locator: "title", locatorValue: string): Promise<boolean>;
/**
* Wait for a window by its locator.
* @param locator The locator type.
* @param value The window locator value to use.
* @param timeoutMs The maximum amount of time to wait in seconds.
* @returns True if the window was found.
*/
static waitForWindow(locator: "title", value: string, timeoutMs: number): Promise<boolean>;
/**
* Perform actions on the native driver.

@@ -24,0 +9,0 @@ * @param actions The actions to perform.

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc