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

teen_process

Package Overview
Dependencies
Maintainers
6
Versions
160
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

teen_process - npm Package Compare versions

Comparing version 1.5.0 to 1.5.1

6

build/lib/teen_process.js

@@ -120,2 +120,3 @@ 'use strict';

var args = arguments[1] === undefined ? [] : arguments[1];
var opts = arguments[2] === undefined ? {} : arguments[2];

@@ -131,2 +132,3 @@ _classCallCheck(this, SubProcess);

this.proc = null;
this.opts = opts;
}

@@ -169,3 +171,3 @@

// actually spawn the subproc
_this.proc = _child_process.spawn(_this.cmd, _this.args);
_this.proc = _child_process.spawn(_this.cmd, _this.args, _this.opts);
} catch (e) {

@@ -350,2 +352,2 @@ reject(e);

// return a promise so we can wrap the async behavior
//# sourceMappingURL=data:application/json;base64,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QyxJQUFJLEtBQUssa0NBQWdDLElBQUksQ0FBRyxDQUFDLENBQUM7aUJBQzFELE1BQU07QUFDTCx5QkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNmO2VBQ0YsQ0FBQyxDQUFDO2FBQ0osQ0FBQzs7Ozs7OztLQUNIOzs7U0E3SkcsVUFBVTtHQUFTLFlBQVk7O1FBZ0s1QixJQUFJLEdBQUosSUFBSTtRQUFFLEtBQUssa0JBaFBYLEtBQUs7UUFnUFEsVUFBVSxHQUFWLFVBQVUiLCJmaWxlIjoibGliL3RlZW5fcHJvY2Vzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBxdW90ZSB9IGZyb20gJ3NoZWxsLXF1b3RlJztcbmltcG9ydCBldmVudHMgZnJvbSAnZXZlbnRzJztcbmltcG9ydCB0aHJvdWdoIGZyb20gJ3Rocm91Z2gnO1xuY29uc3QgeyBFdmVudEVtaXR0ZXIgfSA9IGV2ZW50cztcblxuZnVuY3Rpb24gZXhlYyAoY21kLCBhcmdzID0gW10sIG9wdHMgPSB7fSkge1xuICAvLyBnZXQgYSBxdW90ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbW1hbmQgZm9yIGVycm9yIHN0cmluZ3NcbiAgbGV0IHJlcCA9IHF1b3RlKFtjbWRdLmNvbmNhdChhcmdzKSk7XG5cbiAgLy8gZXh0ZW5kIGRlZmF1bHQgb3B0aW9uczsgd2UncmUgYmFzaWNhbGx5IHJlLWltcGxlbWVudGluZyBleGVjJ3Mgb3B0aW9uc1xuICAvLyBmb3IgdXNlIGhlcmUgd2l0aCBzcGF3biB1bmRlciB0aGUgaG9vZFxuICBvcHRzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgdGltZW91dDogbnVsbCxcbiAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgIGtpbGxTaWduYWw6ICdTSUdURVJNJyxcbiAgICBjd2Q6IHVuZGVmaW5lZCxcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGlnbm9yZU91dHB1dDogZmFsc2VcbiAgfSwgb3B0cyk7XG5cbiAgLy8gdGhpcyBpcyBhbiBhc3luYyBmdW5jdGlvbiwgc28gcmV0dXJuIGEgcHJvbWlzZVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIHNwYXduIHRoZSBjaGlsZCBwcm9jZXNzIHdpdGggb3B0aW9uczsgd2UgZG9uJ3QgY3VycmVudGx5IGV4cG9zZSBhbnkgb2ZcbiAgICAvLyB0aGUgb3RoZXIgJ3NwYXduJyBvcHRpb25zIHRocm91Z2ggdGhlIEFQSVxuICAgIGxldCBwcm9jID0gc3Bhd24oY21kLCBhcmdzLCB7Y3dkOiBvcHRzLmN3ZCwgZW52OiBvcHRzLmVudn0pO1xuICAgIGxldCBzdGRvdXQgPSBcIlwiLCBzdGRlcnIgPSBcIlwiLCB0aW1lciA9IG51bGw7XG5cbiAgICAvLyBpZiB0aGUgcHJvY2VzcyBlcnJvcnMgb3V0LCByZWplY3QgdGhlIHByb21pc2VcbiAgICBwcm9jLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoYENvbW1hbmQgJyR7cmVwfScgZXJyb3JlZCBvdXQ6ICR7ZXJyLnN0YWNrfWApKTtcbiAgICB9KTtcblxuICAgIC8vIGtlZXAgdHJhY2sgb2Ygc3Rkb3V0L3N0ZGVyciBpZiB3ZSBoYXZlbid0IHNhaWQgbm90IHRvXG4gICAgaWYgKCFvcHRzLmlnbm9yZU91dHB1dCkge1xuICAgICAgcHJvYy5zdGRvdXQub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBzdGRvdXQgKz0gZGF0YTtcbiAgICAgIH0pO1xuICAgICAgcHJvYy5zdGRlcnIub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBzdGRlcnIgKz0gZGF0YTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSBwcm9jZXNzIGVuZHMsIGVpdGhlciByZXNvbHZlIG9yIHJlamVjdCB0aGUgcHJvbWlzZSBiYXNlZCBvbiB0aGVcbiAgICAvLyBleGl0IGNvZGUgb2YgdGhlIHByb2Nlc3MuIGVpdGhlciB3YXksIGF0dGFjaCBzdGRvdXQsIHN0ZGVyciwgYW5kIGNvZGUuXG4gICAgLy8gQWxzbyBjbGVhbiB1cCB0aGUgdGltZXIgaWYgaXQgZXhpc3RzXG4gICAgcHJvYy5vbignY2xvc2UnLCAoY29kZSkgPT4ge1xuICAgICAgaWYgKHRpbWVyKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgICBzdGRvdXQgPSBzdGRvdXQudG9TdHJpbmcob3B0cy5lbmNvZGluZyk7XG4gICAgICBzdGRlcnIgPSBzdGRlcnIudG9TdHJpbmcob3B0cy5lbmNvZGluZyk7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICByZXNvbHZlKHtzdGRvdXQsIHN0ZGVyciwgY29kZX0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGVyciA9IG5ldyBFcnJvcihgQ29tbWFuZCAnJHtyZXB9JyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gKTtcbiAgICAgICAgZXJyID0gT2JqZWN0LmFzc2lnbihlcnIsIHtzdGRvdXQsIHN0ZGVyciwgY29kZX0pO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGlmIHdlIHNldCBhIHRpbWVvdXQgb24gdGhlIGNoaWxkIHByb2Nlc3MsIGN1dCBpbnRvIHRoZSBleGVjdXRpb24gYW5kXG4gICAgLy8gcmVqZWN0IGlmIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuIEF0dGFjaCB0aGUgc3Rkb3V0L3N0ZGVyciB3ZSBjdXJyZW50bHlcbiAgICAvLyBoYXZlIGluIGNhc2UgaXQncyBoZWxwZnVsIGluIGRlYnVnZ2luZ1xuICAgIGlmIChvcHRzLnRpbWVvdXQpIHtcbiAgICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHN0ZG91dCA9IHN0ZG91dC50b1N0cmluZyhvcHRzLmVuY29kaW5nKTtcbiAgICAgICAgc3RkZXJyID0gc3RkZXJyLnRvU3RyaW5nKG9wdHMuZW5jb2RpbmcpO1xuICAgICAgICBsZXQgZXJyID0gbmV3IEVycm9yKGBDb21tYW5kICcke3JlcH0nIHRpbWVkIG91dCBhZnRlciAke29wdHMudGltZW91dH1gICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbXNgKTtcbiAgICAgICAgZXJyID0gT2JqZWN0LmFzc2lnbihlcnIsIHtzdGRvdXQsIHN0ZGVyciwgY29kZTogbnVsbH0pO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgLy8gcmVqZWN0IGFuZCBUSEVOIGtpbGwgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIHdpdGggdGhlIGhhbmRsZXJzXG4gICAgICAgIC8vIGFib3ZlXG4gICAgICAgIHByb2Mua2lsbChvcHRzLmtpbGxTaWduYWwpO1xuICAgICAgfSwgb3B0cy50aW1lb3V0KTtcbiAgICB9XG4gIH0pO1xufVxuXG5jbGFzcyBTdWJQcm9jZXNzIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgY29uc3RydWN0b3IgKGNtZCwgYXJncyA9IFtdKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWNtZCkgdGhyb3cgbmV3IEVycm9yKFwiQ29tbWFuZCBpcyByZXF1aXJlZFwiKTtcbiAgICBpZiAodHlwZW9mIGNtZCAhPT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IEVycm9yKFwiQ29tbWFuZCBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICAgIGlmICghKGFyZ3MgaW5zdGFuY2VvZiBBcnJheSkpIHRocm93IG5ldyBFcnJvcihcIkFyZ3MgbXVzdCBiZSBhbiBhcnJheVwiKTtcbiAgICB0aGlzLmNtZCA9IGNtZDtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzO1xuICAgIHRoaXMucHJvYyA9IG51bGw7XG4gIH1cblxuICAvLyBzcGF3biB0aGUgc3VicHJvY2VzcyBhbmQgcmV0dXJuIGNvbnRyb2wgd2hlbmV2ZXIgd2UgZGVlbSB0aGF0IGl0IGhhcyBmdWxseVxuICAvLyBcInN0YXJ0ZWRcIlxuICBhc3luYyBzdGFydCAoc3RhcnREZXRlY3RvciA9IG51bGwsIHRpbWVvdXRNcyA9IG51bGwpIHtcbiAgICBsZXQgc3RhcnREZWxheSA9IDEwO1xuXG4gICAgLy8gdGhlIGRlZmF1bHQgc3RhcnQgZGV0ZWN0b3Igc2ltcGx5IHJldHVybnMgdHJ1ZSB3aGVuIHdlIGdldCBhbnkgb3V0cHV0XG4gICAgaWYgKHN0YXJ0RGV0ZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIHN0YXJ0RGV0ZWN0b3IgPSAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSB1c2VyIHBhc3NlcyBhIG51bWJlciwgdGhlbiB3ZSBzaW1wbHkgZGVsYXkgYSBjZXJ0YWluIGFtb3VudCBvZlxuICAgIC8vIHRpbWUgYmVmb3JlIHJldHVybmluZyBjb250cm9sLCByYXRoZXIgdGhhbiB3YWl0aW5nIGZvciBhIGNvbmRpdGlvblxuICAgIGlmICh0eXBlb2Ygc3RhcnREZXRlY3RvciA9PT0gJ251bWJlcicpIHtcbiAgICAgIHN0YXJ0RGVsYXkgPSBzdGFydERldGVjdG9yO1xuICAgICAgc3RhcnREZXRlY3RvciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIGEgcHJvbWlzZSBzbyB3ZSBjYW4gd3JhcCB0aGUgYXN5bmMgYmVoYXZpb3JcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gYWN0dWFsbHkgc3Bhd24gdGhlIHN1YnByb2NcbiAgICAgICAgdGhpcy5wcm9jID0gc3Bhd24odGhpcy5jbWQsIHRoaXMuYXJncyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvYy5zdGRvdXQuc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcbiAgICAgIHRoaXMucHJvYy5zdGRlcnIuc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcbiAgICAgIHRoaXMubGFzdExpbmVQb3J0aW9uID0ge3N0ZG91dDogXCJcIiwgc3RkZXJyOiBcIlwifTtcblxuICAgICAgLy8gdGhpcyBmdW5jdGlvbiBoYW5kbGVzIG91dHB1dCB0aGF0IHdlIGNvbGxlY3QgZnJvbSB0aGUgc3VicHJvY1xuICAgICAgY29uc3QgaGFuZGxlT3V0cHV0ID0gKGRhdGEpID0+IHtcbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIHN0YXJ0RGV0ZWN0b3IsIHJ1biBpdCBvbiB0aGUgb3V0cHV0IHNvIHdlIGNhbiByZXNvbHZlL1xuICAgICAgICAvLyByZWplY3QgYW5kIG1vdmUgb24gZnJvbSBzdGFydFxuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChzdGFydERldGVjdG9yICYmIHN0YXJ0RGV0ZWN0b3IoZGF0YS5zdGRvdXQsIGRhdGEuc3RkZXJyKSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgdGhlIGFjdHVhbCBvdXRwdXQgZm9yIHdob21ldmVyJ3MgbGlzdGVuaW5nXG4gICAgICAgIHRoaXMuZW1pdCgnb3V0cHV0JywgZGF0YS5zdGRvdXQsIGRhdGEuc3RkZXJyKTtcblxuICAgICAgICAvLyB3ZSBhbHNvIHdhbnQgdG8gZW1pdCBsaW5lcywgYnV0IGl0J3MgbW9yZSBjb21wbGV4IHNpbmNlIG91dHB1dFxuICAgICAgICAvLyBjb21lcyBpbiBjaHVua3MgYW5kIGEgbGluZSBjb3VsZCBjb21lIGluIHR3byBkaWZmZXJlbnQgY2h1bmtzLCBzb1xuICAgICAgICAvLyB3ZSBoYXZlIGxvZ2ljIHRvIGhhbmRsZSB0aGF0IGNhc2UgKHVzaW5nIHRoaXMubGFzdExpbmVQb3J0aW9uIHRvXG4gICAgICAgIC8vIHJlbWVtYmVyIGEgbGluZSB0aGF0IHN0YXJ0ZWQgYnV0IGRpZCBub3QgZmluaXNoIGluIHRoZSBsYXN0IGNodW5rKVxuICAgICAgICBmb3IgKGxldCBzdHJlYW0gb2YgWydzdGRvdXQnLCAnc3RkZXJyJ10pIHtcbiAgICAgICAgICBpZiAoIWRhdGFbc3RyZWFtXSkgY29udGludWU7XG4gICAgICAgICAgbGV0IGxpbmVzID0gZGF0YVtzdHJlYW1dLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICAgIGlmIChsaW5lcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBsZXQgcmV0TGluZXMgPSBsaW5lcy5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICByZXRMaW5lc1swXSA9IHRoaXMubGFzdExpbmVQb3J0aW9uW3N0cmVhbV0gKyByZXRMaW5lc1swXTtcbiAgICAgICAgICAgIHRoaXMubGFzdExpbmVQb3J0aW9uW3N0cmVhbV0gPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIHRoaXMuZW1pdChgbGluZXMtJHtzdHJlYW19YCwgcmV0TGluZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RMaW5lUG9ydGlvbltzdHJlYW1dICs9IGxpbmVzWzBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gaWYgd2UgZ2V0IGFuIGVycm9yIHNwYXduaW5nIHRoZSBwcm9jLCByZWplY3QgYW5kIGNsZWFuIHVwIHRoZSBwcm9jXG4gICAgICB0aGlzLnByb2Mub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgdGhpcy5wcm9jLnJlbW92ZUFsbExpc3RlbmVycygnZXhpdCcpO1xuICAgICAgICB0aGlzLnByb2Mua2lsbCgnU0lHSU5UJyk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucHJvYy5zdGRvdXQucGlwZSh0aHJvdWdoKHN0ZG91dCA9PiB7XG4gICAgICAgIGhhbmRsZU91dHB1dCh7c3Rkb3V0LCBzdGRlcnI6ICcnfSk7XG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMucHJvYy5zdGRlcnIucGlwZSh0aHJvdWdoKHN0ZGVyciA9PiB7XG4gICAgICAgIGhhbmRsZU91dHB1dCh7c3Rkb3V0OiAnJywgc3RkZXJyfSk7XG4gICAgICB9KSk7XG5cbiAgICAgIC8vIHdoZW4gdGhlIHByb2MgZXhpdHMsIHdlIG1pZ2h0IHN0aWxsIGhhdmUgYSBidWZmZXIgb2YgbGluZXMgd2Ugd2VyZVxuICAgICAgLy8gd2FpdGluZyBvbiBtb3JlIGNodW5rcyB0byBjb21wbGV0ZS4gR28gYWhlYWQgYW5kIGVtaXQgdGhvc2UsIHRoZW5cbiAgICAgIC8vIHJlLWVtaXQgdGhlIGV4aXQgc28gYSBsaXN0ZW5lciBjYW4gaGFuZGxlIHRoZSBwb3NzaWJseS11bmV4cGVjdGVkIGV4aXRcbiAgICAgIHRoaXMucHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMYXN0TGluZXMoKTtcbiAgICAgICAgdGhpcy5lbWl0KCdleGl0JywgY29kZSwgc2lnbmFsKTtcbiAgICAgICAgdGhpcy5wcm9jID0gbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpZiB0aGUgdXNlciBoYXNuJ3QgZ2l2ZW4gdXMgYSBzdGFydERldGVjdG9yLCBpbnN0ZWFkIGp1c3QgcmVzb2x2ZVxuICAgICAgLy8gd2hlbiBzdGFydERlbGF5IG1zIGhhdmUgcGFzc2VkXG4gICAgICBpZiAoIXN0YXJ0RGV0ZWN0b3IpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LCBzdGFydERlbGF5KTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgdGhlIHVzZXIgaGFzIGdpdmVuIHVzIGEgdGltZW91dCwgc3RhcnQgdGhlIGNsb2NrIGZvciByZWplY3RpbmdcbiAgICAgIC8vIHRoZSBwcm9taXNlIGlmIHdlIHRha2UgdG9vIGxvbmcgdG8gc3RhcnRcbiAgICAgIGlmICh0eXBlb2YgdGltZW91dE1zID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJUaGUgcHJvY2VzcyBkaWQgbm90IHN0YXJ0IGluIHRoZSBhbGxvdHRlZCB0aW1lIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoJHt0aW1lb3V0TXN9bXMpYCkpO1xuICAgICAgICB9LCB0aW1lb3V0TXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlTGFzdExpbmVzICgpIHtcbiAgICBmb3IgKGxldCBzdHJlYW0gb2YgWydzdGRvdXQnLCAnc3RkZXJyJ10pIHtcbiAgICAgIGlmICh0aGlzLmxhc3RMaW5lUG9ydGlvbltzdHJlYW1dKSB7XG4gICAgICAgIHRoaXMuZW1pdChgbGluZXMtJHtzdHJlYW19YCwgW3RoaXMubGFzdExpbmVQb3J0aW9uW3N0cmVhbV1dKTtcbiAgICAgICAgdGhpcy5sYXN0TGluZVBvcnRpb25bc3RyZWFtXSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0b3AgKHNpZ25hbCA9ICdTSUdURVJNJywgdGltZW91dCA9IDEwMDAwKSB7XG4gICAgaWYgKCF0aGlzLnByb2MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IHN0b3AgcHJvY2VzczsgaXQncyBub3QgY3VycmVudGx5IHJ1bm5pbmdcIik7XG4gICAgfVxuICAgIC8vIG1ha2Ugc3VyZSB0byBlbWl0IGFueSBkYXRhIGluIG91ciBsaW5lcyBidWZmZXIgd2hlbmV2ZXIgd2UncmUgZG9uZSB3aXRoXG4gICAgLy8gdGhlIHByb2NcbiAgICB0aGlzLmhhbmRsZUxhc3RMaW5lcygpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnByb2Mub24oJ2Nsb3NlJywgcmVzb2x2ZSk7XG4gICAgICB0aGlzLnByb2Mua2lsbChzaWduYWwpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFByb2Nlc3MgZGlkbid0IGVuZCBhZnRlciAke3RpbWVvdXR9bXNgKSk7XG4gICAgICB9LCB0aW1lb3V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGpvaW4gKGFsbG93ZWRFeGl0Q29kZXMgPSBbMF0pIHtcbiAgICBpZiAoIXRoaXMucHJvYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3Qgam9pbiBwcm9jZXNzOyBpdCdzIG5vdCBjdXJyZW50bHkgcnVubmluZ1wiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUpID0+IHtcbiAgICAgICAgaWYgKGFsbG93ZWRFeGl0Q29kZXMuaW5kZXhPZihjb2RlKSA9PT0gLTEpIHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBQcm9jZXNzIGVuZGVkIHdpdGggZXhpdGNvZGUgJHtjb2RlfWApKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKGNvZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgeyBleGVjLCBzcGF3biwgU3ViUHJvY2VzcyB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,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LG9CQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtBQUN6Qyx3QkFBTSxDQUFDLElBQUksS0FBSyxrQ0FBZ0MsSUFBSSxDQUFHLENBQUMsQ0FBQztpQkFDMUQsTUFBTTtBQUNMLHlCQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2Y7ZUFDRixDQUFDLENBQUM7YUFDSixDQUFDOzs7Ozs7O0tBQ0g7OztTQTlKRyxVQUFVO0dBQVMsWUFBWTs7UUFpSzVCLElBQUksR0FBSixJQUFJO1FBQUUsS0FBSyxrQkFqUFgsS0FBSztRQWlQUSxVQUFVLEdBQVYsVUFBVSIsImZpbGUiOiJsaWIvdGVlbl9wcm9jZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7IHF1b3RlIH0gZnJvbSAnc2hlbGwtcXVvdGUnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICdldmVudHMnO1xuaW1wb3J0IHRocm91Z2ggZnJvbSAndGhyb3VnaCc7XG5jb25zdCB7IEV2ZW50RW1pdHRlciB9ID0gZXZlbnRzO1xuXG5mdW5jdGlvbiBleGVjIChjbWQsIGFyZ3MgPSBbXSwgb3B0cyA9IHt9KSB7XG4gIC8vIGdldCBhIHF1b3RlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29tbWFuZCBmb3IgZXJyb3Igc3RyaW5nc1xuICBsZXQgcmVwID0gcXVvdGUoW2NtZF0uY29uY2F0KGFyZ3MpKTtcblxuICAvLyBleHRlbmQgZGVmYXVsdCBvcHRpb25zOyB3ZSdyZSBiYXNpY2FsbHkgcmUtaW1wbGVtZW50aW5nIGV4ZWMncyBvcHRpb25zXG4gIC8vIGZvciB1c2UgaGVyZSB3aXRoIHNwYXduIHVuZGVyIHRoZSBob29kXG4gIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcbiAgICB0aW1lb3V0OiBudWxsLFxuICAgIGVuY29kaW5nOiAndXRmOCcsXG4gICAga2lsbFNpZ25hbDogJ1NJR1RFUk0nLFxuICAgIGN3ZDogdW5kZWZpbmVkLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgaWdub3JlT3V0cHV0OiBmYWxzZVxuICB9LCBvcHRzKTtcblxuICAvLyB0aGlzIGlzIGFuIGFzeW5jIGZ1bmN0aW9uLCBzbyByZXR1cm4gYSBwcm9taXNlXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gc3Bhd24gdGhlIGNoaWxkIHByb2Nlc3Mgd2l0aCBvcHRpb25zOyB3ZSBkb24ndCBjdXJyZW50bHkgZXhwb3NlIGFueSBvZlxuICAgIC8vIHRoZSBvdGhlciAnc3Bhd24nIG9wdGlvbnMgdGhyb3VnaCB0aGUgQVBJXG4gICAgbGV0IHByb2MgPSBzcGF3bihjbWQsIGFyZ3MsIHtjd2Q6IG9wdHMuY3dkLCBlbnY6IG9wdHMuZW52fSk7XG4gICAgbGV0IHN0ZG91dCA9IFwiXCIsIHN0ZGVyciA9IFwiXCIsIHRpbWVyID0gbnVsbDtcblxuICAgIC8vIGlmIHRoZSBwcm9jZXNzIGVycm9ycyBvdXQsIHJlamVjdCB0aGUgcHJvbWlzZVxuICAgIHByb2Mub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ29tbWFuZCAnJHtyZXB9JyBlcnJvcmVkIG91dDogJHtlcnIuc3RhY2t9YCkpO1xuICAgIH0pO1xuXG4gICAgLy8ga2VlcCB0cmFjayBvZiBzdGRvdXQvc3RkZXJyIGlmIHdlIGhhdmVuJ3Qgc2FpZCBub3QgdG9cbiAgICBpZiAoIW9wdHMuaWdub3JlT3V0cHV0KSB7XG4gICAgICBwcm9jLnN0ZG91dC5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICAgIHN0ZG91dCArPSBkYXRhO1xuICAgICAgfSk7XG4gICAgICBwcm9jLnN0ZGVyci5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICAgIHN0ZGVyciArPSBkYXRhO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHByb2Nlc3MgZW5kcywgZWl0aGVyIHJlc29sdmUgb3IgcmVqZWN0IHRoZSBwcm9taXNlIGJhc2VkIG9uIHRoZVxuICAgIC8vIGV4aXQgY29kZSBvZiB0aGUgcHJvY2Vzcy4gZWl0aGVyIHdheSwgYXR0YWNoIHN0ZG91dCwgc3RkZXJyLCBhbmQgY29kZS5cbiAgICAvLyBBbHNvIGNsZWFuIHVwIHRoZSB0aW1lciBpZiBpdCBleGlzdHNcbiAgICBwcm9jLm9uKCdjbG9zZScsIChjb2RlKSA9PiB7XG4gICAgICBpZiAodGltZXIpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIH1cbiAgICAgIHN0ZG91dCA9IHN0ZG91dC50b1N0cmluZyhvcHRzLmVuY29kaW5nKTtcbiAgICAgIHN0ZGVyciA9IHN0ZGVyci50b1N0cmluZyhvcHRzLmVuY29kaW5nKTtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIHJlc29sdmUoe3N0ZG91dCwgc3RkZXJyLCBjb2RlfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZXJyID0gbmV3IEVycm9yKGBDb21tYW5kICcke3JlcH0nIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfWApO1xuICAgICAgICBlcnIgPSBPYmplY3QuYXNzaWduKGVyciwge3N0ZG91dCwgc3RkZXJyLCBjb2RlfSk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgd2Ugc2V0IGEgdGltZW91dCBvbiB0aGUgY2hpbGQgcHJvY2VzcywgY3V0IGludG8gdGhlIGV4ZWN1dGlvbiBhbmRcbiAgICAvLyByZWplY3QgaWYgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC4gQXR0YWNoIHRoZSBzdGRvdXQvc3RkZXJyIHdlIGN1cnJlbnRseVxuICAgIC8vIGhhdmUgaW4gY2FzZSBpdCdzIGhlbHBmdWwgaW4gZGVidWdnaW5nXG4gICAgaWYgKG9wdHMudGltZW91dCkge1xuICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc3Rkb3V0ID0gc3Rkb3V0LnRvU3RyaW5nKG9wdHMuZW5jb2RpbmcpO1xuICAgICAgICBzdGRlcnIgPSBzdGRlcnIudG9TdHJpbmcob3B0cy5lbmNvZGluZyk7XG4gICAgICAgIGxldCBlcnIgPSBuZXcgRXJyb3IoYENvbW1hbmQgJyR7cmVwfScgdGltZWQgb3V0IGFmdGVyICR7b3B0cy50aW1lb3V0fWAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBtc2ApO1xuICAgICAgICBlcnIgPSBPYmplY3QuYXNzaWduKGVyciwge3N0ZG91dCwgc3RkZXJyLCBjb2RlOiBudWxsfSk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAvLyByZWplY3QgYW5kIFRIRU4ga2lsbCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgd2l0aCB0aGUgaGFuZGxlcnNcbiAgICAgICAgLy8gYWJvdmVcbiAgICAgICAgcHJvYy5raWxsKG9wdHMua2lsbFNpZ25hbCk7XG4gICAgICB9LCBvcHRzLnRpbWVvdXQpO1xuICAgIH1cbiAgfSk7XG59XG5cbmNsYXNzIFN1YlByb2Nlc3MgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBjb25zdHJ1Y3RvciAoY21kLCBhcmdzID0gW10sIG9wdHMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFjbWQpIHRocm93IG5ldyBFcnJvcihcIkNvbW1hbmQgaXMgcmVxdWlyZWRcIik7XG4gICAgaWYgKHR5cGVvZiBjbWQgIT09IFwic3RyaW5nXCIpIHRocm93IG5ldyBFcnJvcihcIkNvbW1hbmQgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICBpZiAoIShhcmdzIGluc3RhbmNlb2YgQXJyYXkpKSB0aHJvdyBuZXcgRXJyb3IoXCJBcmdzIG11c3QgYmUgYW4gYXJyYXlcIik7XG4gICAgdGhpcy5jbWQgPSBjbWQ7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLnByb2MgPSBudWxsO1xuICAgIHRoaXMub3B0cyA9IG9wdHM7XG4gIH1cblxuICAvLyBzcGF3biB0aGUgc3VicHJvY2VzcyBhbmQgcmV0dXJuIGNvbnRyb2wgd2hlbmV2ZXIgd2UgZGVlbSB0aGF0IGl0IGhhcyBmdWxseVxuICAvLyBcInN0YXJ0ZWRcIlxuICBhc3luYyBzdGFydCAoc3RhcnREZXRlY3RvciA9IG51bGwsIHRpbWVvdXRNcyA9IG51bGwpIHtcbiAgICBsZXQgc3RhcnREZWxheSA9IDEwO1xuXG4gICAgLy8gdGhlIGRlZmF1bHQgc3RhcnQgZGV0ZWN0b3Igc2ltcGx5IHJldHVybnMgdHJ1ZSB3aGVuIHdlIGdldCBhbnkgb3V0cHV0XG4gICAgaWYgKHN0YXJ0RGV0ZWN0b3IgPT09IG51bGwpIHtcbiAgICAgIHN0YXJ0RGV0ZWN0b3IgPSAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSB1c2VyIHBhc3NlcyBhIG51bWJlciwgdGhlbiB3ZSBzaW1wbHkgZGVsYXkgYSBjZXJ0YWluIGFtb3VudCBvZlxuICAgIC8vIHRpbWUgYmVmb3JlIHJldHVybmluZyBjb250cm9sLCByYXRoZXIgdGhhbiB3YWl0aW5nIGZvciBhIGNvbmRpdGlvblxuICAgIGlmICh0eXBlb2Ygc3RhcnREZXRlY3RvciA9PT0gJ251bWJlcicpIHtcbiAgICAgIHN0YXJ0RGVsYXkgPSBzdGFydERldGVjdG9yO1xuICAgICAgc3RhcnREZXRlY3RvciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gcmV0dXJuIGEgcHJvbWlzZSBzbyB3ZSBjYW4gd3JhcCB0aGUgYXN5bmMgYmVoYXZpb3JcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gYWN0dWFsbHkgc3Bhd24gdGhlIHN1YnByb2NcbiAgICAgICAgdGhpcy5wcm9jID0gc3Bhd24odGhpcy5jbWQsIHRoaXMuYXJncywgdGhpcy5vcHRzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9jLnN0ZG91dC5zZXRFbmNvZGluZygndXRmOCcpO1xuICAgICAgdGhpcy5wcm9jLnN0ZGVyci5zZXRFbmNvZGluZygndXRmOCcpO1xuICAgICAgdGhpcy5sYXN0TGluZVBvcnRpb24gPSB7c3Rkb3V0OiBcIlwiLCBzdGRlcnI6IFwiXCJ9O1xuXG4gICAgICAvLyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgb3V0cHV0IHRoYXQgd2UgY29sbGVjdCBmcm9tIHRoZSBzdWJwcm9jXG4gICAgICBjb25zdCBoYW5kbGVPdXRwdXQgPSAoZGF0YSkgPT4ge1xuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgc3RhcnREZXRlY3RvciwgcnVuIGl0IG9uIHRoZSBvdXRwdXQgc28gd2UgY2FuIHJlc29sdmUvXG4gICAgICAgIC8vIHJlamVjdCBhbmQgbW92ZSBvbiBmcm9tIHN0YXJ0XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHN0YXJ0RGV0ZWN0b3IgJiYgc3RhcnREZXRlY3RvcihkYXRhLnN0ZG91dCwgZGF0YS5zdGRlcnIpKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCB0aGUgYWN0dWFsIG91dHB1dCBmb3Igd2hvbWV2ZXIncyBsaXN0ZW5pbmdcbiAgICAgICAgdGhpcy5lbWl0KCdvdXRwdXQnLCBkYXRhLnN0ZG91dCwgZGF0YS5zdGRlcnIpO1xuXG4gICAgICAgIC8vIHdlIGFsc28gd2FudCB0byBlbWl0IGxpbmVzLCBidXQgaXQncyBtb3JlIGNvbXBsZXggc2luY2Ugb3V0cHV0XG4gICAgICAgIC8vIGNvbWVzIGluIGNodW5rcyBhbmQgYSBsaW5lIGNvdWxkIGNvbWUgaW4gdHdvIGRpZmZlcmVudCBjaHVua3MsIHNvXG4gICAgICAgIC8vIHdlIGhhdmUgbG9naWMgdG8gaGFuZGxlIHRoYXQgY2FzZSAodXNpbmcgdGhpcy5sYXN0TGluZVBvcnRpb24gdG9cbiAgICAgICAgLy8gcmVtZW1iZXIgYSBsaW5lIHRoYXQgc3RhcnRlZCBidXQgZGlkIG5vdCBmaW5pc2ggaW4gdGhlIGxhc3QgY2h1bmspXG4gICAgICAgIGZvciAobGV0IHN0cmVhbSBvZiBbJ3N0ZG91dCcsICdzdGRlcnInXSkge1xuICAgICAgICAgIGlmICghZGF0YVtzdHJlYW1dKSBjb250aW51ZTtcbiAgICAgICAgICBsZXQgbGluZXMgPSBkYXRhW3N0cmVhbV0uc3BsaXQoXCJcXG5cIik7XG4gICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGxldCByZXRMaW5lcyA9IGxpbmVzLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgIHJldExpbmVzWzBdID0gdGhpcy5sYXN0TGluZVBvcnRpb25bc3RyZWFtXSArIHJldExpbmVzWzBdO1xuICAgICAgICAgICAgdGhpcy5sYXN0TGluZVBvcnRpb25bc3RyZWFtXSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgdGhpcy5lbWl0KGBsaW5lcy0ke3N0cmVhbX1gLCByZXRMaW5lcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGFzdExpbmVQb3J0aW9uW3N0cmVhbV0gKz0gbGluZXNbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICAvLyBpZiB3ZSBnZXQgYW4gZXJyb3Igc3Bhd25pbmcgdGhlIHByb2MsIHJlamVjdCBhbmQgY2xlYW4gdXAgdGhlIHByb2NcbiAgICAgIHRoaXMucHJvYy5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnByb2MucmVtb3ZlQWxsTGlzdGVuZXJzKCdleGl0Jyk7XG4gICAgICAgIHRoaXMucHJvYy5raWxsKCdTSUdJTlQnKTtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wcm9jLnN0ZG91dC5waXBlKHRocm91Z2goc3Rkb3V0ID0+IHtcbiAgICAgICAgaGFuZGxlT3V0cHV0KHtzdGRvdXQsIHN0ZGVycjogJyd9KTtcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5wcm9jLnN0ZGVyci5waXBlKHRocm91Z2goc3RkZXJyID0+IHtcbiAgICAgICAgaGFuZGxlT3V0cHV0KHtzdGRvdXQ6ICcnLCBzdGRlcnJ9KTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gd2hlbiB0aGUgcHJvYyBleGl0cywgd2UgbWlnaHQgc3RpbGwgaGF2ZSBhIGJ1ZmZlciBvZiBsaW5lcyB3ZSB3ZXJlXG4gICAgICAvLyB3YWl0aW5nIG9uIG1vcmUgY2h1bmtzIHRvIGNvbXBsZXRlLiBHbyBhaGVhZCBhbmQgZW1pdCB0aG9zZSwgdGhlblxuICAgICAgLy8gcmUtZW1pdCB0aGUgZXhpdCBzbyBhIGxpc3RlbmVyIGNhbiBoYW5kbGUgdGhlIHBvc3NpYmx5LXVuZXhwZWN0ZWQgZXhpdFxuICAgICAgdGhpcy5wcm9jLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUxhc3RMaW5lcygpO1xuICAgICAgICB0aGlzLmVtaXQoJ2V4aXQnLCBjb2RlLCBzaWduYWwpO1xuICAgICAgICB0aGlzLnByb2MgPSBudWxsO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGlmIHRoZSB1c2VyIGhhc24ndCBnaXZlbiB1cyBhIHN0YXJ0RGV0ZWN0b3IsIGluc3RlYWQganVzdCByZXNvbHZlXG4gICAgICAvLyB3aGVuIHN0YXJ0RGVsYXkgbXMgaGF2ZSBwYXNzZWRcbiAgICAgIGlmICghc3RhcnREZXRlY3Rvcikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sIHN0YXJ0RGVsYXkpO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB0aGUgdXNlciBoYXMgZ2l2ZW4gdXMgYSB0aW1lb3V0LCBzdGFydCB0aGUgY2xvY2sgZm9yIHJlamVjdGluZ1xuICAgICAgLy8gdGhlIHByb21pc2UgaWYgd2UgdGFrZSB0b28gbG9uZyB0byBzdGFydFxuICAgICAgaWYgKHR5cGVvZiB0aW1lb3V0TXMgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIlRoZSBwcm9jZXNzIGRpZCBub3Qgc3RhcnQgaW4gdGhlIGFsbG90dGVkIHRpbWUgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgke3RpbWVvdXRNc31tcylgKSk7XG4gICAgICAgIH0sIHRpbWVvdXRNcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVMYXN0TGluZXMgKCkge1xuICAgIGZvciAobGV0IHN0cmVhbSBvZiBbJ3N0ZG91dCcsICdzdGRlcnInXSkge1xuICAgICAgaWYgKHRoaXMubGFzdExpbmVQb3J0aW9uW3N0cmVhbV0pIHtcbiAgICAgICAgdGhpcy5lbWl0KGBsaW5lcy0ke3N0cmVhbX1gLCBbdGhpcy5sYXN0TGluZVBvcnRpb25bc3RyZWFtXV0pO1xuICAgICAgICB0aGlzLmxhc3RMaW5lUG9ydGlvbltzdHJlYW1dID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc3RvcCAoc2lnbmFsID0gJ1NJR1RFUk0nLCB0aW1lb3V0ID0gMTAwMDApIHtcbiAgICBpZiAoIXRoaXMucHJvYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3Qgc3RvcCBwcm9jZXNzOyBpdCdzIG5vdCBjdXJyZW50bHkgcnVubmluZ1wiKTtcbiAgICB9XG4gICAgLy8gbWFrZSBzdXJlIHRvIGVtaXQgYW55IGRhdGEgaW4gb3VyIGxpbmVzIGJ1ZmZlciB3aGVuZXZlciB3ZSdyZSBkb25lIHdpdGhcbiAgICAvLyB0aGUgcHJvY1xuICAgIHRoaXMuaGFuZGxlTGFzdExpbmVzKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucHJvYy5vbignY2xvc2UnLCByZXNvbHZlKTtcbiAgICAgIHRoaXMucHJvYy5raWxsKHNpZ25hbCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgUHJvY2VzcyBkaWRuJ3QgZW5kIGFmdGVyICR7dGltZW91dH1tc2ApKTtcbiAgICAgIH0sIHRpbWVvdXQpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgam9pbiAoYWxsb3dlZEV4aXRDb2RlcyA9IFswXSkge1xuICAgIGlmICghdGhpcy5wcm9jKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBqb2luIHByb2Nlc3M7IGl0J3Mgbm90IGN1cnJlbnRseSBydW5uaW5nXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnByb2Mub24oJ2V4aXQnLCAoY29kZSkgPT4ge1xuICAgICAgICBpZiAoYWxsb3dlZEV4aXRDb2Rlcy5pbmRleE9mKGNvZGUpID09PSAtMSkge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYFByb2Nlc3MgZW5kZWQgd2l0aCBleGl0Y29kZSAke2NvZGV9YCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoY29kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IGV4ZWMsIHNwYXduLCBTdWJQcm9jZXNzIH07XG4iXX0=

@@ -65,3 +65,37 @@ 'use strict';

});
it('should default opts dict to {}', function () {
var x = new _.SubProcess('ls');
x.opts.should.eql({});
});
it('should pass opts to spawn', function callee$1$0() {
var cwd, subproc, lines;
return _regeneratorRuntime.async(function callee$1$0$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
cwd = _path2['default'].resolve(_helpers.getFixture('.'));
subproc = new _.SubProcess('ls', [], { cwd: cwd });
lines = [];
subproc.on('lines-stdout', function (newLines) {
lines = lines.concat(newLines);
});
context$2$0.next = 6;
return subproc.start(0);
case 6:
context$2$0.next = 8;
return _bluebird2['default'].delay(50);
case 8:
lines.should.include('bad_exit.sh');
lines.should.contain('bigbuffer.js');
lines.should.contain('echo.sh');
case 11:
case 'end':
return context$2$0.stop();
}
}, null, _this);
});
describe('#start', function () {

@@ -525,2 +559,2 @@ it('should throw an error if command fails on startup', function callee$2$0() {

// 1 for the trap, 1 for the tail
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3Qvc3VicHJvYy1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3dCQUVjLFVBQVU7Ozs7b0JBQ1AsTUFBTTs7OztnQkFDVSxJQUFJOztvQkFDcEIsTUFBTTs7Ozs4QkFDSSxrQkFBa0I7Ozs7dUJBQ2xCLFdBQVc7O0FBUHRDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDOztBQVV4QyxJQUFNLE1BQU0sR0FBRyxrQkFBSyxNQUFNLEVBQUUsQ0FBQztBQUM3QixrQkFBSyxHQUFHLDZCQUFnQixDQUFDOztBQUV6QixRQUFRLENBQUMsWUFBWSxFQUFFLFlBQU07QUFDM0IsSUFBRSxDQUFDLHdEQUF3RCxFQUFFLFlBQU07QUFDakUsVUFBTSxTQUFNLENBQUMsWUFBTTtBQUNqQixZQVpTLFVBQVUsRUFZSCxDQUFDO0tBQ2xCLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyx5REFBeUQsRUFBRSxZQUFNO0FBQ2xFLFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUFqQlMsVUFBVSxDQWlCSixFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0tBQzdCLENBQUMsQ0FBQztBQUNILFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUFwQlMsVUFBVSxDQW9CSixDQUFDLENBQUMsQ0FBQztLQUNuQixDQUFDLENBQUM7R0FDSixDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsb0RBQW9ELEVBQUUsWUFBTTtBQUM3RCxVQUFNLFNBQU0sQ0FBQyxZQUFNO0FBQ2pCLFlBekJTLFVBQVUsQ0F5QkosSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzdCLENBQUMsQ0FBQztBQUNILFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUE1QlMsVUFBVSxDQTRCSixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekIsQ0FBQyxDQUFDO0FBQ0gsVUFBTSxTQUFNLENBQUMsWUFBTTtBQUNq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QUFDOzs7Ozs7O0tBQ25GLENBQUMsQ0FBQzs7QUFFSCxNQUFFLENBQUMsaUVBQWlFLEVBQUU7VUFDOUQsSUFBSTs7OztBQUFKLGdCQUFJLEdBQUcsTUEzTUosVUFBVSxDQTJNUyxTQXhNekIsVUFBVSxDQXdNMEIsYUFBYSxDQUFDLENBQUM7O21CQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzs7OzttQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDOzs7Ozs7O0tBQ3BELENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L3N1YnByb2Mtc3BlY3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJyZXF1aXJlKCdzb3VyY2UtbWFwLXN1cHBvcnQnKS5pbnN0YWxsKCk7XG5cbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJy4uJztcbmltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IHsgZ2V0Rml4dHVyZSB9IGZyb20gJy4vaGVscGVycyc7XG5cblxuY29uc3Qgc2hvdWxkID0gY2hhaS5zaG91bGQoKTtcbmNoYWkudXNlKGNoYWlBc1Byb21pc2VkKTtcblxuZGVzY3JpYmUoJ1N1YlByb2Nlc3MnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgaW5pdGlhbGl6ZWQgd2l0aG91dCBhIGNvbW1hbmQnLCAoKSA9PiB7XG4gICAgc2hvdWxkLnRocm93KCgpID0+IHtcbiAgICAgIG5ldyBTdWJQcm9jZXNzKCk7XG4gICAgfSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGluaXRpYWxpemVkIHdpdGggYSBiYWQgY29tbWFuZCcsICgpID0+IHtcbiAgICBzaG91bGQudGhyb3coKCkgPT4ge1xuICAgICAgbmV3IFN1YlByb2Nlc3Moe2xvbDogdHJ1ZX0pO1xuICAgIH0pO1xuICAgIHNob3VsZC50aHJvdygoKSA9PiB7XG4gICAgICBuZXcgU3ViUHJvY2VzcygxKTtcbiAgICB9KTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgaW5pdGlhbGl6ZWQgd2l0aCBiYWQgYXJncycsICgpID0+IHtcbiAgICBzaG91bGQudGhyb3coKCkgPT4ge1xuICAgICAgbmV3IFN1YlByb2Nlc3MoJ2xzJywgJ2ZvbycpO1xuICAgIH0pO1xuICAgIHNob3VsZC50aHJvdygoKSA9PiB7XG4gICAgICBuZXcgU3ViUHJvY2VzcygnbHMnLCAxKTtcbiAgICB9KTtcbiAgICBzaG91bGQudGhyb3coKCkgPT4ge1xuICAgICAgbmV3IFN1YlByb2Nlc3MoJ2xzJywge30pO1xuICAgIH0pO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBkZWZhdWx0IGFyZ3MgbGlzdCB0byBbXScsICgpID0+IHtcbiAgICBsZXQgeCA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgIHguYXJncy5zaG91bGQuZXFsKFtdKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJyNzdGFydCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGNvbW1hbmQgZmFpbHMgb24gc3RhcnR1cCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGxldCBzID0gbmV3IFN1YlByb2Nlc3MoJ2JsYXJnaW1hcmcnKTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL0VOT0VOVC8pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgaGF2ZSBhIGRlZmF1bHQgc3RhcnREZXRlY3RvciBvZiB3YWl0aW5nIGZvciBvdXRwdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgaGFzRGF0YSA9IGZhbHNlO1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnbHMnKTtcbiAgICAgIHMub24oJ291dHB1dCcsIChzdGRvdXQpID0+IHtcbiAgICAgICAgaWYgKHN0ZG91dCkge1xuICAgICAgICAgIGhhc0RhdGEgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLnRydWU7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBpbnRlcnByZXQgYSBudW1lcmljIHN0YXJ0RGV0ZWN0b3IgYXMgYSBzdGFydCB0aW1lb3V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IGhhc0RhdGEgPSBmYWxzZTtcbiAgICAgIGxldCBzID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgcy5vbignb3V0cHV0JywgKHN0ZG91dCkgPT4ge1xuICAgICAgICBpZiAoc3Rkb3V0KSB7XG4gICAgICAgICAgaGFzRGF0YSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgYXdhaXQgcy5zdGFydCgwKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgYXdhaXQgQi5kZWxheSgxMjAwKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLnRydWU7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIGV2ZW4gd2l0aCBhIHN0YXJ0IHRpbWVvdXQgb2YgMCB3aGVuIGNvbW1hbmQgaXMgYmFkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnYmxhcmdpbWFyZycpO1xuICAgICAgYXdhaXQgcy5zdGFydCgwKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL0VOT0VOVC8pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBwcm92aWRlIGEgY3VzdG9tIHN0YXJ0RGV0ZWN0b3IgZnVuY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc2QgPSAoc3Rkb3V0KSA9PiB7IHJldHVybiBzdGRvdXQ7IH07XG4gICAgICBsZXQgaGFzRGF0YSA9IGZhbHNlO1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnbHMnKTtcbiAgICAgIHMub24oJ291dHB1dCcsIChzdGRvdXQpID0+IHtcbiAgICAgICAgaWYgKHN0ZG91dCkge1xuICAgICAgICAgIGhhc0RhdGEgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoc2QpO1xuICAgICAgaGFzRGF0YS5zaG91bGQuYmUudHJ1ZTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHBhc3Mgb24gY3VzdG9tIGVycm9ycyBmcm9tIHN0YXJ0RGV0ZWN0b3InLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc2QgPSAoKSA9PiB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH07XG4gICAgICBsZXQgcyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgYXdhaXQgcy5zdGFydChzZCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9mb28vKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRpbWUgb3V0IHN0YXJ0cyB0aGF0IHRha2UgbG9uZ2VyIHRoYW4gc3BlY2lmaWVkIG1zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHNkID0gKHN0ZG91dCkgPT4geyByZXR1cm4gc3Rkb3V0LmluZGV4T2YoJ25vdGhlcmUnKSAhPT0gLTE7IH07XG4gICAgICBsZXQgcyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoc2QsIDUwMCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9kaWQgbm90IHN0YXJ0Lit0aW1lL2kpO1xuICAgICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmJlbG93KDYwMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsaXN0ZW5pbmcgZm9yIGRhdGEnLCAoKSA9PiB7XG4gICAgbGV0IHN1YnByb2M7XG4gICAgaXQoJ3Nob3VsZCBnZXQgb3V0cHV0IGFzIHBhcmFtcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHN1YnByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdzbGVlcHlwcm9jLnNoJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2xzJywgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSldKTtcbiAgICAgICAgc3VicHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCkgPT4ge1xuICAgICAgICAgIGlmIChzdGRvdXQgJiYgc3Rkb3V0LmluZGV4T2YoJ3N1YnByb2Mtc3BlY3MnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgpO1xuXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgICBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnZWNoby5zaCcpLCBbJ2ZvbycsICdiYXInXSk7XG4gICAgICAgIHN1YnByb2Mub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgIGlmIChzdGRlcnIgJiYgc3RkZXJyLmluZGV4T2YoJ2JhcicpICE9PSAtMSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoKTtcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgc3VicHJvYy5zdG9wKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBvdXRwdXQgYnkgbGluZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoJ2xzJywgW3BhdGgucmVzb2x2ZShfX2Rpcm5hbWUpXSk7XG4gICAgICBsZXQgbGluZXMgPSBbXTtcbiAgICAgIHN1YnByb2Mub24oJ2xpbmVzLXN0ZG91dCcsIChuZXdMaW5lcykgPT4ge1xuICAgICAgICBsaW5lcyA9IGxpbmVzLmNvbmNhdChuZXdMaW5lcyk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBCLmRlbGF5KDUwKTtcbiAgICAgIGxpbmVzLnNob3VsZC5lcWwoWydleGVjLXNwZWNzLmpzJywgJ2ZpeHR1cmVzJywgJ2hlbHBlcnMuanMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YnByb2Mtc3BlY3MuanMnXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCcjc3RvcCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNlbmQgdGhlIHJpZ2h0IHNpZ25hbCB0byBzdG9wIGEgcHJvYycsIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoJ3RhaWwnLCBbJy1mJywgcGF0aC5yZXNvbHZlKF9fZmlsZW5hbWUpXSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoKTtcbiAgICAgICAgc3VicHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2lnbmFsLnNob3VsZC5lcXVhbCgnU0lHSFVQJyk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgnU0lHSFVQJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGltZSBvdXQgaWYgc3RvcCBkb2VzbnQgY29tcGxldGUgZmFzdCBlbm91Z2gnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc3VicHJvYyA9IG5ldyBTdWJQcm9jZXNzKGdldEZpeHR1cmUoJ3RyYXBodXAuc2gnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0YWlsJywgJy1mJywgcGF0aC5yZXNvbHZlKF9fZmlsZW5hbWUpXSk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0b3AoJ1NJR0hVUCcsIDEwKVxuICAgICAgICAgICAgICAuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9Qcm9jZXNzIGRpZG4ndCBlbmQvKTtcblxuICAgICAgLy8gbmVlZCB0byBraWxsIHRoZSBwcm9jZXNzXG4gICAgICAvLyAxIGZvciB0aGUgdHJhcCwgMSBmb3IgdGhlIHRhaWxcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGV4ZWMoJ2tpbGwnLCBbJy05Jywgc3VicHJvYy5wcm9jLnBpZCArIDFdKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGV4ZWMoJ2tpbGwnLCBbJy05Jywgc3VicHJvYy5wcm9jLnBpZF0pO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBlcnJvciBpZiB0aGVyZSBpcyBubyBwcm9jZXNzIHRvIHN0b3AnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc3VicHJvYyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgYXdhaXQgc3VicHJvYy5zdG9wKCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9DYW4ndCBzdG9wLyk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICBhd2FpdCBCLmRlbGF5KDEwKTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvQ2FuJ3Qgc3RvcC8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnI2pvaW4nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSAjc3RhcnQgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgYXdhaXQgcHJvYy5qb2luKCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9DYW4ndCBqb2luLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHdhaXQgdW50aWwgdGhlIHByb2Nlc3MgaGFzIGJlZW4gZmluaXNoZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oKTtcbiAgICAgIGNvbnN0IGRpZmYgPSBEYXRlLm5vdygpIC0gbm93O1xuICAgICAgZGlmZi5zaG91bGQuYmUuYWJvdmUoMTAwMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGlmIHByb2Nlc3MgZW5kcyB3aXRoIGEgaW52YWxpZCBleGl0Y29kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdiYWRfZXhpdC5zaCcpKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL1Byb2Nlc3MgZW5kZWQgd2l0aCBleGl0Y29kZS8pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBOT1QgdGhyb3cgaWYgcHJvY2VzcyBlbmRzIHdpdGggYSBjdXN0b20gYWxsb3dlZCBleGl0Y29kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdiYWRfZXhpdC5zaCcpKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oWzFdKS5zaG91bGQuZXZlbnR1YWxseS5iZS5iZWNvbWUoMSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3Qvc3VicHJvYy1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3dCQUVjLFVBQVU7Ozs7b0JBQ1AsTUFBTTs7OztnQkFDVSxJQUFJOztvQkFDcEIsTUFBTTs7Ozs4QkFDSSxrQkFBa0I7Ozs7dUJBQ2xCLFdBQVc7O0FBUHRDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDOztBQVV4QyxJQUFNLE1BQU0sR0FBRyxrQkFBSyxNQUFNLEVBQUUsQ0FBQztBQUM3QixrQkFBSyxHQUFHLDZCQUFnQixDQUFDOztBQUV6QixRQUFRLENBQUMsWUFBWSxFQUFFLFlBQU07QUFDM0IsSUFBRSxDQUFDLHdEQUF3RCxFQUFFLFlBQU07QUFDakUsVUFBTSxTQUFNLENBQUMsWUFBTTtBQUNqQixZQVpTLFVBQVUsRUFZSCxDQUFDO0tBQ2xCLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyx5REFBeUQsRUFBRSxZQUFNO0FBQ2xFLFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUFqQlMsVUFBVSxDQWlCSixFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0tBQzdCLENBQUMsQ0FBQztBQUNILFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUFwQlMsVUFBVSxDQW9CSixDQUFDLENBQUMsQ0FBQztLQUNuQixDQUFDLENBQUM7R0FDSixDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsb0RBQW9ELEVBQUUsWUFBTTtBQUM3RCxVQUFNLFNBQU0sQ0FBQyxZQUFNO0FBQ2pCLFlBekJTLFVBQVUsQ0F5QkosSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzdCLENBQUMsQ0FBQztBQUNILFVBQU0sU0FBTSxDQUFDLFlBQU07QUFDakIsWUE1QlMsVUFBVSxDQTRCSixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDekIsQ0FBQyxDQUFDO0FBQ0gsVUFBTSxTQUFNLENBQUMsWUFBTTtBQUNq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QkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Ozs7bUJBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzs7Ozs7OztLQUNwRCxDQUFDLENBQUM7R0FDSixDQUFDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJmaWxlIjoidGVzdC9zdWJwcm9jLXNwZWNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnc291cmNlLW1hcC1zdXBwb3J0JykuaW5zdGFsbCgpO1xuXG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGV4ZWMsIFN1YlByb2Nlc3MgfSBmcm9tICcuLic7XG5pbXBvcnQgY2hhaSBmcm9tICdjaGFpJztcbmltcG9ydCBjaGFpQXNQcm9taXNlZCBmcm9tICdjaGFpLWFzLXByb21pc2VkJztcbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5cbmNvbnN0IHNob3VsZCA9IGNoYWkuc2hvdWxkKCk7XG5jaGFpLnVzZShjaGFpQXNQcm9taXNlZCk7XG5cbmRlc2NyaWJlKCdTdWJQcm9jZXNzJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGluaXRpYWxpemVkIHdpdGhvdXQgYSBjb21tYW5kJywgKCkgPT4ge1xuICAgIHNob3VsZC50aHJvdygoKSA9PiB7XG4gICAgICBuZXcgU3ViUHJvY2VzcygpO1xuICAgIH0pO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBpbml0aWFsaXplZCB3aXRoIGEgYmFkIGNvbW1hbmQnLCAoKSA9PiB7XG4gICAgc2hvdWxkLnRocm93KCgpID0+IHtcbiAgICAgIG5ldyBTdWJQcm9jZXNzKHtsb2w6IHRydWV9KTtcbiAgICB9KTtcbiAgICBzaG91bGQudGhyb3coKCkgPT4ge1xuICAgICAgbmV3IFN1YlByb2Nlc3MoMSk7XG4gICAgfSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGluaXRpYWxpemVkIHdpdGggYmFkIGFyZ3MnLCAoKSA9PiB7XG4gICAgc2hvdWxkLnRocm93KCgpID0+IHtcbiAgICAgIG5ldyBTdWJQcm9jZXNzKCdscycsICdmb28nKTtcbiAgICB9KTtcbiAgICBzaG91bGQudGhyb3coKCkgPT4ge1xuICAgICAgbmV3IFN1YlByb2Nlc3MoJ2xzJywgMSk7XG4gICAgfSk7XG4gICAgc2hvdWxkLnRocm93KCgpID0+IHtcbiAgICAgIG5ldyBTdWJQcm9jZXNzKCdscycsIHt9KTtcbiAgICB9KTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgZGVmYXVsdCBhcmdzIGxpc3QgdG8gW10nLCAoKSA9PiB7XG4gICAgbGV0IHggPSBuZXcgU3ViUHJvY2VzcygnbHMnKTtcbiAgICB4LmFyZ3Muc2hvdWxkLmVxbChbXSk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIGRlZmF1bHQgb3B0cyBkaWN0IHRvIHt9JywgKCkgPT4ge1xuICAgIGxldCB4ID0gbmV3IFN1YlByb2Nlc3MoJ2xzJyk7XG4gICAgeC5vcHRzLnNob3VsZC5lcWwoe30pO1xuICB9KTtcbiAgaXQoJ3Nob3VsZCBwYXNzIG9wdHMgdG8gc3Bhd24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3dkID0gcGF0aC5yZXNvbHZlKGdldEZpeHR1cmUoJy4nKSk7XG4gICAgY29uc3Qgc3VicHJvYyA9IG5ldyBTdWJQcm9jZXNzKCdscycsIFtdLCB7Y3dkfSk7XG4gICAgbGV0IGxpbmVzID0gW107XG4gICAgc3VicHJvYy5vbignbGluZXMtc3Rkb3V0JywgKG5ld0xpbmVzKSA9PiB7XG4gICAgICBsaW5lcyA9IGxpbmVzLmNvbmNhdChuZXdMaW5lcyk7XG4gICAgfSk7XG4gICAgYXdhaXQgc3VicHJvYy5zdGFydCgwKTtcbiAgICBhd2FpdCBCLmRlbGF5KDUwKTtcbiAgICBsaW5lcy5zaG91bGQuaW5jbHVkZSgnYmFkX2V4aXQuc2gnKTtcbiAgICBsaW5lcy5zaG91bGQuY29udGFpbignYmlnYnVmZmVyLmpzJyk7XG4gICAgbGluZXMuc2hvdWxkLmNvbnRhaW4oJ2VjaG8uc2gnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJyNzdGFydCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGNvbW1hbmQgZmFpbHMgb24gc3RhcnR1cCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGxldCBzID0gbmV3IFN1YlByb2Nlc3MoJ2JsYXJnaW1hcmcnKTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL0VOT0VOVC8pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgaGF2ZSBhIGRlZmF1bHQgc3RhcnREZXRlY3RvciBvZiB3YWl0aW5nIGZvciBvdXRwdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgaGFzRGF0YSA9IGZhbHNlO1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnbHMnKTtcbiAgICAgIHMub24oJ291dHB1dCcsIChzdGRvdXQpID0+IHtcbiAgICAgICAgaWYgKHN0ZG91dCkge1xuICAgICAgICAgIGhhc0RhdGEgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLnRydWU7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBpbnRlcnByZXQgYSBudW1lcmljIHN0YXJ0RGV0ZWN0b3IgYXMgYSBzdGFydCB0aW1lb3V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IGhhc0RhdGEgPSBmYWxzZTtcbiAgICAgIGxldCBzID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgcy5vbignb3V0cHV0JywgKHN0ZG91dCkgPT4ge1xuICAgICAgICBpZiAoc3Rkb3V0KSB7XG4gICAgICAgICAgaGFzRGF0YSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgYXdhaXQgcy5zdGFydCgwKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgYXdhaXQgQi5kZWxheSgxMjAwKTtcbiAgICAgIGhhc0RhdGEuc2hvdWxkLmJlLnRydWU7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIGV2ZW4gd2l0aCBhIHN0YXJ0IHRpbWVvdXQgb2YgMCB3aGVuIGNvbW1hbmQgaXMgYmFkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnYmxhcmdpbWFyZycpO1xuICAgICAgYXdhaXQgcy5zdGFydCgwKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL0VOT0VOVC8pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBwcm92aWRlIGEgY3VzdG9tIHN0YXJ0RGV0ZWN0b3IgZnVuY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc2QgPSAoc3Rkb3V0KSA9PiB7IHJldHVybiBzdGRvdXQ7IH07XG4gICAgICBsZXQgaGFzRGF0YSA9IGZhbHNlO1xuICAgICAgbGV0IHMgPSBuZXcgU3ViUHJvY2VzcygnbHMnKTtcbiAgICAgIHMub24oJ291dHB1dCcsIChzdGRvdXQpID0+IHtcbiAgICAgICAgaWYgKHN0ZG91dCkge1xuICAgICAgICAgIGhhc0RhdGEgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoc2QpO1xuICAgICAgaGFzRGF0YS5zaG91bGQuYmUudHJ1ZTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHBhc3Mgb24gY3VzdG9tIGVycm9ycyBmcm9tIHN0YXJ0RGV0ZWN0b3InLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc2QgPSAoKSA9PiB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH07XG4gICAgICBsZXQgcyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgYXdhaXQgcy5zdGFydChzZCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9mb28vKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRpbWUgb3V0IHN0YXJ0cyB0aGF0IHRha2UgbG9uZ2VyIHRoYW4gc3BlY2lmaWVkIG1zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHNkID0gKHN0ZG91dCkgPT4geyByZXR1cm4gc3Rkb3V0LmluZGV4T2YoJ25vdGhlcmUnKSAhPT0gLTE7IH07XG4gICAgICBsZXQgcyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIGF3YWl0IHMuc3RhcnQoc2QsIDUwMCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9kaWQgbm90IHN0YXJ0Lit0aW1lL2kpO1xuICAgICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmJlbG93KDYwMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsaXN0ZW5pbmcgZm9yIGRhdGEnLCAoKSA9PiB7XG4gICAgbGV0IHN1YnByb2M7XG4gICAgaXQoJ3Nob3VsZCBnZXQgb3V0cHV0IGFzIHBhcmFtcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHN1YnByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdzbGVlcHlwcm9jLnNoJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2xzJywgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSldKTtcbiAgICAgICAgc3VicHJvYy5vbignb3V0cHV0JywgKHN0ZG91dCkgPT4ge1xuICAgICAgICAgIGlmIChzdGRvdXQgJiYgc3Rkb3V0LmluZGV4T2YoJ3N1YnByb2Mtc3BlY3MnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgpO1xuXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgICBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnZWNoby5zaCcpLCBbJ2ZvbycsICdiYXInXSk7XG4gICAgICAgIHN1YnByb2Mub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgIGlmIChzdGRlcnIgJiYgc3RkZXJyLmluZGV4T2YoJ2JhcicpICE9PSAtMSkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoKTtcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgc3VicHJvYy5zdG9wKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBvdXRwdXQgYnkgbGluZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoJ2xzJywgW3BhdGgucmVzb2x2ZShfX2Rpcm5hbWUpXSk7XG4gICAgICBsZXQgbGluZXMgPSBbXTtcbiAgICAgIHN1YnByb2Mub24oJ2xpbmVzLXN0ZG91dCcsIChuZXdMaW5lcykgPT4ge1xuICAgICAgICBsaW5lcyA9IGxpbmVzLmNvbmNhdChuZXdMaW5lcyk7XG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBCLmRlbGF5KDUwKTtcbiAgICAgIGxpbmVzLnNob3VsZC5lcWwoWydleGVjLXNwZWNzLmpzJywgJ2ZpeHR1cmVzJywgJ2hlbHBlcnMuanMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YnByb2Mtc3BlY3MuanMnXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCcjc3RvcCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHNlbmQgdGhlIHJpZ2h0IHNpZ25hbCB0byBzdG9wIGEgcHJvYycsIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBzdWJwcm9jID0gbmV3IFN1YlByb2Nlc3MoJ3RhaWwnLCBbJy1mJywgcGF0aC5yZXNvbHZlKF9fZmlsZW5hbWUpXSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RhcnQoKTtcbiAgICAgICAgc3VicHJvYy5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2lnbmFsLnNob3VsZC5lcXVhbCgnU0lHSFVQJyk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgnU0lHSFVQJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGltZSBvdXQgaWYgc3RvcCBkb2VzbnQgY29tcGxldGUgZmFzdCBlbm91Z2gnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc3VicHJvYyA9IG5ldyBTdWJQcm9jZXNzKGdldEZpeHR1cmUoJ3RyYXBodXAuc2gnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd0YWlsJywgJy1mJywgcGF0aC5yZXNvbHZlKF9fZmlsZW5hbWUpXSk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0b3AoJ1NJR0hVUCcsIDEwKVxuICAgICAgICAgICAgICAuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9Qcm9jZXNzIGRpZG4ndCBlbmQvKTtcblxuICAgICAgLy8gbmVlZCB0byBraWxsIHRoZSBwcm9jZXNzXG4gICAgICAvLyAxIGZvciB0aGUgdHJhcCwgMSBmb3IgdGhlIHRhaWxcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGV4ZWMoJ2tpbGwnLCBbJy05Jywgc3VicHJvYy5wcm9jLnBpZCArIDFdKTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGV4ZWMoJ2tpbGwnLCBbJy05Jywgc3VicHJvYy5wcm9jLnBpZF0pO1xuICAgICAgfSBjYXRjaCAoaWduKSB7fVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBlcnJvciBpZiB0aGVyZSBpcyBubyBwcm9jZXNzIHRvIHN0b3AnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgc3VicHJvYyA9IG5ldyBTdWJQcm9jZXNzKCdscycpO1xuICAgICAgYXdhaXQgc3VicHJvYy5zdG9wKCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9DYW4ndCBzdG9wLyk7XG4gICAgICBhd2FpdCBzdWJwcm9jLnN0YXJ0KCk7XG4gICAgICBhd2FpdCBCLmRlbGF5KDEwKTtcbiAgICAgIGF3YWl0IHN1YnByb2Muc3RvcCgpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvQ2FuJ3Qgc3RvcC8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnI2pvaW4nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIGlmIHRoZSAjc3RhcnQgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgYXdhaXQgcHJvYy5qb2luKCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9DYW4ndCBqb2luLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHdhaXQgdW50aWwgdGhlIHByb2Nlc3MgaGFzIGJlZW4gZmluaXNoZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9jID0gbmV3IFN1YlByb2Nlc3MoZ2V0Rml4dHVyZSgnc2xlZXB5cHJvYy5zaCcpLCBbJ2xzJ10pO1xuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oKTtcbiAgICAgIGNvbnN0IGRpZmYgPSBEYXRlLm5vdygpIC0gbm93O1xuICAgICAgZGlmZi5zaG91bGQuYmUuYWJvdmUoMTAwMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGlmIHByb2Nlc3MgZW5kcyB3aXRoIGEgaW52YWxpZCBleGl0Y29kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdiYWRfZXhpdC5zaCcpKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oKS5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL1Byb2Nlc3MgZW5kZWQgd2l0aCBleGl0Y29kZS8pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBOT1QgdGhyb3cgaWYgcHJvY2VzcyBlbmRzIHdpdGggYSBjdXN0b20gYWxsb3dlZCBleGl0Y29kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb2MgPSBuZXcgU3ViUHJvY2VzcyhnZXRGaXh0dXJlKCdiYWRfZXhpdC5zaCcpKTtcbiAgICAgIGF3YWl0IHByb2Muc3RhcnQoMCk7XG4gICAgICBhd2FpdCBwcm9jLmpvaW4oWzFdKS5zaG91bGQuZXZlbnR1YWxseS5iZS5iZWNvbWUoMSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=

@@ -82,3 +82,3 @@ import { spawn } from 'child_process';

class SubProcess extends EventEmitter {
constructor (cmd, args = []) {
constructor (cmd, args = [], opts = {}) {
super();

@@ -91,2 +91,3 @@ if (!cmd) throw new Error("Command is required");

this.proc = null;
this.opts = opts;
}

@@ -117,3 +118,3 @@

// actually spawn the subproc
this.proc = spawn(this.cmd, this.args);
this.proc = spawn(this.cmd, this.args, this.opts);
} catch (e) {

@@ -120,0 +121,0 @@ reject(e);

@@ -8,3 +8,3 @@ {

],
"version": "1.5.0",
"version": "1.5.1",
"author": "appium",

@@ -11,0 +11,0 @@ "license": "Apache-2.0",

@@ -43,2 +43,19 @@ // transpile:mocha

});
it('should default opts dict to {}', () => {
let x = new SubProcess('ls');
x.opts.should.eql({});
});
it('should pass opts to spawn', async () => {
const cwd = path.resolve(getFixture('.'));
const subproc = new SubProcess('ls', [], {cwd});
let lines = [];
subproc.on('lines-stdout', (newLines) => {
lines = lines.concat(newLines);
});
await subproc.start(0);
await B.delay(50);
lines.should.include('bad_exit.sh');
lines.should.contain('bigbuffer.js');
lines.should.contain('echo.sh');
});

@@ -45,0 +62,0 @@ describe('#start', () => {

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