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

node-tdd

Package Overview
Dependencies
Maintainers
1
Versions
169
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-tdd - npm Package Compare versions

Comparing version 2.18.0 to 2.18.1

4

lib/modules/request-recorder.js

@@ -46,3 +46,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

heal: Joi.alternatives(Joi.boolean(), Joi.string()),
modifiers: Joi.object().pattern(Joi.string(), Joi.function())
modifiers: Joi.object().pattern(Joi.string(), Joi.alternatives(Joi.function(), Joi.link('#modifiers')))
}), 'Invalid Options Provided');

@@ -245,2 +245,2 @@ let nockDone = null;

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJodHRwcyIsInBhdGgiLCJmcyIsIkpvaSIsIm5vY2siLCJjbG9uZURlZXAiLCJub2NrTGlzdGVuZXIiLCJoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCIsImFwcGx5TW9kaWZpZXJzIiwiYnVpbGRLZXkiLCJ0cnlQYXJzZUpzb24iLCJjb252ZXJ0SGVhZGVycyIsInJlcXVlc3RJbmplY3RvciIsIm5vY2tCYWNrIiwiYmFjayIsIm5vY2tSZWNvcmRlciIsInJlY29yZGVyIiwibW9kdWxlIiwiZXhwb3J0cyIsIm9wdHMiLCJvYmplY3QiLCJrZXlzIiwiY2Fzc2V0dGVGb2xkZXIiLCJzdHJpbmciLCJzdHJpcEhlYWRlcnMiLCJib29sZWFuIiwic3RyaWN0IiwiaGVhbCIsImFsdGVybmF0aXZlcyIsIm1vZGlmaWVycyIsInBhdHRlcm4iLCJmdW5jdGlvbiIsIm5vY2tEb25lIiwiY2Fzc2V0dGVGaWxlUGF0aCIsImtub3duQ2Fzc2V0dGVOYW1lcyIsInJlY29yZHMiLCJvdXRPZk9yZGVyRXJyb3JzIiwiZXhwZWN0ZWRDYXNzZXR0ZSIsInBlbmRpbmdNb2NrcyIsImFueUZsYWdQcmVzZW50IiwiZmxhZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJuZWVkbGVGbGFncyIsInNwbGl0Iiwic29tZSIsImZsYWciLCJpbmNsdWRlcyIsImluamVjdCIsImNhc3NldHRlRmlsZSIsInB1c2giLCJqb2luIiwiaGFzQ2Fzc2V0dGUiLCJleGlzdHNTeW5jIiwiY2Fzc2V0dGVDb250ZW50Iiwic21hcnRSZWFkIiwiZGVmaW5lIiwibWFwIiwiZSIsImlkeCIsImtleSIsImludGVyY2VwdG9ycyIsInJlY29yZCIsInNldE1vZGUiLCJmaXh0dXJlcyIsInN1YnNjcmliZSIsInByb3RvY29sIiwib3B0aW9ucyIsImJvZHkiLCJnZXRMYXN0IiwicmVjIiwib3V0cHV0X29iamVjdHMiLCJkb250X3ByaW50IiwiZW5hYmxlX3JlcWhlYWRlcnNfcmVjb3JkaW5nIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyIiwicmVxdWVzdCIsInJlc3BvbnNlIiwib24iLCJ1bmRlZmluZWQiLCJ3cml0ZSIsImVuZCIsInJlY29yZGVkIiwicGxheSIsImNsZWFyIiwiT2JqZWN0IiwiYXNzaWduIiwiaGVhZGVycyIsInJhd0hlYWRlcnMiLCJzY29wZSIsImhvc3QiLCJwb3J0IiwibWV0aG9kIiwic3RhdHVzIiwicmVzcG9uc2VJc0JpbmFyeSIsImJlZm9yZSIsInNjb3BlSWR4IiwiZmlsdGVyaW5nUmVxdWVzdEJvZHkiLCJmaW5kSW5kZXgiLCJtIiwicmVxdWVzdEJvZHkiLCJmaWx0ZXJpbmdQYXRoIiwicmVxdWVzdFBhdGgiLCJhZnRlciIsInJlcSIsImludGVyY2VwdG9yIiwicmVxdWVzdEJvZHlTdHJpbmciLCJyZXNwb25zZUJvZHkiLCJyZWR1Y2UiLCJyZXNwQm9keSIsImZuIiwic3BsaWNlIiwiYWZ0ZXJSZWNvcmQiLCJyZWNvcmRpbmdzIiwiSlNPTiIsInN0cmluZ2lmeSIsInJlbGVhc2UiLCJ1bnN1YnNjcmliZUFsbCIsInNtYXJ0V3JpdGUiLCJrZWVwT3JkZXIiLCJFcnJvciIsInNodXRkb3duIiwidW5leHBlY3RlZEZpbGVzIiwid2Fsa0RpciIsImZpbHRlciIsImYiLCJnZXQiLCJzbGljZSIsInVubWF0Y2hlZFJlY29yZGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxLQUFLLEdBQUdGLE9BQU8sQ0FBQyxNQUFELENBQXJCOztBQUNBLE1BQU1HLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUksRUFBRSxHQUFHSixPQUFPLENBQUMsVUFBRCxDQUFsQjs7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LE9BQU8sQ0FBQzhGLEtBQVIsRUFEQztBQUVWN0YsTUFBQUEsZ0JBQWdCLEVBQUVBLGdCQUFnQixDQUFDNkYsS0FBakIsRUFGUjtBQUdWQyxNQUFBQSxtQkFBbUIsRUFBRTVGLFlBQVksQ0FBQ29CLEdBQWIsQ0FBa0JDLENBQUQsSUFBT0EsQ0FBQyxDQUFDRSxHQUExQixFQUErQm9FLEtBQS9CLEVBSFg7QUFJVjVGLE1BQUFBLGdCQUFnQixFQUFFQSxnQkFBZ0IsQ0FBQzRGLEtBQWpCLEVBSlI7QUFLVmhHLE1BQUFBO0FBTFUsS0FBUDtBQS9KQyxHQUFSO0FBdUtELENBaE1EIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IGNsb25lRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC5jbG9uZWRlZXAnKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9oZWFsLXNxcy1zZW5kLW1lc3NhZ2UtYmF0Y2gnKTtcbmNvbnN0IGFwcGx5TW9kaWZpZXJzID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL2FwcGx5LW1vZGlmaWVycycpO1xuY29uc3QgeyBidWlsZEtleSwgdHJ5UGFyc2VKc29uLCBjb252ZXJ0SGVhZGVycyB9ID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL3V0aWwnKTtcbmNvbnN0IHJlcXVlc3RJbmplY3RvciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9yZXF1ZXN0LWluamVjdG9yJyk7XG5cbmNvbnN0IG5vY2tCYWNrID0gbm9jay5iYWNrO1xuY29uc3Qgbm9ja1JlY29yZGVyID0gbm9jay5yZWNvcmRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0cykgPT4ge1xuICBKb2kuYXNzZXJ0KG9wdHMsIEpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBjYXNzZXR0ZUZvbGRlcjogSm9pLnN0cmluZygpLFxuICAgIHN0cmlwSGVhZGVyczogSm9pLmJvb2xlYW4oKSxcbiAgICBzdHJpY3Q6IEpvaS5ib29sZWFuKCksXG4gICAgaGVhbDogSm9pLmFsdGVybmF0aXZlcyhKb2kuYm9vbGVhbigpLCBKb2kuc3RyaW5nKCkpLFxuICAgIG1vZGlmaWVyczogSm9pLm9iamVjdCgpLnBhdHRlcm4oSm9pLnN0cmluZygpLCBKb2kuZnVuY3Rpb24oKSlcbiAgfSksICdJbnZhbGlkIE9wdGlvbnMgUHJvdmlkZWQnKTtcbiAgbGV0IG5vY2tEb25lID0gbnVsbDtcbiAgbGV0IGNhc3NldHRlRmlsZVBhdGggPSBudWxsO1xuICBjb25zdCBrbm93bkNhc3NldHRlTmFtZXMgPSBbXTtcbiAgY29uc3QgcmVjb3JkcyA9IFtdO1xuICBjb25zdCBvdXRPZk9yZGVyRXJyb3JzID0gW107XG4gIGNvbnN0IGV4cGVjdGVkQ2Fzc2V0dGUgPSBbXTtcbiAgY29uc3QgcGVuZGluZ01vY2tzID0gW107XG5cbiAgY29uc3QgYW55RmxhZ1ByZXNlbnQgPSAoZmxhZ3MpID0+IHtcbiAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShmbGFncykgJiYgZmxhZ3MubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodHlwZW9mIG9wdHMuaGVhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbmVlZGxlRmxhZ3MgPSBvcHRzLmhlYWwuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gZmxhZ3Muc29tZSgoZmxhZykgPT4gbmVlZGxlRmxhZ3MuaW5jbHVkZXMoZmxhZykpO1xuICB9O1xuXG4gIHJldHVybiAoe1xuICAgIGluamVjdDogYXN5bmMgKGNhc3NldHRlRmlsZSkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lID09PSBudWxsKTtcbiAgICAgIGtub3duQ2Fzc2V0dGVOYW1lcy5wdXNoKGNhc3NldHRlRmlsZSk7XG4gICAgICByZWNvcmRzLmxlbmd0aCA9IDA7XG4gICAgICBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9IDA7XG4gICAgICBleHBlY3RlZENhc3NldHRlLmxlbmd0aCA9IDA7XG4gICAgICBwZW5kaW5nTW9ja3MubGVuZ3RoID0gMDtcblxuICAgICAgY2Fzc2V0dGVGaWxlUGF0aCA9IHBhdGguam9pbihvcHRzLmNhc3NldHRlRm9sZGVyLCBjYXNzZXR0ZUZpbGUpO1xuICAgICAgY29uc3QgaGFzQ2Fzc2V0dGUgPSBmcy5leGlzdHNTeW5jKGNhc3NldHRlRmlsZVBhdGgpO1xuICAgICAgaWYgKGhhc0Nhc3NldHRlKSB7XG4gICAgICAgIGNvbnN0IGNhc3NldHRlQ29udGVudCA9IGZzLnNtYXJ0UmVhZChjYXNzZXR0ZUZpbGVQYXRoKTtcbiAgICAgICAgcGVuZGluZ01vY2tzLnB1c2goLi4ubm9ja1xuICAgICAgICAgIC5kZWZpbmUoY2Fzc2V0dGVDb250ZW50KVxuICAgICAgICAgIC5tYXAoKGUsIGlkeCkgPT4gKHtcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIGtleTogYnVpbGRLZXkoZS5pbnRlcmNlcHRvcnNbMF0pLFxuICAgICAgICAgICAgcmVjb3JkOiBjYXNzZXR0ZUNvbnRlbnRbaWR4XVxuICAgICAgICAgIH0pKSk7XG4gICAgICB9XG5cbiAgICAgIG5vY2tCYWNrLnNldE1vZGUoaGFzQ2Fzc2V0dGUgPyAnbG9ja2Rvd24nIDogJ3JlY29yZCcpO1xuICAgICAgbm9ja0JhY2suZml4dHVyZXMgPSBvcHRzLmNhc3NldHRlRm9sZGVyO1xuICAgICAgbm9ja0xpc3RlbmVyLnN1YnNjcmliZSgnbm8gbWF0Y2gnLCAoKSA9PiB7XG4gICAgICAgIGFzc2VydChoYXNDYXNzZXR0ZSA9PT0gdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHsgcHJvdG9jb2wsIG9wdGlvbnMsIGJvZHkgfSA9IHJlcXVlc3RJbmplY3Rvci5nZXRMYXN0KCk7XG4gICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ3JlY29yZCddKSkge1xuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBub2NrUmVjb3JkZXIucmVjKHtcbiAgICAgICAgICAgICAgb3V0cHV0X29iamVjdHM6IHRydWUsXG4gICAgICAgICAgICAgIGRvbnRfcHJpbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZzogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm90b2NvbCA9IGAke3Byb3RvY29sfTpgO1xuICAgICAgICAgICAgICBjb25zdCByID0geyBodHRwLCBodHRwcyB9W3Byb3RvY29sXS5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmIChib2R5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByLndyaXRlKGJvZHkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHtcbiAgICAgICAgICAgIHNjb3BlOiBgJHtwcm90b2NvbH06Ly8ke29wdGlvbnMuaG9zdH06JHtvcHRpb25zLnBvcnR9YCxcbiAgICAgICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24oYm9keSksXG4gICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlSXNCaW5hcnk6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbm9ja0RvbmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gbm9ja0JhY2soY2Fzc2V0dGVGaWxlLCB7XG4gICAgICAgIGJlZm9yZTogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHJlY29yZHMucHVzaChjbG9uZURlZXAoc2NvcGUpKTtcbiAgICAgICAgICBhcHBseU1vZGlmaWVycyhzY29wZSwgb3B0cy5tb2RpZmllcnMpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1JlcXVlc3RCb2R5ID0gKGJvZHkpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ2JvZHknXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB0cnlQYXJzZUpzb24oYm9keSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5ib2R5ID0gcmVxdWVzdEJvZHkgPT09IG51bGwgPyAnbnVsbCcgOiByZXF1ZXN0Qm9keTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1BhdGggPSAocmVxdWVzdFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BhdGgnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnBhdGggPSByZXF1ZXN0UGF0aDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgc2NvcGUub24oJ3JlcXVlc3QnLCAocmVxLCBpbnRlcmNlcHRvciwgcmVxdWVzdEJvZHlTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKGUpID0+IGUuaWR4ID09PSBzY29wZUlkeCk7XG5cbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3Jlc3BvbnNlJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IHRyeVBhcnNlSnNvbihbXG4gICAgICAgICAgICAgICAgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2hcbiAgICAgICAgICAgICAgXS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHJlc3BCb2R5LCBmbikgPT4gZm4ocmVxdWVzdEJvZHlTdHJpbmcsIHJlc3BCb2R5LCBzY29wZSksXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5yZXNwb25zZSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZCk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIG91dE9mT3JkZXJFcnJvcnMucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ01vY2tzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlY29yZDogKHJlY29yZGluZ3MpID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ3MubWFwKChyKSA9PiAoe1xuICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgYm9keTogdHJ5UGFyc2VKc29uKHIuYm9keSksXG4gICAgICAgICAgcmF3SGVhZGVyczogb3B0cy5zdHJpcEhlYWRlcnMgPT09IHRydWUgPyB1bmRlZmluZWQgOiByLnJhd0hlYWRlcnNcbiAgICAgICAgfSkpLCBudWxsLCAyKVxuICAgICAgfSwgcmVzb2x2ZSkpO1xuICAgICAgcmVxdWVzdEluamVjdG9yLmluamVjdCgpO1xuICAgIH0sXG4gICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lICE9PSBudWxsKTtcbiAgICAgIHJlcXVlc3RJbmplY3Rvci5yZWxlYXNlKCk7XG4gICAgICBub2NrRG9uZSgpO1xuICAgICAgbm9ja0RvbmUgPSBudWxsO1xuICAgICAgbm9ja0xpc3RlbmVyLnVuc3Vic2NyaWJlQWxsKCdubyBtYXRjaCcpO1xuXG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBleHBlY3RlZENhc3NldHRlLmxlbmd0aDsgaWR4ICs9IDEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHBlY3RlZENhc3NldHRlW2lkeF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUuc3BsaWNlKGlkeCwgMSwgLi4uYXdhaXQgZXhwZWN0ZWRDYXNzZXR0ZVtpZHhdKCkpO1xuICAgICAgICAgIGlkeCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmhlYWwgIT09IGZhbHNlKSB7XG4gICAgICAgIGZzLnNtYXJ0V3JpdGUoXG4gICAgICAgICAgY2Fzc2V0dGVGaWxlUGF0aCxcbiAgICAgICAgICBhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BydW5lJ10pXG4gICAgICAgICAgICA/IGV4cGVjdGVkQ2Fzc2V0dGVcbiAgICAgICAgICAgIDogWy4uLmV4cGVjdGVkQ2Fzc2V0dGUsIC4uLnBlbmRpbmdNb2Nrcy5tYXAoKHsgcmVjb3JkIH0pID0+IHJlY29yZCldLFxuICAgICAgICAgIHsga2VlcE9yZGVyOiBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwZW5kaW5nTW9ja3MubGVuZ3RoID09PSAwIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0cmljdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXQgb2YgT3JkZXIgUmVjb3JkaW5nczogJHtvdXRPZk9yZGVyRXJyb3JzLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlbmRpbmdNb2Nrcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubWF0Y2hlZCBSZWNvcmRpbmdzOiAke3BlbmRpbmdNb2Nrcy5tYXAoKGUpID0+IGUua2V5KS5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzaHV0ZG93bjogKCkgPT4ge1xuICAgICAgY29uc3QgdW5leHBlY3RlZEZpbGVzID0gZnMud2Fsa0RpcihvcHRzLmNhc3NldHRlRm9sZGVyKS5maWx0ZXIoKGYpID0+ICFrbm93bkNhc3NldHRlTmFtZXMuaW5jbHVkZXMoZikpO1xuICAgICAgaWYgKHVuZXhwZWN0ZWRGaWxlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGZpbGUocykgaW4gY2Fzc2V0dGUgZm9sZGVyOiAke3VuZXhwZWN0ZWRGaWxlcy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiAoKSA9PiAoe1xuICAgICAgcmVjb3JkczogcmVjb3Jkcy5zbGljZSgpLFxuICAgICAgb3V0T2ZPcmRlckVycm9yczogb3V0T2ZPcmRlckVycm9ycy5zbGljZSgpLFxuICAgICAgdW5tYXRjaGVkUmVjb3JkaW5nczogcGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLnNsaWNlKCksXG4gICAgICBleHBlY3RlZENhc3NldHRlOiBleHBlY3RlZENhc3NldHRlLnNsaWNlKCksXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoXG4gICAgfSlcbiAgfSk7XG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJodHRwcyIsInBhdGgiLCJmcyIsIkpvaSIsIm5vY2siLCJjbG9uZURlZXAiLCJub2NrTGlzdGVuZXIiLCJoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCIsImFwcGx5TW9kaWZpZXJzIiwiYnVpbGRLZXkiLCJ0cnlQYXJzZUpzb24iLCJjb252ZXJ0SGVhZGVycyIsInJlcXVlc3RJbmplY3RvciIsIm5vY2tCYWNrIiwiYmFjayIsIm5vY2tSZWNvcmRlciIsInJlY29yZGVyIiwibW9kdWxlIiwiZXhwb3J0cyIsIm9wdHMiLCJvYmplY3QiLCJrZXlzIiwiY2Fzc2V0dGVGb2xkZXIiLCJzdHJpbmciLCJzdHJpcEhlYWRlcnMiLCJib29sZWFuIiwic3RyaWN0IiwiaGVhbCIsImFsdGVybmF0aXZlcyIsIm1vZGlmaWVycyIsInBhdHRlcm4iLCJmdW5jdGlvbiIsImxpbmsiLCJub2NrRG9uZSIsImNhc3NldHRlRmlsZVBhdGgiLCJrbm93bkNhc3NldHRlTmFtZXMiLCJyZWNvcmRzIiwib3V0T2ZPcmRlckVycm9ycyIsImV4cGVjdGVkQ2Fzc2V0dGUiLCJwZW5kaW5nTW9ja3MiLCJhbnlGbGFnUHJlc2VudCIsImZsYWdzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwibmVlZGxlRmxhZ3MiLCJzcGxpdCIsInNvbWUiLCJmbGFnIiwiaW5jbHVkZXMiLCJpbmplY3QiLCJjYXNzZXR0ZUZpbGUiLCJwdXNoIiwiam9pbiIsImhhc0Nhc3NldHRlIiwiZXhpc3RzU3luYyIsImNhc3NldHRlQ29udGVudCIsInNtYXJ0UmVhZCIsImRlZmluZSIsIm1hcCIsImUiLCJpZHgiLCJrZXkiLCJpbnRlcmNlcHRvcnMiLCJyZWNvcmQiLCJzZXRNb2RlIiwiZml4dHVyZXMiLCJzdWJzY3JpYmUiLCJwcm90b2NvbCIsIm9wdGlvbnMiLCJib2R5IiwiZ2V0TGFzdCIsInJlYyIsIm91dHB1dF9vYmplY3RzIiwiZG9udF9wcmludCIsImVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwiciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm9uIiwidW5kZWZpbmVkIiwid3JpdGUiLCJlbmQiLCJyZWNvcmRlZCIsInBsYXkiLCJjbGVhciIsIk9iamVjdCIsImFzc2lnbiIsImhlYWRlcnMiLCJyYXdIZWFkZXJzIiwic2NvcGUiLCJob3N0IiwicG9ydCIsIm1ldGhvZCIsInN0YXR1cyIsInJlc3BvbnNlSXNCaW5hcnkiLCJiZWZvcmUiLCJzY29wZUlkeCIsImZpbHRlcmluZ1JlcXVlc3RCb2R5IiwiZmluZEluZGV4IiwibSIsInJlcXVlc3RCb2R5IiwiZmlsdGVyaW5nUGF0aCIsInJlcXVlc3RQYXRoIiwiYWZ0ZXIiLCJyZXEiLCJpbnRlcmNlcHRvciIsInJlcXVlc3RCb2R5U3RyaW5nIiwicmVzcG9uc2VCb2R5IiwicmVkdWNlIiwicmVzcEJvZHkiLCJmbiIsInNwbGljZSIsImFmdGVyUmVjb3JkIiwicmVjb3JkaW5ncyIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWxlYXNlIiwidW5zdWJzY3JpYmVBbGwiLCJzbWFydFdyaXRlIiwia2VlcE9yZGVyIiwiRXJyb3IiLCJzaHV0ZG93biIsInVuZXhwZWN0ZWRGaWxlcyIsIndhbGtEaXIiLCJmaWx0ZXIiLCJmIiwiZ2V0Iiwic2xpY2UiLCJ1bm1hdGNoZWRSZWNvcmRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsS0FBSyxHQUFHRixPQUFPLENBQUMsTUFBRCxDQUFyQjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1JLEVBQUUsR0FBR0osT0FBTyxDQUFDLFVBQUQs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RSxDQUFOO0FBQ0Q7QUFDRixLQTlKSztBQStKTjRFLElBQUFBLEdBQUcsRUFBRSxPQUFPO0FBQ1Y3RixNQUFBQSxPQUFPLEVBQUVBLE9BQU8sQ0FBQzhGLEtBQVIsRUFEQztBQUVWN0YsTUFBQUEsZ0JBQWdCLEVBQUVBLGdCQUFnQixDQUFDNkYsS0FBakIsRUFGUjtBQUdWQyxNQUFBQSxtQkFBbUIsRUFBRTVGLFlBQVksQ0FBQ29CLEdBQWIsQ0FBa0JDLENBQUQsSUFBT0EsQ0FBQyxDQUFDRSxHQUExQixFQUErQm9FLEtBQS9CLEVBSFg7QUFJVjVGLE1BQUFBLGdCQUFnQixFQUFFQSxnQkFBZ0IsQ0FBQzRGLEtBQWpCLEVBSlI7QUFLVmhHLE1BQUFBO0FBTFUsS0FBUDtBQS9KQyxHQUFSO0FBdUtELENBbk1EIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IGNsb25lRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC5jbG9uZWRlZXAnKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9oZWFsLXNxcy1zZW5kLW1lc3NhZ2UtYmF0Y2gnKTtcbmNvbnN0IGFwcGx5TW9kaWZpZXJzID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL2FwcGx5LW1vZGlmaWVycycpO1xuY29uc3QgeyBidWlsZEtleSwgdHJ5UGFyc2VKc29uLCBjb252ZXJ0SGVhZGVycyB9ID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL3V0aWwnKTtcbmNvbnN0IHJlcXVlc3RJbmplY3RvciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9yZXF1ZXN0LWluamVjdG9yJyk7XG5cbmNvbnN0IG5vY2tCYWNrID0gbm9jay5iYWNrO1xuY29uc3Qgbm9ja1JlY29yZGVyID0gbm9jay5yZWNvcmRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0cykgPT4ge1xuICBKb2kuYXNzZXJ0KG9wdHMsIEpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBjYXNzZXR0ZUZvbGRlcjogSm9pLnN0cmluZygpLFxuICAgIHN0cmlwSGVhZGVyczogSm9pLmJvb2xlYW4oKSxcbiAgICBzdHJpY3Q6IEpvaS5ib29sZWFuKCksXG4gICAgaGVhbDogSm9pLmFsdGVybmF0aXZlcyhKb2kuYm9vbGVhbigpLCBKb2kuc3RyaW5nKCkpLFxuICAgIG1vZGlmaWVyczogSm9pLm9iamVjdCgpLnBhdHRlcm4oXG4gICAgICBKb2kuc3RyaW5nKCksXG4gICAgICBKb2kuYWx0ZXJuYXRpdmVzKEpvaS5mdW5jdGlvbigpLCBKb2kubGluaygnI21vZGlmaWVycycpKVxuICAgIClcbiAgfSksICdJbnZhbGlkIE9wdGlvbnMgUHJvdmlkZWQnKTtcbiAgbGV0IG5vY2tEb25lID0gbnVsbDtcbiAgbGV0IGNhc3NldHRlRmlsZVBhdGggPSBudWxsO1xuICBjb25zdCBrbm93bkNhc3NldHRlTmFtZXMgPSBbXTtcbiAgY29uc3QgcmVjb3JkcyA9IFtdO1xuICBjb25zdCBvdXRPZk9yZGVyRXJyb3JzID0gW107XG4gIGNvbnN0IGV4cGVjdGVkQ2Fzc2V0dGUgPSBbXTtcbiAgY29uc3QgcGVuZGluZ01vY2tzID0gW107XG5cbiAgY29uc3QgYW55RmxhZ1ByZXNlbnQgPSAoZmxhZ3MpID0+IHtcbiAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShmbGFncykgJiYgZmxhZ3MubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodHlwZW9mIG9wdHMuaGVhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbmVlZGxlRmxhZ3MgPSBvcHRzLmhlYWwuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gZmxhZ3Muc29tZSgoZmxhZykgPT4gbmVlZGxlRmxhZ3MuaW5jbHVkZXMoZmxhZykpO1xuICB9O1xuXG4gIHJldHVybiAoe1xuICAgIGluamVjdDogYXN5bmMgKGNhc3NldHRlRmlsZSkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lID09PSBudWxsKTtcbiAgICAgIGtub3duQ2Fzc2V0dGVOYW1lcy5wdXNoKGNhc3NldHRlRmlsZSk7XG4gICAgICByZWNvcmRzLmxlbmd0aCA9IDA7XG4gICAgICBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9IDA7XG4gICAgICBleHBlY3RlZENhc3NldHRlLmxlbmd0aCA9IDA7XG4gICAgICBwZW5kaW5nTW9ja3MubGVuZ3RoID0gMDtcblxuICAgICAgY2Fzc2V0dGVGaWxlUGF0aCA9IHBhdGguam9pbihvcHRzLmNhc3NldHRlRm9sZGVyLCBjYXNzZXR0ZUZpbGUpO1xuICAgICAgY29uc3QgaGFzQ2Fzc2V0dGUgPSBmcy5leGlzdHNTeW5jKGNhc3NldHRlRmlsZVBhdGgpO1xuICAgICAgaWYgKGhhc0Nhc3NldHRlKSB7XG4gICAgICAgIGNvbnN0IGNhc3NldHRlQ29udGVudCA9IGZzLnNtYXJ0UmVhZChjYXNzZXR0ZUZpbGVQYXRoKTtcbiAgICAgICAgcGVuZGluZ01vY2tzLnB1c2goLi4ubm9ja1xuICAgICAgICAgIC5kZWZpbmUoY2Fzc2V0dGVDb250ZW50KVxuICAgICAgICAgIC5tYXAoKGUsIGlkeCkgPT4gKHtcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIGtleTogYnVpbGRLZXkoZS5pbnRlcmNlcHRvcnNbMF0pLFxuICAgICAgICAgICAgcmVjb3JkOiBjYXNzZXR0ZUNvbnRlbnRbaWR4XVxuICAgICAgICAgIH0pKSk7XG4gICAgICB9XG5cbiAgICAgIG5vY2tCYWNrLnNldE1vZGUoaGFzQ2Fzc2V0dGUgPyAnbG9ja2Rvd24nIDogJ3JlY29yZCcpO1xuICAgICAgbm9ja0JhY2suZml4dHVyZXMgPSBvcHRzLmNhc3NldHRlRm9sZGVyO1xuICAgICAgbm9ja0xpc3RlbmVyLnN1YnNjcmliZSgnbm8gbWF0Y2gnLCAoKSA9PiB7XG4gICAgICAgIGFzc2VydChoYXNDYXNzZXR0ZSA9PT0gdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHsgcHJvdG9jb2wsIG9wdGlvbnMsIGJvZHkgfSA9IHJlcXVlc3RJbmplY3Rvci5nZXRMYXN0KCk7XG4gICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ3JlY29yZCddKSkge1xuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBub2NrUmVjb3JkZXIucmVjKHtcbiAgICAgICAgICAgICAgb3V0cHV0X29iamVjdHM6IHRydWUsXG4gICAgICAgICAgICAgIGRvbnRfcHJpbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZzogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm90b2NvbCA9IGAke3Byb3RvY29sfTpgO1xuICAgICAgICAgICAgICBjb25zdCByID0geyBodHRwLCBodHRwcyB9W3Byb3RvY29sXS5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmIChib2R5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByLndyaXRlKGJvZHkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHtcbiAgICAgICAgICAgIHNjb3BlOiBgJHtwcm90b2NvbH06Ly8ke29wdGlvbnMuaG9zdH06JHtvcHRpb25zLnBvcnR9YCxcbiAgICAgICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24oYm9keSksXG4gICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlSXNCaW5hcnk6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbm9ja0RvbmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gbm9ja0JhY2soY2Fzc2V0dGVGaWxlLCB7XG4gICAgICAgIGJlZm9yZTogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHJlY29yZHMucHVzaChjbG9uZURlZXAoc2NvcGUpKTtcbiAgICAgICAgICBhcHBseU1vZGlmaWVycyhzY29wZSwgb3B0cy5tb2RpZmllcnMpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1JlcXVlc3RCb2R5ID0gKGJvZHkpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ2JvZHknXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB0cnlQYXJzZUpzb24oYm9keSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5ib2R5ID0gcmVxdWVzdEJvZHkgPT09IG51bGwgPyAnbnVsbCcgOiByZXF1ZXN0Qm9keTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1BhdGggPSAocmVxdWVzdFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BhdGgnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnBhdGggPSByZXF1ZXN0UGF0aDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgc2NvcGUub24oJ3JlcXVlc3QnLCAocmVxLCBpbnRlcmNlcHRvciwgcmVxdWVzdEJvZHlTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKGUpID0+IGUuaWR4ID09PSBzY29wZUlkeCk7XG5cbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3Jlc3BvbnNlJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IHRyeVBhcnNlSnNvbihbXG4gICAgICAgICAgICAgICAgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2hcbiAgICAgICAgICAgICAgXS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHJlc3BCb2R5LCBmbikgPT4gZm4ocmVxdWVzdEJvZHlTdHJpbmcsIHJlc3BCb2R5LCBzY29wZSksXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5yZXNwb25zZSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZCk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIG91dE9mT3JkZXJFcnJvcnMucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ01vY2tzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlY29yZDogKHJlY29yZGluZ3MpID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ3MubWFwKChyKSA9PiAoe1xuICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgYm9keTogdHJ5UGFyc2VKc29uKHIuYm9keSksXG4gICAgICAgICAgcmF3SGVhZGVyczogb3B0cy5zdHJpcEhlYWRlcnMgPT09IHRydWUgPyB1bmRlZmluZWQgOiByLnJhd0hlYWRlcnNcbiAgICAgICAgfSkpLCBudWxsLCAyKVxuICAgICAgfSwgcmVzb2x2ZSkpO1xuICAgICAgcmVxdWVzdEluamVjdG9yLmluamVjdCgpO1xuICAgIH0sXG4gICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lICE9PSBudWxsKTtcbiAgICAgIHJlcXVlc3RJbmplY3Rvci5yZWxlYXNlKCk7XG4gICAgICBub2NrRG9uZSgpO1xuICAgICAgbm9ja0RvbmUgPSBudWxsO1xuICAgICAgbm9ja0xpc3RlbmVyLnVuc3Vic2NyaWJlQWxsKCdubyBtYXRjaCcpO1xuXG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBleHBlY3RlZENhc3NldHRlLmxlbmd0aDsgaWR4ICs9IDEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHBlY3RlZENhc3NldHRlW2lkeF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUuc3BsaWNlKGlkeCwgMSwgLi4uYXdhaXQgZXhwZWN0ZWRDYXNzZXR0ZVtpZHhdKCkpO1xuICAgICAgICAgIGlkeCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmhlYWwgIT09IGZhbHNlKSB7XG4gICAgICAgIGZzLnNtYXJ0V3JpdGUoXG4gICAgICAgICAgY2Fzc2V0dGVGaWxlUGF0aCxcbiAgICAgICAgICBhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BydW5lJ10pXG4gICAgICAgICAgICA/IGV4cGVjdGVkQ2Fzc2V0dGVcbiAgICAgICAgICAgIDogWy4uLmV4cGVjdGVkQ2Fzc2V0dGUsIC4uLnBlbmRpbmdNb2Nrcy5tYXAoKHsgcmVjb3JkIH0pID0+IHJlY29yZCldLFxuICAgICAgICAgIHsga2VlcE9yZGVyOiBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwZW5kaW5nTW9ja3MubGVuZ3RoID09PSAwIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0cmljdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXQgb2YgT3JkZXIgUmVjb3JkaW5nczogJHtvdXRPZk9yZGVyRXJyb3JzLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlbmRpbmdNb2Nrcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubWF0Y2hlZCBSZWNvcmRpbmdzOiAke3BlbmRpbmdNb2Nrcy5tYXAoKGUpID0+IGUua2V5KS5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzaHV0ZG93bjogKCkgPT4ge1xuICAgICAgY29uc3QgdW5leHBlY3RlZEZpbGVzID0gZnMud2Fsa0RpcihvcHRzLmNhc3NldHRlRm9sZGVyKS5maWx0ZXIoKGYpID0+ICFrbm93bkNhc3NldHRlTmFtZXMuaW5jbHVkZXMoZikpO1xuICAgICAgaWYgKHVuZXhwZWN0ZWRGaWxlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGZpbGUocykgaW4gY2Fzc2V0dGUgZm9sZGVyOiAke3VuZXhwZWN0ZWRGaWxlcy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiAoKSA9PiAoe1xuICAgICAgcmVjb3JkczogcmVjb3Jkcy5zbGljZSgpLFxuICAgICAgb3V0T2ZPcmRlckVycm9yczogb3V0T2ZPcmRlckVycm9ycy5zbGljZSgpLFxuICAgICAgdW5tYXRjaGVkUmVjb3JkaW5nczogcGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLnNsaWNlKCksXG4gICAgICBleHBlY3RlZENhc3NldHRlOiBleHBlY3RlZENhc3NldHRlLnNsaWNlKCksXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoXG4gICAgfSlcbiAgfSk7XG59O1xuIl19
{
"name": "node-tdd",
"version": "2.18.0",
"version": "2.18.1",
"description": "Drop in extension for mocha to abstract commonly used test setups",

@@ -48,4 +48,4 @@ "main": "lib/index.js",

"@blackflux/eslint-plugin-rules": "1.3.32",
"@blackflux/robo-config-plugin": "3.9.2",
"aws-sdk": "2.728.0",
"@blackflux/robo-config-plugin": "3.9.3",
"aws-sdk": "2.730.0",
"aws-sdk-wrap": "4.4.11",

@@ -117,3 +117,3 @@ "babel-eslint": "10.1.0",

"minimist": "1.2.5",
"nock": "13.0.2",
"nock": "13.0.3",
"object-scan": "13.1.2",

@@ -120,0 +120,0 @@ "smart-fs": "1.11.16",

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