@grnsft/if 0.4.0-beta.1 → 0.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/CONTRIBUTING.md +7 -5
  2. package/README.md +20 -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 +85 -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 +41 -5
  53. package/build/config/strings.js +46 -9
  54. package/build/diff.js +7 -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 +5 -7
  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/types/util/args.d.ts +1 -0
  73. package/build/types/util/args.js +1 -1
  74. package/build/util/aggregation-helper.d.ts +1 -1
  75. package/build/util/aggregation-helper.js +5 -5
  76. package/build/util/args.d.ts +23 -1
  77. package/build/util/args.js +91 -14
  78. package/build/util/fs.d.ts +20 -0
  79. package/build/util/fs.js +94 -0
  80. package/build/util/helpers.d.ts +26 -6
  81. package/build/util/helpers.js +112 -17
  82. package/build/util/npm.d.ts +28 -0
  83. package/build/util/npm.js +152 -0
  84. package/build/util/plugin-storage.js +4 -4
  85. package/build/util/validations.js +4 -4
  86. package/github-processes.md +39 -0
  87. package/jest.config.js +1 -1
  88. package/manifests/bugs/aggregation-error-wrong-metric.yml +73 -23
  89. package/manifests/bugs/azure-importer-ignoring-defaults.yml +6 -3
  90. package/manifests/bugs/azure-importer-incorrect-calculation.yml +6 -3
  91. package/manifests/bugs/initialize-error-no-config.yml +4 -5
  92. package/manifests/bugs/initialize-error-no-path.yml +9 -5
  93. package/manifests/bugs/input-error-missing-duration.yml +10 -6
  94. package/manifests/bugs/pipeline-error-naming-mismatch.yml +8 -4
  95. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +9 -5
  96. package/manifests/bugs/pipeline-ordering-error.yml +43 -34
  97. package/manifests/examples/copy.yaml +20 -0
  98. package/manifests/examples/generics.yml +48 -13
  99. package/manifests/examples/instance-metadata.yml +4 -4
  100. package/manifests/examples/mock-cpu-util-to-carbon.yml +8 -2
  101. package/manifests/examples/nesting.yml +82 -35
  102. package/manifests/examples/pipeline-teads-sci.yml +54 -18
  103. package/manifests/examples/pipeline-with-aggregate.yml +66 -24
  104. package/manifests/examples/pipeline-with-mocks.yml +65 -22
  105. package/manifests/examples/region-metadata.yml +26 -0
  106. package/manifests/examples/tdp-finder.yml +23 -0
  107. package/manifests/examples/zeros.yaml +130 -0
  108. package/manifests/features/{aggregate-failure-inalid-metrics.yml → aggregate-failure-invalid-metrics.yml} +9 -3
  109. package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +9 -3
  110. package/manifests/features/aggregate-horizontal.yml +8 -2
  111. package/manifests/features/aggregate-vertical.yml +8 -2
  112. package/manifests/features/aggregate.yml +8 -2
  113. package/manifests/integrations/{cloud-metadata-divide-boavizta.yml → cloud-metadata-divide.yml} +8 -9
  114. package/manifests/integrations/instance-metadata/failure-invalid-instance-type.yaml +33 -0
  115. package/manifests/integrations/instance-metadata/failure-invalid-provider.yaml +33 -0
  116. package/manifests/integrations/instance-metadata/failure-missing-queried-input.yml +33 -0
  117. package/manifests/integrations/instance-metadata/success.yml +33 -0
  118. package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +8 -2
  119. package/manifests/integrations/mock-obs-time-sync.yml +50 -5
  120. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-instance-type.yaml +9 -3
  121. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-vendor.yaml +8 -2
  122. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-missing-cloud-vendor.yml +9 -3
  123. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/success.yml +8 -2
  124. package/manifests/plugins/csv-lookup/{success.yml → region-metadata/success.yml} +1 -1
  125. package/manifests/plugins/csv-lookup/tdp-finder/failure-missing-input-param.yml +23 -0
  126. package/manifests/plugins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +24 -0
  127. package/manifests/plugins/csv-lookup/tdp-finder/success.yml +24 -0
  128. package/manifests/plugins/divide/failure-denominator-equal-zero.yml +8 -9
  129. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +8 -9
  130. package/manifests/plugins/divide/failure-missing-numerator.yml +8 -9
  131. package/manifests/plugins/divide/success.yml +9 -10
  132. package/manifests/plugins/exponent/success.yml +26 -0
  133. package/manifests/plugins/interpolation/success.yml +24 -0
  134. package/manifests/plugins/sci/failure-missing-input-param.yml +2 -6
  135. package/manifests/plugins/sci/success.yml +0 -3
  136. package/manifests/plugins/subtract/success.yml +25 -0
  137. package/manifests/plugins/sum/success.yml +1 -1
  138. package/package.json +10 -4
  139. package/src/__mocks__/mock-manifest.yaml +72 -0
  140. package/src/builtins/README.md +1 -1
  141. package/src/builtins/coefficient/README.md +19 -1
  142. package/src/builtins/copy-param/README.md +104 -0
  143. package/src/builtins/csv-lookup/README.md +39 -1
  144. package/src/builtins/divide/README.md +29 -3
  145. package/src/builtins/exponent/README.md +21 -1
  146. package/src/builtins/interpolation/README.md +29 -1
  147. package/src/builtins/mock-observations/README.md +1 -1
  148. package/src/builtins/multiply/README.md +16 -1
  149. package/src/builtins/regex/README.md +32 -2
  150. package/src/builtins/sci/README.md +24 -1
  151. package/src/builtins/sci-embodied/README.md +15 -1
  152. package/src/builtins/shell/README.md +12 -1
  153. package/src/builtins/subtract/README.md +12 -1
  154. package/src/builtins/sum/README.md +28 -1
  155. package/src/config/env-template.yml +24 -0
  156. package/build/builtins/coefficient/types.d.ts +0 -5
  157. package/build/builtins/coefficient/types.js +0 -3
  158. package/build/builtins/exponent/types.d.ts +0 -5
  159. package/build/builtins/exponent/types.js +0 -3
  160. package/build/builtins/interpolation/types.d.ts +0 -5
  161. package/build/builtins/interpolation/types.js +0 -10
  162. package/build/builtins/mock-observations/types.d.ts +0 -13
  163. package/build/builtins/mock-observations/types.js +0 -3
  164. package/build/builtins/multiply/types.d.ts +0 -4
  165. package/build/builtins/multiply/types.js +0 -3
  166. package/build/builtins/subtract/types.d.ts +0 -4
  167. package/build/builtins/subtract/types.js +0 -3
  168. package/build/builtins/sum/types.d.ts +0 -4
  169. package/build/builtins/sum/types.js +0 -3
  170. package/build/types/common.d.ts +0 -4
  171. package/build/types/common.js +0 -3
  172. package/build/types/group-by.d.ts +0 -3
  173. package/build/types/group-by.js +0 -3
  174. package/build/types/helpers.d.ts +0 -4
  175. package/build/types/helpers.js +0 -3
  176. package/build/util/errors.d.ts +0 -6
  177. package/build/util/errors.js +0 -33
  178. package/manifests/examples/basic.yml +0 -28
  179. package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +0 -18
  180. package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +0 -19
  181. package/manifests/plugins/tdp-finder/success.yml +0 -19
  182. /package/manifests/plugins/csv-lookup/{failure-missing-column.yml → region-metadata/failure-missing-column.yml} +0 -0
  183. /package/manifests/plugins/csv-lookup/{failure-missing-output.yml → region-metadata/failure-missing-output.yml} +0 -0
  184. /package/manifests/plugins/csv-lookup/{success-renaming.yml → region-metadata/success-renaming.yml} +0 -0
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Sci = void 0;
4
4
  const zod_1 = require("zod");
5
+ const utils_1 = require("@grnsft/if-core/utils");
5
6
  const validations_1 = require("../../util/validations");
6
- const helpers_1 = require("../../util/helpers");
7
- const errors_1 = require("../../util/errors");
8
- const { InputValidationError } = errors_1.ERRORS;
7
+ const config_1 = require("../../config");
8
+ const { MissingInputDataError } = utils_1.ERRORS;
9
+ const { MISSING_FUNCTIONAL_UNIT_CONFIG, MISSING_FUNCTIONAL_UNIT_INPUT, SCI_MISSING_FN_UNIT, ZERO_DIVISION, } = config_1.STRINGS;
9
10
  const Sci = (globalConfig) => {
10
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.Sci.name);
11
11
  const metadata = {
12
12
  kind: 'execute',
13
13
  };
@@ -15,49 +15,50 @@ const Sci = (globalConfig) => {
15
15
  * Validates node and gloabl configs.
16
16
  */
17
17
  const validateConfig = (config) => {
18
- const errorMessage = '`functional-unit` should be provided in your global config';
19
18
  const schema = zod_1.z
20
19
  .object({
21
20
  'functional-unit': zod_1.z.string(),
22
21
  })
23
22
  .refine(data => data['functional-unit'], {
24
- message: errorMessage,
23
+ message: MISSING_FUNCTIONAL_UNIT_CONFIG,
25
24
  });
26
25
  return (0, validations_1.validate)(schema, config);
27
26
  };
28
27
  /**
29
28
  * Calculate the total emissions for a list of inputs.
30
29
  */
31
- const execute = (inputs) => {
32
- return inputs.map(input => {
33
- const safeInput = validateInput(input);
34
- const sci = safeInput['carbon'] > 0
35
- ? safeInput['carbon'] / input[globalConfig['functional-unit']]
36
- : 0;
30
+ const execute = (inputs) => inputs.map((input, index) => {
31
+ const safeInput = validateInput(input);
32
+ const functionalUnit = input[globalConfig['functional-unit']];
33
+ if (functionalUnit === 0) {
34
+ console.warn(ZERO_DIVISION(exports.Sci.name, index));
37
35
  return {
38
36
  ...input,
39
- sci,
37
+ sci: safeInput['carbon'],
40
38
  };
41
- });
42
- };
39
+ }
40
+ return {
41
+ ...input,
42
+ sci: safeInput['carbon'] / functionalUnit,
43
+ };
44
+ });
43
45
  /**
44
46
  * Checks for fields in input.
45
47
  */
46
48
  const validateInput = (input) => {
47
- const message = `'carbon' and ${globalConfig['functional-unit']} should be present in your input data.`;
48
49
  const validatedConfig = validateConfig(globalConfig);
49
50
  if (!(validatedConfig['functional-unit'] in input &&
50
- input[validatedConfig['functional-unit']] > 0)) {
51
- throw new InputValidationError(errorBuilder({
52
- message: 'functional-unit value is missing from input data or it is not a positive integer',
53
- }));
51
+ input[validatedConfig['functional-unit']] >= 0)) {
52
+ throw new MissingInputDataError(MISSING_FUNCTIONAL_UNIT_INPUT);
54
53
  }
55
54
  const schema = zod_1.z
56
55
  .object({
57
56
  carbon: zod_1.z.number().gte(0),
58
57
  duration: zod_1.z.number().gte(1),
59
58
  })
60
- .refine(validations_1.allDefined, { message });
59
+ .refine(validations_1.allDefined, {
60
+ message: SCI_MISSING_FN_UNIT(globalConfig['functional-unit']),
61
+ });
61
62
  return (0, validations_1.validate)(schema, input);
62
63
  };
63
64
  return {
@@ -66,4 +67,4 @@ const Sci = (globalConfig) => {
66
67
  };
67
68
  };
68
69
  exports.Sci = Sci;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2NpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUt0Qix3REFBNEQ7QUFDNUQsZ0RBQXFEO0FBQ3JELDhDQUF5QztBQUV6QyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFL0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUEwQixFQUFpQixFQUFFO0lBQy9ELE1BQU0sWUFBWSxHQUFHLElBQUEsMkJBQWlCLEVBQUMsV0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDL0MsTUFBTSxZQUFZLEdBQ2hCLDREQUE0RCxDQUFDO1FBRS9ELE1BQU0sTUFBTSxHQUFHLE9BQUM7YUFDYixNQUFNLENBQUM7WUFDTixpQkFBaUIsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQzlCLENBQUM7YUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsWUFBWTtTQUN0QixDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFO1FBQ3pELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1IsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRzthQUNKLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDNUMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyx3Q0FBd0MsQ0FBQztRQUV4RyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsSUFDRSxDQUFDLENBQ0MsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSztZQUMzQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQzlDLEVBQ0Q7WUFDQSxNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQztnQkFDWCxPQUFPLEVBQ0wsa0ZBQWtGO2FBQ3JGLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM1QixDQUFDO2FBQ0QsTUFBTSxDQUFDLHdCQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBRWpDLE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTdFVyxRQUFBLEdBQUcsT0E2RWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zfSBmcm9tICcuLi8uLi90eXBlcy9pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb25maWdQYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2NvbW1vbic7XG5cbmltcG9ydCB7dmFsaWRhdGUsIGFsbERlZmluZWR9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuaW1wb3J0IHtidWlsZEVycm9yTWVzc2FnZX0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi8uLi91dGlsL2Vycm9ycyc7XG5cbmNvbnN0IHtJbnB1dFZhbGlkYXRpb25FcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBTY2kgPSAoZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgZXJyb3JCdWlsZGVyID0gYnVpbGRFcnJvck1lc3NhZ2UoU2NpLm5hbWUpO1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBub2RlIGFuZCBnbG9hYmwgY29uZmlncy5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKGNvbmZpZz86IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAnYGZ1bmN0aW9uYWwtdW5pdGAgc2hvdWxkIGJlIHByb3ZpZGVkIGluIHlvdXIgZ2xvYmFsIGNvbmZpZyc7XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6IHouc3RyaW5nKCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShkYXRhID0+IGRhdGFbJ2Z1bmN0aW9uYWwtdW5pdCddLCB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSB0b3RhbCBlbWlzc2lvbnMgZm9yIGEgbGlzdCBvZiBpbnB1dHMuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pOiBQbHVnaW5QYXJhbXNbXSA9PiB7XG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gdmFsaWRhdGVJbnB1dChpbnB1dCk7XG4gICAgICBjb25zdCBzY2kgPVxuICAgICAgICBzYWZlSW5wdXRbJ2NhcmJvbiddID4gMFxuICAgICAgICAgID8gc2FmZUlucHV0WydjYXJib24nXSAvIGlucHV0W2dsb2JhbENvbmZpZ1snZnVuY3Rpb25hbC11bml0J11dXG4gICAgICAgICAgOiAwO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIHNjaSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVJbnB1dCA9IChpbnB1dDogUGx1Z2luUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGAnY2FyYm9uJyBhbmQgJHtnbG9iYWxDb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddfSBzaG91bGQgYmUgcHJlc2VudCBpbiB5b3VyIGlucHV0IGRhdGEuYDtcblxuICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQ29uZmlnKGdsb2JhbENvbmZpZyk7XG5cbiAgICBpZiAoXG4gICAgICAhKFxuICAgICAgICB2YWxpZGF0ZWRDb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddIGluIGlucHV0ICYmXG4gICAgICAgIGlucHV0W3ZhbGlkYXRlZENvbmZpZ1snZnVuY3Rpb25hbC11bml0J11dID4gMFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAnZnVuY3Rpb25hbC11bml0IHZhbHVlIGlzIG1pc3NpbmcgZnJvbSBpbnB1dCBkYXRhIG9yIGl0IGlzIG5vdCBhIHBvc2l0aXZlIGludGVnZXInLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgY2FyYm9uOiB6Lm51bWJlcigpLmd0ZSgwKSxcbiAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCkuZ3RlKDEpLFxuICAgICAgfSlcbiAgICAgIC5yZWZpbmUoYWxsRGVmaW5lZCwge21lc3NhZ2V9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGlucHV0KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2NpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUN0QixpREFBNkM7QUFHN0Msd0RBQTREO0FBRTVELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDdkMsTUFBTSxFQUNKLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLGFBQWEsR0FDZCxHQUFHLGdCQUFPLENBQUM7QUFFTCxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDL0QsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04saUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtTQUM5QixDQUFDO2FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdkMsT0FBTyxFQUFFLDhCQUE4QjtTQUN4QyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFLENBQ3pELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDMUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksY0FBYyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUM7YUFDekIsQ0FBQztTQUNIO1FBRUQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYztTQUMxQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFTDs7T0FFRztJQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxJQUNFLENBQUMsQ0FDQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLO1lBQzNDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDL0MsRUFDRDtZQUNBLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQzthQUNiLE1BQU0sQ0FBQztZQUNOLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUIsQ0FBQzthQUNELE1BQU0sQ0FBQyx3QkFBVSxFQUFFO1lBQ2xCLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM5RCxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUExRVcsUUFBQSxHQUFHLE9BMEVkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge0V4ZWN1dGVQbHVnaW4sIFBsdWdpblBhcmFtcywgQ29uZmlnUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlLCBhbGxEZWZpbmVkfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7TWlzc2luZ0lucHV0RGF0YUVycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtcbiAgTUlTU0lOR19GVU5DVElPTkFMX1VOSVRfQ09ORklHLFxuICBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9JTlBVVCxcbiAgU0NJX01JU1NJTkdfRk5fVU5JVCxcbiAgWkVST19ESVZJU0lPTixcbn0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgU2NpID0gKGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIG5vZGUgYW5kIGdsb2FibCBjb25maWdzLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoY29uZmlnPzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgICdmdW5jdGlvbmFsLXVuaXQnOiB6LnN0cmluZygpLFxuICAgICAgfSlcbiAgICAgIC5yZWZpbmUoZGF0YSA9PiBkYXRhWydmdW5jdGlvbmFsLXVuaXQnXSwge1xuICAgICAgICBtZXNzYWdlOiBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9DT05GSUcsXG4gICAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGNvbmZpZyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgdG90YWwgZW1pc3Npb25zIGZvciBhIGxpc3Qgb2YgaW5wdXRzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKTogUGx1Z2luUGFyYW1zW10gPT5cbiAgICBpbnB1dHMubWFwKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNhZmVJbnB1dCA9IHZhbGlkYXRlSW5wdXQoaW5wdXQpO1xuICAgICAgY29uc3QgZnVuY3Rpb25hbFVuaXQgPSBpbnB1dFtnbG9iYWxDb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddXTtcblxuICAgICAgaWYgKGZ1bmN0aW9uYWxVbml0ID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihaRVJPX0RJVklTSU9OKFNjaS5uYW1lLCBpbmRleCkpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICAgc2NpOiBzYWZlSW5wdXRbJ2NhcmJvbiddLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgc2NpOiBzYWZlSW5wdXRbJ2NhcmJvbiddIC8gZnVuY3Rpb25hbFVuaXQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlSW5wdXQgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcykgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQ29uZmlnKGdsb2JhbENvbmZpZyk7XG5cbiAgICBpZiAoXG4gICAgICAhKFxuICAgICAgICB2YWxpZGF0ZWRDb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddIGluIGlucHV0ICYmXG4gICAgICAgIGlucHV0W3ZhbGlkYXRlZENvbmZpZ1snZnVuY3Rpb25hbC11bml0J11dID49IDBcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBNaXNzaW5nSW5wdXREYXRhRXJyb3IoTUlTU0lOR19GVU5DVElPTkFMX1VOSVRfSU5QVVQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYSA9IHpcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICBjYXJib246IHoubnVtYmVyKCkuZ3RlKDApLFxuICAgICAgICBkdXJhdGlvbjogei5udW1iZXIoKS5ndGUoMSksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShhbGxEZWZpbmVkLCB7XG4gICAgICAgIG1lc3NhZ2U6IFNDSV9NSVNTSU5HX0ZOX1VOSVQoZ2xvYmFsQ29uZmlnWydmdW5jdGlvbmFsLXVuaXQnXSksXG4gICAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGlucHV0KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
@@ -1,2 +1,2 @@
1
- import { ExecutePlugin } from '../../types/interface';
1
+ import { ExecutePlugin } from '@grnsft/if-core/types';
2
2
  export declare const SciEmbodied: () => ExecutePlugin;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SciEmbodied = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const validations_1 = require("../../util/validations");
6
+ const config_1 = require("../../config");
7
+ const { SCI_EMBODIED_ERROR } = config_1.STRINGS;
6
8
  const SciEmbodied = () => {
7
9
  const metadata = {
8
10
  kind: 'execute',
@@ -18,15 +20,13 @@ const SciEmbodied = () => {
18
20
  /**
19
21
  * Calculate the Embodied carbon for a list of inputs.
20
22
  */
21
- const execute = (inputs) => {
22
- return inputs.map(input => {
23
- const safeInput = validateInput(input);
24
- return {
25
- ...input,
26
- 'carbon-embodied': calculateEmbodiedCarbon(safeInput),
27
- };
28
- });
29
- };
23
+ const execute = (inputs) => inputs.map(input => {
24
+ const safeInput = validateInput(input);
25
+ return {
26
+ ...input,
27
+ 'carbon-embodied': calculateEmbodiedCarbon(safeInput),
28
+ };
29
+ });
30
30
  /**
31
31
  * Calculate the Embodied carbon for the input.
32
32
  * M = totalEmissions * (duration/ExpectedLifespan) * (resourcesReserved/totalResources)
@@ -45,7 +45,6 @@ const SciEmbodied = () => {
45
45
  * Checks for required fields in input.
46
46
  */
47
47
  const validateInput = (input) => {
48
- const errorMessage = (unit) => `not a valid number in input. Please provide it as \`${unit}\``;
49
48
  const commonSchemaPart = (errorMessage) => ({
50
49
  'device/emissions-embodied': zod_1.z
51
50
  .number({
@@ -68,13 +67,13 @@ const SciEmbodied = () => {
68
67
  const vcpusSchemaPart = {
69
68
  'vcpus-allocated': zod_1.z
70
69
  .number({
71
- invalid_type_error: errorMessage('count'),
70
+ invalid_type_error: SCI_EMBODIED_ERROR('count'),
72
71
  })
73
72
  .gte(0)
74
73
  .min(0),
75
74
  'vcpus-total': zod_1.z
76
75
  .number({
77
- invalid_type_error: errorMessage('count'),
76
+ invalid_type_error: SCI_EMBODIED_ERROR('count'),
78
77
  })
79
78
  .gte(0)
80
79
  .min(0),
@@ -82,23 +81,23 @@ const SciEmbodied = () => {
82
81
  const resourcesSchemaPart = {
83
82
  'resources-reserved': zod_1.z
84
83
  .number({
85
- invalid_type_error: errorMessage('count'),
84
+ invalid_type_error: SCI_EMBODIED_ERROR('count'),
86
85
  })
87
86
  .gte(0)
88
87
  .min(0),
89
88
  'resources-total': zod_1.z
90
89
  .number({
91
- invalid_type_error: errorMessage('count'),
90
+ invalid_type_error: SCI_EMBODIED_ERROR('count'),
92
91
  })
93
92
  .gte(0)
94
93
  .min(0),
95
94
  };
96
95
  const schemaWithVcpus = zod_1.z.object({
97
- ...commonSchemaPart(errorMessage),
96
+ ...commonSchemaPart(SCI_EMBODIED_ERROR),
98
97
  ...vcpusSchemaPart,
99
98
  });
100
99
  const schemaWithResources = zod_1.z.object({
101
- ...commonSchemaPart(errorMessage),
100
+ ...commonSchemaPart(SCI_EMBODIED_ERROR),
102
101
  ...resourcesSchemaPart,
103
102
  });
104
103
  const schema = schemaWithVcpus.or(schemaWithResources).refine(validations_1.allDefined, {
@@ -112,4 +111,4 @@ const SciEmbodied = () => {
112
111
  };
113
112
  };
114
113
  exports.SciEmbodied = SciEmbodied;
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2NpLWVtYm9kaWVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUl0Qix3REFBNEQ7QUFFckQsTUFBTSxXQUFXLEdBQUcsR0FBa0IsRUFBRTtJQUM3QyxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRztRQUNkLDJCQUEyQjtRQUMzQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsYUFBYTtLQUNkLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdkMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsaUJBQWlCLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxDQUFDO2FBQ3RELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDdEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDMUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDM0QsTUFBTSxpQkFBaUIsR0FDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUQsTUFBTSxjQUFjLEdBQUcs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LE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBNUhXLFFBQUEsV0FBVyxlQTRIdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zfSBmcm9tICcuLi8uLi90eXBlcy9pbnRlcmZhY2UnO1xuXG5pbXBvcnQge3ZhbGlkYXRlLCBhbGxEZWZpbmVkfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IFNjaUVtYm9kaWVkID0gKCk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgY29uc3QgTUVUUklDUyA9IFtcbiAgICAnZGV2aWNlL2VtaXNzaW9ucy1lbWJvZGllZCcsXG4gICAgJ2RldmljZS9leHBlY3RlZC1saWZlc3BhbicsXG4gICAgJ3Jlc291cmNlcy1yZXNlcnZlZCcsXG4gICAgJ3ZjcHVzLWFsbG9jYXRlZCcsXG4gICAgJ3Jlc291cmNlcy10b3RhbCcsXG4gICAgJ3ZjcHVzLXRvdGFsJyxcbiAgXTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBFbWJvZGllZCBjYXJib24gZm9yIGEgbGlzdCBvZiBpbnB1dHMuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pID0+IHtcbiAgICByZXR1cm4gaW5wdXRzLm1hcChpbnB1dCA9PiB7XG4gICAgICBjb25zdCBzYWZlSW5wdXQgPSB2YWxpZGF0ZUlucHV0KGlucHV0KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICdjYXJib24tZW1ib2RpZWQnOiBjYWxjdWxhdGVFbWJvZGllZENhcmJvbihzYWZlSW5wdXQpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBFbWJvZGllZCBjYXJib24gZm9yIHRoZSBpbnB1dC5cbiAgICogTSA9IHRvdGFsRW1pc3Npb25zICogKGR1cmF0aW9uL0V4cGVjdGVkTGlmZXNwYW4pICogKHJlc291cmNlc1Jlc2VydmVkL3RvdGFsUmVzb3VyY2VzKVxuICAgKi9cbiAgY29uc3QgY2FsY3VsYXRlRW1ib2RpZWRDYXJib24gPSAoaW5wdXQ6IFBsdWdpblBhcmFtcykgPT4ge1xuICAgIGNvbnN0IHRvdGFsRW1pc3Npb25zID0gaW5wdXRbJ2RldmljZS9lbWlzc2lvbnMtZW1ib2RpZWQnXTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IGlucHV0WydkdXJhdGlvbiddO1xuICAgIGNvbnN0IGV4cGVjdGVkTGlmZXNwYW4gPSBpbnB1dFsnZGV2aWNlL2V4cGVjdGVkLWxpZmVzcGFuJ107XG4gICAgY29uc3QgcmVzb3VyY2VzUmVzZXJ2ZWQgPVxuICAgICAgaW5wdXRbJ3ZjcHVzLWFsbG9jYXRlZCddIHx8IGlucHV0WydyZXNvdXJjZXMtcmVzZXJ2ZWQnXTtcbiAgICBjb25zdCB0b3RhbFJlc291cmNlcyA9IGlucHV0Wyd2Y3B1cy10b3RhbCddIHx8IGlucHV0WydyZXNvdXJjZXMtdG90YWwnXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0b3RhbEVtaXNzaW9ucyAqXG4gICAgICAoZHVyYXRpb24gLyBleHBlY3RlZExpZmVzcGFuKSAqXG4gICAgICAocmVzb3VyY2VzUmVzZXJ2ZWQgLyB0b3RhbFJlc291cmNlcylcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlSW5wdXQgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcykgPT4ge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9ICh1bml0OiBzdHJpbmcpID0+XG4gICAgICBgbm90IGEgdmFsaWQgbnVtYmVyIGluIGlucHV0LiBQbGVhc2UgcHJvdmlkZSBpdCBhcyBcXGAke3VuaXR9XFxgYDtcblxuICAgIGNvbnN0IGNvbW1vblNjaGVtYVBhcnQgPSAoZXJyb3JNZXNzYWdlOiAodW5pdDogc3RyaW5nKSA9PiBzdHJpbmcpID0+ICh7XG4gICAgICAnZGV2aWNlL2VtaXNzaW9ucy1lbWJvZGllZCc6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBlcnJvck1lc3NhZ2UoJ2dDTzJlJyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICAgICdkZXZpY2UvZXhwZWN0ZWQtbGlmZXNwYW4nOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogZXJyb3JNZXNzYWdlKCdnQ08yZScpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgICBkdXJhdGlvbjogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IGVycm9yTWVzc2FnZSgnc2Vjb25kcycpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDEpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmNwdXNTY2hlbWFQYXJ0ID0ge1xuICAgICAgJ3ZjcHVzLWFsbG9jYXRlZCc6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBlcnJvck1lc3NhZ2UoJ2NvdW50JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICAgICd2Y3B1cy10b3RhbCc6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBlcnJvck1lc3NhZ2UoJ2NvdW50JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzb3VyY2VzU2NoZW1hUGFydCA9IHtcbiAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogZXJyb3JNZXNzYWdlKCdjb3VudCcpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgICAncmVzb3VyY2VzLXRvdGFsJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IGVycm9yTWVzc2FnZSgnY291bnQnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgIH07XG5cbiAgICBjb25zdCBzY2hlbWFXaXRoVmNwdXMgPSB6Lm9iamVjdCh7XG4gICAgICAuLi5jb21tb25TY2hlbWFQYXJ0KGVycm9yTWVzc2FnZSksXG4gICAgICAuLi52Y3B1c1NjaGVtYVBhcnQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2NoZW1hV2l0aFJlc291cmNlcyA9IHoub2JqZWN0KHtcbiAgICAgIC4uLmNvbW1vblNjaGVtYVBhcnQoZXJyb3JNZXNzYWdlKSxcbiAgICAgIC4uLnJlc291cmNlc1NjaGVtYVBhcnQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzY2hlbWEgPSBzY2hlbWFXaXRoVmNwdXMub3Ioc2NoZW1hV2l0aFJlc291cmNlcykucmVmaW5lKGFsbERlZmluZWQsIHtcbiAgICAgIG1lc3NhZ2U6IGBBbGwgJHtNRVRSSUNTfSBzaG91bGQgYmUgcHJlc2VudC5gLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2NpLWVtYm9kaWVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUd0Qix3REFBNEQ7QUFFNUQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFOUIsTUFBTSxXQUFXLEdBQUcsR0FBa0IsRUFBRTtJQUM3QyxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRixNQUFNLE9BQU8sR0FBRztRQUNkLDJCQUEyQjtRQUMzQiwwQkFBMEI7UUFDMUIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixpQkFBaUI7UUFDakIsYUFBYTtLQUNkLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFLENBQ3pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7U0FDdEQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUw7OztPQUdHO0lBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN0RCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMxRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUNyQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLENBQUMsb0JB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QUFDLENBQUM7QUF4SFcsUUFBQSxXQUFXLGVBd0h0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlLCBhbGxEZWZpbmVkfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7U0NJX0VNQk9ESUVEX0VSUk9SfSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBTY2lFbWJvZGllZCA9ICgpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICB9O1xuXG4gIGNvbnN0IE1FVFJJQ1MgPSBbXG4gICAgJ2RldmljZS9lbWlzc2lvbnMtZW1ib2RpZWQnLFxuICAgICdkZXZpY2UvZXhwZWN0ZWQtbGlmZXNwYW4nLFxuICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnLFxuICAgICd2Y3B1cy1hbGxvY2F0ZWQnLFxuICAgICdyZXNvdXJjZXMtdG90YWwnLFxuICAgICd2Y3B1cy10b3RhbCcsXG4gIF07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgRW1ib2RpZWQgY2FyYm9uIGZvciBhIGxpc3Qgb2YgaW5wdXRzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKSA9PlxuICAgIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gdmFsaWRhdGVJbnB1dChpbnB1dCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICAnY2FyYm9uLWVtYm9kaWVkJzogY2FsY3VsYXRlRW1ib2RpZWRDYXJib24oc2FmZUlucHV0KSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgRW1ib2RpZWQgY2FyYm9uIGZvciB0aGUgaW5wdXQuXG4gICAqIE0gPSB0b3RhbEVtaXNzaW9ucyAqIChkdXJhdGlvbi9FeHBlY3RlZExpZmVzcGFuKSAqIChyZXNvdXJjZXNSZXNlcnZlZC90b3RhbFJlc291cmNlcylcbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZUVtYm9kaWVkQ2FyYm9uID0gKGlucHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICBjb25zdCB0b3RhbEVtaXNzaW9ucyA9IGlucHV0WydkZXZpY2UvZW1pc3Npb25zLWVtYm9kaWVkJ107XG4gICAgY29uc3QgZHVyYXRpb24gPSBpbnB1dFsnZHVyYXRpb24nXTtcbiAgICBjb25zdCBleHBlY3RlZExpZmVzcGFuID0gaW5wdXRbJ2RldmljZS9leHBlY3RlZC1saWZlc3BhbiddO1xuICAgIGNvbnN0IHJlc291cmNlc1Jlc2VydmVkID1cbiAgICAgIGlucHV0Wyd2Y3B1cy1hbGxvY2F0ZWQnXSB8fCBpbnB1dFsncmVzb3VyY2VzLXJlc2VydmVkJ107XG4gICAgY29uc3QgdG90YWxSZXNvdXJjZXMgPSBpbnB1dFsndmNwdXMtdG90YWwnXSB8fCBpbnB1dFsncmVzb3VyY2VzLXRvdGFsJ107XG5cbiAgICByZXR1cm4gKFxuICAgICAgdG90YWxFbWlzc2lvbnMgKlxuICAgICAgKGR1cmF0aW9uIC8gZXhwZWN0ZWRMaWZlc3BhbikgKlxuICAgICAgKHJlc291cmNlc1Jlc2VydmVkIC8gdG90YWxSZXNvdXJjZXMpXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGZvciByZXF1aXJlZCBmaWVsZHMgaW4gaW5wdXQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUlucHV0ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICBjb25zdCBjb21tb25TY2hlbWFQYXJ0ID0gKGVycm9yTWVzc2FnZTogKHVuaXQ6IHN0cmluZykgPT4gc3RyaW5nKSA9PiAoe1xuICAgICAgJ2RldmljZS9lbWlzc2lvbnMtZW1ib2RpZWQnOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogZXJyb3JNZXNzYWdlKCdnQ08yZScpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgICAnZGV2aWNlL2V4cGVjdGVkLWxpZmVzcGFuJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IGVycm9yTWVzc2FnZSgnZ0NPMmUnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgICAgZHVyYXRpb246IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBlcnJvck1lc3NhZ2UoJ3NlY29uZHMnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgxKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZjcHVzU2NoZW1hUGFydCA9IHtcbiAgICAgICd2Y3B1cy1hbGxvY2F0ZWQnOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogU0NJX0VNQk9ESUVEX0VSUk9SKCdjb3VudCcpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgICAndmNwdXMtdG90YWwnOiB6XG4gICAgICAgIC5udW1iZXIoe1xuICAgICAgICAgIGludmFsaWRfdHlwZV9lcnJvcjogU0NJX0VNQk9ESUVEX0VSUk9SKCdjb3VudCcpLFxuICAgICAgICB9KVxuICAgICAgICAuZ3RlKDApXG4gICAgICAgIC5taW4oMCksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc291cmNlc1NjaGVtYVBhcnQgPSB7XG4gICAgICAncmVzb3VyY2VzLXJlc2VydmVkJzogelxuICAgICAgICAubnVtYmVyKHtcbiAgICAgICAgICBpbnZhbGlkX3R5cGVfZXJyb3I6IFNDSV9FTUJPRElFRF9FUlJPUignY291bnQnKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmd0ZSgwKVxuICAgICAgICAubWluKDApLFxuICAgICAgJ3Jlc291cmNlcy10b3RhbCc6IHpcbiAgICAgICAgLm51bWJlcih7XG4gICAgICAgICAgaW52YWxpZF90eXBlX2Vycm9yOiBTQ0lfRU1CT0RJRURfRVJST1IoJ2NvdW50JyksXG4gICAgICAgIH0pXG4gICAgICAgIC5ndGUoMClcbiAgICAgICAgLm1pbigwKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hV2l0aFZjcHVzID0gei5vYmplY3Qoe1xuICAgICAgLi4uY29tbW9uU2NoZW1hUGFydChTQ0lfRU1CT0RJRURfRVJST1IpLFxuICAgICAgLi4udmNwdXNTY2hlbWFQYXJ0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNjaGVtYVdpdGhSZXNvdXJjZXMgPSB6Lm9iamVjdCh7XG4gICAgICAuLi5jb21tb25TY2hlbWFQYXJ0KFNDSV9FTUJPRElFRF9FUlJPUiksXG4gICAgICAuLi5yZXNvdXJjZXNTY2hlbWFQYXJ0LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2NoZW1hID0gc2NoZW1hV2l0aFZjcHVzLm9yKHNjaGVtYVdpdGhSZXNvdXJjZXMpLnJlZmluZShhbGxEZWZpbmVkLCB7XG4gICAgICBtZXNzYWdlOiBgQWxsICR7TUVUUklDU30gc2hvdWxkIGJlIHByZXNlbnQuYCxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGlucHV0KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
@@ -1,3 +1,2 @@
1
- import { ExecutePlugin } from '../../types/interface';
2
- import { ConfigParams } from '../../types/common';
1
+ import { ExecutePlugin, ConfigParams } from '@grnsft/if-core/types';
3
2
  export declare const Shell: (globalConfig: ConfigParams) => ExecutePlugin;
@@ -4,9 +4,9 @@ exports.Shell = void 0;
4
4
  const child_process_1 = require("child_process");
5
5
  const js_yaml_1 = require("js-yaml");
6
6
  const zod_1 = require("zod");
7
+ const utils_1 = require("@grnsft/if-core/utils");
7
8
  const validations_1 = require("../../util/validations");
8
- const errors_1 = require("../../util/errors");
9
- const { InputValidationError } = errors_1.ERRORS;
9
+ const { ProcessExecutionError } = utils_1.ERRORS;
10
10
  const Shell = (globalConfig) => {
11
11
  const metadata = {
12
12
  kind: 'execute',
@@ -46,7 +46,7 @@ const Shell = (globalConfig) => {
46
46
  return { outputs };
47
47
  }
48
48
  catch (error) {
49
- throw new InputValidationError(error.message);
49
+ throw new ProcessExecutionError(error.message);
50
50
  }
51
51
  };
52
52
  return {
@@ -55,4 +55,4 @@ const Shell = (globalConfig) => {
55
55
  };
56
56
  };
57
57
  exports.Shell = Shell;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2hlbGwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTBEO0FBQzFELHFDQUFzQztBQUN0Qyw2QkFBc0I7QUFLdEIsd0RBQWdEO0FBQ2hELDhDQUF5QztBQUV6QyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFL0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxZQUEwQixFQUFpQixFQUFFO0lBQ2pFLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFTLEVBQUU7UUFDaEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLGFBQWEsR0FBVyxJQUFBLGNBQUksRUFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhELE9BQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQ3BCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxFQUFFO1FBQ3pELElBQUk7WUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVqRCxNQUFNLE1BQU0sR0FBNkIsSUFBQSx5QkFBUyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7Z0JBQ25FLEtBQUs7Z0JBQ0wsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLENBQUM7U0FDbEI7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixNQUFNLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXJEVyxRQUFBLEtBQUssU0FxRGhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzcGF3blN5bmMsIFNwYXduU3luY1JldHVybnN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHtsb2FkQWxsLCBkdW1wfSBmcm9tICdqcy15YW1sJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge0NvbmZpZ1BhcmFtc30gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uJztcblxuaW1wb3J0IHt2YWxpZGF0ZX0gZnJvbSAnLi4vLi4vdXRpbC92YWxpZGF0aW9ucyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnLi4vLi4vdXRpbC9lcnJvcnMnO1xuXG5jb25zdCB7SW5wdXRWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuXG5leHBvcnQgY29uc3QgU2hlbGwgPSAoZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHRvdGFsIGVtaXNzaW9ucyBmb3IgYSBsaXN0IG9mIGlucHV0cy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSk6IGFueVtdID0+IHtcbiAgICBjb25zdCBpbnB1dFdpdGhDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBpbnB1dHNbMF0sIHZhbGlkYXRlQ29uZmlnKCkpO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBpbnB1dFdpdGhDb25maWcuY29tbWFuZDtcbiAgICBjb25zdCBpbnB1dEFzU3RyaW5nOiBzdHJpbmcgPSBkdW1wKGlucHV0cywge2luZGVudDogMn0pO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBydW5Nb2RlbEluU2hlbGwoaW5wdXRBc1N0cmluZywgY29tbWFuZCk7XG5cbiAgICByZXR1cm4gcmVzdWx0cz8ub3V0cHV0cz8uZmxhdCgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgIGNvbW1hbmQ6IHouc3RyaW5nKCksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2Ygc2NoZW1hPj4oc2NoZW1hLCBnbG9iYWxDb25maWcpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSdW5zIHRoZSBtb2RlbCBpbiBhIHNoZWxsLiBTcGF3bnMgYSBjaGlsZCBwcm9jZXNzIHRvIHJ1biBhbiBleHRlcm5hbCBJTVAsXG4gICAqIGFuIGV4ZWN1dGFibGUgd2l0aCBhIENMSSBleHBvc2luZyB0d28gbWV0aG9kczogYC0tZXhlY3V0ZWAgYW5kIGAtLW1hbmlmZXN0YC5cbiAgICogVGhlIHNoZWxsIGNvbW1hbmQgdGhlbiBjYWxscyB0aGUgYC0tY29tbWFuZGAgbWV0aG9kIHBhc3NpbmcgdmFyIG1hbmlmZXN0IGFzIHRoZSBwYXRoIHRvIHRoZSBkZXNpcmVkIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBjb25zdCBydW5Nb2RlbEluU2hlbGwgPSAoaW5wdXQ6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFtleGVjdXRhYmxlLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoJyAnKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTcGF3blN5bmNSZXR1cm5zPHN0cmluZz4gPSBzcGF3blN5bmMoZXhlY3V0YWJsZSwgYXJncywge1xuICAgICAgICBpbnB1dCxcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IGxvYWRBbGwocmVzdWx0LnN0ZG91dCk7XG5cbiAgICAgIHJldHVybiB7b3V0cHV0c307XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc2hlbGwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTBEO0FBRTFELHFDQUFzQztBQUN0Qyw2QkFBc0I7QUFDdEIsaURBQTZDO0FBRzdDLHdEQUFnRDtBQUVoRCxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFaEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxZQUEwQixFQUFpQixFQUFFO0lBQ2pFLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFTLEVBQUU7UUFDaEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLGFBQWEsR0FBVyxJQUFBLGNBQUksRUFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhELE9BQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtRQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQ3BCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7Ozs7T0FJRztJQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxFQUFFO1FBQ3pELElBQUk7WUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVqRCxNQUFNLE1BQU0sR0FBNkIsSUFBQSx5QkFBUyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7Z0JBQ25FLEtBQUs7Z0JBQ0wsUUFBUSxFQUFFLE1BQU07YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLENBQUM7U0FDbEI7UUFBQyxPQUFPLEtBQVUsRUFBRTtZQUNuQixNQUFNLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXJEVyxRQUFBLEtBQUssU0FxRGhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzcGF3blN5bmMsIFNwYXduU3luY1JldHVybnN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5pbXBvcnQge2xvYWRBbGwsIGR1bXB9IGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge0V4ZWN1dGVQbHVnaW4sIFBsdWdpblBhcmFtcywgQ29uZmlnUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuY29uc3Qge1Byb2Nlc3NFeGVjdXRpb25FcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBTaGVsbCA9IChnbG9iYWxDb25maWc6IENvbmZpZ1BhcmFtcyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgdG90YWwgZW1pc3Npb25zIGZvciBhIGxpc3Qgb2YgaW5wdXRzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKTogYW55W10gPT4ge1xuICAgIGNvbnN0IGlucHV0V2l0aENvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGlucHV0c1swXSwgdmFsaWRhdGVDb25maWcoKSk7XG4gICAgY29uc3QgY29tbWFuZCA9IGlucHV0V2l0aENvbmZpZy5jb21tYW5kO1xuICAgIGNvbnN0IGlucHV0QXNTdHJpbmc6IHN0cmluZyA9IGR1bXAoaW5wdXRzLCB7aW5kZW50OiAyfSk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHJ1bk1vZGVsSW5TaGVsbChpbnB1dEFzU3RyaW5nLCBjb21tYW5kKTtcblxuICAgIHJldHVybiByZXN1bHRzPy5vdXRwdXRzPy5mbGF0KCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgY29tbWFuZDogei5zdHJpbmcoKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGdsb2JhbENvbmZpZyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIG1vZGVsIGluIGEgc2hlbGwuIFNwYXducyBhIGNoaWxkIHByb2Nlc3MgdG8gcnVuIGFuIGV4dGVybmFsIElNUCxcbiAgICogYW4gZXhlY3V0YWJsZSB3aXRoIGEgQ0xJIGV4cG9zaW5nIHR3byBtZXRob2RzOiBgLS1leGVjdXRlYCBhbmQgYC0tbWFuaWZlc3RgLlxuICAgKiBUaGUgc2hlbGwgY29tbWFuZCB0aGVuIGNhbGxzIHRoZSBgLS1jb21tYW5kYCBtZXRob2QgcGFzc2luZyB2YXIgbWFuaWZlc3QgYXMgdGhlIHBhdGggdG8gdGhlIGRlc2lyZWQgbWFuaWZlc3QgZmlsZS5cbiAgICovXG4gIGNvbnN0IHJ1bk1vZGVsSW5TaGVsbCA9IChpbnB1dDogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgW2V4ZWN1dGFibGUsIC4uLmFyZ3NdID0gY29tbWFuZC5zcGxpdCgnICcpO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IFNwYXduU3luY1JldHVybnM8c3RyaW5nPiA9IHNwYXduU3luYyhleGVjdXRhYmxlLCBhcmdzLCB7XG4gICAgICAgIGlucHV0LFxuICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBvdXRwdXRzID0gbG9hZEFsbChyZXN1bHQuc3Rkb3V0KTtcblxuICAgICAgcmV0dXJuIHtvdXRwdXRzfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgUHJvY2Vzc0V4ZWN1dGlvbkVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
@@ -1,3 +1,2 @@
1
- import { ExecutePlugin } from '../../types/interface';
2
- import { SubtractConfig } from './types';
1
+ import { ExecutePlugin, SubtractConfig } from '@grnsft/if-core/types';
3
2
  export declare const Subtract: (globalConfig: SubtractConfig) => ExecutePlugin;
@@ -2,12 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Subtract = void 0;
4
4
  const zod_1 = require("zod");
5
- const errors_1 = require("../../util/errors");
6
- const helpers_1 = require("../../util/helpers");
7
5
  const validations_1 = require("../../util/validations");
8
- const { InputValidationError } = errors_1.ERRORS;
9
6
  const Subtract = (globalConfig) => {
10
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.Subtract.name);
11
7
  const metadata = {
12
8
  kind: 'execute',
13
9
  };
@@ -25,26 +21,14 @@ const Subtract = (globalConfig) => {
25
21
  * Checks for required fields in input.
26
22
  */
27
23
  const validateSingleInput = (input, inputParameters) => {
28
- inputParameters.forEach(metricToSubtract => {
29
- validateParamExists(input, metricToSubtract);
30
- validateNumericString(input[metricToSubtract]);
31
- });
24
+ const inputData = inputParameters.reduce((acc, param) => {
25
+ acc[param] = input[param];
26
+ return acc;
27
+ }, {});
28
+ const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
29
+ (0, validations_1.validate)(validationSchema, inputData);
32
30
  return input;
33
31
  };
34
- const validateParamExists = (input, param) => {
35
- if (input[param] === undefined) {
36
- throw new InputValidationError(errorBuilder({
37
- message: `${param} is missing from the input array`,
38
- }));
39
- }
40
- };
41
- const validateNumericString = (str) => {
42
- if (isNaN(+Number(str))) {
43
- throw new InputValidationError(errorBuilder({
44
- message: `${str} is not numberic`,
45
- }));
46
- }
47
- };
48
32
  /**
49
33
  * Subtract items from inputParams[1..n] from inputParams[0] and write the result in a new param outputParam.
50
34
  */
@@ -72,4 +56,4 @@ const Subtract = (globalConfig) => {
72
56
  };
73
57
  };
74
58
  exports.Subtract = Subtract;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc3VidHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBRXRCLDhDQUF5QztBQUN6QyxnREFBcUQ7QUFDckQsd0RBQWdEO0FBS2hELE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUUvQixNQUFNLFFBQVEsR0FBRyxDQUFDLFlBQTRCLEVBQWlCLEVBQUU7SUFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxnQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2xDLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUNiLGtCQUFrQixFQUNsQixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFtQixFQUNuQixlQUF5QixFQUN6QixFQUFFO1FBQ0YsZUFBZSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ2pFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUM5QixNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQztnQkFDWCxPQUFPLEVBQUUsR0FBRyxLQUFLLGtDQUFrQzthQUNwRCxDQUFDLENBQ0gsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQzVDLElBQUksS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixZQUFZLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLEdBQUcsR0FBRyxrQkFBa0I7YUFDbEMsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFO1FBQ3pELE1BQU0sRUFDSixrQkFBa0IsRUFBRSxlQUFlLEVBQ25DLGtCQUFrQixFQUFFLGVBQWUsR0FDcEMsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFNUMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxlQUFlLENBQUMsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQzthQUN6RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxlQUF5QixFQUFFLEVBQUU7UUFDdkUsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUNsRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQ3JCLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQ3hFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyx3REFBd0Q7U0FDMUUsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUF6RlcsUUFBQSxRQUFRLFlBeUZuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uL3V0aWwvZXJyb3JzJztcbmltcG9ydCB7YnVpbGRFcnJvck1lc3NhZ2V9IGZyb20gJy4uLy4uL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge1N1YnRyYWN0Q29uZmlnfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3Qge0lucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuZXhwb3J0IGNvbnN0IFN1YnRyYWN0ID0gKGdsb2JhbENvbmZpZzogU3VidHJhY3RDb25maWcpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgZXJyb3JCdWlsZGVyID0gYnVpbGRFcnJvck1lc3NhZ2UoU3VidHJhY3QubmFtZSk7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgJ2lucHV0LXBhcmFtZXRlcnMnOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBnbG9iYWxDb25maWdTY2hlbWE+PihcbiAgICAgIGdsb2JhbENvbmZpZ1NjaGVtYSxcbiAgICAgIGdsb2JhbENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zLFxuICAgIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW11cbiAgKSA9PiB7XG4gICAgaW5wdXRQYXJhbWV0ZXJzLmZvckVhY2gobWV0cmljVG9TdWJ0cmFjdCA9PiB7XG4gICAgICB2YWxpZGF0ZVBhcmFtRXhpc3RzKGlucHV0LCBtZXRyaWNUb1N1YnRyYWN0KTtcbiAgICAgIHZhbGlkYXRlTnVtZXJpY1N0cmluZyhpbnB1dFttZXRyaWNUb1N1YnRyYWN0XSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW5wdXQ7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVQYXJhbUV4aXN0cyA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBwYXJhbTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlucHV0W3BhcmFtXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGVycm9yQnVpbGRlcih7XG4gICAgICAgICAgbWVzc2FnZTogYCR7cGFyYW19IGlzIG1pc3NpbmcgZnJvbSB0aGUgaW5wdXQgYXJyYXlgLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVOdW1lcmljU3RyaW5nID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzTmFOKCtOdW1iZXIoc3RyKSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnB1dFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgZXJyb3JCdWlsZGVyKHtcbiAgICAgICAgICBtZXNzYWdlOiBgJHtzdHJ9IGlzIG5vdCBudW1iZXJpY2AsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogU3VidHJhY3QgaXRlbXMgZnJvbSBpbnB1dFBhcmFtc1sxLi5uXSBmcm9tIGlucHV0UGFyYW1zWzBdIGFuZCB3cml0ZSB0aGUgcmVzdWx0IGluIGEgbmV3IHBhcmFtIG91dHB1dFBhcmFtLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKTogUGx1Z2luUGFyYW1zW10gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXJzJzogaW5wdXRQYXJhbWV0ZXJzLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiBvdXRwdXRQYXJhbWV0ZXIsXG4gICAgfSA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgdmFsaWRhdGVTaW5nbGVJbnB1dChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIFtvdXRwdXRQYXJhbWV0ZXJdOiBjYWxjdWxhdGVEaWZmKGlucHV0LCBpbnB1dFBhcmFtZXRlcnMpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgZGlmZiBiZXR3ZWVuIHRoZSAxc3QgaXRlbSBpbiB0aGUgaW5wdXRzIG5hZCB0aGUgcmVzdCBvZiB0aGUgaXRlbXNcbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZURpZmYgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFtmaXJzdEl0ZW0sIC4uLnJlc3RJdGVtc10gPSBpbnB1dFBhcmFtZXRlcnM7XG4gICAgcmV0dXJuIHJlc3RJdGVtcy5yZWR1Y2UoXG4gICAgICAoYWNjdW11bGF0b3IsIG1ldHJpY1RvU3VidHJhY3QpID0+IGFjY3VtdWxhdG9yIC0gaW5wdXRbbWV0cmljVG9TdWJ0cmFjdF0sXG4gICAgICBpbnB1dFtmaXJzdEl0ZW1dIC8vIFN0YXJ0aW5nIGFjY3VtdWxhdG9yIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBpdGVtXG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc3VidHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBT3RCLHdEQUFnRDtBQUV6QyxNQUFNLFFBQVEsR0FBRyxDQUFDLFlBQTRCLEVBQWlCLEVBQUU7SUFDdEUsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEtBQW1CLEVBQ25CLGVBQXlCLEVBQ3pCLEVBQUU7UUFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNEIsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUQsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQWtCLEVBQUU7UUFDekQsTUFBTSxFQUNKLGtCQUFrQixFQUFFLGVBQWUsRUFDbkMsa0JBQWtCLEVBQUUsZUFBZSxHQUNwQyxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFFM0IsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztZQUU1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLGVBQWUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDO2FBQ3pELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFtQixFQUFFLGVBQXlCLEVBQUUsRUFBRTtRQUN2RSxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsZUFBZSxDQUFDO1FBRWxELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FDckIsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFDeEUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLHdEQUF3RDtTQUMxRSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlFVyxRQUFBLFFBQVEsWUE4RW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtcbiAgRXhlY3V0ZVBsdWdpbixcbiAgUGx1Z2luUGFyYW1zLFxuICBTdWJ0cmFjdENvbmZpZyxcbn0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHt2YWxpZGF0ZX0gZnJvbSAnLi4vLi4vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBTdWJ0cmFjdCA9IChnbG9iYWxDb25maWc6IFN1YnRyYWN0Q29uZmlnKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgJ2lucHV0LXBhcmFtZXRlcnMnOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBnbG9iYWxDb25maWdTY2hlbWE+PihcbiAgICAgIGdsb2JhbENvbmZpZ1NjaGVtYSxcbiAgICAgIGdsb2JhbENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zLFxuICAgIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW11cbiAgKSA9PiB7XG4gICAgY29uc3QgaW5wdXREYXRhID0gaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2MsIHBhcmFtKSA9PiB7XG4gICAgICAgIGFjY1twYXJhbV0gPSBpbnB1dFtwYXJhbV07XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgKTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb25TY2hlbWEgPSB6LnJlY29yZCh6LnN0cmluZygpLCB6Lm51bWJlcigpKTtcblxuICAgIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgICByZXR1cm4gaW5wdXQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0IGl0ZW1zIGZyb20gaW5wdXRQYXJhbXNbMS4ubl0gZnJvbSBpbnB1dFBhcmFtc1swXSBhbmQgd3JpdGUgdGhlIHJlc3VsdCBpbiBhIG5ldyBwYXJhbSBvdXRwdXRQYXJhbS5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSk6IFBsdWdpblBhcmFtc1tdID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVycyc6IGlucHV0UGFyYW1ldGVycyxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogb3V0cHV0UGFyYW1ldGVyLFxuICAgIH0gPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgdmFsaWRhdGVTaW5nbGVJbnB1dChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIFtvdXRwdXRQYXJhbWV0ZXJdOiBjYWxjdWxhdGVEaWZmKGlucHV0LCBpbnB1dFBhcmFtZXRlcnMpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgZGlmZiBiZXR3ZWVuIHRoZSAxc3QgaXRlbSBpbiB0aGUgaW5wdXRzIG5hZCB0aGUgcmVzdCBvZiB0aGUgaXRlbXNcbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZURpZmYgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFtmaXJzdEl0ZW0sIC4uLnJlc3RJdGVtc10gPSBpbnB1dFBhcmFtZXRlcnM7XG5cbiAgICByZXR1cm4gcmVzdEl0ZW1zLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9TdWJ0cmFjdCkgPT4gYWNjdW11bGF0b3IgLSBpbnB1dFttZXRyaWNUb1N1YnRyYWN0XSxcbiAgICAgIGlucHV0W2ZpcnN0SXRlbV0gLy8gU3RhcnRpbmcgYWNjdW11bGF0b3Igd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGl0ZW1cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
@@ -1,3 +1,2 @@
1
- import { ExecutePlugin } from '../../types/interface';
2
- import { SumConfig } from './types';
1
+ import { ExecutePlugin, SumConfig } from '@grnsft/if-core/types';
3
2
  export declare const Sum: (globalConfig: SumConfig) => ExecutePlugin;
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Sum = void 0;
4
4
  const zod_1 = require("zod");
5
+ const utils_1 = require("@grnsft/if-core/utils");
5
6
  const validations_1 = require("../../util/validations");
6
- const errors_1 = require("../../util/errors");
7
- const { InputValidationError, ConfigNotFoundError } = errors_1.ERRORS;
7
+ const config_1 = require("../../config");
8
+ const { GlobalConfigError } = utils_1.ERRORS;
9
+ const { MISSING_GLOBAL_CONFIG } = config_1.STRINGS;
8
10
  const Sum = (globalConfig) => {
9
11
  const metadata = {
10
12
  kind: 'execute',
@@ -17,10 +19,10 @@ const Sum = (globalConfig) => {
17
19
  const inputParameters = safeGlobalConfig['input-parameters'];
18
20
  const outputParameter = safeGlobalConfig['output-parameter'];
19
21
  return inputs.map(input => {
20
- const safeInput = validateSingleInput(input, inputParameters);
22
+ validateSingleInput(input, inputParameters);
21
23
  return {
22
24
  ...input,
23
- [outputParameter]: calculateSum(safeInput, inputParameters),
25
+ [outputParameter]: calculateSum(input, inputParameters),
24
26
  };
25
27
  });
26
28
  };
@@ -29,7 +31,7 @@ const Sum = (globalConfig) => {
29
31
  */
30
32
  const validateGlobalConfig = () => {
31
33
  if (!globalConfig) {
32
- throw new ConfigNotFoundError('Global config is not provided.');
34
+ throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
33
35
  }
34
36
  const globalConfigSchema = zod_1.z.object({
35
37
  'input-parameters': zod_1.z.array(zod_1.z.string()),
@@ -41,11 +43,12 @@ const Sum = (globalConfig) => {
41
43
  * Checks for required fields in input.
42
44
  */
43
45
  const validateSingleInput = (input, inputParameters) => {
44
- inputParameters.forEach(metricToSum => {
45
- if (!input[metricToSum]) {
46
- throw new InputValidationError(`${metricToSum} is missing from the input array.`);
47
- }
48
- });
46
+ const inputData = inputParameters.reduce((acc, param) => {
47
+ acc[param] = input[param];
48
+ return acc;
49
+ }, {});
50
+ const validationSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.number());
51
+ (0, validations_1.validate)(validationSchema, inputData);
49
52
  return input;
50
53
  };
51
54
  /**
@@ -58,4 +61,4 @@ const Sum = (globalConfig) => {
58
61
  };
59
62
  };
60
63
  exports.Sum = Sum;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc3VtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUl0Qix3REFBZ0Q7QUFDaEQsOENBQXlDO0FBSXpDLE1BQU0sRUFBQyxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUVwRCxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQXVCLEVBQWlCLEVBQUU7SUFDNUQsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDaEQsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFOUQsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxlQUFlLENBQUMsRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQzthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDakU7UUFFRCxNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEtBQW1CLEVBQ25CLGVBQXlCLEVBQ3pCLEVBQUU7UUFDRixlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsR0FBRyxXQUFXLG1DQUFtQyxDQUNsRCxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW1CLEVBQUUsZUFBeUIsRUFBRSxFQUFFLENBQ3RFLGVBQWUsQ0FBQyxNQUFNLENBQ3BCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFDOUQsQ0FBQyxDQUNGLENBQUM7SUFFSixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBekVXLFFBQUEsR0FBRyxPQXlFZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtTdW1Db25maWd9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCB7SW5wdXRWYWxpZGF0aW9uRXJyb3IsIENvbmZpZ05vdEZvdW5kRXJyb3J9ID0gRVJST1JTO1xuXG5leHBvcnQgY29uc3QgU3VtID0gKGdsb2JhbENvbmZpZzogU3VtQ29uZmlnKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBzdW0gb2YgZWFjaCBpbnB1dC1wYXJhbXRlcnMuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pID0+IHtcbiAgICBjb25zdCBzYWZlR2xvYmFsQ29uZmlnID0gdmFsaWRhdGVHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBpbnB1dFBhcmFtZXRlcnMgPSBzYWZlR2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXJzJ107XG4gICAgY29uc3Qgb3V0cHV0UGFyYW1ldGVyID0gc2FmZUdsb2JhbENvbmZpZ1snb3V0cHV0LXBhcmFtZXRlciddO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gdmFsaWRhdGVTaW5nbGVJbnB1dChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgIFtvdXRwdXRQYXJhbWV0ZXJdOiBjYWxjdWxhdGVTdW0oc2FmZUlucHV0LCBpbnB1dFBhcmFtZXRlcnMpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgaWYgKCFnbG9iYWxDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdOb3RGb3VuZEVycm9yKCdHbG9iYWwgY29uZmlnIGlzIG5vdCBwcm92aWRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBnbG9iYWxDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICAnaW5wdXQtcGFyYW1ldGVycyc6IHouYXJyYXkoei5zdHJpbmcoKSksXG4gICAgICAnb3V0cHV0LXBhcmFtZXRlcic6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIGdsb2JhbENvbmZpZ1NjaGVtYT4+KFxuICAgICAgZ2xvYmFsQ29uZmlnU2NoZW1hLFxuICAgICAgZ2xvYmFsQ29uZmlnXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGZvciByZXF1aXJlZCBmaWVsZHMgaW4gaW5wdXQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZVNpbmdsZUlucHV0ID0gKFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXMsXG4gICAgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXVxuICApID0+IHtcbiAgICBpbnB1dFBhcmFtZXRlcnMuZm9yRWFjaChtZXRyaWNUb1N1bSA9PiB7XG4gICAgICBpZiAoIWlucHV0W21ldHJpY1RvU3VtXSkge1xuICAgICAgICB0aHJvdyBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgYCR7bWV0cmljVG9TdW19IGlzIG1pc3NpbmcgZnJvbSB0aGUgaW5wdXQgYXJyYXkuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBzdW0gb2YgdGhlIGVuZXJneSBjb21wb25lbnRzLlxuICAgKi9cbiAgY29uc3QgY2FsY3VsYXRlU3VtID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW10pID0+XG4gICAgaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9TdW0pID0+IGFjY3VtdWxhdG9yICsgaW5wdXRbbWV0cmljVG9TdW1dLFxuICAgICAgMFxuICAgICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvc3VtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUFzQjtBQUN0QixpREFBNkM7QUFHN0Msd0RBQWdEO0FBRWhELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQXVCLEVBQWlCLEVBQUU7SUFDNUQsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDaEQsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFFNUMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxlQUFlLENBQUMsRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQzthQUN4RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsTUFBTSxJQUFJLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEtBQW1CLEVBQ25CLGVBQXlCLEVBQ3pCLEVBQUU7UUFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNEIsQ0FDN0IsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQW1CLEVBQUUsZUFBeUIsRUFBRSxFQUFFLENBQ3RFLGVBQWUsQ0FBQyxNQUFNLENBQ3BCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFDOUQsQ0FBQyxDQUNGLENBQUM7SUFFSixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBNUVXLFFBQUEsR0FBRyxPQTRFZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXMsIFN1bUNvbmZpZ30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHt2YWxpZGF0ZX0gZnJvbSAnLi4vLi4vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuY29uc3Qge0dsb2JhbENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtNSVNTSU5HX0dMT0JBTF9DT05GSUd9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFN1bSA9IChnbG9iYWxDb25maWc6IFN1bUNvbmZpZyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgc3VtIG9mIGVhY2ggaW5wdXQtcGFyYW10ZXJzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKSA9PiB7XG4gICAgY29uc3Qgc2FmZUdsb2JhbENvbmZpZyA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgaW5wdXRQYXJhbWV0ZXJzID0gc2FmZUdsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVycyddO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtZXRlciA9IHNhZmVHbG9iYWxDb25maWdbJ291dHB1dC1wYXJhbWV0ZXInXTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIHZhbGlkYXRlU2luZ2xlSW5wdXQoaW5wdXQsIGlucHV0UGFyYW1ldGVycyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbb3V0cHV0UGFyYW1ldGVyXTogY2FsY3VsYXRlU3VtKGlucHV0LCBpbnB1dFBhcmFtZXRlcnMpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgaWYgKCFnbG9iYWxDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIGNvbnN0IGdsb2JhbENvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXJzJzogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgZ2xvYmFsQ29uZmlnU2NoZW1hPj4oXG4gICAgICBnbG9iYWxDb25maWdTY2hlbWEsXG4gICAgICBnbG9iYWxDb25maWdcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlU2luZ2xlSW5wdXQgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBpbnB1dFBhcmFtZXRlcnM6IHN0cmluZ1tdXG4gICkgPT4ge1xuICAgIGNvbnN0IGlucHV0RGF0YSA9IGlucHV0UGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICBhY2NbcGFyYW1dID0gaW5wdXRbcGFyYW1dO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgICk7XG4gICAgY29uc3QgdmFsaWRhdGlvblNjaGVtYSA9IHoucmVjb3JkKHouc3RyaW5nKCksIHoubnVtYmVyKCkpO1xuICAgIHZhbGlkYXRlKHZhbGlkYXRpb25TY2hlbWEsIGlucHV0RGF0YSk7XG5cbiAgICByZXR1cm4gaW5wdXQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHN1bSBvZiB0aGUgZW5lcmd5IGNvbXBvbmVudHMuXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVTdW0gPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT5cbiAgICBpbnB1dFBhcmFtZXRlcnMucmVkdWNlKFxuICAgICAgKGFjY3VtdWxhdG9yLCBtZXRyaWNUb1N1bSkgPT4gYWNjdW11bGF0b3IgKyBpbnB1dFttZXRyaWNUb1N1bV0sXG4gICAgICAwXG4gICAgKTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
@@ -1,3 +1,2 @@
1
- import { ExecutePlugin } from '../types/interface';
2
- import { TimeNormalizerConfig } from '../types/time-sync';
1
+ import { ExecutePlugin, TimeNormalizerConfig } from '@grnsft/if-core/types';
3
2
  export declare const TimeSync: (globalConfig: TimeNormalizerConfig) => ExecutePlugin;