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

@economist/component-ad-panel

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@economist/component-ad-panel - npm Package Compare versions

Comparing version 2.3.0 to 2.4.0

9

lib/index.js

@@ -63,6 +63,7 @@ 'use strict';

// Set targeting
pubAds.setTargeting('subs', targeting.subscriber);
if (targeting.etear) {
pubAds.setTargeting('etear', targeting.etear);
for (var targetingKey in targeting) {
if (targeting.hasOwnProperty(targetingKey)) {
pubAds.setTargeting(targetingKey, targeting[targetingKey]);
}
}

@@ -377,2 +378,2 @@

}
//# sourceMappingURL=data:application/json;base64,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c0I7QUFDcEIsV0FBTyxnQkFBTSxTQUFOLENBQWdCLE1BREg7QUFFcEIsWUFBUSxnQkFBTSxTQUFOLENBQWdCO0FBRkosR0FBdEIsQ0FGaUIsQ0FBbkI7QUFPQSxVQUFRLFNBQVIsR0FBb0I7QUFDbEIsY0FBVSxnQkFBTSxTQUFOLENBQWdCLElBRFI7QUFFbEIsV0FBTyxnQkFBTSxTQUFOLENBQWdCLE1BQWhCLENBQXVCLFVBRlo7QUFHbEIsZUFBVyxnQkFBTSxTQUFOLENBQWdCLE1BSFQ7QUFJbEIsY0FBVSxnQkFBTSxTQUFOLENBQWdCLElBSlI7QUFLbEIsb0JBQWdCLGdCQUFNLFNBQU4sQ0FBZ0IsTUFMZDtBQU1sQixXQUFPLGdCQUFNLFNBQU4sQ0FBZ0IsT0FBaEIsQ0FBd0IsVUFBeEIsQ0FOVztBQU9sQixpQkFBYSxnQkFBTSxTQUFOLENBQWdCLE9BQWhCLENBQ1gsZ0JBQU0sU0FBTixDQUFnQixPQUFoQixDQUNFLFVBREYsQ0FEVyxDQVBLO0FBWWxCLGVBQVcsZ0JBQU0sU0FBTixDQUFnQixJQVpUO0FBYWxCLG1CQUFlLGdCQUFNLFNBQU4sQ0FBZ0IsSUFiYjtBQWNsQixlQUFXLGdCQUFNLFNBQU4sQ0FBZ0IsT0FBaEIsQ0FBd0IsZ0JBQU0sU0FBTixDQUFnQixPQUFoQixDQUF3QixVQUF4QixDQUF4QixDQWRPO0FBZWxCLG1CQUFlLGdCQUFNLFNBQU4sQ0FBZ0IsTUFmYjtBQWdCbEIsWUFBUSxnQkFBTSxTQUFOLENBQWdCLElBaEJOO0FBaUJsQixXQUFPLGdCQUFNLFNBQU4sQ0FBZ0IsSUFqQkw7QUFrQmxCLHVCQUFtQixnQkFBTSxTQUFOLENBQWdCLElBbEJqQjtBQW1CbEIsNkJBQXlCLGdCQUFNLFNBQU4sQ0FBZ0IsSUFuQnZCO0FBb0JsQiwwQkFBc0IsZ0JBQU0sU0FBTixDQUFnQjtBQXBCcEIsR0FBcEI7QUFzQkQiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgd2luZG93OiBmYWxzZSAqL1xuLyogZ2xvYmFsIGRvY3VtZW50OiBmYWxzZSAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERvbSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHZhbHVlcyBmcm9tICdsb2Rhc2gudmFsdWVzJztcblxuZnVuY3Rpb24gdW5pcXVlSWQoKSB7XG4gIGNvbnN0IG1hdGhSYW5kb21Ub0ludE11bHRpcGxpZXIgPSAxZTE3O1xuICBjb25zdCBoZXggPSAxNjtcbiAgcmV0dXJuIChNYXRoLnJhbmRvbSgpICogbWF0aFJhbmRvbVRvSW50TXVsdGlwbGllcikudG9TdHJpbmcoaGV4KTtcbn1cblxubGV0IGFkUGFuZWxDb25maWcgPSB7fTtcbmNvbnN0IGFkRGl2cyA9IFtdO1xuZnVuY3Rpb24gZGlzcGxheUFkc0ZuKGdvb2dsZVRhZykge1xuICBpZiAoIWFkRGl2cy5sZW5ndGgpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZ29vZ2xlVGFnLmVuYWJsZVNlcnZpY2VzKCk7XG4gIGFkRGl2cy5mb3JFYWNoKChkaXYpID0+IHtcbiAgICBnb29nbGVUYWcuZGlzcGxheShkaXYpO1xuICB9KTtcblxuICAvLyBDbGVhbiB1cFxuICBhZERpdnMubGVuZ3RoID0gMDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRQYW5lbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBnZXQgZGVmYXVsdFByb3BzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgIGxhenlMb2FkOiB0cnVlLFxuICAgICAgbGF6eUxvYWRNYXJnaW46IDYwMCxcbiAgICAgIHNpemVzOiBbXG4gICAgICAgIHsgd2lkdGg6IDYwLCBoZWlnaHQ6IDYwIH0sXG4gICAgICAgIHsgd2lkdGg6IDcwLCBoZWlnaHQ6IDcwIH0sXG4gICAgICAgIHsgd2lkdGg6IDMwMCwgaGVpZ2h0OiAyNTAgfSxcbiAgICAgICAgeyB3aWR0aDogMTAyNCwgaGVpZ2h0OiA3NjggfSxcbiAgICAgIF0sXG4gICAgICBzaXplTWFwcGluZzogW1xuICAgICAgICBbXG4gICAgICAgICAgeyB3aWR0aDogOTgwLCBoZWlnaHQ6IDIwMCB9LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHsgd2lkdGg6IDEwMjQsIGhlaWdodDogNzY4IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgIHsgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHsgd2lkdGg6IDMwMCwgaGVpZ2h0OiAyNTAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICAgIHRhcmdldGluZzogW10sXG4gICAgICBzdHlsZWQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBjb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IGdvb2dsZVRhZyA9IEFkUGFuZWwuZ2V0T3JDcmVhdGVHb29nbGVUYWcoKTtcbiAgICBhZFBhbmVsQ29uZmlnID0gb3B0aW9ucztcblxuICAgIGdvb2dsZVRhZy5jbWQucHVzaCgoKSA9PiB7XG4gICAgICBjb25zdCBwdWJBZHMgPSBnb29nbGVUYWcucHViYWRzKCk7XG4gICAgICBjb25zdCB0YXJnZXRpbmcgPSBhZFBhbmVsQ29uZmlnLnRhcmdldGluZztcbiAgICAgIC8vIFNldCB0YXJnZXRpbmdcbiAgICAgIHB1YkFkcy5zZXRUYXJnZXRpbmcoJ3N1YnMnLCB0YXJnZXRpbmcuc3Vic2NyaWJlcik7XG5cbiAgICAgIGlmICh0YXJnZXRpbmcuZXRlYXIpIHtcbiAgICAgICAgcHViQWRzLnNldFRhcmdldGluZygnZXRlYXInLCB0YXJnZXRpbmcuZXRlYXIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWRQYW5lbENvbmZpZy5zcmEpIHtcbiAgICAgICAgLy8gZW5hYmxlcyBTaW5nbGUgUmVxdWVzdCBBcmNoaXRlY3R1cmUgKFNSQSlcbiAgICAgICAgcHViQWRzLmVuYWJsZVNpbmdsZVJlcXVlc3QoKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29sbGFwc2VzIGVtcHR5IGRpdiBlbGVtZW50cyBvbiBhIHBhZ2Ugd2hlbiB0aGVyZSBpcyBubyBhZCBjb250ZW50IHRvIGRpc3BsYXkuXG4gICAgICBwdWJBZHMuY29sbGFwc2VFbXB0eURpdnMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkaXNwbGF5QWRzKCkge1xuICAgIGNvbnN0IGdvb2dsZVRhZyA9IEFkUGFuZWwuZ2V0T3JDcmVhdGVHb29nbGVUYWcoKTtcbiAgICBpZiAodHlwZW9mIGdvb2dsZVRhZy5kaXNwbGF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkaXNwbGF5QWRzRm4oZ29vZ2xlVGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ29vZ2xlVGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgICAgZGlzcGxheUFkc0ZuKGdvb2dsZVRhZyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0T3JDcmVhdGVHb29nbGVUYWcoKSB7XG4gICAgLyogZ2xvYmFsIHdpbmRvdzogZmFsc2UgKi9cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAod2luZG93Lmdvb2dsZXRhZykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5nb29nbGV0YWc7XG4gICAgfVxuICAgIHdpbmRvdy5nb29nbGV0YWcgPSB7IGNtZDogW10gfTtcbiAgICBjb25zdCBnYWRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgZ2Fkcy5hc3luYyA9IHRydWU7XG4gICAgZ2Fkcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgY29uc3QgdXNlU3NsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JztcbiAgICBnYWRzLnNyYyA9IGAkeyB1c2VTc2wgPyAnaHR0cHM6JyA6ICdodHRwOicgfS8vd3d3Lmdvb2dsZXRhZ3NlcnZpY2VzLmNvbS90YWcvanMvZ3B0LmpzYDtcbiAgICB3aW5kb3cuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChnYWRzKTtcbiAgICByZXR1cm4gd2luZG93Lmdvb2dsZXRhZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyA9IHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3LmJpbmQodGhpcyk7XG4gICAgdGhpcy51bmxpc3RlblNsb3RSZW5kZXJFbmRlZCA9ICgpID0+IG51bGw7XG4gIH1cblxuICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB0YWdJZDogYGdvb2dsZWFkLSR7IHVuaXF1ZUlkKCkgfWAsXG4gICAgICBhZEdlbmVyYXRlZDogZmFsc2UsXG4gICAgICBhZEZhaWxlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnRhZ0lkKSB7XG4gICAgICBBZFBhbmVsLmdldE9yQ3JlYXRlR29vZ2xlVGFnKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5sYXp5TG9hZCAmJiB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudGFnSWQgJiYgIXRoaXMuc3RhdGUuYWRHZW5lcmF0ZWQpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVBZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyk7XG4gICAgICB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICBpc0VsZW1lbnRJblZpZXdwb3J0KGVsbSwgbWFyZ2luID0gMCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldENvbnRhaW5lckRvbUVsZW1lbnQoKTtcbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQgfHwgdHlwZW9mIGNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldENvbnRhaW5lckRvbUVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gcmVjdC5ib3R0b20gPiAtbWFyZ2luICYmXG4gICAgICByZWN0LnJpZ2h0ID4gLW1hcmdpbiAmJlxuICAgICAgcmVjdC5sZWZ0IDwgKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkgKyBtYXJnaW4gJiZcbiAgICAgIHJlY3QudG9wIDwgKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSArIG1hcmdpbjtcbiAgfVxuXG4gIGdldENvbnRhaW5lckRvbUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIFJlYWN0RG9tLmZpbmRET01Ob2RlKHRoaXMucmVmcy5jb250YWluZXIpO1xuICB9XG5cbiAgbG9hZEVsZW1lbnRXaGVuSW5WaWV3KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnJlZnMuY29udGFpbmVyO1xuICAgIGlmICghdGhpcy5zdGF0ZS5hZEdlbmVyYXRlZCAmJlxuICAgICAgICB0aGlzLmlzRWxlbWVudEluVmlld3BvcnQoY29udGFpbmVyRWxlbWVudCwgdGhpcy5wcm9wcy5sYXp5TG9hZE1hcmdpbikpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVBZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0VsZW1lbnRJblZpZXdwb3J0KGNvbnRhaW5lckVsZW1lbnQpID09PSB0cnVlKSB7XG4gICAgICBjb25zdCB0YXJnZXRDb250YWluZXJFbGVtZW50ID0gdGhpcy5nZXRDb250YWluZXJEb21FbGVtZW50KCk7XG4gICAgICB0YXJnZXRDb250YWluZXJFbGVtZW50LmNsYXNzTmFtZSArPSAnIGFkLXBhbmVsLS12aXNpYmxlJztcbiAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYW51cEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3KTtcbiAgICB0aGlzLnVubGlzdGVuU2xvdFJlbmRlckVuZGVkKCk7XG4gIH1cblxuICBsaXN0ZW5Ub1Nsb3RSZW5kZXJFbmRlZCh7IGdvb2dsZVRhZyB9KSB7XG4gICAgaWYgKCFnb29nbGVUYWcucHViYWRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpc3RlblRvU2xvdFJlbmRlckVuZGVkKCkgbXVzdCBiZSBjYWxsZWQgaW5zaWRlIGEgZ29vZ2xldGFnLmNtZC5wdXNoKClcXCdlZCBmdW5jdGlvbiEnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFkU2xvdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdsaXN0ZW5Ub1Nsb3RSZW5kZXJFbmRlZCgpIG11c3QgYmUgY2FsbGVkIHdpdGggdGhpcy5hZFNsb3QgYXZhaWxhYmxlIScpO1xuICAgIH1cblxuICAgIGNvbnN0IHNsb3QgPSB0aGlzLmFkU2xvdDtcbiAgICAvLyB0aGUgR1BUIEFQSSBkb2Vzbid0IGhhdmUgYSByZW1vdmVFdmVudExpc3RlbmVyIGZ1bmN0aW9uXG4gICAgbGV0IHN0b3BMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICBnb29nbGVUYWcucHViYWRzKCkuYWRkRXZlbnRMaXN0ZW5lcignc2xvdFJlbmRlckVuZGVkJywgKHNsb3RSZW5kZXJFbmRlZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoc3RvcExpc3RlbmluZyB8fCBzbG90UmVuZGVyRW5kZWRFdmVudC5zbG90ICE9PSBzbG90KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnByb3BzLm9uU2xvdFJlbmRlckVuZGVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TbG90UmVuZGVyRW5kZWQoc2xvdFJlbmRlckVuZGVkRXZlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKHNsb3RSZW5kZXJFbmRlZEV2ZW50LmlzRW1wdHkpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFkRmFpbGVkOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmNsZWFudXBFdmVudExpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkZhaWx1cmUpIHtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uRmFpbHVyZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudW5saXN0ZW5TbG90UmVuZGVyRW5kZWQoKTtcbiAgICB9KTtcbiAgICB0aGlzLnVubGlzdGVuU2xvdFJlbmRlckVuZGVkID0gKCkgPT4ge1xuICAgICAgc3RvcExpc3RlbmluZyA9IHRydWU7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgYnVpbGRTaXplTWFwcGluZygpIHtcbiAgICBjb25zdCBtYXBwaW5nID0gdGhpcy5wcm9wcy5zaXplTWFwcGluZyB8fCBbXTtcbiAgICBjb25zdCBnb29nbGVUYWcgPSBBZFBhbmVsLmdldE9yQ3JlYXRlR29vZ2xlVGFnKCk7XG4gICAgaWYgKCFnb29nbGVUYWcuc2l6ZU1hcHBpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVpbGRTaXplTWFwcGluZygpIG11c3QgYmUgY2FsbGVkIGluc2lkZSBhIGdvb2dsZXRhZy5jbWQucHVzaCgpXFwnZWQgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpemVNYXBwaW5nQnVpbGRlciA9IGdvb2dsZVRhZy5zaXplTWFwcGluZygpO1xuICAgIHJldHVybiBtYXBwaW5nLnJlZHVjZSgoYnVpbGRlciwgWyB2aWV3cG9ydFNpemUsIGFkU2l6ZXMgXSkgPT4gKFxuICAgICAgYnVpbGRlci5hZGRTaXplKHZhbHVlcyh2aWV3cG9ydFNpemUpLCBhZFNpemVzLm1hcCh2YWx1ZXMpKVxuICAgICksIHNpemVNYXBwaW5nQnVpbGRlcikuYnVpbGQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlQWQoKSB7XG4gICAgY29uc3QgZ29vZ2xlVGFnID0gQWRQYW5lbC5nZXRPckNyZWF0ZUdvb2dsZVRhZygpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5hZFRhZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZ29vZ2xlVGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemVNYXBwaW5nID0gdGhpcy5idWlsZFNpemVNYXBwaW5nKCk7XG4gICAgICBjb25zdCB7IGFkVGFnLCBzaXplcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHsgdGFnSWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgICB0aGlzLmFkU2xvdCA9IGdvb2dsZVRhZy5kZWZpbmVTbG90KGFkVGFnLCAoc2l6ZXMgfHwgW10pLm1hcCh2YWx1ZXMpLCB0YWdJZClcbiAgICAgICAgLmFkZFNlcnZpY2UoZ29vZ2xlVGFnLnB1YmFkcygpKVxuICAgICAgICAuZGVmaW5lU2l6ZU1hcHBpbmcoc2l6ZU1hcHBpbmcpO1xuICAgICAgZm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiB0aGlzLnByb3BzLnRhcmdldGluZykge1xuICAgICAgICB0aGlzLmFkU2xvdC5zZXRUYXJnZXRpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwdWJBZHMgPSBnb29nbGVUYWcucHViYWRzKCk7XG4gICAgICBpZiAoYWRQYW5lbENvbmZpZy5zcmEpIHtcbiAgICAgICAgYWREaXZzLnB1c2godGFnSWQpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25TbG90RGVmaW5lZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TbG90RGVmaW5lZCh0YWdJZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdvb2dsZVRhZy5lbmFibGVTZXJ2aWNlcygpO1xuICAgICAgICBnb29nbGVUYWcuZGlzcGxheSh0YWdJZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGlzdGVuVG9TbG90UmVuZGVyRW5kZWQoeyBnb29nbGVUYWcgfSk7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkltcHJlc3Npb25WaWV3YWJsZSkge1xuICAgICAgICBwdWJBZHMuYWRkRXZlbnRMaXN0ZW5lcignaW1wcmVzc2lvblZpZXdhYmxlJywgdGhpcy5wcm9wcy5vbkltcHJlc3Npb25WaWV3YWJsZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vblNsb3RWaXNpYmlsaXR5Q2hhbmdlZCkge1xuICAgICAgICBwdWJBZHMuYWRkRXZlbnRMaXN0ZW5lcignc2xvdFZpc2liaWxpdHlDaGFuZ2VkJywgdGhpcy5wcm9wcy5vblNsb3RWaXNpYmlsaXR5Q2hhbmdlZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFkR2VuZXJhdGVkOiB0cnVlIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuYWRGYWlsZWQpIHtcbiAgICAgIHJldHVybiAoPGRpdiAvPik7XG4gICAgfVxuICAgIGxldCB0YWcgPSBbXTtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnRhZ0lkKSB7XG4gICAgICBsZXQgYWRTdHlsZSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMucmVzZXJ2ZUhlaWdodCkge1xuICAgICAgICBhZFN0eWxlID0geyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMucmVzZXJ2ZUhlaWdodCB9O1xuICAgICAgfVxuICAgICAgdGFnID0gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWQtcGFuZWxfX2dvb2dsZWFkXCJcbiAgICAgICAgICBpZD17dGhpcy5zdGF0ZS50YWdJZH1cbiAgICAgICAgICBzdHlsZT17YWRTdHlsZX1cbiAgICAgICAgICB0aXRsZT1cIkFkdmVydGlzZW1lbnRcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgICBsZXQgcm9vdENsYXNzTmFtZXMgPSBbICdhZC1wYW5lbF9fY29udGFpbmVyJyBdO1xuICAgIGlmICh0aGlzLnByb3BzLnN0eWxlZCkge1xuICAgICAgcm9vdENsYXNzTmFtZXMgPSByb290Q2xhc3NOYW1lcy5jb25jYXQoWyAnYWQtcGFuZWxfX2NvbnRhaW5lci0tc3R5bGVkJyBdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYmxvY2spIHtcbiAgICAgIHJvb3RDbGFzc05hbWVzID0gcm9vdENsYXNzTmFtZXMuY29uY2F0KFsgJ2FkLXBhbmVsX19jb250YWluZXItLWJsb2NrJyBdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYW5pbWF0ZWQpIHtcbiAgICAgIHJvb3RDbGFzc05hbWVzID0gcm9vdENsYXNzTmFtZXMuY29uY2F0KFsgJ2FkLXBhbmVsX19hbmltYXRlZCcgXSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmNsYXNzTmFtZSkge1xuICAgICAgcm9vdENsYXNzTmFtZXMgPSByb290Q2xhc3NOYW1lcy5jb25jYXQoWyB0aGlzLnByb3BzLmNsYXNzTmFtZSBdKTtcbiAgICB9XG4gICAgY29uc3QgYXJpYSA9IHtcbiAgICAgIHJvbGU6ICdjb21wbGVtZW50YXJ5JyxcbiAgICAgIGl0ZW1TY29wZTogJ2h0dHBzOi8vc2NoZW1hLm9yZy9XUEFkQmxvY2snLFxuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgcmVmPVwiY29udGFpbmVyXCIgY2xhc3NOYW1lPXtyb290Q2xhc3NOYW1lcy5qb2luKCcgJyl9IHsuLi5hcmlhfT5cbiAgICAgICAge3RhZ31cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgc2l6ZU9iamVjdCA9IFJlYWN0LlByb3BUeXBlcy5vbmVPZihcbiAgICBSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihSZWFjdC5Qcm9wVHlwZXMubnVtYmVyKSxcbiAgICBSZWFjdC5Qcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgd2lkdGg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICBoZWlnaHQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgfSlcbiAgKTtcbiAgQWRQYW5lbC5wcm9wVHlwZXMgPSB7XG4gICAgYW5pbWF0ZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIGFkVGFnOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxhenlMb2FkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBsYXp5TG9hZE1hcmdpbjogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICBzaXplczogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2Yoc2l6ZU9iamVjdCksXG4gICAgc2l6ZU1hcHBpbmc6IFJlYWN0LlByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgICAgIHNpemVPYmplY3RcbiAgICAgIClcbiAgICApLFxuICAgIG9uRmFpbHVyZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25TbG90RGVmaW5lZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgdGFyZ2V0aW5nOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihzaXplT2JqZWN0KSksXG4gICAgcmVzZXJ2ZUhlaWdodDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICBzdHlsZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIGJsb2NrOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBvblNsb3RSZW5kZXJFbmRlZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25TbG90VmlzaWJpbGl0eUNoYW5nZWQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIG9uSW1wcmVzc2lvblZpZXdhYmxlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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QU0sU0FBTixDQUFnQixLQUFoQixDQUFzQjtBQUNwQixXQUFPLGdCQUFNLFNBQU4sQ0FBZ0IsTUFESDtBQUVwQixZQUFRLGdCQUFNLFNBQU4sQ0FBZ0I7QUFGSixHQUF0QixDQUZpQixDQUFuQjtBQU9BLFVBQVEsU0FBUixHQUFvQjtBQUNsQixjQUFVLGdCQUFNLFNBQU4sQ0FBZ0IsSUFEUjtBQUVsQixXQUFPLGdCQUFNLFNBQU4sQ0FBZ0IsTUFBaEIsQ0FBdUIsVUFGWjtBQUdsQixlQUFXLGdCQUFNLFNBQU4sQ0FBZ0IsTUFIVDtBQUlsQixjQUFVLGdCQUFNLFNBQU4sQ0FBZ0IsSUFKUjtBQUtsQixvQkFBZ0IsZ0JBQU0sU0FBTixDQUFnQixNQUxkO0FBTWxCLFdBQU8sZ0JBQU0sU0FBTixDQUFnQixPQUFoQixDQUF3QixVQUF4QixDQU5XO0FBT2xCLGlCQUFhLGdCQUFNLFNBQU4sQ0FBZ0IsT0FBaEIsQ0FDWCxnQkFBTSxTQUFOLENBQWdCLE9BQWhCLENBQ0UsVUFERixDQURXLENBUEs7QUFZbEIsZUFBVyxnQkFBTSxTQUFOLENBQWdCLElBWlQ7QUFhbEIsbUJBQWUsZ0JBQU0sU0FBTixDQUFnQixJQWJiO0FBY2xCLGVBQVcsZ0JBQU0sU0FBTixDQUFnQixPQUFoQixDQUF3QixnQkFBTSxTQUFOLENBQWdCLE9BQWhCLENBQXdCLFVBQXhCLENBQXhCLENBZE87QUFlbEIsbUJBQWUsZ0JBQU0sU0FBTixDQUFnQixNQWZiO0FBZ0JsQixZQUFRLGdCQUFNLFNBQU4sQ0FBZ0IsSUFoQk47QUFpQmxCLFdBQU8sZ0JBQU0sU0FBTixDQUFnQixJQWpCTDtBQWtCbEIsdUJBQW1CLGdCQUFNLFNBQU4sQ0FBZ0IsSUFsQmpCO0FBbUJsQiw2QkFBeUIsZ0JBQU0sU0FBTixDQUFnQixJQW5CdkI7QUFvQmxCLDBCQUFzQixnQkFBTSxTQUFOLENBQWdCO0FBcEJwQixHQUFwQjtBQXNCRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCB3aW5kb3c6IGZhbHNlICovXG4vKiBnbG9iYWwgZG9jdW1lbnQ6IGZhbHNlICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RG9tIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgdmFsdWVzIGZyb20gJ2xvZGFzaC52YWx1ZXMnO1xuXG5mdW5jdGlvbiB1bmlxdWVJZCgpIHtcbiAgY29uc3QgbWF0aFJhbmRvbVRvSW50TXVsdGlwbGllciA9IDFlMTc7XG4gIGNvbnN0IGhleCA9IDE2O1xuICByZXR1cm4gKE1hdGgucmFuZG9tKCkgKiBtYXRoUmFuZG9tVG9JbnRNdWx0aXBsaWVyKS50b1N0cmluZyhoZXgpO1xufVxuXG5sZXQgYWRQYW5lbENvbmZpZyA9IHt9O1xuY29uc3QgYWREaXZzID0gW107XG5mdW5jdGlvbiBkaXNwbGF5QWRzRm4oZ29vZ2xlVGFnKSB7XG4gIGlmICghYWREaXZzLmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuICBnb29nbGVUYWcuZW5hYmxlU2VydmljZXMoKTtcbiAgYWREaXZzLmZvckVhY2goKGRpdikgPT4ge1xuICAgIGdvb2dsZVRhZy5kaXNwbGF5KGRpdik7XG4gIH0pO1xuXG4gIC8vIENsZWFuIHVwXG4gIGFkRGl2cy5sZW5ndGggPSAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZFBhbmVsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIGdldCBkZWZhdWx0UHJvcHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICAgICAgbGF6eUxvYWQ6IHRydWUsXG4gICAgICBsYXp5TG9hZE1hcmdpbjogNjAwLFxuICAgICAgc2l6ZXM6IFtcbiAgICAgICAgeyB3aWR0aDogNjAsIGhlaWdodDogNjAgfSxcbiAgICAgICAgeyB3aWR0aDogNzAsIGhlaWdodDogNzAgfSxcbiAgICAgICAgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDI1MCB9LFxuICAgICAgICB7IHdpZHRoOiAxMDI0LCBoZWlnaHQ6IDc2OCB9LFxuICAgICAgXSxcbiAgICAgIHNpemVNYXBwaW5nOiBbXG4gICAgICAgIFtcbiAgICAgICAgICB7IHdpZHRoOiA5ODAsIGhlaWdodDogMjAwIH0sXG4gICAgICAgICAgW1xuICAgICAgICAgICAgeyB3aWR0aDogMTAyNCwgaGVpZ2h0OiA3NjggfSxcbiAgICAgICAgICBdLFxuICAgICAgICBdLFxuICAgICAgICBbXG4gICAgICAgICAgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sXG4gICAgICAgICAgW1xuICAgICAgICAgICAgeyB3aWR0aDogMzAwLCBoZWlnaHQ6IDI1MCB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIF0sXG4gICAgICBdLFxuICAgICAgdGFyZ2V0aW5nOiBbXSxcbiAgICAgIHN0eWxlZDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGNvbmZpZyhvcHRpb25zKSB7XG4gICAgY29uc3QgZ29vZ2xlVGFnID0gQWRQYW5lbC5nZXRPckNyZWF0ZUdvb2dsZVRhZygpO1xuICAgIGFkUGFuZWxDb25maWcgPSBvcHRpb25zO1xuXG4gICAgZ29vZ2xlVGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHB1YkFkcyA9IGdvb2dsZVRhZy5wdWJhZHMoKTtcbiAgICAgIGNvbnN0IHRhcmdldGluZyA9IGFkUGFuZWxDb25maWcudGFyZ2V0aW5nO1xuICAgICAgLy8gU2V0IHRhcmdldGluZ1xuXG4gICAgICBmb3IgKGNvbnN0IHRhcmdldGluZ0tleSBpbiB0YXJnZXRpbmcpIHtcbiAgICAgICAgaWYgKHRhcmdldGluZy5oYXNPd25Qcm9wZXJ0eSh0YXJnZXRpbmdLZXkpKSB7XG4gICAgICAgICAgcHViQWRzLnNldFRhcmdldGluZyh0YXJnZXRpbmdLZXksIHRhcmdldGluZ1t0YXJnZXRpbmdLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWRQYW5lbENvbmZpZy5zcmEpIHtcbiAgICAgICAgLy8gZW5hYmxlcyBTaW5nbGUgUmVxdWVzdCBBcmNoaXRlY3R1cmUgKFNSQSlcbiAgICAgICAgcHViQWRzLmVuYWJsZVNpbmdsZVJlcXVlc3QoKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29sbGFwc2VzIGVtcHR5IGRpdiBlbGVtZW50cyBvbiBhIHBhZ2Ugd2hlbiB0aGVyZSBpcyBubyBhZCBjb250ZW50IHRvIGRpc3BsYXkuXG4gICAgICBwdWJBZHMuY29sbGFwc2VFbXB0eURpdnMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkaXNwbGF5QWRzKCkge1xuICAgIGNvbnN0IGdvb2dsZVRhZyA9IEFkUGFuZWwuZ2V0T3JDcmVhdGVHb29nbGVUYWcoKTtcbiAgICBpZiAodHlwZW9mIGdvb2dsZVRhZy5kaXNwbGF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBkaXNwbGF5QWRzRm4oZ29vZ2xlVGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ29vZ2xlVGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgICAgZGlzcGxheUFkc0ZuKGdvb2dsZVRhZyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0T3JDcmVhdGVHb29nbGVUYWcoKSB7XG4gICAgLyogZ2xvYmFsIHdpbmRvdzogZmFsc2UgKi9cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5kb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAod2luZG93Lmdvb2dsZXRhZykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5nb29nbGV0YWc7XG4gICAgfVxuICAgIHdpbmRvdy5nb29nbGV0YWcgPSB7IGNtZDogW10gfTtcbiAgICBjb25zdCBnYWRzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgZ2Fkcy5hc3luYyA9IHRydWU7XG4gICAgZ2Fkcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgY29uc3QgdXNlU3NsID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JztcbiAgICBnYWRzLnNyYyA9IGAkeyB1c2VTc2wgPyAnaHR0cHM6JyA6ICdodHRwOicgfS8vd3d3Lmdvb2dsZXRhZ3NlcnZpY2VzLmNvbS90YWcvanMvZ3B0LmpzYDtcbiAgICB3aW5kb3cuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChnYWRzKTtcbiAgICByZXR1cm4gd2luZG93Lmdvb2dsZXRhZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKC4uLmFyZ3MpIHtcbiAgICBzdXBlciguLi5hcmdzKTtcbiAgICB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyA9IHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3LmJpbmQodGhpcyk7XG4gICAgdGhpcy51bmxpc3RlblNsb3RSZW5kZXJFbmRlZCA9ICgpID0+IG51bGw7XG4gIH1cblxuICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB0YWdJZDogYGdvb2dsZWFkLSR7IHVuaXF1ZUlkKCkgfWAsXG4gICAgICBhZEdlbmVyYXRlZDogZmFsc2UsXG4gICAgICBhZEZhaWxlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnRhZ0lkKSB7XG4gICAgICBBZFBhbmVsLmdldE9yQ3JlYXRlR29vZ2xlVGFnKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5sYXp5TG9hZCAmJiB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUudGFnSWQgJiYgIXRoaXMuc3RhdGUuYWRHZW5lcmF0ZWQpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVBZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5sYXp5TG9hZCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyk7XG4gICAgICB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICBpc0VsZW1lbnRJblZpZXdwb3J0KGVsbSwgbWFyZ2luID0gMCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldENvbnRhaW5lckRvbUVsZW1lbnQoKTtcbiAgICBpZiAoIWNvbnRhaW5lckVsZW1lbnQgfHwgdHlwZW9mIGNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldENvbnRhaW5lckRvbUVsZW1lbnQoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gcmVjdC5ib3R0b20gPiAtbWFyZ2luICYmXG4gICAgICByZWN0LnJpZ2h0ID4gLW1hcmdpbiAmJlxuICAgICAgcmVjdC5sZWZ0IDwgKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkgKyBtYXJnaW4gJiZcbiAgICAgIHJlY3QudG9wIDwgKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSArIG1hcmdpbjtcbiAgfVxuXG4gIGdldENvbnRhaW5lckRvbUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIFJlYWN0RG9tLmZpbmRET01Ob2RlKHRoaXMucmVmcy5jb250YWluZXIpO1xuICB9XG5cbiAgbG9hZEVsZW1lbnRXaGVuSW5WaWV3KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnJlZnMuY29udGFpbmVyO1xuICAgIGlmICghdGhpcy5zdGF0ZS5hZEdlbmVyYXRlZCAmJlxuICAgICAgICB0aGlzLmlzRWxlbWVudEluVmlld3BvcnQoY29udGFpbmVyRWxlbWVudCwgdGhpcy5wcm9wcy5sYXp5TG9hZE1hcmdpbikpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVBZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0VsZW1lbnRJblZpZXdwb3J0KGNvbnRhaW5lckVsZW1lbnQpID09PSB0cnVlKSB7XG4gICAgICBjb25zdCB0YXJnZXRDb250YWluZXJFbGVtZW50ID0gdGhpcy5nZXRDb250YWluZXJEb21FbGVtZW50KCk7XG4gICAgICB0YXJnZXRDb250YWluZXJFbGVtZW50LmNsYXNzTmFtZSArPSAnIGFkLXBhbmVsLS12aXNpYmxlJztcbiAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYW51cEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmxvYWRFbGVtZW50V2hlbkluVmlldyk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMubG9hZEVsZW1lbnRXaGVuSW5WaWV3KTtcbiAgICB0aGlzLnVubGlzdGVuU2xvdFJlbmRlckVuZGVkKCk7XG4gIH1cblxuICBsaXN0ZW5Ub1Nsb3RSZW5kZXJFbmRlZCh7IGdvb2dsZVRhZyB9KSB7XG4gICAgaWYgKCFnb29nbGVUYWcucHViYWRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpc3RlblRvU2xvdFJlbmRlckVuZGVkKCkgbXVzdCBiZSBjYWxsZWQgaW5zaWRlIGEgZ29vZ2xldGFnLmNtZC5wdXNoKClcXCdlZCBmdW5jdGlvbiEnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFkU2xvdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdsaXN0ZW5Ub1Nsb3RSZW5kZXJFbmRlZCgpIG11c3QgYmUgY2FsbGVkIHdpdGggdGhpcy5hZFNsb3QgYXZhaWxhYmxlIScpO1xuICAgIH1cblxuICAgIGNvbnN0IHNsb3QgPSB0aGlzLmFkU2xvdDtcbiAgICAvLyB0aGUgR1BUIEFQSSBkb2Vzbid0IGhhdmUgYSByZW1vdmVFdmVudExpc3RlbmVyIGZ1bmN0aW9uXG4gICAgbGV0IHN0b3BMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICBnb29nbGVUYWcucHViYWRzKCkuYWRkRXZlbnRMaXN0ZW5lcignc2xvdFJlbmRlckVuZGVkJywgKHNsb3RSZW5kZXJFbmRlZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoc3RvcExpc3RlbmluZyB8fCBzbG90UmVuZGVyRW5kZWRFdmVudC5zbG90ICE9PSBzbG90KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnByb3BzLm9uU2xvdFJlbmRlckVuZGVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TbG90UmVuZGVyRW5kZWQoc2xvdFJlbmRlckVuZGVkRXZlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKHNsb3RSZW5kZXJFbmRlZEV2ZW50LmlzRW1wdHkpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFkRmFpbGVkOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmNsZWFudXBFdmVudExpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkZhaWx1cmUpIHtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uRmFpbHVyZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMudW5saXN0ZW5TbG90UmVuZGVyRW5kZWQoKTtcbiAgICB9KTtcbiAgICB0aGlzLnVubGlzdGVuU2xvdFJlbmRlckVuZGVkID0gKCkgPT4ge1xuICAgICAgc3RvcExpc3RlbmluZyA9IHRydWU7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgYnVpbGRTaXplTWFwcGluZygpIHtcbiAgICBjb25zdCBtYXBwaW5nID0gdGhpcy5wcm9wcy5zaXplTWFwcGluZyB8fCBbXTtcbiAgICBjb25zdCBnb29nbGVUYWcgPSBBZFBhbmVsLmdldE9yQ3JlYXRlR29vZ2xlVGFnKCk7XG4gICAgaWYgKCFnb29nbGVUYWcuc2l6ZU1hcHBpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVpbGRTaXplTWFwcGluZygpIG11c3QgYmUgY2FsbGVkIGluc2lkZSBhIGdvb2dsZXRhZy5jbWQucHVzaCgpXFwnZWQgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIGNvbnN0IHNpemVNYXBwaW5nQnVpbGRlciA9IGdvb2dsZVRhZy5zaXplTWFwcGluZygpO1xuICAgIHJldHVybiBtYXBwaW5nLnJlZHVjZSgoYnVpbGRlciwgWyB2aWV3cG9ydFNpemUsIGFkU2l6ZXMgXSkgPT4gKFxuICAgICAgYnVpbGRlci5hZGRTaXplKHZhbHVlcyh2aWV3cG9ydFNpemUpLCBhZFNpemVzLm1hcCh2YWx1ZXMpKVxuICAgICksIHNpemVNYXBwaW5nQnVpbGRlcikuYnVpbGQoKTtcbiAgfVxuXG4gIGdlbmVyYXRlQWQoKSB7XG4gICAgY29uc3QgZ29vZ2xlVGFnID0gQWRQYW5lbC5nZXRPckNyZWF0ZUdvb2dsZVRhZygpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5hZFRhZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZ29vZ2xlVGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemVNYXBwaW5nID0gdGhpcy5idWlsZFNpemVNYXBwaW5nKCk7XG4gICAgICBjb25zdCB7IGFkVGFnLCBzaXplcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHsgdGFnSWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgICB0aGlzLmFkU2xvdCA9IGdvb2dsZVRhZy5kZWZpbmVTbG90KGFkVGFnLCAoc2l6ZXMgfHwgW10pLm1hcCh2YWx1ZXMpLCB0YWdJZClcbiAgICAgICAgLmFkZFNlcnZpY2UoZ29vZ2xlVGFnLnB1YmFkcygpKVxuICAgICAgICAuZGVmaW5lU2l6ZU1hcHBpbmcoc2l6ZU1hcHBpbmcpO1xuICAgICAgZm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiB0aGlzLnByb3BzLnRhcmdldGluZykge1xuICAgICAgICB0aGlzLmFkU2xvdC5zZXRUYXJnZXRpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwdWJBZHMgPSBnb29nbGVUYWcucHViYWRzKCk7XG4gICAgICBpZiAoYWRQYW5lbENvbmZpZy5zcmEpIHtcbiAgICAgICAgYWREaXZzLnB1c2godGFnSWQpO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25TbG90RGVmaW5lZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TbG90RGVmaW5lZCh0YWdJZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdvb2dsZVRhZy5lbmFibGVTZXJ2aWNlcygpO1xuICAgICAgICBnb29nbGVUYWcuZGlzcGxheSh0YWdJZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGlzdGVuVG9TbG90UmVuZGVyRW5kZWQoeyBnb29nbGVUYWcgfSk7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkltcHJlc3Npb25WaWV3YWJsZSkge1xuICAgICAgICBwdWJBZHMuYWRkRXZlbnRMaXN0ZW5lcignaW1wcmVzc2lvblZpZXdhYmxlJywgdGhpcy5wcm9wcy5vbkltcHJlc3Npb25WaWV3YWJsZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vblNsb3RWaXNpYmlsaXR5Q2hhbmdlZCkge1xuICAgICAgICBwdWJBZHMuYWRkRXZlbnRMaXN0ZW5lcignc2xvdFZpc2liaWxpdHlDaGFuZ2VkJywgdGhpcy5wcm9wcy5vblNsb3RWaXNpYmlsaXR5Q2hhbmdlZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFkR2VuZXJhdGVkOiB0cnVlIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuYWRGYWlsZWQpIHtcbiAgICAgIHJldHVybiAoPGRpdiAvPik7XG4gICAgfVxuICAgIGxldCB0YWcgPSBbXTtcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnRhZ0lkKSB7XG4gICAgICBsZXQgYWRTdHlsZSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMucmVzZXJ2ZUhlaWdodCkge1xuICAgICAgICBhZFN0eWxlID0geyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMucmVzZXJ2ZUhlaWdodCB9O1xuICAgICAgfVxuICAgICAgdGFnID0gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWQtcGFuZWxfX2dvb2dsZWFkXCJcbiAgICAgICAgICBpZD17dGhpcy5zdGF0ZS50YWdJZH1cbiAgICAgICAgICBzdHlsZT17YWRTdHlsZX1cbiAgICAgICAgICB0aXRsZT1cIkFkdmVydGlzZW1lbnRcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgICBsZXQgcm9vdENsYXNzTmFtZXMgPSBbICdhZC1wYW5lbF9fY29udGFpbmVyJyBdO1xuICAgIGlmICh0aGlzLnByb3BzLnN0eWxlZCkge1xuICAgICAgcm9vdENsYXNzTmFtZXMgPSByb290Q2xhc3NOYW1lcy5jb25jYXQoWyAnYWQtcGFuZWxfX2NvbnRhaW5lci0tc3R5bGVkJyBdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYmxvY2spIHtcbiAgICAgIHJvb3RDbGFzc05hbWVzID0gcm9vdENsYXNzTmFtZXMuY29uY2F0KFsgJ2FkLXBhbmVsX19jb250YWluZXItLWJsb2NrJyBdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJvcHMuYW5pbWF0ZWQpIHtcbiAgICAgIHJvb3RDbGFzc05hbWVzID0gcm9vdENsYXNzTmFtZXMuY29uY2F0KFsgJ2FkLXBhbmVsX19hbmltYXRlZCcgXSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLmNsYXNzTmFtZSkge1xuICAgICAgcm9vdENsYXNzTmFtZXMgPSByb290Q2xhc3NOYW1lcy5jb25jYXQoWyB0aGlzLnByb3BzLmNsYXNzTmFtZSBdKTtcbiAgICB9XG4gICAgY29uc3QgYXJpYSA9IHtcbiAgICAgIHJvbGU6ICdjb21wbGVtZW50YXJ5JyxcbiAgICAgIGl0ZW1TY29wZTogJ2h0dHBzOi8vc2NoZW1hLm9yZy9XUEFkQmxvY2snLFxuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgcmVmPVwiY29udGFpbmVyXCIgY2xhc3NOYW1lPXtyb290Q2xhc3NOYW1lcy5qb2luKCcgJyl9IHsuLi5hcmlhfT5cbiAgICAgICAge3RhZ31cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgc2l6ZU9iamVjdCA9IFJlYWN0LlByb3BUeXBlcy5vbmVPZihcbiAgICBSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihSZWFjdC5Qcm9wVHlwZXMubnVtYmVyKSxcbiAgICBSZWFjdC5Qcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgd2lkdGg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICBoZWlnaHQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgfSlcbiAgKTtcbiAgQWRQYW5lbC5wcm9wVHlwZXMgPSB7XG4gICAgYW5pbWF0ZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIGFkVGFnOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxhenlMb2FkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBsYXp5TG9hZE1hcmdpbjogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICBzaXplczogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2Yoc2l6ZU9iamVjdCksXG4gICAgc2l6ZU1hcHBpbmc6IFJlYWN0LlByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgUmVhY3QuUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgICAgIHNpemVPYmplY3RcbiAgICAgIClcbiAgICApLFxuICAgIG9uRmFpbHVyZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25TbG90RGVmaW5lZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgdGFyZ2V0aW5nOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihSZWFjdC5Qcm9wVHlwZXMuYXJyYXlPZihzaXplT2JqZWN0KSksXG4gICAgcmVzZXJ2ZUhlaWdodDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICBzdHlsZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIGJsb2NrOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBvblNsb3RSZW5kZXJFbmRlZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25TbG90VmlzaWJpbGl0eUNoYW5nZWQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIG9uSW1wcmVzc2lvblZpZXdhYmxlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgfTtcbn1cbiJdfQ==
{
"name": "@economist/component-ad-panel",
"version": "2.3.0",
"version": "2.4.0",
"description": "An advert panel using GPT tags",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/economist-components/component-ad-panel",

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