@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
package/build/util/npm.js DELETED
@@ -1,152 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.executeCommands = exports.updatePackageJsonProperties = exports.extractPathsWithVersion = exports.updatePackageJsonDependencies = exports.installDependencies = exports.initPackageJsonIfNotExists = void 0;
28
- /* eslint-disable no-process-exit */
29
- const fs = __importStar(require("fs/promises"));
30
- const path = __importStar(require("path"));
31
- const helpers_1 = require("./helpers");
32
- const fs_1 = require("./fs");
33
- const logger_1 = require("./logger");
34
- const config_1 = require("../config");
35
- const packageJson = require('../../package.json');
36
- const { INITIALIZING_PACKAGE_JSON, INSTALLING_NPM_PACKAGES, IF_CHECK_VERIFIED } = config_1.STRINGS;
37
- /**
38
- * Checks if the package.json is exists, if not, initializes it.
39
- */
40
- const initPackageJsonIfNotExists = async (folderPath) => {
41
- const packageJsonPath = path.resolve(folderPath, 'package.json');
42
- const isPackageJsonExists = await (0, fs_1.isFileExists)(packageJsonPath);
43
- if (!isPackageJsonExists) {
44
- logger_1.logger.info(INITIALIZING_PACKAGE_JSON);
45
- const nodeModulesPath = path.resolve(folderPath, 'node_modules');
46
- const isNodeModulesExists = await (0, fs_1.isDirectoryExists)(nodeModulesPath);
47
- if (isNodeModulesExists) {
48
- await fs.rm(nodeModulesPath, { recursive: true });
49
- }
50
- await (0, helpers_1.execPromise)('npm init -y', { cwd: folderPath });
51
- }
52
- return packageJsonPath;
53
- };
54
- exports.initPackageJsonIfNotExists = initPackageJsonIfNotExists;
55
- /**
56
- * Installs packages from the specified dependencies in the specified folder.
57
- */
58
- const installDependencies = async (folderPath, dependencies) => {
59
- const packages = Object.entries(dependencies).map(([dependency, version]) => `${dependency}@${version.replace('^', '')}`);
60
- logger_1.logger.info(INSTALLING_NPM_PACKAGES);
61
- await (0, helpers_1.execPromise)(`npm install ${packages.join(' ')}`, {
62
- cwd: folderPath,
63
- });
64
- };
65
- exports.installDependencies = installDependencies;
66
- /**
67
- * Updates package.json dependencies.
68
- */
69
- const updatePackageJsonDependencies = async (packageJsonPath, dependencies, cwd) => {
70
- const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8');
71
- const parsedPackageJson = JSON.parse(packageJsonContent);
72
- if (cwd) {
73
- parsedPackageJson.dependencies = {
74
- ...parsedPackageJson.dependencies,
75
- ...dependencies,
76
- };
77
- }
78
- else {
79
- parsedPackageJson.dependencies = { ...dependencies };
80
- }
81
- await fs.writeFile(packageJsonPath, JSON.stringify(parsedPackageJson, null, 2));
82
- };
83
- exports.updatePackageJsonDependencies = updatePackageJsonDependencies;
84
- /**
85
- * Gets depencecies with versions.
86
- */
87
- const extractPathsWithVersion = (plugins, dependencies) => {
88
- const paths = Object.keys(plugins).map(plugin => plugins[plugin].path);
89
- const uniquePaths = [...new Set(paths)].filter(path => path !== 'builtin');
90
- const pathsWithVersion = {};
91
- uniquePaths.forEach(pluginPath => {
92
- const dependency = dependencies.find((dependency) => dependency.startsWith(pluginPath));
93
- if (dependency) {
94
- const splittedDependency = dependency.split('@');
95
- const version = splittedDependency.length > 2
96
- ? splittedDependency[2].split(' ')[0]
97
- : splittedDependency[1];
98
- pathsWithVersion[pluginPath] = `^${version}`;
99
- }
100
- });
101
- return pathsWithVersion;
102
- };
103
- exports.extractPathsWithVersion = extractPathsWithVersion;
104
- /**
105
- * Update the package.json properties.
106
- */
107
- const updatePackageJsonProperties = async (newPackageJsonPath, appendDependencies) => {
108
- const packageJsonContent = await fs.readFile(newPackageJsonPath, 'utf8');
109
- const parsedPackageJsonContent = JSON.parse(packageJsonContent);
110
- const properties = {
111
- name: 'if-environment',
112
- description: packageJson.description,
113
- author: packageJson.author,
114
- bugs: packageJson.bugs,
115
- engines: packageJson.engines,
116
- homepage: packageJson.homepage,
117
- dependencies: appendDependencies
118
- ? parsedPackageJsonContent.dependencies
119
- : {},
120
- };
121
- const newPackageJson = Object.assign({}, parsedPackageJsonContent, properties);
122
- await fs.writeFile(newPackageJsonPath, JSON.stringify(newPackageJson, null, 2));
123
- };
124
- exports.updatePackageJsonProperties = updatePackageJsonProperties;
125
- /**
126
- * Executes a series of npm commands based on the provided manifest file.
127
- */
128
- const executeCommands = async (manifest, cwd) => {
129
- // TODO: After release remove isGlobal and appropriate checks
130
- const isGlobal = !!process.env.npm_config_global;
131
- const manifestDirPath = path.dirname(manifest);
132
- const manifestFileName = (0, fs_1.getFileName)(manifest);
133
- const executedManifest = path.join(manifestDirPath, `re-${manifestFileName}`);
134
- const prefixFlag = process.env.CURRENT_DIR && process.env.CURRENT_DIR !== process.cwd()
135
- ? `--prefix=${path.relative(process.env.CURRENT_DIR, process.cwd())}`
136
- : '';
137
- const ifEnv = `${isGlobal ? `if-env ${prefixFlag}` : `npm run if-env ${prefixFlag} --`} -m ${manifest}`;
138
- const ifEnvCommand = cwd ? `${ifEnv} -c` : ifEnv;
139
- const ifRunCommand = `${isGlobal ? `if-run ${prefixFlag}` : `npm run if-run ${prefixFlag} --`} -m ${manifest} -o ${executedManifest}`;
140
- const ifDiffCommand = `${isGlobal ? `if-diff ${prefixFlag}` : `npm run if-diff ${prefixFlag} --`} -s ${executedManifest}.yaml -t ${manifest}`;
141
- const ttyCommand = " node -p 'Boolean(process.stdout.isTTY)'";
142
- await (0, helpers_1.execPromise)(`${ifEnvCommand} && ${ifRunCommand} && ${ttyCommand} | ${ifDiffCommand}`, {
143
- cwd: process.env.CURRENT_DIR || process.cwd(),
144
- });
145
- if (!cwd) {
146
- await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`);
147
- }
148
- await (0, fs_1.removeFileIfExists)(`${executedManifest}.yaml`);
149
- console.log(IF_CHECK_VERIFIED(path.basename(manifest)));
150
- };
151
- exports.executeCommands = executeCommands;
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9DQUFvQztBQUNwQyxnREFBa0M7QUFDbEMsMkNBQTZCO0FBRTdCLHVDQUFzQztBQUN0Qyw2QkFLYztBQUNkLHFDQUFnQztBQUVoQyxzQ0FBa0M7QUFHbEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFbEQsTUFBTSxFQUFDLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFDLEdBQzNFLGdCQUFPLENBQUM7QUFFVjs7R0FFRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxpQkFBWSxFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixlQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsZUFBZSxDQUFDLENBQUM7UUFFckUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDakQ7UUFFRCxNQUFNLElBQUEscUJBQVcsRUFBQyxhQUFhLEVBQUUsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztLQUNyRDtJ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Q0FBQyxtQkFBbUIsVUFBVSxLQUNwRSxPQUFPLGdCQUFnQixZQUFZLFFBQVEsRUFBRSxDQUFDO0lBQzlDLE1BQU0sVUFBVSxHQUFHLDBDQUEwQyxDQUFDO0lBRTlELE1BQU0sSUFBQSxxQkFBVyxFQUNmLEdBQUcsWUFBWSxPQUFPLFlBQVksT0FBTyxVQUFVLE1BQU0sYUFBYSxFQUFFLEVBQ3hFO1FBQ0UsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7S0FDOUMsQ0FDRixDQUFDO0lBRUYsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBQSx1QkFBa0IsRUFBQyxHQUFHLGVBQWUsZUFBZSxDQUFDLENBQUM7S0FDN0Q7SUFFRCxNQUFNLElBQUEsdUJBQWtCLEVBQUMsR0FBRyxnQkFBZ0IsT0FBTyxDQUFDLENBQUM7SUFFckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUFwQ1csUUFBQSxlQUFlLG1CQW9DMUIiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7ZXhlY1Byb21pc2V9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge1xuICBpc0RpcmVjdG9yeUV4aXN0cyxcbiAgZ2V0RmlsZU5hbWUsXG4gIGlzRmlsZUV4aXN0cyxcbiAgcmVtb3ZlRmlsZUlmRXhpc3RzLFxufSBmcm9tICcuL2ZzJztcbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7TWFuaWZlc3RQbHVnaW4sIFBhdGhXaXRoVmVyc2lvbn0gZnJvbSAnLi4vdHlwZXMvbnBtJztcblxuY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3Qge0lOSVRJQUxJWklOR19QQUNLQUdFX0pTT04sIElOU1RBTExJTkdfTlBNX1BBQ0tBR0VTLCBJRl9DSEVDS19WRVJJRklFRH0gPVxuICBTVFJJTkdTO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcGFja2FnZS5qc29uIGlzIGV4aXN0cywgaWYgbm90LCBpbml0aWFsaXplcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRQYWNrYWdlSnNvbklmTm90RXhpc3RzID0gYXN5bmMgKGZvbGRlclBhdGg6IHN0cmluZykgPT4ge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBwYXRoLnJlc29sdmUoZm9sZGVyUGF0aCwgJ3BhY2thZ2UuanNvbicpO1xuICBjb25zdCBpc1BhY2thZ2VKc29uRXhpc3RzID0gYXdhaXQgaXNGaWxlRXhpc3RzKHBhY2thZ2VKc29uUGF0aCk7XG5cbiAgaWYgKCFpc1BhY2thZ2VKc29uRXhpc3RzKSB7XG4gICAgbG9nZ2VyLmluZm8oSU5JVElBTElaSU5HX1BBQ0tBR0VfSlNPTik7XG5cbiAgICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSBwYXRoLnJlc29sdmUoZm9sZGVyUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICAgIGNvbnN0IGlzTm9kZU1vZHVsZXNFeGlzdHMgPSBhd2FpdCBpc0RpcmVjdG9yeUV4aXN0cyhub2RlTW9kdWxlc1BhdGgpO1xuXG4gICAgaWYgKGlzTm9kZU1vZHVsZXNFeGlzdHMpIHtcbiAgICAgIGF3YWl0IGZzLnJtKG5vZGVNb2R1bGVzUGF0aCwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGF3YWl0IGV4ZWNQcm9taXNlKCducG0gaW5pdCAteScsIHtjd2Q6IGZvbGRlclBhdGh9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlSnNvblBhdGg7XG59O1xuXG4vKipcbiAqIEluc3RhbGxzIHBhY2thZ2VzIGZyb20gdGhlIHNwZWNpZmllZCBkZXBlbmRlbmNpZXMgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBpbnN0YWxsRGVwZW5kZW5jaWVzID0gYXN5bmMgKFxuICBmb2xkZXJQYXRoOiBzdHJpbmcsXG4gIGRlcGVuZGVuY2llczoge1twYXRoOiBzdHJpbmddOiBzdHJpbmd9XG4pID0+IHtcbiAgY29uc3QgcGFja2FnZXMgPSBPYmplY3QuZW50cmllcyhkZXBlbmRlbmNpZXMpLm1hcChcbiAgICAoW2RlcGVuZGVuY3ksIHZlcnNpb25dKSA9PiBgJHtkZXBlbmRlbmN5fUAke3ZlcnNpb24ucmVwbGFjZSgnXicsICcnKX1gXG4gICk7XG5cbiAgbG9nZ2VyLmluZm8oSU5TVEFMTElOR19OUE1fUEFDS0FHRVMpO1xuICBhd2FpdCBleGVjUHJvbWlzZShgbnBtIGluc3RhbGwgJHtwYWNrYWdlcy5qb2luKCcgJyl9YCwge1xuICAgIGN3ZDogZm9sZGVyUGF0aCxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFVwZGF0ZXMgcGFja2FnZS5qc29uIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVBhY2thZ2VKc29uRGVwZW5kZW5jaWVzID0gYXN5bmMgKFxuICBwYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbiAgZGVwZW5kZW5jaWVzOiBQYXRoV2l0aFZlcnNpb24sXG4gIGN3ZDogYm9vbGVhblxuKSA9PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnKTtcblxuICBjb25zdCBwYXJzZWRQYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocGFja2FnZUpzb25Db250ZW50KTtcblxuICBpZiAoY3dkKSB7XG4gICAgcGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID0ge1xuICAgICAgLi4ucGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzLFxuICAgICAgLi4uZGVwZW5kZW5jaWVzLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID0gey4uLmRlcGVuZGVuY2llc307XG4gIH1cblxuICBhd2FpdCBmcy53cml0ZUZpbGUoXG4gICAgcGFja2FnZUpzb25QYXRoLFxuICAgIEpTT04uc3RyaW5naWZ5KHBhcnNlZFBhY2thZ2VKc29uLCBudWxsLCAyKVxuICApO1xufTtcblxuLyoqXG4gKiBHZXRzIGRlcGVuY2VjaWVzIHdpdGggdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0UGF0aHNXaXRoVmVyc2lvbiA9IChcbiAgcGx1Z2luczogTWFuaWZlc3RQbHVnaW4sXG4gIGRlcGVuZGVuY2llczogc3RyaW5nW11cbikgPT4ge1xuICBjb25zdCBwYXRocyA9IE9iamVjdC5rZXlzKHBsdWdpbnMpLm1hcChwbHVnaW4gPT4gcGx1Z2luc1twbHVnaW5dLnBhdGgpO1xuICBjb25zdCB1bmlxdWVQYXRocyA9IFsuLi5uZXcgU2V0KHBhdGhzKV0uZmlsdGVyKHBhdGggPT4gcGF0aCAhPT0gJ2J1aWx0aW4nKTtcbiAgY29uc3QgcGF0aHNXaXRoVmVyc2lvbjogUGF0aFdpdGhWZXJzaW9uID0ge307XG5cbiAgdW5pcXVlUGF0aHMuZm9yRWFjaChwbHVnaW5QYXRoID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmN5ID0gZGVwZW5kZW5jaWVzLmZpbmQoKGRlcGVuZGVuY3k6IHN0cmluZykgPT5cbiAgICAgIGRlcGVuZGVuY3kuc3RhcnRzV2l0aChwbHVnaW5QYXRoKVxuICAgICk7XG5cbiAgICBpZiAoZGVwZW5kZW5jeSkge1xuICAgICAgY29uc3Qgc3BsaXR0ZWREZXBlbmRlbmN5ID0gZGVwZW5kZW5jeS5zcGxpdCgnQCcpO1xuICAgICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICAgIHNwbGl0dGVkRGVwZW5kZW5jeS5sZW5ndGggPiAyXG4gICAgICAgICAgPyBzcGxpdHRlZERlcGVuZGVuY3lbMl0uc3BsaXQoJyAnKVswXVxuICAgICAgICAgIDogc3BsaXR0ZWREZXBlbmRlbmN5WzFdO1xuXG4gICAgICBwYXRoc1dpdGhWZXJzaW9uW3BsdWdpblBhdGhdID0gYF4ke3ZlcnNpb259YDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYXRoc1dpdGhWZXJzaW9uO1xufTtcblxuLyoqXG4gKiBVcGRhdGUgdGhlIHBhY2thZ2UuanNvbiBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlUGFja2FnZUpzb25Qcm9wZXJ0aWVzID0gYXN5bmMgKFxuICBuZXdQYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbiAgYXBwZW5kRGVwZW5kZW5jaWVzOiBib29sZWFuXG4pID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUobmV3UGFja2FnZUpzb25QYXRoLCAndXRmOCcpO1xuICBjb25zdCBwYXJzZWRQYWNrYWdlSnNvbkNvbnRlbnQgPSBKU09OLnBhcnNlKHBhY2thZ2VKc29uQ29udGVudCk7XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICBuYW1lOiAnaWYtZW52aXJvbm1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiBwYWNrYWdlSnNvbi5kZXNjcmlwdGlvbixcbiAgICBhdXRob3I6IHBhY2thZ2VKc29uLmF1dGhvcixcbiAgICBidWdzOiBwYWNrYWdlSnNvbi5idWdzLFxuICAgIGVuZ2luZXM6IHBhY2thZ2VKc29uLmVuZ2luZXMsXG4gICAgaG9tZXBhZ2U6IHBhY2thZ2VKc29uLmhvbWVwYWdlLFxuICAgIGRlcGVuZGVuY2llczogYXBwZW5kRGVwZW5kZW5jaWVzXG4gICAgICA/IHBhcnNlZFBhY2thZ2VKc29uQ29udGVudC5kZXBlbmRlbmNpZXNcbiAgICAgIDoge30sXG4gIH07XG5cbiAgY29uc3QgbmV3UGFja2FnZUpzb24gPSBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIHBhcnNlZFBhY2thZ2VKc29uQ29udGVudCxcbiAgICBwcm9wZXJ0aWVzXG4gICk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgIG5ld1BhY2thZ2VKc29uUGF0aCxcbiAgICBKU09OLnN0cmluZ2lmeShuZXdQYWNrYWdlSnNvbiwgbnVsbCwgMilcbiAgKTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBzZXJpZXMgb2YgbnBtIGNvbW1hbmRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBtYW5pZmVzdCBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvbW1hbmRzID0gYXN5bmMgKG1hbmlmZXN0OiBzdHJpbmcsIGN3ZDogYm9vbGVhbikgPT4ge1xuICAvLyBUT0RPOiBBZnRlciByZWxlYXNlIHJlbW92ZSBpc0dsb2JhbCBhbmQgYXBwcm9wcmlhdGUgY2hlY2tzXG4gIGNvbnN0IGlzR2xvYmFsID0gISFwcm9jZXNzLmVudi5ucG1fY29uZmlnX2dsb2JhbDtcbiAgY29uc3QgbWFuaWZlc3REaXJQYXRoID0gcGF0aC5kaXJuYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgbWFuaWZlc3RGaWxlTmFtZSA9IGdldEZpbGVOYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgZXhlY3V0ZWRNYW5pZmVzdCA9IHBhdGguam9pbihtYW5pZmVzdERpclBhdGgsIGByZS0ke21hbmlmZXN0RmlsZU5hbWV9YCk7XG4gIGNvbnN0IHByZWZpeEZsYWcgPVxuICAgIHByb2Nlc3MuZW52LkNVUlJFTlRfRElSICYmIHByb2Nlc3MuZW52LkNVUlJFTlRfRElSICE9PSBwcm9jZXNzLmN3ZCgpXG4gICAgICA/IGAtLXByZWZpeD0ke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIhLCBwcm9jZXNzLmN3ZCgpKX1gXG4gICAgICA6ICcnO1xuICBjb25zdCBpZkVudiA9IGAke1xuICAgIGlzR2xvYmFsID8gYGlmLWVudiAke3ByZWZpeEZsYWd9YCA6IGBucG0gcnVuIGlmLWVudiAke3ByZWZpeEZsYWd9IC0tYFxuICB9IC1tICR7bWFuaWZlc3R9YDtcbiAgY29uc3QgaWZFbnZDb21tYW5kID0gY3dkID8gYCR7aWZFbnZ9IC1jYCA6IGlmRW52O1xuICBjb25zdCBpZlJ1bkNvbW1hbmQgPSBgJHtcbiAgICBpc0dsb2JhbCA/IGBpZi1ydW4gJHtwcmVmaXhGbGFnfWAgOiBgbnBtIHJ1biBpZi1ydW4gJHtwcmVmaXhGbGFnfSAtLWBcbiAgfSAtbSAke21hbmlmZXN0fSAtbyAke2V4ZWN1dGVkTWFuaWZlc3R9YDtcbiAgY29uc3QgaWZEaWZmQ29tbWFuZCA9IGAke1xuICAgIGlzR2xvYmFsID8gYGlmLWRpZmYgJHtwcmVmaXhGbGFnfWAgOiBgbnBtIHJ1biBpZi1kaWZmICR7cHJlZml4RmxhZ30gLS1gXG4gIH0gLXMgJHtleGVjdXRlZE1hbmlmZXN0fS55YW1sIC10ICR7bWFuaWZlc3R9YDtcbiAgY29uc3QgdHR5Q29tbWFuZCA9IFwiIG5vZGUgLXAgJ0Jvb2xlYW4ocHJvY2Vzcy5zdGRvdXQuaXNUVFkpJ1wiO1xuXG4gIGF3YWl0IGV4ZWNQcm9taXNlKFxuICAgIGAke2lmRW52Q29tbWFuZH0gJiYgJHtpZlJ1bkNvbW1hbmR9ICYmICR7dHR5Q29tbWFuZH0gfCAke2lmRGlmZkNvbW1hbmR9YCxcbiAgICB7XG4gICAgICBjd2Q6IHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgfVxuICApO1xuXG4gIGlmICghY3dkKSB7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZUlmRXhpc3RzKGAke21hbmlmZXN0RGlyUGF0aH0vcGFja2FnZS5qc29uYCk7XG4gIH1cblxuICBhd2FpdCByZW1vdmVGaWxlSWZFeGlzdHMoYCR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbGApO1xuXG4gIGNvbnNvbGUubG9nKElGX0NIRUNLX1ZFUklGSUVEKHBhdGguYmFzZW5hbWUobWFuaWZlc3QpKSk7XG59O1xuIl19
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.osInfo = void 0;
4
- const os_1 = require("os");
5
- const helpers_1 = require("./helpers");
6
- /**
7
- * Executes `lsb_release -a` command in terminal.
8
- *
9
- * ```
10
- * Distributor ID: Ubuntu
11
- * Description: Ubuntu 22.04.4 LTS
12
- * Release: 22.04
13
- * Codename: jammy
14
- * ```
15
- *
16
- * Parses os and os-version from the response.
17
- */
18
- const getLinuxInfo = async () => {
19
- const { stdout } = await (0, helpers_1.execPromise)('lsb_release -a');
20
- const parseLinuxVersion = (lsbReleaseResponse) => {
21
- const regex = /Distributor ID: ([^\n]+)\nDescription: +([^ ]+) +([^ ]+) +(.+)\n/;
22
- const match = lsbReleaseResponse.match(regex);
23
- return {
24
- os: match ? match[1] : (0, os_1.platform)(),
25
- 'os-version': match ? `${match[3]} ${match[4]}` : (0, os_1.release)(),
26
- };
27
- };
28
- return parseLinuxVersion(stdout);
29
- };
30
- /**
31
- * Executes in CMD `systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version"` command.
32
- *
33
- * ```
34
- * OS Name: Microsoft Windows 11 Enterprise
35
- * OS Version: 10.0.22631 N/A Build 22631
36
- * ```
37
- *
38
- * Parses os and os-version from the response.
39
- */
40
- const getWindowsInfo = async () => {
41
- const { stdout } = await (0, helpers_1.execPromise)('systeminfo | findstr /B /C:"OS Name" /B /C:"OS Version"');
42
- const parseWindowsInfo = (systemInfoResponse) => {
43
- const regex = /OS Name:\s+([^\n]+)\nOS Version:\s+([\d.]+)\s+(N\/A\s+Build\s+(\d+))/;
44
- const match = systemInfoResponse.match(regex);
45
- return {
46
- os: match ? match[1] : (0, os_1.platform)(),
47
- 'os-version': match ? `${match[2]} ${match[3]}` : (0, os_1.release)(),
48
- };
49
- };
50
- return parseWindowsInfo(stdout);
51
- };
52
- /**
53
- * Executes `sw_vers` command in terminal.
54
- *
55
- * ```
56
- * ProductName: macOS
57
- * ProductVersion: 14.3.1
58
- * BuildVersion: 23D60
59
- * ```
60
- *
61
- * Parses os and os version from the response.
62
- */
63
- const getMacVersion = async () => {
64
- const { stdout } = await (0, helpers_1.execPromise)('sw_vers');
65
- const parseMacInfo = (swVersResponse) => {
66
- const productNameRegex = /ProductName:\s*(.+)/;
67
- const productVersionRegex = /ProductVersion:\s*(.+)/;
68
- const nameMatch = swVersResponse.match(productNameRegex);
69
- const versionMatch = swVersResponse.match(productVersionRegex);
70
- return {
71
- os: nameMatch ? nameMatch[1].trim() : (0, os_1.platform)(),
72
- 'os-version': versionMatch ? versionMatch[1].trim() : (0, os_1.release)(),
73
- };
74
- };
75
- return parseMacInfo(stdout);
76
- };
77
- /**
78
- * Finds operating system information like name and version.
79
- */
80
- const osInfo = async () => {
81
- const osKind = (0, os_1.platform)();
82
- switch (osKind) {
83
- case 'darwin':
84
- return getMacVersion();
85
- case 'linux':
86
- return getLinuxInfo();
87
- case 'win32':
88
- return getWindowsInfo();
89
- default:
90
- return {
91
- os: osKind,
92
- 'os-version': (0, os_1.release)(),
93
- };
94
- }
95
- };
96
- exports.osInfo = osInfo;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3MtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL29zLWNoZWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQXFDO0FBRXJDLHVDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzlCLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUEscUJBQVcsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXJELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxrQkFBMEIsRUFBRSxFQUFFO1FBQ3ZELE1BQU0sS0FBSyxHQUNULGtFQUFrRSxDQUFDO1FBQ3JFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNqQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFPLEdBQUU7U0FDNUQsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDaEMsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUNoQyx5REFBeUQsQ0FDMUQsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxrQkFBMEIsRUFBRSxFQUFFO1FBQ3RELE1BQU0sS0FBSyxHQUNULHNFQUFzRSxDQUFDO1FBQ3pFLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNqQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFPLEdBQUU7U0FDNUQsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sYUFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxNQUFNLElBQUEscUJBQVcsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUU5QyxNQUFNLFlBQVksR0FBRyxDQUFDLGNBQXNCLEVBQUUsRUFBRTtRQUM5QyxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDO1FBQy9DLE1BQU0sbUJBQW1CLEdBQUcsd0JBQXdCLENBQUM7UUFFckQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUvRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLGFBQVEsR0FBRTtZQUNoRCxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEsWUFBTyxHQUFFO1NBQ2hFLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUEsYUFBUSxHQUFFLENBQUM7SUFFMUIsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLFFBQVE7WUFDWCxPQUFPLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssT0FBTztZQUNWLE9BQU8sWUFBWSxFQUFFLENBQUM7UUFDeEIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxjQUFjLEVBQUUsQ0FBQztRQUMxQjtZQUNFLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLE1BQU07Z0JBQ1YsWUFBWSxFQUFFLElBQUEsWUFBTyxHQUFFO2FBQ3hCLENBQUM7S0FDTDtBQUNILENBQUMsQ0FBQztBQWhCVyxRQUFBLE1BQU0sVUFnQmpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWxlYXNlLCBwbGF0Zm9ybX0gZnJvbSAnb3MnO1xuXG5pbXBvcnQge2V4ZWNQcm9taXNlfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vKipcbiAqIEV4ZWN1dGVzIGBsc2JfcmVsZWFzZSAtYWAgY29tbWFuZCBpbiB0ZXJtaW5hbC5cbiAqXG4gKiBgYGBcbiAqIERpc3RyaWJ1dG9yIElEOiBVYnVudHVcbiAqIERlc2NyaXB0aW9uOiAgICBVYnVudHUgMjIuMDQuNCBMVFNcbiAqIFJlbGVhc2U6ICAgICAgICAyMi4wNFxuICogQ29kZW5hbWU6ICAgICAgIGphbW15XG4gKiBgYGBcbiAqXG4gKiBQYXJzZXMgb3MgYW5kIG9zLXZlcnNpb24gZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IGdldExpbnV4SW5mbyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjUHJvbWlzZSgnbHNiX3JlbGVhc2UgLWEnKTtcblxuICBjb25zdCBwYXJzZUxpbnV4VmVyc2lvbiA9IChsc2JSZWxlYXNlUmVzcG9uc2U6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlZ2V4ID1cbiAgICAgIC9EaXN0cmlidXRvciBJRDogKFteXFxuXSspXFxuRGVzY3JpcHRpb246ICsoW14gXSspICsoW14gXSspICsoLispXFxuLztcbiAgICBjb25zdCBtYXRjaCA9IGxzYlJlbGVhc2VSZXNwb25zZS5tYXRjaChyZWdleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3M6IG1hdGNoID8gbWF0Y2hbMV0gOiBwbGF0Zm9ybSgpLFxuICAgICAgJ29zLXZlcnNpb24nOiBtYXRjaCA/IGAke21hdGNoWzNdfSAke21hdGNoWzRdfWAgOiByZWxlYXNlKCksXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gcGFyc2VMaW51eFZlcnNpb24oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgaW4gQ01EIGBzeXN0ZW1pbmZvIHwgZmluZHN0ciAvQiAvQzpcIk9TIE5hbWVcIiAvQiAvQzpcIk9TIFZlcnNpb25cImAgY29tbWFuZC5cbiAqXG4gKiBgYGBcbiAqIE9TIE5hbWU6ICAgICAgICAgICAgICAgICAgIE1pY3Jvc29mdCBXaW5kb3dzIDExIEVudGVycHJpc2VcbiAqIE9TIFZlcnNpb246ICAgICAgICAgICAgICAgIDEwLjAuMjI2MzEgTi9BIEJ1aWxkIDIyNjMxXG4gKiBgYGBcbiAqXG4gKiBQYXJzZXMgb3MgYW5kIG9zLXZlcnNpb24gZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IGdldFdpbmRvd3NJbmZvID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNQcm9taXNlKFxuICAgICdzeXN0ZW1pbmZvIHwgZmluZHN0ciAvQiAvQzpcIk9TIE5hbWVcIiAvQiAvQzpcIk9TIFZlcnNpb25cIidcbiAgKTtcblxuICBjb25zdCBwYXJzZVdpbmRvd3NJbmZvID0gKHN5c3RlbUluZm9SZXNwb25zZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXggPVxuICAgICAgL09TIE5hbWU6XFxzKyhbXlxcbl0rKVxcbk9TIFZlcnNpb246XFxzKyhbXFxkLl0rKVxccysoTlxcL0FcXHMrQnVpbGRcXHMrKFxcZCspKS87XG4gICAgY29uc3QgbWF0Y2ggPSBzeXN0ZW1JbmZvUmVzcG9uc2UubWF0Y2gocmVnZXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9zOiBtYXRjaCA/IG1hdGNoWzFdIDogcGxhdGZvcm0oKSxcbiAgICAgICdvcy12ZXJzaW9uJzogbWF0Y2ggPyBgJHttYXRjaFsyXX0gJHttYXRjaFszXX1gIDogcmVsZWFzZSgpLFxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIHBhcnNlV2luZG93c0luZm8oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYHN3X3ZlcnNgIGNvbW1hbmQgaW4gdGVybWluYWwuXG4gKlxuICogYGBgXG4gKiBQcm9kdWN0TmFtZTogICAgICBtYWNPU1xuICogUHJvZHVjdFZlcnNpb246ICAgMTQuMy4xXG4gKiBCdWlsZFZlcnNpb246ICAgICAyM0Q2MFxuICogYGBgXG4gKlxuICogUGFyc2VzIG9zIGFuZCBvcyB2ZXJzaW9uIGZyb20gdGhlIHJlc3BvbnNlLlxuICovXG5jb25zdCBnZXRNYWNWZXJzaW9uID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNQcm9taXNlKCdzd192ZXJzJyk7XG5cbiAgY29uc3QgcGFyc2VNYWNJbmZvID0gKHN3VmVyc1Jlc3BvbnNlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwcm9kdWN0TmFtZVJlZ2V4ID0gL1Byb2R1Y3ROYW1lOlxccyooLispLztcbiAgICBjb25zdCBwcm9kdWN0VmVyc2lvblJlZ2V4ID0gL1Byb2R1Y3RWZXJzaW9uOlxccyooLispLztcblxuICAgIGNvbnN0IG5hbWVNYXRjaCA9IHN3VmVyc1Jlc3BvbnNlLm1hdGNoKHByb2R1Y3ROYW1lUmVnZXgpO1xuICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9IHN3VmVyc1Jlc3BvbnNlLm1hdGNoKHByb2R1Y3RWZXJzaW9uUmVnZXgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9zOiBuYW1lTWF0Y2ggPyBuYW1lTWF0Y2hbMV0udHJpbSgpIDogcGxhdGZvcm0oKSxcbiAgICAgICdvcy12ZXJzaW9uJzogdmVyc2lvbk1hdGNoID8gdmVyc2lvbk1hdGNoWzFdLnRyaW0oKSA6IHJlbGVhc2UoKSxcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBwYXJzZU1hY0luZm8oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRmluZHMgb3BlcmF0aW5nIHN5c3RlbSBpbmZvcm1hdGlvbiBsaWtlIG5hbWUgYW5kIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBvc0luZm8gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IG9zS2luZCA9IHBsYXRmb3JtKCk7XG5cbiAgc3dpdGNoIChvc0tpbmQpIHtcbiAgICBjYXNlICdkYXJ3aW4nOlxuICAgICAgcmV0dXJuIGdldE1hY1ZlcnNpb24oKTtcbiAgICBjYXNlICdsaW51eCc6XG4gICAgICByZXR1cm4gZ2V0TGludXhJbmZvKCk7XG4gICAgY2FzZSAnd2luMzInOlxuICAgICAgcmV0dXJuIGdldFdpbmRvd3NJbmZvKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9zOiBvc0tpbmQsXG4gICAgICAgICdvcy12ZXJzaW9uJzogcmVsZWFzZSgpLFxuICAgICAgfTtcbiAgfVxufTtcbiJdfQ==
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pluginStorage = void 0;
4
- const utils_1 = require("@grnsft/if-core/utils");
5
- const config_1 = require("../config");
6
- const { PluginInitializationError } = utils_1.ERRORS;
7
- const { NOT_INITALIZED_PLUGIN } = config_1.STRINGS;
8
- /**
9
- * Storage for maintaining plugins.
10
- */
11
- const pluginStorage = () => {
12
- const storage = {};
13
- return {
14
- /**
15
- * Gets plugin by given `name`. If it's missing then throws error.
16
- */
17
- get: (name) => {
18
- const plugin = storage[name];
19
- if (!plugin) {
20
- throw new PluginInitializationError(NOT_INITALIZED_PLUGIN(name));
21
- }
22
- return plugin;
23
- },
24
- /**
25
- * Saves given `plugin` with given `name`.
26
- */
27
- set: function (name, plugin) {
28
- storage[name] = plugin;
29
- return this;
30
- },
31
- };
32
- };
33
- exports.pluginStorage = pluginStorage;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9wbHVnaW4tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBNkM7QUFFN0Msc0NBQWtDO0FBS2xDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMzQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXhDOztHQUVHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEMsT0FBTztRQUNMOztXQUVHO1FBQ0gsR0FBRyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEU7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0Q7O1dBRUc7UUFDSCxHQUFHLEVBQUUsVUFBVSxJQUFZLEVBQUUsTUFBdUI7WUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUV2QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBekJXLFFBQUEsYUFBYSxpQkF5QnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge1BsdWdpblN0b3JhZ2V9IGZyb20gJy4uL3R5cGVzL3BsdWdpbi1zdG9yYWdlJztcblxuY29uc3Qge1BsdWdpbkluaXRpYWxpemF0aW9uRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge05PVF9JTklUQUxJWkVEX1BMVUdJTn0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIFN0b3JhZ2UgZm9yIG1haW50YWluaW5nIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5TdG9yYWdlID0gKCkgPT4ge1xuICBjb25zdCBzdG9yYWdlOiBQbHVnaW5TdG9yYWdlID0ge307XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHBsdWdpbiBieSBnaXZlbiBgbmFtZWAuIElmIGl0J3MgbWlzc2luZyB0aGVuIHRocm93cyBlcnJvci5cbiAgICAgKi9cbiAgICBnZXQ6IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBsdWdpbiA9IHN0b3JhZ2VbbmFtZV07XG5cbiAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgIHRocm93IG5ldyBQbHVnaW5Jbml0aWFsaXphdGlvbkVycm9yKE5PVF9JTklUQUxJWkVEX1BMVUdJTihuYW1lKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBTYXZlcyBnaXZlbiBgcGx1Z2luYCB3aXRoIGdpdmVuIGBuYW1lYC5cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lOiBzdHJpbmcsIHBsdWdpbjogUGx1Z2luSW50ZXJmYWNlKSB7XG4gICAgICBzdG9yYWdlW25hbWVdID0gcGx1Z2luO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = exports.validateManifest = exports.manifestSchema = exports.allDefined = exports.atLeastOneDefined = void 0;
4
- const zod_1 = require("zod");
5
- const utils_1 = require("@grnsft/if-core/utils");
6
- const strings_1 = require("../config/strings");
7
- const aggregation_1 = require("../types/aggregation");
8
- const parameters_1 = require("../types/parameters");
9
- const { ManifestValidationError, InputValidationError } = utils_1.ERRORS;
10
- const { VALIDATING_MANIFEST } = strings_1.STRINGS;
11
- /**
12
- * At least one property defined handler.
13
- */
14
- const atLeastOneDefined = (obj) => Object.values(obj).some(v => v !== undefined);
15
- exports.atLeastOneDefined = atLeastOneDefined;
16
- /**
17
- * All properties are defined handler.
18
- */
19
- const allDefined = (obj) => Object.values(obj).every(v => v !== undefined);
20
- exports.allDefined = allDefined;
21
- /**
22
- * Validation schema for manifests.
23
- */
24
- exports.manifestSchema = zod_1.z.object({
25
- name: zod_1.z.string(),
26
- description: zod_1.z.string().optional().nullable(),
27
- tags: zod_1.z
28
- .object({
29
- kind: zod_1.z.string().optional().nullable(),
30
- complexity: zod_1.z.string().optional().nullable(),
31
- category: zod_1.z.string().optional().nullable(),
32
- })
33
- .optional()
34
- .nullable(),
35
- aggregation: zod_1.z
36
- .object({
37
- metrics: zod_1.z.array(zod_1.z.string()),
38
- type: zod_1.z.enum(aggregation_1.AGGREGATION_METHODS),
39
- })
40
- .optional()
41
- .nullable(),
42
- params: zod_1.z
43
- .array(zod_1.z.object({
44
- name: zod_1.z.string(),
45
- description: zod_1.z.string(),
46
- aggregation: zod_1.z.enum(parameters_1.AGGREGATION_TYPES),
47
- unit: zod_1.z.string(),
48
- }))
49
- .optional()
50
- .nullable(),
51
- initialize: zod_1.z.object({
52
- plugins: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
53
- path: zod_1.z.string(),
54
- method: zod_1.z.string(),
55
- 'global-config': zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
56
- })),
57
- outputs: zod_1.z.array(zod_1.z.string()).optional(),
58
- }),
59
- execution: zod_1.z
60
- .object({
61
- command: zod_1.z.string().optional(),
62
- environment: zod_1.z
63
- .object({
64
- 'if-version': zod_1.z.string(),
65
- os: zod_1.z.string(),
66
- 'os-version': zod_1.z.string(),
67
- 'node-version': zod_1.z.string(),
68
- 'date-time': zod_1.z.string(),
69
- dependencies: zod_1.z.array(zod_1.z.string()),
70
- })
71
- .optional(),
72
- status: zod_1.z.string(),
73
- error: zod_1.z.string().optional(),
74
- })
75
- .optional(),
76
- tree: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
77
- });
78
- /**
79
- * Validates given `manifest` object to match pattern.
80
- */
81
- const validateManifest = (manifest) => {
82
- console.debug(VALIDATING_MANIFEST);
83
- return (0, exports.validate)(exports.manifestSchema, manifest, undefined, ManifestValidationError);
84
- };
85
- exports.validateManifest = validateManifest;
86
- /**
87
- * Validates given `object` with given `schema`.
88
- */
89
- const validate = (schema, object, index, errorConstructor = InputValidationError) => {
90
- const validationResult = schema.safeParse(object);
91
- if (!validationResult.success) {
92
- throw new errorConstructor(prettifyErrorMessage(validationResult.error.message, index));
93
- }
94
- return validationResult.data;
95
- };
96
- exports.validate = validate;
97
- /**
98
- * Error message formatter for zod issues.
99
- */
100
- const prettifyErrorMessage = (issues, index) => {
101
- const issuesArray = JSON.parse(issues);
102
- return issuesArray.map((issue) => {
103
- const code = issue.code;
104
- let { path, message } = issue;
105
- const indexErrorMessage = index !== undefined ? ` at index ${index}` : '';
106
- if (issue.code === zod_1.ZodIssueCode.invalid_union) {
107
- message = issue.unionErrors[0].issues[0].message;
108
- path = issue.unionErrors[0].issues[0].path;
109
- }
110
- const fullPath = flattenPath(path);
111
- if (!fullPath) {
112
- return message;
113
- }
114
- return `"${fullPath}" parameter is ${message.toLowerCase()}${indexErrorMessage}. Error code: ${code}.`;
115
- });
116
- };
117
- /**
118
- * Flattens an array representing a nested path into a string.
119
- */
120
- const flattenPath = (path) => {
121
- const flattenPath = path.map(part => typeof part === 'number' ? `[${part}]` : part);
122
- return flattenPath.join('.');
123
- };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUQ7QUFDekQsaURBQTZDO0FBRTdDLCtDQUEwQztBQUUxQyxzREFBeUQ7QUFDekQsb0RBQXNEO0FBRXRELE1BQU0sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMvRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixHQUE4QyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFGdEMsUUFBQSxpQkFBaUIscUJBRXFCO0FBRW5EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFEcEMsUUFBQSxVQUFVLGNBQzBCO0FBRWpEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUs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QUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QztRQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDekcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBVSxFQUFFO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kSXNzdWVDb2RlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1ZBTElEQVRJTkdfTUFOSUZFU1R9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBBdCBsZWFzdCBvbmUgcHJvcGVydHkgZGVmaW5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgYXRMZWFzdE9uZURlZmluZWQgPSAoXG4gIG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj5cbikgPT4gT2JqZWN0LnZhbHVlcyhvYmopLnNvbWUodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuXG4vKipcbiAqIEFsbCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBhbGxEZWZpbmVkID0gKG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pID0+XG4gIE9iamVjdC52YWx1ZXMob2JqKS5ldmVyeSh2ID0+IHYgIT09IHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVmFsaWRhdGlvbiBzY2hlbWEgZm9yIG1hbmlmZXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gIHRhZ3M6IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIGtpbmQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY29tcGxleGl0eTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBhZ2dyZWdhdGlvbjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgbWV0cmljczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgIHR5cGU6IHouZW51bShBR0dSRUdBVElPTl9NRVRIT0RTKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIHBhcmFtczogelxuICAgIC5hcnJheShcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCksXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB6LmVudW0oQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgICAgICB1bml0OiB6LnN0cmluZygpLFxuICAgICAgfSlcbiAgICApXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgaW5pdGlhbGl6ZTogei5vYmplY3Qoe1xuICAgIHBsdWdpbnM6IHoucmVjb3JkKFxuICAgICAgei5zdHJpbmcoKSxcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgcGF0aDogei5zdHJpbmcoKSxcbiAgICAgICAgbWV0aG9kOiB6LnN0cmluZygpLFxuICAgICAgICAnZ2xvYmFsLWNvbmZpZyc6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICB9KVxuICAgICksXG4gICAgb3V0cHV0czogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB9KSxcbiAgZXhlY3V0aW9uOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBjb21tYW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBlbnZpcm9ubWVudDogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAnaWYtdmVyc2lvbic6IHouc3RyaW5nKCksXG4gICAgICAgICAgb3M6IHouc3RyaW5nKCksXG4gICAgICAgICAgJ29zLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdub2RlLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdkYXRlLXRpbWUnOiB6LnN0cmluZygpLFxuICAgICAgICAgIGRlcGVuZGVuY2llczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbmFsKCksXG4gICAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgICBlcnJvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKCksXG4gIHRyZWU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBtYW5pZmVzdGAgb2JqZWN0IHRvIG1hdGNoIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1hbmlmZXN0ID0gKG1hbmlmZXN0OiBhbnkpID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhWQUxJREFUSU5HX01BTklGRVNUKTtcblxuICByZXR1cm4gdmFsaWRhdGUobWFuaWZlc3RTY2hlbWEsIG1hbmlmZXN0LCB1bmRlZmluZWQsIE1hbmlmZXN0VmFsaWRhdGlvbkVycm9yKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBvYmplY3RgIHdpdGggZ2l2ZW4gYHNjaGVtYWAuXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZSA9IDxUPihcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4gIG9iamVjdDogYW55LFxuICBpbmRleD86IG51bWJlcixcbiAgZXJyb3JDb25zdHJ1Y3RvcjogRXJyb3JDb25zdHJ1Y3RvciA9IElucHV0VmFsaWRhdGlvbkVycm9yXG4pID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2Uob2JqZWN0KTtcblxuICBpZiAoIXZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBlcnJvckNvbnN0cnVjdG9yKFxuICAgICAgcHJldHRpZnlFcnJvck1lc3NhZ2UodmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlLCBpbmRleClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuZGF0YTtcbn07XG5cbi8qKlxuICogRXJyb3IgbWVzc2FnZSBmb3JtYXR0ZXIgZm9yIHpvZCBpc3N1ZXMuXG4gKi9cbmNvbnN0IHByZXR0aWZ5RXJyb3JNZXNzYWdlID0gKGlzc3Vlczogc3RyaW5nLCBpbmRleD86IG51bWJlcikgPT4ge1xuICBjb25zdCBpc3N1ZXNBcnJheSA9IEpTT04ucGFyc2UoaXNzdWVzKTtcblxuICByZXR1cm4gaXNzdWVzQXJyYXkubWFwKChpc3N1ZTogWm9kSXNzdWUpID0+IHtcbiAgICBjb25zdCBjb2RlID0gaXNzdWUuY29kZTtcbiAgICBsZXQge3BhdGgsIG1lc3NhZ2V9ID0gaXNzdWU7XG5cbiAgICBjb25zdCBpbmRleEVycm9yTWVzc2FnZSA9IGluZGV4ICE9PSB1bmRlZmluZWQgPyBgIGF0IGluZGV4ICR7aW5kZXh9YCA6ICcnO1xuXG4gICAgaWYgKGlzc3VlLmNvZGUgPT09IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uKSB7XG4gICAgICBtZXNzYWdlID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLm1lc3NhZ2U7XG4gICAgICBwYXRoID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLnBhdGg7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbFBhdGggPSBmbGF0dGVuUGF0aChwYXRoKTtcblxuICAgIGlmICghZnVsbFBhdGgpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIHJldHVybiBgXCIke2Z1bGxQYXRofVwiIHBhcmFtZXRlciBpcyAke21lc3NhZ2UudG9Mb3dlckNhc2UoKX0ke2luZGV4RXJyb3JNZXNzYWdlfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICB9KTtcbn07XG5cbi8qKlxuICogRmxhdHRlbnMgYW4gYXJyYXkgcmVwcmVzZW50aW5nIGEgbmVzdGVkIHBhdGggaW50byBhIHN0cmluZy5cbiAqL1xuY29uc3QgZmxhdHRlblBhdGggPSAocGF0aDogKHN0cmluZyB8IG51bWJlcilbXSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGZsYXR0ZW5QYXRoID0gcGF0aC5tYXAocGFydCA9PlxuICAgIHR5cGVvZiBwYXJ0ID09PSAnbnVtYmVyJyA/IGBbJHtwYXJ0fV1gIDogcGFydFxuICApO1xuXG4gIHJldHVybiBmbGF0dGVuUGF0aC5qb2luKCcuJyk7XG59O1xuIl19
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.checkIfFileIsYaml = exports.saveYamlFileAs = exports.openYamlFileAsObject = void 0;
27
- const fs = __importStar(require("fs/promises"));
28
- const path = __importStar(require("path"));
29
- const YAML = __importStar(require("js-yaml"));
30
- /**
31
- * Reads and parses `yaml` file to object.
32
- */
33
- const openYamlFileAsObject = async (filePath) => {
34
- const yamlFileBuffer = await fs.readFile(filePath, 'utf8');
35
- return YAML.load(yamlFileBuffer);
36
- };
37
- exports.openYamlFileAsObject = openYamlFileAsObject;
38
- /**
39
- * Saves given `yaml` dump as a file.
40
- */
41
- const saveYamlFileAs = async (object, pathToFile) => {
42
- const dirPath = path.dirname(pathToFile);
43
- await fs.mkdir(dirPath, { recursive: true });
44
- const yamlString = YAML.dump(object, { noRefs: true });
45
- return fs.writeFile(pathToFile, yamlString);
46
- };
47
- exports.saveYamlFileAs = saveYamlFileAs;
48
- /**
49
- * Checks if given `fileName` is yaml.
50
- */
51
- const checkIfFileIsYaml = (fileName) => {
52
- const yamlFileTypes = ['yaml', 'yml'];
53
- const splittedParts = fileName.split('.');
54
- const lastIndex = splittedParts.length - 1;
55
- const extension = splittedParts[lastIndex];
56
- return yamlFileTypes.includes(extension);
57
- };
58
- exports.checkIfFileIsYaml = checkIfFileIsYaml;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3lhbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFDbEMsMkNBQTZCO0FBRTdCLDhDQUFnQztBQUVoQzs7R0FFRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUFLLFFBQWdCLEVBQWMsRUFBRTtJQUM1RSxNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQU0sQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFKVyxRQUFBLG9CQUFvQix3QkFJL0I7QUFFRjs7R0FFRztBQUNJLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxNQUFXLEVBQUUsVUFBa0IsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFFckQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFOVyxRQUFBLGNBQWMsa0JBTXpCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGlCQUFpQixHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO0lBQ3BELE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFQVyxRQUFBLGlCQUFpQixxQkFPNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgKiBhcyBZQU1MIGZyb20gJ2pzLXlhbWwnO1xuXG4vKipcbiAqIFJlYWRzIGFuZCBwYXJzZXMgYHlhbWxgIGZpbGUgdG8gb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3Qgb3BlbllhbWxGaWxlQXNPYmplY3QgPSBhc3luYyA8VD4oZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCB5YW1sRmlsZUJ1ZmZlciA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVQYXRoLCAndXRmOCcpO1xuXG4gIHJldHVybiBZQU1MLmxvYWQoeWFtbEZpbGVCdWZmZXIpIGFzIFQ7XG59O1xuXG4vKipcbiAqIFNhdmVzIGdpdmVuIGB5YW1sYCBkdW1wIGFzIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVZYW1sRmlsZUFzID0gYXN5bmMgKG9iamVjdDogYW55LCBwYXRoVG9GaWxlOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZGlyUGF0aCA9IHBhdGguZGlybmFtZShwYXRoVG9GaWxlKTtcbiAgYXdhaXQgZnMubWtkaXIoZGlyUGF0aCwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICBjb25zdCB5YW1sU3RyaW5nID0gWUFNTC5kdW1wKG9iamVjdCwge25vUmVmczogdHJ1ZX0pO1xuXG4gIHJldHVybiBmcy53cml0ZUZpbGUocGF0aFRvRmlsZSwgeWFtbFN0cmluZyk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiBgZmlsZU5hbWVgIGlzIHlhbWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja0lmRmlsZUlzWWFtbCA9IChmaWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHlhbWxGaWxlVHlwZXMgPSBbJ3lhbWwnLCAneW1sJ107XG4gIGNvbnN0IHNwbGl0dGVkUGFydHMgPSBmaWxlTmFtZS5zcGxpdCgnLicpO1xuICBjb25zdCBsYXN0SW5kZXggPSBzcGxpdHRlZFBhcnRzLmxlbmd0aCAtIDE7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNwbGl0dGVkUGFydHNbbGFzdEluZGV4XTtcblxuICByZXR1cm4geWFtbEZpbGVUeXBlcy5pbmNsdWRlcyhleHRlbnNpb24pO1xufTtcbiJdfQ==
@@ -1,78 +0,0 @@
1
- name: initialize-error-no-config
2
- description: >-
3
- a negative test case that fails due to plugin initialization missing some
4
- required config
5
- tags: null
6
- initialize:
7
- outputs:
8
- - yaml
9
- plugins:
10
- interpolate:
11
- method: Interpolation
12
- path: builtin
13
- global-config: null
14
- execution:
15
- status: fail
16
- command: >-
17
- /Users/mariamkhalatova/.npm/_npx/1bf7c3c15bf47d04/node_modules/.bin/ts-node
18
- /Users/mariamkhalatova/Projects/UK/if/src/index.ts -m
19
- manifests/outputs/bugs/initialize-error-no-config.yml -o
20
- manifests/outputs/bugs/initialize-error-no-config
21
- environment:
22
- if-version: 0.4.0
23
- os: macOS
24
- os-version: '13.2'
25
- node-version: 18.14.2
26
- date-time: 2024-07-01T19:45:41.936Z (UTC)
27
- dependencies:
28
- - '@babel/core@7.22.10'
29
- - '@babel/preset-typescript@7.23.3'
30
- - '@commitlint/cli@18.6.0'
31
- - '@commitlint/config-conventional@18.6.0'
32
- - '@grnsft/if-core@0.0.10'
33
-
34
- - '@jest/globals@29.7.0'
35
- - '@types/jest@29.5.8'
36
- - '@types/js-yaml@4.0.9'
37
- - '@types/luxon@3.4.2'
38
- - '@types/node@20.9.0'
39
- - axios-mock-adapter@1.22.0
40
- - axios@1.7.2
41
- - cross-env@7.0.3
42
- - csv-parse@5.5.6
43
- - csv-stringify@6.4.6
44
- - fixpack@4.0.0
45
- - gts@5.2.0
46
- - husky@8.0.3
47
- - jest@29.7.0
48
- - js-yaml@4.1.0
49
- - lint-staged@15.2.2
50
- - luxon@3.4.4
51
- - release-it@16.3.0
52
- - rimraf@5.0.5
53
- - ts-command-line-args@2.5.1
54
- - ts-jest@29.1.1
55
- - typescript-cubic-spline@1.0.1
56
- - typescript@5.2.2
57
- - winston@3.11.0
58
- - zod@3.22.4
59
- error: >-
60
- ManifestValidationError: "initialize.plugins.interpolate.global-config"
61
- parameter is expected object, received null. Error code: invalid_type.
62
- tree:
63
- children:
64
- child-0:
65
- defaults:
66
- cpu/thermal-design-power: 100
67
- pipeline:
68
- - interpolate
69
- inputs:
70
- - timestamp: 2023-07-06T00:00
71
- duration: 1
72
- cpu/utilization: 20
73
- - timestamp: 2023-07-06T00:01
74
- duration: 1
75
- cpu/utilization: 80
76
- - timestamp: 2023-07-06T00:02
77
- duration: 1
78
- cpu/utilization: 20