Socket
Socket
Sign inDemoInstall

@slack/events-api

Package Overview
Dependencies
117
Maintainers
13
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.1 to 2.2.0

16

dist/adapter.js

@@ -6,3 +6,3 @@ 'use strict';

});
exports.SlackEventAdapter = exports.errorCodes = undefined;
exports.SlackEventAdapter = undefined;

@@ -39,6 +39,2 @@ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var errorCodes = exports.errorCodes = {
BODY_PARSER_NOT_PERMITTED: 'SLACKADAPTER_BODY_PARSER_NOT_PERMITTED_FAILURE'
};
var SlackEventAdapter = exports.SlackEventAdapter = function (_EventEmitter) {

@@ -131,9 +127,3 @@ _inherits(SlackEventAdapter, _EventEmitter);

return function (req, res, next) {
// If parser is being used, we can't verify request signature
if (req.body) {
var error = new Error('Parsing request body prohibits request signature verification');
error.code = errorCodes.BODY_PARSER_NOT_PERMITTED;
next(error);
return;
}
// eslint-disable-line no-unused-vars
requestListener(req, res);

@@ -160,3 +150,3 @@ };

exports.default = SlackEventAdapter;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLmpzIl0sIm5hbWVzIjpbImRlYnVnIiwiZXJyb3JDb2RlcyIsIkJPRFlfUEFSU0VSX05PVF9QRVJNSVRURUQiLCJTbGFja0V2ZW50QWRhcHRlciIsInNpZ25pbmdTZWNyZXQiLCJvcHRpb25zIiwiVHlwZUVycm9yIiwiaW5jbHVkZUJvZHkiLCJpbmNsdWRlSGVhZGVycyIsIndhaXRGb3JSZXNwb25zZSIsInBhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVxdWVzdExpc3RlbmVyIiwicG9ydCIsInJlamVjdCIsInNlcnZlciIsIm9uIiwibGlzdGVuIiwiY2xvc2UiLCJlcnJvciIsIkVycm9yIiwibWlkZGxld2FyZU9wdGlvbnMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNvZGUiLCJFdmVudEVtaXR0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxRQUFRLHFCQUFhLDJCQUFiLENBQWQ7O0FBRU8sSUFBTUMsa0NBQWE7QUFDeEJDLDZCQUEyQjtBQURILENBQW5COztJQUlNQyxpQixXQUFBQSxpQjs7O0FBQ1gsNkJBQVlDLGFBQVosRUFBeUM7QUFBQSxRQUFkQyxPQUFjLHVFQUFKLEVBQUk7O0FBQUE7O0FBQ3ZDLFFBQUksQ0FBQyxzQkFBU0QsYUFBVCxDQUFMLEVBQThCO0FBQzVCLFlBQU0sSUFBSUUsU0FBSixDQUFjLDBDQUFkLENBQU47QUFDRDs7QUFIc0M7O0FBT3ZDLFVBQUtGLGFBQUwsR0FBcUJBLGFBQXJCO0FBQ0EsVUFBS0csV0FBTCxHQUFtQixDQUFDLENBQUNGLFFBQVFFLFdBQVYsSUFBeUIsS0FBNUM7QUFDQSxVQUFLQyxjQUFMLEdBQXNCLENBQUMsQ0FBQ0gsUUFBUUcsY0FBVixJQUE0QixLQUFsRDtBQUNBLFVBQUtDLGVBQUwsR0FBdUIsQ0FBQyxDQUFDSixRQUFRSSxlQUFWLElBQTZCLEtBQXBEOztBQUVBVCxVQUFNLG9DQUFOLEVBQTRDO0FBQzFDTyxtQkFBYSxNQUFLQSxXQUR3QjtBQUUxQ0Msc0JBQWdCLE1BQUtBLGNBRnFCO0FBRzFDQyx1QkFBaUIsTUFBS0E7QUFIb0IsS0FBNUM7QUFadUM7QUFpQnhDOztBQUVEOzs7OzttQ0FDcUM7QUFBQTs7QUFBQSxVQUF4QkMsSUFBd0IsdUVBQWpCLGVBQWlCOztBQUNuQztBQUNBLGFBQU9DLFFBQVFDLE9BQVIsR0FBa0JDLElBQWxCLENBQXVCLFlBQU07QUFDbENiLGNBQU0sMkJBQU4sRUFBbUNVLElBQW5DOztBQUVBLGVBQU9JLGVBQUtDLFlBQUwsQ0FBa0IsT0FBS0MsZUFBTCxFQUFsQixDQUFQO0FBQ0QsT0FKTSxDQUFQO0FBS0Q7OzswQkFFS0MsSSxFQUFNO0FBQUE7O0FBQ1YsYUFBTyxLQUFLRixZQUFMLEdBQ0pGLElBREksQ0FDQztBQUFBLGVBQVUsSUFBSUYsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVU0sTUFBVixFQUFxQjtBQUMvQyxpQkFBS0MsTUFBTCxHQUFjQSxNQUFkO0FBQ0FBLGlCQUFPQyxFQUFQLENBQVUsT0FBVixFQUFtQkYsTUFBbkI7QUFDQUMsaUJBQU9FLE1BQVAsQ0FBY0osSUFBZCxFQUFvQjtBQUFBLG1CQUFNTCxRQUFRTyxNQUFSLENBQU47QUFBQSxXQUFwQjtBQUNBbkIsZ0JBQU0sMkJBQU4sRUFBbUNpQixJQUFuQztBQUNELFNBTGUsQ0FBVjtBQUFBLE9BREQsQ0FBUDtBQU9EOzs7MkJBRU07QUFBQTs7QUFDTCxhQUFPLElBQUlOLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVNLE1BQVYsRUFBcUI7QUFDdEMsWUFBSSxPQUFLQyxNQUFULEVBQWlCO0FBQ2YsaUJBQUtBLE1BQUwsQ0FBWUcsS0FBWixDQUFrQixVQUFDQyxLQUFELEVBQVc7QUFDM0IsbUJBQU8sT0FBS0osTUFBWjtBQUNBLGdCQUFJSSxLQUFKLEVBQVc7QUFDVEwscUJBQU9LLEtBQVA7QUFDRCxhQUZELE1BRU87QUFDTFg7QUFDRDtBQUNGLFdBUEQ7QUFRRCxTQVRELE1BU087QUFDTE0saUJBQU8sSUFBSU0sS0FBSixDQUFVLDhEQUFWLENBQVA7QUFDRDtBQUNGLE9BYk0sQ0FBUDtBQWNEOzs7d0NBRXlDO0FBQUEsVUFBeEJDLGlCQUF3Qix1RUFBSixFQUFJOztBQUN4QyxVQUFNVCxrQkFBa0IsS0FBS0EsZUFBTCxDQUFxQlMsaUJBQXJCLENBQXhCO0FBQ0EsYUFBTyxVQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxFQUFvQjtBQUN6QjtBQUNBLFlBQUlGLElBQUlHLElBQVIsRUFBYztBQUNaLGNBQU1OLFFBQVEsSUFBSUMsS0FBSixDQUFVLCtEQUFWLENBQWQ7QUFDQUQsZ0JBQU1PLElBQU4sR0FBYTdCLFdBQVdDLHlCQUF4QjtBQUNBMEIsZUFBS0wsS0FBTDtBQUNBO0FBQ0Q7QUFDRFAsd0JBQWdCVSxHQUFoQixFQUFxQkMsR0FBckI7QUFDRCxPQVREO0FBVUQ7OztzQ0FFdUM7QUFBQSxVQUF4QkYsaUJBQXdCLHVFQUFKLEVBQUk7O0FBQ3RDLGFBQU8sb0NBQWtCLElBQWxCLEVBQXdCQSxpQkFBeEIsQ0FBUDtBQUNEOzs7O0VBekVvQ00sZ0I7O0FBNEV2Qzs7Ozs7a0JBR2U1QixpQiIsImZpbGUiOiJhZGFwdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoLmlzc3RyaW5nJztcbmltcG9ydCBkZWJ1Z0ZhY3RvcnkgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgY3JlYXRlSFRUUEhhbmRsZXIgfSBmcm9tICcuL2h0dHAtaGFuZGxlcic7XG5cbmNvbnN0IGRlYnVnID0gZGVidWdGYWN0b3J5KCdAc2xhY2svZXZlbnRzLWFwaTphZGFwdGVyJyk7XG5cbmV4cG9ydCBjb25zdCBlcnJvckNvZGVzID0ge1xuICBCT0RZX1BBUlNFUl9OT1RfUEVSTUlUVEVEOiAnU0xBQ0tBREFQVEVSX0JPRFlfUEFSU0VSX05PVF9QRVJNSVRURURfRkFJTFVSRScsXG59O1xuXG5leHBvcnQgY2xhc3MgU2xhY2tFdmVudEFkYXB0ZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBjb25zdHJ1Y3RvcihzaWduaW5nU2VjcmV0LCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIWlzU3RyaW5nKHNpZ25pbmdTZWNyZXQpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdTbGFja0V2ZW50QWRhcHRlciBuZWVkcyBhIHNpZ25pbmcgc2VjcmV0Jyk7XG4gICAgfVxuXG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc2lnbmluZ1NlY3JldCA9IHNpZ25pbmdTZWNyZXQ7XG4gICAgdGhpcy5pbmNsdWRlQm9keSA9ICEhb3B0aW9ucy5pbmNsdWRlQm9keSB8fCBmYWxzZTtcbiAgICB0aGlzLmluY2x1ZGVIZWFkZXJzID0gISFvcHRpb25zLmluY2x1ZGVIZWFkZXJzIHx8IGZhbHNlO1xuICAgIHRoaXMud2FpdEZvclJlc3BvbnNlID0gISFvcHRpb25zLndhaXRGb3JSZXNwb25zZSB8fCBmYWxzZTtcblxuICAgIGRlYnVnKCdhZGFwdGVyIGluc3RhbnRpYXRlZCAtIG9wdGlvbnM6ICVvJywge1xuICAgICAgaW5jbHVkZUJvZHk6IHRoaXMuaW5jbHVkZUJvZHksXG4gICAgICBpbmNsdWRlSGVhZGVyczogdGhpcy5pbmNsdWRlSGVhZGVycyxcbiAgICAgIHdhaXRGb3JSZXNwb25zZTogdGhpcy53YWl0Rm9yUmVzcG9uc2UsXG4gICAgfSk7XG4gIH1cblxuICAvLyBUT0RPOiBvcHRpb25zIChsaWtlIGh0dHBzKVxuICBjcmVhdGVTZXJ2ZXIocGF0aCA9ICcvc2xhY2svZXZlbnRzJykge1xuICAgIC8vIE5PVEU6IHRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhIHNob3J0Y29taW5nIG9mIHRoZSBTeXN0ZW0uaW1wb3J0KCkgdHJhbmZvcm1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICBkZWJ1Zygnc2VydmVyIGNyZWF0ZWQgLSBwYXRoOiAlcycsIHBhdGgpO1xuXG4gICAgICByZXR1cm4gaHR0cC5jcmVhdGVTZXJ2ZXIodGhpcy5yZXF1ZXN0TGlzdGVuZXIoKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGFydChwb3J0KSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VydmVyKClcbiAgICAgIC50aGVuKHNlcnZlciA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuc2VydmVyID0gc2VydmVyO1xuICAgICAgICBzZXJ2ZXIub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgc2VydmVyLmxpc3Rlbihwb3J0LCAoKSA9PiByZXNvbHZlKHNlcnZlcikpO1xuICAgICAgICBkZWJ1Zygnc2VydmVyIHN0YXJ0ZWQgLSBwb3J0OiAlcycsIHBvcnQpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgc3RvcCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2VydmVyKSB7XG4gICAgICAgIHRoaXMuc2VydmVyLmNsb3NlKChlcnJvcikgPT4ge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLnNlcnZlcjtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignU2xhY2tFdmVudEFkYXB0ZXIgY2Fubm90IHN0b3Agd2hlbiBpdCBkaWQgbm90IHN0YXJ0IGEgc2VydmVyJykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZXhwcmVzc01pZGRsZXdhcmUobWlkZGxld2FyZU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlcXVlc3RMaXN0ZW5lciA9IHRoaXMucmVxdWVzdExpc3RlbmVyKG1pZGRsZXdhcmVPcHRpb25zKTtcbiAgICByZXR1cm4gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgICAvLyBJZiBwYXJzZXIgaXMgYmVpbmcgdXNlZCwgd2UgY2FuJ3QgdmVyaWZ5IHJlcXVlc3Qgc2lnbmF0dXJlXG4gICAgICBpZiAocmVxLmJvZHkpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ1BhcnNpbmcgcmVxdWVzdCBib2R5IHByb2hpYml0cyByZXF1ZXN0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24nKTtcbiAgICAgICAgZXJyb3IuY29kZSA9IGVycm9yQ29kZXMuQk9EWV9QQVJTRVJfTk9UX1BFUk1JVFRFRDtcbiAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlcXVlc3RMaXN0ZW5lcihyZXEsIHJlcyk7XG4gICAgfTtcbiAgfVxuXG4gIHJlcXVlc3RMaXN0ZW5lcihtaWRkbGV3YXJlT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUVFBIYW5kbGVyKHRoaXMsIG1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfVxufVxuXG4vKipcbiAqIEBhbGlhcyBtb2R1bGU6YWRhcHRlclxuICovXG5leHBvcnQgZGVmYXVsdCBTbGFja0V2ZW50QWRhcHRlcjtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGFwdGVyLmpzIl0sIm5hbWVzIjpbImRlYnVnIiwiU2xhY2tFdmVudEFkYXB0ZXIiLCJzaWduaW5nU2VjcmV0Iiwib3B0aW9ucyIsIlR5cGVFcnJvciIsImluY2x1ZGVCb2R5IiwiaW5jbHVkZUhlYWRlcnMiLCJ3YWl0Rm9yUmVzcG9uc2UiLCJwYXRoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwiaHR0cCIsImNyZWF0ZVNlcnZlciIsInJlcXVlc3RMaXN0ZW5lciIsInBvcnQiLCJyZWplY3QiLCJzZXJ2ZXIiLCJvbiIsImxpc3RlbiIsImNsb3NlIiwiZXJyb3IiLCJFcnJvciIsIm1pZGRsZXdhcmVPcHRpb25zIiwicmVxIiwicmVzIiwibmV4dCIsIkV2ZW50RW1pdHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLFFBQVEscUJBQWEsMkJBQWIsQ0FBZDs7SUFFYUMsaUIsV0FBQUEsaUI7OztBQUNYLDZCQUFZQyxhQUFaLEVBQXlDO0FBQUEsUUFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUFBOztBQUN2QyxRQUFJLENBQUMsc0JBQVNELGFBQVQsQ0FBTCxFQUE4QjtBQUM1QixZQUFNLElBQUlFLFNBQUosQ0FBYywwQ0FBZCxDQUFOO0FBQ0Q7O0FBSHNDOztBQU92QyxVQUFLRixhQUFMLEdBQXFCQSxhQUFyQjtBQUNBLFVBQUtHLFdBQUwsR0FBbUIsQ0FBQyxDQUFDRixRQUFRRSxXQUFWLElBQXlCLEtBQTVDO0FBQ0EsVUFBS0MsY0FBTCxHQUFzQixDQUFDLENBQUNILFFBQVFHLGNBQVYsSUFBNEIsS0FBbEQ7QUFDQSxVQUFLQyxlQUFMLEdBQXVCLENBQUMsQ0FBQ0osUUFBUUksZUFBVixJQUE2QixLQUFwRDs7QUFFQVAsVUFBTSxvQ0FBTixFQUE0QztBQUMxQ0ssbUJBQWEsTUFBS0EsV0FEd0I7QUFFMUNDLHNCQUFnQixNQUFLQSxjQUZxQjtBQUcxQ0MsdUJBQWlCLE1BQUtBO0FBSG9CLEtBQTVDO0FBWnVDO0FBaUJ4Qzs7QUFFRDs7Ozs7bUNBQ3FDO0FBQUE7O0FBQUEsVUFBeEJDLElBQXdCLHVFQUFqQixlQUFpQjs7QUFDbkM7QUFDQSxhQUFPQyxRQUFRQyxPQUFSLEdBQWtCQyxJQUFsQixDQUF1QixZQUFNO0FBQ2xDWCxjQUFNLDJCQUFOLEVBQW1DUSxJQUFuQzs7QUFFQSxlQUFPSSxlQUFLQyxZQUFMLENBQWtCLE9BQUtDLGVBQUwsRUFBbEIsQ0FBUDtBQUNELE9BSk0sQ0FBUDtBQUtEOzs7MEJBRUtDLEksRUFBTTtBQUFBOztBQUNWLGFBQU8sS0FBS0YsWUFBTCxHQUNKRixJQURJLENBQ0M7QUFBQSxlQUFVLElBQUlGLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVNLE1BQVYsRUFBcUI7QUFDL0MsaUJBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNBQSxpQkFBT0MsRUFBUCxDQUFVLE9BQVYsRUFBbUJGLE1BQW5CO0FBQ0FDLGlCQUFPRSxNQUFQLENBQWNKLElBQWQsRUFBb0I7QUFBQSxtQkFBTUwsUUFBUU8sTUFBUixDQUFOO0FBQUEsV0FBcEI7QUFDQWpCLGdCQUFNLDJCQUFOLEVBQW1DZSxJQUFuQztBQUNELFNBTGUsQ0FBVjtBQUFBLE9BREQsQ0FBUDtBQU9EOzs7MkJBRU07QUFBQTs7QUFDTCxhQUFPLElBQUlOLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVNLE1BQVYsRUFBcUI7QUFDdEMsWUFBSSxPQUFLQyxNQUFULEVBQWlCO0FBQ2YsaUJBQUtBLE1BQUwsQ0FBWUcsS0FBWixDQUFrQixVQUFDQyxLQUFELEVBQVc7QUFDM0IsbUJBQU8sT0FBS0osTUFBWjtBQUNBLGdCQUFJSSxLQUFKLEVBQVc7QUFDVEwscUJBQU9LLEtBQVA7QUFDRCxhQUZELE1BRU87QUFDTFg7QUFDRDtBQUNGLFdBUEQ7QUFRRCxTQVRELE1BU087QUFDTE0saUJBQU8sSUFBSU0sS0FBSixDQUFVLDhEQUFWLENBQVA7QUFDRDtBQUNGLE9BYk0sQ0FBUDtBQWNEOzs7d0NBRXlDO0FBQUEsVUFBeEJDLGlCQUF3Qix1RUFBSixFQUFJOztBQUN4QyxVQUFNVCxrQkFBa0IsS0FBS0EsZUFBTCxDQUFxQlMsaUJBQXJCLENBQXhCO0FBQ0EsYUFBTyxVQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxFQUFvQjtBQUFFO0FBQzNCWix3QkFBZ0JVLEdBQWhCLEVBQXFCQyxHQUFyQjtBQUNELE9BRkQ7QUFHRDs7O3NDQUV1QztBQUFBLFVBQXhCRixpQkFBd0IsdUVBQUosRUFBSTs7QUFDdEMsYUFBTyxvQ0FBa0IsSUFBbEIsRUFBd0JBLGlCQUF4QixDQUFQO0FBQ0Q7Ozs7RUFsRW9DSSxnQjs7QUFxRXZDOzs7OztrQkFHZTFCLGlCIiwiZmlsZSI6ImFkYXB0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBpc1N0cmluZyBmcm9tICdsb2Rhc2guaXNzdHJpbmcnO1xuaW1wb3J0IGRlYnVnRmFjdG9yeSBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBjcmVhdGVIVFRQSGFuZGxlciB9IGZyb20gJy4vaHR0cC1oYW5kbGVyJztcblxuY29uc3QgZGVidWcgPSBkZWJ1Z0ZhY3RvcnkoJ0BzbGFjay9ldmVudHMtYXBpOmFkYXB0ZXInKTtcblxuZXhwb3J0IGNsYXNzIFNsYWNrRXZlbnRBZGFwdGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgY29uc3RydWN0b3Ioc2lnbmluZ1NlY3JldCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc1N0cmluZyhzaWduaW5nU2VjcmV0KSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignU2xhY2tFdmVudEFkYXB0ZXIgbmVlZHMgYSBzaWduaW5nIHNlY3JldCcpO1xuICAgIH1cblxuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNpZ25pbmdTZWNyZXQgPSBzaWduaW5nU2VjcmV0O1xuICAgIHRoaXMuaW5jbHVkZUJvZHkgPSAhIW9wdGlvbnMuaW5jbHVkZUJvZHkgfHwgZmFsc2U7XG4gICAgdGhpcy5pbmNsdWRlSGVhZGVycyA9ICEhb3B0aW9ucy5pbmNsdWRlSGVhZGVycyB8fCBmYWxzZTtcbiAgICB0aGlzLndhaXRGb3JSZXNwb25zZSA9ICEhb3B0aW9ucy53YWl0Rm9yUmVzcG9uc2UgfHwgZmFsc2U7XG5cbiAgICBkZWJ1ZygnYWRhcHRlciBpbnN0YW50aWF0ZWQgLSBvcHRpb25zOiAlbycsIHtcbiAgICAgIGluY2x1ZGVCb2R5OiB0aGlzLmluY2x1ZGVCb2R5LFxuICAgICAgaW5jbHVkZUhlYWRlcnM6IHRoaXMuaW5jbHVkZUhlYWRlcnMsXG4gICAgICB3YWl0Rm9yUmVzcG9uc2U6IHRoaXMud2FpdEZvclJlc3BvbnNlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogb3B0aW9ucyAobGlrZSBodHRwcylcbiAgY3JlYXRlU2VydmVyKHBhdGggPSAnL3NsYWNrL2V2ZW50cycpIHtcbiAgICAvLyBOT1RFOiB0aGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBzaG9ydGNvbWluZyBvZiB0aGUgU3lzdGVtLmltcG9ydCgpIHRyYW5mb3JtXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgZGVidWcoJ3NlcnZlciBjcmVhdGVkIC0gcGF0aDogJXMnLCBwYXRoKTtcblxuICAgICAgcmV0dXJuIGh0dHAuY3JlYXRlU2VydmVyKHRoaXMucmVxdWVzdExpc3RlbmVyKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhcnQocG9ydCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlcnZlcigpXG4gICAgICAudGhlbihzZXJ2ZXIgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLnNlcnZlciA9IHNlcnZlcjtcbiAgICAgICAgc2VydmVyLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIHNlcnZlci5saXN0ZW4ocG9ydCwgKCkgPT4gcmVzb2x2ZShzZXJ2ZXIpKTtcbiAgICAgICAgZGVidWcoJ3NlcnZlciBzdGFydGVkIC0gcG9ydDogJXMnLCBwb3J0KTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHN0b3AoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlcnZlcikge1xuICAgICAgICB0aGlzLnNlcnZlci5jbG9zZSgoZXJyb3IpID0+IHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5zZXJ2ZXI7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ1NsYWNrRXZlbnRBZGFwdGVyIGNhbm5vdCBzdG9wIHdoZW4gaXQgZGlkIG5vdCBzdGFydCBhIHNlcnZlcicpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGV4cHJlc3NNaWRkbGV3YXJlKG1pZGRsZXdhcmVPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCByZXF1ZXN0TGlzdGVuZXIgPSB0aGlzLnJlcXVlc3RMaXN0ZW5lcihtaWRkbGV3YXJlT3B0aW9ucyk7XG4gICAgcmV0dXJuIChyZXEsIHJlcywgbmV4dCkgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICByZXF1ZXN0TGlzdGVuZXIocmVxLCByZXMpO1xuICAgIH07XG4gIH1cblxuICByZXF1ZXN0TGlzdGVuZXIobWlkZGxld2FyZU9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiBjcmVhdGVIVFRQSGFuZGxlcih0aGlzLCBtaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYWxpYXMgbW9kdWxlOmFkYXB0ZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgU2xhY2tFdmVudEFkYXB0ZXI7XG4iXX0=
//# sourceMappingURL=adapter.js.map

34

dist/http-handler.js

@@ -35,3 +35,4 @@ 'use strict';

SIGNATURE_VERIFICATION_FAILURE: 'SLACKHTTPHANDLER_REQUEST_SIGNATURE_VERIFICATION_FAILURE',
REQUEST_TIME_FAILURE: 'SLACKHTTPHANDLER_REQUEST_TIMELIMIT_FAILURE'
REQUEST_TIME_FAILURE: 'SLACKHTTPHANDLER_REQUEST_TIMELIMIT_FAILURE',
BODY_PARSER_NOT_PERMITTED: 'SLACKADAPTER_BODY_PARSER_NOT_PERMITTED_FAILURE' // moved constant from adapter
};

@@ -69,3 +70,3 @@

debug('request is older than 5 minutes');
var error = new Error('Slack request signing verification failed');
var error = new Error('Slack request signing verification outdated');
error.code = errorCodes.REQUEST_TIME_FAILURE;

@@ -188,5 +189,28 @@ throw error;

(0, _rawBody2.default)(req).then(function (r) {
// If parser is being used and we don't receive the raw payload via `rawBody`,
// we can't verify request signature
if (req.body && !req.rawBody) {
var error = new Error('Parsing request body prohibits request signature verification');
error.code = errorCodes.BODY_PARSER_NOT_PERMITTED;
handleError(error, respond);
return;
}
// Some serverless cloud providers (e.g. Google Firebase Cloud Functions) might populate
// the request with a bodyparser before it can be populated by the SDK.
// To prevent throwing an error here, we check the `rawBody` field before parsing the request
// through the `raw-body` module (see Issue #85 - https://github.com/slackapi/node-slack-events-api/issues/85)
var parseRawBody = void 0;
if (req.rawBody) {
debug('Parsing request with a rawBody attribute');
parseRawBody = new Promise(function (resolve) {
resolve(req.rawBody);
});
} else {
debug('Parsing raw request');
parseRawBody = (0, _rawBody2.default)(req);
}
parseRawBody.then(function (r) {
var rawBody = r.toString();
if (verifyRequestSignature({

@@ -230,3 +254,3 @@ signingSecret: adapter.signingSecret,

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLWhhbmRsZXIuanMiXSwibmFtZXMiOlsidmVyaWZ5UmVxdWVzdFNpZ25hdHVyZSIsImNyZWF0ZUhUVFBIYW5kbGVyIiwiZXJyb3JDb2RlcyIsIlNJR05BVFVSRV9WRVJJRklDQVRJT05fRkFJTFVSRSIsIlJFUVVFU1RfVElNRV9GQUlMVVJFIiwicmVzcG9uc2VTdGF0dXNlcyIsIk9LIiwiRkFJTFVSRSIsIlJFRElSRUNUIiwiTk9UX0ZPVU5EIiwiZGVidWciLCJzaWduaW5nU2VjcmV0IiwicmVxdWVzdFNpZ25hdHVyZSIsInJlcXVlc3RUaW1lc3RhbXAiLCJib2R5IiwiZml2ZU1pbnV0ZXNBZ28iLCJNYXRoIiwiZmxvb3IiLCJEYXRlIiwibm93IiwiZXJyb3IiLCJFcnJvciIsImNvZGUiLCJobWFjIiwiY3J5cHRvIiwiY3JlYXRlSG1hYyIsInNwbGl0IiwidmVyc2lvbiIsImhhc2giLCJ1cGRhdGUiLCJkaWdlc3QiLCJhZGFwdGVyIiwicG93ZXJlZEJ5Iiwic2VuZFJlc3BvbnNlIiwicmVzIiwiX3NlbmRSZXNwb25zZSIsImVyciIsInJlc3BvbnNlT3B0aW9ucyIsInN0YXR1cyIsInN0YXR1c0NvZGUiLCJmYWlsV2l0aE5vUmV0cnkiLCJyZWRpcmVjdExvY2F0aW9uIiwic2V0SGVhZGVyIiwiY29udGVudCIsImVuZCIsImhhbmRsZUVycm9yIiwicmVzcG9uZCIsIm1lc3NhZ2UiLCJ3YWl0Rm9yUmVzcG9uc2UiLCJlbWl0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlckVycm9yIiwibmV4dFRpY2siLCJzbGFja0V2ZW50UmVxdWVzdExpc3RlbmVyIiwicmVxIiwibWV0aG9kIiwidXJsIiwidGhlbiIsInIiLCJyYXdCb2R5IiwidG9TdHJpbmciLCJoZWFkZXJzIiwiSlNPTiIsInBhcnNlIiwidHlwZSIsImNoYWxsZW5nZSIsImVtaXRBcmd1bWVudHMiLCJldmVudCIsImluY2x1ZGVCb2R5IiwicHVzaCIsImluY2x1ZGVIZWFk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QUlPLE9BQXZCO0FBQ0Q7QUFDRCxZQUFJaEMsUUFBUWlCLGVBQVosRUFBNkI7QUFDM0JvQix3QkFBY0csSUFBZCxDQUFtQnpCLE9BQW5CO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBO0FBQ0Q7O0FBRURwQyxjQUFNLDJDQUFOLEVBQW1ESSxLQUFLdUQsS0FBTCxDQUFXSCxJQUE5RCxFQUFvRUUsYUFBcEU7QUFDQXJDLGdCQUFRa0IsSUFBUixpQkFBYW5DLEtBQUt1RCxLQUFMLENBQVdILElBQXhCLFNBQWlDRSxhQUFqQztBQUNEO0FBQ0YsS0FyQ0gsRUFxQ0tLLEtBckNMLENBcUNXLFVBQUNyRCxLQUFELEVBQVc7QUFDbEJ5QixrQkFBWXpCLEtBQVosRUFBbUIwQixPQUFuQjtBQUNELEtBdkNIO0FBd0NELEdBOUNEO0FBK0NEIiwiZmlsZSI6Imh0dHAtaGFuZGxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1Z0ZhY3RvcnkgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGdldFJhd0JvZHkgZnJvbSAncmF3LWJvZHknO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHRpbWluZ1NhZmVDb21wYXJlIGZyb20gJ3Rzc2NtcCc7XG5pbXBvcnQgeyBwYWNrYWdlSWRlbnRpZmllciB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBlcnJvckNvZGVzID0ge1xuICBTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxVUkU6ICdTTEFDS0hUVFBIQU5ETEVSX1JFUVVFU1RfU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9GQUlMVVJFJyxcbiAgUkVRVUVTVF9USU1FX0ZBSUxVUkU6ICdTTEFDS0hUVFBIQU5ETEVSX1JFUVVFU1RfVElNRUxJTUlUX0ZBSUxVUkUnLFxufTtcblxuY29uc3QgcmVzcG9uc2VTdGF0dXNlcyA9IHtcbiAgT0s6IDIwMCxcbiAgRkFJTFVSRTogNTAwLFxuICBSRURJUkVDVDogMzAyLFxuICBOT1RfRk9VTkQ6IDQwNCxcbn07XG5cbmNvbnN0IGRlYnVnID0gZGVidWdGYWN0b3J5KCdAc2xhY2svZXZlbnRzLWFwaTpodHRwLWhhbmRsZXInKTtcblxuLyoqXG4gKiBNZXRob2QgdG8gdmVyaWZ5IHNpZ25hdHVyZSBvZiByZXF1ZXN0c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduaW5nU2VjcmV0IC0gU2lnbmluZyBzZWNyZXQgdXNlZCB0byB2ZXJpZnkgcmVxdWVzdCBzaWduYXR1cmVcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0U2lnbmF0dXJlIC0gU2lnbmF0dXJlIGZyb20gcmVxdWVzdCAneC1zbGFjay1zaWduYXR1cmUnIGhlYWRlclxuICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RUaW1lc3RhbXAgLSBUaW1lc3RhbXAgZnJvbSByZXF1ZXN0ICd4LXNsYWNrLXJlcXVlc3QtdGltZXN0YW1wJyBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBib2R5IC0gUmF3IGJvZHkgc3RyaW5nXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhdGVzIGlmIHJlcXVlc3QgaXMgdmVyaWZpZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVJlcXVlc3RTaWduYXR1cmUoe1xuICBzaWduaW5nU2VjcmV0LCByZXF1ZXN0U2lnbmF0dXJlLCByZXF1ZXN0VGltZXN0YW1wLCBib2R5LFxufSkge1xuICAvLyBEaXZpZGUgY3VycmVudCBkYXRlIHRvIG1hdGNoIFNsYWNrIHRzIGZvcm1hdFxuICAvLyBTdWJ0cmFjdCA1IG1pbnV0ZXMgZnJvbSBjdXJyZW50IHRpbWVcbiAgY29uc3QgZml2ZU1pbnV0ZXNBZ28gPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSAtICg2MCAqIDUpO1xuXG4gIGlmIChyZXF1ZXN0VGltZXN0YW1wIDwgZml2ZU1pbnV0ZXNBZ28pIHtcbiAgICBkZWJ1ZygncmVxdWVzdCBpcyBvbGRlciB0aGFuIDUgbWludXRlcycpO1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdTbGFjayByZXF1ZXN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIGZhaWxlZCcpO1xuICAgIGVycm9yLmNvZGUgPSBlcnJvckNvZGVzLlJFUVVFU1RfVElNRV9GQUlMVVJFO1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgY29uc3QgaG1hYyA9IGNyeXB0by5jcmVhdGVIbWFjKCdzaGEyNTYnLCBzaWduaW5nU2VjcmV0KTtcbiAgY29uc3QgW3ZlcnNpb24sIGhhc2hdID0gcmVxdWVzdFNpZ25hdHVyZS5zcGxpdCgnPScpO1xuICBobWFjLnVwZGF0ZShgJHt2ZXJzaW9ufToke3JlcXVlc3RUaW1lc3RhbXB9OiR7Ym9keX1gKTtcblxuICBpZiAoIXRpbWluZ1NhZmVDb21wYXJlKGhhc2gsIGhtYWMuZGlnZXN0KCdoZXgnKSkpIHtcbiAgICBkZWJ1ZygncmVxdWVzdCBzaWduYXR1cmUgaXMgbm90IHZhbGlkJyk7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ1NsYWNrIHJlcXVlc3Qgc2lnbmluZyB2ZXJpZmljYXRpb24gZmFpbGVkJyk7XG4gICAgZXJyb3IuY29kZSA9IGVycm9yQ29kZXMuU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9GQUlMVVJFO1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgZGVidWcoJ3JlcXVlc3Qgc2lnbmluZyB2ZXJpZmljYXRpb24gc3VjY2VzcycpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhUVFBIYW5kbGVyKGFkYXB0ZXIpIHtcbiAgY29uc3QgcG93ZXJlZEJ5ID0gcGFja2FnZUlkZW50aWZpZXIoKTtcblxuICAvKipcbiAgICogQmluZHMgYSBzcGVjaWZpYyByZXNwb25zZSBpbnN0YW5jZSB0byB0aGUgZnVuY3Rpb24gdGhhdCB3b3JrcyBsaWtlIGFcbiAgICogY29tcGxldGlvbiBoYW5kbGVyXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByZXMgLSBSZXNwb25zZSBvYmplY3RcbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGEgZnVuY3Rpb24gdXNlZCB0byBzZW5kIHJlc3BvbnNlXG4gICAqL1xuICBmdW5jdGlvbiBzZW5kUmVzcG9uc2UocmVzKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGZvciBzZW5kaW5nIGEgcmVzcG9uc2UgdG8gYW4gZXZlbnQuIEl0IGNhbiBlaXRoZXJcbiAgICAvLyBiZSBpbnZva2VkIGJ5IGF1dG9tYXRpY2FsbHkgb3IgYnkgdGhlIHVzZXIgKHdoZW4gdXNpbmcgdGhlIGB3YWl0Rm9yUmVzcG9uc2VgIG9wdGlvbikuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIF9zZW5kUmVzcG9uc2UoZXJyLCByZXNwb25zZU9wdGlvbnMpIHtcbiAgICAgIGRlYnVnKCdzZW5kaW5nIHJlc3BvbnNlIC0gZXJyb3I6ICVzLCByZXNwb25zZU9wdGlvbnM6ICVvJywgZXJyLCByZXNwb25zZU9wdGlvbnMpO1xuICAgICAgLy8gRGVhbCB3aXRoIGVycm9ycyB1cCBmcm9udFxuICAgICAgaWYgKGVycikge1xuICAgICAgICBpZiAoZXJyLnN0YXR1cykge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gZXJyLnN0YXR1cztcbiAgICAgICAgfSBlbHNlIGlmIChlcnIuY29kZSA9PT0gZXJyb3JDb2Rlcy5TSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxVUkUgfHxcbiAgICAgICAgICAgIGVyci5jb2RlID09PSBlcnJvckNvZGVzLlJFUVVFU1RfVElNRV9GQUlMVVJFKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSByZXNwb25zZVN0YXR1c2VzLk5PVF9GT1VORDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHJlc3BvbnNlU3RhdHVzZXMuRkFJTFVSRTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRmlyc3QgZGV0ZXJtaW5lIHRoZSByZXNwb25zZSBzdGF0dXNcbiAgICAgICAgaWYgKHJlc3BvbnNlT3B0aW9ucykge1xuICAgICAgICAgIGlmIChyZXNwb25zZU9wdGlvbnMuZmFpbFdpdGhOb1JldHJ5KSB7XG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHJlc3BvbnNlU3RhdHVzZXMuRkFJTFVSRTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlT3B0aW9ucy5yZWRpcmVjdExvY2F0aW9uKSB7XG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHJlc3BvbnNlU3RhdHVzZXMuUkVESVJFQ1Q7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVSTCBWZXJpZmljYXRpb25cbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2VTdGF0dXNlcy5PSztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSByZXNwb25zZVN0YXR1c2VzLk9LO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTmV4dCBkZXRlcm1pbmUgdGhlIHJlc3BvbnNlIGhlYWRlcnNcbiAgICAgICAgaWYgKHJlc3BvbnNlT3B0aW9ucyAmJiByZXNwb25zZU9wdGlvbnMuZmFpbFdpdGhOb1JldHJ5KSB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignWC1TbGFjay1Oby1SZXRyeScsICcxJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNldEhlYWRlcignWC1TbGFjay1Qb3dlcmVkLUJ5JywgcG93ZXJlZEJ5KTtcbiAgICAgIH1cblxuICAgICAgLy8gTGFzdGx5LCBzZW5kIHRoZSByZXNwb25zZVxuICAgICAgaWYgKHJlc3BvbnNlT3B0aW9ucyAmJiByZXNwb25zZU9wdGlvbnMuY29udGVudCkge1xuICAgICAgICByZXMuZW5kKHJlc3BvbnNlT3B0aW9ucy5jb250ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5lbmQoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFic3RyYWN0cyBlcnJvciBoYW5kbGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcmVzcG9uZFxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlRXJyb3IoZXJyb3IsIHJlc3BvbmQpIHtcbiAgICBkZWJ1ZygnaGFuZGxpbmcgZXJyb3IgLSBtZXNzYWdlOiAlcywgY29kZTogJXMnLCBlcnJvci5tZXNzYWdlLCBlcnJvci5jb2RlKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFkYXB0ZXIud2FpdEZvclJlc3BvbnNlKSB7XG4gICAgICAgIGFkYXB0ZXIuZW1pdCgnZXJyb3InLCBlcnJvciwgcmVzcG9uZCk7XG4gICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIGFkYXB0ZXIuZW1pdCgnZXJyb3InLCBlcnJvcik7XG4gICAgICAgIHJlc3BvbmQoeyBzdGF0dXM6IDUwMCB9LCB7IGNvbnRlbnQ6IGVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGFwdGVyLmVtaXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgICByZXNwb25kKGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoICh1c2VyRXJyb3IpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soKCkgPT4geyB0aHJvdyB1c2VyRXJyb3I7IH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0IGxpc3RlbmVyIHVzZWQgdG8gaGFuZGxlIFNsYWNrIHJlcXVlc3RzIGFuZCBzZW5kIHJlc3BvbnNlcyBhbmRcbiAgICogdmVyaWZ5IHJlcXVlc3Qgc2lnbmF0dXJlc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVxIC0gUmVxdWVzdCBvYmplY3RcbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcyAtIFJlc3BvbnNlIG9iamVjdFxuICAgKi9cbiAgcmV0dXJuIGZ1bmN0aW9uIHNsYWNrRXZlbnRSZXF1ZXN0TGlzdGVuZXIocmVxLCByZXMpIHtcbiAgICBkZWJ1ZygncmVxdWVzdCByZWNpZXZlZCAtIG1ldGhvZDogJXMsIHBhdGg6ICVzJywgcmVxLm1ldGhvZCwgcmVxLnVybCk7XG5cbiAgICAvLyBCaW5kIGEgcmVzcG9uc2UgZnVuY3Rpb24gdG8gdGhpcyByZXF1ZXN0J3MgcmVzcG9uZCBvYmplY3QuXG4gICAgY29uc3QgcmVzcG9uZCA9IHNlbmRSZXNwb25zZShyZXMpO1xuXG4gICAgZ2V0UmF3Qm9keShyZXEpXG4gICAgICAudGhlbigocikgPT4ge1xuICAgICAgICBjb25zdCByYXdCb2R5ID0gci50b1N0cmluZygpO1xuXG4gICAgICAgIGlmICh2ZXJpZnlSZXF1ZXN0U2lnbmF0dXJlKHtcbiAgICAgICAgICBzaWduaW5nU2VjcmV0OiBhZGFwdGVyLnNpZ25pbmdTZWNyZXQsXG4gICAgICAgICAgcmVxdWVzdFNpZ25hdHVyZTogcmVxLmhlYWRlcnNbJ3gtc2xhY2stc2lnbmF0dXJlJ10sXG4gICAgICAgICAgcmVxdWVzdFRpbWVzdGFtcDogcmVxLmhlYWRlcnNbJ3gtc2xhY2stcmVxdWVzdC10aW1lc3RhbXAnXSxcbiAgICAgICAgICBib2R5OiByYXdCb2R5LFxuICAgICAgICB9KSkge1xuICAgICAgICAgIC8vIFJlcXVlc3Qgc2lnbmF0dXJlIGlzIHZlcmlmaWVkXG4gICAgICAgICAgLy8gUGFyc2UgcmF3IGJvZHlcbiAgICAgICAgICBjb25zdCBib2R5ID0gSlNPTi5wYXJzZShyYXdCb2R5KTtcblxuICAgICAgICAgIC8vIEhhbmRsZSBVUkwgdmVyaWZpY2F0aW9uIGNoYWxsZW5nZVxuICAgICAgICAgIGlmIChib2R5LnR5cGUgPT09ICd1cmxfdmVyaWZpY2F0aW9uJykge1xuICAgICAgICAgICAgZGVidWcoJ2hhbmRsaW5nIHVybCB2ZXJpZmljYXRpb24nKTtcbiAgICAgICAgICAgIHJlc3BvbmQobnVsbCwgeyBjb250ZW50OiBib2R5LmNoYWxsZW5nZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlbWl0QXJndW1lbnRzID0gW2JvZHkuZXZlbnRdO1xuICAgICAgICAgIGlmIChhZGFwdGVyLmluY2x1ZGVCb2R5KSB7XG4gICAgICAgICAgICBlbWl0QXJndW1lbnRzLnB1c2goYm9keSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhZGFwdGVyLmluY2x1ZGVIZWFkZXJzKSB7XG4gICAgICAgICAgICBlbWl0QXJndW1lbnRzLnB1c2gocmVxLmhlYWRlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWRhcHRlci53YWl0Rm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGVtaXRBcmd1bWVudHMucHVzaChyZXNwb25kKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlYnVnKCdlbWl0dGluZyBldmVudCAtICB0eXBlOiAlcywgYXJndW1lbnRzOiAlbycsIGJvZHkuZXZlbnQudHlwZSwgZW1pdEFyZ3VtZW50cyk7XG4gICAgICAgICAgYWRhcHRlci5lbWl0KGJvZHkuZXZlbnQudHlwZSwgLi4uZW1pdEFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgcmVzcG9uZCk7XG4gICAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLWhhbmRsZXIuanMiXSwibmFtZXMiOlsidmVyaWZ5UmVxdWVzdFNpZ25hdHVyZSIsImNyZWF0ZUhUVFBIYW5kbGVyIiwiZXJyb3JDb2RlcyIsIlNJR05BVFVSRV9WRVJJRklDQVRJT05fRkFJTFVSRSIsIlJFUVVFU1RfVElNRV9GQUlMVVJFIiwiQk9EWV9QQVJTRVJfTk9UX1BFUk1JVFRFRCIsInJlc3BvbnNlU3RhdHVzZXMiLCJPSyIsIkZBSUxVUkUiLCJSRURJUkVDVCIsIk5PVF9GT1VORCIsImRlYnVnIiwic2lnbmluZ1NlY3JldCIsInJlcXVlc3RTaWduYXR1cmUiLCJyZXF1ZXN0VGltZXN0YW1wIiwiYm9keSIsImZpdmVNaW51dGVzQWdvIiwiTWF0aCIsImZsb29yIiwiRGF0ZSIsIm5vdyIsImVycm9yIiwiRXJyb3IiLCJjb2RlIiwiaG1hYyIsImNyeXB0byIsImNyZWF0ZUhtYWMiLCJzcGxpdCIsInZlcnNpb24iLCJoYXNoIiwidXBkYXRlIiwiZGlnZXN0IiwiYWRhcHRlciIsInBvd2VyZWRCeSIsInNlbmRSZXNwb25zZSIsInJlcyIsIl9zZW5kUmVzcG9uc2UiLCJlcnIiLCJyZXNwb25zZU9wdGlvbnMiLCJzdGF0dXMiLCJzdGF0dXNDb2RlIiwiZmFpbFdpdGhOb1JldHJ5IiwicmVkaXJlY3RMb2NhdGlvbiIsInNldEhlYWRlciIsImNvbnRlbnQiLCJlbmQiLCJoYW5kbGVFcnJvciIsInJlc3BvbmQiLCJtZXNzYWdlIiwid2FpdEZvclJlc3BvbnNlIiwiZW1pdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVzZXJFcnJvciIsIm5leHRUaWNrIiwic2xhY2tFdmVudFJlcXVlc3RMaXN0ZW5lciIsInJlcSIsIm1ldGhvZCIsInVybCIsInJhd0JvZHkiLCJwYXJzZVJhd0JvZHkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJyIiwidG9TdHJpbmciLCJoZWFkZXJzIiwiSlNPTiIsInBhcnNlIiwidHlwZSIsImNoYWxsZW5nZSIsImVtaXRBcmd1bWVudHMiLCJldmVudCIsImluY2x1ZGVCb2R5IiwicHVzaCIsImluY2x1ZGVIZWFkZXJzIiwiY2F0Y2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztRQThCZ0JBLHNCLEdBQUFBLHNCO1FBNkJBQyxpQixHQUFBQSxpQjs7QUEzRGhCOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFTyxJQUFNQyxrQ0FBYTtBQUN4QkMsa0NBQWdDLHlEQURSO0FBRXhCQyx3QkFBc0IsNENBRkU7QUFHeEJDLDZCQUEyQixnREFISCxDQUdxRDtBQUhyRCxDQUFuQjs7QUFNUCxJQUFNQyxtQkFBbUI7QUFDdkJDLE1BQUksR0FEbUI7QUFFdkJDLFdBQVMsR0FGYztBQUd2QkMsWUFBVSxHQUhhO0FBSXZCQyxhQUFXO0FBSlksQ0FBekI7O0FBT0EsSUFBTUMsUUFBUSxxQkFBYSxnQ0FBYixDQUFkOztBQUVBOzs7Ozs7Ozs7QUFTTyxTQUFTWCxzQkFBVCxPQUVKO0FBQUEsTUFERFksYUFDQyxRQUREQSxhQUNDO0FBQUEsTUFEY0MsZ0JBQ2QsUUFEY0EsZ0JBQ2Q7QUFBQSxNQURnQ0MsZ0JBQ2hDLFFBRGdDQSxnQkFDaEM7QUFBQSxNQURrREMsSUFDbEQsUUFEa0RBLElBQ2xEOztBQUNEO0FBQ0E7QUFDQSxNQUFNQyxpQkFBaUJDLEtBQUtDLEtBQUwsQ0FBV0MsS0FBS0MsR0FBTCxLQUFhLElBQXhCLElBQWlDLEtBQUssQ0FBN0Q7O0FBRUEsTUFBSU4sbUJBQW1CRSxjQUF2QixFQUF1QztBQUNyQ0wsVUFBTSxpQ0FBTjtBQUNBLFFBQU1VLFFBQVEsSUFBSUMsS0FBSixDQUFVLDZDQUFWLENBQWQ7QUFDQUQsVUFBTUUsSUFBTixHQUFhckIsV0FBV0Usb0JBQXhCO0FBQ0EsVUFBTWlCLEtBQU47QUFDRDs7QUFFRCxNQUFNRyxPQUFPQyxpQkFBT0MsVUFBUCxDQUFrQixRQUFsQixFQUE0QmQsYUFBNUIsQ0FBYjs7QUFaQyw4QkFhdUJDLGlCQUFpQmMsS0FBakIsQ0FBdUIsR0FBdkIsQ0Fi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ZW50IjpbImltcG9ydCBkZWJ1Z0ZhY3RvcnkgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGdldFJhd0JvZHkgZnJvbSAncmF3LWJvZHknO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHRpbWluZ1NhZmVDb21wYXJlIGZyb20gJ3Rzc2NtcCc7XG5pbXBvcnQgeyBwYWNrYWdlSWRlbnRpZmllciB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBjb25zdCBlcnJvckNvZGVzID0ge1xuICBTSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxVUkU6ICdTTEFDS0hUVFBIQU5ETEVSX1JFUVVFU1RfU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9GQUlMVVJFJyxcbiAgUkVRVUVTVF9USU1FX0ZBSUxVUkU6ICdTTEFDS0hUVFBIQU5ETEVSX1JFUVVFU1RfVElNRUxJTUlUX0ZBSUxVUkUnLFxuICBCT0RZX1BBUlNFUl9OT1RfUEVSTUlUVEVEOiAnU0xBQ0tBREFQVEVSX0JPRFlfUEFSU0VSX05PVF9QRVJNSVRURURfRkFJTFVSRScsIC8vIG1vdmVkIGNvbnN0YW50IGZyb20gYWRhcHRlclxufTtcblxuY29uc3QgcmVzcG9uc2VTdGF0dXNlcyA9IHtcbiAgT0s6IDIwMCxcbiAgRkFJTFVSRTogNTAwLFxuICBSRURJUkVDVDogMzAyLFxuICBOT1RfRk9VTkQ6IDQwNCxcbn07XG5cbmNvbnN0IGRlYnVnID0gZGVidWdGYWN0b3J5KCdAc2xhY2svZXZlbnRzLWFwaTpodHRwLWhhbmRsZXInKTtcblxuLyoqXG4gKiBNZXRob2QgdG8gdmVyaWZ5IHNpZ25hdHVyZSBvZiByZXF1ZXN0c1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduaW5nU2VjcmV0IC0gU2lnbmluZyBzZWNyZXQgdXNlZCB0byB2ZXJpZnkgcmVxdWVzdCBzaWduYXR1cmVcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1ZXN0U2lnbmF0dXJlIC0gU2lnbmF0dXJlIGZyb20gcmVxdWVzdCAneC1zbGFjay1zaWduYXR1cmUnIGhlYWRlclxuICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RUaW1lc3RhbXAgLSBUaW1lc3RhbXAgZnJvbSByZXF1ZXN0ICd4LXNsYWNrLXJlcXVlc3QtdGltZXN0YW1wJyBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBib2R5IC0gUmF3IGJvZHkgc3RyaW5nXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gSW5kaWNhdGVzIGlmIHJlcXVlc3QgaXMgdmVyaWZpZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVJlcXVlc3RTaWduYXR1cmUoe1xuICBzaWduaW5nU2VjcmV0LCByZXF1ZXN0U2lnbmF0dXJlLCByZXF1ZXN0VGltZXN0YW1wLCBib2R5LFxufSkge1xuICAvLyBEaXZpZGUgY3VycmVudCBkYXRlIHRvIG1hdGNoIFNsYWNrIHRzIGZvcm1hdFxuICAvLyBTdWJ0cmFjdCA1IG1pbnV0ZXMgZnJvbSBjdXJyZW50IHRpbWVcbiAgY29uc3QgZml2ZU1pbnV0ZXNBZ28gPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSAtICg2MCAqIDUpO1xuXG4gIGlmIChyZXF1ZXN0VGltZXN0YW1wIDwgZml2ZU1pbnV0ZXNBZ28pIHtcbiAgICBkZWJ1ZygncmVxdWVzdCBpcyBvbGRlciB0aGFuIDUgbWludXRlcycpO1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdTbGFjayByZXF1ZXN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIG91dGRhdGVkJyk7XG4gICAgZXJyb3IuY29kZSA9IGVycm9yQ29kZXMuUkVRVUVTVF9USU1FX0ZBSUxVUkU7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBjb25zdCBobWFjID0gY3J5cHRvLmNyZWF0ZUhtYWMoJ3NoYTI1NicsIHNpZ25pbmdTZWNyZXQpO1xuICBjb25zdCBbdmVyc2lvbiwgaGFzaF0gPSByZXF1ZXN0U2lnbmF0dXJlLnNwbGl0KCc9Jyk7XG4gIGhtYWMudXBkYXRlKGAke3ZlcnNpb259OiR7cmVxdWVzdFRpbWVzdGFtcH06JHtib2R5fWApO1xuXG4gIGlmICghdGltaW5nU2FmZUNvbXBhcmUoaGFzaCwgaG1hYy5kaWdlc3QoJ2hleCcpKSkge1xuICAgIGRlYnVnKCdyZXF1ZXN0IHNpZ25hdHVyZSBpcyBub3QgdmFsaWQnKTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignU2xhY2sgcmVxdWVzdCBzaWduaW5nIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTtcbiAgICBlcnJvci5jb2RlID0gZXJyb3JDb2Rlcy5TSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxVUkU7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBkZWJ1ZygncmVxdWVzdCBzaWduaW5nIHZlcmlmaWNhdGlvbiBzdWNjZXNzJyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSFRUUEhhbmRsZXIoYWRhcHRlcikge1xuICBjb25zdCBwb3dlcmVkQnkgPSBwYWNrYWdlSWRlbnRpZmllcigpO1xuXG4gIC8qKlxuICAgKiBCaW5kcyBhIHNwZWNpZmljIHJlc3BvbnNlIGluc3RhbmNlIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHdvcmtzIGxpa2UgYVxuICAgKiBjb21wbGV0aW9uIGhhbmRsZXJcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcyAtIFJlc3BvbnNlIG9iamVjdFxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYSBmdW5jdGlvbiB1c2VkIHRvIHNlbmQgcmVzcG9uc2VcbiAgICovXG4gIGZ1bmN0aW9uIHNlbmRSZXNwb25zZShyZXMpIHtcbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgZm9yIHNlbmRpbmcgYSByZXNwb25zZSB0byBhbiBldmVudC4gSXQgY2FuIGVpdGhlclxuICAgIC8vIGJlIGludm9rZWQgYnkgYXV0b21hdGljYWxseSBvciBieSB0aGUgdXNlciAod2hlbiB1c2luZyB0aGUgYHdhaXRGb3JSZXNwb25zZWAgb3B0aW9uKS5cbiAgICByZXR1cm4gZnVuY3Rpb24gX3NlbmRSZXNwb25zZShlcnIsIHJlc3BvbnNlT3B0aW9ucykge1xuICAgICAgZGVidWcoJ3NlbmRpbmcgcmVzcG9uc2UgLSBlcnJvcjogJXMsIHJlc3BvbnNlT3B0aW9uczogJW8nLCBlcnIsIHJlc3BvbnNlT3B0aW9ucyk7XG4gICAgICAvLyBEZWFsIHdpdGggZXJyb3JzIHVwIGZyb250XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIuc3RhdHVzKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzO1xuICAgICAgICB9IGVsc2UgaWYgKGVyci5jb2RlID09PSBlcnJvckNvZGVzLlNJR05BVFVSRV9WRVJJRklDQVRJT05fRkFJTFVSRSB8fFxuICAgICAgICAgICAgZXJyLmNvZGUgPT09IGVycm9yQ29kZXMuUkVRVUVTVF9USU1FX0ZBSUxVUkUpIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHJlc3BvbnNlU3RhdHVzZXMuTk9UX0ZPVU5EO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2VTdGF0dXNlcy5GQUlMVVJFO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGaXJzdCBkZXRlcm1pbmUgdGhlIHJlc3BvbnNlIHN0YXR1c1xuICAgICAgICBpZiAocmVzcG9uc2VPcHRpb25zKSB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlT3B0aW9ucy5mYWlsV2l0aE5vUmV0cnkpIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2VTdGF0dXNlcy5GQUlMVVJFO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VPcHRpb25zLnJlZGlyZWN0TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2VTdGF0dXNlcy5SRURJUkVDVDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVVJMIFZlcmlmaWNhdGlvblxuICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSByZXNwb25zZVN0YXR1c2VzLk9LO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IHJlc3BvbnNlU3RhdHVzZXMuT0s7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOZXh0IGRldGVybWluZSB0aGUgcmVzcG9uc2UgaGVhZGVyc1xuICAgICAgICBpZiAocmVzcG9uc2VPcHRpb25zICYmIHJlc3BvbnNlT3B0aW9ucy5mYWlsV2l0aE5vUmV0cnkpIHtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKCdYLVNsYWNrLU5vLVJldHJ5JywgJzEnKTtcbiAgICAgICAgfVxuICAgICAgICByZXMuc2V0SGVhZGVyKCdYLVNsYWNrLVBvd2VyZWQtQnknLCBwb3dlcmVkQnkpO1xuICAgICAgfVxuXG4gICAgICAvLyBMYXN0bHksIHNlbmQgdGhlIHJlc3BvbnNlXG4gICAgICBpZiAocmVzcG9uc2VPcHRpb25zICYmIHJlc3BvbnNlT3B0aW9ucy5jb250ZW50KSB7XG4gICAgICAgIHJlcy5lbmQocmVzcG9uc2VPcHRpb25zLmNvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWJzdHJhY3RzIGVycm9yIGhhbmRsaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXNwb25kXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVFcnJvcihlcnJvciwgcmVzcG9uZCkge1xuICAgIGRlYnVnKCdoYW5kbGluZyBlcnJvciAtIG1lc3NhZ2U6ICVzLCBjb2RlOiAlcycsIGVycm9yLm1lc3NhZ2UsIGVycm9yLmNvZGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoYWRhcHRlci53YWl0Rm9yUmVzcG9uc2UpIHtcbiAgICAgICAgYWRhcHRlci5lbWl0KCdlcnJvcicsIGVycm9yLCByZXNwb25kKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgYWRhcHRlci5lbWl0KCdlcnJvcicsIGVycm9yKTtcbiAgICAgICAgcmVzcG9uZCh7IHN0YXR1czogNTAwIH0sIHsgY29udGVudDogZXJyb3IubWVzc2FnZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkYXB0ZXIuZW1pdCgnZXJyb3InLCBlcnJvcik7XG4gICAgICAgIHJlc3BvbmQoZXJyb3IpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKHVzZXJFcnJvcikge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7IHRocm93IHVzZXJFcnJvcjsgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgbGlzdGVuZXIgdXNlZCB0byBoYW5kbGUgU2xhY2sgcmVxdWVzdHMgYW5kIHNlbmQgcmVzcG9uc2VzIGFuZFxuICAgKiB2ZXJpZnkgcmVxdWVzdCBzaWduYXR1cmVzXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByZXEgLSBSZXF1ZXN0IG9iamVjdFxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVzIC0gUmVzcG9uc2Ugb2JqZWN0XG4gICAqL1xuICByZXR1cm4gZnVuY3Rpb24gc2xhY2tFdmVudFJlcXVlc3RMaXN0ZW5lcihyZXEsIHJlcykge1xuICAgIGRlYnVnKCdyZXF1ZXN0IHJlY2lldmVkIC0gbWV0aG9kOiAlcywgcGF0aDogJXMnLCByZXEubWV0aG9kLCByZXEudXJsKTtcblxuICAgIC8vIEJpbmQgYSByZXNwb25zZSBmdW5jdGlvbiB0byB0aGlzIHJlcXVlc3QncyByZXNwb25kIG9iamVjdC5cbiAgICBjb25zdCByZXNwb25kID0gc2VuZFJlc3BvbnNlKHJlcyk7XG5cbiAgICAvLyBJZiBwYXJzZXIgaXMgYmVpbmcgdXNlZCBhbmQgd2UgZG9uJ3QgcmVjZWl2ZSB0aGUgcmF3IHBheWxvYWQgdmlhIGByYXdCb2R5YCxcbiAgICAvLyB3ZSBjYW4ndCB2ZXJpZnkgcmVxdWVzdCBzaWduYXR1cmVcbiAgICBpZiAocmVxLmJvZHkgJiYgIXJlcS5yYXdCb2R5KSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignUGFyc2luZyByZXF1ZXN0IGJvZHkgcHJvaGliaXRzIHJlcXVlc3Qgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbicpO1xuICAgICAgZXJyb3IuY29kZSA9IGVycm9yQ29kZXMuQk9EWV9QQVJTRVJfTk9UX1BFUk1JVFRFRDtcbiAgICAgIGhhbmRsZUVycm9yKGVycm9yLCByZXNwb25kKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTb21lIHNlcnZlcmxlc3MgY2xvdWQgcHJvdmlkZXJzIChlLmcuIEdvb2dsZSBGaXJlYmFzZSBDbG91ZCBGdW5jdGlvbnMpIG1pZ2h0IHBvcHVsYXRlXG4gICAgLy8gdGhlIHJlcXVlc3Qgd2l0aCBhIGJvZHlwYXJzZXIgYmVmb3JlIGl0IGNhbiBiZSBwb3B1bGF0ZWQgYnkgdGhlIFNESy5cbiAgICAvLyBUbyBwcmV2ZW50IHRocm93aW5nIGFuIGVycm9yIGhlcmUsIHdlIGNoZWNrIHRoZSBgcmF3Qm9keWAgZmllbGQgYmVmb3JlIHBhcnNpbmcgdGhlIHJlcXVlc3RcbiAgICAvLyB0aHJvdWdoIHRoZSBgcmF3LWJvZHlgIG1vZHVsZSAoc2VlIElzc3VlICM4NSAtIGh0dHBzOi8vZ2l0aHViLmNvbS9zbGFja2FwaS9ub2RlLXNsYWNrLWV2ZW50cy1hcGkvaXNzdWVzLzg1KVxuICAgIGxldCBwYXJzZVJhd0JvZHk7XG4gICAgaWYgKHJlcS5yYXdCb2R5KSB7XG4gICAgICBkZWJ1ZygnUGFyc2luZyByZXF1ZXN0IHdpdGggYSByYXdCb2R5IGF0dHJpYnV0ZScpO1xuICAgICAgcGFyc2VSYXdCb2R5ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVzb2x2ZShyZXEucmF3Qm9keSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ1BhcnNpbmcgcmF3IHJlcXVlc3QnKTtcbiAgICAgIHBhcnNlUmF3Qm9keSA9IGdldFJhd0JvZHkocmVxKTtcbiAgICB9XG5cbiAgICBwYXJzZVJhd0JvZHlcbiAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhd0JvZHkgPSByLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmICh2ZXJpZnlSZXF1ZXN0U2lnbmF0dXJlKHtcbiAgICAgICAgICBzaWduaW5nU2VjcmV0OiBhZGFwdGVyLnNpZ25pbmdTZWNyZXQsXG4gICAgICAgICAgcmVxdWVzdFNpZ25hdHVyZTogcmVxLmhlYWRlcnNbJ3gtc2xhY2stc2lnbmF0dXJlJ10sXG4gICAgICAgICAgcmVxdWVzdFRpbWVzdGFtcDogcmVxLmhlYWRlcnNbJ3gtc2xhY2stcmVxdWVzdC10aW1lc3RhbXAnXSxcbiAgICAgICAgICBib2R5OiByYXdCb2R5LFxuICAgICAgICB9KSkge1xuICAgICAgICAgIC8vIFJlcXVlc3Qgc2lnbmF0dXJlIGlzIHZlcmlmaWVkXG4gICAgICAgICAgLy8gUGFyc2UgcmF3IGJvZHlcbiAgICAgICAgICBjb25zdCBib2R5ID0gSlNPTi5wYXJzZShyYXdCb2R5KTtcblxuICAgICAgICAgIC8vIEhhbmRsZSBVUkwgdmVyaWZpY2F0aW9uIGNoYWxsZW5nZVxuICAgICAgICAgIGlmIChib2R5LnR5cGUgPT09ICd1cmxfdmVyaWZpY2F0aW9uJykge1xuICAgICAgICAgICAgZGVidWcoJ2hhbmRsaW5nIHVybCB2ZXJpZmljYXRpb24nKTtcbiAgICAgICAgICAgIHJlc3BvbmQobnVsbCwgeyBjb250ZW50OiBib2R5LmNoYWxsZW5nZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlbWl0QXJndW1lbnRzID0gW2JvZHkuZXZlbnRdO1xuICAgICAgICAgIGlmIChhZGFwdGVyLmluY2x1ZGVCb2R5KSB7XG4gICAgICAgICAgICBlbWl0QXJndW1lbnRzLnB1c2goYm9keSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhZGFwdGVyLmluY2x1ZGVIZWFkZXJzKSB7XG4gICAgICAgICAgICBlbWl0QXJndW1lbnRzLnB1c2gocmVxLmhlYWRlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWRhcHRlci53YWl0Rm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGVtaXRBcmd1bWVudHMucHVzaChyZXNwb25kKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlYnVnKCdlbWl0dGluZyBldmVudCAtICB0eXBlOiAlcywgYXJndW1lbnRzOiAlbycsIGJvZHkuZXZlbnQudHlwZSwgZW1pdEFyZ3VtZW50cyk7XG4gICAgICAgICAgYWRhcHRlci5lbWl0KGJvZHkuZXZlbnQudHlwZSwgLi4uZW1pdEFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgcmVzcG9uZCk7XG4gICAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=http-handler.js.map
{
"name": "@slack/events-api",
"version": "2.1.1",
"version": "2.2.0",
"description": "Slack Events API module",

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc