@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,118 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debugLogger = void 0;
4
- const strings_1 = require("../config/strings");
5
- const logMessagesKeys = [
6
- 'STARTING_IF',
7
- 'EXITING_IF',
8
- 'LOADING_MANIFEST',
9
- 'VALIDATING_MANIFEST',
10
- 'CAPTURING_RUNTIME_ENVIRONMENT_DATA',
11
- 'SYNCING_PARAMETERS',
12
- 'CHECKING_AGGREGATION_METHOD',
13
- 'INITIALIZING_PLUGINS',
14
- 'INITIALIZING_PLUGIN',
15
- 'LOADING_PLUGIN_FROM_PATH',
16
- 'COMPUTING_PIPELINE_FOR_NODE',
17
- 'MERGING_DEFAULTS_WITH_INPUT_DATA',
18
- 'AGGREGATING_OUTPUTS',
19
- 'AGGREGATING_NODE',
20
- 'PREPARING_OUTPUT_DATA',
21
- 'EXPORTING_TO_YAML_FILE',
22
- 'EXPORTING_TO_CSV_FILE',
23
- 'EXPORTING_RAW_CSV_FILE',
24
- ];
25
- var LogLevel;
26
- (function (LogLevel) {
27
- LogLevel["Info"] = "INFO";
28
- LogLevel["Warn"] = "WARN";
29
- LogLevel["Error"] = "ERROR";
30
- LogLevel["Debug"] = "DEBUG";
31
- })(LogLevel || (LogLevel = {}));
32
- const originalConsole = {
33
- log: console.log,
34
- info: console.info,
35
- warn: console.warn,
36
- error: console.error,
37
- debug: console.debug,
38
- };
39
- /**
40
- * Overrides console methods with custom debug logging.
41
- */
42
- const overrideConsoleMethods = (debugMode) => {
43
- console.log = (...args) => debugLog(LogLevel.Info, args, debugMode);
44
- console.info = (...args) => debugLog(LogLevel.Info, args, debugMode);
45
- console.warn = (...args) => debugLog(LogLevel.Warn, args, debugMode);
46
- console.error = (...args) => debugLog(LogLevel.Error, args, debugMode);
47
- console.debug = (...args) => debugLog(LogLevel.Debug, args, debugMode);
48
- };
49
- /**
50
- * Creates an encapsulated object to retrieve the plugin name.
51
- */
52
- const pluginNameManager = (() => {
53
- let pluginName = '';
54
- const manager = {
55
- get currentPluginName() {
56
- return pluginName;
57
- },
58
- set currentPluginName(value) {
59
- pluginName = value;
60
- },
61
- };
62
- return manager;
63
- })();
64
- /**
65
- * Sets the name of the currently executing plugin.
66
- */
67
- const setExecutingPluginName = (pluginName) => {
68
- pluginNameManager.currentPluginName = pluginName;
69
- };
70
- /**
71
- * Logs messages with the specified log level and format.
72
- */
73
- const debugLog = (level, args, debugMode) => {
74
- if (!debugMode) {
75
- if (level === LogLevel.Debug) {
76
- return;
77
- }
78
- const isDebugLog = typeof args[0] === 'string' &&
79
- logMessagesKeys.some(key => {
80
- const message = typeof strings_1.STRINGS[key] === 'function'
81
- ? strings_1.STRINGS[key].call(null, '')
82
- : strings_1.STRINGS[key];
83
- return args[0].includes(message);
84
- });
85
- if (!isDebugLog) {
86
- originalConsole.log(...args);
87
- }
88
- return;
89
- }
90
- if (args[0].includes('# start')) {
91
- originalConsole.log(...args);
92
- return;
93
- }
94
- const date = new Date().toISOString();
95
- const plugin = pluginNameManager.currentPluginName;
96
- const formattedMessage = `${level}: ${date}: ${plugin ? plugin + ': ' : ''}${args.join(', ')}`;
97
- if (debugMode) {
98
- switch (level) {
99
- case LogLevel.Info:
100
- originalConsole.info(formattedMessage);
101
- break;
102
- case LogLevel.Warn:
103
- originalConsole.warn(formattedMessage);
104
- break;
105
- case LogLevel.Error:
106
- originalConsole.error(formattedMessage);
107
- break;
108
- case LogLevel.Debug:
109
- originalConsole.debug(formattedMessage);
110
- break;
111
- }
112
- }
113
- };
114
- exports.debugLogger = {
115
- overrideConsoleMethods,
116
- setExecutingPluginName,
117
- };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGVidWctbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUEwQztBQUUxQyxNQUFNLGVBQWUsR0FBNkI7SUFDaEQsYUFBYTtJQUNiLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLG9DQUFvQztJQUNwQyxvQkFBb0I7SUFDcEIsNkJBQTZCO0lBQzdCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QixrQ0FBa0M7SUFDbEMscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2Qix3QkFBd0I7Q0FDekIsQ0FBQztBQUVGLElBQUssUUFLSjtBQUxELFdBQUssUUFBUTtJQUNYLHlCQUFhLENBQUE7SUFDYix5QkFBYSxDQUFBO0lBQ2IsMkJBQWUsQ0FBQTtJQUNmLDJCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUxJLFFBQVEsS0FBUixRQUFRLFFBS1o7QUFFRCxNQUFNLGVBQWUsR0FBRztJQUN0QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7SUFDaEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtJQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7SUFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO0NBQ3JCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxTQUFrQixFQUFFLEVBQUU7SUFDcEQsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0UsT0FBTyxDQUFDLElBQUks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LFNBQVMsRUFBRTtRQUNiLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsZUFBZSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNO1lBQ1IsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsZUFBZSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNO1NBQ1Q7S0FDRjtBQUNILENBQUMsQ0FBQztBQUVXLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLHNCQUFzQjtJQUN0QixzQkFBc0I7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCBsb2dNZXNzYWdlc0tleXM6IChrZXlvZiB0eXBlb2YgU1RSSU5HUylbXSA9IFtcbiAgJ1NUQVJUSU5HX0lGJyxcbiAgJ0VYSVRJTkdfSUYnLFxuICAnTE9BRElOR19NQU5JRkVTVCcsXG4gICdWQUxJREFUSU5HX01BTklGRVNUJyxcbiAgJ0NBUFRVUklOR19SVU5USU1FX0VOVklST05NRU5UX0RBVEEnLFxuICAnU1lOQ0lOR19QQVJBTUVURVJTJyxcbiAgJ0NIRUNLSU5HX0FHR1JFR0FUSU9OX01FVEhPRCcsXG4gICdJTklUSUFMSVpJTkdfUExVR0lOUycsXG4gICdJTklUSUFMSVpJTkdfUExVR0lOJyxcbiAgJ0xPQURJTkdfUExVR0lOX0ZST01fUEFUSCcsXG4gICdDT01QVVRJTkdfUElQRUxJTkVfRk9SX05PREUnLFxuICAnTUVSR0lOR19ERUZBVUxUU19XSVRIX0lOUFVUX0RBVEEnLFxuICAnQUdHUkVHQVRJTkdfT1VUUFVUUycsXG4gICdBR0dSRUdBVElOR19OT0RFJyxcbiAgJ1BSRVBBUklOR19PVVRQVVRfREFUQScsXG4gICdFWFBPUlRJTkdfVE9fWUFNTF9GSUxFJyxcbiAgJ0VYUE9SVElOR19UT19DU1ZfRklMRScsXG4gICdFWFBPUlRJTkdfUkFXX0NTVl9GSUxFJyxcbl07XG5cbmVudW0gTG9nTGV2ZWwge1xuICBJbmZvID0gJ0lORk8nLFxuICBXYXJuID0gJ1dBUk4nLFxuICBFcnJvciA9ICdFUlJPUicsXG4gIERlYnVnID0gJ0RFQlVHJyxcbn1cblxuY29uc3Qgb3JpZ2luYWxDb25zb2xlID0ge1xuICBsb2c6IGNvbnNvbGUubG9nLFxuICBpbmZvOiBjb25zb2xlLmluZm8sXG4gIHdhcm46IGNvbnNvbGUud2FybixcbiAgZXJyb3I6IGNvbnNvbGUuZXJyb3IsXG4gIGRlYnVnOiBjb25zb2xlLmRlYnVnLFxufTtcblxuLyoqXG4gKiBPdmVycmlkZXMgY29uc29sZSBtZXRob2RzIHdpdGggY3VzdG9tIGRlYnVnIGxvZ2dpbmcuXG4gKi9cbmNvbnN0IG92ZXJyaWRlQ29uc29sZU1ldGhvZHMgPSAoZGVidWdNb2RlOiBib29sZWFuKSA9PiB7XG4gIGNvbnNvbGUubG9nID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBkZWJ1Z0xvZyhMb2dMZXZlbC5JbmZvLCBhcmdzLCBkZWJ1Z01vZGUpO1xuICBjb25zb2xlLmluZm8gPSAoLi4uYXJnczogYW55W10pID0+IGRlYnVnTG9nKExvZ0xldmVsLkluZm8sIGFyZ3MsIGRlYnVnTW9kZSk7XG4gIGNvbnNvbGUud2FybiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gZGVidWdMb2coTG9nTGV2ZWwuV2FybiwgYXJncywgZGVidWdNb2RlKTtcbiAgY29uc29sZS5lcnJvciA9ICguLi5hcmdzOiBhbnlbXSkgPT4gZGVidWdMb2coTG9nTGV2ZWwuRXJyb3IsIGFyZ3MsIGRlYnVnTW9kZSk7XG4gIGNvbnNvbGUuZGVidWcgPSAoLi4uYXJnczogYW55W10pID0+IGRlYnVnTG9nKExvZ0xldmVsLkRlYnVnLCBhcmdzLCBkZWJ1Z01vZGUpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVuY2Fwc3VsYXRlZCBvYmplY3QgdG8gcmV0cmlldmUgdGhlIHBsdWdpbiBuYW1lLlxuICovXG5jb25zdCBwbHVnaW5OYW1lTWFuYWdlciA9ICgoKSA9PiB7XG4gIGxldCBwbHVnaW5OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcblxuICBjb25zdCBtYW5hZ2VyID0ge1xuICAgIGdldCBjdXJyZW50UGx1Z2luTmFtZSgpIHtcbiAgICAgIHJldHVybiBwbHVnaW5OYW1lO1xuICAgIH0sXG4gICAgc2V0IGN1cnJlbnRQbHVnaW5OYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgIHBsdWdpbk5hbWUgPSB2YWx1ZTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBtYW5hZ2VyO1xufSkoKTtcblxuLyoqXG4gKiBTZXRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIHBsdWdpbi5cbiAqL1xuY29uc3Qgc2V0RXhlY3V0aW5nUGx1Z2luTmFtZSA9IChwbHVnaW5OYW1lPzogc3RyaW5nKSA9PiB7XG4gIHBsdWdpbk5hbWVNYW5hZ2VyLmN1cnJlbnRQbHVnaW5OYW1lID0gcGx1Z2luTmFtZTtcbn07XG5cbi8qKlxuICogTG9ncyBtZXNzYWdlcyB3aXRoIHRoZSBzcGVjaWZpZWQgbG9nIGxldmVsIGFuZCBmb3JtYXQuXG4gKi9cbmNvbnN0IGRlYnVnTG9nID0gKGxldmVsOiBMb2dMZXZlbCwgYXJnczogYW55W10sIGRlYnVnTW9kZTogYm9vbGVhbikgPT4ge1xuICBpZiAoIWRlYnVnTW9kZSkge1xuICAgIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWwuRGVidWcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0RlYnVnTG9nID1cbiAgICAgIHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJyAmJlxuICAgICAgbG9nTWVzc2FnZXNLZXlzLnNvbWUoa2V5ID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICAgICAgdHlwZW9mIFNUUklOR1Nba2V5XSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyAoU1RSSU5HU1trZXldIGFzIEZ1bmN0aW9uKS5jYWxsKG51bGwsICcnKVxuICAgICAgICAgICAgOiAoU1RSSU5HU1trZXldIGFzIHN0cmluZyk7XG5cbiAgICAgICAgcmV0dXJuIGFyZ3NbMF0uaW5jbHVkZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIGlmICghaXNEZWJ1Z0xvZykge1xuICAgICAgb3JpZ2luYWxDb25zb2xlLmxvZyguLi5hcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYXJnc1swXS5pbmNsdWRlcygnIyBzdGFydCcpKSB7XG4gICAgb3JpZ2luYWxDb25zb2xlLmxvZyguLi5hcmdzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICBjb25zdCBwbHVnaW4gPSBwbHVnaW5OYW1lTWFuYWdlci5jdXJyZW50UGx1Z2luTmFtZTtcbiAgY29uc3QgZm9ybWF0dGVkTWVzc2FnZSA9IGAke2xldmVsfTogJHtkYXRlfTogJHtcbiAgICBwbHVnaW4gPyBwbHVnaW4gKyAnOiAnIDogJydcbiAgfSR7YXJncy5qb2luKCcsICcpfWA7XG5cbiAgaWYgKGRlYnVnTW9kZSkge1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgTG9nTGV2ZWwuSW5mbzpcbiAgICAgICAgb3JpZ2luYWxDb25zb2xlLmluZm8oZm9ybWF0dGVkTWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMb2dMZXZlbC5XYXJuOlxuICAgICAgICBvcmlnaW5hbENvbnNvbGUud2Fybihmb3JtYXR0ZWRNZXNzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLkVycm9yOlxuICAgICAgICBvcmlnaW5hbENvbnNvbGUuZXJyb3IoZm9ybWF0dGVkTWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMb2dMZXZlbC5EZWJ1ZzpcbiAgICAgICAgb3JpZ2luYWxDb25zb2xlLmRlYnVnKGZvcm1hdHRlZE1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkZWJ1Z0xvZ2dlciA9IHtcbiAgb3ZlcnJpZGVDb25zb2xlTWV0aG9kcyxcbiAgc2V0RXhlY3V0aW5nUGx1Z2luTmFtZSxcbn07XG4iXX0=
package/build/util/fs.js DELETED
@@ -1,94 +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.removeFileIfExists = exports.getFileName = exports.getYamlFiles = exports.isDirectoryExists = exports.isFileExists = void 0;
27
- const fs = __importStar(require("fs/promises"));
28
- const path = __importStar(require("path"));
29
- /**
30
- * Checks if file exists with the given `filePath`.
31
- */
32
- const isFileExists = async (filePath) => {
33
- try {
34
- await fs.stat(filePath);
35
- return true;
36
- }
37
- catch (error) {
38
- return false;
39
- }
40
- };
41
- exports.isFileExists = isFileExists;
42
- /**
43
- * Checks if the directory exists with the given `filePath`.
44
- */
45
- const isDirectoryExists = async (directoryPath) => {
46
- try {
47
- await fs.access(directoryPath);
48
- return true;
49
- }
50
- catch (error) {
51
- return false;
52
- }
53
- };
54
- exports.isDirectoryExists = isDirectoryExists;
55
- /**
56
- * Gets all files that have either .yml or .yaml extension in the given directory.
57
- */
58
- const getYamlFiles = async (directory) => {
59
- let yamlFiles = [];
60
- const files = await fs.readdir(directory);
61
- for (const file of files) {
62
- const fullPath = path.join(directory, file);
63
- const stat = await fs.lstat(fullPath);
64
- if (stat.isDirectory()) {
65
- yamlFiles = yamlFiles.concat(await (0, exports.getYamlFiles)(fullPath));
66
- }
67
- else {
68
- if (file.endsWith('.yml') || file.endsWith('.yaml')) {
69
- yamlFiles.push(fullPath);
70
- }
71
- }
72
- }
73
- return yamlFiles;
74
- };
75
- exports.getYamlFiles = getYamlFiles;
76
- /**
77
- * Gets fileName from the given path without an extension.
78
- */
79
- const getFileName = (filePath) => {
80
- const baseName = path.basename(filePath);
81
- const extension = path.extname(filePath);
82
- return baseName.replace(extension, '');
83
- };
84
- exports.getFileName = getFileName;
85
- /**
86
- * Removes the given file if exists.
87
- */
88
- const removeFileIfExists = async (filePath) => {
89
- if (await (0, exports.isFileExists)(filePath)) {
90
- await fs.unlink(filePath);
91
- }
92
- };
93
- exports.removeFileIfExists = removeFileIfExists;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9mcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFFN0I7O0dBRUc7QUFDSSxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ3JELElBQUk7UUFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUMsQ0FBQztBQVBXLFFBQUEsWUFBWSxnQkFPdkI7QUFFRjs7R0FFRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLGFBQXFCLEVBQUUsRUFBRTtJQUMvRCxJQUFJO1FBQ0YsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDLENBQUM7QUFQVyxRQUFBLGlCQUFpQixxQkFPNUI7QUFFRjs7R0FFRztBQUNJLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDdEQsSUFBSSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBRTdCLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtRQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdEIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFBLG9CQUFZLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ25ELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUI7U0FDRjtLQUNGO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsWUFBWSxnQkFtQnZCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUM7QUFKVyxRQUFBLFdBQVcsZUFJdEI7QUFFRjs7R0FFRztBQUNJLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUMzRCxJQUFJLE1BQU0sSUFBQSxvQkFBWSxFQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzQjtBQUNILENBQUMsQ0FBQztBQUpXLFFBQUEsa0JBQWtCLHNCQUk3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGZpbGUgZXhpc3RzIHdpdGggdGhlIGdpdmVuIGBmaWxlUGF0aGAuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0ZpbGVFeGlzdHMgPSBhc3luYyAoZmlsZVBhdGg6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLnN0YXQoZmlsZVBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGRpcmVjdG9yeSBleGlzdHMgd2l0aCB0aGUgZ2l2ZW4gYGZpbGVQYXRoYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzRGlyZWN0b3J5RXhpc3RzID0gYXN5bmMgKGRpcmVjdG9yeVBhdGg6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLmFjY2VzcyhkaXJlY3RvcnlQYXRoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0cyBhbGwgZmlsZXMgdGhhdCBoYXZlIGVpdGhlciAueW1sIG9yIC55YW1sIGV4dGVuc2lvbiBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgZ2V0WWFtbEZpbGVzID0gYXN5bmMgKGRpcmVjdG9yeTogc3RyaW5nKSA9PiB7XG4gIGxldCB5YW1sRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGRpcmVjdG9yeSk7XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgZnMubHN0YXQoZnVsbFBhdGgpO1xuXG4gICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgeWFtbEZpbGVzID0geWFtbEZpbGVzLmNvbmNhdChhd2FpdCBnZXRZYW1sRmlsZXMoZnVsbFBhdGgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpbGUuZW5kc1dpdGgoJy55bWwnKSB8fCBmaWxlLmVuZHNXaXRoKCcueWFtbCcpKSB7XG4gICAgICAgIHlhbWxGaWxlcy5wdXNoKGZ1bGxQYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geWFtbEZpbGVzO1xufTtcblxuLyoqXG4gKiBHZXRzIGZpbGVOYW1lIGZyb20gdGhlIGdpdmVuIHBhdGggd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGaWxlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGJhc2VOYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHBhdGguZXh0bmFtZShmaWxlUGF0aCk7XG4gIHJldHVybiBiYXNlTmFtZS5yZXBsYWNlKGV4dGVuc2lvbiwgJycpO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBmaWxlIGlmIGV4aXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVJZkV4aXN0cyA9IGFzeW5jIChmaWxlUGF0aDogc3RyaW5nKSA9PiB7XG4gIGlmIChhd2FpdCBpc0ZpbGVFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVQYXRoKTtcbiAgfVxufTtcbiJdfQ==
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env node
2
- /// <reference types="node" />
3
- import { exec } from 'node:child_process';
4
- import { Difference } from '../types/lib/compare';
5
- import { EnvironmentOptions } from '../types/if-env';
6
- /**
7
- * Impact engine error handler. Logs errors and appends issue template if error is unknown.
8
- */
9
- export declare const andHandle: (error: Error) => void;
10
- /**
11
- * Append entries from defaults which are missing from inputs.
12
- */
13
- export declare const mergeObjects: (defaults: any, input: any) => Record<string, any>;
14
- /**
15
- * Promise version of Node's `exec` from `child-process`.
16
- */
17
- export declare const execPromise: typeof exec.__promisify__;
18
- /**
19
- * `If-diff` equality checker.
20
- */
21
- export declare const checkIfEqual: (source: any, target: any) => boolean;
22
- /**
23
- * Checks if objects are primitive types.
24
- */
25
- export declare const oneIsPrimitive: (source: any, target: any) => boolean;
26
- /**
27
- * Format not matching message for CLI logging.
28
- */
29
- export declare const formatNotMatchingLog: (message: Difference) => void;
30
- /**
31
- * Checks if there is piped data, tries to parse yaml from it.
32
- * Returns empty string if haven't found anything.
33
- */
34
- export declare const parseManifestFromStdin: () => Promise<string>;
35
- /**
36
- * Gets the folder path of the manifest file, dependencies from manifest file and install argument from the given arguments.
37
- */
38
- export declare const getOptionsFromArgs: (commandArgs: {
39
- manifest: string;
40
- install: boolean | undefined;
41
- }) => Promise<{
42
- folderPath: string;
43
- dependencies: import("../types/npm").PathWithVersion;
44
- install: boolean | undefined;
45
- }>;
46
- /**
47
- * Creates folder if not exists, installs dependencies if required, update depenedencies.
48
- */
49
- export declare const initializeAndInstallLibs: (options: EnvironmentOptions) => Promise<void>;
50
- /**
51
- * Adds a manifest template to the folder where the if-env CLI command runs.
52
- */
53
- export declare const addTemplateManifest: (destinationDir: string) => Promise<void>;
54
- /**
55
- * Logs the failure message from the stdout of an error.
56
- */
57
- export declare const logStdoutFailMessage: (error: any, fileName: string) => string;
@@ -1,251 +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.logStdoutFailMessage = exports.addTemplateManifest = exports.initializeAndInstallLibs = exports.getOptionsFromArgs = exports.parseManifestFromStdin = exports.formatNotMatchingLog = exports.oneIsPrimitive = exports.checkIfEqual = exports.execPromise = exports.mergeObjects = exports.andHandle = void 0;
28
- /* eslint-disable no-process-exit */
29
- const promises_1 = require("node:readline/promises");
30
- const node_child_process_1 = require("node:child_process");
31
- const node_util_1 = require("node:util");
32
- const fs = __importStar(require("fs/promises"));
33
- const path = __importStar(require("path"));
34
- const utils_1 = require("@grnsft/if-core/utils");
35
- const config_1 = require("../config");
36
- const load_1 = require("../lib/load");
37
- const npm_1 = require("./npm");
38
- const logger_1 = require("./logger");
39
- const { IF_ENV } = config_1.CONFIG;
40
- const { FAILURE_MESSAGE, FAILURE_MESSAGE_TEMPLATE, FAILURE_MESSAGE_DEPENDENCIES, } = IF_ENV;
41
- const { UNSUPPORTED_ERROR, IF_CHECK_FAILED, IF_CHECK_SUMMARY_ERROR_MESSAGE } = config_1.STRINGS;
42
- const { MissingPluginDependenciesError } = utils_1.ERRORS;
43
- /**
44
- * Impact engine error handler. Logs errors and appends issue template if error is unknown.
45
- */
46
- const andHandle = (error) => {
47
- const knownErrors = Object.keys(utils_1.ERRORS);
48
- logger_1.logger.error(error);
49
- if (!knownErrors.includes(error.name)) {
50
- logger_1.logger.error(UNSUPPORTED_ERROR(error.name));
51
- // eslint-disable-next-line no-process-exit
52
- process.exit(2);
53
- }
54
- };
55
- exports.andHandle = andHandle;
56
- /**
57
- * Append entries from defaults which are missing from inputs.
58
- */
59
- const mergeObjects = (defaults, input) => {
60
- const merged = structuredClone(input);
61
- for (const key in defaults) {
62
- if (!(key in input)) {
63
- merged[key] = defaults[key];
64
- }
65
- if (merged[key] === undefined || merged[key] === null) {
66
- merged[key] = defaults[key];
67
- }
68
- }
69
- return merged;
70
- };
71
- exports.mergeObjects = mergeObjects;
72
- /**
73
- * Promise version of Node's `exec` from `child-process`.
74
- */
75
- exports.execPromise = (0, node_util_1.promisify)(node_child_process_1.exec);
76
- /**
77
- * `If-diff` equality checker.
78
- */
79
- const checkIfEqual = (source, target) => {
80
- if (source === target) {
81
- return true;
82
- }
83
- if (source === '*' || target === '*') {
84
- return true;
85
- }
86
- return false;
87
- };
88
- exports.checkIfEqual = checkIfEqual;
89
- /**
90
- * Converts given `value` to either `1` or `0`.
91
- */
92
- const convertToXorable = (value) => {
93
- if (typeof value === 'number') {
94
- return value !== 0 ? 1 : 0;
95
- }
96
- if (typeof value === 'boolean') {
97
- return value ? 1 : 0;
98
- }
99
- if (typeof value === 'string') {
100
- return value.length > 0 ? 1 : 0;
101
- }
102
- if (typeof value === 'object') {
103
- return 1;
104
- }
105
- return 0;
106
- };
107
- /**
108
- * If one of the `valuesToCheck` values is undefined, then set `missing`, otherwise `exists`.
109
- */
110
- const setValuesIfMissing = (response) => {
111
- const source = convertToXorable(response.source);
112
- const target = convertToXorable(response.target);
113
- if (source ^ target) {
114
- ['source', 'target'].forEach(value => {
115
- response[value] = response[value] ? 'exists' : 'missing';
116
- });
117
- return response;
118
- }
119
- return response;
120
- };
121
- /**
122
- * Checks if objects are primitive types.
123
- */
124
- const oneIsPrimitive = (source, target) => {
125
- // eslint-disable-next-line eqeqeq
126
- if (source == null || target == null) {
127
- return true;
128
- }
129
- return source !== Object(source) && target !== Object(target);
130
- };
131
- exports.oneIsPrimitive = oneIsPrimitive;
132
- /**
133
- * Format not matching message for CLI logging.
134
- */
135
- const formatNotMatchingLog = (message) => {
136
- const flattenMessage = setValuesIfMissing(message);
137
- Object.keys(flattenMessage).forEach(key => {
138
- if (key === 'message' || key === 'path') {
139
- console.log(message[key]);
140
- }
141
- else {
142
- console.log(`${key}: ${message[key]}`);
143
- }
144
- });
145
- };
146
- exports.formatNotMatchingLog = formatNotMatchingLog;
147
- /**
148
- * Checks if there is data piped, then collects it.
149
- * Otherwise returns empty string.
150
- */
151
- const collectPipedData = async () => {
152
- if (process.stdin.isTTY) {
153
- return '';
154
- }
155
- const readline = (0, promises_1.createInterface)({
156
- input: process.stdin,
157
- });
158
- const data = [];
159
- for await (const line of readline) {
160
- data.push(line);
161
- }
162
- return data.join('\n');
163
- };
164
- /**
165
- * Checks if there is piped data, tries to parse yaml from it.
166
- * Returns empty string if haven't found anything.
167
- */
168
- const parseManifestFromStdin = async () => {
169
- const pipedSourceManifest = await collectPipedData();
170
- if (!pipedSourceManifest) {
171
- return '';
172
- }
173
- const regex = /# start((?:.*\n)+?)# end/;
174
- const match = regex.exec(pipedSourceManifest);
175
- if (!match) {
176
- return '';
177
- }
178
- return match[1];
179
- };
180
- exports.parseManifestFromStdin = parseManifestFromStdin;
181
- /**
182
- * Gets the folder path of the manifest file, dependencies from manifest file and install argument from the given arguments.
183
- */
184
- const getOptionsFromArgs = async (commandArgs) => {
185
- const { manifest, install } = commandArgs;
186
- const folderPath = path.dirname(manifest);
187
- const loadedManifest = await (0, load_1.load)(manifest);
188
- const rawManifest = loadedManifest.rawManifest;
189
- const plugins = rawManifest?.initialize?.plugins || {};
190
- const dependencies = rawManifest?.execution?.environment.dependencies || [];
191
- if (!dependencies.length) {
192
- throw new MissingPluginDependenciesError(FAILURE_MESSAGE_DEPENDENCIES);
193
- }
194
- const pathsWithVersion = (0, npm_1.extractPathsWithVersion)(plugins, dependencies);
195
- return {
196
- folderPath,
197
- dependencies: pathsWithVersion,
198
- install,
199
- };
200
- };
201
- exports.getOptionsFromArgs = getOptionsFromArgs;
202
- /**
203
- * Creates folder if not exists, installs dependencies if required, update depenedencies.
204
- */
205
- const initializeAndInstallLibs = async (options) => {
206
- try {
207
- const { folderPath, install, cwd, dependencies } = options;
208
- const packageJsonPath = await (0, npm_1.initPackageJsonIfNotExists)(folderPath);
209
- await (0, npm_1.updatePackageJsonProperties)(packageJsonPath, cwd);
210
- if (install) {
211
- await (0, npm_1.installDependencies)(folderPath, dependencies);
212
- }
213
- else {
214
- await (0, npm_1.updatePackageJsonDependencies)(packageJsonPath, dependencies, cwd);
215
- }
216
- }
217
- catch (error) {
218
- console.log(FAILURE_MESSAGE);
219
- process.exit(2);
220
- }
221
- };
222
- exports.initializeAndInstallLibs = initializeAndInstallLibs;
223
- /**
224
- * Adds a manifest template to the folder where the if-env CLI command runs.
225
- */
226
- const addTemplateManifest = async (destinationDir) => {
227
- try {
228
- const templateManifest = path.resolve(__dirname, '../config/env-template.yml');
229
- const destinationPath = path.resolve(destinationDir, 'manifest.yml');
230
- const data = await fs.readFile(templateManifest, 'utf-8');
231
- await fs.writeFile(destinationPath, data, 'utf-8');
232
- }
233
- catch (error) {
234
- console.log(FAILURE_MESSAGE_TEMPLATE);
235
- process.exit(1);
236
- }
237
- };
238
- exports.addTemplateManifest = addTemplateManifest;
239
- /**
240
- * Logs the failure message from the stdout of an error.
241
- */
242
- const logStdoutFailMessage = (error, fileName) => {
243
- console.log(IF_CHECK_FAILED(fileName));
244
- const stdout = error.stdout;
245
- const logs = stdout.split('\n\n');
246
- const failMessage = logs[logs.length - 1];
247
- console.log(failMessage);
248
- return IF_CHECK_SUMMARY_ERROR_MESSAGE(fileName, failMessage);
249
- };
250
- exports.logStdoutFailMessage = logStdoutFailMessage;
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esb0NBQW9DO0FBQ3BDLHFEQUF1RDtBQUN2RCwyREFBd0M7QUFDeEMseUNBQW9DO0FBRXBDLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFFN0IsaURBQTZDO0FBRTdDLHNDQUEwQztBQUkxQyxzQ0FBaUM7QUFFakMsK0JBTWU7QUFFZixxQ0FBZ0M7QUFHaEMsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUN4QixNQUFNLEVBQ0osZUFBZSxFQUNmLHdCQUF3QixFQUN4Qiw0QkFBNEIsR0FDN0IsR0FBRyxNQUFNLENBQUM7QUFFWCxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLDhCQUE4QixFQUFDLEdBQ3hFLGdCQUFPLENBQUM7QUFDVixNQUFNLEVBQUMsOEJBQThCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFaEQ7O0dBRUc7QUFDSSxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBTSxDQUFDLENBQUM7SUFFeEMsZUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDckMsZUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM1QywyQ0FBMkM7UUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUMsQ0FBQztBQVZXLFFBQUEsU0FBUyxhQVVwQjtBQUVGOztHQUVHO0FBQ0ksTUFBTSxZQUFZLEdBQUcs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YyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNwRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFmVyxRQUFBLG1CQUFtQix1QkFlOUI7QUFFRjs7R0FFRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFVLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ25FLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFdkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsT0FBTyw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDO0FBVFcsUUFBQSxvQkFBb0Isd0JBUy9CIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvY2Vzcy1leGl0ICovXG5pbXBvcnQge2NyZWF0ZUludGVyZmFjZX0gZnJvbSAnbm9kZTpyZWFkbGluZS9wcm9taXNlcyc7XG5pbXBvcnQge2V4ZWN9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQge3Byb21pc2lmeX0gZnJvbSAnbm9kZTp1dGlsJztcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7U1RSSU5HUywgQ09ORklHfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge0RpZmZlcmVuY2V9IGZyb20gJy4uL3R5cGVzL2xpYi9jb21wYXJlJztcblxuaW1wb3J0IHtsb2FkfSBmcm9tICcuLi9saWIvbG9hZCc7XG5cbmltcG9ydCB7XG4gIGluc3RhbGxEZXBlbmRlbmNpZXMsXG4gIGluaXRQYWNrYWdlSnNvbklmTm90RXhpc3RzLFxuICB1cGRhdGVQYWNrYWdlSnNvbkRlcGVuZGVuY2llcyxcbiAgZXh0cmFjdFBhdGhzV2l0aFZlcnNpb24sXG4gIHVwZGF0ZVBhY2thZ2VKc29uUHJvcGVydGllcyxcbn0gZnJvbSAnLi9ucG0nO1xuXG5pbXBvcnQge2xvZ2dlcn0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtFbnZpcm9ubWVudE9wdGlvbnN9IGZyb20gJy4uL3R5cGVzL2lmLWVudic7XG5cbmNvbnN0IHtJRl9FTlZ9ID0gQ09ORklHO1xuY29uc3Qge1xuICBGQUlMVVJFX01FU1NBR0UsXG4gIEZBSUxVUkVfTUVTU0FHRV9URU1QTEFURSxcbiAgRkFJTFVSRV9NRVNTQUdFX0RFUEVOREVOQ0lFUyxcbn0gPSBJRl9FTlY7XG5cbmNvbnN0IHtVTlNVUFBPUlRFRF9FUlJPUiwgSUZfQ0hFQ0tfRkFJTEVELCBJRl9DSEVDS19TVU1NQVJZX0VSUk9SX01FU1NBR0V9ID1cbiAgU1RSSU5HUztcbmNvbnN0IHtNaXNzaW5nUGx1Z2luRGVwZW5kZW5jaWVzRXJyb3J9ID0gRVJST1JTO1xuXG4vKipcbiAqIEltcGFjdCBlbmdpbmUgZXJyb3IgaGFuZGxlci4gTG9ncyBlcnJvcnMgYW5kIGFwcGVuZHMgaXNzdWUgdGVtcGxhdGUgaWYgZXJyb3IgaXMgdW5rbm93bi5cbiAqL1xuZXhwb3J0IGNvbnN0IGFuZEhhbmRsZSA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgY29uc3Qga25vd25FcnJvcnMgPSBPYmplY3Qua2V5cyhFUlJPUlMpO1xuXG4gIGxvZ2dlci5lcnJvcihlcnJvcik7XG5cbiAgaWYgKCFrbm93bkVycm9ycy5pbmNsdWRlcyhlcnJvci5uYW1lKSkge1xuICAgIGxvZ2dlci5lcnJvcihVTlNVUFBPUlRFRF9FUlJPUihlcnJvci5uYW1lKSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZXhpdFxuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBcHBlbmQgZW50cmllcyBmcm9tIGRlZmF1bHRzIHdoaWNoIGFyZSBtaXNzaW5nIGZyb20gaW5wdXRzLlxuICovXG5leHBvcnQgY29uc3QgbWVyZ2VPYmplY3RzID0gKGRlZmF1bHRzOiBhbnksIGlucHV0OiBhbnkpID0+IHtcbiAgY29uc3QgbWVyZ2VkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gc3RydWN0dXJlZENsb25lKGlucHV0KTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBkZWZhdWx0cykge1xuICAgIGlmICghKGtleSBpbiBpbnB1dCkpIHtcbiAgICAgIG1lcmdlZFtrZXldID0gZGVmYXVsdHNba2V5XTtcbiAgICB9XG5cbiAgICBpZiAobWVyZ2VkW2tleV0gPT09IHVuZGVmaW5lZCB8fCBtZXJnZWRba2V5XSA9PT0gbnVsbCkge1xuICAgICAgbWVyZ2VkW2tleV0gPSBkZWZhdWx0c1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXJnZWQ7XG59O1xuXG4vKipcbiAqIFByb21pc2UgdmVyc2lvbiBvZiBOb2RlJ3MgYGV4ZWNgIGZyb20gYGNoaWxkLXByb2Nlc3NgLlxuICovXG5leHBvcnQgY29uc3QgZXhlY1Byb21pc2UgPSBwcm9taXNpZnkoZXhlYyk7XG5cbi8qKlxuICogYElmLWRpZmZgIGVxdWFsaXR5IGNoZWNrZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBjaGVja0lmRXF1YWwgPSAoc291cmNlOiBhbnksIHRhcmdldDogYW55KSA9PiB7XG4gIGlmIChzb3VyY2UgPT09IHRhcmdldCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNvdXJjZSA9PT0gJyonIHx8IHRhcmdldCA9PT0gJyonKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGdpdmVuIGB2YWx1ZWAgdG8gZWl0aGVyIGAxYCBvciBgMGAuXG4gKi9cbmNvbnN0IGNvbnZlcnRUb1hvcmFibGUgPSAodmFsdWU6IGFueSkgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gMCA/IDEgOiAwO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwID8gMSA6IDA7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcmV0dXJuIDA7XG59O1xuXG4vKipcbiAqIElmIG9uZSBvZiB0aGUgYHZhbHVlc1RvQ2hlY2tgIHZhbHVlcyBpcyB1bmRlZmluZWQsIHRoZW4gc2V0IGBtaXNzaW5nYCwgb3RoZXJ3aXNlIGBleGlzdHNgLlxuICovXG5jb25zdCBzZXRWYWx1ZXNJZk1pc3NpbmcgPSAocmVzcG9uc2U6IERpZmZlcmVuY2UpID0+IHtcbiAgY29uc3Qgc291cmNlID0gY29udmVydFRvWG9yYWJsZShyZXNwb25zZS5zb3VyY2UpO1xuICBjb25zdCB0YXJnZXQgPSBjb252ZXJ0VG9Yb3JhYmxlKHJlc3BvbnNlLnRhcmdldCk7XG5cbiAgaWYgKHNvdXJjZSBeIHRhcmdldCkge1xuICAgIFsnc291cmNlJywgJ3RhcmdldCddLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgcmVzcG9uc2VbdmFsdWVdID0gcmVzcG9uc2VbdmFsdWVdID8gJ2V4aXN0cycgOiAnbWlzc2luZyc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBvYmplY3RzIGFyZSBwcmltaXRpdmUgdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBvbmVJc1ByaW1pdGl2ZSA9IChzb3VyY2U6IGFueSwgdGFyZ2V0OiBhbnkpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICBpZiAoc291cmNlID09IG51bGwgfHwgdGFyZ2V0ID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzb3VyY2UgIT09IE9iamVjdChzb3VyY2UpICYmIHRhcmdldCAhPT0gT2JqZWN0KHRhcmdldCk7XG59O1xuXG4vKipcbiAqIEZvcm1hdCBub3QgbWF0Y2hpbmcgbWVzc2FnZSBmb3IgQ0xJIGxvZ2dpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXROb3RNYXRjaGluZ0xvZyA9IChtZXNzYWdlOiBEaWZmZXJlbmNlKSA9PiB7XG4gIGNvbnN0IGZsYXR0ZW5NZXNzYWdlID0gc2V0VmFsdWVzSWZNaXNzaW5nKG1lc3NhZ2UpO1xuXG4gIE9iamVjdC5rZXlzKGZsYXR0ZW5NZXNzYWdlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKGtleSA9PT0gJ21lc3NhZ2UnIHx8IGtleSA9PT0gJ3BhdGgnKSB7XG4gICAgICBjb25zb2xlLmxvZyhtZXNzYWdlW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgJHtrZXl9OiAke21lc3NhZ2Vba2V5XX1gKTtcbiAgICB9XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlcmUgaXMgZGF0YSBwaXBlZCwgdGhlbiBjb2xsZWN0cyBpdC5cbiAqIE90aGVyd2lzZSByZXR1cm5zIGVtcHR5IHN0cmluZy5cbiAqL1xuY29uc3QgY29sbGVjdFBpcGVkRGF0YSA9IGFzeW5jICgpID0+IHtcbiAgaWYgKHByb2Nlc3Muc3RkaW4uaXNUVFkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCByZWFkbGluZSA9IGNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gIH0pO1xuXG4gIGNvbnN0IGRhdGE6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIGF3YWl0IChjb25zdCBsaW5lIG9mIHJlYWRsaW5lKSB7XG4gICAgZGF0YS5wdXNoKGxpbmUpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuam9pbignXFxuJyk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGVyZSBpcyBwaXBlZCBkYXRhLCB0cmllcyB0byBwYXJzZSB5YW1sIGZyb20gaXQuXG4gKiBSZXR1cm5zIGVtcHR5IHN0cmluZyBpZiBoYXZlbid0IGZvdW5kIGFueXRoaW5nLlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VNYW5pZmVzdEZyb21TdGRpbiA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgcGlwZWRTb3VyY2VNYW5pZmVzdCA9IGF3YWl0IGNvbGxlY3RQaXBlZERhdGEoKTtcblxuICBpZiAoIXBpcGVkU291cmNlTWFuaWZlc3QpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCByZWdleCA9IC8jIHN0YXJ0KCg/Oi4qXFxuKSs/KSMgZW5kLztcbiAgY29uc3QgbWF0Y2ggPSByZWdleC5leGVjKHBpcGVkU291cmNlTWFuaWZlc3QpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gbWF0Y2ghWzFdO1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBmb2xkZXIgcGF0aCBvZiB0aGUgbWFuaWZlc3QgZmlsZSwgZGVwZW5kZW5jaWVzIGZyb20gbWFuaWZlc3QgZmlsZSBhbmQgaW5zdGFsbCBhcmd1bWVudCBmcm9tIHRoZSBnaXZlbiBhcmd1bWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRPcHRpb25zRnJvbUFyZ3MgPSBhc3luYyAoY29tbWFuZEFyZ3M6IHtcbiAgbWFuaWZlc3Q6IHN0cmluZztcbiAgaW5zdGFsbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn0pID0+IHtcbiAgY29uc3Qge21hbmlmZXN0LCBpbnN0YWxsfSA9IGNvbW1hbmRBcmdzO1xuICBjb25zdCBmb2xkZXJQYXRoID0gcGF0aC5kaXJuYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgbG9hZGVkTWFuaWZlc3QgPSBhd2FpdCBsb2FkKG1hbmlmZXN0KTtcbiAgY29uc3QgcmF3TWFuaWZlc3QgPSBsb2FkZWRNYW5pZmVzdC5yYXdNYW5pZmVzdDtcbiAgY29uc3QgcGx1Z2lucyA9IHJhd01hbmlmZXN0Py5pbml0aWFsaXplPy5wbHVnaW5zIHx8IHt9O1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByYXdNYW5pZmVzdD8uZXhlY3V0aW9uPy5lbnZpcm9ubWVudC5kZXBlbmRlbmNpZXMgfHwgW107XG5cbiAgaWYgKCFkZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IE1pc3NpbmdQbHVnaW5EZXBlbmRlbmNpZXNFcnJvcihGQUlMVVJFX01FU1NBR0VfREVQRU5ERU5DSUVTKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGhzV2l0aFZlcnNpb24gPSBleHRyYWN0UGF0aHNXaXRoVmVyc2lvbihwbHVnaW5zLCBkZXBlbmRlbmNpZXMpO1xuXG4gIHJldHVybiB7XG4gICAgZm9sZGVyUGF0aCxcbiAgICBkZXBlbmRlbmNpZXM6IHBhdGhzV2l0aFZlcnNpb24sXG4gICAgaW5zdGFsbCxcbiAgfTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBmb2xkZXIgaWYgbm90IGV4aXN0cywgaW5zdGFsbHMgZGVwZW5kZW5jaWVzIGlmIHJlcXVpcmVkLCB1cGRhdGUgZGVwZW5lZGVuY2llcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVBbmRJbnN0YWxsTGlicyA9IGFzeW5jIChvcHRpb25zOiBFbnZpcm9ubWVudE9wdGlvbnMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7Zm9sZGVyUGF0aCwgaW5zdGFsbCwgY3dkLCBkZXBlbmRlbmNpZXN9ID0gb3B0aW9ucztcbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBhd2FpdCBpbml0UGFja2FnZUpzb25JZk5vdEV4aXN0cyhmb2xkZXJQYXRoKTtcblxuICAgIGF3YWl0IHVwZGF0ZVBhY2thZ2VKc29uUHJvcGVydGllcyhwYWNrYWdlSnNvblBhdGgsIGN3ZCk7XG5cbiAgICBpZiAoaW5zdGFsbCkge1xuICAgICAgYXdhaXQgaW5zdGFsbERlcGVuZGVuY2llcyhmb2xkZXJQYXRoLCBkZXBlbmRlbmNpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB1cGRhdGVQYWNrYWdlSnNvbkRlcGVuZGVuY2llcyhwYWNrYWdlSnNvblBhdGgsIGRlcGVuZGVuY2llcywgY3dkKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coRkFJTFVSRV9NRVNTQUdFKTtcbiAgICBwcm9jZXNzLmV4aXQoMik7XG4gIH1cbn07XG5cbi8qKlxuICogQWRkcyBhIG1hbmlmZXN0IHRlbXBsYXRlIHRvIHRoZSBmb2xkZXIgd2hlcmUgdGhlIGlmLWVudiBDTEkgY29tbWFuZCBydW5zLlxuICovXG5leHBvcnQgY29uc3QgYWRkVGVtcGxhdGVNYW5pZmVzdCA9IGFzeW5jIChkZXN0aW5hdGlvbkRpcjogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGVtcGxhdGVNYW5pZmVzdCA9IHBhdGgucmVzb2x2ZShcbiAgICAgIF9fZGlybmFtZSxcbiAgICAgICcuLi9jb25maWcvZW52LXRlbXBsYXRlLnltbCdcbiAgICApO1xuXG4gICAgY29uc3QgZGVzdGluYXRpb25QYXRoID0gcGF0aC5yZXNvbHZlKGRlc3RpbmF0aW9uRGlyLCAnbWFuaWZlc3QueW1sJyk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKHRlbXBsYXRlTWFuaWZlc3QsICd1dGYtOCcpO1xuXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGRlc3RpbmF0aW9uUGF0aCwgZGF0YSwgJ3V0Zi04Jyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coRkFJTFVSRV9NRVNTQUdFX1RFTVBMQVRFKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn07XG5cbi8qKlxuICogTG9ncyB0aGUgZmFpbHVyZSBtZXNzYWdlIGZyb20gdGhlIHN0ZG91dCBvZiBhbiBlcnJvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ1N0ZG91dEZhaWxNZXNzYWdlID0gKGVycm9yOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgY29uc29sZS5sb2coSUZfQ0hFQ0tfRkFJTEVEKGZpbGVOYW1lKSk7XG5cbiAgY29uc3Qgc3Rkb3V0ID0gZXJyb3Iuc3Rkb3V0O1xuICBjb25zdCBsb2dzID0gc3Rkb3V0LnNwbGl0KCdcXG5cXG4nKTtcbiAgY29uc3QgZmFpbE1lc3NhZ2UgPSBsb2dzW2xvZ3MubGVuZ3RoIC0gMV07XG5cbiAgY29uc29sZS5sb2coZmFpbE1lc3NhZ2UpO1xuICByZXR1cm4gSUZfQ0hFQ0tfU1VNTUFSWV9FUlJPUl9NRVNTQUdFKGZpbGVOYW1lLCBmYWlsTWVzc2FnZSk7XG59O1xuIl19
@@ -1,4 +0,0 @@
1
- /**
2
- * Reads and parses json file.
3
- */
4
- export declare const readAndParseJson: <T>(paramPath: string) => Promise<T>;
@@ -1,36 +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.readAndParseJson = void 0;
27
- const fs = __importStar(require("fs/promises"));
28
- /**
29
- * Reads and parses json file.
30
- */
31
- const readAndParseJson = async (paramPath) => {
32
- const file = await fs.readFile(paramPath, 'utf-8');
33
- return JSON.parse(file);
34
- };
35
- exports.readAndParseJson = readAndParseJson;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFFbEM7O0dBRUc7QUFDSSxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBSyxTQUFpQixFQUFjLEVBQUU7SUFDekUsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVuRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBSlcsUUFBQSxnQkFBZ0Isb0JBSTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuXG4vKipcbiAqIFJlYWRzIGFuZCBwYXJzZXMganNvbiBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgcmVhZEFuZFBhcnNlSnNvbiA9IGFzeW5jIDxUPihwYXJhbVBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4gPT4ge1xuICBjb25zdCBmaWxlID0gYXdhaXQgZnMucmVhZEZpbGUocGFyYW1QYXRoLCAndXRmLTgnKTtcblxuICByZXR1cm4gSlNPTi5wYXJzZShmaWxlKSBhcyBUO1xufTtcbiJdfQ==
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.memoizedLog = void 0;
4
- /**
5
- * Keeps in memory logged messages. If called with redundant message, skips logging.
6
- */
7
- const memoizedLogger = () => {
8
- const memory = [];
9
- return (logger, message) => {
10
- if (memory.includes(message)) {
11
- return;
12
- }
13
- memory.push(message);
14
- logger(message);
15
- };
16
- };
17
- /** Singleton pattern. */
18
- exports.memoizedLog = memoizedLogger();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLW1lbW9pemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9sb2ctbWVtb2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUMxQixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFNUIsT0FBTyxDQUFDLE1BQStDLEVBQUUsT0FBZSxFQUFFLEVBQUU7UUFDMUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLHlCQUF5QjtBQUNaLFFBQUEsV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMZXZlbGVkTG9nTWV0aG9kfSBmcm9tICd3aW5zdG9uJztcblxuLyoqXG4gKiBLZWVwcyBpbiBtZW1vcnkgbG9nZ2VkIG1lc3NhZ2VzLiBJZiBjYWxsZWQgd2l0aCByZWR1bmRhbnQgbWVzc2FnZSwgc2tpcHMgbG9nZ2luZy5cbiAqL1xuY29uc3QgbWVtb2l6ZWRMb2dnZXIgPSAoKSA9PiB7XG4gIGNvbnN0IG1lbW9yeTogc3RyaW5nW10gPSBbXTtcblxuICByZXR1cm4gKGxvZ2dlcjogTGV2ZWxlZExvZ01ldGhvZCB8IHR5cGVvZiBjb25zb2xlLmRlYnVnLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAobWVtb3J5LmluY2x1ZGVzKG1lc3NhZ2UpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWVtb3J5LnB1c2gobWVzc2FnZSk7XG4gICAgbG9nZ2VyKG1lc3NhZ2UpO1xuICB9O1xufTtcblxuLyoqIFNpbmdsZXRvbiBwYXR0ZXJuLiAqL1xuZXhwb3J0IGNvbnN0IG1lbW9pemVkTG9nID0gbWVtb2l6ZWRMb2dnZXIoKTtcbiJdfQ==