keuss 1.6.7 → 1.6.8

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 (56) hide show
  1. package/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +1 -0
  2. package/.nyc_output/{06313f3e-1553-402b-bdc2-3a7a639cd559.json → c8683d6c-e7e6-496b-ab0d-1ff730837d08.json} +0 -0
  3. package/.nyc_output/processinfo/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +1 -0
  4. package/.nyc_output/processinfo/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/Pipeline/Queue.js +23 -0
  7. package/TODO +0 -6
  8. package/backends/bucket-mongo-safe.js +38 -2
  9. package/backends/mongo.js +2 -1
  10. package/backends/pl-mongo.js +2 -1
  11. package/backends/ps-mongo.js +30 -1
  12. package/backends/redis-oq.js +12 -1
  13. package/coverage/index.html +43 -43
  14. package/coverage/keuss/Pipeline/BaseLink.js.html +18 -18
  15. package/coverage/keuss/Pipeline/Builder.js.html +1 -1
  16. package/coverage/keuss/Pipeline/ChoiceLink.js.html +1 -1
  17. package/coverage/keuss/Pipeline/DirectLink.js.html +1 -1
  18. package/coverage/keuss/Pipeline/Pipeline.js.html +15 -15
  19. package/coverage/keuss/Pipeline/Queue.js.html +124 -55
  20. package/coverage/keuss/Pipeline/Sink.js.html +1 -1
  21. package/coverage/keuss/Pipeline/index.html +18 -18
  22. package/coverage/keuss/QFactory-MongoDB-defaults.js.html +6 -6
  23. package/coverage/keuss/QFactory.js.html +28 -28
  24. package/coverage/keuss/Queue.js.html +232 -181
  25. package/coverage/keuss/Signal.js.html +28 -28
  26. package/coverage/keuss/Stats.js.html +4 -4
  27. package/coverage/keuss/backends/bucket-mongo-safe.js.html +476 -314
  28. package/coverage/keuss/backends/bucket-mongo.js.html +134 -86
  29. package/coverage/keuss/backends/index.html +69 -69
  30. package/coverage/keuss/backends/mongo.js.html +137 -74
  31. package/coverage/keuss/backends/pl-mongo.js.html +54 -54
  32. package/coverage/keuss/backends/ps-mongo.js.html +164 -80
  33. package/coverage/keuss/backends/redis-list.js.html +39 -36
  34. package/coverage/keuss/backends/redis-oq.js.html +27 -27
  35. package/coverage/keuss/index.html +18 -18
  36. package/coverage/keuss/signal/index.html +1 -1
  37. package/coverage/keuss/signal/local.js.html +17 -17
  38. package/coverage/keuss/signal/mongo-capped.js.html +1 -1
  39. package/coverage/keuss/signal/redis-pubsub.js.html +12 -12
  40. package/coverage/keuss/stats/index.html +10 -10
  41. package/coverage/keuss/stats/mem.js.html +36 -30
  42. package/coverage/keuss/stats/mongo.js.html +8 -8
  43. package/coverage/keuss/stats/redis.js.html +17 -17
  44. package/coverage/keuss/utils/RedisConn.js.html +1 -1
  45. package/coverage/keuss/utils/RedisOrderedQueue.js.html +36 -33
  46. package/coverage/keuss/utils/index.html +5 -5
  47. package/docusaurus/docs/api/queue.md +14 -0
  48. package/docusaurus/docs/changelog.md +2 -0
  49. package/docusaurus/docs/concepts.md +10 -9
  50. package/docusaurus/package.json +3 -3
  51. package/package.json +1 -1
  52. package/test/backends_remove.js +299 -0
  53. package/utils/RedisOrderedQueue.js +46 -3
  54. package/.nyc_output/a06aa990-295d-4428-872d-ba9fa06afd1f.json +0 -1
  55. package/.nyc_output/processinfo/06313f3e-1553-402b-bdc2-3a7a639cd559.json +0 -1
  56. package/.nyc_output/processinfo/a06aa990-295d-4428-872d-ba9fa06afd1f.json +0 -1
@@ -0,0 +1 @@
1
+ {"uuid":"ad035de4-a3d3-451b-b2ad-402e8ed517b8","parent":"c8683d6c-e7e6-496b-ab0d-1ff730837d08","pid":10551,"argv":["/usr/bin/node","/usr/lib/node_modules/mocha/bin/_mocha","--reporter","spec","--check-leaks","--no-timeouts","--exit","test/"],"execArgv":[],"cwd":"/home/pepe/git/keuss","time":1638528777118,"ppid":10544,"root":"937b2bb5-e1fd-4634-bd35-c917e6c21177","coverageFilename":"/home/pepe/git/keuss/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json","files":["/home/pepe/git/keuss/signal/local.js","/home/pepe/git/keuss/Signal.js","/home/pepe/git/keuss/stats/mem.js","/home/pepe/git/keuss/Stats.js","/home/pepe/git/keuss/backends/bucket-mongo-safe.js","/home/pepe/git/keuss/Queue.js","/home/pepe/git/keuss/QFactory-MongoDB-defaults.js","/home/pepe/git/keuss/QFactory.js","/home/pepe/git/keuss/signal/mongo-capped.js","/home/pepe/git/keuss/stats/mongo.js","/home/pepe/git/keuss/backends/bucket-mongo.js","/home/pepe/git/keuss/backends/mongo.js","/home/pepe/git/keuss/backends/pl-mongo.js","/home/pepe/git/keuss/Pipeline/Builder.js","/home/pepe/git/keuss/Pipeline/DirectLink.js","/home/pepe/git/keuss/Pipeline/BaseLink.js","/home/pepe/git/keuss/Pipeline/ChoiceLink.js","/home/pepe/git/keuss/Pipeline/Sink.js","/home/pepe/git/keuss/Pipeline/Pipeline.js","/home/pepe/git/keuss/Pipeline/Queue.js","/home/pepe/git/keuss/backends/ps-mongo.js","/home/pepe/git/keuss/backends/redis-oq.js","/home/pepe/git/keuss/utils/RedisConn.js","/home/pepe/git/keuss/utils/RedisOrderedQueue.js","/home/pepe/git/keuss/backends/redis-list.js","/home/pepe/git/keuss/stats/redis.js","/home/pepe/git/keuss/signal/redis-pubsub.js"]}
@@ -0,0 +1 @@
1
+ {"uuid":"c8683d6c-e7e6-496b-ab0d-1ff730837d08","parent":null,"pid":10544,"argv":["/usr/bin/node","/usr/bin/mocha","--reporter","spec","--check-leaks","--no-timeouts","--exit","test/"],"execArgv":[],"cwd":"/home/pepe/git/keuss","time":1638528776855,"ppid":10537,"root":"937b2bb5-e1fd-4634-bd35-c917e6c21177","coverageFilename":"/home/pepe/git/keuss/.nyc_output/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json","files":[]}
@@ -1 +1 @@
1
- {"processes":{"06313f3e-1553-402b-bdc2-3a7a639cd559":{"parent":null,"children":["a06aa990-295d-4428-872d-ba9fa06afd1f"]},"a06aa990-295d-4428-872d-ba9fa06afd1f":{"parent":"06313f3e-1553-402b-bdc2-3a7a639cd559","children":[]}},"files":{"/home/pepe/git/keuss/signal/local.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Signal.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/stats/mem.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Stats.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/bucket-mongo-safe.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Queue.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/QFactory-MongoDB-defaults.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/QFactory.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/signal/mongo-capped.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/stats/mongo.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/bucket-mongo.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/mongo.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/pl-mongo.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/Builder.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/DirectLink.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/BaseLink.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/ChoiceLink.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/Sink.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/Pipeline.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/Pipeline/Queue.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/ps-mongo.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/redis-oq.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/utils/RedisConn.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/utils/RedisOrderedQueue.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/backends/redis-list.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/stats/redis.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"],"/home/pepe/git/keuss/signal/redis-pubsub.js":["a06aa990-295d-4428-872d-ba9fa06afd1f"]},"externalIds":{}}
1
+ {"processes":{"ad035de4-a3d3-451b-b2ad-402e8ed517b8":{"parent":"c8683d6c-e7e6-496b-ab0d-1ff730837d08","children":[]},"c8683d6c-e7e6-496b-ab0d-1ff730837d08":{"parent":null,"children":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"]}},"files":{"/home/pepe/git/keuss/signal/local.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Signal.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/stats/mem.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Stats.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/bucket-mongo-safe.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Queue.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/QFactory-MongoDB-defaults.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/QFactory.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/signal/mongo-capped.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/stats/mongo.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/bucket-mongo.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/mongo.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/pl-mongo.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/Builder.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/DirectLink.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/BaseLink.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/ChoiceLink.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/Sink.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/Pipeline.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/Pipeline/Queue.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/ps-mongo.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/redis-oq.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/utils/RedisConn.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/utils/RedisOrderedQueue.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/backends/redis-list.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/stats/redis.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"],"/home/pepe/git/keuss/signal/redis-pubsub.js":["ad035de4-a3d3-451b-b2ad-402e8ed517b8"]},"externalIds":{}}
package/Pipeline/Queue.js CHANGED
@@ -234,6 +234,29 @@ class PipelinedMongoQueue extends Queue {
234
234
  }
235
235
 
236
236
 
237
+ //////////////////////////////////////////////
238
+ // remove by id
239
+ remove (id, callback) {
240
+ var query;
241
+
242
+ try {
243
+ query = {
244
+ _id: (_.isString(id) ? new mongo.ObjectID (id) : id),
245
+ _q: this._name,
246
+ reserved: {$exists: false}
247
+ };
248
+ }
249
+ catch (e) {
250
+ return callback ('id [' + id + '] can not be used as remove id: ' + e);
251
+ }
252
+
253
+ this._col.deleteOne (query, {}, (err, result) => {
254
+ if (err) return callback (err);
255
+ callback (null, result && (result.deletedCount == 1));
256
+ });
257
+ }
258
+
259
+
237
260
  //////////////////////////////////////////////
238
261
  _embed_update_for_payload (dst, src) {
239
262
  _.each (src, (v, k) => {
package/TODO CHANGED
@@ -1,12 +1,6 @@
1
1
  bugs
2
2
  -------------------------------------------------------------
3
3
 
4
-
5
- prio 2
6
- -------------------------------------------------------------
7
- * remove elements from queue by id
8
-
9
-
10
4
  prio 1
11
5
  -------------------------------------------------------------
12
6
  * queue traversal/query
@@ -581,7 +581,7 @@ class BucketMongoSafeQueue extends Queue {
581
581
  __h: (entry.hdrs || {})
582
582
  });
583
583
 
584
- var id = this._insert_bucket._id.toString () + ':' + this._insert_bucket.b.length;
584
+ var id = this._insert_bucket._id.toString () + ':' + (this._insert_bucket.b.length - 1);
585
585
  debug ('added to bucket, %s', id);
586
586
 
587
587
  if (this._insert_bucket.b.length >= this._bucket_max_size) {
@@ -738,6 +738,41 @@ class BucketMongoSafeQueue extends Queue {
738
738
  }
739
739
 
740
740
 
741
+
742
+ //////////////////////////////////////////////
743
+ // remove by id
744
+ remove (id, callback) {
745
+ try {
746
+ var aid = id.split (':');
747
+ var bucket_id = new mongo.ObjectID (aid[0]);
748
+ var bucket_idx = parseInt(aid[1]);
749
+ }
750
+ catch (e) {
751
+ return callback ('id [' + id + '] can not be used as remove id: ' + e);
752
+ }
753
+
754
+ var upd = {
755
+ $set: {},
756
+ $inc: {n: -1}
757
+ };
758
+
759
+ upd.$set['b.' + bucket_idx] = null;
760
+
761
+ var q = {
762
+ _id: bucket_id,
763
+ reserved: {$exists: false},
764
+ };
765
+
766
+ q['b.' + bucket_idx] = {$type: 3}; // b.N is an object
767
+
768
+ debug ('update on bucket: q is %o, upd is %o', q, upd);
769
+ this._col.updateOne (q, upd, (err, result) => {
770
+ if (err) return callback (err);
771
+ callback (null, result && (result.modifiedCount == 1));
772
+ });
773
+ }
774
+
775
+
741
776
  /////////////////////////////////////////
742
777
  _drain_read (cb) {
743
778
  debug ('drain_read called');
@@ -907,7 +942,8 @@ class Factory extends QFactory_MongoDB_defaults {
907
942
  return {
908
943
  sched: false,
909
944
  reserve: true,
910
- pipeline: false
945
+ pipeline: false,
946
+ remove: true
911
947
  };
912
948
  }
913
949
  }
package/backends/mongo.js CHANGED
@@ -193,7 +193,8 @@ class SimpleMongoQueue extends Queue {
193
193
  remove (id, callback) {
194
194
  try {
195
195
  var query = {
196
- _id: (_.isString(id) ? new mongo.ObjectID (id) : id)
196
+ _id: (_.isString(id) ? new mongo.ObjectID (id) : id),
197
+ reserved: {$exists: false}
197
198
  };
198
199
  }
199
200
  catch (e) {
@@ -160,7 +160,8 @@ class Factory extends QFactory_MongoDB_defaults {
160
160
  return {
161
161
  sched: true,
162
162
  reserve: true,
163
- pipeline: true
163
+ pipeline: true,
164
+ remove: true
164
165
  };
165
166
  }
166
167
 
@@ -209,6 +209,34 @@ class PersistentMongoQueue extends Queue {
209
209
  }
210
210
 
211
211
 
212
+ //////////////////////////////////////////////
213
+ // remove by id
214
+ remove (id, callback) {
215
+ var query;
216
+
217
+ try {
218
+ query = {
219
+ _id: (_.isString(id) ? new mongo.ObjectID (id) : id),
220
+ reserved: {$exists: false}
221
+ };
222
+ }
223
+ catch (e) {
224
+ return callback ('id [' + id + '] can not be used as remove id: ' + e);
225
+ }
226
+
227
+ var updt = {
228
+ $set: {processed: new Date (), removed: true},
229
+ };
230
+
231
+ var opts = {};
232
+
233
+ this._col.updateOne (query, updt, opts, (err, result) => {
234
+ if (err) return callback (err);
235
+ callback (null, result && (result.modifiedCount == 1));
236
+ });
237
+ }
238
+
239
+
212
240
  /////////////////////////////////////////
213
241
  // get element from queue
214
242
  next_t (callback) {
@@ -271,7 +299,8 @@ class Factory extends QFactory_MongoDB_defaults {
271
299
  sched: true,
272
300
  reserve: true,
273
301
  pipeline: false,
274
- tape: true
302
+ tape: true,
303
+ remove: true
275
304
  };
276
305
  }
277
306
  }
@@ -106,6 +106,16 @@ class RedisOQ extends Queue {
106
106
  callback (null, new Date (parseInt (res[1])));
107
107
  });
108
108
  }
109
+
110
+
111
+ //////////////////////////////////////////////
112
+ // remove by id
113
+ remove (id, callback) {
114
+ this._roq.remove (id, (err, res) => {
115
+ if (err) return callback (err);
116
+ return callback (null, res != null)
117
+ });
118
+ }
109
119
  };
110
120
 
111
121
 
@@ -139,7 +149,8 @@ class Factory extends QFactory {
139
149
  return {
140
150
  sched: true,
141
151
  reserve: true,
142
- pipeline: false
152
+ pipeline: false,
153
+ remove: true
143
154
  };
144
155
  }
145
156
  }
@@ -20,24 +20,24 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">83.17% </span>
23
+ <span class="strong">84.32% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>1947/2341</span>
25
+ <span class='fraction'>2028/2405</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">73.13% </span>
28
+ <span class="strong">74.28% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>781/1068</span>
30
+ <span class='fraction'>829/1116</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.57% </span>
33
+ <span class="strong">85.38% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>529/633</span>
35
+ <span class='fraction'>549/643</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">87.36% </span>
38
+ <span class="strong">88.55% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>1825/2089</span>
40
+ <span class='fraction'>1902/2148</span>
41
41
  </div>
42
42
  </div>
43
43
  <p class="quiet">
@@ -63,41 +63,41 @@
63
63
  </thead>
64
64
  <tbody><tr>
65
65
  <td class="file medium" data-value="keuss"><a href="keuss/index.html">keuss</a></td>
66
- <td data-value="72.25" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 72%;"></div><div class="cover-empty" style="width:28%;"></div></div></td>
67
- <td data-value="72.25" class="pct medium">72.25%</td>
68
- <td data-value="436" class="abs medium">315/436</td>
69
- <td data-value="73.36" class="pct medium">73.36%</td>
70
- <td data-value="214" class="abs medium">157/214</td>
71
- <td data-value="56.88" class="pct medium">56.88%</td>
72
- <td data-value="109" class="abs medium">62/109</td>
73
- <td data-value="74.33" class="pct medium">74.33%</td>
74
- <td data-value="409" class="abs medium">304/409</td>
66
+ <td data-value="72.26" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 72%;"></div><div class="cover-empty" style="width:28%;"></div></div></td>
67
+ <td data-value="72.26" class="pct medium">72.26%</td>
68
+ <td data-value="447" class="abs medium">323/447</td>
69
+ <td data-value="73.45" class="pct medium">73.45%</td>
70
+ <td data-value="226" class="abs medium">166/226</td>
71
+ <td data-value="56.76" class="pct medium">56.76%</td>
72
+ <td data-value="111" class="abs medium">63/111</td>
73
+ <td data-value="74.22" class="pct medium">74.22%</td>
74
+ <td data-value="419" class="abs medium">311/419</td>
75
75
  </tr>
76
76
 
77
77
  <tr>
78
78
  <td class="file high" data-value="keuss/Pipeline"><a href="keuss/Pipeline/index.html">keuss/Pipeline</a></td>
79
- <td data-value="87.31" class="pic high"><div class="chart"><div class="cover-fill" style="width: 87%;"></div><div class="cover-empty" style="width:13%;"></div></div></td>
80
- <td data-value="87.31" class="pct high">87.31%</td>
81
- <td data-value="386" class="abs high">337/386</td>
82
- <td data-value="74.39" class="pct medium">74.39%</td>
83
- <td data-value="164" class="abs medium">122/164</td>
84
- <td data-value="96.19" class="pct high">96.19%</td>
85
- <td data-value="105" class="abs high">101/105</td>
86
- <td data-value="94.08" class="pct high">94.08%</td>
87
- <td data-value="338" class="abs high">318/338</td>
79
+ <td data-value="87.28" class="pic high"><div class="chart"><div class="cover-fill" style="width: 87%;"></div><div class="cover-empty" style="width:13%;"></div></div></td>
80
+ <td data-value="87.28" class="pct high">87.28%</td>
81
+ <td data-value="393" class="abs high">343/393</td>
82
+ <td data-value="74.71" class="pct medium">74.71%</td>
83
+ <td data-value="170" class="abs medium">127/170</td>
84
+ <td data-value="96.26" class="pct high">96.26%</td>
85
+ <td data-value="107" class="abs high">103/107</td>
86
+ <td data-value="94.19" class="pct high">94.19%</td>
87
+ <td data-value="344" class="abs high">324/344</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="keuss/backends"><a href="keuss/backends/index.html">keuss/backends</a></td>
92
- <td data-value="83.6" class="pic high"><div class="chart"><div class="cover-fill" style="width: 83%;"></div><div class="cover-empty" style="width:17%;"></div></div></td>
93
- <td data-value="83.6" class="pct high">83.6%</td>
94
- <td data-value="982" class="abs high">821/982</td>
95
- <td data-value="69.66" class="pct medium">69.66%</td>
96
- <td data-value="445" class="abs medium">310/445</td>
97
- <td data-value="87.41" class="pct high">87.41%</td>
98
- <td data-value="270" class="abs high">236/270</td>
99
- <td data-value="88.67" class="pct high">88.67%</td>
100
- <td data-value="856" class="abs high">759/856</td>
92
+ <td data-value="86.35" class="pic high"><div class="chart"><div class="cover-fill" style="width: 86%;"></div><div class="cover-empty" style="width:14%;"></div></div></td>
93
+ <td data-value="86.35" class="pct high">86.35%</td>
94
+ <td data-value="1026" class="abs high">886/1026</td>
95
+ <td data-value="72.52" class="pct medium">72.52%</td>
96
+ <td data-value="473" class="abs medium">343/473</td>
97
+ <td data-value="91.67" class="pct high">91.67%</td>
98
+ <td data-value="276" class="abs high">253/276</td>
99
+ <td data-value="91.53" class="pct high">91.53%</td>
100
+ <td data-value="897" class="abs high">821/897</td>
101
101
  </tr>
102
102
 
103
103
  <tr>
@@ -115,15 +115,15 @@
115
115
 
116
116
  <tr>
117
117
  <td class="file high" data-value="keuss/stats"><a href="keuss/stats/index.html">keuss/stats</a></td>
118
- <td data-value="88.44" class="pic high"><div class="chart"><div class="cover-fill" style="width: 88%;"></div><div class="cover-empty" style="width:12%;"></div></div></td>
119
- <td data-value="88.44" class="pct high">88.44%</td>
120
- <td data-value="346" class="abs high">306/346</td>
118
+ <td data-value="88.51" class="pic high"><div class="chart"><div class="cover-fill" style="width: 88%;"></div><div class="cover-empty" style="width:12%;"></div></div></td>
119
+ <td data-value="88.51" class="pct high">88.51%</td>
120
+ <td data-value="348" class="abs high">308/348</td>
121
121
  <td data-value="79.89" class="pct medium">79.89%</td>
122
122
  <td data-value="179" class="abs medium">143/179</td>
123
123
  <td data-value="89.58" class="pct high">89.58%</td>
124
124
  <td data-value="96" class="abs high">86/96</td>
125
- <td data-value="92.43" class="pct high">92.43%</td>
126
- <td data-value="304" class="abs high">281/304</td>
125
+ <td data-value="92.48" class="pct high">92.48%</td>
126
+ <td data-value="306" class="abs high">283/306</td>
127
127
  </tr>
128
128
 
129
129
  <tr>
@@ -131,8 +131,8 @@
131
131
  <td data-value="91.94" class="pic high"><div class="chart"><div class="cover-fill" style="width: 91%;"></div><div class="cover-empty" style="width:9%;"></div></div></td>
132
132
  <td data-value="91.94" class="pct high">91.94%</td>
133
133
  <td data-value="62" class="abs high">57/62</td>
134
- <td data-value="81.25" class="pct high">81.25%</td>
135
- <td data-value="32" class="abs high">26/32</td>
134
+ <td data-value="79.41" class="pct medium">79.41%</td>
135
+ <td data-value="34" class="abs medium">27/34</td>
136
136
  <td data-value="100" class="pct high">100%</td>
137
137
  <td data-value="15" class="abs high">15/15</td>
138
138
  <td data-value="94.74" class="pct high">94.74%</td>
@@ -145,7 +145,7 @@
145
145
  </div><!-- /wrapper -->
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage
148
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
148
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
149
149
  </div>
150
150
  </div>
151
151
  <script src="prettify.js"></script>
@@ -260,7 +260,7 @@
260
260
  <span class="cline-any cline-yes">42x</span>
261
261
  <span class="cline-any cline-neutral">&nbsp;</span>
262
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-yes">294x</span>
263
+ <span class="cline-any cline-yes">300x</span>
264
264
  <span class="cline-any cline-yes">132x</span>
265
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-no">&nbsp;</span>
@@ -317,7 +317,7 @@
317
317
  <span class="cline-any cline-neutral">&nbsp;</span>
318
318
  <span class="cline-any cline-neutral">&nbsp;</span>
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">9x</span>
320
+ <span class="cline-any cline-yes">12x</span>
321
321
  <span class="cline-any cline-neutral">&nbsp;</span>
322
322
  <span class="cline-any cline-yes">1x</span>
323
323
  <span class="cline-any cline-yes">1x</span>
@@ -327,10 +327,10 @@
327
327
  <span class="cline-any cline-neutral">&nbsp;</span>
328
328
  <span class="cline-any cline-neutral">&nbsp;</span>
329
329
  <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-yes">8x</span>
331
- <span class="cline-any cline-yes">8x</span>
332
- <span class="cline-any cline-yes">8x</span>
333
- <span class="cline-any cline-yes">8x</span>
330
+ <span class="cline-any cline-yes">11x</span>
331
+ <span class="cline-any cline-yes">11x</span>
332
+ <span class="cline-any cline-yes">11x</span>
333
+ <span class="cline-any cline-yes">11x</span>
334
334
  <span class="cline-any cline-neutral">&nbsp;</span>
335
335
  <span class="cline-any cline-neutral">&nbsp;</span>
336
336
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -338,12 +338,12 @@
338
338
  <span class="cline-any cline-neutral">&nbsp;</span>
339
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
340
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">137x</span>
341
+ <span class="cline-any cline-yes">140x</span>
342
342
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">137x</span>
344
- <span class="cline-any cline-yes">130x</span>
343
+ <span class="cline-any cline-yes">140x</span>
344
+ <span class="cline-any cline-yes">133x</span>
345
345
  <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">130x</span>
346
+ <span class="cline-any cline-yes">133x</span>
347
347
  <span class="cline-any cline-yes">35x</span>
348
348
  <span class="cline-any cline-yes">35x</span>
349
349
  <span class="cline-any cline-yes">35x</span>
@@ -354,17 +354,17 @@
354
354
  <span class="cline-any cline-no">&nbsp;</span>
355
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
356
  <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">95x</span>
357
+ <span class="cline-any cline-yes">98x</span>
358
358
  <span class="cline-any cline-no">&nbsp;</span>
359
359
  <span class="cline-any cline-no">&nbsp;</span>
360
360
  <span class="cline-any cline-neutral">&nbsp;</span>
361
361
  <span class="cline-any cline-neutral">&nbsp;</span>
362
362
  <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-yes">95x</span>
364
- <span class="cline-any cline-yes">95x</span>
365
- <span class="cline-any cline-yes">95x</span>
363
+ <span class="cline-any cline-yes">98x</span>
364
+ <span class="cline-any cline-yes">98x</span>
365
+ <span class="cline-any cline-yes">98x</span>
366
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-yes">95x</span>
367
+ <span class="cline-any cline-yes">98x</span>
368
368
  <span class="cline-any cline-neutral">&nbsp;</span>
369
369
  <span class="cline-any cline-neutral">&nbsp;</span>
370
370
  <span class="cline-any cline-yes">86x</span>
@@ -411,8 +411,8 @@
411
411
  <span class="cline-any cline-neutral">&nbsp;</span>
412
412
  <span class="cline-any cline-neutral">&nbsp;</span>
413
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">8x</span>
415
- <span class="cline-any cline-yes">8x</span>
414
+ <span class="cline-any cline-yes">11x</span>
415
+ <span class="cline-any cline-yes">11x</span>
416
416
  <span class="cline-any cline-neutral">&nbsp;</span>
417
417
  <span class="cline-any cline-neutral">&nbsp;</span>
418
418
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -619,7 +619,7 @@ module.exports = BaseLink;
619
619
  </div><!-- /wrapper -->
620
620
  <div class='footer quiet pad2 space-top1 center small'>
621
621
  Code coverage
622
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
622
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
623
623
  </div>
624
624
  </div>
625
625
  <script src="../../prettify.js"></script>
@@ -598,7 +598,7 @@ module.exports = PipelineBuilder;
598
598
  </div><!-- /wrapper -->
599
599
  <div class='footer quiet pad2 space-top1 center small'>
600
600
  Code coverage
601
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
601
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
602
602
  </div>
603
603
  </div>
604
604
  <script src="../../prettify.js"></script>
@@ -277,7 +277,7 @@ module.exports = ChoiceLink;
277
277
  </div><!-- /wrapper -->
278
278
  <div class='footer quiet pad2 space-top1 center small'>
279
279
  Code coverage
280
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
280
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
281
281
  </div>
282
282
  </div>
283
283
  <script src="../../prettify.js"></script>
@@ -214,7 +214,7 @@ module.exports = DirectLink;
214
214
  </div><!-- /wrapper -->
215
215
  <div class='footer quiet pad2 space-top1 center small'>
216
216
  Code coverage
217
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
217
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
218
218
  </div>
219
219
  </div>
220
220
  <script src="../../prettify.js"></script>
@@ -117,13 +117,13 @@
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">22x</span>
121
- <span class="cline-any cline-yes">22x</span>
122
- <span class="cline-any cline-yes">22x</span>
123
- <span class="cline-any cline-yes">22x</span>
120
+ <span class="cline-any cline-yes">27x</span>
121
+ <span class="cline-any cline-yes">27x</span>
122
+ <span class="cline-any cline-yes">27x</span>
123
+ <span class="cline-any cline-yes">27x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">22x</span>
126
- <span class="cline-any cline-yes">22x</span>
125
+ <span class="cline-any cline-yes">27x</span>
126
+ <span class="cline-any cline-yes">27x</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-yes">139x</span>
@@ -133,15 +133,15 @@
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">114x</span>
137
- <span class="cline-any cline-yes">26x</span>
138
- <span class="cline-any cline-yes">26x</span>
136
+ <span class="cline-any cline-yes">134x</span>
137
+ <span class="cline-any cline-yes">36x</span>
138
+ <span class="cline-any cline-yes">36x</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">88x</span>
142
- <span class="cline-any cline-yes">88x</span>
143
- <span class="cline-any cline-yes">88x</span>
144
- <span class="cline-any cline-yes">88x</span>
141
+ <span class="cline-any cline-yes">98x</span>
142
+ <span class="cline-any cline-yes">98x</span>
143
+ <span class="cline-any cline-yes">98x</span>
144
+ <span class="cline-any cline-yes">98x</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -167,7 +167,7 @@
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
168
  <span class="cline-any cline-neutral">&nbsp;</span>
169
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">22x</span>
170
+ <span class="cline-any cline-yes">27x</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -241,7 +241,7 @@ module.exports = Pipeline;
241
241
  </div><!-- /wrapper -->
242
242
  <div class='footer quiet pad2 space-top1 center small'>
243
243
  Code coverage
244
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
244
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
245
245
  </div>
246
246
  </div>
247
247
  <script src="../../prettify.js"></script>