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

cci-pingu

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

cci-pingu - npm Package Compare versions

Comparing version 2.1.0 to 2.1.1

4

dist/lib/task.js

@@ -56,3 +56,3 @@ 'use strict';

try {
var script = (0, _child_process.spawn)(scriptFile, [config._target], { cwd: _path2.default.dirname(scriptFile) });
var script = (0, _child_process.spawn)(scriptFile, [config._target, config._last], { cwd: _path2.default.dirname(scriptFile) });
script.stdout.on('data', function (data) {

@@ -272,2 +272,2 @@ return console.info('Script STDOUT:\n' + data.toString());

exports.default = _module;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90YXNrLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsIm9wdGlvbnMiLCJjb25maWciLCJkb3dubG9hZEVycm9yIiwiRVhJVF9DT0RFIiwic2NoZWR1bGVOZXh0IiwiX3NhdmUiLCJsYXN0IiwiX2xhc3QiLCJjZmdGaWxlIiwid3JpdGUiLCJjb25zb2xlIiwiaW5mbyIsInByb2Nlc3MiLCJleGl0Iiwic2V0VGltZW91dCIsInJ1biIsImludGVydmFsIiwic3RhcnRTY3JpcHQiLCJzY3JpcHRGaWxlIiwicmVzb2x2ZSIsInNjcmlwdCIsIl90YXJnZXQiLCJjd2QiLCJkaXJuYW1lIiwic3Rkb3V0Iiwib24iLCJkYXRhIiwidG9TdHJpbmciLCJzdGRlcnIiLCJ3YXJuIiwiZXJyIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiY29kZSIsImUiLCJtZXNzYWdlIiwiY2NpRG93bmxvYWRPbmUiLCJfdXJscyIsImxlbmd0aCIsInVybCIsInBvcCIsImZpbGVuYW1lIiwic3BsaXQiLCJzdHJlYW1OYW1lIiwiam9pbiIsInN0cmVhbSIsImNyZWF0ZVdyaXRlU3RyZWFtIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsImdldCIsInF1ZXJ5IiwidG9rZW4iLCJ0aW1lb3V0IiwiZHVyIiwic3BsaWNlIiwibmV4dFRpY2siLCJwaXBlIiwiY2NpRG93bmxvYWQiLCJzdGF0U3luYyIsImRpcmVjdG9yeSIsImJhc2VuYW1lIiwiaSIsImxvZyIsIm1rZGlyU3luYyIsImNjaUFydGlmYWN0c0luZm9IYW5kbGVyIiwicmVzIiwib2siLCJzdGF0dXMiLCJ0ZXh0IiwiYm9keSIsInByZWZpeGVzIiwiYXJ0aWZhY3RzIiwibWFwIiwibmFtZSIsIml0ZW0iLCJmb3VuZCIsInVybHMiLCJmb3JFYWNoIiwicGF0aCIsImluZGV4T2YiLCJwcmVmaXgiLCJwdXNoIiwiYWxsRm91bmQiLCJjY2lCdWlsZEluZm9IYW5kbGVyIiwiaW5zdGFsbCIsImJ1aWxkX251bSIsIl9uYW1lIiwiYXBpUGF0aCIsImhvc3RpbmciLCJvcmdhbmlzYXRpb24iLCJwcm9qZWN0Iiwic2V0IiwiZW5kIiwiX29wdGlvbnMiLCJyZWFkIiwiYnJhbmNoIiwiZmlsdGVyIiwibGltaXQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFPQSxJQUFNQSxVQUFTLEVBQWY7QUFDQSxJQUFJQyxnQkFBSixDLENBQWE7QUFDYixJQUFJQyxlQUFKLEMsQ0FBYTtBQUNiLElBQUlDLHNCQUFKLEMsQ0FBbUI7O0FBRW5CLElBQUlDLGtCQUFKLEMsQ0FBZTs7QUFFZixJQUFNQyxlQUFlLFNBQWZBLFlBQWUsR0FBTTtBQUN6QixNQUFJSCxPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSixXQUFPSyxJQUFQLEdBQWNMLE9BQU9NLEtBQXJCO0FBQ0EsUUFBSVAsUUFBUVEsT0FBUixDQUFnQkMsS0FBaEIsQ0FBc0JSLE1BQXRCLENBQUosRUFBbUM7QUFDakNTLGNBQVFDLElBQVIsQ0FBYSxxREFBYjtBQUNEO0FBQ0Y7QUFDRCxNQUFJWCxRQUFRLFVBQVIsQ0FBSixFQUF5QjtBQUN2QlUsWUFBUUMsSUFBUixDQUFhLHFEQUFiO0FBQ0FDLFlBQVFDLElBQVIsQ0FBYVYsU0FBYjtBQUNELEdBSEQsTUFHTztBQUNMVyxlQUFXZixRQUFPZ0IsR0FBbEIsRUFBdUJkLE9BQU9lLFFBQVAsR0FBa0IsSUFBekM7QUFDQU4sWUFBUUMsSUFBUixDQUFhLGdDQUFnQ1YsT0FBT2UsUUFBdkMsR0FBa0QsV0FBL0Q7QUFDRDtBQUNGLENBZEQ7O0FBZ0JBLElBQU1DLGNBQWMsU0FBZEEsV0FBYyxHQUFNO0FBQ3hCLE1BQU1DLGFBQWEsZUFBS0MsT0FBTCxDQUFhbEIsT0FBT21CLE1BQXBCLENBQW5CO0FBQ0FWLFVBQVFDLElBQVIsQ0FBYSxnQkFBZ0JPLFVBQWhCLEdBQTZCLElBQTFDO0FBQ0EsTUFBSTtBQUNGLFFBQU1FLFNBQVMsMEJBQU1GLFVBQU4sRUFB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QyxFQUFzRDNGLE9BQU9nRyxNQUE3RCxFQUFxRXBELElBQXJFLENBQTBFLEdBQTFFLENBQWY7QUFDQW5DLFVBQVFDLElBQVIsQ0FBYSxtQkFBYjtBQUNBLE1BQUlYLFFBQVFzRixPQUFaLEVBQXFCO0FBQ25CRCx3QkFBb0IsSUFBcEIsRUFBMEI7QUFDeEJqQixVQUFJLElBRG9CO0FBRXhCRyxZQUFNLENBQUUsRUFBRWdCLFdBQVd2RixRQUFRc0YsT0FBckIsRUFBRjtBQUZrQixLQUExQjtBQUlBO0FBQ0Q7QUFDRCxNQUFNRyxVQUFVLENBQUMsbUJBQUQsRUFBc0J4RixPQUFPeUYsT0FBN0IsRUFBc0N6RixPQUFPMEYsWUFBN0MsRUFBMkQxRixPQUFPMkYsT0FBbEUsRUFBMkUsTUFBM0UsRUFBbUYzRixPQUFPZ0csTUFBMUYsRUFBa0dwRCxJQUFsRyxDQUF1RyxHQUF2RyxDQUFoQjtBQUNBbkMsVUFBUXNELEdBQVIsQ0FBWSxpREFBaUQvRCxPQUFPdUYsS0FBeEQsR0FBZ0UsR0FBNUU7QUFDQSx1QkFDR3JDLEdBREgsQ0FDTyx5QkFBeUJzQyxPQURoQyxFQUVHckMsS0FGSCxDQUVTLEVBQUUsZ0JBQWdCbkQsT0FBT29ELEtBQXpCLEVBQWdDNkMsUUFBUSxZQUF4QyxFQUFzREMsT0FBTyxDQUE3RCxFQUZULEVBR0dOLEdBSEgsQ0FHTyxRQUhQLEVBR2lCLGtCQUhqQixFQUlHdkMsT0FKSCxDQUlXckQsT0FBT3FELE9BQVAsR0FBaUIsSUFKNUIsRUFLR3dDLEdBTEgsQ0FLT1QsbUJBTFA7QUFNRCxDQXJCRDs7a0JBdUJldEYsTyIsImZpbGUiOiJ0YXNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTW9kdWxlIGZvciB0YWxraW5nIHRvIENDSSwgZ2V0dGluZyB0aGUgYXJ0aWZhY3RzLCBkb3dubG9hZGluZyB0aGVtLFxuLy8gc3RhcnRpbmcgdGhlIGFjdGlvbiBzY3JpcHQsIHNhdmluZyB0aGUgdXBkYXRlZCBjb25maWcgZmlsZSwgLi4uXG4vL1xuLy8gVGhlIHRhc2sucnVuKCkgc2NoZWR1bGVzIG5leHQgcnVuIGFzIG5lZWRlZC5cbi8vIEFsbCBkaXNrIG9wZXJhdGlvbnMgYXJlIHN5bmNocm9ub3VzLlxuXG5pbXBvcnQgcmVxdWVzdCBmcm9tICdzdXBlcmFnZW50JztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IG1vZHVsZSA9IHt9O1xubGV0IG9wdGlvbnM7IC8vIHNldCBvbmNlIGF0IGZpcnN0IHJ1bigpXG5sZXQgY29uZmlnOyAgLy8gcmUtcmVhZCBpbiBlYWNoIGl0ZXJhdGlvblxubGV0IGRvd25sb2FkRXJyb3I7IC8vIHN0b3AgdGhlIHByb2Nlc3MgaW4gY2FzZSBkb3dubG9hZCBmYWlsZWRcblxubGV0IEVYSVRfQ09ERTsgLy8gcmV0dXJuIGNvZGUgZm9yICctLXJ1bi1vbmNlJyBtb2RlXG5cbmNvbnN0IHNjaGVkdWxlTmV4dCA9ICgpID0+IHtcbiAgaWYgKGNvbmZpZy5fc2F2ZSkge1xuICAgIGNvbmZpZy5sYXN0ID0gY29uZmlnLl9sYXN0O1xuICAgIGlmIChvcHRpb25zLmNmZ0ZpbGUud3JpdGUoY29uZmlnKSkge1xuICAgICAgY29uc29sZS5pbmZvKCdOZXcgY29uZmlndXJhdGlvbiBmaWxlIHJldmlzaW9uIHN1Y2Nlc3NmdWxseSBzYXZlZC4nKTtcbiAgICB9XG4gIH1cbiAgaWYgKG9wdGlvbnNbJ3J1bi1vbmNlJ10pIHtcbiAgICBjb25zb2xlLmluZm8oJ0NDSS1QSU5HVSBhYm91dCB0byBleGl0LiBUaGFua3MgZm9yIGZseWluZyB3aXRoIHVzIScpO1xuICAgIHByb2Nlc3MuZXhpdChFWElUX0NPREUpO1xuICB9IGVsc2Uge1xuICAgIHNldFRpbWVvdXQobW9kdWxlLnJ1biwgY29uZmlnLmludGVydmFsICogMTAwMCk7XG4gICAgY29uc29sZS5pbmZvKCdOZXh0IENDSSB0YXNrIHNjaGVkdWxlZCBpbiAnICsgY29uZmlnLmludGVydmFsICsgJyBzZWNvbmRzLicpO1xuICB9XG59O1xuXG5jb25zdCBzdGFydFNjcmlwdCA9ICgpID0+IHtcbiAgY29uc3Qgc2NyaXB0RmlsZSA9IHBhdGgucmVzb2x2ZShjb25maWcuc2NyaXB0KTtcbiAgY29uc29sZS5pbmZvKCdFeGVjdXRpbmcgXCInICsgc2NyaXB0RmlsZSArICdcIi4nKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBzY3JpcHQgPSBzcGF3bihzY3JpcHRGaWxlLCBbIGNvbmZpZy5fdGFyZ2V0IF0sIHsgY3dkOiBwYXRoLmRpcm5hbWUoc2NyaXB0RmlsZSkgfSk7XG4gICAgc2NyaXB0LnN0ZG91dC5vbignZGF0YScsIChkYXRhKSA9PiBjb25zb2xlLmluZm8oJ1NjcmlwdCBTVERPVVQ6XFxuJyArIGRhdGEudG9TdHJpbmcoKSkpO1xuICAgIHNjcmlwdC5zdGRlcnIub24oJ2RhdGEnLCAoZGF0YSkgPT4gY29uc29sZS53YXJuKCdTY3JpcHQgU1RERVJSXFxuOicgKyBkYXRhLnRvU3RyaW5nKCkpKTtcbiAgICBzY3JpcHQub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IHNjcmlwdCBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICAgICAgY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSk7XG4gICAgc2NyaXB0Lm9uKCdjbG9zZScsIChjb2RlKSA9PiB7XG4gICAgICBpZiAoIWNvZGUpIHsgLy8gc3VjY2Vzc1xuICAgICAgICBjb25zb2xlLmluZm8oJ0NDSSB0YXNrIHN1Y2Nlc3NmdWxseSBmaW5pc2hlZC4nKTtcbiAgICAgICAgY29uZmlnLl9zYXZlID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7IC8vIGZhaWxcbiAgICAgICAgY29uc29sZS5lcnJvcignSW5zdGFsbGF0aW9uIHNjcmlwdCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgKCcgKyBjb2RlICsgJykuJyk7XG4gICAgICB9XG4gICAgICBFWElUX0NPREUgPSBjb2RlO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHsgLy8gc3Bhd24gY2FuIHRocm93IGV4Y2VwdGlvbnMgb24gaXRzIG93blxuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBzY3JpcHQgXCInICsgc2NyaXB0RmlsZSArICdcIi4nKTtcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gIH1cbn07XG5cbmNvbnN0IGNjaURvd25sb2FkT25lID0gKCkgPT4ge1xuICBpZiAoIWNvbmZpZy5fdXJscy5sZW5ndGgpIHtcbiAgICBzdGFydFNjcmlwdCgpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHVybCA9IGNvbmZpZy5fdXJscy5wb3AoKTtcbiAgICBsZXQgZmlsZW5hbWUgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICBmaWxlbmFtZSA9IGZpbGVuYW1lW2ZpbGVuYW1lLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IHN0cmVhbU5hbWUgPSBwYXRoLmpvaW4oY29uZmlnLl90YXJnZXQsIGZpbGVuYW1lKTtcbiAgICBjb25zdCBzdHJlYW0gPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShzdHJlYW1OYW1lKTtcbiAgICBjb25zb2xlLmluZm8oJ0Rvd25sb2FkaW5nIFwiJyArIHVybCArICdcIi4nKTtcbiAgICBjb25zdCBzdGFydCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgZG93bmxvYWRFcnJvciA9IGZhbHNlO1xuICAgIHJlcXVlc3RcbiAgICAgIC5nZXQodXJsKVxuICAgICAgLnF1ZXJ5KHsgJ2NpcmNsZS10b2tlbic6IGNvbmZpZy50b2tlbiB9KVxuICAgICAgLnRpbWVvdXQoY29uZmlnLnRpbWVvdXQgKiAxMDAwKVxuICAgICAgLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRG93bmxvYWQgZmFpbGVkOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSArICcuJyk7XG4gICAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgICBkb3dubG9hZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmIChkb3dubG9hZEVycm9yKSB7IHJldHVybjsgfVxuICAgICAgICBsZXQgZHVyID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHN0YXJ0O1xuICAgICAgICBpZiAoZHVyID4gOTk5KSB7XG4gICAgICAgICAgZHVyID0gKCcnICsgZHVyKS5zcGxpdCgnJyk7XG4gICAgICAgICAgZHVyLnNwbGljZShkdXIubGVuZ3RoIC0gMywgMCwgJy4nKTtcbiAgICAgICAgICBkdXIgPSBkdXIuam9pbignJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5pbmZvKCdTYXZlZCBhcyBcIicgKyBzdHJlYW1OYW1lICsgJ1wiIGluICcgKyBkdXIgKyAnIG1zLicpO1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNjaURvd25sb2FkT25lKTtcbiAgICAgIH0pXG4gICAgICAucGlwZShzdHJlYW0pO1xuICB9XG59O1xuY29uc3QgY2NpRG93bmxvYWQgPSAoKSA9PiB7XG4gIC8vIGNyZWF0ZSB0YXJnZXQgZGlyZWN0b3J5XG4gIHRyeSB7XG4gICAgZnMuc3RhdFN5bmMoY29uZmlnLmRpcmVjdG9yeSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdEaXJlY3RvcnkgXCInICsgY29uZmlnLmRpcmVjdG9yeSArICdcIiBkb2VzIG5vdCBleGlzdCwgY2Fubm90IHdyaXRlIHRoZXJlLicpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBiYXNlbmFtZSA9ICdidWlsZC0nICsgY29uZmlnLl9sYXN0O1xuICBsZXQgZGlybmFtZTtcbiAgdHJ5IHtcbiAgICBsZXQgaSA9IDE7XG4gICAgd2hpbGUgKHRydWUpIHsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICBkaXJuYW1lID0gYmFzZW5hbWUgKyAoaSA+IDEgPyAnLicgKyBpIDogJycpO1xuICAgICAgZnMuc3RhdFN5bmMocGF0aC5qb2luKGNvbmZpZy5kaXJlY3RvcnksIGRpcm5hbWUpKTtcbiAgICAgIGkrKztcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBleGNlcHRpb24gaXMgZmluZVxuICB9XG4gIC8vIGNyZWF0ZSBuZXcgZGlyXG4gIGNvbmZpZy5fdGFyZ2V0ID0gcGF0aC5yZXNvbHZlKHBhdGguam9pbihjb25maWcuZGlyZWN0b3J5LCBkaXJuYW1lKSk7XG4gIGNvbnNvbGUubG9nKCdDcmVhdGluZyBhcnRpZmFjdCBkaXJlY3RvcnkgXCInICsgY29uZmlnLl90YXJnZXQgKyAnXCIuJyk7XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKGNvbmZpZy5fdGFyZ2V0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RhcmdldCBkaXJlY3RvcnkgXCInICsgY29uZmlnLl90YXJnZXQgKyAnXCIgY2Fubm90IGJlIGNyZWF0ZWQuJyk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gc3RhcnQgdGhlIGRvd25sb2Fkc1xuICBjY2lEb3dubG9hZE9uZSgpO1xufTtcblxuY29uc3QgY2NpQXJ0aWZhY3RzSW5mb0hhbmRsZXIgPSAoZXJyLCByZXMpID0+IHtcbiAgaWYgKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghcmVzLm9rKSB7XG4gICAgY29uc29sZS5lcnJvcignU3RhdHVzOiAnICsgcmVzLnN0YXR1cyArICcsICcgKyByZXMudGV4dCk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gIH0gZWxzZSB7IC8vIHJlcy5va1xuICAgIGNvbnNvbGUubG9nKCdSZXNwb25zZSBmcm9tIENDSSBzZXJ2ZXI6XFxuJyArIEpTT04uc3RyaW5naWZ5KHJlcy5ib2R5LCBudWxsLCA0KSk7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBjb25maWcuYXJ0aWZhY3RzLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0sIGZvdW5kOiBmYWxzZSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHVybHMgPSBbXTtcbiAgICByZXMuYm9keS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcHJlZml4ZXMuZm9yRWFjaChwcmVmaXggPT4ge1xuICAgICAgICBpZiAoaXRlbS5wYXRoLmluZGV4T2YocHJlZml4Lm5hbWUpICE9PSAtMSkge1xuICAgICAgICAgIHVybHMucHVzaChpdGVtLnVybCk7XG4gICAgICAgICAgcHJlZml4LmZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coJ0NvbGxlY3RlZCBhcnRpZmFjdCBVUkxzICh0byBkb3dubG9hZCk6XFxuJyArIEpTT04uc3RyaW5naWZ5KHVybHMsIG51bGwsIDQpKTtcbiAgICBsZXQgYWxsRm91bmQgPSB0cnVlO1xuICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHsgaWYgKCFwcmVmaXguZm91bmQpIHsgYWxsRm91bmQgPSBmYWxzZTsgfSB9KTtcbiAgICBpZiAoIWFsbEZvdW5kKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdOb3QgYWxsIGFydGlmYWN0cyBmb3VuZCEgTWlzc2luZzonKTtcbiAgICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHsgaWYgKCFwcmVmaXguZm91bmQpIHsgY29uc29sZS5lcnJvcignKyAnICsgcHJlZml4Lm5hbWUpOyB9IH0pO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLl91cmxzID0gdXJscztcbiAgICAgIGNjaURvd25sb2FkKCk7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBjY2lCdWlsZEluZm9IYW5kbGVyID0gKGVyciwgcmVzKSA9PiB7XG4gIGlmIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIXJlcy5vaykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1N0YXR1czogJyArIHJlcy5zdGF0dXMgKyAnLCAnICsgcmVzLnRleHQpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgaWYgKCFyZXMuYm9keSB8fCAhcmVzLmJvZHkubGVuZ3RoKSB7XG4gICAgY29uc29sZS5lcnJvcignTm8gc3VjY2Vzc2Z1bCBidWlsZCBmb3VuZCBmb3IgZ2l2ZW4gYnJhbmNoIScpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgeyAvLyByZXMub2tcbiAgICAhb3B0aW9ucy5pbnN0YWxsICYmIGNvbnNvbGUubG9nKCdSZXNwb25zZSBmcm9tIENDSSBzZXJ2ZXI6XFxuJyArIEpTT04uc3RyaW5naWZ5KHJlcy5ib2R5LCBudWxsLCA0KSk7XG4gICAgY29uZmlnLl9sYXN0ID0gcmVzLmJvZHlbMF0uYnVpbGRfbnVtO1xuICAgICFvcHRpb25zLmluc3RhbGwgJiYgY29uc29sZS5pbmZvKCdMYXN0IHN1Y2Nlc3NmdWwgJyArIGNvbmZpZy5fbmFtZSArICcgYnVpbGQgbnVtYmVyOiAnICsgY29uZmlnLl9sYXN0ICsgJy4nKTtcbiAgICBpZiAoIW9wdGlvbnMuaW5zdGFsbCAmJiAoY29uZmlnLmxhc3QgPT09IGNvbmZpZy5fbGFzdCkpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnQnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgYWxyZWFkeSBpbnN0YWxsZWQuJyk7XG4gICAgICBjb25zb2xlLmluZm8oJ0NDSSB0YXNrIHN1Y2Nlc3NmdWxseSBmaW5pc2hlZC4nKTtcbiAgICAgIEVYSVRfQ09ERSA9IDA7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnMuaW5zdGFsbCAmJiAoY29uZmlnLmxhc3QgPT09IGNvbmZpZy5fbGFzdCkpIHtcbiAgICAgICAgY29uc29sZS5pbmZvKCdCdWlsZCAnICsgY29uZmlnLl9sYXN0ICsgJyBhbHJlYWR5IGluc3RhbGxlZCwgYWJvdXQgdG8gaW5zdGFsbCBpdCBhZ2Fpbi4uLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5pbmZvKCdCdWlsZCAnICsgY29uZmlnLl9sYXN0ICsgJyBpcyBub3QgaW5zdGFsbGVkIHlldC4nKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFwaVBhdGggPSBbJy9hcGkvdjEuMS9wcm9qZWN0JywgY29uZmlnLmhvc3RpbmcsIGNvbmZpZy5vcmdhbmlzYXRpb24sXG4gICAgICAgIGNvbmZpZy5wcm9qZWN0LCBjb25maWcuX2xhc3QsICdhcnRpZmFjdHMnXS5qb2luKCcvJyk7XG4gICAgICBjb25zb2xlLmxvZygnR2V0dGluZyBpbmZvIGFib3V0IGJ1aWxkICcgKyBjb25maWcuX2xhc3QgKyAnIGFydGlmYWN0cy4nKTtcbiAgICAgIHJlcXVlc3RcbiAgICAgICAgLmdldCgnaHR0cHM6Ly9jaXJjbGVjaS5jb20nICsgYXBpUGF0aClcbiAgICAgICAgLnF1ZXJ5KHsgJ2NpcmNsZS10b2tlbic6IGNvbmZpZy50b2tlbiB9KVxuICAgICAgICAuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpXG4gICAgICAgIC50aW1lb3V0KGNvbmZpZy50aW1lb3V0ICogMTAwMClcbiAgICAgICAgLmVuZChjY2lBcnRpZmFjdHNJbmZvSGFuZGxlcik7XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUucnVuID0gKF9vcHRpb25zID0gbnVsbCkgPT4ge1xuICBFWElUX0NPREUgPSAxOyAgIC8vIHVwZGF0ZSB0byAwIG9uIGZpbmFsIHN1Y2Nlc3NcbiAgaWYgKF9vcHRpb25zKSB7IG9wdGlvbnMgPSBfb3B0aW9uczsgfVxuICBjb25maWcgPSBvcHRpb25zLmNmZ0ZpbGUucmVhZCgpO1xuICBjb25maWcuX25hbWUgPSBbY29uZmlnLmhvc3RpbmcsIGNvbmZpZy5vcmdhbmlzYXRpb24sIGNvbmZpZy5wcm9qZWN0LCBjb25maWcuYnJhbmNoXS5qb2luKCcvJyk7XG4gIGNvbnNvbGUuaW5mbygnQ0NJIHRhc2sgc3RhcnRlZC4nKTtcbiAgaWYgKG9wdGlvbnMuaW5zdGFsbCkge1xuICAgIGNjaUJ1aWxkSW5mb0hhbmRsZXIobnVsbCwge1xuICAgICAgb2s6IHRydWUsXG4gICAgICBib2R5OiBbIHsgYnVpbGRfbnVtOiBvcHRpb25zLmluc3RhbGwgfSBdXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGFwaVBhdGggPSBbJy9hcGkvdjEuMS9wcm9qZWN0JywgY29uZmlnLmhvc3RpbmcsIGNvbmZpZy5vcmdhbmlzYXRpb24sIGNvbmZpZy5wcm9qZWN0LCAndHJlZScsIGNvbmZpZy5icmFuY2hdLmpvaW4oJy8nKTtcbiAgY29uc29sZS5sb2coJ0dldHRpbmcgaW5mbyBhYm91dCBsYXN0IHN1Y2Nlc3NmdWwgYnVpbGQgb2YgJyArIGNvbmZpZy5fbmFtZSArICcuJyk7XG4gIHJlcXVlc3RcbiAgICAuZ2V0KCdodHRwczovL2NpcmNsZWNpLmNvbScgKyBhcGlQYXRoKVxuICAgIC5xdWVyeSh7ICdjaXJjbGUtdG9rZW4nOiBjb25maWcudG9rZW4sIGZpbHRlcjogJ3N1Y2Nlc3NmdWwnLCBsaW1pdDogMSB9KVxuICAgIC5zZXQoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJylcbiAgICAudGltZW91dChjb25maWcudGltZW91dCAqIDEwMDApXG4gICAgLmVuZChjY2lCdWlsZEluZm9IYW5kbGVyKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG1vZHVsZTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90YXNrLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsIm9wdGlvbnMiLCJjb25maWciLCJkb3dubG9hZEVycm9yIiwiRVhJVF9DT0RFIiwic2NoZWR1bGVOZXh0IiwiX3NhdmUiLCJsYXN0IiwiX2xhc3QiLCJjZmdGaWxlIiwid3JpdGUiLCJjb25zb2xlIiwiaW5mbyIsInByb2Nlc3MiLCJleGl0Iiwic2V0VGltZW91dCIsInJ1biIsImludGVydmFsIiwic3RhcnRTY3JpcHQiLCJzY3JpcHRGaWxlIiwicmVzb2x2ZSIsInNjcmlwdCIsIl90YXJnZXQiLCJjd2QiLCJkaXJuYW1lIiwic3Rkb3V0Iiwib24iLCJkYXRhIiwidG9TdHJpbmciLCJzdGRlcnIiLCJ3YXJuIiwiZXJyIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiY29kZSIsImUiLCJtZXNzYWdlIiwiY2NpRG93bmxvYWRPbmUiLCJfdXJscyIsImxlbmd0aCIsInVybCIsInBvcCIsImZpbGVuYW1lIiwic3BsaXQiLCJzdHJlYW1OYW1lIiwiam9pbiIsInN0cmVhbSIsImNyZWF0ZVdyaXRlU3RyZWFtIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsImdldCIsInF1ZXJ5IiwidG9rZW4iLCJ0aW1lb3V0IiwiZHVyIiwic3BsaWNlIiwibmV4dFRpY2siLCJwaXBlIiwiY2NpRG93bmxvYWQiLCJzdGF0U3luYyIsImRpcmVjdG9yeSIsImJhc2VuYW1lIiwiaSIsImxvZyIsIm1rZGlyU3luYyIsImNjaUFydGlmYWN0c0luZm9IYW5kbGVyIiwicmVzIiwib2siLCJzdGF0dXMiLCJ0ZXh0IiwiYm9keSIsInByZWZpeGVzIiwiYXJ0aWZhY3RzIiwibWFwIiwibmFtZSIsIml0ZW0iLCJmb3VuZCIsInVybHMiLCJmb3JFYWNoIiwicGF0aCIsImluZGV4T2YiLCJwcmVmaXgiLCJwdXNoIiwiYWxsRm91bmQiLCJjY2lCdWlsZEluZm9IYW5kbGVyIiwiaW5zdGFsbCIsImJ1aWxkX251bSIsIl9uYW1lIiwiYXBpUGF0aCIsImhvc3RpbmciLCJvcmdhbmlzYXRpb24iLCJwcm9qZWN0Iiwic2V0IiwiZW5kIiwiX29wdGlvbnMiLCJyZWFkIiwiYnJhbmNoIiwiZmlsdGVyIiwibGltaXQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFPQSxJQUFNQSxVQUFTLEVBQWY7QUFDQSxJQUFJQyxnQkFBSixDLENBQWE7QUFDYixJQUFJQyxlQUFKLEMsQ0FBYTtBQUNiLElBQUlDLHNCQUFKLEMsQ0FBbUI7O0FBRW5CLElBQUlDLGtCQUFKLEMsQ0FBZTs7QUFFZixJQUFNQyxlQUFlLFNBQWZBLFlBQWUsR0FBTTtBQUN6QixNQUFJSCxPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSixXQUFPSyxJQUFQLEdBQWNMLE9BQU9NLEtBQXJCO0FBQ0EsUUFBSVAsUUFBUVEsT0FBUixDQUFnQkMsS0FBaEIsQ0FBc0JSLE1BQXRCLENBQUosRUFBbUM7QUFDakNTLGNBQVFDLElBQVIsQ0FBYSxxREFBYjtBQUNEO0FBQ0Y7QUFDRCxNQUFJWCxRQUFRLFVBQVIsQ0FBSixFQUF5QjtBQUN2QlUsWUFBUUMsSUFBUixDQUFhLHFEQUFiO0FBQ0FDLFlBQVFDLElBQVIsQ0FBYVYsU0FBYjtBQUNELEdBSEQsTUFHTztBQUNMVyxlQUFXZixRQUFPZ0IsR0FBbEIsRUFBdUJkLE9BQU9lLFFBQVAsR0FBa0IsSUFBekM7QUFDQU4sWUFBUUMsSUFBUixDQUFhLGdDQUFnQ1YsT0FBT2UsUUFBdkMsR0FBa0QsV0FBL0Q7QUFDRDtBQUNGLENBZEQ7O0FBZ0JBLElBQU1DLGNBQWMsU0FBZEEsV0FBYyxHQUFNO0FBQ3hCLE1BQU1DLGFBQWEsZUFBS0MsT0FBTCxDQUFhbEIsT0FBT21CLE1BQXBCLENBQW5CO0FBQ0FWLFVBQVFDLElBQVIsQ0FBYSxnQkFBZ0JPLFVBQWhCLEdBQTZCLElBQTFDO0FBQ0EsTUFBSTtBQUNGLFFBQU1FLFNBQVMsMEJBQU1GLFVBQU4sRUFB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LEVBQXNDMUYsT0FBTzJGLE9BQTdDLEVBQXNEM0YsT0FBT2dHLE1BQTdELEVBQXFFcEQsSUFBckUsQ0FBMEUsR0FBMUUsQ0FBZjtBQUNBbkMsVUFBUUMsSUFBUixDQUFhLG1CQUFiO0FBQ0EsTUFBSVgsUUFBUXNGLE9BQVosRUFBcUI7QUFDbkJELHdCQUFvQixJQUFwQixFQUEwQjtBQUN4QmpCLFVBQUksSUFEb0I7QUFFeEJHLFlBQU0sQ0FBRSxFQUFFZ0IsV0FBV3ZGLFFBQVFzRixPQUFyQixFQUFGO0FBRmtCLEtBQTFCO0FBSUE7QUFDRDtBQUNELE1BQU1HLFVBQVUsQ0FBQyxtQkFBRCxFQUFzQnhGLE9BQU95RixPQUE3QixFQUFzQ3pGLE9BQU8wRixZQUE3QyxFQUEyRDFGLE9BQU8yRixPQUFsRSxFQUEyRSxNQUEzRSxFQUFtRjNGLE9BQU9nRyxNQUExRixFQUFrR3BELElBQWxHLENBQXVHLEdBQXZHLENBQWhCO0FBQ0FuQyxVQUFRc0QsR0FBUixDQUFZLGlEQUFpRC9ELE9BQU91RixLQUF4RCxHQUFnRSxHQUE1RTtBQUNBLHVCQUNHckMsR0FESCxDQUNPLHlCQUF5QnNDLE9BRGhDLEVBRUdyQyxLQUZILENBRVMsRUFBRSxnQkFBZ0JuRCxPQUFPb0QsS0FBekIsRUFBZ0M2QyxRQUFRLFlBQXhDLEVBQXNEQyxPQUFPLENBQTdELEVBRlQsRUFHR04sR0FISCxDQUdPLFFBSFAsRUFHaUIsa0JBSGpCLEVBSUd2QyxPQUpILENBSVdyRCxPQUFPcUQsT0FBUCxHQUFpQixJQUo1QixFQUtHd0MsR0FMSCxDQUtPVCxtQkFMUDtBQU1ELENBckJEOztrQkF1QmV0RixPIiwiZmlsZSI6InRhc2suanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBNb2R1bGUgZm9yIHRhbGtpbmcgdG8gQ0NJLCBnZXR0aW5nIHRoZSBhcnRpZmFjdHMsIGRvd25sb2FkaW5nIHRoZW0sXG4vLyBzdGFydGluZyB0aGUgYWN0aW9uIHNjcmlwdCwgc2F2aW5nIHRoZSB1cGRhdGVkIGNvbmZpZyBmaWxlLCAuLi5cbi8vXG4vLyBUaGUgdGFzay5ydW4oKSBzY2hlZHVsZXMgbmV4dCBydW4gYXMgbmVlZGVkLlxuLy8gQWxsIGRpc2sgb3BlcmF0aW9ucyBhcmUgc3luY2hyb25vdXMuXG5cbmltcG9ydCByZXF1ZXN0IGZyb20gJ3N1cGVyYWdlbnQnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcblxuY29uc3QgbW9kdWxlID0ge307XG5sZXQgb3B0aW9uczsgLy8gc2V0IG9uY2UgYXQgZmlyc3QgcnVuKClcbmxldCBjb25maWc7ICAvLyByZS1yZWFkIGluIGVhY2ggaXRlcmF0aW9uXG5sZXQgZG93bmxvYWRFcnJvcjsgLy8gc3RvcCB0aGUgcHJvY2VzcyBpbiBjYXNlIGRvd25sb2FkIGZhaWxlZFxuXG5sZXQgRVhJVF9DT0RFOyAvLyByZXR1cm4gY29kZSBmb3IgJy0tcnVuLW9uY2UnIG1vZGVcblxuY29uc3Qgc2NoZWR1bGVOZXh0ID0gKCkgPT4ge1xuICBpZiAoY29uZmlnLl9zYXZlKSB7XG4gICAgY29uZmlnLmxhc3QgPSBjb25maWcuX2xhc3Q7XG4gICAgaWYgKG9wdGlvbnMuY2ZnRmlsZS53cml0ZShjb25maWcpKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ05ldyBjb25maWd1cmF0aW9uIGZpbGUgcmV2aXNpb24gc3VjY2Vzc2Z1bGx5IHNhdmVkLicpO1xuICAgIH1cbiAgfVxuICBpZiAob3B0aW9uc1sncnVuLW9uY2UnXSkge1xuICAgIGNvbnNvbGUuaW5mbygnQ0NJLVBJTkdVIGFib3V0IHRvIGV4aXQuIFRoYW5rcyBmb3IgZmx5aW5nIHdpdGggdXMhJyk7XG4gICAgcHJvY2Vzcy5leGl0KEVYSVRfQ09ERSk7XG4gIH0gZWxzZSB7XG4gICAgc2V0VGltZW91dChtb2R1bGUucnVuLCBjb25maWcuaW50ZXJ2YWwgKiAxMDAwKTtcbiAgICBjb25zb2xlLmluZm8oJ05leHQgQ0NJIHRhc2sgc2NoZWR1bGVkIGluICcgKyBjb25maWcuaW50ZXJ2YWwgKyAnIHNlY29uZHMuJyk7XG4gIH1cbn07XG5cbmNvbnN0IHN0YXJ0U2NyaXB0ID0gKCkgPT4ge1xuICBjb25zdCBzY3JpcHRGaWxlID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5zY3JpcHQpO1xuICBjb25zb2xlLmluZm8oJ0V4ZWN1dGluZyBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICB0cnkge1xuICAgIGNvbnN0IHNjcmlwdCA9IHNwYXduKHNjcmlwdEZpbGUsIFsgY29uZmlnLl90YXJnZXQsIGNvbmZpZy5fbGFzdCBdLCB7IGN3ZDogcGF0aC5kaXJuYW1lKHNjcmlwdEZpbGUpIH0pO1xuICAgIHNjcmlwdC5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YSkgPT4gY29uc29sZS5pbmZvKCdTY3JpcHQgU1RET1VUOlxcbicgKyBkYXRhLnRvU3RyaW5nKCkpKTtcbiAgICBzY3JpcHQuc3RkZXJyLm9uKCdkYXRhJywgKGRhdGEpID0+IGNvbnNvbGUud2FybignU2NyaXB0IFNUREVSUlxcbjonICsgZGF0YS50b1N0cmluZygpKSk7XG4gICAgc2NyaXB0Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBzY3JpcHQgXCInICsgc2NyaXB0RmlsZSArICdcIi4nKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIH0pO1xuICAgIHNjcmlwdC5vbignY2xvc2UnLCAoY29kZSkgPT4ge1xuICAgICAgaWYgKCFjb2RlKSB7IC8vIHN1Y2Nlc3NcbiAgICAgICAgY29uc29sZS5pbmZvKCdDQ0kgdGFzayBzdWNjZXNzZnVsbHkgZmluaXNoZWQuJyk7XG4gICAgICAgIGNvbmZpZy5fc2F2ZSA9IHRydWU7XG4gICAgICB9IGVsc2UgeyAvLyBmYWlsXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0luc3RhbGxhdGlvbiBzY3JpcHQgZmFpbGVkIHdpdGggZXhpdCBjb2RlICgnICsgY29kZSArICcpLicpO1xuICAgICAgfVxuICAgICAgRVhJVF9DT0RFID0gY29kZTtcbiAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7IC8vIHNwYXduIGNhbiB0aHJvdyBleGNlcHRpb25zIG9uIGl0cyBvd25cbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgc2NyaXB0IFwiJyArIHNjcmlwdEZpbGUgKyAnXCIuJyk7XG4gICAgY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9XG59O1xuXG5jb25zdCBjY2lEb3dubG9hZE9uZSA9ICgpID0+IHtcbiAgaWYgKCFjb25maWcuX3VybHMubGVuZ3RoKSB7XG4gICAgc3RhcnRTY3JpcHQoKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB1cmwgPSBjb25maWcuX3VybHMucG9wKCk7XG4gICAgbGV0IGZpbGVuYW1lID0gdXJsLnNwbGl0KCcvJyk7XG4gICAgZmlsZW5hbWUgPSBmaWxlbmFtZVtmaWxlbmFtZS5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBzdHJlYW1OYW1lID0gcGF0aC5qb2luKGNvbmZpZy5fdGFyZ2V0LCBmaWxlbmFtZSk7XG4gICAgY29uc3Qgc3RyZWFtID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oc3RyZWFtTmFtZSk7XG4gICAgY29uc29sZS5pbmZvKCdEb3dubG9hZGluZyBcIicgKyB1cmwgKyAnXCIuJyk7XG4gICAgY29uc3Qgc3RhcnQgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIGRvd25sb2FkRXJyb3IgPSBmYWxzZTtcbiAgICByZXF1ZXN0XG4gICAgICAuZ2V0KHVybClcbiAgICAgIC5xdWVyeSh7ICdjaXJjbGUtdG9rZW4nOiBjb25maWcudG9rZW4gfSlcbiAgICAgIC50aW1lb3V0KGNvbmZpZy50aW1lb3V0ICogMTAwMClcbiAgICAgIC5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Rvd25sb2FkIGZhaWxlZDogJyArIEpTT04uc3RyaW5naWZ5KGVycikgKyAnLicpO1xuICAgICAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICAgICAgZG93bmxvYWRFcnJvciA9IHRydWU7XG4gICAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgICAgfSlcbiAgICAgIC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAoZG93bmxvYWRFcnJvcikgeyByZXR1cm47IH1cbiAgICAgICAgbGV0IGR1ciA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLSBzdGFydDtcbiAgICAgICAgaWYgKGR1ciA+IDk5OSkge1xuICAgICAgICAgIGR1ciA9ICgnJyArIGR1cikuc3BsaXQoJycpO1xuICAgICAgICAgIGR1ci5zcGxpY2UoZHVyLmxlbmd0aCAtIDMsIDAsICcuJyk7XG4gICAgICAgICAgZHVyID0gZHVyLmpvaW4oJycpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUuaW5mbygnU2F2ZWQgYXMgXCInICsgc3RyZWFtTmFtZSArICdcIiBpbiAnICsgZHVyICsgJyBtcy4nKTtcbiAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhjY2lEb3dubG9hZE9uZSk7XG4gICAgICB9KVxuICAgICAgLnBpcGUoc3RyZWFtKTtcbiAgfVxufTtcbmNvbnN0IGNjaURvd25sb2FkID0gKCkgPT4ge1xuICAvLyBjcmVhdGUgdGFyZ2V0IGRpcmVjdG9yeVxuICB0cnkge1xuICAgIGZzLnN0YXRTeW5jKGNvbmZpZy5kaXJlY3RvcnkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignRGlyZWN0b3J5IFwiJyArIGNvbmZpZy5kaXJlY3RvcnkgKyAnXCIgZG9lcyBub3QgZXhpc3QsIGNhbm5vdCB3cml0ZSB0aGVyZS4nKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgYmFzZW5hbWUgPSAnYnVpbGQtJyArIGNvbmZpZy5fbGFzdDtcbiAgbGV0IGRpcm5hbWU7XG4gIHRyeSB7XG4gICAgbGV0IGkgPSAxO1xuICAgIHdoaWxlICh0cnVlKSB7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgICAgZGlybmFtZSA9IGJhc2VuYW1lICsgKGkgPiAxID8gJy4nICsgaSA6ICcnKTtcbiAgICAgIGZzLnN0YXRTeW5jKHBhdGguam9pbihjb25maWcuZGlyZWN0b3J5LCBkaXJuYW1lKSk7XG4gICAgICBpKys7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gZXhjZXB0aW9uIGlzIGZpbmVcbiAgfVxuICAvLyBjcmVhdGUgbmV3IGRpclxuICBjb25maWcuX3RhcmdldCA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4oY29uZmlnLmRpcmVjdG9yeSwgZGlybmFtZSkpO1xuICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgYXJ0aWZhY3QgZGlyZWN0b3J5IFwiJyArIGNvbmZpZy5fdGFyZ2V0ICsgJ1wiLicpO1xuICB0cnkge1xuICAgIGZzLm1rZGlyU3luYyhjb25maWcuX3RhcmdldCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUYXJnZXQgZGlyZWN0b3J5IFwiJyArIGNvbmZpZy5fdGFyZ2V0ICsgJ1wiIGNhbm5vdCBiZSBjcmVhdGVkLicpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIHN0YXJ0IHRoZSBkb3dubG9hZHNcbiAgY2NpRG93bmxvYWRPbmUoKTtcbn07XG5cbmNvbnN0IGNjaUFydGlmYWN0c0luZm9IYW5kbGVyID0gKGVyciwgcmVzKSA9PiB7XG4gIGlmIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIXJlcy5vaykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1N0YXR1czogJyArIHJlcy5zdGF0dXMgKyAnLCAnICsgcmVzLnRleHQpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgeyAvLyByZXMub2tcbiAgICBjb25zb2xlLmxvZygnUmVzcG9uc2UgZnJvbSBDQ0kgc2VydmVyOlxcbicgKyBKU09OLnN0cmluZ2lmeShyZXMuYm9keSwgbnVsbCwgNCkpO1xuICAgIGNvbnN0IHByZWZpeGVzID0gY29uZmlnLmFydGlmYWN0cy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyBuYW1lOiBpdGVtLCBmb3VuZDogZmFsc2UgfTtcbiAgICB9KTtcbiAgICBjb25zdCB1cmxzID0gW107XG4gICAgcmVzLmJvZHkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ucGF0aC5pbmRleE9mKHByZWZpeC5uYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICB1cmxzLnB1c2goaXRlbS51cmwpO1xuICAgICAgICAgIHByZWZpeC5mb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKCdDb2xsZWN0ZWQgYXJ0aWZhY3QgVVJMcyAodG8gZG93bmxvYWQpOlxcbicgKyBKU09OLnN0cmluZ2lmeSh1cmxzLCBudWxsLCA0KSk7XG4gICAgbGV0IGFsbEZvdW5kID0gdHJ1ZTtcbiAgICBwcmVmaXhlcy5mb3JFYWNoKHByZWZpeCA9PiB7IGlmICghcHJlZml4LmZvdW5kKSB7IGFsbEZvdW5kID0gZmFsc2U7IH0gfSk7XG4gICAgaWYgKCFhbGxGb3VuZCkge1xuICAgICAgY29uc29sZS5lcnJvcignTm90IGFsbCBhcnRpZmFjdHMgZm91bmQhIE1pc3Npbmc6Jyk7XG4gICAgICBwcmVmaXhlcy5mb3JFYWNoKHByZWZpeCA9PiB7IGlmICghcHJlZml4LmZvdW5kKSB7IGNvbnNvbGUuZXJyb3IoJysgJyArIHByZWZpeC5uYW1lKTsgfSB9KTtcbiAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5fdXJscyA9IHVybHM7XG4gICAgICBjY2lEb3dubG9hZCgpO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgY2NpQnVpbGRJbmZvSGFuZGxlciA9IChlcnIsIHJlcykgPT4ge1xuICBpZiAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCFyZXMub2spIHtcbiAgICBjb25zb2xlLmVycm9yKCdTdGF0dXM6ICcgKyByZXMuc3RhdHVzICsgJywgJyArIHJlcy50ZXh0KTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfSBlbHNlIGlmICghcmVzLmJvZHkgfHwgIXJlcy5ib2R5Lmxlbmd0aCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ05vIHN1Y2Nlc3NmdWwgYnVpbGQgZm91bmQgZm9yIGdpdmVuIGJyYW5jaCEnKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfSBlbHNlIHsgLy8gcmVzLm9rXG4gICAgIW9wdGlvbnMuaW5zdGFsbCAmJiBjb25zb2xlLmxvZygnUmVzcG9uc2UgZnJvbSBDQ0kgc2VydmVyOlxcbicgKyBKU09OLnN0cmluZ2lmeShyZXMuYm9keSwgbnVsbCwgNCkpO1xuICAgIGNvbmZpZy5fbGFzdCA9IHJlcy5ib2R5WzBdLmJ1aWxkX251bTtcbiAgICAhb3B0aW9ucy5pbnN0YWxsICYmIGNvbnNvbGUuaW5mbygnTGFzdCBzdWNjZXNzZnVsICcgKyBjb25maWcuX25hbWUgKyAnIGJ1aWxkIG51bWJlcjogJyArIGNvbmZpZy5fbGFzdCArICcuJyk7XG4gICAgaWYgKCFvcHRpb25zLmluc3RhbGwgJiYgKGNvbmZpZy5sYXN0ID09PSBjb25maWcuX2xhc3QpKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ0J1aWxkICcgKyBjb25maWcuX2xhc3QgKyAnIGFscmVhZHkgaW5zdGFsbGVkLicpO1xuICAgICAgY29uc29sZS5pbmZvKCdDQ0kgdGFzayBzdWNjZXNzZnVsbHkgZmluaXNoZWQuJyk7XG4gICAgICBFWElUX0NPREUgPSAwO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChvcHRpb25zLmluc3RhbGwgJiYgKGNvbmZpZy5sYXN0ID09PSBjb25maWcuX2xhc3QpKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnQnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgYWxyZWFkeSBpbnN0YWxsZWQsIGFib3V0IHRvIGluc3RhbGwgaXQgYWdhaW4uLi4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnQnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgaXMgbm90IGluc3RhbGxlZCB5ZXQuJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBhcGlQYXRoID0gWycvYXBpL3YxLjEvcHJvamVjdCcsIGNvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLFxuICAgICAgICBjb25maWcucHJvamVjdCwgY29uZmlnLl9sYXN0LCAnYXJ0aWZhY3RzJ10uam9pbignLycpO1xuICAgICAgY29uc29sZS5sb2coJ0dldHRpbmcgaW5mbyBhYm91dCBidWlsZCAnICsgY29uZmlnLl9sYXN0ICsgJyBhcnRpZmFjdHMuJyk7XG4gICAgICByZXF1ZXN0XG4gICAgICAgIC5nZXQoJ2h0dHBzOi8vY2lyY2xlY2kuY29tJyArIGFwaVBhdGgpXG4gICAgICAgIC5xdWVyeSh7ICdjaXJjbGUtdG9rZW4nOiBjb25maWcudG9rZW4gfSlcbiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICAgICAgICAudGltZW91dChjb25maWcudGltZW91dCAqIDEwMDApXG4gICAgICAgIC5lbmQoY2NpQXJ0aWZhY3RzSW5mb0hhbmRsZXIpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLnJ1biA9IChfb3B0aW9ucyA9IG51bGwpID0+IHtcbiAgRVhJVF9DT0RFID0gMTsgICAvLyB1cGRhdGUgdG8gMCBvbiBmaW5hbCBzdWNjZXNzXG4gIGlmIChfb3B0aW9ucykgeyBvcHRpb25zID0gX29wdGlvbnM7IH1cbiAgY29uZmlnID0gb3B0aW9ucy5jZmdGaWxlLnJlYWQoKTtcbiAgY29uZmlnLl9uYW1lID0gW2NvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLCBjb25maWcucHJvamVjdCwgY29uZmlnLmJyYW5jaF0uam9pbignLycpO1xuICBjb25zb2xlLmluZm8oJ0NDSSB0YXNrIHN0YXJ0ZWQuJyk7XG4gIGlmIChvcHRpb25zLmluc3RhbGwpIHtcbiAgICBjY2lCdWlsZEluZm9IYW5kbGVyKG51bGwsIHtcbiAgICAgIG9rOiB0cnVlLFxuICAgICAgYm9keTogWyB7IGJ1aWxkX251bTogb3B0aW9ucy5pbnN0YWxsIH0gXVxuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBhcGlQYXRoID0gWycvYXBpL3YxLjEvcHJvamVjdCcsIGNvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLCBjb25maWcucHJvamVjdCwgJ3RyZWUnLCBjb25maWcuYnJhbmNoXS5qb2luKCcvJyk7XG4gIGNvbnNvbGUubG9nKCdHZXR0aW5nIGluZm8gYWJvdXQgbGFzdCBzdWNjZXNzZnVsIGJ1aWxkIG9mICcgKyBjb25maWcuX25hbWUgKyAnLicpO1xuICByZXF1ZXN0XG4gICAgLmdldCgnaHR0cHM6Ly9jaXJjbGVjaS5jb20nICsgYXBpUGF0aClcbiAgICAucXVlcnkoeyAnY2lyY2xlLXRva2VuJzogY29uZmlnLnRva2VuLCBmaWx0ZXI6ICdzdWNjZXNzZnVsJywgbGltaXQ6IDEgfSlcbiAgICAuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpXG4gICAgLnRpbWVvdXQoY29uZmlnLnRpbWVvdXQgKiAxMDAwKVxuICAgIC5lbmQoY2NpQnVpbGRJbmZvSGFuZGxlcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGU7XG4iXX0=

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

// generated code, please see package.json
exports.default = '2.1.0';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92ZXJzaW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7a0JBQ2UsTyIsImZpbGUiOiJ2ZXJzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGNvZGUsIHBsZWFzZSBzZWUgcGFja2FnZS5qc29uXG5leHBvcnQgZGVmYXVsdCAnMi4xLjAnO1xuIl19
exports.default = '2.1.1';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92ZXJzaW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7a0JBQ2UsTyIsImZpbGUiOiJ2ZXJzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGNvZGUsIHBsZWFzZSBzZWUgcGFja2FnZS5qc29uXG5leHBvcnQgZGVmYXVsdCAnMi4xLjEnO1xuIl19
{
"name": "cci-pingu",
"version": "2.1.0",
"version": "2.1.1",
"description": "Periodically check for new builds (artifacts) on CircleCI and install them in turn",

@@ -5,0 +5,0 @@ "license": "MIT",

@@ -55,3 +55,6 @@ [![Dependency Status](https://img.shields.io/david/salsita/cci-pingu.svg)](https://david-dm.org/salsita/cci-pingu)

When all of the artifacts are downloaded into that directory, the tool starts executable (typically installation bash script) specified in the configuration file as `script`. This script must take one command line argument, and that is the name of the directory into which the artifacts from CircleCI were downloaded. It is expected that the script knows how to use the artifacts and what exactly to do with them to successfuly install them locally.
When all of the artifacts are downloaded into that directory, the tool starts executable (typically installation bash script) specified in the configuration file as `script`. This script must take two command line arguments, which are:
* the name of the directory into which the artifacts from CircleCI were downloaded, and
* the build number currently processed.
It is expected that the script knows how to use the artifacts and what exactly to do with them to successfuly install them locally.

@@ -58,0 +61,0 @@ It might be a good idea to delete the directories from previous installations, and leave the last *N* artifact directories there, to keep the disk space occupied with these directories limited.

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