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

testcafe-browser-tools

Package Overview
Dependencies
Maintainers
7
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

testcafe-browser-tools - npm Package Compare versions

Comparing version 2.0.4 to 2.0.5

7

lib/api/get-installations.js

@@ -27,2 +27,4 @@ "use strict";

const LIMIT_OUTPUT_WIDTH_COMMAND = `Out-String -Width ${MAX_OUTPUT_WIDTH}`;
// NOTE: We have to use Write-Host for compatibility with PowerShell 2.0
const WRITE_HOST_COMMAND = 'Write-Host';
const GET_REGISTRY_BROWSER_PROPERTIES_COMMAND = key => [

@@ -32,3 +34,4 @@ GET_REGISTRY_KEY_COMMAND(key),

FORMAT_BROWSER_INFO_COMMAND,
LIMIT_OUTPUT_WIDTH_COMMAND
LIMIT_OUTPUT_WIDTH_COMMAND,
WRITE_HOST_COMMAND
].join(POWERSHELL_PIPE_SYMBOL);

@@ -181,2 +184,2 @@ // Installation info cache

exports.default = default_1;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWluc3RhbGxhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2dldC1pbnN0YWxsYXRpb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLGtFQUFrQztBQUNsQyxtQ0FBK0I7QUFDL0IscUZBQWlEO0FBQ2pELHdDQUFxRDtBQUNyRCwrREFBdUM7QUFDdkMseURBQWlDO0FBRWpDLE1BQU0sb0JBQW9CLEdBQVEseUJBQXlCLENBQUM7QUFDNUQsTUFBTSx1QkFBdUIsR0FBSyx5REFBeUQsb0JBQW9CLEdBQUcsQ0FBQztBQUNuSCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLGlFQUFpRSxDQUFDO0FBRW5ILE1BQU0sU0FBUyxHQUFVLE1BQU0sQ0FBQztBQUNoQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFL0MsTUFBTSw4QkFBOEIsR0FBRyxXQUFXLENBQUM7QUFDbkQsTUFBTSw4QkFBOEIsR0FBRyxRQUFRLENBQUM7QUFDaEQsTUFBTSxzQkFBc0IsR0FBVyxtQ0FBbUMsQ0FBQztBQUUzRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBRW5DLE1BQU0sd0JBQXdCLEdBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDL0UsTUFBTSxpQ0FBaUMsR0FBRywyQkFBMkIsOEJBQThCLEdBQUcsQ0FBQztBQUN2RyxNQUFNLDJCQUEyQixHQUFTLDBCQUEwQiw4QkFBOEIsTUFBTSw4QkFBOEIsR0FBRyxDQUFDO0FBQzFJLE1BQU0sMEJBQTBCLEdBQVUscUJBQXFCLGdCQUFnQixFQUFFLENBQUM7QUFFbEYsTUFBTSx1Q0FBdUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ25E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QUFFLENBQUMsS0FBSztRQUNSLE9BQU8sTUFBTSxpQkFBaUIsRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFHRCxNQUFNO0FBQ047Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ1ksS0FBSztJQUNoQixJQUFJLENBQUMsa0JBQWtCO1FBQ25CLGtCQUFrQixHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUM7SUFFOUMsT0FBTyxrQkFBa0IsQ0FBQztBQUM5QixDQUFDO0FBTEQsNEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCB3aGljaCBmcm9tICd3aGljaC1wcm9taXNlJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBleGlzdHMgZnJvbSAnLi4vdXRpbHMvZnMtZXhpc3RzLXByb21pc2VkJztcbmltcG9ydCB7IGV4ZWMsIGV4ZWNQb3dlcnNoZWxsIH0gZnJvbSAnLi4vdXRpbHMvZXhlYyc7XG5pbXBvcnQgdW5xdW90ZSBmcm9tICcuLi91dGlscy91bnF1b3RlJztcbmltcG9ydCBBTElBU0VTIGZyb20gJy4uL2FsaWFzZXMnO1xuXG5jb25zdCBNSUNST1NPRlRfRURHRV9DTEFTUyAgICAgID0gJ01pY3Jvc29mdC5NaWNyb3NvZnRFZGdlJztcbmNvbnN0IE1JQ1JPU09GVF9FREdFX0tFWV9HTE9CICAgPSBgSEtDVVxcXFxTb2Z0d2FyZVxcXFxDbGFzc2VzXFxcXEFjdGl2YXRhYmxlQ2xhc3Nlc1xcXFxQYWNrYWdlXFxcXCR7TUlDUk9TT0ZUX0VER0VfQ0xBU1N9KmA7XG5jb25zdCBCUk9XU0VSX0NPTU1BTkRTX0tFWV9HTE9CID0gcm9vdCA9PiBgJHtyb290fVxcXFxTb2Z0d2FyZVxcXFxDbGllbnRzXFxcXFN0YXJ0TWVudUludGVybmV0XFxcXCpcXFxcc2hlbGxcXFxcb3BlblxcXFxjb21tYW5kYDtcblxuY29uc3QgTElORV9XUkFQICAgICAgICA9ICdcXHJcXG4nO1xuY29uc3QgRE9VQkxFX0xJTkVfV1JBUCA9IExJTkVfV1JBUCArIExJTkVfV1JBUDtcblxuY29uc3QgUkVHSVNUUllfQlJPV1NFUl9QQVRIX1BST1BFUlRZID0gJyhkZWZhdWx0KSc7XG5jb25zdCBSRUdJU1RSWV9CUk9XU0VSX05BTUVfUFJPUEVSVFkgPSAnUFNQYXRoJztcbmNvbnN0IFJFR0lTVFJZX1BST1BFUlRJRVNfUkUgICAgICAgICA9IC9eKFxcKGRlZmF1bHRcXCl8UFNQYXRoKVxccyo6XFxzKiguKikkLztcblxuY29uc3QgTUFYX09VVFBVVF9XSURUSCA9IDIgKiogMzEgLSAxO1xuXG5jb25zdCBQT1dFUlNIRUxMX1BJUEVfU1lNQk9MID0gJ3wnO1xuXG5jb25zdCBHRVRfUkVHSVNUUllfS0VZX0NPTU1BTkQgICAgICAgICAgPSBrZXkgPT4gYEdldC1JdGVtICdSZWdpc3RyeTo6JHtrZXl9J2A7XG5jb25zdCBHRVRfQlJPV1NFUl9QQVRIX1BST1BFUlRZX0NPTU1BTkQgPSBgR2V0LUl0ZW1Qcm9wZXJ0eSAtTmFtZSAnJHtSRUdJU1RSWV9CUk9XU0VSX1BBVEhfUFJPUEVSVFl9J2A7XG5jb25zdCBGT1JNQVRfQlJPV1NFUl9JTkZPX0NPTU1BTkQgICAgICAgPSBgRm9ybWF0LUxpc3QgLVByb3BlcnR5ICcke1JFR0lTVFJZX0JST1dTRVJfUEFUSF9QUk9QRVJUWX0nLCcke1JFR0lTVFJZX0JST1dTRVJfTkFNRV9QUk9QRVJUWX0nYDtcbmNvbnN0IExJTUlUX09VVFBVVF9XSURUSF9DT01NQU5EICAgICAgICA9IGBPdXQtU3RyaW5nIC1XaWR0aCAke01BWF9PVVRQVVRfV0lEVEh9YDtcblxuY29uc3QgR0VUX1JFR0lTVFJZX0JST1dTRVJfUFJPUEVSVElFU19DT01NQU5EID0ga2V5ID0+IFtcbiAgICBHRVRfUkVHSVNUUllfS0VZX0NPTU1BTkQoa2V5KSxcbiAgICBHRVRfQlJPV1NFUl9QQVRIX1BST1BFUlRZX0NPTU1BTkQsXG4gICAgRk9STUFUX0JST1dTRVJfSU5GT19DT01NQU5ELFxuICAgIExJTUlUX09VVFBVVF9XSURUSF9DT01NQU5EXG5dLmpvaW4oUE9XRVJTSEVMTF9QSVBFX1NZTUJPTCk7XG5cbi8vIEluc3RhbGxhdGlvbiBpbmZvIGNhY2hlXG52YXIgaW5zdGFsbGF0aW9uc0NhY2hlID0gbnVsbDtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0UmVnaXN0cnlLZXkgKHJlZ0tleUdsb2IpIHtcbiAgICByZXR1cm4gZXhlY1Bvd2Vyc2hlbGwoR0VUX1JFR0lTVFJZX0tFWV9DT01NQU5EKHJlZ0tleUdsb2IpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UmVnaXN0cnlCcm93c2VyUHJvcGVydGllcyAocmVnS2V5R2xvYikge1xuICAgIHJldHVybiBleGVjUG93ZXJzaGVsbChHRVRfUkVHSVNUUllfQlJPV1NFUl9QUk9QRVJUSUVTX0NPTU1BTkQocmVnS2V5R2xvYikpO1xufVxuXG4vLyBGaW5kIGluc3RhbGxhdGlvbnMgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXNcbmFzeW5jIGZ1bmN0aW9uIGFkZEluc3RhbGxhdGlvbiAoaW5zdGFsbGF0aW9ucywgbmFtZSwgaW5zdFBhdGgpIHtcbiAgICB2YXIgZmlsZUV4aXN0cyA9IGF3YWl0IGV4aXN0cyhpbnN0UGF0aCk7XG5cbiAgICBpZiAoZmlsZUV4aXN0cykge1xuICAgICAgICBPYmplY3Qua2V5cyhBTElBU0VTKS5zb21lKGFsaWFzID0+IHtcbiAgICAgICAgICAgIHZhciB7IG5hbWVSZSwgY21kLCBtYWNPcGVuQ21kVGVtcGxhdGUsIHBhdGggfSA9IEFMSUFTRVNbYWxpYXNdO1xuXG4gICAgICAgICAgICBpZiAobmFtZVJlLnRlc3QobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBpbnN0YWxsYXRpb25zW2FsaWFzXSA9IHsgcGF0aDogcGF0aCB8fCBpbnN0UGF0aCwgY21kLCBtYWNPcGVuQ21kVGVtcGxhdGUgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRldGVjdE1pY3Jvc29mdEVkZ2UgKCkge1xuICAgIGNvbnN0IHJlZ2lzdHJ5UmVzdWx0ID0gYXdhaXQgZ2V0UmVnaXN0cnlLZXkoTUlDUk9TT0ZUX0VER0VfS0VZX0dMT0IpO1xuXG4gICAgaWYgKHJlZ2lzdHJ5UmVzdWx0LnN0ZG91dC5pbmNsdWRlcyhNSUNST1NPRlRfRURHRV9DTEFTUykpXG4gICAgICAgIHJldHVybiBBTElBU0VTWydlZGdlJ107XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoSW5SZWdpc3RyeSAocmVnaXN0cnlSb290KSB7XG4gICAgY29uc3QgaW5zdGFsbGF0aW9ucyAgPSB7fTtcbiAgICBjb25zdCByZWdpc3RyeVJlc3VsdCA9ICBhd2FpdCBnZXRSZWdpc3RyeUJyb3dzZXJQcm9wZXJ0aWVzKEJST1dTRVJfQ09NTUFORFNfS0VZX0dMT0IocmVnaXN0cnlSb290KSk7XG5cbiAgICBjb25zdCBkYXRhID0gcmVnaXN0cnlSZXN1bHQuc3Rkb3V0XG4gICAgICAgIC5zcGxpdChET1VCTEVfTElORV9XUkFQKVxuICAgICAgICAubWFwKGJsb2NrID0+IGJsb2NrXG4gICAgICAgICAgICAuc3BsaXQoTElORV9XUkFQKVxuICAgICAgICAgICAgLm1hcChsaW5lID0+IGxpbmUubWF0Y2goUkVHSVNUUllfUFJPUEVSVElFU19SRSkpXG4gICAgICAgICAgICAuZmlsdGVyKG1hdGNoID0+ICEhbWF0Y2gpXG4gICAgICAgICAgICAubWFwKG1hdGNoID0+ICh7XG4gICAgICAgICAgICAgICAgW21hdGNoWzFdXTogdW5xdW90ZShtYXRjaFsyXSlcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoYmxvY2sgPT4gYmxvY2sgJiYgYmxvY2subGVuZ3RoKVxuICAgICAgICAubWFwKGJsb2NrID0+IG1lcmdlKC4uLmJsb2NrKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChkYXRhLm1hcChyZWNvcmQgPT4gYWRkSW5zdGFsbGF0aW9uKGluc3RhbGxhdGlvbnMsIHJlY29yZFtSRUdJU1RSWV9CUk9XU0VSX05BTUVfUFJPUEVSVFldLCByZWNvcmRbUkVHSVNUUllfQlJPV1NFUl9QQVRIX1BST1BFUlRZXSkpKTtcblxuICAgIHJldHVybiBpbnN0YWxsYXRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kV2luZG93c0Jyb3dzZXJzICgpIHtcbiAgICB2YXIgbWFjaGluZVJlZ2lzdGVyZWRCcm93c2VycyA9IGF3YWl0IHNlYXJjaEluUmVnaXN0cnkoJ0hLRVlfTE9DQUxfTUFDSElORScpO1xuICAgIHZhciB1c2VyUmVnaXN0ZXJlZEJyb3dzZXJzICAgID0gYXdhaXQgc2VhcmNoSW5SZWdpc3RyeSgnSEtFWV9DVVJSRU5UX1VTRVInKTtcbiAgICB2YXIgaW5zdGFsbGF0aW9ucyAgICAgICAgICAgICA9IE9iamVjdC5hc3NpZ24obWFjaGluZVJlZ2lzdGVyZWRCcm93c2VycywgdXNlclJlZ2lzdGVyZWRCcm93c2Vycyk7XG4gICAgdmFyIGVkZ2VBbGlhcyAgICAgICAgICAgICAgICAgPSBhd2FpdCBkZXRlY3RNaWNyb3NvZnRFZGdlKCk7XG5cbiAgICBpZiAoZWRnZUFsaWFzKVxuICAgICAgICBpbnN0YWxsYXRpb25zWydlZGdlJ10gPSBlZGdlQWxpYXM7XG5cbiAgICByZXR1cm4gaW5zdGFsbGF0aW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZE1hY0Jyb3dzZXJzICgpIHtcbiAgICB2YXIgaW5zdGFsbGF0aW9ucyA9IHt9O1xuXG4gICAgLy8gTk9URTogcmVwbGFjZSB0aGUgc3BhY2Ugc3ltYm9sIHdpdGggY29kZSwgYmVjYXVzZSBncmVwIHNwbGl0cyBzdHJpbmdzIGJ5IHNwYWNlLlxuICAgIHZhciBzdGRvdXQgPSBhd2FpdCBleGVjKCdscyBcIi9BcHBsaWNhdGlvbnMvXCIgfCBncmVwIC1FIFwiQ2hyb21lfEZpcmVmb3h8T3BlcmF8U2FmYXJpfENocm9taXVtXCIgfCBzZWQgLUUgXCJzLyAvMDMyL1wiJyk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdGRvdXRcbiAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgICAuZmlsdGVyKGZpbGVOYW1lID0+ICEhZmlsZU5hbWUpXG4gICAgICAgIC5tYXAoZmlsZU5hbWUgPT4ge1xuICAgICAgICAgICAgLy8gTk9URTogcmVzdG9yZSBzcGFjZVxuICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlKC8wMzIvZywgJyAnKTtcblxuICAgICAgICAgICAgdmFyIG5hbWUgPSBmaWxlTmFtZS5yZXBsYWNlKC8uYXBwJC8sICcnKTtcbiAgICAgICAgICAgIHZhciBwYXRoID0gYC9BcHBsaWNhdGlvbnMvJHtmaWxlTmFtZX1gO1xuXG4gICAgICAgICAgICByZXR1cm4gYWRkSW5zdGFsbGF0aW9uKGluc3RhbGxhdGlvbnMsIG5hbWUsIHBhdGgpO1xuICAgICAgICB9KSk7XG5cbiAgICByZXR1cm4gaW5zdGFsbGF0aW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZExpbnV4QnJvd3NlcnMgKCkge1xuICAgIHZhciBpbnN0YWxsYXRpb25zID0ge307XG5cbiAgICB2YXIgYWxpYXNDaGVja2luZ1Byb21pc2VzID0gT2JqZWN0XG4gICAgICAgIC5rZXlzKEFMSUFTRVMpXG4gICAgICAgIC5tYXAobmFtZSA9PiB7XG4gICAgICAgICAgICB2YXIgeyBsaW51eEJpbmFyaWVzIH0gPSBBTElBU0VTW25hbWVdO1xuXG4gICAgICAgICAgICBpZiAoIWxpbnV4QmluYXJpZXMpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgICAgIHZhciBkZXRlY3Rpb25Qcm9taXNlcyA9IGxpbnV4QmluYXJpZXNcbiAgICAgICAgICAgICAgICAubWFwKGJpbmFyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3aGljaChiaW5hcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihwYXRoID0+IGFkZEluc3RhbGxhdGlvbihpbnN0YWxsYXRpb25zLCBuYW1lLCBwYXRoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogYmluYXJ5IG5vdCBmb3VuZCwganVzdCBkbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChkZXRlY3Rpb25Qcm9taXNlcyk7XG4gICAgICAgIH0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYWxpYXNDaGVja2luZ1Byb21pc2VzKTtcblxuICAgIHJldHVybiBpbnN0YWxsYXRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaW5kQnJvd3NlcnMgKCkge1xuICAgIGlmIChPUy53aW4pXG4gICAgICAgIHJldHVybiBhd2FpdCBmaW5kV2luZG93c0Jyb3dzZXJzKCk7XG5cbiAgICBpZiAoT1MubWFjKVxuICAgICAgICByZXR1cm4gYXdhaXQgZmluZE1hY0Jyb3dzZXJzKCk7XG5cbiAgICBpZiAoT1MubGludXgpXG4gICAgICAgIHJldHVybiBhd2FpdCBmaW5kTGludXhCcm93c2VycygpO1xufVxuXG5cbi8vIEFQSVxuLyoqIEB0eXBlZGVmIHtPYmplY3R9IEJyb3dzZXJJbmZvXG4gKiBAZGVzY3JpcHRpb24gT2JqZWN0IHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGJyb3dzZXIgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLlxuICogQHByb3BlcnR5IHtzdHJpbmd8dW5kZWZpbmVkfSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGV4ZWN1dGFibGUgZmlsZSB0aGF0IHN0YXJ0cyB0aGUgYnJvd3Nlci5cbiAqICBSZXF1aXJlZCBvbiBNYWNPUyBtYWNoaW5lcy4gT24gV2luZG93cyBtYWNoaW5lcywgaXQgaXMgdXNlZCB3aGVuIHRoZSB3aW5PcGVuQ21kVGVtcGxhdGUgcHJvcGVydHkgaXMgdW5kZWZpbmVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNtZCAtIEFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbWFjT3BlbkNtZFRlbXBsYXRlIC0gQSBbTXVzdGFjaGUgdGVtcGxhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYW5sL211c3RhY2hlLmpzI3RlbXBsYXRlcylcbiAqICB0aGF0IHByb3ZpZGVzIHBhcmFtZXRlcnMgZm9yIGxhdW5jaGluZyB0aGUgYnJvd3NlciBvbiBhIE1hY09TIG1hY2hpbmUuXG4gKiBAcHJvcGVydHkge3N0cmluZ3x1bmRlZmluZWR9IHdpbk9wZW5DbWRUZW1wbGF0ZSAtIEEgW011c3RhY2hlIHRlbXBsYXRlXShodHRwczovL2dpdGh1Yi5jb20vamFubC9tdXN0YWNoZS5qcyN0ZW1wbGF0ZXMpXG4gKiAgdGhhdCBwcm92aWRlcyBwYXJhbWV0ZXJzIGZvciBsYXVuY2hpbmcgdGhlIGJyb3dzZXIgb24gYSBXaW5kb3dzIG1hY2hpbmUuICBJZiB1bmRlZmluZWQsIHRoZSBwYXRoIHRvIHRoZVxuICogIGV4ZWN1dGFibGUgZmlsZSBzcGVjaWZpZWQgYnkgdGhlIHBhdGggcHJvcGVydHkgaXMgdXNlZC5cbiAqIEBleGFtcGxlXG4gKiAge1xuICogICAgICAgcGF0aDogJ0M6XFxcXFByb2dyYW1GaWxlc1xcXFwuLi5cXFxcZmlyZWZveC5leGUnLFxuICogICAgICAgY21kOiAnLW5ldy13aW5kb3cnLFxuICogICAgICAgbWFjT3BlbkNtZFRlbXBsYXRlOiAnb3BlbiAtYSBcInt7e3BhdGh9fX1cIiB7e3twYWdlVXJsfX19IC0tYXJncyB7e3tjbWR9fX0nXG4gKiAgfVxuICovXG5cbi8qKlxuICogUmV0dXJucyB0aGUgbGlzdCBvZiB0aGUge0BsaW5rIEJyb3dzZXJJbmZvfSBvYmplY3RzIHRoYXQgY29udGFpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYnJvd3NlcnMgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLlxuICogQGZ1bmN0aW9uXG4gKiBAYXN5bmNcbiAqIEBuYW1lIGdldEluc3RhbGxhdGlvbnNcbiAqIEByZXR1cm5zIHtPYmplY3QuPHN0cmluZywgQnJvd3NlckluZm8+fSBMaXN0IG9mIHRoZSB7QGxpbmsgQnJvd3NlckluZm99IG9iamVjdHNcbiAqICAgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYnJvd3NlcnMgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lLlxuICogQGV4YW1wbGVcbiAqIHtcbiAqICAgY2hyb21lOiB7XG4gKiAgICAgICBwYXRoOiAnQzpcXFxcUHJvZ3JhbUZpbGVzXFxcXC4uLlxcXFxjaHJvbWUuZXhlJyxcbiAqICAgICAgIGNtZDogJy0tbmV3LXdpbmRvdycsXG4gKiAgICAgICBtYWNPcGVuQ21kVGVtcGxhdGU6ICdvcGVuIC1uIC1hIFwie3t7cGF0aH19fVwiIC0tYXJncyB7e3twYWdlVXJsfX19IHt7e2NtZH19fSdcbiAqICAgfSxcbiAqXG4gKiAgIGZpcmVmb3g6IHtcbiAqICAgICAgIHBhdGg6ICdDOlxcXFxQcm9ncmFtRmlsZXNcXFxcLi4uXFxcXGZpcmVmb3guZXhlJyxcbiAqICAgICAgIGNtZDogJy1uZXctd2luZG93JyxcbiAqICAgICAgIG1hY09wZW5DbWRUZW1wbGF0ZTogJ29wZW4gLWEgXCJ7e3twYXRofX19XCIge3t7cGFnZVVybH19fSAtLWFyZ3Mge3t7Y21kfX19J1xuICogICB9XG4gKiB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWluc3RhbGxhdGlvbnNDYWNoZSlcbiAgICAgICAgaW5zdGFsbGF0aW9uc0NhY2hlID0gYXdhaXQgZmluZEJyb3dzZXJzKCk7XG5cbiAgICByZXR1cm4gaW5zdGFsbGF0aW9uc0NhY2hlO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWluc3RhbGxhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2dldC1pbnN0YWxsYXRpb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLGtFQUFrQztBQUNsQyxtQ0FBK0I7QUFDL0IscUZBQWlEO0FBQ2pELHdDQUFxRDtBQUNyRCwrREFBdUM7QUFDdkMseURBQWlDO0FBRWpDLE1BQU0sb0JBQW9CLEdBQVEseUJBQXlCLENBQUM7QUFDNUQsTUFBTSx1QkFBdUIsR0FBSyx5REFBeUQsb0JBQW9CLEdBQUcsQ0FBQztBQUNuSCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLGlFQUFpRSxDQUFDO0FBRW5ILE1BQU0sU0FBUyxHQUFVLE1BQU0sQ0FBQztBQUNoQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFL0MsTUFBTSw4QkFBOEIsR0FBRyxXQUFXLENBQUM7QUFDbkQsTUFBTSw4QkFBOEIsR0FBRyxRQUFRLENBQUM7QUFDaEQsTUFBTSxzQkFBc0IsR0FBVyxtQ0FBbUMsQ0FBQztBQUUzRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFDO0FBRW5DLE1BQU0sd0JBQXdCLEdBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFDL0UsTUFBTSxpQ0FBaUMsR0FBRywyQkFBMkIsOEJBQThCLEdBQUcsQ0FBQztBQUN2RyxNQUFNLDJCQUEyQixHQUFTLDBCQUEwQiw4QkFBOEIsTUFBTSw4QkFBOEIsR0FBRyxDQUFDO0FBQzFJLE1BQU0sMEJBQTBCLEdBQVUscUJBQXFCLGdCQUFnQixFQUFFLENBQUM7QUFFbEYsd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDO0FB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bUJBQUUsQ0FBQyxHQUFHO1FBQ04sT0FBTyxNQUFNLGVBQWUsRUFBRSxDQUFDO0lBRW5DLElBQUksbUJBQUUsQ0FBQyxLQUFLO1FBQ1IsT0FBTyxNQUFNLGlCQUFpQixFQUFFLENBQUM7QUFDekMsQ0FBQztBQUdELE1BQU07QUFDTjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDWSxLQUFLO0lBQ2hCLElBQUksQ0FBQyxrQkFBa0I7UUFDbkIsa0JBQWtCLEdBQUcsTUFBTSxZQUFZLEVBQUUsQ0FBQztJQUU5QyxPQUFPLGtCQUFrQixDQUFDO0FBQzlCLENBQUM7QUFMRCw0QkFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoLXByb21pc2UnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGV4aXN0cyBmcm9tICcuLi91dGlscy9mcy1leGlzdHMtcHJvbWlzZWQnO1xuaW1wb3J0IHsgZXhlYywgZXhlY1Bvd2Vyc2hlbGwgfSBmcm9tICcuLi91dGlscy9leGVjJztcbmltcG9ydCB1bnF1b3RlIGZyb20gJy4uL3V0aWxzL3VucXVvdGUnO1xuaW1wb3J0IEFMSUFTRVMgZnJvbSAnLi4vYWxpYXNlcyc7XG5cbmNvbnN0IE1JQ1JPU09GVF9FREdFX0NMQVNTICAgICAgPSAnTWljcm9zb2Z0Lk1pY3Jvc29mdEVkZ2UnO1xuY29uc3QgTUlDUk9TT0ZUX0VER0VfS0VZX0dMT0IgICA9IGBIS0NVXFxcXFNvZnR3YXJlXFxcXENsYXNzZXNcXFxcQWN0aXZhdGFibGVDbGFzc2VzXFxcXFBhY2thZ2VcXFxcJHtNSUNST1NPRlRfRURHRV9DTEFTU30qYDtcbmNvbnN0IEJST1dTRVJfQ09NTUFORFNfS0VZX0dMT0IgPSByb290ID0+IGAke3Jvb3R9XFxcXFNvZnR3YXJlXFxcXENsaWVudHNcXFxcU3RhcnRNZW51SW50ZXJuZXRcXFxcKlxcXFxzaGVsbFxcXFxvcGVuXFxcXGNvbW1hbmRgO1xuXG5jb25zdCBMSU5FX1dSQVAgICAgICAgID0gJ1xcclxcbic7XG5jb25zdCBET1VCTEVfTElORV9XUkFQID0gTElORV9XUkFQICsgTElORV9XUkFQO1xuXG5jb25zdCBSRUdJU1RSWV9CUk9XU0VSX1BBVEhfUFJPUEVSVFkgPSAnKGRlZmF1bHQpJztcbmNvbnN0IFJFR0lTVFJZX0JST1dTRVJfTkFNRV9QUk9QRVJUWSA9ICdQU1BhdGgnO1xuY29uc3QgUkVHSVNUUllfUFJPUEVSVElFU19SRSAgICAgICAgID0gL14oXFwoZGVmYXVsdFxcKXxQU1BhdGgpXFxzKjpcXHMqKC4qKSQvO1xuXG5jb25zdCBNQVhfT1VUUFVUX1dJRFRIID0gMiAqKiAzMSAtIDE7XG5cbmNvbnN0IFBPV0VSU0hFTExfUElQRV9TWU1CT0wgPSAnfCc7XG5cbmNvbnN0IEdFVF9SRUdJU1RSWV9LRVlfQ09NTUFORCAgICAgICAgICA9IGtleSA9PiBgR2V0LUl0ZW0gJ1JlZ2lzdHJ5Ojoke2tleX0nYDtcbmNvbnN0IEdFVF9CUk9XU0VSX1BBVEhfUFJPUEVSVFlfQ09NTUFORCA9IGBHZXQtSXRlbVByb3BlcnR5IC1OYW1lICcke1JFR0lTVFJZX0JST1dTRVJfUEFUSF9QUk9QRVJUWX0nYDtcbmNvbnN0IEZPUk1BVF9CUk9XU0VSX0lORk9fQ09NTUFORCAgICAgICA9IGBGb3JtYXQtTGlzdCAtUHJvcGVydHkgJyR7UkVHSVNUUllfQlJPV1NFUl9QQVRIX1BST1BFUlRZfScsJyR7UkVHSVNUUllfQlJPV1NFUl9OQU1FX1BST1BFUlRZfSdgO1xuY29uc3QgTElNSVRfT1VUUFVUX1dJRFRIX0NPTU1BTkQgICAgICAgID0gYE91dC1TdHJpbmcgLVdpZHRoICR7TUFYX09VVFBVVF9XSURUSH1gO1xuXG4vLyBOT1RFOiBXZSBoYXZlIHRvIHVzZSBXcml0ZS1Ib3N0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggUG93ZXJTaGVsbCAyLjBcbmNvbnN0IFdSSVRFX0hPU1RfQ09NTUFORCA9ICdXcml0ZS1Ib3N0JztcblxuY29uc3QgR0VUX1JFR0lTVFJZX0JST1dTRVJfUFJPUEVSVElFU19DT01NQU5EID0ga2V5ID0+IFtcbiAgICBHRVRfUkVHSVNUUllfS0VZX0NPTU1BTkQoa2V5KSxcbiAgICBHRVRfQlJPV1NFUl9QQVRIX1BST1BFUlRZX0NPTU1BTkQsXG4gICAgRk9STUFUX0JST1dTRVJfSU5GT19DT01NQU5ELFxuICAgIExJTUlUX09VVFBVVF9XSURUSF9DT01NQU5ELFxuICAgIFdSSVRFX0hPU1RfQ09NTUFORFxuXS5qb2luKFBPV0VSU0hFTExfUElQRV9TWU1CT0wpO1xuXG4vLyBJbnN0YWxsYXRpb24gaW5mbyBjYWNoZVxudmFyIGluc3RhbGxhdGlvbnNDYWNoZSA9IG51bGw7XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFJlZ2lzdHJ5S2V5IChyZWdLZXlHbG9iKSB7XG4gICAgcmV0dXJuIGV4ZWNQb3dlcnNoZWxsKEdFVF9SRUdJU1RSWV9LRVlfQ09NTUFORChyZWdLZXlHbG9iKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFJlZ2lzdHJ5QnJvd3NlclByb3BlcnRpZXMgKHJlZ0tleUdsb2IpIHtcbiAgICByZXR1cm4gZXhlY1Bvd2Vyc2hlbGwoR0VUX1JFR0lTVFJZX0JST1dTRVJfUFJPUEVSVElFU19DT01NQU5EKHJlZ0tleUdsb2IpKTtcbn1cblxuLy8gRmluZCBpbnN0YWxsYXRpb25zIGZvciBkaWZmZXJlbnQgcGxhdGZvcm1zXG5hc3luYyBmdW5jdGlvbiBhZGRJbnN0YWxsYXRpb24gKGluc3RhbGxhdGlvbnMsIG5hbWUsIGluc3RQYXRoKSB7XG4gICAgdmFyIGZpbGVFeGlzdHMgPSBhd2FpdCBleGlzdHMoaW5zdFBhdGgpO1xuXG4gICAgaWYgKGZpbGVFeGlzdHMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoQUxJQVNFUykuc29tZShhbGlhcyA9PiB7XG4gICAgICAgICAgICB2YXIgeyBuYW1lUmUsIGNtZCwgbWFjT3BlbkNtZFRlbXBsYXRlLCBwYXRoIH0gPSBBTElBU0VTW2FsaWFzXTtcblxuICAgICAgICAgICAgaWYgKG5hbWVSZS50ZXN0KG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgaW5zdGFsbGF0aW9uc1thbGlhc10gPSB7IHBhdGg6IHBhdGggfHwgaW5zdFBhdGgsIGNtZCwgbWFjT3BlbkNtZFRlbXBsYXRlIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RNaWNyb3NvZnRFZGdlICgpIHtcbiAgICBjb25zdCByZWdpc3RyeVJlc3VsdCA9IGF3YWl0IGdldFJlZ2lzdHJ5S2V5KE1JQ1JPU09GVF9FREdFX0tFWV9HTE9CKTtcblxuICAgIGlmIChyZWdpc3RyeVJlc3VsdC5zdGRvdXQuaW5jbHVkZXMoTUlDUk9TT0ZUX0VER0VfQ0xBU1MpKVxuICAgICAgICByZXR1cm4gQUxJQVNFU1snZWRnZSddO1xuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEluUmVnaXN0cnkgKHJlZ2lzdHJ5Um9vdCkge1xuICAgIGNvbnN0IGluc3RhbGxhdGlvbnMgID0ge307XG4gICAgY29uc3QgcmVnaXN0cnlSZXN1bHQgPSAgYXdhaXQgZ2V0UmVnaXN0cnlCcm93c2VyUHJvcGVydGllcyhCUk9XU0VSX0NPTU1BTkRTX0tFWV9HTE9CKHJlZ2lzdHJ5Um9vdCkpO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlZ2lzdHJ5UmVzdWx0LnN0ZG91dFxuICAgICAgICAuc3BsaXQoRE9VQkxFX0xJTkVfV1JBUClcbiAgICAgICAgLm1hcChibG9jayA9PiBibG9ja1xuICAgICAgICAgICAgLnNwbGl0KExJTkVfV1JBUClcbiAgICAgICAgICAgIC5tYXAobGluZSA9PiBsaW5lLm1hdGNoKFJFR0lTVFJZX1BST1BFUlRJRVNfUkUpKVxuICAgICAgICAgICAgLmZpbHRlcihtYXRjaCA9PiAhIW1hdGNoKVxuICAgICAgICAgICAgLm1hcChtYXRjaCA9PiAoe1xuICAgICAgICAgICAgICAgIFttYXRjaFsxXV06IHVucXVvdGUobWF0Y2hbMl0pXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKVxuICAgICAgICAuZmlsdGVyKGJsb2NrID0+IGJsb2NrICYmIGJsb2NrLmxlbmd0aClcbiAgICAgICAgLm1hcChibG9jayA9PiBtZXJnZSguLi5ibG9jaykpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoZGF0YS5tYXAocmVjb3JkID0+IGFkZEluc3RhbGxhdGlvbihpbnN0YWxsYXRpb25zLCByZWNvcmRbUkVHSVNUUllfQlJPV1NFUl9OQU1FX1BST1BFUlRZXSwgcmVjb3JkW1JFR0lTVFJZX0JST1dTRVJfUEFUSF9QUk9QRVJUWV0pKSk7XG5cbiAgICByZXR1cm4gaW5zdGFsbGF0aW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZFdpbmRvd3NCcm93c2VycyAoKSB7XG4gICAgdmFyIG1hY2hpbmVSZWdpc3RlcmVkQnJvd3NlcnMgPSBhd2FpdCBzZWFyY2hJblJlZ2lzdHJ5KCdIS0VZX0xPQ0FMX01BQ0hJTkUnKTtcbiAgICB2YXIgdXNlclJlZ2lzdGVyZWRCcm93c2VycyAgICA9IGF3YWl0IHNlYXJjaEluUmVnaXN0cnkoJ0hLRVlfQ1VSUkVOVF9VU0VSJyk7XG4gICAgdmFyIGluc3RhbGxhdGlvbnMgICAgICAgICAgICAgPSBPYmplY3QuYXNzaWduKG1hY2hpbmVSZWdpc3RlcmVkQnJvd3NlcnMsIHVzZXJSZWdpc3RlcmVkQnJvd3NlcnMpO1xuICAgIHZhciBlZGdlQWxpYXMgICAgICAgICAgICAgICAgID0gYXdhaXQgZGV0ZWN0TWljcm9zb2Z0RWRnZSgpO1xuXG4gICAgaWYgKGVkZ2VBbGlhcylcbiAgICAgICAgaW5zdGFsbGF0aW9uc1snZWRnZSddID0gZWRnZUFsaWFzO1xuXG4gICAgcmV0dXJuIGluc3RhbGxhdGlvbnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmRNYWNCcm93c2VycyAoKSB7XG4gICAgdmFyIGluc3RhbGxhdGlvbnMgPSB7fTtcblxuICAgIC8vIE5PVEU6IHJlcGxhY2UgdGhlIHNwYWNlIHN5bWJvbCB3aXRoIGNvZGUsIGJlY2F1c2UgZ3JlcCBzcGxpdHMgc3RyaW5ncyBieSBzcGFjZS5cbiAgICB2YXIgc3Rkb3V0ID0gYXdhaXQgZXhlYygnbHMgXCIvQXBwbGljYXRpb25zL1wiIHwgZ3JlcCAtRSBcIkNocm9tZXxGaXJlZm94fE9wZXJhfFNhZmFyaXxDaHJvbWl1bVwiIHwgc2VkIC1FIFwicy8gLzAzMi9cIicpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc3Rkb3V0XG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLmZpbHRlcihmaWxlTmFtZSA9PiAhIWZpbGVOYW1lKVxuICAgICAgICAubWFwKGZpbGVOYW1lID0+IHtcbiAgICAgICAgICAgIC8vIE5PVEU6IHJlc3RvcmUgc3BhY2VcbiAgICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUucmVwbGFjZSgvMDMyL2csICcgJyk7XG5cbiAgICAgICAgICAgIHZhciBuYW1lID0gZmlsZU5hbWUucmVwbGFjZSgvLmFwcCQvLCAnJyk7XG4gICAgICAgICAgICB2YXIgcGF0aCA9IGAvQXBwbGljYXRpb25zLyR7ZmlsZU5hbWV9YDtcblxuICAgICAgICAgICAgcmV0dXJuIGFkZEluc3RhbGxhdGlvbihpbnN0YWxsYXRpb25zLCBuYW1lLCBwYXRoKTtcbiAgICAgICAgfSkpO1xuXG4gICAgcmV0dXJuIGluc3RhbGxhdGlvbnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmRMaW51eEJyb3dzZXJzICgpIHtcbiAgICB2YXIgaW5zdGFsbGF0aW9ucyA9IHt9O1xuXG4gICAgdmFyIGFsaWFzQ2hlY2tpbmdQcm9taXNlcyA9IE9iamVjdFxuICAgICAgICAua2V5cyhBTElBU0VTKVxuICAgICAgICAubWFwKG5hbWUgPT4ge1xuICAgICAgICAgICAgdmFyIHsgbGludXhCaW5hcmllcyB9ID0gQUxJQVNFU1tuYW1lXTtcblxuICAgICAgICAgICAgaWYgKCFsaW51eEJpbmFyaWVzKVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICB2YXIgZGV0ZWN0aW9uUHJvbWlzZXMgPSBsaW51eEJpbmFyaWVzXG4gICAgICAgICAgICAgICAgLm1hcChiaW5hcnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2hpY2goYmluYXJ5KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocGF0aCA9PiBhZGRJbnN0YWxsYXRpb24oaW5zdGFsbGF0aW9ucywgbmFtZSwgcGF0aCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IGJpbmFyeSBub3QgZm91bmQsIGp1c3QgZG8gbm90aGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoZGV0ZWN0aW9uUHJvbWlzZXMpO1xuICAgICAgICB9KTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGFsaWFzQ2hlY2tpbmdQcm9taXNlcyk7XG5cbiAgICByZXR1cm4gaW5zdGFsbGF0aW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmluZEJyb3dzZXJzICgpIHtcbiAgICBpZiAoT1Mud2luKVxuICAgICAgICByZXR1cm4gYXdhaXQgZmluZFdpbmRvd3NCcm93c2VycygpO1xuXG4gICAgaWYgKE9TLm1hYylcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZpbmRNYWNCcm93c2VycygpO1xuXG4gICAgaWYgKE9TLmxpbnV4KVxuICAgICAgICByZXR1cm4gYXdhaXQgZmluZExpbnV4QnJvd3NlcnMoKTtcbn1cblxuXG4vLyBBUElcbi8qKiBAdHlwZWRlZiB7T2JqZWN0fSBCcm93c2VySW5mb1xuICogQGRlc2NyaXB0aW9uIE9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBicm93c2VyIGluc3RhbGxlZCBvbiB0aGUgbWFjaGluZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfHVuZGVmaW5lZH0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBleGVjdXRhYmxlIGZpbGUgdGhhdCBzdGFydHMgdGhlIGJyb3dzZXIuXG4gKiAgUmVxdWlyZWQgb24gTWFjT1MgbWFjaGluZXMuIE9uIFdpbmRvd3MgbWFjaGluZXMsIGl0IGlzIHVzZWQgd2hlbiB0aGUgd2luT3BlbkNtZFRlbXBsYXRlIHByb3BlcnR5IGlzIHVuZGVmaW5lZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjbWQgLSBBZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hY09wZW5DbWRUZW1wbGF0ZSAtIEEgW011c3RhY2hlIHRlbXBsYXRlXShodHRwczovL2dpdGh1Yi5jb20vamFubC9tdXN0YWNoZS5qcyN0ZW1wbGF0ZXMpXG4gKiAgdGhhdCBwcm92aWRlcyBwYXJhbWV0ZXJzIGZvciBsYXVuY2hpbmcgdGhlIGJyb3dzZXIgb24gYSBNYWNPUyBtYWNoaW5lLlxuICogQHByb3BlcnR5IHtzdHJpbmd8dW5kZWZpbmVkfSB3aW5PcGVuQ21kVGVtcGxhdGUgLSBBIFtNdXN0YWNoZSB0ZW1wbGF0ZV0oaHR0cHM6Ly9naXRodWIuY29tL2phbmwvbXVzdGFjaGUuanMjdGVtcGxhdGVzKVxuICogIHRoYXQgcHJvdmlkZXMgcGFyYW1ldGVycyBmb3IgbGF1bmNoaW5nIHRoZSBicm93c2VyIG9uIGEgV2luZG93cyBtYWNoaW5lLiAgSWYgdW5kZWZpbmVkLCB0aGUgcGF0aCB0byB0aGVcbiAqICBleGVjdXRhYmxlIGZpbGUgc3BlY2lmaWVkIGJ5IHRoZSBwYXRoIHByb3BlcnR5IGlzIHVzZWQuXG4gKiBAZXhhbXBsZVxuICogIHtcbiAqICAgICAgIHBhdGg6ICdDOlxcXFxQcm9ncmFtRmlsZXNcXFxcLi4uXFxcXGZpcmVmb3guZXhlJyxcbiAqICAgICAgIGNtZDogJy1uZXctd2luZG93JyxcbiAqICAgICAgIG1hY09wZW5DbWRUZW1wbGF0ZTogJ29wZW4gLWEgXCJ7e3twYXRofX19XCIge3t7cGFnZVVybH19fSAtLWFyZ3Mge3t7Y21kfX19J1xuICogIH1cbiAqL1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGxpc3Qgb2YgdGhlIHtAbGluayBCcm93c2VySW5mb30gb2JqZWN0cyB0aGF0IGNvbnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGJyb3dzZXJzIGluc3RhbGxlZCBvbiB0aGUgbWFjaGluZS5cbiAqIEBmdW5jdGlvblxuICogQGFzeW5jXG4gKiBAbmFtZSBnZXRJbnN0YWxsYXRpb25zXG4gKiBAcmV0dXJucyB7T2JqZWN0LjxzdHJpbmcsIEJyb3dzZXJJbmZvPn0gTGlzdCBvZiB0aGUge0BsaW5rIEJyb3dzZXJJbmZvfSBvYmplY3RzXG4gKiAgIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGJyb3dzZXJzIGluc3RhbGxlZCBvbiB0aGUgbWFjaGluZS5cbiAqIEBleGFtcGxlXG4gKiB7XG4gKiAgIGNocm9tZToge1xuICogICAgICAgcGF0aDogJ0M6XFxcXFByb2dyYW1GaWxlc1xcXFwuLi5cXFxcY2hyb21lLmV4ZScsXG4gKiAgICAgICBjbWQ6ICctLW5ldy13aW5kb3cnLFxuICogICAgICAgbWFjT3BlbkNtZFRlbXBsYXRlOiAnb3BlbiAtbiAtYSBcInt7e3BhdGh9fX1cIiAtLWFyZ3Mge3t7cGFnZVVybH19fSB7e3tjbWR9fX0nXG4gKiAgIH0sXG4gKlxuICogICBmaXJlZm94OiB7XG4gKiAgICAgICBwYXRoOiAnQzpcXFxcUHJvZ3JhbUZpbGVzXFxcXC4uLlxcXFxmaXJlZm94LmV4ZScsXG4gKiAgICAgICBjbWQ6ICctbmV3LXdpbmRvdycsXG4gKiAgICAgICBtYWNPcGVuQ21kVGVtcGxhdGU6ICdvcGVuIC1hIFwie3t7cGF0aH19fVwiIHt7e3BhZ2VVcmx9fX0gLS1hcmdzIHt7e2NtZH19fSdcbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFpbnN0YWxsYXRpb25zQ2FjaGUpXG4gICAgICAgIGluc3RhbGxhdGlvbnNDYWNoZSA9IGF3YWl0IGZpbmRCcm93c2VycygpO1xuXG4gICAgcmV0dXJuIGluc3RhbGxhdGlvbnNDYWNoZTtcbn1cbiJdfQ==
{
"name": "testcafe-browser-tools",
"version": "2.0.4",
"version": "2.0.5",
"description": "An utility library for performing platform-dependent actions on browsers.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/DevExpress/testcafe-browser-tools",

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