@grnsft/if 0.4.0 → 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 (181) 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 +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 +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/fs.d.ts +20 -0
  77. package/build/util/fs.js +94 -0
  78. package/build/util/helpers.d.ts +25 -5
  79. package/build/util/helpers.js +110 -15
  80. package/build/util/npm.d.ts +28 -0
  81. package/build/util/npm.js +152 -0
  82. package/build/util/plugin-storage.js +4 -4
  83. package/build/util/validations.js +4 -4
  84. package/jest.config.js +1 -1
  85. package/manifests/bugs/aggregation-error-wrong-metric.yml +73 -23
  86. package/manifests/bugs/azure-importer-ignoring-defaults.yml +6 -3
  87. package/manifests/bugs/azure-importer-incorrect-calculation.yml +6 -3
  88. package/manifests/bugs/initialize-error-no-config.yml +4 -5
  89. package/manifests/bugs/initialize-error-no-path.yml +9 -5
  90. package/manifests/bugs/input-error-missing-duration.yml +10 -6
  91. package/manifests/bugs/pipeline-error-naming-mismatch.yml +8 -4
  92. package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +9 -5
  93. package/manifests/bugs/pipeline-ordering-error.yml +43 -34
  94. package/manifests/examples/copy.yaml +20 -0
  95. package/manifests/examples/generics.yml +48 -13
  96. package/manifests/examples/instance-metadata.yml +4 -4
  97. package/manifests/examples/mock-cpu-util-to-carbon.yml +8 -2
  98. package/manifests/examples/nesting.yml +82 -35
  99. package/manifests/examples/pipeline-teads-sci.yml +54 -18
  100. package/manifests/examples/pipeline-with-aggregate.yml +66 -24
  101. package/manifests/examples/pipeline-with-mocks.yml +65 -22
  102. package/manifests/examples/region-metadata.yml +26 -0
  103. package/manifests/examples/tdp-finder.yml +23 -0
  104. package/manifests/examples/zeros.yaml +130 -0
  105. package/manifests/features/{aggregate-failure-inalid-metrics.yml → aggregate-failure-invalid-metrics.yml} +9 -3
  106. package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +9 -3
  107. package/manifests/features/aggregate-horizontal.yml +8 -2
  108. package/manifests/features/aggregate-vertical.yml +8 -2
  109. package/manifests/features/aggregate.yml +8 -2
  110. package/manifests/integrations/{cloud-metadata-divide-boavizta.yml → cloud-metadata-divide.yml} +8 -9
  111. package/manifests/integrations/instance-metadata/failure-invalid-instance-type.yaml +33 -0
  112. package/manifests/integrations/instance-metadata/failure-invalid-provider.yaml +33 -0
  113. package/manifests/integrations/instance-metadata/failure-missing-queried-input.yml +33 -0
  114. package/manifests/integrations/instance-metadata/success.yml +33 -0
  115. package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +8 -2
  116. package/manifests/integrations/mock-obs-time-sync.yml +50 -5
  117. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-instance-type.yaml +9 -3
  118. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-vendor.yaml +8 -2
  119. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-missing-cloud-vendor.yml +9 -3
  120. package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/success.yml +8 -2
  121. package/manifests/plugins/csv-lookup/{success.yml → region-metadata/success.yml} +1 -1
  122. package/manifests/plugins/csv-lookup/tdp-finder/failure-missing-input-param.yml +23 -0
  123. package/manifests/plugins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +24 -0
  124. package/manifests/plugins/csv-lookup/tdp-finder/success.yml +24 -0
  125. package/manifests/plugins/divide/failure-denominator-equal-zero.yml +8 -9
  126. package/manifests/plugins/divide/failure-invalid-config-denominator.yml +8 -9
  127. package/manifests/plugins/divide/failure-missing-numerator.yml +8 -9
  128. package/manifests/plugins/divide/success.yml +9 -10
  129. package/manifests/plugins/exponent/success.yml +26 -0
  130. package/manifests/plugins/interpolation/success.yml +24 -0
  131. package/manifests/plugins/sci/failure-missing-input-param.yml +2 -6
  132. package/manifests/plugins/sci/success.yml +0 -3
  133. package/manifests/plugins/subtract/success.yml +25 -0
  134. package/manifests/plugins/sum/success.yml +1 -1
  135. package/package.json +10 -4
  136. package/src/__mocks__/mock-manifest.yaml +72 -0
  137. package/src/builtins/README.md +1 -1
  138. package/src/builtins/coefficient/README.md +19 -1
  139. package/src/builtins/copy-param/README.md +104 -0
  140. package/src/builtins/csv-lookup/README.md +39 -1
  141. package/src/builtins/divide/README.md +29 -3
  142. package/src/builtins/exponent/README.md +21 -1
  143. package/src/builtins/interpolation/README.md +29 -1
  144. package/src/builtins/mock-observations/README.md +1 -1
  145. package/src/builtins/multiply/README.md +16 -1
  146. package/src/builtins/regex/README.md +32 -2
  147. package/src/builtins/sci/README.md +24 -1
  148. package/src/builtins/sci-embodied/README.md +15 -1
  149. package/src/builtins/shell/README.md +12 -1
  150. package/src/builtins/subtract/README.md +12 -1
  151. package/src/builtins/sum/README.md +28 -1
  152. package/src/config/env-template.yml +24 -0
  153. package/build/builtins/coefficient/types.d.ts +0 -5
  154. package/build/builtins/coefficient/types.js +0 -3
  155. package/build/builtins/exponent/types.d.ts +0 -5
  156. package/build/builtins/exponent/types.js +0 -3
  157. package/build/builtins/interpolation/types.d.ts +0 -5
  158. package/build/builtins/interpolation/types.js +0 -10
  159. package/build/builtins/mock-observations/types.d.ts +0 -13
  160. package/build/builtins/mock-observations/types.js +0 -3
  161. package/build/builtins/multiply/types.d.ts +0 -4
  162. package/build/builtins/multiply/types.js +0 -3
  163. package/build/builtins/subtract/types.d.ts +0 -4
  164. package/build/builtins/subtract/types.js +0 -3
  165. package/build/builtins/sum/types.d.ts +0 -4
  166. package/build/builtins/sum/types.js +0 -3
  167. package/build/types/common.d.ts +0 -4
  168. package/build/types/common.js +0 -3
  169. package/build/types/group-by.d.ts +0 -3
  170. package/build/types/group-by.js +0 -3
  171. package/build/types/helpers.d.ts +0 -4
  172. package/build/types/helpers.js +0 -3
  173. package/build/util/errors.d.ts +0 -6
  174. package/build/util/errors.js +0 -33
  175. package/manifests/examples/basic.yml +0 -28
  176. package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +0 -18
  177. package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +0 -19
  178. package/manifests/plugins/tdp-finder/success.yml +0 -19
  179. /package/manifests/plugins/csv-lookup/{failure-missing-column.yml → region-metadata/failure-missing-column.yml} +0 -0
  180. /package/manifests/plugins/csv-lookup/{failure-missing-output.yml → region-metadata/failure-missing-output.yml} +0 -0
  181. /package/manifests/plugins/csv-lookup/{success-renaming.yml → region-metadata/success-renaming.yml} +0 -0
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Interpolation = void 0;
7
7
  const typescript_cubic_spline_1 = __importDefault(require("typescript-cubic-spline"));
8
8
  const zod_1 = require("zod");
9
+ const utils_1 = require("@grnsft/if-core/utils");
10
+ const types_1 = require("@grnsft/if-core/types");
9
11
  const validations_1 = require("../../util/validations");
10
- const errors_1 = require("../../util/errors");
11
- const types_1 = require("./types");
12
- const { ConfigNotFoundError } = errors_1.ERRORS;
12
+ const config_1 = require("../../config");
13
+ const { GlobalConfigError } = utils_1.ERRORS;
14
+ const { MISSING_GLOBAL_CONFIG, X_Y_EQUAL, ARRAY_LENGTH_NON_EMPTY, WITHIN_THE_RANGE, } = config_1.STRINGS;
13
15
  const Interpolation = (globalConfig) => {
14
16
  /**
15
17
  * Executes the energy consumption calculation for an array of input parameters.
@@ -92,7 +94,7 @@ const Interpolation = (globalConfig) => {
92
94
  */
93
95
  const validateConfig = () => {
94
96
  if (!globalConfig) {
95
- throw new ConfigNotFoundError('Global config is not provided.');
97
+ throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
96
98
  }
97
99
  const schema = zod_1.z
98
100
  .object({
@@ -103,10 +105,10 @@ const Interpolation = (globalConfig) => {
103
105
  'output-parameter': zod_1.z.string(),
104
106
  })
105
107
  .refine(data => data.x && data.y && data.x.length === data.y.length, {
106
- message: 'The length of `x` and `y` should be equal',
108
+ message: X_Y_EQUAL,
107
109
  })
108
110
  .refine(data => data.x.length > 1 && data.y.length > 1, {
109
- message: 'the length of the input arrays must be greater than 1',
111
+ message: ARRAY_LENGTH_NON_EMPTY,
110
112
  });
111
113
  const defaultMethod = globalConfig.method ?? types_1.Method.LINEAR;
112
114
  const updatedConfig = Object.assign({}, { method: defaultMethod }, globalConfig, {
@@ -131,7 +133,7 @@ const Interpolation = (globalConfig) => {
131
133
  })
132
134
  .refine(data => data[inputParameter] >= globalConfig.x[0] &&
133
135
  data[inputParameter] <= globalConfig.x[globalConfig.x.length - 1], {
134
- message: 'The target x value must be within the range of the given x values',
136
+ message: WITHIN_THE_RANGE,
135
137
  });
136
138
  return (0, validations_1.validate)(schema, input, index);
137
139
  };
@@ -143,4 +145,4 @@ const Interpolation = (globalConfig) => {
143
145
  };
144
146
  };
145
147
  exports.Interpolation = Interpolation;
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvaW50ZXJwb2xhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRkFBNkM7QUFDN0MsNkJBQXNCO0FBSXRCLHdEQUFnRDtBQUNoRCw4Q0FBeUM7QUFFekMsbUNBQStCO0FBRS9CLE1BQU0sRUFBQyxtQkFBbUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUU5QixNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDekU7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGVBQWUsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTNELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxNQUFNO2FBQzlDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBNEI7WUFDMUMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0MsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0MsVUFBVSxFQUFFLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FDdEQsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsTUFBb0IsRUFDcEIsS0FBbUIsRUFDbkIsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFhLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQWEsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUMzQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakIsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUN4QixHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDckIsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0I7aUJBQU0sSUFBSSxTQUFTLEdBQUcsTUFBTSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMzRCxHQUFHLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDckIsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQzthQUN2RTtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNELEVBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FDcEMsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN2RSxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsTUFBb0IsRUFDcEIsS0FBbUIsRUFDbkIsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFhLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQWEsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBUSxJQUFJLGlDQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpELE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sMEJBQTBCLEdBQUcsQ0FDakMsTUFBb0IsRUFDcEIsS0FBbUIsRUFDbkIsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFhLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQWEsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxNQUFNLElBQUksR0FDUixPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ1gsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO3FCQUNyRDtvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDakU7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLE9BQUMsQ0FBQyxVQUFVLENBQUMsY0FBTSxDQUFDO1lBQzVCLENBQUMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM3QixrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQy9CLENBQUM7YUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDbkUsT0FBTyxFQUFFLDJDQUEyQztTQUNyRCxDQUFDO2FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0RCxPQUFPLEVBQUUsdURBQXVEO1NBQ2pFLENBQUMsQ0FBQztRQUVMLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksY0FBTSxDQUFDLE1BQU0sQ0FBQztRQUMzRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNqQyxFQUFFLEVBQ0YsRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFDLEVBQ3ZCLFlBQVksRUFDWjtZQUNFLENBQUMsRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDOUIsQ0FDRixDQUFDO1FBRUYsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUU7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFFTDs7T0FFRztJQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMzRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BCLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbkMsQ0FBQzthQUNELE1BQU0sQ0FDTCxJQUFJLENBQUMsRUFBRSxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDbkU7WUFDRSxPQUFPLEVBQ0wsbUVBQW1FO1NBQ3RFLENBQ0YsQ0FBQztRQUVKLE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBL0tXLFFBQUEsYUFBYSxpQkErS3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNwbGluZSBmcm9tICd0eXBlc2NyaXB0LWN1YmljLXNwbGluZSc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zLCBDb25maWdQYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtNZXRob2R9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCB7Q29uZmlnTm90Rm91bmRFcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBJbnRlcnBvbGF0aW9uID0gKGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgZW5lcmd5IGNvbnN1bXB0aW9uIGNhbGN1bGF0aW9uIGZvciBhbiBhcnJheSBvZiBpbnB1dCBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoKTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHNhZmVJbnB1dCA9IHZhbGlkYXRlSW5wdXQoaW5wdXQsIGluZGV4KTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGN1bGF0ZVJlc3VsdCh2YWxpZGF0ZWRDb25maWcsIHNhZmVJbnB1dCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbdmFsaWRhdGVkQ29uZmlnWydvdXRwdXQtcGFyYW1ldGVyJ11dOiByZXN1bHQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBhcHByb3ByaWF0ZSBpbnRlcnBvbGF0aW9uIHZhbHVlIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgbWV0aG9kIHR5cGUgaW4gdGhlIGNvbmZpZyBhbmQgaW5wdXQgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZVJlc3VsdCA9IChjb25maWc6IENvbmZpZ1BhcmFtcywgaW5wdXQ6IFBsdWdpblBhcmFtcykgPT4ge1xuICAgIGNvbnN0IG1ldGhvZFR5cGU6IHtba2V5OiBzdHJpbmddOiBudW1iZXJ9ID0ge1xuICAgICAgbGluZWFyOiBnZXRMaW5lYXJJbnRlcnBvbGF0aW9uKGNvbmZpZywgaW5wdXQpLFxuICAgICAgc3BsaW5lOiBnZXRTcGxpbmVJbnRlcnBvbGF0aW9uKGNvbmZpZywgaW5wdXQpLFxuICAgICAgcG9seW5vbWlhbDogZ2V0UG9seW5vbWlhbEludGVycG9sYXRpb24oY29uZmlnLCBpbnB1dCksXG4gICAgfTtcblxuICAgIHJldHVybiBtZXRob2RUeXBlW2NvbmZpZy5tZXRob2RdO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnBvbGF0aW9uIHdoZW4gdGhlIG1ldGhvZCBpcyBsaW5lYXIuXG4gICAqL1xuICBjb25zdCBnZXRMaW5lYXJJbnRlcnBvbGF0aW9uID0gKFxuICAgIGNvbmZpZzogQ29uZmlnUGFyYW1zLFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXNcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gaW5wdXRbZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV07XG4gICAgY29uc3QgeFBvaW50czogbnVtYmVyW10gPSBjb25maWcueDtcbiAgICBjb25zdCB5UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy55O1xuXG4gICAgY29uc3QgcmVzdWx0ID0geFBvaW50cy5yZWR1Y2UoXG4gICAgICAoYWNjLCB4UG9pbnQsIGkpID0+IHtcbiAgICAgICAgaWYgKHBhcmFtZXRlciA9PT0geFBvaW50KSB7XG4gICAgICAgICAgYWNjLmJhc2VDcHUgPSB4UG9pbnQ7XG4gICAgICAgICAgYWNjLmJhc2VSYXRlID0geVBvaW50c1tpXTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIgPiB4UG9pbnQgJiYgcGFyYW1ldGVyIDwgeFBvaW50c1tpICsgMV0pIHtcbiAgICAgICAgICBhY2MuYmFzZUNwdSA9IHhQb2ludDtcbiAgICAgICAgICBhY2MuYmFzZVJhdGUgPSB5UG9pbnRzW2ldO1xuICAgICAgICAgIGFjYy5yYXRpbyA9ICh5UG9pbnRzW2kgKyAxXSAtIHlQb2ludHNbaV0pIC8gKHhQb2ludHNbaSArIDFdIC0geFBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge2Jhc2VSYXRlOiAwLCBiYXNlQ3B1OiAwLCByYXRpbzogMH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5iYXNlUmF0ZSArIChwYXJhbWV0ZXIgLSByZXN1bHQuYmFzZUNwdSkgKiByZXN1bHQucmF0aW87XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGludGVycG9sYXRpb24gd2hlbiB0aGUgbWV0aG9kIGlzIHNwbGluZS5cbiAgICovXG4gIGNvbnN0IGdldFNwbGluZUludGVycG9sYXRpb24gPSAoXG4gICAgY29uZmlnOiBDb25maWdQYXJhbXMsXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtc1xuICApID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSBpbnB1dFtnbG9iYWxDb25maWdbJ2lucHV0LXBhcmFtZXRlciddXTtcbiAgICBjb25zdCB4UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy54O1xuICAgIGNvbnN0IHlQb2ludHM6IG51bWJlcltdID0gY29uZmlnLnk7XG4gICAgY29uc3Qgc3BsaW5lOiBhbnkgPSBuZXcgU3BsaW5lKHhQb2ludHMsIHlQb2ludHMpO1xuXG4gICAgcmV0dXJuIHNwbGluZS5hdChwYXJhbWV0ZXIpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnBvbGF0aW9uIHdoZW4gdGhlIG1ldGhvZCBpcyBwb2x5bm9taWFsLlxuICAgKi9cbiAgY29uc3QgZ2V0UG9seW5vbWlhbEludGVycG9sYXRpb24gPSAoXG4gICAgY29uZmlnOiBDb25maWdQYXJhbXMsXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtc1xuICApID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSBpbnB1dFtnbG9iYWxDb25maWdbJ2lucHV0LXBhcmFtZXRlciddXTtcbiAgICBjb25zdCB4UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy54O1xuICAgIGNvbnN0IHlQb2ludHM6IG51bWJlcltdID0gY29uZmlnLnk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB4UG9pbnRzLnJlZHVjZSgoYWNjLCB4LCBpKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtID1cbiAgICAgICAgeVBvaW50c1tpXSAqXG4gICAgICAgIHhQb2ludHMucmVkdWNlKChwcm9kLCB4UG9pbnQsIGopID0+IHtcbiAgICAgICAgICBpZiAoaiAhPT0gaSkge1xuICAgICAgICAgICAgcmV0dXJuIChwcm9kICogKHBhcmFtZXRlciAtIHhQb2ludCkpIC8gKHggLSB4UG9pbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHJvZDtcbiAgICAgICAgfSwgMSk7XG4gICAgICByZXR1cm4gYWNjICsgdGVybTtcbiAgICB9LCAwKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBnbG9iYWwgY29uZmlnIHBhcmFtZXRlcnMuXG4gICAqIFNvcnRzIGVsZW1lbnRzIG9mIGB4YCBhbmQgYHlgLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoKSA9PiB7XG4gICAgaWYgKCFnbG9iYWxDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdOb3RGb3VuZEVycm9yKCdHbG9iYWwgY29uZmlnIGlzIG5vdCBwcm92aWRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgbWV0aG9kOiB6Lm5hdGl2ZUVudW0oTWV0aG9kKSxcbiAgICAgICAgeDogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgeTogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgJ2lucHV0LXBhcmFtZXRlcic6IHouc3RyaW5nKCksXG4gICAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGRhdGEgPT4gZGF0YS54ICYmIGRhdGEueSAmJiBkYXRhLngubGVuZ3RoID09PSBkYXRhLnkubGVuZ3RoLCB7XG4gICAgICAgIG1lc3NhZ2U6ICdUaGUgbGVuZ3RoIG9mIGB4YCBhbmQgYHlgIHNob3VsZCBiZSBlcXVhbCcsXG4gICAgICB9KVxuICAgICAgLnJlZmluZShkYXRhID0+IGRhdGEueC5sZW5ndGggPiAxICYmIGRhdGEueS5sZW5ndGggPiAxLCB7XG4gICAgICAgIG1lc3NhZ2U6ICd0aGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBhcnJheXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMScsXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRNZXRob2QgPSBnbG9iYWxDb25maWcubWV0aG9kID8/IE1ldGhvZC5MSU5FQVI7XG4gICAgY29uc3QgdXBkYXRlZENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHttZXRob2Q6IGRlZmF1bHRNZXRob2R9LFxuICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAge1xuICAgICAgICB4OiBzb3J0UG9pbnRzKGdsb2JhbENvbmZpZy54KSxcbiAgICAgICAgeTogc29ydFBvaW50cyhnbG9iYWxDb25maWcueSksXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIHVwZGF0ZWRDb25maWcpO1xuICB9O1xuXG4gIGNvbnN0IHNvcnRQb2ludHMgPSAoaXRlbXM6IG51bWJlcltdKSA9PlxuICAgIGl0ZW1zLnNvcnQoKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4gYSAtIGI7XG4gICAgfSk7XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBpbnB1dGVzIHBhcmFtZXRlcnMuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUlucHV0ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBpbnB1dFBhcmFtZXRlciA9IGdsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVyJ107XG4gICAgY29uc3Qgc2NoZW1hID0gelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIHRpbWVzdGFtcDogei5zdHJpbmcoKS5vcih6LmRhdGUoKSksXG4gICAgICAgIGR1cmF0aW9uOiB6Lm51bWJlcigpLFxuICAgICAgICBbaW5wdXRQYXJhbWV0ZXJdOiB6Lm51bWJlcigpLmd0KDApLFxuICAgICAgfSlcbiAgICAgIC5yZWZpbmUoXG4gICAgICAgIGRhdGEgPT5cbiAgICAgICAgICBkYXRhW2lucHV0UGFyYW1ldGVyXSA+PSBnbG9iYWxDb25maWcueFswXSAmJlxuICAgICAgICAgIGRhdGFbaW5wdXRQYXJhbWV0ZXJdIDw9IGdsb2JhbENvbmZpZy54W2dsb2JhbENvbmZpZy54Lmxlbmd0aCAtIDFdLFxuICAgICAgICB7XG4gICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICdUaGUgdGFyZ2V0IHggdmFsdWUgbXVzdCBiZSB3aXRoaW4gdGhlIHJhbmdlIG9mIHRoZSBnaXZlbiB4IHZhbHVlcycsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2Ygc2NoZW1hPj4oc2NoZW1hLCBpbnB1dCwgaW5kZXgpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgICB9LFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvaW50ZXJwb2xhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRkFBNkM7QUFDN0MsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUM3QyxpREFLK0I7QUFFL0Isd0RBQWdEO0FBRWhELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUNKLHFCQUFxQixFQUNyQixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixHQUFHLGdCQUFPLENBQUM7QUFFTCxNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDekU7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGVBQWUsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTNELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxNQUFNO2FBQzlDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBNEI7WUFDMUMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0Ms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QU0sRUFBRTtZQUNwQixDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ25DLENBQUM7YUFDRCxNQUFNLENBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQ25FO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtTQUMxQixDQUNGLENBQUM7UUFFSixPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlLVyxRQUFBLGFBQWEsaUJBOEt4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTcGxpbmUgZnJvbSAndHlwZXNjcmlwdC1jdWJpYy1zcGxpbmUnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIENvbmZpZ1BhcmFtcyxcbiAgTWV0aG9kLFxufSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7R2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge1xuICBNSVNTSU5HX0dMT0JBTF9DT05GSUcsXG4gIFhfWV9FUVVBTCxcbiAgQVJSQVlfTEVOR1RIX05PTl9FTVBUWSxcbiAgV0lUSElOX1RIRV9SQU5HRSxcbn0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgSW50ZXJwb2xhdGlvbiA9IChnbG9iYWxDb25maWc6IENvbmZpZ1BhcmFtcyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGVuZXJneSBjb25zdW1wdGlvbiBjYWxjdWxhdGlvbiBmb3IgYW4gYXJyYXkgb2YgaW5wdXQgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZENvbmZpZyA9IHZhbGlkYXRlQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzYWZlSW5wdXQgPSB2YWxpZGF0ZUlucHV0KGlucHV0LCBpbmRleCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBjYWxjdWxhdGVSZXN1bHQodmFsaWRhdGVkQ29uZmlnLCBzYWZlSW5wdXQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW3ZhbGlkYXRlZENvbmZpZ1snb3V0cHV0LXBhcmFtZXRlciddXTogcmVzdWx0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgYXBwcm9wcmlhdGUgaW50ZXJwb2xhdGlvbiB2YWx1ZSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIG1ldGhvZCB0eXBlIGluIHRoZSBjb25maWcgYW5kIGlucHV0IHBhcmFtZXRlcnMuXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVSZXN1bHQgPSAoY29uZmlnOiBDb25maWdQYXJhbXMsIGlucHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICBjb25zdCBtZXRob2RUeXBlOiB7W2tleTogc3RyaW5nXTogbnVtYmVyfSA9IHtcbiAgICAgIGxpbmVhcjogZ2V0TGluZWFySW50ZXJwb2xhdGlvbihjb25maWcsIGlucHV0KSxcbiAgICAgIHNwbGluZTogZ2V0U3BsaW5lSW50ZXJwb2xhdGlvbihjb25maWcsIGlucHV0KSxcbiAgICAgIHBvbHlub21pYWw6IGdldFBvbHlub21pYWxJbnRlcnBvbGF0aW9uKGNvbmZpZywgaW5wdXQpLFxuICAgIH07XG5cbiAgICByZXR1cm4gbWV0aG9kVHlwZVtjb25maWcubWV0aG9kXTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJwb2xhdGlvbiB3aGVuIHRoZSBtZXRob2QgaXMgbGluZWFyLlxuICAgKi9cbiAgY29uc3QgZ2V0TGluZWFySW50ZXJwb2xhdGlvbiA9IChcbiAgICBjb25maWc6IENvbmZpZ1BhcmFtcyxcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zXG4gICkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlciA9IGlucHV0W2dsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVyJ11dO1xuICAgIGNvbnN0IHhQb2ludHM6IG51bWJlcltdID0gY29uZmlnLng7XG4gICAgY29uc3QgeVBvaW50czogbnVtYmVyW10gPSBjb25maWcueTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHhQb2ludHMucmVkdWNlKFxuICAgICAgKGFjYywgeFBvaW50LCBpKSA9PiB7XG4gICAgICAgIGlmIChwYXJhbWV0ZXIgPT09IHhQb2ludCkge1xuICAgICAgICAgIGFjYy5iYXNlQ3B1ID0geFBvaW50O1xuICAgICAgICAgIGFjYy5iYXNlUmF0ZSA9IHlQb2ludHNbaV07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyID4geFBvaW50ICYmIHBhcmFtZXRlciA8IHhQb2ludHNbaSArIDFdKSB7XG4gICAgICAgICAgYWNjLmJhc2VDcHUgPSB4UG9pbnQ7XG4gICAgICAgICAgYWNjLmJhc2VSYXRlID0geVBvaW50c1tpXTtcbiAgICAgICAgICBhY2MucmF0aW8gPSAoeVBvaW50c1tpICsgMV0gLSB5UG9pbnRzW2ldKSAvICh4UG9pbnRzW2kgKyAxXSAtIHhQb2ludCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHtiYXNlUmF0ZTogMCwgYmFzZUNwdTogMCwgcmF0aW86IDB9XG4gICAgKTtcblxuICAgIHJldHVybiByZXN1bHQuYmFzZVJhdGUgKyAocGFyYW1ldGVyIC0gcmVzdWx0LmJhc2VDcHUpICogcmVzdWx0LnJhdGlvO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnBvbGF0aW9uIHdoZW4gdGhlIG1ldGhvZCBpcyBzcGxpbmUuXG4gICAqL1xuICBjb25zdCBnZXRTcGxpbmVJbnRlcnBvbGF0aW9uID0gKFxuICAgIGNvbmZpZzogQ29uZmlnUGFyYW1zLFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXNcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gaW5wdXRbZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV07XG4gICAgY29uc3QgeFBvaW50czogbnVtYmVyW10gPSBjb25maWcueDtcbiAgICBjb25zdCB5UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy55O1xuICAgIGNvbnN0IHNwbGluZTogYW55ID0gbmV3IFNwbGluZSh4UG9pbnRzLCB5UG9pbnRzKTtcblxuICAgIHJldHVybiBzcGxpbmUuYXQocGFyYW1ldGVyKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJwb2xhdGlvbiB3aGVuIHRoZSBtZXRob2QgaXMgcG9seW5vbWlhbC5cbiAgICovXG4gIGNvbnN0IGdldFBvbHlub21pYWxJbnRlcnBvbGF0aW9uID0gKFxuICAgIGNvbmZpZzogQ29uZmlnUGFyYW1zLFxuICAgIGlucHV0OiBQbHVnaW5QYXJhbXNcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gaW5wdXRbZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXV07XG4gICAgY29uc3QgeFBvaW50czogbnVtYmVyW10gPSBjb25maWcueDtcbiAgICBjb25zdCB5UG9pbnRzOiBudW1iZXJbXSA9IGNvbmZpZy55O1xuXG4gICAgY29uc3QgcmVzdWx0ID0geFBvaW50cy5yZWR1Y2UoKGFjYywgeCwgaSkgPT4ge1xuICAgICAgY29uc3QgdGVybSA9XG4gICAgICAgIHlQb2ludHNbaV0gKlxuICAgICAgICB4UG9pbnRzLnJlZHVjZSgocHJvZCwgeFBvaW50LCBqKSA9PiB7XG4gICAgICAgICAgaWYgKGogIT09IGkpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJvZCAqIChwYXJhbWV0ZXIgLSB4UG9pbnQpKSAvICh4IC0geFBvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2Q7XG4gICAgICAgIH0sIDEpO1xuICAgICAgcmV0dXJuIGFjYyArIHRlcm07XG4gICAgfSwgMCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgZ2xvYmFsIGNvbmZpZyBwYXJhbWV0ZXJzLlxuICAgKiBTb3J0cyBlbGVtZW50cyBvZiBgeGAgYW5kIGB5YC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKCkgPT4ge1xuICAgIGlmICghZ2xvYmFsQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgR2xvYmFsQ29uZmlnRXJyb3IoTUlTU0lOR19HTE9CQUxfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgbWV0aG9kOiB6Lm5hdGl2ZUVudW0oTWV0aG9kKSxcbiAgICAgICAgeDogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgeTogei5hcnJheSh6Lm51bWJlcigpKSxcbiAgICAgICAgJ2lucHV0LXBhcmFtZXRlcic6IHouc3RyaW5nKCksXG4gICAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGRhdGEgPT4gZGF0YS54ICYmIGRhdGEueSAmJiBkYXRhLngubGVuZ3RoID09PSBkYXRhLnkubGVuZ3RoLCB7XG4gICAgICAgIG1lc3NhZ2U6IFhfWV9FUVVBTCxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKGRhdGEgPT4gZGF0YS54Lmxlbmd0aCA+IDEgJiYgZGF0YS55Lmxlbmd0aCA+IDEsIHtcbiAgICAgICAgbWVzc2FnZTogQVJSQVlfTEVOR1RIX05PTl9FTVBUWSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdE1ldGhvZCA9IGdsb2JhbENvbmZpZy5tZXRob2QgPz8gTWV0aG9kLkxJTkVBUjtcbiAgICBjb25zdCB1cGRhdGVkQ29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAge21ldGhvZDogZGVmYXVsdE1ldGhvZH0sXG4gICAgICBnbG9iYWxDb25maWcsXG4gICAgICB7XG4gICAgICAgIHg6IHNvcnRQb2ludHMoZ2xvYmFsQ29uZmlnLngpLFxuICAgICAgICB5OiBzb3J0UG9pbnRzKGdsb2JhbENvbmZpZy55KSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgdXBkYXRlZENvbmZpZyk7XG4gIH07XG5cbiAgY29uc3Qgc29ydFBvaW50cyA9IChpdGVtczogbnVtYmVyW10pID0+XG4gICAgaXRlbXMuc29ydCgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IHtcbiAgICAgIHJldHVybiBhIC0gYjtcbiAgICB9KTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGlucHV0ZXMgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlSW5wdXQgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGlucHV0UGFyYW1ldGVyID0gZ2xvYmFsQ29uZmlnWydpbnB1dC1wYXJhbWV0ZXInXTtcbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgdGltZXN0YW1wOiB6LnN0cmluZygpLm9yKHouZGF0ZSgpKSxcbiAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCksXG4gICAgICAgIFtpbnB1dFBhcmFtZXRlcl06IHoubnVtYmVyKCkuZ3QoMCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShcbiAgICAgICAgZGF0YSA9PlxuICAgICAgICAgIGRhdGFbaW5wdXRQYXJhbWV0ZXJdID49IGdsb2JhbENvbmZpZy54WzBdICYmXG4gICAgICAgICAgZGF0YVtpbnB1dFBhcmFtZXRlcl0gPD0gZ2xvYmFsQ29uZmlnLnhbZ2xvYmFsQ29uZmlnLngubGVuZ3RoIC0gMV0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBXSVRISU5fVEhFX1JBTkdFLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQsIGluZGV4KTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhOiB7XG4gICAgICBraW5kOiAnZXhlY3V0ZScsXG4gICAgfSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1,3 +1,3 @@
1
- import { KeyValuePair } from '../../../types/common';
1
+ import { ConfigParams } from '@grnsft/if-core/types';
2
2
  import { Generator } from '../interfaces';
3
- export declare const CommonGenerator: (config: KeyValuePair) => Generator;
3
+ export declare const CommonGenerator: (config: ConfigParams) => Generator;
@@ -1,32 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommonGenerator = void 0;
4
- const errors_1 = require("../../../util/errors");
5
- const helpers_1 = require("../../../util/helpers");
6
- const { InputValidationError } = errors_1.ERRORS;
4
+ const utils_1 = require("@grnsft/if-core/utils");
5
+ const config_1 = require("../../../config");
6
+ const { GlobalConfigError } = utils_1.ERRORS;
7
+ const { MISSING_GLOBAL_CONFIG } = config_1.STRINGS;
7
8
  const CommonGenerator = (config) => {
8
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.CommonGenerator.name);
9
- /**
10
- * Creates new copy of the given `object`.
11
- */
12
- const copyObject = (object) => ({ ...object });
13
9
  /**
10
+ * Generates next value by copying the validated config.
14
11
  * Validates the provided config is not null or empty.
15
- * returns a copy of the validated config, otherwise throws an InputValidationError.
12
+ * Returns a copy of the validated config, otherwise throws an GlobalConfigError.
16
13
  */
17
14
  const validateConfig = (config) => {
18
15
  if (!config || Object.keys(config).length === 0) {
19
- throw new InputValidationError(errorBuilder({ message: 'Config must not be null or empty' }));
16
+ throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
20
17
  }
21
- return copyObject(config);
18
+ return structuredClone(config);
22
19
  };
23
20
  /**
24
21
  * Generates next value by copying the validated config.
25
22
  */
26
- const next = () => copyObject(validateConfig(config));
23
+ const next = () => validateConfig(config);
27
24
  return {
28
25
  next,
29
26
  };
30
27
  };
31
28
  exports.CommonGenerator = CommonGenerator;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idWlsdGlucy9tb2NrLW9ic2VydmF0aW9ucy9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQTRDO0FBQzVDLG1EQUF3RDtBQUl4RCxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFhLEVBQUU7SUFDakUsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyx1QkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBSSxNQUFTLEVBQUssRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQyxFQUFDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBQyxDQUFDLENBQzVELENBQUM7U0FDSDtRQUVELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTlELE9BQU87UUFDTCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlCVyxRQUFBLGVBQWUsbUJBOEIxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7S2V5VmFsdWVQYWlyfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb21tb24nO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uLy4uL3V0aWwvZXJyb3JzJztcbmltcG9ydCB7YnVpbGRFcnJvck1lc3NhZ2V9IGZyb20gJy4uLy4uLy4uL3V0aWwvaGVscGVycyc7XG5cbmltcG9ydCB7R2VuZXJhdG9yfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3Qge0lucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuZXhwb3J0IGNvbnN0IENvbW1vbkdlbmVyYXRvciA9IChjb25maWc6IEtleVZhbHVlUGFpcik6IEdlbmVyYXRvciA9PiB7XG4gIGNvbnN0IGVycm9yQnVpbGRlciA9IGJ1aWxkRXJyb3JNZXNzYWdlKENvbW1vbkdlbmVyYXRvci5uYW1lKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgY29weSBvZiB0aGUgZ2l2ZW4gYG9iamVjdGAuXG4gICAqL1xuICBjb25zdCBjb3B5T2JqZWN0ID0gPFQ+KG9iamVjdDogVCk6IFQgPT4gKHsuLi5vYmplY3R9KTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBwcm92aWRlZCBjb25maWcgaXMgbm90IG51bGwgb3IgZW1wdHkuXG4gICAqIHJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWxpZGF0ZWQgY29uZmlnLCBvdGhlcndpc2UgdGhyb3dzIGFuIElucHV0VmFsaWRhdGlvbkVycm9yLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoY29uZmlnOiBvYmplY3QpID0+IHtcbiAgICBpZiAoIWNvbmZpZyB8fCBPYmplY3Qua2V5cyhjb25maWcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe21lc3NhZ2U6ICdDb25maWcgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eSd9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29weU9iamVjdChjb25maWcpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgbmV4dCB2YWx1ZSBieSBjb3B5aW5nIHRoZSB2YWxpZGF0ZWQgY29uZmlnLlxuICAgKi9cbiAgY29uc3QgbmV4dCA9ICgpOiBPYmplY3QgPT4gY29weU9iamVjdCh2YWxpZGF0ZUNvbmZpZyhjb25maWcpKTtcblxuICByZXR1cm4ge1xuICAgIG5leHQsXG4gIH07XG59O1xuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idWlsdGlucy9tb2NrLW9ic2VydmF0aW9ucy9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTZDO0FBRzdDLDRDQUF3QztBQUl4QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQW9CLEVBQWEsRUFBRTtJQUNqRTs7OztPQUlHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxELE9BQU87UUFDTCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXRCVyxRQUFBLGVBQWUsbUJBc0IxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtHZW5lcmF0b3J9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCB7R2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgQ29tbW9uR2VuZXJhdG9yID0gKGNvbmZpZzogQ29uZmlnUGFyYW1zKTogR2VuZXJhdG9yID0+IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBuZXh0IHZhbHVlIGJ5IGNvcHlpbmcgdGhlIHZhbGlkYXRlZCBjb25maWcuXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgY29uZmlnIGlzIG5vdCBudWxsIG9yIGVtcHR5LlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsaWRhdGVkIGNvbmZpZywgb3RoZXJ3aXNlIHRocm93cyBhbiBHbG9iYWxDb25maWdFcnJvci5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKGNvbmZpZzogb2JqZWN0KSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUoY29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIG5leHQgdmFsdWUgYnkgY29weWluZyB0aGUgdmFsaWRhdGVkIGNvbmZpZy5cbiAgICovXG4gIGNvbnN0IG5leHQgPSAoKTogT2JqZWN0ID0+IHZhbGlkYXRlQ29uZmlnKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXh0LFxuICB9O1xufTtcbiJdfQ==
@@ -1,3 +1,3 @@
1
- import { KeyValuePair } from '../../../types/common';
1
+ import { ConfigParams } from '@grnsft/if-core/types';
2
2
  import { Generator } from '../interfaces';
3
- export declare const RandIntGenerator: (name: string, config: KeyValuePair) => Generator;
3
+ export declare const RandIntGenerator: (name: string, config: ConfigParams) => Generator;
@@ -1,49 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RandIntGenerator = void 0;
4
- const errors_1 = require("../../../util/errors");
5
- const helpers_1 = require("../../../util/helpers");
6
- const { InputValidationError } = errors_1.ERRORS;
4
+ const utils_1 = require("@grnsft/if-core/utils");
5
+ const config_1 = require("../../../config");
6
+ const { GlobalConfigError } = utils_1.ERRORS;
7
+ const { MISSING_GLOBAL_CONFIG, MISSING_MIN_MAX, INVALID_MIN_MAX, INVALID_NAME } = config_1.STRINGS;
7
8
  const RandIntGenerator = (name, config) => {
8
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.RandIntGenerator.name);
9
9
  const next = () => ({
10
10
  [validatedName]: generateRandInt(getFieldToPopulate()),
11
11
  });
12
12
  const validateName = (name) => {
13
13
  if (!name || name.trim() === '') {
14
- throw new InputValidationError(errorBuilder({
15
- message: '`name` is empty or all spaces',
16
- }));
14
+ throw new GlobalConfigError(INVALID_NAME);
17
15
  }
18
16
  return name;
19
17
  };
20
18
  const validateConfig = (config) => {
21
19
  if (!config || Object.keys(config).length === 0) {
22
- throw new InputValidationError(errorBuilder({
23
- message: 'Config must not be null or empty',
24
- }));
20
+ throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
25
21
  }
26
22
  if (!config.min || !config.max) {
27
- throw new InputValidationError(errorBuilder({
28
- message: 'Config is missing min or max',
29
- }));
23
+ throw new GlobalConfigError(MISSING_MIN_MAX);
30
24
  }
31
25
  if (config.min >= config.max) {
32
- throw new InputValidationError(errorBuilder({
33
- message: `Min value should not be greater than or equal to max value of ${validatedName}`,
34
- }));
26
+ throw new GlobalConfigError(INVALID_MIN_MAX(validatedName));
35
27
  }
36
28
  return { min: config.min, max: config.max };
37
29
  };
38
30
  const validatedName = validateName(name);
39
31
  const validatedConfig = validateConfig(config);
40
- const getFieldToPopulate = () => {
41
- return {
42
- name: validatedName,
43
- min: validatedConfig.min,
44
- max: validatedConfig.max,
45
- };
46
- };
32
+ const getFieldToPopulate = () => ({
33
+ name: validatedName,
34
+ min: validatedConfig.min,
35
+ max: validatedConfig.max,
36
+ });
47
37
  const generateRandInt = (randIntGenerator) => {
48
38
  const randomNumber = Math.random();
49
39
  const scaledNumber = randomNumber * (randIntGenerator.max - randIntGenerator.min) +
@@ -55,4 +45,4 @@ const RandIntGenerator = (name, config) => {
55
45
  };
56
46
  };
57
47
  exports.RandIntGenerator = RandIntGenerator;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZC1pbnQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1aWx0aW5zL21vY2stb2JzZXJ2YXRpb25zL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlEQUE0QztBQUM1QyxtREFBd0Q7QUFLeEQsTUFBTSxFQUFDLG9CQUFvQixFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9CLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsSUFBWSxFQUNaLE1BQW9CLEVBQ1QsRUFBRTtJQUNiLE1BQU0sWUFBWSxHQUFHLElBQUEsMkJBQWlCLEVBQUMsd0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ3ZELENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBbUIsRUFBVSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQztnQkFDWCxPQUFPLEVBQUUsK0JBQStCO2FBQ3pDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBb0IsRUFBOEIsRUFBRTtRQUMxRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQztnQkFDWCxPQUFPLEVBQUUsa0NBQWtDO2FBQzVDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDOUIsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixZQUFZLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLDhCQUE4QjthQUN4QyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDNUIsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixZQUFZLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLGlFQUFpRSxhQUFhLEVBQUU7YUFDMUYsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7UUFDOUIsT0FBTztZQUNMLElBQUksRUFBRSxhQUFhO1lBQ25CLEdBQUcsRUFBRSxlQUFlLENBQUMsR0FBRztZQUN4QixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7U0FDekIsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLENBQ3RCLGdCQUF3QyxFQUNoQyxFQUFFO1FBQ1YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUNoQixZQUFZLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBeEVXLFFBQUEsZ0JBQWdCLG9CQXdFM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0tleVZhbHVlUGFpcn0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29tbW9uJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi8uLi8uLi91dGlsL2Vycm9ycyc7XG5pbXBvcnQge2J1aWxkRXJyb3JNZXNzYWdlfSBmcm9tICcuLi8uLi8uLi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge0dlbmVyYXRvcn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQge1JhbmRJbnRHZW5lcmF0b3JQYXJhbXN9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3Qge0lucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuZXhwb3J0IGNvbnN0IFJhbmRJbnRHZW5lcmF0b3IgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgY29uZmlnOiBLZXlWYWx1ZVBhaXJcbik6IEdlbmVyYXRvciA9PiB7XG4gIGNvbnN0IGVycm9yQnVpbGRlciA9IGJ1aWxkRXJyb3JNZXNzYWdlKFJhbmRJbnRHZW5lcmF0b3IubmFtZSk7XG5cbiAgY29uc3QgbmV4dCA9ICgpID0+ICh7XG4gICAgW3ZhbGlkYXRlZE5hbWVdOiBnZW5lcmF0ZVJhbmRJbnQoZ2V0RmllbGRUb1BvcHVsYXRlKCkpLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0ZU5hbWUgPSAobmFtZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFuYW1lIHx8IG5hbWUudHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6ICdgbmFtZWAgaXMgZW1wdHkgb3IgYWxsIHNwYWNlcycsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfTtcblxuICBjb25zdCB2YWxpZGF0ZUNvbmZpZyA9IChjb25maWc6IEtleVZhbHVlUGFpcik6IHttaW46IG51bWJlcjsgbWF4OiBudW1iZXJ9ID0+IHtcbiAgICBpZiAoIWNvbmZpZyB8fCBPYmplY3Qua2V5cyhjb25maWcpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6ICdDb25maWcgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eScsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLm1pbiB8fCAhY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6ICdDb25maWcgaXMgbWlzc2luZyBtaW4gb3IgbWF4JyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW4gPj0gY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6IGBNaW4gdmFsdWUgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbWF4IHZhbHVlIG9mICR7dmFsaWRhdGVkTmFtZX1gLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHttaW46IGNvbmZpZy5taW4sIG1heDogY29uZmlnLm1heH07XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVkTmFtZSA9IHZhbGlkYXRlTmFtZShuYW1lKTtcbiAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoY29uZmlnKTtcblxuICBjb25zdCBnZXRGaWVsZFRvUG9wdWxhdGUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHZhbGlkYXRlZE5hbWUsXG4gICAgICBtaW46IHZhbGlkYXRlZENvbmZpZy5taW4sXG4gICAgICBtYXg6IHZhbGlkYXRlZENvbmZpZy5tYXgsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBnZW5lcmF0ZVJhbmRJbnQgPSAoXG4gICAgcmFuZEludEdlbmVyYXRvcjogUmFuZEludEdlbmVyYXRvclBhcmFtc1xuICApOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IHJhbmRvbU51bWJlciA9IE1hdGgucmFuZG9tKCk7XG4gICAgY29uc3Qgc2NhbGVkTnVtYmVyID1cbiAgICAgIHJhbmRvbU51bWJlciAqIChyYW5kSW50R2VuZXJhdG9yLm1heCAtIHJhbmRJbnRHZW5lcmF0b3IubWluKSArXG4gICAgICByYW5kSW50R2VuZXJhdG9yLm1pbjtcbiAgICByZXR1cm4gTWF0aC50cnVuYyhzY2FsZWROdW1iZXIpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmV4dCxcbiAgfTtcbn07XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZC1pbnQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1aWx0aW5zL21vY2stb2JzZXJ2YXRpb25zL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE2QztBQUc3Qyw0Q0FBd0M7QUFJeEMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRW5DLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBQyxHQUMzRSxnQkFBTyxDQUFDO0FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixJQUFZLEVBQ1osTUFBb0IsRUFDVCxFQUFFO0lBQ2IsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ3ZELENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBbUIsRUFBVSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBb0IsRUFBOEIsRUFBRTtRQUMxRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLEVBQUUsYUFBYTtRQUNuQixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7UUFDeEIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO0tBQ3pCLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLENBQ3RCLGdCQUF3QyxFQUNoQyxFQUFFO1FBQ1YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUNoQixZQUFZLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUV2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdkRXLFFBQUEsZ0JBQWdCLG9CQXVEM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UmFuZEludEdlbmVyYXRvclBhcmFtcywgQ29uZmlnUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7R2VuZXJhdG9yfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3Qge0dsb2JhbENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJRywgTUlTU0lOR19NSU5fTUFYLCBJTlZBTElEX01JTl9NQVgsIElOVkFMSURfTkFNRX0gPVxuICBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgUmFuZEludEdlbmVyYXRvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBjb25maWc6IENvbmZpZ1BhcmFtc1xuKTogR2VuZXJhdG9yID0+IHtcbiAgY29uc3QgbmV4dCA9ICgpID0+ICh7XG4gICAgW3ZhbGlkYXRlZE5hbWVdOiBnZW5lcmF0ZVJhbmRJbnQoZ2V0RmllbGRUb1BvcHVsYXRlKCkpLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0ZU5hbWUgPSAobmFtZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFuYW1lIHx8IG5hbWUudHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTkFNRSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWU7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoY29uZmlnOiBDb25maWdQYXJhbXMpOiB7bWluOiBudW1iZXI7IG1heDogbnVtYmVyfSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLm1pbiB8fCAhY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfTUlOX01BWCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW4gPj0gY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTUlOX01BWCh2YWxpZGF0ZWROYW1lKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHttaW46IGNvbmZpZy5taW4sIG1heDogY29uZmlnLm1heH07XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVkTmFtZSA9IHZhbGlkYXRlTmFtZShuYW1lKTtcbiAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoY29uZmlnKTtcblxuICBjb25zdCBnZXRGaWVsZFRvUG9wdWxhdGUgPSAoKSA9PiAoe1xuICAgIG5hbWU6IHZhbGlkYXRlZE5hbWUsXG4gICAgbWluOiB2YWxpZGF0ZWRDb25maWcubWluLFxuICAgIG1heDogdmFsaWRhdGVkQ29uZmlnLm1heCxcbiAgfSk7XG5cbiAgY29uc3QgZ2VuZXJhdGVSYW5kSW50ID0gKFxuICAgIHJhbmRJbnRHZW5lcmF0b3I6IFJhbmRJbnRHZW5lcmF0b3JQYXJhbXNcbiAgKTogbnVtYmVyID0+IHtcbiAgICBjb25zdCByYW5kb21OdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xuICAgIGNvbnN0IHNjYWxlZE51bWJlciA9XG4gICAgICByYW5kb21OdW1iZXIgKiAocmFuZEludEdlbmVyYXRvci5tYXggLSByYW5kSW50R2VuZXJhdG9yLm1pbikgK1xuICAgICAgcmFuZEludEdlbmVyYXRvci5taW47XG5cbiAgICByZXR1cm4gTWF0aC50cnVuYyhzY2FsZWROdW1iZXIpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmV4dCxcbiAgfTtcbn07XG4iXX0=
@@ -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 MockObservations: (globalConfig: ConfigParams) => ExecutePlugin;
@@ -78,9 +78,7 @@ const MockObservations = (globalConfig) => {
78
78
  const createCommonGenerator = (config) => [
79
79
  (0, common_generator_1.CommonGenerator)(config),
80
80
  ];
81
- const createRandIntGenerators = (config) => {
82
- return Object.entries(config).map(([fieldToPopulate, value]) => (0, rand_int_generator_1.RandIntGenerator)(fieldToPopulate, value));
83
- };
81
+ const createRandIntGenerators = (config) => Object.entries(config).map(([fieldToPopulate, value]) => (0, rand_int_generator_1.RandIntGenerator)(fieldToPopulate, value));
84
82
  return Object.entries(generatorsConfig).flatMap(([key, value]) => key === 'randint'
85
83
  ? createRandIntGenerators(value).flat()
86
84
  : createCommonGenerator(value));
@@ -113,4 +111,4 @@ const MockObservations = (globalConfig) => {
113
111
  };
114
112
  };
115
113
  exports.MockObservations = MockObservations;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbW9jay1vYnNlcnZhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXlDO0FBQ3pDLDZCQUFzQjtBQUt0Qix3REFBZ0Q7QUFFaEQsaUVBQTJEO0FBQzNELHFFQUE4RDtBQUl2RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBMEIsRUFBaUIsRUFBRTtJQUM1RSxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUMsR0FDbkQsd0JBQXdCLEVBQUUsQ0FBQztRQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRTFELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUNuQyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxFQUM3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Q0FBQyxDQUFDO1lBRS9ELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUVqRSxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBYyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0QsTUFBTSxrQkFBa0IsR0FBaUI7WUFDdkMsU0FBUztZQUNULFFBQVE7WUFDUixHQUFHLFNBQVM7U0FDYixDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUNqRCxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUNqRSxrQkFBa0IsQ0FDbkIsQ0FBQztRQUVGLE9BQU8sb0JBQW9DLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFFBQVE7UUFDUixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWxLVyxRQUFBLGdCQUFnQixvQkFrSzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlVGltZSwgRHVyYXRpb259IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge0NvbmZpZ1BhcmFtcywgS2V5VmFsdWVQYWlyfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24nO1xuXG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtDb21tb25HZW5lcmF0b3J9IGZyb20gJy4vaGVscGVycy9jb21tb24tZ2VuZXJhdG9yJztcbmltcG9ydCB7UmFuZEludEdlbmVyYXRvcn0gZnJvbSAnLi9oZWxwZXJzL3JhbmQtaW50LWdlbmVyYXRvcic7XG5pbXBvcnQge0dlbmVyYXRvcn0gZnJvbSAnLi9pbnRlcmZhY2VzL2luZGV4JztcbmltcG9ydCB7T2JzZXJ2YXRpb25QYXJhbXN9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgTW9ja09ic2VydmF0aW9ucyA9IChnbG9iYWxDb25maWc6IENvbmZpZ1BhcmFtcyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHNldHMgb2YgbW9ja2VkIG9ic2VydmF0aW9ucyBiYXNlZCBvbiBjb25maWcuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pID0+IHtcbiAgICBjb25zdCB7ZHVyYXRpb24sIHRpbWVCdWNrZXRzLCBjb21wb25lbnRzLCBnZW5lcmF0b3JzfSA9XG4gICAgICBnZW5lcmF0ZVBhcmFtc0Zyb21Db25maWcoKTtcbiAgICBjb25zdCBnZW5lcmF0b3JUb0hpc3RvcnkgPSBuZXcgTWFwPEdlbmVyYXRvciwgbnVtYmVyW10+KCk7XG5cbiAgICBnZW5lcmF0b3JzLmZvckVhY2goZ2VuZXJhdG9yID0+IHtcbiAgICAgIGdlbmVyYXRvclRvSGlzdG9yeS5zZXQoZ2VuZXJhdG9yLCBbXSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IGlucHV0cyAmJiBpbnB1dHNbMF07XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY29tcG9uZW50cykucmVkdWNlKChhY2M6IFBsdWdpblBhcmFtc1tdLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtWzFdO1xuICAgICAgdGltZUJ1Y2tldHMuZm9yRWFjaCh0aW1lQnVja2V0ID0+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YXRpb24gPSBjcmVhdGVPYnNlcnZhdGlvbihcbiAgICAgICAgICB7ZHVyYXRpb24sIGNvbXBvbmVudCwgdGltZUJ1Y2tldCwgZ2VuZXJhdG9yc30sXG4gICAgICAgICAgZ2VuZXJhdG9yVG9IaXN0b3J5XG4gICAgICAgICk7XG5cbiAgICAgICAgYWNjLnB1c2goT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIG9ic2VydmF0aW9uKSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBnbG9iYWwgY29uZmlnIHBhcmFtZXRlcnMuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUdsb2JhbENvbmZpZyA9ICgpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICAndGltZXN0YW1wLWZyb20nOiB6LnN0cmluZygpLFxuICAgICAgJ3RpbWVzdGFtcC10byc6IHouc3RyaW5nKCksXG4gICAgICBkdXJhdGlvbjogei5udW1iZXIoKSxcbiAgICAgIGNvbXBvbmVudHM6IHouYXJyYXkoei5yZWNvcmQoei5zdHJpbmcoKSkpLFxuICAgICAgZ2VuZXJhdG9yczogei5vYmplY3Qoe1xuICAgICAgICBjb21tb246IHoucmVjb3JkKHouc3RyaW5nKCkub3Ioei5udW1iZXIoKSkpLFxuICAgICAgICByYW5kaW50OiB6LnJlY29yZCh6Lm9iamVjdCh7bWluOiB6Lm51bWJlcigpLCBtYXg6IHoubnVtYmVyKCl9KSksXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGdsb2JhbENvbmZpZyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIE1vY2tPYnNlcnZhdGlvbnMgUGx1Z2luIGZvciBJRlxuICAgKi9cbiAgY29uc3QgZ2VuZXJhdGVQYXJhbXNGcm9tQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICd0aW1lc3RhbXAtZnJvbSc6IHRpbWVzdGFtcEZyb20sXG4gICAgICAndGltZXN0YW1wLXRvJzogdGltZXN0YW1wVG8sXG4gICAgICBkdXJhdGlvbixcbiAgICAgIGdlbmVyYXRvcnMsXG4gICAgICBjb21wb25lbnRzLFxuICAgIH0gPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNvbnZlcnRlZFRpbWVzdGFtcEZyb20gPSBEYXRlVGltZS5mcm9tSVNPKHRpbWVzdGFtcEZyb20sIHtcbiAgICAgIHpvbmU6ICdVVEMnLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnZlcnRlZFRpbWVzdGFtcFRvID0gRGF0ZVRpbWUuZnJvbUlTTyh0aW1lc3RhbXBUbywge3pvbmU6ICdVVEMnfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZHVyYXRpb24sXG4gICAgICB0aW1lQnVja2V0czogY3JlYXRlVGltZUJ1Y2tldHMoXG4gICAgICAgIGNvbnZlcnRlZFRpbWVzdGFtcEZyb20sXG4gICAgICAgIGNvbnZlcnRlZFRpbWVzdGFtcFRvLFxuICAgICAgICBkdXJhdGlvblxuICAgICAgKSxcbiAgICAgIGdlbmVyYXRvcnM6IGNyZWF0ZUdlbmVyYXRvcnMoZ2VuZXJhdG9ycyksXG4gICAgICBjb21wb25lbnRzLFxuICAgIH07XG4gIH07XG5cbiAgLypcbiAgICogY3JlYXRlIHRpbWUgYnVja2V0cyBiYXNlZCBvbiBzdGFydCB0aW1lLCBlbmQgdGltZSBhbmQgZHVyYXRpb24gb2YgZWFjaCBidWNrZXQuXG4gICAqL1xuICBjb25zdCBjcmVhdGVUaW1lQnVja2V0cyA9IChcbiAgICB0aW1lc3RhbXBGcm9tOiBEYXRlVGltZSxcbiAgICB0aW1lc3RhbXBUbzogRGF0ZVRpbWUsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICB0aW1lQnVja2V0czogRGF0ZVRpbWVbXSA9IFtdXG4gICk6IERhdGVUaW1lW10gPT4ge1xuICAgIGlmIChcbiAgICAgIHRpbWVzdGFtcEZyb20gPCB0aW1lc3RhbXBUbyB8fFxuICAgICAgdGltZXN0YW1wRnJvbS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3Qoe3NlY29uZHM6IGR1cmF0aW9ufSkpIDwgdGltZXN0YW1wVG9cbiAgICApIHtcbiAgICAgIHJldHVybiBjcmVhdGVUaW1lQnVja2V0cyhcbiAgICAgICAgdGltZXN0YW1wRnJvbS5wbHVzKER1cmF0aW9uLmZyb21PYmplY3Qoe3NlY29uZHM6IGR1cmF0aW9ufSkpLFxuICAgICAgICB0aW1lc3RhbXBUbyxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIFsuLi50aW1lQnVja2V0cywgdGltZXN0YW1wRnJvbV1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aW1lQnVja2V0cztcbiAgfTtcblxuICAvKlxuICAgKiBjcmVhdGUgZ2VuZXJhdG9ycyBiYXNlZCBvbiBhIGdpdmVuIGNvbmZpZ1xuICAgKi9cbiAgY29uc3QgY3JlYXRlR2VuZXJhdG9ycyA9IChnZW5lcmF0b3JzQ29uZmlnOiBvYmplY3QpOiBHZW5lcmF0b3JbXSA9PiB7XG4gICAgY29uc3QgY3JlYXRlQ29tbW9uR2VuZXJhdG9yID0gKGNvbmZpZzogYW55KTogR2VuZXJhdG9yW10gPT4gW1xuICAgICAgQ29tbW9uR2VuZXJhdG9yKGNvbmZpZyksXG4gICAgXTtcblxuICAgIGNvbnN0IGNyZWF0ZVJhbmRJbnRHZW5lcmF0b3JzID0gKGNvbmZpZzogYW55KTogR2VuZXJhdG9yW10gPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbmZpZykubWFwKChbZmllbGRUb1BvcHVsYXRlLCB2YWx1ZV0pID0+XG4gICAgICAgIFJhbmRJbnRHZW5lcmF0b3IoZmllbGRUb1BvcHVsYXRlLCB2YWx1ZSBhcyBLZXlWYWx1ZVBhaXIpXG4gICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZ2VuZXJhdG9yc0NvbmZpZykuZmxhdE1hcCgoW2tleSwgdmFsdWVdKSA9PlxuICAgICAga2V5ID09PSAncmFuZGludCdcbiAgICAgICAgPyBjcmVhdGVSYW5kSW50R2VuZXJhdG9ycyh2YWx1ZSkuZmxhdCgpXG4gICAgICAgIDogY3JlYXRlQ29tbW9uR2VuZXJhdG9yKHZhbHVlKVxuICAgICk7XG4gIH07XG5cbiAgLypcbiAgICogQ3JlYXRlcyB0aW1lIGJ1Y2tldHMgYmFzZWQgb24gc3RhcnQgdGltZSwgZW5kIHRpbWUgYW5kIGR1cmF0aW9uIG9mIGVhY2ggYnVja2V0LlxuICAgKi9cbiAgY29uc3QgY3JlYXRlT2JzZXJ2YXRpb24gPSAoXG4gICAgb2JzZXJ2YXRpb25QYXJhbXM6IE9ic2VydmF0aW9uUGFyYW1zLFxuICAgIGdlbmVyYXRvclRvSGlzdG9yeTogTWFwPEdlbmVyYXRvciwgbnVtYmVyW10+XG4gICk6IFBsdWdpblBhcmFtcyA9PiB7XG4gICAgY29uc3Qge2R1cmF0aW9uLCBjb21wb25lbnQsIHRpbWVCdWNrZXQsIGdlbmVyYXRvcnN9ID0gb2JzZXJ2YXRpb25QYXJhbXM7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGltZUJ1Y2tldC50b0lTTygpO1xuXG4gICAgY29uc3QgZ2VuZXJhdGVPYnNlcnZhdGlvbiA9IChnZW5lcmF0b3I6IEdlbmVyYXRvcikgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IGdlbmVyYXRvclRvSGlzdG9yeS5nZXQoZ2VuZXJhdG9yKSB8fCBbXTtcbiAgICAgIGNvbnN0IGdlbmVyYXRlZDogUmVjb3JkPHN0cmluZywgYW55PiA9IGdlbmVyYXRvci5uZXh0KGhpc3RvcnkpO1xuXG4gICAgICBnZW5lcmF0b3JUb0hpc3Rvcnkuc2V0KGdlbmVyYXRvciwgWy4uLmhpc3RvcnksIGdlbmVyYXRlZC52YWx1ZV0pO1xuXG4gICAgICByZXR1cm4gZ2VuZXJhdGVkO1xuICAgIH07XG5cbiAgICBjb25zdCBnZW5lcmF0ZU9ic2VydmF0aW9ucyA9IChnZW46IEdlbmVyYXRvcikgPT4gZ2VuZXJhdGVPYnNlcnZhdGlvbihnZW4pO1xuICAgIGNvbnN0IGdlbmVyYXRlZFZhbHVlcyA9IGdlbmVyYXRvcnMubWFwKGdlbmVyYXRlT2JzZXJ2YXRpb25zKTtcbiAgICBjb25zdCBpbml0aWFsT2JzZXJ2YXRpb246IFBsdWdpblBhcmFtcyA9IHtcbiAgICAgIHRpbWVzdGFtcCxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgLi4uY29tcG9uZW50LFxuICAgIH07XG4gICAgY29uc3QgZ2VuZXJhdGVkT2JzZXJ2YXRpb24gPSBnZW5lcmF0ZWRWYWx1ZXMucmVkdWNlKFxuICAgICAgKG9ic2VydmF0aW9uLCBnZW5lcmF0ZWQpID0+IE9iamVjdC5hc3NpZ24ob2JzZXJ2YXRpb24sIGdlbmVyYXRlZCksXG4gICAgICBpbml0aWFsT2JzZXJ2YXRpb25cbiAgICApO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRlZE9ic2VydmF0aW9uIGFzIFBsdWdpblBhcmFtcztcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbW9jay1vYnNlcnZhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXlDO0FBQ3pDLDZCQUFzQjtBQVF0Qix3REFBZ0Q7QUFFaEQsaUVBQTJEO0FBQzNELHFFQUE4RDtBQUl2RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBMEIsRUFBaUIsRUFBRTtJQUM1RSxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUMsR0FDbkQsd0JBQXdCLEVBQUUsQ0FBQztRQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRTFELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUNuQyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxFQUM3QyxrQkFBa0IsQ0FDbkIsQ0FBQztnQkFFRixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsZ0JBQWdCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM1QixjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtZQUMxQixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNwQixVQUFVLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFDLENBQUMsQ0FBQzthQUNoRSxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQXlCLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxFQUFFO1FBQ3BDLE1BQU0sRUFDSixnQkFBZ0IsRUFBRSxhQUFhLEVBQy9CLGNBQWMsRUFBRSxXQUFXLEVBQzNCLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxHQUNYLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUMzQixNQUFNLHNCQUFzQixHQUFHLGdCQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUM3RCxJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQztRQUNILE1BQU0sb0JBQW9CLEdBQUcsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNMLFFBQVE7WUFDUixXQUFXLEVBQUUsaUJBQWlCLENBQzVCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsUUFBUSxDQUNUO1lBQ0QsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUN4QyxVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixhQUF1QixFQUN2QixXQUFxQixFQUNyQixRQUFnQixFQUNoQixjQUEwQixFQUFFLEVBQ2hCLEVBQUU7UUFDZCxJQUNFLGFBQWEsR0FBRyxXQUFXO1lBQzNCLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQVEsQ0FBQyxVQUFVLENBQUMsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsRUFDMUU7WUFDQSxPQUFPLGlCQUFpQixDQUN0QixhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFRLENBQUMsVUFBVSxDQUFDLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsRUFDNUQsV0FBVyxFQUNYLFFBQVEsRUFDUixDQUFDLEdBQUcsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUNoQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxnQkFBd0IsRUFBZSxFQUFFO1FBQ2pFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFXLEVBQWUsRUFBRSxDQUFDO1lBQzFELElBQUEsa0NBQWUsRUFBQyxNQUFNLENBQUM7U0FDeEIsQ0FBQztRQUVGLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQWUsRUFBRSxDQUMzRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDdEQsSUFBQSxxQ0FBZ0IsRUFBQyxlQUFlLEVBQUUsS0FBNEIsQ0FBQyxDQUNoRSxDQUFDO1FBRUosT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUMvRCxHQUFHLEtBQUssU0FBUztZQUNmLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDdkMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLGlCQUFvQyxFQUNwQyxrQkFBNEMsRUFDOUIsRUFBRTtRQUNoQixNQUFNLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDbkQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxNQUFNLFNBQVMsR0FBd0IsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUvRCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFakUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQWMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELE1BQU0sa0JBQWtCLEdBQWlCO1lBQ3ZDLFNBQVM7WUFDVCxRQUFRO1lBQ1IsR0FBRyxTQUFTO1NBQ2IsQ0FBQztRQUNGLE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDakQsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFDakUsa0JBQWtCLENBQ25CLENBQUM7UUFFRixPQUFPLG9CQUFvQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFqS1csUUFBQSxnQkFBZ0Isb0JBaUszQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVRpbWUsIER1cmF0aW9ufSBmcm9tICdsdXhvbic7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIENvbmZpZ1BhcmFtcyxcbiAgT2JzZXJ2YXRpb25QYXJhbXMsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge0NvbW1vbkdlbmVyYXRvcn0gZnJvbSAnLi9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3InO1xuaW1wb3J0IHtSYW5kSW50R2VuZXJhdG9yfSBmcm9tICcuL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yJztcblxuaW1wb3J0IHtHZW5lcmF0b3J9IGZyb20gJy4vaW50ZXJmYWNlcy9pbmRleCc7XG5cbmV4cG9ydCBjb25zdCBNb2NrT2JzZXJ2YXRpb25zID0gKGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgc2V0cyBvZiBtb2NrZWQgb2JzZXJ2YXRpb25zIGJhc2VkIG9uIGNvbmZpZy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHtkdXJhdGlvbiwgdGltZUJ1Y2tldHMsIGNvbXBvbmVudHMsIGdlbmVyYXRvcnN9ID1cbiAgICAgIGdlbmVyYXRlUGFyYW1zRnJvbUNvbmZpZygpO1xuICAgIGNvbnN0IGdlbmVyYXRvclRvSGlzdG9yeSA9IG5ldyBNYXA8R2VuZXJhdG9yLCBudW1iZXJbXT4oKTtcblxuICAgIGdlbmVyYXRvcnMuZm9yRWFjaChnZW5lcmF0b3IgPT4ge1xuICAgICAgZ2VuZXJhdG9yVG9IaXN0b3J5LnNldChnZW5lcmF0b3IsIFtdKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRzID0gaW5wdXRzICYmIGlucHV0c1swXTtcblxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb21wb25lbnRzKS5yZWR1Y2UoKGFjYzogUGx1Z2luUGFyYW1zW10sIGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGl0ZW1bMV07XG4gICAgICB0aW1lQnVja2V0cy5mb3JFYWNoKHRpbWVCdWNrZXQgPT4ge1xuICAgICAgICBjb25zdCBvYnNlcnZhdGlvbiA9IGNyZWF0ZU9ic2VydmF0aW9uKFxuICAgICAgICAgIHtkdXJhdGlvbiwgY29tcG9uZW50LCB0aW1lQnVja2V0LCBnZW5lcmF0b3JzfSxcbiAgICAgICAgICBnZW5lcmF0b3JUb0hpc3RvcnlcbiAgICAgICAgKTtcblxuICAgICAgICBhY2MucHVzaChPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cywgb2JzZXJ2YXRpb24pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGdsb2JhbCBjb25maWcgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR2xvYmFsQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICd0aW1lc3RhbXAtZnJvbSc6IHouc3RyaW5nKCksXG4gICAgICAndGltZXN0YW1wLXRvJzogei5zdHJpbmcoKSxcbiAgICAgIGR1cmF0aW9uOiB6Lm51bWJlcigpLFxuICAgICAgY29tcG9uZW50czogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpKSksXG4gICAgICBnZW5lcmF0b3JzOiB6Lm9iamVjdCh7XG4gICAgICAgIGNvbW1vbjogei5yZWNvcmQoei5zdHJpbmcoKS5vcih6Lm51bWJlcigpKSksXG4gICAgICAgIHJhbmRpbnQ6IHoucmVjb3JkKHoub2JqZWN0KHttaW46IHoubnVtYmVyKCksIG1heDogei5udW1iZXIoKX0pKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgZ2xvYmFsQ29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgTW9ja09ic2VydmF0aW9ucyBQbHVnaW4gZm9yIElGXG4gICAqL1xuICBjb25zdCBnZW5lcmF0ZVBhcmFtc0Zyb21Db25maWcgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgJ3RpbWVzdGFtcC1mcm9tJzogdGltZXN0YW1wRnJvbSxcbiAgICAgICd0aW1lc3RhbXAtdG8nOiB0aW1lc3RhbXBUbyxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZ2VuZXJhdG9ycyxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgfSA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY29udmVydGVkVGltZXN0YW1wRnJvbSA9IERhdGVUaW1lLmZyb21JU08odGltZXN0YW1wRnJvbSwge1xuICAgICAgem9uZTogJ1VUQycsXG4gICAgfSk7XG4gICAgY29uc3QgY29udmVydGVkVGltZXN0YW1wVG8gPSBEYXRlVGltZS5mcm9tSVNPKHRpbWVzdGFtcFRvLCB7em9uZTogJ1VUQyd9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHRpbWVCdWNrZXRzOiBjcmVhdGVUaW1lQnVja2V0cyhcbiAgICAgICAgY29udmVydGVkVGltZXN0YW1wRnJvbSxcbiAgICAgICAgY29udmVydGVkVGltZXN0YW1wVG8sXG4gICAgICAgIGR1cmF0aW9uXG4gICAgICApLFxuICAgICAgZ2VuZXJhdG9yczogY3JlYXRlR2VuZXJhdG9ycyhnZW5lcmF0b3JzKSxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgfTtcbiAgfTtcblxuICAvKlxuICAgKiBjcmVhdGUgdGltZSBidWNrZXRzIGJhc2VkIG9uIHN0YXJ0IHRpbWUsIGVuZCB0aW1lIGFuZCBkdXJhdGlvbiBvZiBlYWNoIGJ1Y2tldC5cbiAgICovXG4gIGNvbnN0IGNyZWF0ZVRpbWVCdWNrZXRzID0gKFxuICAgIHRpbWVzdGFtcEZyb206IERhdGVUaW1lLFxuICAgIHRpbWVzdGFtcFRvOiBEYXRlVGltZSxcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIHRpbWVCdWNrZXRzOiBEYXRlVGltZVtdID0gW11cbiAgKTogRGF0ZVRpbWVbXSA9PiB7XG4gICAgaWYgKFxuICAgICAgdGltZXN0YW1wRnJvbSA8IHRpbWVzdGFtcFRvIHx8XG4gICAgICB0aW1lc3RhbXBGcm9tLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7c2Vjb25kczogZHVyYXRpb259KSkgPCB0aW1lc3RhbXBUb1xuICAgICkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVRpbWVCdWNrZXRzKFxuICAgICAgICB0aW1lc3RhbXBGcm9tLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7c2Vjb25kczogZHVyYXRpb259KSksXG4gICAgICAgIHRpbWVzdGFtcFRvLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgWy4uLnRpbWVCdWNrZXRzLCB0aW1lc3RhbXBGcm9tXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVCdWNrZXRzO1xuICB9O1xuXG4gIC8qXG4gICAqIGNyZWF0ZSBnZW5lcmF0b3JzIGJhc2VkIG9uIGEgZ2l2ZW4gY29uZmlnXG4gICAqL1xuICBjb25zdCBjcmVhdGVHZW5lcmF0b3JzID0gKGdlbmVyYXRvcnNDb25maWc6IG9iamVjdCk6IEdlbmVyYXRvcltdID0+IHtcbiAgICBjb25zdCBjcmVhdGVDb21tb25HZW5lcmF0b3IgPSAoY29uZmlnOiBhbnkpOiBHZW5lcmF0b3JbXSA9PiBbXG4gICAgICBDb21tb25HZW5lcmF0b3IoY29uZmlnKSxcbiAgICBdO1xuXG4gICAgY29uc3QgY3JlYXRlUmFuZEludEdlbmVyYXRvcnMgPSAoY29uZmlnOiBhbnkpOiBHZW5lcmF0b3JbXSA9PlxuICAgICAgT2JqZWN0LmVudHJpZXMoY29uZmlnKS5tYXAoKFtmaWVsZFRvUG9wdWxhdGUsIHZhbHVlXSkgPT5cbiAgICAgICAgUmFuZEludEdlbmVyYXRvcihmaWVsZFRvUG9wdWxhdGUsIHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pXG4gICAgICApO1xuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGdlbmVyYXRvcnNDb25maWcpLmZsYXRNYXAoKFtrZXksIHZhbHVlXSkgPT5cbiAgICAgIGtleSA9PT0gJ3JhbmRpbnQnXG4gICAgICAgID8gY3JlYXRlUmFuZEludEdlbmVyYXRvcnModmFsdWUpLmZsYXQoKVxuICAgICAgICA6IGNyZWF0ZUNvbW1vbkdlbmVyYXRvcih2YWx1ZSlcbiAgICApO1xuICB9O1xuXG4gIC8qXG4gICAqIENyZWF0ZXMgdGltZSBidWNrZXRzIGJhc2VkIG9uIHN0YXJ0IHRpbWUsIGVuZCB0aW1lIGFuZCBkdXJhdGlvbiBvZiBlYWNoIGJ1Y2tldC5cbiAgICovXG4gIGNvbnN0IGNyZWF0ZU9ic2VydmF0aW9uID0gKFxuICAgIG9ic2VydmF0aW9uUGFyYW1zOiBPYnNlcnZhdGlvblBhcmFtcyxcbiAgICBnZW5lcmF0b3JUb0hpc3Rvcnk6IE1hcDxHZW5lcmF0b3IsIG51bWJlcltdPlxuICApOiBQbHVnaW5QYXJhbXMgPT4ge1xuICAgIGNvbnN0IHtkdXJhdGlvbiwgY29tcG9uZW50LCB0aW1lQnVja2V0LCBnZW5lcmF0b3JzfSA9IG9ic2VydmF0aW9uUGFyYW1zO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHRpbWVCdWNrZXQudG9JU08oKTtcblxuICAgIGNvbnN0IGdlbmVyYXRlT2JzZXJ2YXRpb24gPSAoZ2VuZXJhdG9yOiBHZW5lcmF0b3IpID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBnZW5lcmF0b3JUb0hpc3RvcnkuZ2V0KGdlbmVyYXRvcikgfHwgW107XG4gICAgICBjb25zdCBnZW5lcmF0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnZW5lcmF0b3IubmV4dChoaXN0b3J5KTtcblxuICAgICAgZ2VuZXJhdG9yVG9IaXN0b3J5LnNldChnZW5lcmF0b3IsIFsuLi5oaXN0b3J5LCBnZW5lcmF0ZWQudmFsdWVdKTtcblxuICAgICAgcmV0dXJuIGdlbmVyYXRlZDtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2VuZXJhdGVPYnNlcnZhdGlvbnMgPSAoZ2VuOiBHZW5lcmF0b3IpID0+IGdlbmVyYXRlT2JzZXJ2YXRpb24oZ2VuKTtcbiAgICBjb25zdCBnZW5lcmF0ZWRWYWx1ZXMgPSBnZW5lcmF0b3JzLm1hcChnZW5lcmF0ZU9ic2VydmF0aW9ucyk7XG4gICAgY29uc3QgaW5pdGlhbE9ic2VydmF0aW9uOiBQbHVnaW5QYXJhbXMgPSB7XG4gICAgICB0aW1lc3RhbXAsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIC4uLmNvbXBvbmVudCxcbiAgICB9O1xuICAgIGNvbnN0IGdlbmVyYXRlZE9ic2VydmF0aW9uID0gZ2VuZXJhdGVkVmFsdWVzLnJlZHVjZShcbiAgICAgIChvYnNlcnZhdGlvbiwgZ2VuZXJhdGVkKSA9PiBPYmplY3QuYXNzaWduKG9ic2VydmF0aW9uLCBnZW5lcmF0ZWQpLFxuICAgICAgaW5pdGlhbE9ic2VydmF0aW9uXG4gICAgKTtcblxuICAgIHJldHVybiBnZW5lcmF0ZWRPYnNlcnZhdGlvbiBhcyBQbHVnaW5QYXJhbXM7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
@@ -1,3 +1,2 @@
1
- import { ExecutePlugin } from '../../types/interface';
2
- import { MultiplyConfig } from './types';
1
+ import { ExecutePlugin, MultiplyConfig } from '@grnsft/if-core/types';
3
2
  export declare const Multiply: (globalConfig: MultiplyConfig) => ExecutePlugin;
@@ -2,12 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Multiply = void 0;
4
4
  const zod_1 = require("zod");
5
- const helpers_1 = require("../../util/helpers");
6
- const errors_1 = require("../../util/errors");
7
5
  const validations_1 = require("../../util/validations");
8
- const { InputValidationError } = errors_1.ERRORS;
9
6
  const Multiply = (globalConfig) => {
10
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.Multiply.name);
11
7
  const metadata = {
12
8
  kind: 'execute',
13
9
  };
@@ -25,14 +21,12 @@ const Multiply = (globalConfig) => {
25
21
  * Checks for required fields in input.
26
22
  */
27
23
  const validateSingleInput = (input, inputParameters) => {
28
- inputParameters.forEach(metricToMultiply => {
29
- if (input[metricToMultiply] === undefined ||
30
- isNaN(input[metricToMultiply])) {
31
- throw new InputValidationError(errorBuilder({
32
- message: `${metricToMultiply} is missing from the input array`,
33
- }));
34
- }
35
- });
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);
36
30
  return input;
37
31
  };
38
32
  /**
@@ -43,15 +37,15 @@ const Multiply = (globalConfig) => {
43
37
  const inputParameters = safeGlobalConfig['input-parameters'];
44
38
  const outputParameter = safeGlobalConfig['output-parameter'];
45
39
  return inputs.map(input => {
46
- const safeInput = validateSingleInput(input, inputParameters);
40
+ validateSingleInput(input, inputParameters);
47
41
  return {
48
42
  ...input,
49
- [outputParameter]: calculateProduct(safeInput, inputParameters),
43
+ [outputParameter]: calculateProduct(input, inputParameters),
50
44
  };
51
45
  });
52
46
  };
53
47
  /**
54
- * Calculates the product of the energy components.
48
+ * Calculates the product of the components.
55
49
  */
56
50
  const calculateProduct = (input, inputParameters) => inputParameters.reduce((accumulator, metricToMultiply) => accumulator * input[metricToMultiply], 1);
57
51
  return {
@@ -60,4 +54,4 @@ const Multiply = (globalConfig) => {
60
54
  };
61
55
  };
62
56
  exports.Multiply = Multiply;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbXVsdGlwbHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBRXRCLGdEQUFxRDtBQUNyRCw4Q0FBeUM7QUFDekMsd0RBQWdEO0FBS2hELE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUUvQixNQUFNLFFBQVEsR0FBRyxDQUFDLFlBQTRCLEVBQWlCLEVBQUU7SUFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxnQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2xDLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUNiLGtCQUFrQixFQUNsQixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFtQixFQUNuQixlQUF5QixFQUN6QixFQUFFO1FBQ0YsZUFBZSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pDLElBQ0UsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssU0FBUztnQkFDckMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQzlCO2dCQUNBLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsWUFBWSxDQUFDO29CQUNYLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixrQ0FBa0M7aUJBQy9ELENBQUMsQ0FDSCxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQWtCLEVBQUU7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0QsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTlELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQzthQUNoRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLGVBQXlCLEVBQUUsRUFBRSxDQUMxRSxlQUFlLENBQUMsTUFBTSxDQUNwQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4RSxDQUFDLENBQ0YsQ0FBQztJQUVKLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUEzRVcsUUFBQSxRQUFRLFlBMkVuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtidWlsZEVycm9yTWVzc2FnZX0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi8uLi91dGlsL2Vycm9ycyc7XG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge011bHRpcGx5Q29uZmlnfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3Qge0lucHV0VmFsaWRhdGlvbkVycm9yfSA9IEVSUk9SUztcblxuZXhwb3J0IGNvbnN0IE11bHRpcGx5ID0gKGdsb2JhbENvbmZpZzogTXVsdGlwbHlDb25maWcpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgZXJyb3JCdWlsZGVyID0gYnVpbGRFcnJvck1lc3NhZ2UoTXVsdGlwbHkubmFtZSk7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgJ2lucHV0LXBhcmFtZXRlcnMnOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICAgICAgJ291dHB1dC1wYXJhbWV0ZXInOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBnbG9iYWxDb25maWdTY2hlbWE+PihcbiAgICAgIGdsb2JhbENvbmZpZ1NjaGVtYSxcbiAgICAgIGdsb2JhbENvbmZpZ1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChcbiAgICBpbnB1dDogUGx1Z2luUGFyYW1zLFxuICAgIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW11cbiAgKSA9PiB7XG4gICAgaW5wdXRQYXJhbWV0ZXJzLmZvckVhY2gobWV0cmljVG9NdWx0aXBseSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGlucHV0W21ldHJpY1RvTXVsdGlwbHldID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgaXNOYU4oaW5wdXRbbWV0cmljVG9NdWx0aXBseV0pXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGVycm9yQnVpbGRlcih7XG4gICAgICAgICAgICBtZXNzYWdlOiBgJHttZXRyaWNUb011bHRpcGx5fSBpcyBtaXNzaW5nIGZyb20gdGhlIGlucHV0IGFycmF5YCxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHByb2R1Y3Qgb2YgZWFjaCBpbnB1dCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pOiBQbHVnaW5QYXJhbXNbXSA9PiB7XG4gICAgY29uc3Qgc2FmZUdsb2JhbENvbmZpZyA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgaW5wdXRQYXJhbWV0ZXJzID0gc2FmZUdsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVycyddO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtZXRlciA9IHNhZmVHbG9iYWxDb25maWdbJ291dHB1dC1wYXJhbWV0ZXInXTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIGNvbnN0IHNhZmVJbnB1dCA9IHZhbGlkYXRlU2luZ2xlSW5wdXQoaW5wdXQsIGlucHV0UGFyYW1ldGVycyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbb3V0cHV0UGFyYW1ldGVyXTogY2FsY3VsYXRlUHJvZHVjdChzYWZlSW5wdXQsIGlucHV0UGFyYW1ldGVycyksXG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBwcm9kdWN0IG9mIHRoZSBlbmVyZ3kgY29tcG9uZW50cy5cbiAgICovXG4gIGNvbnN0IGNhbGN1bGF0ZVByb2R1Y3QgPSAoaW5wdXQ6IFBsdWdpblBhcmFtcywgaW5wdXRQYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT5cbiAgICBpbnB1dFBhcmFtZXRlcnMucmVkdWNlKFxuICAgICAgKGFjY3VtdWxhdG9yLCBtZXRyaWNUb011bHRpcGx5KSA9PiBhY2N1bXVsYXRvciAqIGlucHV0W21ldHJpY1RvTXVsdGlwbHldLFxuICAgICAgMVxuICAgICk7XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbXVsdGlwbHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBT3RCLHdEQUFnRDtBQUV6QyxNQUFNLFFBQVEsR0FBRyxDQUFDLFlBQTRCLEVBQWlCLEVBQUU7SUFDdEUsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEtBQW1CLEVBQ25CLGVBQXlCLEVBQ3pCLEVBQUU7UUFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNEIsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUQsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQWtCLEVBQUU7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0QsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTVDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQzthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLGVBQXlCLEVBQUUsRUFBRSxDQUMxRSxlQUFlLENBQUMsTUFBTSxDQUNwQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4RSxDQUFDLENBQ0YsQ0FBQztJQUVKLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUExRVcsUUFBQSxRQUFRLFlBMEVuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7XG4gIEV4ZWN1dGVQbHVnaW4sXG4gIFBsdWdpblBhcmFtcyxcbiAgTXVsdGlwbHlDb25maWcsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgTXVsdGlwbHkgPSAoZ2xvYmFsQ29uZmlnOiBNdWx0aXBseUNvbmZpZyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBnbG9iYWwgY29uZmlnIHZhbHVlIGFyZSB2YWxpZC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR2xvYmFsQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXJzJzogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgZ2xvYmFsQ29uZmlnU2NoZW1hPj4oXG4gICAgICBnbG9iYWxDb25maWdTY2hlbWEsXG4gICAgICBnbG9iYWxDb25maWdcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlU2luZ2xlSW5wdXQgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBpbnB1dFBhcmFtZXRlcnM6IHN0cmluZ1tdXG4gICkgPT4ge1xuICAgIGNvbnN0IGlucHV0RGF0YSA9IGlucHV0UGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICBhY2NbcGFyYW1dID0gaW5wdXRbcGFyYW1dO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgICk7XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKSwgei5udW1iZXIoKSk7XG5cbiAgICB2YWxpZGF0ZSh2YWxpZGF0aW9uU2NoZW1hLCBpbnB1dERhdGEpO1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHByb2R1Y3Qgb2YgZWFjaCBpbnB1dCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pOiBQbHVnaW5QYXJhbXNbXSA9PiB7XG4gICAgY29uc3Qgc2FmZUdsb2JhbENvbmZpZyA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgaW5wdXRQYXJhbWV0ZXJzID0gc2FmZUdsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVycyddO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtZXRlciA9IHNhZmVHbG9iYWxDb25maWdbJ291dHB1dC1wYXJhbWV0ZXInXTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIHZhbGlkYXRlU2luZ2xlSW5wdXQoaW5wdXQsIGlucHV0UGFyYW1ldGVycyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbb3V0cHV0UGFyYW1ldGVyXTogY2FsY3VsYXRlUHJvZHVjdChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHByb2R1Y3Qgb2YgdGhlIGNvbXBvbmVudHMuXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVQcm9kdWN0ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW10pID0+XG4gICAgaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9NdWx0aXBseSkgPT4gYWNjdW11bGF0b3IgKiBpbnB1dFttZXRyaWNUb011bHRpcGx5XSxcbiAgICAgIDFcbiAgICApO1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
@@ -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 Regex: (globalConfig: ConfigParams) => ExecutePlugin;
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Regex = void 0;
4
4
  const zod_1 = require("zod");
5
- const helpers_1 = require("../../util/helpers");
6
- const errors_1 = require("../../util/errors");
5
+ const utils_1 = require("@grnsft/if-core/utils");
7
6
  const validations_1 = require("../../util/validations");
8
- const { InputValidationError, ConfigValidationError } = errors_1.ERRORS;
7
+ const config_1 = require("../../config");
8
+ const { MissingInputDataError, GlobalConfigError, RegexMismatchError } = utils_1.ERRORS;
9
+ const { MISSING_GLOBAL_CONFIG, MISSING_INPUT_DATA, REGEX_MISMATCH } = config_1.STRINGS;
9
10
  const Regex = (globalConfig) => {
10
- const errorBuilder = (0, helpers_1.buildErrorMessage)(exports.Regex.name);
11
11
  const metadata = {
12
12
  kind: 'execute',
13
13
  };
@@ -16,7 +16,7 @@ const Regex = (globalConfig) => {
16
16
  */
17
17
  const validateGlobalConfig = () => {
18
18
  if (!globalConfig) {
19
- throw new ConfigValidationError(errorBuilder({ message: 'Configuration data is missing' }));
19
+ throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
20
20
  }
21
21
  const schema = zod_1.z.object({
22
22
  parameter: zod_1.z.string().min(1),
@@ -30,9 +30,7 @@ const Regex = (globalConfig) => {
30
30
  */
31
31
  const validateSingleInput = (input, parameter) => {
32
32
  if (!input[parameter]) {
33
- throw new InputValidationError(errorBuilder({
34
- message: `\`${parameter}\` is missing from the input`,
35
- }));
33
+ throw new MissingInputDataError(MISSING_INPUT_DATA(parameter));
36
34
  }
37
35
  return input;
38
36
  };
@@ -63,9 +61,7 @@ const Regex = (globalConfig) => {
63
61
  const regex = eval(match);
64
62
  const matchedItem = input[parameter].match(regex);
65
63
  if (!matchedItem || !matchedItem[0]) {
66
- throw new InputValidationError(errorBuilder({
67
- message: `\`${input[parameter]}\` does not match the ${match} regex expression`,
68
- }));
64
+ throw new RegexMismatchError(REGEX_MISMATCH(input[parameter], match));
69
65
  }
70
66
  return matchedItem[0];
71
67
  };
@@ -75,4 +71,4 @@ const Regex = (globalConfig) => {
75
71
  };
76
72
  };
77
73
  exports.Regex = Regex;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvcmVnZXgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBRXRCLGdEQUFxRDtBQUNyRCw4Q0FBeUM7QUFDekMsd0RBQWdEO0FBS2hELE1BQU0sRUFBQyxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUV0RCxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDakUsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBaUIsRUFBQyxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxxQkFBcUIsQ0FDN0IsWUFBWSxDQUFDLEVBQUMsT0FBTyxFQUFFLCtCQUErQixFQUFDLENBQUMsQ0FDekQsQ0FBQztTQUNIO1FBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBbUIsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixNQUFNLElBQUksb0JBQW9CLENBQzVCLFlBQVksQ0FBQztnQkFDWCxPQUFPLEVBQUUsS0FBSyxTQUFTLDhCQUE4QjthQUN0RCxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxNQUFNLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFFL0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzdCLEVBQUUsRUFDRixLQUFLLEVBQ0wsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUN0QyxDQUFDO1lBRUYsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsQ0FBQyxNQUFNLENBQUMsRUFBRSxlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7YUFDdkQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLGVBQWUsR0FBRyxDQUN0QixLQUFtQixFQUNuQixTQUFpQixFQUNqQixLQUFhLEVBQ2IsRUFBRTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELEtBQUssSUFBSSxHQUFHLENBQUM7U0FDZDtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixZQUFZLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsS0FBSyxtQkFBbUI7YUFDaEYsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUE5RlcsUUFBQSxLQUFLLFNBOEZoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtidWlsZEVycm9yTWVzc2FnZX0gZnJvbSAnLi4vLi4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi8uLi91dGlsL2Vycm9ycyc7XG5pbXBvcnQge3ZhbGlkYXRlfSBmcm9tICcuLi8uLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtFeGVjdXRlUGx1Z2luLCBQbHVnaW5QYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5pbXBvcnQge0NvbmZpZ1BhcmFtc30gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uJztcblxuY29uc3Qge0lucHV0VmFsaWRhdGlvbkVycm9yLCBDb25maWdWYWxpZGF0aW9uRXJyb3J9ID0gRVJST1JTO1xuXG5leHBvcnQgY29uc3QgUmVnZXggPSAoZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgZXJyb3JCdWlsZGVyID0gYnVpbGRFcnJvck1lc3NhZ2UoUmVnZXgubmFtZSk7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGdsb2JhbCBjb25maWcgdmFsdWUgYXJlIHZhbGlkLlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVHbG9iYWxDb25maWcgPSAoKSA9PiB7XG4gICAgaWYgKCFnbG9iYWxDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGVycm9yQnVpbGRlcih7bWVzc2FnZTogJ0NvbmZpZ3VyYXRpb24gZGF0YSBpcyBtaXNzaW5nJ30pXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBzY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICBwYXJhbWV0ZXI6IHouc3RyaW5nKCkubWluKDEpLFxuICAgICAgbWF0Y2g6IHouc3RyaW5nKCkubWluKDEpLFxuICAgICAgb3V0cHV0OiB6LnN0cmluZygpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgZ2xvYmFsQ29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2tzIGZvciByZXF1aXJlZCBmaWVsZHMgaW4gaW5wdXQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZVNpbmdsZUlucHV0ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIHBhcmFtZXRlcjogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFpbnB1dFtwYXJhbWV0ZXJdKSB7XG4gICAgICB0aHJvdyBuZXcgSW5wdXRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGVycm9yQnVpbGRlcih7XG4gICAgICAgICAgbWVzc2FnZTogYFxcYCR7cGFyYW1ldGVyfVxcYCBpcyBtaXNzaW5nIGZyb20gdGhlIGlucHV0YCxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgcmVnZXggb2YgdGhlIGdpdmVuIHBhcmFtZXRlci5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHNhZmVHbG9iYWxDb25maWcgPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IHtwYXJhbWV0ZXI6IHBhcmFtZXRlciwgbWF0Y2gsIG91dHB1dH0gPSBzYWZlR2xvYmFsQ29uZmlnO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIGlucHV0LFxuICAgICAgICB2YWxpZGF0ZVNpbmdsZUlucHV0KGlucHV0LCBwYXJhbWV0ZXIpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dF06IGV4dHJhY3RNYXRjaGluZyhzYWZlSW5wdXQsIHBhcmFtZXRlciwgbWF0Y2gpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBzdWJzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gaW5wdXQgcGFyYW1ldGVyIHRoYXQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uXG4gICAqL1xuICBjb25zdCBleHRyYWN0TWF0Y2hpbmcgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBwYXJhbWV0ZXI6IHN0cmluZyxcbiAgICBtYXRjaDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmICghbWF0Y2guc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBtYXRjaCA9ICcvJyArIG1hdGNoO1xuICAgIH1cblxuICAgIGlmICghbWF0Y2guZW5kc1dpdGgoJy9nJykgJiYgIW1hdGNoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIG1hdGNoICs9ICcvJztcbiAgICB9XG5cbiAgICBjb25zdCByZWdleCA9IGV2YWwobWF0Y2gpO1xuICAgIGNvbnN0IG1hdGNoZWRJdGVtID0gaW5wdXRbcGFyYW1ldGVyXS5tYXRjaChyZWdleCk7XG5cbiAgICBpZiAoIW1hdGNoZWRJdGVtIHx8ICFtYXRjaGVkSXRlbVswXSkge1xuICAgICAgdGhyb3cgbmV3IElucHV0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBlcnJvckJ1aWxkZXIoe1xuICAgICAgICAgIG1lc3NhZ2U6IGBcXGAke2lucHV0W3BhcmFtZXRlcl19XFxgIGRvZXMgbm90IG1hdGNoIHRoZSAke21hdGNofSByZWdleCBleHByZXNzaW9uYCxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoZWRJdGVtWzBdO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvcmVnZXgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3Qyx3REFBZ0Q7QUFFaEQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUM5RSxNQUFNLEVBQUMscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVyRSxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDakUsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBbUIsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxHQUFHLGdCQUFnQixDQUFDO1FBRS9ELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM3QixFQUFFLEVBQ0YsS0FBSyxFQUNMLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FDdEMsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO2FBQ3ZELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUIsRUFDbkIsU0FBaUIsRUFDakIsS0FBYSxFQUNiLEVBQUU7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxLQUFLLElBQUksR0FBRyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBcEZXLFFBQUEsS0FBSyxTQW9GaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zLCBDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtNaXNzaW5nSW5wdXREYXRhRXJyb3IsIEdsb2JhbENvbmZpZ0Vycm9yLCBSZWdleE1pc21hdGNoRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJRywgTUlTU0lOR19JTlBVVF9EQVRBLCBSRUdFWF9NSVNNQVRDSH0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgUmVnZXggPSAoZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZ2xvYmFsIGNvbmZpZyB2YWx1ZSBhcmUgdmFsaWQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUdsb2JhbENvbmZpZyA9ICgpID0+IHtcbiAgICBpZiAoIWdsb2JhbENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfR0xPQkFMX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgcGFyYW1ldGVyOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIG1hdGNoOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIG91dHB1dDogei5zdHJpbmcoKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGdsb2JhbENvbmZpZyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBwYXJhbWV0ZXI6IHN0cmluZykgPT4ge1xuICAgIGlmICghaW5wdXRbcGFyYW1ldGVyXSkge1xuICAgICAgdGhyb3cgbmV3IE1pc3NpbmdJbnB1dERhdGFFcnJvcihNSVNTSU5HX0lOUFVUX0RBVEEocGFyYW1ldGVyKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgcmVnZXggb2YgdGhlIGdpdmVuIHBhcmFtZXRlci5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHNhZmVHbG9iYWxDb25maWcgPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IHtwYXJhbWV0ZXI6IHBhcmFtZXRlciwgbWF0Y2gsIG91dHB1dH0gPSBzYWZlR2xvYmFsQ29uZmlnO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIGlucHV0LFxuICAgICAgICB2YWxpZGF0ZVNpbmdsZUlucHV0KGlucHV0LCBwYXJhbWV0ZXIpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dF06IGV4dHJhY3RNYXRjaGluZyhzYWZlSW5wdXQsIHBhcmFtZXRlciwgbWF0Y2gpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBzdWJzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gaW5wdXQgcGFyYW1ldGVyIHRoYXQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uXG4gICAqL1xuICBjb25zdCBleHRyYWN0TWF0Y2hpbmcgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBwYXJhbWV0ZXI6IHN0cmluZyxcbiAgICBtYXRjaDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmICghbWF0Y2guc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBtYXRjaCA9ICcvJyArIG1hdGNoO1xuICAgIH1cblxuICAgIGlmICghbWF0Y2guZW5kc1dpdGgoJy9nJykgJiYgIW1hdGNoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIG1hdGNoICs9ICcvJztcbiAgICB9XG5cbiAgICBjb25zdCByZWdleCA9IGV2YWwobWF0Y2gpO1xuICAgIGNvbnN0IG1hdGNoZWRJdGVtID0gaW5wdXRbcGFyYW1ldGVyXS5tYXRjaChyZWdleCk7XG5cbiAgICBpZiAoIW1hdGNoZWRJdGVtIHx8ICFtYXRjaGVkSXRlbVswXSkge1xuICAgICAgdGhyb3cgbmV3IFJlZ2V4TWlzbWF0Y2hFcnJvcihSRUdFWF9NSVNNQVRDSChpbnB1dFtwYXJhbWV0ZXJdLCBtYXRjaCkpO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVkSXRlbVswXTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
@@ -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 Sci: (globalConfig: ConfigParams) => ExecutePlugin;