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.18.1 to 2.18.2

lib/modules/request-recorder/nock-mock.js

6

lib/modules/request-recorder.js

@@ -25,2 +25,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 nockMock = require('./request-recorder/nock-mock');
const healSqsSendMessageBatch = require('./request-recorder/heal-sqs-send-message-batch');

@@ -90,2 +92,3 @@

nockBack.fixtures = opts.cassetteFolder;
nockMock.patch();
nockListener.subscribe('no match', () => {

@@ -203,2 +206,3 @@ assert(hasCassette === true);

nockListener.unsubscribeAll('no match');
nockMock.unpatch();

@@ -247,2 +251,2 @@ for (let idx = 0; idx < expectedCassette.length; idx += 1) {

};
//# 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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGVzL3JlcXVlc3QtcmVjb3JkZXIuanMiXSwibmFtZXMiOlsiYXNzZXJ0IiwicmVxdWlyZSIsImh0dHAiLCJodHRwcyIsInBhdGgiLCJmcyIsIkpvaSIsIm5vY2siLCJjbG9uZURlZXAiLCJub2NrTGlzdGVuZXIiLCJub2NrTW9jayIsImhlYWxTcXNTZW5kTWVzc2FnZUJhdGNoIiwiYXBwbHlNb2RpZmllcnMiLCJidWlsZEtleSIsInRyeVBhcnNlSnNvbiIsImNvbnZlcnRIZWFkZXJzIiwicmVxdWVzdEluamVjdG9yIiwibm9ja0JhY2siLCJiYWNrIiwibm9ja1JlY29yZGVyIiwicmVjb3JkZXIiLCJtb2R1bGUiLCJleHBvcnRzIiwib3B0cyIsIm9iamVjdCIsImtleXMiLCJjYXNzZXR0ZUZvbGRlciIsInN0cmluZyIsInN0cmlwSGVhZGVycyIsImJvb2xlYW4iLCJzdHJpY3QiLCJoZWFsIiwiYWx0ZXJuYXRpdmVzIiwibW9kaWZpZXJzIiwicGF0dGVybiIsImZ1bmN0aW9uIiwibGluayIsIm5vY2tEb25lIiwiY2Fzc2V0dGVGaWxlUGF0aCIsImtub3duQ2Fzc2V0dGVOYW1lcyIsInJlY29yZHMiLCJvdXRPZk9yZGVyRXJyb3JzIiwiZXhwZWN0ZWRDYXNzZXR0ZSIsInBlbmRpbmdNb2NrcyIsImFueUZsYWdQcmVzZW50IiwiZmxhZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJuZWVkbGVGbGFncyIsInNwbGl0Iiwic29tZSIsImZsYWciLCJpbmNsdWRlcyIsImluamVjdCIsImNhc3NldHRlRmlsZSIsInB1c2giLCJqb2luIiwiaGFzQ2Fzc2V0dGUiLCJleGlzdHNTeW5jIiwiY2Fzc2V0dGVDb250ZW50Iiwic21hcnRSZWFkIiwiZGVmaW5lIiwibWFwIiwiZSIsImlkeCIsImtleSIsImludGVyY2VwdG9ycyIsInJlY29yZCIsInNldE1vZGUiLCJmaXh0dXJlcyIsInBhdGNoIiwic3Vic2NyaWJlIiwicHJvdG9jb2wiLCJvcHRpb25zIiwiYm9keSIsImdldExhc3QiLCJyZWMiLCJvdXRwdXRfb2JqZWN0cyIsImRvbnRfcHJpbnQiLCJlbmFibGVfcmVxaGVhZGVyc19yZWNvcmRpbmciLCJQcm9taXNlIiwicmVzb2x2ZSIsInIiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJvbiIsInVuZGVmaW5lZCIsIndyaXRlIiwiZW5kIiwicmVjb3JkZWQiLCJwbGF5IiwiY2xlYXIiLCJPYmplY3QiLCJhc3NpZ24iLCJoZWFkZXJzIiwicmF3SGVhZGVycyIsInNjb3BlIiwiaG9zdCIsInBvcnQiLCJtZXRob2QiLCJzdGF0dXMiLCJyZXNwb25zZUlzQmluYXJ5IiwiYmVmb3JlIiwic2NvcGVJZHgiLCJmaWx0ZXJpbmdSZXF1ZXN0Qm9keSIsImZpbmRJbmRleCIsIm0iLCJyZXF1ZXN0Qm9keSIsImZpbHRlcmluZ1BhdGgiLCJyZXF1ZXN0UGF0aCIsImFmdGVyIiwicmVxIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0Qm9keVN0cmluZyIsInJlc3BvbnNlQm9keSIsInJlZHVjZSIsInJlc3BCb2R5IiwiZm4iLCJzcGxpY2UiLCJhZnRlclJlY29yZCIsInJlY29yZGluZ3MiLCJKU09OIiwic3RyaW5naWZ5IiwicmVsZWFzZSIsInVuc3Vic2NyaWJlQWxsIiwidW5wYXRjaCIsInNtYXJ0V3JpdGUiLCJrZWVwT3JkZXIiLCJFcnJvciIsInNodXRkb3duIiwidW5leHBlY3RlZEZpbGVzIiwid2Fsa0RpciIsImZpbHRlciIsImYiLCJnZXQiLCJzbGljZSIsInVubWF0Y2hlZFJlY29yZGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFwQjs7QUFDQSxNQUFNRSxLQUFLLEdBQUdGLE9BQU8sQ0FBQyxNQUFELENBQXJCOztBQUNBLE1BQU1HLElBQUksR0FBR0gsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFB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QUEvQyxDQUF4Qjs7QUFDQSxVQUFJSCxlQUFlLENBQUNuRixNQUFoQixLQUEyQixDQUEvQixFQUFrQztBQUNoQyxjQUFNLElBQUlpRixLQUFKLENBQVcsMENBQXlDRSxlQUFlLENBQUMxRSxJQUFoQixDQUFxQixJQUFyQixDQUEyQixFQUEvRSxDQUFOO0FBQ0Q7QUFDRixLQWhLSztBQWlLTjhFLElBQUFBLEdBQUcsRUFBRSxPQUFPO0FBQ1YvRixNQUFBQSxPQUFPLEVBQUVBLE9BQU8sQ0FBQ2dHLEtBQVIsRUFEQztBQUVWL0YsTUFBQUEsZ0JBQWdCLEVBQUVBLGdCQUFnQixDQUFDK0YsS0FBakIsRUFGUjtBQUdWQyxNQUFBQSxtQkFBbUIsRUFBRTlGLFlBQVksQ0FBQ29CLEdBQWIsQ0FBa0JDLENBQUQsSUFBT0EsQ0FBQyxDQUFDRSxHQUExQixFQUErQnNFLEtBQS9CLEVBSFg7QUFJVjlGLE1BQUFBLGdCQUFnQixFQUFFQSxnQkFBZ0IsQ0FBQzhGLEtBQWpCLEVBSlI7QUFLVmxHLE1BQUFBO0FBTFUsS0FBUDtBQWpLQyxHQUFSO0FBeUtELENBck1EIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgZnMgPSByZXF1aXJlKCdzbWFydC1mcycpO1xuY29uc3QgSm9pID0gcmVxdWlyZSgnam9pLXN0cmljdCcpO1xuY29uc3Qgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmNvbnN0IGNsb25lRGVlcCA9IHJlcXVpcmUoJ2xvZGFzaC5jbG9uZWRlZXAnKTtcbmNvbnN0IG5vY2tMaXN0ZW5lciA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLWxpc3RlbmVyJyk7XG5jb25zdCBub2NrTW9jayA9IHJlcXVpcmUoJy4vcmVxdWVzdC1yZWNvcmRlci9ub2NrLW1vY2snKTtcbmNvbnN0IGhlYWxTcXNTZW5kTWVzc2FnZUJhdGNoID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL2hlYWwtc3FzLXNlbmQtbWVzc2FnZS1iYXRjaCcpO1xuY29uc3QgYXBwbHlNb2RpZmllcnMgPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvYXBwbHktbW9kaWZpZXJzJyk7XG5jb25zdCB7IGJ1aWxkS2V5LCB0cnlQYXJzZUpzb24sIGNvbnZlcnRIZWFkZXJzIH0gPSByZXF1aXJlKCcuL3JlcXVlc3QtcmVjb3JkZXIvdXRpbCcpO1xuY29uc3QgcmVxdWVzdEluamVjdG9yID0gcmVxdWlyZSgnLi9yZXF1ZXN0LXJlY29yZGVyL3JlcXVlc3QtaW5qZWN0b3InKTtcblxuY29uc3Qgbm9ja0JhY2sgPSBub2NrLmJhY2s7XG5jb25zdCBub2NrUmVjb3JkZXIgPSBub2NrLnJlY29yZGVyO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChvcHRzKSA9PiB7XG4gIEpvaS5hc3NlcnQob3B0cywgSm9pLm9iamVjdCgpLmtleXMoe1xuICAgIGNhc3NldHRlRm9sZGVyOiBKb2kuc3RyaW5nKCksXG4gICAgc3RyaXBIZWFkZXJzOiBKb2kuYm9vbGVhbigpLFxuICAgIHN0cmljdDogSm9pLmJvb2xlYW4oKSxcbiAgICBoZWFsOiBKb2kuYWx0ZXJuYXRpdmVzKEpvaS5ib29sZWFuKCksIEpvaS5zdHJpbmcoKSksXG4gICAgbW9kaWZpZXJzOiBKb2kub2JqZWN0KCkucGF0dGVybihcbiAgICAgIEpvaS5zdHJpbmcoKSxcbiAgICAgIEpvaS5hbHRlcm5hdGl2ZXMoSm9pLmZ1bmN0aW9uKCksIEpvaS5saW5rKCcjbW9kaWZpZXJzJykpXG4gICAgKVxuICB9KSwgJ0ludmFsaWQgT3B0aW9ucyBQcm92aWRlZCcpO1xuICBsZXQgbm9ja0RvbmUgPSBudWxsO1xuICBsZXQgY2Fzc2V0dGVGaWxlUGF0aCA9IG51bGw7XG4gIGNvbnN0IGtub3duQ2Fzc2V0dGVOYW1lcyA9IFtdO1xuICBjb25zdCByZWNvcmRzID0gW107XG4gIGNvbnN0IG91dE9mT3JkZXJFcnJvcnMgPSBbXTtcbiAgY29uc3QgZXhwZWN0ZWRDYXNzZXR0ZSA9IFtdO1xuICBjb25zdCBwZW5kaW5nTW9ja3MgPSBbXTtcblxuICBjb25zdCBhbnlGbGFnUHJlc2VudCA9IChmbGFncykgPT4ge1xuICAgIGFzc2VydChBcnJheS5pc0FycmF5KGZsYWdzKSAmJiBmbGFncy5sZW5ndGggIT09IDApO1xuICAgIGlmICh0eXBlb2Ygb3B0cy5oZWFsICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBuZWVkbGVGbGFncyA9IG9wdHMuaGVhbC5zcGxpdCgnLCcpO1xuICAgIHJldHVybiBmbGFncy5zb21lKChmbGFnKSA9PiBuZWVkbGVGbGFncy5pbmNsdWRlcyhmbGFnKSk7XG4gIH07XG5cbiAgcmV0dXJuICh7XG4gICAgaW5qZWN0OiBhc3luYyAoY2Fzc2V0dGVGaWxlKSA9PiB7XG4gICAgICBhc3NlcnQobm9ja0RvbmUgPT09IG51bGwpO1xuICAgICAga25vd25DYXNzZXR0ZU5hbWVzLnB1c2goY2Fzc2V0dGVGaWxlKTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoID0gMDtcbiAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUubGVuZ3RoID0gMDtcbiAgICAgIHBlbmRpbmdNb2Nrcy5sZW5ndGggPSAwO1xuXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoID0gcGF0aC5qb2luKG9wdHMuY2Fzc2V0dGVGb2xkZXIsIGNhc3NldHRlRmlsZSk7XG4gICAgICBjb25zdCBoYXNDYXNzZXR0ZSA9IGZzLmV4aXN0c1N5bmMoY2Fzc2V0dGVGaWxlUGF0aCk7XG4gICAgICBpZiAoaGFzQ2Fzc2V0dGUpIHtcbiAgICAgICAgY29uc3QgY2Fzc2V0dGVDb250ZW50ID0gZnMuc21hcnRSZWFkKGNhc3NldHRlRmlsZVBhdGgpO1xuICAgICAgICBwZW5kaW5nTW9ja3MucHVzaCguLi5ub2NrXG4gICAgICAgICAgLmRlZmluZShjYXNzZXR0ZUNvbnRlbnQpXG4gICAgICAgICAgLm1hcCgoZSwgaWR4KSA9PiAoe1xuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAga2V5OiBidWlsZEtleShlLmludGVyY2VwdG9yc1swXSksXG4gICAgICAgICAgICByZWNvcmQ6IGNhc3NldHRlQ29udGVudFtpZHhdXG4gICAgICAgICAgfSkpKTtcbiAgICAgIH1cblxuICAgICAgbm9ja0JhY2suc2V0TW9kZShoYXNDYXNzZXR0ZSA/ICdsb2NrZG93bicgOiAncmVjb3JkJyk7XG4gICAgICBub2NrQmFjay5maXh0dXJlcyA9IG9wdHMuY2Fzc2V0dGVGb2xkZXI7XG4gICAgICBub2NrTW9jay5wYXRjaCgpO1xuICAgICAgbm9ja0xpc3RlbmVyLnN1YnNjcmliZSgnbm8gbWF0Y2gnLCAoKSA9PiB7XG4gICAgICAgIGFzc2VydChoYXNDYXNzZXR0ZSA9PT0gdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHsgcHJvdG9jb2wsIG9wdGlvbnMsIGJvZHkgfSA9IHJlcXVlc3RJbmplY3Rvci5nZXRMYXN0KCk7XG4gICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ3JlY29yZCddKSkge1xuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUucHVzaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBub2NrUmVjb3JkZXIucmVjKHtcbiAgICAgICAgICAgICAgb3V0cHV0X29iamVjdHM6IHRydWUsXG4gICAgICAgICAgICAgIGRvbnRfcHJpbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGVuYWJsZV9yZXFoZWFkZXJzX3JlY29yZGluZzogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm90b2NvbCA9IGAke3Byb3RvY29sfTpgO1xuICAgICAgICAgICAgICBjb25zdCByID0geyBodHRwLCBodHRwcyB9W3Byb3RvY29sXS5yZXF1ZXN0KG9wdGlvbnMsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdkYXRhJywgKCkgPT4ge30pO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmIChib2R5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByLndyaXRlKGJvZHkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHIuZW5kKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZGVkID0gbm9ja1JlY29yZGVyLnBsYXkoKTtcbiAgICAgICAgICAgIG5vY2tSZWNvcmRlci5jbGVhcigpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZGVkLm1hcCgocmVjb3JkKSA9PiBPYmplY3QuYXNzaWduKHJlY29yZCwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiBvcHRzLnN0cmlwSGVhZGVycyA9PT0gdHJ1ZSA/IHVuZGVmaW5lZCA6IGNvbnZlcnRIZWFkZXJzKHJlY29yZC5yYXdIZWFkZXJzKSxcbiAgICAgICAgICAgICAgcmF3SGVhZGVyczogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYW55RmxhZ1ByZXNlbnQoWydzdHViJ10pKSB7XG4gICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHtcbiAgICAgICAgICAgIHNjb3BlOiBgJHtwcm90b2NvbH06Ly8ke29wdGlvbnMuaG9zdH06JHtvcHRpb25zLnBvcnR9YCxcbiAgICAgICAgICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgICAgICAgICBib2R5OiB0cnlQYXJzZUpzb24oYm9keSksXG4gICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlSXNCaW5hcnk6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbm9ja0RvbmUgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gbm9ja0JhY2soY2Fzc2V0dGVGaWxlLCB7XG4gICAgICAgIGJlZm9yZTogKHNjb3BlLCBzY29wZUlkeCkgPT4ge1xuICAgICAgICAgIHJlY29yZHMucHVzaChjbG9uZURlZXAoc2NvcGUpKTtcbiAgICAgICAgICBhcHBseU1vZGlmaWVycyhzY29wZSwgb3B0cy5tb2RpZmllcnMpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1JlcXVlc3RCb2R5ID0gKGJvZHkpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ2JvZHknXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSB0cnlQYXJzZUpzb24oYm9keSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5ib2R5ID0gcmVxdWVzdEJvZHkgPT09IG51bGwgPyAnbnVsbCcgOiByZXF1ZXN0Qm9keTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLmJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHNjb3BlLmZpbHRlcmluZ1BhdGggPSAocmVxdWVzdFBhdGgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BhdGgnXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWR4ID0gcGVuZGluZ01vY2tzLmZpbmRJbmRleCgobSkgPT4gbS5pZHggPT09IHNjb3BlSWR4KTtcbiAgICAgICAgICAgICAgcGVuZGluZ01vY2tzW2lkeF0ucmVjb3JkLnBhdGggPSByZXF1ZXN0UGF0aDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlLnBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFBhdGg7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgICAgIH0sXG4gICAgICAgIGFmdGVyOiAoc2NvcGUsIHNjb3BlSWR4KSA9PiB7XG4gICAgICAgICAgc2NvcGUub24oJ3JlcXVlc3QnLCAocmVxLCBpbnRlcmNlcHRvciwgcmVxdWVzdEJvZHlTdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IHBlbmRpbmdNb2Nrcy5maW5kSW5kZXgoKGUpID0+IGUuaWR4ID09PSBzY29wZUlkeCk7XG5cbiAgICAgICAgICAgIGlmIChhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3Jlc3BvbnNlJ10pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IHRyeVBhcnNlSnNvbihbXG4gICAgICAgICAgICAgICAgaGVhbFNxc1NlbmRNZXNzYWdlQmF0Y2hcbiAgICAgICAgICAgICAgXS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKHJlc3BCb2R5LCBmbikgPT4gZm4ocmVxdWVzdEJvZHlTdHJpbmcsIHJlc3BCb2R5LCBzY29wZSksXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3IuYm9keVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIGludGVyY2VwdG9yLmJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgICAgICAgICAgIHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZC5yZXNwb25zZSA9IHJlc3BvbnNlQm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwZWN0ZWRDYXNzZXR0ZS5wdXNoKHBlbmRpbmdNb2Nrc1tpZHhdLnJlY29yZCk7XG4gICAgICAgICAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAgICAgICAgIG91dE9mT3JkZXJFcnJvcnMucHVzaChwZW5kaW5nTW9ja3NbaWR4XS5rZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ01vY2tzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlY29yZDogKHJlY29yZGluZ3MpID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZGluZ3MubWFwKChyKSA9PiAoe1xuICAgICAgICAgIC4uLnIsXG4gICAgICAgICAgYm9keTogdHJ5UGFyc2VKc29uKHIuYm9keSksXG4gICAgICAgICAgcmF3SGVhZGVyczogb3B0cy5zdHJpcEhlYWRlcnMgPT09IHRydWUgPyB1bmRlZmluZWQgOiByLnJhd0hlYWRlcnNcbiAgICAgICAgfSkpLCBudWxsLCAyKVxuICAgICAgfSwgcmVzb2x2ZSkpO1xuICAgICAgcmVxdWVzdEluamVjdG9yLmluamVjdCgpO1xuICAgIH0sXG4gICAgcmVsZWFzZTogYXN5bmMgKCkgPT4ge1xuICAgICAgYXNzZXJ0KG5vY2tEb25lICE9PSBudWxsKTtcbiAgICAgIHJlcXVlc3RJbmplY3Rvci5yZWxlYXNlKCk7XG4gICAgICBub2NrRG9uZSgpO1xuICAgICAgbm9ja0RvbmUgPSBudWxsO1xuICAgICAgbm9ja0xpc3RlbmVyLnVuc3Vic2NyaWJlQWxsKCdubyBtYXRjaCcpO1xuICAgICAgbm9ja01vY2sudW5wYXRjaCgpO1xuXG4gICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBleHBlY3RlZENhc3NldHRlLmxlbmd0aDsgaWR4ICs9IDEpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHBlY3RlZENhc3NldHRlW2lkeF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGV4cGVjdGVkQ2Fzc2V0dGUuc3BsaWNlKGlkeCwgMSwgLi4uYXdhaXQgZXhwZWN0ZWRDYXNzZXR0ZVtpZHhdKCkpO1xuICAgICAgICAgIGlkeCAtPSAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLmhlYWwgIT09IGZhbHNlKSB7XG4gICAgICAgIGZzLnNtYXJ0V3JpdGUoXG4gICAgICAgICAgY2Fzc2V0dGVGaWxlUGF0aCxcbiAgICAgICAgICBhbnlGbGFnUHJlc2VudChbJ21hZ2ljJywgJ3BydW5lJ10pXG4gICAgICAgICAgICA/IGV4cGVjdGVkQ2Fzc2V0dGVcbiAgICAgICAgICAgIDogWy4uLmV4cGVjdGVkQ2Fzc2V0dGUsIC4uLnBlbmRpbmdNb2Nrcy5tYXAoKHsgcmVjb3JkIH0pID0+IHJlY29yZCldLFxuICAgICAgICAgIHsga2VlcE9yZGVyOiBvdXRPZk9yZGVyRXJyb3JzLmxlbmd0aCA9PT0gMCAmJiBwZW5kaW5nTW9ja3MubGVuZ3RoID09PSAwIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0cmljdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKG91dE9mT3JkZXJFcnJvcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdXQgb2YgT3JkZXIgUmVjb3JkaW5nczogJHtvdXRPZk9yZGVyRXJyb3JzLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlbmRpbmdNb2Nrcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubWF0Y2hlZCBSZWNvcmRpbmdzOiAke3BlbmRpbmdNb2Nrcy5tYXAoKGUpID0+IGUua2V5KS5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBzaHV0ZG93bjogKCkgPT4ge1xuICAgICAgY29uc3QgdW5leHBlY3RlZEZpbGVzID0gZnMud2Fsa0RpcihvcHRzLmNhc3NldHRlRm9sZGVyKS5maWx0ZXIoKGYpID0+ICFrbm93bkNhc3NldHRlTmFtZXMuaW5jbHVkZXMoZikpO1xuICAgICAgaWYgKHVuZXhwZWN0ZWRGaWxlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGZpbGUocykgaW4gY2Fzc2V0dGUgZm9sZGVyOiAke3VuZXhwZWN0ZWRGaWxlcy5qb2luKCcsICcpfWApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0OiAoKSA9PiAoe1xuICAgICAgcmVjb3JkczogcmVjb3Jkcy5zbGljZSgpLFxuICAgICAgb3V0T2ZPcmRlckVycm9yczogb3V0T2ZPcmRlckVycm9ycy5zbGljZSgpLFxuICAgICAgdW5tYXRjaGVkUmVjb3JkaW5nczogcGVuZGluZ01vY2tzLm1hcCgoZSkgPT4gZS5rZXkpLnNsaWNlKCksXG4gICAgICBleHBlY3RlZENhc3NldHRlOiBleHBlY3RlZENhc3NldHRlLnNsaWNlKCksXG4gICAgICBjYXNzZXR0ZUZpbGVQYXRoXG4gICAgfSlcbiAgfSk7XG59O1xuIl19

2

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

@@ -5,0 +5,0 @@ "main": "lib/index.js",

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