@grnsft/if 0.4.0-beta.1 → 0.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +7 -5
- package/README.md +20 -33
- package/Refactor-migration-guide.md +5 -6
- package/build/builtins/coefficient/index.d.ts +1 -2
- package/build/builtins/coefficient/index.js +18 -4
- package/build/builtins/copy-param/index.d.ts +2 -0
- package/build/builtins/copy-param/index.js +68 -0
- package/build/builtins/csv-lookup/index.d.ts +1 -1
- package/build/builtins/csv-lookup/index.js +44 -37
- package/build/builtins/divide/index.d.ts +1 -1
- package/build/builtins/divide/index.js +22 -11
- package/build/builtins/exponent/index.d.ts +1 -2
- package/build/builtins/exponent/index.js +9 -23
- package/build/builtins/export-csv-raw.d.ts +4 -2
- package/build/builtins/export-csv-raw.js +7 -7
- package/build/builtins/export-csv.js +8 -11
- package/build/builtins/export-log.js +1 -1
- package/build/builtins/export-yaml.js +6 -6
- package/build/builtins/group-by.d.ts +1 -1
- package/build/builtins/group-by.js +5 -5
- package/build/builtins/index.d.ts +1 -0
- package/build/builtins/index.js +4 -2
- package/build/builtins/interpolation/index.d.ts +1 -1
- package/build/builtins/interpolation/index.js +10 -8
- package/build/builtins/mock-observations/helpers/common-generator.d.ts +2 -2
- package/build/builtins/mock-observations/helpers/common-generator.js +10 -13
- package/build/builtins/mock-observations/helpers/rand-int-generator.d.ts +2 -2
- package/build/builtins/mock-observations/helpers/rand-int-generator.js +14 -24
- package/build/builtins/mock-observations/index.d.ts +1 -2
- package/build/builtins/mock-observations/index.js +2 -4
- package/build/builtins/multiply/index.d.ts +1 -2
- package/build/builtins/multiply/index.js +10 -16
- package/build/builtins/regex/index.d.ts +1 -2
- package/build/builtins/regex/index.js +8 -12
- package/build/builtins/sci/index.d.ts +1 -2
- package/build/builtins/sci/index.js +23 -22
- package/build/builtins/sci-embodied/index.d.ts +1 -1
- package/build/builtins/sci-embodied/index.js +16 -17
- package/build/builtins/shell/index.d.ts +1 -2
- package/build/builtins/shell/index.js +4 -4
- package/build/builtins/subtract/index.d.ts +1 -2
- package/build/builtins/subtract/index.js +7 -23
- package/build/builtins/sum/index.d.ts +1 -2
- package/build/builtins/sum/index.js +14 -11
- package/build/builtins/time-sync.d.ts +1 -2
- package/build/builtins/time-sync.js +62 -67
- package/build/check.d.ts +2 -0
- package/build/check.js +85 -0
- package/build/config/config.d.ts +13 -1
- package/build/config/config.js +61 -1
- package/build/config/params.js +1 -6
- package/build/config/strings.d.ts +41 -5
- package/build/config/strings.js +46 -9
- package/build/diff.js +7 -2
- package/build/env.d.ts +2 -0
- package/build/env.js +38 -0
- package/build/lib/aggregate.js +1 -1
- package/build/lib/compute.js +1 -1
- package/build/lib/exhaust.js +4 -4
- package/build/lib/initialize.js +20 -24
- package/build/lib/load.js +5 -7
- package/build/types/compute.d.ts +1 -1
- package/build/types/compute.js +1 -1
- package/build/types/if-env.d.ts +8 -0
- package/build/types/if-env.js +3 -0
- package/build/types/interface.d.ts +1 -19
- package/build/types/interface.js +1 -1
- package/build/types/npm.d.ts +9 -0
- package/build/types/npm.js +3 -0
- package/build/types/process-args.d.ts +9 -0
- package/build/types/process-args.js +1 -1
- package/build/types/util/args.d.ts +1 -0
- package/build/types/util/args.js +1 -1
- package/build/util/aggregation-helper.d.ts +1 -1
- package/build/util/aggregation-helper.js +5 -5
- package/build/util/args.d.ts +23 -1
- package/build/util/args.js +91 -14
- package/build/util/fs.d.ts +20 -0
- package/build/util/fs.js +94 -0
- package/build/util/helpers.d.ts +26 -6
- package/build/util/helpers.js +112 -17
- package/build/util/npm.d.ts +28 -0
- package/build/util/npm.js +152 -0
- package/build/util/plugin-storage.js +4 -4
- package/build/util/validations.js +4 -4
- package/github-processes.md +39 -0
- package/jest.config.js +1 -1
- package/manifests/bugs/aggregation-error-wrong-metric.yml +73 -23
- package/manifests/bugs/azure-importer-ignoring-defaults.yml +6 -3
- package/manifests/bugs/azure-importer-incorrect-calculation.yml +6 -3
- package/manifests/bugs/initialize-error-no-config.yml +4 -5
- package/manifests/bugs/initialize-error-no-path.yml +9 -5
- package/manifests/bugs/input-error-missing-duration.yml +10 -6
- package/manifests/bugs/pipeline-error-naming-mismatch.yml +8 -4
- package/manifests/bugs/pipeline-error-uninitialized-plugin.yml +9 -5
- package/manifests/bugs/pipeline-ordering-error.yml +43 -34
- package/manifests/examples/copy.yaml +20 -0
- package/manifests/examples/generics.yml +48 -13
- package/manifests/examples/instance-metadata.yml +4 -4
- package/manifests/examples/mock-cpu-util-to-carbon.yml +8 -2
- package/manifests/examples/nesting.yml +82 -35
- package/manifests/examples/pipeline-teads-sci.yml +54 -18
- package/manifests/examples/pipeline-with-aggregate.yml +66 -24
- package/manifests/examples/pipeline-with-mocks.yml +65 -22
- package/manifests/examples/region-metadata.yml +26 -0
- package/manifests/examples/tdp-finder.yml +23 -0
- package/manifests/examples/zeros.yaml +130 -0
- package/manifests/features/{aggregate-failure-inalid-metrics.yml → aggregate-failure-invalid-metrics.yml} +9 -3
- package/manifests/features/aggregate-failure-missing-metric-in-inputs.yml +9 -3
- package/manifests/features/aggregate-horizontal.yml +8 -2
- package/manifests/features/aggregate-vertical.yml +8 -2
- package/manifests/features/aggregate.yml +8 -2
- package/manifests/integrations/{cloud-metadata-divide-boavizta.yml → cloud-metadata-divide.yml} +8 -9
- package/manifests/integrations/instance-metadata/failure-invalid-instance-type.yaml +33 -0
- package/manifests/integrations/instance-metadata/failure-invalid-provider.yaml +33 -0
- package/manifests/integrations/instance-metadata/failure-missing-queried-input.yml +33 -0
- package/manifests/integrations/instance-metadata/success.yml +33 -0
- package/manifests/integrations/mock-obs-group-by-cloud-meta.yml +8 -2
- package/manifests/integrations/mock-obs-time-sync.yml +50 -5
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-instance-type.yaml +9 -3
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-invalid-vendor.yaml +8 -2
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/failure-missing-cloud-vendor.yml +9 -3
- package/manifests/plugins/{cloud-metadata → csv-lookup/cloud-metadata}/success.yml +8 -2
- package/manifests/plugins/csv-lookup/{success.yml → region-metadata/success.yml} +1 -1
- package/manifests/plugins/csv-lookup/tdp-finder/failure-missing-input-param.yml +23 -0
- package/manifests/plugins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +24 -0
- package/manifests/plugins/csv-lookup/tdp-finder/success.yml +24 -0
- package/manifests/plugins/divide/failure-denominator-equal-zero.yml +8 -9
- package/manifests/plugins/divide/failure-invalid-config-denominator.yml +8 -9
- package/manifests/plugins/divide/failure-missing-numerator.yml +8 -9
- package/manifests/plugins/divide/success.yml +9 -10
- package/manifests/plugins/exponent/success.yml +26 -0
- package/manifests/plugins/interpolation/success.yml +24 -0
- package/manifests/plugins/sci/failure-missing-input-param.yml +2 -6
- package/manifests/plugins/sci/success.yml +0 -3
- package/manifests/plugins/subtract/success.yml +25 -0
- package/manifests/plugins/sum/success.yml +1 -1
- package/package.json +10 -4
- package/src/__mocks__/mock-manifest.yaml +72 -0
- package/src/builtins/README.md +1 -1
- package/src/builtins/coefficient/README.md +19 -1
- package/src/builtins/copy-param/README.md +104 -0
- package/src/builtins/csv-lookup/README.md +39 -1
- package/src/builtins/divide/README.md +29 -3
- package/src/builtins/exponent/README.md +21 -1
- package/src/builtins/interpolation/README.md +29 -1
- package/src/builtins/mock-observations/README.md +1 -1
- package/src/builtins/multiply/README.md +16 -1
- package/src/builtins/regex/README.md +32 -2
- package/src/builtins/sci/README.md +24 -1
- package/src/builtins/sci-embodied/README.md +15 -1
- package/src/builtins/shell/README.md +12 -1
- package/src/builtins/subtract/README.md +12 -1
- package/src/builtins/sum/README.md +28 -1
- package/src/config/env-template.yml +24 -0
- package/build/builtins/coefficient/types.d.ts +0 -5
- package/build/builtins/coefficient/types.js +0 -3
- package/build/builtins/exponent/types.d.ts +0 -5
- package/build/builtins/exponent/types.js +0 -3
- package/build/builtins/interpolation/types.d.ts +0 -5
- package/build/builtins/interpolation/types.js +0 -10
- package/build/builtins/mock-observations/types.d.ts +0 -13
- package/build/builtins/mock-observations/types.js +0 -3
- package/build/builtins/multiply/types.d.ts +0 -4
- package/build/builtins/multiply/types.js +0 -3
- package/build/builtins/subtract/types.d.ts +0 -4
- package/build/builtins/subtract/types.js +0 -3
- package/build/builtins/sum/types.d.ts +0 -4
- package/build/builtins/sum/types.js +0 -3
- package/build/types/common.d.ts +0 -4
- package/build/types/common.js +0 -3
- package/build/types/group-by.d.ts +0 -3
- package/build/types/group-by.js +0 -3
- package/build/types/helpers.d.ts +0 -4
- package/build/types/helpers.js +0 -3
- package/build/util/errors.d.ts +0 -6
- package/build/util/errors.js +0 -33
- package/manifests/examples/basic.yml +0 -28
- package/manifests/plugins/tdp-finder/failure-missing-input-param.yml +0 -18
- package/manifests/plugins/tdp-finder/failure-unsupported-physical-processor.yml +0 -19
- package/manifests/plugins/tdp-finder/success.yml +0 -19
- /package/manifests/plugins/csv-lookup/{failure-missing-column.yml → region-metadata/failure-missing-column.yml} +0 -0
- /package/manifests/plugins/csv-lookup/{failure-missing-output.yml → region-metadata/failure-missing-output.yml} +0 -0
- /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
|
|
11
|
-
const
|
|
12
|
-
const {
|
|
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
|
|
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:
|
|
108
|
+
message: X_Y_EQUAL,
|
|
107
109
|
})
|
|
108
110
|
.refine(data => data.x.length > 1 && data.y.length > 1, {
|
|
109
|
-
message:
|
|
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:
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvaW50ZXJwb2xhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRkFBNkM7QUFDN0MsNkJBQXNCO0FBSXRCLHdEQUFnRDtBQUNoRCw4Q0FBeUM7QUFFekMsbUNBQStCO0FBRS9CLE1BQU0sRUFBQyxtQkFBbUIsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUU5QixNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDekU7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGVBQWUsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTNELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxNQUFNO2FBQzlDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBNEI7WUFDMUMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0MsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDN0MsVUFBVSxFQUFFLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FD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QUNELE1BQU0sQ0FDTCxJQUFJLENBQUMsRUFBRSxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDbkU7WUFDRSxPQUFPLEVBQ0wsbUVBQW1FO1NBQ3RFLENBQ0YsQ0FBQztRQUVKLE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBL0tXLFFBQUEsYUFBYSxpQkErS3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNwbGluZSBmcm9tICd0eXBlc2NyaXB0LWN1YmljLXNwbGluZSc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zLCBDb25maWdQYXJhbXN9IGZyb20gJy4uLy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtNZXRob2R9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCB7Q29uZmlnTm90Rm91bmRFcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBJbnRlcnBvbGF0aW9uID0gKGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgZW5lcmd5IGNvbnN1bXB0aW9uIGNhbGN1bGF0aW9uIGZvciBhbiBhcnJheSBvZiBpbnB1dCBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgY29uc3QgZXhlY3V0ZSA9IChpbnB1dHM6IFBsdWdpblBhcmFtc1tdKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoKTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKChpbnB1dCwgaW5kZXgpID0+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 {
|
|
1
|
+
import { ConfigParams } from '@grnsft/if-core/types';
|
|
2
2
|
import { Generator } from '../interfaces';
|
|
3
|
-
export declare const CommonGenerator: (config:
|
|
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
|
|
5
|
-
const
|
|
6
|
-
const {
|
|
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
|
-
*
|
|
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
|
|
16
|
+
throw new GlobalConfigError(MISSING_GLOBAL_CONFIG);
|
|
20
17
|
}
|
|
21
|
-
return
|
|
18
|
+
return structuredClone(config);
|
|
22
19
|
};
|
|
23
20
|
/**
|
|
24
21
|
* Generates next value by copying the validated config.
|
|
25
22
|
*/
|
|
26
|
-
const next = () =>
|
|
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,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idWlsdGlucy9tb2NrLW9ic2VydmF0aW9ucy9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTZDO0FBRzdDLDRDQUF3QztBQUl4QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbkMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQW9CLEVBQWEsRUFBRTtJQUNqRTs7OztPQUlHO0lBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxELE9BQU87UUFDTCxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXRCVyxRQUFBLGVBQWUsbUJBc0IxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtHZW5lcmF0b3J9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCB7R2xvYmFsQ29uZmlnRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgQ29tbW9uR2VuZXJhdG9yID0gKGNvbmZpZzogQ29uZmlnUGFyYW1zKTogR2VuZXJhdG9yID0+IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBuZXh0IHZhbHVlIGJ5IGNvcHlpbmcgdGhlIHZhbGlkYXRlZCBjb25maWcuXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgY29uZmlnIGlzIG5vdCBudWxsIG9yIGVtcHR5LlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsaWRhdGVkIGNvbmZpZywgb3RoZXJ3aXNlIHRocm93cyBhbiBHbG9iYWxDb25maWdFcnJvci5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlQ29uZmlnID0gKGNvbmZpZzogb2JqZWN0KSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUoY29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIG5leHQgdmFsdWUgYnkgY29weWluZyB0aGUgdmFsaWRhdGVkIGNvbmZpZy5cbiAgICovXG4gIGNvbnN0IG5leHQgPSAoKTogT2JqZWN0ID0+IHZhbGlkYXRlQ29uZmlnKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuZXh0LFxuICB9O1xufTtcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigParams } from '@grnsft/if-core/types';
|
|
2
2
|
import { Generator } from '../interfaces';
|
|
3
|
-
export declare const RandIntGenerator: (name: string, config:
|
|
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
|
|
5
|
-
const
|
|
6
|
-
const {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZC1pbnQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2J1aWx0aW5zL21vY2stb2JzZXJ2YXRpb25zL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE2QztBQUc3Qyw0Q0FBd0M7QUFJeEMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLEdBQUcsY0FBTSxDQUFDO0FBRW5DLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBQyxHQUMzRSxnQkFBTyxDQUFDO0FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixJQUFZLEVBQ1osTUFBb0IsRUFDVCxFQUFFO0lBQ2IsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0tBQ3ZELENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBbUIsRUFBVSxFQUFFO1FBQ25ELElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBb0IsRUFBOEIsRUFBRTtRQUMxRSxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9DLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLEVBQUUsYUFBYTtRQUNuQixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7UUFDeEIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO0tBQ3pCLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLENBQ3RCLGdCQUF3QyxFQUNoQyxFQUFFO1FBQ1YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLE1BQU0sWUFBWSxHQUNoQixZQUFZLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1lBQzVELGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUV2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdkRXLFFBQUEsZ0JBQWdCLG9CQXVEM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UmFuZEludEdlbmVyYXRvclBhcmFtcywgQ29uZmlnUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7R2VuZXJhdG9yfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3Qge0dsb2JhbENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJRywgTUlTU0lOR19NSU5fTUFYLCBJTlZBTElEX01JTl9NQVgsIElOVkFMSURfTkFNRX0gPVxuICBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgUmFuZEludEdlbmVyYXRvciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBjb25maWc6IENvbmZpZ1BhcmFtc1xuKTogR2VuZXJhdG9yID0+IHtcbiAgY29uc3QgbmV4dCA9ICgpID0+ICh7XG4gICAgW3ZhbGlkYXRlZE5hbWVdOiBnZW5lcmF0ZVJhbmRJbnQoZ2V0RmllbGRUb1BvcHVsYXRlKCkpLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0ZU5hbWUgPSAobmFtZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFuYW1lIHx8IG5hbWUudHJpbSgpID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTkFNRSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWU7XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVDb25maWcgPSAoY29uZmlnOiBDb25maWdQYXJhbXMpOiB7bWluOiBudW1iZXI7IG1heDogbnVtYmVyfSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgT2JqZWN0LmtleXMoY29uZmlnKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBHbG9iYWxDb25maWdFcnJvcihNSVNTSU5HX0dMT0JBTF9DT05GSUcpO1xuICAgIH1cblxuICAgIGlmICghY29uZmlnLm1pbiB8fCAhY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfTUlOX01BWCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW4gPj0gY29uZmlnLm1heCkge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKElOVkFMSURfTUlOX01BWCh2YWxpZGF0ZWROYW1lKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHttaW46IGNvbmZpZy5taW4sIG1heDogY29uZmlnLm1heH07XG4gIH07XG5cbiAgY29uc3QgdmFsaWRhdGVkTmFtZSA9IHZhbGlkYXRlTmFtZShuYW1lKTtcbiAgY29uc3QgdmFsaWRhdGVkQ29uZmlnID0gdmFsaWRhdGVDb25maWcoY29uZmlnKTtcblxuICBjb25zdCBnZXRGaWVsZFRvUG9wdWxhdGUgPSAoKSA9PiAoe1xuICAgIG5hbWU6IHZhbGlkYXRlZE5hbWUsXG4gICAgbWluOiB2YWxpZGF0ZWRDb25maWcubWluLFxuICAgIG1heDogdmFsaWRhdGVkQ29uZmlnLm1heCxcbiAgfSk7XG5cbiAgY29uc3QgZ2VuZXJhdGVSYW5kSW50ID0gKFxuICAgIHJhbmRJbnRHZW5lcmF0b3I6IFJhbmRJbnRHZW5lcmF0b3JQYXJhbXNcbiAgKTogbnVtYmVyID0+IHtcbiAgICBjb25zdCByYW5kb21OdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xuICAgIGNvbnN0IHNjYWxlZE51bWJlciA9XG4gICAgICByYW5kb21OdW1iZXIgKiAocmFuZEludEdlbmVyYXRvci5tYXggLSByYW5kSW50R2VuZXJhdG9yLm1pbikgK1xuICAgICAgcmFuZEludEdlbmVyYXRvci5taW47XG5cbiAgICByZXR1cm4gTWF0aC50cnVuYyhzY2FsZWROdW1iZXIpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmV4dCxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbW9jay1vYnNlcnZhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXlDO0FBQ3pDLDZCQUFzQjtBQVF0Qix3REFBZ0Q7QUFFaEQsaUVBQTJEO0FBQzNELHFFQUE4RDtBQUl2RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBMEIsRUFBaUIsRUFBRTtJQUM1RSxNQUFNLFFBQVEsR0FBRztRQUNmLElBQUksRUFBRSxTQUFTO0tBQ2hCLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUMsR0FDbkQsd0JBQXdCLEVBQUUsQ0FBQztRQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRTFELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUNuQyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxFQUM3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a0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFakUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQWMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELE1BQU0sa0JBQWtCLEdBQWlCO1lBQ3ZDLFNBQVM7WUFDVCxRQUFRO1lBQ1IsR0FBRyxTQUFTO1NBQ2IsQ0FBQztRQUNGLE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDakQsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFDakUsa0JBQWtCLENBQ25CLENBQUM7UUFFRixPQUFPLG9CQUFvQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUFqS1csUUFBQSxnQkFBZ0Isb0JBaUszQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVRpbWUsIER1cmF0aW9ufSBmcm9tICdsdXhvbic7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge1xuICBFeGVjdXRlUGx1Z2luLFxuICBQbHVnaW5QYXJhbXMsXG4gIENvbmZpZ1BhcmFtcyxcbiAgT2JzZXJ2YXRpb25QYXJhbXMsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge0NvbW1vbkdlbmVyYXRvcn0gZnJvbSAnLi9oZWxwZXJzL2NvbW1vbi1nZW5lcmF0b3InO1xuaW1wb3J0IHtSYW5kSW50R2VuZXJhdG9yfSBmcm9tICcuL2hlbHBlcnMvcmFuZC1pbnQtZ2VuZXJhdG9yJztcblxuaW1wb3J0IHtHZW5lcmF0b3J9IGZyb20gJy4vaW50ZXJmYWNlcy9pbmRleCc7XG5cbmV4cG9ydCBjb25zdCBNb2NrT2JzZXJ2YXRpb25zID0gKGdsb2JhbENvbmZpZzogQ29uZmlnUGFyYW1zKTogRXhlY3V0ZVBsdWdpbiA9PiB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgIGtpbmQ6ICdleGVjdXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgc2V0cyBvZiBtb2NrZWQgb2JzZXJ2YXRpb25zIGJhc2VkIG9uIGNvbmZpZy5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHtkdXJhdGlvbiwgdGltZUJ1Y2tldHMsIGNvbXBvbmVudHMsIGdlbmVyYXRvcnN9ID1cbiAgICAgIGdlbmVyYXRlUGFyYW1zRnJvbUNvbmZpZygpO1xuICAgIGNvbnN0IGdlbmVyYXRvclRvSGlzdG9yeSA9IG5ldyBNYXA8R2VuZXJhdG9yLCBudW1iZXJbXT4oKTtcblxuICAgIGdlbmVyYXRvcnMuZm9yRWFjaChnZW5lcmF0b3IgPT4ge1xuICAgICAgZ2VuZXJhdG9yVG9IaXN0b3J5LnNldChnZW5lcmF0b3IsIFtdKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRzID0gaW5wdXRzICYmIGlucHV0c1swXTtcblxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb21wb25lbnRzKS5yZWR1Y2UoKGFjYzogUGx1Z2luUGFyYW1zW10sIGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGl0ZW1bMV07XG4gICAgICB0aW1lQnVja2V0cy5mb3JFYWNoKHRpbWVCdWNrZXQgPT4ge1xuICAgICAgICBjb25zdCBvYnNlcnZhdGlvbiA9IGNyZWF0ZU9ic2VydmF0aW9uKFxuICAgICAgICAgIHtkdXJhdGlvbiwgY29tcG9uZW50LCB0aW1lQnVja2V0LCBnZW5lcmF0b3JzfSxcbiAgICAgICAgICBnZW5lcmF0b3JUb0hpc3RvcnlcbiAgICAgICAgKTtcblxuICAgICAgICBhY2MucHVzaChPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cywgb2JzZXJ2YXRpb24pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGdsb2JhbCBjb25maWcgcGFyYW1ldGVycy5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR2xvYmFsQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICd0aW1lc3RhbXAtZnJvbSc6IHouc3RyaW5nKCksXG4gICAgICAndGltZXN0YW1wLXRvJzogei5zdHJpbmcoKSxcbiAgICAgIGR1cmF0aW9uOiB6Lm51bWJlcigpLFxuICAgICAgY29tcG9uZW50czogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpKSksXG4gICAgICBnZW5lcmF0b3JzOiB6Lm9iamVjdCh7XG4gICAgICAgIGNvbW1vbjogei5yZWNvcmQoei5zdHJpbmcoKS5vcih6Lm51bWJlcigpKSksXG4gICAgICAgIHJhbmRpbnQ6IHoucmVjb3JkKHoub2JqZWN0KHttaW46IHoubnVtYmVyKCksIG1heDogei5udW1iZXIoKX0pKSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgZ2xvYmFsQ29uZmlnKTtcbiAgfTtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgTW9ja09ic2VydmF0aW9ucyBQbHVnaW4gZm9yIElGXG4gICAqL1xuICBjb25zdCBnZW5lcmF0ZVBhcmFtc0Zyb21Db25maWcgPSAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgJ3RpbWVzdGFtcC1mcm9tJzogdGltZXN0YW1wRnJvbSxcbiAgICAgICd0aW1lc3RhbXAtdG8nOiB0aW1lc3RhbXBUbyxcbiAgICAgIGR1cmF0aW9uLFxuICAgICAgZ2VuZXJhdG9ycyxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgfSA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY29udmVydGVkVGltZXN0YW1wRnJvbSA9IERhdGVUaW1lLmZyb21JU08odGltZXN0YW1wRnJvbSwge1xuICAgICAgem9uZTogJ1VUQycsXG4gICAgfSk7XG4gICAgY29uc3QgY29udmVydGVkVGltZXN0YW1wVG8gPSBEYXRlVGltZS5mcm9tSVNPKHRpbWVzdGFtcFRvLCB7em9uZTogJ1VUQyd9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIHRpbWVCdWNrZXRzOiBjcmVhdGVUaW1lQnVja2V0cyhcbiAgICAgICAgY29udmVydGVkVGltZXN0YW1wRnJvbSxcbiAgICAgICAgY29udmVydGVkVGltZXN0YW1wVG8sXG4gICAgICAgIGR1cmF0aW9uXG4gICAgICApLFxuICAgICAgZ2VuZXJhdG9yczogY3JlYXRlR2VuZXJhdG9ycyhnZW5lcmF0b3JzKSxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgfTtcbiAgfTtcblxuICAvKlxuICAgKiBjcmVhdGUgdGltZSBidWNrZXRzIGJhc2VkIG9uIHN0YXJ0IHRpbWUsIGVuZCB0aW1lIGFuZCBkdXJhdGlvbiBvZiBlYWNoIGJ1Y2tldC5cbiAgICovXG4gIGNvbnN0IGNyZWF0ZVRpbWVCdWNrZXRzID0gKFxuICAgIHRpbWVzdGFtcEZyb206IERhdGVUaW1lLFxuICAgIHRpbWVzdGFtcFRvOiBEYXRlVGltZSxcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIHRpbWVCdWNrZXRzOiBEYXRlVGltZVtdID0gW11cbiAgKTogRGF0ZVRpbWVbXSA9PiB7XG4gICAgaWYgKFxuICAgICAgdGltZXN0YW1wRnJvbSA8IHRpbWVzdGFtcFRvIHx8XG4gICAgICB0aW1lc3RhbXBGcm9tLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7c2Vjb25kczogZHVyYXRpb259KSkgPCB0aW1lc3RhbXBUb1xuICAgICkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVRpbWVCdWNrZXRzKFxuICAgICAgICB0aW1lc3RhbXBGcm9tLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7c2Vjb25kczogZHVyYXRpb259KSksXG4gICAgICAgIHRpbWVzdGFtcFRvLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgWy4uLnRpbWVCdWNrZXRzLCB0aW1lc3RhbXBGcm9tXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRpbWVCdWNrZXRzO1xuICB9O1xuXG4gIC8qXG4gICAqIGNyZWF0ZSBnZW5lcmF0b3JzIGJhc2VkIG9uIGEgZ2l2ZW4gY29uZmlnXG4gICAqL1xuICBjb25zdCBjcmVhdGVHZW5lcmF0b3JzID0gKGdlbmVyYXRvcnNDb25maWc6IG9iamVjdCk6IEdlbmVyYXRvcltdID0+IHtcbiAgICBjb25zdCBjcmVhdGVDb21tb25HZW5lcmF0b3IgPSAoY29uZmlnOiBhbnkpOiBHZW5lcmF0b3JbXSA9PiBbXG4gICAgICBDb21tb25HZW5lcmF0b3IoY29uZmlnKSxcbiAgICBdO1xuXG4gICAgY29uc3QgY3JlYXRlUmFuZEludEdlbmVyYXRvcnMgPSAoY29uZmlnOiBhbnkpOiBHZW5lcmF0b3JbXSA9PlxuICAgICAgT2JqZWN0LmVudHJpZXMoY29uZmlnKS5tYXAoKFtmaWVsZFRvUG9wdWxhdGUsIHZhbHVlXSkgPT5cbiAgICAgICAgUmFuZEludEdlbmVyYXRvcihmaWVsZFRvUG9wdWxhdGUsIHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pXG4gICAgICApO1xuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGdlbmVyYXRvcnNDb25maWcpLmZsYXRNYXAoKFtrZXksIHZhbHVlXSkgPT5cbiAgICAgIGtleSA9PT0gJ3JhbmRpbnQnXG4gICAgICAgID8gY3JlYXRlUmFuZEludEdlbmVyYXRvcnModmFsdWUpLmZsYXQoKVxuICAgICAgICA6IGNyZWF0ZUNvbW1vbkdlbmVyYXRvcih2YWx1ZSlcbiAgICApO1xuICB9O1xuXG4gIC8qXG4gICAqIENyZWF0ZXMgdGltZSBidWNrZXRzIGJhc2VkIG9uIHN0YXJ0IHRpbWUsIGVuZCB0aW1lIGFuZCBkdXJhdGlvbiBvZiBlYWNoIGJ1Y2tldC5cbiAgICovXG4gIGNvbnN0IGNyZWF0ZU9ic2VydmF0aW9uID0gKFxuICAgIG9ic2VydmF0aW9uUGFyYW1zOiBPYnNlcnZhdGlvblBhcmFtcyxcbiAgICBnZW5lcmF0b3JUb0hpc3Rvcnk6IE1hcDxHZW5lcmF0b3IsIG51bWJlcltdPlxuICApOiBQbHVnaW5QYXJhbXMgPT4ge1xuICAgIGNvbnN0IHtkdXJhdGlvbiwgY29tcG9uZW50LCB0aW1lQnVja2V0LCBnZW5lcmF0b3JzfSA9IG9ic2VydmF0aW9uUGFyYW1zO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHRpbWVCdWNrZXQudG9JU08oKTtcblxuICAgIGNvbnN0IGdlbmVyYXRlT2JzZXJ2YXRpb24gPSAoZ2VuZXJhdG9yOiBHZW5lcmF0b3IpID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBnZW5lcmF0b3JUb0hpc3RvcnkuZ2V0KGdlbmVyYXRvcikgfHwgW107XG4gICAgICBjb25zdCBnZW5lcmF0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnZW5lcmF0b3IubmV4dChoaXN0b3J5KTtcblxuICAgICAgZ2VuZXJhdG9yVG9IaXN0b3J5LnNldChnZW5lcmF0b3IsIFsuLi5oaXN0b3J5LCBnZW5lcmF0ZWQudmFsdWVdKTtcblxuICAgICAgcmV0dXJuIGdlbmVyYXRlZDtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2VuZXJhdGVPYnNlcnZhdGlvbnMgPSAoZ2VuOiBHZW5lcmF0b3IpID0+IGdlbmVyYXRlT2JzZXJ2YXRpb24oZ2VuKTtcbiAgICBjb25zdCBnZW5lcmF0ZWRWYWx1ZXMgPSBnZW5lcmF0b3JzLm1hcChnZW5lcmF0ZU9ic2VydmF0aW9ucyk7XG4gICAgY29uc3QgaW5pdGlhbE9ic2VydmF0aW9uOiBQbHVnaW5QYXJhbXMgPSB7XG4gICAgICB0aW1lc3RhbXAsXG4gICAgICBkdXJhdGlvbixcbiAgICAgIC4uLmNvbXBvbmVudCxcbiAgICB9O1xuICAgIGNvbnN0IGdlbmVyYXRlZE9ic2VydmF0aW9uID0gZ2VuZXJhdGVkVmFsdWVzLnJlZHVjZShcbiAgICAgIChvYnNlcnZhdGlvbiwgZ2VuZXJhdGVkKSA9PiBPYmplY3QuYXNzaWduKG9ic2VydmF0aW9uLCBnZW5lcmF0ZWQpLFxuICAgICAgaW5pdGlhbE9ic2VydmF0aW9uXG4gICAgKTtcblxuICAgIHJldHVybiBnZW5lcmF0ZWRPYnNlcnZhdGlvbiBhcyBQbHVnaW5QYXJhbXM7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBtZXRhZGF0YSxcbiAgICBleGVjdXRlLFxuICB9O1xufTtcbiJdfQ==
|
|
@@ -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.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
40
|
+
validateSingleInput(input, inputParameters);
|
|
47
41
|
return {
|
|
48
42
|
...input,
|
|
49
|
-
[outputParameter]: calculateProduct(
|
|
43
|
+
[outputParameter]: calculateProduct(input, inputParameters),
|
|
50
44
|
};
|
|
51
45
|
});
|
|
52
46
|
};
|
|
53
47
|
/**
|
|
54
|
-
* Calculates the product of the
|
|
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,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvbXVsdGlwbHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBT3RCLHdEQUFnRDtBQUV6QyxNQUFNLFFBQVEsR0FBRyxDQUFDLFlBQTRCLEVBQWlCLEVBQUU7SUFDdEUsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDbEMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLHNCQUFRLEVBQ2Isa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEtBQW1CLEVBQ25CLGVBQXlCLEVBQ3pCLEVBQUU7UUFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNEIsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFMUQsSUFBQSxzQkFBUSxFQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQWtCLEVBQUU7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0QsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTVDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsZUFBZSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQzthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFtQixFQUFFLGVBQXlCLEVBQUUsRUFBRSxDQUMxRSxlQUFlLENBQUMsTUFBTSxDQUNwQixDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4RSxDQUFDLENBQ0YsQ0FBQztJQUVKLE9BQU87UUFDTCxRQUFRO1FBQ1IsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDLENBQUM7QUExRVcsUUFBQSxRQUFRLFlBMEVuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7XG4gIEV4ZWN1dGVQbHVnaW4sXG4gIFBsdWdpblBhcmFtcyxcbiAgTXVsdGlwbHlDb25maWcsXG59IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgTXVsdGlwbHkgPSAoZ2xvYmFsQ29uZmlnOiBNdWx0aXBseUNvbmZpZyk6IEV4ZWN1dGVQbHVnaW4gPT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBraW5kOiAnZXhlY3V0ZScsXG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBnbG9iYWwgY29uZmlnIHZhbHVlIGFyZSB2YWxpZC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlR2xvYmFsQ29uZmlnID0gKCkgPT4ge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAgICdpbnB1dC1wYXJhbWV0ZXJzJzogei5hcnJheSh6LnN0cmluZygpKSxcbiAgICAgICdvdXRwdXQtcGFyYW1ldGVyJzogei5zdHJpbmcoKS5taW4oMSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgZ2xvYmFsQ29uZmlnU2NoZW1hPj4oXG4gICAgICBnbG9iYWxDb25maWdTY2hlbWEsXG4gICAgICBnbG9iYWxDb25maWdcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZm9yIHJlcXVpcmVkIGZpZWxkcyBpbiBpbnB1dC5cbiAgICovXG4gIGNvbnN0IHZhbGlkYXRlU2luZ2xlSW5wdXQgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBpbnB1dFBhcmFtZXRlcnM6IHN0cmluZ1tdXG4gICkgPT4ge1xuICAgIGNvbnN0IGlucHV0RGF0YSA9IGlucHV0UGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICBhY2NbcGFyYW1dID0gaW5wdXRbcGFyYW1dO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICAgICk7XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoei5zdHJpbmcoKSwgei5udW1iZXIoKSk7XG5cbiAgICB2YWxpZGF0ZSh2YWxpZGF0aW9uU2NoZW1hLCBpbnB1dERhdGEpO1xuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHByb2R1Y3Qgb2YgZWFjaCBpbnB1dCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb25zdCBleGVjdXRlID0gKGlucHV0czogUGx1Z2luUGFyYW1zW10pOiBQbHVnaW5QYXJhbXNbXSA9PiB7XG4gICAgY29uc3Qgc2FmZUdsb2JhbENvbmZpZyA9IHZhbGlkYXRlR2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgaW5wdXRQYXJhbWV0ZXJzID0gc2FmZUdsb2JhbENvbmZpZ1snaW5wdXQtcGFyYW1ldGVycyddO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtZXRlciA9IHNhZmVHbG9iYWxDb25maWdbJ291dHB1dC1wYXJhbWV0ZXInXTtcblxuICAgIHJldHVybiBpbnB1dHMubWFwKGlucHV0ID0+IHtcbiAgICAgIHZhbGlkYXRlU2luZ2xlSW5wdXQoaW5wdXQsIGlucHV0UGFyYW1ldGVycyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0LFxuICAgICAgICBbb3V0cHV0UGFyYW1ldGVyXTogY2FsY3VsYXRlUHJvZHVjdChpbnB1dCwgaW5wdXRQYXJhbWV0ZXJzKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHByb2R1Y3Qgb2YgdGhlIGNvbXBvbmVudHMuXG4gICAqL1xuICBjb25zdCBjYWxjdWxhdGVQcm9kdWN0ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGlucHV0UGFyYW1ldGVyczogc3RyaW5nW10pID0+XG4gICAgaW5wdXRQYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2N1bXVsYXRvciwgbWV0cmljVG9NdWx0aXBseSkgPT4gYWNjdW11bGF0b3IgKiBpbnB1dFttZXRyaWNUb011bHRpcGx5XSxcbiAgICAgIDFcbiAgICApO1xuXG4gIHJldHVybiB7XG4gICAgbWV0YWRhdGEsXG4gICAgZXhlY3V0ZSxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbHRpbnMvcmVnZXgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3Qyx3REFBZ0Q7QUFFaEQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUM5RSxNQUFNLEVBQUMscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVyRSxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQTBCLEVBQWlCLEVBQUU7SUFDakUsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBbUIsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxHQUFHLGdCQUFnQixDQUFDO1FBRS9ELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM3QixFQUFFLEVBQ0YsS0FBSyxFQUNMLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FDdEMsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO2FBQ3ZELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUIsRUFDbkIsU0FBaUIsRUFDakIsS0FBYSxFQUNiLEVBQUU7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxLQUFLLElBQUksR0FBRyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBcEZXLFFBQUEsS0FBSyxTQW9GaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7RXhlY3V0ZVBsdWdpbiwgUGx1Z2luUGFyYW1zLCBDb25maWdQYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtNaXNzaW5nSW5wdXREYXRhRXJyb3IsIEdsb2JhbENvbmZpZ0Vycm9yLCBSZWdleE1pc21hdGNoRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge01JU1NJTkdfR0xPQkFMX0NPTkZJRywgTUlTU0lOR19JTlBVVF9EQVRBLCBSRUdFWF9NSVNNQVRDSH0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgUmVnZXggPSAoZ2xvYmFsQ29uZmlnOiBDb25maWdQYXJhbXMpOiBFeGVjdXRlUGx1Z2luID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAga2luZDogJ2V4ZWN1dGUnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDaGVja3MgZ2xvYmFsIGNvbmZpZyB2YWx1ZSBhcmUgdmFsaWQuXG4gICAqL1xuICBjb25zdCB2YWxpZGF0ZUdsb2JhbENvbmZpZyA9ICgpID0+IHtcbiAgICBpZiAoIWdsb2JhbENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEdsb2JhbENvbmZpZ0Vycm9yKE1JU1NJTkdfR0xPQkFMX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgcGFyYW1ldGVyOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIG1hdGNoOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIG91dHB1dDogei5zdHJpbmcoKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGdsb2JhbENvbmZpZyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrcyBmb3IgcmVxdWlyZWQgZmllbGRzIGluIGlucHV0LlxuICAgKi9cbiAgY29uc3QgdmFsaWRhdGVTaW5nbGVJbnB1dCA9IChpbnB1dDogUGx1Z2luUGFyYW1zLCBwYXJhbWV0ZXI6IHN0cmluZykgPT4ge1xuICAgIGlmICghaW5wdXRbcGFyYW1ldGVyXSkge1xuICAgICAgdGhyb3cgbmV3IE1pc3NpbmdJbnB1dERhdGFFcnJvcihNSVNTSU5HX0lOUFVUX0RBVEEocGFyYW1ldGVyKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlucHV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgcmVnZXggb2YgdGhlIGdpdmVuIHBhcmFtZXRlci5cbiAgICovXG4gIGNvbnN0IGV4ZWN1dGUgPSAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSkgPT4ge1xuICAgIGNvbnN0IHNhZmVHbG9iYWxDb25maWcgPSB2YWxpZGF0ZUdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IHtwYXJhbWV0ZXI6IHBhcmFtZXRlciwgbWF0Y2gsIG91dHB1dH0gPSBzYWZlR2xvYmFsQ29uZmlnO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgY29uc3Qgc2FmZUlucHV0ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIGlucHV0LFxuICAgICAgICB2YWxpZGF0ZVNpbmdsZUlucHV0KGlucHV0LCBwYXJhbWV0ZXIpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dF06IGV4dHJhY3RNYXRjaGluZyhzYWZlSW5wdXQsIHBhcmFtZXRlciwgbWF0Y2gpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRXh0cmFjdHMgYSBzdWJzdHJpbmcgZnJvbSB0aGUgZ2l2ZW4gaW5wdXQgcGFyYW1ldGVyIHRoYXQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uXG4gICAqL1xuICBjb25zdCBleHRyYWN0TWF0Y2hpbmcgPSAoXG4gICAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgICBwYXJhbWV0ZXI6IHN0cmluZyxcbiAgICBtYXRjaDogc3RyaW5nXG4gICkgPT4ge1xuICAgIGlmICghbWF0Y2guc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBtYXRjaCA9ICcvJyArIG1hdGNoO1xuICAgIH1cblxuICAgIGlmICghbWF0Y2guZW5kc1dpdGgoJy9nJykgJiYgIW1hdGNoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIG1hdGNoICs9ICcvJztcbiAgICB9XG5cbiAgICBjb25zdCByZWdleCA9IGV2YWwobWF0Y2gpO1xuICAgIGNvbnN0IG1hdGNoZWRJdGVtID0gaW5wdXRbcGFyYW1ldGVyXS5tYXRjaChyZWdleCk7XG5cbiAgICBpZiAoIW1hdGNoZWRJdGVtIHx8ICFtYXRjaGVkSXRlbVswXSkge1xuICAgICAgdGhyb3cgbmV3IFJlZ2V4TWlzbWF0Y2hFcnJvcihSRUdFWF9NSVNNQVRDSChpbnB1dFtwYXJhbWV0ZXJdLCBtYXRjaCkpO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVkSXRlbVswXTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG1ldGFkYXRhLFxuICAgIGV4ZWN1dGUsXG4gIH07XG59O1xuIl19
|