@grnsft/if 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/build/common/config/strings.d.ts +2 -0
  2. package/build/common/config/strings.js +5 -3
  3. package/build/if-run/builtins/interpolation/index.js +18 -10
  4. package/build/if-run/lib/compute.js +8 -10
  5. package/build/if-run/lib/explain.js +69 -44
  6. package/build/if-run/lib/initialize.js +2 -2
  7. package/build/if-run/lib/regroup.d.ts +1 -1
  8. package/build/if-run/lib/regroup.js +41 -49
  9. package/build/if-run/types/explain.d.ts +3 -7
  10. package/build/if-run/types/explain.js +1 -1
  11. package/build/if-run/util/aggregation-helper.js +3 -3
  12. package/manifests/examples/builtins/interpolation/success-with-off.yml +24 -0
  13. package/package.json +2 -2
  14. package/src/if-run/builtins/interpolation/README.md +1 -1
  15. package/.env +0 -5
  16. package/coverage/clover.xml +0 -2045
  17. package/coverage/coverage-final.json +0 -55
  18. package/coverage/lcov-report/base.css +0 -224
  19. package/coverage/lcov-report/block-navigation.js +0 -87
  20. package/coverage/lcov-report/builtins/coefficient/index.html +0 -116
  21. package/coverage/lcov-report/builtins/coefficient/index.ts.html +0 -298
  22. package/coverage/lcov-report/builtins/csv-lookup/index.html +0 -116
  23. package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +0 -826
  24. package/coverage/lcov-report/builtins/divide/index.html +0 -116
  25. package/coverage/lcov-report/builtins/divide/index.ts.html +0 -358
  26. package/coverage/lcov-report/builtins/exponent/index.html +0 -116
  27. package/coverage/lcov-report/builtins/exponent/index.ts.html +0 -361
  28. package/coverage/lcov-report/builtins/export-csv-raw.ts.html +0 -553
  29. package/coverage/lcov-report/builtins/export-csv.ts.html +0 -436
  30. package/coverage/lcov-report/builtins/export-log.ts.html +0 -148
  31. package/coverage/lcov-report/builtins/export-yaml.ts.html +0 -193
  32. package/coverage/lcov-report/builtins/group-by.ts.html +0 -370
  33. package/coverage/lcov-report/builtins/index.html +0 -206
  34. package/coverage/lcov-report/builtins/index.ts.html +0 -130
  35. package/coverage/lcov-report/builtins/interpolation/index.html +0 -116
  36. package/coverage/lcov-report/builtins/interpolation/index.ts.html +0 -676
  37. package/coverage/lcov-report/builtins/interpolation/types.ts.html +0 -100
  38. package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
  39. package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +0 -131
  40. package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
  41. package/coverage/lcov-report/builtins/mock-observations/index.html +0 -116
  42. package/coverage/lcov-report/builtins/mock-observations/index.ts.html +0 -619
  43. package/coverage/lcov-report/builtins/multiply/index.html +0 -116
  44. package/coverage/lcov-report/builtins/multiply/index.ts.html +0 -343
  45. package/coverage/lcov-report/builtins/regex/index.html +0 -116
  46. package/coverage/lcov-report/builtins/regex/index.ts.html +0 -373
  47. package/coverage/lcov-report/builtins/sci/config.ts.html +0 -205
  48. package/coverage/lcov-report/builtins/sci/index.html +0 -116
  49. package/coverage/lcov-report/builtins/sci/index.ts.html +0 -325
  50. package/coverage/lcov-report/builtins/sci-embodied/index.html +0 -116
  51. package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +0 -478
  52. package/coverage/lcov-report/builtins/shell/index.html +0 -116
  53. package/coverage/lcov-report/builtins/shell/index.ts.html +0 -280
  54. package/coverage/lcov-report/builtins/subtract/index.html +0 -116
  55. package/coverage/lcov-report/builtins/subtract/index.ts.html +0 -379
  56. package/coverage/lcov-report/builtins/sum/index.html +0 -116
  57. package/coverage/lcov-report/builtins/sum/index.ts.html +0 -334
  58. package/coverage/lcov-report/builtins/time-sync.ts.html +0 -1462
  59. package/coverage/lcov-report/common/config/index.html +0 -131
  60. package/coverage/lcov-report/common/config/index.ts.html +0 -88
  61. package/coverage/lcov-report/common/config/strings.ts.html +0 -121
  62. package/coverage/lcov-report/common/lib/index.html +0 -116
  63. package/coverage/lcov-report/common/lib/load.ts.html +0 -139
  64. package/coverage/lcov-report/common/util/debug-logger.ts.html +0 -511
  65. package/coverage/lcov-report/common/util/fs.ts.html +0 -289
  66. package/coverage/lcov-report/common/util/helpers.ts.html +0 -280
  67. package/coverage/lcov-report/common/util/index.html +0 -191
  68. package/coverage/lcov-report/common/util/logger.ts.html +0 -151
  69. package/coverage/lcov-report/common/util/validations.ts.html +0 -613
  70. package/coverage/lcov-report/common/util/yaml.ts.html +0 -193
  71. package/coverage/lcov-report/config/config.ts.html +0 -463
  72. package/coverage/lcov-report/config/index.html +0 -161
  73. package/coverage/lcov-report/config/index.ts.html +0 -94
  74. package/coverage/lcov-report/config/params.ts.html +0 -697
  75. package/coverage/lcov-report/config/strings.ts.html +0 -490
  76. package/coverage/lcov-report/favicon.png +0 -0
  77. package/coverage/lcov-report/if-check/config/config.ts.html +0 -184
  78. package/coverage/lcov-report/if-check/config/index.html +0 -146
  79. package/coverage/lcov-report/if-check/config/index.ts.html +0 -91
  80. package/coverage/lcov-report/if-check/config/strings.ts.html +0 -142
  81. package/coverage/lcov-report/if-check/util/args.ts.html +0 -304
  82. package/coverage/lcov-report/if-check/util/helpers.ts.html +0 -136
  83. package/coverage/lcov-report/if-check/util/index.html +0 -146
  84. package/coverage/lcov-report/if-check/util/npm.ts.html +0 -232
  85. package/coverage/lcov-report/if-csv/util/helpers.ts.html +0 -346
  86. package/coverage/lcov-report/if-csv/util/index.html +0 -116
  87. package/coverage/lcov-report/if-diff/config/config.ts.html +0 -184
  88. package/coverage/lcov-report/if-diff/config/index.html +0 -146
  89. package/coverage/lcov-report/if-diff/config/index.ts.html +0 -91
  90. package/coverage/lcov-report/if-diff/config/strings.ts.html +0 -100
  91. package/coverage/lcov-report/if-diff/lib/compare.ts.html +0 -286
  92. package/coverage/lcov-report/if-diff/lib/index.html +0 -131
  93. package/coverage/lcov-report/if-diff/lib/load.ts.html +0 -199
  94. package/coverage/lcov-report/if-diff/util/args.ts.html +0 -268
  95. package/coverage/lcov-report/if-diff/util/helpers.ts.html +0 -337
  96. package/coverage/lcov-report/if-diff/util/index.html +0 -131
  97. package/coverage/lcov-report/if-env/config/config.ts.html +0 -211
  98. package/coverage/lcov-report/if-env/config/index.html +0 -146
  99. package/coverage/lcov-report/if-env/config/index.ts.html +0 -91
  100. package/coverage/lcov-report/if-env/config/strings.ts.html +0 -109
  101. package/coverage/lcov-report/if-env/util/args.ts.html +0 -250
  102. package/coverage/lcov-report/if-env/util/index.html +0 -131
  103. package/coverage/lcov-report/if-env/util/npm.ts.html +0 -526
  104. package/coverage/lcov-report/if-merge/util/args.ts.html +0 -295
  105. package/coverage/lcov-report/if-merge/util/helpers.ts.html +0 -301
  106. package/coverage/lcov-report/if-merge/util/index.html +0 -131
  107. package/coverage/lcov-report/if-run/builtins/coefficient/index.html +0 -116
  108. package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +0 -382
  109. package/coverage/lcov-report/if-run/builtins/copy-param/index.html +0 -116
  110. package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +0 -415
  111. package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +0 -116
  112. package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +0 -868
  113. package/coverage/lcov-report/if-run/builtins/divide/index.html +0 -116
  114. package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +0 -469
  115. package/coverage/lcov-report/if-run/builtins/exponent/index.html +0 -116
  116. package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +0 -394
  117. package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +0 -553
  118. package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +0 -436
  119. package/coverage/lcov-report/if-run/builtins/export-log.ts.html +0 -148
  120. package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +0 -193
  121. package/coverage/lcov-report/if-run/builtins/group-by.ts.html +0 -370
  122. package/coverage/lcov-report/if-run/builtins/index.html +0 -146
  123. package/coverage/lcov-report/if-run/builtins/index.ts.html +0 -133
  124. package/coverage/lcov-report/if-run/builtins/interpolation/index.html +0 -116
  125. package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +0 -709
  126. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
  127. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +0 -131
  128. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
  129. package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +0 -116
  130. package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +0 -709
  131. package/coverage/lcov-report/if-run/builtins/multiply/index.html +0 -116
  132. package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +0 -406
  133. package/coverage/lcov-report/if-run/builtins/regex/index.html +0 -116
  134. package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +0 -433
  135. package/coverage/lcov-report/if-run/builtins/sci/index.html +0 -116
  136. package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +0 -502
  137. package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +0 -116
  138. package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +0 -577
  139. package/coverage/lcov-report/if-run/builtins/shell/index.html +0 -116
  140. package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +0 -343
  141. package/coverage/lcov-report/if-run/builtins/subtract/index.html +0 -116
  142. package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +0 -418
  143. package/coverage/lcov-report/if-run/builtins/sum/index.html +0 -116
  144. package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +0 -400
  145. package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +0 -205
  146. package/coverage/lcov-report/if-run/builtins/time-converter/index.html +0 -131
  147. package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +0 -412
  148. package/coverage/lcov-report/if-run/builtins/time-sync/index.html +0 -116
  149. package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +0 -1651
  150. package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +0 -1462
  151. package/coverage/lcov-report/if-run/config/config.ts.html +0 -271
  152. package/coverage/lcov-report/if-run/config/index.html +0 -161
  153. package/coverage/lcov-report/if-run/config/index.ts.html +0 -94
  154. package/coverage/lcov-report/if-run/config/params.ts.html +0 -679
  155. package/coverage/lcov-report/if-run/config/strings.ts.html +0 -460
  156. package/coverage/lcov-report/if-run/lib/aggregate.ts.html +0 -580
  157. package/coverage/lcov-report/if-run/lib/compute.ts.html +0 -709
  158. package/coverage/lcov-report/if-run/lib/environment.ts.html +0 -373
  159. package/coverage/lcov-report/if-run/lib/exhaust.ts.html +0 -193
  160. package/coverage/lcov-report/if-run/lib/explain.ts.html +0 -217
  161. package/coverage/lcov-report/if-run/lib/index.html +0 -206
  162. package/coverage/lcov-report/if-run/lib/initialize.ts.html +0 -475
  163. package/coverage/lcov-report/if-run/lib/parameterize.ts.html +0 -322
  164. package/coverage/lcov-report/if-run/lib/regroup.ts.html +0 -325
  165. package/coverage/lcov-report/if-run/lib/time-sync.ts.html +0 -1510
  166. package/coverage/lcov-report/if-run/types/aggregation.ts.html +0 -94
  167. package/coverage/lcov-report/if-run/types/index.html +0 -146
  168. package/coverage/lcov-report/if-run/types/interface.ts.html +0 -112
  169. package/coverage/lcov-report/if-run/types/parameters.ts.html +0 -106
  170. package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +0 -280
  171. package/coverage/lcov-report/if-run/util/args.ts.html +0 -313
  172. package/coverage/lcov-report/if-run/util/helpers.ts.html +0 -304
  173. package/coverage/lcov-report/if-run/util/index.html +0 -191
  174. package/coverage/lcov-report/if-run/util/json.ts.html +0 -115
  175. package/coverage/lcov-report/if-run/util/log-memoize.ts.html +0 -145
  176. package/coverage/lcov-report/if-run/util/os-checker.ts.html +0 -421
  177. package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +0 -202
  178. package/coverage/lcov-report/index.html +0 -521
  179. package/coverage/lcov-report/lib/aggregate.ts.html +0 -358
  180. package/coverage/lcov-report/lib/compare.ts.html +0 -286
  181. package/coverage/lcov-report/lib/compute.ts.html +0 -436
  182. package/coverage/lcov-report/lib/environment.ts.html +0 -376
  183. package/coverage/lcov-report/lib/exhaust.ts.html +0 -289
  184. package/coverage/lcov-report/lib/index.html +0 -221
  185. package/coverage/lcov-report/lib/initialize.ts.html +0 -430
  186. package/coverage/lcov-report/lib/load.ts.html +0 -268
  187. package/coverage/lcov-report/lib/parameterize.ts.html +0 -316
  188. package/coverage/lcov-report/prettify.css +0 -1
  189. package/coverage/lcov-report/prettify.js +0 -2
  190. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  191. package/coverage/lcov-report/sorter.js +0 -196
  192. package/coverage/lcov-report/types/aggregation.ts.html +0 -94
  193. package/coverage/lcov-report/types/index.html +0 -146
  194. package/coverage/lcov-report/types/interface.ts.html +0 -112
  195. package/coverage/lcov-report/types/parameters.ts.html +0 -106
  196. package/coverage/lcov-report/util/aggregation-helper.ts.html +0 -289
  197. package/coverage/lcov-report/util/args.ts.html +0 -649
  198. package/coverage/lcov-report/util/debug-logger.ts.html +0 -481
  199. package/coverage/lcov-report/util/errors.ts.html +0 -232
  200. package/coverage/lcov-report/util/fs.ts.html +0 -124
  201. package/coverage/lcov-report/util/helpers.ts.html +0 -895
  202. package/coverage/lcov-report/util/index.html +0 -296
  203. package/coverage/lcov-report/util/json.ts.html +0 -115
  204. package/coverage/lcov-report/util/log-memoize.ts.html +0 -145
  205. package/coverage/lcov-report/util/logger.ts.html +0 -151
  206. package/coverage/lcov-report/util/npm.ts.html +0 -499
  207. package/coverage/lcov-report/util/os-checker.ts.html +0 -421
  208. package/coverage/lcov-report/util/plugin-storage.ts.html +0 -202
  209. package/coverage/lcov-report/util/validations.ts.html +0 -544
  210. package/coverage/lcov-report/util/yaml.ts.html +0 -193
  211. package/coverage/lcov.info +0 -3392
  212. package/manifests/outputs/features/regroup/test.yml +0 -92
@@ -8,60 +8,52 @@ const config_1 = require("../config");
8
8
  const { InvalidGroupingError } = utils_1.ERRORS;
9
9
  const { INVALID_GROUP_KEY, REGROUP_ERROR } = config_1.STRINGS;
10
10
  /**
11
- * Grouping strategy.
11
+ * Creates structure to insert inputs by groups.
12
12
  */
13
- const Regroup = (inputs, outputs, groups) => {
14
- /**
15
- * Creates structure to insert inputs by groups.
16
- */
17
- const appendGroup = (value, object, target, groups) => {
18
- if (groups.length > 0) {
19
- const group = groups.shift();
20
- object.children = object.children ?? {};
21
- object.children[group] = object.children[group] ?? {};
22
- if (groups.length === 0) {
23
- if (object.children[group][target] &&
24
- object.children[group][target].length > 0) {
25
- object.children[group][target].push(value);
26
- }
27
- else {
28
- object.children[group][target] = [value];
29
- }
30
- }
31
- appendGroup(value, object.children[group], target, groups);
32
- }
13
+ const appendGroup = (value, object, target, groups) => {
14
+ if (groups.length === 0) {
15
+ object[target] = object[target] || [];
16
+ object[target].push(value);
33
17
  return object;
34
- };
35
- /**
36
- * Validates groups array.
37
- */
38
- const validateGroups = (regroup) => {
39
- const inputData = { regroup };
40
- const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.string(), { message: REGROUP_ERROR }).min(1));
41
- (0, validations_1.validate)(validationSchema, inputData);
42
- return groups;
43
- };
44
- /**
45
- * Interates over inputs, grabs group values for each one.
46
- * Based on grouping, initializes the structure.
47
- */
18
+ }
19
+ const group = groups.shift();
20
+ object.children = object.children || {};
21
+ object.children[group] = object.children[group] || {};
22
+ return appendGroup(value, object.children[group], target, groups);
23
+ };
24
+ /**
25
+ * Validates the groups array.
26
+ */
27
+ const validateGroups = (groups) => {
28
+ const inputData = { regroup: groups };
29
+ const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.string(), { message: REGROUP_ERROR }).min(1));
30
+ (0, validations_1.validate)(validationSchema, inputData);
31
+ return groups;
32
+ };
33
+ /**
34
+ * Looks up a group key value in the input.
35
+ */
36
+ const lookupGroupKey = (input, groupKey) => {
37
+ if (!input[groupKey]) {
38
+ throw new InvalidGroupingError(INVALID_GROUP_KEY(groupKey));
39
+ }
40
+ return input[groupKey];
41
+ };
42
+ /**
43
+ * Regroups inputs and outputs based on the given group keys.
44
+ */
45
+ const Regroup = (inputs, outputs, groups) => {
48
46
  const validatedGroups = validateGroups(groups);
49
- const lookupGroupKey = (input, groupKey) => {
50
- if (!input[groupKey]) {
51
- throw new InvalidGroupingError(INVALID_GROUP_KEY(groupKey));
47
+ const appendToAccumulator = (items, acc, target) => {
48
+ for (const item of items) {
49
+ const groupsWithData = validatedGroups.map(groupKey => lookupGroupKey(item, groupKey));
50
+ appendGroup(item, acc, target, groupsWithData);
52
51
  }
53
- return input[groupKey];
54
52
  };
55
- let acc = {};
56
- for (const input of inputs) {
57
- const groupsWithData = validatedGroups.map(groupKey => lookupGroupKey(input, groupKey));
58
- acc = appendGroup(input, acc, 'inputs', groupsWithData);
59
- }
60
- for (const output of outputs) {
61
- const groupsWithData = validatedGroups.map(groupKey => lookupGroupKey(output, groupKey));
62
- acc = appendGroup(output, acc, 'outputs', groupsWithData);
63
- }
53
+ const acc = {};
54
+ appendToAccumulator(inputs, acc, 'inputs');
55
+ appendToAccumulator(outputs, acc, 'outputs');
64
56
  return acc.children;
65
57
  };
66
58
  exports.Regroup = Regroup;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFFdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUV0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQ3JCLE1BQXNCLEVBQ3RCLE9BQXVCLEVBQ3ZCLE1BQWdCLEVBQ2hCLEVBQUU7SUFDRjs7T0FFRztJQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFjLEVBQ2QsTUFBZ0IsRUFDaEIsRUFBRTtRQUNGLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBWSxDQUFDO1lBRXZDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV0RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3pDO29CQUNBLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM1QztxQkFBTTtvQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFDO2FBQ0Y7WUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWlCLEVBQUUsRUFBRTtRQUMzQyxNQUFNLFNBQVMsR0FBRyxFQUFDLE9BQU8sRUFBQyxDQUFDO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FDL0IsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUNWLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDO1FBRUYsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUVILE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1FBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDcEIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixJQUFJLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDcEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7UUFDMUIsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNwRCxjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztLQUN6RDtJQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQzVCLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDcEQsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FDakMsQ0FBQztRQUNGLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7S0FDM0Q7SUFFRCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBbkZXLFFBQUEsT0FBTyxXQW1GbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3Qge0ludmFsaWRHcm91cGluZ0Vycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge0lOVkFMSURfR1JPVVBfS0VZLCBSRUdST1VQX0VSUk9SfSA9IFNUUklOR1M7XG5cbi8qKlxuICogR3JvdXBpbmcgc3RyYXRlZ3kuXG4gKi9cbmV4cG9ydCBjb25zdCBSZWdyb3VwID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBvdXRwdXRzOiBQbHVnaW5QYXJhbXNbXSxcbiAgZ3JvdXBzOiBzdHJpbmdbXVxuKSA9PiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIHN0cnVjdHVyZSB0byBpbnNlcnQgaW5wdXRzIGJ5IGdyb3Vwcy5cbiAgICovXG4gIGNvbnN0IGFwcGVuZEdyb3VwID0gKFxuICAgIHZhbHVlOiBQbHVnaW5QYXJhbXMsXG4gICAgb2JqZWN0OiBhbnksXG4gICAgdGFyZ2V0OiBzdHJpbmcsXG4gICAgZ3JvdXBzOiBzdHJpbmdbXVxuICApID0+IHtcbiAgICBpZiAoZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGdyb3VwID0gZ3JvdXBzLnNoaWZ0KCkgYXMgc3RyaW5nO1xuXG4gICAgICBvYmplY3QuY2hpbGRyZW4gPSBvYmplY3QuY2hpbGRyZW4gPz8ge307XG4gICAgICBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdID0gb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSA/PyB7fTtcblxuICAgICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG9iamVjdC5jaGlsZHJlbltncm91cF1bdGFyZ2V0XSAmJlxuICAgICAgICAgIG9iamVjdC5jaGlsZHJlbltncm91cF1bdGFyZ2V0XS5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIG9iamVjdC5jaGlsZHJlbltncm91cF1bdGFyZ2V0XS5wdXNoKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdW3RhcmdldF0gPSBbdmFsdWVdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFwcGVuZEdyb3VwKHZhbHVlLCBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLCB0YXJnZXQsIGdyb3Vwcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGdyb3VwcyBhcnJheS5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR3JvdXBzID0gKHJlZ3JvdXA6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgaW5wdXREYXRhID0ge3JlZ3JvdXB9O1xuICAgIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZChcbiAgICAgIHouc3RyaW5nKCksXG4gICAgICB6LmFycmF5KHouc3RyaW5nKCksIHttZXNzYWdlOiBSRUdST1VQX0VSUk9SfSkubWluKDEpXG4gICAgKTtcblxuICAgIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgICByZXR1cm4gZ3JvdXBzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbnRlcmF0ZXMgb3ZlciBpbnB1dHMsIGdyYWJzIGdyb3VwIHZhbHVlcyBmb3IgZWFjaCBvbmUuXG4gICAqIEJhc2VkIG9uIGdyb3VwaW5nLCBpbml0aWFsaXplcyB0aGUgc3RydWN0dXJlLlxuICAgKi9cblxuICBjb25zdCB2YWxpZGF0ZWRHcm91cHMgPSB2YWxpZGF0ZUdyb3Vwcyhncm91cHMpO1xuXG4gIGNvbnN0IGxvb2t1cEdyb3VwS2V5ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGdyb3VwS2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWlucHV0W2dyb3VwS2V5XSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRHcm91cGluZ0Vycm9yKElOVkFMSURfR1JPVVBfS0VZKGdyb3VwS2V5KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0W2dyb3VwS2V5XTtcbiAgfTtcblxuICBsZXQgYWNjID0ge30gYXMgYW55O1xuICBmb3IgKGNvbnN0IGlucHV0IG9mIGlucHV0cykge1xuICAgIGNvbnN0IGdyb3Vwc1dpdGhEYXRhID0gdmFsaWRhdGVkR3JvdXBzLm1hcChncm91cEtleSA9PlxuICAgICAgbG9va3VwR3JvdXBLZXkoaW5wdXQsIGdyb3VwS2V5KVxuICAgICk7XG4gICAgYWNjID0gYXBwZW5kR3JvdXAoaW5wdXQsIGFjYywgJ2lucHV0cycsIGdyb3Vwc1dpdGhEYXRhKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qgb3V0cHV0IG9mIG91dHB1dHMpIHtcbiAgICBjb25zdCBncm91cHNXaXRoRGF0YSA9IHZhbGlkYXRlZEdyb3Vwcy5tYXAoZ3JvdXBLZXkgPT5cbiAgICAgIGxvb2t1cEdyb3VwS2V5KG91dHB1dCwgZ3JvdXBLZXkpXG4gICAgKTtcbiAgICBhY2MgPSBhcHBlbmRHcm91cChvdXRwdXQsIGFjYywgJ291dHB1dHMnLCBncm91cHNXaXRoRGF0YSk7XG4gIH1cblxuICByZXR1cm4gYWNjLmNoaWxkcmVuO1xufTtcbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFFdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUN0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFjLEVBQ2QsTUFBZ0IsRUFDWCxFQUFFO0lBQ1AsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFHLENBQUM7SUFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXRELE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBZ0IsRUFBWSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FDL0IsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUNWLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0lBRUYsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFtQixFQUFFLFFBQWdCLEVBQVUsRUFBRTtJQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLE9BQU8sR0FBRyxDQUNyQixNQUFzQixFQUN0QixPQUF1QixFQUN2QixNQUFnQixFQUNYLEVBQUU7SUFDUCxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFxQixFQUNyQixHQUFRLEVBQ1IsTUFBYyxFQUNkLEVBQUU7UUFDRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3BELGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQy9CLENBQUM7WUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUN0QixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SW52YWxpZEdyb3VwaW5nRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0lOVkFMSURfR1JPVVBfS0VZLCBSRUdST1VQX0VSUk9SfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ3JlYXRlcyBzdHJ1Y3R1cmUgdG8gaW5zZXJ0IGlucHV0cyBieSBncm91cHMuXG4gKi9cbmNvbnN0IGFwcGVuZEdyb3VwID0gKFxuICB2YWx1ZTogUGx1Z2luUGFyYW1zLFxuICBvYmplY3Q6IGFueSxcbiAgdGFyZ2V0OiBzdHJpbmcsXG4gIGdyb3Vwczogc3RyaW5nW11cbik6IGFueSA9PiB7XG4gIGlmIChncm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgb2JqZWN0W3RhcmdldF0gPSBvYmplY3RbdGFyZ2V0XSB8fCBbXTtcbiAgICBvYmplY3RbdGFyZ2V0XS5wdXNoKHZhbHVlKTtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgY29uc3QgZ3JvdXAgPSBncm91cHMuc2hpZnQoKSE7XG4gIG9iamVjdC5jaGlsZHJlbiA9IG9iamVjdC5jaGlsZHJlbiB8fCB7fTtcbiAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSA9IG9iamVjdC5jaGlsZHJlbltncm91cF0gfHwge307XG5cbiAgcmV0dXJuIGFwcGVuZEdyb3VwKHZhbHVlLCBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLCB0YXJnZXQsIGdyb3Vwcyk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgZ3JvdXBzIGFycmF5LlxuICovXG5jb25zdCB2YWxpZGF0ZUdyb3VwcyA9IChncm91cHM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBpbnB1dERhdGEgPSB7cmVncm91cDogZ3JvdXBzfTtcbiAgY29uc3QgdmFsaWRhdGlvblNjaGVtYSA9IHoucmVjb3JkKFxuICAgIHouc3RyaW5nKCksXG4gICAgei5hcnJheSh6LnN0cmluZygpLCB7bWVzc2FnZTogUkVHUk9VUF9FUlJPUn0pLm1pbigxKVxuICApO1xuXG4gIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn07XG5cbi8qKlxuICogTG9va3MgdXAgYSBncm91cCBrZXkgdmFsdWUgaW4gdGhlIGlucHV0LlxuICovXG5jb25zdCBsb29rdXBHcm91cEtleSA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBncm91cEtleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFpbnB1dFtncm91cEtleV0pIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEdyb3VwaW5nRXJyb3IoSU5WQUxJRF9HUk9VUF9LRVkoZ3JvdXBLZXkpKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dFtncm91cEtleV07XG59O1xuXG4vKipcbiAqIFJlZ3JvdXBzIGlucHV0cyBhbmQgb3V0cHV0cyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXAga2V5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlZ3JvdXAgPSAoXG4gIGlucHV0czogUGx1Z2luUGFyYW1zW10sXG4gIG91dHB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBncm91cHM6IHN0cmluZ1tdXG4pOiBhbnkgPT4ge1xuICBjb25zdCB2YWxpZGF0ZWRHcm91cHMgPSB2YWxpZGF0ZUdyb3Vwcyhncm91cHMpO1xuXG4gIGNvbnN0IGFwcGVuZFRvQWNjdW11bGF0b3IgPSAoXG4gICAgaXRlbXM6IFBsdWdpblBhcmFtc1tdLFxuICAgIGFjYzogYW55LFxuICAgIHRhcmdldDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgZ3JvdXBzV2l0aERhdGEgPSB2YWxpZGF0ZWRHcm91cHMubWFwKGdyb3VwS2V5ID0+XG4gICAgICAgIGxvb2t1cEdyb3VwS2V5KGl0ZW0sIGdyb3VwS2V5KVxuICAgICAgKTtcbiAgICAgIGFwcGVuZEdyb3VwKGl0ZW0sIGFjYywgdGFyZ2V0LCBncm91cHNXaXRoRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFjYyA9IHt9IGFzIGFueTtcbiAgYXBwZW5kVG9BY2N1bXVsYXRvcihpbnB1dHMsIGFjYywgJ2lucHV0cycpO1xuICBhcHBlbmRUb0FjY3VtdWxhdG9yKG91dHB1dHMsIGFjYywgJ291dHB1dHMnKTtcblxuICByZXR1cm4gYWNjLmNoaWxkcmVuO1xufTtcbiJdfQ==
@@ -1,16 +1,12 @@
1
- import { AggregationOptions, ParameterMetadata } from '@grnsft/if-core/types';
2
- import { PluginOptions } from '../../common/types/manifest';
1
+ import { ParameterMetadata } from '@grnsft/if-core/types';
3
2
  export type ExplainParams = {
4
3
  pluginName: string;
5
- pluginData: PluginOptions;
6
4
  metadata: {
7
5
  inputs?: ParameterMetadata;
8
6
  outputs?: ParameterMetadata;
9
7
  };
10
8
  };
11
9
  export type ExplainStorageType = Record<string, {
12
- plugins: string[];
13
- unit: string;
14
- description: string;
15
- 'aggregation-method': AggregationOptions;
10
+ inputs?: ParameterMetadata;
11
+ outputs?: ParameterMetadata;
16
12
  }>;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdHlwZXMvZXhwbGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZ2dyZWdhdGlvbk9wdGlvbnMsIFBhcmFtZXRlck1ldGFkYXRhfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1BsdWdpbk9wdGlvbnN9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5cbmV4cG9ydCB0eXBlIEV4cGxhaW5QYXJhbXMgPSB7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcGx1Z2luRGF0YTogUGx1Z2luT3B0aW9ucztcbiAgbWV0YWRhdGE6IHtpbnB1dHM/OiBQYXJhbWV0ZXJNZXRhZGF0YTsgb3V0cHV0cz86IFBhcmFtZXRlck1ldGFkYXRhfTtcbn07XG5cbmV4cG9ydCB0eXBlIEV4cGxhaW5TdG9yYWdlVHlwZSA9IFJlY29yZDxcbiAgc3RyaW5nLFxuICB7XG4gICAgcGx1Z2luczogc3RyaW5nW107XG4gICAgdW5pdDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6IEFnZ3JlZ2F0aW9uT3B0aW9ucztcbiAgfVxuPjtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdHlwZXMvZXhwbGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQYXJhbWV0ZXJNZXRhZGF0YX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgRXhwbGFpblBhcmFtcyA9IHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBtZXRhZGF0YToge2lucHV0cz86IFBhcmFtZXRlck1ldGFkYXRhOyBvdXRwdXRzPzogUGFyYW1ldGVyTWV0YWRhdGF9O1xufTtcblxuZXhwb3J0IHR5cGUgRXhwbGFpblN0b3JhZ2VUeXBlID0gUmVjb3JkPFxuICBzdHJpbmcsXG4gIHtcbiAgICBpbnB1dHM/OiBQYXJhbWV0ZXJNZXRhZGF0YTtcbiAgICBvdXRwdXRzPzogUGFyYW1ldGVyTWV0YWRhdGE7XG4gIH1cbj47XG4iXX0=
@@ -29,11 +29,11 @@ const aggregateOutputsIntoOne = (outputs, metrics, isTemporal) => {
29
29
  /** Checks either its a temporal aggregation (vertical), then chooses `component`, otherwise `time`. */
30
30
  const aggregationType = isTemporal ? 'component' : 'time';
31
31
  if (aggregationParams[aggregationType] === 'none') {
32
- return acc;
32
+ continue;
33
33
  }
34
34
  if (aggregationParams[aggregationType] === 'copy') {
35
35
  acc[metric] = output[metric];
36
- return acc;
36
+ continue;
37
37
  }
38
38
  acc[metric] = acc[metric] ?? 0;
39
39
  acc[metric] += parseFloat(output[metric]);
@@ -49,4 +49,4 @@ const aggregateOutputsIntoOne = (outputs, metrics, isTemporal) => {
49
49
  }, {});
50
50
  };
51
51
  exports.aggregateOutputsIntoOne = aggregateOutputsIntoOne;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLXJ1bi91dGlsL2FnZ3JlZ2F0aW9uLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBNkM7QUFHN0Msc0NBQTBDO0FBSTFDLGdEQUF1RDtBQUV2RCxNQUFNLEVBQUMsNEJBQTRCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDOUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFDakMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRTFDOzs7R0FHRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsT0FBdUIsRUFDdkIsT0FBaUIsRUFDakIsVUFBb0IsRUFDcEIsRUFBRTtJQUNGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUVqRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzNDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2RTtZQUVELGdGQUFnRjtZQUNoRixJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLGlCQUFpQixHQUFHLElBQUEsaUNBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELHdHQUF3RztnQkFDeEcsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFFMUQsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLEVBQUU7b0JBQ2pELE9BQU8sR0FBRyxDQUFDO2lCQUNaO2dCQUVELElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLEtBQUssTUFBTSxFQUFFO29CQUNqRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixPQUFPLEdBQUcsQ0FBQztpQkFDWjtnQkFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFFMUMscUNBQXFDO2dCQUNyQyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDaEMsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxLQUFLLEVBQUU7d0JBQ2hELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO3FCQUMvQjtpQkFDRjthQUNGO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUF1QixDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBOUNXLFFBQUEsdUJBQXVCLDJCQThDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge0NPTkZJRywgU1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtBZ2dyZWdhdGlvblJlc3VsdH0gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuXG5pbXBvcnQge2dldEFnZ3JlZ2F0aW9uSW5mb0Zvcn0gZnJvbSAnLi4vbGliL2FnZ3JlZ2F0ZSc7XG5cbmNvbnN0IHtNaXNzaW5nQWdncmVnYXRpb25QYXJhbUVycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtNRVRSSUNfTUlTU0lOR30gPSBTVFJJTkdTO1xuY29uc3Qge0FHR1JFR0FUSU9OX1RJTUVfTUVUUklDU30gPSBDT05GSUc7XG5cbi8qKlxuICogQWdncmVnYXRlcyBjaGlsZCBub2RlIGxldmVsIG1ldHJpY3MuIEFwcGVuZHMgYWdncmVnYXRpb24gYWRkaXRpb25hbCBwYXJhbXMgdG8gbWV0cmljcy5cbiAqIE90aGVyd2lzZSBpdGVyYXRlcyBvdmVyIG91dHB1dHMgYnkgYWdncmVnYXRpbmcgcGVyIGdpdmVuIGBtZXRyaWNzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFnZ3JlZ2F0ZU91dHB1dHNJbnRvT25lID0gKFxuICBvdXRwdXRzOiBQbHVnaW5QYXJhbXNbXSxcbiAgbWV0cmljczogc3RyaW5nW10sXG4gIGlzVGVtcG9yYWw/OiBib29sZWFuXG4pID0+IHtcbiAgY29uc3QgbWV0cmljc1dpdGhUaW1lID0gbWV0cmljcy5jb25jYXQoQUdHUkVHQVRJT05fVElNRV9NRVRSSUNTKTtcblxuICByZXR1cm4gb3V0cHV0cy5yZWR1Y2UoKGFjYywgb3V0cHV0LCBpbmRleCkgPT4ge1xuICAgIGZvciAoY29uc3QgbWV0cmljIG9mIG1ldHJpY3NXaXRoVGltZSkge1xuICAgICAgaWYgKCEobWV0cmljIGluIG91dHB1dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdBZ2dyZWdhdGlvblBhcmFtRXJyb3IoTUVUUklDX01JU1NJTkcobWV0cmljLCBpbmRleCkpO1xuICAgICAgfVxuXG4gICAgICAvKiogQ2hlY2tzIGlmIG1ldHJpYyBpcyB0aW1lc3RhbXAgb3IgZHVyYXRpb24sIHRoZW4gYWRkcyB0byBhZ2dyZWdhdGVkIHZhbHVlLiAqL1xuICAgICAgaWYgKEFHR1JFR0FUSU9OX1RJTUVfTUVUUklDUy5pbmNsdWRlcyhtZXRyaWMpKSB7XG4gICAgICAgIGlmIChpc1RlbXBvcmFsKSB7XG4gICAgICAgICAgYWNjW21ldHJpY10gPSBvdXRwdXRbbWV0cmljXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYWdncmVnYXRpb25QYXJhbXMgPSBnZXRBZ2dyZWdhdGlvbkluZm9Gb3IobWV0cmljKTtcbiAgICAgICAgLyoqIENoZWNrcyBlaXRoZXIgaXRzIGEgdGVtcG9yYWwgYWdncmVnYXRpb24gKHZlcnRpY2FsKSwgdGhlbiBjaG9vc2VzIGBjb21wb25lbnRgLCBvdGhlcndpc2UgYHRpbWVgLiAgKi9cbiAgICAgICAgY29uc3QgYWdncmVnYXRpb25UeXBlID0gaXNUZW1wb3JhbCA/ICdjb21wb25lbnQnIDogJ3RpbWUnO1xuXG4gICAgICAgIGlmIChhZ2dyZWdhdGlvblBhcmFtc1thZ2dyZWdhdGlvblR5cGVdID09PSAnbm9uZScpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFnZ3JlZ2F0aW9uUGFyYW1zW2FnZ3JlZ2F0aW9uVHlwZV0gPT09ICdjb3B5Jykge1xuICAgICAgICAgIGFjY1ttZXRyaWNdID0gb3V0cHV0W21ldHJpY107XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIGFjY1ttZXRyaWNdID0gYWNjW21ldHJpY10gPz8gMDtcbiAgICAgICAgYWNjW21ldHJpY10gKz0gcGFyc2VGbG9hdChvdXRwdXRbbWV0cmljXSk7XG5cbiAgICAgICAgLyoqIENoZWNrcyBmb3IgdGhlIGxhc3QgaXRlcmF0aW9uLiAqL1xuICAgICAgICBpZiAoaW5kZXggPT09IG91dHB1dHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGlmIChhZ2dyZWdhdGlvblBhcmFtc1thZ2dyZWdhdGlvblR5cGVdID09PSAnYXZnJykge1xuICAgICAgICAgICAgYWNjW21ldHJpY10gLz0gb3V0cHV0cy5sZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xufTtcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLXJ1bi91dGlsL2FnZ3JlZ2F0aW9uLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBNkM7QUFHN0Msc0NBQTBDO0FBSTFDLGdEQUF1RDtBQUV2RCxNQUFNLEVBQUMsNEJBQTRCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDOUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFDakMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRTFDOzs7R0FHRztBQUNJLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsT0FBdUIsRUFDdkIsT0FBaUIsRUFDakIsVUFBb0IsRUFDcEIsRUFBRTtJQUNGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUVqRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzNDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2RTtZQUVELGdGQUFnRjtZQUNoRixJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLGlCQUFpQixHQUFHLElBQUEsaUNBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELHdHQUF3RztnQkFDeEcsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFFMUQsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLEVBQUU7b0JBQ2pELFNBQVM7aUJBQ1Y7Z0JBRUQsSUFBSSxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLEVBQUU7b0JBQ2pELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdCLFNBQVM7aUJBQ1Y7Z0JBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBRTFDLHFDQUFxQztnQkFDckMsSUFBSSxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2hDLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxFQUFFO3dCQUNoRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztxQkFDL0I7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBdUIsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQTlDVyxRQUFBLHVCQUF1QiwyQkE4Q2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1BsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtDT05GSUcsIFNUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7QWdncmVnYXRpb25SZXN1bHR9IGZyb20gJy4uL3R5cGVzL2FnZ3JlZ2F0aW9uJztcblxuaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkluZm9Gb3J9IGZyb20gJy4uL2xpYi9hZ2dyZWdhdGUnO1xuXG5jb25zdCB7TWlzc2luZ0FnZ3JlZ2F0aW9uUGFyYW1FcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7TUVUUklDX01JU1NJTkd9ID0gU1RSSU5HUztcbmNvbnN0IHtBR0dSRUdBVElPTl9USU1FX01FVFJJQ1N9ID0gQ09ORklHO1xuXG4vKipcbiAqIEFnZ3JlZ2F0ZXMgY2hpbGQgbm9kZSBsZXZlbCBtZXRyaWNzLiBBcHBlbmRzIGFnZ3JlZ2F0aW9uIGFkZGl0aW9uYWwgcGFyYW1zIHRvIG1ldHJpY3MuXG4gKiBPdGhlcndpc2UgaXRlcmF0ZXMgb3ZlciBvdXRwdXRzIGJ5IGFnZ3JlZ2F0aW5nIHBlciBnaXZlbiBgbWV0cmljc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBhZ2dyZWdhdGVPdXRwdXRzSW50b09uZSA9IChcbiAgb3V0cHV0czogUGx1Z2luUGFyYW1zW10sXG4gIG1ldHJpY3M6IHN0cmluZ1tdLFxuICBpc1RlbXBvcmFsPzogYm9vbGVhblxuKSA9PiB7XG4gIGNvbnN0IG1ldHJpY3NXaXRoVGltZSA9IG1ldHJpY3MuY29uY2F0KEFHR1JFR0FUSU9OX1RJTUVfTUVUUklDUyk7XG5cbiAgcmV0dXJuIG91dHB1dHMucmVkdWNlKChhY2MsIG91dHB1dCwgaW5kZXgpID0+IHtcbiAgICBmb3IgKGNvbnN0IG1ldHJpYyBvZiBtZXRyaWNzV2l0aFRpbWUpIHtcbiAgICAgIGlmICghKG1ldHJpYyBpbiBvdXRwdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBNaXNzaW5nQWdncmVnYXRpb25QYXJhbUVycm9yKE1FVFJJQ19NSVNTSU5HKG1ldHJpYywgaW5kZXgpKTtcbiAgICAgIH1cblxuICAgICAgLyoqIENoZWNrcyBpZiBtZXRyaWMgaXMgdGltZXN0YW1wIG9yIGR1cmF0aW9uLCB0aGVuIGFkZHMgdG8gYWdncmVnYXRlZCB2YWx1ZS4gKi9cbiAgICAgIGlmIChBR0dSRUdBVElPTl9USU1FX01FVFJJQ1MuaW5jbHVkZXMobWV0cmljKSkge1xuICAgICAgICBpZiAoaXNUZW1wb3JhbCkge1xuICAgICAgICAgIGFjY1ttZXRyaWNdID0gb3V0cHV0W21ldHJpY107XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uUGFyYW1zID0gZ2V0QWdncmVnYXRpb25JbmZvRm9yKG1ldHJpYyk7XG4gICAgICAgIC8qKiBDaGVja3MgZWl0aGVyIGl0cyBhIHRlbXBvcmFsIGFnZ3JlZ2F0aW9uICh2ZXJ0aWNhbCksIHRoZW4gY2hvb3NlcyBgY29tcG9uZW50YCwgb3RoZXJ3aXNlIGB0aW1lYC4gICovXG4gICAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uVHlwZSA9IGlzVGVtcG9yYWwgPyAnY29tcG9uZW50JyA6ICd0aW1lJztcblxuICAgICAgICBpZiAoYWdncmVnYXRpb25QYXJhbXNbYWdncmVnYXRpb25UeXBlXSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWdncmVnYXRpb25QYXJhbXNbYWdncmVnYXRpb25UeXBlXSA9PT0gJ2NvcHknKSB7XG4gICAgICAgICAgYWNjW21ldHJpY10gPSBvdXRwdXRbbWV0cmljXTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFjY1ttZXRyaWNdID0gYWNjW21ldHJpY10gPz8gMDtcbiAgICAgICAgYWNjW21ldHJpY10gKz0gcGFyc2VGbG9hdChvdXRwdXRbbWV0cmljXSk7XG5cbiAgICAgICAgLyoqIENoZWNrcyBmb3IgdGhlIGxhc3QgaXRlcmF0aW9uLiAqL1xuICAgICAgICBpZiAoaW5kZXggPT09IG91dHB1dHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIGlmIChhZ2dyZWdhdGlvblBhcmFtc1thZ2dyZWdhdGlvblR5cGVdID09PSAnYXZnJykge1xuICAgICAgICAgICAgYWNjW21ldHJpY10gLz0gb3V0cHV0cy5sZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xufTtcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ name: interpolation-demo
2
+ description: simple demo of interpolation plugin
3
+ tags:
4
+ initialize:
5
+ plugins:
6
+ interpolation:
7
+ method: Interpolation
8
+ path: "builtin"
9
+ config:
10
+ method: linear
11
+ x: [0, 10, 50, 100]
12
+ y: [0.12, 0.32, 0.75, 1.02]
13
+ input-parameter: "cpu/utilization"
14
+ output-parameter: "result"
15
+ tree:
16
+ children:
17
+ child:
18
+ pipeline:
19
+ compute:
20
+ - interpolation
21
+ inputs:
22
+ - timestamp: 2023-07-06T00:00
23
+ duration: 3600
24
+ cpu/utilization: off
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grnsft/if",
3
3
  "description": "Impact Framework",
4
- "version": "0.7.1",
4
+ "version": "0.7.2",
5
5
  "author": {
6
6
  "name": "Green Software Foundation",
7
7
  "email": "info@gsf.com"
@@ -20,7 +20,7 @@
20
20
  "dependencies": {
21
21
  "@commitlint/cli": "^18.6.0",
22
22
  "@commitlint/config-conventional": "^18.6.0",
23
- "@grnsft/if-core": "^0.0.25",
23
+ "@grnsft/if-core": "^0.0.28",
24
24
  "axios": "^1.7.2",
25
25
  "csv-parse": "^5.5.6",
26
26
  "csv-stringify": "^6.4.6",
@@ -62,7 +62,7 @@ The plugin expects the following input parameters:
62
62
 
63
63
  - `timestamp`: a timestamp for the input (required)
64
64
  - `duration`: the amount of time, in seconds, that the input covers. (required)
65
- - `[input-parameter]` - a field whose name matches the string provided to input-parameter in config (i.e. if the input-parameter in config is cpu/utilisation then cpu-utilisation must exist in the input data)
65
+ - `[input-parameter]` - a field whose name matches the string provided to input-parameter in config (i.e. if the input-parameter in config is cpu/utilisation then cpu-utilisation must exist in the input data). Value can be greater or equal to 0. For modeling server which totally turned off, `off` value can be used.
66
66
 
67
67
  ## Output
68
68
 
package/.env DELETED
@@ -1,5 +0,0 @@
1
- # WATT_TIME_USERNAME=manushak
2
- # WATT_TIME_PASSWORD=S7Ub&_tNF=s{
3
-
4
- WATT_TIME_USERNAME=m_test
5
- WATT_TIME_PASSWORD=@watt-time17