@grnsft/if 0.0.6 → 0.1.1

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 (182) hide show
  1. package/.examples/ompls/azure.yml +205 -0
  2. package/.github/workflows/nodejs-ci.yml +0 -8
  3. package/README.md +48 -9
  4. package/build/index.js +1 -2
  5. package/coverage/clover.xml +132 -1118
  6. package/coverage/coverage-final.json +9 -26
  7. package/coverage/lcov-report/config/config.ts.html +3 -66
  8. package/coverage/lcov-report/config/index.html +15 -15
  9. package/coverage/lcov-report/config/index.ts.html +3 -3
  10. package/coverage/lcov-report/config/strings.ts.html +82 -19
  11. package/coverage/lcov-report/index.html +36 -231
  12. package/coverage/lcov-report/lib/index.html +43 -13
  13. package/coverage/lcov-report/lib/models-universe.ts.html +433 -0
  14. package/coverage/lcov-report/lib/observatory.ts.html +187 -0
  15. package/coverage/lcov-report/lib/supercomputer.ts.html +553 -0
  16. package/coverage/lcov-report/util/args.ts.html +23 -8
  17. package/coverage/lcov-report/util/errors.ts.html +157 -0
  18. package/coverage/lcov-report/util/index.html +20 -50
  19. package/coverage/lcov-report/util/yaml.ts.html +17 -11
  20. package/coverage/lcov.info +225 -2004
  21. package/examples/impls/test/azure.yml +8 -8
  22. package/examples/impls/test/ccf.yml +5 -3
  23. package/examples/impls/test/if-demo.yml +19 -9
  24. package/examples/impls/test/metadata.yml +3 -2
  25. package/examples/impls/test/nesting.yml +10 -13
  26. package/examples/impls/test/sci-e.yml +1 -1
  27. package/examples/impls/test/sci-m.yml +2 -2
  28. package/examples/impls/test/sci-o.yml +2 -4
  29. package/examples/impls/test/sci.yml +38 -15
  30. package/examples/impls/test/shell.yml +2 -1
  31. package/examples/impls/{tdp-finder-test.yml → test/tdp-finder.yml} +8 -8
  32. package/examples/ompls/ccf.yml +3 -1
  33. package/examples/ompls/if-demo.yml +46 -22
  34. package/package.json +15 -7
  35. package/tsconfig.build.json +7 -0
  36. package/tsconfig.build.tsbuildinfo +1 -0
  37. package/build/__mocks__/azure/index.d.ts +0 -11
  38. package/build/__mocks__/azure/index.js +0 -132
  39. package/build/__mocks__/boavizta/countries.json +0 -138
  40. package/build/__mocks__/boavizta/instance_types.json +0 -625
  41. package/build/__mocks__/boavizta/providers.json +0 -1
  42. package/build/__mocks__/fs/index.d.ts +0 -3
  43. package/build/__mocks__/fs/index.js +0 -56
  44. package/build/__mocks__/model-universe/index.d.ts +0 -31
  45. package/build/__mocks__/model-universe/index.js +0 -64
  46. package/build/__mocks__/watt-time/data.json +0 -119
  47. package/build/__tests__/integration/ompl/index.test.d.ts +0 -1
  48. package/build/__tests__/integration/ompl/index.test.js +0 -61
  49. package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +0 -1
  50. package/build/__tests__/unit/lib/azure-importer/index.test.js +0 -152
  51. package/build/__tests__/unit/lib/boavizta/index.test.d.ts +0 -1
  52. package/build/__tests__/unit/lib/boavizta/index.test.js +0 -579
  53. package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +0 -1
  54. package/build/__tests__/unit/lib/case-studies/aveva.test.js +0 -36
  55. package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +0 -1
  56. package/build/__tests__/unit/lib/case-studies/emem.test.js +0 -108
  57. package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +0 -1
  58. package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +0 -53
  59. package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +0 -1
  60. package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +0 -23
  61. package/build/__tests__/unit/lib/ccf/index.test.d.ts +0 -1
  62. package/build/__tests__/unit/lib/ccf/index.test.js +0 -223
  63. package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +0 -1
  64. package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +0 -73
  65. package/build/__tests__/unit/lib/models-universe.test.d.ts +0 -1
  66. package/build/__tests__/unit/lib/models-universe.test.js +0 -193
  67. package/build/__tests__/unit/lib/observatory.test.d.ts +0 -1
  68. package/build/__tests__/unit/lib/observatory.test.js +0 -99
  69. package/build/__tests__/unit/lib/sci/index.test.d.ts +0 -1
  70. package/build/__tests__/unit/lib/sci/index.test.js +0 -106
  71. package/build/__tests__/unit/lib/sci-e/index.test.d.ts +0 -1
  72. package/build/__tests__/unit/lib/sci-e/index.test.js +0 -30
  73. package/build/__tests__/unit/lib/sci-m/index.test.d.ts +0 -1
  74. package/build/__tests__/unit/lib/sci-m/index.test.js +0 -58
  75. package/build/__tests__/unit/lib/sci-o/index.test.d.ts +0 -1
  76. package/build/__tests__/unit/lib/sci-o/index.test.js +0 -42
  77. package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +0 -1
  78. package/build/__tests__/unit/lib/shell-imp/index.test.js +0 -21
  79. package/build/__tests__/unit/lib/supercomputer.test.d.ts +0 -1
  80. package/build/__tests__/unit/lib/supercomputer.test.js +0 -231
  81. package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +0 -1
  82. package/build/__tests__/unit/lib/tdp-finder/index.test.js +0 -62
  83. package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +0 -1
  84. package/build/__tests__/unit/lib/teads-aws/index.test.js +0 -170
  85. package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +0 -1
  86. package/build/__tests__/unit/lib/teads-curve/index.test.js +0 -146
  87. package/build/__tests__/unit/lib/watt-time/index.test.d.ts +0 -1
  88. package/build/__tests__/unit/lib/watt-time/index.test.js +0 -106
  89. package/build/__tests__/unit/util/args.test.d.ts +0 -1
  90. package/build/__tests__/unit/util/args.test.js +0 -92
  91. package/build/__tests__/unit/util/models-universe.test.d.ts +0 -1
  92. package/build/__tests__/unit/util/models-universe.test.js +0 -193
  93. package/build/__tests__/unit/util/observatory.test.d.ts +0 -1
  94. package/build/__tests__/unit/util/observatory.test.js +0 -99
  95. package/build/__tests__/unit/util/supercomputer.test.d.ts +0 -1
  96. package/build/__tests__/unit/util/supercomputer.test.js +0 -231
  97. package/build/__tests__/unit/util/yaml.test.d.ts +0 -1
  98. package/build/__tests__/unit/util/yaml.test.js +0 -59
  99. package/build/config/config.d.ts +0 -9
  100. package/build/config/config.js +0 -51
  101. package/build/lib/azure-importer/index.d.ts +0 -55
  102. package/build/lib/azure-importer/index.js +0 -314
  103. package/build/lib/boavizta/index.d.ts +0 -53
  104. package/build/lib/boavizta/index.js +0 -254
  105. package/build/lib/case-studies/aveva-model.d.ts +0 -29
  106. package/build/lib/case-studies/aveva-model.js +0 -53
  107. package/build/lib/case-studies/emem-model.d.ts +0 -42
  108. package/build/lib/case-studies/emem-model.js +0 -93
  109. package/build/lib/case-studies/eshoppen-model.d.ts +0 -24
  110. package/build/lib/case-studies/eshoppen-model.js +0 -123
  111. package/build/lib/case-studies/index.d.ts +0 -4
  112. package/build/lib/case-studies/index.js +0 -21
  113. package/build/lib/case-studies/sci-accenture-model.d.ts +0 -10
  114. package/build/lib/case-studies/sci-accenture-model.js +0 -37
  115. package/build/lib/ccf/aws-embodied.json +0 -5591
  116. package/build/lib/ccf/aws-instances.json +0 -21116
  117. package/build/lib/ccf/aws-use.json +0 -79
  118. package/build/lib/ccf/azure-embodied.json +0 -6547
  119. package/build/lib/ccf/azure-instances.json +0 -8332
  120. package/build/lib/ccf/azure-use.json +0 -58
  121. package/build/lib/ccf/gcp-embodied.json +0 -3049
  122. package/build/lib/ccf/gcp-instances.json +0 -3880
  123. package/build/lib/ccf/gcp-use.json +0 -58
  124. package/build/lib/ccf/index.d.ts +0 -63
  125. package/build/lib/ccf/index.js +0 -338
  126. package/build/lib/cloud-instance-metadata/aws-instances.json +0 -1
  127. package/build/lib/cloud-instance-metadata/azure-instances.json +0 -1
  128. package/build/lib/cloud-instance-metadata/index.d.ts +0 -15
  129. package/build/lib/cloud-instance-metadata/index.js +0 -104
  130. package/build/lib/index.d.ts +0 -14
  131. package/build/lib/index.js +0 -32
  132. package/build/lib/interfaces/ccf.d.ts +0 -19
  133. package/build/lib/interfaces/ccf.js +0 -3
  134. package/build/lib/interfaces/index.d.ts +0 -7
  135. package/build/lib/interfaces/index.js +0 -18
  136. package/build/lib/observatory.d.ts +0 -20
  137. package/build/lib/observatory.js +0 -31
  138. package/build/lib/sci/index.d.ts +0 -13
  139. package/build/lib/sci/index.js +0 -131
  140. package/build/lib/sci-e/index.d.ts +0 -38
  141. package/build/lib/sci-e/index.js +0 -85
  142. package/build/lib/sci-m/index.d.ts +0 -10
  143. package/build/lib/sci-m/index.js +0 -124
  144. package/build/lib/sci-o/index.d.ts +0 -17
  145. package/build/lib/sci-o/index.js +0 -52
  146. package/build/lib/shell-imp/index.d.ts +0 -32
  147. package/build/lib/shell-imp/index.js +0 -82
  148. package/build/lib/tdp-finder/index.d.ts +0 -19
  149. package/build/lib/tdp-finder/index.js +0 -98
  150. package/build/lib/teads-aws/aws-embodied.json +0 -1
  151. package/build/lib/teads-aws/aws-instances.json +0 -1
  152. package/build/lib/teads-aws/index.d.ts +0 -58
  153. package/build/lib/teads-aws/index.js +0 -208
  154. package/build/lib/teads-curve/index.d.ts +0 -52
  155. package/build/lib/teads-curve/index.js +0 -158
  156. package/build/lib/watt-time/index.d.ts +0 -18
  157. package/build/lib/watt-time/index.js +0 -204
  158. package/build/types/model-interface.d.ts +0 -16
  159. package/build/types/model-interface.js +0 -3
  160. package/build/types/process-args.d.ts +0 -7
  161. package/build/types/process-args.js +0 -3
  162. package/build/types/supercomputer.d.ts +0 -4
  163. package/build/types/supercomputer.js +0 -3
  164. package/build/util/args.js +0 -48
  165. package/build/util/errors.d.ts +0 -6
  166. package/build/util/errors.js +0 -22
  167. package/build/util/helpers.js +0 -18
  168. package/build/util/models-universe.d.ts +0 -28
  169. package/build/util/models-universe.js +0 -95
  170. package/build/util/observatory.d.ts +0 -20
  171. package/build/util/observatory.js +0 -31
  172. package/build/util/supercomputer.d.ts +0 -30
  173. package/build/util/supercomputer.js +0 -109
  174. package/docs/implementations/tdp-finder.md +0 -36
  175. package/examples/impls/test/complex-pipeline.yml +0 -67
  176. package/examples/impls/test/toto.yaml +0 -22
  177. package/src/__mocks__/boavizta/countries.json +0 -138
  178. package/src/__mocks__/boavizta/instance_types.json +0 -625
  179. package/src/__mocks__/boavizta/providers.json +0 -1
  180. package/src/__mocks__/watt-time/data.json +0 -119
  181. package/tsconfig.tsbuildinfo +0 -1
  182. package/yarn-error.log +0 -5854
@@ -1,193 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const model_universe_1 = require("../../../__mocks__/model-universe");
4
- const models_universe_1 = require("../../../lib/models-universe");
5
- const config_1 = require("../../../config");
6
- const { MISSING_CLASSNAME, MISSING_PATH, NOT_OUTPUT_MODEL_EXTENSION, NOT_INITIALIZED_MODEL, } = config_1.STRINGS;
7
- describe('util/models-universe: ', () => {
8
- describe('init ModelsUniverse', () => {
9
- it('initializes object with required properties.', () => {
10
- const modelsHandbook = new models_universe_1.ModelsUniverse();
11
- expect(typeof modelsHandbook.getInitializedModel).toBe('function');
12
- expect(typeof modelsHandbook.initalizedModels).toBe('object');
13
- expect(typeof modelsHandbook.writeDown).toBe('function');
14
- expect(modelsHandbook.initalizedModels).toEqual({});
15
- });
16
- });
17
- describe('writeDown(): ', () => {
18
- beforeEach(() => {
19
- jest.resetModules();
20
- jest.restoreAllMocks();
21
- });
22
- it('throws error in case model is not supported.', () => {
23
- const modelsHandbook = new models_universe_1.ModelsUniverse();
24
- const modelInfo = {
25
- config: {
26
- allocation: 'mock-allocation',
27
- verbose: true,
28
- },
29
- name: 'test',
30
- };
31
- const expectedMessage = `Missing or wrong model: ${modelInfo.name}.`;
32
- try {
33
- modelsHandbook.writeDown(modelInfo);
34
- }
35
- catch (error) {
36
- if (error instanceof Error) {
37
- expect(error.message).toEqual(expectedMessage);
38
- }
39
- }
40
- });
41
- it('registers `shell` model in initalized models list.', () => {
42
- const modelsHandbook = new models_universe_1.ModelsUniverse();
43
- const modelInfo = {
44
- config: {
45
- allocation: 'mock-allocation',
46
- verbose: true,
47
- },
48
- name: 'mock-name',
49
- };
50
- const modelsList = modelsHandbook.writeDown(modelInfo);
51
- expect(modelsList).toHaveProperty(modelInfo.name);
52
- expect(typeof modelsList[modelInfo.name]).toBe('function');
53
- });
54
- it('registers `plugin` model in initalized models list.', () => {
55
- const modelsHandbook = new models_universe_1.ModelsUniverse();
56
- const modelInfo = {
57
- config: {
58
- allocation: 'mock-allocation',
59
- verbose: true,
60
- },
61
- name: 'mock-name',
62
- };
63
- const modelsList = modelsHandbook.writeDown(modelInfo);
64
- expect(modelsList).toHaveProperty(modelInfo.name);
65
- expect(typeof modelsList[modelInfo.name]).toBe('function');
66
- });
67
- it('throws `missing classname` error while registration of `plugin` model.', async () => {
68
- const modelsHandbook = new models_universe_1.ModelsUniverse();
69
- const modelInfo = {
70
- config: {
71
- allocation: 'mock-allocation',
72
- verbose: true,
73
- },
74
- name: 'mock-name',
75
- };
76
- const modelsList = modelsHandbook.writeDown(modelInfo);
77
- const model = modelsList[modelInfo.name];
78
- expect.assertions(2);
79
- try {
80
- await model({
81
- 'core-units': 1,
82
- 'physical-processor': 'intel',
83
- });
84
- }
85
- catch (error) {
86
- if (error instanceof Error) {
87
- expect(error).toBeInstanceOf(Error);
88
- expect(error.message).toEqual(MISSING_CLASSNAME);
89
- }
90
- }
91
- });
92
- it('throws `missing path parameter` error while registration of `plugin` model.', async () => {
93
- const modelsHandbook = new models_universe_1.ModelsUniverse();
94
- const modelInfo = {
95
- config: {
96
- allocation: 'mock-allocation',
97
- verbose: true,
98
- },
99
- name: 'mock-name',
100
- model: 'MockaviztaModel',
101
- };
102
- const modelsList = modelsHandbook.writeDown(modelInfo);
103
- const model = modelsList[modelInfo.name];
104
- expect.assertions(2);
105
- try {
106
- await model({
107
- 'core-units': 1,
108
- 'physical-processor': 'intel',
109
- });
110
- }
111
- catch (error) {
112
- if (error instanceof Error) {
113
- expect(error).toBeInstanceOf(Error);
114
- expect(error.message).toEqual(MISSING_PATH);
115
- }
116
- }
117
- });
118
- it('should successfully initalize plugin model.', async () => {
119
- jest.mock('mockavizta-model', () => ({
120
- __esModule: true,
121
- MockaviztaModel: model_universe_1.MockModel,
122
- }), { virtual: true });
123
- const modelsHandbook = new models_universe_1.ModelsUniverse();
124
- const modelInfo = {
125
- config: {
126
- allocation: 'mock-allocation',
127
- verbose: true,
128
- },
129
- name: 'mock-name',
130
- model: 'MockaviztaModel',
131
- path: 'https://github.com/mock/mockavizta-model',
132
- };
133
- const modelsList = modelsHandbook.writeDown(modelInfo);
134
- const model = modelsList[modelInfo.name];
135
- expect.assertions(1);
136
- const response = await model({
137
- 'core-units': 1,
138
- 'physical-processor': 'intel',
139
- });
140
- expect(response).toBeInstanceOf(model_universe_1.MockModel);
141
- });
142
- it('should throw `input model does not extend base interface` error.', async () => {
143
- jest.mock('mockavizta-model', () => ({
144
- __esModule: true,
145
- MockaviztaModel: class FakeModel {
146
- },
147
- }), { virtual: true });
148
- const modelsHandbook = new models_universe_1.ModelsUniverse();
149
- const modelInfo = {
150
- config: {
151
- allocation: 'mock-allocation',
152
- verbose: true,
153
- },
154
- name: 'mock-name',
155
- model: 'MockaviztaModel',
156
- path: 'https://github.com/mock/mockavizta-model',
157
- };
158
- const modelsList = modelsHandbook.writeDown(modelInfo);
159
- const model = modelsList[modelInfo.name];
160
- expect.assertions(2);
161
- try {
162
- await model({
163
- 'core-units': 1,
164
- 'physical-processor': 'intel',
165
- });
166
- }
167
- catch (error) {
168
- if (error instanceof Error) {
169
- expect(error).toBeInstanceOf(Error);
170
- expect(error.message).toEqual(NOT_OUTPUT_MODEL_EXTENSION);
171
- }
172
- }
173
- });
174
- });
175
- describe('getInitializedModel(): ', () => {
176
- it('throws error in case if model is not initalized.', async () => {
177
- const modelsHandbook = new models_universe_1.ModelsUniverse();
178
- const modelName = 'mock-modelName';
179
- const config = {};
180
- const expectedMessage = NOT_INITIALIZED_MODEL(modelName);
181
- try {
182
- await modelsHandbook.getInitializedModel(modelName, config);
183
- }
184
- catch (error) {
185
- if (error instanceof Error) {
186
- expect(error).toBeInstanceOf(Error);
187
- expect(error.message).toEqual(expectedMessage);
188
- }
189
- }
190
- });
191
- });
192
- });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvX190ZXN0c19fL3VuaXQvbGliL21vZGVscy11bml2ZXJzZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBQTREO0FBRTVELGtFQUE0RDtBQUU1RCw0Q0FBd0M7QUFJeEMsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLHFCQUFxQixHQUN0QixHQUFHLGdCQUFPLENBQUM7QUFFWixRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztZQUU1QyxNQUFNLENBQUMsT0FBTyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1lBQ3RELE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sU0FBUyxHQUF3QjtnQkFDckMsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2dCQUNELElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLDJCQUEyQixTQUFTLENBQUMsSUFBSSxHQUFHLENBQUM7WUFFckUsSUFBSTtnQkFDRixjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3JDO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO29CQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDaEQ7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtZQUM1RCxNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFNBQVMsR0FBd0I7Z0JBQ3JDLE1BQU0sRUFBRTtvQkFDTixVQUFVLEVBQUUsaUJBQWlCO29CQUM3QixPQUFPLEVBQUUsSUFBSTtpQkFDZDtnQkFDRCxJQUFJLEVBQUUsV0FBVzthQUNsQixDQUFDO1lBRUYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEdBQUcsRUFBRTtZQUM3RCxNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFNBQVMsR0FBd0I7Z0JBQ3JDLE1BQU0sRUFBRTtvQkFDTixVQUFVLEVBQUUsaUJBQWlCO29CQUM3QixPQUFPLEVBQUUsSUFBSTtpQkFDZDtnQkFDRCxJQUFJLEVBQUUsV0FBVzthQUNsQixDQUFDO1lBRUYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdFQUF3RSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3RGLE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sU0FBUyxHQUF3QjtnQkFDckMsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2dCQUNELElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixJQUFJO2dCQUNGLE1BQU0sS0FBSyxDQUFDO29CQUNWLFlBQVksRUFBRSxDQUFDO29CQUNmLG9CQUFvQixFQUFFLE9BQU87aUJBQzlCLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO29CQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUM7WUFDNUMsTUFBTSxTQUFTLEdBQXdCO2dCQUNyQyxNQUFNLEVBQUU7b0JBQ04sVUFBVSxFQUFFLGlCQUFpQjtvQkFDN0IsT0FBTyxFQUFFLElBQUk7aUJBQ2Q7Z0JBQ0QsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSxpQkFBaUI7YUFDekIsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJCLElBQUk7Z0JBQ0YsTUFBTSxLQUFLLENBQUM7b0JBQ1YsWUFBWSxFQUFFLENBQUM7b0JBQ2Ysb0JBQW9CLEVBQUUsT0FBTztpQkFDOUIsQ0FBQyxDQUFDO2FBQ0o7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7b0JBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0QsSUFBSSxDQUFDLElBQUksQ0FDUCxrQkFBa0IsRUFDbEIsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDTCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLDBCQUFTO2FBQzNCLENBQUMsRUFDRixFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FDaEIsQ0FBQztZQUVGLE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sU0FBUyxHQUF3QjtnQkFDckMsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2dCQUNELElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixJQUFJLEVBQUUsMENBQTBDO2FBQ2pELENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQztnQkFDM0IsWUFBWSxFQUFFLENBQUM7Z0JBQ2Ysb0JBQW9CLEVBQUUsT0FBTzthQUM5QixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLDBCQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRixJQUFJLENBQUMsSUFBSSxDQUNQLGtCQUFrQixFQUNsQixHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNMLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixlQUFlLEVBQUUsTUFBTSxTQUFTO2lCQUFHO2FBQ3BDLENBQUMsRUFDRixFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FDaEIsQ0FBQztZQUVGLE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sU0FBUyxHQUF3QjtnQkFDckMsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRSxpQkFBaUI7b0JBQzdCLE9BQU8sRUFBRSxJQUFJO2lCQUNkO2dCQUNELElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixJQUFJLEVBQUUsMENBQTBDO2FBQ2pELENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixJQUFJO2dCQUNGLE1BQU0sS0FBSyxDQUFDO29CQUNWLFlBQVksRUFBRSxDQUFDO29CQUNmLG9CQUFvQixFQUFFLE9BQU87aUJBQzlCLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO29CQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2lCQUMzRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBRTVDLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVsQixNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6RCxJQUFJO2dCQUNGLE1BQU0sY0FBYyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUM3RDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtvQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ2hEO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vY2tNb2RlbH0gZnJvbSAnLi4vLi4vLi4vX19tb2Nrc19fL21vZGVsLXVuaXZlcnNlJztcblxuaW1wb3J0IHtNb2RlbHNVbml2ZXJzZX0gZnJvbSAnLi4vLi4vLi4vbGliL21vZGVscy11bml2ZXJzZSc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtJbXBsSW5pdGlhbGl6ZU1vZGVsfSBmcm9tICcuLi8uLi8uLi90eXBlcy9tb2RlbHMtdW5pdmVyc2UnO1xuXG5jb25zdCB7XG4gIE1JU1NJTkdfQ0xBU1NOQU1FLFxuICBNSVNTSU5HX1BBVEgsXG4gIE5PVF9PVVRQVVRfTU9ERUxfRVhURU5TSU9OLFxuICBOT1RfSU5JVElBTElaRURfTU9ERUwsXG59ID0gU1RSSU5HUztcblxuZGVzY3JpYmUoJ3V0aWwvbW9kZWxzLXVuaXZlcnNlOiAnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdpbml0IE1vZGVsc1VuaXZlcnNlJywgKCkgPT4ge1xuICAgIGl0KCdpbml0aWFsaXplcyBvYmplY3Qgd2l0aCByZXF1aXJlZCBwcm9wZXJ0aWVzLicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG5cbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzSGFuZGJvb2suZ2V0SW5pdGlhbGl6ZWRNb2RlbCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzSGFuZGJvb2suaW5pdGFsaXplZE1vZGVscykudG9CZSgnb2JqZWN0Jyk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0hhbmRib29rLndyaXRlRG93bikudG9CZSgnZnVuY3Rpb24nKTtcbiAgICAgIGV4cGVjdChtb2RlbHNIYW5kYm9vay5pbml0YWxpemVkTW9kZWxzKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dyaXRlRG93bigpOiAnLCAoKSA9PiB7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBqZXN0LnJlc2V0TW9kdWxlcygpO1xuICAgICAgamVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcbiAgICB9KTtcblxuICAgIGl0KCd0aHJvd3MgZXJyb3IgaW4gY2FzZSBtb2RlbCBpcyBub3Qgc3VwcG9ydGVkLicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkTWVzc2FnZSA9IGBNaXNzaW5nIG9yIHdyb25nIG1vZGVsOiAke21vZGVsSW5mby5uYW1lfS5gO1xuXG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoZXhwZWN0ZWRNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3JlZ2lzdGVycyBgc2hlbGxgIG1vZGVsIGluIGluaXRhbGl6ZWQgbW9kZWxzIGxpc3QuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBleHBlY3QobW9kZWxzTGlzdCkudG9IYXZlUHJvcGVydHkobW9kZWxJbmZvLm5hbWUpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXSkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWdpc3RlcnMgYHBsdWdpbmAgbW9kZWwgaW4gaW5pdGFsaXplZCBtb2RlbHMgbGlzdC4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGV4cGVjdChtb2RlbHNMaXN0KS50b0hhdmVQcm9wZXJ0eShtb2RlbEluZm8ubmFtZSk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Rocm93cyBgbWlzc2luZyBjbGFzc25hbWVgIGVycm9yIHdoaWxlIHJlZ2lzdHJhdGlvbiBvZiBgcGx1Z2luYCBtb2RlbC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbCh7XG4gICAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoTUlTU0lOR19DTEFTU05BTUUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgndGhyb3dzIGBtaXNzaW5nIHBhdGggcGFyYW1ldGVyYCBlcnJvciB3aGlsZSByZWdpc3RyYXRpb24gb2YgYHBsdWdpbmAgbW9kZWwuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICAgIG1vZGVsOiAnTW9ja2F2aXp0YU1vZGVsJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbCh7XG4gICAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoTUlTU0lOR19QQVRIKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZXNzZnVsbHkgaW5pdGFsaXplIHBsdWdpbiBtb2RlbC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBqZXN0Lm1vY2soXG4gICAgICAgICdtb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgICAgIE1vY2thdml6dGFNb2RlbDogTW9ja01vZGVsLFxuICAgICAgICB9KSxcbiAgICAgICAge3ZpcnR1YWw6IHRydWV9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgICAgbW9kZWw6ICdNb2NrYXZpenRhTW9kZWwnLFxuICAgICAgICBwYXRoOiAnaHR0cHM6Ly9naXRodWIuY29tL21vY2svbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygxKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtb2RlbCh7XG4gICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdpbnRlbCcsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3BvbnNlKS50b0JlSW5zdGFuY2VPZihNb2NrTW9kZWwpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBgaW5wdXQgbW9kZWwgZG9lcyBub3QgZXh0ZW5kIGJhc2UgaW50ZXJmYWNlYCBlcnJvci4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBqZXN0Lm1vY2soXG4gICAgICAgICdtb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgICAgIE1vY2thdml6dGFNb2RlbDogY2xhc3MgRmFrZU1vZGVsIHt9LFxuICAgICAgICB9KSxcbiAgICAgICAge3ZpcnR1YWw6IHRydWV9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgICAgbW9kZWw6ICdNb2NrYXZpenRhTW9kZWwnLFxuICAgICAgICBwYXRoOiAnaHR0cHM6Ly9naXRodWIuY29tL21vY2svbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygyKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbW9kZWwoe1xuICAgICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ2ludGVsJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKE5PVF9PVVRQVVRfTU9ERUxfRVhURU5TSU9OKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0SW5pdGlhbGl6ZWRNb2RlbCgpOiAnLCAoKSA9PiB7XG4gICAgaXQoJ3Rocm93cyBlcnJvciBpbiBjYXNlIGlmIG1vZGVsIGlzIG5vdCBpbml0YWxpemVkLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG5cbiAgICAgIGNvbnN0IG1vZGVsTmFtZSA9ICdtb2NrLW1vZGVsTmFtZSc7XG4gICAgICBjb25zdCBjb25maWcgPSB7fTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRNZXNzYWdlID0gTk9UX0lOSVRJQUxJWkVEX01PREVMKG1vZGVsTmFtZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1vZGVsc0hhbmRib29rLmdldEluaXRpYWxpemVkTW9kZWwobW9kZWxOYW1lLCBjb25maWcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChleHBlY3RlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1 +0,0 @@
1
- export {};
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const observatory_1 = require("../../../lib/observatory");
4
- describe('util/observatory: ', () => {
5
- class MockaviztaModel {
6
- configure(params) {
7
- params;
8
- return Promise.resolve(this);
9
- }
10
- execute() {
11
- return Promise.resolve([{ data: 'mock-data' }]);
12
- }
13
- }
14
- const expectedValue = [
15
- {
16
- timestamp: '2023-07-06T00:00',
17
- duration: 3600,
18
- 'cpu-util': 18.392,
19
- 'energy-cpu': 2.5,
20
- 'embodied-carbon': 0.619,
21
- },
22
- {
23
- timestamp: '2023-08-06T00:00',
24
- duration: 3600,
25
- 'cpu-util': 16,
26
- 'energy-cpu': 2.5,
27
- 'embodied-carbon': 0.619,
28
- },
29
- ]; // model.execute method's result (output mock).
30
- describe('init Observatory: ', () => {
31
- it('initializes object with required properties.', () => {
32
- const inputs = [];
33
- const lab = new observatory_1.Observatory(inputs);
34
- expect(lab).toHaveProperty('doInvestigationsWith');
35
- expect(lab).toHaveProperty('getOutputs');
36
- });
37
- });
38
- describe('doInvestgationsWith(): ', () => {
39
- const inputs = [
40
- {
41
- timestamp: '2023-07-06T00:00',
42
- duration: 3600,
43
- 'cpu-util': 18.392,
44
- },
45
- {
46
- timestamp: '2023-08-06T00:00',
47
- duration: 3600,
48
- 'cpu-util': 16,
49
- },
50
- ];
51
- const params = {
52
- 'core-units': 24,
53
- 'physical-processor': 'Intel® Core™ i7-1185G7',
54
- allocation: 'LINEAR',
55
- verbose: true,
56
- };
57
- it('returns Observatory class.', async () => {
58
- const lab = new observatory_1.Observatory(inputs);
59
- const boaviztaModel = await new MockaviztaModel().configure(params);
60
- boaviztaModel.execute = jest.fn(() => Promise.resolve(expectedValue));
61
- const result = await lab.doInvestigationsWith(boaviztaModel);
62
- expect(result).toBeInstanceOf(observatory_1.Observatory);
63
- });
64
- });
65
- describe('getOutputs(): ', () => {
66
- const inputs = [
67
- {
68
- timestamp: '2023-07-06T00:00',
69
- duration: 3600,
70
- 'cpu-util': 18.392,
71
- },
72
- {
73
- timestamp: '2023-08-06T00:00',
74
- duration: 3600,
75
- 'cpu-util': 16,
76
- },
77
- ];
78
- const params = {
79
- 'core-units': 24,
80
- 'physical-processor': 'Intel® Core™ i7-1185G7',
81
- allocation: 'LINEAR',
82
- verbose: true,
83
- };
84
- it('returns empty outputs data.', () => {
85
- const lab = new observatory_1.Observatory(inputs);
86
- const expectedValue = [];
87
- expect(lab.getOutputs()).toEqual(expectedValue);
88
- });
89
- it('returns executed outputs data.', async () => {
90
- const lab = new observatory_1.Observatory(inputs);
91
- const boaviztaModel = await new MockaviztaModel().configure(params);
92
- boaviztaModel.execute = jest.fn(() => Promise.resolve(expectedValue));
93
- const result = await lab.doInvestigationsWith(boaviztaModel);
94
- expect(result).toBeInstanceOf(observatory_1.Observatory);
95
- expect(lab.getOutputs()).toEqual(expectedValue);
96
- });
97
- });
98
- });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRvcnkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvb2JzZXJ2YXRvcnkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBEQUFxRDtBQUVyRCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sZUFBZTtRQUNuQixTQUFTLENBQUMsTUFBVztZQUNuQixNQUFNLENBQUM7WUFDUCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztLQUNGO0lBRUQsTUFBTSxhQUFhLEdBQUc7UUFDcEI7WUFDRSxTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLEdBQUc7WUFDakIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtRQUNEO1lBQ0UsU0FBUyxFQUFFLGtCQUFrQjtZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsWUFBWSxFQUFFLEdBQUc7WUFDakIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtLQUNGLENBQUMsQ0FBQywrQ0FBK0M7SUFFbEQsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1lBQ3RELE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLHlCQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FB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QyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbFBsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcbmltcG9ydCB7T2JzZXJ2YXRvcnl9IGZyb20gJy4uLy4uLy4uL2xpYi9vYnNlcnZhdG9yeSc7XG5cbmRlc2NyaWJlKCd1dGlsL29ic2VydmF0b3J5OiAnLCAoKSA9PiB7XG4gIGNsYXNzIE1vY2thdml6dGFNb2RlbCBpbXBsZW1lbnRzIE1vZGVsUGx1Z2luSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmUocGFyYW1zOiBhbnkpOiBQcm9taXNlPE1vZGVsUGx1Z2luSW50ZXJmYWNlPiB7XG4gICAgICBwYXJhbXM7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuICAgIH1cbiAgICBleGVjdXRlKCk6IFByb21pc2U8YW55W10+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW3tkYXRhOiAnbW9jay1kYXRhJ31dKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBleHBlY3RlZFZhbHVlID0gW1xuICAgIHtcbiAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDctMDZUMDA6MDAnLFxuICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAnY3B1LXV0aWwnOiAxOC4zOTIsXG4gICAgICAnZW5lcmd5LWNwdSc6IDIuNSxcbiAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjYxOSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDgtMDZUMDA6MDAnLFxuICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAnY3B1LXV0aWwnOiAxNixcbiAgICAgICdlbmVyZ3ktY3B1JzogMi41LFxuICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuNjE5LFxuICAgIH0sXG4gIF07IC8vIG1vZGVsLmV4ZWN1dGUgbWV0aG9kJ3MgcmVzdWx0IChvdXRwdXQgbW9jaykuXG5cbiAgZGVzY3JpYmUoJ2luaXQgT2JzZXJ2YXRvcnk6ICcsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbGl6ZXMgb2JqZWN0IHdpdGggcmVxdWlyZWQgcHJvcGVydGllcy4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dHM6IGFueSA9IFtdO1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGV4cGVjdChsYWIpLnRvSGF2ZVByb3BlcnR5KCdkb0ludmVzdGlnYXRpb25zV2l0aCcpO1xuICAgICAgZXhwZWN0KGxhYikudG9IYXZlUHJvcGVydHkoJ2dldE91dHB1dHMnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RvSW52ZXN0Z2F0aW9uc1dpdGgoKTogJywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0czogYW55ID0gW1xuICAgICAge1xuICAgICAgICB0aW1lc3RhbXA6ICcyMDIzLTA3LTA2VDAwOjAwJyxcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDE4LjM5MixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDgtMDZUMDA6MDAnLFxuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTYsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAnY29yZS11bml0cyc6IDI0LFxuICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdJbnRlbMKuIENvcmXihKIgaTctMTE4NUc3JyxcbiAgICAgIGFsbG9jYXRpb246ICdMSU5FQVInLFxuICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaXQoJ3JldHVybnMgT2JzZXJ2YXRvcnkgY2xhc3MuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGNvbnN0IGJvYXZpenRhTW9kZWwgPSBhd2FpdCBuZXcgTW9ja2F2aXp0YU1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIGJvYXZpenRhTW9kZWwuZXhlY3V0ZSA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGV4cGVjdGVkVmFsdWUpKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbGFiLmRvSW52ZXN0aWdhdGlvbnNXaXRoKGJvYXZpenRhTW9kZWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUluc3RhbmNlT2YoT2JzZXJ2YXRvcnkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0T3V0cHV0cygpOiAnLCAoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRzOiBhbnkgPSBbXG4gICAgICB7XG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDctMDZUMDA6MDAnLFxuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTguMzkyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMy0wOC0wNlQwMDowMCcsXG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiAxNixcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICdjb3JlLXVuaXRzJzogMjQsXG4gICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ0ludGVswq4gQ29yZeKEoiBpNy0xMTg1RzcnLFxuICAgICAgYWxsb2NhdGlvbjogJ0xJTkVBUicsXG4gICAgICB2ZXJib3NlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpdCgncmV0dXJucyBlbXB0eSBvdXRwdXRzIGRhdGEuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWU6IGFueSA9IFtdO1xuXG4gICAgICBleHBlY3QobGFiLmdldE91dHB1dHMoKSkudG9FcXVhbChleHBlY3RlZFZhbHVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGV4ZWN1dGVkIG91dHB1dHMgZGF0YS4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBsYWIgPSBuZXcgT2JzZXJ2YXRvcnkoaW5wdXRzKTtcbiAgICAgIGNvbnN0IGJvYXZpenRhTW9kZWwgPSBhd2FpdCBuZXcgTW9ja2F2aXp0YU1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIGJvYXZpenRhTW9kZWwuZXhlY3V0ZSA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGV4cGVjdGVkVmFsdWUpKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGxhYi5kb0ludmVzdGlnYXRpb25zV2l0aChib2F2aXp0YU1vZGVsKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUluc3RhbmNlT2YoT2JzZXJ2YXRvcnkpO1xuICAgICAgZXhwZWN0KGxhYi5nZXRPdXRwdXRzKCkpLnRvRXF1YWwoZXhwZWN0ZWRWYWx1ZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1 +0,0 @@
1
- export {};
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const index_1 = require("../../../../lib/sci/index");
5
- globals_1.jest.setTimeout(30000);
6
- (0, globals_1.describe)('sci:configure test', () => {
7
- (0, globals_1.test)('initialize and test', async () => {
8
- const model = await new index_1.SciModel().configure('name', {
9
- 'functional-unit-time': 'minutes',
10
- 'functional-unit': 'users',
11
- 'functional-unit-duration': 1,
12
- });
13
- (0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
14
- await (0, globals_1.expect)(model.execute([
15
- {
16
- 'operational-carbon': 0.02,
17
- 'embodied-carbon': 5,
18
- users: 100,
19
- duration: 1,
20
- },
21
- ])).resolves.toStrictEqual([
22
- {
23
- 'operational-carbon': 0.02,
24
- 'embodied-carbon': 5,
25
- users: 100,
26
- duration: 1,
27
- sci: 3.012,
28
- },
29
- ]);
30
- await (0, globals_1.expect)(model.execute([
31
- {
32
- 'operational-carbon': 20,
33
- 'embodied-carbon': 0.005,
34
- users: 1000,
35
- duration: 1,
36
- },
37
- ])).resolves.toStrictEqual([
38
- {
39
- 'operational-carbon': 20,
40
- 'embodied-carbon': 0.005,
41
- users: 1000,
42
- duration: 1,
43
- sci: 1.2003,
44
- },
45
- ]);
46
- });
47
- (0, globals_1.test)('initialize and test: vary input duration ', async () => {
48
- const model = await new index_1.SciModel().configure('name', {
49
- 'functional-unit-time': 'days',
50
- 'functional-unit': '',
51
- 'functional-unit-duration': 1,
52
- });
53
- (0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
54
- await (0, globals_1.expect)(model.execute([
55
- {
56
- 'operational-carbon': 0.2,
57
- 'embodied-carbon': 0.05,
58
- duration: 100,
59
- },
60
- ])).resolves.toStrictEqual([
61
- {
62
- 'operational-carbon': 0.2,
63
- 'embodied-carbon': 0.05,
64
- duration: 100,
65
- sci: 216,
66
- },
67
- ]);
68
- await (0, globals_1.expect)(model.execute([
69
- {
70
- 'operational-carbon': 0.002,
71
- 'embodied-carbon': 0.0005,
72
- duration: 2,
73
- },
74
- ])).resolves.toStrictEqual([
75
- {
76
- 'operational-carbon': 0.002,
77
- 'embodied-carbon': 0.0005,
78
- duration: 2,
79
- sci: 108,
80
- },
81
- ]);
82
- });
83
- (0, globals_1.test)('initialize and test: vary functional-unit-duration', async () => {
84
- const model = await new index_1.SciModel().configure('name', {
85
- 'functional-unit-time': 'days',
86
- 'functional-unit': '',
87
- 'functional-unit-duration': 2,
88
- });
89
- (0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
90
- await (0, globals_1.expect)(model.execute([
91
- {
92
- 'operational-carbon': 0.002,
93
- 'embodied-carbon': 0.0005,
94
- duration: 1,
95
- },
96
- ])).resolves.toStrictEqual([
97
- {
98
- 'operational-carbon': 0.002,
99
- 'embodied-carbon': 0.0005,
100
- duration: 1,
101
- sci: 432,
102
- },
103
- ]);
104
- });
105
- });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpL2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QscURBQW1EO0FBQ25ELGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxrQkFBUSxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxJQUFBLGNBQUksRUFBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksZ0JBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsc0JBQXNCLEVBQUUsU0FBUztZQUNqQyxpQkFBaUIsRUFBRSxPQUFPO1lBQzFCLDBCQUEwQixFQUFFLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxnQkFBUSxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxDQUFDO2FBQ1o7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxLQUFLO2FBQ1g7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usb0JBQW9CLEVBQUUsRUFBRTtnQkFDeEIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0Usb0JBQW9CLEVBQUUsRUFBRTtnQkFDeEIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxFQUFFLE1BQU07YUFDWjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBQSxjQUFJLEVBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLGdCQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ25ELHNCQUFzQixFQUFFLE1BQU07WUFDOUIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQiwwQkFBMEIsRUFBRSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsZ0JBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxvQkFBb0IsRUFBRSxHQUFHO2dCQUN6QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsR0FBRzthQUNkO1NBQ0YsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxvQkFBb0IsRUFBRSxHQUFHO2dCQUN6QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsR0FBRztnQkFDYixHQUFHLEVBQUUsR0FBRzthQUNUO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxDQUFDO2FBQ1o7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxHQUFHO2FBQ1Q7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUEsY0FBSSxFQUFDLG9EQUFvRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxnQkFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxzQkFBc0IsRUFBRSxNQUFNO1lBQzlCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsMEJBQTBCLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUM7UUFDSCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGdCQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0Usb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxFQUFFLEdBQUc7YUFDVDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rlc2NyaWJlLCBleHBlY3QsIGplc3QsIHRlc3R9IGZyb20gJ0BqZXN0L2dsb2JhbHMnO1xuaW1wb3J0IHtTY2lNb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3NjaS9pbmRleCc7XG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnc2NpOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIGFuZCB0ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgbmV3IFNjaU1vZGVsKCkuY29uZmlndXJlKCduYW1lJywge1xuICAgICAgJ2Z1bmN0aW9uYWwtdW5pdC10aW1lJzogJ21pbnV0ZXMnLFxuICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6ICd1c2VycycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0LWR1cmF0aW9uJzogMSxcbiAgICB9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAyLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiA1LFxuICAgICAgICAgIHVzZXJzOiAxMDAsXG4gICAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChbXG4gICAgICB7XG4gICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAyLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogNSxcbiAgICAgICAgdXNlcnM6IDEwMCxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIHNjaTogMy4wMTIsXG4gICAgICB9LFxuICAgIF0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDIwLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwNSxcbiAgICAgICAgICB1c2VyczogMTAwMCxcbiAgICAgICAgICBkdXJhdGlvbjogMSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDIwLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wMDUsXG4gICAgICAgIHVzZXJzOiAxMDAwLFxuICAgICAgICBkdXJhdGlvbjogMSxcbiAgICAgICAgc2NpOiAxLjIwMDMsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdDogdmFyeSBpbnB1dCBkdXJhdGlvbiAnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgU2NpTW9kZWwoKS5jb25maWd1cmUoJ25hbWUnLCB7XG4gICAgICAnZnVuY3Rpb25hbC11bml0LXRpbWUnOiAnZGF5cycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0JzogJycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0LWR1cmF0aW9uJzogMSxcbiAgICB9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjIsXG4gICAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDUsXG4gICAgICAgICAgZHVyYXRpb246IDEwMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDAuMixcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDUsXG4gICAgICAgIGR1cmF0aW9uOiAxMDAsXG4gICAgICAgIHNjaTogMjE2LFxuICAgICAgfSxcbiAgICBdKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAwMixcbiAgICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wMDA1LFxuICAgICAgICAgIGR1cmF0aW9uOiAyLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMC4wMDIsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwMDUsXG4gICAgICAgIGR1cmF0aW9uOiAyLFxuICAgICAgICBzY2k6IDEwOCxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xuICB0ZXN0KCdpbml0aWFsaXplIGFuZCB0ZXN0OiB2YXJ5IGZ1bmN0aW9uYWwtdW5pdC1kdXJhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lNb2RlbCgpLmNvbmZpZ3VyZSgnbmFtZScsIHtcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQtdGltZSc6ICdkYXlzJyxcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQnOiAnJyxcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQtZHVyYXRpb24nOiAyLFxuICAgIH0pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoU2NpTW9kZWwpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDAuMDAyLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwMDUsXG4gICAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChbXG4gICAgICB7XG4gICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAwMixcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDAwNSxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIHNjaTogNDMyLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export {};
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const index_1 = require("../../../../lib/sci-e/index");
5
- globals_1.jest.setTimeout(30000);
6
- (0, globals_1.describe)('sci-e:configure test', () => {
7
- (0, globals_1.test)('initialize with params', async () => {
8
- const outputModel = new index_1.SciEModel();
9
- await outputModel.configure('test', {});
10
- await (0, globals_1.expect)(outputModel.execute([
11
- {
12
- duration: 3600,
13
- 'energy-cpu': 1,
14
- 'energy-network': 1,
15
- 'energy-memory': 1,
16
- timestamp: '2021-01-01T00:00:00Z',
17
- },
18
- ])).resolves.toStrictEqual([
19
- {
20
- duration: 3600,
21
- 'energy-cpu': 1,
22
- 'energy-network': 1,
23
- 'energy-memory': 1,
24
- energy: 3,
25
- timestamp: '2021-01-01T00:00:00Z',
26
- },
27
- ]);
28
- });
29
- });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLWUvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFFdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLElBQUEsY0FBSSxFQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUNsQjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxZQUFZLEVBQUUsQ0FBQztnQkFDZixnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLHNCQUFzQjthQUNsQztTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkIsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7U2NpRU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc2NpLWUvaW5kZXgnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnc2NpLWU6Y29uZmlndXJlIHRlc3QnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgd2l0aCBwYXJhbXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgU2NpRU1vZGVsKCk7XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge30pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2VuZXJneS1jcHUnOiAxLFxuICAgICAgICAgICdlbmVyZ3ktbmV0d29yayc6IDEsXG4gICAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAxLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMSxcbiAgICAgICAgJ2VuZXJneS1uZXR3b3JrJzogMSxcbiAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAxLFxuICAgICAgICBlbmVyZ3k6IDMsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const index_1 = require("../../../../lib/sci-m/index");
5
- globals_1.jest.setTimeout(30000);
6
- (0, globals_1.describe)('sci-o:configure test', () => {
7
- (0, globals_1.test)('initialize and test', async () => {
8
- const model = await new index_1.SciMModel().configure('sci-o', {});
9
- (0, globals_1.expect)(model).toBeInstanceOf(index_1.SciMModel);
10
- await (0, globals_1.expect)(model.execute([
11
- {
12
- 'total-embodied-emissions': 200,
13
- 'time-reserved': 60 * 60 * 24 * 30,
14
- 'expected-lifespan': 60 * 60 * 24 * 365 * 4,
15
- 'resources-reserved': 1,
16
- 'total-resources': 1,
17
- },
18
- {
19
- 'total-embodied-emissions': 200,
20
- duration: 60 * 60 * 24 * 30 * 2,
21
- 'time-reserved': 'duration',
22
- 'expected-lifespan': 60 * 60 * 24 * 365 * 4,
23
- 'resources-reserved': 1,
24
- 'total-resources': 1,
25
- },
26
- ])).resolves.toStrictEqual([
27
- {
28
- 'total-embodied-emissions': 200,
29
- 'time-reserved': 60 * 60 * 24 * 30,
30
- 'expected-lifespan': 60 * 60 * 24 * 365 * 4,
31
- 'resources-reserved': 1,
32
- 'total-resources': 1,
33
- 'embodied-carbon': 4.10958904109589,
34
- },
35
- {
36
- 'total-embodied-emissions': 200,
37
- duration: 60 * 60 * 24 * 30 * 2,
38
- 'time-reserved': 'duration',
39
- 'expected-lifespan': 60 * 60 * 24 * 365 * 4,
40
- 'resources-reserved': 1,
41
- 'total-resources': 1,
42
- 'embodied-carbon': 4.10958904109589 * 2,
43
- },
44
- ]);
45
- await (0, globals_1.expect)(model.execute([
46
- {
47
- tee: 200,
48
- duration: 60 * 60 * 24 * 30 * 2,
49
- 'time-reserved': 'duration',
50
- 'expected-lifespan': 60 * 60 * 24 * 365 * 4,
51
- 'resources-reserved': 1,
52
- 'total-resources': 1,
53
- 'embodied-carbon': 4.10958904109589 * 2,
54
- },
55
- ])).rejects.toThrowError();
56
- });
57
- });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLW0vaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFDdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLElBQUEsY0FBSSxFQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxpQkFBUyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xDLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDO2dCQUMzQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QixpQkFBaUIsRUFBRSxDQUFDO2FBQ3JCO1lBQ0Q7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7YUFDckI7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLDBCQUEwQixFQUFFLEdBQUc7Z0JBQy9CLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUNsQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDM0Msb0JBQW9CLEVBQUUsQ0FBQztnQkFDdkIsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsaUJBQWlCLEVBQUUsZ0JBQWdCO2FBQ3BDO1lBQ0Q7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge1NjaU1Nb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3NjaS1tL2luZGV4Jztcbmplc3Quc2V0VGltZW91dCgzMDAwMCk7XG5cbmRlc2NyaWJlKCdzY2ktbzpjb25maWd1cmUgdGVzdCcsICgpID0+IHtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lNTW9kZWwoKS5jb25maWd1cmUoJ3NjaS1vJywge30pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoU2NpTU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICd0b3RhbC1lbWJvZGllZC1lbWlzc2lvbnMnOiAyMDAsXG4gICAgICAgICAgJ3RpbWUtcmVzZXJ2ZWQnOiA2MCAqIDYwICogMjQgKiAzMCxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgJ3RvdGFsLWVtYm9kaWVkLWVtaXNzaW9ucyc6IDIwMCxcbiAgICAgICAgICBkdXJhdGlvbjogNjAgKiA2MCAqIDI0ICogMzAgKiAyLFxuICAgICAgICAgICd0aW1lLXJlc2VydmVkJzogJ2R1cmF0aW9uJyxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAndG90YWwtZW1ib2RpZWQtZW1pc3Npb25zJzogMjAwLFxuICAgICAgICAndGltZS1yZXNlcnZlZCc6IDYwICogNjAgKiAyNCAqIDMwLFxuICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAncmVzb3VyY2VzLXJlc2VydmVkJzogMSxcbiAgICAgICAgJ3RvdGFsLXJlc291cmNlcyc6IDEsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ3RvdGFsLWVtYm9kaWVkLWVtaXNzaW9ucyc6IDIwMCxcbiAgICAgICAgZHVyYXRpb246IDYwICogNjAgKiAyNCAqIDMwICogMixcbiAgICAgICAgJ3RpbWUtcmVzZXJ2ZWQnOiAnZHVyYXRpb24nLFxuICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAncmVzb3VyY2VzLXJlc2VydmVkJzogMSxcbiAgICAgICAgJ3RvdGFsLXJlc291cmNlcyc6IDEsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5ICogMixcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWU6IDIwMCxcbiAgICAgICAgICBkdXJhdGlvbjogNjAgKiA2MCAqIDI0ICogMzAgKiAyLFxuICAgICAgICAgICd0aW1lLXJlc2VydmVkJzogJ2R1cmF0aW9uJyxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5ICogMixcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcbn0pO1xuIl19
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
4
- const index_1 = require("../../../../lib/sci-o/index");
5
- globals_1.jest.setTimeout(30000);
6
- (0, globals_1.describe)('ccf:configure test', () => {
7
- (0, globals_1.test)('initialize and test', async () => {
8
- const model = await new index_1.SciOModel().configure('ccf', {});
9
- (0, globals_1.expect)(model).toBeInstanceOf(index_1.SciOModel);
10
- await (0, globals_1.expect)(model.execute([
11
- {
12
- 'grid-carbon-intensity': 200.0,
13
- energy: 100.0,
14
- },
15
- ])).resolves.toStrictEqual([
16
- {
17
- 'grid-carbon-intensity': 200.0,
18
- energy: 100.0,
19
- 'operational-carbon': 100.0 * 200.0,
20
- },
21
- ]);
22
- await (0, globals_1.expect)(model.execute([
23
- {
24
- 'grid-carbon-intensity': 212.1,
25
- energy: 100.0,
26
- },
27
- ])).resolves.toStrictEqual([
28
- {
29
- 'grid-carbon-intensity': 212.1,
30
- energy: 100.0,
31
- 'operational-carbon': 100.0 * 212.1,
32
- },
33
- ]);
34
- await (0, globals_1.expect)(model.execute([
35
- {
36
- 'grid-carbon-intensityd': 212.1,
37
- energy: 100.0,
38
- },
39
- ])).rejects.toThrowError();
40
- });
41
- });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLW8vaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFDdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLElBQUEsY0FBSSxFQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxpQkFBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2Isb0JBQW9CLEVBQUUsS0FBSyxHQUFHLEtBQUs7YUFDcEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2Isb0JBQW9CLEVBQUUsS0FBSyxHQUFHLEtBQUs7YUFDcEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usd0JBQXdCLEVBQUUsS0FBSztnQkFDL0IsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7U2NpT01vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc2NpLW8vaW5kZXgnO1xuamVzdC5zZXRUaW1lb3V0KDMwMDAwKTtcblxuZGVzY3JpYmUoJ2NjZjpjb25maWd1cmUgdGVzdCcsICgpID0+IHtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lPTW9kZWwoKS5jb25maWd1cmUoJ2NjZicsIHt9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU9Nb2RlbCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5JzogMjAwLjAsXG4gICAgICAgICAgZW5lcmd5OiAxMDAuMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIwMC4wLFxuICAgICAgICBlbmVyZ3k6IDEwMC4wLFxuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMTAwLjAgKiAyMDAuMCxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5JzogMjEyLjEsXG4gICAgICAgICAgZW5lcmd5OiAxMDAuMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIxMi4xLFxuICAgICAgICBlbmVyZ3k6IDEwMC4wLFxuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMTAwLjAgKiAyMTIuMSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5ZCc6IDIxMi4xLFxuICAgICAgICAgIGVuZXJneTogMTAwLjAsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export {};