@grnsft/if 0.1.0 → 0.1.2

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 (43) 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/coverage/clover.xml +147 -1128
  7. package/coverage/coverage-final.json +9 -26
  8. package/coverage/lcov-report/config/config.ts.html +3 -66
  9. package/coverage/lcov-report/config/index.html +16 -16
  10. package/coverage/lcov-report/config/index.ts.html +3 -3
  11. package/coverage/lcov-report/config/strings.ts.html +90 -21
  12. package/coverage/lcov-report/index.html +26 -221
  13. package/coverage/lcov-report/lib/index.html +40 -10
  14. package/coverage/lcov-report/lib/models-universe.ts.html +475 -0
  15. package/coverage/lcov-report/lib/observatory.ts.html +187 -0
  16. package/coverage/lcov-report/lib/supercomputer.ts.html +553 -0
  17. package/coverage/lcov-report/util/args.ts.html +25 -10
  18. package/coverage/lcov-report/util/errors.ts.html +157 -0
  19. package/coverage/lcov-report/util/index.html +16 -46
  20. package/coverage/lcov-report/util/yaml.ts.html +22 -16
  21. package/coverage/lcov.info +249 -2019
  22. package/examples/impls/case-studies/ntt-data-on-premise.yaml +42 -0
  23. package/package.json +4 -3
  24. package/build/config/config.d.ts +0 -9
  25. package/build/config/config.js +0 -51
  26. package/build/lib/observatory.d.ts +0 -20
  27. package/build/lib/observatory.js +0 -31
  28. package/build/types/model-interface.d.ts +0 -16
  29. package/build/types/model-interface.js +0 -3
  30. package/build/types/process-args.d.ts +0 -7
  31. package/build/types/process-args.js +0 -3
  32. package/build/types/supercomputer.d.ts +0 -4
  33. package/build/types/supercomputer.js +0 -3
  34. package/build/util/args.js +0 -48
  35. package/build/util/errors.d.ts +0 -6
  36. package/build/util/errors.js +0 -22
  37. package/build/util/helpers.js +0 -18
  38. package/src/__mocks__/boavizta/countries.json +0 -138
  39. package/src/__mocks__/boavizta/instance_types.json +0 -625
  40. package/src/__mocks__/boavizta/providers.json +0 -1
  41. package/src/__mocks__/watt-time/data.json +0 -119
  42. package/tsconfig.build.tsbuildinfo +0 -1
  43. package/yarn-error.log +0 -5854
@@ -117,53 +117,11 @@
117
117
  <a name='L52'></a><a href='#L52'>52</a>
118
118
  <a name='L53'></a><a href='#L53'>53</a>
119
119
  <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-yes">19x</span>
146
- <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <a name='L55'></a><a href='#L55'>55</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
164
121
  <span class="cline-any cline-neutral">&nbsp;</span>
165
122
  <span class="cline-any cline-neutral">&nbsp;</span>
166
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-yes">3x</span>
167
125
  <span class="cline-any cline-neutral">&nbsp;</span>
168
126
  <span class="cline-any cline-neutral">&nbsp;</span>
169
127
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -218,27 +176,6 @@
218
176
  import {impactProcessArgs} from '../types/process-args';
219
177
  &nbsp;
220
178
  export const CONFIG = {
221
- MODEL_IDS: {
222
- BOAVIZTA_CPU: 'org.boavizta.cpu.sci',
223
- BOAVIZTA_CLOUD: 'org.boavizta.cloud.sci',
224
- AVEVA: 'aveva',
225
- EMEM: 'energy-memory',
226
- ESHOPPEN: 'org.gsf.eshoppen',
227
- ESHOPPEN_CPU: 'org.gsf.eshoppen-cpu',
228
- ESHOPPEN_MEM: 'org.gsf.eshoppen-mem',
229
- ESHOPPEN_NET: 'org.gsf.eshoppen-net',
230
- SCI_ACCENTURE: 'org.gsf.sci-o',
231
- CCF: 'ccf.cloud.sci',
232
- SCI: 'org.gsf.sci',
233
- SCI_E: 'sci-e',
234
- SCI_M: 'org.gsf.sci-m',
235
- SCI_O: 'org.gsf.sci-o',
236
- SHELL_MODEL: 'shellModel',
237
- TEADS_AWS: 'teads.cloud.sci',
238
- TEADS_CURVE: 'teads.curve',
239
- WATT_TIME: 'org.wattime.grid',
240
- CLOUD_INSTANCE_METADATA: 'org.gsf.cloud-instance-metadata',
241
- },
242
179
  impact: {
243
180
  ARGS: {
244
181
  impl: {
@@ -295,7 +232,7 @@ export const CONFIG = {
295
232
  <div class='footer quiet pad2 space-top1 center small'>
296
233
  Code coverage generated by
297
234
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
298
- at 2023-11-01T14:37:41.749Z
235
+ at 2023-11-20T19:46:53.121Z
299
236
  </div>
300
237
  <script src="../prettify.js"></script>
301
238
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">87.5% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/8</span>
28
+ <span class='fraction'>10/10</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/4</span>
42
+ <span class='fraction'>6/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.33% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/6</span>
49
+ <span class='fraction'>8/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -109,18 +109,18 @@
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file medium" data-value="strings.ts"><a href="strings.ts.html">strings.ts</a></td>
113
- <td data-value="66.66" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
112
+ <td class="file high" data-value="strings.ts"><a href="strings.ts.html">strings.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
115
  </td>
116
- <td data-value="66.66" class="pct medium">66.66%</td>
117
- <td data-value="3" class="abs medium">2/3</td>
116
+ <td data-value="100" class="pct high">100%</td>
117
+ <td data-value="5" class="abs high">5/5</td>
118
118
  <td data-value="100" class="pct high">100%</td>
119
119
  <td data-value="0" class="abs high">0/0</td>
120
- <td data-value="50" class="pct medium">50%</td>
121
- <td data-value="2" class="abs medium">1/2</td>
122
- <td data-value="66.66" class="pct medium">66.66%</td>
123
- <td data-value="3" class="abs medium">2/3</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="4" class="abs high">4/4</td>
122
+ <td data-value="100" class="pct high">100%</td>
123
+ <td data-value="5" class="abs high">5/5</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-01T14:37:41.749Z
134
+ at 2023-11-20T19:46:53.121Z
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -65,8 +65,8 @@
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">66x</span>
69
- <span class="cline-any cline-yes">23x</span>
68
+ <a name='L3'></a><a href='#L3'>3</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
69
+ <span class="cline-any cline-yes">11x</span>
70
70
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export {CONFIG} from './config';
71
71
  export {STRINGS} from './strings';
72
72
  &nbsp;</pre></td></tr></table></pre>
@@ -76,7 +76,7 @@ export {STRINGS} from './strings';
76
76
  <div class='footer quiet pad2 space-top1 center small'>
77
77
  Code coverage generated by
78
78
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
79
- at 2023-11-01T14:37:41.749Z
79
+ at 2023-11-20T19:46:53.121Z
80
80
  </div>
81
81
  <script src="../prettify.js"></script>
82
82
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.66% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2/3</span>
28
+ <span class='fraction'>5/5</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/2</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">66.66% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2/3</span>
49
+ <span class='fraction'>5/5</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -74,27 +74,96 @@
74
74
  <a name='L9'></a><a href='#L9'>9</a>
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
76
  <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">19x</span>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-yes">4x</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-yes">3x</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">5x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
78
124
  <span class="cline-any cline-neutral">&nbsp;</span>
79
125
  <span class="cline-any cline-neutral">&nbsp;</span>
80
126
  <span class="cline-any cline-neutral">&nbsp;</span>
81
127
  <span class="cline-any cline-neutral">&nbsp;</span>
82
128
  <span class="cline-any cline-neutral">&nbsp;</span>
83
- <span class="cline-any cline-yes">1x</span>
84
129
  <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-yes">3x</span>
86
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-yes">3x</span>
87
133
  <span class="cline-any cline-neutral">&nbsp;</span>
88
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const STRINGS = {
89
- WRONG_CLI_ARGUMENT: 'Wrong or missing argument.',
90
- MISSING_CLASSNAME: 'Model classname is missing.',
91
- NOT_OUTPUT_MODEL_EXTENSION:
92
- 'Provided model does not extend IOutputModelInterface.',
93
- NOT_INITIALIZED_MODEL: (modelName: string) =&gt;
94
- `Model ${modelName} is not initalized yet.`,
95
- WRONG_OR_MISSING_MODEL: <span class="fstat-no" title="function not covered" >(m</span>odelName: string) =&gt;
96
- <span class="cstat-no" title="statement not covered" > `Missing or wrong model: ${modelName}.`,</span>
97
- MISSING_PATH: 'Plugin path parameter is missing.',
134
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {ClassContainerParams} from '../types/models-universe';
135
+ &nbsp;
136
+ export const STRINGS = {
137
+ FILE_IS_NOT_YAML: 'Provided impl file is not in yaml format.',
138
+ IMPL_IS_MISSING: 'Impl file is missing.',
139
+ MISSING_CLASSNAME: "Initalization param 'model` is missing.",
140
+ MISSING_PATH: "Initalization param 'path' is missing.",
141
+ NOT_MODEL_PLUGIN_EXTENSION:
142
+ "Provided model does not extend 'ModelPluginInterface'.",
143
+ STRUCTURE_MALFORMED: (childName: string) =&gt;
144
+ `Graph is malformed: graph.children.${childName} is not valid.`,
145
+ NOT_INITIALIZED_MODEL: (className: string) =&gt;
146
+ `You're trying to use not initalized model: ${className}.`,
147
+ DISCLAIMER_MESSAGE: `
148
+ [!important] Incubation Project
149
+ &nbsp;
150
+ This project is an incubation project being run inside the Green Software Foundation; as such, we *DON’T recommend using it in any critical use case.
151
+ Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day graduate, in which case this disclaimer will be removed.
152
+ `,
153
+ NOT_NATIVE_MODEL: `
154
+ [!important]
155
+ &nbsp;
156
+ You are using models that are not part of the Impact Framework standard library. You should do your own research to ensure the models are up to date and accurate. They may not be actively maintained.
157
+ `,
158
+ SOMETHING_WRONG: 'Something wrong with cli arguments. Please check docs.',
159
+ ISSUE_TEMPLATE: `
160
+ Impact Framework is an alpha release from the Green Software Foundation and is released to capture early feedback. If you'd like to offer some feedback, please use this issue template:
161
+ https://github.com/Green-Software-Foundation/if/issues/new?assignees=&amp;labels=feedback&amp;projects=&amp;template=feedback.md&amp;title=Feedback+-+
162
+ `,
163
+ NOT_CONSTRUCTABLE_MODEL: (params: ClassContainerParams) =&gt;
164
+ `Provided model '${params.model}' is not constructable or does not belong to given plugin '${params.path}'.`,
165
+ INVALID_MODULE_PATH: (path: string) =&gt;
166
+ `Provided module path: '${path}' is invalid.`,
98
167
  };
99
168
  &nbsp;</pre></td></tr></table></pre>
100
169
 
@@ -103,7 +172,7 @@
103
172
  <div class='footer quiet pad2 space-top1 center small'>
104
173
  Code coverage generated by
105
174
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2023-11-01T14:37:41.749Z
175
+ at 2023-11-20T19:46:53.121Z
107
176
  </div>
108
177
  <script src="../prettify.js"></script>
109
178
  <script>