notification-processor 4.9.0 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +2 -0
  2. package/copyToFunction +9 -0
  3. package/lib/exceptions/non.retryable.js +1 -1
  4. package/lib/index.js +1 -1
  5. package/lib/observers/deadLetterSucceeded.observer.js +1 -1
  6. package/lib/observers/delay.levels.js +1 -1
  7. package/lib/observers/delay.observer.js +1 -1
  8. package/lib/observers/didLastRetry.observer.js +1 -1
  9. package/lib/observers/incidentsApi.observer.js +1 -1
  10. package/lib/observers/logger.observer.js +1 -1
  11. package/lib/observers/redis.observer.js +1 -1
  12. package/lib/processor.builder.js +1 -1
  13. package/lib/processor.js +1 -1
  14. package/lib/processors/deadletter.processor.js +1 -1
  15. package/lib/processors/job/index.js +1 -1
  16. package/lib/processors/job/job.processor.js +4 -2
  17. package/lib/processors/job/notification.api.js +66 -23
  18. package/lib/processors/maxRetries.processor.js +1 -1
  19. package/lib/processors/request.async.processor.js +1 -1
  20. package/lib/processors/request.processor.js +1 -1
  21. package/lib/processors/requestWithRetries.async.processor.js +1 -1
  22. package/lib/senders/async.producteca.sender.js +1 -1
  23. package/lib/senders/index.js +1 -1
  24. package/lib/senders/meli.sender.js +1 -1
  25. package/lib/senders/producteca.sender.js +1 -1
  26. package/lib/services/oAuthApi.js +1 -1
  27. package/lib/services/redis.js +1 -1
  28. package/lib/sources/index.js +1 -1
  29. package/lib/sources/queue.source.js +1 -1
  30. package/lib/sources/service.bus.source.js +1 -1
  31. package/lib/sources/table.source.js +1 -1
  32. package/lib/sources/unknown.source.js +1 -1
  33. package/lib/specHelpers/fixture.js +1 -1
  34. package/lib/specHelpers/redis.observer.mock.js +1 -1
  35. package/notification-processor.sublime-workspace +1943 -0
  36. package/package.json +2 -1
@@ -1 +1,3 @@
1
1
  [Finishes #ID](https://www.pivotaltracker.com/story/show/ID)
2
+
3
+ - [ ] App levantada, probada y con los tests corridos! [👌](https://c.tenor.com/joILBoleQeoAAAAC/ricky-fort.gif)
package/copyToFunction ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+ FUNCTION=$1
3
+
4
+ npm run build
5
+ echo "Removing old version from $FUNCTION"
6
+ rm -rf "../$FUNCTION/node_modules/notification-processor/lib/"
7
+ echo "Removed. Copying new version to $FUNCTION"
8
+ cp -R lib/ "../$FUNCTION/node_modules/notification-processor/lib/"
9
+ echo "Done"
@@ -2,7 +2,7 @@
2
2
 
3
3
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4
4
 
5
- // Generated by CoffeeScript 2.5.1
5
+ // Generated by CoffeeScript 2.7.0
6
6
  (function () {
7
7
  var NonRetryable;
8
8
 
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
6
  Builder: require("./processor.builder"),
@@ -8,7 +8,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
10
 
11
- // Generated by CoffeeScript 2.5.1
11
+ // Generated by CoffeeScript 2.7.0
12
12
  (function () {
13
13
  var DeadLetterSucceededObserver,
14
14
  Promise,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var convert;
6
6
 
@@ -8,7 +8,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
10
 
11
- // Generated by CoffeeScript 2.5.1
11
+ // Generated by CoffeeScript 2.7.0
12
12
  (function () {
13
13
  var DelayObserver,
14
14
  Promise,
@@ -8,7 +8,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
10
 
11
- // Generated by CoffeeScript 2.5.1
11
+ // Generated by CoffeeScript 2.7.0
12
12
  (function () {
13
13
  var DidLastRetry,
14
14
  Promise,
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var IncidentsApiObserver, Promise, ServiceBusClient, _, debug, encode;
10
10
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var errorToJson;
6
6
 
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var Promise, Redis, RedisObserver, _;
10
10
 
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var MeliSender, Processor, ProcessorBuilder, ProductecaSender, QueueSource, ServiceBusSource, UnknownSource, _, logger;
10
10
 
package/lib/processor.js CHANGED
@@ -8,7 +8,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
10
 
11
- // Generated by CoffeeScript 2.5.1
11
+ // Generated by CoffeeScript 2.7.0
12
12
  (function () {
13
13
  var ENABLE_EVENTS,
14
14
  EventEmitter,
@@ -8,7 +8,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
8
8
 
9
9
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
10
10
 
11
- // Generated by CoffeeScript 2.5.1
11
+ // Generated by CoffeeScript 2.7.0
12
12
  (function () {
13
13
  var DeadletterProcessor, MaxRetriesProcessor, NonRetryable;
14
14
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var JobProcessor, RequestProcessor, _;
6
6
 
@@ -10,7 +10,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
10
10
 
11
11
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
12
12
 
13
- // Generated by CoffeeScript 2.5.1
13
+ // Generated by CoffeeScript 2.7.0
14
14
  (function () {
15
15
  var JobProcessor,
16
16
  MaxRetriesProcessor,
@@ -54,6 +54,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
54
54
  _this._notificationsApi = _this._notificationsApi.bind(_this);
55
55
  _this._ifJobIsNotStopped = _this._ifJobIsNotStopped.bind(_this);
56
56
  _this.notificationApiUrl = args.notificationApiUrl;
57
+ _this.notificationApiAsyncUrl = args.notificationApiAsyncUrl;
57
58
  _this.nonRetryable = args.nonRetryable;
58
59
  return _this;
59
60
  }
@@ -125,7 +126,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
125
126
  Key: "Authorization"
126
127
  }).Value,
127
128
  jobId: JobId,
128
- notificationApiUrl: this.notificationApiUrl
129
+ notificationApiUrl: this.notificationApiUrl,
130
+ notificationApiAsyncUrl: this.notificationApiAsyncUrl
129
131
  });
130
132
  }
131
133
  }, {
@@ -4,13 +4,13 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
- var HOUR, NOTIFICATIONS_API_JOBS_CACHE_TTL, NOTIFICATIONS_API_STOPPED_JOB_CACHE_TTL, NodeCache, NotificationsApi, Promise, _, jobsCache, request, retry, stoppedJobsCache;
9
+ var DEFAULT_NOTIFICATIONS_API_ASYNC_URL, HOUR, NOTIFICATIONS_API_JOBS_CACHE_TTL, NOTIFICATIONS_API_MASTER_TOKEN, NOTIFICATIONS_API_STOPPED_JOB_CACHE_TTL, NodeCache, NotificationsApi, Promise, _, jobsCache, requestPromise, retry, stoppedJobsCache;
10
10
 
11
11
  _ = require("lodash");
12
12
 
13
- request = require("request-promise");
13
+ requestPromise = require("request-promise");
14
14
 
15
15
  retry = require("bluebird-retry");
16
16
 
@@ -22,6 +22,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
22
22
 
23
23
  NOTIFICATIONS_API_STOPPED_JOB_CACHE_TTL = parseInt(process.env.NOTIFICATIONS_API_STOPPED_JOB_CACHE_TTL) || 2;
24
24
 
25
+ NOTIFICATIONS_API_MASTER_TOKEN = process.env.NOTIFICATIONS_API_MASTER_TOKEN;
26
+
27
+ DEFAULT_NOTIFICATIONS_API_ASYNC_URL = process.env.DEFAULT_NOTIFICATIONS_API_ASYNC_URL || "https://apps.producteca.com/aws/notifications-api-async";
28
+
25
29
  HOUR = 60 * 60;
26
30
 
27
31
  //Para minimizar las requests a notifications-api, cachea unos segundos el estado del job
@@ -38,60 +42,78 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
38
42
  function NotificationsApi(_ref) {
39
43
  var notificationApiUrl = _ref.notificationApiUrl,
40
44
  token = _ref.token,
41
- jobId = _ref.jobId;
45
+ jobId = _ref.jobId,
46
+ _ref$notificationApiA = _ref.notificationApiAsyncUrl,
47
+ notificationApiAsyncUrl = _ref$notificationApiA === undefined ? DEFAULT_NOTIFICATIONS_API_ASYNC_URL : _ref$notificationApiA;
42
48
 
43
49
  _classCallCheck(this, NotificationsApi);
44
50
 
51
+ var companyId;
45
52
  this.success = this.success.bind(this);
46
53
  this.fail = this.fail.bind(this);
47
54
  this.jobIsStopped = this.jobIsStopped.bind(this);
48
55
  this._jobIsStopped = this._jobIsStopped.bind(this);
49
56
  this._fetchJob = this._fetchJob.bind(this);
50
57
  this._doFetchJob = this._doFetchJob.bind(this);
58
+ this._retryViaAsyncOrIgnore = this._retryViaAsyncOrIgnore.bind(this);
51
59
  this._makeRequest = this._makeRequest.bind(this);
52
60
  this._shouldUseCachedValue = this._shouldUseCachedValue.bind(this);
53
61
  this.notificationApiUrl = notificationApiUrl;
54
62
  this.token = token;
55
63
  this.jobId = jobId;
64
+ this.notificationApiAsyncUrl = notificationApiAsyncUrl;
65
+ if (_.startsWith(this.token, 'Basic') && !_.isEmpty(NOTIFICATIONS_API_MASTER_TOKEN)) {
66
+ companyId = _.first(Buffer.from(_.get(this.token.split(" "), "1"), 'base64').toString().split(":"));
67
+ this.token = "Basic " + new Buffer(companyId + ":" + NOTIFICATIONS_API_MASTER_TOKEN).toString("base64");
68
+ }
56
69
  }
57
70
 
58
71
  _createClass(NotificationsApi, [{
59
72
  key: "success",
60
- value: function success(_ref2) {
73
+ value: function success(response, options) {
61
74
  var _this = this;
62
75
 
63
- var statusCode = _ref2.statusCode;
76
+ var __makeRequest, __retryRequest, statusCode;
77
+ statusCode = response.statusCode;
64
78
 
65
- return retry(function () {
79
+ __makeRequest = function __makeRequest() {
66
80
  return _this._makeRequest({
67
81
  statusCode: statusCode,
68
82
  success: true
83
+ }, options);
84
+ };
85
+ __retryRequest = function __retryRequest() {
86
+ return _this.success(response, {
87
+ useAsyncApi: true
69
88
  });
70
- }, {
71
- max_tries: 3
72
- }).catchReturn();
89
+ };
90
+ return this._retryViaAsyncOrIgnore(__makeRequest, __retryRequest, options);
73
91
  }
74
92
  }, {
75
93
  key: "fail",
76
- value: function fail(_ref3) {
94
+ value: function fail(response, options) {
77
95
  var _this2 = this;
78
96
 
79
- var statusCode = _ref3.statusCode,
80
- error = _ref3.error,
81
- request = _ref3.request;
97
+ var __makeRequest, __retryRequest, error, message, request, statusCode;
98
+ statusCode = response.statusCode;
99
+ error = response.error;
100
+ request = response.request;
82
101
 
83
- return retry(function () {
84
- var message;
85
- message = _.get(error, "message");
102
+ message = _.get(error, "message");
103
+ __makeRequest = function __makeRequest() {
86
104
  return _this2._makeRequest({
87
105
  statusCode: statusCode,
88
106
  success: false,
89
107
  message: message,
90
108
  request: request
109
+ }, options);
110
+ };
111
+ __retryRequest = function __retryRequest() {
112
+ return _this2.fail(response, {
113
+ useAsyncApi: true
91
114
  });
92
- }, {
93
- max_tries: 3
94
- }).catchReturn();
115
+ };
116
+ return this._retryViaAsyncOrIgnore(__makeRequest, __retryRequest, options);
95
117
  }
96
118
  }, {
97
119
  key: "jobIsStopped",
@@ -137,7 +159,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
137
159
 
138
160
  var __fetchJob;
139
161
  __fetchJob = function __fetchJob() {
140
- return request({
162
+ return requestPromise({
141
163
  url: _this5.notificationApiUrl + "/jobs/" + _this5.jobId,
142
164
  method: "GET",
143
165
  headers: {
@@ -150,11 +172,32 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
150
172
  throw_original: true
151
173
  });
152
174
  }
175
+ }, {
176
+ key: "_retryViaAsyncOrIgnore",
177
+ value: function _retryViaAsyncOrIgnore(makeRequest, retryRequest) {
178
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
179
+
180
+ return retry(makeRequest, {
181
+ throw_original: true,
182
+ max_tries: 3
183
+ }).catch(function (e) {
184
+ if (options.useAsyncApi) {
185
+ throw e;
186
+ }
187
+ console.log("Error sending status to notifications-api. Retrying via notifications-api-async");
188
+ return retryRequest();
189
+ }).catchReturn();
190
+ }
153
191
  }, {
154
192
  key: "_makeRequest",
155
193
  value: function _makeRequest(body) {
156
- return request({
157
- url: this.notificationApiUrl + "/jobs/" + this.jobId + "/operations",
194
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
195
+ useAsyncApi = _ref2.useAsyncApi;
196
+
197
+ var url;
198
+ url = useAsyncApi ? this.notificationApiAsyncUrl : this.notificationApiUrl;
199
+ return requestPromise({
200
+ url: url + "/jobs/" + this.jobId + "/operations",
158
201
  method: "POST",
159
202
  headers: {
160
203
  authorization: this.token
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var MaxRetriesProcessor;
10
10
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var RequestProcessor, _, _normalizeHeaders, builderRequest;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var MESSAGE_PROPERTIES, NonRetryableError, Promise, RequestError, StatusCodeError, _, __isIncludedInStatusesError, _safeParse, _type, errorConditions, httpStatus, request;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var MaxRetriesProcessor, RequestAsyncProcessor, _;
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
4
4
 
5
- // Generated by CoffeeScript 2.5.1
5
+ // Generated by CoffeeScript 2.7.0
6
6
  (function () {
7
7
  var OAuthApi, Promise, _, _companyId;
8
8
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
6
  MeliSender: require("./meli.sender"),
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
6
  user: function user(_ref) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
6
  user: function user(_ref) {
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var AuthApi, OAUTH_API_URL, request;
10
10
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var Promise, redis;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  module.exports = {
6
6
  ServiceBusSource: require("./service.bus.source"),
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var DeadLetterSucceeded, DelayObserver, DidLastRetry, _, create;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var DeadLetterSucceeded, DelayObserver, DidLastRetry, _, create;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var _;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var _;
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // Generated by CoffeeScript 2.5.1
3
+ // Generated by CoffeeScript 2.7.0
4
4
  (function () {
5
5
  var _, notification, redis;
6
6
 
@@ -4,7 +4,7 @@ var _createClass = function () { function defineProperties(target, props) { for
4
4
 
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
 
7
- // Generated by CoffeeScript 2.5.1
7
+ // Generated by CoffeeScript 2.7.0
8
8
  (function () {
9
9
  var MockRedis, MockRedisClient, Promise, _, proxyquire, sinon, stub;
10
10