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.14.0 to 2.15.0

26

lib/modules/request-recorder.js

@@ -11,2 +11,4 @@ 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; }

const https = require('http');
const path = require('path');

@@ -85,3 +87,7 @@

assert(hasCassette === true);
const options = requestInjector.getLastOptions();
const {
protocol,
options,
body
} = requestInjector.getLast();

@@ -96,3 +102,7 @@ if (anyFlagPresent(['record'])) {

await new Promise(resolve => {
const r = http.request(options, response => {
options.protocol = `${protocol}:`;
const r = {
http,
https
}[protocol].request(options, response => {
response.on('data', () => {});

@@ -102,4 +112,4 @@ response.on('end', resolve);

if (options.body !== undefined) {
r.write(options.body);
if (body !== undefined) {
r.write(body);
}

@@ -118,6 +128,6 @@

expectedCassette.push({
scope: `${options.uri.protocol}//${options.uri.host}`,
scope: `${protocol}://${options.host}:${options.port}`,
method: options.method,
path: options.uri.path,
body: tryParseJson(options.body),
path: options.path,
body: tryParseJson(body),
status: 200,

@@ -233,2 +243,2 @@ response: {},

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJwYXRoIiwiZnMiLCJKb2kiLCJub2NrIiwibm9ja0xpc3RlbmVyIiwiaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2giLCJidWlsZEtleSIsInRyeVBhcnNlSnNvbiIsImNvbnZlcnRIZWFkZXJzIiwicmVxdWVzdEluamVjdG9yIiwibm9ja0JhY2siLCJiYWNrIiwibm9ja1JlY29yZGVyIiwicmVjb3JkZXIiLCJtb2R1bGUiLCJleHBvcnRzIiwib3B0cyIsIm9iamVjdCIsImtleXMiLCJjYXNzZXR0ZUZvbGRlciIsInN0cmluZyIsInN0cmlwSGVhZGVycyIsImJvb2xlYW4iLCJzdHJpY3QiLCJoZWFsIiwiYWx0ZXJuYXRpdmVzIiwibm9ja0RvbmUiLCJjYXNzZXR0ZUZpbGVQYXRoIiwia25vd25DYXNzZXR0ZU5hbWVzIiwicmVjb3JkcyIsIm91dE9mT3JkZXJFcnJvcnMiLCJleHBlY3RlZENhc3NldHRlIiwicGVuZGluZ01vY2tzIiwiYW55RmxhZ1ByZXNlbnQiLCJmbGFncyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm5lZWRsZUZsYWdzIiwic3BsaXQiLCJzb21lIiwiZmxhZyIsImluY2x1ZGVzIiwiaW5qZWN0IiwiY2Fzc2V0dGVGaWxlIiwicHVzaCIsImpvaW4iLCJoYXNDYXNzZXR0ZSIsImV4aXN0c1N5bmMiLCJjYXNzZXR0ZUNvbnRlbnQiLCJzbWFydFJlYWQiLCJkZWZpbmUiLCJtYXAiLCJlIiwiaWR4Iiwia2V5IiwiaW50ZXJjZXB0b3JzIiwicmVjb3JkIiwic2V0TW9kZSIsImZpeHR1cmVzIiwic3Vic2NyaWJlIiwib3B0aW9ucyIsImdldExhc3RPcHRpb25zIiwicmVjIiwib3V0cHV0X29iamVjdHMiLCJkb250X3ByaW50IiwiZW5hYmxlX3JlcWhlYWRlcnNfcmVjb3JkaW5nIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyIiwicmVxdWVzdCIsInJlc3BvbnNlIiwib24iLCJib2R5IiwidW5kZWZpbmVkIiwid3JpdGUiLCJlbmQiLCJyZWNvcmRlZCIsInBsYXkiLCJjbGVhciIsIk9iamVjdCIsImFzc2lnbiIsImhlYWRlcnMiLCJyYXdIZWFkZXJzIiwic2NvcGUiLCJ1cmkiLCJwcm90b2NvbCIsImhvc3QiLCJtZXRob2QiLCJzdGF0dXMiLCJyZXNwb25zZUlzQmluYXJ5IiwiYmVmb3JlIiwic2NvcGVJZHgiLCJmaWx0ZXJpbmdSZXF1ZXN0Qm9keSIsImZpbmRJbmRleCIsIm0iLCJyZXF1ZXN0Qm9keSIsImZpbHRlcmluZ1BhdGgiLCJyZXF1ZXN0UGF0aCIsImFmdGVyIiwicmVxIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0Qm9keVN0cmluZyIsInJlc3BvbnNlQm9keSIsInJlZHVjZSIsInJlc3BCb2R5IiwiZm4iLCJzcGxpY2UiLCJhZnRlclJlY29yZCIsInJlY29yZGluZ3MiLCJKU09OIiwic3RyaW5naWZ5IiwicmVsZWFzZSIsInVuc3Vic2NyaWJlQWxsIiwic21hcnRXcml0ZSIsImtlZXBPcmRlciIsIkVycm9yIiwic2h1dGRvd24iLCJ1bmV4cGVjdGVkRmlsZXMiLCJ3YWxrRGlyIiwiZmlsdGVyIiwiZiIsImdldCIsInNsaWNlIiwidW5tYXRjaGVkUmVjb3JkaW5ncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUcsRUFBRSxHQUFHSCxPQUFPLENBQUMsVUFBRCxDQUFsQjs7QUFDQSxNQUFNSSxHQUFHLEdBQUdKLE9BQU8sQ0FBQyxZQUFELENBQW5COztBQUNBLE1BQU1LLElBQUksR0FBR0wsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTU0sWUFBWSxHQUFH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MEMsRUFBN0UsQ0FBTjtBQUNEO0FBQ0Y7QUFDRixLQXRKSztBQXVKTnVFLElBQUFBLFFBQVEsRUFBRSxNQUFNO0FBQ2QsWUFBTUMsZUFBZSxHQUFHckgsRUFBRSxDQUFDc0gsT0FBSCxDQUFXdkcsSUFBSSxDQUFDRyxjQUFoQixFQUFnQ3FHLE1BQWhDLENBQXdDQyxDQUFELElBQU8sQ0FBQzdGLGtCQUFrQixDQUFDYyxRQUFuQixDQUE0QitFLENBQTVCLENBQS9DLENBQXhCOztBQUNBLFVBQUlILGVBQWUsQ0FBQ2pGLE1BQWhCLEtBQTJCLENBQS9CLEVBQWtDO0FBQ2hDLGNBQU0sSUFBSStFLEtBQUosQ0FBVywwQ0FBeUNFLGVBQWUsQ0FBQ3hFLElBQWhCLENBQXFCLElBQXJCLENBQTJCLEVBQS9FLENBQU47QUFDRDtBQUNGLEtBNUpLO0FBNkpONEUsSUFBQUEsR0FBRyxFQUFFLE9BQU87QUFDVjdGLE1BQUFBLE9BQU8sRUFBRUEsT0FBTyxDQUFDOEYsS0FBUixFQURDO0FBRVY3RixNQUFBQSxnQkFBZ0IsRUFBRUEsZ0JBQWdCLENBQUM2RixLQUFqQixFQUZSO0FBR1ZDLE1BQUFBLG1CQUFtQixFQUFFNUYsWUFBWSxDQUFDb0IsR0FBYixDQUFrQkMsQ0FBRCxJQUFPQSxDQUFDLENBQUNFLEdBQTFCLEVBQStCb0UsS0FBL0IsRUFIWDtBQUlWNUYsTUFBQUEsZ0JBQWdCLEVBQUVBLGdCQUFnQixDQUFDNEYsS0FBakIsRUFKUjtBQUtWaEcsTUFBQUE7QUFMVSxLQUFQO0FBN0pDLEdBQVI7QUFxS0QsQ0E3TEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IGh0dHAgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9oZWFsLXNxcy1zZW5kLW1lc3NhZ2UtYmF0Y2gnKTtcbmNvbnN0IHsgYnVpbGRLZXksIHRyeVBhcnNlSnNvbiwgY29udmVydEhlYWRlcnMgfSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci91dGlsJyk7XG5jb25zdCByZXF1ZXN0SW5qZWN0b3IgPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvcmVxdWVzdC1pbmplY3RvcicpO1xuXG5jb25zdCBub2NrQmFjayA9IG5vY2suYmFjaztcbmNvbnN0IG5vY2tSZWNvcmRlciA9IG5vY2sucmVjb3JkZXI7XG5cbm1vZHVsZS5leHBvcnRzID0gKG9wdHMpID0+IHtcbiAgSm9pLmFzc2VydChvcHRzLCBKb2kub2JqZWN0KCkua2V5cyh7XG4gICAgY2Fzc2V0dGVGb2xkZXI6IEpvaS5zdHJpbmcoKSxcbiAgICBzdHJpcEhlYWRlcnM6IEpvaS5ib29sZWFuKCksXG4gICAgc3RyaWN0OiBKb2kuYm9vbGVhbigpLFxuICAgIGhlYWw6IEpvaS5hbHRlcm5hdGl2ZXMoSm9pLmJvb2xlYW4oKSwgSm9pLnN0cmluZygpKVxuICB9KSwgJ0ludmFsaWQgT3B0aW9ucyBQcm92aWRlZCcpO1xuICBsZXQgbm9ja0RvbmUgPSBudWxsO1xuICBsZXQgY2Fzc2V0dGVGaWxlUGF0aCA9IG51bGw7XG4gIGNvbnN0IGtub3duQ2Fzc2V0dGVOYW1lcyA9IFtdO1xuICBjb25zdCByZWNvcmRzID0gW107XG4gIGNvbnN0IG91dE9mT3JkZXJFcnJvcnMgPSBbXTtcbiAgY29uc3QgZXhwZWN0ZWRDYXNzZXR0ZSA9IFtdO1xuICBjb25zdCBwZW5kaW5nTW9ja3MgPSBbXTtcblxuICBjb25zdCBhbnlGbGFnUHJlc2VudCA9IChmbGFncykgPT4ge1xuICAgIGFzc2VydChBcnJheS5pc0FycmF5KGZsYWdzKSAmJiBmbGFncy5sZW5ndGggIT09IDApO1xuICAgIGlmICh0eXBlb2Ygb3B0cy5oZWFsICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBuZWVkbGVGbGFncyA9IG9wdHMuaGVhbC5zcGxpdCgnLCcpO1xuICAgIHJldHVybiBmbGFncy5zb21lKChmbGFnKSA9PiBuZWVkbGVGbGFncy5pbmNsdWRlcyhmbGFnKSk7XG4gIH07XG5cbiAgcmV0dXJuICh7XG4gICAgaW5qZWN0OiBhc3luYyAoY2Fzc2V0dGVGaWxlKSA9PiB7XG4gICAgICBhc3NlcnQobm9ja0RvbmUgPT09IG51bGwpO1xuICAgICAga25vd25DYXNzZXR0ZU5hbWVzLnB1c2goY2Fzc2V0dGVGaWxlKTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoID0gMDtcbiAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUubGVuZ3RoID0gMDtcbiAgICAgIHBlbmRpbmdNb2Nrcy5sZW5ndGggPSAwO1xuXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoID0gcGF0aC5qb2luKG9wdHMuY2Fzc2V0dGVGb2xkZXIsIGNhc3NldHRlRmlsZSk7XG4gICAgICBjb25zdCBoYXNDYXNzZXR0ZSA9IGZzLmV4aXN0c1N5bmMoY2Fzc2V0dGVGaWxlUGF0aCk7XG4gICAgICBpZiAoaGFzQ2Fzc2V0dGUpIHtcbiAgICAgICAgY29uc3QgY2Fzc2V0dGVDb250ZW50ID0gZnMuc21hcnRSZWFkKGNhc3NldHRlRmlsZVBhdGgpO1xuICAgICAgICBwZW5kaW5nTW9ja3MucHVzaCguLi5ub2NrXG4gICAgICAgICAgLmRlZmluZShjYXNzZXR0ZUNvbnRlbnQpXG4gICAgICAgICAgLm1hcCgoZSwgaWR4KSA9PiAoe1xuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAga2V5OiBidWlsZEtleShlLmludGVyY2VwdG9yc1swXSksXG4gICAgICAgICAgICByZWNvcmQ6IGNhc3NldHRlQ29udGVudFtpZHhdXG4gICAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgbm9ja0JhY2suc2V0TW9kZShoYXNDYXNzZXR0ZSA/ICdsb2NrZG93bicgOiAncmVjb3JkJyk7XG4gICAgICBub2NrQmFjay5maXh0dXJlcyA9IG9wdHMuY2Fzc2V0dGVGb2xkZXI7XG4gICAgICBub2NrTGlzdGVuZXIuc3Vic2NyaWJlKCdubyBtYXRjaCcsICgpID0+IHtcbiAgICAgICAgYXNzZXJ0KGhhc0Nhc3NldHRlID09PSB0cnVlKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHJlcXVlc3RJbmplY3Rvci5nZXRMYXN0T3B0aW9ucygpO1xuICAgICAgICBpZiAoYW55RmxhZ1ByZXNlbnQoWydyZWNvcmQnXSkpIHtcbiAgICAgICAgICBleHBlY3RlZENhc3NldHRlLnB1c2goYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgbm9ja1JlY29yZGVyLnJlYyh7XG4gICAgICAgICAgICAgIG91dHB1dF9vYmplY3RzOiB0cnVlLFxuICAgICAgICAgICAgICBkb250X3ByaW50OiB0cnVlLFxuICAgICAgICAgICAgICBlbmFibGVfcmVxaGVhZGVyc19yZWNvcmRpbmc6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHIgPSBodHRwLnJlcXVlc3Qob3B0aW9ucywgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2RhdGEnLCAoKSA9PiB7fSk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uub24oJ2VuZCcsIHJlc29sdmUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuYm9keSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgci53cml0ZShvcHRpb25zLmJvZHkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHtcbiAgICAgICAgICAgIHNjb3BlOiBgJHtvcHRpb25zLnVyaS5wcm90b2NvbH0vLyR7b3B0aW9ucy51cmkuaG9zdH1gLFxuICAgICAgICAgICAgbWV0aG9kOiBvcHRpb25zLm1ldGhvZCxcbiAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMudXJpLnBhdGgsXG4gICAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24ob3B0aW9ucy5ib2R5KSxcbiAgICAgICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICAgICAgcmVzcG9uc2U6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2VJc0JpbmFyeTogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBub2NrRG9uZSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBub2NrQmFjayhjYXNzZXR0ZUZpbGUsIHtcbiAgICAgICAgYmVmb3JlOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgcmVjb3Jkcy5wdXNoKHsgLi4uc2NvcGUgfSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgc2NvcGUuZmlsdGVyaW5nUmVxdWVzdEJvZHkgPSAoYm9keSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFueUZsYWdQcmVzZW50KFsnbWFnaWMnLCAnYm9keSddKSkge1xuICAgICAgICAgICAgICBjb25zdCBpZHggPSBwZW5kaW5nTW9ja3MuZmluZEluZGV4KChtKSA9PiBtLmlkeCA9PT0gc2NvcGVJZHgpO1xuICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IHRyeVBhcnNlSnNvbihib2R5KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLmJvZHkgPSByZXF1ZXN0Qm9keSA9PT0gbnVsbCA/ICdudWxsJyA6IHJlcXVlc3RCb2R5O1xuICAgICAgICAgICAgICByZXR1cm4gc2NvcGUuYm9keTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBib2R5O1xuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgc2NvcGUuZmlsdGVyaW5nUGF0aCA9IChyZXF1ZXN0UGF0aCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFueUZsYWdQcmVzZW50KFsnbWFnaWMnLCAncGF0aCddKSkge1xuICAgICAgICAgICAgICBjb25zdCBpZHggPSBwZW5kaW5nTW9ja3MuZmluZEluZGV4KChtKSA9PiBtLmlkeCA9PT0gc2NvcGVJZHgpO1xuICAgICAgICAgICAgICBwZW5kaW5nTW9ja3NbaWR4XS5yZWNvcmQucGF0aCA9IHJlcXVlc3RQYXRoO1xuICAgICAgICAgICAgICByZXR1cm4gc2NvcGUucGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UGF0aDtcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBzY29wZTtcbiAgICAgICAgfSxcbiAgICAgICAgYWZ0ZXI6IChzY29wZSwgc2NvcGVJZHgpID0+IHtcbiAgICAgICAgICBzY29wZS5vbigncmVxdWVzdCcsIChyZXEsIGludGVyY2VwdG9yLCByZXF1ZXN0Qm9keVN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgoZSkgPT4gZS5pZHggPT09IHNjb3BlSWR4KTtcblxuICAgICAgICAgICAgaWYgKGFueUZsYWdQcmVzZW50KFsnbWFnaWMnLCAncmVzcG9uc2UnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VCb2R5ID0gdHJ5UGFyc2VKc29uKFtcbiAgICAgICAgICAgICAgICBoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaFxuICAgICAgICAgICAgICBdLnJlZHVjZShcbiAgICAgICAgICAgICAgICAocmVzcEJvZHksIGZuKSA9PiBmbihyZXF1ZXN0Qm9keVN0cmluZywgcmVzcEJvZHksIHNjb3BlKSxcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRvci5ib2R5XG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnJlc3BvbnNlID0gcmVzcG9uc2VCb2R5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHBlY3RlZENhc3NldHRlLnB1c2gocGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkKTtcbiAgICAgICAgICAgIGlmIChpZHggIT09IDApIHtcbiAgICAgICAgICAgICAgb3V0T2ZPcmRlckVycm9ycy5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZW5kaW5nTW9ja3Muc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyUmVjb3JkOiAocmVjb3JkaW5ncykgPT4gSlNPTi5zdHJpbmdpZnkocmVjb3JkaW5ncy5tYXAoKHIpID0+ICh7XG4gICAgICAgICAgLi4ucixcbiAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24oci5ib2R5KSxcbiAgICAgICAgICByYXdIZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IHIucmF3SGVhZGVyc1xuICAgICAgICB9KSksIG51bGwsIDIpXG4gICAgICB9LCByZXNvbHZlKSk7XG4gICAgICByZXF1ZXN0SW5qZWN0b3IuaW5qZWN0KCk7XG4gICAgfSxcbiAgICByZWxlYXNlOiBhc3luYyAoKSA9PiB7XG4gICAgICBhc3NlcnQobm9ja0RvbmUgIT09IG51bGwpO1xuICAgICAgcmVxdWVzdEluamVjdG9yLnJlbGVhc2UoKTtcbiAgICAgIG5vY2tEb25lKCk7XG4gICAgICBub2NrRG9uZSA9IG51bGw7XG4gICAgICBub2NrTGlzdGVuZXIudW5zdWJzY3JpYmVBbGwoJ25vIG1hdGNoJyk7XG5cbiAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGV4cGVjdGVkQ2Fzc2V0dGUubGVuZ3RoOyBpZHggKz0gMSkge1xuICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkQ2Fzc2V0dGVbaWR4XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5zcGxpY2UoaWR4LCAxLCAuLi5hd2FpdCBleHBlY3RlZENhc3NldHRlW2lkeF0oKSk7XG4gICAgICAgICAgaWR4IC09IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdHMuaGVhbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgZnMuc21hcnRXcml0ZShcbiAgICAgICAgICBjYXNzZXR0ZUZpbGVQYXRoLFxuICAgICAgICAgIGFueUZsYWdQcmVzZW50KFsnbWFnaWMnLCAncHJ1bmUnXSlcbiAgICAgICAgICAgID8gZXhwZWN0ZWRDYXNzZXR0ZVxuICAgICAgICAgICAgOiBbLi4uZXhwZWN0ZWRDYXNzZXR0ZSwgLi4ucGVuZGluZ01vY2tzLm1hcCgoeyByZWNvcmQgfSkgPT4gcmVjb3JkKV0sXG4gICAgICAgICAgeyBrZWVwT3JkZXI6IG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoID09PSAwICYmIHBlbmRpbmdNb2Nrcy5sZW5ndGggPT09IDAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMuc3RyaWN0ICE9PSBmYWxzZSkge1xuICAgICAgICBpZiAob3V0T2ZPcmRlckVycm9ycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE91dCBvZiBPcmRlciBSZWNvcmRpbmdzOiAke291dE9mT3JkZXJFcnJvcnMuam9pbignLCAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGVuZGluZ01vY2tzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5tYXRjaGVkIFJlY29yZGluZ3M6ICR7cGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHNodXRkb3duOiAoKSA9PiB7XG4gICAgICBjb25zdCB1bmV4cGVjdGVkRmlsZXMgPSBmcy53YWxrRGlyKG9wdHMuY2Fzc2V0dGVGb2xkZXIpLmZpbHRlcigoZikgPT4gIWtub3duQ2Fzc2V0dGVOYW1lcy5pbmNsdWRlcyhmKSk7XG4gICAgICBpZiAodW5leHBlY3RlZEZpbGVzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgZmlsZShzKSBpbiBjYXNzZXR0ZSBmb2xkZXI6ICR7dW5leHBlY3RlZEZpbGVzLmpvaW4oJywgJyl9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+ICh7XG4gICAgICByZWNvcmRzOiByZWNvcmRzLnNsaWNlKCksXG4gICAgICBvdXRPZk9yZGVyRXJyb3JzOiBvdXRPZk9yZGVyRXJyb3JzLnNsaWNlKCksXG4gICAgICB1bm1hdGNoZWRSZWNvcmRpbmdzOiBwZW5kaW5nTW9ja3MubWFwKChlKSA9PiBlLmtleSkuc2xpY2UoKSxcbiAgICAgIGV4cGVjdGVkQ2Fzc2V0dGU6IGV4cGVjdGVkQ2Fzc2V0dGUuc2xpY2UoKSxcbiAgICAgIGNhc3NldHRlRmlsZVBhdGhcbiAgICB9KVxuICB9KTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJodHRwcyIsInBhdGgiLCJmcyIsIkpvaSIsIm5vY2siLCJub2NrTGlzdGVuZXIiLCJoZWFsU3FzU2VuZE1lc3NhZ2VCYXRjaCIsImJ1aWxkS2V5IiwidHJ5UGFyc2VKc29uIiwiY29udmVydEhlYWRlcnMiLCJyZXF1ZXN0SW5qZWN0b3IiLCJub2NrQmFjayIsImJhY2siLCJub2NrUmVjb3JkZXIiLCJyZWNvcmRlciIsIm1vZHVsZSIsImV4cG9ydHMiLCJvcHRzIiwib2JqZWN0Iiwia2V5cyIsImNhc3NldHRlRm9sZGVyIiwic3RyaW5nIiwic3RyaXBIZWFkZXJzIiwiYm9vbGVhbiIsInN0cmljdCIsImhlYWwiLCJhbHRlcm5hdGl2ZXMiLCJub2NrRG9uZSIsImNhc3NldHRlRmlsZVBhdGgiLCJrbm93bkNhc3NldHRlTmFtZXMiLCJyZWNvcmRzIiwib3V0T2ZPcmRlckVycm9ycyIsImV4cGVjdGVkQ2Fzc2V0dGUiLCJwZW5kaW5nTW9ja3MiLCJhbnlGbGFnUHJlc2VudCIsImZsYWdzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwibmVlZGxlRmxhZ3MiLCJzcGxpdCIsInNvbWUiLCJmbGFnIiwiaW5jbHVkZXMiLCJpbmplY3QiLCJjYXNzZXR0ZUZpbGUiLCJwdXNoIiwiam9pbiIsImhhc0Nhc3NldHRlIiwiZXhpc3RzU3luYyIsImNhc3NldHRlQ29udGVudCIsInNtYXJ0UmVhZCIsImRlZmluZSIsIm1hcCIsImUiLCJpZHgiLCJrZXkiLCJpbnRlcmNlcHRvcnMiLCJyZWNvcmQiLCJzZXRNb2RlIiwiZml4dHVyZXMiLCJzdWJzY3JpYmUiLCJwcm90b2NvbCIsIm9wdGlvbnMiLCJib2R5IiwiZ2V0TGFzdCIsInJlYyIsIm91dHB1dF9vYmplY3RzIiwiZG9udF9wcmludCIsImVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwiciIsInJlcXVlc3QiLCJyZXNwb25zZSIsIm9uIiwidW5kZWZpbmVkIiwid3JpdGUiLCJlbmQiLCJyZWNvcmRlZCIsInBsYXkiLCJjbGVhciIsIk9iamVjdCIsImFzc2lnbiIsImhlYWRlcnMiLCJyYXdIZWFkZXJzIiwic2NvcGUiLCJob3N0IiwicG9ydCIsIm1ldGhvZCIsInN0YXR1cyIsInJlc3BvbnNlSXNCaW5hcnkiLCJiZWZvcmUiLCJzY29wZUlkeCIsImZpbHRlcmluZ1JlcXVlc3RCb2R5IiwiZmluZEluZGV4IiwibSIsInJlcXVlc3RCb2R5IiwiZmlsdGVyaW5nUGF0aCIsInJlcXVlc3RQYXRoIiwiYWZ0ZXIiLCJyZXEiLCJpbnRlcmNlcHRvciIsInJlcXVlc3RCb2R5U3RyaW5nIiwicmVzcG9uc2VCb2R5IiwicmVkdWNlIiwicmVzcEJvZHkiLCJmbiIsInNwbGljZSIsImFmdGVyUmVjb3JkIiwicmVjb3JkaW5ncyIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWxlYXNlIiwidW5zdWJzY3JpYmVBbGwiLCJzbWFydFdyaXRlIiwia2VlcE9yZGVyIiwiRXJyb3IiLCJzaHV0ZG93biIsInVuZXhwZWN0ZWRGaWxlcyIsIndhbGtEaXIiLCJmaWx0ZXIiLCJmIiwiZ2V0Iiwic2xpY2UiLCJ1bm1hdGNoZWRSZWNvcmRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsS0FBSyxHQUFHRixPQUFPLENBQUMsTUFBRCxDQUFyQjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLE1BQU1JLEVBQUUsR0FBR0osT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBQ0EsTUFBTUssR0FBRyxHQUFHTCxPQUFPLENBQUMsWUFBRCxDQUFuQjs7QUFDQSxNQUFNTSxJQUFJLEdB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LEtBQXdCLENBQTVCLEVBQStCO0FBQzdCLGdCQUFNLElBQUkrRSxLQUFKLENBQVcseUJBQXdCcEYsWUFBWSxDQUFDb0IsR0FBYixDQUFrQkMsQ0FBRCxJQUFPQSxDQUFDLENBQUNFLEdBQTFCLEVBQStCVCxJQUEvQixDQUFvQyxJQUFwQyxDQUEwQyxFQUE3RSxDQUFOO0FBQ0Q7QUFDRjtBQUNGLEtBdkpLO0FBd0pOdUUsSUFBQUEsUUFBUSxFQUFFLE1BQU07QUFDZCxZQUFNQyxlQUFlLEdBQUdySCxFQUFFLENBQUNzSCxPQUFILENBQVd2RyxJQUFJLENBQUNHLGNBQWhCLEVBQWdDcUcsTUFBaEMsQ0FBd0NDLENBQUQsSUFBTyxDQUFDN0Ysa0JBQWtCLENBQUNjLFFBQW5CLENBQTRCK0UsQ0FBNUIsQ0FBL0MsQ0FBeEI7O0FBQ0EsVUFBSUgsZUFBZSxDQUFDakYsTUFBaEIsS0FBMkIsQ0FBL0IsRUFBa0M7QUFDaEMsY0FBTSxJQUFJK0UsS0FBSixDQUFXLDBDQUF5Q0UsZUFBZSxDQUFDeEUsSUFBaEIsQ0FBcUIsSUFBckIsQ0FBMkIsRUFBL0UsQ0FBTjtBQUNEO0FBQ0YsS0E3Sks7QUE4Sk40RSxJQUFBQSxHQUFHLEVBQUUsT0FBTztBQUNWN0YsTUFBQUEsT0FBTyxFQUFFQSxPQUFPLENBQUM4RixLQUFSLEVBREM7QUFFVjdGLE1BQUFBLGdCQUFnQixFQUFFQSxnQkFBZ0IsQ0FBQzZGLEtBQWpCLEVBRlI7QUFHVkMsTUFBQUEsbUJBQW1CLEVBQUU1RixZQUFZLENBQUNvQixHQUFiLENBQWtCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0UsR0FBMUIsRUFBK0JvRSxLQUEvQixFQUhYO0FBSVY1RixNQUFBQSxnQkFBZ0IsRUFBRUEsZ0JBQWdCLENBQUM0RixLQUFqQixFQUpSO0FBS1ZoRyxNQUFBQTtBQUxVLEtBQVA7QUE5SkMsR0FBUjtBQXNLRCxDQTlMRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuY29uc3QgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbmNvbnN0IGh0dHBzID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IGZzID0gcmVxdWlyZSgnc21hcnQtZnMnKTtcbmNvbnN0IEpvaSA9IHJlcXVpcmUoJ2pvaS1zdHJpY3QnKTtcbmNvbnN0IG5vY2sgPSByZXF1aXJlKCdub2NrJyk7XG5jb25zdCBub2NrTGlzdGVuZXIgPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvbm9jay1saXN0ZW5lcicpO1xuY29uc3QgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2ggPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvaGVhbC1zcXMtc2VuZC1tZXNzYWdlLWJhdGNoJyk7XG5jb25zdCB7IGJ1aWxkS2V5LCB0cnlQYXJzZUpzb24sIGNvbnZlcnRIZWFkZXJzIH0gPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvdXRpbCcpO1xuY29uc3QgcmVxdWVzdEluamVjdG9yID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL3JlcXVlc3QtaW5qZWN0b3InKTtcblxuY29uc3Qgbm9ja0JhY2sgPSBub2NrLmJhY2s7XG5jb25zdCBub2NrUmVjb3JkZXIgPSBub2NrLnJlY29yZGVyO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChvcHRzKSA9PiB7XG4gIEpvaS5hc3NlcnQob3B0cywgSm9pLm9iamVjdCgpLmtleXMoe1xuICAgIGNhc3NldHRlRm9sZGVyOiBKb2kuc3RyaW5nKCksXG4gICAgc3RyaXBIZWFkZXJzOiBKb2kuYm9vbGVhbigpLFxuICAgIHN0cmljdDogSm9pLmJvb2xlYW4oKSxcbiAgICBoZWFsOiBKb2kuYWx0ZXJuYXRpdmVzKEpvaS5ib29sZWFuKCksIEpvaS5zdHJpbmcoKSlcbiAgfSksICdJbnZhbGlkIE9wdGlvbnMgUHJvdmlkZWQnKTtcbiAgbGV0IG5vY2tEb25lID0gbnVsbDtcbiAgbGV0IGNhc3NldHRlRmlsZVBhdGggPSBudWxsO1xuICBjb25zdCBrbm93bkNhc3NldHRlTmFtZXMgPSBbXTtcbiAgY29uc3QgcmVjb3JkcyA9IFtdO1xuICBjb25zdCBvdXRPZk9yZGVyRXJyb3JzID0gW107XG4gIGNvbnN0IGV4cGVjdGVkQ2Fzc2V0dGUgPSBbXTtcbiAgY29uc3QgcGVuZGluZ01vY2tzID0gW107XG5cbiAgY29uc3QgYW55RmxhZ1ByZXNlbnQgPSAoZmxhZ3MpID0+IHtcbiAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShmbGFncykgJiYgZmxhZ3MubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodHlwZW9mIG9wdHMuaGVhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbmVlZGxlRmxhZ3MgPSBvcHRzLmhlYWwuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gZmxhZ3Muc29tZSgoZmxhZykgPT4gbmVlZGxlRmxhZ3MuaW5jbHVkZXMoZmxhZykpO1xuICB9O1xuXG4gIHJldHVybiAoe1xuICAgIGluamVjdDogYXN5bmMgKGNhc3NldHRlRmlsZSkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lID09PSBudWxsKTtcbiAgICAgIGtub3duQ2Fzc2V0dGVOYW1lcy5wdXNoKGNhc3NldHRlRmlsZSk7XG4gICAgICByZWNvcmRzLmxlbmd0aCA9IDA7XG4gICAgICBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9IDA7XG4gICAgICBleHBlY3RlZENhc3NldHRlLmxlbmd0aCA9IDA7XG4gICAgICBwZW5kaW5nTW9ja3MubGVuZ3RoID0gMDtcblxuICAgICAgY2Fzc2V0dGVGaWxlUGF0aCA9IHBhdGguam9pbihvcHRzLmNhc3NldHRlRm9sZGVyLCBjYXNzZXR0ZUZpbGUpO1xuICAgICAgY29uc3QgaGFzQ2Fzc2V0dGUgPSBmcy5leGlzdHNTeW5jKGNhc3NldHRlRmlsZVBhdGgpO1xuICAgICAgaWYgKGhhc0Nhc3NldHRlKSB7XG4gICAgICAgIGNvbnN0IGNhc3NldHRlQ29udGVudCA9IGZzLnNtYXJ0UmVhZChjYXNzZXR0ZUZpbGVQYXRoKTtcbiAgICAgICAgcGVuZGluZ01vY2tzLnB1c2goLi4ubm9ja1xuICAgICAgICAgIC5kZWZpbmUoY2Fzc2V0dGVDb250ZW50KVxuICAgICAgICAgIC5tYXAoKGUsIGlkeCkgPT4gKHtcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIGtleTogYnVpbGRLZXkoZS5pbnRlcmNlcHRvcnNbMF0pLFxuICAgICAgICAgICAgcmVjb3JkOiBjYXNzZXR0ZUNvbnRlbnRbaWR4XVxuICAgICAgICAgIH0pKSk7XG4gICAgICB9XG5cbiAgICAgIG5vY2tCYWNrLnNldE1vZGUoaGFzQ2Fzc2V0dGUgPyAnbG9ja2Rvd24nIDogJ3JlY29yZCcpO1xuICAgICAgbm9ja0JhY2suZml4dHVyZXMgPSBvcHRzLmNhc3NldHRlRm9sZGVyO1xuICAgICAgbm9ja0xpc3RlbmVyLnN1YnNjcmliZSgnbm8gbWF0Y2gnLCAoKSA9PiB7XG4gICAgICAgIGFzc2VydChoYXNDYXNzZXR0ZSA9PT0gdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHsgcHJvdG9jb2wsIG9wdGlvbnMsIGJvZHkgfSA9IHJlcXVlc3RJbmplY3Rvci5nZXRMYXN0KCk7XG4gICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ3JlY29yZCddKSkge1xuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBub2NrUmVjb3JkZXIucmVjKHtcbiAgICAgICAgICAgICAgb3V0cHV0X29iamVjdHM6IHRydWUsXG4gICAgICAgICAgICAgIGRvbnRfcHJpbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZzogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm90b2NvbCA9IGAke3Byb3RvY29sfTpgO1xuICAgICAgICAgICAgICBjb25zdCByID0geyBodHRwLCBodHRwcyB9W3Byb3RvY29sXS5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmIChib2R5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByLndyaXRlKGJvZHkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHtcbiAgICAgICAgICAgIHNjb3BlOiBgJHtwcm90b2NvbH06Ly8ke29wdGlvbnMuaG9zdH06JHtvcHRpb25zLnBvcnR9YCxcbiAgICAgICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24oYm9keSksXG4gICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlSXNCaW5hcnk6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbm9ja0RvbmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gbm9ja0JhY2soY2Fzc2V0dGVGaWxlLCB7XG4gICAgICAgIGJlZm9yZTogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHJlY29yZHMucHVzaCh7IC4uLnNjb3BlIH0pO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1JlcXVlc3RCb2R5ID0gKGJvZHkpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ2JvZHknXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB0cnlQYXJzZUpzb24oYm9keSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5ib2R5ID0gcmVxdWVzdEJvZHkgPT09IG51bGwgPyAnbnVsbCcgOiByZXF1ZXN0Qm9keTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1BhdGggPSAocmVxdWVzdFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BhdGgnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnBhdGggPSByZXF1ZXN0UGF0aDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgc2NvcGUub24oJ3JlcXVlc3QnLCAocmVxLCBpbnRlcmNlcHRvciwgcmVxdWVzdEJvZHlTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKGUpID0+IGUuaWR4ID09PSBzY29wZUlkeCk7XG5cbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3Jlc3BvbnNlJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IHRyeVBhcnNlSnNvbihbXG4gICAgICAgICAgICAgICAgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2hcbiAgICAgICAgICAgICAgXS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHJlc3BCb2R5LCBmbikgPT4gZm4ocmVxdWVzdEJvZHlTdHJpbmcsIHJlc3BCb2R5LCBzY29wZSksXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5yZXNwb25zZSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZCk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIG91dE9mT3JkZXJFcnJvcnMucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ01vY2tzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlY29yZDogKHJlY29yZGluZ3MpID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ3MubWFwKChyKSA9PiAoe1xuICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgYm9keTogdHJ5UGFyc2VKc29uKHIuYm9keSksXG4gICAgICAgICAgcmF3SGVhZGVyczogb3B0cy5zdHJpcEhlYWRlcnMgPT09IHRydWUgPyB1bmRlZmluZWQgOiByLnJhd0hlYWRlcnNcbiAgICAgICAgfSkpLCBudWxsLCAyKVxuICAgICAgfSwgcmVzb2x2ZSkpO1xuICAgICAgcmVxdWVzdEluamVjdG9yLmluamVjdCgpO1xuICAgIH0sXG4gICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lICE9PSBudWxsKTtcbiAgICAgIHJlcXVlc3RJbmplY3Rvci5yZWxlYXNlKCk7XG4gICAgICBub2NrRG9uZSgpO1xuICAgICAgbm9ja0RvbmUgPSBudWxsO1xuICAgICAgbm9ja0xpc3RlbmVyLnVuc3Vic2NyaWJlQWxsKCdubyBtYXRjaCcpO1xuXG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBleHBlY3RlZENhc3NldHRlLmxlbmd0aDsgaWR4ICs9IDEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHBlY3RlZENhc3NldHRlW2lkeF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUuc3BsaWNlKGlkeCwgMSwgLi4uYXdhaXQgZXhwZWN0ZWRDYXNzZXR0ZVtpZHhdKCkpO1xuICAgICAgICAgIGlkeCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmhlYWwgIT09IGZhbHNlKSB7XG4gICAgICAgIGZzLnNtYXJ0V3JpdGUoXG4gICAgICAgICAgY2Fzc2V0dGVGaWxlUGF0aCxcbiAgICAgICAgICBhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BydW5lJ10pXG4gICAgICAgICAgICA/IGV4cGVjdGVkQ2Fzc2V0dGVcbiAgICAgICAgICAgIDogWy4uLmV4cGVjdGVkQ2Fzc2V0dGUsIC4uLnBlbmRpbmdNb2Nrcy5tYXAoKHsgcmVjb3JkIH0pID0+IHJlY29yZCldLFxuICAgICAgICAgIHsga2VlcE9yZGVyOiBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwZW5kaW5nTW9ja3MubGVuZ3RoID09PSAwIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0cmljdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXQgb2YgT3JkZXIgUmVjb3JkaW5nczogJHtvdXRPZk9yZGVyRXJyb3JzLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlbmRpbmdNb2Nrcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubWF0Y2hlZCBSZWNvcmRpbmdzOiAke3BlbmRpbmdNb2Nrcy5tYXAoKGUpID0+IGUua2V5KS5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzaHV0ZG93bjogKCkgPT4ge1xuICAgICAgY29uc3QgdW5leHBlY3RlZEZpbGVzID0gZnMud2Fsa0RpcihvcHRzLmNhc3NldHRlRm9sZGVyKS5maWx0ZXIoKGYpID0+ICFrbm93bkNhc3NldHRlTmFtZXMuaW5jbHVkZXMoZikpO1xuICAgICAgaWYgKHVuZXhwZWN0ZWRGaWxlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGZpbGUocykgaW4gY2Fzc2V0dGUgZm9sZGVyOiAke3VuZXhwZWN0ZWRGaWxlcy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiAoKSA9PiAoe1xuICAgICAgcmVjb3JkczogcmVjb3Jkcy5zbGljZSgpLFxuICAgICAgb3V0T2ZPcmRlckVycm9yczogb3V0T2ZPcmRlckVycm9ycy5zbGljZSgpLFxuICAgICAgdW5tYXRjaGVkUmVjb3JkaW5nczogcGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLnNsaWNlKCksXG4gICAgICBleHBlY3RlZENhc3NldHRlOiBleHBlY3RlZENhc3NldHRlLnNsaWNlKCksXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoXG4gICAgfSlcbiAgfSk7XG59O1xuIl19

@@ -5,26 +5,72 @@ const assert = require('assert');

const https = require('https');
const common = require('nock/lib/common');
let requestOriginal = null;
let lastRequestOptions = null;
let lastProtocol = null;
let lastOptions = null;
let lastBody = null;
const requestWrapper = (...args) => {
lastRequestOptions = common.normalizeClientRequestArgs(...args).options;
return requestOriginal(...args);
const wrapper = proto => {
let requestOriginal = null;
const protocol = {
http,
https
}[proto];
const requestWrapper = (...args) => {
lastProtocol = proto;
lastOptions = common.normalizeClientRequestArgs(...args).options;
lastBody = lastOptions.body;
const result = requestOriginal.call(protocol, ...args);
if (lastBody === undefined) {
lastBody = [];
const writeOriginal = result.write;
result.write = (...chunks) => {
lastBody.push(chunks);
return writeOriginal.call(result, ...chunks);
};
}
return result;
};
return {
inject: () => {
assert(protocol.request !== requestWrapper, 'Inject Failure');
requestOriginal = protocol.request;
protocol.request = requestWrapper;
lastProtocol = null;
lastOptions = null;
lastBody = null;
},
release: () => {
assert(protocol.request === requestWrapper, 'Release Failure');
protocol.request = requestOriginal;
requestOriginal = null;
}
};
};
module.exports = {
inject: () => {
assert(http.request !== requestWrapper, 'Inject Failure');
requestOriginal = http.request;
http.request = requestWrapper;
},
release: () => {
assert(http.request === requestWrapper, 'Release Failure');
http.request = requestOriginal;
requestOriginal = null;
lastRequestOptions = null;
},
getLastOptions: () => lastRequestOptions
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIvcmVxdWVzdC1pbmplY3Rvci5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiaHR0cCIsImNvbW1vbiIsInJlcXVlc3RPcmlnaW5hbCIsImxhc3RSZXF1ZXN0T3B0aW9ucyIsInJlcXVlc3RXcmFwcGVyIiwiYXJncyIsIm5vcm1hbGl6ZUNsaWVudFJlcXVlc3RBcmdzIiwib3B0aW9ucyIsIm1vZHVsZSIsImV4cG9ydHMiLCJpbmplY3QiLCJyZXF1ZXN0IiwicmVsZWFzZSIsImdldExhc3RPcHRpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsaUJBQUQsQ0FBdEI7O0FBRUEsSUFBSUcsZUFBZSxHQUFHLElBQXRCO0FBQ0EsSUFBSUMsa0JBQWtCLEdBQUcsSUFBekI7O0FBRUEsTUFBTUMsY0FBYyxHQUFHLENBQUMsR0FBR0MsSUFBSixLQUFhO0FBQ2xDRixFQUFBQSxrQkFBa0IsR0FBR0YsTUFBTSxDQUFDSywwQkFBUCxDQUFrQyxHQUFHRCxJQUFyQyxFQUEyQ0UsT0FBaEU7QUFDQSxTQUFPTCxlQUFlLENBQUMsR0FBR0csSUFBSixDQUF0QjtBQUNELENBSEQ7O0FBS0FHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmQyxFQUFBQSxNQUFNLEVBQUUsTUFBTTtBQUNaWixJQUFBQSxNQUFNLENBQUNFLElBQUksQ0FBQ1csT0FBTCxLQUFpQlAsY0FBbEIsRUFBa0MsZ0JBQWxDLENBQU47QUFDQUYsSUFBQUEsZUFBZSxHQUFHRixJQUFJLENBQUNXLE9BQXZCO0FBQ0FYLElBQUFBLElBQUksQ0FBQ1csT0FBTCxHQUFlUCxjQUFmO0FBQ0QsR0FMYztBQU1mUSxFQUFBQSxPQUFPLEVBQUUsTUFBTTtBQUNiZCxJQUFBQSxNQUFNLENBQUNFLElBQUksQ0FBQ1csT0FBTCxLQUFpQlAsY0FBbEIsRUFBa0MsaUJBQWxDLENBQU47QUFDQUosSUFBQUEsSUFBSSxDQUFDVyxPQUFMLEdBQWVULGVBQWY7QUFDQUEsSUFBQUEsZUFBZSxHQUFHLElBQWxCO0FBQ0FDLElBQUFBLGtCQUFrQixHQUFHLElBQXJCO0FBQ0QsR0FYYztBQVlmVSxFQUFBQSxjQUFjLEVBQUUsTUFBTVY7QUFaUCxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpO1xuY29uc3QgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbmNvbnN0IGNvbW1vbiA9IHJlcXVpcmUoJ25vY2svbGliL2NvbW1vbicpO1xuXG5sZXQgcmVxdWVzdE9yaWdpbmFsID0gbnVsbDtcbmxldCBsYXN0UmVxdWVzdE9wdGlvbnMgPSBudWxsO1xuXG5jb25zdCByZXF1ZXN0V3JhcHBlciA9ICguLi5hcmdzKSA9PiB7XG4gIGxhc3RSZXF1ZXN0T3B0aW9ucyA9IGNvbW1vbi5ub3JtYWxpemVDbGllbnRSZXF1ZXN0QXJncyguLi5hcmdzKS5vcHRpb25zO1xuICByZXR1cm4gcmVxdWVzdE9yaWdpbmFsKC4uLmFyZ3MpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGluamVjdDogKCkgPT4ge1xuICAgIGFzc2VydChodHRwLnJlcXVlc3QgIT09IHJlcXVlc3RXcmFwcGVyLCAnSW5qZWN0IEZhaWx1cmUnKTtcbiAgICByZXF1ZXN0T3JpZ2luYWwgPSBodHRwLnJlcXVlc3Q7XG4gICAgaHR0cC5yZXF1ZXN0ID0gcmVxdWVzdFdyYXBwZXI7XG4gIH0sXG4gIHJlbGVhc2U6ICgpID0+IHtcbiAgICBhc3NlcnQoaHR0cC5yZXF1ZXN0ID09PSByZXF1ZXN0V3JhcHBlciwgJ1JlbGVhc2UgRmFpbHVyZScpO1xuICAgIGh0dHAucmVxdWVzdCA9IHJlcXVlc3RPcmlnaW5hbDtcbiAgICByZXF1ZXN0T3JpZ2luYWwgPSBudWxsO1xuICAgIGxhc3RSZXF1ZXN0T3B0aW9ucyA9IG51bGw7XG4gIH0sXG4gIGdldExhc3RPcHRpb25zOiAoKSA9PiBsYXN0UmVxdWVzdE9wdGlvbnNcbn07XG4iXX0=
module.exports = (() => {
const httpWrapper = wrapper('http');
const httpsWrapper = wrapper('https');
return {
inject: () => {
httpWrapper.inject();
httpsWrapper.inject();
},
release: () => {
httpWrapper.release();
httpsWrapper.release();
},
getLast: () => ({
protocol: lastProtocol,
options: lastOptions,
body: lastBody
})
};
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIvcmVxdWVzdC1pbmplY3Rvci5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiaHR0cCIsImh0dHBzIiwiY29tbW9uIiwibGFzdFByb3RvY29sIiwibGFzdE9wdGlvbnMiLCJsYXN0Qm9keSIsIndyYXBwZXIiLCJwcm90byIsInJlcXVlc3RPcmlnaW5hbCIsInByb3RvY29sIiwicmVxdWVzdFdyYXBwZXIiLCJhcmdzIiwibm9ybWFsaXplQ2xpZW50UmVxdWVzdEFyZ3MiLCJvcHRpb25zIiwiYm9keSIsInJlc3VsdCIsImNhbGwiLCJ1bmRlZmluZWQiLCJ3cml0ZU9yaWdpbmFsIiwid3JpdGUiLCJjaHVua3MiLCJwdXNoIiwiaW5qZWN0IiwicmVxdWVzdCIsInJlbGVhc2UiLCJtb2R1bGUiLCJleHBvcnRzIiwiaHR0cFdyYXBwZXIiLCJodHRwc1dyYXBwZXIiLCJnZXRMYXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsS0FBSyxHQUFHRixPQUFPLENBQUMsT0FBRCxDQUFyQjs7QUFDQSxNQUFNRyxNQUFNLEdBQUdILE9BQU8sQ0FBQyxpQkFBRCxDQUF0Qjs7QUFFQSxJQUFJSSxZQUFZLEdBQUcsSUFBbkI7QUFDQSxJQUFJQyxXQUFXLEdBQUcsSUFBbEI7QUFDQSxJQUFJQyxRQUFRLEdBQUcsSUFBZjs7QUFFQSxNQUFNQyxPQUFPLEdBQUlDLEtBQUQsSUFBVztBQUN6QixNQUFJQyxlQUFlLEdBQUcsSUFBdEI7QUFDQSxRQUFNQyxRQUFRLEdBQUc7QUFBRVQsSUFBQUEsSUFBRjtBQUFRQyxJQUFBQTtBQUFSLElBQWdCTSxLQUFoQixDQUFqQjs7QUFFQSxRQUFNRyxjQUFjLEdBQUcsQ0FBQyxHQUFHQyxJQUFKLEtBQWE7QUFDbENSLElBQUFBLFlBQVksR0FBR0ksS0FBZjtBQUNBSCxJQUFBQSxXQUFXLEdBQUdGLE1BQU0sQ0FBQ1UsMEJBQVAsQ0FBa0MsR0FBR0QsSUFBckMsRUFBMkNFLE9BQXpEO0FBQ0FSLElBQUFBLFFBQVEsR0FBR0QsV0FBVyxDQUFDVSxJQUF2QjtBQUNBLFVBQU1DLE1BQU0sR0FBR1AsZUFBZSxDQUFDUSxJQUFoQixDQUFxQlAsUUFBckIsRUFBK0IsR0FBR0UsSUFBbEMsQ0FBZjs7QUFDQSxRQUFJTixRQUFRLEtBQUtZLFNBQWpCLEVBQTRCO0FBQzFCWixNQUFBQSxRQUFRLEdBQUcsRUFBWDtBQUNBLFlBQU1hLGFBQWEsR0FBR0gsTUFBTSxDQUFDSSxLQUE3Qjs7QUFDQUosTUFBQUEsTUFBTSxDQUFDSSxLQUFQLEdBQWUsQ0FBQyxHQUFHQyxNQUFKLEtBQWU7QUFDNUJmLFFBQUFBLFFBQVEsQ0FBQ2dCLElBQVQsQ0FBY0QsTUFBZDtBQUNBLGVBQU9GLGFBQWEsQ0FBQ0YsSUFBZCxDQUFtQkQsTUFBbkIsRUFBMkIsR0FBR0ssTUFBOUIsQ0FBUDtBQUNELE9BSEQ7QUFJRDs7QUFDRCxXQUFPTCxNQUFQO0FBQ0QsR0FkRDs7QUFnQkEsU0FBTztBQUNMTyxJQUFBQSxNQUFNLEVBQUUsTUFBTTtBQUNaeEIsTUFBQUEsTUFBTSxDQUFDVyxRQUFRLENBQUNjLE9BQVQsS0FBcUJiLGNBQXRCLEVBQXNDLGdCQUF0QyxDQUFOO0FBQ0FGLE1BQUFBLGVBQWUsR0FBR0MsUUFBUSxDQUFDYyxPQUEzQjtBQUNBZCxNQUFBQSxRQUFRLENBQUNjLE9BQVQsR0FBbUJiLGNBQW5CO0FBQ0FQLE1BQUFBLFlBQVksR0FBRyxJQUFmO0FBQ0FDLE1BQUFBLFdBQVcsR0FBRyxJQUFkO0FBQ0FDLE1BQUFBLFFBQVEsR0FBRyxJQUFYO0FBQ0QsS0FSSTtBQVNMbUIsSUFBQUEsT0FBTyxFQUFFLE1BQU07QUFDYjFCLE1BQUFBLE1BQU0sQ0FBQ1csUUFBUSxDQUFDYyxPQUFULEtBQXFCYixjQUF0QixFQUFzQyxpQkFBdEMsQ0FBTjtBQUNBRCxNQUFBQSxRQUFRLENBQUNjLE9BQVQsR0FBbUJmLGVBQW5CO0FBQ0FBLE1BQUFBLGVBQWUsR0FBRyxJQUFsQjtBQUNEO0FBYkksR0FBUDtBQWVELENBbkNEOztBQXFDQWlCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixDQUFDLE1BQU07QUFDdEIsUUFBTUMsV0FBVyxHQUFHckIsT0FBTyxDQUFDLE1BQUQsQ0FBM0I7QUFDQSxRQUFNc0IsWUFBWSxHQUFHdEIsT0FBTyxDQUFDLE9BQUQsQ0FBNUI7QUFDQSxTQUFPO0FBQ0xnQixJQUFBQSxNQUFNLEVBQUUsTUFBTTtBQUNaSyxNQUFBQSxXQUFXLENBQUNMLE1BQVo7QUFDQU0sTUFBQUEsWUFBWSxDQUFDTixNQUFiO0FBQ0QsS0FKSTtBQUtMRSxJQUFBQSxPQUFPLEVBQUUsTUFBTTtBQUNiRyxNQUFBQSxXQUFXLENBQUNILE9BQVo7QUFDQUksTUFBQUEsWUFBWSxDQUFDSixPQUFiO0FBQ0QsS0FSSTtBQVNMSyxJQUFBQSxPQUFPLEVBQUUsT0FBTztBQUNkcEIsTUFBQUEsUUFBUSxFQUFFTixZQURJO0FBRWRVLE1BQUFBLE9BQU8sRUFBRVQsV0FGSztBQUdkVSxNQUFBQSxJQUFJLEVBQUVUO0FBSFEsS0FBUDtBQVRKLEdBQVA7QUFlRCxDQWxCZ0IsR0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IGh0dHAgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBodHRwcyA9IHJlcXVpcmUoJ2h0dHBzJyk7XG5jb25zdCBjb21tb24gPSByZXF1aXJlKCdub2NrL2xpYi9jb21tb24nKTtcblxubGV0IGxhc3RQcm90b2NvbCA9IG51bGw7XG5sZXQgbGFzdE9wdGlvbnMgPSBudWxsO1xubGV0IGxhc3RCb2R5ID0gbnVsbDtcblxuY29uc3Qgd3JhcHBlciA9IChwcm90bykgPT4ge1xuICBsZXQgcmVxdWVzdE9yaWdpbmFsID0gbnVsbDtcbiAgY29uc3QgcHJvdG9jb2wgPSB7IGh0dHAsIGh0dHBzIH1bcHJvdG9dO1xuXG4gIGNvbnN0IHJlcXVlc3RXcmFwcGVyID0gKC4uLmFyZ3MpID0+IHtcbiAgICBsYXN0UHJvdG9jb2wgPSBwcm90bztcbiAgICBsYXN0T3B0aW9ucyA9IGNvbW1vbi5ub3JtYWxpemVDbGllbnRSZXF1ZXN0QXJncyguLi5hcmdzKS5vcHRpb25zO1xuICAgIGxhc3RCb2R5ID0gbGFzdE9wdGlvbnMuYm9keTtcbiAgICBjb25zdCByZXN1bHQgPSByZXF1ZXN0T3JpZ2luYWwuY2FsbChwcm90b2NvbCwgLi4uYXJncyk7XG4gICAgaWYgKGxhc3RCb2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxhc3RCb2R5ID0gW107XG4gICAgICBjb25zdCB3cml0ZU9yaWdpbmFsID0gcmVzdWx0LndyaXRlO1xuICAgICAgcmVzdWx0LndyaXRlID0gKC4uLmNodW5rcykgPT4ge1xuICAgICAgICBsYXN0Qm9keS5wdXNoKGNodW5rcyk7XG4gICAgICAgIHJldHVybiB3cml0ZU9yaWdpbmFsLmNhbGwocmVzdWx0LCAuLi5jaHVua3MpO1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGluamVjdDogKCkgPT4ge1xuICAgICAgYXNzZXJ0KHByb3RvY29sLnJlcXVlc3QgIT09IHJlcXVlc3RXcmFwcGVyLCAnSW5qZWN0IEZhaWx1cmUnKTtcbiAgICAgIHJlcXVlc3RPcmlnaW5hbCA9IHByb3RvY29sLnJlcXVlc3Q7XG4gICAgICBwcm90b2NvbC5yZXF1ZXN0ID0gcmVxdWVzdFdyYXBwZXI7XG4gICAgICBsYXN0UHJvdG9jb2wgPSBudWxsO1xuICAgICAgbGFzdE9wdGlvbnMgPSBudWxsO1xuICAgICAgbGFzdEJvZHkgPSBudWxsO1xuICAgIH0sXG4gICAgcmVsZWFzZTogKCkgPT4ge1xuICAgICAgYXNzZXJ0KHByb3RvY29sLnJlcXVlc3QgPT09IHJlcXVlc3RXcmFwcGVyLCAnUmVsZWFzZSBGYWlsdXJlJyk7XG4gICAgICBwcm90b2NvbC5yZXF1ZXN0ID0gcmVxdWVzdE9yaWdpbmFsO1xuICAgICAgcmVxdWVzdE9yaWdpbmFsID0gbnVsbDtcbiAgICB9XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9ICgoKSA9PiB7XG4gIGNvbnN0IGh0dHBXcmFwcGVyID0gd3JhcHBlcignaHR0cCcpO1xuICBjb25zdCBodHRwc1dyYXBwZXIgPSB3cmFwcGVyKCdodHRwcycpO1xuICByZXR1cm4ge1xuICAgIGluamVjdDogKCkgPT4ge1xuICAgICAgaHR0cFdyYXBwZXIuaW5qZWN0KCk7XG4gICAgICBodHRwc1dyYXBwZXIuaW5qZWN0KCk7XG4gICAgfSxcbiAgICByZWxlYXNlOiAoKSA9PiB7XG4gICAgICBodHRwV3JhcHBlci5yZWxlYXNlKCk7XG4gICAgICBodHRwc1dyYXBwZXIucmVsZWFzZSgpO1xuICAgIH0sXG4gICAgZ2V0TGFzdDogKCkgPT4gKHtcbiAgICAgIHByb3RvY29sOiBsYXN0UHJvdG9jb2wsXG4gICAgICBvcHRpb25zOiBsYXN0T3B0aW9ucyxcbiAgICAgIGJvZHk6IGxhc3RCb2R5XG4gICAgfSlcbiAgfTtcbn0pKCk7XG4iXX0=
{
"name": "node-tdd",
"version": "2.14.0",
"version": "2.15.0",
"description": "Drop in extension for mocha to abstract commonly used test setups",

@@ -49,3 +49,3 @@ "main": "lib/index.js",

"@blackflux/robo-config-plugin": "3.4.13",
"aws-sdk": "2.703.0",
"aws-sdk": "2.704.0",
"aws-sdk-wrap": "4.4.8",

@@ -52,0 +52,0 @@ "babel-eslint": "10.1.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