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

node-tdd

Package Overview
Dependencies
Maintainers
1
Versions
167
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.12.1 to 2.13.0

18

lib/modules/request-recorder.js

@@ -83,3 +83,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; }

if (anyFlagPresent(['magic', 'record'])) {
if (anyFlagPresent(['record'])) {
if (options === undefined) {

@@ -110,2 +110,16 @@ throw new Error('Please delete empty cassette instead of using "record" option.');

});
} else if (anyFlagPresent(['stub'])) {
if (options === undefined) {
throw new Error('Please delete empty cassette instead of using "stub" option.');
}
expectedCassette.push({
scope: `${options.uri.protocol}//${options.uri.host}`,
method: options.method,
path: options.uri.path,
body: tryParseJson(body),
status: 200,
response: {},
responseIsBinary: false
});
}

@@ -220,2 +234,2 @@

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJwYXRoIiwiZnMiLCJKb2kiLCJub2NrIiwibm9ja0xpc3RlbmVyIiwiaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2giLCJidWlsZEtleSIsInRyeVBhcnNlSnNvbiIsImNvbnZlcnRIZWFkZXJzIiwibm9ja0JhY2siLCJiYWNrIiwibm9ja1JlY29yZGVyIiwicmVjb3JkZXIiLCJtb2R1bGUiLCJleHBvcnRzIiwib3B0cyIsIm9iamVjdCIsImtleXMiLCJjYXNzZXR0ZUZvbGRlciIsInN0cmluZyIsInN0cmlwSGVhZGVycyIsImJvb2xlYW4iLCJzdHJpY3QiLCJoZWFsIiwiYWx0ZXJuYXRpdmVzIiwibm9ja0RvbmUiLCJjYXNzZXR0ZUZpbGVQYXRoIiwia25vd25DYXNzZXR0ZU5hbWVzIiwicmVjb3JkcyIsIm91dE9mT3JkZXJFcnJvcnMiLCJleHBlY3RlZENhc3NldHRlIiwicGVuZGluZ01vY2tzIiwiYW55RmxhZ1ByZXNlbnQiLCJmbGFncyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm5lZWRsZUZsYWdzIiwic3BsaXQiLCJzb21lIiwiZmxhZyIsImluY2x1ZGVzIiwiaW5qZWN0IiwiY2Fzc2V0dGVGaWxlIiwicHVzaCIsImpvaW4iLCJoYXNDYXNzZXR0ZSIsImV4aXN0c1N5bmMiLCJjYXNzZXR0ZUNvbnRlbnQiLCJzbWFydFJlYWQiLCJkZWZpbmUiLCJtYXAiLCJlIiwiaWR4Iiwia2V5IiwiaW50ZXJjZXB0b3JzIiwicmVjb3JkIiwic2V0TW9kZSIsImZpeHR1cmVzIiwic3Vic2NyaWJlIiwicmVxIiwib3B0aW9ucyIsImJvZHkiLCJ1bmRlZmluZWQiLCJFcnJvciIsInJlYyIsIm91dHB1dF9vYmplY3RzIiwiZG9udF9wcmludCIsImVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwiciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm9uIiwid3JpdGUiLCJlbmQiLCJyZWNvcmRlZCIsInBsYXkiLCJjbGVhciIsIk9iamVjdCIsImFzc2lnbiIsImhlYWRlcnMiLCJyYXdIZWFkZXJzIiwiYmVmb3JlIiwic2NvcGUiLCJzY29wZUlkeCIsImZpbHRlcmluZ1JlcXVlc3RCb2R5IiwiZmluZEluZGV4IiwibSIsInJlcXVlc3RCb2R5IiwiZmlsdGVyaW5nUGF0aCIsInJlcXVlc3RQYXRoIiwiYWZ0ZXIiLCJpbnRlcmNlcHRvciIsInJlcXVlc3RCb2R5U3RyaW5nIiwicmVzcG9uc2VCb2R5IiwicmVkdWNlIiwicmVzcEJvZHkiLCJmbiIsInNwbGljZSIsImFmdGVyUmVjb3JkIiwicmVjb3JkaW5ncyIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWxlYXNlIiwidW5zdWJzY3JpYmVBbGwiLCJzbWFydFdyaXRlIiwia2VlcE9yZGVyIiwic2h1dGRvd24iLCJ1bmV4cGVjdGVkRmlsZXMiLCJ3YWxrRGlyIiwiZmlsdGVyIiwiZiIsImdldCIsInNsaWNlIiwidW5tYXRjaGVkUmVjb3JkaW5ncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUcsRUFBRSxHQUFHSCxPQUFPLENBQUMsVUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxHQUFHLEdBQUdKLE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE1BQU1LLElBQUksR0FBR0wsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTU0sWUFBWSxHQUFHTixPQUFPLENBQUMsa0NBQUQsQ0FBNUI7O0FBQ0EsTUFBTU8sdUJBQXVCLEdBQUdQLE9BQU8sQ0FBQyxnREFBRCxDQUF2Qzs7QUFDQSxNQUFNO0FBQUVRLEVBQUFBLFFB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LGdCQUFnQixDQUFDcUYsS0FBakIsRUFKUjtBQUtWekYsTUFBQUE7QUFMVSxLQUFQO0FBOUlDLEdBQVI7QUFzSkQsQ0E5S0QiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IGh0dHAgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9oZWFsLXNxcy1zZW5kLW1lc3NhZ2UtYmF0Y2gnKTtcbmNvbnN0IHsgYnVpbGRLZXksIHRyeVBhcnNlSnNvbiwgY29udmVydEhlYWRlcnMgfSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci91dGlsJyk7XG5cbmNvbnN0IG5vY2tCYWNrID0gbm9jay5iYWNrO1xuY29uc3Qgbm9ja1JlY29yZGVyID0gbm9jay5yZWNvcmRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0cykgPT4ge1xuICBKb2kuYXNzZXJ0KG9wdHMsIEpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBjYXNzZXR0ZUZvbGRlcjogSm9pLnN0cmluZygpLFxuICAgIHN0cmlwSGVhZGVyczogSm9pLmJvb2xlYW4oKSxcbiAgICBzdHJpY3Q6IEpvaS5ib29sZWFuKCksXG4gICAgaGVhbDogSm9pLmFsdGVybmF0aXZlcyhKb2kuYm9vbGVhbigpLCBKb2kuc3RyaW5nKCkpXG4gIH0pLCAnSW52YWxpZCBPcHRpb25zIFByb3ZpZGVkJyk7XG4gIGxldCBub2NrRG9uZSA9IG51bGw7XG4gIGxldCBjYXNzZXR0ZUZpbGVQYXRoID0gbnVsbDtcbiAgY29uc3Qga25vd25DYXNzZXR0ZU5hbWVzID0gW107XG4gIGNvbnN0IHJlY29yZHMgPSBbXTtcbiAgY29uc3Qgb3V0T2ZPcmRlckVycm9ycyA9IFtdO1xuICBjb25zdCBleHBlY3RlZENhc3NldHRlID0gW107XG4gIGNvbnN0IHBlbmRpbmdNb2NrcyA9IFtdO1xuXG4gIGNvbnN0IGFueUZsYWdQcmVzZW50ID0gKGZsYWdzKSA9PiB7XG4gICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZmxhZ3MpICYmIGZsYWdzLmxlbmd0aCAhPT0gMCk7XG4gICAgaWYgKHR5cGVvZiBvcHRzLmhlYWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG5lZWRsZUZsYWdzID0gb3B0cy5oZWFsLnNwbGl0KCcsJyk7XG4gICAgcmV0dXJuIGZsYWdzLnNvbWUoKGZsYWcpID0+IG5lZWRsZUZsYWdzLmluY2x1ZGVzKGZsYWcpKTtcbiAgfTtcblxuICByZXR1cm4gKHtcbiAgICBpbmplY3Q6IGFzeW5jIChjYXNzZXR0ZUZpbGUpID0+IHtcbiAgICAgIGFzc2VydChub2NrRG9uZSA9PT0gbnVsbCk7XG4gICAgICBrbm93bkNhc3NldHRlTmFtZXMucHVzaChjYXNzZXR0ZUZpbGUpO1xuICAgICAgcmVjb3Jkcy5sZW5ndGggPSAwO1xuICAgICAgb3V0T2ZPcmRlckVycm9ycy5sZW5ndGggPSAwO1xuICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5sZW5ndGggPSAwO1xuICAgICAgcGVuZGluZ01vY2tzLmxlbmd0aCA9IDA7XG5cbiAgICAgIGNhc3NldHRlRmlsZVBhdGggPSBwYXRoLmpvaW4ob3B0cy5jYXNzZXR0ZUZvbGRlciwgY2Fzc2V0dGVGaWxlKTtcbiAgICAgIGNvbnN0IGhhc0Nhc3NldHRlID0gZnMuZXhpc3RzU3luYyhjYXNzZXR0ZUZpbGVQYXRoKTtcbiAgICAgIGlmIChoYXNDYXNzZXR0ZSkge1xuICAgICAgICBjb25zdCBjYXNzZXR0ZUNvbnRlbnQgPSBmcy5zbWFydFJlYWQoY2Fzc2V0dGVGaWxlUGF0aCk7XG4gICAgICAgIHBlbmRpbmdNb2Nrcy5wdXNoKC4uLm5vY2tcbiAgICAgICAgICAuZGVmaW5lKGNhc3NldHRlQ29udGVudClcbiAgICAgICAgICAubWFwKChlLCBpZHgpID0+ICh7XG4gICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICBrZXk6IGJ1aWxkS2V5KGUuaW50ZXJjZXB0b3JzWzBdKSxcbiAgICAgICAgICAgIHJlY29yZDogY2Fzc2V0dGVDb250ZW50W2lkeF1cbiAgICAgICAgICB9KSkpO1xuICAgICAgfVxuXG4gICAgICBub2NrQmFjay5zZXRNb2RlKGhhc0Nhc3NldHRlID8gJ2xvY2tkb3duJyA6ICdyZWNvcmQnKTtcbiAgICAgIG5vY2tCYWNrLmZpeHR1cmVzID0gb3B0cy5jYXNzZXR0ZUZvbGRlcjtcbiAgICAgIG5vY2tMaXN0ZW5lci5zdWJzY3JpYmUoJ25vIG1hdGNoJywgKHJlcSwgb3B0aW9ucywgYm9keSkgPT4ge1xuICAgICAgICBhc3NlcnQoaGFzQ2Fzc2V0dGUgPT09IHRydWUpO1xuICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydtYWdpYycsICdyZWNvcmQnXSkpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBkZWxldGUgZW1wdHkgY2Fzc2V0dGUgaW5zdGVhZCBvZiB1c2luZyBcInJlY29yZFwiIG9wdGlvbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5yZWMoe1xuICAgICAgICAgICAgICBvdXRwdXRfb2JqZWN0czogdHJ1ZSxcbiAgICAgICAgICAgICAgZG9udF9wcmludDogdHJ1ZSxcbiAgICAgICAgICAgICAgZW5hYmxlX3JlcWhlYWRlcnNfcmVjb3JkaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByID0gaHR0cC5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHIud3JpdGUoYm9keSk7XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BydW5lJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKC4uLnBlbmRpbmdNb2Nrcy5tYXAoKHsgcmVjb3JkIH0pID0+IHJlY29yZCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5vY2tEb25lID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IG5vY2tCYWNrKGNhc3NldHRlRmlsZSwge1xuICAgICAgICBiZWZvcmU6IChzY29wZSwgc2NvcGVJZHgpID0+IHtcbiAgICAgICAgICByZWNvcmRzLnB1c2goeyAuLi5zY29wZSB9KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICBzY29wZS5maWx0ZXJpbmdSZXF1ZXN0Qm9keSA9IChib2R5KSA9PiB7XG4gICAgICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydtYWdpYycsICdib2R5J10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKG0pID0+IG0uaWR4ID09PSBzY29wZUlkeCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0gdHJ5UGFyc2VKc29uKGJvZHkpO1xuICAgICAgICAgICAgICBwZW5kaW5nTW9ja3NbaWR4XS5yZWNvcmQuYm9keSA9IHJlcXVlc3RCb2R5ID09PSBudWxsID8gJ251bGwnIDogcmVxdWVzdEJvZHk7XG4gICAgICAgICAgICAgIHJldHVybiBzY29wZS5ib2R5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICBzY29wZS5maWx0ZXJpbmdQYXRoID0gKHJlcXVlc3RQYXRoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydtYWdpYycsICdwYXRoJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKG0pID0+IG0uaWR4ID09PSBzY29wZUlkeCk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5wYXRoID0gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgICAgIHJldHVybiBzY29wZS5wYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RQYXRoO1xuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHNjb3BlO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlcjogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHNjb3BlLm9uKCdyZXF1ZXN0JywgKHJlcSwgaW50ZXJjZXB0b3IsIHJlcXVlc3RCb2R5U3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBwZW5kaW5nTW9ja3MuZmluZEluZGV4KChlKSA9PiBlLmlkeCA9PT0gc2NvcGVJZHgpO1xuXG4gICAgICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydtYWdpYycsICdyZXNwb25zZSddKSkge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZUJvZHkgPSB0cnlQYXJzZUpzb24oW1xuICAgICAgICAgICAgICAgIGhlYWxTcXNTZW5kTWVzc2FnZUJhdGNoXG4gICAgICAgICAgICAgIF0ucmVkdWNlKFxuICAgICAgICAgICAgICAgIChyZXNwQm9keSwgZm4pID0+IGZuKHJlcXVlc3RCb2R5U3RyaW5nLCByZXNwQm9keSwgc2NvcGUpLFxuICAgICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHlcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgICBpbnRlcmNlcHRvci5ib2R5ID0gcmVzcG9uc2VCb2R5O1xuICAgICAgICAgICAgICBwZW5kaW5nTW9ja3NbaWR4XS5yZWNvcmQucmVzcG9uc2UgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5yZWNvcmQpO1xuICAgICAgICAgICAgaWYgKGlkeCAhPT0gMCkge1xuICAgICAgICAgICAgICBvdXRPZk9yZGVyRXJyb3JzLnB1c2gocGVuZGluZ01vY2tzW2lkeF0ua2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlbmRpbmdNb2Nrcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgYWZ0ZXJSZWNvcmQ6IChyZWNvcmRpbmdzKSA9PiBKU09OLnN0cmluZ2lmeShyZWNvcmRpbmdzLm1hcCgocikgPT4gKHtcbiAgICAgICAgICAuLi5yLFxuICAgICAgICAgIGJvZHk6IHRyeVBhcnNlSnNvbihyLmJvZHkpLFxuICAgICAgICAgIHJhd0hlYWRlcnM6IG9wdHMuc3RyaXBIZWFkZXJzID09PSB0cnVlID8gdW5kZWZpbmVkIDogci5yYXdIZWFkZXJzXG4gICAgICAgIH0pKSwgbnVsbCwgMilcbiAgICAgIH0sIHJlc29sdmUpKTtcbiAgICB9LFxuICAgIHJlbGVhc2U6IGFzeW5jICgpID0+IHtcbiAgICAgIGFzc2VydChub2NrRG9uZSAhPT0gbnVsbCk7XG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBleHBlY3RlZENhc3NldHRlLmxlbmd0aDsgaWR4ICs9IDEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHBlY3RlZENhc3NldHRlW2lkeF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUuc3BsaWNlKGlkeCwgMSwgLi4uYXdhaXQgZXhwZWN0ZWRDYXNzZXR0ZVtpZHhdKCkpO1xuICAgICAgICAgIGlkeCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBub2NrRG9uZSgpO1xuICAgICAgbm9ja0RvbmUgPSBudWxsO1xuICAgICAgbm9ja0xpc3RlbmVyLnVuc3Vic2NyaWJlQWxsKCdubyBtYXRjaCcpO1xuICAgICAgaWYgKG9wdHMuaGVhbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgZnMuc21hcnRXcml0ZShjYXNzZXR0ZUZpbGVQYXRoLCBleHBlY3RlZENhc3NldHRlLCB7XG4gICAgICAgICAga2VlcE9yZGVyOiBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwZW5kaW5nTW9ja3MubGVuZ3RoID09PSAwXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMuc3RyaWN0ICE9PSBmYWxzZSkge1xuICAgICAgICBpZiAob3V0T2ZPcmRlckVycm9ycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE91dCBvZiBPcmRlciBSZWNvcmRpbmdzOiAke291dE9mT3JkZXJFcnJvcnMuam9pbignLCAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVuZGluZ01vY2tzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5tYXRjaGVkIFJlY29yZGluZ3M6ICR7cGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHNodXRkb3duOiAoKSA9PiB7XG4gICAgICBjb25zdCB1bmV4cGVjdGVkRmlsZXMgPSBmcy53YWxrRGlyKG9wdHMuY2Fzc2V0dGVGb2xkZXIpLmZpbHRlcigoZikgPT4gIWtub3duQ2Fzc2V0dGVOYW1lcy5pbmNsdWRlcyhmKSk7XG4gICAgICBpZiAodW5leHBlY3RlZEZpbGVzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZmlsZShzKSBpbiBjYXNzZXR0ZSBmb2xkZXI6ICR7dW5leHBlY3RlZEZpbGVzLmpvaW4oJywgJyl9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+ICh7XG4gICAgICByZWNvcmRzOiByZWNvcmRzLnNsaWNlKCksXG4gICAgICBvdXRPZk9yZGVyRXJyb3JzOiBvdXRPZk9yZGVyRXJyb3JzLnNsaWNlKCksXG4gICAgICB1bm1hdGNoZWRSZWNvcmRpbmdzOiBwZW5kaW5nTW9ja3MubWFwKChlKSA9PiBlLmtleSkuc2xpY2UoKSxcbiAgICAgIGV4cGVjdGVkQ2Fzc2V0dGU6IGV4cGVjdGVkQ2Fzc2V0dGUuc2xpY2UoKSxcbiAgICAgIGNhc3NldHRlRmlsZVBhdGhcbiAgICB9KVxuICB9KTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJwYXRoIiwiZnMiLCJKb2kiLCJub2NrIiwibm9ja0xpc3RlbmVyIiwiaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2giLCJidWlsZEtleSIsInRyeVBhcnNlSnNvbiIsImNvbnZlcnRIZWFkZXJzIiwibm9ja0JhY2siLCJiYWNrIiwibm9ja1JlY29yZGVyIiwicmVjb3JkZXIiLCJtb2R1bGUiLCJleHBvcnRzIiwib3B0cyIsIm9iamVjdCIsImtleXMiLCJjYXNzZXR0ZUZvbGRlciIsInN0cmluZyIsInN0cmlwSGVhZGVycyIsImJvb2xlYW4iLCJzdHJpY3QiLCJoZWFsIiwiYWx0ZXJuYXRpdmVzIiwibm9ja0RvbmUiLCJjYXNzZXR0ZUZpbGVQYXRoIiwia25vd25DYXNzZXR0ZU5hbWVzIiwicmVjb3JkcyIsIm91dE9mT3JkZXJFcnJvcnMiLCJleHBlY3RlZENhc3NldHRlIiwicGVuZGluZ01vY2tzIiwiYW55RmxhZ1ByZXNlbnQiLCJmbGFncyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm5lZWRsZUZsYWdzIiwic3BsaXQiLCJzb21lIiwiZmxhZyIsImluY2x1ZGVzIiwiaW5qZWN0IiwiY2Fzc2V0dGVGaWxlIiwicHVzaCIsImpvaW4iLCJoYXNDYXNzZXR0ZSIsImV4aXN0c1N5bmMiLCJjYXNzZXR0ZUNvbnRlbnQiLCJzbWFydFJlYWQiLCJkZWZpbmUiLCJtYXAiLCJlIiwiaWR4Iiwia2V5IiwiaW50ZXJjZXB0b3JzIiwicmVjb3JkIiwic2V0TW9kZSIsImZpeHR1cmVzIiwic3Vic2NyaWJlIiwicmVxIiwib3B0aW9ucyIsImJvZHkiLCJ1bmRlZmluZWQiLCJFcnJvciIsInJlYyIsIm91dHB1dF9vYmplY3RzIiwiZG9udF9wcmludCIsImVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwiciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm9uIiwid3JpdGUiLCJlbmQiLCJyZWNvcmRlZCIsInBsYXkiLCJjbGVhciIsIk9iamVjdCIsImFzc2lnbiIsImhlYWRlcnMiLCJyYXdIZWFkZXJzIiwic2NvcGUiLCJ1cmkiLCJwcm90b2NvbCIsImhvc3QiLCJtZXRob2QiLCJzdGF0dXMiLCJyZXNwb25zZUlzQmluYXJ5IiwiYmVmb3JlIiwic2NvcGVJZHgiLCJmaWx0ZXJpbmdSZXF1ZXN0Qm9keSIsImZpbmRJbmRleCIsIm0iLCJyZXF1ZXN0Qm9keSIsImZpbHRlcmluZ1BhdGgiLCJyZXF1ZXN0UGF0aCIsImFmdGVyIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0Qm9keVN0cmluZyIsInJlc3BvbnNlQm9keSIsInJlZHVjZSIsInJlc3BCb2R5IiwiZm4iLCJzcGxpY2UiLCJhZnRlclJlY29yZCIsInJlY29yZGluZ3MiLCJKU09OIiwic3RyaW5naWZ5IiwicmVsZWFzZSIsInVuc3Vic2NyaWJlQWxsIiwic21hcnRXcml0ZSIsImtlZXBPcmRlciIsInNodXRkb3duIiwidW5leHBlY3RlZEZpbGVzIiwid2Fsa0RpciIsImZpbHRlciIsImYiLCJnZXQiLCJzbGljZSIsInVubWF0Y2hlZFJlY29yZGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxJQUFJLEdBQUdGLE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1HLEVBQUUsR0FBR0gsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBQ0EsTUFBTUksR0FBRyxHQUFHSixPQUFPLENBQUMsWUFBRCxDQUFuQjs7QUFDQSxNQUFNSyxJQUFJLEdBQUdMLE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1NLFlBQVksR0FBR04sT0FBTyxDQUFDLGtDQUFELENBQTVCOztBQUNBLE1BQU1P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O0FBcUpOc0UsSUFBQUEsUUFBUSxFQUFFLE1BQU07QUFDZCxZQUFNQyxlQUFlLEdBQUduSCxFQUFFLENBQUNvSCxPQUFILENBQVd0RyxJQUFJLENBQUNHLGNBQWhCLEVBQWdDb0csTUFBaEMsQ0FBd0NDLENBQUQsSUFBTyxDQUFDNUYsa0JBQWtCLENBQUNjLFFBQW5CLENBQTRCOEUsQ0FBNUIsQ0FBL0MsQ0FBeEI7O0FBQ0EsVUFBSUgsZUFBZSxDQUFDaEYsTUFBaEIsS0FBMkIsQ0FBL0IsRUFBa0M7QUFDaEMsY0FBTSxJQUFJNEIsS0FBSixDQUFXLDBDQUF5Q29ELGVBQWUsQ0FBQ3ZFLElBQWhCLENBQXFCLElBQXJCLENBQTJCLEVBQS9FLENBQU47QUFDRDtBQUNGLEtBMUpLO0FBMkpOMkUsSUFBQUEsR0FBRyxFQUFFLE9BQU87QUFDVjVGLE1BQUFBLE9BQU8sRUFBRUEsT0FBTyxDQUFDNkYsS0FBUixFQURDO0FBRVY1RixNQUFBQSxnQkFBZ0IsRUFBRUEsZ0JBQWdCLENBQUM0RixLQUFqQixFQUZSO0FBR1ZDLE1BQUFBLG1CQUFtQixFQUFFM0YsWUFBWSxDQUFDb0IsR0FBYixDQUFrQkMsQ0FBRCxJQUFPQSxDQUFDLENBQUNFLEdBQTFCLEVBQStCbUUsS0FBL0IsRUFIWDtBQUlWM0YsTUFBQUEsZ0JBQWdCLEVBQUVBLGdCQUFnQixDQUFDMkYsS0FBakIsRUFKUjtBQUtWL0YsTUFBQUE7QUFMVSxLQUFQO0FBM0pDLEdBQVI7QUFtS0QsQ0EzTEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IGh0dHAgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9oZWFsLXNxcy1zZW5kLW1lc3NhZ2UtYmF0Y2gnKTtcbmNvbnN0IHsgYnVpbGRLZXksIHRyeVBhcnNlSnNvbiwgY29udmVydEhlYWRlcnMgfSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci91dGlsJyk7XG5cbmNvbnN0IG5vY2tCYWNrID0gbm9jay5iYWNrO1xuY29uc3Qgbm9ja1JlY29yZGVyID0gbm9jay5yZWNvcmRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSAob3B0cykgPT4ge1xuICBKb2kuYXNzZXJ0KG9wdHMsIEpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBjYXNzZXR0ZUZvbGRlcjogSm9pLnN0cmluZygpLFxuICAgIHN0cmlwSGVhZGVyczogSm9pLmJvb2xlYW4oKSxcbiAgICBzdHJpY3Q6IEpvaS5ib29sZWFuKCksXG4gICAgaGVhbDogSm9pLmFsdGVybmF0aXZlcyhKb2kuYm9vbGVhbigpLCBKb2kuc3RyaW5nKCkpXG4gIH0pLCAnSW52YWxpZCBPcHRpb25zIFByb3ZpZGVkJyk7XG4gIGxldCBub2NrRG9uZSA9IG51bGw7XG4gIGxldCBjYXNzZXR0ZUZpbGVQYXRoID0gbnVsbDtcbiAgY29uc3Qga25vd25DYXNzZXR0ZU5hbWVzID0gW107XG4gIGNvbnN0IHJlY29yZHMgPSBbXTtcbiAgY29uc3Qgb3V0T2ZPcmRlckVycm9ycyA9IFtdO1xuICBjb25zdCBleHBlY3RlZENhc3NldHRlID0gW107XG4gIGNvbnN0IHBlbmRpbmdNb2NrcyA9IFtdO1xuXG4gIGNvbnN0IGFueUZsYWdQcmVzZW50ID0gKGZsYWdzKSA9PiB7XG4gICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZmxhZ3MpICYmIGZsYWdzLmxlbmd0aCAhPT0gMCk7XG4gICAgaWYgKHR5cGVvZiBvcHRzLmhlYWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG5lZWRsZUZsYWdzID0gb3B0cy5oZWFsLnNwbGl0KCcsJyk7XG4gICAgcmV0dXJuIGZsYWdzLnNvbWUoKGZsYWcpID0+IG5lZWRsZUZsYWdzLmluY2x1ZGVzKGZsYWcpKTtcbiAgfTtcblxuICByZXR1cm4gKHtcbiAgICBpbmplY3Q6IGFzeW5jIChjYXNzZXR0ZUZpbGUpID0+IHtcbiAgICAgIGFzc2VydChub2NrRG9uZSA9PT0gbnVsbCk7XG4gICAgICBrbm93bkNhc3NldHRlTmFtZXMucHVzaChjYXNzZXR0ZUZpbGUpO1xuICAgICAgcmVjb3Jkcy5sZW5ndGggPSAwO1xuICAgICAgb3V0T2ZPcmRlckVycm9ycy5sZW5ndGggPSAwO1xuICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5sZW5ndGggPSAwO1xuICAgICAgcGVuZGluZ01vY2tzLmxlbmd0aCA9IDA7XG5cbiAgICAgIGNhc3NldHRlRmlsZVBhdGggPSBwYXRoLmpvaW4ob3B0cy5jYXNzZXR0ZUZvbGRlciwgY2Fzc2V0dGVGaWxlKTtcbiAgICAgIGNvbnN0IGhhc0Nhc3NldHRlID0gZnMuZXhpc3RzU3luYyhjYXNzZXR0ZUZpbGVQYXRoKTtcbiAgICAgIGlmIChoYXNDYXNzZXR0ZSkge1xuICAgICAgICBjb25zdCBjYXNzZXR0ZUNvbnRlbnQgPSBmcy5zbWFydFJlYWQoY2Fzc2V0dGVGaWxlUGF0aCk7XG4gICAgICAgIHBlbmRpbmdNb2Nrcy5wdXNoKC4uLm5vY2tcbiAgICAgICAgICAuZGVmaW5lKGNhc3NldHRlQ29udGVudClcbiAgICAgICAgICAubWFwKChlLCBpZHgpID0+ICh7XG4gICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICBrZXk6IGJ1aWxkS2V5KGUuaW50ZXJjZXB0b3JzWzBdKSxcbiAgICAgICAgICAgIHJlY29yZDogY2Fzc2V0dGVDb250ZW50W2lkeF1cbiAgICAgICAgICB9KSkpO1xuICAgICAgfVxuXG4gICAgICBub2NrQmFjay5zZXRNb2RlKGhhc0Nhc3NldHRlID8gJ2xvY2tkb3duJyA6ICdyZWNvcmQnKTtcbiAgICAgIG5vY2tCYWNrLmZpeHR1cmVzID0gb3B0cy5jYXNzZXR0ZUZvbGRlcjtcbiAgICAgIG5vY2tMaXN0ZW5lci5zdWJzY3JpYmUoJ25vIG1hdGNoJywgKHJlcSwgb3B0aW9ucywgYm9keSkgPT4ge1xuICAgICAgICBhc3NlcnQoaGFzQ2Fzc2V0dGUgPT09IHRydWUpO1xuICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydyZWNvcmQnXSkpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBkZWxldGUgZW1wdHkgY2Fzc2V0dGUgaW5zdGVhZCBvZiB1c2luZyBcInJlY29yZFwiIG9wdGlvbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5yZWMoe1xuICAgICAgICAgICAgICBvdXRwdXRfb2JqZWN0czogdHJ1ZSxcbiAgICAgICAgICAgICAgZG9udF9wcmludDogdHJ1ZSxcbiAgICAgICAgICAgICAgZW5hYmxlX3JlcWhlYWRlcnNfcmVjb3JkaW5nOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByID0gaHR0cC5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHIud3JpdGUoYm9keSk7XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgZGVsZXRlIGVtcHR5IGNhc3NldHRlIGluc3RlYWQgb2YgdXNpbmcgXCJzdHViXCIgb3B0aW9uLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBleHBlY3RlZENhc3NldHRlLnB1c2goe1xuICAgICAgICAgICAgc2NvcGU6IGAke29wdGlvbnMudXJpLnByb3RvY29sfS8vJHtvcHRpb25zLnVyaS5ob3N0fWAsXG4gICAgICAgICAgICBtZXRob2Q6IG9wdGlvbnMubWV0aG9kLFxuICAgICAgICAgICAgcGF0aDogb3B0aW9ucy51cmkucGF0aCxcbiAgICAgICAgICAgIGJvZHk6IHRyeVBhcnNlSnNvbihib2R5KSxcbiAgICAgICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICAgICAgcmVzcG9uc2U6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2VJc0JpbmFyeTogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFueUZsYWdQcmVzZW50KFsnbWFnaWMnLCAncHJ1bmUnXSkpIHtcbiAgICAgICAgICBleHBlY3RlZENhc3NldHRlLnB1c2goLi4ucGVuZGluZ01vY2tzLm1hcCgoeyByZWNvcmQgfSkgPT4gcmVjb3JkKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbm9ja0RvbmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gbm9ja0JhY2soY2Fzc2V0dGVGaWxlLCB7XG4gICAgICAgIGJlZm9yZTogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHJlY29yZHMucHVzaCh7IC4uLnNjb3BlIH0pO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1JlcXVlc3RCb2R5ID0gKGJvZHkpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ2JvZHknXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB0cnlQYXJzZUpzb24oYm9keSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5ib2R5ID0gcmVxdWVzdEJvZHkgPT09IG51bGwgPyAnbnVsbCcgOiByZXF1ZXN0Qm9keTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1BhdGggPSAocmVxdWVzdFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BhdGgnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnBhdGggPSByZXF1ZXN0UGF0aDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgc2NvcGUub24oJ3JlcXVlc3QnLCAocmVxLCBpbnRlcmNlcHRvciwgcmVxdWVzdEJvZHlTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKGUpID0+IGUuaWR4ID09PSBzY29wZUlkeCk7XG5cbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3Jlc3BvbnNlJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IHRyeVBhcnNlSnNvbihbXG4gICAgICAgICAgICAgICAgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2hcbiAgICAgICAgICAgICAgXS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHJlc3BCb2R5LCBmbikgPT4gZm4ocmVxdWVzdEJvZHlTdHJpbmcsIHJlc3BCb2R5LCBzY29wZSksXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5yZXNwb25zZSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZCk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIG91dE9mT3JkZXJFcnJvcnMucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ01vY2tzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlY29yZDogKHJlY29yZGluZ3MpID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ3MubWFwKChyKSA9PiAoe1xuICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgYm9keTogdHJ5UGFyc2VKc29uKHIuYm9keSksXG4gICAgICAgICAgcmF3SGVhZGVyczogb3B0cy5zdHJpcEhlYWRlcnMgPT09IHRydWUgPyB1bmRlZmluZWQgOiByLnJhd0hlYWRlcnNcbiAgICAgICAgfSkpLCBudWxsLCAyKVxuICAgICAgfSwgcmVzb2x2ZSkpO1xuICAgIH0sXG4gICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lICE9PSBudWxsKTtcbiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGV4cGVjdGVkQ2Fzc2V0dGUubGVuZ3RoOyBpZHggKz0gMSkge1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkQ2Fzc2V0dGVbaWR4XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5zcGxpY2UoaWR4LCAxLCAuLi5hd2FpdCBleHBlY3RlZENhc3NldHRlW2lkeF0oKSk7XG4gICAgICAgICAgaWR4IC09IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5vY2tEb25lKCk7XG4gICAgICBub2NrRG9uZSA9IG51bGw7XG4gICAgICBub2NrTGlzdGVuZXIudW5zdWJzY3JpYmVBbGwoJ25vIG1hdGNoJyk7XG4gICAgICBpZiAob3B0cy5oZWFsICE9PSBmYWxzZSkge1xuICAgICAgICBmcy5zbWFydFdyaXRlKGNhc3NldHRlRmlsZVBhdGgsIGV4cGVjdGVkQ2Fzc2V0dGUsIHtcbiAgICAgICAgICBrZWVwT3JkZXI6IG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoID09PSAwICYmIHBlbmRpbmdNb2Nrcy5sZW5ndGggPT09IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5zdHJpY3QgIT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0IG9mIE9yZGVyIFJlY29yZGluZ3M6ICR7b3V0T2ZPcmRlckVycm9ycy5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZW5kaW5nTW9ja3MubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbm1hdGNoZWQgUmVjb3JkaW5nczogJHtwZW5kaW5nTW9ja3MubWFwKChlKSA9PiBlLmtleSkuam9pbignLCAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgc2h1dGRvd246ICgpID0+IHtcbiAgICAgIGNvbnN0IHVuZXhwZWN0ZWRGaWxlcyA9IGZzLndhbGtEaXIob3B0cy5jYXNzZXR0ZUZvbGRlcikuZmlsdGVyKChmKSA9PiAha25vd25DYXNzZXR0ZU5hbWVzLmluY2x1ZGVzKGYpKTtcbiAgICAgIGlmICh1bmV4cGVjdGVkRmlsZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBmaWxlKHMpIGluIGNhc3NldHRlIGZvbGRlcjogJHt1bmV4cGVjdGVkRmlsZXMuam9pbignLCAnKX1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldDogKCkgPT4gKHtcbiAgICAgIHJlY29yZHM6IHJlY29yZHMuc2xpY2UoKSxcbiAgICAgIG91dE9mT3JkZXJFcnJvcnM6IG91dE9mT3JkZXJFcnJvcnMuc2xpY2UoKSxcbiAgICAgIHVubWF0Y2hlZFJlY29yZGluZ3M6IHBlbmRpbmdNb2Nrcy5tYXAoKGUpID0+IGUua2V5KS5zbGljZSgpLFxuICAgICAgZXhwZWN0ZWRDYXNzZXR0ZTogZXhwZWN0ZWRDYXNzZXR0ZS5zbGljZSgpLFxuICAgICAgY2Fzc2V0dGVGaWxlUGF0aFxuICAgIH0pXG4gIH0pO1xufTtcbiJdfQ==

18

package.json
{
"name": "node-tdd",
"version": "2.12.1",
"version": "2.13.0",
"description": "Drop in extension for mocha to abstract commonly used test setups",

@@ -43,14 +43,14 @@ "main": "lib/index.js",

"devDependencies": {
"@babel/cli": "7.10.1",
"@babel/core": "7.10.2",
"@babel/cli": "7.10.3",
"@babel/core": "7.10.3",
"@babel/plugin-proposal-object-rest-spread": "7.10.3",
"@babel/register": "7.10.3",
"@blackflux/eslint-plugin-rules": "1.3.30",
"@blackflux/robo-config-plugin": "3.4.12",
"aws-sdk": "2.701.0",
"aws-sdk-wrap": "4.4.7",
"@blackflux/robo-config-plugin": "3.4.13",
"aws-sdk": "2.703.0",
"aws-sdk-wrap": "4.4.8",
"babel-eslint": "10.1.0",
"chai": "4.2.0",
"coveralls": "3.1.0",
"eslint": "7.2.0",
"eslint": "7.3.1",
"eslint-config-airbnb-base": "14.2.0",

@@ -67,3 +67,3 @@ "eslint-plugin-import": "2.21.2",

"request-promise": "4.2.5",
"semantic-release": "17.0.8"
"semantic-release": "17.1.0"
},

@@ -121,5 +121,5 @@ "licenses": [

"tmp": "0.2.1",
"uuid": "8.1.0",
"uuid": "8.2.0",
"xml2js": "0.4.23"
}
}

@@ -87,3 +87,4 @@ # node-tdd

- `--nock-heal record`: Will record the next unmatched request
- `--nock-heal magic`: Shorthand for `prune,body,path,response,record`
- `--nock-heal stub`: Will stub the next unmatched request
- `--nock-heal magic`: Shorthand for `prune,body,path,response`

@@ -90,0 +91,0 @@ Notes:

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