@grnsft/if 0.6.0 → 0.7.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,64 +0,0 @@
1
- export declare const STRINGS: {
2
- MISSING_METHOD: string;
3
- MISSING_PATH: string;
4
- UNSUPPORTED_PLUGIN: string;
5
- NOT_NATIVE_PLUGIN: (path: string) => string;
6
- INVALID_MODULE_PATH: (path: string, error?: any) => string;
7
- INVALID_TIME_NORMALIZATION: string;
8
- UNEXPECTED_TIME_CONFIG: string;
9
- INVALID_TIME_INTERVAL: string;
10
- AVOIDING_PADDING: (description: string) => string;
11
- AVOIDING_PADDING_BY_EDGES: (start: boolean, end: boolean) => string;
12
- INVALID_AGGREGATION_METHOD: (metric: string) => string;
13
- METRIC_MISSING: (metric: string, index: number) => string;
14
- INVALID_GROUP_KEY: (key: string) => string;
15
- REGROUP_ERROR: string;
16
- INVALID_EXHAUST_PLUGIN: (pluginName: string) => string;
17
- UNKNOWN_PARAM: (name: string) => string;
18
- NOT_INITALIZED_PLUGIN: (name: string) => string;
19
- NO_OUTPUT: string;
20
- UNSUPPORTED_ERROR: (errorName: string) => string;
21
- /** Debugging logs */
22
- STARTING_IF: string;
23
- EXITING_IF: string;
24
- LOADING_MANIFEST: string;
25
- VALIDATING_MANIFEST: string;
26
- CAPTURING_RUNTIME_ENVIRONMENT_DATA: string;
27
- CHECKING_AGGREGATION_METHOD: (unitName: string) => string;
28
- INITIALIZING_PLUGINS: string;
29
- INITIALIZING_PLUGIN: (pluginName: string) => string;
30
- LOADING_PLUGIN_FROM_PATH: (pluginName: string, path: string) => string;
31
- COMPUTING_PIPELINE_FOR_NODE: (nodeName: string) => string;
32
- MERGING_DEFAULTS_WITH_INPUT_DATA: string;
33
- AGGREGATING_OUTPUTS: string;
34
- AGGREGATING_NODE: (nodeName: string) => string;
35
- PREPARING_OUTPUT_DATA: string;
36
- EXPORTING_TO_YAML_FILE: (savepath: string) => string;
37
- EMPTY_PIPELINE: string;
38
- /** Exhaust messages */
39
- OUTPUT_REQUIRED: string;
40
- /** Plugins messages */
41
- INVALID_NAME: string;
42
- START_LOWER_END: string;
43
- TIMESTAMP_REQUIRED: (index: number) => string;
44
- INVALID_DATETIME: (index: number) => string;
45
- X_Y_EQUAL: string;
46
- ARRAY_LENGTH_NON_EMPTY: string;
47
- WITHIN_THE_RANGE: string;
48
- MISSING_CSV_COLUMN: (columnName: string) => string;
49
- NO_QUERY_DATA: string;
50
- INVALID_DATE_TYPE: (date: any) => string;
51
- INVALID_OBSERVATION_OVERLAP: string;
52
- SCI_MISSING_FN_UNIT: (functionalUnit: string) => string;
53
- MISSING_FUNCTIONAL_UNIT_CONFIG: string;
54
- MISSING_FUNCTIONAL_UNIT_INPUT: string;
55
- REGEX_MISMATCH: (input: any, match: string) => string;
56
- SCI_EMBODIED_ERROR: (unit: string) => string;
57
- MISSING_MIN_MAX: string;
58
- INVALID_MIN_MAX: (name: string) => string;
59
- FILE_FETCH_FAILED: (filepath: string, message: string) => string;
60
- FILE_READ_FAILED: (filepath: string, error: string) => string;
61
- ZERO_DIVISION: (moduleName: string, index: number) => string;
62
- MISSING_GLOBAL_CONFIG: string;
63
- MISSING_INPUT_DATA: (param: string) => string;
64
- };
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.STRINGS = void 0;
4
- exports.STRINGS = {
5
- MISSING_METHOD: "Initalization param 'method' is missing.",
6
- MISSING_PATH: "Initalization param 'path' is missing.",
7
- UNSUPPORTED_PLUGIN: "Plugin interface doesn't implement 'execute' or 'metadata' methods.",
8
- NOT_NATIVE_PLUGIN: (path) => `
9
- You are using plugin ${path} which is not part of the Impact Framework standard library. You should do your own research to ensure the plugins are up to date and accurate. They may not be actively maintained.`,
10
- INVALID_MODULE_PATH: (path, error) => `Provided module \`${path}\` is invalid or not found. ${error ?? ''}
11
- `,
12
- INVALID_TIME_NORMALIZATION: 'Start time or end time is missing.',
13
- UNEXPECTED_TIME_CONFIG: 'Unexpected node-level config provided for time-sync plugin.',
14
- INVALID_TIME_INTERVAL: 'Interval is missing.',
15
- AVOIDING_PADDING: (description) => `Avoiding padding at ${description}`,
16
- AVOIDING_PADDING_BY_EDGES: (start, end) => `Avoiding padding at ${start && end ? 'start and end' : start ? 'start' : 'end'}`,
17
- INVALID_AGGREGATION_METHOD: (metric) => `Aggregation is not possible for given ${metric} since method is 'none'.`,
18
- METRIC_MISSING: (metric, index) => `Aggregation metric ${metric} is not found in inputs[${index}].`,
19
- INVALID_GROUP_KEY: (key) => `Invalid group ${key}.`,
20
- REGROUP_ERROR: 'not an array or should contain at least one key',
21
- INVALID_EXHAUST_PLUGIN: (pluginName) => `Invalid exhaust plugin: ${pluginName}.`,
22
- UNKNOWN_PARAM: (name) => `Unknown parameter: ${name}. Omitting from the output.`,
23
- NOT_INITALIZED_PLUGIN: (name) => `Not initalized plugin: ${name}. Check if ${name} is in 'manifest.initalize.plugins'.`,
24
- NO_OUTPUT: `
25
- You have not added an output command:
26
- --output <savepath>: will save your output data to the given filepath (do not provide file extension)
27
- Note that for the '--output' option you also need to define the output type in your manifest file. See https://if.greensoftware.foundation/major-concepts/manifest-file#initialize`,
28
- UNSUPPORTED_ERROR: (errorName) => `UnsupportedErrorClass: plugin threw error class: ${errorName} that is not recognized by Impact Framework`,
29
- /** Debugging logs */
30
- STARTING_IF: 'Starting IF',
31
- EXITING_IF: 'Exiting IF',
32
- LOADING_MANIFEST: 'Loading manifest',
33
- VALIDATING_MANIFEST: 'Validating manifest',
34
- CAPTURING_RUNTIME_ENVIRONMENT_DATA: 'Capturing runtime environment data',
35
- CHECKING_AGGREGATION_METHOD: (unitName) => `Checking aggregation method for ${unitName}`,
36
- INITIALIZING_PLUGINS: 'Initializing plugins',
37
- INITIALIZING_PLUGIN: (pluginName) => `Initializing ${pluginName}`,
38
- LOADING_PLUGIN_FROM_PATH: (pluginName, path) => `Loading ${pluginName} from ${path}`,
39
- COMPUTING_PIPELINE_FOR_NODE: (nodeName) => `Computing pipeline for \`${nodeName}\``,
40
- MERGING_DEFAULTS_WITH_INPUT_DATA: 'Merging defaults with input data',
41
- AGGREGATING_OUTPUTS: 'Aggregating outputs',
42
- AGGREGATING_NODE: (nodeName) => `Aggregating node ${nodeName}`,
43
- PREPARING_OUTPUT_DATA: 'Preparing output data',
44
- EXPORTING_TO_YAML_FILE: (savepath) => `Exporting to yaml file: ${savepath}`,
45
- EMPTY_PIPELINE: `You're using an old style manifest. Please update for phased execution. More information can be found here:
46
- https://if.greensoftware.foundation/major-concepts/manifest-file`,
47
- /** Exhaust messages */
48
- OUTPUT_REQUIRED: 'Output path is required, please make sure output is configured properly.',
49
- /** Plugins messages */
50
- INVALID_NAME: '`name` global config parameter is empty or contains all spaces',
51
- START_LOWER_END: '`start-time` should be lower than `end-time`',
52
- TIMESTAMP_REQUIRED: (index) => `required in input[${index}]`,
53
- INVALID_DATETIME: (index) => `invalid datetime in input[${index}]`,
54
- X_Y_EQUAL: 'The length of `x` and `y` should be equal',
55
- ARRAY_LENGTH_NON_EMPTY: 'the length of the input arrays must be greater than 1',
56
- WITHIN_THE_RANGE: 'The target x value must be within the range of the given x values',
57
- MISSING_CSV_COLUMN: (columnName) => `There is no column with the name: ${columnName}.`,
58
- NO_QUERY_DATA: 'One or more of the given query parameters are not found in the target CSV file column headers.',
59
- INVALID_DATE_TYPE: (date) => `Unexpected date datatype: ${typeof date}: ${date}`,
60
- INVALID_OBSERVATION_OVERLAP: 'Observation timestamps overlap, please check inputs.',
61
- SCI_MISSING_FN_UNIT: (functionalUnit) => `'carbon' and ${functionalUnit} should be present in your input data.`,
62
- MISSING_FUNCTIONAL_UNIT_CONFIG: '`functional-unit` should be provided in your global config',
63
- MISSING_FUNCTIONAL_UNIT_INPUT: '`functional-unit` value is missing from input data or it is not a positive integer',
64
- REGEX_MISMATCH: (input, match) => `\`${input}\` does not match the ${match} regex expression`,
65
- SCI_EMBODIED_ERROR: (unit) => `invalid number. please provide it as \`${unit}\` to input`,
66
- MISSING_MIN_MAX: 'Config is missing min or max value',
67
- INVALID_MIN_MAX: (name) => `Min value should not be greater than or equal to max value of ${name}`,
68
- FILE_FETCH_FAILED: (filepath, message) => `Failed fetching the file: ${filepath}.
69
- ${message}`,
70
- FILE_READ_FAILED: (filepath, error) => `Failed reading the file: ${filepath}.
71
- ${error}`,
72
- ZERO_DIVISION: (moduleName, index) => `-- SKIPPING -- DivisionByZero: you are attempting to divide by zero in ${moduleName} plugin : inputs[${index}]\n`,
73
- MISSING_GLOBAL_CONFIG: 'Global config is not provided.',
74
- MISSING_INPUT_DATA: (param) => `${param} is missing from the input array, or has nullish value.`,
75
- };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vY29uZmlnL3N0cmluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxPQUFPLEdBQUc7SUFDckIsY0FBYyxFQUFFLDBDQUEwQztJQUMxRCxZQUFZLEVBQUUsd0NBQXdDO0lBQ3RELGtCQUFrQixFQUNoQixxRUFBcUU7SUFDdkUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUNsQzt5QkFDcUIsSUFBSSxzTEFBc0w7SUFDak4sbUJBQW1CLEVBQUUsQ0FBQyxJQUFZLEVBQUUsS0FBVyxFQUFFLEVBQUUsQ0FDakQscUJBQXFCLElBQUksK0JBQStCLEtBQUssSUFBSSxFQUFFO0NBQ3RFO0lBQ0MsMEJBQTBCLEVBQUUsb0NBQW9DO0lBQ2hFLHNCQUFzQixFQUNwQiw2REFBNkQ7SUFDL0QscUJBQXFCLEVBQUUsc0JBQXNCO0lBQzdDLGdCQUFnQixFQUFFLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQ3hDLHVCQUF1QixXQUFXLEVBQUU7SUFDdEMseUJBQXlCLEVBQUUsQ0FBQyxLQUFjLEVBQUUsR0FBWSxFQUFFLEVBQUUsQ0FDMUQsdUJBQ0UsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FDckQsRUFBRTtJQUNKLDBCQUEwQixFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDN0MseUNBQXlDLE1BQU0sMEJBQTBCO0lBQzNFLGNBQWMsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUNoRCxzQkFBc0IsTUFBTSwyQkFBMkIsS0FBSyxJQUFJO0lBQ2xFLGlCQUFpQixFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHO0lBQzNELGFBQWEsRUFBRSxpREFBaUQ7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QUE2QixRQUFRO0VBQzFDLE9BQU8sRUFBRTtJQUNULGdCQUFnQixFQUFFLENBQ2hCLFFBQWdCLEVBQ2hCLEtBQWEsRUFDYixFQUFFLENBQUMsNEJBQTRCLFFBQVE7RUFDekMsS0FBSyxFQUFFO0lBQ1AsYUFBYSxFQUFFLENBQUMsVUFBa0IsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUNuRCwwRUFBMEUsVUFBVSxvQkFBb0IsS0FBSyxLQUFLO0lBQ3BILHFCQUFxQixFQUFFLGdDQUFnQztJQUN2RCxrQkFBa0IsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQ3BDLEdBQUcsS0FBSyx5REFBeUQ7Q0FDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVFJJTkdTID0ge1xuICBNSVNTSU5HX01FVEhPRDogXCJJbml0YWxpemF0aW9uIHBhcmFtICdtZXRob2QnIGlzIG1pc3NpbmcuXCIsXG4gIE1JU1NJTkdfUEFUSDogXCJJbml0YWxpemF0aW9uIHBhcmFtICdwYXRoJyBpcyBtaXNzaW5nLlwiLFxuICBVTlNVUFBPUlRFRF9QTFVHSU46XG4gICAgXCJQbHVnaW4gaW50ZXJmYWNlIGRvZXNuJ3QgaW1wbGVtZW50ICdleGVjdXRlJyBvciAnbWV0YWRhdGEnIG1ldGhvZHMuXCIsXG4gIE5PVF9OQVRJVkVfUExVR0lOOiAocGF0aDogc3RyaW5nKSA9PlxuICAgIGBcbiAgWW91IGFyZSB1c2luZyBwbHVnaW4gJHtwYXRofSB3aGljaCBpcyBub3QgcGFydCBvZiB0aGUgSW1wYWN0IEZyYW1ld29yayBzdGFuZGFyZCBsaWJyYXJ5LiBZb3Ugc2hvdWxkIGRvIHlvdXIgb3duIHJlc2VhcmNoIHRvIGVuc3VyZSB0aGUgcGx1Z2lucyBhcmUgdXAgdG8gZGF0ZSBhbmQgYWNjdXJhdGUuIFRoZXkgbWF5IG5vdCBiZSBhY3RpdmVseSBtYWludGFpbmVkLmAsXG4gIElOVkFMSURfTU9EVUxFX1BBVEg6IChwYXRoOiBzdHJpbmcsIGVycm9yPzogYW55KSA9PlxuICAgIGBQcm92aWRlZCBtb2R1bGUgXFxgJHtwYXRofVxcYCBpcyBpbnZhbGlkIG9yIG5vdCBmb3VuZC4gJHtlcnJvciA/PyAnJ31cbmAsXG4gIElOVkFMSURfVElNRV9OT1JNQUxJWkFUSU9OOiAnU3RhcnQgdGltZSBvciBlbmQgdGltZSBpcyBtaXNzaW5nLicsXG4gIFVORVhQRUNURURfVElNRV9DT05GSUc6XG4gICAgJ1VuZXhwZWN0ZWQgbm9kZS1sZXZlbCBjb25maWcgcHJvdmlkZWQgZm9yIHRpbWUtc3luYyBwbHVnaW4uJyxcbiAgSU5WQUxJRF9USU1FX0lOVEVSVkFMOiAnSW50ZXJ2YWwgaXMgbWlzc2luZy4nLFxuICBBVk9JRElOR19QQURESU5HOiAoZGVzY3JpcHRpb246IHN0cmluZykgPT5cbiAgICBgQXZvaWRpbmcgcGFkZGluZyBhdCAke2Rlc2NyaXB0aW9ufWAsXG4gIEFWT0lESU5HX1BBRERJTkdfQllfRURHRVM6IChzdGFydDogYm9vbGVhbiwgZW5kOiBib29sZWFuKSA9PlxuICAgIGBBdm9pZGluZyBwYWRkaW5nIGF0ICR7XG4gICAgICBzdGFydCAmJiBlbmQgPyAnc3RhcnQgYW5kIGVuZCcgOiBzdGFydCA/ICdzdGFydCcgOiAnZW5kJ1xuICAgIH1gLFxuICBJTlZBTElEX0FHR1JFR0FUSU9OX01FVEhPRDogKG1ldHJpYzogc3RyaW5nKSA9PlxuICAgIGBBZ2dyZWdhdGlvbiBpcyBub3QgcG9zc2libGUgZm9yIGdpdmVuICR7bWV0cmljfSBzaW5jZSBtZXRob2QgaXMgJ25vbmUnLmAsXG4gIE1FVFJJQ19NSVNTSU5HOiAobWV0cmljOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+XG4gICAgYEFnZ3JlZ2F0aW9uIG1ldHJpYyAke21ldHJpY30gaXMgbm90IGZvdW5kIGluIGlucHV0c1ske2luZGV4fV0uYCxcbiAgSU5WQUxJRF9HUk9VUF9LRVk6IChrZXk6IHN0cmluZykgPT4gYEludmFsaWQgZ3JvdXAgJHtrZXl9LmAsXG4gIFJFR1JPVVBfRVJST1I6ICdub3QgYW4gYXJyYXkgb3Igc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3Qgb25lIGtleScsXG4gIElOVkFMSURfRVhIQVVTVF9QTFVHSU46IChwbHVnaW5OYW1lOiBzdHJpbmcpID0+XG4gICAgYEludmFsaWQgZXhoYXVzdCBwbHVnaW46ICR7cGx1Z2luTmFtZX0uYCxcbiAgVU5LTk9XTl9QQVJBTTogKG5hbWU6IHN0cmluZykgPT5cbiAgICBgVW5rbm93biBwYXJhbWV0ZXI6ICR7bmFtZX0uIE9taXR0aW5nIGZyb20gdGhlIG91dHB1dC5gLFxuICBOT1RfSU5JVEFMSVpFRF9QTFVHSU46IChuYW1lOiBzdHJpbmcpID0+XG4gICAgYE5vdCBpbml0YWxpemVkIHBsdWdpbjogJHtuYW1lfS4gQ2hlY2sgaWYgJHtuYW1lfSBpcyBpbiAnbWFuaWZlc3QuaW5pdGFsaXplLnBsdWdpbnMnLmAsXG4gIE5PX09VVFBVVDogYFxuWW91IGhhdmUgbm90IGFkZGVkIGFuIG91dHB1dCBjb21tYW5kOiBcbi0tb3V0cHV0IDxzYXZlcGF0aD46IHdpbGwgc2F2ZSB5b3VyIG91dHB1dCBkYXRhIHRvIHRoZSBnaXZlbiBmaWxlcGF0aCAoZG8gbm90IHByb3ZpZGUgZmlsZSBleHRlbnNpb24pXG5Ob3RlIHRoYXQgZm9yIHRoZSAnLS1vdXRwdXQnIG9wdGlvbiB5b3UgYWxzbyBuZWVkIHRvIGRlZmluZSB0aGUgb3V0cHV0IHR5cGUgaW4geW91ciBtYW5pZmVzdCBmaWxlLiBTZWUgaHR0cHM6Ly9pZi5ncmVlbnNvZnR3YXJlLmZvdW5kYXRpb24vbWFqb3ItY29uY2VwdHMvbWFuaWZlc3QtZmlsZSNpbml0aWFsaXplYCxcbiAgVU5TVVBQT1JURURfRVJST1I6IChlcnJvck5hbWU6IHN0cmluZykgPT5cbiAgICBgVW5zdXBwb3J0ZWRFcnJvckNsYXNzOiBwbHVnaW4gdGhyZXcgZXJyb3IgY2xhc3M6ICR7ZXJyb3JOYW1lfSB0aGF0IGlzIG5vdCByZWNvZ25pemVkIGJ5IEltcGFjdCBGcmFtZXdvcmtgLFxuICAvKiogRGVidWdnaW5nIGxvZ3MgKi9cbiAgU1RBUlRJTkdfSUY6ICdTdGFydGluZyBJRicsXG4gIEVYSVRJTkdfSUY6ICdFeGl0aW5nIElGJyxcbiAgTE9BRElOR19NQU5JRkVTVDogJ0xvYWRpbmcgbWFuaWZlc3QnLFxuICBWQUxJREFUSU5HX01BTklGRVNUOiAnVmFsaWRhdGluZyBtYW5pZmVzdCcsXG4gIENBUFRVUklOR19SVU5USU1FX0VOVklST05NRU5UX0RBVEE6ICdDYXB0dXJpbmcgcnVudGltZSBlbnZpcm9ubWVudCBkYXRhJyxcbiAgQ0hFQ0tJTkdfQUdHUkVHQVRJT05fTUVUSE9EOiAodW5pdE5hbWU6IHN0cmluZykgPT5cbiAgICBgQ2hlY2tpbmcgYWdncmVnYXRpb24gbWV0aG9kIGZvciAke3VuaXROYW1lfWAsXG4gIElOSVRJQUxJWklOR19QTFVHSU5TOiAnSW5pdGlhbGl6aW5nIHBsdWdpbnMnLFxuICBJTklUSUFMSVpJTkdfUExVR0lOOiAocGx1Z2luTmFtZTogc3RyaW5nKSA9PiBgSW5pdGlhbGl6aW5nICR7cGx1Z2luTmFtZX1gLFxuICBMT0FESU5HX1BMVUdJTl9GUk9NX1BBVEg6IChwbHVnaW5OYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZykgPT5cbiAgICBgTG9hZGluZyAke3BsdWdpbk5hbWV9IGZyb20gJHtwYXRofWAsXG4gIENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERTogKG5vZGVOYW1lOiBzdHJpbmcpID0+XG4gICAgYENvbXB1dGluZyBwaXBlbGluZSBmb3IgXFxgJHtub2RlTmFtZX1cXGBgLFxuICBNRVJHSU5HX0RFRkFVTFRTX1dJVEhfSU5QVVRfREFUQTogJ01lcmdpbmcgZGVmYXVsdHMgd2l0aCBpbnB1dCBkYXRhJyxcbiAgQUdHUkVHQVRJTkdfT1VUUFVUUzogJ0FnZ3JlZ2F0aW5nIG91dHB1dHMnLFxuICBBR0dSRUdBVElOR19OT0RFOiAobm9kZU5hbWU6IHN0cmluZykgPT4gYEFnZ3JlZ2F0aW5nIG5vZGUgJHtub2RlTmFtZX1gLFxuICBQUkVQQVJJTkdfT1VUUFVUX0RBVEE6ICdQcmVwYXJpbmcgb3V0cHV0IGRhdGEnLFxuICBFWFBPUlRJTkdfVE9fWUFNTF9GSUxFOiAoc2F2ZXBhdGg6IHN0cmluZykgPT5cbiAgICBgRXhwb3J0aW5nIHRvIHlhbWwgZmlsZTogJHtzYXZlcGF0aH1gLFxuICBFTVBUWV9QSVBFTElORTogYFlvdSdyZSB1c2luZyBhbiBvbGQgc3R5bGUgbWFuaWZlc3QuIFBsZWFzZSB1cGRhdGUgZm9yIHBoYXNlZCBleGVjdXRpb24uIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGhlcmU6IFxuaHR0cHM6Ly9pZi5ncmVlbnNvZnR3YXJlLmZvdW5kYXRpb24vbWFqb3ItY29uY2VwdHMvbWFuaWZlc3QtZmlsZWAsXG4gIC8qKiBFeGhhdXN0IG1lc3NhZ2VzICovXG4gIE9VVFBVVF9SRVFVSVJFRDpcbiAgICAnT3V0cHV0IHBhdGggaXMgcmVxdWlyZWQsIHBsZWFzZSBtYWtlIHN1cmUgb3V0cHV0IGlzIGNvbmZpZ3VyZWQgcHJvcGVybHkuJyxcbiAgLyoqIFBsdWdpbnMgbWVzc2FnZXMgKi9cbiAgSU5WQUxJRF9OQU1FOlxuICAgICdgbmFtZWAgZ2xvYmFsIGNvbmZpZyBwYXJhbWV0ZXIgaXMgZW1wdHkgb3IgY29udGFpbnMgYWxsIHNwYWNlcycsXG4gIFNUQVJUX0xPV0VSX0VORDogJ2BzdGFydC10aW1lYCBzaG91bGQgYmUgbG93ZXIgdGhhbiBgZW5kLXRpbWVgJyxcbiAgVElNRVNUQU1QX1JFUVVJUkVEOiAoaW5kZXg6IG51bWJlcikgPT4gYHJlcXVpcmVkIGluIGlucHV0WyR7aW5kZXh9XWAsXG4gIElOVkFMSURfREFURVRJTUU6IChpbmRleDogbnVtYmVyKSA9PiBgaW52YWxpZCBkYXRldGltZSBpbiBpbnB1dFske2luZGV4fV1gLFxuICBYX1lfRVFVQUw6ICdUaGUgbGVuZ3RoIG9mIGB4YCBhbmQgYHlgIHNob3VsZCBiZSBlcXVhbCcsXG4gIEFSUkFZX0xFTkdUSF9OT05fRU1QVFk6XG4gICAgJ3RoZSBsZW5ndGggb2YgdGhlIGlucHV0IGFycmF5cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxJyxcbiAgV0lUSElOX1RIRV9SQU5HRTpcbiAgICAnVGhlIHRhcmdldCB4IHZhbHVlIG11c3QgYmUgd2l0aGluIHRoZSByYW5nZSBvZiB0aGUgZ2l2ZW4geCB2YWx1ZXMnLFxuICBNSVNTSU5HX0NTVl9DT0xVTU46IChjb2x1bW5OYW1lOiBzdHJpbmcpID0+XG4gICAgYFRoZXJlIGlzIG5vIGNvbHVtbiB3aXRoIHRoZSBuYW1lOiAke2NvbHVtbk5hbWV9LmAsXG4gIE5PX1FVRVJZX0RBVEE6XG4gICAgJ09uZSBvciBtb3JlIG9mIHRoZSBnaXZlbiBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBub3QgZm91bmQgaW4gdGhlIHRhcmdldCBDU1YgZmlsZSBjb2x1bW4gaGVhZGVycy4nLFxuICBJTlZBTElEX0RBVEVfVFlQRTogKGRhdGU6IGFueSkgPT5cbiAgICBgVW5leHBlY3RlZCBkYXRlIGRhdGF0eXBlOiAke3R5cGVvZiBkYXRlfTogJHtkYXRlfWAsXG4gIElOVkFMSURfT0JTRVJWQVRJT05fT1ZFUkxBUDpcbiAgICAnT2JzZXJ2YXRpb24gdGltZXN0YW1wcyBvdmVybGFwLCBwbGVhc2UgY2hlY2sgaW5wdXRzLicsXG4gIFNDSV9NSVNTSU5HX0ZOX1VOSVQ6IChmdW5jdGlvbmFsVW5pdDogc3RyaW5nKSA9PlxuICAgIGAnY2FyYm9uJyBhbmQgJHtmdW5jdGlvbmFsVW5pdH0gc2hvdWxkIGJlIHByZXNlbnQgaW4geW91ciBpbnB1dCBkYXRhLmAsXG4gIE1JU1NJTkdfRlVOQ1RJT05BTF9VTklUX0NPTkZJRzpcbiAgICAnYGZ1bmN0aW9uYWwtdW5pdGAgc2hvdWxkIGJlIHByb3ZpZGVkIGluIHlvdXIgZ2xvYmFsIGNvbmZpZycsXG4gIE1JU1NJTkdfRlVOQ1RJT05BTF9VTklUX0lOUFVUOlxuICAgICdgZnVuY3Rpb25hbC11bml0YCB2YWx1ZSBpcyBtaXNzaW5nIGZyb20gaW5wdXQgZGF0YSBvciBpdCBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyJyxcbiAgUkVHRVhfTUlTTUFUQ0g6IChpbnB1dDogYW55LCBtYXRjaDogc3RyaW5nKSA9PlxuICAgIGBcXGAke2lucHV0fVxcYCBkb2VzIG5vdCBtYXRjaCB0aGUgJHttYXRjaH0gcmVnZXggZXhwcmVzc2lvbmAsXG4gIFNDSV9FTUJPRElFRF9FUlJPUjogKHVuaXQ6IHN0cmluZykgPT5cbiAgICBgaW52YWxpZCBudW1iZXIuIHBsZWFzZSBwcm92aWRlIGl0IGFzIFxcYCR7dW5pdH1cXGAgdG8gaW5wdXRgLFxuICBNSVNTSU5HX01JTl9NQVg6ICdDb25maWcgaXMgbWlzc2luZyBtaW4gb3IgbWF4IHZhbHVlJyxcbiAgSU5WQUxJRF9NSU5fTUFYOiAobmFtZTogc3RyaW5nKSA9PlxuICAgIGBNaW4gdmFsdWUgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbWF4IHZhbHVlIG9mICR7bmFtZX1gLFxuICBGSUxFX0ZFVENIX0ZBSUxFRDogKFxuICAgIGZpbGVwYXRoOiBzdHJpbmcsXG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICkgPT4gYEZhaWxlZCBmZXRjaGluZyB0aGUgZmlsZTogJHtmaWxlcGF0aH0uXG4ke21lc3NhZ2V9YCxcbiAgRklMRV9SRUFEX0ZBSUxFRDogKFxuICAgIGZpbGVwYXRoOiBzdHJpbmcsXG4gICAgZXJyb3I6IHN0cmluZ1xuICApID0+IGBGYWlsZWQgcmVhZGluZyB0aGUgZmlsZTogJHtmaWxlcGF0aH0uIFxuJHtlcnJvcn1gLFxuICBaRVJPX0RJVklTSU9OOiAobW9kdWxlTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PlxuICAgIGAtLSBTS0lQUElORyAtLSBEaXZpc2lvbkJ5WmVybzogeW91IGFyZSBhdHRlbXB0aW5nIHRvIGRpdmlkZSBieSB6ZXJvIGluICR7bW9kdWxlTmFtZX0gcGx1Z2luIDogaW5wdXRzWyR7aW5kZXh9XVxcbmAsXG4gIE1JU1NJTkdfR0xPQkFMX0NPTkZJRzogJ0dsb2JhbCBjb25maWcgaXMgbm90IHByb3ZpZGVkLicsXG4gIE1JU1NJTkdfSU5QVVRfREFUQTogKHBhcmFtOiBzdHJpbmcpID0+XG4gICAgYCR7cGFyYW19IGlzIG1pc3NpbmcgZnJvbSB0aGUgaW5wdXQgYXJyYXksIG9yIGhhcyBudWxsaXNoIHZhbHVlLmAsXG59O1xuIl19
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const config_1 = require("../common/config");
5
- const validations_1 = require("../common/util/validations");
6
- const debug_logger_1 = require("../common/util/debug-logger");
7
- const logger_1 = require("../common/util/logger");
8
- const load_1 = require("../common/lib/load");
9
- const aggregate_1 = require("./lib/aggregate");
10
- const environment_1 = require("./lib/environment");
11
- const initialize_1 = require("./lib/initialize");
12
- const compute_1 = require("./lib/compute");
13
- const exhaust_1 = require("./lib/exhaust");
14
- const explain_1 = require("./lib/explain");
15
- const aggregation_1 = require("./types/aggregation");
16
- const args_1 = require("./util/args");
17
- const helpers_1 = require("./util/helpers");
18
- const config_2 = require("./config");
19
- const { EXITING_IF, STARTING_IF } = config_2.STRINGS;
20
- const { DISCLAIMER_MESSAGE } = config_1.STRINGS;
21
- const impactEngine = async () => {
22
- const options = (0, args_1.parseIfRunProcessArgs)();
23
- const { inputPath, outputOptions, debug, observe, regroup, compute: computeFlag, } = options;
24
- debug_logger_1.debugLogger.overrideConsoleMethods(!!debug);
25
- logger_1.logger.info(DISCLAIMER_MESSAGE);
26
- console.info(STARTING_IF);
27
- const { rawManifest } = await (0, load_1.load)(inputPath);
28
- const envManifest = await (0, environment_1.injectEnvironment)(rawManifest);
29
- try {
30
- const { tree, ...context } = (0, validations_1.validateManifest)(envManifest);
31
- if (context.aggregation) {
32
- const convertMetrics = context.aggregation?.metrics.map((metric) => ({
33
- [metric]: aggregation_1.AGGREGATION_METHODS[2],
34
- }));
35
- (0, aggregate_1.storeAggregationMetrics)(...convertMetrics);
36
- }
37
- const pluginStorage = await (0, initialize_1.initialize)(context);
38
- const computedTree = await (0, compute_1.compute)(tree, {
39
- context,
40
- pluginStorage,
41
- observe,
42
- regroup,
43
- compute: computeFlag,
44
- });
45
- const aggregatedTree = (0, aggregate_1.aggregate)(computedTree, context.aggregation);
46
- envManifest.explainer && (context.explain = (0, explain_1.explain)());
47
- await (0, exhaust_1.exhaust)(aggregatedTree, context, outputOptions);
48
- }
49
- catch (error) {
50
- if (error instanceof Error) {
51
- envManifest.execution.status = 'fail';
52
- envManifest.execution.error = error.toString();
53
- logger_1.logger.error(error);
54
- const { tree, ...context } = envManifest;
55
- if (error.name !== 'ExhaustError') {
56
- (0, exhaust_1.exhaust)(tree, context, outputOptions);
57
- }
58
- }
59
- }
60
- console.info(EXITING_IF);
61
- };
62
- impactEngine().catch(helpers_1.andHandle);
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWYtcnVuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUEyRDtBQUMzRCw0REFBNEQ7QUFDNUQsOERBQXdEO0FBQ3hELGtEQUE2QztBQUM3Qyw2Q0FBd0M7QUFFeEMsK0NBQW1FO0FBQ25FLG1EQUFvRDtBQUNwRCxpREFBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLDJDQUFzQztBQUN0QywyQ0FBc0M7QUFFdEMscURBQXdEO0FBRXhELHNDQUFrRDtBQUNsRCw0Q0FBeUM7QUFFekMscUNBQWlDO0FBRWpDLE1BQU0sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUMxQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsR0FBRyxnQkFBYyxDQUFDO0FBRTVDLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUEsNEJBQXFCLEdBQUUsQ0FBQztJQUN4QyxNQUFNLEVBQ0osU0FBUyxFQUNULGFBQWEsRUFDYixLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPLEVBQUUsV0FBVyxHQUNyQixHQUFHLE9BQU8sQ0FBQztJQUVaLDBCQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVDLGVBQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFCLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSwrQkFBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCxJQUFJO1FBQ0YsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FDckQsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsTUFBTSxDQUFDLEVBQUUsaUNBQW1CLENBQUMsQ0FBQyxDQUFDO2FBQ2pDLENBQUMsQ0FDSCxDQUFDO1lBRUYsSUFBQSxtQ0FBdUIsRUFBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFBLHVCQUFVLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLGlCQUFPLEVBQUMsSUFBSSxFQUFFO1lBQ3ZDLE9BQU87WUFDUCxhQUFhO1lBQ2IsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFBLHFCQUFTLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFBLGlCQUFPLEdBQUUsQ0FBQyxDQUFDO1FBRXZELE1BQU0sSUFBQSxpQkFBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDdkQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixXQUFXLENBQUMsU0FBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDdkMsV0FBVyxDQUFDLFNBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hELGVBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLFdBQVcsQ0FBQztZQUV2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO2dCQUNqQyxJQUFBLGlCQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQzthQUN2QztTQUNGO0tBQ0Y7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge1NUUklOR1MgYXMgQ09NTU9OX1NUUklOR1N9IGZyb20gJy4uL2NvbW1vbi9jb25maWcnO1xuaW1wb3J0IHt2YWxpZGF0ZU1hbmlmZXN0fSBmcm9tICcuLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5pbXBvcnQge2RlYnVnTG9nZ2VyfSBmcm9tICcuLi9jb21tb24vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5pbXBvcnQge2xvYWR9IGZyb20gJy4uL2NvbW1vbi9saWIvbG9hZCc7XG5cbmltcG9ydCB7YWdncmVnYXRlLCBzdG9yZUFnZ3JlZ2F0aW9uTWV0cmljc30gZnJvbSAnLi9saWIvYWdncmVnYXRlJztcbmltcG9ydCB7aW5qZWN0RW52aXJvbm1lbnR9IGZyb20gJy4vbGliL2Vudmlyb25tZW50JztcbmltcG9ydCB7aW5pdGlhbGl6ZX0gZnJvbSAnLi9saWIvaW5pdGlhbGl6ZSc7XG5pbXBvcnQge2NvbXB1dGV9IGZyb20gJy4vbGliL2NvbXB1dGUnO1xuaW1wb3J0IHtleGhhdXN0fSBmcm9tICcuL2xpYi9leGhhdXN0JztcbmltcG9ydCB7ZXhwbGFpbn0gZnJvbSAnLi9saWIvZXhwbGFpbic7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi90eXBlcy9hZ2dyZWdhdGlvbic7XG5cbmltcG9ydCB7cGFyc2VJZlJ1blByb2Nlc3NBcmdzfSBmcm9tICcuL3V0aWwvYXJncyc7XG5pbXBvcnQge2FuZEhhbmRsZX0gZnJvbSAnLi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4vY29uZmlnJztcblxuY29uc3Qge0VYSVRJTkdfSUYsIFNUQVJUSU5HX0lGfSA9IFNUUklOR1M7XG5jb25zdCB7RElTQ0xBSU1FUl9NRVNTQUdFfSA9IENPTU1PTl9TVFJJTkdTO1xuXG5jb25zdCBpbXBhY3RFbmdpbmUgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUlmUnVuUHJvY2Vzc0FyZ3MoKTtcbiAgY29uc3Qge1xuICAgIGlucHV0UGF0aCxcbiAgICBvdXRwdXRPcHRpb25zLFxuICAgIGRlYnVnLFxuICAgIG9ic2VydmUsXG4gICAgcmVncm91cCxcbiAgICBjb21wdXRlOiBjb21wdXRlRmxhZyxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgZGVidWdMb2dnZXIub3ZlcnJpZGVDb25zb2xlTWV0aG9kcyghIWRlYnVnKTtcblxuICBsb2dnZXIuaW5mbyhESVNDTEFJTUVSX01FU1NBR0UpO1xuICBjb25zb2xlLmluZm8oU1RBUlRJTkdfSUYpO1xuXG4gIGNvbnN0IHtyYXdNYW5pZmVzdH0gPSBhd2FpdCBsb2FkKGlucHV0UGF0aCk7XG4gIGNvbnN0IGVudk1hbmlmZXN0ID0gYXdhaXQgaW5qZWN0RW52aXJvbm1lbnQocmF3TWFuaWZlc3QpO1xuXG4gIHRyeSB7XG4gICAgY29uc3Qge3RyZWUsIC4uLmNvbnRleHR9ID0gdmFsaWRhdGVNYW5pZmVzdChlbnZNYW5pZmVzdCk7XG5cbiAgICBpZiAoY29udGV4dC5hZ2dyZWdhdGlvbikge1xuICAgICAgY29uc3QgY29udmVydE1ldHJpY3MgPSBjb250ZXh0LmFnZ3JlZ2F0aW9uPy5tZXRyaWNzLm1hcChcbiAgICAgICAgKG1ldHJpYzogc3RyaW5nKSA9PiAoe1xuICAgICAgICAgIFttZXRyaWNdOiBBR0dSRUdBVElPTl9NRVRIT0RTWzJdLFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgc3RvcmVBZ2dyZWdhdGlvbk1ldHJpY3MoLi4uY29udmVydE1ldHJpY3MpO1xuICAgIH1cblxuICAgIGNvbnN0IHBsdWdpblN0b3JhZ2UgPSBhd2FpdCBpbml0aWFsaXplKGNvbnRleHQpO1xuICAgIGNvbnN0IGNvbXB1dGVkVHJlZSA9IGF3YWl0IGNvbXB1dGUodHJlZSwge1xuICAgICAgY29udGV4dCxcbiAgICAgIHBsdWdpblN0b3JhZ2UsXG4gICAgICBvYnNlcnZlLFxuICAgICAgcmVncm91cCxcbiAgICAgIGNvbXB1dGU6IGNvbXB1dGVGbGFnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYWdncmVnYXRlZFRyZWUgPSBhZ2dyZWdhdGUoY29tcHV0ZWRUcmVlLCBjb250ZXh0LmFnZ3JlZ2F0aW9uKTtcbiAgICBlbnZNYW5pZmVzdC5leHBsYWluZXIgJiYgKGNvbnRleHQuZXhwbGFpbiA9IGV4cGxhaW4oKSk7XG5cbiAgICBhd2FpdCBleGhhdXN0KGFnZ3JlZ2F0ZWRUcmVlLCBjb250ZXh0LCBvdXRwdXRPcHRpb25zKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgZW52TWFuaWZlc3QuZXhlY3V0aW9uIS5zdGF0dXMgPSAnZmFpbCc7XG4gICAgICBlbnZNYW5pZmVzdC5leGVjdXRpb24hLmVycm9yID0gZXJyb3IudG9TdHJpbmcoKTtcbiAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICBjb25zdCB7dHJlZSwgLi4uY29udGV4dH0gPSBlbnZNYW5pZmVzdDtcblxuICAgICAgaWYgKGVycm9yLm5hbWUgIT09ICdFeGhhdXN0RXJyb3InKSB7XG4gICAgICAgIGV4aGF1c3QodHJlZSwgY29udGV4dCwgb3V0cHV0T3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnNvbGUuaW5mbyhFWElUSU5HX0lGKTtcbn07XG5cbmltcGFjdEVuZ2luZSgpLmNhdGNoKGFuZEhhbmRsZSk7XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { AggregationParams, AggregationMetricsWithMethod } from '../../common/types/manifest';
2
- import { AggregationMetric } from '../types/aggregation';
3
- /**
4
- * If aggregation is disabled, then returns given `tree`.
5
- * Otherwise creates copy of the tree, then applies aggregation to it.
6
- */
7
- export declare const aggregate: (tree: any, aggregationParams: AggregationParams) => any;
8
- /**
9
- * Gets or stores aggregation metrics.
10
- */
11
- export declare const storeAggregationMetrics: (aggregationMetrics?: AggregationMetricsWithMethod) => AggregationMetric;
12
- /**
13
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
14
- */
15
- export declare const getAggregationMethod: (unitName: string) => import("../types/aggregation").AggregationMethodTypes | undefined;
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAggregationMethod = exports.storeAggregationMetrics = exports.aggregate = void 0;
4
- const debug_logger_1 = require("../../common/util/debug-logger");
5
- const logger_1 = require("../../common/util/logger");
6
- const aggregation_helper_1 = require("../util/aggregation-helper");
7
- const log_memoize_1 = require("../util/log-memoize");
8
- const strings_1 = require("../config/strings");
9
- const { AGGREGATING_NODE, AGGREGATING_OUTPUTS, UNKNOWN_PARAM, CHECKING_AGGREGATION_METHOD, } = strings_1.STRINGS;
10
- /**
11
- * Gets `i`th element from all children outputs and collects them in single array.
12
- */
13
- const getIthElementsFromChildren = (children, i) => {
14
- const values = Object.values(children);
15
- return values.map((value) => {
16
- const output = value.outputs;
17
- return output[i];
18
- });
19
- };
20
- /**
21
- * 1. Gets the i'th element from each childrens outputs (treating children as rows and we are after a column of data).
22
- * 2. Now we just aggregate over the `ithSliceOfOutputs` the same as we did for the normal outputs.
23
- */
24
- const temporalAggregation = (node, metrics) => {
25
- const outputs = [];
26
- const values = Object.values(node.children);
27
- for (let i = 0; i < values[0].outputs.length; i++) {
28
- const ithSliceOfOutputs = getIthElementsFromChildren(node.children, i);
29
- outputs.push((0, aggregation_helper_1.aggregateInputsIntoOne)(ithSliceOfOutputs, metrics, true));
30
- }
31
- return outputs;
32
- };
33
- /**
34
- * Navigates the tree depth first, bottom up,
35
- * left to right aggregating the component nodes and then the grouping nodes will be aggregated
36
- * only when all their child nodes have been aggregated.
37
- * 1. Aggregates all the children.
38
- * 2. At this point you can be positive all your children have been aggregated and so you can now work on aggregating yourself.
39
- * 3. It's component node, аggregates just the outputs of THIS component node (horizontal/component aggregation).
40
- * 4. Else it's grouping node, first does temporal aggregation. This assumes everything is on the same time-grid.
41
- * The outputs of the grouping node are the aggregated time bucketed outputs of it's children.
42
- * 5. Now a grouping node has it's own outputs, it can horizotnally aggregate them.
43
- */
44
- const aggregateNode = (node, aggregationParams) => {
45
- const metrics = aggregationParams.metrics.map(metric => ({ [metric]: 'none' }));
46
- const type = aggregationParams.type;
47
- if (node.children) {
48
- for (const child in node.children) {
49
- console.debug(AGGREGATING_NODE(child));
50
- aggregateNode(node.children[child], aggregationParams);
51
- }
52
- }
53
- if (!node.children) {
54
- if (type === 'horizontal' || type === 'both') {
55
- node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(node.outputs, metrics);
56
- }
57
- }
58
- else {
59
- if (type === 'vertical' || type === 'both') {
60
- const outputs = temporalAggregation(node, metrics);
61
- node.outputs = outputs;
62
- node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(outputs, metrics);
63
- }
64
- }
65
- };
66
- /**
67
- * If aggregation is disabled, then returns given `tree`.
68
- * Otherwise creates copy of the tree, then applies aggregation to it.
69
- */
70
- const aggregate = (tree, aggregationParams) => {
71
- console.debug(AGGREGATING_OUTPUTS);
72
- if (!aggregationParams || !aggregationParams.type) {
73
- return tree;
74
- }
75
- const copyOfTree = structuredClone(tree);
76
- aggregateNode(copyOfTree, aggregationParams);
77
- return copyOfTree;
78
- };
79
- exports.aggregate = aggregate;
80
- /**
81
- * Gets or stores aggregation metrics.
82
- */
83
- const storeAggregationMetrics = (aggregationMetrics) => {
84
- if (aggregationMetrics) {
85
- metricManager.metrics = {
86
- ...metricManager.metrics,
87
- ...aggregationMetrics,
88
- };
89
- }
90
- return metricManager.metrics;
91
- };
92
- exports.storeAggregationMetrics = storeAggregationMetrics;
93
- /**
94
- * Creates an encapsulated object to retrieve the metrics.
95
- */
96
- const metricManager = (() => {
97
- let metric;
98
- const manager = {
99
- get metrics() {
100
- return metric;
101
- },
102
- set metrics(value) {
103
- metric = value;
104
- },
105
- };
106
- return manager;
107
- })();
108
- /**
109
- * Returns aggregation method for given `unitName`. If doesn't exist then returns value `sum`.
110
- */
111
- const getAggregationMethod = (unitName) => {
112
- debug_logger_1.debugLogger.setExecutingPluginName();
113
- (0, log_memoize_1.memoizedLog)(console.debug, CHECKING_AGGREGATION_METHOD(unitName));
114
- const aggregationMetricsStorage = (0, exports.storeAggregationMetrics)();
115
- if (aggregationMetricsStorage &&
116
- Object.keys(aggregationMetricsStorage).includes(unitName)) {
117
- return aggregationMetricsStorage[unitName];
118
- }
119
- (0, log_memoize_1.memoizedLog)(logger_1.logger.warn, UNKNOWN_PARAM(unitName));
120
- return undefined;
121
- };
122
- exports.getAggregationMethod = getAggregationMethod;
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLXJ1bi9saWIvYWdncmVnYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGlFQUEyRDtBQUMzRCxxREFBZ0Q7QUFPaEQsbUVBQWtFO0FBQ2xFLHFEQUFnRDtBQUloRCwrQ0FBMEM7QUFFMUMsTUFBTSxFQUNKLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLDJCQUEyQixHQUM1QixHQUFHLGlCQUFPLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxRQUFhLEVBQUUsQ0FBUyxFQUFFLEVBQUU7SUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUE0QixFQUFFLEVBQUU7SUFDdEUsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztJQUNuQyxNQUFNLE1BQU0sR0FBUSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakQsTUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZF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LENBQUMsQ0FBQyxFQUFFLENBQUM7QUFFTDs7R0FFRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDdkQsMEJBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3JDLElBQUEseUJBQVcsRUFBQyxPQUFPLENBQUMsS0FBSyxFQUFFLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEUsTUFBTSx5QkFBeUIsR0FBRyxJQUFBLCtCQUF1QixHQUFFLENBQUM7SUFFNUQsSUFDRSx5QkFBeUI7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFDekQ7UUFDQSxPQUFPLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzVDO0lBRUQsSUFBQSx5QkFBVyxFQUFDLGVBQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFbEQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBZlcsUUFBQSxvQkFBb0Isd0JBZS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7ZGVidWdMb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2RlYnVnLWxvZ2dlcic7XG5pbXBvcnQge2xvZ2dlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvbG9nZ2VyJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uUGFyYW1zLFxuICBBZ2dyZWdhdGlvblBhcmFtc1N1cmUsXG4gIEFnZ3JlZ2F0aW9uTWV0cmljc1dpdGhNZXRob2QsXG59IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5cbmltcG9ydCB7YWdncmVnYXRlSW5wdXRzSW50b09uZX0gZnJvbSAnLi4vdXRpbC9hZ2dyZWdhdGlvbi1oZWxwZXInO1xuaW1wb3J0IHttZW1vaXplZExvZ30gZnJvbSAnLi4vdXRpbC9sb2ctbWVtb2l6ZSc7XG5cbmltcG9ydCB7QWdncmVnYXRpb25NZXRyaWN9IGZyb20gJy4uL3R5cGVzL2FnZ3JlZ2F0aW9uJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmNvbnN0IHtcbiAgQUdHUkVHQVRJTkdfTk9ERSxcbiAgQUdHUkVHQVRJTkdfT1VUUFVUUyxcbiAgVU5LTk9XTl9QQVJBTSxcbiAgQ0hFQ0tJTkdfQUdHUkVHQVRJT05fTUVUSE9ELFxufSA9IFNUUklOR1M7XG5cbi8qKlxuICogR2V0cyBgaWB0aCBlbGVtZW50IGZyb20gYWxsIGNoaWxkcmVuIG91dHB1dHMgYW5kIGNvbGxlY3RzIHRoZW0gaW4gc2luZ2xlIGFycmF5LlxuICovXG5jb25zdCBnZXRJdGhFbGVtZW50c0Zyb21DaGlsZHJlbiA9IChjaGlsZHJlbjogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhjaGlsZHJlbik7XG5cbiAgcmV0dXJuIHZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSB2YWx1ZS5vdXRwdXRzO1xuXG4gICAgcmV0dXJuIG91dHB1dFtpXTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIDEuIEdldHMgdGhlIGkndGggZWxlbWVudCBmcm9tIGVhY2ggY2hpbGRyZW5zIG91dHB1dHMgKHRyZWF0aW5nIGNoaWxkcmVuIGFzIHJvd3MgYW5kIHdlIGFyZSBhZnRlciBhIGNvbHVtbiBvZiBkYXRhKS5cbiAqIDIuIE5vdyB3ZSBqdXN0IGFnZ3JlZ2F0ZSBvdmVyIHRoZSBgaXRoU2xpY2VPZk91dHB1dHNgIHRoZSBzYW1lIGFzIHdlIGRpZCBmb3IgdGhlIG5vcm1hbCBvdXRwdXRzLlxuICovXG5jb25zdCB0ZW1wb3JhbEFnZ3JlZ2F0aW9uID0gKG5vZGU6IGFueSwgbWV0cmljczogQWdncmVnYXRpb25NZXRyaWNbXSkgPT4ge1xuICBjb25zdCBvdXRwdXRzOiBQbHVnaW5QYXJhbXNbXSA9IFtdO1xuICBjb25zdCB2YWx1ZXM6IGFueSA9IE9iamVjdC52YWx1ZXMobm9kZS5jaGlsZHJlbik7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXNbMF0ub3V0cHV0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGl0aFNsaWNlT2ZPdXRwdXRzID0gZ2V0SXRoRWxlbWVudHNGcm9tQ2hpbGRyZW4obm9kZS5jaGlsZHJlbiwgaSk7XG4gICAgb3V0cHV0cy5wdXNoKGFnZ3JlZ2F0ZUlucHV0c0ludG9PbmUoaXRoU2xpY2VPZk91dHB1dHMsIG1ldHJpY3MsIHRydWUpKTtcbiAgfVxuXG4gIHJldHVybiBvdXRwdXRzO1xufTtcblxuLyoqXG4gKiBOYXZpZ2F0ZXMgdGhlIHRyZWUgZGVwdGggZmlyc3QsIGJvdHRvbSB1cCxcbiAqICBsZWZ0IHRvIHJpZ2h0IGFnZ3JlZ2F0aW5nIHRoZSBjb21wb25lbnQgbm9kZXMgYW5kIHRoZW4gdGhlIGdyb3VwaW5nIG5vZGVzIHdpbGwgYmUgYWdncmVnYXRlZFxuICogIG9ubHkgd2hlbiBhbGwgdGhlaXIgY2hpbGQgbm9kZXMgaGF2ZSBiZWVuIGFnZ3JlZ2F0ZWQuXG4gKiAxLiBBZ2dyZWdhdGVzIGFsbCB0aGUgY2hpbGRyZW4uXG4gKiAyLiBBdCB0aGlzIHBvaW50IHlvdSBjYW4gYmUgcG9zaXRpdmUgYWxsIHlvdXIgY2hpbGRyZW4gaGF2ZSBiZWVuIGFnZ3JlZ2F0ZWQgYW5kIHNvIHlvdSBjYW4gbm93IHdvcmsgb24gYWdncmVnYXRpbmcgeW91cnNlbGYuXG4gKiAzLiBJdCdzIGNvbXBvbmVudCBub2RlLCDQsGdncmVnYXRlcyBqdXN0IHRoZSBvdXRwdXRzIG9mIFRISVMgY29tcG9uZW50IG5vZGUgKGhvcml6b250YWwvY29tcG9uZW50IGFnZ3JlZ2F0aW9uKS5cbiAqIDQuIEVsc2UgaXQncyBncm91cGluZyBub2RlLCBmaXJzdCBkb2VzIHRlbXBvcmFsIGFnZ3JlZ2F0aW9uLiBUaGlzIGFzc3VtZXMgZXZlcnl0aGluZyBpcyBvbiB0aGUgc2FtZSB0aW1lLWdyaWQuXG4gKiAgICBUaGUgb3V0cHV0cyBvZiB0aGUgZ3JvdXBpbmcgbm9kZSBhcmUgdGhlIGFnZ3JlZ2F0ZWQgdGltZSBidWNrZXRlZCBvdXRwdXRzIG9mIGl0J3MgY2hpbGRyZW4uXG4gKiA1LiBOb3cgYSBncm91cGluZyBub2RlIGhhcyBpdCdzIG93biBvdXRwdXRzLCBpdCBjYW4gaG9yaXpvdG5hbGx5IGFnZ3JlZ2F0ZSB0aGVtLlxuICovXG5jb25zdCBhZ2dyZWdhdGVOb2RlID0gKG5vZGU6IGFueSwgYWdncmVnYXRpb25QYXJhbXM6IEFnZ3JlZ2F0aW9uUGFyYW1zU3VyZSkgPT4ge1xuICBjb25zdCBtZXRyaWNzOiBBZ2dyZWdhdGlvbk1ldHJpY1tdID0gYWdncmVnYXRpb25QYXJhbXMhLm1ldHJpY3MubWFwKFxuICAgIG1ldHJpYyA9PiAoe1ttZXRyaWNdOiAnbm9uZSd9KVxuICApO1xuICBjb25zdCB0eXBlID0gYWdncmVnYXRpb25QYXJhbXMhLnR5cGU7XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIGluIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoQUdHUkVHQVRJTkdfTk9ERShjaGlsZCkpO1xuXG4gICAgICBhZ2dyZWdhdGVOb2RlKG5vZGUuY2hpbGRyZW5bY2hpbGRdLCBhZ2dyZWdhdGlvblBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFub2RlLmNoaWxkcmVuKSB7XG4gICAgaWYgKHR5cGUgPT09ICdob3Jpem9udGFsJyB8fCB0eXBlID09PSAnYm90aCcpIHtcbiAgICAgIG5vZGUuYWdncmVnYXRlZCA9IGFnZ3JlZ2F0ZUlucHV0c0ludG9PbmUobm9kZS5vdXRwdXRzLCBtZXRyaWNzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGUgPT09ICd2ZXJ0aWNhbCcgfHwgdHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdGVtcG9yYWxBZ2dyZWdhdGlvbihub2RlLCBtZXRyaWNzKTtcbiAgICAgIG5vZGUub3V0cHV0cyA9IG91dHB1dHM7XG4gICAgICBub2RlLmFnZ3JlZ2F0ZWQgPSBhZ2dyZWdhdGVJbnB1dHNJbnRvT25lKG91dHB1dHMsIG1ldHJpY3MpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBJZiBhZ2dyZWdhdGlvbiBpcyBkaXNhYmxlZCwgdGhlbiByZXR1cm5zIGdpdmVuIGB0cmVlYC5cbiAqIE90aGVyd2lzZSBjcmVhdGVzIGNvcHkgb2YgdGhlIHRyZWUsIHRoZW4gYXBwbGllcyBhZ2dyZWdhdGlvbiB0byBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFnZ3JlZ2F0ZSA9ICh0cmVlOiBhbnksIGFnZ3JlZ2F0aW9uUGFyYW1zOiBBZ2dyZWdhdGlvblBhcmFtcykgPT4ge1xuICBjb25zb2xlLmRlYnVnKEFHR1JFR0FUSU5HX09VVFBVVFMpO1xuXG4gIGlmICghYWdncmVnYXRpb25QYXJhbXMgfHwgIWFnZ3JlZ2F0aW9uUGFyYW1zLnR5cGUpIHtcbiAgICByZXR1cm4gdHJlZTtcbiAgfVxuXG4gIGNvbnN0IGNvcHlPZlRyZWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodHJlZSk7XG4gIGFnZ3JlZ2F0ZU5vZGUoY29weU9mVHJlZSwgYWdncmVnYXRpb25QYXJhbXMpO1xuXG4gIHJldHVybiBjb3B5T2ZUcmVlO1xufTtcblxuLyoqXG4gKiBHZXRzIG9yIHN0b3JlcyBhZ2dyZWdhdGlvbiBtZXRyaWNzLlxuICovXG5leHBvcnQgY29uc3Qgc3RvcmVBZ2dyZWdhdGlvbk1ldHJpY3MgPSAoXG4gIGFnZ3JlZ2F0aW9uTWV0cmljcz86IEFnZ3JlZ2F0aW9uTWV0cmljc1dpdGhNZXRob2RcbikgPT4ge1xuICBpZiAoYWdncmVnYXRpb25NZXRyaWNzKSB7XG4gICAgbWV0cmljTWFuYWdlci5tZXRyaWNzID0ge1xuICAgICAgLi4ubWV0cmljTWFuYWdlci5tZXRyaWNzLFxuICAgICAgLi4uYWdncmVnYXRpb25NZXRyaWNzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbWV0cmljTWFuYWdlci5tZXRyaWNzO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVuY2Fwc3VsYXRlZCBvYmplY3QgdG8gcmV0cmlldmUgdGhlIG1ldHJpY3MuXG4gKi9cbmNvbnN0IG1ldHJpY01hbmFnZXIgPSAoKCkgPT4ge1xuICBsZXQgbWV0cmljOiBBZ2dyZWdhdGlvbk1ldHJpYztcblxuICBjb25zdCBtYW5hZ2VyID0ge1xuICAgIGdldCBtZXRyaWNzKCkge1xuICAgICAgcmV0dXJuIG1ldHJpYztcbiAgICB9LFxuICAgIHNldCBtZXRyaWNzKHZhbHVlOiBBZ2dyZWdhdGlvbk1ldHJpYykge1xuICAgICAgbWV0cmljID0gdmFsdWU7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gbWFuYWdlcjtcbn0pKCk7XG5cbi8qKlxuICogUmV0dXJucyBhZ2dyZWdhdGlvbiBtZXRob2QgZm9yIGdpdmVuIGB1bml0TmFtZWAuIElmIGRvZXNuJ3QgZXhpc3QgdGhlbiByZXR1cm5zIHZhbHVlIGBzdW1gLlxuICovXG5leHBvcnQgY29uc3QgZ2V0QWdncmVnYXRpb25NZXRob2QgPSAodW5pdE5hbWU6IHN0cmluZykgPT4ge1xuICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKCk7XG4gIG1lbW9pemVkTG9nKGNvbnNvbGUuZGVidWcsIENIRUNLSU5HX0FHR1JFR0FUSU9OX01FVEhPRCh1bml0TmFtZSkpO1xuICBjb25zdCBhZ2dyZWdhdGlvbk1ldHJpY3NTdG9yYWdlID0gc3RvcmVBZ2dyZWdhdGlvbk1ldHJpY3MoKTtcblxuICBpZiAoXG4gICAgYWdncmVnYXRpb25NZXRyaWNzU3RvcmFnZSAmJlxuICAgIE9iamVjdC5rZXlzKGFnZ3JlZ2F0aW9uTWV0cmljc1N0b3JhZ2UpLmluY2x1ZGVzKHVuaXROYW1lKVxuICApIHtcbiAgICByZXR1cm4gYWdncmVnYXRpb25NZXRyaWNzU3RvcmFnZVt1bml0TmFtZV07XG4gIH1cblxuICBtZW1vaXplZExvZyhsb2dnZXIud2FybiwgVU5LTk9XTl9QQVJBTSh1bml0TmFtZSkpO1xuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl19
@@ -1,5 +0,0 @@
1
- import { ComputeParams } from '../types/compute';
2
- /**
3
- * Creates copy of existing tree, then applies computing strategy.
4
- */
5
- export declare const compute: (tree: any, params: ComputeParams) => Promise<any>;
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compute = void 0;
4
- const regroup_1 = require("./regroup");
5
- const explain_1 = require("./explain");
6
- const helpers_1 = require("../util/helpers");
7
- const debug_logger_1 = require("../../common/util/debug-logger");
8
- const logger_1 = require("../../common/util/logger");
9
- const strings_1 = require("../config/strings");
10
- const interface_1 = require("../types/interface");
11
- const { MERGING_DEFAULTS_WITH_INPUT_DATA, EMPTY_PIPELINE } = strings_1.STRINGS;
12
- /**
13
- * Traverses all child nodes based on children grouping.
14
- */
15
- const traverse = async (children, params) => {
16
- for (const child in children) {
17
- await computeNode(children[child], params);
18
- }
19
- };
20
- /**
21
- * Appends `default` values to `inputs`.
22
- */
23
- const mergeDefaults = (inputs, defaults) => {
24
- if (inputs) {
25
- const response = defaults
26
- ? inputs.map(input => (0, helpers_1.mergeObjects)(defaults, input))
27
- : inputs;
28
- return response;
29
- }
30
- console.debug(MERGING_DEFAULTS_WITH_INPUT_DATA);
31
- return defaults ? [defaults] : [];
32
- };
33
- /**
34
- * 1. If the node has it's own pipeline, defaults or config then use that,
35
- * otherwise use whatever has been passed down from further up the tree.
36
- * 2. If it's a grouping node, then first of all computes all it's children.
37
- * This is doing a depth first traversal.
38
- * 3. Otherwise merges the defaults into the inputs.
39
- * 4. Iterates over pipeline phases (observe, regroup, compute).
40
- * 5. Observe plugins are used to insert input values
41
- * (isolated execution can be achived by passing `--observe` flag to CLI command).
42
- * 6. Regroup plugin is used to group existing inputs by criteria
43
- * (isolated execution can be achived by passing `--regroup` flag to CLI command).
44
- * Since it creates new children for node, existing inputs and outputs are dropped and recursive traversal is called
45
- * for newbord child component.
46
- * 7. Compute plugins are used to do desired computations and appending the result to outputs
47
- * (isolated execution can be achived by passing `--compute` flag to CLI command).
48
- */
49
- const computeNode = async (node, params) => {
50
- const pipeline = node.pipeline || params.pipeline;
51
- const config = node.config || params.config;
52
- const defaults = node.defaults || params.defaults;
53
- const noFlags = !params.observe && !params.regroup && !params.compute;
54
- if (node.children) {
55
- return traverse(node.children, {
56
- ...params,
57
- pipeline,
58
- defaults,
59
- config,
60
- });
61
- }
62
- let inputStorage = structuredClone(node.inputs);
63
- inputStorage = mergeDefaults(inputStorage, defaults);
64
- const pipelineCopy = structuredClone(pipeline) || {};
65
- /** Checks if pipeline is not an array or empty object. */
66
- if (Array.isArray(pipelineCopy) ||
67
- (typeof pipelineCopy === 'object' &&
68
- pipelineCopy !== null &&
69
- Object.keys(pipelineCopy).length === 0)) {
70
- logger_1.logger.warn(EMPTY_PIPELINE);
71
- }
72
- /**
73
- * If iteration is on observe pipeline, then executes observe plugins and sets the inputs value.
74
- */
75
- if ((noFlags || params.observe) && pipelineCopy.observe) {
76
- while (pipelineCopy.observe.length !== 0) {
77
- const pluginName = pipelineCopy.observe.shift();
78
- const plugin = params.pluginStorage.get(pluginName);
79
- const nodeConfig = config && config[pluginName];
80
- if ((0, interface_1.isExecute)(plugin)) {
81
- inputStorage = await plugin.execute(inputStorage, nodeConfig);
82
- node.inputs = inputStorage;
83
- if (params.context.explainer) {
84
- (0, explain_1.addExplainData)({
85
- pluginName,
86
- metadata: plugin.metadata,
87
- pluginData: params.context.initialize.plugins[pluginName],
88
- });
89
- }
90
- }
91
- }
92
- }
93
- /**
94
- * If regroup is requested, execute regroup strategy, delete child's inputs, outputs and empty regroup array.
95
- */
96
- if ((noFlags || params.regroup) && pipelineCopy.regroup) {
97
- node.children = (0, regroup_1.Regroup)(inputStorage, pipelineCopy.regroup);
98
- delete node.inputs;
99
- delete node.outputs;
100
- return traverse(node.children, {
101
- ...params,
102
- pipeline: {
103
- ...pipelineCopy,
104
- regroup: undefined,
105
- },
106
- defaults,
107
- config,
108
- });
109
- }
110
- /**
111
- * If iteration is on compute plugin, then executes compute plugins and sets the outputs value.
112
- */
113
- if ((noFlags || params.compute) && pipelineCopy.compute) {
114
- while (pipelineCopy.compute.length !== 0) {
115
- const pluginName = pipelineCopy.compute.shift();
116
- const plugin = params.pluginStorage.get(pluginName);
117
- const nodeConfig = config && config[pluginName];
118
- if ((0, interface_1.isExecute)(plugin)) {
119
- inputStorage = await plugin.execute(inputStorage, nodeConfig);
120
- node.outputs = inputStorage;
121
- if (params.context.explainer) {
122
- (0, explain_1.addExplainData)({
123
- pluginName,
124
- metadata: plugin.metadata,
125
- pluginData: params.context.initialize.plugins[pluginName],
126
- });
127
- }
128
- debug_logger_1.debugLogger.setExecutingPluginName();
129
- }
130
- }
131
- }
132
- };
133
- /**
134
- * Creates copy of existing tree, then applies computing strategy.
135
- */
136
- const compute = async (tree, params) => {
137
- const copyOfTree = structuredClone(tree);
138
- await computeNode(copyOfTree, params);
139
- return copyOfTree;
140
- };
141
- exports.compute = compute;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL2NvbXB1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdUNBQWtDO0FBQ2xDLHVDQUF5QztBQUV6Qyw2Q0FBNkM7QUFDN0MsaUVBQTJEO0FBQzNELHFEQUFnRDtBQUVoRCwrQ0FBMEM7QUFHMUMsa0RBQTZDO0FBRTdDLE1BQU0sRUFBQyxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRW5FOztHQUVHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQWEsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDOUQsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUU7UUFDNUIsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixNQUFzQixFQUN0QixRQUFrQyxFQUNsQyxFQUFFO0lBQ0YsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLFFBQVEsR0FBRyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBQSxzQkFBWSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRVgsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFFaEQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFB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RXpDLE1BQU0sV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFOVyxRQUFBLE9BQU8sV0FNbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtSZWdyb3VwfSBmcm9tICcuL3JlZ3JvdXAnO1xuaW1wb3J0IHthZGRFeHBsYWluRGF0YX0gZnJvbSAnLi9leHBsYWluJztcblxuaW1wb3J0IHttZXJnZU9iamVjdHN9IGZyb20gJy4uL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge2RlYnVnTG9nZ2VyfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5pbXBvcnQge0NvbXB1dGVQYXJhbXMsIE5vZGUsIFBoYXNlZFBpcGVsaW5lfSBmcm9tICcuLi90eXBlcy9jb21wdXRlJztcbmltcG9ydCB7aXNFeGVjdXRlfSBmcm9tICcuLi90eXBlcy9pbnRlcmZhY2UnO1xuXG5jb25zdCB7TUVSR0lOR19ERUZBVUxUU19XSVRIX0lOUFVUX0RBVEEsIEVNUFRZX1BJUEVMSU5FfSA9IFNUUklOR1M7XG5cbi8qKlxuICogVHJhdmVyc2VzIGFsbCBjaGlsZCBub2RlcyBiYXNlZCBvbiBjaGlsZHJlbiBncm91cGluZy5cbiAqL1xuY29uc3QgdHJhdmVyc2UgPSBhc3luYyAoY2hpbGRyZW46IGFueSwgcGFyYW1zOiBDb21wdXRlUGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgY2hpbGQgaW4gY2hpbGRyZW4pIHtcbiAgICBhd2FpdCBjb21wdXRlTm9kZShjaGlsZHJlbltjaGlsZF0sIHBhcmFtcyk7XG4gIH1cbn07XG5cbi8qKlxuICogQXBwZW5kcyBgZGVmYXVsdGAgdmFsdWVzIHRvIGBpbnB1dHNgLlxuICovXG5jb25zdCBtZXJnZURlZmF1bHRzID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBkZWZhdWx0czogUGx1Z2luUGFyYW1zIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgaWYgKGlucHV0cykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gZGVmYXVsdHNcbiAgICAgID8gaW5wdXRzLm1hcChpbnB1dCA9PiBtZXJnZU9iamVjdHMoZGVmYXVsdHMsIGlucHV0KSlcbiAgICAgIDogaW5wdXRzO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgY29uc29sZS5kZWJ1ZyhNRVJHSU5HX0RFRkFVTFRTX1dJVEhfSU5QVVRfREFUQSk7XG5cbiAgcmV0dXJuIGRlZmF1bHRzID8gW2RlZmF1bHRzXSA6IFtdO1xufTtcblxuLyoqXG4gKiAxLiBJZiB0aGUgbm9kZSBoYXMgaXQncyBvd24gcGlwZWxpbmUsIGRlZmF1bHRzIG9yIGNvbmZpZyB0aGVuIHVzZSB0aGF0LFxuICogICAgb3RoZXJ3aXNlIHVzZSB3aGF0ZXZlciBoYXMgYmVlbiBwYXNzZWQgZG93biBmcm9tIGZ1cnRoZXIgdXAgdGhlIHRyZWUuXG4gKiAyLiBJZiBpdCdzIGEgZ3JvdXBpbmcgbm9kZSwgdGhlbiBmaXJzdCBvZiBhbGwgY29tcHV0ZXMgYWxsIGl0J3MgY2hpbGRyZW4uXG4gKiAgICBUaGlzIGlzIGRvaW5nIGEgZGVwdGggZmlyc3QgdHJhdmVyc2FsLlxuICogMy4gT3RoZXJ3aXNlIG1lcmdlcyB0aGUgZGVmYXVsdHMgaW50byB0aGUgaW5wdXRzLlxuICogNC4gSXRlcmF0ZXMgb3ZlciBwaXBlbGluZSBwaGFzZXMgKG9ic2VydmUsIHJlZ3JvdXAsIGNvbXB1dGUpLlxuICogNS4gT2JzZXJ2ZSBwbHVnaW5zIGFyZSB1c2VkIHRvIGluc2VydCBpbnB1dCB2YWx1ZXNcbiAqICAgIChpc29sYXRlZCBleGVjdXRpb24gY2FuIGJlIGFjaGl2ZWQgYnkgcGFzc2luZyBgLS1vYnNlcnZlYCBmbGFnIHRvIENMSSBjb21tYW5kKS5cbiAqIDYuIFJlZ3JvdXAgcGx1Z2luIGlzIHVzZWQgdG8gZ3JvdXAgZXhpc3RpbmcgaW5wdXRzIGJ5IGNyaXRlcmlhXG4gKiAgICAoaXNvbGF0ZWQgZXhlY3V0aW9uIGNhbiBiZSBhY2hpdmVkIGJ5IHBhc3NpbmcgYC0tcmVncm91cGAgZmxhZyB0byBDTEkgY29tbWFuZCkuXG4gKiAgICBTaW5jZSBpdCBjcmVhdGVzIG5ldyBjaGlsZHJlbiBmb3Igbm9kZSwgZXhpc3RpbmcgaW5wdXRzIGFuZCBvdXRwdXRzIGFyZSBkcm9wcGVkIGFuZCByZWN1cnNpdmUgdHJhdmVyc2FsIGlzIGNhbGxlZFxuICogICAgZm9yIG5ld2JvcmQgY2hpbGQgY29tcG9uZW50LlxuICogNy4gQ29tcHV0ZSBwbHVnaW5zIGFyZSB1c2VkIHRvIGRvIGRlc2lyZWQgY29tcHV0YXRpb25zIGFuZCBhcHBlbmRpbmcgdGhlIHJlc3VsdCB0byBvdXRwdXRzXG4gKiAgICAoaXNvbGF0ZWQgZXhlY3V0aW9uIGNhbiBiZSBhY2hpdmVkIGJ5IHBhc3NpbmcgYC0tY29tcHV0ZWAgZmxhZyB0byBDTEkgY29tbWFuZCkuXG4gKi9cbmNvbnN0IGNvbXB1dGVOb2RlID0gYXN5bmMgKG5vZGU6IE5vZGUsIHBhcmFtczogQ29tcHV0ZVBhcmFtcyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHBpcGVsaW5lID0gbm9kZS5waXBlbGluZSB8fCAocGFyYW1zLnBpcGVsaW5lIGFzIFBoYXNlZFBpcGVsaW5lKTtcbiAgY29uc3QgY29uZmlnID0gbm9kZS5jb25maWcgfHwgcGFyYW1zLmNvbmZpZztcbiAgY29uc3QgZGVmYXVsdHMgPSBub2RlLmRlZmF1bHRzIHx8IHBhcmFtcy5kZWZhdWx0cztcbiAgY29uc3Qgbm9GbGFncyA9ICFwYXJhbXMub2JzZXJ2ZSAmJiAhcGFyYW1zLnJlZ3JvdXAgJiYgIXBhcmFtcy5jb21wdXRlO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgcmV0dXJuIHRyYXZlcnNlKG5vZGUuY2hpbGRyZW4sIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHBpcGVsaW5lLFxuICAgICAgZGVmYXVsdHMsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBsZXQgaW5wdXRTdG9yYWdlID0gc3RydWN0dXJlZENsb25lKG5vZGUuaW5wdXRzKSBhcyBQbHVnaW5QYXJhbXNbXTtcbiAgaW5wdXRTdG9yYWdlID0gbWVyZ2VEZWZhdWx0cyhpbnB1dFN0b3JhZ2UsIGRlZmF1bHRzKTtcbiAgY29uc3QgcGlwZWxpbmVDb3B5ID0gc3RydWN0dXJlZENsb25lKHBpcGVsaW5lKSB8fCB7fTtcblxuICAvKiogQ2hlY2tzIGlmIHBpcGVsaW5lIGlzIG5vdCBhbiBhcnJheSBvciBlbXB0eSBvYmplY3QuICovXG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHBpcGVsaW5lQ29weSkgfHxcbiAgICAodHlwZW9mIHBpcGVsaW5lQ29weSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHBpcGVsaW5lQ29weSAhPT0gbnVsbCAmJlxuICAgICAgT2JqZWN0LmtleXMocGlwZWxpbmVDb3B5KS5sZW5ndGggPT09IDApXG4gICkge1xuICAgIGxvZ2dlci53YXJuKEVNUFRZX1BJUEVMSU5FKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBpdGVyYXRpb24gaXMgb24gb2JzZXJ2ZSBwaXBlbGluZSwgdGhlbiBleGVjdXRlcyBvYnNlcnZlIHBsdWdpbnMgYW5kIHNldHMgdGhlIGlucHV0cyB2YWx1ZS5cbiAgICovXG4gIGlmICgobm9GbGFncyB8fCBwYXJhbXMub2JzZXJ2ZSkgJiYgcGlwZWxpbmVDb3B5Lm9ic2VydmUpIHtcbiAgICB3aGlsZSAocGlwZWxpbmVDb3B5Lm9ic2VydmUubGVuZ3RoICE9PSAwKSB7XG4gICAgICBjb25zdCBwbHVnaW5OYW1lID0gcGlwZWxpbmVDb3B5Lm9ic2VydmUuc2hpZnQoKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBwbHVnaW4gPSBwYXJhbXMucGx1Z2luU3RvcmFnZS5nZXQocGx1Z2luTmFtZSk7XG4gICAgICBjb25zdCBub2RlQ29uZmlnID0gY29uZmlnICYmIGNvbmZpZ1twbHVnaW5OYW1lXTtcblxuICAgICAgaWYgKGlzRXhlY3V0ZShwbHVnaW4pKSB7XG4gICAgICAgIGlucHV0U3RvcmFnZSA9IGF3YWl0IHBsdWdpbi5leGVjdXRlKGlucHV0U3RvcmFnZSwgbm9kZUNvbmZpZyk7XG4gICAgICAgIG5vZGUuaW5wdXRzID0gaW5wdXRTdG9yYWdlO1xuXG4gICAgICAgIGlmIChwYXJhbXMuY29udGV4dC5leHBsYWluZXIpIHtcbiAgICAgICAgICBhZGRFeHBsYWluRGF0YSh7XG4gICAgICAgICAgICBwbHVnaW5OYW1lLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHBsdWdpbi5tZXRhZGF0YSxcbiAgICAgICAgICAgIHBsdWdpbkRhdGE6IHBhcmFtcy5jb250ZXh0LmluaXRpYWxpemUhLnBsdWdpbnNbcGx1Z2luTmFtZV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgcmVncm91cCBpcyByZXF1ZXN0ZWQsIGV4ZWN1dGUgcmVncm91cCBzdHJhdGVneSwgZGVsZXRlIGNoaWxkJ3MgaW5wdXRzLCBvdXRwdXRzIGFuZCBlbXB0eSByZWdyb3VwIGFycmF5LlxuICAgKi9cbiAgaWYgKChub0ZsYWdzIHx8IHBhcmFtcy5yZWdyb3VwKSAmJiBwaXBlbGluZUNvcHkucmVncm91cCkge1xuICAgIG5vZGUuY2hpbGRyZW4gPSBSZWdyb3VwKGlucHV0U3RvcmFnZSwgcGlwZWxpbmVDb3B5LnJlZ3JvdXApO1xuICAgIGRlbGV0ZSBub2RlLmlucHV0cztcbiAgICBkZWxldGUgbm9kZS5vdXRwdXRzO1xuXG4gICAgcmV0dXJuIHRyYXZlcnNlKG5vZGUuY2hpbGRyZW4sIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHBpcGVsaW5lOiB7XG4gICAgICAgIC4uLnBpcGVsaW5lQ29weSxcbiAgICAgICAgcmVncm91cDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRzLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGl0ZXJhdGlvbiBpcyBvbiBjb21wdXRlIHBsdWdpbiwgdGhlbiBleGVjdXRlcyBjb21wdXRlIHBsdWdpbnMgYW5kIHNldHMgdGhlIG91dHB1dHMgdmFsdWUuXG4gICAqL1xuICBpZiAoKG5vRmxhZ3MgfHwgcGFyYW1zLmNvbXB1dGUpICYmIHBpcGVsaW5lQ29weS5jb21wdXRlKSB7XG4gICAgd2hpbGUgKHBpcGVsaW5lQ29weS5jb21wdXRlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgY29uc3QgcGx1Z2luTmFtZSA9IHBpcGVsaW5lQ29weS5jb21wdXRlLnNoaWZ0KCkgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgcGx1Z2luID0gcGFyYW1zLnBsdWdpblN0b3JhZ2UuZ2V0KHBsdWdpbk5hbWUpO1xuICAgICAgY29uc3Qgbm9kZUNvbmZpZyA9IGNvbmZpZyAmJiBjb25maWdbcGx1Z2luTmFtZV07XG5cbiAgICAgIGlmIChpc0V4ZWN1dGUocGx1Z2luKSkge1xuICAgICAgICBpbnB1dFN0b3JhZ2UgPSBhd2FpdCBwbHVnaW4uZXhlY3V0ZShpbnB1dFN0b3JhZ2UsIG5vZGVDb25maWcpO1xuICAgICAgICBub2RlLm91dHB1dHMgPSBpbnB1dFN0b3JhZ2U7XG5cbiAgICAgICAgaWYgKHBhcmFtcy5jb250ZXh0LmV4cGxhaW5lcikge1xuICAgICAgICAgIGFkZEV4cGxhaW5EYXRhKHtcbiAgICAgICAgICAgIHBsdWdpbk5hbWUsXG4gICAgICAgICAgICBtZXRhZGF0YTogcGx1Z2luLm1ldGFkYXRhLFxuICAgICAgICAgICAgcGx1Z2luRGF0YTogcGFyYW1zLmNvbnRleHQuaW5pdGlhbGl6ZSEucGx1Z2luc1twbHVnaW5OYW1lXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgY29weSBvZiBleGlzdGluZyB0cmVlLCB0aGVuIGFwcGxpZXMgY29tcHV0aW5nIHN0cmF0ZWd5LlxuICovXG5leHBvcnQgY29uc3QgY29tcHV0ZSA9IGFzeW5jICh0cmVlOiBhbnksIHBhcmFtczogQ29tcHV0ZVBhcmFtcykgPT4ge1xuICBjb25zdCBjb3B5T2ZUcmVlID0gc3RydWN0dXJlZENsb25lKHRyZWUpO1xuXG4gIGF3YWl0IGNvbXB1dGVOb2RlKGNvcHlPZlRyZWUsIHBhcmFtcyk7XG5cbiAgcmV0dXJuIGNvcHlPZlRyZWU7XG59O1xuIl19
@@ -1,5 +0,0 @@
1
- import { Manifest } from '../../common/types/manifest';
2
- /**
3
- * Injects execution information (command, environment) to existing manifest.
4
- */
5
- export declare const injectEnvironment: (manifest: Manifest) => Promise<Manifest>;