@grnsft/if 0.1.1 → 0.1.3-beta

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 (90) hide show
  1. package/.github/ISSUE_TEMPLATE/agenda.md +4 -3
  2. package/.github/ISSUE_TEMPLATE/bug-report.md +32 -0
  3. package/.github/ISSUE_TEMPLATE/dev-ticket.md +44 -0
  4. package/.github/ISSUE_TEMPLATE/sprint-planning.md +39 -0
  5. package/.github/ISSUE_TEMPLATE/sprint-retro.md +41 -0
  6. package/CONTRIBUTING.md +13 -17
  7. package/README.md +36 -18
  8. package/build/config/config.d.ts +12 -0
  9. package/build/config/config.js +54 -0
  10. package/build/config/strings.d.ts +8 -3
  11. package/build/config/strings.js +10 -6
  12. package/build/index.js +15 -8
  13. package/build/lib/models-universe.d.ts +10 -2
  14. package/build/lib/models-universe.js +52 -34
  15. package/build/lib/observatory.d.ts +20 -0
  16. package/build/lib/observatory.js +31 -0
  17. package/build/lib/planet-aggregator.d.ts +6 -0
  18. package/build/lib/planet-aggregator.js +35 -0
  19. package/build/lib/supercomputer.d.ts +7 -0
  20. package/build/lib/supercomputer.js +45 -6
  21. package/build/models/index.d.ts +1 -0
  22. package/build/models/index.js +6 -0
  23. package/build/models/time-sync.d.ts +55 -0
  24. package/build/models/time-sync.js +235 -0
  25. package/build/types/helpers.d.ts +1 -0
  26. package/build/types/helpers.js +3 -0
  27. package/build/types/impl.d.ts +14 -9
  28. package/build/types/impl.js +3 -1
  29. package/build/types/model-interface.d.ts +14 -0
  30. package/build/types/model-interface.js +3 -0
  31. package/build/types/models-universe.d.ts +5 -6
  32. package/build/types/models-universe.js +1 -1
  33. package/build/types/planet-aggregator.d.ts +6 -0
  34. package/build/types/planet-aggregator.js +3 -0
  35. package/build/types/process-args.d.ts +7 -0
  36. package/build/types/process-args.js +3 -0
  37. package/build/types/supercomputer.d.ts +4 -0
  38. package/build/types/supercomputer.js +3 -0
  39. package/build/types/time-sync.d.ts +9 -0
  40. package/build/types/time-sync.js +3 -0
  41. package/build/types/units-dealer.d.ts +3 -0
  42. package/build/types/units-dealer.js +3 -0
  43. package/build/types/units.d.ts +11 -0
  44. package/build/types/units.js +37 -0
  45. package/build/util/args.js +58 -0
  46. package/build/util/errors.d.ts +6 -0
  47. package/build/util/errors.js +25 -0
  48. package/build/util/helpers.js +18 -0
  49. package/build/util/units-dealer.d.ts +10 -0
  50. package/build/util/units-dealer.js +32 -0
  51. package/build/util/validations.d.ts +4 -0
  52. package/build/util/validations.js +29 -1
  53. package/build/util/yaml.d.ts +1 -2
  54. package/build/util/yaml.js +1 -1
  55. package/coverage/clover.xml +165 -114
  56. package/coverage/coverage-final.json +10 -9
  57. package/coverage/lcov-report/config/config.ts.html +12 -3
  58. package/coverage/lcov-report/config/index.html +17 -17
  59. package/coverage/lcov-report/config/index.ts.html +3 -3
  60. package/coverage/lcov-report/config/strings.ts.html +26 -20
  61. package/coverage/lcov-report/index.html +33 -33
  62. package/coverage/lcov-report/lib/index.html +41 -26
  63. package/coverage/lcov-report/lib/models-universe.ts.html +82 -40
  64. package/coverage/lcov-report/lib/observatory.ts.html +7 -7
  65. package/coverage/lcov-report/lib/planet-aggregator.ts.html +253 -0
  66. package/coverage/lcov-report/lib/supercomputer.ts.html +217 -58
  67. package/coverage/lcov-report/util/args.ts.html +11 -11
  68. package/coverage/lcov-report/util/errors.ts.html +10 -7
  69. package/coverage/lcov-report/util/index.html +11 -11
  70. package/coverage/lcov-report/util/yaml.ts.html +6 -6
  71. package/coverage/lcov.info +273 -185
  72. package/examples/impls/case-studies/aggregation.yml +97 -0
  73. package/examples/impls/test/aggregation-test.yml +109 -0
  74. package/examples/impls/test/large-impl.yml +257303 -0
  75. package/examples/impls/test/sci.yml +13 -37
  76. package/examples/impls/test/time-sync.yml +75 -0
  77. package/examples/ompls/aggregation-test.yml +340 -0
  78. package/examples/ompls/test/time-sync.yml +255 -0
  79. package/examples/ompls/time-sync.yml +212 -0
  80. package/hack-banner.png +0 -0
  81. package/package.json +3 -1
  82. package/src/config/units.yaml +11 -24
  83. package/src/models/README.md +266 -0
  84. package/tsconfig.build.tsbuildinfo +1 -1
  85. package/build/types/azure-importer.d.ts +0 -29
  86. package/build/types/azure-importer.js +0 -3
  87. package/build/types/boavizta.d.ts +0 -7
  88. package/build/types/boavizta.js +0 -3
  89. package/build/types/common.d.ts +0 -7
  90. package/build/types/common.js +0 -9
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.42% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>146/153</span>
28
+ <span class='fraction'>202/202</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>27/30</span>
35
+ <span class='fraction'>47/47</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">93.33% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>28/30</span>
42
+ <span class='fraction'>37/37</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.13% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>137/144</span>
49
+ <span class='fraction'>192/192</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,48 +79,48 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file medium" data-value="config"><a href="config/index.html">config</a></td>
83
- <td data-value="77.77" class="pic medium">
84
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
82
+ <td class="file high" data-value="config"><a href="config/index.html">config</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="77.77" class="pct medium">77.77%</td>
87
- <td data-value="9" class="abs medium">7/9</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="10" class="abs high">10/10</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="0" class="abs high">0/0</td>
90
- <td data-value="60" class="pct medium">60%</td>
91
- <td data-value="5" class="abs medium">3/5</td>
92
- <td data-value="71.42" class="pct medium">71.42%</td>
93
- <td data-value="7" class="abs medium">5/7</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="6" class="abs high">6/6</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="8" class="abs high">8/8</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="lib"><a href="lib/index.html">lib</a></td>
98
- <td data-value="95.69" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
98
+ <td data-value="100" class="pic high">
99
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
- <td data-value="95.69" class="pct high">95.69%</td>
102
- <td data-value="93" class="abs high">89/93</td>
103
- <td data-value="88" class="pct high">88%</td>
104
- <td data-value="25" class="abs high">22/25</td>
105
101
  <td data-value="100" class="pct high">100%</td>
106
- <td data-value="17" class="abs high">17/17</td>
107
- <td data-value="95.6" class="pct high">95.6%</td>
108
- <td data-value="91" class="abs high">87/91</td>
102
+ <td data-value="141" class="abs high">141/141</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="42" class="abs high">42/42</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="23" class="abs high">23/23</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="138" class="abs high">138/138</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
112
  <td class="file high" data-value="util"><a href="util/index.html">util</a></td>
113
- <td data-value="98.03" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
113
+ <td data-value="100" class="pic high">
114
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
115
  </td>
116
- <td data-value="98.03" class="pct high">98.03%</td>
117
- <td data-value="51" class="abs high">50/51</td>
116
+ <td data-value="100" class="pct high">100%</td>
117
+ <td data-value="51" class="abs high">51/51</td>
118
118
  <td data-value="100" class="pct high">100%</td>
119
119
  <td data-value="5" class="abs high">5/5</td>
120
120
  <td data-value="100" class="pct high">100%</td>
121
121
  <td data-value="8" class="abs high">8/8</td>
122
- <td data-value="97.82" class="pct high">97.82%</td>
123
- <td data-value="46" class="abs high">45/46</td>
122
+ <td data-value="100" class="pct high">100%</td>
123
+ <td data-value="46" class="abs high">46/46</td>
124
124
  </tr>
125
125
 
126
126
  </tbody>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2023-11-16T06:37:22.380Z
134
+ at 2023-12-04T08:39:10.143Z
135
135
  </div>
136
136
  <script src="prettify.js"></script>
137
137
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.69% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>89/93</span>
28
+ <span class='fraction'>141/141</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">88% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/25</span>
35
+ <span class='fraction'>42/42</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>17/17</span>
42
+ <span class='fraction'>23/23</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.6% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>87/91</span>
49
+ <span class='fraction'>138/138</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="models-universe.ts"><a href="models-universe.ts.html">models-universe.ts</a></td>
83
- <td data-value="94.59" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="94.59" class="pct high">94.59%</td>
87
- <td data-value="37" class="abs high">35/37</td>
88
- <td data-value="87.5" class="pct high">87.5%</td>
89
- <td data-value="8" class="abs high">7/8</td>
90
86
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="7" class="abs high">7/7</td>
92
- <td data-value="94.44" class="pct high">94.44%</td>
93
- <td data-value="36" class="abs high">34/36</td>
87
+ <td data-value="41" class="abs high">41/41</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="8" class="abs high">8/8</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="8" class="abs high">8/8</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="40" class="abs high">40/40</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -108,19 +108,34 @@
108
108
  <td data-value="7" class="abs high">7/7</td>
109
109
  </tr>
110
110
 
111
+ <tr>
112
+ <td class="file high" data-value="planet-aggregator.ts"><a href="planet-aggregator.ts.html">planet-aggregator.ts</a></td>
113
+ <td data-value="100" class="pic high">
114
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
+ </td>
116
+ <td data-value="100" class="pct high">100%</td>
117
+ <td data-value="22" class="abs high">22/22</td>
118
+ <td data-value="100" class="pct high">100%</td>
119
+ <td data-value="8" class="abs high">8/8</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="2" class="abs high">2/2</td>
122
+ <td data-value="100" class="pct high">100%</td>
123
+ <td data-value="21" class="abs high">21/21</td>
124
+ </tr>
125
+
111
126
  <tr>
112
127
  <td class="file high" data-value="supercomputer.ts"><a href="supercomputer.ts.html">supercomputer.ts</a></td>
113
- <td data-value="95.91" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
128
+ <td data-value="100" class="pic high">
129
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
130
  </td>
116
- <td data-value="95.91" class="pct high">95.91%</td>
117
- <td data-value="49" class="abs high">47/49</td>
118
- <td data-value="86.66" class="pct high">86.66%</td>
119
- <td data-value="15" class="abs high">13/15</td>
120
131
  <td data-value="100" class="pct high">100%</td>
121
- <td data-value="7" class="abs high">7/7</td>
122
- <td data-value="95.83" class="pct high">95.83%</td>
123
- <td data-value="48" class="abs high">46/48</td>
132
+ <td data-value="71" class="abs high">71/71</td>
133
+ <td data-value="100" class="pct high">100%</td>
134
+ <td data-value="24" class="abs high">24/24</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="10" class="abs high">10/10</td>
137
+ <td data-value="100" class="pct high">100%</td>
138
+ <td data-value="70" class="abs high">70/70</td>
124
139
  </tr>
125
140
 
126
141
  </tbody>
@@ -131,7 +146,7 @@
131
146
  <div class='footer quiet pad2 space-top1 center small'>
132
147
  Code coverage generated by
133
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2023-11-16T06:37:22.380Z
149
+ at 2023-12-04T08:39:10.143Z
135
150
  </div>
136
151
  <script src="../prettify.js"></script>
137
152
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.59% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>35/37</span>
28
+ <span class='fraction'>41/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.5% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>7/8</span>
35
+ <span class='fraction'>8/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
42
+ <span class='fraction'>8/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.44% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>34/36</span>
49
+ <span class='fraction'>40/40</span>
50
50
  </div>
51
51
 
52
52
 
@@ -179,7 +179,21 @@
179
179
  <a name='L114'></a><a href='#L114'>114</a>
180
180
  <a name='L115'></a><a href='#L115'>115</a>
181
181
  <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
183
197
  <span class="cline-any cline-neutral">&nbsp;</span>
184
198
  <span class="cline-any cline-yes">1x</span>
185
199
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -200,6 +214,7 @@
200
214
  <span class="cline-any cline-neutral">&nbsp;</span>
201
215
  <span class="cline-any cline-neutral">&nbsp;</span>
202
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
218
  <span class="cline-any cline-yes">1x</span>
204
219
  <span class="cline-any cline-neutral">&nbsp;</span>
205
220
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -209,21 +224,19 @@
209
224
  <span class="cline-any cline-neutral">&nbsp;</span>
210
225
  <span class="cline-any cline-neutral">&nbsp;</span>
211
226
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">7x</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-yes">9x</span>
214
228
  <span class="cline-any cline-neutral">&nbsp;</span>
215
229
  <span class="cline-any cline-neutral">&nbsp;</span>
216
230
  <span class="cline-any cline-neutral">&nbsp;</span>
217
231
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">2x</span>
219
- <span class="cline-any cline-yes">2x</span>
220
- <span class="cline-any cline-yes">2x</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">2x</span>
223
232
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
233
+ <span class="cline-any cline-yes">4x</span>
234
+ <span class="cline-any cline-yes">4x</span>
235
+ <span class="cline-any cline-yes">3x</span>
225
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">3x</span>
226
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-yes">1x</span>
227
240
  <span class="cline-any cline-neutral">&nbsp;</span>
228
241
  <span class="cline-any cline-neutral">&nbsp;</span>
229
242
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -232,64 +245,79 @@
232
245
  <span class="cline-any cline-neutral">&nbsp;</span>
233
246
  <span class="cline-any cline-neutral">&nbsp;</span>
234
247
  <span class="cline-any cline-yes">5x</span>
235
- <span class="cline-any cline-yes">2x</span>
248
+ <span class="cline-any cline-yes">5x</span>
236
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-yes">4x</span>
237
251
  <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-yes">3x</span>
239
252
  <span class="cline-any cline-yes">1x</span>
240
253
  <span class="cline-any cline-neutral">&nbsp;</span>
241
254
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">2x</span>
243
- <span class="cline-any cline-yes">2x</span>
244
- <span class="cline-any cline-yes">2x</span>
245
255
  <span class="cline-any cline-neutral">&nbsp;</span>
246
256
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">2x</span>
248
- <span class="cline-any cline-yes">2x</span>
249
257
  <span class="cline-any cline-neutral">&nbsp;</span>
250
258
  <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-yes">2x</span>
252
259
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">2x</span>
254
- <span class="cline-any cline-yes">1x</span>
255
260
  <span class="cline-any cline-neutral">&nbsp;</span>
256
261
  <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-yes">7x</span>
257
263
  <span class="cline-any cline-yes">1x</span>
258
264
  <span class="cline-any cline-neutral">&nbsp;</span>
259
265
  <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-yes">6x</span>
267
+ <span class="cline-any cline-yes">1x</span>
260
268
  <span class="cline-any cline-neutral">&nbsp;</span>
261
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-yes">5x</span>
271
+ <span class="cline-any cline-yes">4x</span>
272
+ <span class="cline-any cline-yes">4x</span>
262
273
  <span class="cline-any cline-neutral">&nbsp;</span>
263
274
  <span class="cline-any cline-neutral">&nbsp;</span>
264
275
  <span class="cline-any cline-yes">5x</span>
276
+ <span class="cline-any cline-yes">5x</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
278
  <span class="cline-any cline-neutral">&nbsp;</span>
266
279
  <span class="cline-any cline-yes">5x</span>
267
280
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">1x</span>
281
+ <span class="cline-any cline-yes">4x</span>
269
282
  <span class="cline-any cline-yes">1x</span>
270
283
  <span class="cline-any cline-neutral">&nbsp;</span>
271
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">2x</span>
272
286
  <span class="cline-any cline-neutral">&nbsp;</span>
273
287
  <span class="cline-any cline-neutral">&nbsp;</span>
274
- <span class="cline-any cline-yes">1x</span>
275
288
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">1x</span>
277
289
  <span class="cline-any cline-neutral">&nbsp;</span>
278
290
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">1x</span>
280
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">7x</span>
281
293
  <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-yes">7x</span>
282
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-yes">2x</span>
297
+ <span class="cline-any cline-yes">2x</span>
283
298
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">1x</span>
285
299
  <span class="cline-any cline-neutral">&nbsp;</span>
286
300
  <span class="cline-any cline-neutral">&nbsp;</span>
287
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-yes">2x</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-yes">2x</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-yes">2x</span>
288
308
  <span class="cline-any cline-neutral">&nbsp;</span>
289
309
  <span class="cline-any cline-neutral">&nbsp;</span>
290
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-yes">2x</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">2x</span>
291
320
  <span class="cline-any cline-yes">1x</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
293
321
  <span class="cline-any cline-neutral">&nbsp;</span>
294
322
  <span class="cline-any cline-neutral">&nbsp;</span>
295
323
  <span class="cline-any cline-yes">1x</span>
@@ -316,6 +344,7 @@ const {
316
344
  NOT_NATIVE_MODEL,
317
345
  NOT_CONSTRUCTABLE_MODEL,
318
346
  NOT_INITIALIZED_MODEL,
347
+ INVALID_MODULE_PATH,
319
348
  } = STRINGS;
320
349
  &nbsp;
321
350
  /**
@@ -337,7 +366,20 @@ export class ModelsUniverse {
337
366
  &nbsp;
338
367
  return boolable;
339
368
  } catch (error) {
340
- <span class="cstat-no" title="statement not covered" > throw new ModelInitializationError(NOT_CONSTRUCTABLE_MODEL(params));</span>
369
+ throw new ModelInitializationError(NOT_CONSTRUCTABLE_MODEL(params));
370
+ }
371
+ }
372
+ &nbsp;
373
+ /**
374
+ * Imports module by given `path`.
375
+ */
376
+ private async importModuleFrom(path: string) {
377
+ try {
378
+ const module = await import(path);
379
+ &nbsp;
380
+ return module;
381
+ } catch (error) {
382
+ throw new ModelInitializationError(INVALID_MODULE_PATH(path));
341
383
  }
342
384
  }
343
385
  &nbsp;
@@ -364,13 +406,13 @@ export class ModelsUniverse {
364
406
  console.log(NOT_NATIVE_MODEL);
365
407
  }
366
408
  &nbsp;
367
- const pluginModule = await import(path);
409
+ const pluginModule = await this.importModuleFrom(path);
368
410
  &nbsp;
369
- if (this.instanceOfModel(pluginModule[model], {model, path})) {
370
- return pluginModule[model];
411
+ if (!this.instanceOfModel(pluginModule[model], {model, path})) {
412
+ throw new ModelInitializationError(NOT_MODEL_PLUGIN_EXTENSION);
371
413
  }
372
414
  &nbsp;
373
- throw new ModelInitializationError(NOT_MODEL_PLUGIN_EXTENSION);
415
+ return pluginModule[model];
374
416
  }
375
417
  &nbsp;
376
418
  /**
@@ -404,8 +446,8 @@ export class ModelsUniverse {
404
446
  * Returns existing model by `name`.
405
447
  */
406
448
  public async getInitializedModel(modelName: string, config: any) {
407
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this.initalizedModels[modelName]) {
408
- <span class="cstat-no" title="statement not covered" > return this.initalizedModels[modelName](config);</span>
449
+ if (this.initalizedModels[modelName]) {
450
+ return this.initalizedModels[modelName](config);
409
451
  }
410
452
  &nbsp;
411
453
  throw new ModelInitializationError(NOT_INITIALIZED_MODEL(modelName));
@@ -418,7 +460,7 @@ export class ModelsUniverse {
418
460
  <div class='footer quiet pad2 space-top1 center small'>
419
461
  Code coverage generated by
420
462
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
421
- at 2023-11-16T06:37:22.380Z
463
+ at 2023-12-04T08:39:10.143Z
422
464
  </div>
423
465
  <script src="../prettify.js"></script>
424
466
  <script>
@@ -104,31 +104,31 @@
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-yes">2x</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">11x</span>
107
+ <span class="cline-any cline-yes">20x</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-yes">11x</span>
113
+ <span class="cline-any cline-yes">20x</span>
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
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">18x</span>
120
+ <span class="cline-any cline-yes">37x</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-yes">18x</span>
122
+ <span class="cline-any cline-yes">37x</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">18x</span>
124
+ <span class="cline-any cline-yes">37x</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-yes">12x</span>
131
+ <span class="cline-any cline-yes">17x</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {ModelPluginInterface} from '../types/model-interface';
@@ -172,7 +172,7 @@ export class Observatory {
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" rel="noopener noreferrer">istanbul</a>
175
- at 2023-11-16T06:37:22.380Z
175
+ at 2023-12-04T08:39:10.143Z
176
176
  </div>
177
177
  <script src="../prettify.js"></script>
178
178
  <script>