@grnsft/if 0.4.0 → 0.5.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 (278) hide show
  1. package/CONTRIBUTING.md +4 -5
  2. package/README.md +14 -33
  3. package/Refactor-migration-guide.md +5 -6
  4. package/build/builtins/coefficient/index.d.ts +1 -2
  5. package/build/builtins/coefficient/index.js +18 -4
  6. package/build/builtins/copy-param/index.d.ts +2 -0
  7. package/build/builtins/copy-param/index.js +68 -0
  8. package/build/builtins/csv-lookup/index.d.ts +1 -1
  9. package/build/builtins/csv-lookup/index.js +44 -37
  10. package/build/builtins/divide/index.d.ts +1 -1
  11. package/build/builtins/divide/index.js +22 -11
  12. package/build/builtins/exponent/index.d.ts +1 -2
  13. package/build/builtins/exponent/index.js +9 -23
  14. package/build/builtins/export-csv-raw.d.ts +4 -2
  15. package/build/builtins/export-csv-raw.js +7 -7
  16. package/build/builtins/export-csv.js +8 -11
  17. package/build/builtins/export-log.js +1 -1
  18. package/build/builtins/export-yaml.js +6 -6
  19. package/build/builtins/group-by.d.ts +1 -1
  20. package/build/builtins/group-by.js +5 -5
  21. package/build/builtins/index.d.ts +1 -0
  22. package/build/builtins/index.js +4 -2
  23. package/build/builtins/interpolation/index.d.ts +1 -1
  24. package/build/builtins/interpolation/index.js +10 -8
  25. package/build/builtins/mock-observations/helpers/common-generator.d.ts +2 -2
  26. package/build/builtins/mock-observations/helpers/common-generator.js +10 -13
  27. package/build/builtins/mock-observations/helpers/rand-int-generator.d.ts +2 -2
  28. package/build/builtins/mock-observations/helpers/rand-int-generator.js +14 -24
  29. package/build/builtins/mock-observations/index.d.ts +1 -2
  30. package/build/builtins/mock-observations/index.js +2 -4
  31. package/build/builtins/multiply/index.d.ts +1 -2
  32. package/build/builtins/multiply/index.js +10 -16
  33. package/build/builtins/regex/index.d.ts +1 -2
  34. package/build/builtins/regex/index.js +8 -12
  35. package/build/builtins/sci/index.d.ts +1 -2
  36. package/build/builtins/sci/index.js +23 -22
  37. package/build/builtins/sci-embodied/index.d.ts +1 -1
  38. package/build/builtins/sci-embodied/index.js +16 -17
  39. package/build/builtins/shell/index.d.ts +1 -2
  40. package/build/builtins/shell/index.js +4 -4
  41. package/build/builtins/subtract/index.d.ts +1 -2
  42. package/build/builtins/subtract/index.js +7 -23
  43. package/build/builtins/sum/index.d.ts +1 -2
  44. package/build/builtins/sum/index.js +14 -11
  45. package/build/builtins/time-sync.d.ts +1 -2
  46. package/build/builtins/time-sync.js +62 -67
  47. package/build/check.d.ts +2 -0
  48. package/build/check.js +95 -0
  49. package/build/config/config.d.ts +13 -1
  50. package/build/config/config.js +61 -1
  51. package/build/config/params.js +1 -6
  52. package/build/config/strings.d.ts +45 -5
  53. package/build/config/strings.js +50 -9
  54. package/build/diff.js +2 -2
  55. package/build/env.d.ts +2 -0
  56. package/build/env.js +38 -0
  57. package/build/lib/aggregate.js +1 -1
  58. package/build/lib/compute.js +1 -1
  59. package/build/lib/exhaust.js +4 -4
  60. package/build/lib/initialize.js +20 -24
  61. package/build/lib/load.js +4 -4
  62. package/build/types/compute.d.ts +1 -1
  63. package/build/types/compute.js +1 -1
  64. package/build/types/if-env.d.ts +8 -0
  65. package/build/types/if-env.js +3 -0
  66. package/build/types/interface.d.ts +1 -19
  67. package/build/types/interface.js +1 -1
  68. package/build/types/npm.d.ts +9 -0
  69. package/build/types/npm.js +3 -0
  70. package/build/types/process-args.d.ts +9 -0
  71. package/build/types/process-args.js +1 -1
  72. package/build/util/aggregation-helper.d.ts +1 -1
  73. package/build/util/aggregation-helper.js +5 -5
  74. package/build/util/args.d.ts +23 -1
  75. package/build/util/args.js +91 -14
  76. package/build/util/debug-logger.js +8 -7
  77. package/build/util/fs.d.ts +20 -0
  78. package/build/util/fs.js +94 -0
  79. package/build/util/helpers.d.ts +25 -5
  80. package/build/util/helpers.js +111 -15
  81. package/build/util/npm.d.ts +28 -0
  82. package/build/util/npm.js +152 -0
  83. package/build/util/plugin-storage.js +4 -4
  84. package/build/util/validations.js +4 -4
  85. package/jest.config.js +1 -1
  86. package/manifests/{plugins → examples/builtins/csv-lookup}/cloud-metadata/failure-invalid-instance-type.yaml +9 -3
  87. package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +27 -0
  88. package/manifests/{plugins → examples/builtins/csv-lookup}/cloud-metadata/failure-missing-cloud-vendor.yml +9 -3
  89. package/manifests/{plugins → examples/builtins/csv-lookup}/cloud-metadata/success.yml +8 -2
  90. package/manifests/{plugins/csv-lookup → examples/builtins/csv-lookup/region-metadata}/failure-missing-column.yml +1 -2
  91. package/manifests/{plugins/csv-lookup → examples/builtins/csv-lookup/region-metadata}/failure-missing-output.yml +1 -2
  92. package/manifests/{plugins/csv-lookup → examples/builtins/csv-lookup/region-metadata}/success-renaming.yml +1 -2
  93. package/manifests/{plugins/csv-lookup → examples/builtins/csv-lookup/region-metadata}/success.yml +2 -3
  94. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +23 -0
  95. package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +24 -0
  96. package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +24 -0
  97. package/manifests/{plugins → examples/builtins}/divide/failure-denominator-equal-zero.yml +8 -9
  98. package/manifests/{plugins → examples/builtins}/divide/failure-invalid-config-denominator.yml +8 -9
  99. package/manifests/{plugins → examples/builtins}/divide/failure-missing-numerator.yml +8 -9
  100. package/manifests/{plugins → examples/builtins}/divide/success.yml +9 -10
  101. package/manifests/examples/builtins/exponent/success.yml +25 -0
  102. package/manifests/{plugins → examples/builtins}/groupby/success.yml +1 -1
  103. package/manifests/examples/builtins/interpolation/success.yml +23 -0
  104. package/manifests/{plugins → examples/builtins}/sci/failure-missing-input-param.yml +2 -6
  105. package/manifests/{plugins → examples/builtins}/sci/success.yml +0 -3
  106. package/manifests/examples/builtins/subtract/success.yml +24 -0
  107. package/manifests/{plugins → examples/builtins}/sum/success.yml +1 -1
  108. package/manifests/examples/{generics.yml → pipelines/generics.yml} +49 -13
  109. package/manifests/examples/{nesting.yml → pipelines/nesting.yml} +82 -35
  110. package/manifests/examples/{pipeline-teads-sci.yml → pipelines/pipeline-teads-sci.yml} +54 -18
  111. package/manifests/examples/{pipeline-with-aggregate.yml → pipelines/pipeline-with-aggregate.yml} +67 -25
  112. package/manifests/examples/{pipeline-with-mocks.yml → pipelines/pipeline-with-mocks.yml} +65 -22
  113. package/manifests/examples/pipelines/zeros.yml +130 -0
  114. package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +243 -0
  115. package/manifests/outputs/bugs/initialize-error-no-config.yaml +78 -0
  116. package/manifests/outputs/bugs/initialize-error-no-path.yaml +91 -0
  117. package/manifests/outputs/bugs/initialize-error-no-plugins.yaml +74 -0
  118. package/manifests/outputs/bugs/input-error-missing-duration.yaml +84 -0
  119. package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +81 -0
  120. package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +91 -0
  121. package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +92 -0
  122. package/manifests/outputs/bugs/pipeline-ordering-error.yaml +155 -0
  123. package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +73 -0
  124. package/manifests/outputs/divide.yaml +93 -0
  125. package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +101 -0
  126. package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +100 -0
  127. package/manifests/outputs/features/aggregate-horizontal.yaml +128 -0
  128. package/manifests/outputs/features/aggregate-vertical.yaml +151 -0
  129. package/manifests/outputs/features/aggregate.yaml +155 -0
  130. package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +95 -0
  131. package/manifests/outputs/pipelines/mock-obs-group-by-cloud-meta.yaml +645 -0
  132. package/manifests/outputs/pipelines/mock-obs-groupby.yaml +178 -0
  133. package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +350 -0
  134. package/manifests/outputs/plugins/coefficient/failure-invalid-config-input-param.yaml +73 -0
  135. package/manifests/outputs/plugins/coefficient/failure-output-param-is-null.yaml +73 -0
  136. package/manifests/outputs/plugins/coefficient/success.yaml +75 -0
  137. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +27 -0
  138. package/manifests/{plugins → outputs/plugins/csv-lookup}/cloud-metadata/failure-invalid-vendor.yaml +8 -2
  139. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +77 -0
  140. package/manifests/outputs/plugins/csv-lookup/cloud-metadata/success.yaml +82 -0
  141. package/manifests/outputs/plugins/csv-lookup/region-metadata/failure-missing-column.yaml +76 -0
  142. package/manifests/outputs/plugins/csv-lookup/region-metadata/failure-missing-output.yaml +75 -0
  143. package/manifests/outputs/plugins/csv-lookup/region-metadata/success-renaming.yaml +80 -0
  144. package/manifests/outputs/plugins/csv-lookup/region-metadata/success.yaml +92 -0
  145. package/manifests/outputs/plugins/csv-lookup/tdp-finder/failure-missing-input-param.yaml +74 -0
  146. package/manifests/outputs/plugins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +75 -0
  147. package/manifests/outputs/plugins/csv-lookup/tdp-finder/success.yaml +76 -0
  148. package/manifests/outputs/plugins/divide/failure-invalid-config-denominator.yaml +73 -0
  149. package/manifests/outputs/plugins/divide/failure-missing-numerator.yaml +77 -0
  150. package/manifests/outputs/plugins/divide/success-denominator-equal-zero.yaml +95 -0
  151. package/manifests/outputs/plugins/divide/success.yaml +95 -0
  152. package/manifests/outputs/plugins/exponent/success.yaml +77 -0
  153. package/manifests/outputs/plugins/groupby/failure-invalid-config-group.yaml +96 -0
  154. package/manifests/outputs/plugins/groupby/failure-missing-cloud-instance-type.yaml +95 -0
  155. package/manifests/outputs/plugins/groupby/success.yaml +101 -0
  156. package/manifests/outputs/plugins/interpolation/interpolation.yaml +83 -0
  157. package/manifests/outputs/plugins/interpolation/success.yaml +83 -0
  158. package/manifests/outputs/plugins/mock-observations/failure-invalid-config-cpu-range.yaml +86 -0
  159. package/manifests/outputs/plugins/mock-observations/failure-invalid-memory-utilization-range.yaml +84 -0
  160. package/manifests/outputs/plugins/mock-observations/failure-missing-timestamp-from-param.yaml +83 -0
  161. package/manifests/outputs/plugins/mock-observations/success.yaml +220 -0
  162. package/manifests/outputs/plugins/multiply/failure-input-parameter-is-missing.yaml +75 -0
  163. package/manifests/outputs/plugins/multiply/success-with-multiple-inputs.yaml +96 -0
  164. package/manifests/outputs/plugins/multiply/success.yaml +78 -0
  165. package/manifests/outputs/plugins/regex/failure-missing-input-param.yaml +75 -0
  166. package/manifests/outputs/plugins/regex/failure-not-matching-with-regex.yaml +76 -0
  167. package/manifests/outputs/plugins/regex/success.yaml +81 -0
  168. package/manifests/outputs/plugins/sci/failure-invalid-config-value.yaml +72 -0
  169. package/manifests/outputs/plugins/sci/failure-missing-input-param.yaml +72 -0
  170. package/manifests/outputs/plugins/sci/success.yml.yaml +80 -0
  171. package/manifests/outputs/plugins/sci-embodied/failure-invalid-default-emission-value.yaml +75 -0
  172. package/manifests/outputs/plugins/sci-embodied/failure-missing-expected-lifespan.yaml +71 -0
  173. package/manifests/outputs/plugins/sci-embodied/success.yaml +78 -0
  174. package/manifests/outputs/plugins/shell/failure-invalid-command.yaml +70 -0
  175. package/manifests/outputs/plugins/shell/success.yaml +68 -0
  176. package/manifests/outputs/plugins/subtract/success.yaml +78 -0
  177. package/manifests/outputs/plugins/sum/failure-missing-input-param.yaml +75 -0
  178. package/manifests/outputs/plugins/sum/failure-missing-output-param.yaml +78 -0
  179. package/manifests/outputs/plugins/sum/success.yaml +78 -0
  180. package/manifests/outputs/plugins/time-sync/failure-config-start-later-end.yaml +82 -0
  181. package/manifests/outputs/plugins/time-sync/failure-missing-global-config.yaml +78 -0
  182. package/manifests/outputs/plugins/time-sync/success.yaml +119 -0
  183. package/package.json +10 -4
  184. package/src/__mocks__/mock-manifest.yaml +72 -0
  185. package/src/builtins/README.md +1 -1
  186. package/src/builtins/coefficient/README.md +19 -1
  187. package/src/builtins/copy-param/README.md +104 -0
  188. package/src/builtins/csv-lookup/README.md +39 -1
  189. package/src/builtins/divide/README.md +29 -3
  190. package/src/builtins/exponent/README.md +21 -1
  191. package/src/builtins/interpolation/README.md +29 -1
  192. package/src/builtins/mock-observations/README.md +1 -1
  193. package/src/builtins/multiply/README.md +16 -1
  194. package/src/builtins/regex/README.md +32 -2
  195. package/src/builtins/sci/README.md +24 -1
  196. package/src/builtins/sci-embodied/README.md +15 -1
  197. package/src/builtins/shell/README.md +12 -1
  198. package/src/builtins/subtract/README.md +12 -1
  199. package/src/builtins/sum/README.md +28 -1
  200. package/src/config/env-template.yml +24 -0
  201. package/build/builtins/coefficient/types.d.ts +0 -5
  202. package/build/builtins/coefficient/types.js +0 -3
  203. package/build/builtins/exponent/types.d.ts +0 -5
  204. package/build/builtins/exponent/types.js +0 -3
  205. package/build/builtins/interpolation/types.d.ts +0 -5
  206. package/build/builtins/interpolation/types.js +0 -10
  207. package/build/builtins/mock-observations/types.d.ts +0 -13
  208. package/build/builtins/mock-observations/types.js +0 -3
  209. package/build/builtins/multiply/types.d.ts +0 -4
  210. package/build/builtins/multiply/types.js +0 -3
  211. package/build/builtins/subtract/types.d.ts +0 -4
  212. package/build/builtins/subtract/types.js +0 -3
  213. package/build/builtins/sum/types.d.ts +0 -4
  214. package/build/builtins/sum/types.js +0 -3
  215. package/build/types/common.d.ts +0 -4
  216. package/build/types/common.js +0 -3
  217. package/build/types/group-by.d.ts +0 -3
  218. package/build/types/group-by.js +0 -3
  219. package/build/types/helpers.d.ts +0 -4
  220. package/build/types/helpers.js +0 -3
  221. package/build/util/errors.d.ts +0 -6
  222. package/build/util/errors.js +0 -33
  223. package/manifests/bugs/aggregation-error-wrong-metric.yml +0 -128
  224. package/manifests/bugs/azure-importer-ignoring-defaults.yml +0 -61
  225. package/manifests/bugs/azure-importer-incorrect-calculation.yml +0 -56
  226. package/manifests/bugs/initialize-error-no-config.yml +0 -27
  227. package/manifests/bugs/initialize-error-no-path.yml +0 -28
  228. package/manifests/bugs/initialize-error-no-plugins.yml +0 -23
  229. package/manifests/bugs/input-error-missing-duration.yml +0 -21
  230. package/manifests/bugs/mock-observations-failure-duration-is-zero.yml +0 -34
  231. package/manifests/bugs/pipeline-error-naming-mismatch.yml +0 -28
  232. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +0 -29
  233. package/manifests/bugs/pipeline-ordering-error.yml +0 -82
  234. package/manifests/bugs/sci-embodied-missing-resources-total.yml +0 -23
  235. package/manifests/examples/basic.yml +0 -28
  236. package/manifests/examples/mock-cpu-util-to-carbon.yml +0 -70
  237. package/manifests/features/aggregate-failure-inalid-metrics.yml +0 -43
  238. package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +0 -43
  239. package/manifests/features/aggregate-horizontal.yml +0 -44
  240. package/manifests/features/aggregate-vertical.yml +0 -44
  241. package/manifests/features/aggregate.yml +0 -44
  242. package/manifests/integrations/cloud-metadata-divide-boavizta.yml +0 -38
  243. package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +0 -51
  244. package/manifests/integrations/mock-obs-groupby.yml +0 -39
  245. package/manifests/integrations/mock-obs-time-sync.yml +0 -65
  246. package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +0 -18
  247. package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +0 -19
  248. package/manifests/plugins/tdp-finder/success.yml +0 -19
  249. /package/manifests/{plugins → examples/builtins}/coefficient/failure-invalid-config-input-param.yml +0 -0
  250. /package/manifests/{plugins → examples/builtins}/coefficient/failure-output-param-is-null.yaml +0 -0
  251. /package/manifests/{plugins → examples/builtins}/coefficient/success.yml +0 -0
  252. /package/manifests/{plugins → examples/builtins}/groupby/failure-invalid-config-group.yml +0 -0
  253. /package/manifests/{plugins → examples/builtins}/groupby/failure-missing-cloud-instance-type.yml +0 -0
  254. /package/manifests/{plugins → examples/builtins}/interpolation/interpolation.yml +0 -0
  255. /package/manifests/{plugins → examples/builtins}/mock-observations/failure-invalid-config-cpu-range.yml +0 -0
  256. /package/manifests/{plugins → examples/builtins}/mock-observations/failure-invalid-memory-utilization-range.yml +0 -0
  257. /package/manifests/{plugins → examples/builtins}/mock-observations/failure-missing-timestamp-from-param.yml +0 -0
  258. /package/manifests/{plugins → examples/builtins}/mock-observations/success.yml +0 -0
  259. /package/manifests/{plugins → examples/builtins}/multiply/failure-input-parameter-is-missing.yml +0 -0
  260. /package/manifests/{plugins → examples/builtins}/multiply/success-with-multiple-inputs.yml +0 -0
  261. /package/manifests/{plugins → examples/builtins}/multiply/success.yml +0 -0
  262. /package/manifests/{plugins → examples/builtins}/regex/failure-missing-input-param.yml +0 -0
  263. /package/manifests/{plugins → examples/builtins}/regex/failure-not-matching-with-regex.yml +0 -0
  264. /package/manifests/{plugins → examples/builtins}/regex/success.yml +0 -0
  265. /package/manifests/{plugins → examples/builtins}/sci/failure-invalid-config-value.yml +0 -0
  266. /package/manifests/{plugins → examples/builtins}/sci-embodied/failure-invalid-default-emission-value.yml +0 -0
  267. /package/manifests/{plugins → examples/builtins}/sci-embodied/failure-missing-expected-lifespan.yml +0 -0
  268. /package/manifests/{plugins → examples/builtins}/sci-embodied/success.yml +0 -0
  269. /package/manifests/{plugins → examples/builtins}/shell/failure-invalid-command.yml +0 -0
  270. /package/manifests/{plugins → examples/builtins}/shell/success.yml +0 -0
  271. /package/manifests/{plugins → examples/builtins}/sum/failure-missing-input-param.yml +0 -0
  272. /package/manifests/{plugins → examples/builtins}/sum/failure-missing-output-param.yml +0 -0
  273. /package/manifests/{plugins → examples/builtins}/time-sync/failure-config-start-later-end.yml +0 -0
  274. /package/manifests/{plugins → examples/builtins}/time-sync/failure-missing-global-config.yml +0 -0
  275. /package/manifests/{plugins → examples/builtins}/time-sync/success.yml +0 -0
  276. /package/manifests/examples/{instance-metadata.yml → pipelines/instance-metadata.yml} +0 -0
  277. /package/manifests/examples/{sci.yml → pipelines/sci.yml} +0 -0
  278. /package/manifests/examples/{teads-curve.yml → pipelines/teads-curve.yml} +0 -0
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.executeCommands = exports.updatePackageJsonProperties = exports.extractPathsWithVersion = exports.updatePackageJsonDependencies = exports.installDependencies = exports.initPackageJsonIfNotExists = void 0;
28
+ /* eslint-disable no-process-exit */
29
+ const fs = __importStar(require("fs/promises"));
30
+ const path = __importStar(require("path"));
31
+ const helpers_1 = require("./helpers");
32
+ const fs_1 = require("./fs");
33
+ const logger_1 = require("./logger");
34
+ const config_1 = require("../config");
35
+ const packageJson = require('../../package.json');
36
+ const { INITIALIZING_PACKAGE_JSON, INSTALLING_NPM_PACKAGES, IF_CHECK_VERIFIED } = config_1.STRINGS;
37
+ /**
38
+ * Checks if the package.json is exists, if not, initializes it.
39
+ */
40
+ const initPackageJsonIfNotExists = async (folderPath) => {
41
+ const packageJsonPath = path.resolve(folderPath, 'package.json');
42
+ const isPackageJsonExists = await (0, fs_1.isFileExists)(packageJsonPath);
43
+ if (!isPackageJsonExists) {
44
+ logger_1.logger.info(INITIALIZING_PACKAGE_JSON);
45
+ const nodeModulesPath = path.resolve(folderPath, 'node_modules');
46
+ const isNodeModulesExists = await (0, fs_1.isDirectoryExists)(nodeModulesPath);
47
+ if (isNodeModulesExists) {
48
+ await fs.rm(nodeModulesPath, { recursive: true });
49
+ }
50
+ await (0, helpers_1.execPromise)('npm init -y', { cwd: folderPath });
51
+ }
52
+ return packageJsonPath;
53
+ };
54
+ exports.initPackageJsonIfNotExists = initPackageJsonIfNotExists;
55
+ /**
56
+ * Installs packages from the specified dependencies in the specified folder.
57
+ */
58
+ const installDependencies = async (folderPath, dependencies) => {
59
+ const packages = Object.entries(dependencies).map(([dependency, version]) => `${dependency}@${version.replace('^', '')}`);
60
+ logger_1.logger.info(INSTALLING_NPM_PACKAGES);
61
+ await (0, helpers_1.execPromise)(`npm install ${packages.join(' ')}`, {
62
+ cwd: folderPath,
63
+ });
64
+ };
65
+ exports.installDependencies = installDependencies;
66
+ /**
67
+ * Updates package.json dependencies.
68
+ */
69
+ const updatePackageJsonDependencies = async (packageJsonPath, dependencies, cwd) => {
70
+ const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8');
71
+ const parsedPackageJson = JSON.parse(packageJsonContent);
72
+ if (cwd) {
73
+ parsedPackageJson.dependencies = {
74
+ ...parsedPackageJson.dependencies,
75
+ ...dependencies,
76
+ };
77
+ }
78
+ else {
79
+ parsedPackageJson.dependencies = { ...dependencies };
80
+ }
81
+ await fs.writeFile(packageJsonPath, JSON.stringify(parsedPackageJson, null, 2));
82
+ };
83
+ exports.updatePackageJsonDependencies = updatePackageJsonDependencies;
84
+ /**
85
+ * Gets depencecies with versions.
86
+ */
87
+ const extractPathsWithVersion = (plugins, dependencies) => {
88
+ const paths = Object.keys(plugins).map(plugin => plugins[plugin].path);
89
+ const uniquePaths = [...new Set(paths)].filter(path => path !== 'builtin');
90
+ const pathsWithVersion = {};
91
+ uniquePaths.forEach(pluginPath => {
92
+ const dependency = dependencies.find((dependency) => dependency.startsWith(pluginPath));
93
+ if (dependency) {
94
+ const splittedDependency = dependency.split('@');
95
+ const version = splittedDependency.length > 2
96
+ ? splittedDependency[2].split(' ')[0]
97
+ : splittedDependency[1];
98
+ pathsWithVersion[pluginPath] = `^${version}`;
99
+ }
100
+ });
101
+ return pathsWithVersion;
102
+ };
103
+ exports.extractPathsWithVersion = extractPathsWithVersion;
104
+ /**
105
+ * Update the package.json properties.
106
+ */
107
+ const updatePackageJsonProperties = async (newPackageJsonPath, appendDependencies) => {
108
+ const packageJsonContent = await fs.readFile(newPackageJsonPath, 'utf8');
109
+ const parsedPackageJsonContent = JSON.parse(packageJsonContent);
110
+ const properties = {
111
+ name: 'if-environment',
112
+ description: packageJson.description,
113
+ author: packageJson.author,
114
+ bugs: packageJson.bugs,
115
+ engines: packageJson.engines,
116
+ homepage: packageJson.homepage,
117
+ dependencies: appendDependencies
118
+ ? parsedPackageJsonContent.dependencies
119
+ : {},
120
+ };
121
+ const newPackageJson = Object.assign({}, parsedPackageJsonContent, properties);
122
+ await fs.writeFile(newPackageJsonPath, JSON.stringify(newPackageJson, null, 2));
123
+ };
124
+ exports.updatePackageJsonProperties = updatePackageJsonProperties;
125
+ /**
126
+ * Executes a series of npm commands based on the provided manifest file.
127
+ */
128
+ const executeCommands = async (manifest, cwd) => {
129
+ // TODO: After release remove isGlobal and appropriate checks
130
+ const isGlobal = !!process.env.npm_config_global;
131
+ const manifestDirPath = path.dirname(manifest);
132
+ const manifestFileName = (0, fs_1.getFileName)(manifest);
133
+ const executedManifest = path.join(manifestDirPath, `re-${manifestFileName}`);
134
+ const prefixFlag = process.env.CURRENT_DIR && process.env.CURRENT_DIR !== process.cwd()
135
+ ? `--prefix=${path.relative(process.env.CURRENT_DIR, process.cwd())}`
136
+ : '';
137
+ const ifEnv = `${isGlobal ? `if-env ${prefixFlag}` : `npm run if-env ${prefixFlag} --`} -m ${manifest}`;
138
+ const ifEnvCommand = cwd ? `${ifEnv} -c` : ifEnv;
139
+ const ifRunCommand = `${isGlobal ? `if-run ${prefixFlag}` : `npm run if-run ${prefixFlag} --`} -m ${manifest} -o ${executedManifest}`;
140
+ const ifDiffCommand = `${isGlobal ? `if-diff ${prefixFlag}` : `npm run if-diff ${prefixFlag} --`} -s ${executedManifest}.yaml -t ${manifest}`;
141
+ const ttyCommand = " node -p 'Boolean(process.stdout.isTTY)'";
142
+ await (0, helpers_1.execPromise)(`${ifEnvCommand} && ${ifRunCommand} && ${ttyCommand} | ${ifDiffCommand}`, {
143
+ cwd: process.env.CURRENT_DIR || process.cwd(),
144
+ });
145
+ if (!cwd) {
146
+ await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`);
147
+ }
148
+ await (0, fs_1.removeFileIfExists)(`${executedManifest}.yaml`);
149
+ console.log(IF_CHECK_VERIFIED(path.basename(manifest)));
150
+ };
151
+ exports.executeCommands = executeCommands;
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLG9DQUFvQztBQUNwQyxnREFBa0M7QUFDbEMsMkNBQTZCO0FBRTdCLHVDQUFzQztBQUN0Qyw2QkFLYztBQUNkLHFDQUFnQztBQUVoQyxzQ0FBa0M7QUFHbEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFbEQsTUFBTSxFQUFDLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFDLEdBQzNFLGdCQUFPLENBQUM7QUFFVjs7R0FFRztBQUNJLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxpQkFBWSxFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtRQUN4QixlQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsc0JBQWlCLEVBQUMsZUFBZSxDQUFDLENBQUM7UUFFckUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDakQ7UUFFRCxNQUFNLElBQUEscUJBQVcsRUFBQyxhQUFhLEVBQUUsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztLQUNyRDtJ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Q0FBQyxtQkFBbUIsVUFBVSxLQUNwRSxPQUFPLGdCQUFnQixZQUFZLFFBQVEsRUFBRSxDQUFDO0lBQzlDLE1BQU0sVUFBVSxHQUFHLDBDQUEwQyxDQUFDO0lBRTlELE1BQU0sSUFBQSxxQkFBVyxFQUNmLEdBQUcsWUFBWSxPQUFPLFlBQVksT0FBTyxVQUFVLE1BQU0sYUFBYSxFQUFFLEVBQ3hFO1FBQ0UsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7S0FDOUMsQ0FDRixDQUFDO0lBRUYsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBQSx1QkFBa0IsRUFBQyxHQUFHLGVBQWUsZUFBZSxDQUFDLENBQUM7S0FDN0Q7SUFFRCxNQUFNLElBQUEsdUJBQWtCLEVBQUMsR0FBRyxnQkFBZ0IsT0FBTyxDQUFDLENBQUM7SUFFckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUFwQ1csUUFBQSxlQUFlLG1CQW9DMUIiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7ZXhlY1Byb21pc2V9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge1xuICBpc0RpcmVjdG9yeUV4aXN0cyxcbiAgZ2V0RmlsZU5hbWUsXG4gIGlzRmlsZUV4aXN0cyxcbiAgcmVtb3ZlRmlsZUlmRXhpc3RzLFxufSBmcm9tICcuL2ZzJztcbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuL2xvZ2dlcic7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7TWFuaWZlc3RQbHVnaW4sIFBhdGhXaXRoVmVyc2lvbn0gZnJvbSAnLi4vdHlwZXMvbnBtJztcblxuY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3Qge0lOSVRJQUxJWklOR19QQUNLQUdFX0pTT04sIElOU1RBTExJTkdfTlBNX1BBQ0tBR0VTLCBJRl9DSEVDS19WRVJJRklFRH0gPVxuICBTVFJJTkdTO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcGFja2FnZS5qc29uIGlzIGV4aXN0cywgaWYgbm90LCBpbml0aWFsaXplcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRQYWNrYWdlSnNvbklmTm90RXhpc3RzID0gYXN5bmMgKGZvbGRlclBhdGg6IHN0cmluZykgPT4ge1xuICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBwYXRoLnJlc29sdmUoZm9sZGVyUGF0aCwgJ3BhY2thZ2UuanNvbicpO1xuICBjb25zdCBpc1BhY2thZ2VKc29uRXhpc3RzID0gYXdhaXQgaXNGaWxlRXhpc3RzKHBhY2thZ2VKc29uUGF0aCk7XG5cbiAgaWYgKCFpc1BhY2thZ2VKc29uRXhpc3RzKSB7XG4gICAgbG9nZ2VyLmluZm8oSU5JVElBTElaSU5HX1BBQ0tBR0VfSlNPTik7XG5cbiAgICBjb25zdCBub2RlTW9kdWxlc1BhdGggPSBwYXRoLnJlc29sdmUoZm9sZGVyUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICAgIGNvbnN0IGlzTm9kZU1vZHVsZXNFeGlzdHMgPSBhd2FpdCBpc0RpcmVjdG9yeUV4aXN0cyhub2RlTW9kdWxlc1BhdGgpO1xuXG4gICAgaWYgKGlzTm9kZU1vZHVsZXNFeGlzdHMpIHtcbiAgICAgIGF3YWl0IGZzLnJtKG5vZGVNb2R1bGVzUGF0aCwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGF3YWl0IGV4ZWNQcm9taXNlKCducG0gaW5pdCAteScsIHtjd2Q6IGZvbGRlclBhdGh9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlSnNvblBhdGg7XG59O1xuXG4vKipcbiAqIEluc3RhbGxzIHBhY2thZ2VzIGZyb20gdGhlIHNwZWNpZmllZCBkZXBlbmRlbmNpZXMgaW4gdGhlIHNwZWNpZmllZCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBpbnN0YWxsRGVwZW5kZW5jaWVzID0gYXN5bmMgKFxuICBmb2xkZXJQYXRoOiBzdHJpbmcsXG4gIGRlcGVuZGVuY2llczoge1twYXRoOiBzdHJpbmddOiBzdHJpbmd9XG4pID0+IHtcbiAgY29uc3QgcGFja2FnZXMgPSBPYmplY3QuZW50cmllcyhkZXBlbmRlbmNpZXMpLm1hcChcbiAgICAoW2RlcGVuZGVuY3ksIHZlcnNpb25dKSA9PiBgJHtkZXBlbmRlbmN5fUAke3ZlcnNpb24ucmVwbGFjZSgnXicsICcnKX1gXG4gICk7XG5cbiAgbG9nZ2VyLmluZm8oSU5TVEFMTElOR19OUE1fUEFDS0FHRVMpO1xuICBhd2FpdCBleGVjUHJvbWlzZShgbnBtIGluc3RhbGwgJHtwYWNrYWdlcy5qb2luKCcgJyl9YCwge1xuICAgIGN3ZDogZm9sZGVyUGF0aCxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFVwZGF0ZXMgcGFja2FnZS5qc29uIGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVBhY2thZ2VKc29uRGVwZW5kZW5jaWVzID0gYXN5bmMgKFxuICBwYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbiAgZGVwZW5kZW5jaWVzOiBQYXRoV2l0aFZlcnNpb24sXG4gIGN3ZDogYm9vbGVhblxuKSA9PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnKTtcblxuICBjb25zdCBwYXJzZWRQYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UocGFja2FnZUpzb25Db250ZW50KTtcblxuICBpZiAoY3dkKSB7XG4gICAgcGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID0ge1xuICAgICAgLi4ucGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzLFxuICAgICAgLi4uZGVwZW5kZW5jaWVzLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VkUGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID0gey4uLmRlcGVuZGVuY2llc307XG4gIH1cblxuICBhd2FpdCBmcy53cml0ZUZpbGUoXG4gICAgcGFja2FnZUpzb25QYXRoLFxuICAgIEpTT04uc3RyaW5naWZ5KHBhcnNlZFBhY2thZ2VKc29uLCBudWxsLCAyKVxuICApO1xufTtcblxuLyoqXG4gKiBHZXRzIGRlcGVuY2VjaWVzIHdpdGggdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0UGF0aHNXaXRoVmVyc2lvbiA9IChcbiAgcGx1Z2luczogTWFuaWZlc3RQbHVnaW4sXG4gIGRlcGVuZGVuY2llczogc3RyaW5nW11cbikgPT4ge1xuICBjb25zdCBwYXRocyA9IE9iamVjdC5rZXlzKHBsdWdpbnMpLm1hcChwbHVnaW4gPT4gcGx1Z2luc1twbHVnaW5dLnBhdGgpO1xuICBjb25zdCB1bmlxdWVQYXRocyA9IFsuLi5uZXcgU2V0KHBhdGhzKV0uZmlsdGVyKHBhdGggPT4gcGF0aCAhPT0gJ2J1aWx0aW4nKTtcbiAgY29uc3QgcGF0aHNXaXRoVmVyc2lvbjogUGF0aFdpdGhWZXJzaW9uID0ge307XG5cbiAgdW5pcXVlUGF0aHMuZm9yRWFjaChwbHVnaW5QYXRoID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmN5ID0gZGVwZW5kZW5jaWVzLmZpbmQoKGRlcGVuZGVuY3k6IHN0cmluZykgPT5cbiAgICAgIGRlcGVuZGVuY3kuc3RhcnRzV2l0aChwbHVnaW5QYXRoKVxuICAgICk7XG5cbiAgICBpZiAoZGVwZW5kZW5jeSkge1xuICAgICAgY29uc3Qgc3BsaXR0ZWREZXBlbmRlbmN5ID0gZGVwZW5kZW5jeS5zcGxpdCgnQCcpO1xuICAgICAgY29uc3QgdmVyc2lvbiA9XG4gICAgICAgIHNwbGl0dGVkRGVwZW5kZW5jeS5sZW5ndGggPiAyXG4gICAgICAgICAgPyBzcGxpdHRlZERlcGVuZGVuY3lbMl0uc3BsaXQoJyAnKVswXVxuICAgICAgICAgIDogc3BsaXR0ZWREZXBlbmRlbmN5WzFdO1xuXG4gICAgICBwYXRoc1dpdGhWZXJzaW9uW3BsdWdpblBhdGhdID0gYF4ke3ZlcnNpb259YDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYXRoc1dpdGhWZXJzaW9uO1xufTtcblxuLyoqXG4gKiBVcGRhdGUgdGhlIHBhY2thZ2UuanNvbiBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlUGFja2FnZUpzb25Qcm9wZXJ0aWVzID0gYXN5bmMgKFxuICBuZXdQYWNrYWdlSnNvblBhdGg6IHN0cmluZyxcbiAgYXBwZW5kRGVwZW5kZW5jaWVzOiBib29sZWFuXG4pID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb25Db250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUobmV3UGFja2FnZUpzb25QYXRoLCAndXRmOCcpO1xuICBjb25zdCBwYXJzZWRQYWNrYWdlSnNvbkNvbnRlbnQgPSBKU09OLnBhcnNlKHBhY2thZ2VKc29uQ29udGVudCk7XG5cbiAgY29uc3QgcHJvcGVydGllcyA9IHtcbiAgICBuYW1lOiAnaWYtZW52aXJvbm1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiBwYWNrYWdlSnNvbi5kZXNjcmlwdGlvbixcbiAgICBhdXRob3I6IHBhY2thZ2VKc29uLmF1dGhvcixcbiAgICBidWdzOiBwYWNrYWdlSnNvbi5idWdzLFxuICAgIGVuZ2luZXM6IHBhY2thZ2VKc29uLmVuZ2luZXMsXG4gICAgaG9tZXBhZ2U6IHBhY2thZ2VKc29uLmhvbWVwYWdlLFxuICAgIGRlcGVuZGVuY2llczogYXBwZW5kRGVwZW5kZW5jaWVzXG4gICAgICA/IHBhcnNlZFBhY2thZ2VKc29uQ29udGVudC5kZXBlbmRlbmNpZXNcbiAgICAgIDoge30sXG4gIH07XG5cbiAgY29uc3QgbmV3UGFja2FnZUpzb24gPSBPYmplY3QuYXNzaWduKFxuICAgIHt9LFxuICAgIHBhcnNlZFBhY2thZ2VKc29uQ29udGVudCxcbiAgICBwcm9wZXJ0aWVzXG4gICk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgIG5ld1BhY2thZ2VKc29uUGF0aCxcbiAgICBKU09OLnN0cmluZ2lmeShuZXdQYWNrYWdlSnNvbiwgbnVsbCwgMilcbiAgKTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBzZXJpZXMgb2YgbnBtIGNvbW1hbmRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBtYW5pZmVzdCBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvbW1hbmRzID0gYXN5bmMgKG1hbmlmZXN0OiBzdHJpbmcsIGN3ZDogYm9vbGVhbikgPT4ge1xuICAvLyBUT0RPOiBBZnRlciByZWxlYXNlIHJlbW92ZSBpc0dsb2JhbCBhbmQgYXBwcm9wcmlhdGUgY2hlY2tzXG4gIGNvbnN0IGlzR2xvYmFsID0gISFwcm9jZXNzLmVudi5ucG1fY29uZmlnX2dsb2JhbDtcbiAgY29uc3QgbWFuaWZlc3REaXJQYXRoID0gcGF0aC5kaXJuYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgbWFuaWZlc3RGaWxlTmFtZSA9IGdldEZpbGVOYW1lKG1hbmlmZXN0KTtcbiAgY29uc3QgZXhlY3V0ZWRNYW5pZmVzdCA9IHBhdGguam9pbihtYW5pZmVzdERpclBhdGgsIGByZS0ke21hbmlmZXN0RmlsZU5hbWV9YCk7XG4gIGNvbnN0IHByZWZpeEZsYWcgPVxuICAgIHByb2Nlc3MuZW52LkNVUlJFTlRfRElSICYmIHByb2Nlc3MuZW52LkNVUlJFTlRfRElSICE9PSBwcm9jZXNzLmN3ZCgpXG4gICAgICA/IGAtLXByZWZpeD0ke3BhdGgucmVsYXRpdmUocHJvY2Vzcy5lbnYuQ1VSUkVOVF9ESVIhLCBwcm9jZXNzLmN3ZCgpKX1gXG4gICAgICA6ICcnO1xuICBjb25zdCBpZkVudiA9IGAke1xuICAgIGlzR2xvYmFsID8gYGlmLWVudiAke3ByZWZpeEZsYWd9YCA6IGBucG0gcnVuIGlmLWVudiAke3ByZWZpeEZsYWd9IC0tYFxuICB9IC1tICR7bWFuaWZlc3R9YDtcbiAgY29uc3QgaWZFbnZDb21tYW5kID0gY3dkID8gYCR7aWZFbnZ9IC1jYCA6IGlmRW52O1xuICBjb25zdCBpZlJ1bkNvbW1hbmQgPSBgJHtcbiAgICBpc0dsb2JhbCA/IGBpZi1ydW4gJHtwcmVmaXhGbGFnfWAgOiBgbnBtIHJ1biBpZi1ydW4gJHtwcmVmaXhGbGFnfSAtLWBcbiAgfSAtbSAke21hbmlmZXN0fSAtbyAke2V4ZWN1dGVkTWFuaWZlc3R9YDtcbiAgY29uc3QgaWZEaWZmQ29tbWFuZCA9IGAke1xuICAgIGlzR2xvYmFsID8gYGlmLWRpZmYgJHtwcmVmaXhGbGFnfWAgOiBgbnBtIHJ1biBpZi1kaWZmICR7cHJlZml4RmxhZ30gLS1gXG4gIH0gLXMgJHtleGVjdXRlZE1hbmlmZXN0fS55YW1sIC10ICR7bWFuaWZlc3R9YDtcbiAgY29uc3QgdHR5Q29tbWFuZCA9IFwiIG5vZGUgLXAgJ0Jvb2xlYW4ocHJvY2Vzcy5zdGRvdXQuaXNUVFkpJ1wiO1xuXG4gIGF3YWl0IGV4ZWNQcm9taXNlKFxuICAgIGAke2lmRW52Q29tbWFuZH0gJiYgJHtpZlJ1bkNvbW1hbmR9ICYmICR7dHR5Q29tbWFuZH0gfCAke2lmRGlmZkNvbW1hbmR9YCxcbiAgICB7XG4gICAgICBjd2Q6IHByb2Nlc3MuZW52LkNVUlJFTlRfRElSIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgfVxuICApO1xuXG4gIGlmICghY3dkKSB7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZUlmRXhpc3RzKGAke21hbmlmZXN0RGlyUGF0aH0vcGFja2FnZS5qc29uYCk7XG4gIH1cblxuICBhd2FpdCByZW1vdmVGaWxlSWZFeGlzdHMoYCR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbGApO1xuXG4gIGNvbnNvbGUubG9nKElGX0NIRUNLX1ZFUklGSUVEKHBhdGguYmFzZW5hbWUobWFuaWZlc3QpKSk7XG59O1xuIl19
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pluginStorage = void 0;
4
- const errors_1 = require("../util/errors");
4
+ const utils_1 = require("@grnsft/if-core/utils");
5
5
  const config_1 = require("../config");
6
- const { PluginInitalizationError } = errors_1.ERRORS;
6
+ const { PluginInitializationError } = utils_1.ERRORS;
7
7
  const { NOT_INITALIZED_PLUGIN } = config_1.STRINGS;
8
8
  /**
9
9
  * Storage for maintaining plugins.
@@ -17,7 +17,7 @@ const pluginStorage = () => {
17
17
  get: (name) => {
18
18
  const plugin = storage[name];
19
19
  if (!plugin) {
20
- throw new PluginInitalizationError(NOT_INITALIZED_PLUGIN(name));
20
+ throw new PluginInitializationError(NOT_INITALIZED_PLUGIN(name));
21
21
  }
22
22
  return plugin;
23
23
  },
@@ -31,4 +31,4 @@ const pluginStorage = () => {
31
31
  };
32
32
  };
33
33
  exports.pluginStorage = pluginStorage;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9wbHVnaW4tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBc0M7QUFDdEMsc0NBQWtDO0FBS2xDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUMxQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXhDOztHQUVHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEMsT0FBTztRQUNMOztXQUVHO1FBQ0gsR0FBRyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDakU7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0Q7O1dBRUc7UUFDSCxHQUFHLEVBQUUsVUFBVSxJQUFZLEVBQUUsTUFBdUI7WUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUV2QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBekJXLFFBQUEsYUFBYSxpQkF5QnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uL3V0aWwvZXJyb3JzJztcbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge1BsdWdpblN0b3JhZ2V9IGZyb20gJy4uL3R5cGVzL3BsdWdpbi1zdG9yYWdlJztcblxuY29uc3Qge1BsdWdpbkluaXRhbGl6YXRpb25FcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7Tk9UX0lOSVRBTElaRURfUExVR0lOfSA9IFNUUklOR1M7XG5cbi8qKlxuICogU3RvcmFnZSBmb3IgbWFpbnRhaW5pbmcgcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpblN0b3JhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IHN0b3JhZ2U6IFBsdWdpblN0b3JhZ2UgPSB7fTtcblxuICByZXR1cm4ge1xuICAgIC8qKlxuICAgICAqIEdldHMgcGx1Z2luIGJ5IGdpdmVuIGBuYW1lYC4gSWYgaXQncyBtaXNzaW5nIHRoZW4gdGhyb3dzIGVycm9yLlxuICAgICAqL1xuICAgIGdldDogKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGx1Z2luID0gc3RvcmFnZVtuYW1lXTtcblxuICAgICAgaWYgKCFwbHVnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFBsdWdpbkluaXRhbGl6YXRpb25FcnJvcihOT1RfSU5JVEFMSVpFRF9QTFVHSU4obmFtZSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGx1Z2luO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogU2F2ZXMgZ2l2ZW4gYHBsdWdpbmAgd2l0aCBnaXZlbiBgbmFtZWAuXG4gICAgICovXG4gICAgc2V0OiBmdW5jdGlvbiAobmFtZTogc3RyaW5nLCBwbHVnaW46IFBsdWdpbkludGVyZmFjZSkge1xuICAgICAgc3RvcmFnZVtuYW1lXSA9IHBsdWdpbjtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgfTtcbn07XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9wbHVnaW4tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBNkM7QUFFN0Msc0NBQWtDO0FBS2xDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMzQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXhDOztHQUVHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFFbEMsT0FBTztRQUNMOztXQUVHO1FBQ0gsR0FBRyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDbEU7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0Q7O1dBRUc7UUFDSCxHQUFHLEVBQUUsVUFBVSxJQUFZLEVBQUUsTUFBdUI7WUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUV2QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBekJXLFFBQUEsYUFBYSxpQkF5QnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge1BsdWdpblN0b3JhZ2V9IGZyb20gJy4uL3R5cGVzL3BsdWdpbi1zdG9yYWdlJztcblxuY29uc3Qge1BsdWdpbkluaXRpYWxpemF0aW9uRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge05PVF9JTklUQUxJWkVEX1BMVUdJTn0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIFN0b3JhZ2UgZm9yIG1haW50YWluaW5nIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBwbHVnaW5TdG9yYWdlID0gKCkgPT4ge1xuICBjb25zdCBzdG9yYWdlOiBQbHVnaW5TdG9yYWdlID0ge307XG5cbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHBsdWdpbiBieSBnaXZlbiBgbmFtZWAuIElmIGl0J3MgbWlzc2luZyB0aGVuIHRocm93cyBlcnJvci5cbiAgICAgKi9cbiAgICBnZXQ6IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHBsdWdpbiA9IHN0b3JhZ2VbbmFtZV07XG5cbiAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgIHRocm93IG5ldyBQbHVnaW5Jbml0aWFsaXphdGlvbkVycm9yKE5PVF9JTklUQUxJWkVEX1BMVUdJTihuYW1lKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBTYXZlcyBnaXZlbiBgcGx1Z2luYCB3aXRoIGdpdmVuIGBuYW1lYC5cbiAgICAgKi9cbiAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lOiBzdHJpbmcsIHBsdWdpbjogUGx1Z2luSW50ZXJmYWNlKSB7XG4gICAgICBzdG9yYWdlW25hbWVdID0gcGx1Z2luO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validate = exports.validateManifest = exports.manifestSchema = exports.allDefined = exports.atLeastOneDefined = void 0;
4
4
  const zod_1 = require("zod");
5
- const errors_1 = require("./errors");
5
+ const utils_1 = require("@grnsft/if-core/utils");
6
+ const strings_1 = require("../config/strings");
6
7
  const aggregation_1 = require("../types/aggregation");
7
8
  const parameters_1 = require("../types/parameters");
8
- const strings_1 = require("../config/strings");
9
- const { ManifestValidationError, InputValidationError } = errors_1.ERRORS;
9
+ const { ManifestValidationError, InputValidationError } = utils_1.ERRORS;
10
10
  const { VALIDATING_MANIFEST } = strings_1.STRINGS;
11
11
  /**
12
12
  * At least one property defined handler.
@@ -121,4 +121,4 @@ const flattenPath = (path) => {
121
121
  const flattenPath = path.map(part => typeof part === 'number' ? `[${part}]` : part);
122
122
  return flattenPath.join('.');
123
123
  };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUQ7QUFFekQscUNBQWdDO0FBRWhDLHNEQUF5RDtBQUN6RCxvREFBc0Q7QUFFdEQsK0NBQTBDO0FBRTFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUMvRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixHQUE4QyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFGdEMsUUFBQSxpQkFBaUIscUJBRXFCO0FBRW5EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFEcEMsUUFBQSxVQUFVLGNBQzBCO0FBRWpEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUs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QUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QztRQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDekcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBVSxFQUFFO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kSXNzdWVDb2RlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuL2Vycm9ycyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCB7TWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IsIElucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtWQUxJREFUSU5HX01BTklGRVNUfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQXQgbGVhc3Qgb25lIHByb3BlcnR5IGRlZmluZWQgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGF0TGVhc3RPbmVEZWZpbmVkID0gKFxuICBvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+XG4pID0+IE9iamVjdC52YWx1ZXMob2JqKS5zb21lKHYgPT4gdiAhPT0gdW5kZWZpbmVkKTtcblxuLyoqXG4gKiBBbGwgcHJvcGVydGllcyBhcmUgZGVmaW5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgYWxsRGVmaW5lZCA9IChvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHVua25vd24+KSA9PlxuICBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gc2NoZW1hIGZvciBtYW5pZmVzdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBtYW5pZmVzdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICB0YWdzOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBraW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCkubnVsbGFibGUoKSxcbiAgICAgIGNvbXBsZXhpdHk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY2F0ZWdvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgYWdncmVnYXRpb246IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIG1ldHJpY3M6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICB0eXBlOiB6LmVudW0oQUdHUkVHQVRJT05fTUVUSE9EUyksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBwYXJhbXM6IHpcbiAgICAuYXJyYXkoXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICAgICAgICBhZ2dyZWdhdGlvbjogei5lbnVtKEFHR1JFR0FUSU9OX1RZUEVTKSxcbiAgICAgICAgdW5pdDogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIGluaXRpYWxpemU6IHoub2JqZWN0KHtcbiAgICBwbHVnaW5zOiB6LnJlY29yZChcbiAgICAgIHouc3RyaW5nKCksXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIHBhdGg6IHouc3RyaW5nKCksXG4gICAgICAgIG1ldGhvZDogei5zdHJpbmcoKSxcbiAgICAgICAgJ2dsb2JhbC1jb25maWcnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKS5vcHRpb25hbCgpLFxuICAgICAgfSlcbiAgICApLFxuICAgIG91dHB1dHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgfSksXG4gIGV4ZWN1dGlvbjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgY29tbWFuZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgZW52aXJvbm1lbnQ6IHpcbiAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgJ2lmLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgIG9zOiB6LnN0cmluZygpLFxuICAgICAgICAgICdvcy12ZXJzaW9uJzogei5zdHJpbmcoKSxcbiAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogei5zdHJpbmcoKSxcbiAgICAgICAgICAnZGF0ZS10aW1lJzogei5zdHJpbmcoKSxcbiAgICAgICAgICBkZXBlbmRlbmNpZXM6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb25hbCgpLFxuICAgICAgc3RhdHVzOiB6LnN0cmluZygpLFxuICAgICAgZXJyb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpLFxuICB0cmVlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LmFueSgpKSxcbn0pO1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgbWFuaWZlc3RgIG9iamVjdCB0byBtYXRjaCBwYXR0ZXJuLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVNYW5pZmVzdCA9IChtYW5pZmVzdDogYW55KSA9PiB7XG4gIGNvbnNvbGUuZGVidWcoVkFMSURBVElOR19NQU5JRkVTVCk7XG5cbiAgcmV0dXJuIHZhbGlkYXRlKG1hbmlmZXN0U2NoZW1hLCBtYW5pZmVzdCwgdW5kZWZpbmVkLCBNYW5pZmVzdFZhbGlkYXRpb25FcnJvcik7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRlcyBnaXZlbiBgb2JqZWN0YCB3aXRoIGdpdmVuIGBzY2hlbWFgLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSA8VD4oXG4gIHNjaGVtYTogWm9kU2NoZW1hPFQ+LFxuICBvYmplY3Q6IGFueSxcbiAgaW5kZXg/OiBudW1iZXIsXG4gIGVycm9yQ29uc3RydWN0b3I6IEVycm9yQ29uc3RydWN0b3IgPSBJbnB1dFZhbGlkYXRpb25FcnJvclxuKSA9PiB7XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKG9iamVjdCk7XG5cbiAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JDb25zdHJ1Y3RvcihcbiAgICAgIHByZXR0aWZ5RXJyb3JNZXNzYWdlKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZSwgaW5kZXgpXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LmRhdGE7XG59O1xuXG4vKipcbiAqIEVycm9yIG1lc3NhZ2UgZm9ybWF0dGVyIGZvciB6b2QgaXNzdWVzLlxuICovXG5jb25zdCBwcmV0dGlmeUVycm9yTWVzc2FnZSA9IChpc3N1ZXM6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpID0+IHtcbiAgY29uc3QgaXNzdWVzQXJyYXkgPSBKU09OLnBhcnNlKGlzc3Vlcyk7XG5cbiAgcmV0dXJuIGlzc3Vlc0FycmF5Lm1hcCgoaXNzdWU6IFpvZElzc3VlKSA9PiB7XG4gICAgY29uc3QgY29kZSA9IGlzc3VlLmNvZGU7XG4gICAgbGV0IHtwYXRoLCBtZXNzYWdlfSA9IGlzc3VlO1xuXG4gICAgY29uc3QgaW5kZXhFcnJvck1lc3NhZ2UgPSBpbmRleCAhPT0gdW5kZWZpbmVkID8gYCBhdCBpbmRleCAke2luZGV4fWAgOiAnJztcblxuICAgIGlmIChpc3N1ZS5jb2RlID09PSBab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbikge1xuICAgICAgbWVzc2FnZSA9IGlzc3VlLnVuaW9uRXJyb3JzWzBdLmlzc3Vlc1swXS5tZXNzYWdlO1xuICAgICAgcGF0aCA9IGlzc3VlLnVuaW9uRXJyb3JzWzBdLmlzc3Vlc1swXS5wYXRoO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1bGxQYXRoID0gZmxhdHRlblBhdGgocGF0aCk7XG5cbiAgICBpZiAoIWZ1bGxQYXRoKSB7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYFwiJHtmdWxsUGF0aH1cIiBwYXJhbWV0ZXIgaXMgJHttZXNzYWdlLnRvTG93ZXJDYXNlKCl9JHtpbmRleEVycm9yTWVzc2FnZX0uIEVycm9yIGNvZGU6ICR7Y29kZX0uYDtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEZsYXR0ZW5zIGFuIGFycmF5IHJlcHJlc2VudGluZyBhIG5lc3RlZCBwYXRoIGludG8gYSBzdHJpbmcuXG4gKi9cbmNvbnN0IGZsYXR0ZW5QYXRoID0gKHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmbGF0dGVuUGF0aCA9IHBhdGgubWFwKHBhcnQgPT5cbiAgICB0eXBlb2YgcGFydCA9PT0gJ251bWJlcicgPyBgWyR7cGFydH1dYCA6IHBhcnRcbiAgKTtcblxuICByZXR1cm4gZmxhdHRlblBhdGguam9pbignLicpO1xufTtcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC92YWxpZGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUQ7QUFDekQsaURBQTZDO0FBRTdDLCtDQUEwQztBQUUxQyxzREFBeUQ7QUFDekQsb0RBQXNEO0FBRXRELE1BQU0sRUFBQyx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMvRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXRDOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixHQUE4QyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFGdEMsUUFBQSxpQkFBaUIscUJBRXFCO0FBRW5EOztHQUVHO0FBQ0ksTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUE4QyxFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7QUFEcEMsUUFBQSxVQUFVLGNBQzBCO0FBRWpEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ3RDLFVBQVUs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QUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUM1QztRQUVELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksUUFBUSxrQkFBa0IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixpQkFBaUIsSUFBSSxHQUFHLENBQUM7SUFDekcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBeUIsRUFBVSxFQUFFO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtab2RJc3N1ZSwgWm9kSXNzdWVDb2RlLCBab2RTY2hlbWEsIHp9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7QUdHUkVHQVRJT05fTUVUSE9EU30gZnJvbSAnLi4vdHlwZXMvYWdncmVnYXRpb24nO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi4vdHlwZXMvcGFyYW1ldGVycyc7XG5cbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvciwgSW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1ZBTElEQVRJTkdfTUFOSUZFU1R9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBBdCBsZWFzdCBvbmUgcHJvcGVydHkgZGVmaW5lZCBoYW5kbGVyLlxuICovXG5leHBvcnQgY29uc3QgYXRMZWFzdE9uZURlZmluZWQgPSAoXG4gIG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj5cbikgPT4gT2JqZWN0LnZhbHVlcyhvYmopLnNvbWUodiA9PiB2ICE9PSB1bmRlZmluZWQpO1xuXG4vKipcbiAqIEFsbCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBhbGxEZWZpbmVkID0gKG9iajogUmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdW5rbm93bj4pID0+XG4gIE9iamVjdC52YWx1ZXMob2JqKS5ldmVyeSh2ID0+IHYgIT09IHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVmFsaWRhdGlvbiBzY2hlbWEgZm9yIG1hbmlmZXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hbmlmZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gIHRhZ3M6IHpcbiAgICAub2JqZWN0KHtcbiAgICAgIGtpbmQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5udWxsYWJsZSgpLFxuICAgICAgY29tcGxleGl0eTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLm51bGxhYmxlKCksXG4gICAgfSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5udWxsYWJsZSgpLFxuICBhZ2dyZWdhdGlvbjogelxuICAgIC5vYmplY3Qoe1xuICAgICAgbWV0cmljczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgIHR5cGU6IHouZW51bShBR0dSRUdBVElPTl9NRVRIT0RTKSxcbiAgICB9KVxuICAgIC5vcHRpb25hbCgpXG4gICAgLm51bGxhYmxlKCksXG4gIHBhcmFtczogelxuICAgIC5hcnJheShcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCksXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB6LmVudW0oQUdHUkVHQVRJT05fVFlQRVMpLFxuICAgICAgICB1bml0OiB6LnN0cmluZygpLFxuICAgICAgfSlcbiAgICApXG4gICAgLm9wdGlvbmFsKClcbiAgICAubnVsbGFibGUoKSxcbiAgaW5pdGlhbGl6ZTogei5vYmplY3Qoe1xuICAgIHBsdWdpbnM6IHoucmVjb3JkKFxuICAgICAgei5zdHJpbmcoKSxcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgcGF0aDogei5zdHJpbmcoKSxcbiAgICAgICAgbWV0aG9kOiB6LnN0cmluZygpLFxuICAgICAgICAnZ2xvYmFsLWNvbmZpZyc6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLm9wdGlvbmFsKCksXG4gICAgICB9KVxuICAgICksXG4gICAgb3V0cHV0czogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB9KSxcbiAgZXhlY3V0aW9uOiB6XG4gICAgLm9iamVjdCh7XG4gICAgICBjb21tYW5kOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBlbnZpcm9ubWVudDogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAnaWYtdmVyc2lvbic6IHouc3RyaW5nKCksXG4gICAgICAgICAgb3M6IHouc3RyaW5nKCksXG4gICAgICAgICAgJ29zLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdub2RlLXZlcnNpb24nOiB6LnN0cmluZygpLFxuICAgICAgICAgICdkYXRlLXRpbWUnOiB6LnN0cmluZygpLFxuICAgICAgICAgIGRlcGVuZGVuY2llczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbmFsKCksXG4gICAgICBzdGF0dXM6IHouc3RyaW5nKCksXG4gICAgICBlcnJvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIH0pXG4gICAgLm9wdGlvbmFsKCksXG4gIHRyZWU6IHoucmVjb3JkKHouc3RyaW5nKCksIHouYW55KCkpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBtYW5pZmVzdGAgb2JqZWN0IHRvIG1hdGNoIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU1hbmlmZXN0ID0gKG1hbmlmZXN0OiBhbnkpID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhWQUxJREFUSU5HX01BTklGRVNUKTtcblxuICByZXR1cm4gdmFsaWRhdGUobWFuaWZlc3RTY2hlbWEsIG1hbmlmZXN0LCB1bmRlZmluZWQsIE1hbmlmZXN0VmFsaWRhdGlvbkVycm9yKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGVzIGdpdmVuIGBvYmplY3RgIHdpdGggZ2l2ZW4gYHNjaGVtYWAuXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZSA9IDxUPihcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4gIG9iamVjdDogYW55LFxuICBpbmRleD86IG51bWJlcixcbiAgZXJyb3JDb25zdHJ1Y3RvcjogRXJyb3JDb25zdHJ1Y3RvciA9IElucHV0VmFsaWRhdGlvbkVycm9yXG4pID0+IHtcbiAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHNjaGVtYS5zYWZlUGFyc2Uob2JqZWN0KTtcblxuICBpZiAoIXZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBlcnJvckNvbnN0cnVjdG9yKFxuICAgICAgcHJldHRpZnlFcnJvck1lc3NhZ2UodmFsaWRhdGlvblJlc3VsdC5lcnJvci5tZXNzYWdlLCBpbmRleClcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuZGF0YTtcbn07XG5cbi8qKlxuICogRXJyb3IgbWVzc2FnZSBmb3JtYXR0ZXIgZm9yIHpvZCBpc3N1ZXMuXG4gKi9cbmNvbnN0IHByZXR0aWZ5RXJyb3JNZXNzYWdlID0gKGlzc3Vlczogc3RyaW5nLCBpbmRleD86IG51bWJlcikgPT4ge1xuICBjb25zdCBpc3N1ZXNBcnJheSA9IEpTT04ucGFyc2UoaXNzdWVzKTtcblxuICByZXR1cm4gaXNzdWVzQXJyYXkubWFwKChpc3N1ZTogWm9kSXNzdWUpID0+IHtcbiAgICBjb25zdCBjb2RlID0gaXNzdWUuY29kZTtcbiAgICBsZXQge3BhdGgsIG1lc3NhZ2V9ID0gaXNzdWU7XG5cbiAgICBjb25zdCBpbmRleEVycm9yTWVzc2FnZSA9IGluZGV4ICE9PSB1bmRlZmluZWQgPyBgIGF0IGluZGV4ICR7aW5kZXh9YCA6ICcnO1xuXG4gICAgaWYgKGlzc3VlLmNvZGUgPT09IFpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uKSB7XG4gICAgICBtZXNzYWdlID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLm1lc3NhZ2U7XG4gICAgICBwYXRoID0gaXNzdWUudW5pb25FcnJvcnNbMF0uaXNzdWVzWzBdLnBhdGg7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbFBhdGggPSBmbGF0dGVuUGF0aChwYXRoKTtcblxuICAgIGlmICghZnVsbFBhdGgpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIHJldHVybiBgXCIke2Z1bGxQYXRofVwiIHBhcmFtZXRlciBpcyAke21lc3NhZ2UudG9Mb3dlckNhc2UoKX0ke2luZGV4RXJyb3JNZXNzYWdlfS4gRXJyb3IgY29kZTogJHtjb2RlfS5gO1xuICB9KTtcbn07XG5cbi8qKlxuICogRmxhdHRlbnMgYW4gYXJyYXkgcmVwcmVzZW50aW5nIGEgbmVzdGVkIHBhdGggaW50byBhIHN0cmluZy5cbiAqL1xuY29uc3QgZmxhdHRlblBhdGggPSAocGF0aDogKHN0cmluZyB8IG51bWJlcilbXSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGZsYXR0ZW5QYXRoID0gcGF0aC5tYXAocGFydCA9PlxuICAgIHR5cGVvZiBwYXJ0ID09PSAnbnVtYmVyJyA/IGBbJHtwYXJ0fV1gIDogcGFydFxuICApO1xuXG4gIHJldHVybiBmbGF0dGVuUGF0aC5qb2luKCcuJyk7XG59O1xuIl19
package/jest.config.js CHANGED
@@ -12,8 +12,8 @@ module.exports = {
12
12
  },
13
13
  modulePathIgnorePatterns: [
14
14
  './build',
15
- './src/__tests__/unit/lib/manifest',
16
15
  './src/__tests__/integration/helpers',
17
16
  './src/__tests__/integration/test-data',
18
17
  ],
18
+ coveragePathIgnorePatterns: ['src/config', 'src/types'],
19
19
  };
@@ -2,11 +2,17 @@ name: cloud-metadata
2
2
  description: cloud/instance-type instance type is not supported in the cloud vendor
3
3
  tags:
4
4
  initialize:
5
- outputs: ['yaml']
5
+ # outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  tree:
11
17
  children:
12
18
  child:
@@ -0,0 +1,27 @@
1
+ name: cloud-metadata
2
+ description: failure with invalid `inputs.cloud/vendor`
3
+ tags:
4
+ initialize:
5
+ # outputs: ['yaml']
6
+ plugins:
7
+ cloud-metadata:
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
16
+ tree:
17
+ children:
18
+ child:
19
+ pipeline:
20
+ - cloud-metadata
21
+ config:
22
+ inputs:
23
+ - timestamp: 2023-07-06T00:00 # [KEYWORD] [NO-SUBFIELDS] time when measurement occurred
24
+ cloud/vendor: gcp
25
+ cloud/instance-type: m5n.large
26
+ duration: 100
27
+ cpu/utilization: 10
@@ -2,11 +2,17 @@ name: cloud-metadata
2
2
  description: failing because cloud/vendor is not provided
3
3
  tags:
4
4
  initialize:
5
- outputs: ['yaml']
5
+ # outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  tree:
11
17
  children:
12
18
  child:
@@ -5,8 +5,14 @@ initialize:
5
5
  # outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  tree:
11
17
  children:
12
18
  child:
@@ -2,8 +2,7 @@ name: csv-lookup-demo
2
2
  description:
3
3
  tags:
4
4
  initialize:
5
- # outputs:
6
- # - yaml
5
+ # outputs: [yaml]
7
6
  plugins:
8
7
  cloud-metadata:
9
8
  method: CSVLookup
@@ -2,8 +2,7 @@ name: csv-lookup-demo
2
2
  description:
3
3
  tags:
4
4
  initialize:
5
- # outputs:
6
- # - yaml
5
+ # outputs: [yaml]
7
6
  plugins:
8
7
  cloud-metadata:
9
8
  method: CSVLookup
@@ -2,8 +2,7 @@ name: csv-lookup-demo
2
2
  description:
3
3
  tags:
4
4
  initialize:
5
- # outputs:
6
- # - yaml
5
+ # outputs: [yaml]
7
6
  plugins:
8
7
  cloud-metadata:
9
8
  method: CSVLookup
@@ -2,8 +2,7 @@ name: csv-lookup-demo
2
2
  description:
3
3
  tags:
4
4
  initialize:
5
- # outputs:
6
- # - yaml
5
+ # outputs: [yaml]
7
6
  plugins:
8
7
  cloud-metadata:
9
8
  method: CSVLookup
@@ -23,4 +22,4 @@ tree:
23
22
  - timestamp: 2023-08-06T00:00
24
23
  duration: 3600
25
24
  cloud/provider: Google Cloud
26
- cloud/region: asia-east-1
25
+ cloud/region: asia-east1
@@ -0,0 +1,23 @@
1
+ name: tdp-finder
2
+ description: failure with `inputs` missing `physical-processor` param
3
+ tags:
4
+ initialize:
5
+ # outputs: ['yaml']
6
+ plugins:
7
+ tdp-finder:
8
+ method: CSVLookup
9
+ path: "builtin"
10
+ global-config:
11
+ filepath: https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/tdp-data-1.csv
12
+ query:
13
+ name: physical-processor
14
+ output: "tdp"
15
+ tree:
16
+ children:
17
+ child:
18
+ pipeline:
19
+ - tdp-finder
20
+ config:
21
+ inputs:
22
+ - timestamp: 2023-07-06T00:00
23
+ duration: 300
@@ -0,0 +1,24 @@
1
+ name: tdp-finder
2
+ description: successful path
3
+ tags:
4
+ initialize:
5
+ # outputs: ['yaml']
6
+ plugins:
7
+ tdp-finder:
8
+ method: CSVLookup
9
+ path: "builtin"
10
+ global-config:
11
+ filepath: https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/tdp-data-1.csv
12
+ query:
13
+ name: physical-processor
14
+ output: "tdp"
15
+ tree:
16
+ children:
17
+ child:
18
+ pipeline:
19
+ - tdp-finder
20
+ config:
21
+ inputs:
22
+ - timestamp: 2023-07-06T00:00
23
+ duration: 300
24
+ physical-processor: AMD 302
@@ -0,0 +1,24 @@
1
+ name: tdp-finder
2
+ description: successful path
3
+ tags:
4
+ initialize:
5
+ # outputs: ['yaml']
6
+ plugins:
7
+ tdp-finder:
8
+ method: CSVLookup
9
+ path: "builtin"
10
+ global-config:
11
+ filepath: https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/tdp-data-1.csv
12
+ query:
13
+ name: physical-processor
14
+ output: "tdp"
15
+ tree:
16
+ children:
17
+ child:
18
+ pipeline:
19
+ - tdp-finder
20
+ config:
21
+ inputs:
22
+ - timestamp: 2023-07-06T00:00
23
+ duration: 300
24
+ physical-processor: AMD 3020e
@@ -5,8 +5,14 @@ initialize:
5
5
  # outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  divide:
11
17
  method: Divide
12
18
  path: "builtin"
@@ -14,19 +20,12 @@ initialize:
14
20
  numerator: vcpus-allocated
15
21
  denominator: 0
16
22
  output: cpu/number-cores
17
- boavizta-cpu:
18
- method: BoaviztaCpuOutput
19
- path: "@grnsft/if-unofficial-plugins"
20
- global-config:
21
- allocation: LINEAR
22
- verbose: true
23
23
  tree:
24
24
  children:
25
25
  child:
26
26
  pipeline:
27
27
  - cloud-metadata
28
28
  - divide
29
- - boavizta-cpu
30
29
  config:
31
30
  divide:
32
31
  defaults:
@@ -5,8 +5,14 @@ initialize:
5
5
  outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  divide:
11
17
  method: Divide
12
18
  path: "builtin"
@@ -14,19 +20,12 @@ initialize:
14
20
  numerator: vcpus-allocated
15
21
  denominator: 'vcpus'
16
22
  output: cpu/number-cores
17
- boavizta-cpu:
18
- method: BoaviztaCpuOutput
19
- path: "@grnsft/if-unofficial-plugins"
20
- global-config:
21
- allocation: LINEAR
22
- verbose: true
23
23
  tree:
24
24
  children:
25
25
  child:
26
26
  pipeline:
27
27
  - cloud-metadata
28
28
  - divide
29
- - boavizta-cpu
30
29
  config:
31
30
  divide:
32
31
  defaults:
@@ -5,8 +5,14 @@ initialize:
5
5
  # outputs: ['yaml']
6
6
  plugins:
7
7
  cloud-metadata:
8
- method: CloudMetadata
9
- path: "@grnsft/if-plugins"
8
+ path: builtin
9
+ method: CSVLookup
10
+ global-config:
11
+ filepath: >-
12
+ https://raw.githubusercontent.com/Green-Software-Foundation/if-data/main/cloud-metdata-aws-instances.csv
13
+ query:
14
+ instance-class: cloud/instance-type
15
+ output: ['cpu-cores-utilized', 'vcpus-allocated']
10
16
  divide:
11
17
  method: Divide
12
18
  path: "builtin"
@@ -14,19 +20,12 @@ initialize:
14
20
  #numerator: vcpus-allocated
15
21
  denominator: 2
16
22
  output: cpu/number-cores
17
- boavizta-cpu:
18
- method: BoaviztaCpuOutput
19
- path: "@grnsft/if-unofficial-plugins"
20
- global-config:
21
- allocation: LINEAR
22
- verbose: true
23
23
  tree:
24
24
  children:
25
25
  child:
26
26
  pipeline:
27
27
  - cloud-metadata
28
28
  - divide
29
- - boavizta-cpu
30
29
  config:
31
30
  divide:
32
31
  defaults: