New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

nuclide-watchman-helpers

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nuclide-watchman-helpers - npm Package Compare versions

Comparing version 0.0.34 to 0.0.35

2

lib/main.js

@@ -55,2 +55,2 @@

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy82NC9uNHJoMDk2eDRwMWJrNndyd3prX3I1M21ya21sMjAvVC90bXAxVGZDWXFwdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL21haW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVyxDQUFDOzs7Ozs7Ozs7O0lBZUcscUJBQXFCLHFCQUFwQyxhQUF3RDtBQUN0RCxNQUFJO0FBQ0YsUUFBSSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7OztBQUd4RCxRQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7QUFDM0IsYUFBTyxxQkFBcUIsQ0FBQztLQUM5QjtHQUNGLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFFWDs7OztBQUFBLEFBRUQsU0FBTyxVQUFVLENBQUM7Q0FDbkI7Ozs7ZUFqQmlCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQzs7SUFBdkMsU0FBUyxZQUFULFNBQVM7O0FBRWQsSUFBSSxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQzs7QUFpQnRELE1BQU0sQ0FBQyxPQUFPLDJCQUFHO0FBQ2YsdUJBQXFCLEVBQXJCLHFCQUFxQjs7Q0FVdEI7QUFSSyxnQkFBYztTQUFBLGVBQUc7QUFDbkIsYUFBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNwQzs7OztBQUdHLHNCQUFvQjs7OztTQUFBLGVBQUc7QUFDekIsYUFBTyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUMxQzs7OztFQUNGLENBQUMiLCJmaWxlIjoiL3Zhci9mb2xkZXJzLzY0L240cmgwOTZ4NHAxYms2d3J3emtfcjUzbXJrbWwyMC9UL3RtcDFUZkNZcXB1Ymxpc2hfcGFja2FnZXMvbnBtL251Y2xpZGUtd2F0Y2htYW4taGVscGVycy9saWIvbWFpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgYmFiZWwnO1xuLyogQGZsb3cgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW5cbiAqIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciB7ZnNQcm9taXNlfSA9IHJlcXVpcmUoJ251Y2xpZGUtY29tbW9ucycpO1xuXG52YXIgV0FUQ0hNQU5fREVGQVVMVF9QQVRIID0gJy91c3IvbG9jYWwvYmluL3dhdGNobWFuJztcblxuYXN5bmMgZnVuY3Rpb24gZ2V0V2F0Y2htYW5CaW5hcnlQYXRoKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgdmFyIHN0YXRzID0gYXdhaXQgZnNQcm9taXNlLnN0YXQoV0FUQ0hNQU5fREVGQVVMVF9QQVRIKTtcbiAgICAvLyBgc3RhdHNgIGNvbnRhaW5zIGEgYG1vZGVgIHByb3BlcnR5LCBhIG51bWJlciB3aGljaCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmVcbiAgICAvLyB3aGV0aGVyIHRoaXMgZmlsZSBpcyBleGVjdXRhYmxlLiBIb3dldmVyLCB0aGUgbnVtYmVyIGlzIHBsYXRmb3JtLWRlcGVuZGVudC5cbiAgICBpZiAoc3RhdHMgJiYgc3RhdHMuaXNGaWxlKCkpIHtcbiAgICAgIHJldHVybiBXQVRDSE1BTl9ERUZBVUxUX1BBVEg7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gU3VwcHJlc3MgdGhlIGVycm9yLlxuICB9XG4gIC8vIExldCB0aGUgd2F0Y2htYW4gQ2xpZW50IGZpbmQgdGhlIHdhdGNobWFuIGJpbmFyeSB2aWEgdGhlIGRlZmF1bHQgZW52IFBBVEguXG4gIHJldHVybiAnd2F0Y2htYW4nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0V2F0Y2htYW5CaW5hcnlQYXRoLFxuXG4gIGdldCBXYXRjaG1hbkNsaWVudCgpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9XYXRjaG1hbkNsaWVudCcpO1xuICB9LFxuXG4gIC8vIEV4cG9zZWQgZm9yIHRlc3RpbmcuXG4gIGdldCBXYXRjaG1hblN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9XYXRjaG1hblN1YnNjcmlwdGlvbicpO1xuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy94Zi9yc3BoNF9jNTczMTVyczU3eHhzZHNrcnhudjM2dDAvVC90bXBwZmw1Mm5wdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL21haW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsV0FBVyxDQUFDOzs7Ozs7Ozs7O0lBZUcscUJBQXFCLHFCQUFwQyxhQUF3RDtBQUN0RCxNQUFJO0FBQ0YsUUFBTSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7OztBQUcxRCxRQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7QUFDM0IsYUFBTyxxQkFBcUIsQ0FBQztLQUM5QjtHQUNGLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFFWDs7OztBQUFBLEFBRUQsU0FBTyxVQUFVLENBQUM7Q0FDbkI7Ozs7ZUFqQm1CLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQzs7SUFBdkMsU0FBUyxZQUFULFNBQVM7O0FBRWhCLElBQU0scUJBQXFCLEdBQUcseUJBQXlCLENBQUM7O0FBaUJ4RCxNQUFNLENBQUMsT0FBTywyQkFBRztBQUNmLHVCQUFxQixFQUFyQixxQkFBcUI7O0NBVXRCO0FBUkssZ0JBQWM7U0FBQSxlQUFHO0FBQ25CLGFBQU8sT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDcEM7Ozs7QUFHRyxzQkFBb0I7Ozs7U0FBQSxlQUFHO0FBQ3pCLGFBQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDMUM7Ozs7RUFDRixDQUFDIiwiZmlsZSI6Ii92YXIvZm9sZGVycy94Zi9yc3BoNF9jNTczMTVyczU3eHhzZHNrcnhudjM2dDAvVC90bXBwZmw1Mm5wdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL21haW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGJhYmVsJztcbi8qIEBmbG93ICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluXG4gKiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5jb25zdCB7ZnNQcm9taXNlfSA9IHJlcXVpcmUoJ251Y2xpZGUtY29tbW9ucycpO1xuXG5jb25zdCBXQVRDSE1BTl9ERUZBVUxUX1BBVEggPSAnL3Vzci9sb2NhbC9iaW4vd2F0Y2htYW4nO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRXYXRjaG1hbkJpbmFyeVBhdGgoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IGZzUHJvbWlzZS5zdGF0KFdBVENITUFOX0RFRkFVTFRfUEFUSCk7XG4gICAgLy8gYHN0YXRzYCBjb250YWlucyBhIGBtb2RlYCBwcm9wZXJ0eSwgYSBudW1iZXIgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lXG4gICAgLy8gd2hldGhlciB0aGlzIGZpbGUgaXMgZXhlY3V0YWJsZS4gSG93ZXZlciwgdGhlIG51bWJlciBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQuXG4gICAgaWYgKHN0YXRzICYmIHN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICByZXR1cm4gV0FUQ0hNQU5fREVGQVVMVF9QQVRIO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFN1cHByZXNzIHRoZSBlcnJvci5cbiAgfVxuICAvLyBMZXQgdGhlIHdhdGNobWFuIENsaWVudCBmaW5kIHRoZSB3YXRjaG1hbiBiaW5hcnkgdmlhIHRoZSBkZWZhdWx0IGVudiBQQVRILlxuICByZXR1cm4gJ3dhdGNobWFuJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldFdhdGNobWFuQmluYXJ5UGF0aCxcblxuICBnZXQgV2F0Y2htYW5DbGllbnQoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vV2F0Y2htYW5DbGllbnQnKTtcbiAgfSxcblxuICAvLyBFeHBvc2VkIGZvciB0ZXN0aW5nLlxuICBnZXQgV2F0Y2htYW5TdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vV2F0Y2htYW5TdWJzY3JpcHRpb24nKTtcbiAgfSxcbn07XG4iXX0=

@@ -109,4 +109,4 @@ Object.defineProperty(exports, '__esModule', {

var watchSubscriptions = [];
for (var key in this._subscriptions) {
watchSubscriptions.push(this._subscriptions[key]);
for (var _key in this._subscriptions) {
watchSubscriptions.push(this._subscriptions[_key]);
}

@@ -167,3 +167,3 @@ yield Promise.all(watchSubscriptions.map(_asyncToGenerator(function* (subscription) {

// relativePath is undefined if watchRoot is the same as directoryPath.
var subscription = this._setSubscription(localDirectoryPath, new _WatchmanSubscription2['default'](
var _subscription = this._setSubscription(localDirectoryPath, new _WatchmanSubscription2['default'](
/*subscriptionRoot*/watchRoot,

@@ -175,3 +175,3 @@ /*pathFromSubscriptionRootToSubscriptionPath*/relativePath,

yield this._subscribe(watchRoot, localDirectoryPath, options);
return subscription;
return _subscription;
}

@@ -279,4 +279,4 @@ })

for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
args[_key2] = arguments[_key2];
}

@@ -298,2 +298,2 @@

module.exports = WatchmanClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy82NC9uNHJoMDk2eDRwMWJrNndyd3prX3I1M21ya21sMjAvVC90bXAxVGZDWXFwdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL1dhdGNobWFuQ2xpZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztvQ0FrQmlDLHdCQUF3Qjs7OztBQWxCekQsV0FBVyxDQUFDOzs7Ozs7Ozs7O0FBV1osSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDOztJQUVqQyxPQUFPLEdBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUE1QyxPQUFPOztBQUNaLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDOztlQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDOztJQUExQyxxQkFBcUIsWUFBckIscUJBQXFCOztBQUMxQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7O0lBa0JyQixjQUFjO0FBSVAsV0FKUCxjQUFjLEdBSUo7MEJBSlYsY0FBYzs7QUFLaEIsUUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDM0IsUUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLFFBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7R0FDL0M7O2VBUkcsY0FBYzs7V0FVWCxtQkFBWTs7O0FBQ2pCLGFBQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFLO0FBQ3RDLFlBQUksTUFBSyxjQUFjLEVBQUU7QUFDdkIsZ0JBQUssY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFBLE1BQU0sRUFBSTtBQUNqQyxrQkFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBTTtBQUN2QixxQkFB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QVMsQ0FBQzs7VUFBekMsT0FBTyxTQUFQLE9BQU87O0FBQ1osYUFBTyxPQUFPLENBQUM7S0FDaEI7OztXQUVTLG9CQUNKLFNBQWlCLEVBQ2pCLGdCQUF5QixFQUN6QixPQUFvQyxFQUNMO0FBQ25DLGFBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3pFOzs7Ozs7O1dBS08sb0JBQW9DOzs7d0NBQWhDLElBQUk7QUFBSixZQUFJOzs7QUFDZCxhQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBSztBQUN0QyxlQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBQSxNQUFNLEVBQUk7QUFDakMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQUMsS0FBSyxFQUFFLFFBQVE7bUJBQ2pDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztXQUFBLENBQUMsQ0FBQztTQUNoRCxDQUFDLFNBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztPQUNsQixDQUFDLENBQUM7S0FDSjs7O1NBeE1HLGNBQWM7OztBQTJNcEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMiLCJmaWxlIjoiL3Zhci9mb2xkZXJzLzY0L240cmgwOTZ4NHAxYms2d3J3emtfcjUzbXJrbWwyMC9UL3RtcDFUZkNZcXB1Ymxpc2hfcGFja2FnZXMvbnBtL251Y2xpZGUtd2F0Y2htYW4taGVscGVycy9saWIvV2F0Y2htYW5DbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGJhYmVsJztcbi8qIEBmbG93ICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluXG4gKiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgd2F0Y2htYW4gPSByZXF1aXJlKCdmYi13YXRjaG1hbicpO1xuXG52YXIge2lzRW1wdHl9ID0gcmVxdWlyZSgnbnVjbGlkZS1jb21tb25zJykub2JqZWN0O1xudmFyIGxvZ2dlciA9IHJlcXVpcmUoJ251Y2xpZGUtbG9nZ2luZycpLmdldExvZ2dlcigpO1xudmFyIHtnZXRXYXRjaG1hbkJpbmFyeVBhdGh9ID0gcmVxdWlyZSgnLi9tYWluJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuaW1wb3J0IFdhdGNobWFuU3Vic2NyaXB0aW9uIGZyb20gJy4vV2F0Y2htYW5TdWJzY3JpcHRpb24nO1xuaW1wb3J0IHR5cGUge1dhdGNobWFuU3Vic2NyaXB0aW9uT3B0aW9uc30gZnJvbSAnLi9XYXRjaG1hblN1YnNjcmlwdGlvbic7XG5cbnR5cGUgV2F0Y2htYW5TdWJzY3JpcHRpb25SZXNwb25zZSA9IHtcbiAgcm9vdDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb246IHN0cmluZztcbiAgZmlsZXM6IEFycmF5PEZpbGVDaGFuZ2U+O1xufTtcblxuZXhwb3J0IHR5cGUgRmlsZUNoYW5nZSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBuZXc6IGJvb2xlYW47XG4gIGV4aXN0czogYm9vbGVhbjtcbiAgbW9kZTogbnVtYmVyO1xufTtcblxuY2xhc3MgV2F0Y2htYW5DbGllbnQge1xuICBfc3Vic2NyaXB0aW9uczoge1trZXk6IHN0cmluZ106IFdhdGNobWFuU3Vic2NyaXB0aW9ufTtcbiAgX2NsaWVudFByb21pc2U6IFByb21pc2U8d2F0Y2htYW4uQ2xpZW50PjtcbiAgX3dhdGNobWFuVmVyc2lvblByb21pc2U6IFByb21pc2U8c3RyaW5nPjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5faW5pdFdhdGNobWFuQ2xpZW50KCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fd2F0Y2htYW5WZXJzaW9uUHJvbWlzZSA9IHRoaXMudmVyc2lvbigpO1xuICB9XG5cbiAgZGlzcG9zZSgpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2NsaWVudFByb21pc2UpIHtcbiAgICAgICAgdGhpcy5fY2xpZW50UHJvbWlzZS50aGVuKGNsaWVudCA9PiB7XG4gICAgICAgICAgY2xpZW50Lm9uY2UoJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjbGllbnQuZW5kKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBfaW5pdFdhdGNobWFuQ2xpZW50KCkge1xuICAgIHRoaXMuX2NsaWVudFByb21pc2UgPSB0aGlzLl9jcmVhdGVDbGllbnRQcm9taXNlKCk7XG4gICAgdGhpcy5fY2xpZW50UHJvbWlzZS50aGVuKGNsaWVudCA9PiB7XG4gICAgICBjbGllbnQub24oJ2VuZCcsICgpID0+IHRoaXMuX29uQ2xpZW50RW5kKCkpO1xuICAgICAgY2xpZW50Lm9uKCdlcnJvcicsIGVycm9yID0+IGxvZ2dlci5lcnJvcignRXJyb3Igd2hpbGUgdGFsa2luZyB0byB3YXRjaG1hbjogJywgZXJyb3IpKTtcbiAgICAgIGNsaWVudC5vbignc3Vic2NyaXB0aW9uJywgcmVzcG9uc2UgPT4gdGhpcy5fb25TdWJzY3JpcHRpb25SZXN1bHQocmVzcG9uc2UpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIF9jcmVhdGVDbGllbnRQcm9taXNlKCk6IFByb21pc2U8d2F0Y2htYW4uQ2xpZW50PiB7XG4gICAgcmV0dXJuIG5ldyB3YXRjaG1hbi5DbGllbnQoe1xuICAgICAgd2F0Y2htYW5CaW5hcnlQYXRoOiBhd2FpdCBnZXRXYXRjaG1hbkJpbmFyeVBhdGgoKSxcbiAgICB9KTtcbiAgfVxuXG4gIF9vbkNsaWVudEVuZCgpIHtcbiAgICBsb2dnZXIud2FybignV2F0Y2htYW4gY2xpZW50IGVuZGVkLCBjcmVhdGluZyBhIG5ldyBjbGllbnQhJyk7XG4gICAgdGhpcy5fY2xpZW50UHJvbWlzZS50aGVuKGNsaWVudCA9PiB7XG4gICAgICBjbGllbnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdlbmQnKTtcbiAgICAgIGNsaWVudC5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Vycm9yJyk7XG4gICAgICBjbGllbnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdzdWJzY3JpcHRpb24nKTtcbiAgICB9KTtcbiAgICB0aGlzLl9pbml0V2F0Y2htYW5DbGllbnQoKTtcbiAgICB0aGlzLl9yZXN0b3JlU3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgYXN5bmMgX3Jlc3RvcmVTdWJzY3JpcHRpb25zKCk6IFByb21pc2Uge1xuICAgIHZhciB3YXRjaFN1YnNjcmlwdGlvbnM6IEFycmF5PFdhdGNobWFuU3Vic2NyaXB0aW9uPiA9IFtdO1xuICAgIGZvciAodmFyIGtleSBpbiB0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB3YXRjaFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9zdWJzY3JpcHRpb25zW2tleV0pO1xuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh3YXRjaFN1YnNjcmlwdGlvbnMubWFwKGFzeW5jIChzdWJzY3JpcHRpb246IFdhdGNobWFuU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICBzdWJzY3JpcHRpb24ub3B0aW9ucy5zaW5jZSA9IGF3YWl0IHRoaXMuX2Nsb2NrKHN1YnNjcmlwdGlvbi5yb290KTtcbiAgICAgIGF3YWl0IHRoaXMuX3dhdGNoUHJvamVjdChzdWJzY3JpcHRpb24ucGF0aCk7XG4gICAgICBhd2FpdCB0aGlzLl9zdWJzY3JpYmUoc3Vic2NyaXB0aW9uLnJvb3QsIHN1YnNjcmlwdGlvbi5uYW1lLCBzdWJzY3JpcHRpb24ub3B0aW9ucyk7XG4gICAgfSkpO1xuICB9XG5cbiAgX2dldFN1YnNjcmlwdGlvbihlbnRyeVBhdGg6IHN0cmluZyk6ID9XYXRjaG1hblN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnNjcmlwdGlvbnNbcGF0aC5ub3JtYWxpemUoZW50cnlQYXRoKV07XG4gIH1cblxuICBfc2V0U3Vic2NyaXB0aW9uKGVudHJ5UGF0aDogc3RyaW5nLCBzdWJzY3JpcHRpb246IFdhdGNobWFuU3Vic2NyaXB0aW9uKTogV2F0Y2htYW5TdWJzY3JpcHRpb24ge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnNbcGF0aC5ub3JtYWxpemUoZW50cnlQYXRoKV0gPSBzdWJzY3JpcHRpb247XG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIF9kZWxldGVTdWJzY3JpcHRpb24oZW50cnlQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBkZWxldGUgdGhpcy5fc3Vic2NyaXB0aW9uc1twYXRoLm5vcm1hbGl6ZShlbnRyeVBhdGgpXTtcbiAgfVxuXG4gIF9vblN1YnNjcmlwdGlvblJlc3VsdChyZXNwb25zZTogV2F0Y2htYW5TdWJzY3JpcHRpb25SZXNwb25zZSkge1xuICAgIHZhciBzdWJzY3JpcHRpb24gPSB0aGlzLl9nZXRTdWJzY3JpcHRpb24ocmVzcG9uc2Uuc3Vic2NyaXB0aW9uKTtcbiAgICBpZiAoIXN1YnNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIGxvZ2dlci5lcnJvcignU3Vic2NyaXB0aW9uIG5vdCBmb3VuZCBmb3IgcmVzcG9uc2U6IScsIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uLmVtaXQoJ2NoYW5nZScsIHJlc3BvbnNlLmZpbGVzKTtcbiAgfVxuXG4gIGFzeW5jIHdhdGNoRGlyZWN0b3J5UmVjdXJzaXZlKGxvY2FsRGlyZWN0b3J5UGF0aDogc3RyaW5nKSA6IFByb21pc2U8V2F0Y2htYW5TdWJzY3JpcHRpb24+IHtcbiAgICB2YXIgZXhpc3RpbmdTdWJzY3JpcHRpb24gPSB0aGlzLl9nZXRTdWJzY3JpcHRpb24obG9jYWxEaXJlY3RvcnlQYXRoKTtcbiAgICBpZiAoZXhpc3RpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgIGV4aXN0aW5nU3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbkNvdW50Kys7XG4gICAgICByZXR1cm4gZXhpc3RpbmdTdWJzY3JpcHRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB7d2F0Y2g6IHdhdGNoUm9vdCwgcmVsYXRpdmVfcGF0aDogcmVsYXRpdmVQYXRofSA9IGF3YWl0IHRoaXMuX3dhdGNoUHJvamVjdChsb2NhbERpcmVjdG9yeVBhdGgpO1xuICAgICAgdmFyIGNsb2NrID0gYXdhaXQgdGhpcy5fY2xvY2sod2F0Y2hSb290KTtcbiAgICAgIHZhciBvcHRpb25zOiBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGZpZWxkczogWyduYW1lJywgJ25ldycsICdleGlzdHMnLCAnbW9kZSddLFxuICAgICAgICBzaW5jZTogY2xvY2ssXG4gICAgICB9O1xuICAgICAgaWYgKHJlbGF0aXZlUGF0aCkge1xuICAgICAgICAvLyBQYXNzaW5nIGFuICd1bmRlZmluZWQnIGV4cHJlc3Npb24gY2F1c2VzIGFuIGV4Y2VwdGlvbiBpbiBmYi13YXRjaG1hbi5cbiAgICAgICAgb3B0aW9ucy5leHByZXNzaW9uID0gWydkaXJuYW1lJywgcmVsYXRpdmVQYXRoXTtcbiAgICAgIH1cbiAgICAgIC8vIHJlbGF0aXZlUGF0aCBpcyB1bmRlZmluZWQgaWYgd2F0Y2hSb290IGlzIHRoZSBzYW1lIGFzIGRpcmVjdG9yeVBhdGguXG4gICAgICB2YXIgc3Vic2NyaXB0aW9uID0gdGhpcy5fc2V0U3Vic2NyaXB0aW9uKGxvY2FsRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICBuZXcgV2F0Y2htYW5TdWJzY3JpcHRpb24oXG4gICAgICAgICAgICAvKnN1YnNjcmlwdGlvblJvb3QqLyB3YXRjaFJvb3QsXG4gICAgICAgICAgICAvKnBhdGhGcm9tU3Vic2NyaXB0aW9uUm9vdFRvU3Vic2NyaXB0aW9uUGF0aCovIHJlbGF0aXZlUGF0aCxcbiAgICAgICAgICAgIC8qc3Vic2NyaXB0aW9uUGF0aCovIGxvY2FsRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgIC8qc3Vic2NyaXB0aW9uQ291bnQqLyAxLFxuICAgICAgICAgICAgLypzdWJzY3JpcHRpb25PcHRpb25zKi8gb3B0aW9uc1xuICAgICAgICAgICkpO1xuICAgICAgYXdhaXQgdGhpcy5fc3Vic2NyaWJlKHdhdGNoUm9vdCwgbG9jYWxEaXJlY3RvcnlQYXRoLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gICAgfVxuICB9XG5cbiAgaGFzU3Vic2NyaXB0aW9uKGVudHJ5UGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fZ2V0U3Vic2NyaXB0aW9uKGVudHJ5UGF0aCk7XG4gIH1cblxuICBhc3luYyB1bndhdGNoKGVudHJ5UGF0aDogc3RyaW5nKTogUHJvbWlzZSB7XG4gICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX2dldFN1YnNjcmlwdGlvbihlbnRyeVBhdGgpO1xuXG4gICAgaWYgKCFzdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBsb2dnZXIuZXJyb3IoJ05vIHdhdGNoZXIgZW50aXR5IGZvdW5kIHdpdGggcGF0aDonLCBlbnRyeVBhdGgpO1xuICAgIH1cblxuICAgIGlmICgtLXN1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb25Db3VudCA9PT0gMCkge1xuXG4gICAgICBhd2FpdCB0aGlzLl91bnN1YnNjcmliZShzdWJzY3JpcHRpb24ucGF0aCwgc3Vic2NyaXB0aW9uLm5hbWUpO1xuICAgICAgLy8gRG9uJ3QgZGVsZXRlIHRoZSB3YXRjaGVyIGlmIHRoZXJlIGFyZSBvdGhlciB1c2VycyBmb3IgaXQuXG4gICAgICBpZiAoIXN1YnNjcmlwdGlvbi5wYXRoRnJvbVN1YnNjcmlwdGlvblJvb3RUb1N1YnNjcmlwdGlvblBhdGgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZGVsZXRlV2F0Y2hlcihlbnRyeVBhdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5fZGVsZXRlU3Vic2NyaXB0aW9uKGVudHJ5UGF0aCk7XG5cbiAgICAgIGlmIChpc0VtcHR5KHRoaXMuX3N1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlzcG9zZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIF93YXRjaExpc3QoKTogUHJvbWlzZTxBcnJheTxzdHJpbmc+PiB7XG4gICAgdmFyIHtyb290c30gPSBhd2FpdCB0aGlzLl9jb21tYW5kKCd3YXRjaC1saXN0Jyk7XG4gICAgcmV0dXJuIHJvb3RzO1xuICB9XG5cbiAgX2RlbGV0ZVdhdGNoZXIoZW50cnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gdGhpcy5fY29tbWFuZCgnd2F0Y2gtZGVsJywgZW50cnlQYXRoKTtcbiAgfVxuXG4gIF91bnN1YnNjcmliZShzdWJzY3JpcHRpb25QYXRoOiBzdHJpbmcsIHN1YnNjcmlwdGlvbk5hbWU6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kKCd1bnN1YnNjcmliZScsIHN1YnNjcmlwdGlvblBhdGgsIHN1YnNjcmlwdGlvbk5hbWUpO1xuICB9XG5cbiAgYXN5bmMgX3dhdGNoKGRpcmVjdG9yeVBhdGg6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHZhciByZXNwb25zZSA9IGF3YWl0IHRoaXMuX2NvbW1hbmQoJ3dhdGNoJywgZGlyZWN0b3J5UGF0aCk7XG4gICAgaWYgKHJlc3BvbnNlLndhcm5pbmcpIHtcbiAgICAgIGxvZ2dlci53YXJuKCd3YXRjaG1hbiB3YXJuaW5nOiAnLCByZXNwb25zZS53YXJuaW5nKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBfd2F0Y2hQcm9qZWN0KGRpcmVjdG9yeVBhdGg6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdmFyIHdhdGNobWFuVmVyc2lvbiA9IGF3YWl0IHRoaXMuX3dhdGNobWFuVmVyc2lvblByb21pc2U7XG4gICAgaWYgKCF3YXRjaG1hblZlcnNpb24gfHwgd2F0Y2htYW5WZXJzaW9uIDwgJzMuMS4wJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdXYXRjaG1hbiB2ZXJzaW9uOiAnICsgd2F0Y2htYW5WZXJzaW9uICsgJyBkb2VzIG5vdCBzdXBwb3J0IHdhdGNoLXByb2plY3QnKTtcbiAgICB9XG4gICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5fY29tbWFuZCgnd2F0Y2gtcHJvamVjdCcsIGRpcmVjdG9yeVBhdGgpO1xuICAgIGlmIChyZXNwb25zZS53YXJuaW5nKSB7XG4gICAgICBsb2dnZXIud2Fybignd2F0Y2htYW4gd2FybmluZzogJywgcmVzcG9uc2Uud2FybmluZyk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGFzeW5jIF9jbG9jayhkaXJlY3RvcnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHZhciB7Y2xvY2t9ID0gYXdhaXQgdGhpcy5fY29tbWFuZCgnY2xvY2snLCBkaXJlY3RvcnlQYXRoKTtcbiAgICByZXR1cm4gY2xvY2s7XG4gIH1cblxuICBhc3luYyB2ZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdmFyIHt2ZXJzaW9ufSA9IGF3YWl0IHRoaXMuX2NvbW1hbmQoJ3ZlcnNpb24nKTtcbiAgICByZXR1cm4gdmVyc2lvbjtcbiAgfVxuXG4gIF9zdWJzY3JpYmUoXG4gICAgICAgIHdhdGNoUm9vdDogc3RyaW5nLFxuICAgICAgICBzdWJzY3JpcHRpb25OYW1lOiA/c3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnNcbiAgICAgICk6IFByb21pc2U8V2F0Y2htYW5TdWJzY3JpcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tbWFuZCgnc3Vic2NyaWJlJywgd2F0Y2hSb290LCBzdWJzY3JpcHRpb25OYW1lLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qXG4gICAqIFByb21pc2lmeSBjYWxscyB0byB3YXRjaG1hbiBjbGllbnQuXG4gICAqL1xuICBfY29tbWFuZCguLi5hcmdzOiBBcnJheTxhbnk+KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY2xpZW50UHJvbWlzZS50aGVuKGNsaWVudCA9PiB7XG4gICAgICAgIGNsaWVudC5jb21tYW5kKGFyZ3MsIChlcnJvciwgcmVzcG9uc2UpID0+XG4gICAgICAgICAgICBlcnJvciA/IHJlamVjdChlcnJvcikgOiByZXNvbHZlKHJlc3BvbnNlKSk7XG4gICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gV2F0Y2htYW5DbGllbnQ7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy94Zi9yc3BoNF9jNTczMTVyczU3eHhzZHNrcnhudjM2dDAvVC90bXBwZmw1Mm5wdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL1dhdGNobWFuQ2xpZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztvQ0FrQmlDLHdCQUF3Qjs7OztBQWxCekQsV0FBVyxDQUFDOzs7Ozs7Ozs7O0FBV1osSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDOztJQUVqQyxPQUFPLEdBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUE1QyxPQUFPOztBQUNkLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDOztlQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDOztJQUExQyxxQkFBcUIsWUFBckIscUJBQXFCOztBQUM1QixJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7O0lBa0J2QixjQUFjO0FBSVAsV0FKUCxjQUFjLEdBSUo7MEJBSlYsY0FBYzs7QUFLaEIsUUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDM0IsUUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLFFBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7R0FDL0M7O2VBUkcsY0FBYzs7V0FVWCxtQkFBWTs7O0FBQ2pCLGFBQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFLO0FBQ3RDLFlBQUksTUFBSyxjQUFjLEVBQUU7QUFDdkIsZ0JBQUssY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFBLE1BQU0sRUFBSTtBQUNqQyxrQkFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBTTtBQUN2QixxQkFB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QVMsQ0FBQzs7VUFBekMsT0FBTyxTQUFQLE9BQU87O0FBQ2QsYUFBTyxPQUFPLENBQUM7S0FDaEI7OztXQUVTLG9CQUNKLFNBQWlCLEVBQ2pCLGdCQUF5QixFQUN6QixPQUFvQyxFQUNMO0FBQ25DLGFBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3pFOzs7Ozs7O1dBS08sb0JBQW9DOzs7d0NBQWhDLElBQUk7QUFBSixZQUFJOzs7QUFDZCxhQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBSztBQUN0QyxlQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBQSxNQUFNLEVBQUk7QUFDakMsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQUMsS0FBSyxFQUFFLFFBQVE7bUJBQ2pDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztXQUFBLENBQUMsQ0FBQztTQUNoRCxDQUFDLFNBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztPQUNsQixDQUFDLENBQUM7S0FDSjs7O1NBeE1HLGNBQWM7OztBQTJNcEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMiLCJmaWxlIjoiL3Zhci9mb2xkZXJzL3hmL3JzcGg0X2M1NzMxNXJzNTd4eHNkc2tyeG52MzZ0MC9UL3RtcHBmbDUybnB1Ymxpc2hfcGFja2FnZXMvbnBtL251Y2xpZGUtd2F0Y2htYW4taGVscGVycy9saWIvV2F0Y2htYW5DbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGJhYmVsJztcbi8qIEBmbG93ICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluXG4gKiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5jb25zdCB3YXRjaG1hbiA9IHJlcXVpcmUoJ2ZiLXdhdGNobWFuJyk7XG5cbmNvbnN0IHtpc0VtcHR5fSA9IHJlcXVpcmUoJ251Y2xpZGUtY29tbW9ucycpLm9iamVjdDtcbmNvbnN0IGxvZ2dlciA9IHJlcXVpcmUoJ251Y2xpZGUtbG9nZ2luZycpLmdldExvZ2dlcigpO1xuY29uc3Qge2dldFdhdGNobWFuQmluYXJ5UGF0aH0gPSByZXF1aXJlKCcuL21haW4nKTtcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbmltcG9ydCBXYXRjaG1hblN1YnNjcmlwdGlvbiBmcm9tICcuL1dhdGNobWFuU3Vic2NyaXB0aW9uJztcbmltcG9ydCB0eXBlIHtXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnN9IGZyb20gJy4vV2F0Y2htYW5TdWJzY3JpcHRpb24nO1xuXG50eXBlIFdhdGNobWFuU3Vic2NyaXB0aW9uUmVzcG9uc2UgPSB7XG4gIHJvb3Q6IHN0cmluZztcbiAgc3Vic2NyaXB0aW9uOiBzdHJpbmc7XG4gIGZpbGVzOiBBcnJheTxGaWxlQ2hhbmdlPjtcbn07XG5cbmV4cG9ydCB0eXBlIEZpbGVDaGFuZ2UgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmV3OiBib29sZWFuO1xuICBleGlzdHM6IGJvb2xlYW47XG4gIG1vZGU6IG51bWJlcjtcbn07XG5cbmNsYXNzIFdhdGNobWFuQ2xpZW50IHtcbiAgX3N1YnNjcmlwdGlvbnM6IHtba2V5OiBzdHJpbmddOiBXYXRjaG1hblN1YnNjcmlwdGlvbn07XG4gIF9jbGllbnRQcm9taXNlOiBQcm9taXNlPHdhdGNobWFuLkNsaWVudD47XG4gIF93YXRjaG1hblZlcnNpb25Qcm9taXNlOiBQcm9taXNlPHN0cmluZz47XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2luaXRXYXRjaG1hbkNsaWVudCgpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX3dhdGNobWFuVmVyc2lvblByb21pc2UgPSB0aGlzLnZlcnNpb24oKTtcbiAgfVxuXG4gIGRpc3Bvc2UoKTogUHJvbWlzZSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLl9jbGllbnRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2NsaWVudFByb21pc2UudGhlbihjbGllbnQgPT4ge1xuICAgICAgICAgIGNsaWVudC5vbmNlKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY2xpZW50LmVuZCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgX2luaXRXYXRjaG1hbkNsaWVudCgpIHtcbiAgICB0aGlzLl9jbGllbnRQcm9taXNlID0gdGhpcy5fY3JlYXRlQ2xpZW50UHJvbWlzZSgpO1xuICAgIHRoaXMuX2NsaWVudFByb21pc2UudGhlbihjbGllbnQgPT4ge1xuICAgICAgY2xpZW50Lm9uKCdlbmQnLCAoKSA9PiB0aGlzLl9vbkNsaWVudEVuZCgpKTtcbiAgICAgIGNsaWVudC5vbignZXJyb3InLCBlcnJvciA9PiBsb2dnZXIuZXJyb3IoJ0Vycm9yIHdoaWxlIHRhbGtpbmcgdG8gd2F0Y2htYW46ICcsIGVycm9yKSk7XG4gICAgICBjbGllbnQub24oJ3N1YnNjcmlwdGlvbicsIHJlc3BvbnNlID0+IHRoaXMuX29uU3Vic2NyaXB0aW9uUmVzdWx0KHJlc3BvbnNlKSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBfY3JlYXRlQ2xpZW50UHJvbWlzZSgpOiBQcm9taXNlPHdhdGNobWFuLkNsaWVudD4ge1xuICAgIHJldHVybiBuZXcgd2F0Y2htYW4uQ2xpZW50KHtcbiAgICAgIHdhdGNobWFuQmluYXJ5UGF0aDogYXdhaXQgZ2V0V2F0Y2htYW5CaW5hcnlQYXRoKCksXG4gICAgfSk7XG4gIH1cblxuICBfb25DbGllbnRFbmQoKSB7XG4gICAgbG9nZ2VyLndhcm4oJ1dhdGNobWFuIGNsaWVudCBlbmRlZCwgY3JlYXRpbmcgYSBuZXcgY2xpZW50IScpO1xuICAgIHRoaXMuX2NsaWVudFByb21pc2UudGhlbihjbGllbnQgPT4ge1xuICAgICAgY2xpZW50LnJlbW92ZUFsbExpc3RlbmVycygnZW5kJyk7XG4gICAgICBjbGllbnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdlcnJvcicpO1xuICAgICAgY2xpZW50LnJlbW92ZUFsbExpc3RlbmVycygnc3Vic2NyaXB0aW9uJyk7XG4gICAgfSk7XG4gICAgdGhpcy5faW5pdFdhdGNobWFuQ2xpZW50KCk7XG4gICAgdGhpcy5fcmVzdG9yZVN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIGFzeW5jIF9yZXN0b3JlU3Vic2NyaXB0aW9ucygpOiBQcm9taXNlIHtcbiAgICBjb25zdCB3YXRjaFN1YnNjcmlwdGlvbnM6IEFycmF5PFdhdGNobWFuU3Vic2NyaXB0aW9uPiA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX3N1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHdhdGNoU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX3N1YnNjcmlwdGlvbnNba2V5XSk7XG4gICAgfVxuICAgIGF3YWl0IFByb21pc2UuYWxsKHdhdGNoU3Vic2NyaXB0aW9ucy5tYXAoYXN5bmMgKHN1YnNjcmlwdGlvbjogV2F0Y2htYW5TdWJzY3JpcHRpb24pID0+IHtcbiAgICAgIHN1YnNjcmlwdGlvbi5vcHRpb25zLnNpbmNlID0gYXdhaXQgdGhpcy5fY2xvY2soc3Vic2NyaXB0aW9uLnJvb3QpO1xuICAgICAgYXdhaXQgdGhpcy5fd2F0Y2hQcm9qZWN0KHN1YnNjcmlwdGlvbi5wYXRoKTtcbiAgICAgIGF3YWl0IHRoaXMuX3N1YnNjcmliZShzdWJzY3JpcHRpb24ucm9vdCwgc3Vic2NyaXB0aW9uLm5hbWUsIHN1YnNjcmlwdGlvbi5vcHRpb25zKTtcbiAgICB9KSk7XG4gIH1cblxuICBfZ2V0U3Vic2NyaXB0aW9uKGVudHJ5UGF0aDogc3RyaW5nKTogP1dhdGNobWFuU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9uc1twYXRoLm5vcm1hbGl6ZShlbnRyeVBhdGgpXTtcbiAgfVxuXG4gIF9zZXRTdWJzY3JpcHRpb24oZW50cnlQYXRoOiBzdHJpbmcsIHN1YnNjcmlwdGlvbjogV2F0Y2htYW5TdWJzY3JpcHRpb24pOiBXYXRjaG1hblN1YnNjcmlwdGlvbiB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uc1twYXRoLm5vcm1hbGl6ZShlbnRyeVBhdGgpXSA9IHN1YnNjcmlwdGlvbjtcbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgX2RlbGV0ZVN1YnNjcmlwdGlvbihlbnRyeVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLl9zdWJzY3JpcHRpb25zW3BhdGgubm9ybWFsaXplKGVudHJ5UGF0aCldO1xuICB9XG5cbiAgX29uU3Vic2NyaXB0aW9uUmVzdWx0KHJlc3BvbnNlOiBXYXRjaG1hblN1YnNjcmlwdGlvblJlc3BvbnNlKSB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5fZ2V0U3Vic2NyaXB0aW9uKHJlc3BvbnNlLnN1YnNjcmlwdGlvbik7XG4gICAgaWYgKCFzdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiBsb2dnZXIuZXJyb3IoJ1N1YnNjcmlwdGlvbiBub3QgZm91bmQgZm9yIHJlc3BvbnNlOiEnLCByZXNwb25zZSk7XG4gICAgfVxuICAgIHN1YnNjcmlwdGlvbi5lbWl0KCdjaGFuZ2UnLCByZXNwb25zZS5maWxlcyk7XG4gIH1cblxuICBhc3luYyB3YXRjaERpcmVjdG9yeVJlY3Vyc2l2ZShsb2NhbERpcmVjdG9yeVBhdGg6IHN0cmluZykgOiBQcm9taXNlPFdhdGNobWFuU3Vic2NyaXB0aW9uPiB7XG4gICAgY29uc3QgZXhpc3RpbmdTdWJzY3JpcHRpb24gPSB0aGlzLl9nZXRTdWJzY3JpcHRpb24obG9jYWxEaXJlY3RvcnlQYXRoKTtcbiAgICBpZiAoZXhpc3RpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgIGV4aXN0aW5nU3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbkNvdW50Kys7XG4gICAgICByZXR1cm4gZXhpc3RpbmdTdWJzY3JpcHRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHt3YXRjaDogd2F0Y2hSb290LCByZWxhdGl2ZV9wYXRoOiByZWxhdGl2ZVBhdGh9ID0gYXdhaXQgdGhpcy5fd2F0Y2hQcm9qZWN0KGxvY2FsRGlyZWN0b3J5UGF0aCk7XG4gICAgICBjb25zdCBjbG9jayA9IGF3YWl0IHRoaXMuX2Nsb2NrKHdhdGNoUm9vdCk7XG4gICAgICBjb25zdCBvcHRpb25zOiBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGZpZWxkczogWyduYW1lJywgJ25ldycsICdleGlzdHMnLCAnbW9kZSddLFxuICAgICAgICBzaW5jZTogY2xvY2ssXG4gICAgICB9O1xuICAgICAgaWYgKHJlbGF0aXZlUGF0aCkge1xuICAgICAgICAvLyBQYXNzaW5nIGFuICd1bmRlZmluZWQnIGV4cHJlc3Npb24gY2F1c2VzIGFuIGV4Y2VwdGlvbiBpbiBmYi13YXRjaG1hbi5cbiAgICAgICAgb3B0aW9ucy5leHByZXNzaW9uID0gWydkaXJuYW1lJywgcmVsYXRpdmVQYXRoXTtcbiAgICAgIH1cbiAgICAgIC8vIHJlbGF0aXZlUGF0aCBpcyB1bmRlZmluZWQgaWYgd2F0Y2hSb290IGlzIHRoZSBzYW1lIGFzIGRpcmVjdG9yeVBhdGguXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9zZXRTdWJzY3JpcHRpb24obG9jYWxEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgIG5ldyBXYXRjaG1hblN1YnNjcmlwdGlvbihcbiAgICAgICAgICAgIC8qc3Vic2NyaXB0aW9uUm9vdCovIHdhdGNoUm9vdCxcbiAgICAgICAgICAgIC8qcGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoKi8gcmVsYXRpdmVQYXRoLFxuICAgICAgICAgICAgLypzdWJzY3JpcHRpb25QYXRoKi8gbG9jYWxEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgLypzdWJzY3JpcHRpb25Db3VudCovIDEsXG4gICAgICAgICAgICAvKnN1YnNjcmlwdGlvbk9wdGlvbnMqLyBvcHRpb25zXG4gICAgICAgICAgKSk7XG4gICAgICBhd2FpdCB0aGlzLl9zdWJzY3JpYmUod2F0Y2hSb290LCBsb2NhbERpcmVjdG9yeVBhdGgsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcbiAgICB9XG4gIH1cblxuICBoYXNTdWJzY3JpcHRpb24oZW50cnlQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9nZXRTdWJzY3JpcHRpb24oZW50cnlQYXRoKTtcbiAgfVxuXG4gIGFzeW5jIHVud2F0Y2goZW50cnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLl9nZXRTdWJzY3JpcHRpb24oZW50cnlQYXRoKTtcblxuICAgIGlmICghc3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gbG9nZ2VyLmVycm9yKCdObyB3YXRjaGVyIGVudGl0eSBmb3VuZCB3aXRoIHBhdGg6JywgZW50cnlQYXRoKTtcbiAgICB9XG5cbiAgICBpZiAoLS1zdWJzY3JpcHRpb24uc3Vic2NyaXB0aW9uQ291bnQgPT09IDApIHtcblxuICAgICAgYXdhaXQgdGhpcy5fdW5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uLnBhdGgsIHN1YnNjcmlwdGlvbi5uYW1lKTtcbiAgICAgIC8vIERvbid0IGRlbGV0ZSB0aGUgd2F0Y2hlciBpZiB0aGVyZSBhcmUgb3RoZXIgdXNlcnMgZm9yIGl0LlxuICAgICAgaWYgKCFzdWJzY3JpcHRpb24ucGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2RlbGV0ZVdhdGNoZXIoZW50cnlQYXRoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2RlbGV0ZVN1YnNjcmlwdGlvbihlbnRyeVBhdGgpO1xuXG4gICAgICBpZiAoaXNFbXB0eSh0aGlzLl9zdWJzY3JpcHRpb25zKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRpc3Bvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBfd2F0Y2hMaXN0KCk6IFByb21pc2U8QXJyYXk8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHtyb290c30gPSBhd2FpdCB0aGlzLl9jb21tYW5kKCd3YXRjaC1saXN0Jyk7XG4gICAgcmV0dXJuIHJvb3RzO1xuICB9XG5cbiAgX2RlbGV0ZVdhdGNoZXIoZW50cnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlIHtcbiAgICByZXR1cm4gdGhpcy5fY29tbWFuZCgnd2F0Y2gtZGVsJywgZW50cnlQYXRoKTtcbiAgfVxuXG4gIF91bnN1YnNjcmliZShzdWJzY3JpcHRpb25QYXRoOiBzdHJpbmcsIHN1YnNjcmlwdGlvbk5hbWU6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kKCd1bnN1YnNjcmliZScsIHN1YnNjcmlwdGlvblBhdGgsIHN1YnNjcmlwdGlvbk5hbWUpO1xuICB9XG5cbiAgYXN5bmMgX3dhdGNoKGRpcmVjdG9yeVBhdGg6IHN0cmluZyk6IFByb21pc2Uge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5fY29tbWFuZCgnd2F0Y2gnLCBkaXJlY3RvcnlQYXRoKTtcbiAgICBpZiAocmVzcG9uc2Uud2FybmluZykge1xuICAgICAgbG9nZ2VyLndhcm4oJ3dhdGNobWFuIHdhcm5pbmc6ICcsIHJlc3BvbnNlLndhcm5pbmcpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIF93YXRjaFByb2plY3QoZGlyZWN0b3J5UGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB3YXRjaG1hblZlcnNpb24gPSBhd2FpdCB0aGlzLl93YXRjaG1hblZlcnNpb25Qcm9taXNlO1xuICAgIGlmICghd2F0Y2htYW5WZXJzaW9uIHx8IHdhdGNobWFuVmVyc2lvbiA8ICczLjEuMCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV2F0Y2htYW4gdmVyc2lvbjogJyArIHdhdGNobWFuVmVyc2lvbiArICcgZG9lcyBub3Qgc3VwcG9ydCB3YXRjaC1wcm9qZWN0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5fY29tbWFuZCgnd2F0Y2gtcHJvamVjdCcsIGRpcmVjdG9yeVBhdGgpO1xuICAgIGlmIChyZXNwb25zZS53YXJuaW5nKSB7XG4gICAgICBsb2dnZXIud2Fybignd2F0Y2htYW4gd2FybmluZzogJywgcmVzcG9uc2Uud2FybmluZyk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGFzeW5jIF9jbG9jayhkaXJlY3RvcnlQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHtjbG9ja30gPSBhd2FpdCB0aGlzLl9jb21tYW5kKCdjbG9jaycsIGRpcmVjdG9yeVBhdGgpO1xuICAgIHJldHVybiBjbG9jaztcbiAgfVxuXG4gIGFzeW5jIHZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7dmVyc2lvbn0gPSBhd2FpdCB0aGlzLl9jb21tYW5kKCd2ZXJzaW9uJyk7XG4gICAgcmV0dXJuIHZlcnNpb247XG4gIH1cblxuICBfc3Vic2NyaWJlKFxuICAgICAgICB3YXRjaFJvb3Q6IHN0cmluZyxcbiAgICAgICAgc3Vic2NyaXB0aW9uTmFtZTogP3N0cmluZyxcbiAgICAgICAgb3B0aW9uczogV2F0Y2htYW5TdWJzY3JpcHRpb25PcHRpb25zXG4gICAgICApOiBQcm9taXNlPFdhdGNobWFuU3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbW1hbmQoJ3N1YnNjcmliZScsIHdhdGNoUm9vdCwgc3Vic2NyaXB0aW9uTmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKlxuICAgKiBQcm9taXNpZnkgY2FsbHMgdG8gd2F0Y2htYW4gY2xpZW50LlxuICAgKi9cbiAgX2NvbW1hbmQoLi4uYXJnczogQXJyYXk8YW55Pik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2NsaWVudFByb21pc2UudGhlbihjbGllbnQgPT4ge1xuICAgICAgICBjbGllbnQuY29tbWFuZChhcmdzLCAoZXJyb3IsIHJlc3BvbnNlKSA9PlxuICAgICAgICAgICAgZXJyb3IgPyByZWplY3QoZXJyb3IpIDogcmVzb2x2ZShyZXNwb25zZSkpO1xuICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbiAgICB9KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFdhdGNobWFuQ2xpZW50O1xuIl19

@@ -54,2 +54,2 @@

// e.g. ['dirname', relativePath]
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy82NC9uNHJoMDk2eDRwMWJrNndyd3prX3I1M21ya21sMjAvVC90bXAxVGZDWXFwdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL1dhdGNobWFuU3Vic2NyaXB0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFXUyxPQUFPLENBQUMsUUFBUSxDQUFDOztJQUFqQyxZQUFZLFlBQVosWUFBWTs7Ozs7Ozs7Ozs7SUFnQlgsb0JBQW9CO1lBQXBCLG9CQUFvQjs7QUFPYixXQVBQLG9CQUFvQixDQVFwQixnQkFBd0IsRUFDeEIsMENBQW1ELEVBQ25ELGdCQUF3QixFQUN4QixpQkFBeUIsRUFDekIsbUJBQWdELEVBQzlDOzBCQWJGLG9CQUFvQjs7QUFjdEIsK0JBZEUsb0JBQW9CLDZDQWNkO0FBQ1IsUUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztBQUM3QixRQUFJLENBQUMsMENBQTBDLEdBQUcsMENBQTBDLENBQUM7QUFDN0YsUUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0FBQ3pDLFFBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztBQUMzQyxRQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDO0dBQ3BDOztTQXBCRyxvQkFBb0I7R0FBUyxZQUFZOztBQXNCL0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyIsImZpbGUiOiIvdmFyL2ZvbGRlcnMvNjQvbjRyaDA5Nng0cDFiazZ3cnd6a19yNTNtcmttbDIwL1QvdG1wMVRmQ1lxcHVibGlzaF9wYWNrYWdlcy9ucG0vbnVjbGlkZS13YXRjaG1hbi1oZWxwZXJzL2xpYi9XYXRjaG1hblN1YnNjcmlwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgYmFiZWwnO1xuLyogQGZsb3cgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW5cbiAqIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbnZhciB7RXZlbnRFbWl0dGVyfSA9IHJlcXVpcmUoJ2V2ZW50cycpO1xuXG5leHBvcnQgdHlwZSBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnMgPSB7XG4gIGV4cHJlc3Npb246ID9BcnJheTxzdHJpbmc+OyAvLyBlLmcuIFsnbWF0Y2gnLCAnKi5qcyddLFxuICBmaWVsZHM6ID9BcnJheTxzdHJpbmc+OyAvLyBlLmcuIFsnbmFtZScsICdzaXplJywgJ2V4aXN0cycsICdtb2RlJ11cbiAgZXhwcmVzc2lvbj86IEFycmF5PHN0cmluZz47IC8vIGUuZy4gWydkaXJuYW1lJywgcmVsYXRpdmVQYXRoXVxuICBzaW5jZTogc3RyaW5nOyAvLyBlLmcuIFwiYzoxNDM5NDkyNjU1OjU4NjAxOjE6MTQxOTVcIlxufTtcblxuLyoqXG4gKiBAcGFyYW0gcGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoIFRoZSByZWxhdGl2ZSBwYXRoIGZyb21cbiAqICAgc3Vic2NyaXB0aW9uUm9vdCB0byBzdWJzY3JpcHRpb25QYXRoLiBUaGlzIGlzIHRoZSAncmVsYXRpdmVfcGF0aCcgYXMgZGVzY3JpYmVkIGF0XG4gKiAgIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3dhdGNobWFuL2RvY3MvY21kL3dhdGNoLXByb2plY3QuaHRtbCN1c2luZy13YXRjaC1wcm9qZWN0LlxuICogICBOb3RhYmx5LCB0aGlzIHZhbHVlIHNob3VsZCBiZSB1bmRlZmluZWQgaWYgc3Vic2NyaXB0aW9uUm9vdCBpcyB0aGUgc2FtZSBhc1xuICogICBzdWJzY3JpcHRpb25QYXRoLlxuICovXG5jbGFzcyBXYXRjaG1hblN1YnNjcmlwdGlvbiBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIHN1YnNjcmlwdGlvbkNvdW50OiBudW1iZXI7XG4gIHJvb3Q6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBwYXRoRnJvbVN1YnNjcmlwdGlvblJvb3RUb1N1YnNjcmlwdGlvblBhdGg6ID9zdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3B0aW9uczogV2F0Y2htYW5TdWJzY3JpcHRpb25PcHRpb25zO1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHN1YnNjcmlwdGlvblJvb3Q6IHN0cmluZyxcbiAgICAgIHBhdGhGcm9tU3Vic2NyaXB0aW9uUm9vdFRvU3Vic2NyaXB0aW9uUGF0aDogP3N0cmluZyxcbiAgICAgIHN1YnNjcmlwdGlvblBhdGg6IHN0cmluZyxcbiAgICAgIHN1YnNjcmlwdGlvbkNvdW50OiBudW1iZXIsXG4gICAgICBzdWJzY3JpcHRpb25PcHRpb25zOiBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnNcbiAgICAgICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yb290ID0gc3Vic2NyaXB0aW9uUm9vdDtcbiAgICB0aGlzLnBhdGhGcm9tU3Vic2NyaXB0aW9uUm9vdFRvU3Vic2NyaXB0aW9uUGF0aCA9IHBhdGhGcm9tU3Vic2NyaXB0aW9uUm9vdFRvU3Vic2NyaXB0aW9uUGF0aDtcbiAgICB0aGlzLnBhdGggPSB0aGlzLm5hbWUgPSBzdWJzY3JpcHRpb25QYXRoO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uQ291bnQgPSBzdWJzY3JpcHRpb25Db3VudDtcbiAgICB0aGlzLm9wdGlvbnMgPSBzdWJzY3JpcHRpb25PcHRpb25zO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IFdhdGNobWFuU3Vic2NyaXB0aW9uO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi92YXIvZm9sZGVycy94Zi9yc3BoNF9jNTczMTVyczU3eHhzZHNrcnhudjM2dDAvVC90bXBwZmw1Mm5wdWJsaXNoX3BhY2thZ2VzL25wbS9udWNsaWRlLXdhdGNobWFuLWhlbHBlcnMvbGliL1dhdGNobWFuU3Vic2NyaXB0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFXVyxPQUFPLENBQUMsUUFBUSxDQUFDOztJQUFqQyxZQUFZLFlBQVosWUFBWTs7Ozs7Ozs7Ozs7SUFnQmIsb0JBQW9CO1lBQXBCLG9CQUFvQjs7QUFPYixXQVBQLG9CQUFvQixDQVFwQixnQkFBd0IsRUFDeEIsMENBQW1ELEVBQ25ELGdCQUF3QixFQUN4QixpQkFBeUIsRUFDekIsbUJBQWdELEVBQzlDOzBCQWJGLG9CQUFvQjs7QUFjdEIsK0JBZEUsb0JBQW9CLDZDQWNkO0FBQ1IsUUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztBQUM3QixRQUFJLENBQUMsMENBQTBDLEdBQUcsMENBQTBDLENBQUM7QUFDN0YsUUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO0FBQ3pDLFFBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztBQUMzQyxRQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDO0dBQ3BDOztTQXBCRyxvQkFBb0I7R0FBUyxZQUFZOztBQXNCL0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyIsImZpbGUiOiIvdmFyL2ZvbGRlcnMveGYvcnNwaDRfYzU3MzE1cnM1N3h4c2Rza3J4bnYzNnQwL1QvdG1wcGZsNTJucHVibGlzaF9wYWNrYWdlcy9ucG0vbnVjbGlkZS13YXRjaG1hbi1oZWxwZXJzL2xpYi9XYXRjaG1hblN1YnNjcmlwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgYmFiZWwnO1xuLyogQGZsb3cgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW5cbiAqIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmNvbnN0IHtFdmVudEVtaXR0ZXJ9ID0gcmVxdWlyZSgnZXZlbnRzJyk7XG5cbmV4cG9ydCB0eXBlIFdhdGNobWFuU3Vic2NyaXB0aW9uT3B0aW9ucyA9IHtcbiAgZXhwcmVzc2lvbjogP0FycmF5PHN0cmluZz47IC8vIGUuZy4gWydtYXRjaCcsICcqLmpzJ10sXG4gIGZpZWxkczogP0FycmF5PHN0cmluZz47IC8vIGUuZy4gWyduYW1lJywgJ3NpemUnLCAnZXhpc3RzJywgJ21vZGUnXVxuICBleHByZXNzaW9uPzogQXJyYXk8c3RyaW5nPjsgLy8gZS5nLiBbJ2Rpcm5hbWUnLCByZWxhdGl2ZVBhdGhdXG4gIHNpbmNlOiBzdHJpbmc7IC8vIGUuZy4gXCJjOjE0Mzk0OTI2NTU6NTg2MDE6MToxNDE5NVwiXG59O1xuXG4vKipcbiAqIEBwYXJhbSBwYXRoRnJvbVN1YnNjcmlwdGlvblJvb3RUb1N1YnNjcmlwdGlvblBhdGggVGhlIHJlbGF0aXZlIHBhdGggZnJvbVxuICogICBzdWJzY3JpcHRpb25Sb290IHRvIHN1YnNjcmlwdGlvblBhdGguIFRoaXMgaXMgdGhlICdyZWxhdGl2ZV9wYXRoJyBhcyBkZXNjcmliZWQgYXRcbiAqICAgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vd2F0Y2htYW4vZG9jcy9jbWQvd2F0Y2gtcHJvamVjdC5odG1sI3VzaW5nLXdhdGNoLXByb2plY3QuXG4gKiAgIE5vdGFibHksIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHVuZGVmaW5lZCBpZiBzdWJzY3JpcHRpb25Sb290IGlzIHRoZSBzYW1lIGFzXG4gKiAgIHN1YnNjcmlwdGlvblBhdGguXG4gKi9cbmNsYXNzIFdhdGNobWFuU3Vic2NyaXB0aW9uIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgc3Vic2NyaXB0aW9uQ291bnQ6IG51bWJlcjtcbiAgcm9vdDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIHBhdGhGcm9tU3Vic2NyaXB0aW9uUm9vdFRvU3Vic2NyaXB0aW9uUGF0aDogP3N0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb25zOiBXYXRjaG1hblN1YnNjcmlwdGlvbk9wdGlvbnM7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgc3Vic2NyaXB0aW9uUm9vdDogc3RyaW5nLFxuICAgICAgcGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoOiA/c3RyaW5nLFxuICAgICAgc3Vic2NyaXB0aW9uUGF0aDogc3RyaW5nLFxuICAgICAgc3Vic2NyaXB0aW9uQ291bnQ6IG51bWJlcixcbiAgICAgIHN1YnNjcmlwdGlvbk9wdGlvbnM6IFdhdGNobWFuU3Vic2NyaXB0aW9uT3B0aW9uc1xuICAgICAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJvb3QgPSBzdWJzY3JpcHRpb25Sb290O1xuICAgIHRoaXMucGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoID0gcGF0aEZyb21TdWJzY3JpcHRpb25Sb290VG9TdWJzY3JpcHRpb25QYXRoO1xuICAgIHRoaXMucGF0aCA9IHRoaXMubmFtZSA9IHN1YnNjcmlwdGlvblBhdGg7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25Db3VudCA9IHN1YnNjcmlwdGlvbkNvdW50O1xuICAgIHRoaXMub3B0aW9ucyA9IHN1YnNjcmlwdGlvbk9wdGlvbnM7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gV2F0Y2htYW5TdWJzY3JpcHRpb247XG4iXX0=
{
"dependencies": {
"fb-watchman": "1.1.0",
"nuclide-commons": "0.0.34",
"nuclide-logging": "0.0.34"
"nuclide-commons": "0.0.35",
"nuclide-logging": "0.0.35"
},
"description": "Helper methods for interacting with fb-watchman",
"devDependencies": {
"nuclide-external-interfaces": "0.0.34",
"nuclide-jasmine": "0.0.34",
"nuclide-jasmine": "0.0.35",
"temp": "0.8.3"

@@ -18,3 +17,2 @@ },

"excludeTestsFromContinuousIntegration": true,
"flowCheck": true,
"packageType": "Node",

@@ -27,3 +25,3 @@ "testRunner": "npm"

},
"version": "0.0.34"
"version": "0.0.35"
}

@@ -12,15 +12,15 @@ 'use babel';

var fs = require('fs');
var path = require('path');
var invariant = require('assert');
var temp = require('temp').track();
var WatchmanClient = require('../lib/WatchmanClient');
const fs = require('fs');
const path = require('path');
const invariant = require('assert');
const temp = require('temp').track();
const WatchmanClient = require('../lib/WatchmanClient');
var FILE_MODE = 33188;
const FILE_MODE = 33188;
describe('WatchmanClient test suite', () => {
var dirPath: string = '';
var client: any;
var filePath: string = '';
let dirPath: string = '';
let client: any;
let filePath: string = '';

@@ -36,3 +36,3 @@ beforeEach(() => {

// always has .git in it.
var watchmanRootPath = path.join(dirPath, '.git');
const watchmanRootPath = path.join(dirPath, '.git');
fs.mkdirSync(watchmanRootPath);

@@ -49,4 +49,4 @@ waits(1010);

waitsForPromise(async () => {
var watcher = await client.watchDirectoryRecursive(dirPath);
var changeHandler = jasmine.createSpy();
const watcher = await client.watchDirectoryRecursive(dirPath);
const changeHandler = jasmine.createSpy();
watcher.on('change', changeHandler);

@@ -60,3 +60,3 @@ waits(1010);

// End the socket client to watchman to trigger restore subscriptions.
var internalClient = await client._clientPromise;
const internalClient = await client._clientPromise;
internalClient.end();

@@ -80,8 +80,8 @@ });

waitsForPromise(async () => {
var dirRealPath = fs.realpathSync(dirPath);
const dirRealPath = fs.realpathSync(dirPath);
await client.watchDirectoryRecursive(dirPath);
var watchList = await client._watchList();
const watchList = await client._watchList();
expect(watchList.indexOf(dirRealPath)).not.toBe(-1);
await client.unwatch(dirPath);
var afterCleanupWatchList = await client._watchList();
const afterCleanupWatchList = await client._watchList();
expect(afterCleanupWatchList.indexOf(dirRealPath)).toBe(-1);

@@ -95,3 +95,3 @@ });

waitsForPromise(async () => {
var version = await client.version();
const version = await client.version();
expect(version > '3.0.999').toBe(true);

@@ -105,9 +105,9 @@ });

waitsForPromise(async () => {
var dirRealPath = fs.realpathSync(dirPath);
const dirRealPath = fs.realpathSync(dirPath);
// The .watchmanconfig file, amonst others that could also be configured
// define the project root directory.
fs.writeFileSync(path.join(dirPath, '.watchmanconfig'), '');
var nestedDirPath = path.join(dirPath, 'nested');
const nestedDirPath = path.join(dirPath, 'nested');
fs.mkdirSync(nestedDirPath);
var {watch: watchRoot, relative_path: relativePath} = await client._watchProject(nestedDirPath);
const {watch: watchRoot, relative_path: relativePath} = await client._watchProject(nestedDirPath);
expect(watchRoot).toBe(dirRealPath);

@@ -122,3 +122,3 @@ expect(relativePath).toBe('nested');

waitsForPromise(async () => {
var watchVersionError;
let watchVersionError;
try {

@@ -125,0 +125,0 @@ await client._watchProject(dirPath)

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