@grnsft/if 0.3.1 → 0.3.3-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.
Files changed (115) hide show
  1. package/.commitlintrc.js +3 -0
  2. package/.release-it.json +18 -0
  3. package/CONTRIBUTING.md +82 -1
  4. package/README.md +34 -23
  5. package/build/builtins/export-csv-raw.js +5 -5
  6. package/build/builtins/export-csv.js +17 -7
  7. package/build/builtins/export-log.js +26 -2
  8. package/build/builtins/export-yaml.js +3 -3
  9. package/build/builtins/group-by.js +20 -5
  10. package/build/builtins/time-sync.js +2 -1
  11. package/build/config/config.d.ts +3 -3
  12. package/build/config/config.js +23 -27
  13. package/build/config/strings.d.ts +1 -0
  14. package/build/config/strings.js +9 -5
  15. package/build/index.js +24 -15
  16. package/build/lib/compute.js +8 -8
  17. package/build/lib/environment.d.ts +5 -0
  18. package/build/lib/environment.js +69 -0
  19. package/build/lib/exhaust.d.ts +2 -1
  20. package/build/lib/exhaust.js +11 -9
  21. package/build/lib/initialize.d.ts +2 -2
  22. package/build/lib/initialize.js +5 -5
  23. package/build/lib/load.d.ts +1 -29
  24. package/build/lib/load.js +6 -7
  25. package/build/lib/parameterize.d.ts +2 -1
  26. package/build/lib/parameterize.js +4 -4
  27. package/build/types/compute.d.ts +2 -2
  28. package/build/types/compute.js +1 -1
  29. package/build/types/environment.d.ts +18 -0
  30. package/build/types/environment.js +3 -0
  31. package/build/types/manifest.d.ts +1 -0
  32. package/build/types/manifest.js +1 -1
  33. package/build/types/process-args.d.ts +13 -1
  34. package/build/types/process-args.js +1 -1
  35. package/build/util/aggregation-helper.js +4 -4
  36. package/build/util/args.d.ts +3 -5
  37. package/build/util/args.js +14 -10
  38. package/build/util/errors.d.ts +1 -1
  39. package/build/util/errors.js +4 -5
  40. package/build/util/helpers.d.ts +8 -2
  41. package/build/util/helpers.js +19 -15
  42. package/build/util/os-checker.d.ts +7 -0
  43. package/build/util/os-checker.js +97 -0
  44. package/build/util/validations.d.ts +90 -4
  45. package/build/util/validations.js +14 -2
  46. package/github-processes.md +168 -0
  47. package/{examples/manifests/pipeline-demo-2.yml → manifests/bugs/aggregation-error-wrong-metric.yml} +18 -39
  48. package/manifests/bugs/azure-importer-ignoring-defaults.yml +61 -0
  49. package/manifests/bugs/azure-importer-incorrect-calculation.yml +56 -0
  50. package/manifests/bugs/initialize-error-no-config.yml +27 -0
  51. package/manifests/bugs/initialize-error-no-path.yml +28 -0
  52. package/manifests/bugs/initialize-error-no-plugins.yml +23 -0
  53. package/manifests/bugs/input-error-missing-duration.yml +21 -0
  54. package/manifests/bugs/pipeline-error-naming-mismatch.yml +28 -0
  55. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +29 -0
  56. package/{examples/manifests/pipeline-teads-sci.yml → manifests/bugs/pipeline-ordering-error.yml} +15 -15
  57. package/{examples/manifests → manifests/examples}/basic.yml +3 -2
  58. package/{examples/manifests → manifests/examples}/generics.yml +16 -16
  59. package/{examples/manifests/asim-demo.yml → manifests/examples/mock-cpu-util-to-carbon.yml} +3 -7
  60. package/{examples/manifests → manifests/examples}/nesting.yml +19 -18
  61. package/{examples/manifests/pipeline-demo-1.yml → manifests/examples/pipeline-teads-sci.yml} +10 -13
  62. package/{examples/manifests/pipeline-demo.yml → manifests/examples/pipeline-with-aggregate.yml} +12 -12
  63. package/{examples/manifests → manifests/examples}/pipeline-with-mocks.yml +26 -25
  64. package/manifests/features/aggregate-horizontal.yml +44 -0
  65. package/manifests/features/aggregate-vertical.yml +44 -0
  66. package/manifests/features/aggregate.yml +44 -0
  67. package/manifests/integrations/mock-obs-groupby.yml +39 -0
  68. package/manifests/integrations/mock-obs-time-sync.yml +65 -0
  69. package/manifests/plugins/cloud-metadata/failure-invalid-vendor.yaml +21 -0
  70. package/{examples/manifests/cim.yml → manifests/plugins/cloud-metadata/success.yml} +3 -2
  71. package/manifests/plugins/coefficient/failure-invalid-config-input-param.yml +24 -0
  72. package/{examples/manifests/coefficient.yml → manifests/plugins/coefficient/success.yml} +2 -1
  73. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +39 -0
  74. package/manifests/plugins/divide/success.yml +39 -0
  75. package/manifests/plugins/groupby/failure-invalid-config-group.yml +47 -0
  76. package/{examples/manifests/group-by.yml → manifests/plugins/groupby/success.yml} +24 -23
  77. package/manifests/plugins/mock-observations/failure-invalid-config-cpu-range.yml +34 -0
  78. package/{examples/manifests/mock-observation.yml → manifests/plugins/mock-observations/success.yml} +2 -1
  79. package/manifests/plugins/multiply/failure-input-parameter-is-missing.yml +24 -0
  80. package/{examples/manifests/multiply.yml → manifests/plugins/multiply/success.yml} +3 -2
  81. package/manifests/plugins/regex/failure-missing-input-param.yml +24 -0
  82. package/{examples/manifests/regex.yml → manifests/plugins/regex/success.yml} +3 -2
  83. package/manifests/plugins/sci/failure-invalid-config-value.yml +28 -0
  84. package/{examples/manifests/sci.yml → manifests/plugins/sci/success.yml} +3 -2
  85. package/manifests/plugins/sci-m/failure-invalid-default-emission-value.yml +24 -0
  86. package/{examples/manifests/sci-m.yml → manifests/plugins/sci-m/success.yml} +2 -1
  87. package/manifests/plugins/shell/failure-invalid-command.yml +21 -0
  88. package/{examples/manifests/shell.yml → manifests/plugins/shell/success.yml} +3 -2
  89. package/manifests/plugins/sum/failure-missing-input-param.yml +24 -0
  90. package/{examples/manifests/sum.yml → manifests/plugins/sum/success.yml} +3 -2
  91. package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +18 -0
  92. package/{examples/manifests/tdp-finder.yml → manifests/plugins/tdp-finder/success.yml} +2 -1
  93. package/manifests/plugins/time-sync/failure-config-start-later-end.yml +34 -0
  94. package/{examples/manifests/time-sync.yml → manifests/plugins/time-sync/success.yml} +4 -2
  95. package/package.json +4 -2
  96. package/src/builtins/README.md +40 -44
  97. package/examples/manifests/azure-importer.yml +0 -24
  98. package/examples/manifests/basic-demo.yml +0 -70
  99. package/examples/manifests/boavizta-cloud.yml +0 -20
  100. package/examples/manifests/boavizta-pipeline.yml +0 -85
  101. package/examples/manifests/boavizta.yml +0 -26
  102. package/examples/manifests/ccf.yml +0 -20
  103. package/examples/manifests/cloud-metadata.yml +0 -41
  104. package/examples/manifests/co2js.yml +0 -30
  105. package/examples/manifests/csv-export.yml +0 -34
  106. package/examples/manifests/e-mem.yml +0 -21
  107. package/examples/manifests/e-net.yml +0 -22
  108. package/examples/manifests/nesting-demo.yml +0 -89
  109. package/examples/manifests/pipeline-with-generics.yml +0 -147
  110. package/examples/manifests/sci-e.yml +0 -19
  111. package/examples/manifests/sci-o.yml +0 -26
  112. package/examples/manifests/teads-aws.yml +0 -22
  113. package/examples/manifests/teads-curve.yml +0 -20
  114. package/examples/manifests/watt-time.yml +0 -42
  115. /package/{examples/manifests/divide.yml → manifests/integrations/cloud-metadata-divide-boavizta.yml} +0 -0
@@ -0,0 +1,24 @@
1
+ name: coefficient-demo
2
+ description: failure with ivalid `global-config.input-parameter`
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ coefficient:
8
+ method: Coefficient
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ input-parameter: 4
12
+ coefficient: 3
13
+ output-parameter: "carbon-product"
14
+ tree:
15
+ children:
16
+ child:
17
+ pipeline:
18
+ - coefficient
19
+ config:
20
+ sum:
21
+ inputs:
22
+ - timestamp: 2023-08-06T00:00
23
+ duration: 3600
24
+ carbon: 30
@@ -1,7 +1,8 @@
1
1
  name: coefficient-demo
2
- description:
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  coefficient:
7
8
  method: Coefficient
@@ -0,0 +1,39 @@
1
+ name: divide
2
+ description: failure when `global-config.denominator` is string
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ cloud-metadata:
8
+ method: CloudMetadata
9
+ path: "@grnsft/if-plugins"
10
+ divide:
11
+ method: Divide
12
+ path: "@grnsft/if-plugins"
13
+ global-config:
14
+ numerator: vcpus-allocated
15
+ denominator: 'vcpus'
16
+ output: cpu/number-cores
17
+ boavizta-cpu:
18
+ method: BoaviztaCpuOutput
19
+ path: "@grnsft/if-unofficial-plugins"
20
+ global-config:
21
+ allocation: LINEAR
22
+ verbose: true
23
+ tree:
24
+ children:
25
+ child:
26
+ pipeline:
27
+ - cloud-metadata
28
+ - divide
29
+ - boavizta-cpu
30
+ config:
31
+ divide:
32
+ defaults:
33
+ cloud/vendor: aws
34
+ cloud/instance-type: m5n.large
35
+ cpu/name: Intel® Core™ i7-1185G7
36
+ inputs:
37
+ - timestamp: 2023-08-06T00:00
38
+ duration: 3600
39
+ cpu/utilization: 80
@@ -0,0 +1,39 @@
1
+ name: divide
2
+ description: success path
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ cloud-metadata:
8
+ method: CloudMetadata
9
+ path: "@grnsft/if-plugins"
10
+ divide:
11
+ method: Divide
12
+ path: "@grnsft/if-plugins"
13
+ global-config:
14
+ numerator: vcpus-allocated
15
+ denominator: 2
16
+ output: cpu/number-cores
17
+ boavizta-cpu:
18
+ method: BoaviztaCpuOutput
19
+ path: "@grnsft/if-unofficial-plugins"
20
+ global-config:
21
+ allocation: LINEAR
22
+ verbose: true
23
+ tree:
24
+ children:
25
+ child:
26
+ pipeline:
27
+ - cloud-metadata
28
+ - divide
29
+ - boavizta-cpu
30
+ config:
31
+ divide:
32
+ defaults:
33
+ cloud/vendor: aws
34
+ cloud/instance-type: m5n.large
35
+ cpu/name: Intel® Core™ i7-1185G7
36
+ inputs:
37
+ - timestamp: 2023-08-06T00:00
38
+ duration: 3600
39
+ cpu/utilization: 80
@@ -0,0 +1,47 @@
1
+ name: groupby
2
+ description: failure when `config->group-by->group` is not an array
3
+ initialize:
4
+ outputs: ['yaml']
5
+ plugins:
6
+ group-by:
7
+ path: "builtin"
8
+ method: GroupBy
9
+ tree:
10
+ children:
11
+ my-app:
12
+ pipeline:
13
+ - group-by
14
+ config:
15
+ group-by:
16
+ group: cloud/region
17
+ inputs:
18
+ - timestamp: 2023-07-06T00:00
19
+ duration: 300
20
+ cloud/instance-type: A1
21
+ cloud/region: uk-west
22
+ cpu/utilization: 99
23
+ - timestamp: 2023-07-06T05:00
24
+ duration: 300
25
+ cloud/instance-type: A1
26
+ cloud/region: uk-west
27
+ cpu/utilization: 23
28
+ - timestamp: 2023-07-06T10:00
29
+ duration: 300
30
+ cloud/instance-type: A1
31
+ cloud/region: uk-west
32
+ cpu/utilization: 12
33
+ - timestamp: 2023-07-06T00:00 # note this time restarts at the start timstamp
34
+ duration: 300
35
+ cloud/instance-type: B1
36
+ cloud/region: uk-west
37
+ cpu/utilization: 11
38
+ - timestamp: 2023-07-06T05:00
39
+ duration: 300
40
+ cloud/instance-type: B1
41
+ cloud/region: uk-west
42
+ cpu/utilization: 67
43
+ - timestamp: 2023-07-06T10:00
44
+ duration: 300
45
+ cloud/instance-type: B1
46
+ cloud/region: uk-west
47
+ cpu/utilization: 1
@@ -1,48 +1,49 @@
1
- name: groupby-demo
2
- description: demo pipeline
1
+ name: groupby
2
+ description: successful path
3
3
  initialize:
4
+ outputs: ['yaml']
4
5
  plugins:
5
- group-by:
6
- path: 'builtin'
6
+ group-by:
7
+ path: "builtin"
7
8
  method: GroupBy
8
9
  tree:
9
10
  children:
10
11
  my-app:
11
- pipeline:
12
+ pipeline:
12
13
  - group-by
13
14
  config:
14
15
  group-by:
15
16
  group:
16
- - region
17
+ - cloud/region
17
18
  - cloud/instance-type
18
19
  inputs:
19
20
  - timestamp: 2023-07-06T00:00
20
- duration: 300
21
- cloud/instance-type: A1
22
- region: uk-west
21
+ duration: 300
22
+ cloud/instance-type: A1
23
+ cloud/region: uk-west
23
24
  cpu/utilization: 99
24
- - timestamp: 2023-07-06T05:00
25
- duration: 300
26
- cloud/instance-type: A1
27
- region: uk-west
28
- cpu/utilization: 23
25
+ - timestamp: 2023-07-06T05:00
26
+ duration: 300
27
+ cloud/instance-type: A1
28
+ cloud/region: uk-west
29
+ cpu/utilization: 23
29
30
  - timestamp: 2023-07-06T10:00
30
31
  duration: 300
31
- cloud/instance-type: A1
32
- region: uk-west
32
+ cloud/instance-type: A1
33
+ cloud/region: uk-west
33
34
  cpu/utilization: 12
34
35
  - timestamp: 2023-07-06T00:00 # note this time restarts at the start timstamp
35
- duration: 300
36
+ duration: 300
36
37
  cloud/instance-type: B1
37
- region: uk-west
38
+ cloud/region: uk-west
38
39
  cpu/utilization: 11
39
- - timestamp: 2023-07-06T05:00
40
- duration: 300
40
+ - timestamp: 2023-07-06T05:00
41
+ duration: 300
41
42
  cloud/instance-type: B1
42
- region: uk-west
43
+ cloud/region: uk-west
43
44
  cpu/utilization: 67
44
45
  - timestamp: 2023-07-06T10:00
45
- duration: 300
46
+ duration: 300
46
47
  cloud/instance-type: B1
47
- region: uk-west
48
+ cloud/region: uk-west
48
49
  cpu/utilization: 1
@@ -0,0 +1,34 @@
1
+ name: mock-observation-demo
2
+ description: failure with `global-config->generators->randint->cpu/utilization->min` is greater than `max`
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ mock-observations:
8
+ kind: plugin
9
+ method: MockObservations
10
+ path: "@grnsft/if-plugins"
11
+ global-config:
12
+ timestamp-from: 2023-07-06T00:00
13
+ timestamp-to: 2023-07-06T00:10
14
+ duration: 60
15
+ components:
16
+ - cloud/instance-type: A1
17
+ - cloud/instance-type: B1
18
+ generators:
19
+ common:
20
+ region: uk-west
21
+ common-key: common-val
22
+ randint:
23
+ cpu/utilization:
24
+ min: 99
25
+ max: 10
26
+ memory/utilization:
27
+ min: 1
28
+ max: 99
29
+ tree:
30
+ children:
31
+ child:
32
+ pipeline:
33
+ - mock-observations
34
+ inputs:
@@ -1,7 +1,8 @@
1
1
  name: mock-observation-demo
2
- description: example invoking mock-observation plugin
2
+ description: a manifest demonstrating how to use the mock observations feature
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  mock-observations:
7
8
  kind: plugin
@@ -0,0 +1,24 @@
1
+ name: multiply
2
+ description: failure `inputs` is missing `cpu/energy` parameter
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ multiply:
8
+ method: Multiply
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ input-parameters: ["cpu/energy", "network/energy"]
12
+ output-parameter: "energy-product"
13
+ tree:
14
+ children:
15
+ child:
16
+ pipeline:
17
+ - multiply
18
+ config:
19
+ sum:
20
+ inputs:
21
+ - timestamp: 2023-08-06T00:00
22
+ duration: 3600
23
+ cpu: 0.001
24
+ network/energy: 0.002
@@ -1,7 +1,8 @@
1
- name: multiply-demo
2
- description:
1
+ name: multiply
2
+ description: a manifest demonstrating how to use the multiply feature
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  multiply:
7
8
  method: Multiply
@@ -0,0 +1,24 @@
1
+ name: regex
2
+ description: failure with missing `physical-processor` field from `inputs`
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ regex:
8
+ method: Regex
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ parameter: physical-processor
12
+ match: ^(.*),
13
+ output: cpu/name
14
+ tree:
15
+ children:
16
+ child:
17
+ pipeline:
18
+ - regex
19
+ config:
20
+ regex:
21
+ inputs:
22
+ - timestamp: 2023-08-06T00:00
23
+ duration: 3600
24
+ physical: Intel® Xeon® Platinum 8272CL,Intel® Xeon® 8171M 2.1 GHz,Intel® Xeon® E5-2673 v4 2.3 GHz,Intel® Xeon® E5-2673 v3 2.4 GHz
@@ -1,7 +1,8 @@
1
- name: regex-demo
2
- description:
1
+ name: regex
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  regex:
7
8
  method: Regex
@@ -0,0 +1,28 @@
1
+ name: sci
2
+ description: failure with `config.sci.functional-unit` value being number
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ sci:
8
+ kind: plugin
9
+ method: Sci
10
+ path: "@grnsft/if-plugins"
11
+ # global-config:
12
+ # functional-unit-time: 1 minute
13
+ tree:
14
+ children:
15
+ child:
16
+ pipeline:
17
+ - sci
18
+ config:
19
+ sci:
20
+ functional-unit-time: 1 sec
21
+ functional-unit: 999 # factor to convert per time to per f.unit
22
+ inputs:
23
+ - timestamp: 2023-07-06T00:00
24
+ duration: 3600
25
+ energy: 5
26
+ carbon-operational: 5
27
+ carbon-embodied: 0.02
28
+ requests: 100
@@ -1,7 +1,8 @@
1
- name: sci-demo
2
- description: example invoking sci model
1
+ name: sci
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  sci:
7
8
  kind: plugin
@@ -0,0 +1,24 @@
1
+ name: sci-m
2
+ description: failure with `defaults.device/emissions-embodied` being string instead of number
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ "sci-m": # a model that calculates m from te, tir, el, rr and rtor
8
+ method: SciM
9
+ verbose: false
10
+ path: "@grnsft/if-plugins"
11
+ tree:
12
+ children:
13
+ child:
14
+ pipeline:
15
+ - sci-m # duration & config -> embodied
16
+ defaults:
17
+ device/emissions-embodied: 'fail' # gCO2eq
18
+ time-reserved: 3600 # 1hr in seconds
19
+ device/expected-lifespan: 94608000 # 3 years in seconds
20
+ resources-reserved: 1
21
+ resources-total: 8
22
+ inputs:
23
+ - timestamp: 2023-07-06T00:00
24
+ duration: 3600
@@ -1,7 +1,8 @@
1
1
  name: sci-m
2
- description: simple demo invoking sci-m
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  "sci-m": # a model that calculates m from te, tir, el, rr and rtor
7
8
  method: SciM
@@ -0,0 +1,21 @@
1
+ name: shell
2
+ description: falure with `global-config.command` being number instead od string
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ shell:
8
+ method: Shell
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ command: 1000
12
+ tree:
13
+ children:
14
+ child:
15
+ pipeline:
16
+ - shell
17
+ inputs:
18
+ - timestamp: "2023-11-02T10:35:31.820Z"
19
+ duration: 3600
20
+ cpu/energy: 0.002
21
+ memory/energy: 0.000005
@@ -1,7 +1,8 @@
1
- name: shell-demo
2
- description: example impl invoking shell model
1
+ name: shell
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  shell:
7
8
  method: Shell
@@ -0,0 +1,24 @@
1
+ name: sum
2
+ description: failure with `inputs[0]` misses one of `global-config.input-parameters`
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ sum:
8
+ method: Sum
9
+ path: "@grnsft/if-plugins"
10
+ global-config:
11
+ input-parameters: ["cpu/energy", "network/energy"]
12
+ output-parameter: "energy"
13
+ tree:
14
+ children:
15
+ child:
16
+ pipeline:
17
+ - sum
18
+ config:
19
+ sum:
20
+ inputs:
21
+ - timestamp: 2023-08-06T00:00
22
+ duration: 3600
23
+ cpu: 0.001
24
+ network/energy: 0.001
@@ -1,7 +1,8 @@
1
- name: sci-e-demo
2
- description:
1
+ name: sum
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  sum:
7
8
  method: Sum
@@ -0,0 +1,18 @@
1
+ name: tdp-finder
2
+ description: failure with `inputs` missing `physical-processor` param
3
+ tags:
4
+ initialize:
5
+ outputs: ['yaml']
6
+ plugins:
7
+ tdp-finder: # a model that returns an embodied value given the sci embodied attribution equation.
8
+ method: TdpFinder
9
+ path: "@grnsft/if-plugins"
10
+ tree:
11
+ children:
12
+ child:
13
+ pipeline:
14
+ - tdp-finder
15
+ config:
16
+ inputs:
17
+ - timestamp: 2023-07-06T00:00
18
+ duration: 300
@@ -1,7 +1,8 @@
1
1
  name: tdp-finder
2
- description: demo
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ outputs: ['yaml']
5
6
  plugins:
6
7
  tdp-finder: # a model that returns an embodied value given the sci embodied attribution equation.
7
8
  method: TdpFinder
@@ -0,0 +1,34 @@
1
+ name: time-sync
2
+ description: failure with `global-config.start-time` being later than `global-config.end-time`
3
+ tags:
4
+ initialize:
5
+ output:
6
+ - yaml
7
+ plugins:
8
+ 'time-sync':
9
+ method: TimeSync
10
+ path: "builtin"
11
+ global-config:
12
+ start-time: '2023-12-12T00:01:00.000Z'
13
+ end-time: '2023-12-12T00:00:00.000Z'
14
+ interval: 5
15
+ allow-padding: true
16
+ tree:
17
+ children:
18
+ child:
19
+ pipeline:
20
+ - time-sync
21
+ config:
22
+ inputs:
23
+ - timestamp: '2023-12-12T00:00:00.000Z'
24
+ duration: 1
25
+ energy-cpu: 0.001
26
+ - timestamp: '2023-12-12T00:00:01.000Z'
27
+ duration: 5
28
+ energy-cpu: 0.001
29
+ - timestamp: '2023-12-12T00:00:06.000Z'
30
+ duration: 7
31
+ energy-cpu: 0.001
32
+ - timestamp: '2023-12-12T00:00:13.000Z'
33
+ duration: 30
34
+ energy-cpu: 0.001
@@ -1,7 +1,9 @@
1
- name: time-sync-demo
2
- description:
1
+ name: time-sync
2
+ description: successful path
3
3
  tags:
4
4
  initialize:
5
+ output:
6
+ - yaml
5
7
  plugins:
6
8
  'time-sync':
7
9
  method: TimeSync
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grnsft/if",
3
3
  "description": "Impact Framework",
4
- "version": "v0.3.1",
4
+ "version": "0.3.3-beta.0",
5
5
  "author": {
6
6
  "name": "Green Software Foundation",
7
7
  "email": "info@gsf.com"
@@ -24,7 +24,7 @@
24
24
  "zod": "^3.22.4"
25
25
  },
26
26
  "devDependencies": {
27
- "@babel/core": "7.22.10",
27
+ "@babel/core": "^7.22.10",
28
28
  "@babel/preset-typescript": "^7.22.5",
29
29
  "@jest/globals": "^29.6.1",
30
30
  "@types/jest": "^29.5.7",
@@ -35,6 +35,7 @@
35
35
  "gts": "^5.0.0",
36
36
  "husky": "^8.0.0",
37
37
  "jest": "^29.6.1",
38
+ "release-it": "^16.3.0",
38
39
  "rimraf": "^5.0.5",
39
40
  "ts-jest": "^29.1.1"
40
41
  },
@@ -69,6 +70,7 @@
69
70
  "lint": "gts lint",
70
71
  "prepare": "husky install",
71
72
  "prepublish": "npm run build",
73
+ "release": "release-it",
72
74
  "test": "jest --verbose --testPathPattern=src/__tests__/unit",
73
75
  "test:integration": "jest --verbose --testPathPattern=src/__tests__/integration"
74
76
  },