@grnsft/if 0.5.0 → 0.6.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 (469) 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 +9 -0
  6. package/build/common/config/strings.js +17 -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 +11 -0
  24. package/build/if-check/config/strings.js +15 -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 +36 -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 +3 -0
  39. package/build/if-csv/config/strings.js +7 -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 +47 -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-merge/config/config.d.ts +6 -0
  86. package/build/if-merge/config/config.js +43 -0
  87. package/build/if-merge/config/index.d.ts +2 -0
  88. package/build/if-merge/config/index.js +8 -0
  89. package/build/if-merge/config/strings.d.ts +5 -0
  90. package/build/if-merge/config/strings.js +9 -0
  91. package/build/if-merge/index.d.ts +2 -0
  92. package/build/if-merge/index.js +26 -0
  93. package/build/if-merge/types/process-args.d.ts +6 -0
  94. package/build/if-merge/types/process-args.js +3 -0
  95. package/build/if-merge/util/args.d.ts +9 -0
  96. package/build/if-merge/util/args.js +59 -0
  97. package/build/if-merge/util/helpers.d.ts +5 -0
  98. package/build/if-merge/util/helpers.js +83 -0
  99. package/build/if-run/builtins/coefficient/index.d.ts +2 -0
  100. package/build/if-run/builtins/coefficient/index.js +67 -0
  101. package/build/if-run/builtins/copy-param/index.d.ts +2 -0
  102. package/build/if-run/builtins/copy-param/index.js +70 -0
  103. package/build/if-run/builtins/csv-lookup/index.d.ts +2 -0
  104. package/build/if-run/builtins/csv-lookup/index.js +190 -0
  105. package/build/if-run/builtins/divide/index.d.ts +2 -0
  106. package/build/if-run/builtins/divide/index.js +80 -0
  107. package/build/if-run/builtins/exponent/index.d.ts +2 -0
  108. package/build/if-run/builtins/exponent/index.js +60 -0
  109. package/build/{builtins → if-run/builtins}/export-log.d.ts +1 -1
  110. package/build/{builtins → if-run/builtins}/export-log.js +1 -1
  111. package/build/{builtins → if-run/builtins}/export-yaml.d.ts +1 -1
  112. package/build/if-run/builtins/export-yaml.js +30 -0
  113. package/build/{builtins → if-run/builtins}/index.d.ts +2 -2
  114. package/build/{builtins → if-run/builtins}/index.js +6 -6
  115. package/build/if-run/builtins/interpolation/index.d.ts +2 -0
  116. package/build/if-run/builtins/interpolation/index.js +151 -0
  117. package/build/if-run/builtins/mock-observations/helpers/common-generator.js +29 -0
  118. package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +48 -0
  119. package/build/if-run/builtins/mock-observations/index.d.ts +2 -0
  120. package/build/if-run/builtins/mock-observations/index.js +116 -0
  121. package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
  122. package/build/if-run/builtins/multiply/index.d.ts +2 -0
  123. package/build/if-run/builtins/multiply/index.js +59 -0
  124. package/build/if-run/builtins/regex/index.d.ts +2 -0
  125. package/build/if-run/builtins/regex/index.js +76 -0
  126. package/build/if-run/builtins/sci/index.d.ts +2 -0
  127. package/build/if-run/builtins/sci/index.js +92 -0
  128. package/build/if-run/builtins/sci-embodied/index.d.ts +2 -0
  129. package/build/if-run/builtins/sci-embodied/index.js +156 -0
  130. package/build/if-run/builtins/shell/index.d.ts +2 -0
  131. package/build/if-run/builtins/shell/index.js +60 -0
  132. package/build/if-run/builtins/subtract/index.d.ts +2 -0
  133. package/build/if-run/builtins/subtract/index.js +61 -0
  134. package/build/if-run/builtins/sum/index.d.ts +2 -0
  135. package/build/if-run/builtins/sum/index.js +66 -0
  136. package/build/if-run/builtins/time-converter/config.js +44 -0
  137. package/build/if-run/builtins/time-converter/index.d.ts +2 -0
  138. package/build/if-run/builtins/time-converter/index.js +79 -0
  139. package/build/if-run/builtins/time-sync/index.d.ts +17 -0
  140. package/build/if-run/builtins/time-sync/index.js +339 -0
  141. package/build/if-run/config/config.d.ts +9 -0
  142. package/build/if-run/config/config.js +73 -0
  143. package/build/if-run/config/index.d.ts +2 -0
  144. package/build/if-run/config/index.js +8 -0
  145. package/build/{config → if-run/config}/strings.d.ts +28 -54
  146. package/build/if-run/config/strings.js +76 -0
  147. package/build/if-run/index.d.ts +2 -0
  148. package/build/if-run/index.js +63 -0
  149. package/build/if-run/lib/aggregate.d.ts +15 -0
  150. package/build/if-run/lib/aggregate.js +123 -0
  151. package/build/if-run/lib/compute.js +142 -0
  152. package/build/{lib → if-run/lib}/environment.d.ts +1 -1
  153. package/build/if-run/lib/environment.js +75 -0
  154. package/build/{lib → if-run/lib}/exhaust.d.ts +1 -1
  155. package/build/if-run/lib/exhaust.js +27 -0
  156. package/build/if-run/lib/explain.d.ts +9 -0
  157. package/build/if-run/lib/explain.js +43 -0
  158. package/build/if-run/lib/initialize.d.ts +6 -0
  159. package/build/if-run/lib/initialize.js +109 -0
  160. package/build/if-run/lib/regroup.d.ts +5 -0
  161. package/build/if-run/lib/regroup.js +64 -0
  162. package/build/if-run/types/aggregation.d.ts +5 -0
  163. package/build/if-run/types/aggregation.js +6 -0
  164. package/build/{types → if-run/types}/compute.d.ts +12 -8
  165. package/build/if-run/types/compute.js +3 -0
  166. package/build/if-run/types/environment.js +3 -0
  167. package/build/{types → if-run/types}/exhaust-plugin-interface.d.ts +1 -1
  168. package/build/if-run/types/exhaust-plugin-interface.js +3 -0
  169. package/build/if-run/types/explain.d.ts +10 -0
  170. package/build/if-run/types/explain.js +3 -0
  171. package/build/if-run/types/interface.d.ts +3 -0
  172. package/build/if-run/types/interface.js +6 -0
  173. package/build/if-run/types/plugin-storage.js +3 -0
  174. package/build/if-run/types/process-args.d.ts +25 -0
  175. package/build/if-run/types/process-args.js +3 -0
  176. package/build/if-run/types/time-sync.js +3 -0
  177. package/build/{util → if-run/util}/aggregation-helper.d.ts +2 -1
  178. package/build/if-run/util/aggregation-helper.js +47 -0
  179. package/build/if-run/util/args.d.ts +9 -0
  180. package/build/if-run/util/args.js +60 -0
  181. package/build/if-run/util/helpers.d.ts +14 -0
  182. package/build/if-run/util/helpers.js +57 -0
  183. package/build/if-run/util/log-memoize.js +19 -0
  184. package/build/if-run/util/os-checker.js +97 -0
  185. package/build/{util → if-run/util}/plugin-storage.d.ts +1 -1
  186. package/build/if-run/util/plugin-storage.js +34 -0
  187. package/jest.config.js +2 -6
  188. package/manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml +2 -2
  189. package/manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml +3 -3
  190. package/manifests/examples/builtins/coefficient/success.yml +2 -2
  191. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +3 -3
  192. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +3 -3
  193. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml +3 -3
  194. package/manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml +3 -3
  195. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml +3 -3
  196. package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml +3 -3
  197. package/manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml +4 -4
  198. package/manifests/examples/builtins/csv-lookup/region-metadata/success.yml +3 -3
  199. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +2 -2
  200. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +2 -2
  201. package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +2 -2
  202. package/manifests/examples/builtins/divide/failure-denominator-equal-zero.yml +4 -4
  203. package/manifests/examples/builtins/divide/failure-invalid-config-denominator.yml +5 -5
  204. package/manifests/examples/builtins/divide/failure-missing-numerator.yml +4 -4
  205. package/manifests/examples/builtins/divide/success.yml +4 -6
  206. package/manifests/examples/builtins/exponent/success.yml +5 -7
  207. package/manifests/examples/builtins/interpolation/interpolation.yml +2 -2
  208. package/manifests/examples/builtins/interpolation/success.yml +2 -1
  209. package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +2 -2
  210. package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +2 -2
  211. package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +2 -2
  212. package/manifests/examples/builtins/mock-observations/success.yml +2 -2
  213. package/manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml +2 -4
  214. package/manifests/examples/builtins/multiply/success-with-multiple-inputs.yml +2 -4
  215. package/manifests/examples/builtins/multiply/success.yml +3 -4
  216. package/manifests/examples/builtins/regex/failure-missing-input-param.yml +2 -4
  217. package/manifests/examples/builtins/regex/failure-not-matching-with-regex.yml +2 -4
  218. package/manifests/examples/builtins/regex/success.yml +2 -4
  219. package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +2 -2
  220. package/manifests/examples/builtins/sci/failure-missing-input-param.yml +3 -2
  221. package/manifests/examples/builtins/sci/success.yml +2 -3
  222. package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +3 -3
  223. package/manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml +2 -2
  224. package/manifests/examples/builtins/sci-embodied/success.yml +2 -2
  225. package/manifests/examples/builtins/shell/failure-invalid-command.yml +2 -2
  226. package/manifests/examples/builtins/shell/success.yml +2 -1
  227. package/manifests/examples/builtins/subtract/success.yml +6 -8
  228. package/manifests/examples/builtins/sum/failure-missing-input-param.yml +2 -4
  229. package/manifests/examples/builtins/sum/failure-missing-output-param.yml +3 -5
  230. package/manifests/examples/builtins/sum/success.yml +2 -4
  231. package/manifests/examples/builtins/time-converter/success.yaml +24 -0
  232. package/manifests/examples/builtins/time-sync/failure-config-start-later-end.yml +3 -3
  233. package/manifests/examples/builtins/time-sync/failure-missing-global-config.yml +3 -3
  234. package/manifests/examples/builtins/time-sync/success.yml +2 -2
  235. package/manifests/examples/{builtins/groupby/failure-invalid-config-group.yml → features/regroup/failure-invalid-regroup.yml} +4 -11
  236. package/manifests/examples/{builtins/groupby → features/regroup}/failure-missing-cloud-instance-type.yml +5 -12
  237. package/manifests/examples/{builtins/groupby → features/regroup}/success.yml +4 -11
  238. package/manifests/examples/pipelines/generics.yml +12 -13
  239. package/manifests/examples/pipelines/instance-metadata.yml +4 -5
  240. package/manifests/examples/pipelines/nesting.yml +157 -50
  241. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml +997 -0
  242. package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml +1059 -0
  243. package/manifests/examples/pipelines/pipeline-teads-sci.yml +11 -11
  244. package/manifests/examples/pipelines/pipeline-with-aggregate.yml +114 -37
  245. package/manifests/examples/pipelines/pipeline-with-mocks.yml +193 -103
  246. package/manifests/examples/pipelines/scenario-1.yml +34 -0
  247. package/manifests/examples/pipelines/scenario-2.yml +52 -0
  248. package/manifests/examples/pipelines/scenario-3.yml +86 -0
  249. package/manifests/examples/pipelines/scenario-4.yml +46 -0
  250. package/manifests/examples/pipelines/scenario-5.yml +46 -0
  251. package/manifests/examples/pipelines/sci.yml +15 -17
  252. package/manifests/examples/pipelines/teads-curve.yml +7 -6
  253. package/manifests/examples/pipelines/zeros.yml +15 -16
  254. package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +51 -59
  255. package/manifests/outputs/bugs/input-error-missing-duration.yaml +14 -16
  256. package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +14 -16
  257. package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +14 -16
  258. package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +15 -17
  259. package/manifests/outputs/bugs/pipeline-ordering-error.yaml +23 -26
  260. package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +13 -14
  261. package/manifests/outputs/{plugins → builtins}/coefficient/failure-invalid-config-input-param.yaml +13 -17
  262. package/manifests/outputs/{plugins → builtins}/coefficient/failure-output-param-is-null.yaml +13 -17
  263. package/manifests/outputs/{plugins → builtins}/coefficient/success.yaml +11 -16
  264. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +76 -0
  265. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +16 -19
  266. package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/success.yaml +16 -19
  267. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-column.yaml +14 -15
  268. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-output.yaml +13 -15
  269. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success-renaming.yaml +13 -15
  270. package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success.yaml +14 -16
  271. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-missing-input-param.yaml +13 -16
  272. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +13 -15
  273. package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/success.yaml +13 -15
  274. package/manifests/outputs/{plugins → builtins}/divide/failure-invalid-config-denominator.yaml +13 -17
  275. package/manifests/outputs/{plugins → builtins}/divide/failure-missing-numerator.yaml +13 -15
  276. package/manifests/outputs/{plugins → builtins}/divide/success-denominator-equal-zero.yaml +14 -18
  277. package/manifests/outputs/{plugins → builtins}/divide/success.yaml +14 -18
  278. package/manifests/outputs/{plugins → builtins}/exponent/success.yaml +13 -17
  279. package/manifests/outputs/{plugins → builtins}/interpolation/interpolation.yaml +14 -16
  280. package/manifests/outputs/{plugins → builtins}/interpolation/success.yaml +14 -16
  281. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-config-cpu-range.yaml +13 -15
  282. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-memory-utilization-range.yaml +13 -15
  283. package/manifests/outputs/{plugins → builtins}/mock-observations/failure-missing-timestamp-from-param.yaml +13 -15
  284. package/manifests/outputs/builtins/mock-observations/success.yaml +358 -0
  285. package/manifests/outputs/{plugins → builtins}/multiply/failure-input-parameter-is-missing.yaml +13 -17
  286. package/manifests/outputs/{plugins → builtins}/multiply/success-with-multiple-inputs.yaml +13 -17
  287. package/manifests/outputs/{plugins → builtins}/multiply/success.yaml +13 -17
  288. package/manifests/outputs/{plugins → builtins}/regex/failure-missing-input-param.yaml +13 -17
  289. package/manifests/outputs/{plugins → builtins}/regex/success.yaml +14 -19
  290. package/manifests/outputs/{plugins → builtins}/sci/failure-invalid-config-value.yaml +14 -16
  291. package/manifests/outputs/{plugins → builtins}/sci/failure-missing-input-param.yaml +13 -15
  292. package/manifests/outputs/{plugins/sci/success.yml.yaml → builtins/sci/success.yaml} +13 -16
  293. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-invalid-default-emission-value.yaml +13 -15
  294. package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-missing-expected-lifespan.yaml +13 -15
  295. package/manifests/outputs/{plugins → builtins}/sci-embodied/success.yaml +13 -15
  296. package/manifests/outputs/{plugins → builtins}/shell/failure-invalid-command.yaml +14 -16
  297. package/manifests/outputs/{plugins → builtins}/shell/success.yaml +14 -16
  298. package/manifests/outputs/{plugins → builtins}/subtract/success.yaml +13 -17
  299. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-input-param.yaml +13 -17
  300. package/manifests/outputs/{plugins → builtins}/sum/failure-missing-output-param.yaml +13 -17
  301. package/manifests/outputs/{plugins → builtins}/sum/success.yaml +13 -17
  302. package/manifests/outputs/{plugins → builtins}/time-sync/failure-config-start-later-end.yaml +20 -23
  303. package/manifests/outputs/{plugins → builtins}/time-sync/success.yaml +38 -35
  304. package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +17 -18
  305. package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +17 -18
  306. package/manifests/outputs/features/aggregate-horizontal.yaml +27 -23
  307. package/manifests/outputs/features/aggregate-vertical.yaml +33 -29
  308. package/manifests/outputs/features/aggregate.yaml +33 -29
  309. package/manifests/outputs/{plugins/groupby/failure-invalid-config-group.yaml → features/failure-invalid-regroup.yaml} +16 -25
  310. package/manifests/outputs/{plugins/groupby → features}/failure-missing-cloud-instance-type.yaml +16 -25
  311. package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +14 -18
  312. package/manifests/outputs/pipelines/generics.yaml +239 -0
  313. package/manifests/outputs/pipelines/instance-metadata.yaml +98 -0
  314. package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +246 -147
  315. package/manifests/outputs/pipelines/nesting.yaml +1799 -0
  316. package/manifests/outputs/pipelines/pipeline-teads-sci.yaml +276 -0
  317. package/manifests/outputs/pipelines/sci.yaml +297 -0
  318. package/manifests/outputs/pipelines/teads-curve.yaml +188 -0
  319. package/manifests/outputs/pipelines/zeros.yaml +198 -0
  320. package/package.json +17 -16
  321. package/src/__mocks__/mock-manifest.yaml +2 -3
  322. package/src/{config → if-env/config}/env-template.yml +2 -3
  323. package/src/{builtins → if-run/builtins}/coefficient/README.md +31 -9
  324. package/src/{builtins → if-run/builtins}/copy-param/README.md +30 -11
  325. package/src/{builtins → if-run/builtins}/csv-lookup/README.md +32 -20
  326. package/src/{builtins → if-run/builtins}/divide/README.md +21 -8
  327. package/src/{builtins → if-run/builtins}/exponent/README.md +19 -8
  328. package/src/{builtins → if-run/builtins}/interpolation/README.md +21 -6
  329. package/src/{builtins → if-run/builtins}/mock-observations/README.md +18 -4
  330. package/src/{builtins → if-run/builtins}/multiply/README.md +20 -8
  331. package/src/{builtins → if-run/builtins}/regex/README.md +19 -9
  332. package/src/{builtins → if-run/builtins}/sci/README.md +19 -9
  333. package/src/{builtins → if-run/builtins}/sci-embodied/README.md +17 -5
  334. package/src/{builtins → if-run/builtins}/shell/README.md +19 -7
  335. package/src/{builtins → if-run/builtins}/subtract/README.md +17 -6
  336. package/src/{builtins → if-run/builtins}/sum/README.md +34 -8
  337. package/src/if-run/builtins/time-converter/README.md +136 -0
  338. package/src/if-run/builtins/time-sync/README.md +267 -0
  339. package/build/builtins/coefficient/index.d.ts +0 -2
  340. package/build/builtins/coefficient/index.js +0 -65
  341. package/build/builtins/copy-param/index.d.ts +0 -2
  342. package/build/builtins/copy-param/index.js +0 -68
  343. package/build/builtins/csv-lookup/index.d.ts +0 -2
  344. package/build/builtins/csv-lookup/index.js +0 -188
  345. package/build/builtins/divide/index.d.ts +0 -2
  346. package/build/builtins/divide/index.js +0 -78
  347. package/build/builtins/exponent/index.d.ts +0 -2
  348. package/build/builtins/exponent/index.js +0 -58
  349. package/build/builtins/export-csv-raw.d.ts +0 -4
  350. package/build/builtins/export-csv-raw.js +0 -132
  351. package/build/builtins/export-csv.d.ts +0 -10
  352. package/build/builtins/export-csv.js +0 -96
  353. package/build/builtins/export-yaml.js +0 -30
  354. package/build/builtins/group-by.d.ts +0 -5
  355. package/build/builtins/group-by.js +0 -71
  356. package/build/builtins/interpolation/index.d.ts +0 -2
  357. package/build/builtins/interpolation/index.js +0 -148
  358. package/build/builtins/mock-observations/helpers/common-generator.js +0 -29
  359. package/build/builtins/mock-observations/helpers/rand-int-generator.js +0 -48
  360. package/build/builtins/mock-observations/index.d.ts +0 -2
  361. package/build/builtins/mock-observations/index.js +0 -114
  362. package/build/builtins/mock-observations/interfaces/index.js +0 -3
  363. package/build/builtins/multiply/index.d.ts +0 -2
  364. package/build/builtins/multiply/index.js +0 -57
  365. package/build/builtins/regex/index.d.ts +0 -2
  366. package/build/builtins/regex/index.js +0 -74
  367. package/build/builtins/sci/config.js +0 -44
  368. package/build/builtins/sci/index.d.ts +0 -2
  369. package/build/builtins/sci/index.js +0 -70
  370. package/build/builtins/sci-embodied/index.d.ts +0 -2
  371. package/build/builtins/sci-embodied/index.js +0 -114
  372. package/build/builtins/shell/index.d.ts +0 -2
  373. package/build/builtins/shell/index.js +0 -58
  374. package/build/builtins/subtract/index.d.ts +0 -2
  375. package/build/builtins/subtract/index.js +0 -59
  376. package/build/builtins/sum/index.d.ts +0 -2
  377. package/build/builtins/sum/index.js +0 -64
  378. package/build/builtins/time-sync.d.ts +0 -2
  379. package/build/builtins/time-sync.js +0 -300
  380. package/build/check.js +0 -95
  381. package/build/config/config.d.ts +0 -29
  382. package/build/config/config.js +0 -147
  383. package/build/config/index.js +0 -10
  384. package/build/config/params.d.ts +0 -2
  385. package/build/config/params.js +0 -196
  386. package/build/config/strings.js +0 -105
  387. package/build/diff.js +0 -46
  388. package/build/env.js +0 -38
  389. package/build/index.js +0 -48
  390. package/build/lib/aggregate.d.ts +0 -6
  391. package/build/lib/aggregate.js +0 -77
  392. package/build/lib/compare.js +0 -56
  393. package/build/lib/compute.js +0 -91
  394. package/build/lib/environment.js +0 -75
  395. package/build/lib/exhaust.js +0 -53
  396. package/build/lib/initialize.d.ts +0 -6
  397. package/build/lib/initialize.js +0 -101
  398. package/build/lib/load.js +0 -70
  399. package/build/lib/parameterize.d.ts +0 -6
  400. package/build/lib/parameterize.js +0 -55
  401. package/build/types/aggregation.d.ts +0 -2
  402. package/build/types/aggregation.js +0 -5
  403. package/build/types/compute.js +0 -3
  404. package/build/types/environment.js +0 -3
  405. package/build/types/exhaust-plugin-interface.js +0 -3
  406. package/build/types/if-env.js +0 -3
  407. package/build/types/interface.d.ts +0 -4
  408. package/build/types/interface.js +0 -8
  409. package/build/types/lib/compare.js +0 -3
  410. package/build/types/manifest.js +0 -3
  411. package/build/types/npm.js +0 -3
  412. package/build/types/parameters.d.ts +0 -5
  413. package/build/types/parameters.js +0 -5
  414. package/build/types/plugin-storage.js +0 -3
  415. package/build/types/process-args.d.ts +0 -33
  416. package/build/types/process-args.js +0 -3
  417. package/build/types/time-sync.js +0 -3
  418. package/build/types/util/args.js +0 -3
  419. package/build/util/aggregation-helper.js +0 -55
  420. package/build/util/args.d.ts +0 -37
  421. package/build/util/args.js +0 -205
  422. package/build/util/debug-logger.js +0 -118
  423. package/build/util/fs.js +0 -94
  424. package/build/util/helpers.d.ts +0 -57
  425. package/build/util/helpers.js +0 -251
  426. package/build/util/json.d.ts +0 -4
  427. package/build/util/json.js +0 -36
  428. package/build/util/log-memoize.js +0 -19
  429. package/build/util/npm.js +0 -152
  430. package/build/util/os-checker.js +0 -97
  431. package/build/util/plugin-storage.js +0 -34
  432. package/build/util/validations.js +0 -124
  433. package/build/util/yaml.js +0 -59
  434. package/manifests/outputs/bugs/initialize-error-no-config.yaml +0 -78
  435. package/manifests/outputs/bugs/initialize-error-no-path.yaml +0 -91
  436. package/manifests/outputs/bugs/initialize-error-no-plugins.yaml +0 -74
  437. package/manifests/outputs/divide.yaml +0 -93
  438. package/manifests/outputs/pipelines/mock-obs-group-by-cloud-meta.yaml +0 -645
  439. package/manifests/outputs/pipelines/mock-obs-groupby.yaml +0 -178
  440. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +0 -27
  441. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +0 -27
  442. package/manifests/outputs/plugins/groupby/success.yaml +0 -101
  443. package/manifests/outputs/plugins/mock-observations/success.yaml +0 -220
  444. package/manifests/outputs/plugins/regex/failure-not-matching-with-regex.yaml +0 -76
  445. package/manifests/outputs/plugins/time-sync/failure-missing-global-config.yaml +0 -78
  446. package/src/__tests__/integration/templates/integration.yaml +0 -16
  447. package/src/builtins/README.md +0 -848
  448. /package/build/{util → common/util}/debug-logger.d.ts +0 -0
  449. /package/build/{util → common/util}/fs.d.ts +0 -0
  450. /package/build/{util → common/util}/logger.d.ts +0 -0
  451. /package/build/{util → common/util}/yaml.d.ts +0 -0
  452. /package/build/{index.d.ts → if-check/index.d.ts} +0 -0
  453. /package/build/{check.d.ts → if-csv/index.d.ts} +0 -0
  454. /package/build/{diff.d.ts → if-diff/index.d.ts} +0 -0
  455. /package/build/{types/util → if-diff/types}/args.d.ts +0 -0
  456. /package/build/{types/lib → if-diff/types}/compare.d.ts +0 -0
  457. /package/build/{env.d.ts → if-env/index.d.ts} +0 -0
  458. /package/build/{types → if-env/types}/if-env.d.ts +0 -0
  459. /package/build/{types → if-env/types}/npm.d.ts +0 -0
  460. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/common-generator.d.ts +0 -0
  461. /package/build/{builtins → if-run/builtins}/mock-observations/helpers/rand-int-generator.d.ts +0 -0
  462. /package/build/{builtins → if-run/builtins}/mock-observations/interfaces/index.d.ts +0 -0
  463. /package/build/{builtins/sci → if-run/builtins/time-converter}/config.d.ts +0 -0
  464. /package/build/{lib → if-run/lib}/compute.d.ts +0 -0
  465. /package/build/{types → if-run/types}/environment.d.ts +0 -0
  466. /package/build/{types → if-run/types}/plugin-storage.d.ts +0 -0
  467. /package/build/{types → if-run/types}/time-sync.d.ts +0 -0
  468. /package/build/{util → if-run/util}/log-memoize.d.ts +0 -0
  469. /package/build/{util → if-run/util}/os-checker.d.ts +0 -0
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.STRINGS = void 0;
4
- exports.STRINGS = {
5
- MANIFEST_IS_MISSING: 'Manifest is missing.',
6
- MISSING_METHOD: "Initalization param 'method' is missing.",
7
- MISSING_PATH: "Initalization param 'path' is missing.",
8
- UNSUPPORTED_PLUGIN: "Plugin interface doesn't implement 'execute' or 'metadata' methods.",
9
- OVERRIDE_WARNING: '\n**WARNING**: You are overriding the IF default parameters file. Please be extremely careful of unintended side-effects in your plugin pipeline!\n',
10
- DISCLAIMER_MESSAGE: `
11
- Incubation Project
12
-
13
- This project is an incubation project being run inside the Green Software Foundation; as such, we DON’T recommend using it in any critical use case.
14
- Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day graduate, in which case this disclaimer will be removed.`,
15
- NOT_NATIVE_PLUGIN: (path) => `
16
- You are using plugin ${path} which is not part of the Impact Framework standard library. You should do your own research to ensure the plugins are up to date and accurate. They may not be actively maintained.`,
17
- INVALID_MODULE_PATH: (path, error) => `Provided module \`${path}\` is invalid or not found. ${error ?? ''}
18
- `,
19
- INVALID_TIME_NORMALIZATION: 'Start time or end time is missing.',
20
- UNEXPECTED_TIME_CONFIG: 'Unexpected node-level config provided for time-sync plugin.',
21
- INVALID_TIME_INTERVAL: 'Interval is missing.',
22
- AVOIDING_PADDING: (description) => `Avoiding padding at ${description}`,
23
- AVOIDING_PADDING_BY_EDGES: (start, end) => `Avoiding padding at ${start && end ? 'start and end' : start ? 'start' : 'end'}`,
24
- INVALID_AGGREGATION_METHOD: (metric) => `Aggregation is not possible for given ${metric} since method is 'none'.`,
25
- METRIC_MISSING: (metric, index) => `Aggregation metric ${metric} is not found in inputs[${index}].`,
26
- INVALID_GROUP_BY: (type) => `Invalid group ${type}.`,
27
- REJECTING_OVERRIDE: (param) => `Rejecting overriding of canonical parameter: ${param.name}.`,
28
- INVALID_EXHAUST_PLUGIN: (pluginName) => `Invalid exhaust plugin: ${pluginName}.`,
29
- UNKNOWN_PARAM: (name) => `Unknown parameter: ${name}. Using 'sum' aggregation method.`,
30
- NOT_INITALIZED_PLUGIN: (name) => `Not initalized plugin: ${name}. Check if ${name} is in 'manifest.initalize.plugins'.`,
31
- NO_OUTPUT: `
32
- You have not selected an output method. To see your output data, you can choose from:
33
- --stdout: this will print your output data to the console
34
- --output <savepath>: this will save your output data to the given filepath (do not provide file extension)
35
- Note that for the '--output' option you also need to define the output type in your manifest file. See https://if.greensoftware.foundation/major-concepts/manifest-file#initialize`,
36
- SOURCE_IS_NOT_YAML: 'Given source file is not in yaml format.',
37
- TARGET_IS_NOT_YAML: 'Given target file is not in yaml format.',
38
- INVALID_TARGET: 'Target is invalid.',
39
- INVALID_SOURCE: 'Source is invalid.',
40
- UNSUPPORTED_ERROR: (errorName) => `UnsupportedErrorClass: plugin threw error class: ${errorName} that is not recognized by Impact Framework`,
41
- /** Plugin messages */
42
- MISSING_GLOBAL_CONFIG: 'Global config is not provided.',
43
- MISSING_INPUT_DATA: (param) => `${param} is missing from the input array, or has nullish value.`,
44
- MANIFEST_NOT_FOUND: 'Manifest file not found.',
45
- INITIALIZING_PACKAGE_JSON: 'Initializing package.json.',
46
- INSTALLING_NPM_PACKAGES: 'Installing npm packages...',
47
- NOT_NUMERIC_VALUE: (str) => `${str} is not numberic.`,
48
- MISSING_FUNCTIONAL_UNIT_CONFIG: '`functional-unit` should be provided in your global config',
49
- MISSING_FUNCTIONAL_UNIT_INPUT: '`functional-unit` value is missing from input data or it is not a positive integer',
50
- REGEX_MISMATCH: (input, match) => `\`${input}\` does not match the ${match} regex expression`,
51
- SCI_EMBODIED_ERROR: (unit) => `invalid number. please provide it as \`${unit}\` to input`,
52
- MISSING_MIN_MAX: 'Config is missing min or max value',
53
- INVALID_MIN_MAX: (name) => `Min value should not be greater than or equal to max value of ${name}`,
54
- FILE_FETCH_FAILED: (filepath, message) => `Failed fetching the file: ${filepath}.
55
- ${message}`,
56
- FILE_READ_FAILED: (filepath, error) => `Failed reading the file: ${filepath}.
57
- ${error}`,
58
- MISSING_CSV_COLUMN: (columnName) => `There is no column with the name: ${columnName}.`,
59
- NO_QUERY_DATA: 'One or more of the given query parameters are not found in the target CSV file column headers.',
60
- INVALID_DATE_TYPE: (date) => `Unexpected date datatype: ${typeof date}: ${date}`,
61
- INVALID_OBSERVATION_OVERLAP: 'Observation timestamps overlap, please check inputs.',
62
- SCI_MISSING_FN_UNIT: (functionalUnit) => `'carbon' and ${functionalUnit} should be present in your input data.`,
63
- /** Exhaust messages */
64
- OUTPUT_REQUIRED: 'Output path is required, please make sure output is configured properly.',
65
- CSV_EXPORT: 'CSV export criteria is not found in output path. Please append it after --output <path>#.',
66
- WRITE_CSV_ERROR: (outputPath, error) => `Failed to write CSV file to ${outputPath}: ${error}`,
67
- INVALID_NAME: '`name` global config parameter is empty or contains all spaces',
68
- START_LOWER_END: '`start-time` should be lower than `end-time`',
69
- TIMESTAMP_REQUIRED: (index) => `required in input[${index}]`,
70
- INVALID_DATETIME: (index) => `invalid datetime in input[${index}]`,
71
- X_Y_EQUAL: 'The length of `x` and `y` should be equal',
72
- ARRAY_LENGTH_NON_EMPTY: 'the length of the input arrays must be greater than 1',
73
- WITHIN_THE_RANGE: 'The target x value must be within the range of the given x values',
74
- /** Debugging logs */
75
- STARTING_IF: 'Starting IF',
76
- EXITING_IF: 'Exiting IF',
77
- LOADING_MANIFEST: 'Loading manifest',
78
- VALIDATING_MANIFEST: 'Validating manifest',
79
- CAPTURING_RUNTIME_ENVIRONMENT_DATA: 'Capturing runtime environment data',
80
- SYNCING_PARAMETERS: 'Syncing parameters',
81
- CHECKING_AGGREGATION_METHOD: (unitName) => `Checking aggregation method for ${unitName}`,
82
- INITIALIZING_PLUGINS: 'Initializing plugins',
83
- INITIALIZING_PLUGIN: (pluginName) => `Initializing ${pluginName}`,
84
- LOADING_PLUGIN_FROM_PATH: (pluginName, path) => `Loading ${pluginName} from ${path}`,
85
- COMPUTING_PIPELINE_FOR_NODE: (nodeName) => `Computing pipeline for \`${nodeName}\``,
86
- MERGING_DEFAULTS_WITH_INPUT_DATA: 'Merging defaults with input data',
87
- AGGREGATING_OUTPUTS: 'Aggregating outputs',
88
- AGGREGATING_NODE: (nodeName) => `Aggregating node ${nodeName}`,
89
- PREPARING_OUTPUT_DATA: 'Preparing output data',
90
- EXPORTING_TO_YAML_FILE: (savepath) => `Exporting to yaml file: ${savepath}`,
91
- EXPORTING_TO_CSV_FILE: (savepath) => `Exporting to csv file: ${savepath}`,
92
- EXPORTING_RAW_CSV_FILE: (savepath) => `Exporting raw csv file: ${savepath}`,
93
- CHECKING: 'Checking...',
94
- IF_CHECK_FLAGS_MISSING: 'Either the `--manifest` or `--directory` command should be provided with a path',
95
- DIRECTORY_NOT_FOUND: 'Directory not found.',
96
- DIRECTORY_YAML_FILES_NOT_FOUND: 'The directory does not contain any YAML/YML files.\n',
97
- IF_CHECK_EXECUTING: (filename) => `Executing \`${filename}\``,
98
- IF_CHECK_VERIFICATION_FAILURES: '---------\nif-check verification failures:\n',
99
- IF_CHECK_FAILED: (filename) => `✖ if-check could not verify ${filename}. The re-executed file does not match the original.\n`,
100
- IF_CHECK_VERIFIED: (filename) => `✔ if-check successfully verified ${filename}\n`,
101
- IF_CHECK_SUMMARY_ERROR_MESSAGE: (filename, message) => `Executing \`${filename}\`\n✖ ${message}`,
102
- IF_CHECK_SUMMARY_LOG: (passedCount, totalCount) => `---------\nCheck summary:\n${passedCount} of ${totalCount} files are passed.\n`,
103
- ZERO_DIVISION: (moduleName, index) => `-- SKIPPING -- DivisionByZero: you are attempting to divide by zero in ${moduleName} plugin : inputs[${index}]\n`,
104
- };
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLE9BQU8sR0FBRztJQUNyQixtQkFBbUIsRUFBRSxzQkFBc0I7SUFDM0MsY0FBYyxFQUFFLDBDQUEwQztJQUMxRCxZQUFZLEVBQUUsd0NBQXdDO0lBQ3RELGtCQUFrQixFQUNoQixxRUFBcUU7SUFDdkUsZ0JBQWdCLEVBQ2QscUpBQXFKO0lBQ3ZKLGtCQUFrQixFQUFFOzs7OzJOQUlxTTtJQUN6TixpQkFBaUIsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQ2xDO3VCQUNtQixJQUFJLHNMQUFzTDtJQUMvTSxtQkFBbUIsRUFBRSxDQUFDLElBQVksRUFBRSxLQUFXLEVBQUUsRUFBRSxDQUNqRCxxQkFBcUIsSUFBSSwrQkFBK0IsS0FBSyxJQUFJLEVBQUU7Q0FDdEU7SUFDQywwQkFBMEIsRUFBRSxvQ0FBb0M7SUFDaEUsc0JBQXNCLEVBQ3BCLDZEQUE2RDtJQUMvRCxxQkFBcUIsRUFBRSxzQkFBc0I7SUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDeEMsdUJBQXVCLFdBQVcsRUFBRTtJQUN0Qyx5QkFBeUIsRUFBRSxDQUFDLEtBQWMsRUFBRSxHQUFZLEVBQUUsRUFBRSxDQUMxRCx1QkFDRSxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUNyRCxFQUFFO0lBQ0osMEJBQTBCLEVBQUUsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUM3Qyx5Q0FBeUMsTUFBTSwwQkFBMEI7SUFDM0UsY0FBYyxFQUFFLENBQUMsTUFBYyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQ2hELHNCQUFzQixNQUFNLDJCQUEyQixLQUFLLElBQUk7SUFDbEUsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixJQUFJLEdBQUc7SUFDNUQsa0JBQWtCLEVBQUUsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FDL0MsZ0RBQWdELEtBQUssQ0FBQyxJQUFJLEdBQUc7SUFDL0Qsc0JBQXNCLEVBQUUsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FDN0MsMkJBQTJCLFVBQVUsR0FBRztJQUMxQyxhQUFhLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUM5QixzQkFBc0IsSUFBSSxtQ0FBbUM7SUFDL0QscUJBQXFCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUN0QywwQkFBMEIsSUFBSSxjQUFjLElBQUksc0NBQXNDO0lBQ3hGLFNBQVMsRUFBRTs7OzttTEFJc0s7SUFDakwsa0JBQWtCLEVBQUUsMENBQTBDO0lBQzlELGtCQUFrQixFQUFFLDBDQUEwQztJQUM5RCxjQUFjLEVBQUUsb0JBQW9CO0lBQ3BDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsaUJBQWlCLEVBQUUsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FDdkMsb0RBQW9ELFNBQVMsNkNBQTZDO0lBQzVHLHNCQUFzQjtJQUN0QixxQkFBcUIsRUFBRSxnQ0FBZ0M7SUFDdkQsa0JBQWtCLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUNwQyxHQUFHLEtBQUsseURBQXlEO0lBQ25FLGtCQUFrQixFQUFFLDBCQUEwQjtJQUM5Qyx5QkFBeUIsRUFBRSw0QkFBNEI7SUFDdkQsdUJBQXVCLEVBQUUsNEJBQTRCO0lBQ3JELGlCQUFpQixFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsbUJBQW1CO0lBQzFELDhCQUE4QixFQUM1Qiw0REFBNEQ7SUFDOUQsNkJBQTZCLEVBQzNCLG9GQUFvRjtJQUN0RixjQUFjLEVBQUUsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FDNUMsS0FBSyxLQUFLLHlCQUF5QixLQUFLLG1CQUFtQjtJQUM3RCxrQkFBa0IsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQ25DLDBDQUEwQyxJQUFJLGFBQWE7SUFDN0QsZUFBZSxFQUFFLG9DQUFvQztJQUNyRCxlQUFlLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUNoQyxpRUFBaUUsSUFBSSxFQUFFO0lBQ3pFLGlCQUFpQixFQUFFLENBQ2pCLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixFQUFFLENBQUMsNkJBQTZCLFFBQVE7RUFDMUMsT0FBTyxFQUFFO0lBQ1QsZ0JBQWdCLEVBQUUsQ0FDaEIsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLEVBQUUsQ0FBQyw0QkFBNEIsUUFBUTtFQUN6QyxLQUFLLEVBQUU7SUFDUCxrQkFBa0IsRUFBRSxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUN6QyxxQ0FBcUMsVUFBVSxHQUFHO0lBQ3BELGFBQWEsRUFDWCxnR0FBZ0c7SUFDbEcsaUJBQWlCLEVBQUUsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUMvQiw2QkFBNkIsT0FBTyxJQUFJLEtBQUssSUFBSSxFQUFFO0lBQ3JELDJCQUEyQixFQUN6QixzREFBc0Q7SUFDeEQsbUJBQW1CLEVBQUUsQ0FBQyxjQUFzQixFQUFFLEVBQUUsQ0FDOUMsZ0JBQWdCLGNBQWMsd0NBQXdDO0lBQ3hFLHVCQUF1QjtJQUN2QixlQUFlLEVBQ2IsMEVBQTBFO0lBQzVFLFVBQVUsRUFDUiwyRkFBMkY7SUFDN0YsZUFBZSxFQUFFLENBQUMsVUFBa0IsRUFBRSxLQUFVLEVBQUUsRUFBRSxDQUNsRCwrQkFBK0IsVUFBVSxLQUFLLEtBQUssRUFBRTtJQUN2RCxZQUFZLEVBQ1YsZ0VBQWdFO0lBQ2xFLGVBQWUsRUFBRSw4Q0FBOEM7SUFDL0Qsa0JBQWtCLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixLQUFLLEdBQUc7SUFDcEUsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLDZCQUE2QixLQUFLLEdBQUc7SUFDMUUsU0FBUyxFQUFFLDJDQUEyQztJQUN0RCxzQkFBc0IsRUFDcEIsdURBQXVEO0lBQ3pELGdCQUFnQixFQUNkLG1FQUFtRTtJQUNyRSxxQkFBcUI7SUFDckIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxrQ0FBa0MsRUFBRSxvQ0FBb0M7SUFDeEUsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLDJCQUEyQixFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQ2hELG1DQUFtQyxRQUFRLEVBQUU7SUFDL0Msb0JBQW9CLEVBQUUsc0JBQXNCO0lBQzVDLG1CQUFtQixFQUFFLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLFVBQVUsRUFBRTtJQUN6RSx3QkFBd0IsRUFBRSxDQUFDLFVBQWtCLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FDN0QsV0FBVyxVQUFVLFNBQVMsSUFBSSxFQUFFO0lBQ3RDLDJCQUEyQixFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQ2hELDRCQUE0QixRQUFRLElBQUk7SUFDMUMsZ0NBQWdDLEVBQUUsa0NBQWtDO0lBQ3BFLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixRQUFRLEVBQUU7SUFDdEUscUJBQXFCLEVBQUUsdUJBQXVCO0lBQzlDLHNCQUFzQixFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQzNDLDJCQUEyQixRQUFRLEVBQUU7SUFDdkMscUJBQXFCLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FDMUMsMEJBQTBCLFFBQVEsRUFBRTtJQUN0QyxzQkFBc0IsRUFBRSxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUMzQywyQkFBMkIsUUFBUSxFQUFFO0lBQ3ZDLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLHNCQUFzQixFQUNwQixpRkFBaUY7SUFDbkYsbUJBQW1CLEVBQUUsc0JBQXNCO0lBQzNDLDhCQUE4QixFQUM1QixzREFBc0Q7SUFDeEQsa0JBQWtCLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxlQUFlLFFBQVEsSUFBSTtJQUNyRSw4QkFBOEIsRUFDNUIsOENBQThDO0lBQ2hELGVBQWUsRUFBRSxDQUFDLFFBQWdCLEVBQUUsRUFBRSxDQUNwQywrQkFBK0IsUUFBUSx1REFBdUQ7SUFDaEcsaUJBQWlCLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FDdEMsb0NBQW9DLFFBQVEsSUFBSTtJQUNsRCw4QkFBOEIsRUFBRSxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FDcEUsZUFBZSxRQUFRLFNBQVMsT0FBTyxFQUFFO0lBQzNDLG9CQUFvQixFQUFFLENBQUMsV0FBbUIsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FDaEUsOEJBQThCLFdBQVcsT0FBTyxVQUFVLHNCQUFzQjtJQUNsRixhQUFhLEVBQUUsQ0FBQyxVQUFrQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQ25ELDBFQUEwRSxVQUFVLG9CQUFvQixLQUFLLEtBQUs7Q0FDckgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWFuaWZlc3RQYXJhbWV0ZXJ9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcblxuZXhwb3J0IGNvbnN0IFNUUklOR1MgPSB7XG4gIE1BTklGRVNUX0lTX01JU1NJTkc6ICdNYW5pZmVzdCBpcyBtaXNzaW5nLicsXG4gIE1JU1NJTkdfTUVUSE9EOiBcIkluaXRhbGl6YXRpb24gcGFyYW0gJ21ldGhvZCcgaXMgbWlzc2luZy5cIixcbiAgTUlTU0lOR19QQVRIOiBcIkluaXRhbGl6YXRpb24gcGFyYW0gJ3BhdGgnIGlzIG1pc3NpbmcuXCIsXG4gIFVOU1VQUE9SVEVEX1BMVUdJTjpcbiAgICBcIlBsdWdpbiBpbnRlcmZhY2UgZG9lc24ndCBpbXBsZW1lbnQgJ2V4ZWN1dGUnIG9yICdtZXRhZGF0YScgbWV0aG9kcy5cIixcbiAgT1ZFUlJJREVfV0FSTklORzpcbiAgICAnXFxuKipXQVJOSU5HKio6IFlvdSBhcmUgb3ZlcnJpZGluZyB0aGUgSUYgZGVmYXVsdCBwYXJhbWV0ZXJzIGZpbGUuIFBsZWFzZSBiZSBleHRyZW1lbHkgY2FyZWZ1bCBvZiB1bmludGVuZGVkIHNpZGUtZWZmZWN0cyBpbiB5b3VyIHBsdWdpbiBwaXBlbGluZSFcXG4nLFxuICBESVNDTEFJTUVSX01FU1NBR0U6IGBcbkluY3ViYXRpb24gUHJvamVjdFxuXG5UaGlzIHByb2plY3QgaXMgYW4gaW5jdWJhdGlvbiBwcm9qZWN0IGJlaW5nIHJ1biBpbnNpZGUgdGhlIEdyZWVuIFNvZnR3YXJlIEZvdW5kYXRpb247IGFzIHN1Y2gsIHdlIERPTuKAmVQgcmVjb21tZW5kIHVzaW5nIGl0IGluIGFueSBjcml0aWNhbCB1c2UgY2FzZS4gXG5JbmN1YmF0aW9uIHByb2plY3RzIGFyZSBleHBlcmltZW50YWwsIG9mZmVyIG5vIHN1cHBvcnQgZ3VhcmFudGVlLCBoYXZlIG1pbmltYWwgZ292ZXJuYW5jZSBhbmQgcHJvY2VzcywgYW5kIG1heSBiZSByZXRpcmVkIGF0IGFueSBtb21lbnQuIFRoaXMgcHJvamVjdCBtYXkgb25lIGRheSBncmFkdWF0ZSwgaW4gd2hpY2ggY2FzZSB0aGlzIGRpc2NsYWltZXIgd2lsbCBiZSByZW1vdmVkLmAsXG4gIE5PVF9OQVRJVkVfUExVR0lOOiAocGF0aDogc3RyaW5nKSA9PlxuICAgIGBcbllvdSBhcmUgdXNpbmcgcGx1Z2luICR7cGF0aH0gd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIEltcGFjdCBGcmFtZXdvcmsgc3RhbmRhcmQgbGlicmFyeS4gWW91IHNob3VsZCBkbyB5b3VyIG93biByZXNlYXJjaCB0byBlbnN1cmUgdGhlIHBsdWdpbnMgYXJlIHVwIHRvIGRhdGUgYW5kIGFjY3VyYXRlLiBUaGV5IG1heSBub3QgYmUgYWN0aXZlbHkgbWFpbnRhaW5lZC5gLFxuICBJTlZBTElEX01PRFVMRV9QQVRIOiAocGF0aDogc3RyaW5nLCBlcnJvcj86IGFueSkgPT5cbiAgICBgUHJvdmlkZWQgbW9kdWxlIFxcYCR7cGF0aH1cXGAgaXMgaW52YWxpZCBvciBub3QgZm91bmQuICR7ZXJyb3IgPz8gJyd9XG5gLFxuICBJTlZBTElEX1RJTUVfTk9STUFMSVpBVElPTjogJ1N0YXJ0IHRpbWUgb3IgZW5kIHRpbWUgaXMgbWlzc2luZy4nLFxuICBVTkVYUEVDVEVEX1RJTUVfQ09ORklHOlxuICAgICdVbmV4cGVjdGVkIG5vZGUtbGV2ZWwgY29uZmlnIHByb3ZpZGVkIGZvciB0aW1lLXN5bmMgcGx1Z2luLicsXG4gIElOVkFMSURfVElNRV9JTlRFUlZBTDogJ0ludGVydmFsIGlzIG1pc3NpbmcuJyxcbiAgQVZPSURJTkdfUEFERElORzogKGRlc2NyaXB0aW9uOiBzdHJpbmcpID0+XG4gICAgYEF2b2lkaW5nIHBhZGRpbmcgYXQgJHtkZXNjcmlwdGlvbn1gLFxuICBBVk9JRElOR19QQURESU5HX0JZX0VER0VTOiAoc3RhcnQ6IGJvb2xlYW4sIGVuZDogYm9vbGVhbikgPT5cbiAgICBgQXZvaWRpbmcgcGFkZGluZyBhdCAke1xuICAgICAgc3RhcnQgJiYgZW5kID8gJ3N0YXJ0IGFuZCBlbmQnIDogc3RhcnQgPyAnc3RhcnQnIDogJ2VuZCdcbiAgICB9YCxcbiAgSU5WQUxJRF9BR0dSRUdBVElPTl9NRVRIT0Q6IChtZXRyaWM6IHN0cmluZykgPT5cbiAgICBgQWdncmVnYXRpb24gaXMgbm90IHBvc3NpYmxlIGZvciBnaXZlbiAke21ldHJpY30gc2luY2UgbWV0aG9kIGlzICdub25lJy5gLFxuICBNRVRSSUNfTUlTU0lORzogKG1ldHJpYzogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PlxuICAgIGBBZ2dyZWdhdGlvbiBtZXRyaWMgJHttZXRyaWN9IGlzIG5vdCBmb3VuZCBpbiBpbnB1dHNbJHtpbmRleH1dLmAsXG4gIElOVkFMSURfR1JPVVBfQlk6ICh0eXBlOiBzdHJpbmcpID0+IGBJbnZhbGlkIGdyb3VwICR7dHlwZX0uYCxcbiAgUkVKRUNUSU5HX09WRVJSSURFOiAocGFyYW06IE1hbmlmZXN0UGFyYW1ldGVyKSA9PlxuICAgIGBSZWplY3Rpbmcgb3ZlcnJpZGluZyBvZiBjYW5vbmljYWwgcGFyYW1ldGVyOiAke3BhcmFtLm5hbWV9LmAsXG4gIElOVkFMSURfRVhIQVVTVF9QTFVHSU46IChwbHVnaW5OYW1lOiBzdHJpbmcpID0+XG4gICAgYEludmFsaWQgZXhoYXVzdCBwbHVnaW46ICR7cGx1Z2luTmFtZX0uYCxcbiAgVU5LTk9XTl9QQVJBTTogKG5hbWU6IHN0cmluZykgPT5cbiAgICBgVW5rbm93biBwYXJhbWV0ZXI6ICR7bmFtZX0uIFVzaW5nICdzdW0nIGFnZ3JlZ2F0aW9uIG1ldGhvZC5gLFxuICBOT1RfSU5JVEFMSVpFRF9QTFVHSU46IChuYW1lOiBzdHJpbmcpID0+XG4gICAgYE5vdCBpbml0YWxpemVkIHBsdWdpbjogJHtuYW1lfS4gQ2hlY2sgaWYgJHtuYW1lfSBpcyBpbiAnbWFuaWZlc3QuaW5pdGFsaXplLnBsdWdpbnMnLmAsXG4gIE5PX09VVFBVVDogYFxuWW91IGhhdmUgbm90IHNlbGVjdGVkIGFuIG91dHB1dCBtZXRob2QuIFRvIHNlZSB5b3VyIG91dHB1dCBkYXRhLCB5b3UgY2FuIGNob29zZSBmcm9tOlxuLS1zdGRvdXQ6IHRoaXMgd2lsbCBwcmludCB5b3VyIG91dHB1dCBkYXRhIHRvIHRoZSBjb25zb2xlXG4tLW91dHB1dCA8c2F2ZXBhdGg+OiB0aGlzIHdpbGwgc2F2ZSB5b3VyIG91dHB1dCBkYXRhIHRvIHRoZSBnaXZlbiBmaWxlcGF0aCAoZG8gbm90IHByb3ZpZGUgZmlsZSBleHRlbnNpb24pXG5Ob3RlIHRoYXQgZm9yIHRoZSAnLS1vdXRwdXQnIG9wdGlvbiB5b3UgYWxzbyBuZWVkIHRvIGRlZmluZSB0aGUgb3V0cHV0IHR5cGUgaW4geW91ciBtYW5pZmVzdCBmaWxlLiBTZWUgaHR0cHM6Ly9pZi5ncmVlbnNvZnR3YXJlLmZvdW5kYXRpb24vbWFqb3ItY29uY2VwdHMvbWFuaWZlc3QtZmlsZSNpbml0aWFsaXplYCxcbiAgU09VUkNFX0lTX05PVF9ZQU1MOiAnR2l2ZW4gc291cmNlIGZpbGUgaXMgbm90IGluIHlhbWwgZm9ybWF0LicsXG4gIFRBUkdFVF9JU19OT1RfWUFNTDogJ0dpdmVuIHRhcmdldCBmaWxlIGlzIG5vdCBpbiB5YW1sIGZvcm1hdC4nLFxuICBJTlZBTElEX1RBUkdFVDogJ1RhcmdldCBpcyBpbnZhbGlkLicsXG4gIElOVkFMSURfU09VUkNFOiAnU291cmNlIGlzIGludmFsaWQuJyxcbiAgVU5TVVBQT1JURURfRVJST1I6IChlcnJvck5hbWU6IHN0cmluZykgPT5cbiAgICBgVW5zdXBwb3J0ZWRFcnJvckNsYXNzOiBwbHVnaW4gdGhyZXcgZXJyb3IgY2xhc3M6ICR7ZXJyb3JOYW1lfSB0aGF0IGlzIG5vdCByZWNvZ25pemVkIGJ5IEltcGFjdCBGcmFtZXdvcmtgLFxuICAvKiogUGx1Z2luIG1lc3NhZ2VzICovXG4gIE1JU1NJTkdfR0xPQkFMX0NPTkZJRzogJ0dsb2JhbCBjb25maWcgaXMgbm90IHByb3ZpZGVkLicsXG4gIE1JU1NJTkdfSU5QVVRfREFUQTogKHBhcmFtOiBzdHJpbmcpID0+XG4gICAgYCR7cGFyYW19IGlzIG1pc3NpbmcgZnJvbSB0aGUgaW5wdXQgYXJyYXksIG9yIGhhcyBudWxsaXNoIHZhbHVlLmAsXG4gIE1BTklGRVNUX05PVF9GT1VORDogJ01hbmlmZXN0IGZpbGUgbm90IGZvdW5kLicsXG4gIElOSVRJQUxJWklOR19QQUNLQUdFX0pTT046ICdJbml0aWFsaXppbmcgcGFja2FnZS5qc29uLicsXG4gIElOU1RBTExJTkdfTlBNX1BBQ0tBR0VTOiAnSW5zdGFsbGluZyBucG0gcGFja2FnZXMuLi4nLFxuICBOT1RfTlVNRVJJQ19WQUxVRTogKHN0cjogYW55KSA9PiBgJHtzdHJ9IGlzIG5vdCBudW1iZXJpYy5gLFxuICBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9DT05GSUc6XG4gICAgJ2BmdW5jdGlvbmFsLXVuaXRgIHNob3VsZCBiZSBwcm92aWRlZCBpbiB5b3VyIGdsb2JhbCBjb25maWcnLFxuICBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9JTlBVVDpcbiAgICAnYGZ1bmN0aW9uYWwtdW5pdGAgdmFsdWUgaXMgbWlzc2luZyBmcm9tIGlucHV0IGRhdGEgb3IgaXQgaXMgbm90IGEgcG9zaXRpdmUgaW50ZWdlcicsXG4gIFJFR0VYX01JU01BVENIOiAoaW5wdXQ6IGFueSwgbWF0Y2g6IHN0cmluZykgPT5cbiAgICBgXFxgJHtpbnB1dH1cXGAgZG9lcyBub3QgbWF0Y2ggdGhlICR7bWF0Y2h9IHJlZ2V4IGV4cHJlc3Npb25gLFxuICBTQ0lfRU1CT0RJRURfRVJST1I6ICh1bml0OiBzdHJpbmcpID0+XG4gICAgYGludmFsaWQgbnVtYmVyLiBwbGVhc2UgcHJvdmlkZSBpdCBhcyBcXGAke3VuaXR9XFxgIHRvIGlucHV0YCxcbiAgTUlTU0lOR19NSU5fTUFYOiAnQ29uZmlnIGlzIG1pc3NpbmcgbWluIG9yIG1heCB2YWx1ZScsXG4gIElOVkFMSURfTUlOX01BWDogKG5hbWU6IHN0cmluZykgPT5cbiAgICBgTWluIHZhbHVlIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG1heCB2YWx1ZSBvZiAke25hbWV9YCxcbiAgRklMRV9GRVRDSF9GQUlMRUQ6IChcbiAgICBmaWxlcGF0aDogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZ1xuICApID0+IGBGYWlsZWQgZmV0Y2hpbmcgdGhlIGZpbGU6ICR7ZmlsZXBhdGh9LlxuJHttZXNzYWdlfWAsXG4gIEZJTEVfUkVBRF9GQUlMRUQ6IChcbiAgICBmaWxlcGF0aDogc3RyaW5nLFxuICAgIGVycm9yOiBzdHJpbmdcbiAgKSA9PiBgRmFpbGVkIHJlYWRpbmcgdGhlIGZpbGU6ICR7ZmlsZXBhdGh9LiBcbiR7ZXJyb3J9YCxcbiAgTUlTU0lOR19DU1ZfQ09MVU1OOiAoY29sdW1uTmFtZTogc3RyaW5nKSA9PlxuICAgIGBUaGVyZSBpcyBubyBjb2x1bW4gd2l0aCB0aGUgbmFtZTogJHtjb2x1bW5OYW1lfS5gLFxuICBOT19RVUVSWV9EQVRBOlxuICAgICdPbmUgb3IgbW9yZSBvZiB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycyBhcmUgbm90IGZvdW5kIGluIHRoZSB0YXJnZXQgQ1NWIGZpbGUgY29sdW1uIGhlYWRlcnMuJyxcbiAgSU5WQUxJRF9EQVRFX1RZUEU6IChkYXRlOiBhbnkpID0+XG4gICAgYFVuZXhwZWN0ZWQgZGF0ZSBkYXRhdHlwZTogJHt0eXBlb2YgZGF0ZX06ICR7ZGF0ZX1gLFxuICBJTlZBTElEX09CU0VSVkFUSU9OX09WRVJMQVA6XG4gICAgJ09ic2VydmF0aW9uIHRpbWVzdGFtcHMgb3ZlcmxhcCwgcGxlYXNlIGNoZWNrIGlucHV0cy4nLFxuICBTQ0lfTUlTU0lOR19GTl9VTklUOiAoZnVuY3Rpb25hbFVuaXQ6IHN0cmluZykgPT5cbiAgICBgJ2NhcmJvbicgYW5kICR7ZnVuY3Rpb25hbFVuaXR9IHNob3VsZCBiZSBwcmVzZW50IGluIHlvdXIgaW5wdXQgZGF0YS5gLFxuICAvKiogRXhoYXVzdCBtZXNzYWdlcyAqL1xuICBPVVRQVVRfUkVRVUlSRUQ6XG4gICAgJ091dHB1dCBwYXRoIGlzIHJlcXVpcmVkLCBwbGVhc2UgbWFrZSBzdXJlIG91dHB1dCBpcyBjb25maWd1cmVkIHByb3Blcmx5LicsXG4gIENTVl9FWFBPUlQ6XG4gICAgJ0NTViBleHBvcnQgY3JpdGVyaWEgaXMgbm90IGZvdW5kIGluIG91dHB1dCBwYXRoLiBQbGVhc2UgYXBwZW5kIGl0IGFmdGVyIC0tb3V0cHV0IDxwYXRoPiMuJyxcbiAgV1JJVEVfQ1NWX0VSUk9SOiAob3V0cHV0UGF0aDogc3RyaW5nLCBlcnJvcjogYW55KSA9PlxuICAgIGBGYWlsZWQgdG8gd3JpdGUgQ1NWIGZpbGUgdG8gJHtvdXRwdXRQYXRofTogJHtlcnJvcn1gLFxuICBJTlZBTElEX05BTUU6XG4gICAgJ2BuYW1lYCBnbG9iYWwgY29uZmlnIHBhcmFtZXRlciBpcyBlbXB0eSBvciBjb250YWlucyBhbGwgc3BhY2VzJyxcbiAgU1RBUlRfTE9XRVJfRU5EOiAnYHN0YXJ0LXRpbWVgIHNob3VsZCBiZSBsb3dlciB0aGFuIGBlbmQtdGltZWAnLFxuICBUSU1FU1RBTVBfUkVRVUlSRUQ6IChpbmRleDogbnVtYmVyKSA9PiBgcmVxdWlyZWQgaW4gaW5wdXRbJHtpbmRleH1dYCxcbiAgSU5WQUxJRF9EQVRFVElNRTogKGluZGV4OiBudW1iZXIpID0+IGBpbnZhbGlkIGRhdGV0aW1lIGluIGlucHV0WyR7aW5kZXh9XWAsXG4gIFhfWV9FUVVBTDogJ1RoZSBsZW5ndGggb2YgYHhgIGFuZCBgeWAgc2hvdWxkIGJlIGVxdWFsJyxcbiAgQVJSQVlfTEVOR1RIX05PTl9FTVBUWTpcbiAgICAndGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgYXJyYXlzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEnLFxuICBXSVRISU5fVEhFX1JBTkdFOlxuICAgICdUaGUgdGFyZ2V0IHggdmFsdWUgbXVzdCBiZSB3aXRoaW4gdGhlIHJhbmdlIG9mIHRoZSBnaXZlbiB4IHZhbHVlcycsXG4gIC8qKiBEZWJ1Z2dpbmcgbG9ncyAqL1xuICBTVEFSVElOR19JRjogJ1N0YXJ0aW5nIElGJyxcbiAgRVhJVElOR19JRjogJ0V4aXRpbmcgSUYnLFxuICBMT0FESU5HX01BTklGRVNUOiAnTG9hZGluZyBtYW5pZmVzdCcsXG4gIFZBTElEQVRJTkdfTUFOSUZFU1Q6ICdWYWxpZGF0aW5nIG1hbmlmZXN0JyxcbiAgQ0FQVFVSSU5HX1JVTlRJTUVfRU5WSVJPTk1FTlRfREFUQTogJ0NhcHR1cmluZyBydW50aW1lIGVudmlyb25tZW50IGRhdGEnLFxuICBTWU5DSU5HX1BBUkFNRVRFUlM6ICdTeW5jaW5nIHBhcmFtZXRlcnMnLFxuICBDSEVDS0lOR19BR0dSRUdBVElPTl9NRVRIT0Q6ICh1bml0TmFtZTogc3RyaW5nKSA9PlxuICAgIGBDaGVja2luZyBhZ2dyZWdhdGlvbiBtZXRob2QgZm9yICR7dW5pdE5hbWV9YCxcbiAgSU5JVElBTElaSU5HX1BMVUdJTlM6ICdJbml0aWFsaXppbmcgcGx1Z2lucycsXG4gIElOSVRJQUxJWklOR19QTFVHSU46IChwbHVnaW5OYW1lOiBzdHJpbmcpID0+IGBJbml0aWFsaXppbmcgJHtwbHVnaW5OYW1lfWAsXG4gIExPQURJTkdfUExVR0lOX0ZST01fUEFUSDogKHBsdWdpbk5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKSA9PlxuICAgIGBMb2FkaW5nICR7cGx1Z2luTmFtZX0gZnJvbSAke3BhdGh9YCxcbiAgQ09NUFVUSU5HX1BJUEVMSU5FX0ZPUl9OT0RFOiAobm9kZU5hbWU6IHN0cmluZykgPT5cbiAgICBgQ29tcHV0aW5nIHBpcGVsaW5lIGZvciBcXGAke25vZGVOYW1lfVxcYGAsXG4gIE1FUkdJTkdfREVGQVVMVFNfV0lUSF9JTlBVVF9EQVRBOiAnTWVyZ2luZyBkZWZhdWx0cyB3aXRoIGlucHV0IGRhdGEnLFxuICBBR0dSRUdBVElOR19PVVRQVVRTOiAnQWdncmVnYXRpbmcgb3V0cHV0cycsXG4gIEFHR1JFR0FUSU5HX05PREU6IChub2RlTmFtZTogc3RyaW5nKSA9PiBgQWdncmVnYXRpbmcgbm9kZSAke25vZGVOYW1lfWAsXG4gIFBSRVBBUklOR19PVVRQVVRfREFUQTogJ1ByZXBhcmluZyBvdXRwdXQgZGF0YScsXG4gIEVYUE9SVElOR19UT19ZQU1MX0ZJTEU6IChzYXZlcGF0aDogc3RyaW5nKSA9PlxuICAgIGBFeHBvcnRpbmcgdG8geWFtbCBmaWxlOiAke3NhdmVwYXRofWAsXG4gIEVYUE9SVElOR19UT19DU1ZfRklMRTogKHNhdmVwYXRoOiBzdHJpbmcpID0+XG4gICAgYEV4cG9ydGluZyB0byBjc3YgZmlsZTogJHtzYXZlcGF0aH1gLFxuICBFWFBPUlRJTkdfUkFXX0NTVl9GSUxFOiAoc2F2ZXBhdGg6IHN0cmluZykgPT5cbiAgICBgRXhwb3J0aW5nIHJhdyBjc3YgZmlsZTogJHtzYXZlcGF0aH1gLFxuICBDSEVDS0lORzogJ0NoZWNraW5nLi4uJyxcbiAgSUZfQ0hFQ0tfRkxBR1NfTUlTU0lORzpcbiAgICAnRWl0aGVyIHRoZSBgLS1tYW5pZmVzdGAgb3IgYC0tZGlyZWN0b3J5YCBjb21tYW5kIHNob3VsZCBiZSBwcm92aWRlZCB3aXRoIGEgcGF0aCcsXG4gIERJUkVDVE9SWV9OT1RfRk9VTkQ6ICdEaXJlY3Rvcnkgbm90IGZvdW5kLicsXG4gIERJUkVDVE9SWV9ZQU1MX0ZJTEVTX05PVF9GT1VORDpcbiAgICAnVGhlIGRpcmVjdG9yeSBkb2VzIG5vdCBjb250YWluIGFueSBZQU1ML1lNTCBmaWxlcy5cXG4nLFxuICBJRl9DSEVDS19FWEVDVVRJTkc6IChmaWxlbmFtZTogc3RyaW5nKSA9PiBgRXhlY3V0aW5nIFxcYCR7ZmlsZW5hbWV9XFxgYCxcbiAgSUZfQ0hFQ0tfVkVSSUZJQ0FUSU9OX0ZBSUxVUkVTOlxuICAgICctLS0tLS0tLS1cXG5pZi1jaGVjayB2ZXJpZmljYXRpb24gZmFpbHVyZXM6XFxuJyxcbiAgSUZfQ0hFQ0tfRkFJTEVEOiAoZmlsZW5hbWU6IHN0cmluZykgPT5cbiAgICBg4pyWIGlmLWNoZWNrIGNvdWxkIG5vdCB2ZXJpZnkgJHtmaWxlbmFtZX0uIFRoZSByZS1leGVjdXRlZCBmaWxlIGRvZXMgbm90IG1hdGNoIHRoZSBvcmlnaW5hbC5cXG5gLFxuICBJRl9DSEVDS19WRVJJRklFRDogKGZpbGVuYW1lOiBzdHJpbmcpID0+XG4gICAgYOKclCBpZi1jaGVjayBzdWNjZXNzZnVsbHkgdmVyaWZpZWQgJHtmaWxlbmFtZX1cXG5gLFxuICBJRl9DSEVDS19TVU1NQVJZX0VSUk9SX01FU1NBR0U6IChmaWxlbmFtZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+XG4gICAgYEV4ZWN1dGluZyBcXGAke2ZpbGVuYW1lfVxcYFxcbuKcliAke21lc3NhZ2V9YCxcbiAgSUZfQ0hFQ0tfU1VNTUFSWV9MT0c6IChwYXNzZWRDb3VudDogbnVtYmVyLCB0b3RhbENvdW50OiBudW1iZXIpID0+XG4gICAgYC0tLS0tLS0tLVxcbkNoZWNrIHN1bW1hcnk6XFxuJHtwYXNzZWRDb3VudH0gb2YgJHt0b3RhbENvdW50fSBmaWxlcyBhcmUgcGFzc2VkLlxcbmAsXG4gIFpFUk9fRElWSVNJT046IChtb2R1bGVOYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+XG4gICAgYC0tIFNLSVBQSU5HIC0tIERpdmlzaW9uQnlaZXJvOiB5b3UgYXJlIGF0dGVtcHRpbmcgdG8gZGl2aWRlIGJ5IHplcm8gaW4gJHttb2R1bGVOYW1lfSBwbHVnaW4gOiBpbnB1dHNbJHtpbmRleH1dXFxuYCxcbn07XG4iXX0=
package/build/diff.js DELETED
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- /* eslint-disable no-process-exit */
5
- const load_1 = require("./lib/load");
6
- const compare_1 = require("./lib/compare");
7
- const args_1 = require("./util/args");
8
- const helpers_1 = require("./util/helpers");
9
- const validations_1 = require("./util/validations");
10
- const logger_1 = require("./util/logger");
11
- const debug_logger_1 = require("./util/debug-logger");
12
- const config_1 = require("./config");
13
- const { IF_DIFF } = config_1.CONFIG;
14
- const { SUCCESS_MESSAGE, FAILURE_MESSAGE } = IF_DIFF;
15
- const IfDiff = async () => {
16
- const pipedSourceManifest = await (0, helpers_1.parseManifestFromStdin)();
17
- const { sourcePath, targetPath } = (0, args_1.parseIfDiffArgs)();
18
- // Call this function with false parameter to prevent log debug messages.
19
- debug_logger_1.debugLogger.overrideConsoleMethods(false);
20
- const { rawSourceManifest, rawTargetManifest } = await (0, load_1.loadIfDiffFiles)({
21
- targetPath,
22
- sourcePath,
23
- pipedSourceManifest,
24
- });
25
- const [sourceManifest, targetManifest] = [
26
- rawSourceManifest,
27
- rawTargetManifest,
28
- ].map(validations_1.validateManifest);
29
- const result = (0, compare_1.compare)(sourceManifest, targetManifest);
30
- if (Object.keys(result).length) {
31
- (0, helpers_1.formatNotMatchingLog)({
32
- message: FAILURE_MESSAGE,
33
- ...result,
34
- });
35
- process.exit(1);
36
- }
37
- console.log(SUCCESS_MESSAGE);
38
- process.exit(0);
39
- };
40
- IfDiff().catch(error => {
41
- if (error instanceof Error) {
42
- logger_1.logger.error(error);
43
- process.exit(2);
44
- }
45
- });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9DQUFvQztBQUNwQyxxQ0FBMkM7QUFDM0MsMkNBQXNDO0FBRXRDLHNDQUE0QztBQUM1Qyw0Q0FBNEU7QUFDNUUsb0RBQW9EO0FBRXBELDBDQUFxQztBQUNyQyxzREFBZ0Q7QUFFaEQscUNBQWdDO0FBRWhDLE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDekIsTUFBTSxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsR0FBRyxPQUFPLENBQUM7QUFFbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDeEIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsZ0NBQXNCLEdBQUUsQ0FBQztJQUMzRCxNQUFNLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0lBRW5ELHlFQUF5RTtJQUN6RSwwQkFBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBQyxHQUFHLE1BQU0sSUFBQSxzQkFBZSxFQUFDO1FBQ25FLFVBQVU7UUFDVixVQUFVO1FBQ1YsbUJBQW1CO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLEdBQUc7UUFDdkMsaUJBQWlCO1FBQ2pCLGlCQUFpQjtLQUNsQixDQUFDLEdBQUcsQ0FBQyw4QkFBZ0IsQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUEsaUJBQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFdkQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUM5QixJQUFBLDhCQUFvQixFQUFDO1lBQ25CLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3JCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtRQUMxQixlQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IHtsb2FkSWZEaWZmRmlsZXN9IGZyb20gJy4vbGliL2xvYWQnO1xuaW1wb3J0IHtjb21wYXJlfSBmcm9tICcuL2xpYi9jb21wYXJlJztcblxuaW1wb3J0IHtwYXJzZUlmRGlmZkFyZ3N9IGZyb20gJy4vdXRpbC9hcmdzJztcbmltcG9ydCB7Zm9ybWF0Tm90TWF0Y2hpbmdMb2csIHBhcnNlTWFuaWZlc3RGcm9tU3RkaW59IGZyb20gJy4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7dmFsaWRhdGVNYW5pZmVzdH0gZnJvbSAnLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4vdXRpbC9sb2dnZXInO1xuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi91dGlsL2RlYnVnLWxvZ2dlcic7XG5cbmltcG9ydCB7Q09ORklHfSBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IHtJRl9ESUZGfSA9IENPTkZJRztcbmNvbnN0IHtTVUNDRVNTX01FU1NBR0UsIEZBSUxVUkVfTUVTU0FHRX0gPSBJRl9ESUZGO1xuXG5jb25zdCBJZkRpZmYgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBpcGVkU291cmNlTWFuaWZlc3QgPSBhd2FpdCBwYXJzZU1hbmlmZXN0RnJvbVN0ZGluKCk7XG4gIGNvbnN0IHtzb3VyY2VQYXRoLCB0YXJnZXRQYXRofSA9IHBhcnNlSWZEaWZmQXJncygpO1xuXG4gIC8vIENhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGZhbHNlIHBhcmFtZXRlciB0byBwcmV2ZW50IGxvZyBkZWJ1ZyBtZXNzYWdlcy5cbiAgZGVidWdMb2dnZXIub3ZlcnJpZGVDb25zb2xlTWV0aG9kcyhmYWxzZSk7XG5cbiAgY29uc3Qge3Jhd1NvdXJjZU1hbmlmZXN0LCByYXdUYXJnZXRNYW5pZmVzdH0gPSBhd2FpdCBsb2FkSWZEaWZmRmlsZXMoe1xuICAgIHRhcmdldFBhdGgsXG4gICAgc291cmNlUGF0aCxcbiAgICBwaXBlZFNvdXJjZU1hbmlmZXN0LFxuICB9KTtcbiAgY29uc3QgW3NvdXJjZU1hbmlmZXN0LCB0YXJnZXRNYW5pZmVzdF0gPSBbXG4gICAgcmF3U291cmNlTWFuaWZlc3QsXG4gICAgcmF3VGFyZ2V0TWFuaWZlc3QsXG4gIF0ubWFwKHZhbGlkYXRlTWFuaWZlc3QpO1xuICBjb25zdCByZXN1bHQgPSBjb21wYXJlKHNvdXJjZU1hbmlmZXN0LCB0YXJnZXRNYW5pZmVzdCk7XG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RoKSB7XG4gICAgZm9ybWF0Tm90TWF0Y2hpbmdMb2coe1xuICAgICAgbWVzc2FnZTogRkFJTFVSRV9NRVNTQUdFLFxuICAgICAgLi4ucmVzdWx0LFxuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgY29uc29sZS5sb2coU1VDQ0VTU19NRVNTQUdFKTtcbiAgcHJvY2Vzcy5leGl0KDApO1xufTtcblxuSWZEaWZmKCkuY2F0Y2goZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcHJvY2Vzcy5leGl0KDIpO1xuICB9XG59KTtcbiJdfQ==
package/build/env.js DELETED
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- /* eslint-disable no-process-exit */
5
- const args_1 = require("./util/args");
6
- const logger_1 = require("./util/logger");
7
- const config_1 = require("./config");
8
- const helpers_1 = require("./util/helpers");
9
- const { IF_ENV } = config_1.CONFIG;
10
- const { SUCCESS_MESSAGE } = IF_ENV;
11
- const IfEnv = async () => {
12
- const commandArgs = await (0, args_1.parseIfEnvArgs)();
13
- const options = {
14
- folderPath: process.env.CURRENT_DIR || process.cwd(),
15
- install: !!commandArgs.install,
16
- dependencies: {},
17
- cwd: !!commandArgs.cwd,
18
- };
19
- if (commandArgs && commandArgs.manifest) {
20
- const { folderPath, install, dependencies } = await (0, helpers_1.getOptionsFromArgs)(commandArgs);
21
- options.folderPath = commandArgs.cwd ? options.folderPath : folderPath;
22
- options.install = !!install;
23
- options.dependencies = { ...dependencies };
24
- }
25
- await (0, helpers_1.initializeAndInstallLibs)(options);
26
- if (!commandArgs || !commandArgs.manifest) {
27
- await (0, helpers_1.addTemplateManifest)(options.folderPath);
28
- }
29
- console.log(SUCCESS_MESSAGE);
30
- process.exit(0);
31
- };
32
- IfEnv().catch(error => {
33
- if (error instanceof Error) {
34
- logger_1.logger.error(error);
35
- process.exit(2);
36
- }
37
- });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvQ0FBb0M7QUFDcEMsc0NBQTJDO0FBQzNDLDBDQUFxQztBQUVyQyxxQ0FBZ0M7QUFHaEMsNENBSXdCO0FBRXhCLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDeEIsTUFBTSxFQUFDLGVBQWUsRUFBQyxHQUFHLE1BQU0sQ0FBQztBQUVqQyxNQUFNLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRTtJQUN2QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUEscUJBQWMsR0FBRSxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUF1QjtRQUNsQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNwRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPO1FBQzlCLFlBQVksRUFBRSxFQUFFO1FBQ2hCLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUc7S0FDdkIsQ0FBQztJQUVGLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7UUFDdkMsTUFBTSxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLEdBQ3ZDLE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN2RSxPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDNUIsT0FBTyxDQUFDLFlBQVksR0FBRyxFQUFDLEdBQUcsWUFBWSxFQUFDLENBQUM7S0FDMUM7SUFFRCxNQUFNLElBQUEsa0NBQXdCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7UUFDekMsTUFBTSxJQUFBLDZCQUFtQixFQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDcEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1FBQzFCLGVBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvY2Vzcy1leGl0ICovXG5pbXBvcnQge3BhcnNlSWZFbnZBcmdzfSBmcm9tICcuL3V0aWwvYXJncyc7XG5pbXBvcnQge2xvZ2dlcn0gZnJvbSAnLi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7Q09ORklHfSBmcm9tICcuL2NvbmZpZyc7XG5cbmltcG9ydCB7RW52aXJvbm1lbnRPcHRpb25zfSBmcm9tICcuL3R5cGVzL2lmLWVudic7XG5pbXBvcnQge1xuICBhZGRUZW1wbGF0ZU1hbmlmZXN0LFxuICBnZXRPcHRpb25zRnJvbUFyZ3MsXG4gIGluaXRpYWxpemVBbmRJbnN0YWxsTGlicyxcbn0gZnJvbSAnLi91dGlsL2hlbHBlcnMnO1xuXG5jb25zdCB7SUZfRU5WfSA9IENPTkZJRztcbmNvbnN0IHtTVUNDRVNTX01FU1NBR0V9ID0gSUZfRU5WO1xuXG5jb25zdCBJZkVudiA9IGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29tbWFuZEFyZ3MgPSBhd2FpdCBwYXJzZUlmRW52QXJncygpO1xuICBjb25zdCBvcHRpb25zOiBFbnZpcm9ubWVudE9wdGlvbnMgPSB7XG4gICAgZm9sZGVyUGF0aDogcHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICBpbnN0YWxsOiAhIWNvbW1hbmRBcmdzLmluc3RhbGwsXG4gICAgZGVwZW5kZW5jaWVzOiB7fSxcbiAgICBjd2Q6ICEhY29tbWFuZEFyZ3MuY3dkLFxuICB9O1xuXG4gIGlmIChjb21tYW5kQXJncyAmJiBjb21tYW5kQXJncy5tYW5pZmVzdCkge1xuICAgIGNvbnN0IHtmb2xkZXJQYXRoLCBpbnN0YWxsLCBkZXBlbmRlbmNpZXN9ID1cbiAgICAgIGF3YWl0IGdldE9wdGlvbnNGcm9tQXJncyhjb21tYW5kQXJncyk7XG4gICAgb3B0aW9ucy5mb2xkZXJQYXRoID0gY29tbWFuZEFyZ3MuY3dkID8gb3B0aW9ucy5mb2xkZXJQYXRoIDogZm9sZGVyUGF0aDtcbiAgICBvcHRpb25zLmluc3RhbGwgPSAhIWluc3RhbGw7XG4gICAgb3B0aW9ucy5kZXBlbmRlbmNpZXMgPSB7Li4uZGVwZW5kZW5jaWVzfTtcbiAgfVxuXG4gIGF3YWl0IGluaXRpYWxpemVBbmRJbnN0YWxsTGlicyhvcHRpb25zKTtcblxuICBpZiAoIWNvbW1hbmRBcmdzIHx8ICFjb21tYW5kQXJncy5tYW5pZmVzdCkge1xuICAgIGF3YWl0IGFkZFRlbXBsYXRlTWFuaWZlc3Qob3B0aW9ucy5mb2xkZXJQYXRoKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKFNVQ0NFU1NfTUVTU0FHRSk7XG4gIHByb2Nlc3MuZXhpdCgwKTtcbn07XG5cbklmRW52KCkuY2F0Y2goZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcHJvY2Vzcy5leGl0KDIpO1xuICB9XG59KTtcbiJdfQ==
package/build/index.js DELETED
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const aggregate_1 = require("./lib/aggregate");
5
- const compute_1 = require("./lib/compute");
6
- const environment_1 = require("./lib/environment");
7
- const exhaust_1 = require("./lib/exhaust");
8
- const initialize_1 = require("./lib/initialize");
9
- const load_1 = require("./lib/load");
10
- const parameterize_1 = require("./lib/parameterize");
11
- const debug_logger_1 = require("./util/debug-logger");
12
- const args_1 = require("./util/args");
13
- const helpers_1 = require("./util/helpers");
14
- const logger_1 = require("./util/logger");
15
- const validations_1 = require("./util/validations");
16
- const config_1 = require("./config");
17
- const { DISCLAIMER_MESSAGE, EXITING_IF, STARTING_IF } = config_1.STRINGS;
18
- const impactEngine = async () => {
19
- const options = (0, args_1.parseIEProcessArgs)();
20
- const { inputPath, paramPath, outputOptions, debug } = options;
21
- debug_logger_1.debugLogger.overrideConsoleMethods(!!debug);
22
- logger_1.logger.info(DISCLAIMER_MESSAGE);
23
- console.info(STARTING_IF);
24
- const { rawManifest, parameters } = await (0, load_1.load)(inputPath, paramPath);
25
- const envManifest = await (0, environment_1.injectEnvironment)(rawManifest);
26
- try {
27
- const { tree, ...context } = (0, validations_1.validateManifest)(envManifest);
28
- parameterize_1.parameterize.combine(context.params, parameters);
29
- const pluginStorage = await (0, initialize_1.initialize)(context.initialize.plugins);
30
- const computedTree = await (0, compute_1.compute)(tree, { context, pluginStorage });
31
- const aggregatedTree = (0, aggregate_1.aggregate)(computedTree, context.aggregation);
32
- await (0, exhaust_1.exhaust)(aggregatedTree, context, outputOptions);
33
- }
34
- catch (error) {
35
- if (error instanceof Error) {
36
- envManifest.execution.status = 'fail';
37
- envManifest.execution.error = error.toString();
38
- logger_1.logger.error(error);
39
- const { tree, ...context } = envManifest;
40
- if (error.name !== 'ExhaustError') {
41
- (0, exhaust_1.exhaust)(tree, context, outputOptions);
42
- }
43
- }
44
- }
45
- console.info(EXITING_IF);
46
- };
47
- impactEngine().catch(helpers_1.andHandle);
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQTBDO0FBQzFDLDJDQUFzQztBQUN0QyxtREFBb0Q7QUFDcEQsMkNBQXNDO0FBQ3RDLGlEQUE0QztBQUM1QyxxQ0FBZ0M7QUFDaEMscURBQWdEO0FBRWhELHNEQUFnRDtBQUNoRCxzQ0FBK0M7QUFDL0MsNENBQXlDO0FBQ3pDLDBDQUFxQztBQUNyQyxvREFBb0Q7QUFFcEQscUNBQWlDO0FBRWpDLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUU5RCxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFrQixHQUFFLENBQUM7SUFDckMsTUFBTSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUU3RCwwQkFBVyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU1QyxlQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQixNQUFNLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLE1BQU0sSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSwrQkFBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCxJQUFJO1FBQ0YsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7UUFDekQsMkJBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUEsdUJBQVUsRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLElBQUEscUJBQVMsRUFBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBQSxpQkFBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDdkQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixXQUFXLENBQUMsU0FBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDdkMsV0FBVyxDQUFDLFNBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hELGVBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLFdBQVcsQ0FBQztZQUV2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO2dCQUNqQyxJQUFBLGlCQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQzthQUN2QztTQUNGO0tBQ0Y7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge2FnZ3JlZ2F0ZX0gZnJvbSAnLi9saWIvYWdncmVnYXRlJztcbmltcG9ydCB7Y29tcHV0ZX0gZnJvbSAnLi9saWIvY29tcHV0ZSc7XG5pbXBvcnQge2luamVjdEVudmlyb25tZW50fSBmcm9tICcuL2xpYi9lbnZpcm9ubWVudCc7XG5pbXBvcnQge2V4aGF1c3R9IGZyb20gJy4vbGliL2V4aGF1c3QnO1xuaW1wb3J0IHtpbml0aWFsaXplfSBmcm9tICcuL2xpYi9pbml0aWFsaXplJztcbmltcG9ydCB7bG9hZH0gZnJvbSAnLi9saWIvbG9hZCc7XG5pbXBvcnQge3BhcmFtZXRlcml6ZX0gZnJvbSAnLi9saWIvcGFyYW1ldGVyaXplJztcblxuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi91dGlsL2RlYnVnLWxvZ2dlcic7XG5pbXBvcnQge3BhcnNlSUVQcm9jZXNzQXJnc30gZnJvbSAnLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHthbmRIYW5kbGV9IGZyb20gJy4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuL3V0aWwvbG9nZ2VyJztcbmltcG9ydCB7dmFsaWRhdGVNYW5pZmVzdH0gZnJvbSAnLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IHtESVNDTEFJTUVSX01FU1NBR0UsIEVYSVRJTkdfSUYsIFNUQVJUSU5HX0lGfSA9IFNUUklOR1M7XG5cbmNvbnN0IGltcGFjdEVuZ2luZSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlSUVQcm9jZXNzQXJncygpO1xuICBjb25zdCB7aW5wdXRQYXRoLCBwYXJhbVBhdGgsIG91dHB1dE9wdGlvbnMsIGRlYnVnfSA9IG9wdGlvbnM7XG5cbiAgZGVidWdMb2dnZXIub3ZlcnJpZGVDb25zb2xlTWV0aG9kcyghIWRlYnVnKTtcblxuICBsb2dnZXIuaW5mbyhESVNDTEFJTUVSX01FU1NBR0UpO1xuICBjb25zb2xlLmluZm8oU1RBUlRJTkdfSUYpO1xuXG4gIGNvbnN0IHtyYXdNYW5pZmVzdCwgcGFyYW1ldGVyc30gPSBhd2FpdCBsb2FkKGlucHV0UGF0aCwgcGFyYW1QYXRoKTtcbiAgY29uc3QgZW52TWFuaWZlc3QgPSBhd2FpdCBpbmplY3RFbnZpcm9ubWVudChyYXdNYW5pZmVzdCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7dHJlZSwgLi4uY29udGV4dH0gPSB2YWxpZGF0ZU1hbmlmZXN0KGVudk1hbmlmZXN0KTtcbiAgICBwYXJhbWV0ZXJpemUuY29tYmluZShjb250ZXh0LnBhcmFtcywgcGFyYW1ldGVycyk7XG4gICAgY29uc3QgcGx1Z2luU3RvcmFnZSA9IGF3YWl0IGluaXRpYWxpemUoY29udGV4dC5pbml0aWFsaXplLnBsdWdpbnMpO1xuICAgIGNvbnN0IGNvbXB1dGVkVHJlZSA9IGF3YWl0IGNvbXB1dGUodHJlZSwge2NvbnRleHQsIHBsdWdpblN0b3JhZ2V9KTtcbiAgICBjb25zdCBhZ2dyZWdhdGVkVHJlZSA9IGFnZ3JlZ2F0ZShjb21wdXRlZFRyZWUsIGNvbnRleHQuYWdncmVnYXRpb24pO1xuICAgIGF3YWl0IGV4aGF1c3QoYWdncmVnYXRlZFRyZWUsIGNvbnRleHQsIG91dHB1dE9wdGlvbnMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBlbnZNYW5pZmVzdC5leGVjdXRpb24hLnN0YXR1cyA9ICdmYWlsJztcbiAgICAgIGVudk1hbmlmZXN0LmV4ZWN1dGlvbiEuZXJyb3IgPSBlcnJvci50b1N0cmluZygpO1xuICAgICAgbG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICAgIGNvbnN0IHt0cmVlLCAuLi5jb250ZXh0fSA9IGVudk1hbmlmZXN0O1xuXG4gICAgICBpZiAoZXJyb3IubmFtZSAhPT0gJ0V4aGF1c3RFcnJvcicpIHtcbiAgICAgICAgZXhoYXVzdCh0cmVlLCBjb250ZXh0LCBvdXRwdXRPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc29sZS5pbmZvKEVYSVRJTkdfSUYpO1xufTtcblxuaW1wYWN0RW5naW5lKCkuY2F0Y2goYW5kSGFuZGxlKTtcbiJdfQ==
@@ -1,6 +0,0 @@
1
- import { AggregationParams } from '../types/manifest';
2
- /**
3
- * If aggregation is disabled, then returns given `tree`.
4
- * Otherwise creates copy of the tree, then applies aggregation to it.
5
- */
6
- export declare const aggregate: (tree: any, aggregationParams: AggregationParams) => any;
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aggregate = void 0;
4
- const aggregation_helper_1 = require("../util/aggregation-helper");
5
- const strings_1 = require("../config/strings");
6
- const { AGGREGATING_NODE, AGGREGATING_OUTPUTS } = strings_1.STRINGS;
7
- /**
8
- * Gets `i`th element from all children outputs and collects them in single array.
9
- */
10
- const getIthElementsFromChildren = (children, i) => {
11
- const values = Object.values(children);
12
- return values.map((value) => {
13
- const output = value.outputs;
14
- return output[i];
15
- });
16
- };
17
- /**
18
- * 1. Gets the i'th element from each childrens outputs (treating children as rows and we are after a column of data).
19
- * 2. Now we just aggregate over the `ithSliceOfOutputs` the same as we did for the normal outputs.
20
- */
21
- const temporalAggregation = (node, metrics) => {
22
- const outputs = [];
23
- const values = Object.values(node.children);
24
- for (let i = 0; i < values[0].outputs.length; i++) {
25
- const ithSliceOfOutputs = getIthElementsFromChildren(node.children, i);
26
- outputs.push((0, aggregation_helper_1.aggregateInputsIntoOne)(ithSliceOfOutputs, metrics, true));
27
- }
28
- return outputs;
29
- };
30
- /**
31
- * Navigates the tree depth first, bottom up,
32
- * left to right aggregating the component nodes and then the grouping nodes will be aggregated
33
- * only when all their child nodes have been aggregated.
34
- * 1. Aggregates all the children.
35
- * 2. At this point you can be positive all your children have been aggregated and so you can now work on aggregating yourself.
36
- * 3. It's component node, аggregates just the outputs of THIS component node (horizontal/component aggregation).
37
- * 4. Else it's grouping node, first does temporal aggregation. This assumes everything is on the same time-grid.
38
- * The outputs of the grouping node are the aggregated time bucketed outputs of it's children.
39
- * 5. Now a grouping node has it's own outputs, it can horizotnally aggregate them.
40
- */
41
- const aggregateNode = (node, aggregationParams) => {
42
- const metrics = aggregationParams.metrics;
43
- const type = aggregationParams.type;
44
- if (node.children) {
45
- for (const child in node.children) {
46
- console.debug(AGGREGATING_NODE(child));
47
- aggregateNode(node.children[child], aggregationParams);
48
- }
49
- }
50
- if (!node.children) {
51
- if (type === 'horizontal' || type === 'both') {
52
- node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(node.outputs, metrics);
53
- }
54
- }
55
- else {
56
- if (type === 'vertical' || type === 'both') {
57
- const outputs = temporalAggregation(node, metrics);
58
- node.outputs = outputs;
59
- node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(outputs, metrics);
60
- }
61
- }
62
- };
63
- /**
64
- * If aggregation is disabled, then returns given `tree`.
65
- * Otherwise creates copy of the tree, then applies aggregation to it.
66
- */
67
- const aggregate = (tree, aggregationParams) => {
68
- console.debug(AGGREGATING_OUTPUTS);
69
- if (!aggregationParams || !aggregationParams.type) {
70
- return tree;
71
- }
72
- const copyOfTree = structuredClone(tree);
73
- aggregateNode(copyOfTree, aggregationParams);
74
- return copyOfTree;
75
- };
76
- exports.aggregate = aggregate;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9hZ2dyZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUVBQWtFO0FBRWxFLCtDQUEwQztBQUkxQyxNQUFNLEVBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLFFBQWEsRUFBRSxDQUFTLEVBQUUsRUFBRTtJQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFN0IsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBUyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMzRCxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxHQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWpELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNqRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLDJDQUFzQixFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBUyxFQUFFLGlCQUF3QyxFQUFFLEVBQUU7SUFDNUUsTUFBTSxPQUFPLEdBQUcsaUJBQWtCLENBQUMsT0FBTyxDQUFDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLGlCQUFrQixDQUFDLElBQUksQ0FBQztJQUVyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUV2QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hEO0tBQ0Y7SUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNsQixJQUFJLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUEsMkNBQXNCLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNqRTtLQUNGO1NBQU07UUFDTCxJQUFJLElBQUksS0FBSyxVQUFVLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMxQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFBLDJDQUFzQixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RDtLQUNGO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFTLEVBQUUsaUJBQW9DLEVBQUUsRUFBRTtJQUMzRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFbkMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsYUFBYSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQVhXLFFBQUEsU0FBUyxhQVdwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge2FnZ3JlZ2F0ZUlucHV0c0ludG9PbmV9IGZyb20gJy4uL3V0aWwvYWdncmVnYXRpb24taGVscGVyJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7QWdncmVnYXRpb25QYXJhbXMsIEFnZ3JlZ2F0aW9uUGFyYW1zU3VyZX0gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuXG5jb25zdCB7QUdHUkVHQVRJTkdfTk9ERSwgQUdHUkVHQVRJTkdfT1VUUFVUU30gPSBTVFJJTkdTO1xuXG4vKipcbiAqIEdldHMgYGlgdGggZWxlbWVudCBmcm9tIGFsbCBjaGlsZHJlbiBvdXRwdXRzIGFuZCBjb2xsZWN0cyB0aGVtIGluIHNpbmdsZSBhcnJheS5cbiAqL1xuY29uc3QgZ2V0SXRoRWxlbWVudHNGcm9tQ2hpbGRyZW4gPSAoY2hpbGRyZW46IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoY2hpbGRyZW4pO1xuXG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gdmFsdWUub3V0cHV0cztcblxuICAgIHJldHVybiBvdXRwdXRbaV07XG4gIH0pO1xufTtcblxuLyoqXG4gKiAxLiBHZXRzIHRoZSBpJ3RoIGVsZW1lbnQgZnJvbSBlYWNoIGNoaWxkcmVucyBvdXRwdXRzICh0cmVhdGluZyBjaGlsZHJlbiBhcyByb3dzIGFuZCB3ZSBhcmUgYWZ0ZXIgYSBjb2x1bW4gb2YgZGF0YSkuXG4gKiAyLiBOb3cgd2UganVzdCBhZ2dyZWdhdGUgb3ZlciB0aGUgYGl0aFNsaWNlT2ZPdXRwdXRzYCB0aGUgc2FtZSBhcyB3ZSBkaWQgZm9yIHRoZSBub3JtYWwgb3V0cHV0cy5cbiAqL1xuY29uc3QgdGVtcG9yYWxBZ2dyZWdhdGlvbiA9IChub2RlOiBhbnksIG1ldHJpY3M6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IG91dHB1dHM6IFBsdWdpblBhcmFtc1tdID0gW107XG4gIGNvbnN0IHZhbHVlczogYW55ID0gT2JqZWN0LnZhbHVlcyhub2RlLmNoaWxkcmVuKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5vdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaXRoU2xpY2VPZk91dHB1dHMgPSBnZXRJdGhFbGVtZW50c0Zyb21DaGlsZHJlbihub2RlLmNoaWxkcmVuLCBpKTtcbiAgICBvdXRwdXRzLnB1c2goYWdncmVnYXRlSW5wdXRzSW50b09uZShpdGhTbGljZU9mT3V0cHV0cywgbWV0cmljcywgdHJ1ZSkpO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dHM7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRlcyB0aGUgdHJlZSBkZXB0aCBmaXJzdCwgYm90dG9tIHVwLFxuICogIGxlZnQgdG8gcmlnaHQgYWdncmVnYXRpbmcgdGhlIGNvbXBvbmVudCBub2RlcyBhbmQgdGhlbiB0aGUgZ3JvdXBpbmcgbm9kZXMgd2lsbCBiZSBhZ2dyZWdhdGVkXG4gKiAgb25seSB3aGVuIGFsbCB0aGVpciBjaGlsZCBub2RlcyBoYXZlIGJlZW4gYWdncmVnYXRlZC5cbiAqIDEuIEFnZ3JlZ2F0ZXMgYWxsIHRoZSBjaGlsZHJlbi5cbiAqIDIuIEF0IHRoaXMgcG9pbnQgeW91IGNhbiBiZSBwb3NpdGl2ZSBhbGwgeW91ciBjaGlsZHJlbiBoYXZlIGJlZW4gYWdncmVnYXRlZCBhbmQgc28geW91IGNhbiBub3cgd29yayBvbiBhZ2dyZWdhdGluZyB5b3Vyc2VsZi5cbiAqIDMuIEl0J3MgY29tcG9uZW50IG5vZGUsINCwZ2dyZWdhdGVzIGp1c3QgdGhlIG91dHB1dHMgb2YgVEhJUyBjb21wb25lbnQgbm9kZSAoaG9yaXpvbnRhbC9jb21wb25lbnQgYWdncmVnYXRpb24pLlxuICogNC4gRWxzZSBpdCdzIGdyb3VwaW5nIG5vZGUsIGZpcnN0IGRvZXMgdGVtcG9yYWwgYWdncmVnYXRpb24uIFRoaXMgYXNzdW1lcyBldmVyeXRoaW5nIGlzIG9uIHRoZSBzYW1lIHRpbWUtZ3JpZC5cbiAqICAgIFRoZSBvdXRwdXRzIG9mIHRoZSBncm91cGluZyBub2RlIGFyZSB0aGUgYWdncmVnYXRlZCB0aW1lIGJ1Y2tldGVkIG91dHB1dHMgb2YgaXQncyBjaGlsZHJlbi5cbiAqIDUuIE5vdyBhIGdyb3VwaW5nIG5vZGUgaGFzIGl0J3Mgb3duIG91dHB1dHMsIGl0IGNhbiBob3Jpem90bmFsbHkgYWdncmVnYXRlIHRoZW0uXG4gKi9cbmNvbnN0IGFnZ3JlZ2F0ZU5vZGUgPSAobm9kZTogYW55LCBhZ2dyZWdhdGlvblBhcmFtczogQWdncmVnYXRpb25QYXJhbXNTdXJlKSA9PiB7XG4gIGNvbnN0IG1ldHJpY3MgPSBhZ2dyZWdhdGlvblBhcmFtcyEubWV0cmljcztcbiAgY29uc3QgdHlwZSA9IGFnZ3JlZ2F0aW9uUGFyYW1zIS50eXBlO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBpbiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKEFHR1JFR0FUSU5HX05PREUoY2hpbGQpKTtcblxuICAgICAgYWdncmVnYXRlTm9kZShub2RlLmNoaWxkcmVuW2NoaWxkXSwgYWdncmVnYXRpb25QYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgIGlmICh0eXBlID09PSAnaG9yaXpvbnRhbCcgfHwgdHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICBub2RlLmFnZ3JlZ2F0ZWQgPSBhZ2dyZWdhdGVJbnB1dHNJbnRvT25lKG5vZGUub3V0cHV0cywgbWV0cmljcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlID09PSAndmVydGljYWwnIHx8IHR5cGUgPT09ICdib3RoJykge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRlbXBvcmFsQWdncmVnYXRpb24obm9kZSwgbWV0cmljcyk7XG4gICAgICBub2RlLm91dHB1dHMgPSBvdXRwdXRzO1xuICAgICAgbm9kZS5hZ2dyZWdhdGVkID0gYWdncmVnYXRlSW5wdXRzSW50b09uZShvdXRwdXRzLCBtZXRyaWNzKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogSWYgYWdncmVnYXRpb24gaXMgZGlzYWJsZWQsIHRoZW4gcmV0dXJucyBnaXZlbiBgdHJlZWAuXG4gKiBPdGhlcndpc2UgY3JlYXRlcyBjb3B5IG9mIHRoZSB0cmVlLCB0aGVuIGFwcGxpZXMgYWdncmVnYXRpb24gdG8gaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBhZ2dyZWdhdGUgPSAodHJlZTogYW55LCBhZ2dyZWdhdGlvblBhcmFtczogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhBR0dSRUdBVElOR19PVVRQVVRTKTtcblxuICBpZiAoIWFnZ3JlZ2F0aW9uUGFyYW1zIHx8ICFhZ2dyZWdhdGlvblBhcmFtcy50eXBlKSB7XG4gICAgcmV0dXJuIHRyZWU7XG4gIH1cblxuICBjb25zdCBjb3B5T2ZUcmVlID0gc3RydWN0dXJlZENsb25lKHRyZWUpO1xuICBhZ2dyZWdhdGVOb2RlKGNvcHlPZlRyZWUsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcblxuICByZXR1cm4gY29weU9mVHJlZTtcbn07XG4iXX0=
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compare = void 0;
4
- const helpers_1 = require("../util/helpers");
5
- /**
6
- * 1. If objects are not of the same type or are primitive types, compares directly.
7
- * 2. Gets the keys from both objects.
8
- * 3. If both are arrays, checks their elements.
9
- * 4. Checks for keys present in both objects.
10
- * If key is `execution`, omit unnecessary params.
11
- * 5. If all keys are checked and no differences are found, return empty object.
12
- */
13
- const compare = (source, target, path = '') => {
14
- if ((0, helpers_1.oneIsPrimitive)(source, target)) {
15
- return (0, helpers_1.checkIfEqual)(source, target)
16
- ? {}
17
- : {
18
- path,
19
- source,
20
- target,
21
- };
22
- }
23
- const keys1 = Object.keys(source);
24
- const keys2 = Object.keys(target);
25
- const allKeys = new Set([...keys1, ...keys2]);
26
- if (path === '') {
27
- allKeys.delete('name');
28
- allKeys.delete('description');
29
- allKeys.delete('tags');
30
- }
31
- if (path === 'initialize') {
32
- allKeys.delete('outputs');
33
- }
34
- if (path === 'execution') {
35
- const whitelist = ['status', 'error'];
36
- allKeys.forEach(value => {
37
- if (!whitelist.includes(value)) {
38
- allKeys.delete(value);
39
- }
40
- });
41
- }
42
- if (Array.isArray(source) && Array.isArray(target)) {
43
- source.forEach((_record, i) => {
44
- (0, exports.compare)(source[i], target[i], path ? `${path}[${i}]` : `${i}`);
45
- });
46
- }
47
- for (const key of allKeys) {
48
- const result = (0, exports.compare)(source[key], target[key], path ? `${path}.${key}` : key);
49
- if (Object.keys(result).length) {
50
- return result;
51
- }
52
- }
53
- return {};
54
- };
55
- exports.compare = compare;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFJN0Q7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFjLEVBQUU7SUFDekUsSUFBSSxJQUFBLHdCQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2xDLE9BQU8sSUFBQSxzQkFBWSxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDakMsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUM7Z0JBQ0UsSUFBSTtnQkFDSixNQUFNO2dCQUNOLE1BQU07YUFDUCxDQUFDO0tBQ1A7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUMsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1FBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDeEI7SUFFRCxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUU7UUFDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQjtJQUVELElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtRQUN4QixNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUEsZUFBTyxFQUNwQixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUNYLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsT0FBTyxNQUFNLENBQUM7U0FDZjtLQUNGO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUF0RFcsUUFBQSxPQUFPLFdBc0RsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2hlY2tJZkVxdWFsLCBvbmVJc1ByaW1pdGl2ZX0gZnJvbSAnLi4vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtEaWZmZXJlbmNlfSBmcm9tICcuLi90eXBlcy9saWIvY29tcGFyZSc7XG5cbi8qKlxuICogMS4gSWYgb2JqZWN0cyBhcmUgbm90IG9mIHRoZSBzYW1lIHR5cGUgb3IgYXJlIHByaW1pdGl2ZSB0eXBlcywgY29tcGFyZXMgZGlyZWN0bHkuXG4gKiAyLiBHZXRzIHRoZSBrZXlzIGZyb20gYm90aCBvYmplY3RzLlxuICogMy4gSWYgYm90aCBhcmUgYXJyYXlzLCBjaGVja3MgdGhlaXIgZWxlbWVudHMuXG4gKiA0LiBDaGVja3MgZm9yIGtleXMgcHJlc2VudCBpbiBib3RoIG9iamVjdHMuXG4gKiAgICBJZiBrZXkgaXMgYGV4ZWN1dGlvbmAsIG9taXQgdW5uZWNlc3NhcnkgcGFyYW1zLlxuICogNS4gSWYgYWxsIGtleXMgYXJlIGNoZWNrZWQgYW5kIG5vIGRpZmZlcmVuY2VzIGFyZSBmb3VuZCwgcmV0dXJuIGVtcHR5IG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXBhcmUgPSAoc291cmNlOiBhbnksIHRhcmdldDogYW55LCBwYXRoID0gJycpOiBEaWZmZXJlbmNlID0+IHtcbiAgaWYgKG9uZUlzUHJpbWl0aXZlKHNvdXJjZSwgdGFyZ2V0KSkge1xuICAgIHJldHVybiBjaGVja0lmRXF1YWwoc291cmNlLCB0YXJnZXQpXG4gICAgICA/IHt9XG4gICAgICA6IHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgIH07XG4gIH1cblxuICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXModGFyZ2V0KTtcblxuICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChbLi4ua2V5czEsIC4uLmtleXMyXSk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgYWxsS2V5cy5kZWxldGUoJ25hbWUnKTtcbiAgICBhbGxLZXlzLmRlbGV0ZSgnZGVzY3JpcHRpb24nKTtcbiAgICBhbGxLZXlzLmRlbGV0ZSgndGFncycpO1xuICB9XG5cbiAgaWYgKHBhdGggPT09ICdpbml0aWFsaXplJykge1xuICAgIGFsbEtleXMuZGVsZXRlKCdvdXRwdXRzJyk7XG4gIH1cblxuICBpZiAocGF0aCA9PT0gJ2V4ZWN1dGlvbicpIHtcbiAgICBjb25zdCB3aGl0ZWxpc3QgPSBbJ3N0YXR1cycsICdlcnJvciddO1xuICAgIGFsbEtleXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICBpZiAoIXdoaXRlbGlzdC5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgYWxsS2V5cy5kZWxldGUodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSAmJiBBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICBzb3VyY2UuZm9yRWFjaCgoX3JlY29yZCwgaSkgPT4ge1xuICAgICAgY29tcGFyZShzb3VyY2VbaV0sIHRhcmdldFtpXSwgcGF0aCA/IGAke3BhdGh9WyR7aX1dYCA6IGAke2l9YCk7XG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBhbGxLZXlzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29tcGFyZShcbiAgICAgIHNvdXJjZVtrZXldLFxuICAgICAgdGFyZ2V0W2tleV0sXG4gICAgICBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleVxuICAgICk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHt9O1xufTtcbiJdfQ==
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compute = void 0;
4
- const debug_logger_1 = require("../util/debug-logger");
5
- const helpers_1 = require("../util/helpers");
6
- const interface_1 = require("../types/interface");
7
- const strings_1 = require("../config/strings");
8
- const { MERGING_DEFAULTS_WITH_INPUT_DATA, COMPUTING_PIPELINE_FOR_NODE } = strings_1.STRINGS;
9
- /**
10
- * Traverses all child nodes based on children grouping.
11
- */
12
- const traverse = async (children, params) => {
13
- for (const child in children) {
14
- await computeNode(children[child], params);
15
- }
16
- };
17
- /**
18
- * Appends `default` values to `inputs`.
19
- */
20
- const mergeDefaults = (inputs, defaults) => {
21
- if (inputs) {
22
- const response = defaults
23
- ? inputs.map(input => (0, helpers_1.mergeObjects)(defaults, input))
24
- : inputs;
25
- return response;
26
- }
27
- console.debug(MERGING_DEFAULTS_WITH_INPUT_DATA);
28
- return defaults ? [defaults] : [];
29
- };
30
- /**
31
- * 1. If the node has it's own pipeline, defaults or config then use that,
32
- * otherwise use whatever has been passed down from further up the tree.
33
- * 2. If it's a grouping node, then first of all computes all it's children.
34
- * This is doing a depth first traversal.
35
- * 3. Otherwise merges the defaults into the inputs.
36
- * 4. Goes through the pipeline plugins, by checking if it's `execute` plugin. If so sets outputs.
37
- * If is a `groupby` plugin, it will return child components rather than outputs.
38
- * 5. Since after `groupby`, there are new child components, then computes them.
39
- * Note: `pipeline` now equals the remaining plu.gins to apply to each child
40
- */
41
- const computeNode = async (node, params) => {
42
- const pipeline = (node.pipeline || params.pipeline);
43
- const config = node.config || params.config;
44
- const defaults = node.defaults || params.defaults;
45
- if (node.children) {
46
- return traverse(node.children, {
47
- ...params,
48
- pipeline,
49
- defaults,
50
- config,
51
- });
52
- }
53
- let inputStorage = structuredClone(node.inputs);
54
- inputStorage = mergeDefaults(inputStorage, defaults);
55
- const pipelineCopy = structuredClone(pipeline);
56
- while (pipelineCopy.length !== 0) {
57
- const pluginName = pipelineCopy.shift();
58
- const plugin = params.pluginStorage.get(pluginName);
59
- const nodeConfig = config && config[pluginName];
60
- console.debug(COMPUTING_PIPELINE_FOR_NODE(pluginName));
61
- debug_logger_1.debugLogger.setExecutingPluginName(pluginName);
62
- if ((0, interface_1.isExecute)(plugin)) {
63
- inputStorage = await plugin.execute(inputStorage, nodeConfig);
64
- debug_logger_1.debugLogger.setExecutingPluginName();
65
- node.outputs = inputStorage;
66
- }
67
- if ((0, interface_1.isGroupBy)(plugin)) {
68
- node.children = await plugin.execute(inputStorage, nodeConfig);
69
- delete node.inputs;
70
- delete node.outputs;
71
- await traverse(node.children, {
72
- ...params,
73
- pipeline: pipelineCopy,
74
- defaults,
75
- config,
76
- });
77
- debug_logger_1.debugLogger.setExecutingPluginName();
78
- break;
79
- }
80
- }
81
- };
82
- /**
83
- * Creates copy of existing tree, then applies computing strategy.
84
- */
85
- const compute = async (tree, params) => {
86
- const copyOfTree = structuredClone(tree);
87
- await computeNode(copyOfTree, params);
88
- return copyOfTree;
89
- };
90
- exports.compute = compute;
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFBaUQ7QUFDakQsNkNBQTZDO0FBRzdDLGtEQUF3RDtBQUV4RCwrQ0FBMEM7QUFFMUMsTUFBTSxFQUFDLGdDQUFnQyxFQUFFLDJCQUEyQixFQUFDLEdBQUcsaUJBQU8sQ0FBQztBQUVoRjs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxRQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUU7UUFDNUIsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixNQUFzQixFQUN0QixRQUFrQyxFQUNsQyxFQUFFO0lBQ0YsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLFFBQVEsR0FBRyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBQSxzQkFBWSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRVgsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFFaEQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQVUsRUFBRSxNQUFjLEVBQWdCLEVBQUU7SUFDckUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQWEsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDO0lBRWxELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNqQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLEdBQUcsTUFBTTtZQUNULFFBQVE7WUFDUixRQUFRO1lBQ1IsTUFBTTtTQUNQLENBQUMsQ0FBQztLQUNKO0lBRUQsSUFBSSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQW1CLENBQUM7SUFDbEUsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBWSxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEQsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELDBCQUFXLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFBLHFCQUFTLEVBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDOUQsMEJBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxJQUFBLHFCQUFTLEVBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQ2xDLFlBQVksRUFDWixVQUEyQixDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUVwQixNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QixHQUFHLE1BQU07Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVE7Z0JBQ1IsTUFBTTthQUNQLENBQUMsQ0FBQztZQUVILDBCQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUVyQyxNQUFNO1NBQ1A7S0FDRjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQVMsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDaEUsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpDLE1BQU0sV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFOVyxRQUFBLE9BQU8sV0FNbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BsdWdpblBhcmFtcywgR3JvdXBCeUNvbmZpZ30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi4vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHttZXJnZU9iamVjdHN9IGZyb20gJy4uL3V0aWwvaGVscGVycyc7XG5cbmltcG9ydCB7Q29tcHV0ZVBhcmFtcywgTm9kZSwgUGFyYW1zfSBmcm9tICcuLi90eXBlcy9jb21wdXRlJztcbmltcG9ydCB7aXNFeGVjdXRlLCBpc0dyb3VwQnl9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCB7TUVSR0lOR19ERUZBVUxUU19XSVRIX0lOUFVUX0RBVEEsIENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIFRyYXZlcnNlcyBhbGwgY2hpbGQgbm9kZXMgYmFzZWQgb24gY2hpbGRyZW4gZ3JvdXBpbmcuXG4gKi9cbmNvbnN0IHRyYXZlcnNlID0gYXN5bmMgKGNoaWxkcmVuOiBhbnksIHBhcmFtczogUGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgY2hpbGQgaW4gY2hpbGRyZW4pIHtcbiAgICBhd2FpdCBjb21wdXRlTm9kZShjaGlsZHJlbltjaGlsZF0sIHBhcmFtcyk7XG4gIH1cbn07XG5cbi8qKlxuICogQXBwZW5kcyBgZGVmYXVsdGAgdmFsdWVzIHRvIGBpbnB1dHNgLlxuICovXG5jb25zdCBtZXJnZURlZmF1bHRzID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBkZWZhdWx0czogUGx1Z2luUGFyYW1zIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgaWYgKGlucHV0cykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gZGVmYXVsdHNcbiAgICAgID8gaW5wdXRzLm1hcChpbnB1dCA9PiBtZXJnZU9iamVjdHMoZGVmYXVsdHMsIGlucHV0KSlcbiAgICAgIDogaW5wdXRzO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgY29uc29sZS5kZWJ1ZyhNRVJHSU5HX0RFRkFVTFRTX1dJVEhfSU5QVVRfREFUQSk7XG5cbiAgcmV0dXJuIGRlZmF1bHRzID8gW2RlZmF1bHRzXSA6IFtdO1xufTtcblxuLyoqXG4gKiAxLiBJZiB0aGUgbm9kZSBoYXMgaXQncyBvd24gcGlwZWxpbmUsIGRlZmF1bHRzIG9yIGNvbmZpZyB0aGVuIHVzZSB0aGF0LFxuICogICAgb3RoZXJ3aXNlIHVzZSB3aGF0ZXZlciBoYXMgYmVlbiBwYXNzZWQgZG93biBmcm9tIGZ1cnRoZXIgdXAgdGhlIHRyZWUuXG4gKiAyLiBJZiBpdCdzIGEgZ3JvdXBpbmcgbm9kZSwgdGhlbiBmaXJzdCBvZiBhbGwgY29tcHV0ZXMgYWxsIGl0J3MgY2hpbGRyZW4uXG4gKiAgICBUaGlzIGlzIGRvaW5nIGEgZGVwdGggZmlyc3QgdHJhdmVyc2FsLlxuICogMy4gT3RoZXJ3aXNlIG1lcmdlcyB0aGUgZGVmYXVsdHMgaW50byB0aGUgaW5wdXRzLlxuICogNC4gR29lcyB0aHJvdWdoIHRoZSBwaXBlbGluZSBwbHVnaW5zLCBieSBjaGVja2luZyBpZiBpdCdzIGBleGVjdXRlYCBwbHVnaW4uIElmIHNvIHNldHMgb3V0cHV0cy5cbiAqICAgIElmIGlzIGEgYGdyb3VwYnlgIHBsdWdpbiwgaXQgd2lsbCByZXR1cm4gY2hpbGQgY29tcG9uZW50cyByYXRoZXIgdGhhbiBvdXRwdXRzLlxuICogNS4gU2luY2UgYWZ0ZXIgYGdyb3VwYnlgLCB0aGVyZSBhcmUgbmV3IGNoaWxkIGNvbXBvbmVudHMsIHRoZW4gY29tcHV0ZXMgdGhlbS5cbiAqICAgIE5vdGU6IGBwaXBlbGluZWAgbm93IGVxdWFscyB0aGUgcmVtYWluaW5nIHBsdS5naW5zIHRvIGFwcGx5IHRvIGVhY2ggY2hpbGRcbiAqL1xuY29uc3QgY29tcHV0ZU5vZGUgPSBhc3luYyAobm9kZTogTm9kZSwgcGFyYW1zOiBQYXJhbXMpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBwaXBlbGluZSA9IChub2RlLnBpcGVsaW5lIHx8IHBhcmFtcy5waXBlbGluZSkgYXMgc3RyaW5nW107XG4gIGNvbnN0IGNvbmZpZyA9IG5vZGUuY29uZmlnIHx8IHBhcmFtcy5jb25maWc7XG4gIGNvbnN0IGRlZmF1bHRzID0gbm9kZS5kZWZhdWx0cyB8fCBwYXJhbXMuZGVmYXVsdHM7XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICByZXR1cm4gdHJhdmVyc2Uobm9kZS5jaGlsZHJlbiwge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcGlwZWxpbmUsXG4gICAgICBkZWZhdWx0cyxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBpbnB1dFN0b3JhZ2UgPSBzdHJ1Y3R1cmVkQ2xvbmUobm9kZS5pbnB1dHMpIGFzIFBsdWdpblBhcmFtc1tdO1xuICBpbnB1dFN0b3JhZ2UgPSBtZXJnZURlZmF1bHRzKGlucHV0U3RvcmFnZSwgZGVmYXVsdHMpO1xuICBjb25zdCBwaXBlbGluZUNvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUocGlwZWxpbmUpO1xuXG4gIHdoaWxlIChwaXBlbGluZUNvcHkubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3QgcGx1Z2luTmFtZSA9IHBpcGVsaW5lQ29weS5zaGlmdCgpIGFzIHN0cmluZztcbiAgICBjb25zdCBwbHVnaW4gPSBwYXJhbXMucGx1Z2luU3RvcmFnZS5nZXQocGx1Z2luTmFtZSk7XG4gICAgY29uc3Qgbm9kZUNvbmZpZyA9IGNvbmZpZyAmJiBjb25maWdbcGx1Z2luTmFtZV07XG5cbiAgICBjb25zb2xlLmRlYnVnKENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERShwbHVnaW5OYW1lKSk7XG4gICAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZShwbHVnaW5OYW1lKTtcblxuICAgIGlmIChpc0V4ZWN1dGUocGx1Z2luKSkge1xuICAgICAgaW5wdXRTdG9yYWdlID0gYXdhaXQgcGx1Z2luLmV4ZWN1dGUoaW5wdXRTdG9yYWdlLCBub2RlQ29uZmlnKTtcbiAgICAgIGRlYnVnTG9nZ2VyLnNldEV4ZWN1dGluZ1BsdWdpbk5hbWUoKTtcblxuICAgICAgbm9kZS5vdXRwdXRzID0gaW5wdXRTdG9yYWdlO1xuICAgIH1cblxuICAgIGlmIChpc0dyb3VwQnkocGx1Z2luKSkge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IGF3YWl0IHBsdWdpbi5leGVjdXRlKFxuICAgICAgICBpbnB1dFN0b3JhZ2UsXG4gICAgICAgIG5vZGVDb25maWcgYXMgR3JvdXBCeUNvbmZpZ1xuICAgICAgKTtcbiAgICAgIGRlbGV0ZSBub2RlLmlucHV0cztcbiAgICAgIGRlbGV0ZSBub2RlLm91dHB1dHM7XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlKG5vZGUuY2hpbGRyZW4sIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICBwaXBlbGluZTogcGlwZWxpbmVDb3B5LFxuICAgICAgICBkZWZhdWx0cyxcbiAgICAgICAgY29uZmlnLFxuICAgICAgfSk7XG5cbiAgICAgIGRlYnVnTG9nZ2VyLnNldEV4ZWN1dGluZ1BsdWdpbk5hbWUoKTtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgY29weSBvZiBleGlzdGluZyB0cmVlLCB0aGVuIGFwcGxpZXMgY29tcHV0aW5nIHN0cmF0ZWd5LlxuICovXG5leHBvcnQgY29uc3QgY29tcHV0ZSA9IGFzeW5jICh0cmVlOiBhbnksIHBhcmFtczogQ29tcHV0ZVBhcmFtcykgPT4ge1xuICBjb25zdCBjb3B5T2ZUcmVlID0gc3RydWN0dXJlZENsb25lKHRyZWUpO1xuXG4gIGF3YWl0IGNvbXB1dGVOb2RlKGNvcHlPZlRyZWUsIHBhcmFtcyk7XG5cbiAgcmV0dXJuIGNvcHlPZlRyZWU7XG59O1xuIl19