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

appium-logger

Package Overview
Dependencies
Maintainers
7
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appium-logger - npm Package Compare versions

Comparing version 1.1.7 to 2.0.0

build/new.js

55

build/lib/logger.js

@@ -5,4 +5,2 @@ 'use strict';

var _Object$defineProperty = require('babel-runtime/core-js/object/define-property')['default'];
var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];

@@ -12,9 +10,6 @@

_Object$defineProperty(exports, '__esModule', {
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.patchLogger = patchLogger;
exports.getLogger = getLogger;
var _npmlog = require('npmlog');

@@ -24,3 +19,6 @@

var npmLevels = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
// levels that are available from `npmlog`
var NPM_LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
// mock log object used in testing mode
var mockLog = {};

@@ -32,6 +30,6 @@ var _iteratorNormalCompletion = true;

try {
for (var _iterator = _getIterator(npmLevels), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var l = _step.value;
for (var _iterator = _getIterator(NPM_LEVELS), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var level = _step.value;
mockLog[l] = function () {};
mockLog[level] = function () {};
}

@@ -60,6 +58,17 @@ } catch (err) {

function _getLogger() {
// check if the user set the `_TESTING` or `_FORCE_LOGS` flag
var testingMode = parseInt(process.env._TESTING, 10) === 1;
var forceLogMode = parseInt(process.env._FORCE_LOGS, 10) === 1;
// if is possible that there is a logger instance that is already around,
// in which case we want t o use that
var usingGlobalLog = !!global._global_npmlog;
var logger = testingMode && !forceLogMode ? mockLog : global._global_npmlog || _npmlog2['default'];
var logger = undefined;
if (testingMode && !forceLogMode) {
// in testing mode, use a mock logger object that we can query
logger = mockLog;
} else {
// otherwise, either use the global, or a new `npmlog` object
logger = global._global_npmlog || _npmlog2['default'];
}
patchLogger(logger);

@@ -70,3 +79,3 @@ return [logger, usingGlobalLog];

function getLogger() {
var prefix = arguments[0] === undefined ? null : arguments[0];
var prefix = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];

@@ -80,6 +89,9 @@ var _getLogger2 = _getLogger();

// wrap the logger so that we can catch and modify any logging
var wrappedLogger = { unwrap: function unwrap() {
return logger;
} };
_Object$defineProperty(wrappedLogger, 'level', {
// allow access to the level of the underlying logger
Object.defineProperty(wrappedLogger, 'level', {
get: function get() {

@@ -94,2 +106,3 @@ return logger.level;

});
// add all the levels from `npmlog`, and map to the underlying logger
var _iteratorNormalCompletion2 = true;

@@ -100,7 +113,8 @@ var _didIteratorError2 = false;

try {
for (var _iterator2 = _getIterator(npmLevels), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var k = _step2.value;
for (var _iterator2 = _getIterator(NPM_LEVELS), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var level = _step2.value;
wrappedLogger[k] = logger[k].bind(logger, prefix);
wrappedLogger[level] = logger[level].bind(logger, prefix);
}
// add method to log an error, and throw it, for convenience
} catch (err) {

@@ -122,5 +136,7 @@ _didIteratorError2 = true;

wrappedLogger.errorAndThrow = function (err) {
// make sure we have an `Error` object. Wrap if necessary
if (!(err instanceof Error)) {
err = new Error(err);
}
// log and throw
this.error(err);

@@ -135,9 +151,12 @@ throw err;

}
wrappedLogger.levels = npmLevels;
wrappedLogger.levels = NPM_LEVELS;
return wrappedLogger;
}
// export a default logger with no prefix
var log = getLogger();
exports.patchLogger = patchLogger;
exports.getLogger = getLogger;
exports['default'] = log;
//# sourceMappingURL=data:application/json;base64,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QUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDakMsU0FBTyxhQUFhLENBQUM7Q0FDdEI7O0FBRUQsSUFBTSxHQUFHLEdBQUcsU0FBUyxFQUFFLENBQUM7O3FCQUVULEdBQUciLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuY29uc3QgbnBtTGV2ZWxzID0gWydzaWxseScsICd2ZXJib3NlJywgJ2RlYnVnJywgJ2luZm8nLCAnaHR0cCcsICd3YXJuJywgJ2Vycm9yJ107XG5sZXQgbW9ja0xvZyA9IHt9O1xuZm9yIChsZXQgbCBvZiBucG1MZXZlbHMpIHtcbiAgbW9ja0xvZ1tsXSA9ICgpID0+IHt9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hMb2dnZXIobG9nZ2VyKSB7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfZ2V0TG9nZ2VyICgpIHtcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fVEVTVElORywgMTApID09PSAxO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUywgMTApID09PSAxO1xuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyID0gKHRlc3RpbmdNb2RlICYmICFmb3JjZUxvZ01vZGUpID8gbW9ja0xvZyA6XG4gICAgKGdsb2JhbC5fZ2xvYmFsX25wbWxvZyB8fCBucG1sb2cpO1xuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKHByZWZpeCA9IG51bGwpIHtcbiAgbGV0IFtsb2dnZXIsIHVzaW5nR2xvYmFsTG9nXSA9IF9nZXRMb2dnZXIoKTtcbiAgbGV0IHdyYXBwZWRMb2dnZXIgPSB7dW53cmFwOiAoKSA9PiB7IHJldHVybiBsb2dnZXI7fSB9O1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZExvZ2dlciwgJ2xldmVsJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gbG9nZ2VyLmxldmVsOyB9LFxuICAgIHNldDogZnVuY3Rpb24gKG5ld1ZhbHVlKSB7IGxvZ2dlci5sZXZlbCA9IG5ld1ZhbHVlOyB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuICBmb3IobGV0IGsgb2YgbnBtTGV2ZWxzKSB7XG4gICAgd3JhcHBlZExvZ2dlcltrXSA9IGxvZ2dlcltrXS5iaW5kKGxvZ2dlciwgcHJlZml4KTtcbiAgfVxuICB3cmFwcGVkTG9nZ2VyLmVycm9yQW5kVGhyb3cgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKCEoZXJyIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICBlcnIgPSBuZXcgRXJyb3IoZXJyKTtcbiAgICB9XG4gICAgdGhpcy5lcnJvcihlcnIpO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgaWYgKCF1c2luZ0dsb2JhbExvZykge1xuICAgIC8vIGlmIHdlJ3JlIG5vdCB1c2luZyBhIGdsb2JhbCBsb2cgc3BlY2lmaWVkIGZyb20gc29tZSB0b3AtbGV2ZWwgcGFja2FnZSxcbiAgICAvLyBzZXQgdGhlIGxvZyBsZXZlbCB0byBhIGRlZmF1bHQgb2YgdmVyYm9zZS4gT3RoZXJ3aXNlLCBsZXQgdGhlIHRvcC1sZXZlbFxuICAgIC8vIHBhY2thZ2Ugc2V0IHRoZSBsb2cgbGV2ZWxcbiAgICB3cmFwcGVkTG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICB9XG4gIHdyYXBwZWRMb2dnZXIubGV2ZWxzID0gbnBtTGV2ZWxzO1xuICByZXR1cm4gd3JhcHBlZExvZ2dlcjtcbn1cblxuY29uc3QgbG9nID0gZ2V0TG9nZ2VyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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QUFDO0dBQ2pDO0FBQ0QsZUFBYSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDbEMsU0FBTyxhQUFhLENBQUM7Q0FDdEI7OztBQUdELElBQU0sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDOztRQUVmLFdBQVcsR0FBWCxXQUFXO1FBQUUsU0FBUyxHQUFULFNBQVM7cUJBQ2hCLEdBQUciLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcblxuLy8gbW9jayBsb2cgb2JqZWN0IHVzZWQgaW4gdGVzdGluZyBtb2RlXG5sZXQgbW9ja0xvZyA9IHt9O1xuZm9yIChsZXQgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICBtb2NrTG9nW2xldmVsXSA9ICgpID0+IHt9O1xufVxuXG5mdW5jdGlvbiBwYXRjaExvZ2dlciAobG9nZ2VyKSB7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfZ2V0TG9nZ2VyICgpIHtcbiAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgc2V0IHRoZSBgX1RFU1RJTkdgIG9yIGBfRk9SQ0VfTE9HU2AgZmxhZ1xuICBjb25zdCB0ZXN0aW5nTW9kZSA9IHBhcnNlSW50KHByb2Nlc3MuZW52Ll9URVNUSU5HLCAxMCkgPT09IDE7XG4gIGNvbnN0IGZvcmNlTG9nTW9kZSA9IHBhcnNlSW50KHByb2Nlc3MuZW52Ll9GT1JDRV9MT0dTLCAxMCkgPT09IDE7XG5cbiAgLy8gaWYgaXMgcG9zc2libGUgdGhhdCB0aGVyZSBpcyBhIGxvZ2dlciBpbnN0YW5jZSB0aGF0IGlzIGFscmVhZHkgYXJvdW5kLFxuICAvLyBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdCBvIHVzZSB0aGF0XG4gIGNvbnN0IHVzaW5nR2xvYmFsTG9nID0gISFnbG9iYWwuX2dsb2JhbF9ucG1sb2c7XG4gIGxldCBsb2dnZXI7XG4gIGlmICh0ZXN0aW5nTW9kZSAmJiAhZm9yY2VMb2dNb2RlKSB7XG4gICAgLy8gaW4gdGVzdGluZyBtb2RlLCB1c2UgYSBtb2NrIGxvZ2dlciBvYmplY3QgdGhhdCB3ZSBjYW4gcXVlcnlcbiAgICBsb2dnZXIgPSBtb2NrTG9nO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgZWl0aGVyIHVzZSB0aGUgZ2xvYmFsLCBvciBhIG5ldyBgbnBtbG9nYCBvYmplY3RcbiAgICBsb2dnZXIgPSBnbG9iYWwuX2dsb2JhbF9ucG1sb2cgfHwgbnBtbG9nO1xuICB9XG4gIHBhdGNoTG9nZ2VyKGxvZ2dlcik7XG4gIHJldHVybiBbbG9nZ2VyLCB1c2luZ0dsb2JhbExvZ107XG59XG5cbmZ1bmN0aW9uIGdldExvZ2dlciAocHJlZml4ID0gbnVsbCkge1xuICBsZXQgW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddID0gX2dldExvZ2dlcigpO1xuXG4gIC8vIHdyYXAgdGhlIGxvZ2dlciBzbyB0aGF0IHdlIGNhbiBjYXRjaCBhbmQgbW9kaWZ5IGFueSBsb2dnaW5nXG4gIGxldCB3cmFwcGVkTG9nZ2VyID0ge3Vud3JhcDogKCkgPT4gbG9nZ2VyfTtcblxuICAvLyBhbGxvdyBhY2Nlc3MgdG8gdGhlIGxldmVsIG9mIHRoZSB1bmRlcmx5aW5nIGxvZ2dlclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZExvZ2dlciwgJ2xldmVsJywge1xuICAgIGdldDogKCkgPT4geyByZXR1cm4gbG9nZ2VyLmxldmVsOyB9LFxuICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7IGxvZ2dlci5sZXZlbCA9IG5ld1ZhbHVlOyB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuICAvLyBhZGQgYWxsIHRoZSBsZXZlbHMgZnJvbSBgbnBtbG9nYCwgYW5kIG1hcCB0byB0aGUgdW5kZXJseWluZyBsb2dnZXJcbiAgZm9yIChsZXQgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gbG9nZ2VyW2xldmVsXS5iaW5kKGxvZ2dlciwgcHJlZml4KTtcbiAgfVxuICAvLyBhZGQgbWV0aG9kIHRvIGxvZyBhbiBlcnJvciwgYW5kIHRocm93IGl0LCBmb3IgY29udmVuaWVuY2VcbiAgd3JhcHBlZExvZ2dlci5lcnJvckFuZFRocm93ID0gZnVuY3Rpb24gKGVycikge1xuICAgIC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGFuIGBFcnJvcmAgb2JqZWN0LiBXcmFwIGlmIG5lY2Vzc2FyeVxuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgZXJyID0gbmV3IEVycm9yKGVycik7XG4gICAgfVxuICAgIC8vIGxvZyBhbmQgdGhyb3dcbiAgICB0aGlzLmVycm9yKGVycik7XG4gICAgdGhyb3cgZXJyO1xuICB9O1xuICBpZiAoIXVzaW5nR2xvYmFsTG9nKSB7XG4gICAgLy8gaWYgd2UncmUgbm90IHVzaW5nIGEgZ2xvYmFsIGxvZyBzcGVjaWZpZWQgZnJvbSBzb21lIHRvcC1sZXZlbCBwYWNrYWdlLFxuICAgIC8vIHNldCB0aGUgbG9nIGxldmVsIHRvIGEgZGVmYXVsdCBvZiB2ZXJib3NlLiBPdGhlcndpc2UsIGxldCB0aGUgdG9wLWxldmVsXG4gICAgLy8gcGFja2FnZSBzZXQgdGhlIGxvZyBsZXZlbFxuICAgIHdyYXBwZWRMb2dnZXIubGV2ZWwgPSAndmVyYm9zZSc7XG4gIH1cbiAgd3JhcHBlZExvZ2dlci5sZXZlbHMgPSBOUE1fTEVWRUxTO1xuICByZXR1cm4gd3JhcHBlZExvZ2dlcjtcbn1cblxuLy8gZXhwb3J0IGEgZGVmYXVsdCBsb2dnZXIgd2l0aCBubyBwcmVmaXhcbmNvbnN0IGxvZyA9IGdldExvZ2dlcigpO1xuXG5leHBvcnQgeyBwYXRjaExvZ2dlciwgZ2V0TG9nZ2VyIH07XG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXX0=
'use strict';
var _Object$defineProperty = require('babel-runtime/core-js/object/define-property')['default'];
var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];

@@ -9,3 +7,3 @@

_Object$defineProperty(exports, '__esModule', {
Object.defineProperty(exports, '__esModule', {
value: true

@@ -36,3 +34,3 @@ });

function getDynamicLogger(testingMode, forceLogs) {
var prefix = arguments[2] === undefined ? null : arguments[2];
var prefix = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];

@@ -71,4 +69,4 @@ process.env._TESTING = testingMode ? '1' : '0';

function assertOutputContains(writers, output) {
var someoneHadOutput = false;
function someoneHadOutput(writers, output) {
var hadOutput = false;
var matchOutput = _sinon2['default'].match(function (value) {

@@ -84,7 +82,7 @@ return value && value.indexOf(output) >= 0;

for (var _iterator2 = _getIterator(_lodash2['default'].values(writers)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var w = _step2.value;
var writer = _step2.value;
if (w.calledWith) {
someoneHadOutput = w.calledWithMatch(matchOutput);
if (someoneHadOutput) break;
if (writer.calledWith) {
hadOutput = writer.calledWithMatch(matchOutput);
if (hadOutput) break;
}

@@ -107,4 +105,8 @@ }

if (!someoneHadOutput) {
throw new Error('Expected someone to have been called with: \'' + output + '\'');
return hadOutput;
}
function assertOutputContains(writers, output) {
if (!someoneHadOutput(writers, output)) {
throw new Error('Expected something to have been called with: \'' + output + '\'');
}

@@ -114,25 +116,4 @@ }

function assertOutputDoesntContain(writers, output) {
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
try {
for (var _iterator3 = _getIterator(_lodash2['default'].values(writers)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
var w = _step3.value;
_lodash2['default'].flatten(w.args).should.not.contain(output);
}
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3['return']) {
_iterator3['return']();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
if (someoneHadOutput(writers, output)) {
throw new Error('Expected nothing to have been called with: \'' + output + '\'');
}

@@ -146,2 +127,2 @@ }

exports.getDynamicLogger = getDynamicLogger;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7cUJBQ0wsT0FBTzs7OztzQkFDWCxRQUFROzs7O3lCQUNJLGVBQWU7O0FBQ3pDLGtCQUFLLE1BQU0sRUFBRSxDQUFDOztBQUVkLFNBQVMsWUFBWSxHQUFJO0FBQ3ZCLFNBQU8sRUFBQyxRQUFRLEVBQUUsbUJBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0FBQzVDLFlBQVEsRUFBRSxtQkFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQyxDQUFDO0NBQ3ZEOztBQUVELFNBQVMsZ0JBQWdCLENBQUUsV0FBVyxFQUFFLFNBQVMsRUFBZTtNQUFiLE1BQU0sZ0NBQUMsSUFBSTs7QUFDNUQsU0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDL0MsU0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDaEQsU0FBTyxlQVhBLFNBQVMsRUFXQyxNQUFNLENBQUMsQ0FBQztDQUMxQjs7QUFFRCxTQUFTLGNBQWMsQ0FBRSxPQUFPLEVBQUU7Ozs7OztBQUNoQyxzQ0FBYyxvQkFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLDRHQUFFO1VBQXhCLENBQUM7O0FBQ1IsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ2I7Ozs7Ozs7Ozs7Ozs7OztDQUNGOztBQUVELFNBQVMsb0JBQW9CLENBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUM5QyxNQUFJLGdCQUFnQixHQUFHLEtBQUssQ0FBQztBQUM3QixNQUFJLFdBQVcsR0FBRyxtQkFBTSxLQUFLLENBQUMsVUFBVSxLQUFLLEVBQUU7QUFDN0MsV0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUMsRUFBRSxhQUFhLENBQUMsQ0FBQzs7Ozs7OztBQUVsQix1Q0FBYyxvQkFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLGlIQUFFO1VBQXhCLENBQUM7O0FBQ1IsVUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO0FBQ2hCLHdCQUFnQixHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbEQsWUFBSSxnQkFBZ0IsRUFBRSxNQUFNO09BQzdCO0tBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDRCxNQUFJLENBQUMsZ0JBQWdCLEVBQUU7QUFDckIsVUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBOEMsR0FBRyxNQUFNLEdBQUcsSUFBRyxDQUFDLENBQUM7R0FDaEY7Q0FDRjs7QUFFRCxTQUFTLHlCQUF5QixDQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7Ozs7OztBQUNuRCx1Q0FBYyxvQkFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLGlIQUFFO1VBQXhCLENBQUM7O0FBQ1IsMEJBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM5Qzs7Ozs7Ozs7Ozs7Ozs7O0NBQ0Y7O1FBRVEsWUFBWSxHQUFaLFlBQVk7UUFBRSxjQUFjLEdBQWQsY0FBYztRQUFFLG9CQUFvQixHQUFwQixvQkFBb0I7UUFDbEQseUJBQXlCLEdBQXpCLHlCQUF5QjtRQUFFLGdCQUFnQixHQUFoQixnQkFBZ0IiLCJmaWxlIjoidGVzdC9oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gJy4uL2xpYi9sb2dnZXInO1xuY2hhaS5zaG91bGQoKTtcblxuZnVuY3Rpb24gc2V0dXBXcml0ZXJzICgpIHtcbiAgcmV0dXJuIHsnc3Rkb3V0Jzogc2lub24uc3B5KHByb2Nlc3Muc3Rkb3V0LCAnd3JpdGUnKSxcbiAgICAgICAgICAnc3RkZXJyJzogc2lub24uc3B5KHByb2Nlc3Muc3RkZXJyLCAnd3JpdGUnKX07XG59XG5cbmZ1bmN0aW9uIGdldER5bmFtaWNMb2dnZXIgKHRlc3RpbmdNb2RlLCBmb3JjZUxvZ3MsIHByZWZpeD1udWxsKSB7XG4gIHByb2Nlc3MuZW52Ll9URVNUSU5HID0gdGVzdGluZ01vZGUgPyAnMScgOiAnMCc7XG4gIHByb2Nlc3MuZW52Ll9GT1JDRV9MT0dTID0gZm9yY2VMb2dzID8gJzEnIDogJzAnO1xuICByZXR1cm4gZ2V0TG9nZ2VyKHByZWZpeCk7XG59XG5cbmZ1bmN0aW9uIHJlc3RvcmVXcml0ZXJzICh3cml0ZXJzKSB7XG4gIGZvciAobGV0IHcgb2YgXy52YWx1ZXMod3JpdGVycykpIHtcbiAgICB3LnJlc3RvcmUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRPdXRwdXRDb250YWlucyAod3JpdGVycywgb3V0cHV0KSB7XG4gIGxldCBzb21lb25lSGFkT3V0cHV0ID0gZmFsc2U7XG4gIGxldCBtYXRjaE91dHB1dCA9IHNpbm9uLm1hdGNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS5pbmRleE9mKG91dHB1dCkgPj0gMDtcbiAgfSwgXCJtYXRjaE91dHB1dFwiKTtcblxuICBmb3IgKGxldCB3IG9mIF8udmFsdWVzKHdyaXRlcnMpKSB7XG4gICAgaWYgKHcuY2FsbGVkV2l0aCkge1xuICAgICAgc29tZW9uZUhhZE91dHB1dCA9IHcuY2FsbGVkV2l0aE1hdGNoKG1hdGNoT3V0cHV0KTtcbiAgICAgIGlmIChzb21lb25lSGFkT3V0cHV0KSBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFzb21lb25lSGFkT3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgc29tZW9uZSB0byBoYXZlIGJlZW4gY2FsbGVkIHdpdGg6ICdcIiArIG91dHB1dCArIFwiJ1wiKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRPdXRwdXREb2VzbnRDb250YWluICh3cml0ZXJzLCBvdXRwdXQpIHtcbiAgZm9yIChsZXQgdyBvZiBfLnZhbHVlcyh3cml0ZXJzKSkge1xuICAgIF8uZmxhdHRlbih3LmFyZ3MpLnNob3VsZC5ub3QuY29udGFpbihvdXRwdXQpO1xuICB9XG59XG5cbmV4cG9ydCB7IHNldHVwV3JpdGVycywgcmVzdG9yZVdyaXRlcnMsIGFzc2VydE91dHB1dENvbnRhaW5zLFxuICAgICAgICAgYXNzZXJ0T3V0cHV0RG9lc250Q29udGFpbiwgZ2V0RHluYW1pY0xvZ2dlciB9O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O29CQUFpQixNQUFNOzs7O3FCQUNMLE9BQU87Ozs7c0JBQ1gsUUFBUTs7Ozt5QkFDSSxlQUFlOztBQUd6QyxrQkFBSyxNQUFNLEVBQUUsQ0FBQzs7QUFFZCxTQUFTLFlBQVksR0FBSTtBQUN2QixTQUFPLEVBQUMsUUFBUSxFQUFFLG1CQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM1QyxZQUFRLEVBQUUsbUJBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUMsQ0FBQztDQUN2RDs7QUFFRCxTQUFTLGdCQUFnQixDQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWU7TUFBYixNQUFNLHlEQUFDLElBQUk7O0FBQzVELFNBQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFdBQVcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQy9DLFNBQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2hELFNBQU8sMEJBQVUsTUFBTSxDQUFDLENBQUM7Q0FDMUI7O0FBRUQsU0FBUyxjQUFjLENBQUUsT0FBTyxFQUFFOzs7Ozs7QUFDaEMsc0NBQWMsb0JBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyw0R0FBRTtVQUF4QixDQUFDOztBQUNSLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNiOzs7Ozs7Ozs7Ozs7Ozs7Q0FDRjs7QUFFRCxTQUFTLGdCQUFnQixDQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDMUMsTUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQUksV0FBVyxHQUFHLG1CQUFNLEtBQUssQ0FBQyxVQUFVLEtBQUssRUFBRTtBQUM3QyxXQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM1QyxFQUFFLGFBQWEsQ0FBQyxDQUFDOzs7Ozs7O0FBRWxCLHVDQUFtQixvQkFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLGlIQUFFO1VBQTdCLE1BQU07O0FBQ2IsVUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO0FBQ3JCLGlCQUFTLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNoRCxZQUFJLFNBQVMsRUFBRSxNQUFNO09BQ3RCO0tBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDRCxTQUFPLFNBQVMsQ0FBQztDQUNsQjs7QUFFRCxTQUFTLG9CQUFvQixDQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDOUMsTUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRTtBQUN0QyxVQUFNLElBQUksS0FBSyxxREFBa0QsTUFBTSxRQUFJLENBQUM7R0FDN0U7Q0FDRjs7QUFFRCxTQUFTLHlCQUF5QixDQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDbkQsTUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUU7QUFDckMsVUFBTSxJQUFJLEtBQUssbURBQWdELE1BQU0sUUFBSSxDQUFDO0dBQzNFO0NBQ0Y7O1FBRVEsWUFBWSxHQUFaLFlBQVk7UUFBRSxjQUFjLEdBQWQsY0FBYztRQUFFLG9CQUFvQixHQUFwQixvQkFBb0I7UUFDbEQseUJBQXlCLEdBQXpCLHlCQUF5QjtRQUFFLGdCQUFnQixHQUFoQixnQkFBZ0IiLCJmaWxlIjoidGVzdC9oZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gJy4uL2xpYi9sb2dnZXInO1xuXG5cbmNoYWkuc2hvdWxkKCk7XG5cbmZ1bmN0aW9uIHNldHVwV3JpdGVycyAoKSB7XG4gIHJldHVybiB7J3N0ZG91dCc6IHNpbm9uLnNweShwcm9jZXNzLnN0ZG91dCwgJ3dyaXRlJyksXG4gICAgICAgICAgJ3N0ZGVycic6IHNpbm9uLnNweShwcm9jZXNzLnN0ZGVyciwgJ3dyaXRlJyl9O1xufVxuXG5mdW5jdGlvbiBnZXREeW5hbWljTG9nZ2VyICh0ZXN0aW5nTW9kZSwgZm9yY2VMb2dzLCBwcmVmaXg9bnVsbCkge1xuICBwcm9jZXNzLmVudi5fVEVTVElORyA9IHRlc3RpbmdNb2RlID8gJzEnIDogJzAnO1xuICBwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUyA9IGZvcmNlTG9ncyA/ICcxJyA6ICcwJztcbiAgcmV0dXJuIGdldExvZ2dlcihwcmVmaXgpO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlV3JpdGVycyAod3JpdGVycykge1xuICBmb3IgKGxldCB3IG9mIF8udmFsdWVzKHdyaXRlcnMpKSB7XG4gICAgdy5yZXN0b3JlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc29tZW9uZUhhZE91dHB1dCAod3JpdGVycywgb3V0cHV0KSB7XG4gIGxldCBoYWRPdXRwdXQgPSBmYWxzZTtcbiAgbGV0IG1hdGNoT3V0cHV0ID0gc2lub24ubWF0Y2goZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmluZGV4T2Yob3V0cHV0KSA+PSAwO1xuICB9LCAnbWF0Y2hPdXRwdXQnKTtcblxuICBmb3IgKGxldCB3cml0ZXIgb2YgXy52YWx1ZXMod3JpdGVycykpIHtcbiAgICBpZiAod3JpdGVyLmNhbGxlZFdpdGgpIHtcbiAgICAgIGhhZE91dHB1dCA9IHdyaXRlci5jYWxsZWRXaXRoTWF0Y2gobWF0Y2hPdXRwdXQpO1xuICAgICAgaWYgKGhhZE91dHB1dCkgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBoYWRPdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIGFzc2VydE91dHB1dENvbnRhaW5zICh3cml0ZXJzLCBvdXRwdXQpIHtcbiAgaWYgKCFzb21lb25lSGFkT3V0cHV0KHdyaXRlcnMsIG91dHB1dCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHNvbWV0aGluZyB0byBoYXZlIGJlZW4gY2FsbGVkIHdpdGg6ICcke291dHB1dH0nYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0T3V0cHV0RG9lc250Q29udGFpbiAod3JpdGVycywgb3V0cHV0KSB7XG4gIGlmIChzb21lb25lSGFkT3V0cHV0KHdyaXRlcnMsIG91dHB1dCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIG5vdGhpbmcgdG8gaGF2ZSBiZWVuIGNhbGxlZCB3aXRoOiAnJHtvdXRwdXR9J2ApO1xuICB9XG59XG5cbmV4cG9ydCB7IHNldHVwV3JpdGVycywgcmVzdG9yZVdyaXRlcnMsIGFzc2VydE91dHB1dENvbnRhaW5zLFxuICAgICAgICAgYXNzZXJ0T3V0cHV0RG9lc250Q29udGFpbiwgZ2V0RHluYW1pY0xvZ2dlciB9O1xuIl19

@@ -42,2 +42,2 @@ require('source-map-support').install();

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLWZvcmNlLXNwZWNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7dUJBR3FDLFdBQVc7O0FBRWhELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxZQUFNO0FBQ3RDLE1BQUksT0FBTyxZQUFBO01BQUUsR0FBRyxZQUFBLENBQUM7QUFDakIsUUFBTSxDQUFDLFlBQU07QUFDWCxXQUFPLEdBQUcsYUFONkIsWUFBWSxHQU0zQixDQUFDO0FBQ3pCLE9BQUcsR0FBRyxhQVBELGdCQUFnQixFQU9FLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuQyxPQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztHQUNyQixDQUFDLENBQUM7O0FBRUgsT0FBSyxDQUFDLFlBQU07QUFDVixpQkFadUIsY0FBYyxFQVl0QixPQUFPLENBQUMsQ0FBQztHQUN6QixDQUFDLENBQUM7O0FBRUgsSUFBRSxDQUFDLG1EQUFtRCxFQUFFLFlBQU07QUFDNUQsT0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQixpQkFoQkssb0JBQW9CLEVBZ0JKLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxPQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZCLGlCQWxCSyxvQkFBb0IsRUFrQkosT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLE9BQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsaUJBcEJLLG9CQUFvQixFQW9CSixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsT0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQixpQkF0Qkssb0JBQW9CLEVBc0JKLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLGlCQXhCSyxvQkFBb0IsRUF3QkosT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLE9BQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakIsaUJBMUJLLG9CQUFvQixFQTBCSixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsT0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQixpQkE1Qkssb0JBQW9CLEVBNEJKLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxLQUFDLFlBQU07QUFBRSxTQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQUUsQ0FBQSxDQUFFLE1BQU0sU0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFELGlCQTlCSyxvQkFBb0IsRUE4QkosT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLGlCQS9CSyxvQkFBb0IsRUErQkosT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQ3RDLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2xvZ2dlci1mb3JjZS1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG5pbXBvcnQgeyBnZXREeW5hbWljTG9nZ2VyLCByZXN0b3JlV3JpdGVycywgc2V0dXBXcml0ZXJzLFxuICAgICAgICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5kZXNjcmliZSgnbG9nZ2VyIHdpdGggZm9yY2UgbG9nJywgKCkgPT4ge1xuICBsZXQgd3JpdGVycywgbG9nO1xuICBiZWZvcmUoKCkgPT4ge1xuICAgIHdyaXRlcnMgPSBzZXR1cFdyaXRlcnMoKTtcbiAgICBsb2cgPSBnZXREeW5hbWljTG9nZ2VyKHRydWUsIHRydWUpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgcmV3cml0ZSBsb2cgbGV2ZWxzIGV2ZW4gZHVyaW5nIHRlc3RpbmcnLCAoKSA9PiB7XG4gICAgbG9nLnNpbGx5KCdzaWxseScpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdzaWxseScpO1xuICAgIGxvZy52ZXJib3NlKCd2ZXJib3NlJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3ZlcmJvc2UnKTtcbiAgICBsb2cudmVyYm9zZSgnZGVidWcnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZGVidWcnKTtcbiAgICBsb2cuaW5mbygnaW5mbycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdpbmZvJyk7XG4gICAgbG9nLmh0dHAoJ2h0dHAnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnaHR0cCcpO1xuICAgIGxvZy53YXJuKCd3YXJuJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3dhcm4nKTtcbiAgICBsb2cuZXJyb3IoJ2Vycm9yJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2Vycm9yJyk7XG4gICAgKCgpID0+IHsgbG9nLmVycm9yQW5kVGhyb3coJ21zZycpOyB9KS5zaG91bGQudGhyb3coJ21zZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdlcnJvcicpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdtc2cnKTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLWZvcmNlLXNwZWNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7dUJBR3FDLFdBQVc7O0FBRWhELFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxZQUFNO0FBQ3RDLE1BQUksT0FBTyxZQUFBO01BQUUsR0FBRyxZQUFBLENBQUM7QUFDakIsUUFBTSxDQUFDLFlBQU07QUFDWCxXQUFPLEdBQUcsNEJBQWMsQ0FBQztBQUN6QixPQUFHLEdBQUcsK0JBQWlCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuQyxPQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztHQUNyQixDQUFDLENBQUM7O0FBRUgsT0FBSyxDQUFDLFlBQU07QUFDVixpQ0FBZSxPQUFPLENBQUMsQ0FBQztHQUN6QixDQUFDLENBQUM7O0FBRUgsSUFBRSxDQUFDLG1EQUFtRCxFQUFFLFlBQU07QUFDNUQsT0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQix1Q0FBcUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLE9BQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkIsdUNBQXFCLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN6QyxPQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JCLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsT0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQix1Q0FBcUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLE9BQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakIsdUNBQXFCLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLHVDQUFxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsT0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQix1Q0FBcUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLEtBQUMsWUFBTTtBQUFFLFNBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7S0FBRSxDQUFBLENBQUUsTUFBTSxTQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsdUNBQXFCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2Qyx1Q0FBcUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQ3RDLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2xvZ2dlci1mb3JjZS1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG5pbXBvcnQgeyBnZXREeW5hbWljTG9nZ2VyLCByZXN0b3JlV3JpdGVycywgc2V0dXBXcml0ZXJzLFxuICAgICAgICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5kZXNjcmliZSgnbG9nZ2VyIHdpdGggZm9yY2UgbG9nJywgKCkgPT4ge1xuICBsZXQgd3JpdGVycywgbG9nO1xuICBiZWZvcmUoKCkgPT4ge1xuICAgIHdyaXRlcnMgPSBzZXR1cFdyaXRlcnMoKTtcbiAgICBsb2cgPSBnZXREeW5hbWljTG9nZ2VyKHRydWUsIHRydWUpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgcmV3cml0ZSBsb2cgbGV2ZWxzIGV2ZW4gZHVyaW5nIHRlc3RpbmcnLCAoKSA9PiB7XG4gICAgbG9nLnNpbGx5KCdzaWxseScpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdzaWxseScpO1xuICAgIGxvZy52ZXJib3NlKCd2ZXJib3NlJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3ZlcmJvc2UnKTtcbiAgICBsb2cudmVyYm9zZSgnZGVidWcnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZGVidWcnKTtcbiAgICBsb2cuaW5mbygnaW5mbycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdpbmZvJyk7XG4gICAgbG9nLmh0dHAoJ2h0dHAnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnaHR0cCcpO1xuICAgIGxvZy53YXJuKCd3YXJuJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3dhcm4nKTtcbiAgICBsb2cuZXJyb3IoJ2Vycm9yJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2Vycm9yJyk7XG4gICAgKCgpID0+IHsgbG9nLmVycm9yQW5kVGhyb3coJ21zZycpOyB9KS5zaG91bGQudGhyb3coJ21zZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdlcnJvcicpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdtc2cnKTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -10,3 +10,3 @@ require('source-map-support').install();

log = undefined;
before(function () {
beforeEach(function () {
writers = (0, _helpers.setupWriters)();

@@ -17,3 +17,3 @@ log = (0, _helpers.getDynamicLogger)(false, false);

after(function () {
afterEach(function () {
(0, _helpers.restoreWriters)(writers);

@@ -48,2 +48,10 @@ });

});
it('should get and set log levels', function () {
log.level = 'warn';
log.level.should.equal('warn');
log.info('information');
log.warn('warning');
(0, _helpers.assertOutputDoesntContain)(writers, 'information');
(0, _helpers.assertOutputContains)(writers, 'warning');
});
});

@@ -95,2 +103,2 @@

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLW5vcm1hbC1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3VCQUdxQyxXQUFXOztBQUVoRCxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQU07QUFDOUIsTUFBSSxPQUFPLFlBQUE7TUFBRSxHQUFHLFlBQUEsQ0FBQztBQUNqQixRQUFNLENBQUMsWUFBTTtBQUNYLFdBQU8sR0FBRyxhQU42QixZQUFZLEdBTTNCLENBQUM7QUFDekIsT0FBRyxHQUFHLGFBUEQsZ0JBQWdCLEVBT0UsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLE9BQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0dBQ3JCLENBQUMsQ0FBQzs7QUFFSCxPQUFLLENBQUMsWUFBTTtBQUNWLGlCQVp1QixjQUFjLEVBWXRCLE9BQU8sQ0FBQyxDQUFDO0dBQ3pCLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsa0RBQWtELEVBQUUsWUFBTTtBQUMzRCxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLGlCQWhCSyxvQkFBb0IsRUFnQkosT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLE9BQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkIsaUJBbEJLLG9CQUFvQixFQWtCSixPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDekMsT0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixpQkFwQkssb0JBQW9CLEVBb0JKLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLGlCQXRCSyxvQkFBb0IsRUFzQkosT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLE9BQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakIsaUJBeEJLLG9CQUFvQixFQXdCSixPQUFPLEVBQUUsTUFBTSxDQUFDLENB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QUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLGlCQXRFSyxvQkFBb0IsRUFzRUosT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLGlCQXZFSyxvQkFBb0IsRUF1RUosT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyx3RUFBd0UsRUFBRSxZQUFNO0FBQ2pGLEtBQUMsWUFBTTtBQUFFLFNBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7S0FBRSxDQUFBLENBQUUsTUFBTSxTQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUQsaUJBM0VLLG9CQUFvQixFQTJFSixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsaUJBNUVLLG9CQUFvQixFQTRFSixPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7R0FDM0MsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QvbG9nZ2VyLW5vcm1hbC1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG5pbXBvcnQgeyBnZXREeW5hbWljTG9nZ2VyLCByZXN0b3JlV3JpdGVycywgc2V0dXBXcml0ZXJzLFxuICAgICAgICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5kZXNjcmliZSgnbm9ybWFsIGxvZ2dlcicsICgpID0+IHtcbiAgbGV0IHdyaXRlcnMsIGxvZztcbiAgYmVmb3JlKCgpID0+IHtcbiAgICB3cml0ZXJzID0gc2V0dXBXcml0ZXJzKCk7XG4gICAgbG9nID0gZ2V0RHluYW1pY0xvZ2dlcihmYWxzZSwgZmFsc2UpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgcmV3cml0ZSBsb2cgbGV2ZWxzIG91dHNpZGUgb2YgdGVzdGluZycsICgpID0+IHtcbiAgICBsb2cuc2lsbHkoJ3NpbGx5Jyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3NpbGx5Jyk7XG4gICAgbG9nLnZlcmJvc2UoJ3ZlcmJvc2UnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAndmVyYm9zZScpO1xuICAgIGxvZy52ZXJib3NlKCdkZWJ1ZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdkZWJ1ZycpO1xuICAgIGxvZy5pbmZvKCdpbmZvJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2luZm8nKTtcbiAgICBsb2cuaHR0cCgnaHR0cCcpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdodHRwJyk7XG4gICAgbG9nLndhcm4oJ3dhcm4nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnd2FybicpO1xuICAgIGxvZy5lcnJvcignZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZXJyb3InKTtcbiAgfSk7XG4gIGl0KCd0aHJvdyBzaG91bGQgbm90IHJld3JpdGUgbG9nIGxldmVscyBvdXRzaWRlIG9mIHRlc3RpbmcgYW5kIHRocm93IGVycm9yJywgKCkgPT4ge1xuICAgICgoKSA9PiB7IGxvZy5lcnJvckFuZFRocm93KCdtc2cxJyk7IH0pLnNob3VsZC50aHJvdygnbXNnMScpO1xuICAgICgoKSA9PiB7IGxvZy5lcnJvckFuZFRocm93KG5ldyBFcnJvcignbXNnMicpKTsgfSkuc2hvdWxkLnRocm93KCdtc2cyJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ21zZzEnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXNnMicpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnbm9ybWFsIGxvZ2dlciB3aXRoIHByZWZpeCcsICgpID0+IHtcbiAgbGV0IHdyaXRlcnMsIGxvZztcbiAgYmVmb3JlKCgpID0+IHtcbiAgICB3cml0ZXJzID0gc2V0dXBXcml0ZXJzKCk7XG4gICAgbG9nID0gZ2V0RHluYW1pY0xvZ2dlcihmYWxzZSwgZmFsc2UsICdteXByZWZpeCcpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgcmV3cml0ZSBsb2cgbGV2ZWxzIG91dHNpZGUgb2YgdGVzdGluZycsICgpID0+IHtcbiAgICBsb2cuc2lsbHkoJ3NpbGx5Jyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3NpbGx5Jyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ215cHJlZml4Jyk7XG4gICAgbG9nLnZlcmJvc2UoJ3ZlcmJvc2UnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAndmVyYm9zZScpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy52ZXJib3NlKCdkZWJ1ZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdkZWJ1ZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy5pbmZvKCdpbmZvJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2luZm8nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgICBsb2cuaHR0cCgnaHR0cCcpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdodHRwJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ215cHJlZml4Jyk7XG4gICAgbG9nLndhcm4oJ3dhcm4nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnd2FybicpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy5lcnJvcignZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgfSk7XG4gIGl0KCd0aHJvdyBzaG91bGQgbm90IHJld3JpdGUgbG9nIGxldmVscyBvdXRzaWRlIG9mIHRlc3RpbmcgYW5kIHRocm93IGVycm9yJywgKCkgPT4ge1xuICAgICgoKSA9PiB7IGxvZy5lcnJvckFuZFRocm93KCdtc2cnKTsgfSkuc2hvdWxkLnRocm93KCdtc2cnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgfSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLW5vcm1hbC1zcGVjcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3VCQUdnRSxXQUFXOztBQUUzRSxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQU07QUFDOUIsTUFBSSxPQUFPLFlBQUE7TUFBRSxHQUFHLFlBQUEsQ0FBQztBQUNqQixZQUFVLENBQUMsWUFBTTtBQUNmLFdBQU8sR0FBRyw0QkFBYyxDQUFDO0FBQ3pCLE9BQUcsR0FBRywrQkFBaUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLE9BQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0dBQ3JCLENBQUMsQ0FBQzs7QUFFSCxXQUFTLENBQUMsWUFBTTtBQUNkLGlDQUFlLE9BQU8sQ0FBQyxDQUFDO0dBQ3pCLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsa0RBQWtELEVBQUUsWUFBTTtBQUMzRCxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsT0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN2Qix1Q0FBcUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLE9BQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsdUNBQXFCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLHVDQUFxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsT0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQix1Q0FBcUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLE9BQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakIsdUNBQXFCLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDeEMsQ0FBQyxDQUFDO0FBQ0gsSUFBRSxDQUFDLHdFQUF3RSxFQUFFLFlBQU07QUFDakYsS0FBQyxZQUFNO0FBQUUsU0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUFFLENBQUEsQ0FBRSxNQUFNLFNBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1RCxLQUFDLFlBQU07QUFBRSxTQUFHLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FBRSxDQUFBLENBQUUsTUFBTSxTQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkUsdUNBQXFCLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0Qyx1Q0FBcUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0dBQ3ZDLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQywrQkFBK0IsRUFBRSxZQUFNO0FBQ3hDLE9BQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ25CLE9BQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixPQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3hCLE9BQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDcEIsNENBQTBCLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNsRCx1Q0FBcUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQzs7QUFFSCxRQUFRLENBQUMsMkJBQTJCLEVBQUUsWUFBTTtBQUMxQyxNQUFJLE9BQU8sWUFBQTtNQUFFLEdBQUcsWUFBQSxDQUFDO0FBQ2pCLFFBQU0sQ0FBQyxZQUFNO0FBQ1gsV0FBTyxHQUFHLDRCQUFjLENBQUM7QUFDekIsT0FBRyxHQUFHLCtCQUFpQixLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2pELE9BQUcsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0dBQ3JCLENBQUMsQ0FBQzs7QUFFSCxPQUFLLENBQUMsWUFBTTtBQUNWLGlDQUFlLE9BQU8sQ0FBQyxDQUFDO0dBQ3pCLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsa0RBQWtELEVBQUUsWUFBTTtBQUMzRCxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZCLHVDQUFxQixPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDekMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JCLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLHVDQUFxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLHVDQUFxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pCLHVDQUFxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxPQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztHQUMzQyxDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsd0VBQXdFLEVBQUUsWUFBTTtBQUNqRixLQUFDLFlBQU07QUFBRSxTQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQUUsQ0FBQSxDQUFFLE1BQU0sU0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFELHVDQUFxQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdkMsdUNBQXFCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztHQUMzQyxDQUFDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJmaWxlIjoidGVzdC9sb2dnZXItbm9ybWFsLXNwZWNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1vY2hhXG5cbmltcG9ydCB7IGdldER5bmFtaWNMb2dnZXIsIHJlc3RvcmVXcml0ZXJzLCBzZXR1cFdyaXRlcnMsXG4gICAgICAgICBhc3NlcnRPdXRwdXRDb250YWlucywgYXNzZXJ0T3V0cHV0RG9lc250Q29udGFpbiB9IGZyb20gJy4vaGVscGVycyc7XG5cbmRlc2NyaWJlKCdub3JtYWwgbG9nZ2VyJywgKCkgPT4ge1xuICBsZXQgd3JpdGVycywgbG9nO1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3cml0ZXJzID0gc2V0dXBXcml0ZXJzKCk7XG4gICAgbG9nID0gZ2V0RHluYW1pY0xvZ2dlcihmYWxzZSwgZmFsc2UpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgcmVzdG9yZVdyaXRlcnMod3JpdGVycyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IHJld3JpdGUgbG9nIGxldmVscyBvdXRzaWRlIG9mIHRlc3RpbmcnLCAoKSA9PiB7XG4gICAgbG9nLnNpbGx5KCdzaWxseScpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdzaWxseScpO1xuICAgIGxvZy52ZXJib3NlKCd2ZXJib3NlJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3ZlcmJvc2UnKTtcbiAgICBsb2cudmVyYm9zZSgnZGVidWcnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZGVidWcnKTtcbiAgICBsb2cuaW5mbygnaW5mbycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdpbmZvJyk7XG4gICAgbG9nLmh0dHAoJ2h0dHAnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnaHR0cCcpO1xuICAgIGxvZy53YXJuKCd3YXJuJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3dhcm4nKTtcbiAgICBsb2cuZXJyb3IoJ2Vycm9yJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2Vycm9yJyk7XG4gIH0pO1xuICBpdCgndGhyb3cgc2hvdWxkIG5vdCByZXdyaXRlIGxvZyBsZXZlbHMgb3V0c2lkZSBvZiB0ZXN0aW5nIGFuZCB0aHJvdyBlcnJvcicsICgpID0+IHtcbiAgICAoKCkgPT4geyBsb2cuZXJyb3JBbmRUaHJvdygnbXNnMScpOyB9KS5zaG91bGQudGhyb3coJ21zZzEnKTtcbiAgICAoKCkgPT4geyBsb2cuZXJyb3JBbmRUaHJvdyhuZXcgRXJyb3IoJ21zZzInKSk7IH0pLnNob3VsZC50aHJvdygnbXNnMicpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdtc2cxJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ21zZzInKTtcbiAgfSk7XG4gIGl0KCdzaG91bGQgZ2V0IGFuZCBzZXQgbG9nIGxldmVscycsICgpID0+IHtcbiAgICBsb2cubGV2ZWwgPSAnd2Fybic7XG4gICAgbG9nLmxldmVsLnNob3VsZC5lcXVhbCgnd2FybicpO1xuICAgIGxvZy5pbmZvKCdpbmZvcm1hdGlvbicpO1xuICAgIGxvZy53YXJuKCd3YXJuaW5nJyk7XG4gICAgYXNzZXJ0T3V0cHV0RG9lc250Q29udGFpbih3cml0ZXJzLCAnaW5mb3JtYXRpb24nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnd2FybmluZycpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnbm9ybWFsIGxvZ2dlciB3aXRoIHByZWZpeCcsICgpID0+IHtcbiAgbGV0IHdyaXRlcnMsIGxvZztcbiAgYmVmb3JlKCgpID0+IHtcbiAgICB3cml0ZXJzID0gc2V0dXBXcml0ZXJzKCk7XG4gICAgbG9nID0gZ2V0RHluYW1pY0xvZ2dlcihmYWxzZSwgZmFsc2UsICdteXByZWZpeCcpO1xuICAgIGxvZy5sZXZlbCA9ICdzaWxseSc7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgcmV3cml0ZSBsb2cgbGV2ZWxzIG91dHNpZGUgb2YgdGVzdGluZycsICgpID0+IHtcbiAgICBsb2cuc2lsbHkoJ3NpbGx5Jyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ3NpbGx5Jyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ215cHJlZml4Jyk7XG4gICAgbG9nLnZlcmJvc2UoJ3ZlcmJvc2UnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAndmVyYm9zZScpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy52ZXJib3NlKCdkZWJ1ZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdkZWJ1ZycpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy5pbmZvKCdpbmZvJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ2luZm8nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgICBsb2cuaHR0cCgnaHR0cCcpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdodHRwJyk7XG4gICAgYXNzZXJ0T3V0cHV0Q29udGFpbnMod3JpdGVycywgJ215cHJlZml4Jyk7XG4gICAgbG9nLndhcm4oJ3dhcm4nKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnd2FybicpO1xuICAgIGFzc2VydE91dHB1dENvbnRhaW5zKHdyaXRlcnMsICdteXByZWZpeCcpO1xuICAgIGxvZy5lcnJvcignZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgfSk7XG4gIGl0KCd0aHJvdyBzaG91bGQgbm90IHJld3JpdGUgbG9nIGxldmVscyBvdXRzaWRlIG9mIHRlc3RpbmcgYW5kIHRocm93IGVycm9yJywgKCkgPT4ge1xuICAgICgoKSA9PiB7IGxvZy5lcnJvckFuZFRocm93KCdtc2cnKTsgfSkuc2hvdWxkLnRocm93KCdtc2cnKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnZXJyb3InKTtcbiAgICBhc3NlcnRPdXRwdXRDb250YWlucyh3cml0ZXJzLCAnbXlwcmVmaXgnKTtcbiAgfSk7XG59KTtcbiJdfQ==

@@ -25,4 +25,4 @@ require('source-map-support').install();

it('should unwrap', function () {
log.unwrap.should.exists;
log.unwrap().should.exists;
log.unwrap.should.exist;
log.unwrap().should.exist;
});

@@ -44,2 +44,2 @@

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLXRlc3Qtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozt1QkFHMEMsV0FBVzs7QUFFckQsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0FBQzVCLE1BQUksT0FBTyxZQUFBO01BQUUsR0FBRyxZQUFBLENBQUM7QUFDakIsUUFBTSxDQUFDLFlBQU07QUFDWCxXQUFPLEdBQUcsYUFONkIsWUFBWSxHQU0zQixDQUFDO0FBQ3pCLE9BQUcsR0FBRyxhQVBELGdCQUFnQixFQU9FLElBQUksQ0FBQyxDQUFDO0dBQzlCLENBQUMsQ0FBQzs7QUFFSCxPQUFLLENBQUMsWUFBTTtBQUNWLGlCQVh1QixjQUFjLEVBV3RCLE9BQU8sQ0FBQyxDQUFDO0dBQ3pCLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsd0JBQXdCLEVBQUUsWUFBTTtBQUNqQyxPQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxPQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDckMsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBTTtBQUN4QixPQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDekIsT0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7R0FDNUIsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxZQUFNO0FBQ3RELFFBQU0sSUFBSSxHQUFHLElBQUksQ0FBQztBQUNsQixPQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLE9BQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEIsT0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNmLE9BQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixPQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsT0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQixLQUFDLFlBQU07QUFBRSxTQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUUsQ0FBQSxDQUFFLE1BQU0sU0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hELGlCQWhDSyx5QkFBeUIsRUFnQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQzFDLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2xvZ2dlci10ZXN0LXNwZWNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1vY2hhXG5cbmltcG9ydCB7IGdldER5bmFtaWNMb2dnZXIsIHJlc3RvcmVXcml0ZXJzLCBzZXR1cFdyaXRlcnMsXG4gICAgICAgICBhc3NlcnRPdXRwdXREb2VzbnRDb250YWluIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZGVzY3JpYmUoJ3Rlc3QgbG9nZ2VyJywgKCkgPT4ge1xuICBsZXQgd3JpdGVycywgbG9nO1xuICBiZWZvcmUoKCkgPT4ge1xuICAgIHdyaXRlcnMgPSBzZXR1cFdyaXRlcnMoKTtcbiAgICBsb2cgPSBnZXREeW5hbWljTG9nZ2VyKHRydWUpO1xuICB9KTtcblxuICBhZnRlcigoKSA9PiB7XG4gICAgcmVzdG9yZVdyaXRlcnMod3JpdGVycyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29udGFpbnMgbGV2ZWxzJywgKCkgPT4ge1xuICAgIGxvZy5sZXZlbHMuc2hvdWxkLmhhdmUubGVuZ3RoLmFib3ZlKDMpO1xuICAgIGxvZy5sZXZlbHNbMl0uc2hvdWxkLmVxdWFsKCdkZWJ1ZycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHVud3JhcCcsICgpID0+IHtcbiAgICBsb2cudW53cmFwLnNob3VsZC5leGlzdHM7XG4gICAgbG9nLnVud3JhcCgpLnNob3VsZC5leGlzdHM7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV3cml0ZSBucG1sb2cgbGV2ZWxzIGR1cmluZyB0ZXN0aW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHRleHQgPSAnaGknO1xuICAgIGxvZy5zaWxseSh0ZXh0KTtcbiAgICBsb2cudmVyYm9zZSh0ZXh0KTtcbiAgICBsb2cuaW5mbyh0ZXh0KTtcbiAgICBsb2cuaHR0cCh0ZXh0KTtcbiAgICBsb2cud2Fybih0ZXh0KTtcbiAgICBsb2cuZXJyb3IodGV4dCk7XG4gICAgKCgpID0+IHsgbG9nLmVycm9yQW5kVGhyb3codGV4dCk7IH0pLnNob3VsZC50aHJvdyh0ZXh0KTtcbiAgICBhc3NlcnRPdXRwdXREb2VzbnRDb250YWluKHdyaXRlcnMsIHRleHQpO1xuICB9KTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvbG9nZ2VyLXRlc3Qtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozt1QkFHMEMsV0FBVzs7QUFFckQsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0FBQzVCLE1BQUksT0FBTyxZQUFBO01BQUUsR0FBRyxZQUFBLENBQUM7QUFDakIsUUFBTSxDQUFDLFlBQU07QUFDWCxXQUFPLEdBQUcsNEJBQWMsQ0FBQztBQUN6QixPQUFHLEdBQUcsK0JBQWlCLElBQUksQ0FBQyxDQUFDO0dBQzlCLENBQUMsQ0FBQzs7QUFFSCxPQUFLLENBQUMsWUFBTTtBQUNWLGlDQUFlLE9BQU8sQ0FBQyxDQUFDO0dBQ3pCLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsd0JBQXdCLEVBQUUsWUFBTTtBQUNqQyxPQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxPQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDckMsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBTTtBQUN4QixPQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDeEIsT0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7R0FDM0IsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxZQUFNO0FBQ3RELFFBQU0sSUFBSSxHQUFHLElBQUksQ0FBQztBQUNsQixPQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLE9BQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEIsT0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNmLE9BQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixPQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsT0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQixLQUFDLFlBQU07QUFBRSxTQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQUUsQ0FBQSxDQUFFLE1BQU0sU0FBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hELDRDQUEwQixPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDMUMsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDIiwiZmlsZSI6InRlc3QvbG9nZ2VyLXRlc3Qtc3BlY3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bW9jaGFcblxuaW1wb3J0IHsgZ2V0RHluYW1pY0xvZ2dlciwgcmVzdG9yZVdyaXRlcnMsIHNldHVwV3JpdGVycyxcbiAgICAgICAgIGFzc2VydE91dHB1dERvZXNudENvbnRhaW4gfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5kZXNjcmliZSgndGVzdCBsb2dnZXInLCAoKSA9PiB7XG4gIGxldCB3cml0ZXJzLCBsb2c7XG4gIGJlZm9yZSgoKSA9PiB7XG4gICAgd3JpdGVycyA9IHNldHVwV3JpdGVycygpO1xuICAgIGxvZyA9IGdldER5bmFtaWNMb2dnZXIodHJ1ZSk7XG4gIH0pO1xuXG4gIGFmdGVyKCgpID0+IHtcbiAgICByZXN0b3JlV3JpdGVycyh3cml0ZXJzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBjb250YWlucyBsZXZlbHMnLCAoKSA9PiB7XG4gICAgbG9nLmxldmVscy5zaG91bGQuaGF2ZS5sZW5ndGguYWJvdmUoMyk7XG4gICAgbG9nLmxldmVsc1syXS5zaG91bGQuZXF1YWwoJ2RlYnVnJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdW53cmFwJywgKCkgPT4ge1xuICAgIGxvZy51bndyYXAuc2hvdWxkLmV4aXN0O1xuICAgIGxvZy51bndyYXAoKS5zaG91bGQuZXhpc3Q7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV3cml0ZSBucG1sb2cgbGV2ZWxzIGR1cmluZyB0ZXN0aW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHRleHQgPSAnaGknO1xuICAgIGxvZy5zaWxseSh0ZXh0KTtcbiAgICBsb2cudmVyYm9zZSh0ZXh0KTtcbiAgICBsb2cuaW5mbyh0ZXh0KTtcbiAgICBsb2cuaHR0cCh0ZXh0KTtcbiAgICBsb2cud2Fybih0ZXh0KTtcbiAgICBsb2cuZXJyb3IodGV4dCk7XG4gICAgKCgpID0+IHsgbG9nLmVycm9yQW5kVGhyb3codGV4dCk7IH0pLnNob3VsZC50aHJvdyh0ZXh0KTtcbiAgICBhc3NlcnRPdXRwdXREb2VzbnRDb250YWluKHdyaXRlcnMsIHRleHQpO1xuICB9KTtcbn0pO1xuIl19
import npmlog from 'npmlog';
const npmLevels = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
// levels that are available from `npmlog`
const NPM_LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
// mock log object used in testing mode
let mockLog = {};
for (let l of npmLevels) {
mockLog[l] = () => {};
for (let level of NPM_LEVELS) {
mockLog[level] = () => {};
}
export function patchLogger(logger) {
function patchLogger (logger) {
if (!logger.debug) {

@@ -16,7 +20,17 @@ logger.addLevel('debug', 1000, { fg: 'blue', bg: 'black' }, 'dbug');

function _getLogger () {
// check if the user set the `_TESTING` or `_FORCE_LOGS` flag
const testingMode = parseInt(process.env._TESTING, 10) === 1;
const forceLogMode = parseInt(process.env._FORCE_LOGS, 10) === 1;
// if is possible that there is a logger instance that is already around,
// in which case we want t o use that
const usingGlobalLog = !!global._global_npmlog;
let logger = (testingMode && !forceLogMode) ? mockLog :
(global._global_npmlog || npmlog);
let logger;
if (testingMode && !forceLogMode) {
// in testing mode, use a mock logger object that we can query
logger = mockLog;
} else {
// otherwise, either use the global, or a new `npmlog` object
logger = global._global_npmlog || npmlog;
}
patchLogger(logger);

@@ -26,18 +40,26 @@ return [logger, usingGlobalLog];

export function getLogger(prefix = null) {
function getLogger (prefix = null) {
let [logger, usingGlobalLog] = _getLogger();
let wrappedLogger = {unwrap: () => { return logger;} };
// wrap the logger so that we can catch and modify any logging
let wrappedLogger = {unwrap: () => logger};
// allow access to the level of the underlying logger
Object.defineProperty(wrappedLogger, 'level', {
get: function () { return logger.level; },
set: function (newValue) { logger.level = newValue; },
get: () => { return logger.level; },
set: (newValue) => { logger.level = newValue; },
enumerable: true,
configurable: true
});
for(let k of npmLevels) {
wrappedLogger[k] = logger[k].bind(logger, prefix);
// add all the levels from `npmlog`, and map to the underlying logger
for (let level of NPM_LEVELS) {
wrappedLogger[level] = logger[level].bind(logger, prefix);
}
// add method to log an error, and throw it, for convenience
wrappedLogger.errorAndThrow = function (err) {
// make sure we have an `Error` object. Wrap if necessary
if (!(err instanceof Error)) {
err = new Error(err);
}
// log and throw
this.error(err);

@@ -52,8 +74,10 @@ throw err;

}
wrappedLogger.levels = npmLevels;
wrappedLogger.levels = NPM_LEVELS;
return wrappedLogger;
}
// export a default logger with no prefix
const log = getLogger();
export { patchLogger, getLogger };
export default log;

@@ -7,3 +7,3 @@ {

],
"version": "1.1.7",
"version": "2.0.0",
"author": "appium",

@@ -27,5 +27,4 @@ "license": "Apache-2.0",

"dependencies": {
"babel-runtime": "5.5.5",
"babel-runtime": "=5.8.24",
"npmlog": "^1.2.1",
"q": "^1.4.1",
"source-map-support": "^0.3.1"

@@ -39,9 +38,8 @@ },

"devDependencies": {
"appium-gulp-plugins": "^1.0.3",
"chai": "^3.0.0",
"gulp": "^3.8.11",
"lodash": "^3.9.1",
"mochawait": "^2.0.0",
"sinon": "^1.14.1"
"appium-gulp-plugins": "^1.3.11",
"chai": "^3.2.0",
"gulp": "^3.9.0",
"lodash": "^3.10.1",
"sinon": "^1.16.1"
}
}

@@ -1,4 +0,4 @@

appium-logger
===================
[![NPM version](http://img.shields.io/npm/v/appium-logger.svg)](https://npmjs.org/package/appium-logger)
## appium-logger
[![NPM version](http://img.shields.io/npm/v/appium-logger.svg)](https://npmjs.org/package/appium-logger)
[![Downloads](http://img.shields.io/npm/dm/appium-logger.svg)](https://npmjs.org/package/appium-logger)

@@ -11,9 +11,88 @@ [![Dependency Status](https://david-dm.org/appium/logger.svg)](https://david-dm.org/appium/logger)

Basic logger defaulting to `npmlog` with special consideration for running
Basic logger defaulting to [npmlog](https://github.com/npm/npmlog) with special consideration for running
tests (doesn't output logs when run with `_TESTING=1` in the env).
### Logging levels
There are a number of levels, exposed as methods on the log object, at which logging can be made. The built-in ones correspond to those of [npmlog](https://github.com/npm/npmlog#loglevelprefix-message-), and are:
`silly`, `verbose`, `info`, `http`, `warn`, and `error`. In addition there is a `debug` level.
The default threshhold level is `verbose`.
The logged output, by default, will be `level prefix message`. So
```js
import { getLogger } from 'appium-logger';
let log = getLogger('mymodule');
log.info("hi!");
log.warn('a warning');`
```
Will produce
```shell
warn mymodule a warning
```
### Environment variables
There are two environment variable flags that affect the way `appium-logger` works.
`_TESTING`
- `_TESTING=1` stops output of logs when set to `1`.
`_FORCE_LOGS`
- This flag, when set to `1`, reverses the `_TESTING`
### Usage
`log.level`
- get and set the threshhold level at which to display the logs. Any logs at or above this level will be displayed. The special level silent will prevent anything from being displayed ever. See [npmlog#level](https://github.com/npm/npmlog#loglevel).
`log[level](message)`
- logs to `level`
```js
import { getLogger } from 'appium-logger';
let log = getLogger('mymodule');
log.info('hi!');
// => info mymodule hi!
```
`log.unwrap()`
- retrieves the underlying [npmlog](https://github.com/npm/npmlog) object, in order to manage how logging is done at a low level (e.g., changing output streams, retrieving an array of messages, adding log levels, etc.).
```js
import { getLogger } from 'appium-logger';
let log = getLogger('mymodule');
log.info('hi!');
let npmlogger = log.unwrap();
// any `npmlog` methods
let logs = npmlogger.record;
// logs === [ { id: 0, level: 'info', prefix: 'mymodule', message: 'hi!', messageRaw: [ 'hi!' ] }]
```
`log.errorAndThrow(error)`
- logs the error passed in, at `error` level, and then throws the error. If the error passed in is not an instance of [Error](https://nodejs.org/api/errors.html#errors_class_error) (either directly, or a subclass of `Error`) it will be wrapped in a generic `Error` object.
```js
import { getLogger } from 'appium-logger';
let log = getLogger('mymodule');
// previously there would be two lines
log.error('This is an error');
throw new Error('This is an error');
// now is compacted
log.errorAndThrow('This is an error');
```

@@ -5,2 +5,4 @@ import chai from 'chai';

import { getLogger } from '../lib/logger';
chai.should();

@@ -25,16 +27,20 @@

function assertOutputContains (writers, output) {
let someoneHadOutput = false;
function someoneHadOutput (writers, output) {
let hadOutput = false;
let matchOutput = sinon.match(function (value) {
return value && value.indexOf(output) >= 0;
}, "matchOutput");
}, 'matchOutput');
for (let w of _.values(writers)) {
if (w.calledWith) {
someoneHadOutput = w.calledWithMatch(matchOutput);
if (someoneHadOutput) break;
for (let writer of _.values(writers)) {
if (writer.calledWith) {
hadOutput = writer.calledWithMatch(matchOutput);
if (hadOutput) break;
}
}
if (!someoneHadOutput) {
throw new Error("Expected someone to have been called with: '" + output + "'");
return hadOutput;
}
function assertOutputContains (writers, output) {
if (!someoneHadOutput(writers, output)) {
throw new Error(`Expected something to have been called with: '${output}'`);
}

@@ -44,4 +50,4 @@ }

function assertOutputDoesntContain (writers, output) {
for (let w of _.values(writers)) {
_.flatten(w.args).should.not.contain(output);
if (someoneHadOutput(writers, output)) {
throw new Error(`Expected nothing to have been called with: '${output}'`);
}

@@ -48,0 +54,0 @@ }

// transpile:mocha
import { getDynamicLogger, restoreWriters, setupWriters,
assertOutputContains } from './helpers';
assertOutputContains, assertOutputDoesntContain } from './helpers';
describe('normal logger', () => {
let writers, log;
before(() => {
beforeEach(() => {
writers = setupWriters();

@@ -14,3 +14,3 @@ log = getDynamicLogger(false, false);

after(() => {
afterEach(() => {
restoreWriters(writers);

@@ -41,2 +41,10 @@ });

});
it('should get and set log levels', () => {
log.level = 'warn';
log.level.should.equal('warn');
log.info('information');
log.warn('warning');
assertOutputDoesntContain(writers, 'information');
assertOutputContains(writers, 'warning');
});
});

@@ -43,0 +51,0 @@

@@ -23,4 +23,4 @@ // transpile:mocha

it('should unwrap', () => {
log.unwrap.should.exists;
log.unwrap().should.exists;
log.unwrap.should.exist;
log.unwrap().should.exist;
});

@@ -27,0 +27,0 @@

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