@grnsft/if 0.7.1 → 1.0.0-beta.0
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.
- package/CONTRIBUTING.md +19 -6
- package/ENABLEMENT.md +115 -0
- package/README.md +0 -6
- package/SECURITY.md +100 -0
- package/adopters.md +9 -0
- package/build/common/config/strings.d.ts +2 -0
- package/build/common/config/strings.js +5 -3
- package/build/common/util/logger.js +3 -3
- package/build/common/util/yaml.js +19 -7
- package/build/if-check/util/npm.js +55 -9
- package/build/if-run/builtins/divide/index.js +2 -4
- package/build/if-run/builtins/exponent/index.js +3 -5
- package/build/if-run/builtins/interpolation/index.js +18 -10
- package/build/if-run/builtins/shell/index.js +2 -2
- package/build/if-run/lib/compute.js +8 -10
- package/build/if-run/lib/explain.js +69 -44
- package/build/if-run/lib/initialize.js +2 -2
- package/build/if-run/lib/regroup.d.ts +1 -1
- package/build/if-run/lib/regroup.js +41 -49
- package/build/if-run/types/explain.d.ts +3 -7
- package/build/if-run/types/explain.js +1 -1
- package/build/if-run/util/aggregation-helper.js +3 -3
- package/manifests/examples/builtins/interpolation/success-with-off.yml +24 -0
- package/manifests/outputs/bugs/package.json +24 -0
- package/manifests/outputs/builtins/coefficient/package.json +24 -0
- package/manifests/outputs/builtins/csv-lookup/cloud-metadata/package.json +24 -0
- package/manifests/outputs/builtins/csv-lookup/region-metadata/package.json +24 -0
- package/manifests/outputs/builtins/csv-lookup/tdp-finder/package.json +24 -0
- package/manifests/outputs/builtins/divide/package.json +24 -0
- package/manifests/outputs/builtins/exponent/package.json +24 -0
- package/manifests/outputs/builtins/interpolation/package.json +24 -0
- package/manifests/outputs/builtins/mock-observations/package.json +24 -0
- package/manifests/outputs/builtins/multiply/package.json +24 -0
- package/manifests/outputs/builtins/regex/package.json +24 -0
- package/manifests/outputs/builtins/sci/package.json +24 -0
- package/manifests/outputs/builtins/sci-embodied/package.json +24 -0
- package/manifests/outputs/builtins/shell/package.json +24 -0
- package/manifests/outputs/builtins/subtract/package.json +24 -0
- package/manifests/outputs/builtins/sum/package.json +24 -0
- package/manifests/outputs/builtins/time-converter/package.json +24 -0
- package/manifests/outputs/builtins/time-sync/package.json +24 -0
- package/manifests/outputs/features/package.json +24 -0
- package/manifests/outputs/features/regroup/package.json +24 -0
- package/manifests/outputs/pipelines/package.json +24 -0
- package/okrs.md +14 -0
- package/package.json +2 -2
- package/src/if-run/builtins/interpolation/README.md +1 -1
- package/.env +0 -5
- package/coverage/clover.xml +0 -2045
- package/coverage/coverage-final.json +0 -55
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/builtins/coefficient/index.ts.html +0 -298
- package/coverage/lcov-report/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +0 -826
- package/coverage/lcov-report/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/builtins/divide/index.ts.html +0 -358
- package/coverage/lcov-report/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/builtins/exponent/index.ts.html +0 -361
- package/coverage/lcov-report/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/builtins/index.html +0 -206
- package/coverage/lcov-report/builtins/index.ts.html +0 -130
- package/coverage/lcov-report/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/builtins/interpolation/index.ts.html +0 -676
- package/coverage/lcov-report/builtins/interpolation/types.ts.html +0 -100
- package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/builtins/mock-observations/index.ts.html +0 -619
- package/coverage/lcov-report/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/builtins/multiply/index.ts.html +0 -343
- package/coverage/lcov-report/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/builtins/regex/index.ts.html +0 -373
- package/coverage/lcov-report/builtins/sci/config.ts.html +0 -205
- package/coverage/lcov-report/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/builtins/sci/index.ts.html +0 -325
- package/coverage/lcov-report/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +0 -478
- package/coverage/lcov-report/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/builtins/shell/index.ts.html +0 -280
- package/coverage/lcov-report/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/builtins/subtract/index.ts.html +0 -379
- package/coverage/lcov-report/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/builtins/sum/index.ts.html +0 -334
- package/coverage/lcov-report/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/common/config/index.html +0 -131
- package/coverage/lcov-report/common/config/index.ts.html +0 -88
- package/coverage/lcov-report/common/config/strings.ts.html +0 -121
- package/coverage/lcov-report/common/lib/index.html +0 -116
- package/coverage/lcov-report/common/lib/load.ts.html +0 -139
- package/coverage/lcov-report/common/util/debug-logger.ts.html +0 -511
- package/coverage/lcov-report/common/util/fs.ts.html +0 -289
- package/coverage/lcov-report/common/util/helpers.ts.html +0 -280
- package/coverage/lcov-report/common/util/index.html +0 -191
- package/coverage/lcov-report/common/util/logger.ts.html +0 -151
- package/coverage/lcov-report/common/util/validations.ts.html +0 -613
- package/coverage/lcov-report/common/util/yaml.ts.html +0 -193
- package/coverage/lcov-report/config/config.ts.html +0 -463
- package/coverage/lcov-report/config/index.html +0 -161
- package/coverage/lcov-report/config/index.ts.html +0 -94
- package/coverage/lcov-report/config/params.ts.html +0 -697
- package/coverage/lcov-report/config/strings.ts.html +0 -490
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/if-check/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-check/config/index.html +0 -146
- package/coverage/lcov-report/if-check/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-check/config/strings.ts.html +0 -142
- package/coverage/lcov-report/if-check/util/args.ts.html +0 -304
- package/coverage/lcov-report/if-check/util/helpers.ts.html +0 -136
- package/coverage/lcov-report/if-check/util/index.html +0 -146
- package/coverage/lcov-report/if-check/util/npm.ts.html +0 -232
- package/coverage/lcov-report/if-csv/util/helpers.ts.html +0 -346
- package/coverage/lcov-report/if-csv/util/index.html +0 -116
- package/coverage/lcov-report/if-diff/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-diff/config/index.html +0 -146
- package/coverage/lcov-report/if-diff/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-diff/config/strings.ts.html +0 -100
- package/coverage/lcov-report/if-diff/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/if-diff/lib/index.html +0 -131
- package/coverage/lcov-report/if-diff/lib/load.ts.html +0 -199
- package/coverage/lcov-report/if-diff/util/args.ts.html +0 -268
- package/coverage/lcov-report/if-diff/util/helpers.ts.html +0 -337
- package/coverage/lcov-report/if-diff/util/index.html +0 -131
- package/coverage/lcov-report/if-env/config/config.ts.html +0 -211
- package/coverage/lcov-report/if-env/config/index.html +0 -146
- package/coverage/lcov-report/if-env/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-env/config/strings.ts.html +0 -109
- package/coverage/lcov-report/if-env/util/args.ts.html +0 -250
- package/coverage/lcov-report/if-env/util/index.html +0 -131
- package/coverage/lcov-report/if-env/util/npm.ts.html +0 -526
- package/coverage/lcov-report/if-merge/util/args.ts.html +0 -295
- package/coverage/lcov-report/if-merge/util/helpers.ts.html +0 -301
- package/coverage/lcov-report/if-merge/util/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +0 -382
- package/coverage/lcov-report/if-run/builtins/copy-param/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +0 -415
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +0 -868
- package/coverage/lcov-report/if-run/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +0 -469
- package/coverage/lcov-report/if-run/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +0 -394
- package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/if-run/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/if-run/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/if-run/builtins/index.html +0 -146
- package/coverage/lcov-report/if-run/builtins/index.ts.html +0 -133
- package/coverage/lcov-report/if-run/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +0 -709
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +0 -709
- package/coverage/lcov-report/if-run/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +0 -406
- package/coverage/lcov-report/if-run/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +0 -433
- package/coverage/lcov-report/if-run/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +0 -502
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +0 -577
- package/coverage/lcov-report/if-run/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +0 -343
- package/coverage/lcov-report/if-run/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +0 -418
- package/coverage/lcov-report/if-run/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +0 -400
- package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +0 -205
- package/coverage/lcov-report/if-run/builtins/time-converter/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +0 -412
- package/coverage/lcov-report/if-run/builtins/time-sync/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +0 -1651
- package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/if-run/config/config.ts.html +0 -271
- package/coverage/lcov-report/if-run/config/index.html +0 -161
- package/coverage/lcov-report/if-run/config/index.ts.html +0 -94
- package/coverage/lcov-report/if-run/config/params.ts.html +0 -679
- package/coverage/lcov-report/if-run/config/strings.ts.html +0 -460
- package/coverage/lcov-report/if-run/lib/aggregate.ts.html +0 -580
- package/coverage/lcov-report/if-run/lib/compute.ts.html +0 -709
- package/coverage/lcov-report/if-run/lib/environment.ts.html +0 -373
- package/coverage/lcov-report/if-run/lib/exhaust.ts.html +0 -193
- package/coverage/lcov-report/if-run/lib/explain.ts.html +0 -217
- package/coverage/lcov-report/if-run/lib/index.html +0 -206
- package/coverage/lcov-report/if-run/lib/initialize.ts.html +0 -475
- package/coverage/lcov-report/if-run/lib/parameterize.ts.html +0 -322
- package/coverage/lcov-report/if-run/lib/regroup.ts.html +0 -325
- package/coverage/lcov-report/if-run/lib/time-sync.ts.html +0 -1510
- package/coverage/lcov-report/if-run/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/if-run/types/index.html +0 -146
- package/coverage/lcov-report/if-run/types/interface.ts.html +0 -112
- package/coverage/lcov-report/if-run/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +0 -280
- package/coverage/lcov-report/if-run/util/args.ts.html +0 -313
- package/coverage/lcov-report/if-run/util/helpers.ts.html +0 -304
- package/coverage/lcov-report/if-run/util/index.html +0 -191
- package/coverage/lcov-report/if-run/util/json.ts.html +0 -115
- package/coverage/lcov-report/if-run/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/if-run/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/index.html +0 -521
- package/coverage/lcov-report/lib/aggregate.ts.html +0 -358
- package/coverage/lcov-report/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/lib/compute.ts.html +0 -436
- package/coverage/lcov-report/lib/environment.ts.html +0 -376
- package/coverage/lcov-report/lib/exhaust.ts.html +0 -289
- package/coverage/lcov-report/lib/index.html +0 -221
- package/coverage/lcov-report/lib/initialize.ts.html +0 -430
- package/coverage/lcov-report/lib/load.ts.html +0 -268
- package/coverage/lcov-report/lib/parameterize.ts.html +0 -316
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/types/index.html +0 -146
- package/coverage/lcov-report/types/interface.ts.html +0 -112
- package/coverage/lcov-report/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/util/aggregation-helper.ts.html +0 -289
- package/coverage/lcov-report/util/args.ts.html +0 -649
- package/coverage/lcov-report/util/debug-logger.ts.html +0 -481
- package/coverage/lcov-report/util/errors.ts.html +0 -232
- package/coverage/lcov-report/util/fs.ts.html +0 -124
- package/coverage/lcov-report/util/helpers.ts.html +0 -895
- package/coverage/lcov-report/util/index.html +0 -296
- package/coverage/lcov-report/util/json.ts.html +0 -115
- package/coverage/lcov-report/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/util/logger.ts.html +0 -151
- package/coverage/lcov-report/util/npm.ts.html +0 -499
- package/coverage/lcov-report/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/util/validations.ts.html +0 -544
- package/coverage/lcov-report/util/yaml.ts.html +0 -193
- package/coverage/lcov.info +0 -3392
- 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
|
-
*
|
|
11
|
+
* Creates structure to insert inputs by groups.
|
|
12
12
|
*/
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFFdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUN0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFjLEVBQ2QsTUFBZ0IsRUFDWCxFQUFFO0lBQ1AsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFHLENBQUM7SUFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXRELE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBZ0IsRUFBWSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FDL0IsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUNWLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0lBRUYsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFtQixFQUFFLFFBQWdCLEVBQVUsRUFBRTtJQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLE9BQU8sR0FBRyxDQUNyQixNQUFzQixFQUN0QixPQUF1QixFQUN2QixNQUFnQixFQUNYLEVBQUU7SUFDUCxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFxQixFQUNyQixHQUFRLEVBQ1IsTUFBYyxFQUNkLEVBQUU7UUFDRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3BELGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQy9CLENBQUM7WUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUN0QixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SW52YWxpZEdyb3VwaW5nRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0lOVkFMSURfR1JPVVBfS0VZLCBSRUdST1VQX0VSUk9SfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ3JlYXRlcyBzdHJ1Y3R1cmUgdG8gaW5zZXJ0IGlucHV0cyBieSBncm91cHMuXG4gKi9cbmNvbnN0IGFwcGVuZEdyb3VwID0gKFxuICB2YWx1ZTogUGx1Z2luUGFyYW1zLFxuICBvYmplY3Q6IGFueSxcbiAgdGFyZ2V0OiBzdHJpbmcsXG4gIGdyb3Vwczogc3RyaW5nW11cbik6IGFueSA9PiB7XG4gIGlmIChncm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgb2JqZWN0W3RhcmdldF0gPSBvYmplY3RbdGFyZ2V0XSB8fCBbXTtcbiAgICBvYmplY3RbdGFyZ2V0XS5wdXNoKHZhbHVlKTtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgY29uc3QgZ3JvdXAgPSBncm91cHMuc2hpZnQoKSE7XG4gIG9iamVjdC5jaGlsZHJlbiA9IG9iamVjdC5jaGlsZHJlbiB8fCB7fTtcbiAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSA9IG9iamVjdC5jaGlsZHJlbltncm91cF0gfHwge307XG5cbiAgcmV0dXJuIGFwcGVuZEdyb3VwKHZhbHVlLCBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLCB0YXJnZXQsIGdyb3Vwcyk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgZ3JvdXBzIGFycmF5LlxuICovXG5jb25zdCB2YWxpZGF0ZUdyb3VwcyA9IChncm91cHM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBpbnB1dERhdGEgPSB7cmVncm91cDogZ3JvdXBzfTtcbiAgY29uc3QgdmFsaWRhdGlvblNjaGVtYSA9IHoucmVjb3JkKFxuICAgIHouc3RyaW5nKCksXG4gICAgei5hcnJheSh6LnN0cmluZygpLCB7bWVzc2FnZTogUkVHUk9VUF9FUlJPUn0pLm1pbigxKVxuICApO1xuXG4gIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn07XG5cbi8qKlxuICogTG9va3MgdXAgYSBncm91cCBrZXkgdmFsdWUgaW4gdGhlIGlucHV0LlxuICovXG5jb25zdCBsb29rdXBHcm91cEtleSA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBncm91cEtleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFpbnB1dFtncm91cEtleV0pIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEdyb3VwaW5nRXJyb3IoSU5WQUxJRF9HUk9VUF9LRVkoZ3JvdXBLZXkpKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dFtncm91cEtleV07XG59O1xuXG4vKipcbiAqIFJlZ3JvdXBzIGlucHV0cyBhbmQgb3V0cHV0cyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXAga2V5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlZ3JvdXAgPSAoXG4gIGlucHV0czogUGx1Z2luUGFyYW1zW10sXG4gIG91dHB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBncm91cHM6IHN0cmluZ1tdXG4pOiBhbnkgPT4ge1xuICBjb25zdCB2YWxpZGF0ZWRHcm91cHMgPSB2YWxpZGF0ZUdyb3Vwcyhncm91cHMpO1xuXG4gIGNvbnN0IGFwcGVuZFRvQWNjdW11bGF0b3IgPSAoXG4gICAgaXRlbXM6IFBsdWdpblBhcmFtc1tdLFxuICAgIGFjYzogYW55LFxuICAgIHRhcmdldDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgZ3JvdXBzV2l0aERhdGEgPSB2YWxpZGF0ZWRHcm91cHMubWFwKGdyb3VwS2V5ID0+XG4gICAgICAgIGxvb2t1cEdyb3VwS2V5KGl0ZW0sIGdyb3VwS2V5KVxuICAgICAgKTtcbiAgICAgIGFwcGVuZEdyb3VwKGl0ZW0sIGFjYywgdGFyZ2V0LCBncm91cHNXaXRoRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFjYyA9IHt9IGFzIGFueTtcbiAgYXBwZW5kVG9BY2N1bXVsYXRvcihpbnB1dHMsIGFjYywgJ2lucHV0cycpO1xuICBhcHBlbmRUb0FjY3VtdWxhdG9yKG91dHB1dHMsIGFjYywgJ291dHB1dHMnKTtcblxuICByZXR1cm4gYWNjLmNoaWxkcmVuO1xufTtcbiJdfQ==
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
13
|
-
|
|
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,
|
|
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
|
-
|
|
32
|
+
continue;
|
|
33
33
|
}
|
|
34
34
|
if (aggregationParams[aggregationType] === 'copy') {
|
|
35
35
|
acc[metric] = output[metric];
|
|
36
|
-
|
|
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,
|
|
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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@grnsft/if",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"keywords": [],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "Green Software Foundation",
|
|
11
|
+
"email": "info@gsf.com"
|
|
12
|
+
},
|
|
13
|
+
"license": "ISC",
|
|
14
|
+
"description": "Impact Framework",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18",
|
|
20
|
+
"npm": ">=8"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://greensoftware.foundation",
|
|
23
|
+
"dependencies": {}
|
|
24
|
+
}
|