@grnsft/if 0.1.8 → 0.1.9

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 (104) hide show
  1. package/build/config/config.d.ts +0 -2
  2. package/build/config/config.js +6 -3
  3. package/build/config/index.d.ts +1 -0
  4. package/build/config/index.js +4 -2
  5. package/build/config/params.d.ts +2 -0
  6. package/build/config/params.js +146 -0
  7. package/build/config/strings.d.ts +5 -0
  8. package/build/config/strings.js +6 -1
  9. package/build/index.js +48 -18
  10. package/build/lib/aggregator.d.ts +7 -0
  11. package/build/lib/aggregator.js +46 -0
  12. package/build/lib/models-universe.d.ts +5 -1
  13. package/build/lib/models-universe.js +37 -5
  14. package/build/lib/supercomputer.d.ts +14 -12
  15. package/build/lib/supercomputer.js +55 -87
  16. package/build/models/time-sync.d.ts +8 -5
  17. package/build/models/time-sync.js +35 -12
  18. package/build/types/aggregator.d.ts +3 -0
  19. package/build/types/aggregator.js +5 -0
  20. package/build/types/impl.d.ts +65 -18
  21. package/build/types/impl.js +17 -3
  22. package/build/types/model-interface.d.ts +1 -2
  23. package/build/types/model-interface.js +1 -1
  24. package/build/types/models-universe.d.ts +2 -5
  25. package/build/types/models-universe.js +1 -1
  26. package/build/types/parameters.d.ts +16 -0
  27. package/build/types/parameters.js +5 -0
  28. package/build/types/process-args.d.ts +1 -0
  29. package/build/types/process-args.js +1 -1
  30. package/build/types/time-sync.d.ts +1 -0
  31. package/build/types/time-sync.js +1 -1
  32. package/build/util/args.d.ts +1 -0
  33. package/build/util/args.js +27 -3
  34. package/build/util/param-selectors.d.ts +5 -0
  35. package/build/util/param-selectors.js +14 -0
  36. package/build/util/validations.d.ts +11 -5
  37. package/build/util/validations.js +17 -25
  38. package/build/util/yaml.js +27 -4
  39. package/examples/impls/test/aggregation-test.yml +19 -19
  40. package/examples/impls/test/aggregation-test2.yml +52 -0
  41. package/examples/impls/test/{azure.yml → azure-importer.yml} +8 -10
  42. package/examples/impls/test/boavizta.yml +27 -0
  43. package/examples/impls/test/cim.yml +19 -0
  44. package/examples/impls/test/e-mem.yml +19 -0
  45. package/examples/impls/test/if-demo.yml +0 -2
  46. package/examples/impls/test/large-impl.yml +30031 -30031
  47. package/examples/impls/test/new-params-test.yml +35 -0
  48. package/examples/impls/test/sci.yml +2 -2
  49. package/examples/impls/test/teads-cpu.yml +18 -0
  50. package/examples/impls/test/time-sync-avoid-padding.yml +50 -0
  51. package/examples/impls/test/time-sync.yml +14 -13
  52. package/examples/ompls/aggregation-test2.yml +83 -0
  53. package/examples/ompls/{azure.yml → azure-importer.yml} +40 -40
  54. package/examples/ompls/boavizta.yml +32 -0
  55. package/examples/ompls/cim.yml +29 -0
  56. package/examples/ompls/e-mem.yml +26 -0
  57. package/examples/ompls/sci.yml +5 -5
  58. package/examples/ompls/teads-cpu.yml +24 -0
  59. package/package.json +1 -1
  60. package/src/models/README.md +3 -1
  61. package/build/config/units.yaml +0 -112
  62. package/build/lib/planet-aggregator.d.ts +0 -6
  63. package/build/lib/planet-aggregator.js +0 -35
  64. package/build/types/helpers.d.ts +0 -1
  65. package/build/types/helpers.js +0 -3
  66. package/build/types/planet-aggregator.d.ts +0 -6
  67. package/build/types/planet-aggregator.js +0 -3
  68. package/build/types/units-dealer.d.ts +0 -3
  69. package/build/types/units-dealer.js +0 -3
  70. package/build/types/units.d.ts +0 -11
  71. package/build/types/units.js +0 -37
  72. package/build/util/units-dealer.d.ts +0 -10
  73. package/build/util/units-dealer.js +0 -32
  74. package/coverage/clover.xml +0 -379
  75. package/coverage/coverage-final.json +0 -14
  76. package/coverage/lcov-report/base.css +0 -224
  77. package/coverage/lcov-report/block-navigation.js +0 -87
  78. package/coverage/lcov-report/config/config.ts.html +0 -250
  79. package/coverage/lcov-report/config/index.html +0 -146
  80. package/coverage/lcov-report/config/index.ts.html +0 -91
  81. package/coverage/lcov-report/config/strings.ts.html +0 -208
  82. package/coverage/lcov-report/favicon.png +0 -0
  83. package/coverage/lcov-report/index.html +0 -161
  84. package/coverage/lcov-report/lib/index.html +0 -161
  85. package/coverage/lcov-report/lib/models-universe.ts.html +0 -517
  86. package/coverage/lcov-report/lib/observatory.ts.html +0 -187
  87. package/coverage/lcov-report/lib/planet-aggregator.ts.html +0 -274
  88. package/coverage/lcov-report/lib/supercomputer.ts.html +0 -472
  89. package/coverage/lcov-report/models/index.html +0 -131
  90. package/coverage/lcov-report/models/index.ts.html +0 -88
  91. package/coverage/lcov-report/models/planet-aggregator.ts.html +0 -271
  92. package/coverage/lcov-report/models/time-sync.ts.html +0 -1165
  93. package/coverage/lcov-report/prettify.css +0 -1
  94. package/coverage/lcov-report/prettify.js +0 -2
  95. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  96. package/coverage/lcov-report/sorter.js +0 -196
  97. package/coverage/lcov-report/util/args.ts.html +0 -289
  98. package/coverage/lcov-report/util/errors.ts.html +0 -166
  99. package/coverage/lcov-report/util/index.html +0 -161
  100. package/coverage/lcov-report/util/units-dealer.ts.html +0 -199
  101. package/coverage/lcov-report/util/yaml.ts.html +0 -193
  102. package/coverage/lcov.info +0 -637
  103. package/src/config/units.yaml +0 -112
  104. package/tsconfig.build.tsbuildinfo +0 -1
@@ -1,112 +0,0 @@
1
- carbon:
2
- description: an amount of carbon emitted into the atmosphere
3
- unit: gCO2e
4
- aggregation: sum
5
- core-units:
6
- description: number of cores available
7
- unit: cores
8
- aggregation: none
9
- cpu-util:
10
- description: refers to CPU utilization.
11
- unit: percentage
12
- aggregation: avg
13
- disk-io:
14
- description: refers to GB of data written/read from disk
15
- unit: GB
16
- aggregation: sum
17
- duration:
18
- description: refers to the duration of the input
19
- unit: seconds
20
- aggregation: sum
21
- energy:
22
- description: amount of energy utilised by the component
23
- unit: kWh
24
- aggregation: sum
25
- energy-cpu:
26
- description: Energy consumed by the CPU of the component
27
- unit: kWh
28
- aggregation: sum
29
- expected-lifespan:
30
- description: Total Expected Lifespan of the Component in Seconds
31
- unit: seconds
32
- aggregation: sum
33
- energy-memory:
34
- description: Energy consumed by the Memory of the component
35
- unit: kWh
36
- aggregation: sum
37
- embodied-carbon:
38
- description: Embodied Emissions of the component
39
- unit: gCO2e
40
- aggregation: sum
41
- energy-network:
42
- description: Energy consumed by the Network of the component
43
- unit: kWh
44
- aggregation: sum
45
- functional-unit:
46
- description: the name of the functional unit in which the final SCI value should be expressed, e.g. requests, users
47
- unit: none
48
- aggregation: sum
49
- functional-unit-time:
50
- description: string describing the unit of time in which the final SCI calculation should be expressed, e.g. "1-min"
51
- unit: none
52
- aggregation: none
53
- gpu-util:
54
- description: refers to CPU utilization.
55
- unit: percentage
56
- aggregation: avg
57
- grid-carbon-intensity:
58
- description: Carbon intensity for the grid
59
- unit: gCO2eq/kWh
60
- aggregation: avg
61
- instance-type:
62
- description: Type of Cloud Instance name used in the cloud provider APIs
63
- unit: None
64
- aggregation: None
65
- location:
66
- description: Geographic location of provider as string (for watt-time model it is provided as latitude and longitude, comma separated, in decimal degrees)
67
- unit: None (decimal degrees for watt-time model)
68
- aggregation: None
69
- operational-carbon:
70
- description: Operational Emissions of the component
71
- unit: gCO2e
72
- aggregation: sum
73
- physical-processor:
74
- description: Name of the physical processor
75
- unit: None
76
- aggregation: none
77
- vendor:
78
- description: Name of the cloud service provider in the ccf model. Can be aws, gcp or azure
79
- unit: None
80
- aggregation: none
81
- ram-alloc:
82
- description: refers to GB of memory allocated.
83
- unit: GB
84
- aggregation: avg
85
- ram-util:
86
- description: refers to percentage of memory utilized.
87
- unit: percentage
88
- aggregation: avg
89
- resources-reserved:
90
- description: resources reserved for an application
91
- unit: count
92
- aggregation: none
93
- thermal-design-power:
94
- description: thermal design power for a processor
95
- unit: kwh
96
- aggregation: avg
97
- total-embodied-emissions:
98
- description: total embodied emissions of some component
99
- unit: gCO2e
100
- aggregation: sum
101
- timestamp:
102
- description: refers to the time of occurrence of the input
103
- unit: RFC3339
104
- aggregation: none
105
- time-reserved:
106
- description: time reserved for a component
107
- unit: seconds
108
- aggregation: none
109
- total-resources:
110
- description: total resources available
111
- unit: count
112
- aggregation: none
@@ -1,6 +0,0 @@
1
- import { AggregationResult, PlanetAggregatorParams } from '../types/planet-aggregator';
2
- import { ModelParams } from '../types/model-interface';
3
- /**
4
- * Aggregates child node level metrics. Uses provided aggregation `params`.
5
- */
6
- export declare const planetAggregator: (inputs: ModelParams[], params: PlanetAggregatorParams) => AggregationResult;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.planetAggregator = void 0;
4
- const errors_1 = require("../util/errors");
5
- const { InvalidAggregationParams } = errors_1.ERRORS;
6
- /**
7
- * Aggregates child node level metrics. Uses provided aggregation `params`.
8
- */
9
- const planetAggregator = (inputs, params) => {
10
- if (!params['aggregation-metrics'] ||
11
- params['aggregation-metrics'].length === 0) {
12
- throw new InvalidAggregationParams('Provided aggregation metrics are invalid. Please provide an array of strings.');
13
- }
14
- const aggregationMetrics = params['aggregation-metrics'];
15
- const aggregationMethod = params['aggregation-method'];
16
- return inputs.reduce((acc, input, index) => {
17
- for (const metric of aggregationMetrics) {
18
- if (!(metric in input)) {
19
- throw new InvalidAggregationParams(`Aggregation metric ${metric} is not found in inputs[${index}].`);
20
- }
21
- const accessKey = `aggregated-${metric}`;
22
- const value = parseFloat(input[metric]);
23
- acc[accessKey] = acc[accessKey] ?? 0;
24
- acc[accessKey] += value;
25
- if (index === inputs.length - 1) {
26
- if (aggregationMethod === 'avg') {
27
- acc[accessKey] /= inputs.length;
28
- }
29
- }
30
- }
31
- return acc;
32
- }, {});
33
- };
34
- exports.planetAggregator = planetAggregator;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWFnZ3JlZ2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3BsYW5ldC1hZ2dyZWdhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFzQztBQVN0QyxNQUFNLEVBQUMsd0JBQXdCLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFMUM7O0dBRUc7QUFDSSxNQUFNLGdCQUFnQixHQUFHLENBQzlCLE1BQXFCLEVBQ3JCLE1BQThCLEVBQzlCLEVBQUU7SUFDRixJQUNFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBQzlCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQzFDO1FBQ0EsTUFBTSxJQUFJLHdCQUF3QixDQUNoQywrRUFBK0UsQ0FDaEYsQ0FBQztLQUNIO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQWtCLENBQUM7SUFDMUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUV2RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3pDLEtBQUssTUFBTSxNQUFNLElBQUksa0JBQWtCLEVBQUU7WUFDdkMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixNQUFNLElBQUksd0JBQXdCLENBQ2hDLHNCQUFzQixNQUFNLDJCQUEyQixLQUFLLElBQUksQ0FDakUsQ0FBQzthQUNIO1lBRUQsTUFBTSxTQUFTLEdBQUcsY0FBYyxNQUFNLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQztZQUV4QixJQUFJLEtBQUssS0FBSyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxpQkFBaUIsS0FBSyxLQUFLLEVBQUU7b0JBQy9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUF1QixDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBdENXLFFBQUEsZ0JBQWdCLG9CQXNDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnLi4vdXRpbC9lcnJvcnMnO1xuXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvblJlc3VsdCxcbiAgUGxhbmV0QWdncmVnYXRvclBhcmFtcyxcbn0gZnJvbSAnLi4vdHlwZXMvcGxhbmV0LWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHtNb2RlbFBhcmFtc30gZnJvbSAnLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcbmltcG9ydCB7VW5pdEtleU5hbWV9IGZyb20gJy4uL3R5cGVzL3VuaXRzJztcblxuY29uc3Qge0ludmFsaWRBZ2dyZWdhdGlvblBhcmFtc30gPSBFUlJPUlM7XG5cbi8qKlxuICogQWdncmVnYXRlcyBjaGlsZCBub2RlIGxldmVsIG1ldHJpY3MuIFVzZXMgcHJvdmlkZWQgYWdncmVnYXRpb24gYHBhcmFtc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBwbGFuZXRBZ2dyZWdhdG9yID0gKFxuICBpbnB1dHM6IE1vZGVsUGFyYW1zW10sXG4gIHBhcmFtczogUGxhbmV0QWdncmVnYXRvclBhcmFtc1xuKSA9PiB7XG4gIGlmIChcbiAgICAhcGFyYW1zWydhZ2dyZWdhdGlvbi1tZXRyaWNzJ10gfHxcbiAgICBwYXJhbXNbJ2FnZ3JlZ2F0aW9uLW1ldHJpY3MnXS5sZW5ndGggPT09IDBcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBZ2dyZWdhdGlvblBhcmFtcyhcbiAgICAgICdQcm92aWRlZCBhZ2dyZWdhdGlvbiBtZXRyaWNzIGFyZSBpbnZhbGlkLiBQbGVhc2UgcHJvdmlkZSBhbiBhcnJheSBvZiBzdHJpbmdzLidcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYWdncmVnYXRpb25NZXRyaWNzID0gcGFyYW1zWydhZ2dyZWdhdGlvbi1tZXRyaWNzJ10gYXMgVW5pdEtleU5hbWVbXTtcbiAgY29uc3QgYWdncmVnYXRpb25NZXRob2QgPSBwYXJhbXNbJ2FnZ3JlZ2F0aW9uLW1ldGhvZCddO1xuXG4gIHJldHVybiBpbnB1dHMucmVkdWNlKChhY2MsIGlucHV0LCBpbmRleCkgPT4ge1xuICAgIGZvciAoY29uc3QgbWV0cmljIG9mIGFnZ3JlZ2F0aW9uTWV0cmljcykge1xuICAgICAgaWYgKCEobWV0cmljIGluIGlucHV0KSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFnZ3JlZ2F0aW9uUGFyYW1zKFxuICAgICAgICAgIGBBZ2dyZWdhdGlvbiBtZXRyaWMgJHttZXRyaWN9IGlzIG5vdCBmb3VuZCBpbiBpbnB1dHNbJHtpbmRleH1dLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYWNjZXNzS2V5ID0gYGFnZ3JlZ2F0ZWQtJHttZXRyaWN9YDtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChpbnB1dFttZXRyaWNdKTtcbiAgICAgIGFjY1thY2Nlc3NLZXldID0gYWNjW2FjY2Vzc0tleV0gPz8gMDtcbiAgICAgIGFjY1thY2Nlc3NLZXldICs9IHZhbHVlO1xuXG4gICAgICBpZiAoaW5kZXggPT09IGlucHV0cy5sZW5ndGggLSAxKSB7XG4gICAgICAgIGlmIChhZ2dyZWdhdGlvbk1ldGhvZCA9PT0gJ2F2ZycpIHtcbiAgICAgICAgICBhY2NbYWNjZXNzS2V5XSAvPSBpbnB1dHMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgQWdncmVnYXRpb25SZXN1bHQpO1xufTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export type AsyncReturnType<T extends (...args: any) => Promise<any>> = T extends (...args: any) => Promise<infer R> ? R : any;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBc3luY1JldHVyblR5cGU8VCBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IFByb21pc2U8YW55Pj4gPVxuICBUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gUHJvbWlzZTxpbmZlciBSPiA/IFIgOiBhbnk7XG4iXX0=
@@ -1,6 +0,0 @@
1
- import { AggregationMethod, AggregationMetrics } from './impl';
2
- export type PlanetAggregatorParams = {
3
- 'aggregation-metrics': AggregationMetrics[];
4
- 'aggregation-method': AggregationMethod;
5
- };
6
- export type AggregationResult = Record<string, number>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWFnZ3JlZ2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGxhbmV0LWFnZ3JlZ2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdncmVnYXRpb25NZXRob2QsIEFnZ3JlZ2F0aW9uTWV0cmljc30gZnJvbSAnLi9pbXBsJztcblxuZXhwb3J0IHR5cGUgUGxhbmV0QWdncmVnYXRvclBhcmFtcyA9IHtcbiAgJ2FnZ3JlZ2F0aW9uLW1ldHJpY3MnOiBBZ2dyZWdhdGlvbk1ldHJpY3NbXTtcbiAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6IEFnZ3JlZ2F0aW9uTWV0aG9kO1xufTtcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25SZXN1bHQgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuIl19
@@ -1,3 +0,0 @@
1
- import { AsyncReturnType } from './helpers';
2
- import { UnitsDealer } from '../util/units-dealer';
3
- export type UnitsDealerUsage = AsyncReturnType<typeof UnitsDealer>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMtZGVhbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3VuaXRzLWRlYWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1JldHVyblR5cGV9IGZyb20gJy4vaGVscGVycyc7XG5cbmltcG9ydCB7VW5pdHNEZWFsZXJ9IGZyb20gJy4uL3V0aWwvdW5pdHMtZGVhbGVyJztcblxuZXhwb3J0IHR5cGUgVW5pdHNEZWFsZXJVc2FnZSA9IEFzeW5jUmV0dXJuVHlwZTx0eXBlb2YgVW5pdHNEZWFsZXI+O1xuIl19
@@ -1,11 +0,0 @@
1
- export declare const UnitKeys: readonly ["carbon", "core-units", "cpu-util", "disk-io", "duration", "energy-cpu", "expected-lifespan", "energy-memory", "embodied-carbon", "energy", "energy-network", "expected-lifespan", "functional-unit", "functional-unit-duration", "functional-unit-time", "gpu-util", "grid-carbon-intensity", "instance-type", "location", "embodied-carbon", "operational-carbon", "physical-processor", "vendor", "ram-alloc", "ram-util", "resources-reserved", "thermal-design-power", "total-embodied-emissions", "timestamp", "time-reserved", "total-resources"];
2
- type UnitFields = {
3
- description: string;
4
- unit: string;
5
- aggregation: 'sum' | 'none' | 'avg';
6
- };
7
- export type UnitKeyName = (typeof UnitKeys)[number];
8
- export type Units = {
9
- [K in UnitKeyName]: UnitFields;
10
- };
11
- export {};
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnitKeys = void 0;
4
- exports.UnitKeys = [
5
- 'carbon',
6
- 'core-units',
7
- 'cpu-util',
8
- 'disk-io',
9
- 'duration',
10
- 'energy-cpu',
11
- 'expected-lifespan',
12
- 'energy-memory',
13
- 'embodied-carbon',
14
- 'energy',
15
- 'energy-network',
16
- 'expected-lifespan',
17
- 'functional-unit',
18
- 'functional-unit-duration',
19
- 'functional-unit-time',
20
- 'gpu-util',
21
- 'grid-carbon-intensity',
22
- 'instance-type',
23
- 'location',
24
- 'embodied-carbon',
25
- 'operational-carbon',
26
- 'physical-processor',
27
- 'vendor',
28
- 'ram-alloc',
29
- 'ram-util',
30
- 'resources-reserved',
31
- 'thermal-design-power',
32
- 'total-embodied-emissions',
33
- 'timestamp',
34
- 'time-reserved',
35
- 'total-resources',
36
- ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvdW5pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxRQUFRLEdBQUc7SUFDdEIsUUFBUTtJQUNSLFlBQVk7SUFDWixVQUFVO0lBQ1YsU0FBUztJQUNULFVBQVU7SUFDVixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDBCQUEwQjtJQUMxQixzQkFBc0I7SUFDdEIsVUFBVTtJQUNWLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLFFBQVE7SUFDUixXQUFXO0lBQ1gsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLFdBQVc7SUFDWCxlQUFlO0lBQ2YsaUJBQWlCO0NBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBVbml0S2V5cyA9IFtcbiAgJ2NhcmJvbicsXG4gICdjb3JlLXVuaXRzJyxcbiAgJ2NwdS11dGlsJyxcbiAgJ2Rpc2staW8nLFxuICAnZHVyYXRpb24nLFxuICAnZW5lcmd5LWNwdScsXG4gICdleHBlY3RlZC1saWZlc3BhbicsXG4gICdlbmVyZ3ktbWVtb3J5JyxcbiAgJ2VtYm9kaWVkLWNhcmJvbicsXG4gICdlbmVyZ3knLFxuICAnZW5lcmd5LW5ldHdvcmsnLFxuICAnZXhwZWN0ZWQtbGlmZXNwYW4nLFxuICAnZnVuY3Rpb25hbC11bml0JyxcbiAgJ2Z1bmN0aW9uYWwtdW5pdC1kdXJhdGlvbicsXG4gICdmdW5jdGlvbmFsLXVuaXQtdGltZScsXG4gICdncHUtdXRpbCcsXG4gICdncmlkLWNhcmJvbi1pbnRlbnNpdHknLFxuICAnaW5zdGFuY2UtdHlwZScsXG4gICdsb2NhdGlvbicsXG4gICdlbWJvZGllZC1jYXJib24nLFxuICAnb3BlcmF0aW9uYWwtY2FyYm9uJyxcbiAgJ3BoeXNpY2FsLXByb2Nlc3NvcicsXG4gICd2ZW5kb3InLFxuICAncmFtLWFsbG9jJyxcbiAgJ3JhbS11dGlsJyxcbiAgJ3Jlc291cmNlcy1yZXNlcnZlZCcsXG4gICd0aGVybWFsLWRlc2lnbi1wb3dlcicsXG4gICd0b3RhbC1lbWJvZGllZC1lbWlzc2lvbnMnLFxuICAndGltZXN0YW1wJyxcbiAgJ3RpbWUtcmVzZXJ2ZWQnLFxuICAndG90YWwtcmVzb3VyY2VzJyxcbl0gYXMgY29uc3Q7XG5cbnR5cGUgVW5pdEZpZWxkcyA9IHtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdW5pdDogc3RyaW5nO1xuICBhZ2dyZWdhdGlvbjogJ3N1bScgfCAnbm9uZScgfCAnYXZnJztcbn07XG5cbmV4cG9ydCB0eXBlIFVuaXRLZXlOYW1lID0gKHR5cGVvZiBVbml0S2V5cylbbnVtYmVyXTtcblxuZXhwb3J0IHR5cGUgVW5pdHMgPSB7XG4gIFtLIGluIFVuaXRLZXlOYW1lXTogVW5pdEZpZWxkcztcbn07XG4iXX0=
@@ -1,10 +0,0 @@
1
- import { UnitKeyName } from '../types/units';
2
- /**
3
- * Units dealer 😎 .
4
- */
5
- export declare const UnitsDealer: () => Promise<{
6
- /**
7
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
8
- */
9
- askToGiveMethodFor: (unitName: UnitKeyName) => "sum" | "avg" | "none";
10
- }>;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnitsDealer = void 0;
4
- const path = require("path");
5
- const yaml_1 = require("./yaml");
6
- const errors_1 = require("./errors");
7
- const { FileNotFoundError } = errors_1.ERRORS;
8
- /**
9
- * Gets units file as an object.
10
- */
11
- const getUnitsFile = () => (0, yaml_1.openYamlFileAsObject)(path.normalize(`${__dirname}/../config/units.yaml`)).catch((error) => {
12
- throw FileNotFoundError(error.message);
13
- });
14
- /**
15
- * Units dealer 😎 .
16
- */
17
- const UnitsDealer = async () => {
18
- const unitsStack = await getUnitsFile();
19
- return {
20
- /**
21
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
22
- */
23
- askToGiveMethodFor: (unitName) => {
24
- if (unitsStack[unitName]) {
25
- return unitsStack[unitName].aggregation;
26
- }
27
- return 'sum';
28
- },
29
- };
30
- };
31
- exports.UnitsDealer = UnitsDealer;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMtZGVhbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvdW5pdHMtZGVhbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE4QjtBQUU5QixpQ0FBNEM7QUFDNUMscUNBQWdDO0FBSWhDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUVuQzs7R0FFRztBQUNILE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN4QixJQUFBLDJCQUFvQixFQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyx1QkFBdUIsQ0FBQyxDQUNwRCxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO0lBQ3ZCLE1BQU0saUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBRUw7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNwQyxNQUFNLFVBQVUsR0FBRyxNQUFNLFlBQVksRUFBRSxDQUFDO0lBRXhDLE9BQU87UUFDTDs7V0FFRztRQUNILGtCQUFrQixFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1lBQzVDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN4QixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7YUFDekM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBZlcsUUFBQSxXQUFXLGVBZXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbmltcG9ydCB7b3BlbllhbWxGaWxlQXNPYmplY3R9IGZyb20gJy4veWFtbCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnLi9lcnJvcnMnO1xuXG5pbXBvcnQge1VuaXRzLCBVbml0S2V5TmFtZX0gZnJvbSAnLi4vdHlwZXMvdW5pdHMnO1xuXG5jb25zdCB7RmlsZU5vdEZvdW5kRXJyb3J9ID0gRVJST1JTO1xuXG4vKipcbiAqIEdldHMgdW5pdHMgZmlsZSBhcyBhbiBvYmplY3QuXG4gKi9cbmNvbnN0IGdldFVuaXRzRmlsZSA9ICgpID0+XG4gIG9wZW5ZYW1sRmlsZUFzT2JqZWN0PFVuaXRzPihcbiAgICBwYXRoLm5vcm1hbGl6ZShgJHtfX2Rpcm5hbWV9Ly4uL2NvbmZpZy91bml0cy55YW1sYClcbiAgKS5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgdGhyb3cgRmlsZU5vdEZvdW5kRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gIH0pO1xuXG4vKipcbiAqIFVuaXRzIGRlYWxlciDwn5iOIC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVuaXRzRGVhbGVyID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB1bml0c1N0YWNrID0gYXdhaXQgZ2V0VW5pdHNGaWxlKCk7XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFnZ3JlZ2F0aW9uIG1ldGhvZCBmb3IgZ2l2ZW4gYHVuaXROYW1lYC4gSWYgZG9lc24ndCBleGlzdCB0aGVuIHJldHVybnMgdmFsdWUgYHN1bWAuXG4gICAgICovXG4gICAgYXNrVG9HaXZlTWV0aG9kRm9yOiAodW5pdE5hbWU6IFVuaXRLZXlOYW1lKSA9PiB7XG4gICAgICBpZiAodW5pdHNTdGFja1t1bml0TmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIHVuaXRzU3RhY2tbdW5pdE5hbWVdLmFnZ3JlZ2F0aW9uO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ3N1bSc7XG4gICAgfSxcbiAgfTtcbn07XG4iXX0=