@grnsft/if 0.5.0 → 0.6.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 (451) hide show
  1. package/README.md +5 -17
  2. package/Refactor-migration-guide.md +110 -164
  3. package/build/common/config/index.d.ts +1 -0
  4. package/build/common/config/index.js +6 -0
  5. package/build/common/config/strings.d.ts +8 -0
  6. package/build/common/config/strings.js +16 -0
  7. package/build/common/lib/load.d.ts +6 -0
  8. package/build/common/lib/load.js +18 -0
  9. package/build/{types → common/types}/manifest.d.ts +4 -1
  10. package/build/common/types/manifest.js +3 -0
  11. package/build/common/util/debug-logger.js +115 -0
  12. package/build/common/util/fs.js +94 -0
  13. package/build/common/util/helpers.d.ts +15 -0
  14. package/build/common/util/helpers.js +80 -0
  15. package/build/{util → common/util}/logger.js +1 -1
  16. package/build/{util → common/util}/validations.d.ts +149 -47
  17. package/build/common/util/validations.js +141 -0
  18. package/build/common/util/yaml.js +59 -0
  19. package/build/if-check/config/config.d.ts +6 -0
  20. package/build/if-check/config/config.js +31 -0
  21. package/build/{config → if-check/config}/index.d.ts +0 -1
  22. package/build/if-check/config/index.js +8 -0
  23. package/build/if-check/config/strings.d.ts +12 -0
  24. package/build/if-check/config/strings.js +16 -0
  25. package/build/if-check/index.js +98 -0
  26. package/build/if-check/types/process-args.d.ts +4 -0
  27. package/build/if-check/types/process-args.js +3 -0
  28. package/build/if-check/util/args.d.ts +10 -0
  29. package/build/if-check/util/args.js +56 -0
  30. package/build/if-check/util/helpers.d.ts +4 -0
  31. package/build/if-check/util/helpers.js +18 -0
  32. package/build/if-check/util/npm.d.ts +4 -0
  33. package/build/if-check/util/npm.js +59 -0
  34. package/build/if-csv/config/config.d.ts +6 -0
  35. package/build/if-csv/config/config.js +37 -0
  36. package/build/if-csv/config/index.d.ts +2 -0
  37. package/build/if-csv/config/index.js +8 -0
  38. package/build/if-csv/config/strings.d.ts +4 -0
  39. package/build/if-csv/config/strings.js +8 -0
  40. package/build/if-csv/index.js +63 -0
  41. package/build/if-csv/types/csv.d.ts +7 -0
  42. package/build/if-csv/types/csv.js +3 -0
  43. package/build/if-csv/types/process-args.d.ts +5 -0
  44. package/build/if-csv/types/process-args.js +3 -0
  45. package/build/if-csv/util/args.d.ts +12 -0
  46. package/build/if-csv/util/args.js +51 -0
  47. package/build/if-csv/util/helpers.d.ts +9 -0
  48. package/build/if-csv/util/helpers.js +95 -0
  49. package/build/if-diff/config/config.d.ts +6 -0
  50. package/build/if-diff/config/config.js +31 -0
  51. package/build/if-diff/config/index.d.ts +2 -0
  52. package/build/if-diff/config/index.js +8 -0
  53. package/build/if-diff/config/strings.d.ts +6 -0
  54. package/build/if-diff/config/strings.js +10 -0
  55. package/build/if-diff/index.js +46 -0
  56. package/build/{lib → if-diff/lib}/compare.d.ts +1 -1
  57. package/build/if-diff/lib/compare.js +56 -0
  58. package/build/{lib → if-diff/lib}/load.d.ts +16 -18
  59. package/build/if-diff/lib/load.js +51 -0
  60. package/build/if-diff/types/args.js +3 -0
  61. package/build/if-diff/types/compare.js +3 -0
  62. package/build/if-diff/types/process-args.d.ts +4 -0
  63. package/build/if-diff/types/process-args.js +3 -0
  64. package/build/if-diff/util/args.d.ts +5 -0
  65. package/build/if-diff/util/args.js +51 -0
  66. package/build/if-diff/util/helpers.d.ts +13 -0
  67. package/build/if-diff/util/helpers.js +75 -0
  68. package/build/if-env/config/config.d.ts +6 -0
  69. package/build/if-env/config/config.js +37 -0
  70. package/build/if-env/config/index.d.ts +2 -0
  71. package/build/if-env/config/index.js +8 -0
  72. package/build/if-env/config/strings.d.ts +7 -0
  73. package/build/if-env/config/strings.js +11 -0
  74. package/build/if-env/index.js +40 -0
  75. package/build/if-env/types/if-env.js +3 -0
  76. package/build/if-env/types/npm.js +3 -0
  77. package/build/if-env/types/process-args.d.ts +5 -0
  78. package/build/if-env/types/process-args.js +3 -0
  79. package/build/if-env/util/args.d.ts +12 -0
  80. package/build/if-env/util/args.js +47 -0
  81. package/build/if-env/util/helpers.d.ts +20 -0
  82. package/build/if-env/util/helpers.js +94 -0
  83. package/build/{util → if-env/util}/npm.d.ts +0 -4
  84. package/build/if-env/util/npm.js +126 -0
  85. package/build/if-run/builtins/coefficient/index.d.ts +2 -0
  86. package/build/if-run/builtins/coefficient/index.js +67 -0
  87. package/build/if-run/builtins/copy-param/index.d.ts +2 -0
  88. package/build/if-run/builtins/copy-param/index.js +70 -0
  89. package/build/if-run/builtins/csv-lookup/index.d.ts +2 -0
  90. package/build/if-run/builtins/csv-lookup/index.js +190 -0
  91. package/build/if-run/builtins/divide/index.d.ts +2 -0
  92. package/build/if-run/builtins/divide/index.js +80 -0
  93. package/build/if-run/builtins/exponent/index.d.ts +2 -0
  94. package/build/if-run/builtins/exponent/index.js +60 -0
  95. package/build/{builtins → if-run/builtins}/export-log.d.ts +1 -1
  96. package/build/{builtins → if-run/builtins}/export-log.js +1 -1
  97. package/build/{builtins → if-run/builtins}/export-yaml.d.ts +1 -1
  98. package/build/if-run/builtins/export-yaml.js +30 -0
  99. package/build/{builtins → if-run/builtins}/index.d.ts +1 -2
  100. package/build/{builtins → if-run/builtins}/index.js +4 -6
  101. package/build/if-run/builtins/interpolation/index.d.ts +2 -0
  102. package/build/if-run/builtins/interpolation/index.js +151 -0
  103. package/build/if-run/builtins/mock-observations/helpers/common-generator.js +29 -0
  104. package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +48 -0
  105. package/build/if-run/builtins/mock-observations/index.d.ts +2 -0
  106. package/build/if-run/builtins/mock-observations/index.js +116 -0
  107. package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
  108. package/build/if-run/builtins/multiply/index.d.ts +2 -0
  109. package/build/if-run/builtins/multiply/index.js +59 -0
  110. package/build/if-run/builtins/regex/index.d.ts +2 -0
  111. package/build/if-run/builtins/regex/index.js +76 -0
  112. package/build/if-run/builtins/sci/config.js +44 -0
  113. package/build/if-run/builtins/sci/index.d.ts +2 -0
  114. package/build/if-run/builtins/sci/index.js +92 -0
  115. package/build/if-run/builtins/sci-embodied/index.d.ts +2 -0
  116. package/build/if-run/builtins/sci-embodied/index.js +156 -0
  117. package/build/if-run/builtins/shell/index.d.ts +2 -0
  118. package/build/if-run/builtins/shell/index.js +60 -0
  119. package/build/if-run/builtins/subtract/index.d.ts +2 -0
  120. package/build/if-run/builtins/subtract/index.js +61 -0
  121. package/build/if-run/builtins/sum/index.d.ts +2 -0
  122. package/build/if-run/builtins/sum/index.js +66 -0
  123. package/build/if-run/builtins/time-sync/index.d.ts +17 -0
  124. package/build/if-run/builtins/time-sync/index.js +339 -0
  125. package/build/if-run/config/config.d.ts +9 -0
  126. package/build/if-run/config/config.js +73 -0
  127. package/build/if-run/config/index.d.ts +2 -0
  128. package/build/if-run/config/index.js +8 -0
  129. package/build/{config → if-run/config}/strings.d.ts +28 -54
  130. package/build/if-run/config/strings.js +76 -0
  131. package/build/if-run/index.d.ts +2 -0
  132. package/build/if-run/index.js +63 -0
  133. package/build/if-run/lib/aggregate.d.ts +15 -0
  134. package/build/if-run/lib/aggregate.js +123 -0
  135. package/build/if-run/lib/compute.js +136 -0
  136. package/build/{lib → if-run/lib}/environment.d.ts +1 -1
  137. package/build/if-run/lib/environment.js +75 -0
  138. package/build/{lib → if-run/lib}/exhaust.d.ts +1 -1
  139. package/build/if-run/lib/exhaust.js +27 -0
  140. package/build/if-run/lib/explain.d.ts +9 -0
  141. package/build/if-run/lib/explain.js +43 -0
  142. package/build/if-run/lib/initialize.d.ts +6 -0
  143. package/build/if-run/lib/initialize.js +109 -0
  144. package/build/if-run/lib/regroup.d.ts +5 -0
  145. package/build/if-run/lib/regroup.js +64 -0
  146. package/build/if-run/types/aggregation.d.ts +5 -0
  147. package/build/if-run/types/aggregation.js +6 -0
  148. package/build/{types → if-run/types}/compute.d.ts +12 -8
  149. package/build/if-run/types/compute.js +3 -0
  150. package/build/if-run/types/environment.js +3 -0
  151. package/build/{types → if-run/types}/exhaust-plugin-interface.d.ts +1 -1
  152. package/build/if-run/types/exhaust-plugin-interface.js +3 -0
  153. package/build/if-run/types/explain.d.ts +10 -0
  154. package/build/if-run/types/explain.js +3 -0
  155. package/build/if-run/types/interface.d.ts +3 -0
  156. package/build/if-run/types/interface.js +6 -0
  157. package/build/if-run/types/plugin-storage.js +3 -0
  158. package/build/if-run/types/process-args.d.ts +25 -0
  159. package/build/if-run/types/process-args.js +3 -0
  160. package/build/if-run/types/time-sync.js +3 -0
  161. package/build/{util → if-run/util}/aggregation-helper.d.ts +2 -1
  162. package/build/if-run/util/aggregation-helper.js +47 -0
  163. package/build/if-run/util/args.d.ts +9 -0
  164. package/build/if-run/util/args.js +60 -0
  165. package/build/if-run/util/helpers.d.ts +14 -0
  166. package/build/if-run/util/helpers.js +57 -0
  167. package/build/if-run/util/log-memoize.js +19 -0
  168. package/build/if-run/util/os-checker.js +97 -0
  169. package/build/{util → if-run/util}/plugin-storage.d.ts +1 -1
  170. package/build/if-run/util/plugin-storage.js +34 -0
  171. package/jest.config.js +2 -6
  172. package/manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml +2 -2
  173. package/manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml +3 -3
  174. package/manifests/examples/builtins/coefficient/success.yml +2 -2
  175. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +3 -3
  176. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +3 -3
  177. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml +3 -3
  178. package/manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml +3 -3
  179. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml +3 -3
  180. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml +3 -3
  181. package/manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml +4 -4
  182. package/manifests/examples/builtins/csv-lookup/region-metadata/success.yml +3 -3
  183. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +2 -2
  184. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +2 -2
  185. package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +2 -2
  186. package/manifests/examples/builtins/divide/failure-denominator-equal-zero.yml +4 -4
  187. package/manifests/examples/builtins/divide/failure-invalid-config-denominator.yml +5 -5
  188. package/manifests/examples/builtins/divide/failure-missing-numerator.yml +4 -4
  189. package/manifests/examples/builtins/divide/success.yml +4 -6
  190. package/manifests/examples/builtins/exponent/success.yml +5 -7
  191. package/manifests/examples/builtins/interpolation/interpolation.yml +2 -2
  192. package/manifests/examples/builtins/interpolation/success.yml +2 -1
  193. package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +2 -2
  194. package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +2 -2
  195. package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +2 -2
  196. package/manifests/examples/builtins/mock-observations/success.yml +2 -2
  197. package/manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml +2 -4
  198. package/manifests/examples/builtins/multiply/success-with-multiple-inputs.yml +2 -4
  199. package/manifests/examples/builtins/multiply/success.yml +3 -4
  200. package/manifests/examples/builtins/regex/failure-missing-input-param.yml +2 -4
  201. package/manifests/examples/builtins/regex/failure-not-matching-with-regex.yml +2 -4
  202. package/manifests/examples/builtins/regex/success.yml +2 -4
  203. package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +2 -2
  204. package/manifests/examples/builtins/sci/failure-missing-input-param.yml +3 -2
  205. package/manifests/examples/builtins/sci/success.yml +2 -3
  206. package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +3 -3
  207. package/manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml +2 -2
  208. package/manifests/examples/builtins/sci-embodied/success.yml +2 -2
  209. package/manifests/examples/builtins/shell/failure-invalid-command.yml +2 -2
  210. package/manifests/examples/builtins/shell/success.yml +2 -1
  211. package/manifests/examples/builtins/subtract/success.yml +6 -8
  212. package/manifests/examples/builtins/sum/failure-missing-input-param.yml +2 -4
  213. package/manifests/examples/builtins/sum/failure-missing-output-param.yml +3 -5
  214. package/manifests/examples/builtins/sum/success.yml +2 -4
  215. package/manifests/examples/builtins/time-sync/failure-config-start-later-end.yml +3 -3
  216. package/manifests/examples/builtins/time-sync/failure-missing-global-config.yml +3 -3
  217. package/manifests/examples/builtins/time-sync/success.yml +2 -2
  218. package/manifests/examples/{builtins/groupby/failure-invalid-config-group.yml → features/regroup/failure-invalid-regroup.yml} +4 -11
  219. package/manifests/examples/{builtins/groupby → features/regroup}/failure-missing-cloud-instance-type.yml +5 -12
  220. package/manifests/examples/{builtins/groupby → features/regroup}/success.yml +4 -11
  221. package/manifests/examples/pipelines/generics.yml +12 -13
  222. package/manifests/examples/pipelines/instance-metadata.yml +4 -5
  223. package/manifests/examples/pipelines/nesting.yml +157 -50
  224. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml +997 -0
  225. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml +1059 -0
  226. package/manifests/examples/pipelines/pipeline-teads-sci.yml +11 -11
  227. package/manifests/examples/pipelines/pipeline-with-aggregate.yml +114 -37
  228. package/manifests/examples/pipelines/pipeline-with-mocks.yml +193 -103
  229. package/manifests/examples/pipelines/scenario-1.yml +34 -0
  230. package/manifests/examples/pipelines/scenario-2.yml +52 -0
  231. package/manifests/examples/pipelines/scenario-3.yml +86 -0
  232. package/manifests/examples/pipelines/scenario-4.yml +46 -0
  233. package/manifests/examples/pipelines/scenario-5.yml +46 -0
  234. package/manifests/examples/pipelines/sci.yml +15 -17
  235. package/manifests/examples/pipelines/teads-curve.yml +7 -6
  236. package/manifests/examples/pipelines/zeros.yml +15 -16
  237. package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +51 -59
  238. package/manifests/outputs/bugs/input-error-missing-duration.yaml +14 -16
  239. package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +14 -16
  240. package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +14 -16
  241. package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +15 -17
  242. package/manifests/outputs/bugs/pipeline-ordering-error.yaml +23 -26
  243. package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +13 -14
  244. package/manifests/outputs/{plugins → builtins}/coefficient/failure-invalid-config-input-param.yaml +13 -17
  245. package/manifests/outputs/{plugins → builtins}/coefficient/failure-output-param-is-null.yaml +13 -17
  246. package/manifests/outputs/{plugins → builtins}/coefficient/success.yaml +11 -16
  247. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +76 -0
  248. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +16 -19
  249. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/success.yaml +16 -19
  250. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-column.yaml +14 -15
  251. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-output.yaml +13 -15
  252. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success-renaming.yaml +13 -15
  253. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success.yaml +14 -16
  254. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-missing-input-param.yaml +13 -16
  255. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +13 -15
  256. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/success.yaml +13 -15
  257. package/manifests/outputs/{plugins → builtins}/divide/failure-invalid-config-denominator.yaml +13 -17
  258. package/manifests/outputs/{plugins → builtins}/divide/failure-missing-numerator.yaml +13 -15
  259. package/manifests/outputs/{plugins → builtins}/divide/success-denominator-equal-zero.yaml +14 -18
  260. package/manifests/outputs/{plugins → builtins}/divide/success.yaml +14 -18
  261. package/manifests/outputs/{plugins → builtins}/exponent/success.yaml +13 -17
  262. package/manifests/outputs/{plugins → builtins}/interpolation/interpolation.yaml +14 -16
  263. package/manifests/outputs/{plugins → builtins}/interpolation/success.yaml +14 -16
  264. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-config-cpu-range.yaml +13 -15
  265. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-memory-utilization-range.yaml +13 -15
  266. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-missing-timestamp-from-param.yaml +13 -15
  267. package/manifests/outputs/builtins/mock-observations/success.yaml +358 -0
  268. package/manifests/outputs/{plugins → builtins}/multiply/failure-input-parameter-is-missing.yaml +13 -17
  269. package/manifests/outputs/{plugins → builtins}/multiply/success-with-multiple-inputs.yaml +13 -17
  270. package/manifests/outputs/{plugins → builtins}/multiply/success.yaml +13 -17
  271. package/manifests/outputs/{plugins → builtins}/regex/failure-missing-input-param.yaml +13 -17
  272. package/manifests/outputs/{plugins → builtins}/regex/success.yaml +14 -19
  273. package/manifests/outputs/{plugins → builtins}/sci/failure-invalid-config-value.yaml +14 -16
  274. package/manifests/outputs/{plugins → builtins}/sci/failure-missing-input-param.yaml +13 -15
  275. package/manifests/outputs/{plugins/sci/success.yml.yaml → builtins/sci/success.yaml} +13 -16
  276. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-invalid-default-emission-value.yaml +13 -15
  277. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-missing-expected-lifespan.yaml +13 -15
  278. package/manifests/outputs/{plugins → builtins}/sci-embodied/success.yaml +13 -15
  279. package/manifests/outputs/{plugins → builtins}/shell/failure-invalid-command.yaml +14 -16
  280. package/manifests/outputs/{plugins → builtins}/shell/success.yaml +14 -16
  281. package/manifests/outputs/{plugins → builtins}/subtract/success.yaml +13 -17
  282. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-input-param.yaml +13 -17
  283. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-output-param.yaml +13 -17
  284. package/manifests/outputs/{plugins → builtins}/sum/success.yaml +13 -17
  285. package/manifests/outputs/{plugins → builtins}/time-sync/failure-config-start-later-end.yaml +20 -23
  286. package/manifests/outputs/{plugins → builtins}/time-sync/success.yaml +38 -35
  287. package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +17 -18
  288. package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +17 -18
  289. package/manifests/outputs/features/aggregate-horizontal.yaml +27 -23
  290. package/manifests/outputs/features/aggregate-vertical.yaml +33 -29
  291. package/manifests/outputs/features/aggregate.yaml +33 -29
  292. package/manifests/outputs/{plugins/groupby/failure-invalid-config-group.yaml → features/failure-invalid-regroup.yaml} +16 -25
  293. package/manifests/outputs/{plugins/groupby → features}/failure-missing-cloud-instance-type.yaml +16 -25
  294. package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +14 -18
  295. package/manifests/outputs/pipelines/generics.yaml +239 -0
  296. package/manifests/outputs/pipelines/instance-metadata.yaml +98 -0
  297. package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +246 -147
  298. package/manifests/outputs/pipelines/nesting.yaml +1799 -0
  299. package/manifests/outputs/pipelines/pipeline-teads-sci.yaml +276 -0
  300. package/manifests/outputs/pipelines/sci.yaml +297 -0
  301. package/manifests/outputs/pipelines/teads-curve.yaml +188 -0
  302. package/manifests/outputs/pipelines/zeros.yaml +198 -0
  303. package/package.json +15 -16
  304. package/src/__mocks__/mock-manifest.yaml +2 -3
  305. package/src/{config → if-env/config}/env-template.yml +2 -3
  306. package/src/{builtins → if-run/builtins}/coefficient/README.md +31 -9
  307. package/src/{builtins → if-run/builtins}/copy-param/README.md +30 -11
  308. package/src/{builtins → if-run/builtins}/csv-lookup/README.md +32 -20
  309. package/src/{builtins → if-run/builtins}/divide/README.md +21 -8
  310. package/src/{builtins → if-run/builtins}/exponent/README.md +19 -8
  311. package/src/{builtins → if-run/builtins}/interpolation/README.md +21 -6
  312. package/src/{builtins → if-run/builtins}/mock-observations/README.md +18 -4
  313. package/src/{builtins → if-run/builtins}/multiply/README.md +20 -8
  314. package/src/{builtins → if-run/builtins}/regex/README.md +19 -9
  315. package/src/{builtins → if-run/builtins}/sci/README.md +19 -9
  316. package/src/{builtins → if-run/builtins}/sci-embodied/README.md +17 -5
  317. package/src/{builtins → if-run/builtins}/shell/README.md +19 -7
  318. package/src/{builtins → if-run/builtins}/subtract/README.md +17 -6
  319. package/src/{builtins → if-run/builtins}/sum/README.md +34 -8
  320. package/src/if-run/builtins/time-sync/README.md +267 -0
  321. package/build/builtins/coefficient/index.d.ts +0 -2
  322. package/build/builtins/coefficient/index.js +0 -65
  323. package/build/builtins/copy-param/index.d.ts +0 -2
  324. package/build/builtins/copy-param/index.js +0 -68
  325. package/build/builtins/csv-lookup/index.d.ts +0 -2
  326. package/build/builtins/csv-lookup/index.js +0 -188
  327. package/build/builtins/divide/index.d.ts +0 -2
  328. package/build/builtins/divide/index.js +0 -78
  329. package/build/builtins/exponent/index.d.ts +0 -2
  330. package/build/builtins/exponent/index.js +0 -58
  331. package/build/builtins/export-csv-raw.d.ts +0 -4
  332. package/build/builtins/export-csv-raw.js +0 -132
  333. package/build/builtins/export-csv.d.ts +0 -10
  334. package/build/builtins/export-csv.js +0 -96
  335. package/build/builtins/export-yaml.js +0 -30
  336. package/build/builtins/group-by.d.ts +0 -5
  337. package/build/builtins/group-by.js +0 -71
  338. package/build/builtins/interpolation/index.d.ts +0 -2
  339. package/build/builtins/interpolation/index.js +0 -148
  340. package/build/builtins/mock-observations/helpers/common-generator.js +0 -29
  341. package/build/builtins/mock-observations/helpers/rand-int-generator.js +0 -48
  342. package/build/builtins/mock-observations/index.d.ts +0 -2
  343. package/build/builtins/mock-observations/index.js +0 -114
  344. package/build/builtins/mock-observations/interfaces/index.js +0 -3
  345. package/build/builtins/multiply/index.d.ts +0 -2
  346. package/build/builtins/multiply/index.js +0 -57
  347. package/build/builtins/regex/index.d.ts +0 -2
  348. package/build/builtins/regex/index.js +0 -74
  349. package/build/builtins/sci/config.js +0 -44
  350. package/build/builtins/sci/index.d.ts +0 -2
  351. package/build/builtins/sci/index.js +0 -70
  352. package/build/builtins/sci-embodied/index.d.ts +0 -2
  353. package/build/builtins/sci-embodied/index.js +0 -114
  354. package/build/builtins/shell/index.d.ts +0 -2
  355. package/build/builtins/shell/index.js +0 -58
  356. package/build/builtins/subtract/index.d.ts +0 -2
  357. package/build/builtins/subtract/index.js +0 -59
  358. package/build/builtins/sum/index.d.ts +0 -2
  359. package/build/builtins/sum/index.js +0 -64
  360. package/build/builtins/time-sync.d.ts +0 -2
  361. package/build/builtins/time-sync.js +0 -300
  362. package/build/check.js +0 -95
  363. package/build/config/config.d.ts +0 -29
  364. package/build/config/config.js +0 -147
  365. package/build/config/index.js +0 -10
  366. package/build/config/params.d.ts +0 -2
  367. package/build/config/params.js +0 -196
  368. package/build/config/strings.js +0 -105
  369. package/build/diff.js +0 -46
  370. package/build/env.js +0 -38
  371. package/build/index.js +0 -48
  372. package/build/lib/aggregate.d.ts +0 -6
  373. package/build/lib/aggregate.js +0 -77
  374. package/build/lib/compare.js +0 -56
  375. package/build/lib/compute.js +0 -91
  376. package/build/lib/environment.js +0 -75
  377. package/build/lib/exhaust.js +0 -53
  378. package/build/lib/initialize.d.ts +0 -6
  379. package/build/lib/initialize.js +0 -101
  380. package/build/lib/load.js +0 -70
  381. package/build/lib/parameterize.d.ts +0 -6
  382. package/build/lib/parameterize.js +0 -55
  383. package/build/types/aggregation.d.ts +0 -2
  384. package/build/types/aggregation.js +0 -5
  385. package/build/types/compute.js +0 -3
  386. package/build/types/environment.js +0 -3
  387. package/build/types/exhaust-plugin-interface.js +0 -3
  388. package/build/types/if-env.js +0 -3
  389. package/build/types/interface.d.ts +0 -4
  390. package/build/types/interface.js +0 -8
  391. package/build/types/lib/compare.js +0 -3
  392. package/build/types/manifest.js +0 -3
  393. package/build/types/npm.js +0 -3
  394. package/build/types/parameters.d.ts +0 -5
  395. package/build/types/parameters.js +0 -5
  396. package/build/types/plugin-storage.js +0 -3
  397. package/build/types/process-args.d.ts +0 -33
  398. package/build/types/process-args.js +0 -3
  399. package/build/types/time-sync.js +0 -3
  400. package/build/types/util/args.js +0 -3
  401. package/build/util/aggregation-helper.js +0 -55
  402. package/build/util/args.d.ts +0 -37
  403. package/build/util/args.js +0 -205
  404. package/build/util/debug-logger.js +0 -118
  405. package/build/util/fs.js +0 -94
  406. package/build/util/helpers.d.ts +0 -57
  407. package/build/util/helpers.js +0 -251
  408. package/build/util/json.d.ts +0 -4
  409. package/build/util/json.js +0 -36
  410. package/build/util/log-memoize.js +0 -19
  411. package/build/util/npm.js +0 -152
  412. package/build/util/os-checker.js +0 -97
  413. package/build/util/plugin-storage.js +0 -34
  414. package/build/util/validations.js +0 -124
  415. package/build/util/yaml.js +0 -59
  416. package/manifests/outputs/bugs/initialize-error-no-config.yaml +0 -78
  417. package/manifests/outputs/bugs/initialize-error-no-path.yaml +0 -91
  418. package/manifests/outputs/bugs/initialize-error-no-plugins.yaml +0 -74
  419. package/manifests/outputs/divide.yaml +0 -93
  420. package/manifests/outputs/pipelines/mock-obs-group-by-cloud-meta.yaml +0 -645
  421. package/manifests/outputs/pipelines/mock-obs-groupby.yaml +0 -178
  422. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +0 -27
  423. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +0 -27
  424. package/manifests/outputs/plugins/groupby/success.yaml +0 -101
  425. package/manifests/outputs/plugins/mock-observations/success.yaml +0 -220
  426. package/manifests/outputs/plugins/regex/failure-not-matching-with-regex.yaml +0 -76
  427. package/manifests/outputs/plugins/time-sync/failure-missing-global-config.yaml +0 -78
  428. package/src/__tests__/integration/templates/integration.yaml +0 -16
  429. package/src/builtins/README.md +0 -848
  430. /package/build/{util → common/util}/debug-logger.d.ts +0 -0
  431. /package/build/{util → common/util}/fs.d.ts +0 -0
  432. /package/build/{util → common/util}/logger.d.ts +0 -0
  433. /package/build/{util → common/util}/yaml.d.ts +0 -0
  434. /package/build/{index.d.ts → if-check/index.d.ts} +0 -0
  435. /package/build/{check.d.ts → if-csv/index.d.ts} +0 -0
  436. /package/build/{diff.d.ts → if-diff/index.d.ts} +0 -0
  437. /package/build/{types/util → if-diff/types}/args.d.ts +0 -0
  438. /package/build/{types/lib → if-diff/types}/compare.d.ts +0 -0
  439. /package/build/{env.d.ts → if-env/index.d.ts} +0 -0
  440. /package/build/{types → if-env/types}/if-env.d.ts +0 -0
  441. /package/build/{types → if-env/types}/npm.d.ts +0 -0
  442. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/common-generator.d.ts +0 -0
  443. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/rand-int-generator.d.ts +0 -0
  444. /package/build/{builtins → if-run/builtins}/mock-observations/interfaces/index.d.ts +0 -0
  445. /package/build/{builtins → if-run/builtins}/sci/config.d.ts +0 -0
  446. /package/build/{lib → if-run/lib}/compute.d.ts +0 -0
  447. /package/build/{types → if-run/types}/environment.d.ts +0 -0
  448. /package/build/{types → if-run/types}/plugin-storage.d.ts +0 -0
  449. /package/build/{types → if-run/types}/time-sync.d.ts +0 -0
  450. /package/build/{util → if-run/util}/log-memoize.d.ts +0 -0
  451. /package/build/{util → if-run/util}/os-checker.d.ts +0 -0
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExportCSV = void 0;
4
- const promises_1 = require("fs/promises");
5
- const sync_1 = require("csv-stringify/sync");
6
- const utils_1 = require("@grnsft/if-core/utils");
7
- const config_1 = require("../config");
8
- const { ExhaustOutputArgError } = utils_1.ERRORS;
9
- const { CSV_EXPORT, OUTPUT_REQUIRED, EXPORTING_TO_CSV_FILE } = config_1.STRINGS;
10
- /**
11
- * Extension to IF that outputs the tree in a CSV format.
12
- */
13
- const ExportCSV = () => {
14
- const parseOutputAndField = (outputPath) => {
15
- const validatedPath = validateOutputPath(outputPath);
16
- const paths = validatedPath.split('#');
17
- const criteria = paths[paths.length - 1];
18
- if (paths.length <= 1 || !criteria) {
19
- throw new ExhaustOutputArgError(CSV_EXPORT);
20
- }
21
- const output = paths.slice(0, paths.length - 1).join('');
22
- console.debug(EXPORTING_TO_CSV_FILE(output));
23
- return {
24
- output,
25
- criteria,
26
- };
27
- };
28
- /**
29
- * Validates output path.
30
- */
31
- const validateOutputPath = (outputPath) => {
32
- if (!outputPath) {
33
- throw new ExhaustOutputArgError(OUTPUT_REQUIRED);
34
- }
35
- return outputPath;
36
- };
37
- /**
38
- * Grabs output and criteria from cli args, then call tree walker to collect csv data.
39
- */
40
- const execute = async (tree, context, outputPath) => {
41
- const columns = ['Path'];
42
- const matrix = [columns];
43
- const { output, criteria } = parseOutputAndField(outputPath);
44
- const aggregationIsEnabled = !!context.aggregation;
45
- /**
46
- * Walks through all tree branches and leaves, collecting the data
47
- */
48
- const treeWalker = (node, criteria, path = 'tree') => {
49
- /** Hmm aggregated, then checks if it's the first one. If so adds column, pushes the value. */
50
- if (node.aggregated) {
51
- if (path === 'tree') {
52
- columns.push('Aggregated');
53
- }
54
- matrix.push([`${path}.${criteria}`, node.aggregated[criteria]]);
55
- }
56
- /** So it has outputs, whats then? checks if timestamp is not there, adds one. Then appends values to it. */
57
- if (node.outputs) {
58
- node.outputs.forEach((output) => {
59
- const { timestamp } = output;
60
- if (!columns.includes(timestamp)) {
61
- columns.push(output.timestamp);
62
- }
63
- const lastRow = matrix[matrix.length - 1];
64
- if (aggregationIsEnabled) {
65
- lastRow.push(output[criteria]);
66
- }
67
- else {
68
- /** Handle without aggregation export strategy. */
69
- if (matrix.length === 1 || lastRow.length === columns.length) {
70
- matrix.push([`${path}.${criteria}`, output[criteria]]);
71
- }
72
- else {
73
- lastRow.push(output[criteria]);
74
- }
75
- }
76
- });
77
- }
78
- /** Ohh children? then call every one and execute. */
79
- if (node.children) {
80
- for (const child in node.children) {
81
- treeWalker(node.children[child], criteria, `${path}.children.${child}`);
82
- }
83
- }
84
- };
85
- treeWalker(tree, criteria);
86
- await (0, promises_1.writeFile)(`${output}.csv`, (0, sync_1.stringify)(matrix, { columns }));
87
- };
88
- return {
89
- execute,
90
- metadata: {
91
- kind: 'exhaust',
92
- },
93
- };
94
- };
95
- exports.ExportCSV = ExportCSV;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWNzdi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsdGlucy9leHBvcnQtY3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBDQUFzQztBQUV0Qyw2Q0FBNkM7QUFDN0MsaURBQTZDO0FBRzdDLHNDQUFrQztBQUlsQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDdkMsTUFBTSxFQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXJFOztHQUVHO0FBQ0ksTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO0lBQzVCLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUU7UUFDakQsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3QztRQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUU3QyxPQUFPO1lBQ0wsTUFBTTtZQUNOLFFBQVE7U0FDVCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGtCQUFrQixHQUFH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Q0FBQztJQUNqRSxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsT0FBTztRQUNQLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXBHVyxRQUFBLFNBQVMsYUFvR3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt3cml0ZUZpbGV9IGZyb20gJ2ZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJ2Nzdi1zdHJpbmdpZnkvc3luYyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7Q29udGV4dH0gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuXG5jb25zdCB7RXhoYXVzdE91dHB1dEFyZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtDU1ZfRVhQT1JULCBPVVRQVVRfUkVRVUlSRUQsIEVYUE9SVElOR19UT19DU1ZfRklMRX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIEV4dGVuc2lvbiB0byBJRiB0aGF0IG91dHB1dHMgdGhlIHRyZWUgaW4gYSBDU1YgZm9ybWF0LlxuICovXG5leHBvcnQgY29uc3QgRXhwb3J0Q1NWID0gKCkgPT4ge1xuICBjb25zdCBwYXJzZU91dHB1dEFuZEZpZWxkID0gKG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZFBhdGggPSB2YWxpZGF0ZU91dHB1dFBhdGgob3V0cHV0UGF0aCk7XG5cbiAgICBjb25zdCBwYXRocyA9IHZhbGlkYXRlZFBhdGguc3BsaXQoJyMnKTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdO1xuXG4gICAgaWYgKHBhdGhzLmxlbmd0aCA8PSAxIHx8ICFjcml0ZXJpYSkge1xuICAgICAgdGhyb3cgbmV3IEV4aGF1c3RPdXRwdXRBcmdFcnJvcihDU1ZfRVhQT1JUKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXQgPSBwYXRocy5zbGljZSgwLCBwYXRocy5sZW5ndGggLSAxKS5qb2luKCcnKTtcbiAgICBjb25zb2xlLmRlYnVnKEVYUE9SVElOR19UT19DU1ZfRklMRShvdXRwdXQpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvdXRwdXQsXG4gICAgICBjcml0ZXJpYSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgb3V0cHV0IHBhdGguXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZU91dHB1dFBhdGggPSAob3V0cHV0UGF0aDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFvdXRwdXRQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXhoYXVzdE91dHB1dEFyZ0Vycm9yKE9VVFBVVF9SRVFVSVJFRCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dFBhdGg7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdyYWJzIG91dHB1dCBhbmQgY3JpdGVyaWEgZnJvbSBjbGkgYXJncywgdGhlbiBjYWxsIHRyZWUgd2Fsa2VyIHRvIGNvbGxlY3QgY3N2IGRhdGEuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gYXN5bmMgKHRyZWU6IGFueSwgY29udGV4dDogQ29udGV4dCwgb3V0cHV0UGF0aDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IFsnUGF0aCddO1xuICAgIGNvbnN0IG1hdHJpeCA9IFtjb2x1bW5zXTtcbiAgICBjb25zdCB7b3V0cHV0LCBjcml0ZXJpYX0gPSBwYXJzZU91dHB1dEFuZEZpZWxkKG91dHB1dFBhdGgpO1xuICAgIGNvbnN0IGFnZ3JlZ2F0aW9uSXNFbmFibGVkID0gISFjb250ZXh0LmFnZ3JlZ2F0aW9uO1xuXG4gICAgLyoqXG4gICAgICogV2Fsa3MgdGhyb3VnaCBhbGwgdHJlZSBicmFuY2hlcyBhbmQgbGVhdmVzLCBjb2xsZWN0aW5nIHRoZSBkYXRhXG4gICAgICovXG4gICAgY29uc3QgdHJlZVdhbGtlciA9IChub2RlOiBhbnksIGNyaXRlcmlhOiBzdHJpbmcsIHBhdGggPSAndHJlZScpID0+IHtcbiAgICAgIC8qKiBIbW0gYWdncmVnYXRlZCwgdGhlbiBjaGVja3MgaWYgaXQncyB0aGUgZmlyc3Qgb25lLiBJZiBzbyBhZGRzIGNvbHVtbiwgcHVzaGVzIHRoZSB2YWx1ZS4gKi9cbiAgICAgIGlmIChub2RlLmFnZ3JlZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHBhdGggPT09ICd0cmVlJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCgnQWdncmVnYXRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWF0cml4LnB1c2goW2Ake3BhdGh9LiR7Y3JpdGVyaWF9YCwgbm9kZS5hZ2dyZWdhdGVkW2NyaXRlcmlhXV0pO1xuICAgICAgfVxuXG4gICAgICAvKiogU28gaXQgaGFzIG91dHB1dHMsIHdoYXRzIHRoZW4/IGNoZWNrcyBpZiB0aW1lc3RhbXAgaXMgbm90IHRoZXJlLCBhZGRzIG9uZS4gVGhlbiBhcHBlbmRzIHZhbHVlcyB0byBpdC4gKi9cbiAgICAgIGlmIChub2RlLm91dHB1dHMpIHtcbiAgICAgICAgbm9kZS5vdXRwdXRzLmZvckVhY2goKG91dHB1dDogUGx1Z2luUGFyYW1zKSA9PiB7XG4gICAgICAgICAgY29uc3Qge3RpbWVzdGFtcH0gPSBvdXRwdXQ7XG5cbiAgICAgICAgICBpZiAoIWNvbHVtbnMuaW5jbHVkZXModGltZXN0YW1wKSkge1xuICAgICAgICAgICAgY29sdW1ucy5wdXNoKG91dHB1dC50aW1lc3RhbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGxhc3RSb3cgPSBtYXRyaXhbbWF0cml4Lmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgaWYgKGFnZ3JlZ2F0aW9uSXNFbmFibGVkKSB7XG4gICAgICAgICAgICBsYXN0Um93LnB1c2gob3V0cHV0W2NyaXRlcmlhXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8qKiBIYW5kbGUgd2l0aG91dCBhZ2dyZWdhdGlvbiBleHBvcnQgc3RyYXRlZ3kuICovXG4gICAgICAgICAgICBpZiAobWF0cml4Lmxlbmd0aCA9PT0gMSB8fCBsYXN0Um93Lmxlbmd0aCA9PT0gY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgbWF0cml4LnB1c2goW2Ake3BhdGh9LiR7Y3JpdGVyaWF9YCwgb3V0cHV0W2NyaXRlcmlhXV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdFJvdy5wdXNoKG91dHB1dFtjcml0ZXJpYV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8qKiBPaGggY2hpbGRyZW4/IHRoZW4gY2FsbCBldmVyeSBvbmUgYW5kIGV4ZWN1dGUuICovXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIGluIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICB0cmVlV2Fsa2VyKFxuICAgICAgICAgICAgbm9kZS5jaGlsZHJlbltjaGlsZF0sXG4gICAgICAgICAgICBjcml0ZXJpYSxcbiAgICAgICAgICAgIGAke3BhdGh9LmNoaWxkcmVuLiR7Y2hpbGR9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJlZVdhbGtlcih0cmVlLCBjcml0ZXJpYSk7XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUoYCR7b3V0cHV0fS5jc3ZgLCBzdHJpbmdpZnkobWF0cml4LCB7Y29sdW1uc30pKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGUsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIGtpbmQ6ICdleGhhdXN0JyxcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExportYaml = void 0;
4
- const utils_1 = require("@grnsft/if-core/utils");
5
- const yaml_1 = require("../util/yaml");
6
- const config_1 = require("../config");
7
- const { ExhaustOutputArgError } = utils_1.ERRORS;
8
- const { OUTPUT_REQUIRED, EXPORTING_TO_YAML_FILE } = config_1.STRINGS;
9
- const ExportYaml = () => {
10
- /** Takes string before hashtag. */
11
- const stripHashtag = (path) => path.split('#')[0];
12
- /**
13
- * Saves output file in YAML format.
14
- */
15
- const execute = async (tree, context, outputPath) => {
16
- if (!outputPath) {
17
- throw new ExhaustOutputArgError(OUTPUT_REQUIRED);
18
- }
19
- const outputFile = {
20
- ...context,
21
- tree,
22
- };
23
- const path = stripHashtag(outputPath);
24
- console.debug(EXPORTING_TO_YAML_FILE(path));
25
- await (0, yaml_1.saveYamlFileAs)(outputFile, `${path}.yaml`);
26
- };
27
- return { execute };
28
- };
29
- exports.ExportYaml = ExportYaml;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXlhbWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbHRpbnMvZXhwb3J0LXlhbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTZDO0FBRTdDLHVDQUE0QztBQUU1QyxzQ0FBa0M7QUFJbEMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ3ZDLE1BQU0sRUFBQyxlQUFlLEVBQUUsc0JBQXNCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRW5ELE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtJQUM3QixtQ0FBbUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUQ7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsSUFBUyxFQUFFLE9BQWdCLEVBQUUsVUFBa0IsRUFBRSxFQUFFO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixNQUFNLElBQUkscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLE9BQU87WUFDVixJQUFJO1NBQ0wsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUMsTUFBTSxJQUFBLHFCQUFjLEVBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUM7SUFFRixPQUFPLEVBQUMsT0FBTyxFQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBeEJXLFFBQUEsVUFBVSxjQXdCckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtzYXZlWWFtbEZpbGVBc30gZnJvbSAnLi4vdXRpbC95YW1sJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcblxuY29uc3Qge0V4aGF1c3RPdXRwdXRBcmdFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7T1VUUFVUX1JFUVVJUkVELCBFWFBPUlRJTkdfVE9fWUFNTF9GSUxFfSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBFeHBvcnRZYW1sID0gKCkgPT4ge1xuICAvKiogVGFrZXMgc3RyaW5nIGJlZm9yZSBoYXNodGFnLiAqL1xuICBjb25zdCBzdHJpcEhhc2h0YWcgPSAocGF0aDogc3RyaW5nKSA9PiBwYXRoLnNwbGl0KCcjJylbMF07XG5cbiAgLyoqXG4gICAqIFNhdmVzIG91dHB1dCBmaWxlIGluIFlBTUwgZm9ybWF0LlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IGFzeW5jICh0cmVlOiBhbnksIGNvbnRleHQ6IENvbnRleHQsIG91dHB1dFBhdGg6IHN0cmluZykgPT4ge1xuICAgIGlmICghb3V0cHV0UGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEV4aGF1c3RPdXRwdXRBcmdFcnJvcihPVVRQVVRfUkVRVUlSRUQpO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dEZpbGUgPSB7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgdHJlZSxcbiAgICB9O1xuICAgIGNvbnN0IHBhdGggPSBzdHJpcEhhc2h0YWcob3V0cHV0UGF0aCk7XG5cbiAgICBjb25zb2xlLmRlYnVnKEVYUE9SVElOR19UT19ZQU1MX0ZJTEUocGF0aCkpO1xuXG4gICAgYXdhaXQgc2F2ZVlhbWxGaWxlQXMob3V0cHV0RmlsZSwgYCR7cGF0aH0ueWFtbGApO1xuICB9O1xuXG4gIHJldHVybiB7ZXhlY3V0ZX07XG59O1xuIl19
@@ -1,5 +0,0 @@
1
- import { GroupByPlugin } from '@grnsft/if-core/types';
2
- /**
3
- * Plugin for inputs grouping.
4
- */
5
- export declare const GroupBy: () => GroupByPlugin;
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GroupBy = void 0;
4
- const zod_1 = require("zod");
5
- const utils_1 = require("@grnsft/if-core/utils");
6
- const config_1 = require("../config");
7
- const validations_1 = require("../util/validations");
8
- const { InvalidGroupingError, GlobalConfigError } = utils_1.ERRORS;
9
- const { INVALID_GROUP_BY, MISSING_GLOBAL_CONFIG } = config_1.STRINGS;
10
- /**
11
- * Plugin for inputs grouping.
12
- */
13
- const GroupBy = () => {
14
- const metadata = {
15
- kind: 'groupby',
16
- };
17
- /**
18
- * Creates structure to insert inputs by groups.
19
- */
20
- const appendGroup = (value, object, groups) => {
21
- if (groups.length > 0) {
22
- const group = groups.shift();
23
- object.children = object.children ?? {};
24
- object.children[group] = object.children[group] ?? {};
25
- if (groups.length === 0) {
26
- if (object.children[group].inputs &&
27
- object.children[group].inputs.length > 0) {
28
- object.children[group].inputs.push(value);
29
- }
30
- else {
31
- object.children[group].inputs = [value];
32
- }
33
- }
34
- appendGroup(value, object.children[group], groups);
35
- }
36
- return object;
37
- };
38
- /**
39
- * Interates over inputs, grabs config-group types values for each one.
40
- * Based on grouping types, initializes the structure grouped structure.
41
- */
42
- const execute = (inputs, config) => inputs.reduce((acc, input) => {
43
- const validatedConfig = validateConfig(config);
44
- const groups = validatedConfig.group.map(groupType => {
45
- if (!input[groupType]) {
46
- throw new InvalidGroupingError(INVALID_GROUP_BY(groupType));
47
- }
48
- return input[groupType];
49
- });
50
- acc = {
51
- ...acc,
52
- ...appendGroup(input, acc, groups),
53
- };
54
- return acc;
55
- }, {}).children;
56
- /**
57
- * Validates config parameter.
58
- */
59
- const validateConfig = (config) => {
60
- if (!config) {
61
- throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
62
- }
63
- const schema = zod_1.z.object({
64
- group: zod_1.z.array(zod_1.z.string()).min(1),
65
- });
66
- return (0, validations_1.validate)(schema, config);
67
- };
68
- return { metadata, execute };
69
- };
70
- exports.GroupBy = GroupBy;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbHRpbnMvZ3JvdXAtYnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQU83QyxzQ0FBa0M7QUFFbEMscURBQTZDO0FBRTdDLE1BQU0sRUFBQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUV6RCxNQUFNLEVBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRTFEOztHQUVHO0FBQ0ksTUFBTSxPQUFPLEdBQUcsR0FBa0IsRUFBRTtJQUN6QyxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFnQixFQUNYLEVBQUU7UUFDUCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQVksQ0FBQztZQUV2QyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07b0JBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3hDO29CQUNBLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDekM7YUFDRjtZQUVELFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxNQUFxQixFQUFFLEVBQUUsQ0FDaEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMzQixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDckIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDN0Q7WUFFRCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILEdBQUcsR0FBRztZQUNKLEdBQUcsR0FBRztZQUNOLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDO1NBQ25DLENBQUM7UUFFRixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFTLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFFekI7O09BRUc7SUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUMvQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RCLEtBQUssRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUM7SUFFRixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQztBQTNFVyxRQUFBLE9BQU8sV0EyRWxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBHcm91cEJ5UGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIEdyb3VwQnlDb25maWcsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHt2YWxpZGF0ZX0gZnJvbSAnLi4vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmNvbnN0IHtJbnZhbGlkR3JvdXBpbmdFcnJvciwgR2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuXG5jb25zdCB7SU5WQUxJRF9HUk9VUF9CWSwgTUlTU0lOR19HTE9CQUxfQ09ORklHfSA9IFNUUklOR1M7XG5cbi8qKlxuICogUGx1Z2luIGZvciBpbnB1dHMgZ3JvdXBpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBHcm91cEJ5ID0gKCk6IEdyb3VwQnlQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZ3JvdXBieScsXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgc3RydWN0dXJlIHRvIGluc2VydCBpbnB1dHMgYnkgZ3JvdXBzLlxuICAgKi9cbiAgY29uc3QgYXBwZW5kR3JvdXAgPSAoXG4gICAgdmFsdWU6IFBsdWdpblBhcmFtcyxcbiAgICBvYmplY3Q6IGFueSxcbiAgICBncm91cHM6IHN0cmluZ1tdXG4gICk6IGFueSA9PiB7XG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBncm91cCA9IGdyb3Vwcy5zaGlmdCgpIGFzIHN0cmluZztcblxuICAgICAgb2JqZWN0LmNoaWxkcmVuID0gb2JqZWN0LmNoaWxkcmVuID8/IHt9O1xuICAgICAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSA9IG9iamVjdC5jaGlsZHJlbltncm91cF0gPz8ge307XG5cbiAgICAgIGlmIChncm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLmlucHV0cyAmJlxuICAgICAgICAgIG9iamVjdC5jaGlsZHJlbltncm91cF0uaW5wdXRzLmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXS5pbnB1dHMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXS5pbnB1dHMgPSBbdmFsdWVdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFwcGVuZEdyb3VwKHZhbHVlLCBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLCBncm91cHMpO1xuICAgIH1cblxuICAgIHJldHVybiBvYmplY3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIEludGVyYXRlcyBvdmVyIGlucHV0cywgZ3JhYnMgY29uZmlnLWdyb3VwIHR5cGVzIHZhbHVlcyBmb3IgZWFjaCBvbmUuXG4gICAqIEJhc2VkIG9uIGdyb3VwaW5nIHR5cGVzLCBpbml0aWFsaXplcyB0aGUgc3RydWN0dXJlIGdyb3VwZWQgc3RydWN0dXJlLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IEdyb3VwQnlDb25maWcpID0+XG4gICAgaW5wdXRzLnJlZHVjZSgoYWNjLCBpbnB1dCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoY29uZmlnKTtcbiAgICAgIGNvbnN0IGdyb3VwcyA9IHZhbGlkYXRlZENvbmZpZy5ncm91cC5tYXAoZ3JvdXBUeXBlID0+IHtcbiAgICAgICAgaWYgKCFpbnB1dFtncm91cFR5cGVdKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRHcm91cGluZ0Vycm9yKElOVkFMSURfR1JPVVBfQlkoZ3JvdXBUeXBlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXRbZ3JvdXBUeXBlXTtcbiAgICAgIH0pO1xuXG4gICAgICBhY2MgPSB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uYXBwZW5kR3JvdXAoaW5wdXQsIGFjYywgZ3JvdXBzKSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgYW55KS5jaGlsZHJlbjtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGNvbmZpZyBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUNvbmZpZyA9IChjb25maWc6IEdyb3VwQnlDb25maWcpID0+IHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfR0xPQkFMX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgZ3JvdXA6IHouYXJyYXkoei5zdHJpbmcoKSkubWluKDEpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfTtcblxuICByZXR1cm4ge21ldGFkYXRhLCBleGVjdXRlfTtcbn07XG4iXX0=
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, ConfigParams } from '@grnsft/if-core/types';
2
- export declare const Interpolation: (globalConfig: ConfigParams) => ExecutePlugin;
@@ -1,148 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Interpolation = void 0;
7
- const typescript_cubic_spline_1 = __importDefault(require("typescript-cubic-spline"));
8
- const zod_1 = require("zod");
9
- const utils_1 = require("@grnsft/if-core/utils");
10
- const types_1 = require("@grnsft/if-core/types");
11
- const validations_1 = require("../../util/validations");
12
- const config_1 = require("../../config");
13
- const { GlobalConfigError } = utils_1.ERRORS;
14
- const { MISSING_GLOBAL_CONFIG, X_Y_EQUAL, ARRAY_LENGTH_NON_EMPTY, WITHIN_THE_RANGE, } = config_1.STRINGS;
15
- const Interpolation = (globalConfig) => {
16
- /**
17
- * Executes the energy consumption calculation for an array of input parameters.
18
- */
19
- const execute = (inputs) => {
20
- const validatedConfig = validateConfig();
21
- return inputs.map((input, index) => {
22
- const safeInput = validateInput(input, index);
23
- const result = calculateResult(validatedConfig, safeInput);
24
- return {
25
- ...input,
26
- [validatedConfig['output-parameter']]: result,
27
- };
28
- });
29
- };
30
- /**
31
- * Calculates the appropriate interpolation value based on the specified method type in the config and input parameters.
32
- */
33
- const calculateResult = (config, input) => {
34
- const methodType = {
35
- linear: getLinearInterpolation(config, input),
36
- spline: getSplineInterpolation(config, input),
37
- polynomial: getPolynomialInterpolation(config, input),
38
- };
39
- return methodType[config.method];
40
- };
41
- /**
42
- * Calculates the interpolation when the method is linear.
43
- */
44
- const getLinearInterpolation = (config, input) => {
45
- const parameter = input[globalConfig['input-parameter']];
46
- const xPoints = config.x;
47
- const yPoints = config.y;
48
- const result = xPoints.reduce((acc, xPoint, i) => {
49
- if (parameter === xPoint) {
50
- acc.baseCpu = xPoint;
51
- acc.baseRate = yPoints[i];
52
- }
53
- else if (parameter > xPoint && parameter < xPoints[i + 1]) {
54
- acc.baseCpu = xPoint;
55
- acc.baseRate = yPoints[i];
56
- acc.ratio = (yPoints[i + 1] - yPoints[i]) / (xPoints[i + 1] - xPoint);
57
- }
58
- return acc;
59
- }, { baseRate: 0, baseCpu: 0, ratio: 0 });
60
- return result.baseRate + (parameter - result.baseCpu) * result.ratio;
61
- };
62
- /**
63
- * Calculates the interpolation when the method is spline.
64
- */
65
- const getSplineInterpolation = (config, input) => {
66
- const parameter = input[globalConfig['input-parameter']];
67
- const xPoints = config.x;
68
- const yPoints = config.y;
69
- const spline = new typescript_cubic_spline_1.default(xPoints, yPoints);
70
- return spline.at(parameter);
71
- };
72
- /**
73
- * Calculates the interpolation when the method is polynomial.
74
- */
75
- const getPolynomialInterpolation = (config, input) => {
76
- const parameter = input[globalConfig['input-parameter']];
77
- const xPoints = config.x;
78
- const yPoints = config.y;
79
- const result = xPoints.reduce((acc, x, i) => {
80
- const term = yPoints[i] *
81
- xPoints.reduce((prod, xPoint, j) => {
82
- if (j !== i) {
83
- return (prod * (parameter - xPoint)) / (x - xPoint);
84
- }
85
- return prod;
86
- }, 1);
87
- return acc + term;
88
- }, 0);
89
- return result;
90
- };
91
- /**
92
- * Validates global config parameters.
93
- * Sorts elements of `x` and `y`.
94
- */
95
- const validateConfig = () => {
96
- if (!globalConfig) {
97
- throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
98
- }
99
- const schema = zod_1.z
100
- .object({
101
- method: zod_1.z.nativeEnum(types_1.Method),
102
- x: zod_1.z.array(zod_1.z.number()),
103
- y: zod_1.z.array(zod_1.z.number()),
104
- 'input-parameter': zod_1.z.string(),
105
- 'output-parameter': zod_1.z.string(),
106
- })
107
- .refine(data => data.x && data.y && data.x.length === data.y.length, {
108
- message: X_Y_EQUAL,
109
- })
110
- .refine(data => data.x.length > 1 && data.y.length > 1, {
111
- message: ARRAY_LENGTH_NON_EMPTY,
112
- });
113
- const defaultMethod = globalConfig.method ?? types_1.Method.LINEAR;
114
- const updatedConfig = Object.assign({}, { method: defaultMethod }, globalConfig, {
115
- x: sortPoints(globalConfig.x),
116
- y: sortPoints(globalConfig.y),
117
- });
118
- return (0, validations_1.validate)(schema, updatedConfig);
119
- };
120
- const sortPoints = (items) => items.sort((a, b) => {
121
- return a - b;
122
- });
123
- /**
124
- * Validates inputes parameters.
125
- */
126
- const validateInput = (input, index) => {
127
- const inputParameter = globalConfig['input-parameter'];
128
- const schema = zod_1.z
129
- .object({
130
- timestamp: zod_1.z.string().or(zod_1.z.date()),
131
- duration: zod_1.z.number(),
132
- [inputParameter]: zod_1.z.number().gt(0),
133
- })
134
- .refine(data => data[inputParameter] >= globalConfig.x[0] &&
135
- data[inputParameter] <= globalConfig.x[globalConfig.x.length - 1], {
136
- message: WITHIN_THE_RANGE,
137
- });
138
- return (0, validations_1.validate)(schema, input, index);
139
- };
140
- return {
141
- metadata: {
142
- kind: 'execute',
143
- },
144
- execute,
145
- };
146
- };
147
- exports.Interpolation = Interpolation;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvaW50ZXJwb2xhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRkFBNkM7QUFDN0MsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUM3QyxpREFLK0I7QUFFL0Isd0RBQWdEO0FBRWhELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUNKLHFCQUFxQixFQUNyQixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixHQUFHLGdCQUFPLENBQUM7QUFFTCxNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDekU7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGVBQWUsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTNELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxNQUFNO2FBQzlDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBNEI7WUFDMUMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0Ms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QU0sRUFBRTtZQUNwQixDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ25DLENBQUM7YUFDRCxNQUFNLENBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQ25FO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtTQUMxQixDQUNGLENBQUM7UUFFSixPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlLVyxRQUFBLGFBQWEsaUJBOEt4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTcGxpbmUgZnJvbSAndHlwZXNjcmlwdC1jdWJpYy1zcGxpbmUnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIENvbmZpZ1BhcmFtcyxcbiAgTWV0aG9kLFxufSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7R2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1xuICBNSVNTSU5HX0dMT0JBTF9DT05GSUcsXG4gIFhfWV9FUVVBTCxcbiAgQVJSQVlfTEVOR1RIX05PTl9FTVBUWSxcbiAgV0lUSElOX1RIRV9SQU5HRSxcbn0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgSW50ZXJwb2xhdGlvbiA9IChnbG9iYWxDb25maWc6IENvbmZpZ1BhcmFtcyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGVuZXJneSBjb25zdW1wdGlvbiBjYWxjdWxhdGlvbiBmb3IgYW4gYXJyYXkgb2YgaW5wdXQgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzYWZlSW5wdXQgPSB2YWxpZGF0ZUlucHV0KGlucHV0LCBpbmRleCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBjYWxjdWxhdGVSZXN1bHQodmFsaWRhdGVkQ29uZmlnLCBzYWZlSW5wdXQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW3ZhbGlkYXRlZENvbmZpZ1snb3V0cHV0LXBhcmFtZXRlciddXTogcmVzdWx0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgYXBwcm9wcmlhdGUgaW50ZXJwb2xhdGlvbiB2YWx1ZSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIG1ldGhvZCB0eXBlIGluIHRoZSBjb25maWcgYW5kIGlucHV0IHBhcmFtZXRlcnMuXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVSZXN1bHQgPSAoY29uZmlnOiBDb25maWdQYXJhbXMsIGlucHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICBjb25zdCBtZXRob2RUeXBlOiB7W2tleTogc3RyaW5nXTogbnVtYmVyfSA9IHtcbiAgICAgIGxpbmVhcjogZ2V0TGluZWFySW50ZXJwb2xhdGlvbihjb25maWcsIGlucHV0KSxcbiAgICAgIHNwbGluZTogZ2V0U3BsaW5lSW50ZXJwb2xhdGlvbihjb25maWcsIGlucHV0KSxcbiAgICAgIHBvbHlub21pYWw6IGdldFBvbHlub21pYWxJbnRlcnBvbGF0aW9uKGNvbmZpZywgaW5wdXQpLFxuICAgIH07XG5cbiAgICByZXR1cm4gbWV0aG9kVHlwZVtjb25maWcubWV0aG9kXTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJwb2xhdGlvbiB3aGVuIHRoZSBtZXRob2QgaXMgbGluZWFyLlxuICAgKi9cbiAgY29uc3QgZ2V0TGluZWFySW50ZXJwb2xhdGlvbiA9IChcbiAgICBjb25maWc6IENvbmZpZ1BhcmFtcyxcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zXG4gICkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlciA9IGlucHV0W2dsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVyJ11dO1xuICAgIGNvbnN0IHhQb2ludHM6IG51bWJlcltdID0gY29uZmlnLng7XG4gICAgY29uc3QgeVBvaW50czogbnVtYmVyW10gPSBjb25maWcueTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHhQb2ludHMucmVkdWNlKFxuICAgICAgKGFjYywgeFBvaW50LCBpKSA9PiB7XG4gICAgICAgIGlmIChwYXJhbWV0ZXIgPT09IHhQb2ludCkge1xuICAgICAgICAgIGFjYy5iYXNlQ3B1ID0geFBvaW50O1xuICAgICAgICAgIGFjYy5iYXNlUmF0ZSA9IHlQb2ludHNbaV07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyID4geFBvaW50ICYmIHBhcmFtZXRlciA8IHhQb2ludHNbaSArIDFdKSB7XG4gICAgICAgICAgYWNjLmJhc2VDcHUgPSB4UG9pbnQ7XG4gICAgICAgICAgYWNjLmJhc2VSYXRlID0geVBvaW50c1tpXTtcbiAgICAgICAgICBhY2MucmF0aW8gPSAoeVBvaW50c1tpICsgMV0gLSB5UG9pbnRzW2ldKSAvICh4UG9pbnRzW2kgKyAxXSAtIHhQb2ludCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHtiYXNlUmF0ZTogMCwgYmFzZUNwdTogMCwgcmF0aW86IDB9XG4gICAgKTtcblxuICAgIHJldHVybiByZXN1bHQuYmFzZVJhdGUgKyAocGFyYW1ldGVyIC0gcmVzdWx0LmJhc2VDcHUpICogcmVzdWx0LnJhdGlvO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnBvbGF0aW9uIHdoZW4gdGhlIG1ldGhvZCBpcyBzcGxpbmUuXG4gICAqL1xuICBjb25zdCBnZXRTcGxpbmVJbnRlcnBvbGF0aW9uID0gKFxuICAgIGNvbmZpZzogQ29uZmlnUGFyYW1zLFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXNcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gaW5wdXRbZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV07XG4gICAgY29uc3QgeFBvaW50czogbnVtYmVyW10gPSBjb25maWcueDtcbiAgICBjb25zdCB5UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy55O1xuICAgIGNvbnN0IHNwbGluZTogYW55ID0gbmV3IFNwbGluZSh4UG9pbnRzLCB5UG9pbnRzKTtcblxuICAgIHJldHVybiBzcGxpbmUuYXQocGFyYW1ldGVyKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJwb2xhdGlvbiB3aGVuIHRoZSBtZXRob2QgaXMgcG9seW5vbWlhbC5cbiAgICovXG4gIGNvbnN0IGdldFBvbHlub21pYWxJbnRlcnBvbGF0aW9uID0gKFxuICAgIGNvbmZpZzogQ29uZmlnUGFyYW1zLFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXNcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gaW5wdXRbZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV07XG4gICAgY29uc3QgeFBvaW50czogbnVtYmVyW10gPSBjb25maWcueDtcbiAgICBjb25zdCB5UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy55O1xuXG4gICAgY29uc3QgcmVzdWx0ID0geFBvaW50cy5yZWR1Y2UoKGFjYywgeCwgaSkgPT4ge1xuICAgICAgY29uc3QgdGVybSA9XG4gICAgICAgIHlQb2ludHNbaV0gKlxuICAgICAgICB4UG9pbnRzLnJlZHVjZSgocHJvZCwgeFBvaW50LCBqKSA9PiB7XG4gICAgICAgICAgaWYgKGogIT09IGkpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZCAqIChwYXJhbWV0ZXIgLSB4UG9pbnQpKSAvICh4IC0geFBvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2Q7XG4gICAgICAgIH0sIDEpO1xuICAgICAgcmV0dXJuIGFjYyArIHRlcm07XG4gICAgfSwgMCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgZ2xvYmFsIGNvbmZpZyBwYXJhbWV0ZXJzLlxuICAgKiBTb3J0cyBlbGVtZW50cyBvZiBgeGAgYW5kIGB5YC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKCkgPT4ge1xuICAgIGlmICghZ2xvYmFsQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgR2xvYmFsQ29uZmlnRXJyb3IoTUlTU0lOR19HTE9CQUxfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgbWV0aG9kOiB6Lm5hdGl2ZUVudW0oTWV0aG9kKSxcbiAgICAgICAgeDogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgeTogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgJ2lucHV0LXBhcmFtZXRlcic6IHouc3RyaW5nKCksXG4gICAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGRhdGEgPT4gZGF0YS54ICYmIGRhdGEueSAmJiBkYXRhLngubGVuZ3RoID09PSBkYXRhLnkubGVuZ3RoLCB7XG4gICAgICAgIG1lc3NhZ2U6IFhfWV9FUVVBTCxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGRhdGEgPT4gZGF0YS54Lmxlbmd0aCA+IDEgJiYgZGF0YS55Lmxlbmd0aCA+IDEsIHtcbiAgICAgICAgbWVzc2FnZTogQVJSQVlfTEVOR1RIX05PTl9FTVBUWSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdE1ldGhvZCA9IGdsb2JhbENvbmZpZy5tZXRob2QgPz8gTWV0aG9kLkxJTkVBUjtcbiAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAge21ldGhvZDogZGVmYXVsdE1ldGhvZH0sXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICB7XG4gICAgICAgIHg6IHNvcnRQb2ludHMoZ2xvYmFsQ29uZmlnLngpLFxuICAgICAgICB5OiBzb3J0UG9pbnRzKGdsb2JhbENvbmZpZy55KSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgdXBkYXRlZENvbmZpZyk7XG4gIH07XG5cbiAgY29uc3Qgc29ydFBvaW50cyA9IChpdGVtczogbnVtYmVyW10pID0+XG4gICAgaXRlbXMuc29ydCgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgICAgIHJldHVybiBhIC0gYjtcbiAgICB9KTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGlucHV0ZXMgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlSW5wdXQgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGlucHV0UGFyYW1ldGVyID0gZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXTtcbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdGltZXN0YW1wOiB6LnN0cmluZygpLm9yKHouZGF0ZSgpKSxcbiAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCksXG4gICAgICAgIFtpbnB1dFBhcmFtZXRlcl06IHoubnVtYmVyKCkuZ3QoMCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShcbiAgICAgICAgZGF0YSA9PlxuICAgICAgICAgIGRhdGFbaW5wdXRQYXJhbWV0ZXJdID49IGdsb2JhbENvbmZpZy54WzBdICYmXG4gICAgICAgICAgZGF0YVtpbnB1dFBhcmFtZXRlcl0gPD0gZ2xvYmFsQ29uZmlnLnhbZ2xvYmFsQ29uZmlnLngubGVuZ3RoIC0gMV0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBXSVRISU5fVEhFX1JBTkdFLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQsIGluZGV4KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhOiB7XG4gICAgICBraW5kOiAnZXhlY3V0ZScsXG4gICAgfSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommonGenerator = void 0;
4
- const utils_1 = require("@grnsft/if-core/utils");
5
- const config_1 = require("../../../config");
6
- const { GlobalConfigError } = utils_1.ERRORS;
7
- const { MISSING_GLOBAL_CONFIG } = config_1.STRINGS;
8
- const CommonGenerator = (config) => {
9
- /**
10
- * Generates next value by copying the validated config.
11
- * Validates the provided config is not null or empty.
12
- * Returns a copy of the validated config, otherwise throws an GlobalConfigError.
13
- */
14
- const validateConfig = (config) => {
15
- if (!config || Object.keys(config).length === 0) {
16
- throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
17
- }
18
- return structuredClone(config);
19
- };
20
- /**
21
- * Generates next value by copying the validated config.
22
- */
23
- const next = () => validateConfig(config);
24
- return {
25
- next,
26
- };
27
- };
28
- exports.CommonGenerator = CommonGenerator;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idWlsdGlucy9tb2NrLW9ic2VydmF0aW9ucy9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTZDO0FBRzdDLDRDQUF3QztBQUl4QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQW9CLEVBQWEsRUFBRTtJQUNqRTs7OztPQUlHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxELE9BQU87UUFDTCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXRCVyxRQUFBLGVBQWUsbUJBc0IxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtHZW5lcmF0b3J9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCB7R2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgQ29tbW9uR2VuZXJhdG9yID0gKGNvbmZpZzogQ29uZmlnUGFyYW1zKTogR2VuZXJhdG9yID0+IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBuZXh0IHZhbHVlIGJ5IGNvcHlpbmcgdGhlIHZhbGlkYXRlZCBjb25maWcuXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgY29uZmlnIGlzIG5vdCBudWxsIG9yIGVtcHR5LlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsaWRhdGVkIGNvbmZpZywgb3RoZXJ3aXNlIHRocm93cyBhbiBHbG9iYWxDb25maWdFcnJvci5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKGNvbmZpZzogb2JqZWN0KSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUoY29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIG5leHQgdmFsdWUgYnkgY29weWluZyB0aGUgdmFsaWRhdGVkIGNvbmZpZy5cbiAgICovXG4gIGNvbnN0IG5leHQgPSAoKTogT2JqZWN0ID0+IHZhbGlkYXRlQ29uZmlnKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXh0LFxuICB9O1xufTtcbiJdfQ==
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RandIntGenerator = void 0;
4
- const utils_1 = require("@grnsft/if-core/utils");
5
- const config_1 = require("../../../config");
6
- const { GlobalConfigError } = utils_1.ERRORS;
7
- const { MISSING_GLOBAL_CONFIG, MISSING_MIN_MAX, INVALID_MIN_MAX, INVALID_NAME } = config_1.STRINGS;
8
- const RandIntGenerator = (name, config) => {
9
- const next = () => ({
10
- [validatedName]: generateRandInt(getFieldToPopulate()),
11
- });
12
- const validateName = (name) => {
13
- if (!name || name.trim() === '') {
14
- throw new GlobalConfigError(INVALID_NAME);
15
- }
16
- return name;
17
- };
18
- const validateConfig = (config) => {
19
- if (!config || Object.keys(config).length === 0) {
20
- throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
21
- }
22
- if (!config.min || !config.max) {
23
- throw new GlobalConfigError(MISSING_MIN_MAX);
24
- }
25
- if (config.min >= config.max) {
26
- throw new GlobalConfigError(INVALID_MIN_MAX(validatedName));
27
- }
28
- return { min: config.min, max: config.max };
29
- };
30
- const validatedName = validateName(name);
31
- const validatedConfig = validateConfig(config);
32
- const getFieldToPopulate = () => ({
33
- name: validatedName,
34
- min: validatedConfig.min,
35
- max: validatedConfig.max,
36
- });
37
- const generateRandInt = (randIntGenerator) => {
38
- const randomNumber = Math.random();
39
- const scaledNumber = randomNumber * (randIntGenerator.max - randIntGenerator.min) +
40
- randIntGenerator.min;
41
- return Math.trunc(scaledNumber);
42
- };
43
- return {
44
- next,
45
- };
46
- };
47
- exports.RandIntGenerator = RandIntGenerator;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZC1pbnQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1aWx0aW5zL21vY2stb2JzZXJ2YXRpb25zL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE2QztBQUc3Qyw0Q0FBd0M7QUFJeEMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRW5DLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBQyxHQUMzRSxnQkFBTyxDQUFDO0FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixJQUFZLEVBQ1osTUFBb0IsRUFDVCxFQUFFO0lBQ2IsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ3ZELENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBbUIsRUFBVSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBb0IsRUFBOEIsRUFBRTtRQUMxRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLEVBQUUsYUFBYTtRQUNuQixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7UUFDeEIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO0tBQ3pCLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLENBQ3RCLGdCQUF3QyxFQUNoQyxFQUFFO1FBQ1YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUNoQixZQUFZLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUV2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdkRXLFFBQUEsZ0JBQWdCLG9CQXVEM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UmFuZEludEdlbmVyYXRvclBhcmFtcywgQ29uZmlnUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7R2VuZXJhdG9yfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3Qge0dsb2JhbENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJRywgTUlTU0lOR19NSU5fTUFYLCBJTlZBTElEX01JTl9NQVgsIElOVkFMSURfTkFNRX0gPVxuICBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgUmFuZEludEdlbmVyYXRvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBjb25maWc6IENvbmZpZ1BhcmFtc1xuKTogR2VuZXJhdG9yID0+IHtcbiAgY29uc3QgbmV4dCA9ICgpID0+ICh7XG4gICAgW3ZhbGlkYXRlZE5hbWVdOiBnZW5lcmF0ZVJhbmRJbnQoZ2V0RmllbGRUb1BvcHVsYXRlKCkpLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0ZU5hbWUgPSAobmFtZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFuYW1lIHx8IG5hbWUudHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTkFNRSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWU7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoY29uZmlnOiBDb25maWdQYXJhbXMpOiB7bWluOiBudW1iZXI7IG1heDogbnVtYmVyfSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLm1pbiB8fCAhY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfTUlOX01BWCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW4gPj0gY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTUlOX01BWCh2YWxpZGF0ZWROYW1lKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHttaW46IGNvbmZpZy5taW4sIG1heDogY29uZmlnLm1heH07XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVkTmFtZSA9IHZhbGlkYXRlTmFtZShuYW1lKTtcbiAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoY29uZmlnKTtcblxuICBjb25zdCBnZXRGaWVsZFRvUG9wdWxhdGUgPSAoKSA9PiAoe1xuICAgIG5hbWU6IHZhbGlkYXRlZE5hbWUsXG4gICAgbWluOiB2YWxpZGF0ZWRDb25maWcubWluLFxuICAgIG1heDogdmFsaWRhdGVkQ29uZmlnLm1heCxcbiAgfSk7XG5cbiAgY29uc3QgZ2VuZXJhdGVSYW5kSW50ID0gKFxuICAgIHJhbmRJbnRHZW5lcmF0b3I6IFJhbmRJbnRHZW5lcmF0b3JQYXJhbXNcbiAgKTogbnVtYmVyID0+IHtcbiAgICBjb25zdCByYW5kb21OdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xuICAgIGNvbnN0IHNjYWxlZE51bWJlciA9XG4gICAgICByYW5kb21OdW1iZXIgKiAocmFuZEludEdlbmVyYXRvci5tYXggLSByYW5kSW50R2VuZXJhdG9yLm1pbikgK1xuICAgICAgcmFuZEludEdlbmVyYXRvci5taW47XG5cbiAgICByZXR1cm4gTWF0aC50cnVuYyhzY2FsZWROdW1iZXIpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmV4dCxcbiAgfTtcbn07XG4iXX0=
@@ -1,2 +0,0 @@
1
- import { ExecutePlugin, ConfigParams } from '@grnsft/if-core/types';
2
- export declare const MockObservations: (globalConfig: ConfigParams) => ExecutePlugin;