@zajno/common 1.5.3 → 1.5.6

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 (78) hide show
  1. package/coverage/clover.xml +93 -86
  2. package/coverage/coverage-final.json +3 -3
  3. package/coverage/lcov-report/index.html +26 -26
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
  9. package/coverage/lcov-report/src/cache.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  21. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  22. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  23. package/coverage/lcov-report/src/event.ts.html +1 -1
  24. package/coverage/lcov-report/src/fields/index.html +14 -14
  25. package/coverage/lcov-report/src/fields/update.ts.html +40 -19
  26. package/coverage/lcov-report/src/functions.ts.html +1 -1
  27. package/coverage/lcov-report/src/index.html +19 -19
  28. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/index.html +1 -1
  32. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  33. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  34. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  36. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  37. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  38. package/coverage/lcov-report/src/math/index.html +1 -1
  39. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  41. package/coverage/lcov-report/src/observingCache.ts.html +27 -12
  42. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  43. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  44. package/coverage/lcov-report/src/types.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  48. package/coverage/lcov-report/src/validation/index.html +1 -1
  49. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  51. package/coverage/lcov-report/src/validation/validators.ts.html +3 -3
  52. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  54. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  58. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  59. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  60. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  61. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  62. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  63. package/coverage/lcov.info +227 -206
  64. package/lib/fields/update.d.ts +5 -4
  65. package/lib/fields/update.d.ts.map +1 -1
  66. package/lib/fields/update.js +13 -7
  67. package/lib/fields/update.js.map +1 -1
  68. package/lib/observingCache.d.ts +1 -1
  69. package/lib/observingCache.d.ts.map +1 -1
  70. package/lib/observingCache.js +8 -2
  71. package/lib/observingCache.js.map +1 -1
  72. package/lib/validation/validators.js +1 -1
  73. package/lib/validation/validators.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/fields/update.ts +18 -11
  76. package/src/observingCache.ts +7 -2
  77. package/src/validation/__tests__/validator.test.ts +12 -0
  78. package/src/validation/validators.ts +1 -1
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.58% </span>
26
+ <span class="strong">81.37% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1377/1688</span>
28
+ <span class='fraction'>1380/1696</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75.52% </span>
33
+ <span class="strong">75.41% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>731/968</span>
35
+ <span class='fraction'>739/980</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">70.25% </span>
40
+ <span class="strong">70.11% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>333/474</span>
42
+ <span class='fraction'>333/475</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.91% </span>
47
+ <span class="strong">81.74% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1304/1592</span>
49
+ <span class='fraction'>1307/1599</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file medium" data-value="src"><a href="src/index.html">src</a></td>
77
- <td data-value="78.19" class="pic medium">
78
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
77
+ <td data-value="77.56" class="pic medium">
78
+ <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
79
79
  </td>
80
- <td data-value="78.19" class="pct medium">78.19%</td>
81
- <td data-value="463" class="abs medium">362/463</td>
82
- <td data-value="66.96" class="pct medium">66.96%</td>
83
- <td data-value="227" class="abs medium">152/227</td>
84
- <td data-value="73.43" class="pct medium">73.43%</td>
85
- <td data-value="143" class="abs medium">105/143</td>
86
- <td data-value="78.1" class="pct medium">78.1%</td>
87
- <td data-value="443" class="abs medium">346/443</td>
80
+ <td data-value="77.56" class="pct medium">77.56%</td>
81
+ <td data-value="468" class="abs medium">363/468</td>
82
+ <td data-value="66.38" class="pct medium">66.38%</td>
83
+ <td data-value="229" class="abs medium">152/229</td>
84
+ <td data-value="72.92" class="pct medium">72.92%</td>
85
+ <td data-value="144" class="abs medium">105/144</td>
86
+ <td data-value="77.63" class="pct medium">77.63%</td>
87
+ <td data-value="447" class="abs medium">347/447</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -134,17 +134,17 @@
134
134
 
135
135
  <tr>
136
136
  <td class="file medium" data-value="src/fields"><a href="src/fields/index.html">src/fields</a></td>
137
- <td data-value="75.93" class="pic medium">
137
+ <td data-value="75.44" class="pic medium">
138
138
  <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
139
139
  </td>
140
- <td data-value="75.93" class="pct medium">75.93%</td>
141
- <td data-value="54" class="abs medium">41/54</td>
142
- <td data-value="80.77" class="pct high">80.77%</td>
143
- <td data-value="78" class="abs high">63/78</td>
140
+ <td data-value="75.44" class="pct medium">75.44%</td>
141
+ <td data-value="57" class="abs medium">43/57</td>
142
+ <td data-value="80.68" class="pct high">80.68%</td>
143
+ <td data-value="88" class="abs high">71/88</td>
144
144
  <td data-value="45.45" class="pct low">45.45%</td>
145
145
  <td data-value="11" class="abs low">5/11</td>
146
- <td data-value="80.43" class="pct high">80.43%</td>
147
- <td data-value="46" class="abs high">37/46</td>
146
+ <td data-value="79.59" class="pct medium">79.59%</td>
147
+ <td data-value="49" class="abs medium">39/49</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
@@ -215,7 +215,7 @@
215
215
  <div class='footer quiet pad2 space-top1 center small'>
216
216
  Code coverage generated by
217
217
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
218
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
218
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
219
219
  </div>
220
220
  </div>
221
221
  <script src="prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
98
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../../prettify.js"></script>
@@ -100,7 +100,7 @@ export const toArbitrary = (fakerGen) =&gt; {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
103
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
@@ -178,7 +178,7 @@ export async function <span class="fstat-no" title="function not covered" >mapAs
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
181
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <script src="../../prettify.js"></script>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
113
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../prettify.js"></script>
@@ -214,7 +214,7 @@ export function <span class="fstat-no" title="function not covered" >setTimeoutF
214
214
  <div class='footer quiet pad2 space-top1 center small'>
215
215
  Code coverage generated by
216
216
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
217
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
217
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
218
218
  </div>
219
219
  </div>
220
220
  <script src="../../prettify.js"></script>
@@ -607,7 +607,7 @@ function _setX&lt;T&gt;(key: string, obj: Record&lt;string, T&gt;, val: T) {
607
607
  <div class='footer quiet pad2 space-top1 center small'>
608
608
  Code coverage generated by
609
609
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
610
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
610
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
611
611
  </div>
612
612
  </div>
613
613
  <script src="../prettify.js"></script>
@@ -280,7 +280,7 @@ export function clamp(d: Date, low: Date, high: Date) {
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
283
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
283
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  </div>
286
286
  <script src="../../prettify.js"></script>
@@ -637,7 +637,7 @@ export function getDaysStreak(dates: number[], descentOrder: boolean): number {
637
637
  <div class='footer quiet pad2 space-top1 center small'>
638
638
  Code coverage generated by
639
639
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
640
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
640
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
641
641
  </div>
642
642
  </div>
643
643
  <script src="../../prettify.js"></script>
@@ -190,7 +190,7 @@ export namespace DateX {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
193
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../prettify.js"></script>
@@ -382,7 +382,7 @@ export namespace Format {
382
382
  <div class='footer quiet pad2 space-top1 center small'>
383
383
  Code coverage generated by
384
384
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
385
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
386
386
  </div>
387
387
  </div>
388
388
  <script src="../../prettify.js"></script>
@@ -230,7 +230,7 @@
230
230
  <div class='footer quiet pad2 space-top1 center small'>
231
231
  Code coverage generated by
232
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
233
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
233
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
234
234
  </div>
235
235
  </div>
236
236
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './yearDate';
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
94
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -136,7 +136,7 @@ export namespace Parse {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
139
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  </div>
142
142
  <script src="../../prettify.js"></script>
@@ -133,7 +133,7 @@ export namespace Period {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
136
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
136
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  </div>
139
139
  <script src="../../prettify.js"></script>
@@ -334,7 +334,7 @@ export function isSame(d1: Date | number, d2: Date | number, g: Granularity, loc
334
334
  <div class='footer quiet pad2 space-top1 center small'>
335
335
  Code coverage generated by
336
336
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
337
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
337
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
338
338
  </div>
339
339
  </div>
340
340
  <script src="../../prettify.js"></script>
@@ -160,7 +160,7 @@ export namespace ConstantGranularity {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
163
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
163
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
@@ -172,7 +172,7 @@ export namespace YearDate {
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
175
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -316,7 +316,7 @@ export class Disposable implements IDisposable {
316
316
  <div class='footer quiet pad2 space-top1 center small'>
317
317
  Code coverage generated by
318
318
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
319
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
319
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
320
320
  </div>
321
321
  </div>
322
322
  <script src="../prettify.js"></script>
@@ -433,7 +433,7 @@ export class EnumBitwiseHelper&lt;T extends number&gt; extends EnumHelper&lt;T&g
433
433
  <div class='footer quiet pad2 space-top1 center small'>
434
434
  Code coverage generated by
435
435
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
436
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
436
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
437
437
  </div>
438
438
  </div>
439
439
  <script src="../prettify.js"></script>
@@ -280,7 +280,7 @@ export class Event&lt;T = any&gt; implements IEvent&lt;T&gt; {
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
283
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
283
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  </div>
286
286
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.93% </span>
26
+ <span class="strong">75.44% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>41/54</span>
28
+ <span class='fraction'>43/57</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.77% </span>
33
+ <span class="strong">80.68% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>63/78</span>
35
+ <span class='fraction'>71/88</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.43% </span>
47
+ <span class="strong">79.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/46</span>
49
+ <span class='fraction'>39/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file medium" data-value="update.ts"><a href="update.ts.html">update.ts</a></td>
77
- <td data-value="75.93" class="pic medium">
77
+ <td data-value="75.44" class="pic medium">
78
78
  <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
79
79
  </td>
80
- <td data-value="75.93" class="pct medium">75.93%</td>
81
- <td data-value="54" class="abs medium">41/54</td>
82
- <td data-value="80.77" class="pct high">80.77%</td>
83
- <td data-value="78" class="abs high">63/78</td>
80
+ <td data-value="75.44" class="pct medium">75.44%</td>
81
+ <td data-value="57" class="abs medium">43/57</td>
82
+ <td data-value="80.68" class="pct high">80.68%</td>
83
+ <td data-value="88" class="abs high">71/88</td>
84
84
  <td data-value="45.45" class="pct low">45.45%</td>
85
85
  <td data-value="11" class="abs low">5/11</td>
86
- <td data-value="80.43" class="pct high">80.43%</td>
87
- <td data-value="46" class="abs high">37/46</td>
86
+ <td data-value="79.59" class="pct medium">79.59%</td>
87
+ <td data-value="49" class="abs medium">39/49</td>
88
88
  </tr>
89
89
 
90
90
  </tbody>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
98
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">75.93% </span>
26
+ <span class="strong">75.44% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>41/54</span>
28
+ <span class='fraction'>43/57</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.77% </span>
33
+ <span class="strong">80.68% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>63/78</span>
35
+ <span class='fraction'>71/88</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.43% </span>
47
+ <span class="strong">79.59% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>37/46</span>
49
+ <span class='fraction'>39/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -174,7 +174,14 @@
174
174
  <a name='L115'></a><a href='#L115'>115</a>
175
175
  <a name='L116'></a><a href='#L116'>116</a>
176
176
  <a name='L117'></a><a href='#L117'>117</a>
177
- <a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a>
184
+ <a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
178
185
  <span class="cline-any cline-neutral">&nbsp;</span>
179
186
  <span class="cline-any cline-neutral">&nbsp;</span>
180
187
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -230,6 +237,7 @@
230
237
  <span class="cline-any cline-neutral">&nbsp;</span>
231
238
  <span class="cline-any cline-neutral">&nbsp;</span>
232
239
  <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
241
  <span class="cline-any cline-yes">1x</span>
234
242
  <span class="cline-any cline-neutral">&nbsp;</span>
235
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -264,12 +272,18 @@
264
272
  <span class="cline-any cline-neutral">&nbsp;</span>
265
273
  <span class="cline-any cline-neutral">&nbsp;</span>
266
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-yes">5x</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
277
  <span class="cline-any cline-neutral">&nbsp;</span>
268
278
  <span class="cline-any cline-yes">5x</span>
269
279
  <span class="cline-any cline-yes">15x</span>
270
280
  <span class="cline-any cline-yes">12x</span>
271
281
  <span class="cline-any cline-yes">12x</span>
272
282
  <span class="cline-any cline-yes">7x</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">7x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
287
  <span class="cline-any cline-yes">7x</span>
274
288
  <span class="cline-any cline-yes">7x</span>
275
289
  <span class="cline-any cline-yes">5x</span>
@@ -334,6 +348,7 @@ const DefaultUpdater: Fields.Updater&lt;any&gt; = <span class="fstat-no" title="
334
348
  &nbsp;
335
349
  export type UpdateArrayOptions&lt;T&gt; = {
336
350
  additive?: boolean,
351
+ unshift?: boolean,
337
352
  clone?: boolean,
338
353
  comparator?: Comparator&lt;T&gt;,
339
354
  updater?: Fields.Updater&lt;T&gt;,
@@ -342,14 +357,14 @@ export type UpdateArrayOptions&lt;T&gt; = {
342
357
  };
343
358
  &nbsp;
344
359
  export type UpdateArrayHooks&lt;T&gt; = {
345
- onAdded?: (item: T) =&gt; void,
346
- onDeleted?: (item: T) =&gt; void,
347
- onUpdated?: (previous: T, next: T) =&gt; void,
360
+ onAdded?: (item: T, index?: number) =&gt; void,
361
+ onDeleted?: (item: T, index?: number) =&gt; void,
362
+ onUpdated?: (previous: T, next: T, index?: number) =&gt; void,
348
363
  };
349
364
  &nbsp;
350
365
  export function updateArray&lt;T&gt;(
351
366
  target: T[] | null,
352
- source: T[],
367
+ source: T[] | null,
353
368
  options?: UpdateArrayOptions&lt;T&gt;,
354
369
  ): { changed: number, result: T[] } {
355
370
  if (!source) {
@@ -373,27 +388,33 @@ export function updateArray&lt;T&gt;(
373
388
  if (source.find(item =&gt; comparator(item, result[i])) == null) {
374
389
  // DELETE
375
390
  const removed = result.splice(i, 1);
376
- safeCall(onDeleted, removed[0]);
391
+ safeCall(onDeleted, removed[0], i);
377
392
  &nbsp;
378
393
  ++changed;
379
394
  --i;
380
395
  }
381
396
  }
382
397
  }
398
+ &nbsp;
399
+ const unshift = options?.unshift || false;
383
400
  &nbsp;
384
401
  // add all new elements and update existing
385
- source.forEach(i =&gt; {
386
- const existingIndex = result.findIndex(item =&gt; comparator(i, item));
402
+ source.forEach(item =&gt; {
403
+ const existingIndex = result.findIndex(i =&gt; comparator(item, i));
387
404
  const existingItem = result[existingIndex];
388
405
  if (existingIndex &lt; 0) {
389
- result.push(i);
390
- safeCall(onAdded, i);
406
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (unshift) {
407
+ <span class="cstat-no" title="statement not covered" > result.unshift(item);</span>
408
+ } else {
409
+ result.push(item);
410
+ }
411
+ safeCall(onAdded, item, unshift ? <span class="branch-0 cbranch-no" title="branch not covered" >0 </span>: result.length - 1);
391
412
  ++changed;
392
413
  } else if (typeof existingItem === 'object') {
393
414
  const before = onUpdate != null ? <span class="branch-0 cbranch-no" title="branch not covered" >{ ...existingItem } </span>: undefined;
394
- result[existingIndex] = updater(existingItem, i);
415
+ result[existingIndex] = updater(existingItem, item);
395
416
  <span class="missing-if-branch" title="if path not taken" >I</span>if (onUpdate != null) {
396
- <span class="cstat-no" title="statement not covered" > onUpdate(before!, result[existingIndex]);</span>
417
+ <span class="cstat-no" title="statement not covered" > onUpdate(before!, result[existingIndex], existingIndex);</span>
397
418
  }
398
419
  }
399
420
  });
@@ -415,7 +436,7 @@ export function updateArray&lt;T&gt;(
415
436
  <div class='footer quiet pad2 space-top1 center small'>
416
437
  Code coverage generated by
417
438
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
418
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
439
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
419
440
  </div>
420
441
  </div>
421
442
  <script src="../../prettify.js"></script>
@@ -106,7 +106,7 @@ export function safeCall&lt;T extends (...args: any) =&gt; any&gt;(cb: T | undef
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
109
- at Sat Jun 04 2022 17:04:51 GMT+0000 (Coordinated Universal Time)
109
+ at Thu Jul 07 2022 10:23:01 GMT+0000 (Coordinated Universal Time)
110
110
  </div>
111
111
  </div>
112
112
  <script src="../prettify.js"></script>