@grnsft/if 0.6.0 → 0.7.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.
Files changed (370) hide show
  1. package/Refactor-migration-guide.md +68 -82
  2. package/github-processes.md +3 -9
  3. package/manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml +2 -4
  4. package/manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml +1 -3
  5. package/manifests/examples/builtins/coefficient/success.yml +1 -3
  6. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +1 -2
  7. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +3 -4
  8. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml +2 -3
  9. package/manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml +1 -2
  10. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml +1 -1
  11. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml +2 -2
  12. package/manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml +1 -1
  13. package/manifests/examples/builtins/csv-lookup/region-metadata/success.yml +1 -1
  14. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +1 -2
  15. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +1 -2
  16. package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +1 -2
  17. package/manifests/examples/builtins/divide/failure-invalid-config-denominator.yml +3 -5
  18. package/manifests/examples/builtins/divide/failure-missing-numerator.yml +2 -4
  19. package/manifests/examples/builtins/divide/success.yml +2 -2
  20. package/manifests/examples/builtins/exponent/success.yml +1 -1
  21. package/manifests/examples/builtins/interpolation/success.yml +1 -1
  22. package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +2 -2
  23. package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +1 -1
  24. package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +1 -1
  25. package/manifests/examples/builtins/mock-observations/success.yml +1 -1
  26. package/manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml +1 -1
  27. package/manifests/examples/builtins/multiply/success-with-multiple-inputs.yml +1 -1
  28. package/manifests/examples/builtins/multiply/success.yml +1 -1
  29. package/manifests/examples/builtins/regex/failure-missing-input-param.yml +1 -1
  30. package/manifests/examples/builtins/regex/failure-not-matching-with-regex.yml +2 -2
  31. package/manifests/examples/builtins/regex/success.yml +1 -1
  32. package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +3 -4
  33. package/manifests/examples/builtins/sci/failure-missing-input-param.yml +1 -1
  34. package/manifests/examples/builtins/sci/success.yml +1 -1
  35. package/manifests/examples/builtins/sci-embodied/scenario-1.yml +27 -0
  36. package/manifests/examples/builtins/sci-embodied/scenario-2.yml +37 -0
  37. package/manifests/examples/builtins/sci-embodied/success.yml +13 -0
  38. package/manifests/examples/builtins/shell/failure-invalid-command.yml +2 -2
  39. package/manifests/examples/builtins/shell/success.yml +2 -2
  40. package/manifests/examples/builtins/subtract/success.yml +1 -1
  41. package/manifests/examples/builtins/sum/failure-missing-input-param.yml +2 -2
  42. package/manifests/examples/builtins/sum/failure-missing-output-param.yml +2 -2
  43. package/manifests/examples/builtins/sum/success.yml +1 -1
  44. package/manifests/examples/builtins/time-converter/success.yaml +3 -3
  45. package/manifests/examples/builtins/time-sync/failure-config-start-later-end.yml +10 -12
  46. package/manifests/examples/builtins/time-sync/{failure-missing-global-config.yml → failure-missing-config.yml} +3 -8
  47. package/manifests/examples/builtins/time-sync/success.yml +2 -2
  48. package/manifests/examples/features/regroup/failure-missing-cloud-instance-type.yml +1 -1
  49. package/manifests/examples/features/regroup/success.yml +1 -1
  50. package/manifests/examples/pipelines/generics.yml +8 -8
  51. package/manifests/examples/pipelines/instance-metadata.yml +2 -2
  52. package/manifests/examples/pipelines/nesting.yml +75 -33
  53. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml +166 -122
  54. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml +130 -70
  55. package/manifests/examples/pipelines/pipeline-teads-sci.yml +15 -15
  56. package/manifests/examples/pipelines/pipeline-with-aggregate.yml +57 -27
  57. package/manifests/examples/pipelines/pipeline-with-mocks.yml +99 -41
  58. package/manifests/examples/pipelines/scenario-3.yml +1 -1
  59. package/manifests/examples/pipelines/scenario-4.yml +5 -5
  60. package/manifests/examples/pipelines/scenario-5.yml +3 -3
  61. package/manifests/examples/pipelines/sci.yml +12 -12
  62. package/manifests/examples/pipelines/teads-curve.yml +10 -10
  63. package/manifests/examples/pipelines/zeros.yml +23 -23
  64. package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +40 -40
  65. package/manifests/outputs/bugs/input-error-missing-duration.yaml +1 -1
  66. package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +2 -2
  67. package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +1 -1
  68. package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +1 -1
  69. package/manifests/outputs/bugs/pipeline-ordering-error.yaml +6 -6
  70. package/manifests/outputs/builtins/coefficient/failure-invalid-config-input-param.yaml +2 -2
  71. package/manifests/outputs/builtins/coefficient/failure-output-param-is-null.yaml +1 -1
  72. package/manifests/outputs/builtins/coefficient/success.yaml +23 -22
  73. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +1 -1
  74. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +76 -0
  75. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +22 -21
  76. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/success.yaml +1 -1
  77. package/manifests/outputs/builtins/csv-lookup/region-metadata/failure-missing-column.yaml +1 -1
  78. package/manifests/outputs/builtins/csv-lookup/region-metadata/failure-missing-output.yaml +21 -20
  79. package/manifests/outputs/builtins/csv-lookup/region-metadata/success-renaming.yaml +1 -1
  80. package/manifests/outputs/builtins/csv-lookup/region-metadata/success.yaml +1 -1
  81. package/manifests/outputs/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yaml +1 -1
  82. package/manifests/outputs/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +1 -1
  83. package/manifests/outputs/builtins/csv-lookup/tdp-finder/success.yaml +1 -1
  84. package/manifests/outputs/builtins/divide/failure-invalid-config-denominator.yaml +41 -25
  85. package/manifests/outputs/builtins/divide/failure-missing-numerator.yaml +32 -23
  86. package/manifests/outputs/builtins/divide/success-denominator-equal-zero.yaml +2 -2
  87. package/manifests/outputs/builtins/divide/success.yaml +2 -2
  88. package/manifests/outputs/builtins/exponent/success.yaml +1 -1
  89. package/manifests/outputs/builtins/interpolation/interpolation.yaml +1 -1
  90. package/manifests/outputs/builtins/interpolation/success.yaml +1 -1
  91. package/manifests/outputs/builtins/mock-observations/failure-invalid-config-cpu-range.yaml +3 -3
  92. package/manifests/outputs/builtins/mock-observations/failure-invalid-memory-utilization-range.yaml +2 -2
  93. package/manifests/outputs/builtins/mock-observations/failure-missing-timestamp-from-param.yaml +1 -1
  94. package/manifests/outputs/builtins/mock-observations/success.yaml +49 -190
  95. package/manifests/outputs/builtins/multiply/failure-input-parameter-is-missing.yaml +1 -1
  96. package/manifests/outputs/builtins/multiply/success-with-multiple-inputs.yaml +1 -1
  97. package/manifests/outputs/builtins/multiply/success.yaml +1 -1
  98. package/manifests/outputs/builtins/regex/failure-missing-input-param.yaml +1 -1
  99. package/manifests/outputs/builtins/regex/failure-not-matching-with-regex.yaml +72 -0
  100. package/manifests/outputs/builtins/regex/success.yaml +1 -1
  101. package/manifests/outputs/builtins/sci/failure-invalid-config-value.yaml +22 -23
  102. package/manifests/outputs/builtins/sci/failure-missing-input-param.yaml +1 -1
  103. package/manifests/outputs/builtins/sci/success.yaml +1 -1
  104. package/manifests/outputs/builtins/sci-embodied/failure-invalid-default-emission-value.yaml +22 -26
  105. package/manifests/outputs/builtins/sci-embodied/scenario-1.yaml +100 -0
  106. package/manifests/outputs/builtins/sci-embodied/scenario-2.yaml +101 -0
  107. package/manifests/outputs/builtins/sci-embodied/success.yaml +44 -20
  108. package/manifests/outputs/builtins/shell/failure-invalid-command.yaml +2 -2
  109. package/manifests/outputs/builtins/shell/success.yaml +1 -1
  110. package/manifests/outputs/builtins/subtract/success.yaml +1 -1
  111. package/manifests/outputs/builtins/sum/failure-missing-input-param.yaml +2 -2
  112. package/manifests/outputs/builtins/sum/failure-missing-output-param.yaml +2 -2
  113. package/manifests/outputs/builtins/sum/success.yaml +1 -1
  114. package/manifests/outputs/builtins/time-converter/success.yaml +73 -0
  115. package/manifests/outputs/builtins/time-sync/failure-config-start-later-end.yaml +3 -3
  116. package/manifests/outputs/builtins/time-sync/failure-missing-config.yaml +74 -0
  117. package/manifests/outputs/builtins/time-sync/success.yaml +50 -59
  118. package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +1 -1
  119. package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +1 -1
  120. package/manifests/outputs/features/aggregate-horizontal.yaml +4 -2
  121. package/manifests/outputs/features/aggregate-vertical.yaml +4 -2
  122. package/manifests/outputs/features/aggregate.yaml +4 -2
  123. package/manifests/outputs/features/regroup/failure-invalid-regroup.yaml +87 -0
  124. package/manifests/outputs/features/regroup/failure-missing-cloud-instance-type.yaml +87 -0
  125. package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +2 -2
  126. package/manifests/outputs/pipelines/generics.yaml +28 -28
  127. package/manifests/outputs/pipelines/instance-metadata.yaml +14 -14
  128. package/manifests/outputs/pipelines/nesting.yaml +713 -486
  129. package/manifests/outputs/pipelines/pipeline-teads-sci.yaml +63 -32
  130. package/manifests/outputs/pipelines/scenario-4.yaml +105 -0
  131. package/manifests/outputs/pipelines/sci.yaml +56 -32
  132. package/manifests/outputs/pipelines/teads-curve.yaml +18 -18
  133. package/manifests/outputs/pipelines/zeros.yaml +27 -27
  134. package/package.json +4 -4
  135. package/src/__mocks__/mock-manifest.yaml +1 -2
  136. package/src/if-env/config/env-template.yml +1 -2
  137. package/src/if-run/builtins/coefficient/README.md +41 -17
  138. package/src/if-run/builtins/copy-param/README.md +28 -8
  139. package/src/if-run/builtins/csv-lookup/README.md +31 -11
  140. package/src/if-run/builtins/divide/README.md +34 -12
  141. package/src/if-run/builtins/exponent/README.md +29 -11
  142. package/src/if-run/builtins/interpolation/README.md +37 -22
  143. package/src/if-run/builtins/mock-observations/README.md +27 -7
  144. package/src/if-run/builtins/multiply/README.md +27 -9
  145. package/src/if-run/builtins/regex/README.md +31 -11
  146. package/src/if-run/builtins/sci/README.md +29 -8
  147. package/src/if-run/builtins/sci-embodied/README.md +76 -75
  148. package/src/if-run/builtins/shell/README.md +15 -7
  149. package/src/if-run/builtins/subtract/README.md +28 -11
  150. package/src/if-run/builtins/sum/README.md +47 -14
  151. package/src/if-run/builtins/time-converter/README.md +8 -8
  152. package/src/if-run/builtins/time-sync/README.md +44 -22
  153. package/.gitmodules +0 -3
  154. package/build/common/config/index.d.ts +0 -1
  155. package/build/common/config/index.js +0 -6
  156. package/build/common/config/strings.d.ts +0 -9
  157. package/build/common/config/strings.js +0 -17
  158. package/build/common/lib/load.d.ts +0 -6
  159. package/build/common/lib/load.js +0 -18
  160. package/build/common/types/manifest.d.ts +0 -13
  161. package/build/common/types/manifest.js +0 -3
  162. package/build/common/util/debug-logger.d.ts +0 -4
  163. package/build/common/util/debug-logger.js +0 -115
  164. package/build/common/util/fs.d.ts +0 -20
  165. package/build/common/util/fs.js +0 -94
  166. package/build/common/util/helpers.d.ts +0 -15
  167. package/build/common/util/helpers.js +0 -80
  168. package/build/common/util/logger.d.ts +0 -5
  169. package/build/common/util/logger.js +0 -39
  170. package/build/common/util/validations.d.ts +0 -367
  171. package/build/common/util/validations.js +0 -141
  172. package/build/common/util/yaml.d.ts +0 -12
  173. package/build/common/util/yaml.js +0 -59
  174. package/build/if-check/config/config.d.ts +0 -6
  175. package/build/if-check/config/config.js +0 -31
  176. package/build/if-check/config/index.d.ts +0 -2
  177. package/build/if-check/config/index.js +0 -8
  178. package/build/if-check/config/strings.d.ts +0 -11
  179. package/build/if-check/config/strings.js +0 -15
  180. package/build/if-check/index.d.ts +0 -2
  181. package/build/if-check/index.js +0 -98
  182. package/build/if-check/types/process-args.d.ts +0 -4
  183. package/build/if-check/types/process-args.js +0 -3
  184. package/build/if-check/util/args.d.ts +0 -10
  185. package/build/if-check/util/args.js +0 -56
  186. package/build/if-check/util/helpers.d.ts +0 -4
  187. package/build/if-check/util/helpers.js +0 -18
  188. package/build/if-check/util/npm.d.ts +0 -4
  189. package/build/if-check/util/npm.js +0 -59
  190. package/build/if-csv/config/config.d.ts +0 -6
  191. package/build/if-csv/config/config.js +0 -36
  192. package/build/if-csv/config/index.d.ts +0 -2
  193. package/build/if-csv/config/index.js +0 -8
  194. package/build/if-csv/config/strings.d.ts +0 -3
  195. package/build/if-csv/config/strings.js +0 -7
  196. package/build/if-csv/index.d.ts +0 -2
  197. package/build/if-csv/index.js +0 -63
  198. package/build/if-csv/types/csv.d.ts +0 -7
  199. package/build/if-csv/types/csv.js +0 -3
  200. package/build/if-csv/types/process-args.d.ts +0 -5
  201. package/build/if-csv/types/process-args.js +0 -3
  202. package/build/if-csv/util/args.d.ts +0 -12
  203. package/build/if-csv/util/args.js +0 -47
  204. package/build/if-csv/util/helpers.d.ts +0 -9
  205. package/build/if-csv/util/helpers.js +0 -95
  206. package/build/if-diff/config/config.d.ts +0 -6
  207. package/build/if-diff/config/config.js +0 -31
  208. package/build/if-diff/config/index.d.ts +0 -2
  209. package/build/if-diff/config/index.js +0 -8
  210. package/build/if-diff/config/strings.d.ts +0 -6
  211. package/build/if-diff/config/strings.js +0 -10
  212. package/build/if-diff/index.d.ts +0 -2
  213. package/build/if-diff/index.js +0 -46
  214. package/build/if-diff/lib/compare.d.ts +0 -10
  215. package/build/if-diff/lib/compare.js +0 -56
  216. package/build/if-diff/lib/load.d.ts +0 -55
  217. package/build/if-diff/lib/load.js +0 -51
  218. package/build/if-diff/types/args.d.ts +0 -5
  219. package/build/if-diff/types/args.js +0 -3
  220. package/build/if-diff/types/compare.d.ts +0 -7
  221. package/build/if-diff/types/compare.js +0 -3
  222. package/build/if-diff/types/process-args.d.ts +0 -4
  223. package/build/if-diff/types/process-args.js +0 -3
  224. package/build/if-diff/util/args.d.ts +0 -5
  225. package/build/if-diff/util/args.js +0 -51
  226. package/build/if-diff/util/helpers.d.ts +0 -13
  227. package/build/if-diff/util/helpers.js +0 -75
  228. package/build/if-env/config/config.d.ts +0 -6
  229. package/build/if-env/config/config.js +0 -37
  230. package/build/if-env/config/index.d.ts +0 -2
  231. package/build/if-env/config/index.js +0 -8
  232. package/build/if-env/config/strings.d.ts +0 -7
  233. package/build/if-env/config/strings.js +0 -11
  234. package/build/if-env/index.d.ts +0 -2
  235. package/build/if-env/index.js +0 -40
  236. package/build/if-env/types/if-env.d.ts +0 -8
  237. package/build/if-env/types/if-env.js +0 -3
  238. package/build/if-env/types/npm.d.ts +0 -9
  239. package/build/if-env/types/npm.js +0 -3
  240. package/build/if-env/types/process-args.d.ts +0 -5
  241. package/build/if-env/types/process-args.js +0 -3
  242. package/build/if-env/util/args.d.ts +0 -12
  243. package/build/if-env/util/args.js +0 -47
  244. package/build/if-env/util/helpers.d.ts +0 -20
  245. package/build/if-env/util/helpers.js +0 -94
  246. package/build/if-env/util/npm.d.ts +0 -24
  247. package/build/if-env/util/npm.js +0 -126
  248. package/build/if-merge/config/config.d.ts +0 -6
  249. package/build/if-merge/config/config.js +0 -43
  250. package/build/if-merge/config/index.d.ts +0 -2
  251. package/build/if-merge/config/index.js +0 -8
  252. package/build/if-merge/config/strings.d.ts +0 -5
  253. package/build/if-merge/config/strings.js +0 -9
  254. package/build/if-merge/index.d.ts +0 -2
  255. package/build/if-merge/index.js +0 -26
  256. package/build/if-merge/types/process-args.d.ts +0 -6
  257. package/build/if-merge/types/process-args.js +0 -3
  258. package/build/if-merge/util/args.d.ts +0 -9
  259. package/build/if-merge/util/args.js +0 -59
  260. package/build/if-merge/util/helpers.d.ts +0 -5
  261. package/build/if-merge/util/helpers.js +0 -83
  262. package/build/if-run/builtins/coefficient/index.d.ts +0 -2
  263. package/build/if-run/builtins/coefficient/index.js +0 -67
  264. package/build/if-run/builtins/copy-param/index.d.ts +0 -2
  265. package/build/if-run/builtins/copy-param/index.js +0 -70
  266. package/build/if-run/builtins/csv-lookup/index.d.ts +0 -2
  267. package/build/if-run/builtins/csv-lookup/index.js +0 -190
  268. package/build/if-run/builtins/divide/index.d.ts +0 -2
  269. package/build/if-run/builtins/divide/index.js +0 -80
  270. package/build/if-run/builtins/exponent/index.d.ts +0 -2
  271. package/build/if-run/builtins/exponent/index.js +0 -60
  272. package/build/if-run/builtins/export-log.d.ts +0 -4
  273. package/build/if-run/builtins/export-log.js +0 -44
  274. package/build/if-run/builtins/export-yaml.d.ts +0 -4
  275. package/build/if-run/builtins/export-yaml.js +0 -30
  276. package/build/if-run/builtins/index.d.ts +0 -16
  277. package/build/if-run/builtins/index.js +0 -36
  278. package/build/if-run/builtins/interpolation/index.d.ts +0 -2
  279. package/build/if-run/builtins/interpolation/index.js +0 -151
  280. package/build/if-run/builtins/mock-observations/helpers/common-generator.d.ts +0 -3
  281. package/build/if-run/builtins/mock-observations/helpers/common-generator.js +0 -29
  282. package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.d.ts +0 -3
  283. package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +0 -48
  284. package/build/if-run/builtins/mock-observations/index.d.ts +0 -2
  285. package/build/if-run/builtins/mock-observations/index.js +0 -116
  286. package/build/if-run/builtins/mock-observations/interfaces/index.d.ts +0 -6
  287. package/build/if-run/builtins/mock-observations/interfaces/index.js +0 -3
  288. package/build/if-run/builtins/multiply/index.d.ts +0 -2
  289. package/build/if-run/builtins/multiply/index.js +0 -59
  290. package/build/if-run/builtins/regex/index.d.ts +0 -2
  291. package/build/if-run/builtins/regex/index.js +0 -76
  292. package/build/if-run/builtins/sci/index.d.ts +0 -2
  293. package/build/if-run/builtins/sci/index.js +0 -92
  294. package/build/if-run/builtins/sci-embodied/index.d.ts +0 -2
  295. package/build/if-run/builtins/sci-embodied/index.js +0 -156
  296. package/build/if-run/builtins/shell/index.d.ts +0 -2
  297. package/build/if-run/builtins/shell/index.js +0 -60
  298. package/build/if-run/builtins/subtract/index.d.ts +0 -2
  299. package/build/if-run/builtins/subtract/index.js +0 -61
  300. package/build/if-run/builtins/sum/index.d.ts +0 -2
  301. package/build/if-run/builtins/sum/index.js +0 -66
  302. package/build/if-run/builtins/time-converter/config.d.ts +0 -1
  303. package/build/if-run/builtins/time-converter/config.js +0 -44
  304. package/build/if-run/builtins/time-converter/index.d.ts +0 -2
  305. package/build/if-run/builtins/time-converter/index.js +0 -79
  306. package/build/if-run/builtins/time-sync/index.d.ts +0 -17
  307. package/build/if-run/builtins/time-sync/index.js +0 -339
  308. package/build/if-run/config/config.d.ts +0 -9
  309. package/build/if-run/config/config.js +0 -73
  310. package/build/if-run/config/index.d.ts +0 -2
  311. package/build/if-run/config/index.js +0 -8
  312. package/build/if-run/config/strings.d.ts +0 -64
  313. package/build/if-run/config/strings.js +0 -76
  314. package/build/if-run/index.d.ts +0 -2
  315. package/build/if-run/index.js +0 -63
  316. package/build/if-run/lib/aggregate.d.ts +0 -15
  317. package/build/if-run/lib/aggregate.js +0 -123
  318. package/build/if-run/lib/compute.d.ts +0 -5
  319. package/build/if-run/lib/compute.js +0 -142
  320. package/build/if-run/lib/environment.d.ts +0 -5
  321. package/build/if-run/lib/environment.js +0 -75
  322. package/build/if-run/lib/exhaust.d.ts +0 -7
  323. package/build/if-run/lib/exhaust.js +0 -27
  324. package/build/if-run/lib/explain.d.ts +0 -9
  325. package/build/if-run/lib/explain.js +0 -43
  326. package/build/if-run/lib/initialize.d.ts +0 -6
  327. package/build/if-run/lib/initialize.js +0 -109
  328. package/build/if-run/lib/regroup.d.ts +0 -5
  329. package/build/if-run/lib/regroup.js +0 -64
  330. package/build/if-run/types/aggregation.d.ts +0 -5
  331. package/build/if-run/types/aggregation.js +0 -6
  332. package/build/if-run/types/compute.d.ts +0 -29
  333. package/build/if-run/types/compute.js +0 -3
  334. package/build/if-run/types/environment.d.ts +0 -18
  335. package/build/if-run/types/environment.js +0 -3
  336. package/build/if-run/types/exhaust-plugin-interface.d.ts +0 -7
  337. package/build/if-run/types/exhaust-plugin-interface.js +0 -3
  338. package/build/if-run/types/explain.d.ts +0 -10
  339. package/build/if-run/types/explain.js +0 -3
  340. package/build/if-run/types/interface.d.ts +0 -3
  341. package/build/if-run/types/interface.js +0 -6
  342. package/build/if-run/types/plugin-storage.d.ts +0 -6
  343. package/build/if-run/types/plugin-storage.js +0 -3
  344. package/build/if-run/types/process-args.d.ts +0 -25
  345. package/build/if-run/types/process-args.js +0 -3
  346. package/build/if-run/types/time-sync.d.ts +0 -17
  347. package/build/if-run/types/time-sync.js +0 -3
  348. package/build/if-run/util/aggregation-helper.d.ts +0 -7
  349. package/build/if-run/util/aggregation-helper.js +0 -47
  350. package/build/if-run/util/args.d.ts +0 -9
  351. package/build/if-run/util/args.js +0 -60
  352. package/build/if-run/util/helpers.d.ts +0 -14
  353. package/build/if-run/util/helpers.js +0 -57
  354. package/build/if-run/util/log-memoize.d.ts +0 -3
  355. package/build/if-run/util/log-memoize.js +0 -19
  356. package/build/if-run/util/os-checker.d.ts +0 -7
  357. package/build/if-run/util/os-checker.js +0 -97
  358. package/build/if-run/util/plugin-storage.d.ts +0 -14
  359. package/build/if-run/util/plugin-storage.js +0 -34
  360. package/grafana/IF_GRAFANA_SETUP.md +0 -71
  361. package/grafana/if_grafana_config.json +0 -370
  362. package/manifests/examples/builtins/divide/failure-denominator-equal-zero.yml +0 -38
  363. package/manifests/examples/builtins/interpolation/interpolation.yml +0 -24
  364. package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +0 -23
  365. package/manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml +0 -23
  366. package/manifests/examples/pipelines/scenario-1.yml +0 -34
  367. package/manifests/examples/pipelines/scenario-2.yml +0 -52
  368. package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +0 -72
  369. package/manifests/outputs/builtins/sci-embodied/failure-missing-expected-lifespan.yaml +0 -69
  370. package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +0 -449
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Sci = void 0;
4
- const zod_1 = require("zod");
5
- const utils_1 = require("@grnsft/if-core/utils");
6
- const validations_1 = require("../../../common/util/validations");
7
- const config_1 = require("../../config");
8
- const { MissingInputDataError } = utils_1.ERRORS;
9
- const { MISSING_FUNCTIONAL_UNIT_CONFIG, MISSING_FUNCTIONAL_UNIT_INPUT, SCI_MISSING_FN_UNIT, ZERO_DIVISION, } = config_1.STRINGS;
10
- const Sci = (globalConfig, parametersMetadata) => {
11
- const metadata = {
12
- kind: 'execute',
13
- inputs: {
14
- ...{
15
- carbon: {
16
- description: 'an amount of carbon emitted into the atmosphere',
17
- unit: 'gCO2e',
18
- 'aggregation-method': 'sum',
19
- },
20
- 'functional-unit': {
21
- description: 'the name of the functional unit in which the final SCI value should be expressed, e.g. requests, users',
22
- unit: 'none',
23
- 'aggregation-method': 'sum',
24
- },
25
- },
26
- ...parametersMetadata?.inputs,
27
- },
28
- outputs: parametersMetadata?.outputs || {
29
- sci: {
30
- description: 'carbon expressed in terms of the given functional unit',
31
- unit: 'gCO2e',
32
- 'aggregation-method': 'sum',
33
- },
34
- },
35
- };
36
- /**
37
- * Validates node and gloabl configs.
38
- */
39
- const validateConfig = (config) => {
40
- const schema = zod_1.z
41
- .object({
42
- 'functional-unit': zod_1.z.string(),
43
- })
44
- .refine(data => data['functional-unit'], {
45
- message: MISSING_FUNCTIONAL_UNIT_CONFIG,
46
- });
47
- return (0, validations_1.validate)(schema, config);
48
- };
49
- /**
50
- * Calculate the total emissions for a list of inputs.
51
- */
52
- const execute = (inputs) => inputs.map((input, index) => {
53
- const safeInput = validateInput(input);
54
- const functionalUnit = input[globalConfig['functional-unit']];
55
- if (functionalUnit === 0) {
56
- console.warn(ZERO_DIVISION(exports.Sci.name, index));
57
- return {
58
- ...input,
59
- sci: safeInput['carbon'],
60
- };
61
- }
62
- return {
63
- ...input,
64
- sci: safeInput['carbon'] / functionalUnit,
65
- };
66
- });
67
- /**
68
- * Checks for fields in input.
69
- */
70
- const validateInput = (input) => {
71
- const validatedConfig = validateConfig(globalConfig);
72
- if (!(validatedConfig['functional-unit'] in input &&
73
- input[validatedConfig['functional-unit']] >= 0)) {
74
- throw new MissingInputDataError(MISSING_FUNCTIONAL_UNIT_INPUT);
75
- }
76
- const schema = zod_1.z
77
- .object({
78
- carbon: zod_1.z.number().gte(0),
79
- duration: zod_1.z.number().gte(1),
80
- })
81
- .refine(validations_1.allDefined, {
82
- message: SCI_MISSING_FN_UNIT(globalConfig['functional-unit']),
83
- });
84
- return (0, validations_1.validate)(schema, input);
85
- };
86
- return {
87
- metadata,
88
- execute,
89
- };
90
- };
91
- exports.Sci = Sci;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NjaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFDdEIsaURBQTZDO0FBUzdDLGtFQUFzRTtBQUV0RSx5Q0FBcUM7QUFFckMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ3ZDLE1BQU0sRUFDSiw4QkFBOEIsRUFDOUIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQixhQUFhLEdBQ2QsR0FBRyxnQkFBTyxDQUFDO0FBRUwsTUFBTSxHQUFHLEdBQUcsQ0FDakIsWUFBMEIsRUFDMUIsa0JBQTRDLEVBQzdCLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRTtZQUNOLEdBQUk7Z0JBQ0YsTUFBTSxFQUFFO29CQUNOLFdBQVcsRUFBRSxpREFBaUQ7b0JBQzlELElBQUksRUFBRSxPQUFPO29CQUNiLG9CQUFvQixFQUFFLEtBQUs7aUJBQzVCO2dCQUNELGlCQUFpQixFQUFFO29CQUNqQixXQUFXLEVBQ1Qsd0dBQXdHO29CQUMxRyxJQUFJLEVBQUUsTUFBTTtvQkFDWixvQkFBb0IsRUFBRSxLQUFLO2lCQUM1QjthQUNvQjtZQUN2QixHQUFHLGtCQUFrQixFQUFFLE1BQU07U0FDOUI7UUFDRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxJQUFJO1lBQ3RDLEdBQUcsRUFBRTtnQkFDSCxXQUFXLEVBQUUsd0RBQXdEO2dCQUNyRSxJQUFJLEVBQUUsT0FBTztnQkFDYixvQkFBb0IsRUFBRSxLQUFLO2FBQzVCO1NBQ0Y7S0FDRixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04saUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtTQUM5QixDQUFDO2FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLDhCQUE4QjtTQUN4QyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFLENBQ3pELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDMUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUM7YUFDekIsQ0FBQztTQUNIO1FBRUQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYztTQUMxQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFTDs7T0FFRztJQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxJQUNFLENBQUMsQ0FDQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLO1lBQzNDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDL0MsRUFDRDtZQUNBLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQzthQUNiLE1BQU0sQ0FBQztZQUNOLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUIsQ0FBQzthQUNELE1BQU0sQ0FBQyx3QkFBVSxFQUFFO1lBQ2xCLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM5RCxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFwR1csUUFBQSxHQUFHLE9Bb0dkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIENvbmZpZ1BhcmFtcyxcbiAgUGx1Z2luUGFyYW1ldGVyc01ldGFkYXRhLFxuICBQYXJhbWV0ZXJNZXRhZGF0YSxcbn0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHt2YWxpZGF0ZSwgYWxsRGVmaW5lZH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtNaXNzaW5nSW5wdXREYXRhRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1xuICBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9DT05GSUcsXG4gIE1JU1NJTkdfRlVOQ1RJT05BTF9VTklUX0lOUFVULFxuICBTQ0lfTUlTU0lOR19GTl9VTklULFxuICBaRVJPX0RJVklTSU9OLFxufSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBTY2kgPSAoXG4gIGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zLFxuICBwYXJhbWV0ZXJzTWV0YWRhdGE6IFBsdWdpblBhcmFtZXRlcnNNZXRhZGF0YVxuKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgICBpbnB1dHM6IHtcbiAgICAgIC4uLih7XG4gICAgICAgIGNhcmJvbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnYW4gYW1vdW50IG9mIGNhcmJvbiBlbWl0dGVkIGludG8gdGhlIGF0bW9zcGhlcmUnLFxuICAgICAgICAgIHVuaXQ6ICdnQ08yZScsXG4gICAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6ICdzdW0nLFxuICAgICAgICB9LFxuICAgICAgICAnZnVuY3Rpb25hbC11bml0Jzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ3RoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbmFsIHVuaXQgaW4gd2hpY2ggdGhlIGZpbmFsIFNDSSB2YWx1ZSBzaG91bGQgYmUgZXhwcmVzc2VkLCBlLmcuIHJlcXVlc3RzLCB1c2VycycsXG4gICAgICAgICAgdW5pdDogJ25vbmUnLFxuICAgICAgICAgICdhZ2dyZWdhdGlvbi1tZXRob2QnOiAnc3VtJyxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgUGFyYW1ldGVyTWV0YWRhdGEpLFxuICAgICAgLi4ucGFyYW1ldGVyc01ldGFkYXRhPy5pbnB1dHMsXG4gICAgfSxcbiAgICBvdXRwdXRzOiBwYXJhbWV0ZXJzTWV0YWRhdGE/Lm91dHB1dHMgfHwge1xuICAgICAgc2NpOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnY2FyYm9uIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiB0aGUgZ2l2ZW4gZnVuY3Rpb25hbCB1bml0JyxcbiAgICAgICAgdW5pdDogJ2dDTzJlJyxcbiAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6ICdzdW0nLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgbm9kZSBhbmQgZ2xvYWJsIGNvbmZpZ3MuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUNvbmZpZyA9IChjb25maWc/OiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6IHouc3RyaW5nKCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShkYXRhID0+IGRhdGFbJ2Z1bmN0aW9uYWwtdW5pdCddLCB7XG4gICAgICAgIG1lc3NhZ2U6IE1JU1NJTkdfRlVOQ1RJT05BTF9VTklUX0NPTkZJRyxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSB0b3RhbCBlbWlzc2lvbnMgZm9yIGEgbGlzdCBvZiBpbnB1dHMuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pOiBQbHVnaW5QYXJhbXNbXSA9PlxuICAgIGlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gdmFsaWRhdGVJbnB1dChpbnB1dCk7XG4gICAgICBjb25zdCBmdW5jdGlvbmFsVW5pdCA9IGlucHV0W2dsb2JhbENvbmZpZ1snZnVuY3Rpb25hbC11bml0J11dO1xuXG4gICAgICBpZiAoZnVuY3Rpb25hbFVuaXQgPT09IDApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFpFUk9fRElWSVNJT04oU2NpLm5hbWUsIGluZGV4KSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICBzY2k6IHNhZmVJbnB1dFsnY2FyYm9uJ10sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBzY2k6IHNhZmVJbnB1dFsnY2FyYm9uJ10gLyBmdW5jdGlvbmFsVW5pdCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVJbnB1dCA9IChpbnB1dDogUGx1Z2luUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoZ2xvYmFsQ29uZmlnKTtcblxuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIHZhbGlkYXRlZENvbmZpZ1snZnVuY3Rpb25hbC11bml0J10gaW4gaW5wdXQgJiZcbiAgICAgICAgaW5wdXRbdmFsaWRhdGVkQ29uZmlnWydmdW5jdGlvbmFsLXVuaXQnXV0gPj0gMFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IE1pc3NpbmdJbnB1dERhdGFFcnJvcihNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9JTlBVVCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIGNhcmJvbjogei5udW1iZXIoKS5ndGUoMCksXG4gICAgICAgIGR1cmF0aW9uOiB6Lm51bWJlcigpLmd0ZSgxKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGFsbERlZmluZWQsIHtcbiAgICAgICAgbWVzc2FnZTogU0NJX01JU1NJTkdfRk5fVU5JVChnbG9iYWxDb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddKSxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, PluginParametersMetadata } from '@grnsft/if-core/types';
2
- export declare const SciEmbodied: (parametersMetadata: PluginParametersMetadata) => ExecutePlugin;
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SciEmbodied = void 0;
4
- const zod_1 = require("zod");
5
- const validations_1 = require("../../../common/util/validations");
6
- const config_1 = require("../../config");
7
- const { SCI_EMBODIED_ERROR } = config_1.STRINGS;
8
- const SciEmbodied = (parametersMetadata) => {
9
- const metadata = {
10
- kind: 'execute',
11
- inputs: {
12
- ...{
13
- 'device/emissions-embodied': {
14
- description: 'total embodied emissions of some component',
15
- unit: 'gCO2e',
16
- 'aggregation-method': 'sum',
17
- },
18
- 'device/expected-lifespan': {
19
- description: 'Total Expected Lifespan of the Component in Seconds',
20
- unit: 'seconds',
21
- 'aggregation-method': 'sum',
22
- },
23
- 'resources-reserved': {
24
- description: 'resources reserved for an application',
25
- unit: 'count',
26
- 'aggregation-method': 'none',
27
- },
28
- 'resources-total': {
29
- description: 'total resources available',
30
- unit: 'count',
31
- 'aggregation-method': 'none',
32
- },
33
- 'vcpus-allocated': {
34
- description: 'number of vcpus allocated to particular resource',
35
- unit: 'count',
36
- 'aggregation-method': 'none',
37
- },
38
- 'vcpus-total': {
39
- description: 'total number of vcpus available on a particular resource',
40
- unit: 'count',
41
- 'aggregation-method': 'none',
42
- },
43
- },
44
- ...parametersMetadata?.inputs,
45
- },
46
- outputs: parametersMetadata?.outputs || {
47
- 'carbon-embodied': {
48
- description: 'embodied emissions of the component',
49
- unit: 'gCO2e',
50
- 'aggregation-method': 'sum',
51
- },
52
- },
53
- };
54
- const METRICS = [
55
- 'device/emissions-embodied',
56
- 'device/expected-lifespan',
57
- 'resources-reserved',
58
- 'vcpus-allocated',
59
- 'resources-total',
60
- 'vcpus-total',
61
- ];
62
- /**
63
- * Calculate the Embodied carbon for a list of inputs.
64
- */
65
- const execute = (inputs) => inputs.map(input => {
66
- const safeInput = validateInput(input);
67
- return {
68
- ...input,
69
- 'carbon-embodied': calculateEmbodiedCarbon(safeInput),
70
- };
71
- });
72
- /**
73
- * Calculate the Embodied carbon for the input.
74
- * M = totalEmissions * (duration/ExpectedLifespan) * (resourcesReserved/totalResources)
75
- */
76
- const calculateEmbodiedCarbon = (input) => {
77
- const totalEmissions = input['device/emissions-embodied'];
78
- const duration = input['duration'];
79
- const expectedLifespan = input['device/expected-lifespan'];
80
- const resourcesReserved = input['vcpus-allocated'] || input['resources-reserved'];
81
- const totalResources = input['vcpus-total'] || input['resources-total'];
82
- return (totalEmissions *
83
- (duration / expectedLifespan) *
84
- (resourcesReserved / totalResources));
85
- };
86
- /**
87
- * Checks for required fields in input.
88
- */
89
- const validateInput = (input) => {
90
- const commonSchemaPart = (errorMessage) => ({
91
- 'device/emissions-embodied': zod_1.z
92
- .number({
93
- invalid_type_error: errorMessage('gCO2e'),
94
- })
95
- .gte(0)
96
- .min(0),
97
- 'device/expected-lifespan': zod_1.z
98
- .number({
99
- invalid_type_error: errorMessage('gCO2e'),
100
- })
101
- .gte(0)
102
- .min(0),
103
- duration: zod_1.z
104
- .number({
105
- invalid_type_error: errorMessage('seconds'),
106
- })
107
- .gte(1),
108
- });
109
- const vcpusSchemaPart = {
110
- 'vcpus-allocated': zod_1.z
111
- .number({
112
- invalid_type_error: SCI_EMBODIED_ERROR('count'),
113
- })
114
- .gte(0)
115
- .min(0),
116
- 'vcpus-total': zod_1.z
117
- .number({
118
- invalid_type_error: SCI_EMBODIED_ERROR('count'),
119
- })
120
- .gte(0)
121
- .min(0),
122
- };
123
- const resourcesSchemaPart = {
124
- 'resources-reserved': zod_1.z
125
- .number({
126
- invalid_type_error: SCI_EMBODIED_ERROR('count'),
127
- })
128
- .gte(0)
129
- .min(0),
130
- 'resources-total': zod_1.z
131
- .number({
132
- invalid_type_error: SCI_EMBODIED_ERROR('count'),
133
- })
134
- .gte(0)
135
- .min(0),
136
- };
137
- const schemaWithVcpus = zod_1.z.object({
138
- ...commonSchemaPart(SCI_EMBODIED_ERROR),
139
- ...vcpusSchemaPart,
140
- });
141
- const schemaWithResources = zod_1.z.object({
142
- ...commonSchemaPart(SCI_EMBODIED_ERROR),
143
- ...resourcesSchemaPart,
144
- });
145
- const schema = schemaWithVcpus.or(schemaWithResources).refine(validations_1.allDefined, {
146
- message: `All ${METRICS} should be present.`,
147
- });
148
- return (0, validations_1.validate)(schema, input);
149
- };
150
- return {
151
- metadata,
152
- execute,
153
- };
154
- };
155
- exports.SciEmbodied = SciEmbodied;
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NjaS1lbWJvZGllZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFRdEIsa0VBQXNFO0FBRXRFLHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRTlCLE1BQU0sV0FBVyxHQUFHLENBQ3pCLGtCQUE0QyxFQUM3QixFQUFFO0lBQ2pCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUU7WUFDTixHQUFJO2dCQUNGLDJCQUEyQixFQUFFO29CQUMzQixXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxJQUFJLEVBQUUsT0FBTztvQkFDYixvQkFBb0IsRUFBRSxLQUFLO2lCQUM1QjtnQkFDRCwwQkFBMEIsRUFBRTtvQkFDMUIsV0FBVyxFQUFFLHFEQUFxRDtvQkFDbEUsSUFBSSxFQUFFLFNBQVM7b0JBQ2Ysb0JBQW9CLEVBQUUsS0FBSztpQkFDNUI7Z0JBQ0Qsb0JBQW9CLEVBQUU7b0JBQ3BCLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELElBQUksRUFBRSxPQUFPO29CQUNiLG9CQUFvQixFQUFFLE1BQU07aUJBQzdCO2dCQUNELGlCQUFpQixFQUFFO29CQUNqQixXQUFXLEVBQUUsMkJBQTJCO29CQUN4QyxJQUFJLEVBQUUsT0FBTztvQkFDYixvQkFBb0IsRUFBRSxNQUFNO2lCQUM3QjtnQkFDRCxpQkFBaUIsRUFBRTtvQkFDakIsV0FBVyxFQUFFLGtEQUFrRDtvQkFDL0QsSUFBSSxFQUFFLE9BQU87b0JBQ2Isb0JBQW9CLEVBQUUsTUFBTTtpQkFDN0I7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLFdBQVcsRUFDVCwwREFBMEQ7b0JBQzVELElBQUksRUFBRSxPQUFPO29CQUNiLG9CQUFvQixFQUFFLE1BQU07aUJBQzdCO2FBQ29CO1lBQ3ZCLEdBQUcsa0JBQWtCLEVBQUUsTUFBTTtTQUM5QjtRQUNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLElBQUk7WUFDdEMsaUJBQWlCLEVBQUU7Z0JBQ2pCLFdBQVcsRUFBRSxxQ0FBcUM7Z0JBQ2xELElBQUksRUFBRSxPQUFPO2dCQUNiLG9CQUFvQixFQUFFLEtBQUs7YUFDNUI7U0FDRjtLQUNGLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRztRQUNkLDJCQUEyQjtRQUMzQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsYUFBYTtLQUNkLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFLENBQ3pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7U0FDdEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUw7OztPQUdHO0lBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN0RCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMxRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUNyQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFeEUsT0FBTyxDQUNMLGNBQWM7WUFDZCxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztZQUM3QixDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxDQUNyQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUM1QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBc0MsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSwyQkFBMkIsRUFBRSxPQUFDO2lCQUMzQixNQUFNLENBQUM7Z0JBQ04sa0JBQWtCLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQzthQUMxQyxDQUFDO2lCQUNELEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNULDBCQUEwQixFQUFFLE9BQUM7aUJBQzFCLE1BQU0sQ0FBQztnQkFDTixrQkFBa0IsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDO2FBQzFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDTixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ1QsUUFBUSxFQUFFLE9BQUM7aUJBQ1IsTUFBTSxDQUFDO2dCQUNOLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUM7YUFDNUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUc7WUFDdEIsaUJBQWlCLEVBQUUsT0FBQztpQkFDakIsTUFBTSxDQUFDO2dCQUNOLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQzthQUNoRCxDQUFDO2lCQUNELEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNULGFBQWEsRUFBRSxPQUFDO2lCQUNiLE1BQU0sQ0FBQztnQkFDTixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7YUFDaEQsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDVixDQUFDO1FBRUYsTUFBTSxtQkFBbUIsR0FBRztZQUMxQixvQkFBb0IsRUFBRSxPQUFDO2lCQUNwQixNQUFNLENBQUM7Z0JBQ04sa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDO2FBQ2hELENBQUM7aUJBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDTixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ1QsaUJBQWlCLEVBQUUsT0FBQztpQkFDakIsTUFBTSxDQUFDO2dCQUNOLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQzthQUNoRCxDQUFDO2lCQUNELEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ04sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNWLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQy9CLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUM7WUFDdkMsR0FBRyxlQUFlO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sbUJBQW1CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNuQyxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO1lBQ3ZDLEdBQUcsbUJBQW1CO1NBQ3ZCLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsd0JBQVUsRUFBRTtZQUN4RSxPQUFPLEVBQUUsT0FBTyxPQUFPLHFCQUFxQjtTQUM3QyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFyS1csUUFBQSxXQUFXLGVBcUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7XG4gIEV4ZWN1dGVQbHVnaW4sXG4gIFBhcmFtZXRlck1ldGFkYXRhLFxuICBQbHVnaW5QYXJhbWV0ZXJzTWV0YWRhdGEsXG4gIFBsdWdpblBhcmFtcyxcbn0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHt2YWxpZGF0ZSwgYWxsRGVmaW5lZH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtTQ0lfRU1CT0RJRURfRVJST1J9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFNjaUVtYm9kaWVkID0gKFxuICBwYXJhbWV0ZXJzTWV0YWRhdGE6IFBsdWdpblBhcmFtZXRlcnNNZXRhZGF0YVxuKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgICBpbnB1dHM6IHtcbiAgICAgIC4uLih7XG4gICAgICAgICdkZXZpY2UvZW1pc3Npb25zLWVtYm9kaWVkJzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAndG90YWwgZW1ib2RpZWQgZW1pc3Npb25zIG9mIHNvbWUgY29tcG9uZW50JyxcbiAgICAgICAgICB1bml0OiAnZ0NPMmUnLFxuICAgICAgICAgICdhZ2dyZWdhdGlvbi1tZXRob2QnOiAnc3VtJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ2RldmljZS9leHBlY3RlZC1saWZlc3Bhbic6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIEV4cGVjdGVkIExpZmVzcGFuIG9mIHRoZSBDb21wb25lbnQgaW4gU2Vjb25kcycsXG4gICAgICAgICAgdW5pdDogJ3NlY29uZHMnLFxuICAgICAgICAgICdhZ2dyZWdhdGlvbi1tZXRob2QnOiAnc3VtJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ3Jlc291cmNlcy1yZXNlcnZlZCc6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ3Jlc291cmNlcyByZXNlcnZlZCBmb3IgYW4gYXBwbGljYXRpb24nLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcsXG4gICAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6ICdub25lJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ3Jlc291cmNlcy10b3RhbCc6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ3RvdGFsIHJlc291cmNlcyBhdmFpbGFibGUnLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcsXG4gICAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6ICdub25lJyxcbiAgICAgICAgfSxcbiAgICAgICAgJ3ZjcHVzLWFsbG9jYXRlZCc6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ251bWJlciBvZiB2Y3B1cyBhbGxvY2F0ZWQgdG8gcGFydGljdWxhciByZXNvdXJjZScsXG4gICAgICAgICAgdW5pdDogJ2NvdW50JyxcbiAgICAgICAgICAnYWdncmVnYXRpb24tbWV0aG9kJzogJ25vbmUnLFxuICAgICAgICB9LFxuICAgICAgICAndmNwdXMtdG90YWwnOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAndG90YWwgbnVtYmVyIG9mIHZjcHVzIGF2YWlsYWJsZSBvbiBhIHBhcnRpY3VsYXIgcmVzb3VyY2UnLFxuICAgICAgICAgIHVuaXQ6ICdjb3VudCcsXG4gICAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6ICdub25lJyxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgUGFyYW1ldGVyTWV0YWRhdGEpLFxuICAgICAgLi4ucGFyYW1ldGVyc01ldGFkYXRhPy5pbnB1dHMsXG4gICAgfSxcbiAgICBvdXRwdXRzOiBwYXJhbWV0ZXJzTWV0YWRhdGE/Lm91dHB1dHMgfHwge1xuICAgICAgJ2NhcmJvbi1lbWJvZGllZCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdlbWJvZGllZCBlbWlzc2lvbnMgb2YgdGhlIGNvbXBvbmVudCcsXG4gICAgICAgIHVuaXQ6ICdnQ08yZScsXG4gICAgICAgICdhZ2dyZWdhdGlvbi1tZXRob2QnOiAnc3VtJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBNRVRSSUNTID0gW1xuICAgICdkZXZpY2UvZW1pc3Npb25zLWVtYm9kaWVkJyxcbiAgICAnZGV2aWNlL2V4cGVjdGVkLWxpZmVzcGFuJyxcbiAgICAncmVzb3VyY2VzLXJlc2VydmVkJyxcbiAgICAndmNwdXMtYWxsb2NhdGVkJyxcbiAgICAncmVzb3VyY2VzLXRvdGFsJyxcbiAgICAndmNwdXMtdG90YWwnLFxuICBdO1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIEVtYm9kaWVkIGNhcmJvbiBmb3IgYSBsaXN0IG9mIGlucHV0cy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT5cbiAgICBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIGNvbnN0IHNhZmVJbnB1dCA9IHZhbGlkYXRlSW5wdXQoaW5wdXQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgJ2NhcmJvbi1lbWJvZGllZCc6IGNhbGN1bGF0ZUVtYm9kaWVkQ2FyYm9uKHNhZmVJbnB1dCksXG4gICAgICB9O1xuICAgIH0pO1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIEVtYm9kaWVkIGNhcmJvbiBmb3IgdGhlIGlucHV0LlxuICAgKiBNID0gdG90YWxFbWlzc2lvbnMgKiAoZHVyYXRpb24vRXhwZWN0ZWRMaWZlc3BhbikgKiAocmVzb3VyY2VzUmVzZXJ2ZWQvdG90YWxSZXNvdXJjZXMpXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVFbWJvZGllZENhcmJvbiA9IChpbnB1dDogUGx1Z2luUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgdG90YWxFbWlzc2lvbnMgPSBpbnB1dFsnZGV2aWNlL2VtaXNzaW9ucy1lbWJvZGllZCddO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gaW5wdXRbJ2R1cmF0aW9uJ107XG4gICAgY29uc3QgZXhwZWN0ZWRMaWZlc3BhbiA9IGlucHV0WydkZXZpY2UvZXhwZWN0ZWQtbGlmZXNwYW4nXTtcbiAgICBjb25zdCByZXNvdXJjZXNSZXNlcnZlZCA9XG4gICAgICBpbnB1dFsndmNwdXMtYWxsb2NhdGVkJ10gfHwgaW5wdXRbJ3Jlc291cmNlcy1yZXNlcnZlZCddO1xuICAgIGNvbnN0IHRvdGFsUmVzb3VyY2VzID0gaW5wdXRbJ3ZjcHVzLXRvdGFsJ10gfHwgaW5wdXRbJ3Jlc291cmNlcy10b3RhbCddO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRvdGFsRW1pc3Npb25zICpcbiAgICAgIChkdXJhdGlvbiAvIGV4cGVjdGVkTGlmZXNwYW4pICpcbiAgICAgIChyZXNvdXJjZXNSZXNlcnZlZCAvIHRvdGFsUmVzb3VyY2VzKVxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVJbnB1dCA9IChpbnB1dDogUGx1Z2luUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgY29tbW9uU2NoZW1hUGFydCA9IChlcnJvck1lc3NhZ2U6ICh1bml0OiBzdHJpbmcpID0+IHN0cmluZykgPT4gKHtcbiAgICAgICdkZXZpY2UvZW1pc3Npb25zLWVtYm9kaWVkJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IGVycm9yTWVzc2FnZSgnZ0NPMmUnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgICAgJ2RldmljZS9leHBlY3RlZC1saWZlc3Bhbic6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBlcnJvck1lc3NhZ2UoJ2dDTzJlJyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICAgIGR1cmF0aW9uOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogZXJyb3JNZXNzYWdlKCdzZWNvbmRzJyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMSksXG4gICAgfSk7XG5cbiAgICBjb25zdCB2Y3B1c1NjaGVtYVBhcnQgPSB7XG4gICAgICAndmNwdXMtYWxsb2NhdGVkJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IFNDSV9FTUJPRElFRF9FUlJPUignY291bnQnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgICAgJ3ZjcHVzLXRvdGFsJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IFNDSV9FTUJPRElFRF9FUlJPUignY291bnQnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNvdXJjZXNTY2hlbWFQYXJ0ID0ge1xuICAgICAgJ3Jlc291cmNlcy1yZXNlcnZlZCc6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBTQ0lfRU1CT0RJRURfRVJST1IoJ2NvdW50JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICAgICdyZXNvdXJjZXMtdG90YWwnOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogU0NJX0VNQk9ESUVEX0VSUk9SKCdjb3VudCcpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYVdpdGhWY3B1cyA9IHoub2JqZWN0KHtcbiAgICAgIC4uLmNvbW1vblNjaGVtYVBhcnQoU0NJX0VNQk9ESUVEX0VSUk9SKSxcbiAgICAgIC4uLnZjcHVzU2NoZW1hUGFydCxcbiAgICB9KTtcbiAgICBjb25zdCBzY2hlbWFXaXRoUmVzb3VyY2VzID0gei5vYmplY3Qoe1xuICAgICAgLi4uY29tbW9uU2NoZW1hUGFydChTQ0lfRU1CT0RJRURfRVJST1IpLFxuICAgICAgLi4ucmVzb3VyY2VzU2NoZW1hUGFydCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IHNjaGVtYVdpdGhWY3B1cy5vcihzY2hlbWFXaXRoUmVzb3VyY2VzKS5yZWZpbmUoYWxsRGVmaW5lZCwge1xuICAgICAgbWVzc2FnZTogYEFsbCAke01FVFJJQ1N9IHNob3VsZCBiZSBwcmVzZW50LmAsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2Ygc2NoZW1hPj4oc2NoZW1hLCBpbnB1dCk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, ConfigParams, PluginParametersMetadata } from '@grnsft/if-core/types';
2
- export declare const Shell: (globalConfig: ConfigParams, parametersMetadata: PluginParametersMetadata) => ExecutePlugin;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Shell = void 0;
4
- const child_process_1 = require("child_process");
5
- const js_yaml_1 = require("js-yaml");
6
- const zod_1 = require("zod");
7
- const utils_1 = require("@grnsft/if-core/utils");
8
- const validations_1 = require("../../../common/util/validations");
9
- const { ProcessExecutionError } = utils_1.ERRORS;
10
- const Shell = (globalConfig, parametersMetadata) => {
11
- const metadata = {
12
- kind: 'execute',
13
- inputs: parametersMetadata?.inputs,
14
- outputs: parametersMetadata?.outputs,
15
- };
16
- /**
17
- * Calculate the total emissions for a list of inputs.
18
- */
19
- const execute = (inputs) => {
20
- const inputWithConfig = Object.assign({}, inputs[0], validateConfig());
21
- const command = inputWithConfig.command;
22
- const inputAsString = (0, js_yaml_1.dump)(inputs, { indent: 2 });
23
- const results = runModelInShell(inputAsString, command);
24
- return results?.outputs?.flat();
25
- };
26
- /**
27
- * Checks for required fields in input.
28
- */
29
- const validateConfig = () => {
30
- const schema = zod_1.z.object({
31
- command: zod_1.z.string(),
32
- });
33
- return (0, validations_1.validate)(schema, globalConfig);
34
- };
35
- /**
36
- * Runs the model in a shell. Spawns a child process to run an external IMP,
37
- * an executable with a CLI exposing two methods: `--execute` and `--manifest`.
38
- * The shell command then calls the `--command` method passing var manifest as the path to the desired manifest file.
39
- */
40
- const runModelInShell = (input, command) => {
41
- try {
42
- const [executable, ...args] = command.split(' ');
43
- const result = (0, child_process_1.spawnSync)(executable, args, {
44
- input,
45
- encoding: 'utf8',
46
- });
47
- const outputs = (0, js_yaml_1.loadAll)(result.stdout);
48
- return { outputs };
49
- }
50
- catch (error) {
51
- throw new ProcessExecutionError(error.message);
52
- }
53
- };
54
- return {
55
- metadata,
56
- execute,
57
- };
58
- };
59
- exports.Shell = Shell;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NoZWxsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUEwRDtBQUUxRCxxQ0FBc0M7QUFDdEMsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQVE3QyxrRUFBMEQ7QUFFMUQsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRWhDLE1BQU0sS0FBSyxHQUFHLENBQ25CLFlBQTBCLEVBQzFCLGtCQUE0QyxFQUM3QixFQUFFO0lBQ2pCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTTtRQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTztLQUNyQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQVMsRUFBRTtRQUNoRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sYUFBYSxHQUFXLElBQUEsY0FBSSxFQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEQsT0FBTyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLEVBQUU7UUFDekQsSUFBSTtZQUNGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWpELE1BQU0sTUFBTSxHQUE2QixJQUFBLHlCQUFTLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtnQkFDbkUsS0FBSztnQkFDTCxRQUFRLEVBQUUsTUFBTTthQUNqQixDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFBLGlCQUFPLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXZDLE9BQU8sRUFBQyxPQUFPLEVBQUMsQ0FBQztTQUNsQjtRQUFDLE9BQU8sS0FBVSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMURXLFFBQUEsS0FBSyxTQTBEaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3NwYXduU3luYywgU3Bhd25TeW5jUmV0dXJuc30gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmltcG9ydCB7bG9hZEFsbCwgZHVtcH0gZnJvbSAnanMteWFtbCc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIEV4ZWN1dGVQbHVnaW4sXG4gIFBsdWdpblBhcmFtcyxcbiAgQ29uZmlnUGFyYW1zLFxuICBQbHVnaW5QYXJhbWV0ZXJzTWV0YWRhdGEsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuY29uc3Qge1Byb2Nlc3NFeGVjdXRpb25FcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBTaGVsbCA9IChcbiAgZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMsXG4gIHBhcmFtZXRlcnNNZXRhZGF0YTogUGx1Z2luUGFyYW1ldGVyc01ldGFkYXRhXG4pOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICAgIGlucHV0czogcGFyYW1ldGVyc01ldGFkYXRhPy5pbnB1dHMsXG4gICAgb3V0cHV0czogcGFyYW1ldGVyc01ldGFkYXRhPy5vdXRwdXRzLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHRvdGFsIGVtaXNzaW9ucyBmb3IgYSBsaXN0IG9mIGlucHV0cy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSk6IGFueVtdID0+IHtcbiAgICBjb25zdCBpbnB1dFdpdGhDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBpbnB1dHNbMF0sIHZhbGlkYXRlQ29uZmlnKCkpO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBpbnB1dFdpdGhDb25maWcuY29tbWFuZDtcbiAgICBjb25zdCBpbnB1dEFzU3RyaW5nOiBzdHJpbmcgPSBkdW1wKGlucHV0cywge2luZGVudDogMn0pO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBydW5Nb2RlbEluU2hlbGwoaW5wdXRBc1N0cmluZywgY29tbWFuZCk7XG5cbiAgICByZXR1cm4gcmVzdWx0cz8ub3V0cHV0cz8uZmxhdCgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIGNvbW1hbmQ6IHouc3RyaW5nKCksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2Ygc2NoZW1hPj4oc2NoZW1hLCBnbG9iYWxDb25maWcpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSdW5zIHRoZSBtb2RlbCBpbiBhIHNoZWxsLiBTcGF3bnMgYSBjaGlsZCBwcm9jZXNzIHRvIHJ1biBhbiBleHRlcm5hbCBJTVAsXG4gICAqIGFuIGV4ZWN1dGFibGUgd2l0aCBhIENMSSBleHBvc2luZyB0d28gbWV0aG9kczogYC0tZXhlY3V0ZWAgYW5kIGAtLW1hbmlmZXN0YC5cbiAgICogVGhlIHNoZWxsIGNvbW1hbmQgdGhlbiBjYWxscyB0aGUgYC0tY29tbWFuZGAgbWV0aG9kIHBhc3NpbmcgdmFyIG1hbmlmZXN0IGFzIHRoZSBwYXRoIHRvIHRoZSBkZXNpcmVkIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBjb25zdCBydW5Nb2RlbEluU2hlbGwgPSAoaW5wdXQ6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoJyAnKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTcGF3blN5bmNSZXR1cm5zPHN0cmluZz4gPSBzcGF3blN5bmMoZXhlY3V0YWJsZSwgYXJncywge1xuICAgICAgICBpbnB1dCxcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IGxvYWRBbGwocmVzdWx0LnN0ZG91dCk7XG5cbiAgICAgIHJldHVybiB7b3V0cHV0c307XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IFByb2Nlc3NFeGVjdXRpb25FcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, PluginParametersMetadata, SubtractConfig } from '@grnsft/if-core/types';
2
- export declare const Subtract: (globalConfig: SubtractConfig, parametersMetadata: PluginParametersMetadata) => ExecutePlugin;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subtract = void 0;
4
- const zod_1 = require("zod");
5
- const validations_1 = require("../../../common/util/validations");
6
- const Subtract = (globalConfig, parametersMetadata) => {
7
- const metadata = {
8
- kind: 'execute',
9
- inputs: parametersMetadata?.inputs,
10
- outputs: parametersMetadata?.outputs,
11
- };
12
- /**
13
- * Checks global config value are valid.
14
- */
15
- const validateGlobalConfig = () => {
16
- const globalConfigSchema = zod_1.z.object({
17
- 'input-parameters': zod_1.z.array(zod_1.z.string()),
18
- 'output-parameter': zod_1.z.string().min(1),
19
- });
20
- return (0, validations_1.validate)(globalConfigSchema, globalConfig);
21
- };
22
- /**
23
- * Checks for required fields in input.
24
- */
25
- const validateSingleInput = (input, inputParameters) => {
26
- const inputData = inputParameters.reduce((acc, param) => {
27
- acc[param] = input[param];
28
- return acc;
29
- }, {});
30
- const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
31
- (0, validations_1.validate)(validationSchema, inputData);
32
- return input;
33
- };
34
- /**
35
- * Subtract items from inputParams[1..n] from inputParams[0] and write the result in a new param outputParam.
36
- */
37
- const execute = (inputs) => {
38
- const { 'input-parameters': inputParameters, 'output-parameter': outputParameter, } = validateGlobalConfig();
39
- return inputs.map(input => {
40
- validateSingleInput(input, inputParameters);
41
- return {
42
- ...input,
43
- [outputParameter]: calculateDiff(input, inputParameters),
44
- };
45
- });
46
- };
47
- /**
48
- * Calculates the diff between the 1st item in the inputs nad the rest of the items
49
- */
50
- const calculateDiff = (input, inputParameters) => {
51
- const [firstItem, ...restItems] = inputParameters;
52
- return restItems.reduce((accumulator, metricToSubtract) => accumulator - input[metricToSubtract], input[firstItem] // Starting accumulator with the value of the first item
53
- );
54
- };
55
- return {
56
- metadata,
57
- execute,
58
- };
59
- };
60
- exports.Subtract = Subtract;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3N1YnRyYWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQVF0QixrRUFBMEQ7QUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsWUFBNEIsRUFDNUIsa0JBQTRDLEVBQzdCLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNO1FBQ2xDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPO0tBQ3JDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFDYixrQkFBa0IsRUFDbEIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsS0FBbUIsRUFDbkIsZUFBeUIsRUFDekIsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQ3RDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFDRCxFQUE0QixDQUM3QixDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUxRCxJQUFBLHNCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBa0IsRUFBRTtRQUN6RCxNQUFNLEVBQ0osa0JBQWtCLEVBQUUsZUFBZSxFQUNuQyxrQkFBa0IsRUFBRSxlQUFlLEdBQ3BDLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUUzQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTVDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUM7YUFDekQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQW1CLEVBQUUsZUFBeUIsRUFBRSxFQUFFO1FBQ3ZFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxlQUFlLENBQUM7UUFFbEQsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUNyQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4RSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsd0RBQXdEO1NBQzFFLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbkZXLFFBQUEsUUFBUSxZQW1GbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbWV0ZXJzTWV0YWRhdGEsXG4gIFBsdWdpblBhcmFtcyxcbiAgU3VidHJhY3RDb25maWcsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IFN1YnRyYWN0ID0gKFxuICBnbG9iYWxDb25maWc6IFN1YnRyYWN0Q29uZmlnLFxuICBwYXJhbWV0ZXJzTWV0YWRhdGE6IFBsdWdpblBhcmFtZXRlcnNNZXRhZGF0YVxuKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgICBpbnB1dHM6IHBhcmFtZXRlcnNNZXRhZGF0YT8uaW5wdXRzLFxuICAgIG91dHB1dHM6IHBhcmFtZXRlcnNNZXRhZGF0YT8ub3V0cHV0cyxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgJ2lucHV0LXBhcmFtZXRlcnMnOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBnbG9iYWxDb25maWdTY2hlbWE+PihcbiAgICAgIGdsb2JhbENvbmZpZ1NjaGVtYSxcbiAgICAgIGdsb2JhbENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zLFxuICAgIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW11cbiAgKSA9PiB7XG4gICAgY29uc3QgaW5wdXREYXRhID0gaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2MsIHBhcmFtKSA9PiB7XG4gICAgICAgIGFjY1twYXJhbV0gPSBpbnB1dFtwYXJhbV07XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgKTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLCB6Lm51bWJlcigpKTtcblxuICAgIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgICByZXR1cm4gaW5wdXQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0IGl0ZW1zIGZyb20gaW5wdXRQYXJhbXNbMS4ubl0gZnJvbSBpbnB1dFBhcmFtc1swXSBhbmQgd3JpdGUgdGhlIHJlc3VsdCBpbiBhIG5ldyBwYXJhbSBvdXRwdXRQYXJhbS5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSk6IFBsdWdpblBhcmFtc1tdID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVycyc6IGlucHV0UGFyYW1ldGVycyxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogb3V0cHV0UGFyYW1ldGVyLFxuICAgIH0gPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgdmFsaWRhdGVTaW5nbGVJbnB1dChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIFtvdXRwdXRQYXJhbWV0ZXJdOiBjYWxjdWxhdGVEaWZmKGlucHV0LCBpbnB1dFBhcmFtZXRlcnMpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgZGlmZiBiZXR3ZWVuIHRoZSAxc3QgaXRlbSBpbiB0aGUgaW5wdXRzIG5hZCB0aGUgcmVzdCBvZiB0aGUgaXRlbXNcbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZURpZmYgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFtmaXJzdEl0ZW0sIC4uLnJlc3RJdGVtc10gPSBpbnB1dFBhcmFtZXRlcnM7XG5cbiAgICByZXR1cm4gcmVzdEl0ZW1zLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9TdWJ0cmFjdCkgPT4gYWNjdW11bGF0b3IgLSBpbnB1dFttZXRyaWNUb1N1YnRyYWN0XSxcbiAgICAgIGlucHV0W2ZpcnN0SXRlbV0gLy8gU3RhcnRpbmcgYWNjdW11bGF0b3Igd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGl0ZW1cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, SumConfig, PluginParametersMetadata } from '@grnsft/if-core/types';
2
- export declare const Sum: (globalConfig: SumConfig, parametersMetadata: PluginParametersMetadata) => ExecutePlugin;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Sum = void 0;
4
- const zod_1 = require("zod");
5
- const utils_1 = require("@grnsft/if-core/utils");
6
- const validations_1 = require("../../../common/util/validations");
7
- const config_1 = require("../../config");
8
- const { GlobalConfigError } = utils_1.ERRORS;
9
- const { MISSING_GLOBAL_CONFIG } = config_1.STRINGS;
10
- const Sum = (globalConfig, parametersMetadata) => {
11
- const metadata = {
12
- kind: 'execute',
13
- inputs: parametersMetadata?.inputs,
14
- outputs: parametersMetadata?.outputs,
15
- };
16
- /**
17
- * Calculate the sum of each input-paramters.
18
- */
19
- const execute = (inputs) => {
20
- const safeGlobalConfig = validateGlobalConfig();
21
- const inputParameters = safeGlobalConfig['input-parameters'];
22
- const outputParameter = safeGlobalConfig['output-parameter'];
23
- return inputs.map(input => {
24
- validateSingleInput(input, inputParameters);
25
- return {
26
- ...input,
27
- [outputParameter]: calculateSum(input, inputParameters),
28
- };
29
- });
30
- };
31
- /**
32
- * Checks global config value are valid.
33
- */
34
- const validateGlobalConfig = () => {
35
- if (!globalConfig) {
36
- throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
37
- }
38
- const globalConfigSchema = zod_1.z.object({
39
- 'input-parameters': zod_1.z.array(zod_1.z.string()),
40
- 'output-parameter': zod_1.z.string().min(1),
41
- });
42
- return (0, validations_1.validate)(globalConfigSchema, globalConfig);
43
- };
44
- /**
45
- * Checks for required fields in input.
46
- */
47
- const validateSingleInput = (input, inputParameters) => {
48
- const inputData = inputParameters.reduce((acc, param) => {
49
- acc[param] = input[param];
50
- return acc;
51
- }, {});
52
- const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
53
- (0, validations_1.validate)(validationSchema, inputData);
54
- return input;
55
- };
56
- /**
57
- * Calculates the sum of the energy components.
58
- */
59
- const calculateSum = (input, inputParameters) => inputParameters.reduce((accumulator, metricToSum) => accumulator + input[metricToSum], 0);
60
- return {
61
- metadata,
62
- execute,
63
- };
64
- };
65
- exports.Sum = Sum;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3N1bS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFDdEIsaURBQTZDO0FBUTdDLGtFQUEwRDtBQUUxRCx5Q0FBcUM7QUFFckMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ25DLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFakMsTUFBTSxHQUFHLEdBQUcsQ0FDakIsWUFBdUIsRUFDdkIsa0JBQTRDLEVBQzdCLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNO1FBQ2xDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPO0tBQ3JDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztZQUU1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLGVBQWUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDO2FBQ3hELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELE1BQU0sa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFDYixrQkFBa0IsRUFDbEIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsS0FBbUIsRUFDbkIsZUFBeUIsRUFDekIsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQ3RDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFDRCxFQUE0QixDQUM3QixDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFBLHNCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBbUIsRUFBRSxlQUF5QixFQUFFLEVBQUUsQ0FDdEUsZUFBZSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUM5RCxDQUFDLENBQ0YsQ0FBQztJQUVKLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFqRlcsUUFBQSxHQUFHLE9BaUZkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIFN1bUNvbmZpZyxcbiAgUGx1Z2luUGFyYW1ldGVyc01ldGFkYXRhLFxufSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuY29uc3Qge0dsb2JhbENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtNSVNTSU5HX0dMT0JBTF9DT05GSUd9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFN1bSA9IChcbiAgZ2xvYmFsQ29uZmlnOiBTdW1Db25maWcsXG4gIHBhcmFtZXRlcnNNZXRhZGF0YTogUGx1Z2luUGFyYW1ldGVyc01ldGFkYXRhXG4pOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICAgIGlucHV0czogcGFyYW1ldGVyc01ldGFkYXRhPy5pbnB1dHMsXG4gICAgb3V0cHV0czogcGFyYW1ldGVyc01ldGFkYXRhPy5vdXRwdXRzLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHN1bSBvZiBlYWNoIGlucHV0LXBhcmFtdGVycy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHNhZmVHbG9iYWxDb25maWcgPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGlucHV0UGFyYW1ldGVycyA9IHNhZmVHbG9iYWxDb25maWdbJ2lucHV0LXBhcmFtZXRlcnMnXTtcbiAgICBjb25zdCBvdXRwdXRQYXJhbWV0ZXIgPSBzYWZlR2xvYmFsQ29uZmlnWydvdXRwdXQtcGFyYW1ldGVyJ107XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcChpbnB1dCA9PiB7XG4gICAgICB2YWxpZGF0ZVNpbmdsZUlucHV0KGlucHV0LCBpbnB1dFBhcmFtZXRlcnMpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dFBhcmFtZXRlcl06IGNhbGN1bGF0ZVN1bShpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBnbG9iYWwgY29uZmlnIHZhbHVlIGFyZSB2YWxpZC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR2xvYmFsQ29uZmlnID0gKCkgPT4ge1xuICAgIGlmICghZ2xvYmFsQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgR2xvYmFsQ29uZmlnRXJyb3IoTUlTU0lOR19HTE9CQUxfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBnbG9iYWxDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVycyc6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAnb3V0cHV0LXBhcmFtZXRlcic6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIGdsb2JhbENvbmZpZ1NjaGVtYT4+KFxuICAgICAgZ2xvYmFsQ29uZmlnU2NoZW1hLFxuICAgICAgZ2xvYmFsQ29uZmlnXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGZvciByZXF1aXJlZCBmaWVsZHMgaW4gaW5wdXQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZVNpbmdsZUlucHV0ID0gKFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXMsXG4gICAgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXVxuICApID0+IHtcbiAgICBjb25zdCBpbnB1dERhdGEgPSBpbnB1dFBhcmFtZXRlcnMucmVkdWNlKFxuICAgICAgKGFjYywgcGFyYW0pID0+IHtcbiAgICAgICAgYWNjW3BhcmFtXSA9IGlucHV0W3BhcmFtXTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgICApO1xuICAgIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLCB6Lm51bWJlcigpKTtcbiAgICB2YWxpZGF0ZSh2YWxpZGF0aW9uU2NoZW1hLCBpbnB1dERhdGEpO1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBzdW0gb2YgdGhlIGVuZXJneSBjb21wb25lbnRzLlxuICAgKi9cbiAgY29uc3QgY2FsY3VsYXRlU3VtID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW10pID0+XG4gICAgaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9TdW0pID0+IGFjY3VtdWxhdG9yICsgaW5wdXRbbWV0cmljVG9TdW1dLFxuICAgICAgMFxuICAgICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export declare const TIME_UNITS_IN_SECONDS: Record<string, number>;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TIME_UNITS_IN_SECONDS = void 0;
4
- exports.TIME_UNITS_IN_SECONDS = {
5
- s: 1,
6
- second: 1,
7
- sec: 1,
8
- secs: 1,
9
- seconds: 1,
10
- min: 60,
11
- mins: 60,
12
- minute: 60,
13
- minutes: 60,
14
- h: 3600,
15
- hs: 3600,
16
- hr: 3600,
17
- hrs: 3600,
18
- hour: 3600,
19
- hours: 3600,
20
- d: 86400,
21
- ds: 86400,
22
- day: 86400,
23
- days: 86400,
24
- w: 604800,
25
- ws: 604800,
26
- wk: 604800,
27
- wks: 604800,
28
- week: 604800,
29
- weeks: 604800,
30
- m: 2628336,
31
- mnth: 2628336,
32
- mth: 2628336,
33
- mnths: 2628336,
34
- mths: 2628336,
35
- month: 2628336,
36
- months: 2628336,
37
- y: 31556952,
38
- ys: 31556952,
39
- yr: 31556952,
40
- yrs: 31556952,
41
- year: 31556952,
42
- years: 31556952,
43
- };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lmLXJ1bi9idWlsdGlucy90aW1lLWNvbnZlcnRlci9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxxQkFBcUIsR0FBMkI7SUFDM0QsQ0FBQyxFQUFFLENBQUM7SUFDSixNQUFNLEVBQUUsQ0FBQztJQUNULEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLEdBQUcsRUFBRSxFQUFFO0lBQ1AsSUFBSSxFQUFFLEVBQUU7SUFDUixNQUFNLEVBQUUsRUFBRTtJQUNWLE9BQU8sRUFBRSxFQUFFO0lBQ1gsQ0FBQyxFQUFFLElBQUk7SUFDUCxFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsQ0FBQyxFQUFFLEtBQUs7SUFDUixFQUFFLEVBQUUsS0FBSztJQUNULEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLEtBQUs7SUFDWCxDQUFDLEVBQUUsTUFBTTtJQUNULEVBQUUsRUFBRSxNQUFNO0lBQ1YsRUFBRSxFQUFFLE1BQU07SUFDVixHQUFHLEVBQUUsTUFBTTtJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE1BQU07SUFDYixDQUFDLEVBQUUsT0FBTztJQUNWLElBQUksRUFBRSxPQUFPO0lBQ2IsR0FBRyxFQUFFLE9BQU87SUFDWixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsT0FBTztJQUNmLENBQUMsRUFBRSxRQUFRO0lBQ1gsRUFBRSxFQUFFLFFBQVE7SUFDWixFQUFFLEVBQUUsUUFBUTtJQUNaLEdBQUcsRUFBRSxRQUFRO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsUUFBUTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRJTUVfVU5JVFNfSU5fU0VDT05EUzogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgczogMSxcbiAgc2Vjb25kOiAxLFxuICBzZWM6IDEsXG4gIHNlY3M6IDEsXG4gIHNlY29uZHM6IDEsXG4gIG1pbjogNjAsXG4gIG1pbnM6IDYwLFxuICBtaW51dGU6IDYwLFxuICBtaW51dGVzOiA2MCxcbiAgaDogMzYwMCxcbiAgaHM6IDM2MDAsXG4gIGhyOiAzNjAwLFxuICBocnM6IDM2MDAsXG4gIGhvdXI6IDM2MDAsXG4gIGhvdXJzOiAzNjAwLFxuICBkOiA4NjQwMCxcbiAgZHM6IDg2NDAwLFxuICBkYXk6IDg2NDAwLFxuICBkYXlzOiA4NjQwMCxcbiAgdzogNjA0ODAwLFxuICB3czogNjA0ODAwLFxuICB3azogNjA0ODAwLFxuICB3a3M6IDYwNDgwMCxcbiAgd2VlazogNjA0ODAwLFxuICB3ZWVrczogNjA0ODAwLFxuICBtOiAyNjI4MzM2LFxuICBtbnRoOiAyNjI4MzM2LFxuICBtdGg6IDI2MjgzMzYsXG4gIG1udGhzOiAyNjI4MzM2LFxuICBtdGhzOiAyNjI4MzM2LFxuICBtb250aDogMjYyODMzNixcbiAgbW9udGhzOiAyNjI4MzM2LFxuICB5OiAzMTU1Njk1MixcbiAgeXM6IDMxNTU2OTUyLFxuICB5cjogMzE1NTY5NTIsXG4gIHlyczogMzE1NTY5NTIsXG4gIHllYXI6IDMxNTU2OTUyLFxuICB5ZWFyczogMzE1NTY5NTIsXG59O1xuIl19
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, PluginParametersMetadata, ConfigParams } from '@grnsft/if-core/types';
2
- export declare const TimeConverter: (globalConfig: ConfigParams, parametersMetadata: PluginParametersMetadata) => ExecutePlugin;