@grnsft/if 1.0.0-beta.0 → 1.0.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 (263) hide show
  1. package/.env +5 -0
  2. package/README.md +1 -1
  3. package/adopters.md +3 -0
  4. package/build/common/config/strings.js +3 -4
  5. package/build/common/util/helpers.d.ts +5 -0
  6. package/build/common/util/helpers.js +24 -2
  7. package/build/if-check/config/config.js +7 -1
  8. package/build/if-check/util/args.js +3 -2
  9. package/build/if-check/util/npm.js +4 -4
  10. package/build/if-csv/config/config.js +7 -1
  11. package/build/if-csv/util/args.js +3 -2
  12. package/build/if-diff/config/config.js +7 -1
  13. package/build/if-diff/util/args.js +3 -2
  14. package/build/if-env/config/config.js +7 -1
  15. package/build/if-env/util/args.js +3 -2
  16. package/build/if-merge/config/config.js +7 -1
  17. package/build/if-merge/util/args.js +3 -2
  18. package/build/if-merge/util/helpers.js +4 -1
  19. package/build/if-run/builtins/csv-import/index.d.ts +16 -0
  20. package/build/if-run/builtins/csv-import/index.js +69 -0
  21. package/build/if-run/builtins/csv-lookup/index.js +10 -87
  22. package/build/if-run/builtins/index.d.ts +1 -0
  23. package/build/if-run/builtins/index.js +4 -2
  24. package/build/if-run/builtins/util/csv-helpers.d.ts +26 -0
  25. package/build/if-run/builtins/util/csv-helpers.js +92 -0
  26. package/build/if-run/config/config.js +1 -7
  27. package/build/if-run/config/strings.d.ts +1 -0
  28. package/build/if-run/config/strings.js +2 -1
  29. package/build/if-run/lib/compute.js +23 -16
  30. package/build/if-run/lib/regroup.d.ts +5 -0
  31. package/build/if-run/lib/regroup.js +14 -2
  32. package/build/if-run/util/args.d.ts +1 -1
  33. package/build/if-run/util/args.js +5 -4
  34. package/coverage/clover.xml +2062 -0
  35. package/coverage/coverage-final.json +58 -0
  36. package/coverage/lcov-report/base.css +224 -0
  37. package/coverage/lcov-report/block-navigation.js +87 -0
  38. package/coverage/lcov-report/builtins/coefficient/index.html +116 -0
  39. package/coverage/lcov-report/builtins/coefficient/index.ts.html +298 -0
  40. package/coverage/lcov-report/builtins/csv-lookup/index.html +116 -0
  41. package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +826 -0
  42. package/coverage/lcov-report/builtins/divide/index.html +116 -0
  43. package/coverage/lcov-report/builtins/divide/index.ts.html +358 -0
  44. package/coverage/lcov-report/builtins/exponent/index.html +116 -0
  45. package/coverage/lcov-report/builtins/exponent/index.ts.html +361 -0
  46. package/coverage/lcov-report/builtins/export-csv-raw.ts.html +553 -0
  47. package/coverage/lcov-report/builtins/export-csv.ts.html +436 -0
  48. package/coverage/lcov-report/builtins/export-log.ts.html +148 -0
  49. package/coverage/lcov-report/builtins/export-yaml.ts.html +193 -0
  50. package/coverage/lcov-report/builtins/group-by.ts.html +370 -0
  51. package/coverage/lcov-report/builtins/index.html +206 -0
  52. package/coverage/lcov-report/builtins/index.ts.html +130 -0
  53. package/coverage/lcov-report/builtins/interpolation/index.html +116 -0
  54. package/coverage/lcov-report/builtins/interpolation/index.ts.html +676 -0
  55. package/coverage/lcov-report/builtins/interpolation/types.ts.html +100 -0
  56. package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +184 -0
  57. package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +131 -0
  58. package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +289 -0
  59. package/coverage/lcov-report/builtins/mock-observations/index.html +116 -0
  60. package/coverage/lcov-report/builtins/mock-observations/index.ts.html +619 -0
  61. package/coverage/lcov-report/builtins/multiply/index.html +116 -0
  62. package/coverage/lcov-report/builtins/multiply/index.ts.html +343 -0
  63. package/coverage/lcov-report/builtins/regex/index.html +116 -0
  64. package/coverage/lcov-report/builtins/regex/index.ts.html +373 -0
  65. package/coverage/lcov-report/builtins/sci/config.ts.html +205 -0
  66. package/coverage/lcov-report/builtins/sci/index.html +116 -0
  67. package/coverage/lcov-report/builtins/sci/index.ts.html +325 -0
  68. package/coverage/lcov-report/builtins/sci-embodied/index.html +116 -0
  69. package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +478 -0
  70. package/coverage/lcov-report/builtins/shell/index.html +116 -0
  71. package/coverage/lcov-report/builtins/shell/index.ts.html +280 -0
  72. package/coverage/lcov-report/builtins/subtract/index.html +116 -0
  73. package/coverage/lcov-report/builtins/subtract/index.ts.html +379 -0
  74. package/coverage/lcov-report/builtins/sum/index.html +116 -0
  75. package/coverage/lcov-report/builtins/sum/index.ts.html +334 -0
  76. package/coverage/lcov-report/builtins/time-sync.ts.html +1462 -0
  77. package/coverage/lcov-report/common/config/index.html +131 -0
  78. package/coverage/lcov-report/common/config/index.ts.html +88 -0
  79. package/coverage/lcov-report/common/config/strings.ts.html +121 -0
  80. package/coverage/lcov-report/common/lib/index.html +116 -0
  81. package/coverage/lcov-report/common/lib/load.ts.html +139 -0
  82. package/coverage/lcov-report/common/util/debug-logger.ts.html +514 -0
  83. package/coverage/lcov-report/common/util/fs.ts.html +289 -0
  84. package/coverage/lcov-report/common/util/helpers.ts.html +355 -0
  85. package/coverage/lcov-report/common/util/index.html +191 -0
  86. package/coverage/lcov-report/common/util/logger.ts.html +151 -0
  87. package/coverage/lcov-report/common/util/validations.ts.html +628 -0
  88. package/coverage/lcov-report/common/util/yaml.ts.html +226 -0
  89. package/coverage/lcov-report/config/config.ts.html +463 -0
  90. package/coverage/lcov-report/config/index.html +161 -0
  91. package/coverage/lcov-report/config/index.ts.html +94 -0
  92. package/coverage/lcov-report/config/params.ts.html +697 -0
  93. package/coverage/lcov-report/config/strings.ts.html +490 -0
  94. package/coverage/lcov-report/favicon.png +0 -0
  95. package/coverage/lcov-report/if-check/config/config.ts.html +184 -0
  96. package/coverage/lcov-report/if-check/config/index.html +146 -0
  97. package/coverage/lcov-report/if-check/config/index.ts.html +91 -0
  98. package/coverage/lcov-report/if-check/config/strings.ts.html +142 -0
  99. package/coverage/lcov-report/if-check/util/args.ts.html +310 -0
  100. package/coverage/lcov-report/if-check/util/helpers.ts.html +136 -0
  101. package/coverage/lcov-report/if-check/util/index.html +146 -0
  102. package/coverage/lcov-report/if-check/util/npm.ts.html +376 -0
  103. package/coverage/lcov-report/if-csv/util/args.ts.html +256 -0
  104. package/coverage/lcov-report/if-csv/util/helpers.ts.html +346 -0
  105. package/coverage/lcov-report/if-csv/util/index.html +131 -0
  106. package/coverage/lcov-report/if-diff/config/config.ts.html +184 -0
  107. package/coverage/lcov-report/if-diff/config/index.html +146 -0
  108. package/coverage/lcov-report/if-diff/config/index.ts.html +91 -0
  109. package/coverage/lcov-report/if-diff/config/strings.ts.html +100 -0
  110. package/coverage/lcov-report/if-diff/lib/compare.ts.html +286 -0
  111. package/coverage/lcov-report/if-diff/lib/index.html +131 -0
  112. package/coverage/lcov-report/if-diff/lib/load.ts.html +199 -0
  113. package/coverage/lcov-report/if-diff/util/args.ts.html +274 -0
  114. package/coverage/lcov-report/if-diff/util/helpers.ts.html +337 -0
  115. package/coverage/lcov-report/if-diff/util/index.html +131 -0
  116. package/coverage/lcov-report/if-env/config/config.ts.html +211 -0
  117. package/coverage/lcov-report/if-env/config/index.html +146 -0
  118. package/coverage/lcov-report/if-env/config/index.ts.html +91 -0
  119. package/coverage/lcov-report/if-env/config/strings.ts.html +109 -0
  120. package/coverage/lcov-report/if-env/util/args.ts.html +256 -0
  121. package/coverage/lcov-report/if-env/util/index.html +131 -0
  122. package/coverage/lcov-report/if-env/util/npm.ts.html +526 -0
  123. package/coverage/lcov-report/if-merge/util/args.ts.html +301 -0
  124. package/coverage/lcov-report/if-merge/util/helpers.ts.html +313 -0
  125. package/coverage/lcov-report/if-merge/util/index.html +131 -0
  126. package/coverage/lcov-report/if-run/builtins/coefficient/index.html +116 -0
  127. package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +286 -0
  128. package/coverage/lcov-report/if-run/builtins/copy-param/index.html +116 -0
  129. package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +301 -0
  130. package/coverage/lcov-report/if-run/builtins/csv-import/index.html +116 -0
  131. package/coverage/lcov-report/if-run/builtins/csv-import/index.ts.html +364 -0
  132. package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +116 -0
  133. package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +478 -0
  134. package/coverage/lcov-report/if-run/builtins/divide/index.html +116 -0
  135. package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +346 -0
  136. package/coverage/lcov-report/if-run/builtins/exponent/index.html +116 -0
  137. package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +319 -0
  138. package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +553 -0
  139. package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +436 -0
  140. package/coverage/lcov-report/if-run/builtins/export-log.ts.html +148 -0
  141. package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +193 -0
  142. package/coverage/lcov-report/if-run/builtins/group-by.ts.html +370 -0
  143. package/coverage/lcov-report/if-run/builtins/index.html +146 -0
  144. package/coverage/lcov-report/if-run/builtins/index.ts.html +136 -0
  145. package/coverage/lcov-report/if-run/builtins/interpolation/index.html +116 -0
  146. package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +643 -0
  147. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +184 -0
  148. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +131 -0
  149. package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +289 -0
  150. package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +116 -0
  151. package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +607 -0
  152. package/coverage/lcov-report/if-run/builtins/multiply/index.html +116 -0
  153. package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +289 -0
  154. package/coverage/lcov-report/if-run/builtins/regex/index.html +116 -0
  155. package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +298 -0
  156. package/coverage/lcov-report/if-run/builtins/sci/index.html +116 -0
  157. package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +418 -0
  158. package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +116 -0
  159. package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +664 -0
  160. package/coverage/lcov-report/if-run/builtins/shell/index.html +116 -0
  161. package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +256 -0
  162. package/coverage/lcov-report/if-run/builtins/subtract/index.html +116 -0
  163. package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +298 -0
  164. package/coverage/lcov-report/if-run/builtins/sum/index.html +116 -0
  165. package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +238 -0
  166. package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +205 -0
  167. package/coverage/lcov-report/if-run/builtins/time-converter/index.html +131 -0
  168. package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +328 -0
  169. package/coverage/lcov-report/if-run/builtins/time-sync/index.html +116 -0
  170. package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +1804 -0
  171. package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +1462 -0
  172. package/coverage/lcov-report/if-run/builtins/util/csv-helpers.ts.html +376 -0
  173. package/coverage/lcov-report/if-run/builtins/util/index.html +116 -0
  174. package/coverage/lcov-report/if-run/config/config.ts.html +271 -0
  175. package/coverage/lcov-report/if-run/config/index.html +161 -0
  176. package/coverage/lcov-report/if-run/config/index.ts.html +94 -0
  177. package/coverage/lcov-report/if-run/config/params.ts.html +679 -0
  178. package/coverage/lcov-report/if-run/config/strings.ts.html +460 -0
  179. package/coverage/lcov-report/if-run/lib/aggregate.ts.html +577 -0
  180. package/coverage/lcov-report/if-run/lib/compute.ts.html +733 -0
  181. package/coverage/lcov-report/if-run/lib/environment.ts.html +373 -0
  182. package/coverage/lcov-report/if-run/lib/exhaust.ts.html +193 -0
  183. package/coverage/lcov-report/if-run/lib/explain.ts.html +484 -0
  184. package/coverage/lcov-report/if-run/lib/index.html +206 -0
  185. package/coverage/lcov-report/if-run/lib/initialize.ts.html +490 -0
  186. package/coverage/lcov-report/if-run/lib/parameterize.ts.html +322 -0
  187. package/coverage/lcov-report/if-run/lib/regroup.ts.html +349 -0
  188. package/coverage/lcov-report/if-run/lib/time-sync.ts.html +1510 -0
  189. package/coverage/lcov-report/if-run/types/aggregation.ts.html +94 -0
  190. package/coverage/lcov-report/if-run/types/index.html +146 -0
  191. package/coverage/lcov-report/if-run/types/interface.ts.html +112 -0
  192. package/coverage/lcov-report/if-run/types/parameters.ts.html +106 -0
  193. package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +277 -0
  194. package/coverage/lcov-report/if-run/util/args.ts.html +325 -0
  195. package/coverage/lcov-report/if-run/util/helpers.ts.html +208 -0
  196. package/coverage/lcov-report/if-run/util/index.html +191 -0
  197. package/coverage/lcov-report/if-run/util/json.ts.html +115 -0
  198. package/coverage/lcov-report/if-run/util/log-memoize.ts.html +145 -0
  199. package/coverage/lcov-report/if-run/util/os-checker.ts.html +421 -0
  200. package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +202 -0
  201. package/coverage/lcov-report/index.html +551 -0
  202. package/coverage/lcov-report/lib/aggregate.ts.html +358 -0
  203. package/coverage/lcov-report/lib/compare.ts.html +286 -0
  204. package/coverage/lcov-report/lib/compute.ts.html +436 -0
  205. package/coverage/lcov-report/lib/environment.ts.html +376 -0
  206. package/coverage/lcov-report/lib/exhaust.ts.html +289 -0
  207. package/coverage/lcov-report/lib/index.html +221 -0
  208. package/coverage/lcov-report/lib/initialize.ts.html +430 -0
  209. package/coverage/lcov-report/lib/load.ts.html +268 -0
  210. package/coverage/lcov-report/lib/parameterize.ts.html +316 -0
  211. package/coverage/lcov-report/prettify.css +1 -0
  212. package/coverage/lcov-report/prettify.js +2 -0
  213. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  214. package/coverage/lcov-report/sorter.js +196 -0
  215. package/coverage/lcov-report/types/aggregation.ts.html +94 -0
  216. package/coverage/lcov-report/types/index.html +146 -0
  217. package/coverage/lcov-report/types/interface.ts.html +112 -0
  218. package/coverage/lcov-report/types/parameters.ts.html +106 -0
  219. package/coverage/lcov-report/util/aggregation-helper.ts.html +289 -0
  220. package/coverage/lcov-report/util/args.ts.html +649 -0
  221. package/coverage/lcov-report/util/debug-logger.ts.html +481 -0
  222. package/coverage/lcov-report/util/errors.ts.html +232 -0
  223. package/coverage/lcov-report/util/fs.ts.html +124 -0
  224. package/coverage/lcov-report/util/helpers.ts.html +895 -0
  225. package/coverage/lcov-report/util/index.html +296 -0
  226. package/coverage/lcov-report/util/json.ts.html +115 -0
  227. package/coverage/lcov-report/util/log-memoize.ts.html +145 -0
  228. package/coverage/lcov-report/util/logger.ts.html +151 -0
  229. package/coverage/lcov-report/util/npm.ts.html +499 -0
  230. package/coverage/lcov-report/util/os-checker.ts.html +421 -0
  231. package/coverage/lcov-report/util/plugin-storage.ts.html +202 -0
  232. package/coverage/lcov-report/util/validations.ts.html +544 -0
  233. package/coverage/lcov-report/util/yaml.ts.html +193 -0
  234. package/coverage/lcov.info +3548 -0
  235. package/manifests/examples/builtins/csv-import/success.yaml +22 -0
  236. package/manifests/examples/builtins/csv-import/test.csv +4 -0
  237. package/manifests/outputs/builtins/csv-import/success.yaml +84 -0
  238. package/manifests/regroup.yml +49 -0
  239. package/manifests/test.yml +524 -0
  240. package/package.json +1 -1
  241. package/src/if-run/builtins/csv-import/README.md +190 -0
  242. package/src/if-run/builtins/csv-lookup/README.md +7 -7
  243. package/manifests/outputs/bugs/package.json +0 -24
  244. package/manifests/outputs/builtins/coefficient/package.json +0 -24
  245. package/manifests/outputs/builtins/csv-lookup/cloud-metadata/package.json +0 -24
  246. package/manifests/outputs/builtins/csv-lookup/region-metadata/package.json +0 -24
  247. package/manifests/outputs/builtins/csv-lookup/tdp-finder/package.json +0 -24
  248. package/manifests/outputs/builtins/divide/package.json +0 -24
  249. package/manifests/outputs/builtins/exponent/package.json +0 -24
  250. package/manifests/outputs/builtins/interpolation/package.json +0 -24
  251. package/manifests/outputs/builtins/mock-observations/package.json +0 -24
  252. package/manifests/outputs/builtins/multiply/package.json +0 -24
  253. package/manifests/outputs/builtins/regex/package.json +0 -24
  254. package/manifests/outputs/builtins/sci/package.json +0 -24
  255. package/manifests/outputs/builtins/sci-embodied/package.json +0 -24
  256. package/manifests/outputs/builtins/shell/package.json +0 -24
  257. package/manifests/outputs/builtins/subtract/package.json +0 -24
  258. package/manifests/outputs/builtins/sum/package.json +0 -24
  259. package/manifests/outputs/builtins/time-converter/package.json +0 -24
  260. package/manifests/outputs/builtins/time-sync/package.json +0 -24
  261. package/manifests/outputs/features/package.json +0 -24
  262. package/manifests/outputs/features/regroup/package.json +0 -24
  263. package/manifests/outputs/pipelines/package.json +0 -24
@@ -7,13 +7,15 @@ const debug_logger_1 = require("../../common/util/debug-logger");
7
7
  const logger_1 = require("../../common/util/logger");
8
8
  const helpers_1 = require("../util/helpers");
9
9
  const strings_1 = require("../config/strings");
10
- const { MERGING_DEFAULTS_WITH_INPUT_DATA, EMPTY_PIPELINE, CONFIG_WARN, COMPUTING_PIPELINE_FOR_NODE, COMPUTING_COMPONENT_PIPELINE, REGROUPING, OBSERVING, } = strings_1.STRINGS;
10
+ const { MERGING_DEFAULTS_WITH_INPUT_DATA, EMPTY_PIPELINE, CONFIG_WARN, COMPUTING_PIPELINE_FOR_NODE, COMPUTING_COMPONENT_PIPELINE, REGROUPING, OBSERVING, SKIPPING_REGROUP, } = strings_1.STRINGS;
11
+ const childNames = new Set();
11
12
  /**
12
13
  * Traverses all child nodes based on children grouping.
13
14
  */
14
15
  const traverse = async (children, params) => {
15
16
  for (const child in children) {
16
17
  console.debug(COMPUTING_COMPONENT_PIPELINE(child));
18
+ childNames.add(child);
17
19
  await computeNode(children[child], params);
18
20
  }
19
21
  };
@@ -107,20 +109,25 @@ const computeNode = async (node, params) => {
107
109
  */
108
110
  if ((noFlags || params.regroup) && pipelineCopy.regroup) {
109
111
  const originalOutputs = params.append ? node.outputs || [] : [];
110
- node.children = (0, regroup_1.Regroup)(outputStorage, originalOutputs, pipelineCopy.regroup);
111
- delete node.inputs;
112
- delete node.outputs;
113
- debug_logger_1.debugLogger.setExecutingPluginName();
114
- console.debug(REGROUPING);
115
- return traverse(node.children, {
116
- ...params,
117
- pipeline: {
118
- ...pipelineCopy,
119
- regroup: undefined,
120
- },
121
- defaults,
122
- config,
123
- });
112
+ if (!(0, regroup_1.isRegrouped)(pipelineCopy.regroup, outputStorage, childNames)) {
113
+ node.children = (0, regroup_1.Regroup)(outputStorage, originalOutputs, pipelineCopy.regroup);
114
+ delete node.inputs;
115
+ delete node.outputs;
116
+ debug_logger_1.debugLogger.setExecutingPluginName();
117
+ console.debug(REGROUPING);
118
+ return traverse(node.children, {
119
+ ...params,
120
+ pipeline: {
121
+ ...pipelineCopy,
122
+ regroup: undefined,
123
+ },
124
+ defaults,
125
+ config,
126
+ });
127
+ }
128
+ else {
129
+ console.debug(SKIPPING_REGROUP);
130
+ }
124
131
  }
125
132
  console.debug('\n');
126
133
  /**
@@ -159,4 +166,4 @@ const compute = async (tree, params) => {
159
166
  return copyOfTree;
160
167
  };
161
168
  exports.compute = compute;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL2NvbXB1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdUNBQWtDO0FBQ2xDLHVDQUF5QztBQUV6QyxpRUFBMkQ7QUFDM0QscURBQWdEO0FBRWhELDZDQUE2QztBQUU3QywrQ0FBMEM7QUFJMUMsTUFBTSxFQUNKLGdDQUFnQyxFQUNoQyxjQUFjLEVBQ2QsV0FBVyxFQUNYLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLFNBQVMsR0FDVixHQUFHLGlCQUFPLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxRQUFhLEVBQUUsTUFBcUIsRUFBRSxFQUFFO0lBQzlELEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRCxNQUFNLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDNUM7QUFDSCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQ3BCLE1BQXNCLEVBQ3RCLFFBQWtDLEVBQ2xDLEVBQUU7SUFDRixJQUFJLE1BQU0sRUFBRTtRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVE7WUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFBLHNCQUFZLEVBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFWCxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFdEQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENB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S0FBSyxFQUFFLElBQVMsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDaEUsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpDLE1BQU0sV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFOVyxRQUFBLE9BQU8sV0FNbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtSZWdyb3VwfSBmcm9tICcuL3JlZ3JvdXAnO1xuaW1wb3J0IHthZGRFeHBsYWluRGF0YX0gZnJvbSAnLi9leHBsYWluJztcblxuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZGVidWctbG9nZ2VyJztcbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9sb2dnZXInO1xuXG5pbXBvcnQge21lcmdlT2JqZWN0c30gZnJvbSAnLi4vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7Q29tcHV0ZVBhcmFtcywgTm9kZSwgUGhhc2VkUGlwZWxpbmV9IGZyb20gJy4uL3R5cGVzL2NvbXB1dGUnO1xuXG5jb25zdCB7XG4gIE1FUkdJTkdfREVGQVVMVFNfV0lUSF9JTlBVVF9EQVRBLFxuICBFTVBUWV9QSVBFTElORSxcbiAgQ09ORklHX1dBUk4sXG4gIENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERSxcbiAgQ09NUFVUSU5HX0NPTVBPTkVOVF9QSVBFTElORSxcbiAgUkVHUk9VUElORyxcbiAgT0JTRVJWSU5HLFxufSA9IFNUUklOR1M7XG5cbi8qKlxuICogVHJhdmVyc2VzIGFsbCBjaGlsZCBub2RlcyBiYXNlZCBvbiBjaGlsZHJlbiBncm91cGluZy5cbiAqL1xuY29uc3QgdHJhdmVyc2UgPSBhc3luYyAoY2hpbGRyZW46IGFueSwgcGFyYW1zOiBDb21wdXRlUGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgY2hpbGQgaW4gY2hpbGRyZW4pIHtcbiAgICBjb25zb2xlLmRlYnVnKENPTVBVVElOR19DT01QT05FTlRfUElQRUxJTkUoY2hpbGQpKTtcbiAgICBhd2FpdCBjb21wdXRlTm9kZShjaGlsZHJlbltjaGlsZF0sIHBhcmFtcyk7XG4gIH1cbn07XG5cbi8qKlxuICogQXBwZW5kcyBgZGVmYXVsdGAgdmFsdWVzIHRvIGBpbnB1dHNgLlxuICovXG5jb25zdCBtZXJnZURlZmF1bHRzID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBkZWZhdWx0czogUGx1Z2luUGFyYW1zIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgaWYgKGlucHV0cykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gZGVmYXVsdHNcbiAgICAgID8gaW5wdXRzLm1hcChpbnB1dCA9PiBtZXJnZU9iamVjdHMoZGVmYXVsdHMsIGlucHV0KSlcbiAgICAgIDogaW5wdXRzO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgY29uc29sZS5kZWJ1ZyhNRVJHSU5HX0RFRkFVTFRTX1dJVEhfSU5QVVRfREFUQSwgJ1xcbicpO1xuXG4gIHJldHVybiBkZWZhdWx0cyA/IFtkZWZhdWx0c10gOiBbXTtcbn07XG5cbi8qKlxuICogV2FybnMgaWYgdGhlIGBjb25maWdgIGlzIHByb3ZpZGVkIGluIHRoZSBtYW5pZmVzdC5cbiAqL1xuY29uc3Qgd2FybklmQ29uZmlnUHJvdmlkZWQgPSAobm9kZTogYW55KSA9PiB7XG4gIGlmICgnY29uZmlnJyBpbiBub2RlKSB7XG4gICAgY29uc3QgcGx1Z2lucyA9IE9iamVjdC5rZXlzKG5vZGUuY29uZmlnIHx8IHt9KTtcbiAgICBjb25zdCBqb2luZWRQbHVnaW5zID0gcGx1Z2lucy5qb2luKCcsICcpO1xuICAgIGNvbnN0IGlzTW9yZSA9IHBsdWdpbnMubGVuZ3RoID4gMTtcblxuICAgIGxvZ2dlci53YXJuKENPTkZJR19XQVJOKGpvaW5lZFBsdWdpbnMsIGlzTW9yZSkpO1xuICB9XG59O1xuXG4vKipcbiAqIDEuIElmIHRoZSBub2RlIGhhcyBpdCdzIG93biBwaXBlbGluZSwgZGVmYXVsdHMgb3IgY29uZmlnIHRoZW4gdXNlIHRoYXQsXG4gKiAgICBvdGhlcndpc2UgdXNlIHdoYXRldmVyIGhhcyBiZWVuIHBhc3NlZCBkb3duIGZyb20gZnVydGhlciB1cCB0aGUgdHJlZS5cbiAqIDIuIElmIGl0J3MgYSBncm91cGluZyBub2RlLCB0aGVuIGZpcnN0IG9mIGFsbCBjb21wdXRlcyBhbGwgaXQncyBjaGlsZHJlbi5cbiAqICAgIFRoaXMgaXMgZG9pbmcgYSBkZXB0aCBmaXJzdCB0cmF2ZXJzYWwuXG4gKiAzLiBPdGhlcndpc2UgbWVyZ2VzIHRoZSBkZWZhdWx0cyBpbnRvIHRoZSBpbnB1dHMuXG4gKiA0LiBJdGVyYXRlcyBvdmVyIHBpcGVsaW5lIHBoYXNlcyAob2JzZXJ2ZSwgcmVncm91cCwgY29tcHV0ZSkuXG4gKiA1LiBPYnNlcnZlIHBsdWdpbnMgYXJlIHVzZWQgdG8gaW5zZXJ0IGlucHV0IHZhbHVlc1xuICogICAgKGlzb2xhdGVkIGV4ZWN1dGlvbiBjYW4gYmUgYWNoaXZlZCBieSBwYXNzaW5nIGAtLW9ic2VydmVgIGZsYWcgdG8gQ0xJIGNvbW1hbmQpLlxuICogNi4gUmVncm91cCBwbHVnaW4gaXMgdXNlZCB0byBncm91cCBleGlzdGluZyBpbnB1dHMgYnkgY3JpdGVyaWFcbiAqICAgIChpc29sYXRlZCBleGVjdXRpb24gY2FuIGJlIGFjaGl2ZWQgYnkgcGFzc2luZyBgLS1yZWdyb3VwYCBmbGFnIHRvIENMSSBjb21tYW5kKS5cbiAqICAgIFNpbmNlIGl0IGNyZWF0ZXMgbmV3IGNoaWxkcmVuIGZvciBub2RlLCBleGlzdGluZyBpbnB1dHMgYW5kIG91dHB1dHMgYXJlIGRyb3BwZWQgYW5kIHJlY3Vyc2l2ZSB0cmF2ZXJzYWwgaXMgY2FsbGVkXG4gKiAgICBmb3IgbmV3Ym9yZCBjaGlsZCBjb21wb25lbnQuXG4gKiA3LiBDb21wdXRlIHBsdWdpbnMgYXJlIHVzZWQgdG8gZG8gZGVzaXJlZCBjb21wdXRhdGlvbnMgYW5kIGFwcGVuZGluZyB0aGUgcmVzdWx0IHRvIG91dHB1dHNcbiAqICAgIChpc29sYXRlZCBleGVjdXRpb24gY2FuIGJlIGFjaGl2ZWQgYnkgcGFzc2luZyBgLS1jb21wdXRlYCBmbGFnIHRvIENMSSBjb21tYW5kKS5cbiAqL1xuY29uc3QgY29tcHV0ZU5vZGUgPSBhc3luYyAobm9kZTogTm9kZSwgcGFyYW1zOiBDb21wdXRlUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgcGlwZWxpbmUgPSBub2RlLnBpcGVsaW5lIHx8IChwYXJhbXMucGlwZWxpbmUgYXMgUGhhc2VkUGlwZWxpbmUpO1xuICBjb25zdCBjb25maWcgPSBub2RlLmNvbmZpZyB8fCBwYXJhbXMuY29uZmlnO1xuICBjb25zdCBkZWZhdWx0cyA9IG5vZGUuZGVmYXVsdHMgfHwgcGFyYW1zLmRlZmF1bHRzO1xuICBjb25zdCBub0ZsYWdzID0gIXBhcmFtcy5vYnNlcnZlICYmICFwYXJhbXMucmVncm91cCAmJiAhcGFyYW1zLmNvbXB1dGU7XG5cbiAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZSgpO1xuICB3YXJuSWZDb25maWdQcm92aWRlZChub2RlKTtcblxuICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgIHJldHVybiB0cmF2ZXJzZShub2RlLmNoaWxkcmVuLCB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwaXBlbGluZSxcbiAgICAgIGRlZmF1bHRzLFxuICAgICAgY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgbGV0IG91dHB1dFN0b3JhZ2UgPSBzdHJ1Y3R1cmVkQ2xvbmUobm9kZS5pbnB1dHMpIGFzIFBsdWdpblBhcmFtc1tdO1xuICBvdXRwdXRTdG9yYWdlID0gbWVyZ2VEZWZhdWx0cyhvdXRwdXRTdG9yYWdlLCBkZWZhdWx0cyk7XG4gIGNvbnN0IHBpcGVsaW5lQ29weSA9IHN0cnVjdHVyZWRDbG9uZShwaXBlbGluZSkgfHwge307XG5cbiAgLyoqIENoZWNrcyBpZiBwaXBlbGluZSBpcyBub3QgYW4gYXJyYXkgb3IgZW1wdHkgb2JqZWN0LiAqL1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheShwaXBlbGluZUNvcHkpIHx8XG4gICAgKHR5cGVvZiBwaXBlbGluZUNvcHkgPT09ICdvYmplY3QnICYmXG4gICAgICBwaXBlbGluZUNvcHkgIT09IG51bGwgJiZcbiAgICAgIE9iamVjdC5rZXlzKHBpcGVsaW5lQ29weSkubGVuZ3RoID09PSAwKVxuICApIHtcbiAgICBsb2dnZXIud2FybihFTVBUWV9QSVBFTElORSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgaXRlcmF0aW9uIGlzIG9uIG9ic2VydmUgcGlwZWxpbmUsIHRoZW4gZXhlY3V0ZXMgb2JzZXJ2ZSBwbHVnaW5zIGFuZCBzZXRzIHRoZSBpbnB1dHMgdmFsdWUuXG4gICAqL1xuICBpZiAoKG5vRmxhZ3MgfHwgcGFyYW1zLm9ic2VydmUpICYmIHBpcGVsaW5lQ29weS5vYnNlcnZlKSB7XG4gICAgd2hpbGUgKHBpcGVsaW5lQ29weS5vYnNlcnZlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgY29uc3QgcGx1Z2luTmFtZSA9IHBpcGVsaW5lQ29weS5vYnNlcnZlLnNoaWZ0KCkgYXMgc3RyaW5nO1xuICAgICAgY29uc29sZS5kZWJ1ZyhPQlNFUlZJTkcocGx1Z2luTmFtZSkpO1xuICAgICAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZShwbHVnaW5OYW1lKTtcblxuICAgICAgY29uc3QgcGx1Z2luID0gcGFyYW1zLnBsdWdpblN0b3JhZ2UuZ2V0KHBsdWdpbk5hbWUpO1xuICAgICAgY29uc3Qgbm9kZUNvbmZpZyA9IGNvbmZpZyAmJiBjb25maWdbcGx1Z2luTmFtZV07XG5cbiAgICAgIG91dHB1dFN0b3JhZ2UgPSBhd2FpdCBwbHVnaW4uZXhlY3V0ZShvdXRwdXRTdG9yYWdlLCBub2RlQ29uZmlnKTtcbiAgICAgIG5vZGUuaW5wdXRzID0gb3V0cHV0U3RvcmFnZTtcblxuICAgICAgaWYgKHBhcmFtcy5jb250ZXh0LmV4cGxhaW5lcikge1xuICAgICAgICBhZGRFeHBsYWluRGF0YSh7XG4gICAgICAgICAgcGx1Z2luTmFtZSxcbiAgICAgICAgICBtZXRhZGF0YTogcGx1Z2luLm1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgcmVncm91cCBpcyByZXF1ZXN0ZWQsIGV4ZWN1dGUgcmVncm91cCBzdHJhdGVneSwgZGVsZXRlIGNoaWxkJ3MgaW5wdXRzLCBvdXRwdXRzIGFuZCBlbXB0eSByZWdyb3VwIGFycmF5LlxuICAgKi9cbiAgaWYgKChub0ZsYWdzIHx8IHBhcmFtcy5yZWdyb3VwKSAmJiBwaXBlbGluZUNvcHkucmVncm91cCkge1xuICAgIGNvbnN0IG9yaWdpbmFsT3V0cHV0cyA9IHBhcmFtcy5hcHBlbmQgPyBub2RlLm91dHB1dHMgfHwgW10gOiBbXTtcblxuICAgIG5vZGUuY2hpbGRyZW4gPSBSZWdyb3VwKFxuICAgICAgb3V0cHV0U3RvcmFnZSxcbiAgICAgIG9yaWdpbmFsT3V0cHV0cyxcbiAgICAgIHBpcGVsaW5lQ29weS5yZWdyb3VwXG4gICAgKTtcblxuICAgIGRlbGV0ZSBub2RlLmlucHV0cztcbiAgICBkZWxldGUgbm9kZS5vdXRwdXRzO1xuXG4gICAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZSgpO1xuICAgIGNvbnNvbGUuZGVidWcoUkVHUk9VUElORyk7XG5cbiAgICByZXR1cm4gdHJhdmVyc2Uobm9kZS5jaGlsZHJlbiwge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcGlwZWxpbmU6IHtcbiAgICAgICAgLi4ucGlwZWxpbmVDb3B5LFxuICAgICAgICByZWdyb3VwOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdHMsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBjb25zb2xlLmRlYnVnKCdcXG4nKTtcblxuICAvKipcbiAgICogSWYgaXRlcmF0aW9uIGlzIG9uIGNvbXB1dGUgcGx1Z2luLCB0aGVuIGV4ZWN1dGVzIGNvbXB1dGUgcGx1Z2lucyBhbmQgc2V0cyB0aGUgb3V0cHV0cyB2YWx1ZS5cbiAgICovXG4gIGlmICgobm9GbGFncyB8fCBwYXJhbXMuY29tcHV0ZSkgJiYgcGlwZWxpbmVDb3B5LmNvbXB1dGUpIHtcbiAgICBjb25zdCBvcmlnaW5hbE91dHB1dHMgPSBwYXJhbXMuYXBwZW5kID8gbm9kZS5vdXRwdXRzIHx8IFtdIDogW107XG5cbiAgICB3aGlsZSAocGlwZWxpbmVDb3B5LmNvbXB1dGUubGVuZ3RoICE9PSAwKSB7XG4gICAgICBjb25zdCBwbHVnaW5OYW1lID0gcGlwZWxpbmVDb3B5LmNvbXB1dGUuc2hpZnQoKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBwbHVnaW4gPSBwYXJhbXMucGx1Z2luU3RvcmFnZS5nZXQocGx1Z2luTmFtZSk7XG4gICAgICBjb25zdCBub2RlQ29uZmlnID0gY29uZmlnICYmIGNvbmZpZ1twbHVnaW5OYW1lXTtcblxuICAgICAgY29uc29sZS5kZWJ1ZyhDT01QVVRJTkdfUElQRUxJTkVfRk9SX05PREUocGx1Z2luTmFtZSkpO1xuICAgICAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZShwbHVnaW5OYW1lKTtcblxuICAgICAgb3V0cHV0U3RvcmFnZSA9IGF3YWl0IHBsdWdpbi5leGVjdXRlKG91dHB1dFN0b3JhZ2UsIG5vZGVDb25maWcpO1xuXG4gICAgICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKCk7XG5cbiAgICAgIG5vZGUub3V0cHV0cyA9IG91dHB1dFN0b3JhZ2U7XG5cbiAgICAgIGlmIChwYXJhbXMuY29udGV4dC5leHBsYWluZXIpIHtcbiAgICAgICAgYWRkRXhwbGFpbkRhdGEoe1xuICAgICAgICAgIHBsdWdpbk5hbWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHBsdWdpbi5tZXRhZGF0YSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5hcHBlbmQpIHtcbiAgICAgIG5vZGUub3V0cHV0cyA9IG9yaWdpbmFsT3V0cHV0cy5jb25jYXQobm9kZS5vdXRwdXRzIHx8IFtdKTtcbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmRlYnVnKCdcXG4nKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBjb3B5IG9mIGV4aXN0aW5nIHRyZWUsIHRoZW4gYXBwbGllcyBjb21wdXRpbmcgc3RyYXRlZ3kuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlID0gYXN5bmMgKHRyZWU6IGFueSwgcGFyYW1zOiBDb21wdXRlUGFyYW1zKSA9PiB7XG4gIGNvbnN0IGNvcHlPZlRyZWUgPSBzdHJ1Y3R1cmVkQ2xvbmUodHJlZSk7XG5cbiAgYXdhaXQgY29tcHV0ZU5vZGUoY29weU9mVHJlZSwgcGFyYW1zKTtcblxuICByZXR1cm4gY29weU9mVHJlZTtcbn07XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL2NvbXB1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdUNBQStDO0FBQy9DLHVDQUF5QztBQUV6QyxpRUFBMkQ7QUFDM0QscURBQWdEO0FBRWhELDZDQUE2QztBQUU3QywrQ0FBMEM7QUFJMUMsTUFBTSxFQUNKLGdDQUFnQyxFQUNoQyxjQUFjLEVBQ2QsV0FBVyxFQUNYLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsR0FBRyxpQkFBTyxDQUFDO0FBRVosTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUVyQzs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxRQUFhLEVBQUUsTUFBcUIsRUFBRSxFQUFFO0lBQzlELEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRCxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsTUFBc0IsRUFDdEIsUUFBa0MsRUFDbEMsRUFBRTtJQUNGLElBQUksTUFBTSxFQUFFO1FBQ1YsTUFBTSxRQUFRLEdBQUcsUUFBUTtZQUN2QixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUEsc0JBQVksRUFBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVYLE9BQU8sUUFBUSxD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QkFDMUIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMzRDtLQUNGO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxJQUFTLEVBQUUsTUFBcUIsRUFBRSxFQUFFO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBTlcsUUFBQSxPQUFPLFdBTWxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7aXNSZWdyb3VwZWQsIFJlZ3JvdXB9IGZyb20gJy4vcmVncm91cCc7XG5pbXBvcnQge2FkZEV4cGxhaW5EYXRhfSBmcm9tICcuL2V4cGxhaW4nO1xuXG5pbXBvcnQge2RlYnVnTG9nZ2VyfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7bWVyZ2VPYmplY3RzfSBmcm9tICcuLi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uL2NvbmZpZy9zdHJpbmdzJztcblxuaW1wb3J0IHtDb21wdXRlUGFyYW1zLCBOb2RlLCBQaGFzZWRQaXBlbGluZX0gZnJvbSAnLi4vdHlwZXMvY29tcHV0ZSc7XG5cbmNvbnN0IHtcbiAgTUVSR0lOR19ERUZBVUxUU19XSVRIX0lOUFVUX0RBVEEsXG4gIEVNUFRZX1BJUEVMSU5FLFxuICBDT05GSUdfV0FSTixcbiAgQ09NUFVUSU5HX1BJUEVMSU5FX0ZPUl9OT0RFLFxuICBDT01QVVRJTkdfQ09NUE9ORU5UX1BJUEVMSU5FLFxuICBSRUdST1VQSU5HLFxuICBPQlNFUlZJTkcsXG4gIFNLSVBQSU5HX1JFR1JPVVAsXG59ID0gU1RSSU5HUztcblxuY29uc3QgY2hpbGROYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4vKipcbiAqIFRyYXZlcnNlcyBhbGwgY2hpbGQgbm9kZXMgYmFzZWQgb24gY2hpbGRyZW4gZ3JvdXBpbmcuXG4gKi9cbmNvbnN0IHRyYXZlcnNlID0gYXN5bmMgKGNoaWxkcmVuOiBhbnksIHBhcmFtczogQ29tcHV0ZVBhcmFtcykgPT4ge1xuICBmb3IgKGNvbnN0IGNoaWxkIGluIGNoaWxkcmVuKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhDT01QVVRJTkdfQ09NUE9ORU5UX1BJUEVMSU5FKGNoaWxkKSk7XG4gICAgY2hpbGROYW1lcy5hZGQoY2hpbGQpO1xuICAgIGF3YWl0IGNvbXB1dGVOb2RlKGNoaWxkcmVuW2NoaWxkXSwgcGFyYW1zKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBcHBlbmRzIGBkZWZhdWx0YCB2YWx1ZXMgdG8gYGlucHV0c2AuXG4gKi9cbmNvbnN0IG1lcmdlRGVmYXVsdHMgPSAoXG4gIGlucHV0czogUGx1Z2luUGFyYW1zW10sXG4gIGRlZmF1bHRzOiBQbHVnaW5QYXJhbXMgfCB1bmRlZmluZWRcbikgPT4ge1xuICBpZiAoaW5wdXRzKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBkZWZhdWx0c1xuICAgICAgPyBpbnB1dHMubWFwKGlucHV0ID0+IG1lcmdlT2JqZWN0cyhkZWZhdWx0cywgaW5wdXQpKVxuICAgICAgOiBpbnB1dHM7XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBjb25zb2xlLmRlYnVnKE1FUkdJTkdfREVGQVVMVFNfV0lUSF9JTlBVVF9EQVRBLCAnXFxuJyk7XG5cbiAgcmV0dXJuIGRlZmF1bHRzID8gW2RlZmF1bHRzXSA6IFtdO1xufTtcblxuLyoqXG4gKiBXYXJucyBpZiB0aGUgYGNvbmZpZ2AgaXMgcHJvdmlkZWQgaW4gdGhlIG1hbmlmZXN0LlxuICovXG5jb25zdCB3YXJuSWZDb25maWdQcm92aWRlZCA9IChub2RlOiBhbnkpID0+IHtcbiAgaWYgKCdjb25maWcnIGluIG5vZGUpIHtcbiAgICBjb25zdCBwbHVnaW5zID0gT2JqZWN0LmtleXMobm9kZS5jb25maWcgfHwge30pO1xuICAgIGNvbnN0IGpvaW5lZFBsdWdpbnMgPSBwbHVnaW5zLmpvaW4oJywgJyk7XG4gICAgY29uc3QgaXNNb3JlID0gcGx1Z2lucy5sZW5ndGggPiAxO1xuXG4gICAgbG9nZ2VyLndhcm4oQ09ORklHX1dBUk4oam9pbmVkUGx1Z2lucywgaXNNb3JlKSk7XG4gIH1cbn07XG5cbi8qKlxuICogMS4gSWYgdGhlIG5vZGUgaGFzIGl0J3Mgb3duIHBpcGVsaW5lLCBkZWZhdWx0cyBvciBjb25maWcgdGhlbiB1c2UgdGhhdCxcbiAqICAgIG90aGVyd2lzZSB1c2Ugd2hhdGV2ZXIgaGFzIGJlZW4gcGFzc2VkIGRvd24gZnJvbSBmdXJ0aGVyIHVwIHRoZSB0cmVlLlxuICogMi4gSWYgaXQncyBhIGdyb3VwaW5nIG5vZGUsIHRoZW4gZmlyc3Qgb2YgYWxsIGNvbXB1dGVzIGFsbCBpdCdzIGNoaWxkcmVuLlxuICogICAgVGhpcyBpcyBkb2luZyBhIGRlcHRoIGZpcnN0IHRyYXZlcnNhbC5cbiAqIDMuIE90aGVyd2lzZSBtZXJnZXMgdGhlIGRlZmF1bHRzIGludG8gdGhlIGlucHV0cy5cbiAqIDQuIEl0ZXJhdGVzIG92ZXIgcGlwZWxpbmUgcGhhc2VzIChvYnNlcnZlLCByZWdyb3VwLCBjb21wdXRlKS5cbiAqIDUuIE9ic2VydmUgcGx1Z2lucyBhcmUgdXNlZCB0byBpbnNlcnQgaW5wdXQgdmFsdWVzXG4gKiAgICAoaXNvbGF0ZWQgZXhlY3V0aW9uIGNhbiBiZSBhY2hpdmVkIGJ5IHBhc3NpbmcgYC0tb2JzZXJ2ZWAgZmxhZyB0byBDTEkgY29tbWFuZCkuXG4gKiA2LiBSZWdyb3VwIHBsdWdpbiBpcyB1c2VkIHRvIGdyb3VwIGV4aXN0aW5nIGlucHV0cyBieSBjcml0ZXJpYVxuICogICAgKGlzb2xhdGVkIGV4ZWN1dGlvbiBjYW4gYmUgYWNoaXZlZCBieSBwYXNzaW5nIGAtLXJlZ3JvdXBgIGZsYWcgdG8gQ0xJIGNvbW1hbmQpLlxuICogICAgU2luY2UgaXQgY3JlYXRlcyBuZXcgY2hpbGRyZW4gZm9yIG5vZGUsIGV4aXN0aW5nIGlucHV0cyBhbmQgb3V0cHV0cyBhcmUgZHJvcHBlZCBhbmQgcmVjdXJzaXZlIHRyYXZlcnNhbCBpcyBjYWxsZWRcbiAqICAgIGZvciBuZXdib3JkIGNoaWxkIGNvbXBvbmVudC5cbiAqIDcuIENvbXB1dGUgcGx1Z2lucyBhcmUgdXNlZCB0byBkbyBkZXNpcmVkIGNvbXB1dGF0aW9ucyBhbmQgYXBwZW5kaW5nIHRoZSByZXN1bHQgdG8gb3V0cHV0c1xuICogICAgKGlzb2xhdGVkIGV4ZWN1dGlvbiBjYW4gYmUgYWNoaXZlZCBieSBwYXNzaW5nIGAtLWNvbXB1dGVgIGZsYWcgdG8gQ0xJIGNvbW1hbmQpLlxuICovXG5jb25zdCBjb21wdXRlTm9kZSA9IGFzeW5jIChub2RlOiBOb2RlLCBwYXJhbXM6IENvbXB1dGVQYXJhbXMpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBwaXBlbGluZSA9IG5vZGUucGlwZWxpbmUgfHwgKHBhcmFtcy5waXBlbGluZSBhcyBQaGFzZWRQaXBlbGluZSk7XG4gIGNvbnN0IGNvbmZpZyA9IG5vZGUuY29uZmlnIHx8IHBhcmFtcy5jb25maWc7XG4gIGNvbnN0IGRlZmF1bHRzID0gbm9kZS5kZWZhdWx0cyB8fCBwYXJhbXMuZGVmYXVsdHM7XG4gIGNvbnN0IG5vRmxhZ3MgPSAhcGFyYW1zLm9ic2VydmUgJiYgIXBhcmFtcy5yZWdyb3VwICYmICFwYXJhbXMuY29tcHV0ZTtcblxuICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKCk7XG4gIHdhcm5JZkNvbmZpZ1Byb3ZpZGVkKG5vZGUpO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgcmV0dXJuIHRyYXZlcnNlKG5vZGUuY2hpbGRyZW4sIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHBpcGVsaW5lLFxuICAgICAgZGVmYXVsdHMsXG4gICAgICBjb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBsZXQgb3V0cHV0U3RvcmFnZSA9IHN0cnVjdHVyZWRDbG9uZShub2RlLmlucHV0cykgYXMgUGx1Z2luUGFyYW1zW107XG4gIG91dHB1dFN0b3JhZ2UgPSBtZXJnZURlZmF1bHRzKG91dHB1dFN0b3JhZ2UsIGRlZmF1bHRzKTtcbiAgY29uc3QgcGlwZWxpbmVDb3B5ID0gc3RydWN0dXJlZENsb25lKHBpcGVsaW5lKSB8fCB7fTtcblxuICAvKiogQ2hlY2tzIGlmIHBpcGVsaW5lIGlzIG5vdCBhbiBhcnJheSBvciBlbXB0eSBvYmplY3QuICovXG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHBpcGVsaW5lQ29weSkgfHxcbiAgICAodHlwZW9mIHBpcGVsaW5lQ29weSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIHBpcGVsaW5lQ29weSAhPT0gbnVsbCAmJlxuICAgICAgT2JqZWN0LmtleXMocGlwZWxpbmVDb3B5KS5sZW5ndGggPT09IDApXG4gICkge1xuICAgIGxvZ2dlci53YXJuKEVNUFRZX1BJUEVMSU5FKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBpdGVyYXRpb24gaXMgb24gb2JzZXJ2ZSBwaXBlbGluZSwgdGhlbiBleGVjdXRlcyBvYnNlcnZlIHBsdWdpbnMgYW5kIHNldHMgdGhlIGlucHV0cyB2YWx1ZS5cbiAgICovXG4gIGlmICgobm9GbGFncyB8fCBwYXJhbXMub2JzZXJ2ZSkgJiYgcGlwZWxpbmVDb3B5Lm9ic2VydmUpIHtcbiAgICB3aGlsZSAocGlwZWxpbmVDb3B5Lm9ic2VydmUubGVuZ3RoICE9PSAwKSB7XG4gICAgICBjb25zdCBwbHVnaW5OYW1lID0gcGlwZWxpbmVDb3B5Lm9ic2VydmUuc2hpZnQoKSBhcyBzdHJpbmc7XG4gICAgICBjb25zb2xlLmRlYnVnKE9CU0VSVklORyhwbHVnaW5OYW1lKSk7XG4gICAgICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKHBsdWdpbk5hbWUpO1xuXG4gICAgICBjb25zdCBwbHVnaW4gPSBwYXJhbXMucGx1Z2luU3RvcmFnZS5nZXQocGx1Z2luTmFtZSk7XG4gICAgICBjb25zdCBub2RlQ29uZmlnID0gY29uZmlnICYmIGNvbmZpZ1twbHVnaW5OYW1lXTtcblxuICAgICAgb3V0cHV0U3RvcmFnZSA9IGF3YWl0IHBsdWdpbi5leGVjdXRlKG91dHB1dFN0b3JhZ2UsIG5vZGVDb25maWcpO1xuICAgICAgbm9kZS5pbnB1dHMgPSBvdXRwdXRTdG9yYWdlO1xuXG4gICAgICBpZiAocGFyYW1zLmNvbnRleHQuZXhwbGFpbmVyKSB7XG4gICAgICAgIGFkZEV4cGxhaW5EYXRhKHtcbiAgICAgICAgICBwbHVnaW5OYW1lLFxuICAgICAgICAgIG1ldGFkYXRhOiBwbHVnaW4ubWV0YWRhdGEsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiByZWdyb3VwIGlzIHJlcXVlc3RlZCwgZXhlY3V0ZSByZWdyb3VwIHN0cmF0ZWd5LCBkZWxldGUgY2hpbGQncyBpbnB1dHMsIG91dHB1dHMgYW5kIGVtcHR5IHJlZ3JvdXAgYXJyYXkuXG4gICAqL1xuICBpZiAoKG5vRmxhZ3MgfHwgcGFyYW1zLnJlZ3JvdXApICYmIHBpcGVsaW5lQ29weS5yZWdyb3VwKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxPdXRwdXRzID0gcGFyYW1zLmFwcGVuZCA/IG5vZGUub3V0cHV0cyB8fCBbXSA6IFtdO1xuXG4gICAgaWYgKCFpc1JlZ3JvdXBlZChwaXBlbGluZUNvcHkucmVncm91cCwgb3V0cHV0U3RvcmFnZSwgY2hpbGROYW1lcykpIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBSZWdyb3VwKFxuICAgICAgICBvdXRwdXRTdG9yYWdlLFxuICAgICAgICBvcmlnaW5hbE91dHB1dHMsXG4gICAgICAgIHBpcGVsaW5lQ29weS5yZWdyb3VwXG4gICAgICApO1xuXG4gICAgICBkZWxldGUgbm9kZS5pbnB1dHM7XG4gICAgICBkZWxldGUgbm9kZS5vdXRwdXRzO1xuXG4gICAgICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKCk7XG4gICAgICBjb25zb2xlLmRlYnVnKFJFR1JPVVBJTkcpO1xuXG4gICAgICByZXR1cm4gdHJhdmVyc2Uobm9kZS5jaGlsZHJlbiwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHBpcGVsaW5lOiB7XG4gICAgICAgICAgLi4ucGlwZWxpbmVDb3B5LFxuICAgICAgICAgIHJlZ3JvdXA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdHMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmRlYnVnKFNLSVBQSU5HX1JFR1JPVVApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUuZGVidWcoJ1xcbicpO1xuXG4gIC8qKlxuICAgKiBJZiBpdGVyYXRpb24gaXMgb24gY29tcHV0ZSBwbHVnaW4sIHRoZW4gZXhlY3V0ZXMgY29tcHV0ZSBwbHVnaW5zIGFuZCBzZXRzIHRoZSBvdXRwdXRzIHZhbHVlLlxuICAgKi9cbiAgaWYgKChub0ZsYWdzIHx8IHBhcmFtcy5jb21wdXRlKSAmJiBwaXBlbGluZUNvcHkuY29tcHV0ZSkge1xuICAgIGNvbnN0IG9yaWdpbmFsT3V0cHV0cyA9IHBhcmFtcy5hcHBlbmQgPyBub2RlLm91dHB1dHMgfHwgW10gOiBbXTtcblxuICAgIHdoaWxlIChwaXBlbGluZUNvcHkuY29tcHV0ZS5sZW5ndGggIT09IDApIHtcbiAgICAgIGNvbnN0IHBsdWdpbk5hbWUgPSBwaXBlbGluZUNvcHkuY29tcHV0ZS5zaGlmdCgpIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IHBsdWdpbiA9IHBhcmFtcy5wbHVnaW5TdG9yYWdlLmdldChwbHVnaW5OYW1lKTtcbiAgICAgIGNvbnN0IG5vZGVDb25maWcgPSBjb25maWcgJiYgY29uZmlnW3BsdWdpbk5hbWVdO1xuXG4gICAgICBjb25zb2xlLmRlYnVnKENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERShwbHVnaW5OYW1lKSk7XG4gICAgICBkZWJ1Z0xvZ2dlci5zZXRFeGVjdXRpbmdQbHVnaW5OYW1lKHBsdWdpbk5hbWUpO1xuXG4gICAgICBvdXRwdXRTdG9yYWdlID0gYXdhaXQgcGx1Z2luLmV4ZWN1dGUob3V0cHV0U3RvcmFnZSwgbm9kZUNvbmZpZyk7XG5cbiAgICAgIGRlYnVnTG9nZ2VyLnNldEV4ZWN1dGluZ1BsdWdpbk5hbWUoKTtcblxuICAgICAgbm9kZS5vdXRwdXRzID0gb3V0cHV0U3RvcmFnZTtcblxuICAgICAgaWYgKHBhcmFtcy5jb250ZXh0LmV4cGxhaW5lcikge1xuICAgICAgICBhZGRFeHBsYWluRGF0YSh7XG4gICAgICAgICAgcGx1Z2luTmFtZSxcbiAgICAgICAgICBtZXRhZGF0YTogcGx1Z2luLm1ldGFkYXRhLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLmFwcGVuZCkge1xuICAgICAgbm9kZS5vdXRwdXRzID0gb3JpZ2luYWxPdXRwdXRzLmNvbmNhdChub2RlLm91dHB1dHMgfHwgW10pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUuZGVidWcoJ1xcbicpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGNvcHkgb2YgZXhpc3RpbmcgdHJlZSwgdGhlbiBhcHBsaWVzIGNvbXB1dGluZyBzdHJhdGVneS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXB1dGUgPSBhc3luYyAodHJlZTogYW55LCBwYXJhbXM6IENvbXB1dGVQYXJhbXMpID0+IHtcbiAgY29uc3QgY29weU9mVHJlZSA9IHN0cnVjdHVyZWRDbG9uZSh0cmVlKTtcblxuICBhd2FpdCBjb21wdXRlTm9kZShjb3B5T2ZUcmVlLCBwYXJhbXMpO1xuXG4gIHJldHVybiBjb3B5T2ZUcmVlO1xufTtcbiJdfQ==
@@ -3,3 +3,8 @@ import { PluginParams } from '@grnsft/if-core/types';
3
3
  * Regroups inputs and outputs based on the given group keys.
4
4
  */
5
5
  export declare const Regroup: (inputs: PluginParams[], outputs: PluginParams[], groups: string[]) => any;
6
+ /**
7
+ * Grabs all the values according to grouping criteria, then
8
+ * checks if regroup values are present in the children list.
9
+ */
10
+ export declare const isRegrouped: (groups: string[], outputStorage: PluginParams[], childNames: Set<string>) => boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Regroup = void 0;
3
+ exports.isRegrouped = exports.Regroup = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("@grnsft/if-core/utils");
6
6
  const validations_1 = require("../../common/util/validations");
@@ -56,4 +56,16 @@ const Regroup = (inputs, outputs, groups) => {
56
56
  return acc.children;
57
57
  };
58
58
  exports.Regroup = Regroup;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFFdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUN0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFjLEVBQ2QsTUFBZ0IsRUFDWCxFQUFFO0lBQ1AsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFHLENBQUM7SUFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXRELE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBZ0IsRUFBWSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FDL0IsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUNWLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0lBRUYsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFtQixFQUFFLFFBQWdCLEVBQVUsRUFBRTtJQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLE9BQU8sR0FBRyxDQUNyQixNQUFzQixFQUN0QixPQUF1QixFQUN2QixNQUFnQixFQUNYLEVBQUU7SUFDUCxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFxQixFQUNyQixHQUFRLEVBQ1IsTUFBYyxFQUNkLEVBQUU7UUFDRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3BELGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQy9CLENBQUM7WUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUN0QixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SW52YWxpZEdyb3VwaW5nRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0lOVkFMSURfR1JPVVBfS0VZLCBSRUdST1VQX0VSUk9SfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ3JlYXRlcyBzdHJ1Y3R1cmUgdG8gaW5zZXJ0IGlucHV0cyBieSBncm91cHMuXG4gKi9cbmNvbnN0IGFwcGVuZEdyb3VwID0gKFxuICB2YWx1ZTogUGx1Z2luUGFyYW1zLFxuICBvYmplY3Q6IGFueSxcbiAgdGFyZ2V0OiBzdHJpbmcsXG4gIGdyb3Vwczogc3RyaW5nW11cbik6IGFueSA9PiB7XG4gIGlmIChncm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgb2JqZWN0W3RhcmdldF0gPSBvYmplY3RbdGFyZ2V0XSB8fCBbXTtcbiAgICBvYmplY3RbdGFyZ2V0XS5wdXNoKHZhbHVlKTtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgY29uc3QgZ3JvdXAgPSBncm91cHMuc2hpZnQoKSE7XG4gIG9iamVjdC5jaGlsZHJlbiA9IG9iamVjdC5jaGlsZHJlbiB8fCB7fTtcbiAgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSA9IG9iamVjdC5jaGlsZHJlbltncm91cF0gfHwge307XG5cbiAgcmV0dXJuIGFwcGVuZEdyb3VwKHZhbHVlLCBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdLCB0YXJnZXQsIGdyb3Vwcyk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgZ3JvdXBzIGFycmF5LlxuICovXG5jb25zdCB2YWxpZGF0ZUdyb3VwcyA9IChncm91cHM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBpbnB1dERhdGEgPSB7cmVncm91cDogZ3JvdXBzfTtcbiAgY29uc3QgdmFsaWRhdGlvblNjaGVtYSA9IHoucmVjb3JkKFxuICAgIHouc3RyaW5nKCksXG4gICAgei5hcnJheSh6LnN0cmluZygpLCB7bWVzc2FnZTogUkVHUk9VUF9FUlJPUn0pLm1pbigxKVxuICApO1xuXG4gIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgcmV0dXJuIGdyb3Vwcztcbn07XG5cbi8qKlxuICogTG9va3MgdXAgYSBncm91cCBrZXkgdmFsdWUgaW4gdGhlIGlucHV0LlxuICovXG5jb25zdCBsb29rdXBHcm91cEtleSA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBncm91cEtleTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKCFpbnB1dFtncm91cEtleV0pIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEdyb3VwaW5nRXJyb3IoSU5WQUxJRF9HUk9VUF9LRVkoZ3JvdXBLZXkpKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dFtncm91cEtleV07XG59O1xuXG4vKipcbiAqIFJlZ3JvdXBzIGlucHV0cyBhbmQgb3V0cHV0cyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZ3JvdXAga2V5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlZ3JvdXAgPSAoXG4gIGlucHV0czogUGx1Z2luUGFyYW1zW10sXG4gIG91dHB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBncm91cHM6IHN0cmluZ1tdXG4pOiBhbnkgPT4ge1xuICBjb25zdCB2YWxpZGF0ZWRHcm91cHMgPSB2YWxpZGF0ZUdyb3Vwcyhncm91cHMpO1xuXG4gIGNvbnN0IGFwcGVuZFRvQWNjdW11bGF0b3IgPSAoXG4gICAgaXRlbXM6IFBsdWdpblBhcmFtc1tdLFxuICAgIGFjYzogYW55LFxuICAgIHRhcmdldDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgZ3JvdXBzV2l0aERhdGEgPSB2YWxpZGF0ZWRHcm91cHMubWFwKGdyb3VwS2V5ID0+XG4gICAgICAgIGxvb2t1cEdyb3VwS2V5KGl0ZW0sIGdyb3VwS2V5KVxuICAgICAgKTtcbiAgICAgIGFwcGVuZEdyb3VwKGl0ZW0sIGFjYywgdGFyZ2V0LCBncm91cHNXaXRoRGF0YSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFjYyA9IHt9IGFzIGFueTtcbiAgYXBwZW5kVG9BY2N1bXVsYXRvcihpbnB1dHMsIGFjYywgJ2lucHV0cycpO1xuICBhcHBlbmRUb0FjY3VtdWxhdG9yKG91dHB1dHMsIGFjYywgJ291dHB1dHMnKTtcblxuICByZXR1cm4gYWNjLmNoaWxkcmVuO1xufTtcbiJdfQ==
59
+ /**
60
+ * Grabs all the values according to grouping criteria, then
61
+ * checks if regroup values are present in the children list.
62
+ */
63
+ const isRegrouped = (groups, outputStorage, childNames) => {
64
+ const validatedGroups = validateGroups(groups);
65
+ const regroupValues = validatedGroups
66
+ .map(group => [...new Set(outputStorage.map(output => output[group]))])
67
+ .flat();
68
+ return regroupValues.every(one => [...childNames].includes(one));
69
+ };
70
+ exports.isRegrouped = isRegrouped;
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFFdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUN0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVcsRUFDWCxNQUFjLEVBQ2QsTUFBZ0IsRUFDWCxFQUFFO0lBQ1AsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFHLENBQUM7SUFDOUIsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRXRELE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBZ0IsRUFBWSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO0lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FDL0IsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUNWLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNyRCxDQUFDO0lBRUYsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFtQixFQUFFLFFBQWdCLEVBQVUsRUFBRTtJQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQzdEO0lBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLE9BQU8sR0FBRyxDQUNyQixNQUFzQixFQUN0QixPQUF1QixFQUN2QixNQUFnQixFQUNYLEVBQUU7SUFDUCxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFxQixFQUNyQixHQUFRLEVBQ1IsTUFBYyxFQUNkLEVBQUU7UUFDRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3BELGNBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQy9CLENBQUM7WUFDRixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsR0FBRyxFQUFTLENBQUM7SUFDdEIsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUN0QixDQUFDLENBQUM7QUF6QlcsUUFBQSxPQUFPLFdBeUJsQjtBQUVGOzs7R0FHRztBQUNJLE1BQU0sV0FBVyxHQUFHLENBQ3pCLE1BQWdCLEVBQ2hCLGFBQTZCLEVBQzdCLFVBQXVCLEVBQ3ZCLEVBQUU7SUFDRixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsTUFBTSxhQUFhLEdBQUcsZUFBZTtTQUNsQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RSxJQUFJLEVBQUUsQ0FBQztJQUVWLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFYVyxRQUFBLFdBQVcsZUFXdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuY29uc3Qge0ludmFsaWRHcm91cGluZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtJTlZBTElEX0dST1VQX0tFWSwgUkVHUk9VUF9FUlJPUn0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIENyZWF0ZXMgc3RydWN0dXJlIHRvIGluc2VydCBpbnB1dHMgYnkgZ3JvdXBzLlxuICovXG5jb25zdCBhcHBlbmRHcm91cCA9IChcbiAgdmFsdWU6IFBsdWdpblBhcmFtcyxcbiAgb2JqZWN0OiBhbnksXG4gIHRhcmdldDogc3RyaW5nLFxuICBncm91cHM6IHN0cmluZ1tdXG4pOiBhbnkgPT4ge1xuICBpZiAoZ3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgIG9iamVjdFt0YXJnZXRdID0gb2JqZWN0W3RhcmdldF0gfHwgW107XG4gICAgb2JqZWN0W3RhcmdldF0ucHVzaCh2YWx1ZSk7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIGNvbnN0IGdyb3VwID0gZ3JvdXBzLnNoaWZ0KCkhO1xuICBvYmplY3QuY2hpbGRyZW4gPSBvYmplY3QuY2hpbGRyZW4gfHwge307XG4gIG9iamVjdC5jaGlsZHJlbltncm91cF0gPSBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdIHx8IHt9O1xuXG4gIHJldHVybiBhcHBlbmRHcm91cCh2YWx1ZSwgb2JqZWN0LmNoaWxkcmVuW2dyb3VwXSwgdGFyZ2V0LCBncm91cHMpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIGdyb3VwcyBhcnJheS5cbiAqL1xuY29uc3QgdmFsaWRhdGVHcm91cHMgPSAoZ3JvdXBzOiBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgaW5wdXREYXRhID0ge3JlZ3JvdXA6IGdyb3Vwc307XG4gIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZChcbiAgICB6LnN0cmluZygpLFxuICAgIHouYXJyYXkoei5zdHJpbmcoKSwge21lc3NhZ2U6IFJFR1JPVVBfRVJST1J9KS5taW4oMSlcbiAgKTtcblxuICB2YWxpZGF0ZSh2YWxpZGF0aW9uU2NoZW1hLCBpbnB1dERhdGEpO1xuXG4gIHJldHVybiBncm91cHM7XG59O1xuXG4vKipcbiAqIExvb2tzIHVwIGEgZ3JvdXAga2V5IHZhbHVlIGluIHRoZSBpbnB1dC5cbiAqL1xuY29uc3QgbG9va3VwR3JvdXBLZXkgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgZ3JvdXBLZXk6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmICghaW5wdXRbZ3JvdXBLZXldKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRHcm91cGluZ0Vycm9yKElOVkFMSURfR1JPVVBfS0VZKGdyb3VwS2V5KSk7XG4gIH1cblxuICByZXR1cm4gaW5wdXRbZ3JvdXBLZXldO1xufTtcblxuLyoqXG4gKiBSZWdyb3VwcyBpbnB1dHMgYW5kIG91dHB1dHMgYmFzZWQgb24gdGhlIGdpdmVuIGdyb3VwIGtleXMuXG4gKi9cbmV4cG9ydCBjb25zdCBSZWdyb3VwID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBvdXRwdXRzOiBQbHVnaW5QYXJhbXNbXSxcbiAgZ3JvdXBzOiBzdHJpbmdbXVxuKTogYW55ID0+IHtcbiAgY29uc3QgdmFsaWRhdGVkR3JvdXBzID0gdmFsaWRhdGVHcm91cHMoZ3JvdXBzKTtcblxuICBjb25zdCBhcHBlbmRUb0FjY3VtdWxhdG9yID0gKFxuICAgIGl0ZW1zOiBQbHVnaW5QYXJhbXNbXSxcbiAgICBhY2M6IGFueSxcbiAgICB0YXJnZXQ6IHN0cmluZ1xuICApID0+IHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IGdyb3Vwc1dpdGhEYXRhID0gdmFsaWRhdGVkR3JvdXBzLm1hcChncm91cEtleSA9PlxuICAgICAgICBsb29rdXBHcm91cEtleShpdGVtLCBncm91cEtleSlcbiAgICAgICk7XG4gICAgICBhcHBlbmRHcm91cChpdGVtLCBhY2MsIHRhcmdldCwgZ3JvdXBzV2l0aERhdGEpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBhY2MgPSB7fSBhcyBhbnk7XG4gIGFwcGVuZFRvQWNjdW11bGF0b3IoaW5wdXRzLCBhY2MsICdpbnB1dHMnKTtcbiAgYXBwZW5kVG9BY2N1bXVsYXRvcihvdXRwdXRzLCBhY2MsICdvdXRwdXRzJyk7XG5cbiAgcmV0dXJuIGFjYy5jaGlsZHJlbjtcbn07XG5cbi8qKlxuICogR3JhYnMgYWxsIHRoZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIGdyb3VwaW5nIGNyaXRlcmlhLCB0aGVuXG4gKiAgY2hlY2tzIGlmIHJlZ3JvdXAgdmFsdWVzIGFyZSBwcmVzZW50IGluIHRoZSBjaGlsZHJlbiBsaXN0LlxuICovXG5leHBvcnQgY29uc3QgaXNSZWdyb3VwZWQgPSAoXG4gIGdyb3Vwczogc3RyaW5nW10sXG4gIG91dHB1dFN0b3JhZ2U6IFBsdWdpblBhcmFtc1tdLFxuICBjaGlsZE5hbWVzOiBTZXQ8c3RyaW5nPlxuKSA9PiB7XG4gIGNvbnN0IHZhbGlkYXRlZEdyb3VwcyA9IHZhbGlkYXRlR3JvdXBzKGdyb3Vwcyk7XG4gIGNvbnN0IHJlZ3JvdXBWYWx1ZXMgPSB2YWxpZGF0ZWRHcm91cHNcbiAgICAubWFwKGdyb3VwID0+IFsuLi5uZXcgU2V0KG91dHB1dFN0b3JhZ2UubWFwKG91dHB1dCA9PiBvdXRwdXRbZ3JvdXBdKSldKVxuICAgIC5mbGF0KCk7XG5cbiAgcmV0dXJuIHJlZ3JvdXBWYWx1ZXMuZXZlcnkob25lID0+IFsuLi5jaGlsZE5hbWVzXS5pbmNsdWRlcyhvbmUpKTtcbn07XG4iXX0=
@@ -4,6 +4,6 @@ import { ProcessArgsOutputs } from '../types/process-args';
4
4
  * 2. If output params are missing, warns user about it.
5
5
  * 3. Otherwise checks if `manifest` param is there, then processes with checking if it's a yaml file.
6
6
  * If it is, then returns object containing full path.
7
- * 4. If params are missing or invalid, then rejects with `ParseCliParamsError`.
7
+ * 4. If params are missing or invalid, runs `--help` command.
8
8
  */
9
9
  export declare const parseIfRunProcessArgs: () => ProcessArgsOutputs;
@@ -8,7 +8,7 @@ const helpers_1 = require("../../common/util/helpers");
8
8
  const logger_1 = require("../../common/util/logger");
9
9
  const config_1 = require("../config");
10
10
  const config_2 = require("../../common/config");
11
- const { ParseCliParamsError, CliSourceFileError } = utils_1.ERRORS;
11
+ const { CliSourceFileError } = utils_1.ERRORS;
12
12
  const { ARGS, HELP } = config_1.CONFIG;
13
13
  const { NO_OUTPUT } = config_1.STRINGS;
14
14
  const { SOURCE_IS_NOT_YAML, MANIFEST_IS_MISSING } = config_2.STRINGS;
@@ -21,7 +21,8 @@ const validateAndParseProcessArgs = () => {
21
21
  }
22
22
  catch (error) {
23
23
  if (error instanceof Error) {
24
- throw new ParseCliParamsError(error.message);
24
+ console.log(error.message);
25
+ (0, helpers_1.runHelpCommand)('if-run');
25
26
  }
26
27
  throw error;
27
28
  }
@@ -31,7 +32,7 @@ const validateAndParseProcessArgs = () => {
31
32
  * 2. If output params are missing, warns user about it.
32
33
  * 3. Otherwise checks if `manifest` param is there, then processes with checking if it's a yaml file.
33
34
  * If it is, then returns object containing full path.
34
- * 4. If params are missing or invalid, then rejects with `ParseCliParamsError`.
35
+ * 4. If params are missing or invalid, runs `--help` command.
35
36
  */
36
37
  const parseIfRunProcessArgs = () => {
37
38
  const { manifest, output, 'no-output': noOutput, debug, observe, regroup, compute, append, } = validateAndParseProcessArgs();
@@ -58,4 +59,4 @@ const parseIfRunProcessArgs = () => {
58
59
  throw new CliSourceFileError(MANIFEST_IS_MISSING);
59
60
  };
60
61
  exports.parseIfRunProcessArgs = parseIfRunProcessArgs;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdXRpbC9hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyQztBQUMzQyxpREFBNkM7QUFFN0MsaURBQXlEO0FBQ3pELHVEQUE4RDtBQUU5RCxxREFBZ0Q7QUFFaEQsc0NBQTBDO0FBQzFDLGdEQUE4RDtBQUk5RCxNQUFNLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFekQsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUIsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFDNUIsTUFBTSxFQUFDLGtCQUFrQixFQUFFLG1CQUFtQixFQUFDLEdBQUcsZ0JBQWMsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxFQUFFO0lBQ3ZDLElBQUk7UUFDRixPQUFPLElBQUEsNEJBQUssRUFBWSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsR0FBdUIsRUFBRTtJQUM1RCxNQUFNLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQUUsUUFBUSxFQUNyQixLQUFLLEVBQ0wsT0FBTyxFQUNQLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxHQUNQLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztJQUVsQyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUN2QixlQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsSUFBSSxRQUFRLEVBQUU7UUFDWixJQUFJLElBQUEsd0JBQWlCLEVBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsT0FBTztnQkFDTCxTQUFTLEVBQUUsSUFBQSw2QkFBbUIsRUFBQyxRQUFRLENBQUM7Z0JBQ3hDLGFBQWEsRUFBRTtvQkFDYixHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUMsVUFBVSxFQUFFLElBQUEsNkJBQW1CLEVBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQztvQkFDeEQsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFDLFFBQVEsRUFBQyxDQUFDO2lCQUM1QjtnQkFDRCxLQUFLO2dCQUNMLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxPQUFPO2dCQUNQLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBQyxNQUFNLEVBQUMsQ0FBQzthQUN4QixDQUFDO1NBQ0g7UUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNsRDtJQUVELE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQXBDVyxRQUFBLHFCQUFxQix5QkFvQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZX0gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7Y2hlY2tJZkZpbGVJc1lhbWx9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3lhbWwnO1xuaW1wb3J0IHtwcmVwZW5kRnVsbEZpbGVQYXRofSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7Q09ORklHLCBTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJZlJ1bkFyZ3MsIFByb2Nlc3NBcmdzT3V0cHV0c30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuY29uc3Qge1BhcnNlQ2xpUGFyYW1zRXJyb3IsIENsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtBUkdTLCBIRUxQfSA9IENPTkZJRztcbmNvbnN0IHtOT19PVVRQVVR9ID0gU1RSSU5HUztcbmNvbnN0IHtTT1VSQ0VfSVNfTk9UX1lBTUwsIE1BTklGRVNUX0lTX01JU1NJTkd9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogVmFsaWRhdGVzIGBpZi1ydW5gIHByb2Nlc3MgYXJndW1lbnRzLlxuICovXG5jb25zdCB2YWxpZGF0ZUFuZFBhcnNlUHJvY2Vzc0FyZ3MgPSAoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlPElmUnVuQXJncz4oQVJHUywgSEVMUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUNsaVBhcmFtc0Vycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG4vKipcbiAqIDEuIFBhcnNlcyBwcm9jZXNzIGFyZ3VtZW50cyBmb3IgYGlmLXJ1bmAuXG4gKiAyLiBJZiBvdXRwdXQgcGFyYW1zIGFyZSBtaXNzaW5nLCB3YXJucyB1c2VyIGFib3V0IGl0LlxuICogMy4gT3RoZXJ3aXNlIGNoZWNrcyBpZiBgbWFuaWZlc3RgIHBhcmFtIGlzIHRoZXJlLCB0aGVuIHByb2Nlc3NlcyB3aXRoIGNoZWNraW5nIGlmIGl0J3MgYSB5YW1sIGZpbGUuXG4gKiAgICBJZiBpdCBpcywgdGhlbiByZXR1cm5zIG9iamVjdCBjb250YWluaW5nIGZ1bGwgcGF0aC5cbiAqIDQuIElmIHBhcmFtcyBhcmUgbWlzc2luZyBvciBpbnZhbGlkLCB0aGVuIHJlamVjdHMgd2l0aCBgUGFyc2VDbGlQYXJhbXNFcnJvcmAuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlmUnVuUHJvY2Vzc0FyZ3MgPSAoKTogUHJvY2Vzc0FyZ3NPdXRwdXRzID0+IHtcbiAgY29uc3Qge1xuICAgIG1hbmlmZXN0LFxuICAgIG91dHB1dCxcbiAgICAnbm8tb3V0cHV0Jzogbm9PdXRwdXQsXG4gICAgZGVidWcsXG4gICAgb2JzZXJ2ZSxcbiAgICByZWdyb3VwLFxuICAgIGNvbXB1dGUsXG4gICAgYXBwZW5kLFxuICB9ID0gdmFsaWRhdGVBbmRQYXJzZVByb2Nlc3NBcmdzKCk7XG5cbiAgaWYgKCFvdXRwdXQgJiYgbm9PdXRwdXQpIHtcbiAgICBsb2dnZXIud2FybihOT19PVVRQVVQpO1xuICB9XG5cbiAgaWYgKG1hbmlmZXN0KSB7XG4gICAgaWYgKGNoZWNrSWZGaWxlSXNZYW1sKG1hbmlmZXN0KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5wdXRQYXRoOiBwcmVwZW5kRnVsbEZpbGVQYXRoKG1hbmlmZXN0KSxcbiAgICAgICAgb3V0cHV0T3B0aW9uczoge1xuICAgICAgICAgIC4uLihvdXRwdXQgJiYge291dHB1dFBhdGg6IHByZXBlbmRGdWxsRmlsZVBhdGgob3V0cHV0KX0pLFxuICAgICAgICAgIC4uLihub091dHB1dCAmJiB7bm9PdXRwdXR9KSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVidWcsXG4gICAgICAgIG9ic2VydmUsXG4gICAgICAgIHJlZ3JvdXAsXG4gICAgICAgIGNvbXB1dGUsXG4gICAgICAgIC4uLihhcHBlbmQgJiYge2FwcGVuZH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKFNPVVJDRV9JU19OT1RfWUFNTCk7XG4gIH1cblxuICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKE1BTklGRVNUX0lTX01JU1NJTkcpO1xufTtcbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdXRpbC9hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyQztBQUMzQyxpREFBNkM7QUFFN0MsaURBQXlEO0FBQ3pELHVEQUE4RTtBQUU5RSxxREFBZ0Q7QUFFaEQsc0NBQTBDO0FBQzFDLGdEQUE4RDtBQUk5RCxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFcEMsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUIsTUFBTSxFQUFDLFNBQVMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFDNUIsTUFBTSxFQUFDLGtCQUFrQixFQUFFLG1CQUFtQixFQUFDLEdBQUcsZ0JBQWMsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxFQUFFO0lBQ3ZDLElBQUk7UUFDRixPQUFPLElBQUEsNEJBQUssRUFBWSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUzQixJQUFBLHdCQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLEtBQUssQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0ksTUFBTSxxQkFBcUIsR0FBRyxHQUF1QixFQUFFO0lBQzVELE1BQU0sRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFBRSxRQUFRLEVBQ3JCLEtBQUssRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxNQUFNLEdBQ1AsR0FBRywyQkFBMkIsRUFBRSxDQUFDO0lBRWxDLElBQUksQ0FBQyxNQUFNLElBQUksUUFBUSxFQUFFO1FBQ3ZCLGVBQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDeEI7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNaLElBQUksSUFBQSx3QkFBaUIsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixPQUFPO2dCQUNMLFNBQVMsRUFBRSxJQUFBLDZCQUFtQixFQUFDLFFBQVEsQ0FBQztnQkFDeEMsYUFBYSxFQUFFO29CQUNiLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBQyxVQUFVLEVBQUUsSUFBQSw2QkFBbUIsRUFBQyxNQUFNLENBQUMsRUFBQyxDQUFDO29CQUN4RCxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUMsUUFBUSxFQUFDLENBQUM7aUJBQzVCO2dCQUNELEtBQUs7Z0JBQ0wsT0FBTztnQkFDUCxPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFDLE1BQU0sRUFBQyxDQUFDO2FBQ3hCLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ2xEO0lBRUQsTUFBTSxJQUFJLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDO0FBcENXLFFBQUEscUJBQXFCLHlCQW9DaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3BhcnNlfSBmcm9tICd0cy1jb21tYW5kLWxpbmUtYXJncyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtjaGVja0lmRmlsZUlzWWFtbH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwveWFtbCc7XG5pbXBvcnQge3ByZXBlbmRGdWxsRmlsZVBhdGgsIHJ1bkhlbHBDb21tYW5kfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5cbmltcG9ydCB7Q09ORklHLCBTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJZlJ1bkFyZ3MsIFByb2Nlc3NBcmdzT3V0cHV0c30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuY29uc3Qge0NsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtBUkdTLCBIRUxQfSA9IENPTkZJRztcbmNvbnN0IHtOT19PVVRQVVR9ID0gU1RSSU5HUztcbmNvbnN0IHtTT1VSQ0VfSVNfTk9UX1lBTUwsIE1BTklGRVNUX0lTX01JU1NJTkd9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogVmFsaWRhdGVzIGBpZi1ydW5gIHByb2Nlc3MgYXJndW1lbnRzLlxuICovXG5jb25zdCB2YWxpZGF0ZUFuZFBhcnNlUHJvY2Vzc0FyZ3MgPSAoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlPElmUnVuQXJncz4oQVJHUywgSEVMUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpO1xuXG4gICAgICBydW5IZWxwQ29tbWFuZCgnaWYtcnVuJyk7XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbi8qKlxuICogMS4gUGFyc2VzIHByb2Nlc3MgYXJndW1lbnRzIGZvciBgaWYtcnVuYC5cbiAqIDIuIElmIG91dHB1dCBwYXJhbXMgYXJlIG1pc3NpbmcsIHdhcm5zIHVzZXIgYWJvdXQgaXQuXG4gKiAzLiBPdGhlcndpc2UgY2hlY2tzIGlmIGBtYW5pZmVzdGAgcGFyYW0gaXMgdGhlcmUsIHRoZW4gcHJvY2Vzc2VzIHdpdGggY2hlY2tpbmcgaWYgaXQncyBhIHlhbWwgZmlsZS5cbiAqICAgIElmIGl0IGlzLCB0aGVuIHJldHVybnMgb2JqZWN0IGNvbnRhaW5pbmcgZnVsbCBwYXRoLlxuICogNC4gSWYgcGFyYW1zIGFyZSBtaXNzaW5nIG9yIGludmFsaWQsIHJ1bnMgYC0taGVscGAgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlSWZSdW5Qcm9jZXNzQXJncyA9ICgpOiBQcm9jZXNzQXJnc091dHB1dHMgPT4ge1xuICBjb25zdCB7XG4gICAgbWFuaWZlc3QsXG4gICAgb3V0cHV0LFxuICAgICduby1vdXRwdXQnOiBub091dHB1dCxcbiAgICBkZWJ1ZyxcbiAgICBvYnNlcnZlLFxuICAgIHJlZ3JvdXAsXG4gICAgY29tcHV0ZSxcbiAgICBhcHBlbmQsXG4gIH0gPSB2YWxpZGF0ZUFuZFBhcnNlUHJvY2Vzc0FyZ3MoKTtcblxuICBpZiAoIW91dHB1dCAmJiBub091dHB1dCkge1xuICAgIGxvZ2dlci53YXJuKE5PX09VVFBVVCk7XG4gIH1cblxuICBpZiAobWFuaWZlc3QpIHtcbiAgICBpZiAoY2hlY2tJZkZpbGVJc1lhbWwobWFuaWZlc3QpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnB1dFBhdGg6IHByZXBlbmRGdWxsRmlsZVBhdGgobWFuaWZlc3QpLFxuICAgICAgICBvdXRwdXRPcHRpb25zOiB7XG4gICAgICAgICAgLi4uKG91dHB1dCAmJiB7b3V0cHV0UGF0aDogcHJlcGVuZEZ1bGxGaWxlUGF0aChvdXRwdXQpfSksXG4gICAgICAgICAgLi4uKG5vT3V0cHV0ICYmIHtub091dHB1dH0pLFxuICAgICAgICB9LFxuICAgICAgICBkZWJ1ZyxcbiAgICAgICAgb2JzZXJ2ZSxcbiAgICAgICAgcmVncm91cCxcbiAgICAgICAgY29tcHV0ZSxcbiAgICAgICAgLi4uKGFwcGVuZCAmJiB7YXBwZW5kfSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDbGlTb3VyY2VGaWxlRXJyb3IoU09VUkNFX0lTX05PVF9ZQU1MKTtcbiAgfVxuXG4gIHRocm93IG5ldyBDbGlTb3VyY2VGaWxlRXJyb3IoTUFOSUZFU1RfSVNfTUlTU0lORyk7XG59O1xuIl19