@grnsft/if 0.1.9 → 0.2.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 (176) hide show
  1. package/.commitlintrc.js +45 -0
  2. package/.husky/commit-msg +4 -0
  3. package/.husky/pre-commit +6 -0
  4. package/CONTRIBUTING.md +82 -109
  5. package/README.md +16 -12
  6. package/build/config/config.d.ts +4 -3
  7. package/build/config/config.js +11 -10
  8. package/build/config/params.js +17 -17
  9. package/build/config/strings.d.ts +9 -8
  10. package/build/config/strings.js +13 -12
  11. package/build/index.js +19 -69
  12. package/build/lib/aggregate.d.ts +6 -0
  13. package/build/lib/aggregate.js +72 -0
  14. package/build/lib/compute.d.ts +5 -0
  15. package/build/lib/compute.js +84 -0
  16. package/build/lib/exhaust.d.ts +6 -0
  17. package/build/lib/exhaust.js +47 -0
  18. package/build/lib/initialize.d.ts +6 -0
  19. package/build/lib/initialize.js +98 -0
  20. package/build/lib/load.d.ts +6 -0
  21. package/build/lib/load.js +24 -0
  22. package/build/lib/parameterize.d.ts +5 -0
  23. package/build/lib/parameterize.js +49 -0
  24. package/build/models/export-csv.d.ts +2 -0
  25. package/build/models/export-csv.js +129 -0
  26. package/build/models/export-log.d.ts +4 -0
  27. package/build/models/export-log.js +18 -0
  28. package/build/models/export-yaml.d.ts +4 -0
  29. package/build/models/export-yaml.js +24 -0
  30. package/build/models/group-by.d.ts +11 -0
  31. package/build/models/group-by.js +56 -0
  32. package/build/models/index.d.ts +2 -1
  33. package/build/models/index.js +5 -3
  34. package/build/models/time-sync.d.ts +2 -57
  35. package/build/models/time-sync.js +204 -158
  36. package/build/types/aggregation.js +5 -0
  37. package/build/types/compute.d.ts +25 -0
  38. package/build/types/compute.js +3 -0
  39. package/build/types/exhaust-plugin-interface.d.ts +7 -0
  40. package/build/types/exhaust-plugin-interface.js +3 -0
  41. package/build/types/group-by.d.ts +3 -0
  42. package/build/types/group-by.js +3 -0
  43. package/build/types/initialize.d.ts +4 -0
  44. package/build/types/initialize.js +3 -0
  45. package/build/types/interface.d.ts +8 -0
  46. package/build/types/interface.js +3 -0
  47. package/build/types/load.d.ts +7 -0
  48. package/build/types/load.js +3 -0
  49. package/build/types/manifest.d.ts +40 -0
  50. package/build/types/manifest.js +3 -0
  51. package/build/types/parameters.d.ts +4 -5
  52. package/build/types/parameters.js +1 -1
  53. package/build/types/process-args.d.ts +3 -5
  54. package/build/types/process-args.js +1 -1
  55. package/build/types/time-sync.d.ts +9 -2
  56. package/build/types/time-sync.js +1 -1
  57. package/build/util/aggregation-helper.d.ts +6 -0
  58. package/build/util/aggregation-helper.js +56 -0
  59. package/build/util/args.d.ts +6 -3
  60. package/build/util/args.js +21 -17
  61. package/build/util/errors.d.ts +1 -1
  62. package/build/util/errors.js +8 -4
  63. package/build/util/helpers.d.ts +4 -0
  64. package/build/util/helpers.js +23 -4
  65. package/build/util/json.d.ts +4 -0
  66. package/build/util/json.js +16 -0
  67. package/build/util/logger.d.ts +5 -0
  68. package/build/util/logger.js +40 -0
  69. package/build/util/validations.d.ts +22 -19
  70. package/build/util/validations.js +41 -34
  71. package/examples/{impls/test → manifests}/azure-importer.yml +8 -8
  72. package/examples/manifests/basic-demo.yml +75 -0
  73. package/examples/manifests/basic.yml +27 -0
  74. package/examples/manifests/boavizta-pipeline.yml +85 -0
  75. package/examples/{impls/test → manifests}/boavizta.yml +11 -12
  76. package/examples/{impls/test → manifests}/ccf.yml +9 -10
  77. package/examples/manifests/cim.yml +20 -0
  78. package/examples/manifests/cloud-metadata.yml +41 -0
  79. package/examples/manifests/co2js.yml +30 -0
  80. package/examples/manifests/coefficient.yml +23 -0
  81. package/examples/manifests/csv-export.yml +34 -0
  82. package/examples/manifests/e-mem.yml +21 -0
  83. package/examples/{impls/test → manifests}/e-net.yml +9 -8
  84. package/examples/manifests/generics.yml +71 -0
  85. package/examples/manifests/group-by.yml +48 -0
  86. package/examples/manifests/mock-observation.yml +33 -0
  87. package/examples/manifests/multiply.yml +23 -0
  88. package/examples/manifests/nesting-demo.yml +89 -0
  89. package/examples/manifests/nesting.yml +215 -0
  90. package/examples/manifests/pipeline-demo-1.yml +85 -0
  91. package/examples/manifests/pipeline-demo-2.yml +149 -0
  92. package/examples/manifests/pipeline-demo.yml +128 -0
  93. package/examples/manifests/pipeline-teads-sci.yml +82 -0
  94. package/examples/manifests/pipeline-with-generics.yml +147 -0
  95. package/examples/manifests/pipeline-with-mocks.yml +146 -0
  96. package/examples/{impls/test → manifests}/sci-e.yml +6 -8
  97. package/examples/manifests/sci-m.yml +23 -0
  98. package/examples/{impls/test → manifests}/sci-o.yml +10 -10
  99. package/examples/{impls/test → manifests}/sci.yml +10 -9
  100. package/examples/manifests/shell.yml +20 -0
  101. package/examples/manifests/sum.yml +23 -0
  102. package/examples/{impls/test → manifests}/tdp-finder.yml +6 -7
  103. package/examples/manifests/teads-aws.yml +22 -0
  104. package/examples/manifests/teads-curve.yml +20 -0
  105. package/examples/manifests/time-sync.yml +32 -0
  106. package/examples/manifests/watt-time.yml +42 -0
  107. package/jest.config.js +6 -1
  108. package/package.json +13 -8
  109. package/src/__tests__/integration/templates/integration.yaml +16 -0
  110. package/src/models/README.md +6 -6
  111. package/tsconfig.test.json +1 -1
  112. package/Makefile +0 -16
  113. package/build/lib/aggregator.d.ts +0 -7
  114. package/build/lib/aggregator.js +0 -46
  115. package/build/lib/models-universe.d.ts +0 -40
  116. package/build/lib/models-universe.js +0 -145
  117. package/build/lib/observatory.d.ts +0 -20
  118. package/build/lib/observatory.js +0 -31
  119. package/build/lib/supercomputer.d.ts +0 -39
  120. package/build/lib/supercomputer.js +0 -116
  121. package/build/types/aggregator.js +0 -5
  122. package/build/types/impl.d.ts +0 -92
  123. package/build/types/impl.js +0 -19
  124. package/build/types/model-interface.d.ts +0 -13
  125. package/build/types/model-interface.js +0 -3
  126. package/build/types/models-universe.d.ts +0 -20
  127. package/build/types/models-universe.js +0 -3
  128. package/build/types/supercomputer.d.ts +0 -4
  129. package/build/types/supercomputer.js +0 -3
  130. package/build/util/param-selectors.d.ts +0 -5
  131. package/build/util/param-selectors.js +0 -14
  132. package/examples/impls/case-studies/accenture.yml +0 -155
  133. package/examples/impls/case-studies/aggregation.yml +0 -97
  134. package/examples/impls/case-studies/aveva.yaml +0 -48
  135. package/examples/impls/case-studies/azure-yassine.yaml +0 -67
  136. package/examples/impls/case-studies/boavizta.yml +0 -26
  137. package/examples/impls/case-studies/dow_msft.yml +0 -173
  138. package/examples/impls/case-studies/farm-insights.yaml +0 -35
  139. package/examples/impls/case-studies/gsf-website.yaml +0 -93
  140. package/examples/impls/case-studies/msft-eshoppen.yaml +0 -162
  141. package/examples/impls/case-studies/msft-green-ai.yaml +0 -58
  142. package/examples/impls/case-studies/ntt-data-on-premise.yaml +0 -201
  143. package/examples/impls/test/aggregation-test.yml +0 -109
  144. package/examples/impls/test/aggregation-test2.yml +0 -52
  145. package/examples/impls/test/cim.yml +0 -19
  146. package/examples/impls/test/e-mem.yml +0 -19
  147. package/examples/impls/test/if-demo.yml +0 -59
  148. package/examples/impls/test/large-impl.yml +0 -257303
  149. package/examples/impls/test/metadata.yml +0 -21
  150. package/examples/impls/test/nesting.yml +0 -113
  151. package/examples/impls/test/new-params-test.yml +0 -35
  152. package/examples/impls/test/sci-m.yml +0 -24
  153. package/examples/impls/test/shell.yml +0 -19
  154. package/examples/impls/test/teads-cpu.yml +0 -18
  155. package/examples/impls/test/time-sync-avoid-padding.yml +0 -50
  156. package/examples/impls/test/time-sync.yml +0 -76
  157. package/examples/ompls/aggregation-test.yml +0 -340
  158. package/examples/ompls/aggregation-test2.yml +0 -83
  159. package/examples/ompls/azure-importer.yml +0 -145
  160. package/examples/ompls/boavizta.yml +0 -32
  161. package/examples/ompls/ccf.yml +0 -29
  162. package/examples/ompls/cim.yml +0 -29
  163. package/examples/ompls/complex-pipeline.yml +0 -105
  164. package/examples/ompls/e-mem.yml +0 -26
  165. package/examples/ompls/full-sci.yml +0 -64
  166. package/examples/ompls/if-demo.yml +0 -517
  167. package/examples/ompls/metadata.yml +0 -29
  168. package/examples/ompls/nesting.yml +0 -113
  169. package/examples/ompls/sci-e.yml +0 -23
  170. package/examples/ompls/sci-m.yml +0 -33
  171. package/examples/ompls/sci-o.yml +0 -29
  172. package/examples/ompls/sci.yml +0 -37
  173. package/examples/ompls/shell.yml +0 -23
  174. package/examples/ompls/teads-cpu.yml +0 -24
  175. package/examples/ompls/time-sync.yml +0 -212
  176. /package/build/types/{aggregator.d.ts → aggregation.d.ts} +0 -0
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ModelsUniverse = void 0;
27
- const pathLib = require("path");
28
- const errors_1 = require("../util/errors");
29
- const config_1 = require("../config");
30
- const { ModelInitializationError, ModelCredentialError } = errors_1.ERRORS;
31
- const { GITHUB_PATH, NATIVE_MODEL } = config_1.CONFIG;
32
- const { MISSING_CLASSNAME, NOT_MODEL_PLUGIN_EXTENSION, MISSING_PATH, NOT_NATIVE_MODEL, NOT_CONSTRUCTABLE_MODEL, NOT_INITIALIZED_MODEL, INVALID_MODULE_PATH, } = config_1.STRINGS;
33
- /**
34
- * Models Initialization Lifecycle.
35
- */
36
- class ModelsUniverse {
37
- constructor() {
38
- /**
39
- * Models list.
40
- */
41
- this.initalizedModels = {};
42
- }
43
- /**
44
- * Checks if model is instance of `IOutputModelInterface`.
45
- */
46
- instanceOfModel(ClassContainer, params) {
47
- try {
48
- const testModel = new ClassContainer();
49
- const boolable = 'configure' in testModel && 'execute' in testModel;
50
- return boolable;
51
- }
52
- catch (error) {
53
- throw new ModelInitializationError(NOT_CONSTRUCTABLE_MODEL(params));
54
- }
55
- }
56
- /**
57
- * Imports module by given `path`.
58
- */
59
- async importModuleFrom(path) {
60
- try {
61
- const module = await Promise.resolve(`${path}`).then(s => __importStar(require(s)));
62
- return module;
63
- }
64
- catch (error) {
65
- console.log(error);
66
- throw new ModelInitializationError(INVALID_MODULE_PATH(path));
67
- }
68
- }
69
- /**
70
- * Imports `module` from given `path`, then checks if it's `ModelPluginInterface` extension.
71
- */
72
- async importAndVerifyModule(model, path) {
73
- const pluginModule = await this.importModuleFrom(path);
74
- if (!this.instanceOfModel(pluginModule[model], { model, path })) {
75
- throw new ModelInitializationError(NOT_MODEL_PLUGIN_EXTENSION);
76
- }
77
- return pluginModule[model];
78
- }
79
- /**
80
- * Returns plugin model. Checks if model is missing then rejects with error.
81
- * Then checks if `path` is starting with github, then grabs the repository name.
82
- * Imports module, then checks if it's a class which implements input model interface.
83
- */
84
- async handModel(model, path) {
85
- if (path === 'builtin') {
86
- path = pathLib.normalize(`${__dirname}/../models`);
87
- }
88
- else {
89
- if (path?.startsWith(GITHUB_PATH)) {
90
- const parts = path.split('/');
91
- path = parts[parts.length - 1];
92
- }
93
- if (!path.includes(NATIVE_MODEL)) {
94
- console.log(NOT_NATIVE_MODEL);
95
- }
96
- }
97
- return this.importAndVerifyModule(model, path);
98
- }
99
- /**
100
- * Registers all models from `impl`.`initalize` property.
101
- */
102
- async bulkWriteDown(modelsToInitalize) {
103
- for (const model of modelsToInitalize) {
104
- await this.writeDownSingleModel(model);
105
- }
106
- return this;
107
- }
108
- /**
109
- * Initializes and registers model.
110
- */
111
- async writeDownSingleModel(modelToInitalize) {
112
- const { model, path, config, name } = modelToInitalize;
113
- if (!model) {
114
- throw new ModelCredentialError(MISSING_CLASSNAME);
115
- }
116
- if (!path) {
117
- throw new ModelCredentialError(MISSING_PATH);
118
- }
119
- const Model = await this.handModel(model, path);
120
- const callback = async (options) => {
121
- const params = {
122
- ...config,
123
- ...options,
124
- };
125
- const initalizedModel = await new Model().configure(params);
126
- return initalizedModel;
127
- };
128
- this.initalizedModels = {
129
- ...this.initalizedModels,
130
- [name]: callback,
131
- };
132
- return this.initalizedModels;
133
- }
134
- /**
135
- * Returns existing model by `name`.
136
- */
137
- async getInitializedModel(modelName, config) {
138
- if (this.initalizedModels[modelName]) {
139
- return this.initalizedModels[modelName](config);
140
- }
141
- throw new ModelInitializationError(NOT_INITIALIZED_MODEL(modelName));
142
- }
143
- }
144
- exports.ModelsUniverse = ModelsUniverse;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9tb2RlbHMtdW5pdmVyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnQ0FBaUM7QUFFakMsMkNBQXNDO0FBRXRDLHNDQUEwQztBQVMxQyxNQUFNLEVBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFaEUsTUFBTSxFQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDM0MsTUFBTSxFQUNKLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUNwQixHQUFHLGdCQUFPLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQWEsY0FBYztJQUEzQjtRQUNFOztXQUVHO1FBQ0kscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztJQXlIakQsQ0FBQztJQXZIQzs7T0FFRztJQUNLLGVBQWUsQ0FBQyxjQUFtQixFQUFFLE1BQTRCO1FBQ3ZFLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFdBQVcsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQztZQUVwRSxPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxJQUFJLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBWTtRQUN6QyxJQUFJO1lBQ0YsTUFBTSxNQUFNLEdBQUcseUJBQWEsSUFBSSx1Q0FBQyxDQUFDO1lBRWxDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsTUFBTSxJQUFJLHdCQUF3QixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMscUJBQXFCLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLEVBQUU7WUFDN0QsTUFBTSxJQUFJLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDakQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxZQUFZLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBd0M7UUFDakUsS0FBSyxNQUFNLEtBQUssSUFBSSxpQkFBaUIsRUFBRTtZQUNyQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLG9CQUFvQixDQUFDLGdCQUFxQztRQUN0RSxNQUFNLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFFckQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5QztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFaEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLE9BQXFCLEVBQUUsRUFBRTtZQUMvQyxNQUFNLE1BQU0sR0FBRztnQkFDYixHQUFHLE1BQU07Z0JBQ1QsR0FBRyxPQUFPO2FBQ1gsQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUQsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtZQUN4QixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7U0FDakIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFpQixFQUFFLE1BQVc7UUFDN0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7UUFFRCxNQUFNLElBQUksd0JBQXdCLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUE3SEQsd0NBNkhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGhMaWIgPSByZXF1aXJlKCdwYXRoJyk7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7Q09ORklHLCBTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge1xuICBDbGFzc0NvbnRhaW5lclBhcmFtcyxcbiAgSW1wbEluaXRpYWxpemVNb2RlbCxcbiAgSW5pdGFsaXplZE1vZGVscyxcbiAgTW9kZWxPcHRpb25zLFxufSBmcm9tICcuLi90eXBlcy9tb2RlbHMtdW5pdmVyc2UnO1xuXG5jb25zdCB7TW9kZWxJbml0aWFsaXphdGlvbkVycm9yLCBNb2RlbENyZWRlbnRpYWxFcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtHSVRIVUJfUEFUSCwgTkFUSVZFX01PREVMfSA9IENPTkZJRztcbmNvbnN0IHtcbiAgTUlTU0lOR19DTEFTU05BTUUsXG4gIE5PVF9NT0RFTF9QTFVHSU5fRVhURU5TSU9OLFxuICBNSVNTSU5HX1BBVEgsXG4gIE5PVF9OQVRJVkVfTU9ERUwsXG4gIE5PVF9DT05TVFJVQ1RBQkxFX01PREVMLFxuICBOT1RfSU5JVElBTElaRURfTU9ERUwsXG4gIElOVkFMSURfTU9EVUxFX1BBVEgsXG59ID0gU1RSSU5HUztcblxuLyoqXG4gKiBNb2RlbHMgSW5pdGlhbGl6YXRpb24gTGlmZWN5Y2xlLlxuICovXG5leHBvcnQgY2xhc3MgTW9kZWxzVW5pdmVyc2Uge1xuICAvKipcbiAgICogTW9kZWxzIGxpc3QuXG4gICAqL1xuICBwdWJsaWMgaW5pdGFsaXplZE1vZGVsczogSW5pdGFsaXplZE1vZGVscyA9IHt9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgbW9kZWwgaXMgaW5zdGFuY2Ugb2YgYElPdXRwdXRNb2RlbEludGVyZmFjZWAuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbmNlT2ZNb2RlbChDbGFzc0NvbnRhaW5lcjogYW55LCBwYXJhbXM6IENsYXNzQ29udGFpbmVyUGFyYW1zKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRlc3RNb2RlbCA9IG5ldyBDbGFzc0NvbnRhaW5lcigpO1xuICAgICAgY29uc3QgYm9vbGFibGUgPSAnY29uZmlndXJlJyBpbiB0ZXN0TW9kZWwgJiYgJ2V4ZWN1dGUnIGluIHRlc3RNb2RlbDtcblxuICAgICAgcmV0dXJuIGJvb2xhYmxlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgTW9kZWxJbml0aWFsaXphdGlvbkVycm9yKE5PVF9DT05TVFJVQ1RBQkxFX01PREVMKHBhcmFtcykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIG1vZHVsZSBieSBnaXZlbiBgcGF0aGAuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGltcG9ydE1vZHVsZUZyb20ocGF0aDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChwYXRoKTtcblxuICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgdGhyb3cgbmV3IE1vZGVsSW5pdGlhbGl6YXRpb25FcnJvcihJTlZBTElEX01PRFVMRV9QQVRIKHBhdGgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyBgbW9kdWxlYCBmcm9tIGdpdmVuIGBwYXRoYCwgdGhlbiBjaGVja3MgaWYgaXQncyBgTW9kZWxQbHVnaW5JbnRlcmZhY2VgIGV4dGVuc2lvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW1wb3J0QW5kVmVyaWZ5TW9kdWxlKG1vZGVsOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHBsdWdpbk1vZHVsZSA9IGF3YWl0IHRoaXMuaW1wb3J0TW9kdWxlRnJvbShwYXRoKTtcblxuICAgIGlmICghdGhpcy5pbnN0YW5jZU9mTW9kZWwocGx1Z2luTW9kdWxlW21vZGVsXSwge21vZGVsLCBwYXRofSkpIHtcbiAgICAgIHRocm93IG5ldyBNb2RlbEluaXRpYWxpemF0aW9uRXJyb3IoTk9UX01PREVMX1BMVUdJTl9FWFRFTlNJT04pO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVnaW5Nb2R1bGVbbW9kZWxdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgcGx1Z2luIG1vZGVsLiBDaGVja3MgaWYgbW9kZWwgaXMgbWlzc2luZyB0aGVuIHJlamVjdHMgd2l0aCBlcnJvci5cbiAgICogVGhlbiBjaGVja3MgaWYgYHBhdGhgIGlzIHN0YXJ0aW5nIHdpdGggZ2l0aHViLCB0aGVuIGdyYWJzIHRoZSByZXBvc2l0b3J5IG5hbWUuXG4gICAqIEltcG9ydHMgbW9kdWxlLCB0aGVuIGNoZWNrcyBpZiBpdCdzIGEgY2xhc3Mgd2hpY2ggaW1wbGVtZW50cyBpbnB1dCBtb2RlbCBpbnRlcmZhY2UuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRNb2RlbChtb2RlbDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAocGF0aCA9PT0gJ2J1aWx0aW4nKSB7XG4gICAgICBwYXRoID0gcGF0aExpYi5ub3JtYWxpemUoYCR7X19kaXJuYW1lfS8uLi9tb2RlbHNgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBhdGg/LnN0YXJ0c1dpdGgoR0lUSFVCX1BBVEgpKSB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuICAgICAgICBwYXRoID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG4gICAgICB9XG5cbiAgICAgIGlmICghcGF0aC5pbmNsdWRlcyhOQVRJVkVfTU9ERUwpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKE5PVF9OQVRJVkVfTU9ERUwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmltcG9ydEFuZFZlcmlmeU1vZHVsZShtb2RlbCwgcGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFsbCBtb2RlbHMgZnJvbSBgaW1wbGAuYGluaXRhbGl6ZWAgcHJvcGVydHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYnVsa1dyaXRlRG93bihtb2RlbHNUb0luaXRhbGl6ZTogSW1wbEluaXRpYWxpemVNb2RlbFtdKSB7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBtb2RlbHNUb0luaXRhbGl6ZSkge1xuICAgICAgYXdhaXQgdGhpcy53cml0ZURvd25TaW5nbGVNb2RlbChtb2RlbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYW5kIHJlZ2lzdGVycyBtb2RlbC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd3JpdGVEb3duU2luZ2xlTW9kZWwobW9kZWxUb0luaXRhbGl6ZTogSW1wbEluaXRpYWxpemVNb2RlbCkge1xuICAgIGNvbnN0IHttb2RlbCwgcGF0aCwgY29uZmlnLCBuYW1lfSA9IG1vZGVsVG9Jbml0YWxpemU7XG5cbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgTW9kZWxDcmVkZW50aWFsRXJyb3IoTUlTU0lOR19DTEFTU05BTUUpO1xuICAgIH1cblxuICAgIGlmICghcGF0aCkge1xuICAgICAgdGhyb3cgbmV3IE1vZGVsQ3JlZGVudGlhbEVycm9yKE1JU1NJTkdfUEFUSCk7XG4gICAgfVxuXG4gICAgY29uc3QgTW9kZWwgPSBhd2FpdCB0aGlzLmhhbmRNb2RlbChtb2RlbCwgcGF0aCk7XG5cbiAgICBjb25zdCBjYWxsYmFjayA9IGFzeW5jIChvcHRpb25zOiBNb2RlbE9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaW5pdGFsaXplZE1vZGVsID0gYXdhaXQgbmV3IE1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIHJldHVybiBpbml0YWxpemVkTW9kZWw7XG4gICAgfTtcblxuICAgIHRoaXMuaW5pdGFsaXplZE1vZGVscyA9IHtcbiAgICAgIC4uLnRoaXMuaW5pdGFsaXplZE1vZGVscyxcbiAgICAgIFtuYW1lXTogY2FsbGJhY2ssXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmluaXRhbGl6ZWRNb2RlbHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBleGlzdGluZyBtb2RlbCBieSBgbmFtZWAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SW5pdGlhbGl6ZWRNb2RlbChtb2RlbE5hbWU6IHN0cmluZywgY29uZmlnOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pbml0YWxpemVkTW9kZWxzW21vZGVsTmFtZV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmluaXRhbGl6ZWRNb2RlbHNbbW9kZWxOYW1lXShjb25maWcpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBNb2RlbEluaXRpYWxpemF0aW9uRXJyb3IoTk9UX0lOSVRJQUxJWkVEX01PREVMKG1vZGVsTmFtZSkpO1xuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { ModelParams, ModelPluginInterface } from '../types/model-interface';
2
- /**
3
- * Observatory is responsible for output calculations based on the `inputs` and the `model`.
4
- */
5
- export declare class Observatory {
6
- private inputs;
7
- private outputs;
8
- /**
9
- * Init inputs object.
10
- */
11
- constructor(inputs: ModelParams[]);
12
- /**
13
- * Does investigations by given `output` information
14
- */
15
- doInvestigationsWith(modelInstance: ModelPluginInterface): Promise<this>;
16
- /**
17
- * Getter for output data.
18
- */
19
- getOutputs(): ModelParams[];
20
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Observatory = void 0;
4
- /**
5
- * Observatory is responsible for output calculations based on the `inputs` and the `model`.
6
- */
7
- class Observatory {
8
- /**
9
- * Init inputs object.
10
- */
11
- constructor(inputs) {
12
- this.outputs = [];
13
- this.inputs = inputs;
14
- }
15
- /**
16
- * Does investigations by given `output` information
17
- */
18
- async doInvestigationsWith(modelInstance) {
19
- const reuseCalculation = this.outputs.length ? this.outputs : this.inputs;
20
- this.outputs = await modelInstance.execute(reuseCalculation);
21
- return this;
22
- }
23
- /**
24
- * Getter for output data.
25
- */
26
- getOutputs() {
27
- return this.outputs;
28
- }
29
- }
30
- exports.Observatory = Observatory;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL29ic2VydmF0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBSXRCOztPQUVHO0lBQ0gsWUFBWSxNQUFxQjtRQUx6QixZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQU1sQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsYUFBbUM7UUFDbkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUUxRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUE1QkQsa0NBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbFBhcmFtcywgTW9kZWxQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uL3R5cGVzL21vZGVsLWludGVyZmFjZSc7XG5cbi8qKlxuICogT2JzZXJ2YXRvcnkgaXMgcmVzcG9uc2libGUgZm9yIG91dHB1dCBjYWxjdWxhdGlvbnMgYmFzZWQgb24gdGhlIGBpbnB1dHNgIGFuZCB0aGUgYG1vZGVsYC5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmF0b3J5IHtcbiAgcHJpdmF0ZSBpbnB1dHM6IE1vZGVsUGFyYW1zW107XG4gIHByaXZhdGUgb3V0cHV0czogTW9kZWxQYXJhbXNbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0IGlucHV0cyBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihpbnB1dHM6IE1vZGVsUGFyYW1zW10pIHtcbiAgICB0aGlzLmlucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIGludmVzdGlnYXRpb25zIGJ5IGdpdmVuIGBvdXRwdXRgIGluZm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZG9JbnZlc3RpZ2F0aW9uc1dpdGgobW9kZWxJbnN0YW5jZTogTW9kZWxQbHVnaW5JbnRlcmZhY2UpIHtcbiAgICBjb25zdCByZXVzZUNhbGN1bGF0aW9uID0gdGhpcy5vdXRwdXRzLmxlbmd0aCA/IHRoaXMub3V0cHV0cyA6IHRoaXMuaW5wdXRzO1xuXG4gICAgdGhpcy5vdXRwdXRzID0gYXdhaXQgbW9kZWxJbnN0YW5jZS5leGVjdXRlKHJldXNlQ2FsY3VsYXRpb24pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIGZvciBvdXRwdXQgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBnZXRPdXRwdXRzKCkge1xuICAgIHJldHVybiB0aGlzLm91dHB1dHM7XG4gIH1cbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { ModelsUniverse } from './models-universe';
2
- import { ChildStructure, Impl } from '../types/impl';
3
- import { Parameters } from '../types/parameters';
4
- /**
5
- * Computer for `impl` documents.
6
- */
7
- export declare class Supercomputer {
8
- private parent;
9
- private impl;
10
- private aggregatedValues;
11
- private modelsHandbook;
12
- private childAmount;
13
- private parameters;
14
- constructor(impl: Impl, modelsHandbook: ModelsUniverse, parameters: Parameters);
15
- /**
16
- * Checks if params are provided in manifest file.
17
- */
18
- overrideOrAppendParams(parameters: Parameters): void;
19
- /**
20
- * Flattens config entries.
21
- */
22
- private flattenConfigValues;
23
- /**
24
- * Adds config entries to each obsercation object passed.
25
- */
26
- private enrichInputs;
27
- /**
28
- * If `children` object contains `children` property, it means inputs are nested (calls compute recursively).
29
- * Otherwise enriches inputs, passes them to Observatory.
30
- * For each model from pipeline Observatory gathers inputs. Then results are stored.
31
- */
32
- private calculateOutputsFor;
33
- /**
34
- * Checks if children argument is present.
35
- * If it's not, then iteration is on parent level so stores the parent.
36
- * Otherwise iterates over child components.
37
- */
38
- compute(children?: ChildStructure): Promise<Impl>;
39
- }
@@ -1,116 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Supercomputer = void 0;
4
- const observatory_1 = require("./observatory");
5
- const aggregator_1 = require("./aggregator");
6
- const errors_1 = require("../util/errors");
7
- const config_1 = require("../config");
8
- const impl_1 = require("../types/impl");
9
- const { ImplValidationError } = errors_1.ERRORS;
10
- const { STRUCTURE_MALFORMED } = config_1.STRINGS;
11
- /**
12
- * Computer for `impl` documents.
13
- */
14
- class Supercomputer {
15
- constructor(impl, modelsHandbook, parameters) {
16
- this.aggregatedValues = [];
17
- this.childAmount = 0;
18
- this.impl = impl;
19
- this.modelsHandbook = modelsHandbook;
20
- this.parameters = parameters;
21
- }
22
- /**
23
- * Checks if params are provided in manifest file.
24
- */
25
- overrideOrAppendParams(parameters) {
26
- if (this.impl.params) {
27
- const implParams = this.impl.params;
28
- implParams.forEach(param => {
29
- if (`${param.name}` in parameters) {
30
- console.warn(`Rejecting overriding of canonical parameter: ${param.name}.`);
31
- return;
32
- }
33
- const { description, unit, aggregation, name } = param;
34
- this.parameters[name] = {
35
- description,
36
- unit,
37
- aggregation,
38
- };
39
- });
40
- }
41
- }
42
- /**
43
- * Flattens config entries.
44
- */
45
- flattenConfigValues(config) {
46
- const configValues = Object.values(config);
47
- return configValues.reduce((acc, value) => ({ ...acc, ...value }), {});
48
- }
49
- /**
50
- * Adds config entries to each obsercation object passed.
51
- */
52
- enrichInputs(inputs, config) {
53
- const configValues = this.flattenConfigValues(config);
54
- return inputs.map((input) => ({
55
- ...input,
56
- ...configValues,
57
- }));
58
- }
59
- /**
60
- * If `children` object contains `children` property, it means inputs are nested (calls compute recursively).
61
- * Otherwise enriches inputs, passes them to Observatory.
62
- * For each model from pipeline Observatory gathers inputs. Then results are stored.
63
- */
64
- async calculateOutputsFor(childen, name) {
65
- const pointedChild = childen[name];
66
- if ((0, impl_1.hasChildren)(pointedChild)) {
67
- return this.compute(pointedChild.children);
68
- }
69
- if (!((0, impl_1.hasChildren)(pointedChild) || (0, impl_1.hasInputs)(pointedChild))) {
70
- throw new ImplValidationError(STRUCTURE_MALFORMED(name));
71
- }
72
- this.childAmount++;
73
- const { pipeline } = this.parent;
74
- const { inputs, config } = pointedChild;
75
- const enrichedInputs = this.enrichInputs(inputs, {
76
- ...this.parent.config,
77
- ...config,
78
- });
79
- const observatory = new observatory_1.Observatory(enrichedInputs);
80
- for (const modelName of pipeline) {
81
- const params = config && config[modelName];
82
- const modelInstance = await this.modelsHandbook.getInitializedModel(modelName, params);
83
- await observatory.doInvestigationsWith(modelInstance);
84
- }
85
- const outputs = observatory.getOutputs();
86
- pointedChild.outputs = outputs;
87
- /** If aggregation is enabled, do horizontal aggregation. */
88
- if (this.impl.aggregation) {
89
- const { type, metrics } = this.impl.aggregation;
90
- if (type === 'horizontal' || type === 'both') {
91
- const aggregation = await (0, aggregator_1.aggregate)(outputs, metrics, this.parameters);
92
- pointedChild['aggregated-outputs'] = aggregation;
93
- this.aggregatedValues.push(aggregation);
94
- }
95
- }
96
- return;
97
- }
98
- /**
99
- * Checks if children argument is present.
100
- * If it's not, then iteration is on parent level so stores the parent.
101
- * Otherwise iterates over child components.
102
- */
103
- async compute(children) {
104
- const pointedChildren = children || this.impl.graph.children;
105
- const childrensNames = Object.keys(pointedChildren);
106
- for (const name of childrensNames) {
107
- if (!children && (0, impl_1.isNodeParent)(pointedChildren, children)) {
108
- this.parent = pointedChildren[name];
109
- }
110
- await this.calculateOutputsFor(pointedChildren, name);
111
- }
112
- return this.impl;
113
- }
114
- }
115
- exports.Supercomputer = Supercomputer;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJjb21wdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3VwZXJjb21wdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBMEM7QUFDMUMsNkNBQXVDO0FBRXZDLDJDQUFzQztBQUV0QyxzQ0FBa0M7QUFFbEMsd0NBU3VCO0FBSXZCLE1BQU0sRUFBQyxtQkFBbUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUVyQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBUXhCLFlBQ0UsSUFBVSxFQUNWLGNBQThCLEVBQzlCLFVBQXNCO1FBUmhCLHFCQUFnQixHQUFrQixFQUFFLENBQUM7UUFFckMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFRdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0JBQXNCLENBQUMsVUFBc0I7UUFDbEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUVwQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRTtvQkFDakMsT0FBTyxDQUFDLElBQUksQ0FDVixnREFBZ0QsS0FBSyxDQUFDLElBQUksR0FBRyxDQUM5RCxDQUFDO29CQUVGLE9BQU87aUJBQ1I7Z0JBRUQsTUFBTSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBQyxHQUFHLEtBQUssQ0FBQztnQkFFckQsSUFB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O2dCQUN2RSxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxXQUFXLENBQUM7Z0JBRWpELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDekM7U0FDRjtRQUVELE9BQU87SUFDVCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBeUI7UUFDNUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBELEtBQUssTUFBTSxJQUFJLElBQUksY0FBYyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBQSxtQkFBWSxFQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckM7WUFFRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBOUlELHNDQThJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kZWxzVW5pdmVyc2V9IGZyb20gJy4vbW9kZWxzLXVuaXZlcnNlJztcbmltcG9ydCB7T2JzZXJ2YXRvcnl9IGZyb20gJy4vb2JzZXJ2YXRvcnknO1xuaW1wb3J0IHthZ2dyZWdhdGV9IGZyb20gJy4vYWdncmVnYXRvcic7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtcbiAgQ29uZmlnLFxuICBDaGlsZFN0cnVjdHVyZSxcbiAgUGFyZW50Tm9kZSxcbiAgUGFyZW50U3RydWN0dXJlLFxuICBJbXBsLFxuICBpc05vZGVQYXJlbnQsXG4gIGhhc0NoaWxkcmVuLFxuICBoYXNJbnB1dHMsXG59IGZyb20gJy4uL3R5cGVzL2ltcGwnO1xuaW1wb3J0IHtNb2RlbFBhcmFtc30gZnJvbSAnLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcbmltcG9ydCB7UGFyYW1ldGVyc30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmNvbnN0IHtJbXBsVmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge1NUUlVDVFVSRV9NQUxGT1JNRUR9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBDb21wdXRlciBmb3IgYGltcGxgIGRvY3VtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cGVyY29tcHV0ZXIge1xuICBwcml2YXRlIHBhcmVudCE6IFBhcmVudE5vZGU7XG4gIHByaXZhdGUgaW1wbDogSW1wbDtcbiAgcHJpdmF0ZSBhZ2dyZWdhdGVkVmFsdWVzOiBNb2RlbFBhcmFtc1tdID0gW107XG4gIHByaXZhdGUgbW9kZWxzSGFuZGJvb2s6IE1vZGVsc1VuaXZlcnNlO1xuICBwcml2YXRlIGNoaWxkQW1vdW50ID0gMDtcbiAgcHJpdmF0ZSBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGltcGw6IEltcGwsXG4gICAgbW9kZWxzSGFuZGJvb2s6IE1vZGVsc1VuaXZlcnNlLFxuICAgIHBhcmFtZXRlcnM6IFBhcmFtZXRlcnNcbiAgKSB7XG4gICAgdGhpcy5pbXBsID0gaW1wbDtcbiAgICB0aGlzLm1vZGVsc0hhbmRib29rID0gbW9kZWxzSGFuZGJvb2s7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgcGFyYW1zIGFyZSBwcm92aWRlZCBpbiBtYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlT3JBcHBlbmRQYXJhbXMocGFyYW1ldGVyczogUGFyYW1ldGVycykge1xuICAgIGlmICh0aGlzLmltcGwucGFyYW1zKSB7XG4gICAgICBjb25zdCBpbXBsUGFyYW1zID0gdGhpcy5pbXBsLnBhcmFtcztcblxuICAgICAgaW1wbFBhcmFtcy5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgICAgaWYgKGAke3BhcmFtLm5hbWV9YCBpbiBwYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFJlamVjdGluZyBvdmVycmlkaW5nIG9mIGNhbm9uaWNhbCBwYXJhbWV0ZXI6ICR7cGFyYW0ubmFtZX0uYFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7ZGVzY3JpcHRpb24sIHVuaXQsIGFnZ3JlZ2F0aW9uLCBuYW1lfSA9IHBhcmFtO1xuXG4gICAgICAgIHRoaXMucGFyYW1ldGVyc1tuYW1lXSA9IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICB1bml0LFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZsYXR0ZW5zIGNvbmZpZyBlbnRyaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBmbGF0dGVuQ29uZmlnVmFsdWVzKGNvbmZpZzogQ29uZmlnKTogTW9kZWxQYXJhbXMge1xuICAgIGNvbnN0IGNvbmZpZ1ZhbHVlcyA9IE9iamVjdC52YWx1ZXMoY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnVmFsdWVzLnJlZHVjZSgoYWNjLCB2YWx1ZSkgPT4gKHsuLi5hY2MsIC4uLnZhbHVlfSksIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGNvbmZpZyBlbnRyaWVzIHRvIGVhY2ggb2JzZXJjYXRpb24gb2JqZWN0IHBhc3NlZC5cbiAgICovXG4gIHByaXZhdGUgZW5yaWNoSW5wdXRzKGlucHV0czogTW9kZWxQYXJhbXNbXSwgY29uZmlnOiBDb25maWcpIHtcbiAgICBjb25zdCBjb25maWdWYWx1ZXMgPSB0aGlzLmZsYXR0ZW5Db25maWdWYWx1ZXMoY29uZmlnKTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKChpbnB1dDogYW55KSA9PiAoe1xuICAgICAgLi4uaW5wdXQsXG4gICAgICAuLi5jb25maWdWYWx1ZXMsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGBjaGlsZHJlbmAgb2JqZWN0IGNvbnRhaW5zIGBjaGlsZHJlbmAgcHJvcGVydHksIGl0IG1lYW5zIGlucHV0cyBhcmUgbmVzdGVkIChjYWxscyBjb21wdXRlIHJlY3Vyc2l2ZWx5KS5cbiAgICogT3RoZXJ3aXNlIGVucmljaGVzIGlucHV0cywgcGFzc2VzIHRoZW0gdG8gT2JzZXJ2YXRvcnkuXG4gICAqIEZvciBlYWNoIG1vZGVsIGZyb20gcGlwZWxpbmUgT2JzZXJ2YXRvcnkgZ2F0aGVycyBpbnB1dHMuIFRoZW4gcmVzdWx0cyBhcmUgc3RvcmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjYWxjdWxhdGVPdXRwdXRzRm9yKFxuICAgIGNoaWxkZW46IENoaWxkU3RydWN0dXJlIHwgUGFyZW50U3RydWN0dXJlLFxuICAgIG5hbWU6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBwb2ludGVkQ2hpbGQgPSBjaGlsZGVuW25hbWVdO1xuXG4gICAgaWYgKGhhc0NoaWxkcmVuKHBvaW50ZWRDaGlsZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXB1dGUocG9pbnRlZENoaWxkLmNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBpZiAoIShoYXNDaGlsZHJlbihwb2ludGVkQ2hpbGQpIHx8IGhhc0lucHV0cyhwb2ludGVkQ2hpbGQpKSkge1xuICAgICAgdGhyb3cgbmV3IEltcGxWYWxpZGF0aW9uRXJyb3IoU1RSVUNUVVJFX01BTEZPUk1FRChuYW1lKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGlsZEFtb3VudCsrO1xuXG4gICAgY29uc3Qge3BpcGVsaW5lfSA9IHRoaXMucGFyZW50O1xuICAgIGNvbnN0IHtpbnB1dHMsIGNvbmZpZ30gPSBwb2ludGVkQ2hpbGQ7XG5cbiAgICBjb25zdCBlbnJpY2hlZElucHV0cyA9IHRoaXMuZW5yaWNoSW5wdXRzKGlucHV0cywge1xuICAgICAgLi4udGhpcy5wYXJlbnQuY29uZmlnLFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICAgIGNvbnN0IG9ic2VydmF0b3J5ID0gbmV3IE9ic2VydmF0b3J5KGVucmljaGVkSW5wdXRzKTtcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIG9mIHBpcGVsaW5lKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBjb25maWcgJiYgY29uZmlnW21vZGVsTmFtZV07XG4gICAgICBjb25zdCBtb2RlbEluc3RhbmNlID0gYXdhaXQgdGhpcy5tb2RlbHNIYW5kYm9vay5nZXRJbml0aWFsaXplZE1vZGVsKFxuICAgICAgICBtb2RlbE5hbWUsXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcblxuICAgICAgYXdhaXQgb2JzZXJ2YXRvcnkuZG9JbnZlc3RpZ2F0aW9uc1dpdGgobW9kZWxJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0cyA9IG9ic2VydmF0b3J5LmdldE91dHB1dHMoKTtcbiAgICBwb2ludGVkQ2hpbGQub3V0cHV0cyA9IG91dHB1dHM7XG5cbiAgICAvKiogSWYgYWdncmVnYXRpb24gaXMgZW5hYmxlZCwgZG8gaG9yaXpvbnRhbCBhZ2dyZWdhdGlvbi4gKi9cbiAgICBpZiAodGhpcy5pbXBsLmFnZ3JlZ2F0aW9uKSB7XG4gICAgICBjb25zdCB7dHlwZSwgbWV0cmljc30gPSB0aGlzLmltcGwuYWdncmVnYXRpb247XG5cbiAgICAgIGlmICh0eXBlID09PSAnaG9yaXpvbnRhbCcgfHwgdHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uID0gYXdhaXQgYWdncmVnYXRlKG91dHB1dHMsIG1ldHJpY3MsIHRoaXMucGFyYW1ldGVycyk7XG4gICAgICAgIHBvaW50ZWRDaGlsZFsnYWdncmVnYXRlZC1vdXRwdXRzJ10gPSBhZ2dyZWdhdGlvbjtcblxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZWRWYWx1ZXMucHVzaChhZ2dyZWdhdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBjaGlsZHJlbiBhcmd1bWVudCBpcyBwcmVzZW50LlxuICAgKiBJZiBpdCdzIG5vdCwgdGhlbiBpdGVyYXRpb24gaXMgb24gcGFyZW50IGxldmVsIHNvIHN0b3JlcyB0aGUgcGFyZW50LlxuICAgKiBPdGhlcndpc2UgaXRlcmF0ZXMgb3ZlciBjaGlsZCBjb21wb25lbnRzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbXB1dGUoY2hpbGRyZW4/OiBDaGlsZFN0cnVjdHVyZSkge1xuICAgIGNvbnN0IHBvaW50ZWRDaGlsZHJlbiA9IGNoaWxkcmVuIHx8IHRoaXMuaW1wbC5ncmFwaC5jaGlsZHJlbjtcbiAgICBjb25zdCBjaGlsZHJlbnNOYW1lcyA9IE9iamVjdC5rZXlzKHBvaW50ZWRDaGlsZHJlbik7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgY2hpbGRyZW5zTmFtZXMpIHtcbiAgICAgIGlmICghY2hpbGRyZW4gJiYgaXNOb2RlUGFyZW50KHBvaW50ZWRDaGlsZHJlbiwgY2hpbGRyZW4pKSB7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcG9pbnRlZENoaWxkcmVuW25hbWVdO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmNhbGN1bGF0ZU91dHB1dHNGb3IocG9pbnRlZENoaWxkcmVuLCBuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbXBsO1xuICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AGGREGATION_METHODS = void 0;
4
- exports.AGGREGATION_METHODS = ['horizontal', 'vertical', 'both'];
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hZ2dyZWdhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQWdncmVnYXRpb25SZXN1bHQgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fTUVUSE9EUyA9IFsnaG9yaXpvbnRhbCcsICd2ZXJ0aWNhbCcsICdib3RoJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uTWV0aG9kc05hbWVzID0gKHR5cGVvZiBBR0dSRUdBVElPTl9NRVRIT0RTKVtudW1iZXJdO1xuIl19
@@ -1,92 +0,0 @@
1
- import { ModelParams } from './model-interface';
2
- import { AggregationMethodsNames, AggregationResult } from './aggregator';
3
- import { ManifestParameter } from './parameters';
4
- type Tag = {
5
- kind?: string;
6
- complexity?: string;
7
- category?: string;
8
- };
9
- type Model = {
10
- name: string;
11
- verbose?: boolean;
12
- path: string;
13
- config?: Config;
14
- model: string;
15
- };
16
- export type Config = Record<string, any>;
17
- /**
18
- * Appends given `T` type to nested property.
19
- */
20
- type StructureManager<T> = {
21
- [key: string]: T;
22
- };
23
- /**
24
- * Base interface for graph contents.
25
- */
26
- interface NodeBase {
27
- pipeline?: string[];
28
- config?: Config;
29
- outputs?: ModelParams[];
30
- 'aggregated-outputs'?: AggregationResult;
31
- }
32
- /**
33
- * Setup modifiers.
34
- */
35
- type WithInputs = {
36
- inputs: ModelParams[];
37
- };
38
- type WithChildren = {
39
- children: ChildStructure;
40
- };
41
- /**
42
- * Child node interface.
43
- */
44
- type ChildBase = NodeBase;
45
- /**
46
- * Setup parent graph node type.
47
- */
48
- interface ParentBase extends NodeBase {
49
- pipeline: string[];
50
- config: Config;
51
- }
52
- /**
53
- * Node definitions.
54
- */
55
- export type ParentNode = ParentBase & (WithInputs | WithChildren);
56
- export type ChildNode = ChildBase & (WithInputs | WithChildren);
57
- /**
58
- * Structure definitions.
59
- */
60
- export type ParentStructure = StructureManager<ParentNode>;
61
- export type ChildStructure = StructureManager<ChildNode>;
62
- /**
63
- * Type guard for inputs.
64
- */
65
- export declare const hasInputs: <T>(object: any) => object is T & WithInputs;
66
- /**
67
- * Type guard for children.
68
- */
69
- export declare const hasChildren: <T>(object: any) => object is T & WithChildren;
70
- /**
71
- * Parent guard for children.
72
- */
73
- export declare const isNodeParent: (_object: any, state: ChildStructure | undefined) => _object is ParentStructure;
74
- export type Impl = {
75
- name: string;
76
- 'if-version'?: string | null | undefined;
77
- description: string | null | undefined;
78
- tags: Tag | null | undefined;
79
- params?: ManifestParameter[] | undefined | null;
80
- initialize: {
81
- models: Model[];
82
- };
83
- graph: {
84
- children: ParentStructure;
85
- };
86
- aggregation?: {
87
- metrics: string[];
88
- type: AggregationMethodsNames;
89
- };
90
- 'aggregated-outputs'?: AggregationResult;
91
- };
92
- export {};
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNodeParent = exports.hasChildren = exports.hasInputs = void 0;
4
- /**
5
- * Type guard for inputs.
6
- */
7
- const hasInputs = (object) => 'inputs' in object;
8
- exports.hasInputs = hasInputs;
9
- /**
10
- * Type guard for children.
11
- */
12
- const hasChildren = (object) => 'children' in object;
13
- exports.hasChildren = hasChildren;
14
- /**
15
- * Parent guard for children.
16
- */
17
- const isNodeParent = (_object, state) => !state;
18
- exports.isNodeParent = isNodeParent;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdFQTs7R0FFRztBQUNJLE1BQU0sU0FBUyxHQUFHLENBQUksTUFBVyxFQUE0QixFQUFFLENBQ3BFLFFBQVEsSUFBSSxNQUFNLENBQUM7QUFEUixRQUFBLFNBQVMsYUFDRDtBQUVyQjs7R0FFRztBQUNJLE1BQU0sV0FBVyxHQUFHLENBQUksTUFBVyxFQUE4QixFQUFFLENBQ3hFLFVBQVUsSUFBSSxNQUFNLENBQUM7QUFEVixRQUFBLFdBQVcsZUFDRDtBQUV2Qjs7R0FFRztBQUNJLE1BQU0sWUFBWSxHQUFHLENBQzFCLE9BQVksRUFDWixLQUFpQyxFQUNMLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUgzQixRQUFBLFlBQVksZ0JBR2UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGVsUGFyYW1zfSBmcm9tICcuL21vZGVsLWludGVyZmFjZSc7XG5pbXBvcnQge0FnZ3JlZ2F0aW9uTWV0aG9kc05hbWVzLCBBZ2dyZWdhdGlvblJlc3VsdH0gZnJvbSAnLi9hZ2dyZWdhdG9yJztcbmltcG9ydCB7TWFuaWZlc3RQYXJhbWV0ZXJ9IGZyb20gJy4vcGFyYW1ldGVycyc7XG5cbnR5cGUgVGFnID0ge1xuICBraW5kPzogc3RyaW5nO1xuICBjb21wbGV4aXR5Pzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbn07XG5cbnR5cGUgTW9kZWwgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyYm9zZT86IGJvb2xlYW47XG4gIHBhdGg6IHN0cmluZztcbiAgY29uZmlnPzogQ29uZmlnO1xuICBtb2RlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZmlnID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuLyoqXG4gKiBBcHBlbmRzIGdpdmVuIGBUYCB0eXBlIHRvIG5lc3RlZCBwcm9wZXJ0eS5cbiAqL1xudHlwZSBTdHJ1Y3R1cmVNYW5hZ2VyPFQ+ID0ge1xuICBba2V5OiBzdHJpbmddOiBUO1xufTtcblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgZ3JhcGggY29udGVudHMuXG4gKi9cbmludGVyZmFjZSBOb2RlQmFzZSB7XG4gIHBpcGVsaW5lPzogc3RyaW5nW107XG4gIGNvbmZpZz86IENvbmZpZztcbiAgb3V0cHV0cz86IE1vZGVsUGFyYW1zW107XG4gICdhZ2dyZWdhdGVkLW91dHB1dHMnPzogQWdncmVnYXRpb25SZXN1bHQ7XG59XG5cbi8qKlxuICogU2V0dXAgbW9kaWZpZXJzLlxuICovXG50eXBlIFdpdGhJbnB1dHMgPSB7XG4gIGlucHV0czogTW9kZWxQYXJhbXNbXTtcbn07XG50eXBlIFdpdGhDaGlsZHJlbiA9IHtcbiAgY2hpbGRyZW46IENoaWxkU3RydWN0dXJlO1xufTtcblxuLyoqXG4gKiBDaGlsZCBub2RlIGludGVyZmFjZS5cbiAqL1xudHlwZSBDaGlsZEJhc2UgPSBOb2RlQmFzZTtcblxuLyoqXG4gKiBTZXR1cCBwYXJlbnQgZ3JhcGggbm9kZSB0eXBlLlxuICovXG5pbnRlcmZhY2UgUGFyZW50QmFzZSBleHRlbmRzIE5vZGVCYXNlIHtcbiAgcGlwZWxpbmU6IHN0cmluZ1tdO1xuICBjb25maWc6IENvbmZpZztcbn1cblxuLyoqXG4gKiBOb2RlIGRlZmluaXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBQYXJlbnROb2RlID0gUGFyZW50QmFzZSAmIChXaXRoSW5wdXRzIHwgV2l0aENoaWxkcmVuKTtcbmV4cG9ydCB0eXBlIENoaWxkTm9kZSA9IENoaWxkQmFzZSAmIChXaXRoSW5wdXRzIHwgV2l0aENoaWxkcmVuKTtcblxuLyoqXG4gKiBTdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmVudFN0cnVjdHVyZSA9IFN0cnVjdHVyZU1hbmFnZXI8UGFyZW50Tm9kZT47XG5leHBvcnQgdHlwZSBDaGlsZFN0cnVjdHVyZSA9IFN0cnVjdHVyZU1hbmFnZXI8Q2hpbGROb2RlPjtcblxuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNJbnB1dHMgPSA8VD4ob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgVCAmIFdpdGhJbnB1dHMgPT5cbiAgJ2lucHV0cycgaW4gb2JqZWN0O1xuXG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgaGFzQ2hpbGRyZW4gPSA8VD4ob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgVCAmIFdpdGhDaGlsZHJlbiA9PlxuICAnY2hpbGRyZW4nIGluIG9iamVjdDtcblxuLyoqXG4gKiBQYXJlbnQgZ3VhcmQgZm9yIGNoaWxkcmVuLlxuICovXG5leHBvcnQgY29uc3QgaXNOb2RlUGFyZW50ID0gKFxuICBfb2JqZWN0OiBhbnksXG4gIHN0YXRlOiBDaGlsZFN0cnVjdHVyZSB8IHVuZGVmaW5lZFxuKTogX29iamVjdCBpcyBQYXJlbnRTdHJ1Y3R1cmUgPT4gIXN0YXRlO1xuXG5leHBvcnQgdHlwZSBJbXBsID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gICdpZi12ZXJzaW9uJz86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0YWdzOiBUYWcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwYXJhbXM/OiBNYW5pZmVzdFBhcmFtZXRlcltdIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgaW5pdGlhbGl6ZToge1xuICAgIG1vZGVsczogTW9kZWxbXTtcbiAgfTtcbiAgZ3JhcGg6IHtcbiAgICBjaGlsZHJlbjogUGFyZW50U3RydWN0dXJlO1xuICB9O1xuICBhZ2dyZWdhdGlvbj86IHtcbiAgICBtZXRyaWNzOiBzdHJpbmdbXTtcbiAgICB0eXBlOiBBZ2dyZWdhdGlvbk1ldGhvZHNOYW1lcztcbiAgfTtcbiAgJ2FnZ3JlZ2F0ZWQtb3V0cHV0cyc/OiBBZ2dyZWdhdGlvblJlc3VsdDtcbn07XG4iXX0=
@@ -1,13 +0,0 @@
1
- export type ModelParams = {
2
- [key: string]: any;
3
- };
4
- export interface ModelPluginInterface {
5
- /**
6
- * Configures instance with given params.
7
- */
8
- configure(params: object | undefined): Promise<ModelPluginInterface>;
9
- /**
10
- * Calculates `output` based on given model's `input`.
11
- */
12
- execute(inputs: ModelParams[]): Promise<ModelParams[]>;
13
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL21vZGVsLWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTW9kZWxQYXJhbXMgPSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxQbHVnaW5JbnRlcmZhY2Uge1xuICAvKipcbiAgICogQ29uZmlndXJlcyBpbnN0YW5jZSB3aXRoIGdpdmVuIHBhcmFtcy5cbiAgICovXG4gIGNvbmZpZ3VyZShwYXJhbXM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IFByb21pc2U8TW9kZWxQbHVnaW5JbnRlcmZhY2U+O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIGBvdXRwdXRgIGJhc2VkIG9uIGdpdmVuIG1vZGVsJ3MgYGlucHV0YC5cbiAgICovXG4gIGV4ZWN1dGUoaW5wdXRzOiBNb2RlbFBhcmFtc1tdKTogUHJvbWlzZTxNb2RlbFBhcmFtc1tdPjtcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { ModelPluginInterface } from '../types/model-interface';
2
- export type ModelOptions = Record<string, any>;
3
- export type ImplInitializeModel = {
4
- config?: Record<string, any>;
5
- name: string;
6
- model?: string;
7
- path?: string;
8
- };
9
- export type InitalizedModels = {
10
- [key: string]: (modelOptions: ModelOptions) => Promise<ModelPluginInterface>;
11
- };
12
- export type HandModelParams = {
13
- name: string;
14
- model?: string;
15
- path?: string;
16
- };
17
- export type ClassContainerParams = {
18
- model: string;
19
- path: string;
20
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL21vZGVscy11bml2ZXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbFBsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgTW9kZWxPcHRpb25zID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuZXhwb3J0IHR5cGUgSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgbmFtZTogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEluaXRhbGl6ZWRNb2RlbHMgPSB7XG4gIFtrZXk6IHN0cmluZ106IChtb2RlbE9wdGlvbnM6IE1vZGVsT3B0aW9ucykgPT4gUHJvbWlzZTxNb2RlbFBsdWdpbkludGVyZmFjZT47XG59O1xuXG5leHBvcnQgdHlwZSBIYW5kTW9kZWxQYXJhbXMgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDbGFzc0NvbnRhaW5lclBhcmFtcyA9IHtcbiAgbW9kZWw6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xufTtcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export type ChildInformation = {
2
- name: string;
3
- info: any;
4
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJjb21wdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zdXBlcmNvbXB1dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDaGlsZEluZm9ybWF0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGluZm86IGFueTtcbn07XG4iXX0=
@@ -1,5 +0,0 @@
1
- import { Parameters } from '../types/parameters';
2
- /**
3
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
4
- */
5
- export declare const getAggregationMethod: (unitName: string, parameters: Parameters) => "sum" | "none" | "avg";
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAggregationMethod = void 0;
4
- /**
5
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
6
- */
7
- const getAggregationMethod = (unitName, parameters) => {
8
- if (`${unitName}` in parameters) {
9
- return parameters[unitName].aggregation;
10
- }
11
- return 'sum';
12
- };
13
- exports.getAggregationMethod = getAggregationMethod;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvcGFyYW0tc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0ksTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxRQUFnQixFQUNoQixVQUFzQixFQUN0QixFQUFFO0lBQ0YsSUFBSSxHQUFHLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUMvQixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7S0FDekM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQVRXLFFBQUEsb0JBQW9CLHdCQVMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGFyYW1ldGVyc30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbi8qKlxuICogUmV0dXJucyBhZ2dyZWdhdGlvbiBtZXRob2QgZm9yIGdpdmVuIGB1bml0TmFtZWAuIElmIGRvZXNuJ3QgZXhpc3QgdGhlbiByZXR1cm5zIHZhbHVlIGBzdW1gLlxuICovXG5leHBvcnQgY29uc3QgZ2V0QWdncmVnYXRpb25NZXRob2QgPSAoXG4gIHVuaXROYW1lOiBzdHJpbmcsXG4gIHBhcmFtZXRlcnM6IFBhcmFtZXRlcnNcbikgPT4ge1xuICBpZiAoYCR7dW5pdE5hbWV9YCBpbiBwYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnNbdW5pdE5hbWVdLmFnZ3JlZ2F0aW9uO1xuICB9XG5cbiAgcmV0dXJuICdzdW0nO1xufTtcbiJdfQ==