testcafe 3.6.2 → 3.7.0-rc.1

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.
@@ -5,6 +5,7 @@
5
5
  const path = require('path');
6
6
  const url = require('url');
7
7
  const v8FlagsFilter = require('@devexpress/bin-v8-flags-filter');
8
+ const semver = require('semver');
8
9
 
9
10
  const ESM_OPTION = '--esm';
10
11
 
@@ -12,7 +13,8 @@ const forcedArgs = [];
12
13
 
13
14
  if (process.argv.slice(2).includes(ESM_OPTION)) {
14
15
  forcedArgs.push('--no-warnings');
15
- forcedArgs.push(`--experimental-loader=${url.pathToFileURL(path.join(__dirname, '../lib/compiler/esm-loader.js')).href}`);
16
+ if (!semver.satisfies(process.version, '18.19.0 - 18.x || >=20.8.0'))
17
+ forcedArgs.push(`--experimental-loader=${url.pathToFileURL(path.join(__dirname, '../lib/compiler/esm-loader.js')).href}`);
16
18
  }
17
19
 
18
20
  v8FlagsFilter(path.join(__dirname, '../lib/cli'), {
@@ -4,10 +4,11 @@ exports.buildChromeArgs = exports.CONTAINERIZED_CHROME_FLAGS = void 0;
4
4
  exports.CONTAINERIZED_CHROME_FLAGS = ['--no-sandbox', '--disable-dev-shm-usage'];
5
5
  function buildChromeArgs({ config, cdpPort, platformArgs, tempProfileDir, isContainerized, isNativeAutomation, browserName }) {
6
6
  const headlessMode = ['chrome', 'chromium'].includes(browserName) ? '--headless=new' : '--headless';
7
+ const defaultArgs = ['--disable-search-engine-choice-screen'];
7
8
  let chromeArgs = []
8
9
  .concat(cdpPort ? [`--remote-debugging-port=${cdpPort}`] : [], !config.userProfile ? [`--user-data-dir=${tempProfileDir.path}`] : [], config.headless ? [headlessMode] : [], config.userArgs ? [config.userArgs] : [],
9
10
  // NOTE: we need to prevent new window blocking for multiple windows in Native Automation
10
- isNativeAutomation ? ['--disable-popup-blocking'] : [], platformArgs ? [platformArgs] : [])
11
+ isNativeAutomation ? ['--disable-popup-blocking'] : [], platformArgs ? [platformArgs] : [], defaultArgs)
11
12
  .join(' ');
12
13
  if (isContainerized) {
13
14
  exports.CONTAINERIZED_CHROME_FLAGS.forEach(flag => {
@@ -18,4 +19,4 @@ function buildChromeArgs({ config, cdpPort, platformArgs, tempProfileDir, isCont
18
19
  return chromeArgs;
19
20
  }
20
21
  exports.buildChromeArgs = buildChromeArgs;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY2hyb21lLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2J1aWxkLWNocm9tZS1hcmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUcsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsQ0FBQztBQUV0RixTQUFnQixlQUFlLENBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRTtJQUNoSSxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFFcEcsSUFBSSxVQUFVLEdBQUcsRUFBRTtTQUNkLE1BQU0sQ0FDSCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckQsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ3hDLHlGQUF5RjtJQUN6RixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3RELFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyQztTQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVmLElBQUksZUFBZSxFQUFFO1FBQ2pCLGtDQUEwQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQztBQXZCRCwwQ0F1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OVEFJTkVSSVpFRF9DSFJPTUVfRkxBR1MgPSBbJy0tbm8tc2FuZGJveCcsICctLWRpc2FibGUtZGV2LXNobS11c2FnZSddO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDaHJvbWVBcmdzICh7IGNvbmZpZywgY2RwUG9ydCwgcGxhdGZvcm1BcmdzLCB0ZW1wUHJvZmlsZURpciwgaXNDb250YWluZXJpemVkLCBpc05hdGl2ZUF1dG9tYXRpb24sIGJyb3dzZXJOYW1lIH0pIHtcbiAgICBjb25zdCBoZWFkbGVzc01vZGUgPSBbJ2Nocm9tZScsICdjaHJvbWl1bSddLmluY2x1ZGVzKGJyb3dzZXJOYW1lKSA/ICctLWhlYWRsZXNzPW5ldycgOiAnLS1oZWFkbGVzcyc7XG5cbiAgICBsZXQgY2hyb21lQXJncyA9IFtdXG4gICAgICAgIC5jb25jYXQoXG4gICAgICAgICAgICBjZHBQb3J0ID8gW2AtLXJlbW90ZS1kZWJ1Z2dpbmctcG9ydD0ke2NkcFBvcnR9YF0gOiBbXSxcbiAgICAgICAgICAgICFjb25maWcudXNlclByb2ZpbGUgPyBbYC0tdXNlci1kYXRhLWRpcj0ke3RlbXBQcm9maWxlRGlyLnBhdGh9YF0gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy5oZWFkbGVzcyA/IFtoZWFkbGVzc01vZGVdIDogW10sXG4gICAgICAgICAgICBjb25maWcudXNlckFyZ3MgPyBbY29uZmlnLnVzZXJBcmdzXSA6IFtdLFxuICAgICAgICAgICAgLy8gTk9URTogd2UgbmVlZCB0byBwcmV2ZW50IG5ldyB3aW5kb3cgYmxvY2tpbmcgZm9yIG11bHRpcGxlIHdpbmRvd3MgaW4gTmF0aXZlIEF1dG9tYXRpb25cbiAgICAgICAgICAgIGlzTmF0aXZlQXV0b21hdGlvbiA/IFsnLS1kaXNhYmxlLXBvcHVwLWJsb2NraW5nJ10gOiBbXSxcbiAgICAgICAgICAgIHBsYXRmb3JtQXJncyA/IFtwbGF0Zm9ybUFyZ3NdIDogW11cbiAgICAgICAgKVxuICAgICAgICAuam9pbignICcpO1xuXG4gICAgaWYgKGlzQ29udGFpbmVyaXplZCkge1xuICAgICAgICBDT05UQUlORVJJWkVEX0NIUk9NRV9GTEFHUy5mb3JFYWNoKGZsYWcgPT4ge1xuICAgICAgICAgICAgaWYgKCFjaHJvbWVBcmdzLmluY2x1ZGVzKGZsYWcpKVxuICAgICAgICAgICAgICAgIGNocm9tZUFyZ3MgPSBjaHJvbWVBcmdzLmNvbmNhdCgnICcsIGZsYWcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hyb21lQXJncztcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY2hyb21lLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2J1aWxkLWNocm9tZS1hcmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUcsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsQ0FBQztBQUV0RixTQUFnQixlQUFlLENBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRTtJQUNoSSxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDcEcsTUFBTSxXQUFXLEdBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRS9ELElBQUksVUFBVSxHQUFHLEVBQUU7U0FDZCxNQUFNLENBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JELENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUN4Qyx5RkFBeUY7SUFDekYsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN0RCxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDbEMsV0FBVyxDQUNkO1NBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWYsSUFBSSxlQUFlLEVBQUU7UUFDakIsa0NBQTBCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDMUIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDO0FBekJELDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT05UQUlORVJJWkVEX0NIUk9NRV9GTEFHUyA9IFsnLS1uby1zYW5kYm94JywgJy0tZGlzYWJsZS1kZXYtc2htLXVzYWdlJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENocm9tZUFyZ3MgKHsgY29uZmlnLCBjZHBQb3J0LCBwbGF0Zm9ybUFyZ3MsIHRlbXBQcm9maWxlRGlyLCBpc0NvbnRhaW5lcml6ZWQsIGlzTmF0aXZlQXV0b21hdGlvbiwgYnJvd3Nlck5hbWUgfSkge1xuICAgIGNvbnN0IGhlYWRsZXNzTW9kZSA9IFsnY2hyb21lJywgJ2Nocm9taXVtJ10uaW5jbHVkZXMoYnJvd3Nlck5hbWUpID8gJy0taGVhZGxlc3M9bmV3JyA6ICctLWhlYWRsZXNzJztcbiAgICBjb25zdCBkZWZhdWx0QXJncyAgPSBbJy0tZGlzYWJsZS1zZWFyY2gtZW5naW5lLWNob2ljZS1zY3JlZW4nXTtcblxuICAgIGxldCBjaHJvbWVBcmdzID0gW11cbiAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICAgIGNkcFBvcnQgPyBbYC0tcmVtb3RlLWRlYnVnZ2luZy1wb3J0PSR7Y2RwUG9ydH1gXSA6IFtdLFxuICAgICAgICAgICAgIWNvbmZpZy51c2VyUHJvZmlsZSA/IFtgLS11c2VyLWRhdGEtZGlyPSR7dGVtcFByb2ZpbGVEaXIucGF0aH1gXSA6IFtdLFxuICAgICAgICAgICAgY29uZmlnLmhlYWRsZXNzID8gW2hlYWRsZXNzTW9kZV0gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy51c2VyQXJncyA/IFtjb25maWcudXNlckFyZ3NdIDogW10sXG4gICAgICAgICAgICAvLyBOT1RFOiB3ZSBuZWVkIHRvIHByZXZlbnQgbmV3IHdpbmRvdyBibG9ja2luZyBmb3IgbXVsdGlwbGUgd2luZG93cyBpbiBOYXRpdmUgQXV0b21hdGlvblxuICAgICAgICAgICAgaXNOYXRpdmVBdXRvbWF0aW9uID8gWyctLWRpc2FibGUtcG9wdXAtYmxvY2tpbmcnXSA6IFtdLFxuICAgICAgICAgICAgcGxhdGZvcm1BcmdzID8gW3BsYXRmb3JtQXJnc10gOiBbXSxcbiAgICAgICAgICAgIGRlZmF1bHRBcmdzXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgIGlmIChpc0NvbnRhaW5lcml6ZWQpIHtcbiAgICAgICAgQ09OVEFJTkVSSVpFRF9DSFJPTUVfRkxBR1MuZm9yRWFjaChmbGFnID0+IHtcbiAgICAgICAgICAgIGlmICghY2hyb21lQXJncy5pbmNsdWRlcyhmbGFnKSlcbiAgICAgICAgICAgICAgICBjaHJvbWVBcmdzID0gY2hyb21lQXJncy5jb25jYXQoJyAnLCBmbGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNocm9tZUFyZ3M7XG59XG4iXX0=
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getActiveTab = exports.getFirstTab = exports.getTabById = exports.getTabs = void 0;
7
7
  const chrome_remote_interface_1 = __importDefault(require("chrome-remote-interface"));
8
8
  const DEVTOOLS_TAB_URL_REGEX = /^devtools:\/\/devtools/;
9
+ // NOTE: Github issue: https://github.com/DevExpress/testcafe/issues/8286
10
+ const CHROME_EXTENSION_TAB_URL_REGEX = /^chrome-extension:\/\//;
11
+ function isInternalUrl(url) {
12
+ return DEVTOOLS_TAB_URL_REGEX.test(url) || CHROME_EXTENSION_TAB_URL_REGEX.test(url);
13
+ }
9
14
  async function getTabs(port) {
10
15
  const tabs = await chrome_remote_interface_1.default.List({ port });
11
- return tabs.filter(t => t.type === 'page' && !DEVTOOLS_TAB_URL_REGEX.test(t.url));
16
+ return tabs.filter(t => t.type === 'page' && !isInternalUrl(t.url));
12
17
  }
13
18
  exports.getTabs = getTabs;
14
19
  async function getTabById(port, id) {
@@ -28,4 +33,4 @@ async function getActiveTab(port, activeWindowId) {
28
33
  return tabs[0];
29
34
  }
30
35
  exports.getActiveTab = getActiveTab;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0ZBQW1FO0FBRW5FLE1BQU0sc0JBQXNCLEdBQUcsd0JBQXdCLENBQUM7QUFFakQsS0FBSyxVQUFVLE9BQU8sQ0FBRSxJQUFZO0lBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0saUNBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFKRCwwQkFJQztBQUVNLEtBQUssVUFBVSxVQUFVLENBQUUsSUFBWSxFQUFFLEVBQVU7SUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQWUsQ0FBQztBQUN6RCxDQUFDO0FBSkQsZ0NBSUM7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFFLElBQVk7SUFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUpELGtDQUlDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FBRSxJQUFZLEVBQUUsY0FBc0I7SUFDcEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQWUsQ0FBQztJQUUxRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDO0FBUEQsb0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVtb3RlQ2hyb21lLCB7IFRhcmdldEluZm8gfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5cbmNvbnN0IERFVlRPT0xTX1RBQl9VUkxfUkVHRVggPSAvXmRldnRvb2xzOlxcL1xcL2RldnRvb2xzLztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhYnMgKHBvcnQ6IG51bWJlcik6IFByb21pc2U8VGFyZ2V0SW5mb1tdPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IHJlbW90ZUNocm9tZS5MaXN0KHsgcG9ydCB9KTtcblxuICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnICYmICFERVZUT09MU19UQUJfVVJMX1JFR0VYLnRlc3QodC51cmwpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhYkJ5SWQgKHBvcnQ6IG51bWJlciwgaWQ6IHN0cmluZyk6IFByb21pc2U8VGFyZ2V0SW5mbz4ge1xuICAgIGNvbnN0IHRhYnMgPSBhd2FpdCBnZXRUYWJzKHBvcnQpO1xuXG4gICAgcmV0dXJuIHRhYnMuZmluZCh0YWIgPT4gdGFiLmlkID09PSBpZCkgYXMgVGFyZ2V0SW5mbztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpcnN0VGFiIChwb3J0OiBudW1iZXIpOiBQcm9taXNlPFRhcmdldEluZm8+IHtcbiAgICBjb25zdCB0YWJzID0gYXdhaXQgZ2V0VGFicyhwb3J0KTtcblxuICAgIHJldHVybiB0YWJzWzBdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWN0aXZlVGFiIChwb3J0OiBudW1iZXIsIGFjdGl2ZVdpbmRvd0lkOiBzdHJpbmcpOiBQcm9taXNlPFRhcmdldEluZm8+IHtcbiAgICBjb25zdCB0YWJzID0gYXdhaXQgZ2V0VGFicyhwb3J0KTtcblxuICAgIGlmIChhY3RpdmVXaW5kb3dJZClcbiAgICAgICAgcmV0dXJuIHRhYnMuZmluZCh0ID0+IHQudGl0bGUuaW5jbHVkZXMoYWN0aXZlV2luZG93SWQpKSBhcyBUYXJnZXRJbmZvO1xuXG4gICAgcmV0dXJuIHRhYnNbMF07XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0ZBQW1FO0FBRW5FLE1BQU0sc0JBQXNCLEdBQUcsd0JBQXdCLENBQUM7QUFDeEQseUVBQXlFO0FBQ3pFLE1BQU0sOEJBQThCLEdBQUcsd0JBQXdCLENBQUM7QUFFaEUsU0FBUyxhQUFhLENBQUUsR0FBVztJQUMvQixPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQUUsSUFBWTtJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLGlDQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBSkQsMEJBSUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLElBQVksRUFBRSxFQUFVO0lBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFlLENBQUM7QUFDekQsQ0FBQztBQUpELGdDQUlDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBRSxJQUFZO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFKRCxrQ0FJQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQUUsSUFBWSxFQUFFLGNBQXNCO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFlLENBQUM7SUFFMUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQVBELG9DQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbW90ZUNocm9tZSwgeyBUYXJnZXRJbmZvIH0gZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuXG5jb25zdCBERVZUT09MU19UQUJfVVJMX1JFR0VYID0gL15kZXZ0b29sczpcXC9cXC9kZXZ0b29scy87XG4vLyBOT1RFOiBHaXRodWIgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL3Rlc3RjYWZlL2lzc3Vlcy84Mjg2XG5jb25zdCBDSFJPTUVfRVhURU5TSU9OX1RBQl9VUkxfUkVHRVggPSAvXmNocm9tZS1leHRlbnNpb246XFwvXFwvLztcblxuZnVuY3Rpb24gaXNJbnRlcm5hbFVybCAodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gREVWVE9PTFNfVEFCX1VSTF9SRUdFWC50ZXN0KHVybCkgfHwgQ0hST01FX0VYVEVOU0lPTl9UQUJfVVJMX1JFR0VYLnRlc3QodXJsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhYnMgKHBvcnQ6IG51bWJlcik6IFByb21pc2U8VGFyZ2V0SW5mb1tdPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IHJlbW90ZUNocm9tZS5MaXN0KHsgcG9ydCB9KTtcblxuICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnICYmICFpc0ludGVybmFsVXJsKHQudXJsKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUYWJCeUlkIChwb3J0OiBudW1iZXIsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFRhcmdldEluZm8+IHtcbiAgICBjb25zdCB0YWJzID0gYXdhaXQgZ2V0VGFicyhwb3J0KTtcblxuICAgIHJldHVybiB0YWJzLmZpbmQodGFiID0+IHRhYi5pZCA9PT0gaWQpIGFzIFRhcmdldEluZm87XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaXJzdFRhYiAocG9ydDogbnVtYmVyKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICByZXR1cm4gdGFic1swXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFjdGl2ZVRhYiAocG9ydDogbnVtYmVyLCBhY3RpdmVXaW5kb3dJZDogc3RyaW5nKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICBpZiAoYWN0aXZlV2luZG93SWQpXG4gICAgICAgIHJldHVybiB0YWJzLmZpbmQodCA9PiB0LnRpdGxlLmluY2x1ZGVzKGFjdGl2ZVdpbmRvd0lkKSkgYXMgVGFyZ2V0SW5mbztcblxuICAgIHJldHVybiB0YWJzWzBdO1xufVxuIl19