@grnsft/if 1.0.0-beta.0 → 1.0.1
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/.env +5 -0
- package/README.md +1 -1
- package/adopters.md +3 -0
- package/build/common/config/strings.js +3 -4
- package/build/common/util/helpers.d.ts +5 -0
- package/build/common/util/helpers.js +24 -2
- package/build/if-check/config/config.js +7 -1
- package/build/if-check/index.js +3 -3
- package/build/if-check/util/args.js +3 -2
- package/build/if-check/util/helpers.js +4 -4
- package/build/if-check/util/npm.d.ts +1 -1
- package/build/if-check/util/npm.js +32 -19
- package/build/if-csv/config/config.js +7 -1
- package/build/if-csv/util/args.js +3 -2
- package/build/if-diff/config/config.js +7 -1
- package/build/if-diff/util/args.js +3 -2
- package/build/if-env/config/config.js +7 -1
- package/build/if-env/util/args.js +3 -2
- package/build/if-merge/config/config.js +7 -1
- package/build/if-merge/util/args.js +3 -2
- package/build/if-merge/util/helpers.js +4 -1
- package/build/if-run/builtins/csv-import/index.d.ts +16 -0
- package/build/if-run/builtins/csv-import/index.js +69 -0
- package/build/if-run/builtins/csv-lookup/index.js +10 -87
- package/build/if-run/builtins/index.d.ts +1 -0
- package/build/if-run/builtins/index.js +4 -2
- package/build/if-run/builtins/util/csv-helpers.d.ts +26 -0
- package/build/if-run/builtins/util/csv-helpers.js +92 -0
- package/build/if-run/config/config.js +1 -7
- package/build/if-run/config/strings.d.ts +1 -0
- package/build/if-run/config/strings.js +2 -1
- package/build/if-run/lib/compute.js +44 -20
- package/build/if-run/lib/regroup.d.ts +5 -0
- package/build/if-run/lib/regroup.js +14 -2
- package/build/if-run/util/args.d.ts +1 -1
- package/build/if-run/util/args.js +5 -4
- package/coverage/clover.xml +2062 -0
- package/coverage/coverage-final.json +58 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/builtins/coefficient/index.html +116 -0
- package/coverage/lcov-report/builtins/coefficient/index.ts.html +298 -0
- package/coverage/lcov-report/builtins/csv-lookup/index.html +116 -0
- package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +826 -0
- package/coverage/lcov-report/builtins/divide/index.html +116 -0
- package/coverage/lcov-report/builtins/divide/index.ts.html +358 -0
- package/coverage/lcov-report/builtins/exponent/index.html +116 -0
- package/coverage/lcov-report/builtins/exponent/index.ts.html +361 -0
- package/coverage/lcov-report/builtins/export-csv-raw.ts.html +553 -0
- package/coverage/lcov-report/builtins/export-csv.ts.html +436 -0
- package/coverage/lcov-report/builtins/export-log.ts.html +148 -0
- package/coverage/lcov-report/builtins/export-yaml.ts.html +193 -0
- package/coverage/lcov-report/builtins/group-by.ts.html +370 -0
- package/coverage/lcov-report/builtins/index.html +206 -0
- package/coverage/lcov-report/builtins/index.ts.html +130 -0
- package/coverage/lcov-report/builtins/interpolation/index.html +116 -0
- package/coverage/lcov-report/builtins/interpolation/index.ts.html +676 -0
- package/coverage/lcov-report/builtins/interpolation/types.ts.html +100 -0
- package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +184 -0
- package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +131 -0
- package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +289 -0
- package/coverage/lcov-report/builtins/mock-observations/index.html +116 -0
- package/coverage/lcov-report/builtins/mock-observations/index.ts.html +619 -0
- package/coverage/lcov-report/builtins/multiply/index.html +116 -0
- package/coverage/lcov-report/builtins/multiply/index.ts.html +343 -0
- package/coverage/lcov-report/builtins/regex/index.html +116 -0
- package/coverage/lcov-report/builtins/regex/index.ts.html +373 -0
- package/coverage/lcov-report/builtins/sci/config.ts.html +205 -0
- package/coverage/lcov-report/builtins/sci/index.html +116 -0
- package/coverage/lcov-report/builtins/sci/index.ts.html +325 -0
- package/coverage/lcov-report/builtins/sci-embodied/index.html +116 -0
- package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +478 -0
- package/coverage/lcov-report/builtins/shell/index.html +116 -0
- package/coverage/lcov-report/builtins/shell/index.ts.html +280 -0
- package/coverage/lcov-report/builtins/subtract/index.html +116 -0
- package/coverage/lcov-report/builtins/subtract/index.ts.html +379 -0
- package/coverage/lcov-report/builtins/sum/index.html +116 -0
- package/coverage/lcov-report/builtins/sum/index.ts.html +334 -0
- package/coverage/lcov-report/builtins/time-sync.ts.html +1462 -0
- package/coverage/lcov-report/common/config/index.html +131 -0
- package/coverage/lcov-report/common/config/index.ts.html +88 -0
- package/coverage/lcov-report/common/config/strings.ts.html +121 -0
- package/coverage/lcov-report/common/lib/index.html +116 -0
- package/coverage/lcov-report/common/lib/load.ts.html +139 -0
- package/coverage/lcov-report/common/util/debug-logger.ts.html +514 -0
- package/coverage/lcov-report/common/util/fs.ts.html +289 -0
- package/coverage/lcov-report/common/util/helpers.ts.html +355 -0
- package/coverage/lcov-report/common/util/index.html +191 -0
- package/coverage/lcov-report/common/util/logger.ts.html +151 -0
- package/coverage/lcov-report/common/util/validations.ts.html +628 -0
- package/coverage/lcov-report/common/util/yaml.ts.html +226 -0
- package/coverage/lcov-report/config/config.ts.html +463 -0
- package/coverage/lcov-report/config/index.html +161 -0
- package/coverage/lcov-report/config/index.ts.html +94 -0
- package/coverage/lcov-report/config/params.ts.html +697 -0
- package/coverage/lcov-report/config/strings.ts.html +490 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/if-check/config/config.ts.html +184 -0
- package/coverage/lcov-report/if-check/config/index.html +146 -0
- package/coverage/lcov-report/if-check/config/index.ts.html +91 -0
- package/coverage/lcov-report/if-check/config/strings.ts.html +142 -0
- package/coverage/lcov-report/if-check/util/args.ts.html +310 -0
- package/coverage/lcov-report/if-check/util/helpers.ts.html +136 -0
- package/coverage/lcov-report/if-check/util/index.html +146 -0
- package/coverage/lcov-report/if-check/util/npm.ts.html +376 -0
- package/coverage/lcov-report/if-csv/util/args.ts.html +256 -0
- package/coverage/lcov-report/if-csv/util/helpers.ts.html +346 -0
- package/coverage/lcov-report/if-csv/util/index.html +131 -0
- package/coverage/lcov-report/if-diff/config/config.ts.html +184 -0
- package/coverage/lcov-report/if-diff/config/index.html +146 -0
- package/coverage/lcov-report/if-diff/config/index.ts.html +91 -0
- package/coverage/lcov-report/if-diff/config/strings.ts.html +100 -0
- package/coverage/lcov-report/if-diff/lib/compare.ts.html +286 -0
- package/coverage/lcov-report/if-diff/lib/index.html +131 -0
- package/coverage/lcov-report/if-diff/lib/load.ts.html +199 -0
- package/coverage/lcov-report/if-diff/util/args.ts.html +274 -0
- package/coverage/lcov-report/if-diff/util/helpers.ts.html +337 -0
- package/coverage/lcov-report/if-diff/util/index.html +131 -0
- package/coverage/lcov-report/if-env/config/config.ts.html +211 -0
- package/coverage/lcov-report/if-env/config/index.html +146 -0
- package/coverage/lcov-report/if-env/config/index.ts.html +91 -0
- package/coverage/lcov-report/if-env/config/strings.ts.html +109 -0
- package/coverage/lcov-report/if-env/util/args.ts.html +256 -0
- package/coverage/lcov-report/if-env/util/index.html +131 -0
- package/coverage/lcov-report/if-env/util/npm.ts.html +526 -0
- package/coverage/lcov-report/if-merge/util/args.ts.html +301 -0
- package/coverage/lcov-report/if-merge/util/helpers.ts.html +313 -0
- package/coverage/lcov-report/if-merge/util/index.html +131 -0
- package/coverage/lcov-report/if-run/builtins/coefficient/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +286 -0
- package/coverage/lcov-report/if-run/builtins/copy-param/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +301 -0
- package/coverage/lcov-report/if-run/builtins/csv-import/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/csv-import/index.ts.html +364 -0
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +478 -0
- package/coverage/lcov-report/if-run/builtins/divide/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +346 -0
- package/coverage/lcov-report/if-run/builtins/exponent/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +319 -0
- package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +553 -0
- package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +436 -0
- package/coverage/lcov-report/if-run/builtins/export-log.ts.html +148 -0
- package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +193 -0
- package/coverage/lcov-report/if-run/builtins/group-by.ts.html +370 -0
- package/coverage/lcov-report/if-run/builtins/index.html +146 -0
- package/coverage/lcov-report/if-run/builtins/index.ts.html +136 -0
- package/coverage/lcov-report/if-run/builtins/interpolation/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +643 -0
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +184 -0
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +131 -0
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +289 -0
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +607 -0
- package/coverage/lcov-report/if-run/builtins/multiply/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +289 -0
- package/coverage/lcov-report/if-run/builtins/regex/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +298 -0
- package/coverage/lcov-report/if-run/builtins/sci/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +418 -0
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +664 -0
- package/coverage/lcov-report/if-run/builtins/shell/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +256 -0
- package/coverage/lcov-report/if-run/builtins/subtract/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +298 -0
- package/coverage/lcov-report/if-run/builtins/sum/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +238 -0
- package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +205 -0
- package/coverage/lcov-report/if-run/builtins/time-converter/index.html +131 -0
- package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +328 -0
- package/coverage/lcov-report/if-run/builtins/time-sync/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +1804 -0
- package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +1462 -0
- package/coverage/lcov-report/if-run/builtins/util/csv-helpers.ts.html +376 -0
- package/coverage/lcov-report/if-run/builtins/util/index.html +116 -0
- package/coverage/lcov-report/if-run/config/config.ts.html +271 -0
- package/coverage/lcov-report/if-run/config/index.html +161 -0
- package/coverage/lcov-report/if-run/config/index.ts.html +94 -0
- package/coverage/lcov-report/if-run/config/params.ts.html +679 -0
- package/coverage/lcov-report/if-run/config/strings.ts.html +460 -0
- package/coverage/lcov-report/if-run/lib/aggregate.ts.html +577 -0
- package/coverage/lcov-report/if-run/lib/compute.ts.html +733 -0
- package/coverage/lcov-report/if-run/lib/environment.ts.html +373 -0
- package/coverage/lcov-report/if-run/lib/exhaust.ts.html +193 -0
- package/coverage/lcov-report/if-run/lib/explain.ts.html +484 -0
- package/coverage/lcov-report/if-run/lib/index.html +206 -0
- package/coverage/lcov-report/if-run/lib/initialize.ts.html +490 -0
- package/coverage/lcov-report/if-run/lib/parameterize.ts.html +322 -0
- package/coverage/lcov-report/if-run/lib/regroup.ts.html +349 -0
- package/coverage/lcov-report/if-run/lib/time-sync.ts.html +1510 -0
- package/coverage/lcov-report/if-run/types/aggregation.ts.html +94 -0
- package/coverage/lcov-report/if-run/types/index.html +146 -0
- package/coverage/lcov-report/if-run/types/interface.ts.html +112 -0
- package/coverage/lcov-report/if-run/types/parameters.ts.html +106 -0
- package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +277 -0
- package/coverage/lcov-report/if-run/util/args.ts.html +325 -0
- package/coverage/lcov-report/if-run/util/helpers.ts.html +208 -0
- package/coverage/lcov-report/if-run/util/index.html +191 -0
- package/coverage/lcov-report/if-run/util/json.ts.html +115 -0
- package/coverage/lcov-report/if-run/util/log-memoize.ts.html +145 -0
- package/coverage/lcov-report/if-run/util/os-checker.ts.html +421 -0
- package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +202 -0
- package/coverage/lcov-report/index.html +551 -0
- package/coverage/lcov-report/lib/aggregate.ts.html +358 -0
- package/coverage/lcov-report/lib/compare.ts.html +286 -0
- package/coverage/lcov-report/lib/compute.ts.html +436 -0
- package/coverage/lcov-report/lib/environment.ts.html +376 -0
- package/coverage/lcov-report/lib/exhaust.ts.html +289 -0
- package/coverage/lcov-report/lib/index.html +221 -0
- package/coverage/lcov-report/lib/initialize.ts.html +430 -0
- package/coverage/lcov-report/lib/load.ts.html +268 -0
- package/coverage/lcov-report/lib/parameterize.ts.html +316 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/types/aggregation.ts.html +94 -0
- package/coverage/lcov-report/types/index.html +146 -0
- package/coverage/lcov-report/types/interface.ts.html +112 -0
- package/coverage/lcov-report/types/parameters.ts.html +106 -0
- package/coverage/lcov-report/util/aggregation-helper.ts.html +289 -0
- package/coverage/lcov-report/util/args.ts.html +649 -0
- package/coverage/lcov-report/util/debug-logger.ts.html +481 -0
- package/coverage/lcov-report/util/errors.ts.html +232 -0
- package/coverage/lcov-report/util/fs.ts.html +124 -0
- package/coverage/lcov-report/util/helpers.ts.html +895 -0
- package/coverage/lcov-report/util/index.html +296 -0
- package/coverage/lcov-report/util/json.ts.html +115 -0
- package/coverage/lcov-report/util/log-memoize.ts.html +145 -0
- package/coverage/lcov-report/util/logger.ts.html +151 -0
- package/coverage/lcov-report/util/npm.ts.html +499 -0
- package/coverage/lcov-report/util/os-checker.ts.html +421 -0
- package/coverage/lcov-report/util/plugin-storage.ts.html +202 -0
- package/coverage/lcov-report/util/validations.ts.html +544 -0
- package/coverage/lcov-report/util/yaml.ts.html +193 -0
- package/coverage/lcov.info +3548 -0
- package/manifests/examples/builtins/csv-import/success.yaml +22 -0
- package/manifests/examples/builtins/csv-import/test.csv +4 -0
- package/manifests/outputs/builtins/csv-import/success.yaml +84 -0
- package/package.json +3 -2
- package/src/if-run/builtins/csv-import/README.md +190 -0
- package/src/if-run/builtins/csv-lookup/README.md +7 -7
- package/manifests/outputs/bugs/package.json +0 -24
- package/manifests/outputs/builtins/coefficient/package.json +0 -24
- package/manifests/outputs/builtins/csv-lookup/cloud-metadata/package.json +0 -24
- package/manifests/outputs/builtins/csv-lookup/region-metadata/package.json +0 -24
- package/manifests/outputs/builtins/csv-lookup/tdp-finder/package.json +0 -24
- package/manifests/outputs/builtins/divide/package.json +0 -24
- package/manifests/outputs/builtins/exponent/package.json +0 -24
- package/manifests/outputs/builtins/interpolation/package.json +0 -24
- package/manifests/outputs/builtins/mock-observations/package.json +0 -24
- package/manifests/outputs/builtins/multiply/package.json +0 -24
- package/manifests/outputs/builtins/regex/package.json +0 -24
- package/manifests/outputs/builtins/sci/package.json +0 -24
- package/manifests/outputs/builtins/sci-embodied/package.json +0 -24
- package/manifests/outputs/builtins/shell/package.json +0 -24
- package/manifests/outputs/builtins/subtract/package.json +0 -24
- package/manifests/outputs/builtins/sum/package.json +0 -24
- package/manifests/outputs/builtins/time-converter/package.json +0 -24
- package/manifests/outputs/builtins/time-sync/package.json +0 -24
- package/manifests/outputs/features/package.json +0 -24
- package/manifests/outputs/features/regroup/package.json +0 -24
- package/manifests/outputs/pipelines/package.json +0 -24
|
@@ -20,7 +20,8 @@ const validateAndParseIfEnvArgs = () => {
|
|
|
20
20
|
}
|
|
21
21
|
catch (error) {
|
|
22
22
|
if (error instanceof Error) {
|
|
23
|
-
|
|
23
|
+
console.log(error.message);
|
|
24
|
+
(0, helpers_1.runHelpCommand)('if-env');
|
|
24
25
|
}
|
|
25
26
|
throw error;
|
|
26
27
|
}
|
|
@@ -44,4 +45,4 @@ const parseIfEnvArgs = async () => {
|
|
|
44
45
|
return { install, cwd };
|
|
45
46
|
};
|
|
46
47
|
exports.parseIfEnvArgs = parseIfEnvArgs;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1lbnYvdXRpbC9hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyQztBQUUzQyxpREFBNkM7QUFFN0MsNkNBQWtEO0FBQ2xELHVEQUE4RTtBQUM5RSxpREFBeUQ7QUFFekQsc0NBQWlDO0FBQ2pDLGdEQUE4RDtBQUk5RCxNQUFNLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDekQsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUIsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFDLEdBQUcsZ0JBQWMsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0seUJBQXlCLEdBQUcsR0FBRyxFQUFFO0lBQ3JDLElBQUk7UUFDRixPQUFPLElBQUEsNEJBQUssRUFBWSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUzQixJQUFBLHdCQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLEtBQUssQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLElBQUksRUFBRTtJQUN2QyxNQUFNLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUMsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO0lBRTdELElBQUksUUFBUSxFQUFFO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBQSw2QkFBbUIsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sSUFBQSxpQkFBWSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixNQUFNLElBQUksbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksSUFBQSx3QkFBaUIsRUFBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUM7U0FDM0M7UUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNsRDtJQUVELE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsY0FBYyxrQkFtQnpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZX0gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuXG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtpc0ZpbGVFeGlzdHN9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2ZzJztcbmltcG9ydCB7cHJlcGVuZEZ1bGxGaWxlUGF0aCwgcnVuSGVscENvbW1hbmR9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2hlbHBlcnMnO1xuaW1wb3J0IHtjaGVja0lmRmlsZUlzWWFtbH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwveWFtbCc7XG5cbmltcG9ydCB7Q09ORklHfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJRkVudkFyZ3N9IGZyb20gJy4uL3R5cGVzL3Byb2Nlc3MtYXJncyc7XG5cbmNvbnN0IHtQYXJzZUNsaVBhcmFtc0Vycm9yLCBDbGlTb3VyY2VGaWxlRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0FSR1MsIEhFTFB9ID0gQ09ORklHO1xuY29uc3Qge01BTklGRVNUX05PVF9GT1VORCwgU09VUkNFX0lTX05PVF9ZQU1MfSA9IENPTU1PTl9TVFJJTkdTO1xuXG4vKipcbiAqIFBhcnNlcyBgaWYtZW52YCBwcm9jZXNzIGFyZ3VtZW50cy5cbiAqL1xuY29uc3QgdmFsaWRhdGVBbmRQYXJzZUlmRW52QXJncyA9ICgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2U8SUZFbnZBcmdzPihBUkdTLCBIRUxQKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7XG5cbiAgICAgIHJ1bkhlbHBDb21tYW5kKCdpZi1lbnYnKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGBtYW5pZmVzdGAgY29tbWFuZCBpcyBwcm92aWRlZCBhbmQgaXQgaXMgdmFsaWQgbWFuaWZlc3QgZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlSWZFbnZBcmdzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7bWFuaWZlc3QsIGluc3RhbGwsIGN3ZH0gPSB2YWxpZGF0ZUFuZFBhcnNlSWZFbnZBcmdzKCk7XG5cbiAgaWYgKG1hbmlmZXN0KSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBwcmVwZW5kRnVsbEZpbGVQYXRoKG1hbmlmZXN0KTtcbiAgICBjb25zdCBpc01hbmlmZXN0RmlsZUV4aXN0cyA9IGF3YWl0IGlzRmlsZUV4aXN0cyhyZXNwb25zZSk7XG5cbiAgICBpZiAoIWlzTWFuaWZlc3RGaWxlRXhpc3RzKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihNQU5JRkVTVF9OT1RfRk9VTkQpO1xuICAgIH1cblxuICAgIGlmIChjaGVja0lmRmlsZUlzWWFtbChtYW5pZmVzdCkpIHtcbiAgICAgIHJldHVybiB7bWFuaWZlc3Q6IHJlc3BvbnNlLCBpbnN0YWxsLCBjd2R9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBDbGlTb3VyY2VGaWxlRXJyb3IoU09VUkNFX0lTX05PVF9ZQU1MKTtcbiAgfVxuXG4gIHJldHVybiB7aW5zdGFsbCwgY3dkfTtcbn07XG4iXX0=
|
|
@@ -29,6 +29,12 @@ exports.CONFIG = {
|
|
|
29
29
|
alias: 'd',
|
|
30
30
|
description: '[decription of the merged manifest]',
|
|
31
31
|
},
|
|
32
|
+
help: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
optional: true,
|
|
35
|
+
alias: 'h',
|
|
36
|
+
description: '[prints out the above help instruction]',
|
|
37
|
+
},
|
|
32
38
|
},
|
|
33
39
|
HELP: {
|
|
34
40
|
helpArg: 'help',
|
|
@@ -40,4 +46,4 @@ exports.CONFIG = {
|
|
|
40
46
|
],
|
|
41
47
|
},
|
|
42
48
|
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1lcmdlL2NvbmZpZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsZ0RBQTRDO0FBSTVDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFeEIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osU0FBUyxFQUFFO1lBQ1QsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLCtCQUErQjtTQUM3QztRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQ7UUFDRCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsK0JBQStCO1NBQzdDO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLHFDQUFxQztTQUNuRDtRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSx5Q0FBeUM7U0FDdkQ7S0FDd0M7SUFDM0MsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLE1BQU07UUFDZixxQkFBcUIsRUFBRTtZQUNyQixFQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUM7U0FDcEU7UUFDRCxxQkFBcUIsRUFBRTtZQUNyQixFQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUM7U0FDbkU7S0FDbUI7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJndW1lbnRDb25maWcsIFBhcnNlT3B0aW9uc30gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25maWcnO1xuXG5pbXBvcnQge0lGTWVyZ2VBcmdzfSBmcm9tICcuLi90eXBlcy9wcm9jZXNzLWFyZ3MnO1xuXG5jb25zdCB7RElTQ0xBSU1FUl9NRVNTQUdFfSA9IFNUUklOR1M7XG5cbmV4cG9ydCBjb25zdCBDT05GSUcgPSB7XG4gIEFSR1M6IHtcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgYWxpYXM6ICdtJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnW3BhdGggdG8gdGhlIG1hbmlmZXN0cyBmaWxlc10nLFxuICAgIH0sXG4gICAgb3V0cHV0OiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgIGFsaWFzOiAnbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1twYXRoIHRvIHRoZSBtZXJnZWQgb3V0cHV0IGZpbGVdJyxcbiAgICB9LFxuICAgIG5hbWU6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgYWxpYXM6ICduJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnW25hbWUgb2YgdGhlIG1lcmdlZCBtYW5pZmVzdF0nLFxuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgYWxpYXM6ICdkJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnW2RlY3JpcHRpb24gb2YgdGhlIG1lcmdlZCBtYW5pZmVzdF0nLFxuICAgIH0sXG4gICAgaGVscDoge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgYWxpYXM6ICdoJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnW3ByaW50cyBvdXQgdGhlIGFib3ZlIGhlbHAgaW5zdHJ1Y3Rpb25dJyxcbiAgICB9LFxuICB9IGFzIHVua25vd24gYXMgQXJndW1lbnRDb25maWc8SUZNZXJnZUFyZ3M+LFxuICBIRUxQOiB7XG4gICAgaGVscEFyZzogJ2hlbHAnLFxuICAgIGhlYWRlckNvbnRlbnRTZWN0aW9uczogW1xuICAgICAge2hlYWRlcjogJ0ltcGFjdCBGcmFtZXdvcmsnLCBjb250ZW50OiAnSUYtTWVyZ2UgSGVscGZ1bCBrZXl3b3JkczonfSxcbiAgICBdLFxuICAgIGZvb3RlckNvbnRlbnRTZWN0aW9uczogW1xuICAgICAge2hlYWRlcjogJ0dyZWVuIFNvZnR3YXJlIEZvdW5kYXRpb24nLCBjb250ZW50OiBESVNDTEFJTUVSX01FU1NBR0V9LFxuICAgIF0sXG4gIH0gYXMgUGFyc2VPcHRpb25zPGFueT4sXG59O1xuIl19
|
|
@@ -21,7 +21,8 @@ const validateAndParseIfMergeArgs = () => {
|
|
|
21
21
|
}
|
|
22
22
|
catch (error) {
|
|
23
23
|
if (error instanceof Error) {
|
|
24
|
-
|
|
24
|
+
console.log(error.message);
|
|
25
|
+
(0, helpers_1.runHelpCommand)('if-merge');
|
|
25
26
|
}
|
|
26
27
|
throw error;
|
|
27
28
|
}
|
|
@@ -56,4 +57,4 @@ const parseIfMergeArgs = async () => {
|
|
|
56
57
|
return { manifests: manifestsWithFullPath, output, name, description };
|
|
57
58
|
};
|
|
58
59
|
exports.parseIfMergeArgs = parseIfMergeArgs;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTJDO0FBQzNDLGlEQUE2QztBQUU3Qyw2Q0FBcUU7QUFDckUsdURBQThFO0FBQzlFLGlEQUF5RDtBQUV6RCxnREFBOEQ7QUFJOUQsc0NBQTBDO0FBRTFDLE1BQU0sRUFBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUNoRixNQUFNLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUM1QixNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBQ3ZDLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBQyxHQUFHLGdCQUFjLENBQUM7QUFFakU7O0dBRUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRTtJQUN2QyxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFLLEVBQWMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0IsSUFBQSx3QkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUN6QyxNQUFNLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztJQUU3RSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUVqQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSxzQkFBaUIsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDO0tBQy9DO0lBRUQsSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUEsNkJBQW1CLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHdCQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixNQUFNLElBQUksbUJBQW1CLENBQUMsR0FBRyxRQUFRLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxJQUFBLHdCQUFpQixFQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztLQUNGO0lBRUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQWpDVyxRQUFBLGdCQUFnQixvQkFpQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZX0gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7aXNGaWxlRXhpc3RzLCBpc0RpcmVjdG9yeUV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtwcmVwZW5kRnVsbEZpbGVQYXRoLCBydW5IZWxwQ29tbWFuZH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge2NoZWNrSWZGaWxlSXNZYW1sfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC95YW1sJztcblxuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJRk1lcmdlQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuaW1wb3J0IHtDT05GSUcsIFNUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtQYXJzZUNsaVBhcmFtc0Vycm9yLCBJbnZhbGlkRGlyZWN0b3J5RXJyb3IsIENsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7QVJHUywgSEVMUH0gPSBDT05GSUc7XG5jb25zdCB7TUFOSUZFU1RfSVNfTk9UX1lBTUx9ID0gU1RSSU5HUztcbmNvbnN0IHtNQU5JRkVTVF9OT1RfRk9VTkQsIERJUkVDVE9SWV9OT1RfRk9VTkR9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogUGFyc2VzIGBpZi1tZXJnZWAgcHJvY2VzcyBhcmd1bWVudHMuXG4gKi9cbmNvbnN0IHZhbGlkYXRlQW5kUGFyc2VJZk1lcmdlQXJncyA9ICgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2U8SUZNZXJnZUFyZ3M+KEFSR1MsIEhFTFApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTtcblxuICAgICAgcnVuSGVscENvbW1hbmQoJ2lmLW1lcmdlJyk7XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBgbWFuaWZlc3RzYCBjb21tYW5kIGlzIHByb3ZpZGVkIGFuZCB0aGV5IGFyZSB2YWxpZCBtYW5pZmVzdHMgZmlsZXMgb3IgYSBmb2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlmTWVyZ2VBcmdzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7bWFuaWZlc3RzLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufSA9IHZhbGlkYXRlQW5kUGFyc2VJZk1lcmdlQXJncygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0c1dpdGhGdWxsUGF0aCA9IFtdO1xuXG4gIGlmIChtYW5pZmVzdHMubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgaXNEaXJlY3RvcnkgPSBhd2FpdCBpc0RpcmVjdG9yeUV4aXN0cyhtYW5pZmVzdHNbMF0pO1xuICAgIGlmICghaXNEaXJlY3RvcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGlyZWN0b3J5RXJyb3IoRElSRUNUT1JZX05PVF9GT1VORCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHttYW5pZmVzdHMsIG91dHB1dCwgbmFtZSwgZGVzY3JpcHRpb259O1xuICB9XG5cbiAgZm9yIGF3YWl0IChjb25zdCBtYW5pZmVzdCBvZiBtYW5pZmVzdHMpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHByZXBlbmRGdWxsRmlsZVBhdGgobWFuaWZlc3QpO1xuICAgIGNvbnN0IGlzTWFuaWZlc3RGaWxlRXhpc3RzID0gYXdhaXQgaXNGaWxlRXhpc3RzKHJlc3BvbnNlKTtcbiAgICBjb25zdCBpc1lhbWxGaWxlID0gY2hlY2tJZkZpbGVJc1lhbWwocmVzcG9uc2UpO1xuXG4gICAgaWYgKCFpc01hbmlmZXN0RmlsZUV4aXN0cykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlQ2xpUGFyYW1zRXJyb3IoYCR7bWFuaWZlc3R9ICR7TUFOSUZFU1RfTk9UX0ZPVU5EfWApO1xuICAgIH1cblxuICAgIGlmICghaXNZYW1sRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsaVNvdXJjZUZpbGVFcnJvcihNQU5JRkVTVF9JU19OT1RfWUFNTChtYW5pZmVzdCkpO1xuICAgIH1cblxuICAgIGlmIChjaGVja0lmRmlsZUlzWWFtbChtYW5pZmVzdCkpIHtcbiAgICAgIG1hbmlmZXN0c1dpdGhGdWxsUGF0aC5wdXNoKHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge21hbmlmZXN0czogbWFuaWZlc3RzV2l0aEZ1bGxQYXRoLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufTtcbn07XG4iXX0=
|
|
@@ -74,10 +74,13 @@ const mergeManifestsData = async (manifests, context) => {
|
|
|
74
74
|
* Saves the merged manifest in the `merged-manifest.yaml` file.
|
|
75
75
|
*/
|
|
76
76
|
const saveMergedManifest = async (tree, context, outputPath) => {
|
|
77
|
+
if (outputPath?.endsWith('/')) {
|
|
78
|
+
outputPath += 'merged-manifest';
|
|
79
|
+
}
|
|
77
80
|
const output = {
|
|
78
81
|
outputPath,
|
|
79
82
|
noOutput: false,
|
|
80
83
|
};
|
|
81
84
|
await (0, exhaust_1.exhaust)(tree, context, output);
|
|
82
85
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFN0IsNkNBQStEO0FBRS9ELGdEQUEyQztBQUUzQyxzREFBaUQ7QUFHakQ7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBc0IsRUFBRSxFQUFFO0lBQzdELE1BQU0sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxTQUFTLENBQUM7SUFDM0UsSUFBSSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFFakMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLFNBQVMsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxJQUFJLEVBQUUsSUFBSSxJQUFJLFVBQVU7UUFDeEIsV0FBVyxFQUFFLFdBQVcsSUFBSSxpQkFBaUI7UUFDN0MsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBRSxFQUFDO0tBQzFCLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCxNQUFNLGtCQUFrQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDO0FBaEJXLFFBQUEsY0FBYyxrQkFnQnpCO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFBRSxTQUFtQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUN6RSxNQUFNLElBQUksR0FBUSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVqQyxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBVyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUc7WUFDM0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDN0IsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDbEMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHO2dCQUN4QyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsSUFBUyxFQUNULE9BQWdCLEVBQ2hCLFVBQThCLEVBQzlCLEVBQUU7SUFDRixJQUFJLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDN0IsVUFBVSxJQUFJLGlCQUFpQixDQUFDO0tBQ2pDO0lBRUQsTUFBTSxNQUFNLEdBQUc7UUFDYixVQUFVO1FBQ1YsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztJQUNGLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtnZXRGaWxlTmFtZSwgZ2V0WWFtbEZpbGVzfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9mcyc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5pbXBvcnQge2xvYWR9IGZyb20gJy4uLy4uL2NvbW1vbi9saWIvbG9hZCc7XG5cbmltcG9ydCB7ZXhoYXVzdH0gZnJvbSAnLi4vLi4vaWYtcnVuL2xpYi9leGhhdXN0JztcbmltcG9ydCB7SUZNZXJnZUFyZ3N9IGZyb20gJy4uL3R5cGVzL3Byb2Nlc3MtYXJncyc7XG5cbi8qKlxuICogTWVyZ2VzIHRoZSBnaXZlbiBtYW5pZmVzdHMgaW4gdGhlIG9uZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgbWVyZ2VNYW5pZmVzdHMgPSBhc3luYyAobWVyZ2VBcmdzOiBJRk1lcmdlQXJncykgPT4ge1xuICBjb25zdCB7bWFuaWZlc3RzOiBjb21tYW5kTWFuaWZlc3RzLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufSA9IG1lcmdlQXJncztcbiAgbGV0IG1hbmlmZXN0cyA9IGNvbW1hbmRNYW5pZmVzdHM7XG5cbiAgaWYgKGNvbW1hbmRNYW5pZmVzdHMubGVuZ3RoID09PSAxKSB7XG4gICAgbWFuaWZlc3RzID0gYXdhaXQgZ2V0WWFtbEZpbGVzKGNvbW1hbmRNYW5pZmVzdHNbMF0pO1xuICB9XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgbmFtZTogbmFtZSB8fCAnaWYtbWVyZ2UnLFxuICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB8fCAnbWVyZ2VkIG1hbmlmZXN0JyxcbiAgICB0YWdzOiBudWxsLFxuICAgIGluaXRpYWxpemU6IHtwbHVnaW5zOiB7fX0sXG4gIH07XG4gIGNvbnN0IHRyZWUgPSBhd2FpdCBtZXJnZU1hbmlmZXN0c0RhdGEobWFuaWZlc3RzLCBjb250ZXh0KTtcblxuICBhd2FpdCBzYXZlTWVyZ2VkTWFuaWZlc3QodHJlZSwgY29udGV4dCwgb3V0cHV0KTtcbn07XG5cbi8qKlxuICogTWVyZ2VzIG1hbmlmZXN0cyBkYXRhLlxuICovXG5jb25zdCBtZXJnZU1hbmlmZXN0c0RhdGEgPSBhc3luYyAobWFuaWZlc3RzOiBzdHJpbmdbXSwgY29udGV4dDogQ29udGV4dCkgPT4ge1xuICBjb25zdCB0cmVlOiBhbnkgPSB7Y2hpbGRyZW46IHt9fTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IG1hbmlmZXN0IG9mIG1hbmlmZXN0cykge1xuICAgIGNvbnN0IG1hbmlmZXN0TmFtZSA9IGdldEZpbGVOYW1lKG1hbmlmZXN0KTtcbiAgICBjb25zdCB7cmF3TWFuaWZlc3R9ID0gYXdhaXQgbG9hZChtYW5pZmVzdCk7XG4gICAgY29uc3QgcGFyZW50RGlyID0gcGF0aC5iYXNlbmFtZShwYXRoLmRpcm5hbWUobWFuaWZlc3QpKTtcbiAgICBjb25zdCB1bmlxdWVOYW1lID0gYCR7cGFyZW50RGlyfS0ke21hbmlmZXN0TmFtZX1gO1xuXG4gICAgY29udGV4dC50YWdzID0gT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC50YWdzLCByYXdNYW5pZmVzdC50YWdzKTtcbiAgICBjb250ZXh0LmluaXRpYWxpemUucGx1Z2lucyA9IHtcbiAgICAgIC4uLmNvbnRleHQuaW5pdGlhbGl6ZS5wbHVnaW5zLFxuICAgICAgLi4ucmF3TWFuaWZlc3QuaW5pdGlhbGl6ZS5wbHVnaW5zLFxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhyYXdNYW5pZmVzdC50cmVlLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIHRyZWUuY2hpbGRyZW5bYCR7Y2hpbGR9LSR7dW5pcXVlTmFtZX1gXSA9IHtcbiAgICAgICAgLi4ucmF3TWFuaWZlc3QudHJlZS5jaGlsZHJlbltjaGlsZF0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRyZWU7XG59O1xuXG4vKipcbiAqIFNhdmVzIHRoZSBtZXJnZWQgbWFuaWZlc3QgaW4gdGhlIGBtZXJnZWQtbWFuaWZlc3QueWFtbGAgZmlsZS5cbiAqL1xuY29uc3Qgc2F2ZU1lcmdlZE1hbmlmZXN0ID0gYXN5bmMgKFxuICB0cmVlOiBhbnksXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIG91dHB1dFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZFxuKSA9PiB7XG4gIGlmIChvdXRwdXRQYXRoPy5lbmRzV2l0aCgnLycpKSB7XG4gICAgb3V0cHV0UGF0aCArPSAnbWVyZ2VkLW1hbmlmZXN0JztcbiAgfVxuXG4gIGNvbnN0IG91dHB1dCA9IHtcbiAgICBvdXRwdXRQYXRoLFxuICAgIG5vT3V0cHV0OiBmYWxzZSxcbiAgfTtcbiAgYXdhaXQgZXhoYXVzdCh0cmVlLCBjb250ZXh0LCBvdXRwdXQpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ConfigParams, PluginParams } from '@grnsft/if-core/types';
|
|
2
|
+
export declare const CSVImport: (config: ConfigParams | undefined, parametersMetadata: import("@grnsft/if-core/types").PluginParametersMetadata, mapping: import("@grnsft/if-core/types").MappingParams) => {
|
|
3
|
+
metadata: {
|
|
4
|
+
inputs: {
|
|
5
|
+
[x: string]: {
|
|
6
|
+
description: string;
|
|
7
|
+
unit: string;
|
|
8
|
+
'aggregation-method': import("@grnsft/if-core/types").AggregationOptions;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
outputs: import("@grnsft/if-core/types").ParameterMetadata;
|
|
12
|
+
};
|
|
13
|
+
execute: (inputs: PluginParams[]) => Promise<{
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
}[]>;
|
|
16
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CSVImport = void 0;
|
|
4
|
+
/* eslint-disable eqeqeq */
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const interfaces_1 = require("@grnsft/if-core/interfaces");
|
|
7
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
8
|
+
const config_1 = require("../../config");
|
|
9
|
+
const csv_helpers_1 = require("../util/csv-helpers");
|
|
10
|
+
const { MISSING_CONFIG } = config_1.STRINGS;
|
|
11
|
+
const { ConfigError } = utils_1.ERRORS;
|
|
12
|
+
exports.CSVImport = (0, interfaces_1.PluginFactory)({
|
|
13
|
+
configValidation: (config) => {
|
|
14
|
+
if (!config || !Object.keys(config)?.length) {
|
|
15
|
+
throw new ConfigError(MISSING_CONFIG);
|
|
16
|
+
}
|
|
17
|
+
const configSchema = zod_1.z.object({
|
|
18
|
+
filepath: zod_1.z.string(),
|
|
19
|
+
output: zod_1.z
|
|
20
|
+
.string()
|
|
21
|
+
.or(zod_1.z.array(zod_1.z.string()))
|
|
22
|
+
.or(zod_1.z.array(zod_1.z.array(zod_1.z.string()))),
|
|
23
|
+
});
|
|
24
|
+
return (0, utils_1.validate)(configSchema, config);
|
|
25
|
+
},
|
|
26
|
+
implementation: async (inputs, config) => {
|
|
27
|
+
/**
|
|
28
|
+
* 1. Tries to retrieve given file (with url or local path).
|
|
29
|
+
* 2. Parses given CSV.
|
|
30
|
+
* 3. Filters requested information from CSV.
|
|
31
|
+
*/
|
|
32
|
+
const { filepath, output } = config;
|
|
33
|
+
const file = await (0, csv_helpers_1.retrieveFile)(filepath);
|
|
34
|
+
const parsedCSV = (0, csv_helpers_1.parseCSVFile)(file);
|
|
35
|
+
const result = parsedCSV?.map((input) => filterOutput(input, output));
|
|
36
|
+
return [...inputs, ...result];
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* 1. If output is anything, then removes query data from csv record to escape duplicates.
|
|
41
|
+
* 2. Otherwise checks if it's a miltidimensional array, then grabs multiple fields ().
|
|
42
|
+
* 3. If not, then returns single field.
|
|
43
|
+
* 4. In case if it's string, then
|
|
44
|
+
*/
|
|
45
|
+
const filterOutput = (dataFromCSV, output) => {
|
|
46
|
+
if (output === '*') {
|
|
47
|
+
return (0, csv_helpers_1.nanifyEmptyValues)(dataFromCSV);
|
|
48
|
+
}
|
|
49
|
+
if (Array.isArray(output)) {
|
|
50
|
+
/** Check if it's a multidimensional array. */
|
|
51
|
+
if (Array.isArray(output[0])) {
|
|
52
|
+
const result = {};
|
|
53
|
+
output.forEach(outputField => {
|
|
54
|
+
/** Check if there is no renaming request, then export as is */
|
|
55
|
+
const outputTitle = outputField[1] || outputField[0];
|
|
56
|
+
result[outputTitle] = (0, csv_helpers_1.fieldAccessor)(outputField[0], dataFromCSV);
|
|
57
|
+
});
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
const outputTitle = output[1] || output[0];
|
|
61
|
+
return {
|
|
62
|
+
[outputTitle]: (0, csv_helpers_1.fieldAccessor)(output[0], dataFromCSV),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
[output]: (0, csv_helpers_1.fieldAccessor)(output, dataFromCSV),
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2Nzdi1pbXBvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQTJCO0FBQzNCLDZCQUFzQjtBQUd0QiwyREFBeUQ7QUFDekQsaURBQXVEO0FBRXZELHlDQUFxQztBQUVyQyxxREFLNkI7QUFFN0IsTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFakMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUVoQixRQUFBLFNBQVMsR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDckMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxPQUFDO2lCQUNOLE1BQU0sRUFBRTtpQkFDUixFQUFFLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDdkIsRUFBRSxDQUFDLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBQSxnQkFBUSxFQUErQixZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBc0IsRUFBRSxNQUFvQixFQUFFLEVBQUU7UUFDckU7Ozs7V0FJRztRQUNILE1BQU0sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSwwQkFBWSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUEsMEJBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQ3BELFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQzVCLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLFlBQVksR0FBRyxDQUNuQixXQUFnQixFQUNoQixNQUFzQyxFQUN0QyxFQUFFO0lBQ0YsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO1FBQ2xCLE9BQU8sSUFBQSwrQkFBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQztLQUN2QztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6Qiw4Q0FBOEM7UUFDOUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUV2QixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMzQiwrREFBK0Q7Z0JBQy9ELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFBLDJCQUFhLEVBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0MsT0FBTztZQUNMLENBQUMsV0FBcUIsQ0FBQyxFQUFFLElBQUEsMkJBQWEsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDO1NBQy9ELENBQUM7S0FDSDtJQUVELE9BQU87UUFDTCxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsMkJBQWEsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0tBQzdDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBlcWVxZXEgKi9cbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtDb25maWdQYXJhbXMsIFBsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFUlJPUlMsIHZhbGlkYXRlfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7XG4gIGZpZWxkQWNjZXNzb3IsXG4gIG5hbmlmeUVtcHR5VmFsdWVzLFxuICBwYXJzZUNTVkZpbGUsXG4gIHJldHJpZXZlRmlsZSxcbn0gZnJvbSAnLi4vdXRpbC9jc3YtaGVscGVycyc7XG5cbmNvbnN0IHtNSVNTSU5HX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5jb25zdCB7Q29uZmlnRXJyb3J9ID0gRVJST1JTO1xuXG5leHBvcnQgY29uc3QgQ1NWSW1wb3J0ID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnIHx8ICFPYmplY3Qua2V5cyhjb25maWcpPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihNSVNTSU5HX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgZmlsZXBhdGg6IHouc3RyaW5nKCksXG4gICAgICBvdXRwdXQ6IHpcbiAgICAgICAgLnN0cmluZygpXG4gICAgICAgIC5vcih6LmFycmF5KHouc3RyaW5nKCkpKVxuICAgICAgICAub3Ioei5hcnJheSh6LmFycmF5KHouc3RyaW5nKCkpKSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdGU8ei5pbmZlcjx0eXBlb2YgY29uZmlnU2NoZW1hPj4oY29uZmlnU2NoZW1hLCBjb25maWcpO1xuICB9LFxuICBpbXBsZW1lbnRhdGlvbjogYXN5bmMgKGlucHV0czogUGx1Z2luUGFyYW1zW10sIGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgLyoqXG4gICAgICogMS4gVHJpZXMgdG8gcmV0cmlldmUgZ2l2ZW4gZmlsZSAod2l0aCB1cmwgb3IgbG9jYWwgcGF0aCkuXG4gICAgICogMi4gUGFyc2VzIGdpdmVuIENTVi5cbiAgICAgKiAzLiBGaWx0ZXJzIHJlcXVlc3RlZCBpbmZvcm1hdGlvbiBmcm9tIENTVi5cbiAgICAgKi9cbiAgICBjb25zdCB7ZmlsZXBhdGgsIG91dHB1dH0gPSBjb25maWc7XG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHJldHJpZXZlRmlsZShmaWxlcGF0aCk7XG4gICAgY29uc3QgcGFyc2VkQ1NWID0gcGFyc2VDU1ZGaWxlKGZpbGUpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gcGFyc2VkQ1NWPy5tYXAoKGlucHV0OiBQbHVnaW5QYXJhbXMpID0+XG4gICAgICBmaWx0ZXJPdXRwdXQoaW5wdXQsIG91dHB1dClcbiAgICApO1xuXG4gICAgcmV0dXJuIFsuLi5pbnB1dHMsIC4uLnJlc3VsdF07XG4gIH0sXG59KTtcblxuLyoqXG4gKiAxLiBJZiBvdXRwdXQgaXMgYW55dGhpbmcsIHRoZW4gcmVtb3ZlcyBxdWVyeSBkYXRhIGZyb20gY3N2IHJlY29yZCB0byBlc2NhcGUgZHVwbGljYXRlcy5cbiAqIDIuIE90aGVyd2lzZSBjaGVja3MgaWYgaXQncyBhIG1pbHRpZGltZW5zaW9uYWwgYXJyYXksIHRoZW4gZ3JhYnMgbXVsdGlwbGUgZmllbGRzICgpLlxuICogMy4gSWYgbm90LCB0aGVuIHJldHVybnMgc2luZ2xlIGZpZWxkLlxuICogNC4gSW4gY2FzZSBpZiBpdCdzIHN0cmluZywgdGhlblxuICovXG5jb25zdCBmaWx0ZXJPdXRwdXQgPSAoXG4gIGRhdGFGcm9tQ1NWOiBhbnksXG4gIG91dHB1dDogc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdXG4pID0+IHtcbiAgaWYgKG91dHB1dCA9PT0gJyonKSB7XG4gICAgcmV0dXJuIG5hbmlmeUVtcHR5VmFsdWVzKGRhdGFGcm9tQ1NWKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KG91dHB1dCkpIHtcbiAgICAvKiogQ2hlY2sgaWYgaXQncyBhIG11bHRpZGltZW5zaW9uYWwgYXJyYXkuICovXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3V0cHV0WzBdKSkge1xuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICAgICAgb3V0cHV0LmZvckVhY2gob3V0cHV0RmllbGQgPT4ge1xuICAgICAgICAvKiogQ2hlY2sgaWYgdGhlcmUgaXMgbm8gcmVuYW1pbmcgcmVxdWVzdCwgdGhlbiBleHBvcnQgYXMgaXMgKi9cbiAgICAgICAgY29uc3Qgb3V0cHV0VGl0bGUgPSBvdXRwdXRGaWVsZFsxXSB8fCBvdXRwdXRGaWVsZFswXTtcbiAgICAgICAgcmVzdWx0W291dHB1dFRpdGxlXSA9IGZpZWxkQWNjZXNzb3Iob3V0cHV0RmllbGRbMF0sIGRhdGFGcm9tQ1NWKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dFRpdGxlID0gb3V0cHV0WzFdIHx8IG91dHB1dFswXTtcblxuICAgIHJldHVybiB7XG4gICAgICBbb3V0cHV0VGl0bGUgYXMgc3RyaW5nXTogZmllbGRBY2Nlc3NvcihvdXRwdXRbMF0sIGRhdGFGcm9tQ1NWKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBbb3V0cHV0XTogZmllbGRBY2Nlc3NvcihvdXRwdXQsIGRhdGFGcm9tQ1NWKSxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.CSVLookup = void 0;
|
|
7
4
|
/* eslint-disable eqeqeq */
|
|
8
|
-
const promises_1 = require("fs/promises");
|
|
9
|
-
const axios_1 = __importDefault(require("axios"));
|
|
10
5
|
const zod_1 = require("zod");
|
|
11
|
-
const sync_1 = require("csv-parse/sync");
|
|
12
6
|
const interfaces_1 = require("@grnsft/if-core/interfaces");
|
|
13
7
|
const utils_1 = require("@grnsft/if-core/utils");
|
|
14
8
|
const config_1 = require("../../config");
|
|
15
|
-
const
|
|
16
|
-
const {
|
|
9
|
+
const csv_helpers_1 = require("../util/csv-helpers");
|
|
10
|
+
const { MISSING_CONFIG, NO_QUERY_DATA } = config_1.STRINGS;
|
|
11
|
+
const { QueryDataNotFoundError, ConfigError } = utils_1.ERRORS;
|
|
17
12
|
exports.CSVLookup = (0, interfaces_1.PluginFactory)({
|
|
18
13
|
configValidation: (config) => {
|
|
19
14
|
if (!config || !Object.keys(config)?.length) {
|
|
@@ -36,8 +31,8 @@ exports.CSVLookup = (0, interfaces_1.PluginFactory)({
|
|
|
36
31
|
* 3. Filters requested information from CSV.
|
|
37
32
|
*/
|
|
38
33
|
const { filepath, query, output } = config;
|
|
39
|
-
const file = await retrieveFile(filepath);
|
|
40
|
-
const parsedCSV = parseCSVFile(file);
|
|
34
|
+
const file = await (0, csv_helpers_1.retrieveFile)(filepath);
|
|
35
|
+
const parsedCSV = (0, csv_helpers_1.parseCSVFile)(file);
|
|
41
36
|
return inputs.map(input => {
|
|
42
37
|
/** Collects query values from input. */
|
|
43
38
|
const queryData = {};
|
|
@@ -58,61 +53,6 @@ exports.CSVLookup = (0, interfaces_1.PluginFactory)({
|
|
|
58
53
|
});
|
|
59
54
|
},
|
|
60
55
|
});
|
|
61
|
-
/**
|
|
62
|
-
* Checks if given string is URL.
|
|
63
|
-
*/
|
|
64
|
-
const isURL = (filepath) => {
|
|
65
|
-
try {
|
|
66
|
-
new URL(filepath);
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Checks if given `filepath` is url, then tries to fetch it.
|
|
75
|
-
* Otherwise tries to read file.
|
|
76
|
-
*/
|
|
77
|
-
const retrieveFile = async (filepath) => {
|
|
78
|
-
if (isURL(filepath)) {
|
|
79
|
-
const { data } = await axios_1.default.get(filepath).catch(error => {
|
|
80
|
-
throw new FetchingFileError(FILE_FETCH_FAILED(filepath, error.response.message));
|
|
81
|
-
});
|
|
82
|
-
return data;
|
|
83
|
-
}
|
|
84
|
-
return (0, promises_1.readFile)(filepath).catch(error => {
|
|
85
|
-
throw new ReadFileError(FILE_READ_FAILED(filepath, error));
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Checks if value is invalid: `undefined`, `null` or an empty string, then sets `nan` instead.
|
|
90
|
-
*/
|
|
91
|
-
const setNanValue = (value) => value == null || value === '' ? 'nan' : value;
|
|
92
|
-
/**
|
|
93
|
-
* Converts empty values to `nan`.
|
|
94
|
-
*/
|
|
95
|
-
const nanifyEmptyValues = (object) => {
|
|
96
|
-
if (typeof object === 'object') {
|
|
97
|
-
const keys = Object.keys(object);
|
|
98
|
-
keys.forEach(key => {
|
|
99
|
-
const value = object[key];
|
|
100
|
-
object[key] = setNanValue(value);
|
|
101
|
-
});
|
|
102
|
-
return object;
|
|
103
|
-
}
|
|
104
|
-
return setNanValue(object);
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* If `field` is missing from `object`, then reject with error.
|
|
108
|
-
* Otherwise nanify empty values and return data.
|
|
109
|
-
*/
|
|
110
|
-
const fieldAccessor = (field, object) => {
|
|
111
|
-
if (!(`${field}` in object)) {
|
|
112
|
-
throw new MissingCSVColumnError(MISSING_CSV_COLUMN(field));
|
|
113
|
-
}
|
|
114
|
-
return nanifyEmptyValues(object[field]);
|
|
115
|
-
};
|
|
116
56
|
/**
|
|
117
57
|
* 1. If output is anything, then removes query data from csv record to escape duplicates.
|
|
118
58
|
* 2. Otherwise checks if it's a miltidimensional array, then grabs multiple fields ().
|
|
@@ -126,7 +66,7 @@ const filterOutput = (dataFromCSV, params) => {
|
|
|
126
66
|
keys.forEach(key => {
|
|
127
67
|
delete dataFromCSV[key];
|
|
128
68
|
});
|
|
129
|
-
return nanifyEmptyValues(dataFromCSV);
|
|
69
|
+
return (0, csv_helpers_1.nanifyEmptyValues)(dataFromCSV);
|
|
130
70
|
}
|
|
131
71
|
if (Array.isArray(output)) {
|
|
132
72
|
/** Check if it's a multidimensional array. */
|
|
@@ -135,17 +75,17 @@ const filterOutput = (dataFromCSV, params) => {
|
|
|
135
75
|
output.forEach(outputField => {
|
|
136
76
|
/** Check if there is no renaming request, then export as is */
|
|
137
77
|
const outputTitle = outputField[1] || outputField[0];
|
|
138
|
-
result[outputTitle] = fieldAccessor(outputField[0], dataFromCSV);
|
|
78
|
+
result[outputTitle] = (0, csv_helpers_1.fieldAccessor)(outputField[0], dataFromCSV);
|
|
139
79
|
});
|
|
140
80
|
return result;
|
|
141
81
|
}
|
|
142
82
|
const outputTitle = output[1] || output[0];
|
|
143
83
|
return {
|
|
144
|
-
[outputTitle]: fieldAccessor(output[0], dataFromCSV),
|
|
84
|
+
[outputTitle]: (0, csv_helpers_1.fieldAccessor)(output[0], dataFromCSV),
|
|
145
85
|
};
|
|
146
86
|
}
|
|
147
87
|
return {
|
|
148
|
-
[output]: fieldAccessor(output, dataFromCSV),
|
|
88
|
+
[output]: (0, csv_helpers_1.fieldAccessor)(output, dataFromCSV),
|
|
149
89
|
};
|
|
150
90
|
};
|
|
151
91
|
/**
|
|
@@ -155,21 +95,4 @@ const withCriteria = (queryData) => (csvRecord) => {
|
|
|
155
95
|
const ifMatchesCriteria = Object.keys(queryData).map((key) => csvRecord[key] == queryData[key]);
|
|
156
96
|
return ifMatchesCriteria.every(value => value === true);
|
|
157
97
|
};
|
|
158
|
-
|
|
159
|
-
* Parses CSV file.
|
|
160
|
-
*/
|
|
161
|
-
const parseCSVFile = (file) => {
|
|
162
|
-
try {
|
|
163
|
-
const parsedCSV = (0, sync_1.parse)(file, {
|
|
164
|
-
columns: true,
|
|
165
|
-
skip_empty_lines: true,
|
|
166
|
-
cast: true,
|
|
167
|
-
});
|
|
168
|
-
return parsedCSV;
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
console.error(error);
|
|
172
|
-
throw new CSVParseError(error);
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2Nzdi1sb29rdXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkJBQTJCO0FBQzNCLDBDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkJBQXNCO0FBQ3RCLHlDQUFxQztBQUdyQywyREFBeUQ7QUFDekQsaURBQXVEO0FBRXZELHlDQUFxQztBQUVyQyxNQUFNLEVBQ0osaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGFBQWEsR0FDZCxHQUFHLGdCQUFPLENBQUM7QUFFWixNQUFNLEVBQ0osaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxhQUFhLEdBQ2QsR0FBRyxjQUFNLENBQUM7QUFFRSxRQUFBLFNBQVMsR0FBRyxJQUFBLDBCQUFhLEVBQUM7SUFDckMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkM7UUFFRCxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQzVCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BCLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsTUFBTSxFQUFFLE9BQUM7aUJBQ04sTUFBTSxFQUFFO2lCQUNSLEVBQUUsQ0FBQyxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lC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LENBQUMsR0FBRyxDQUNsRCxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FDbEQsQ0FBQztJQUVGLE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7SUFDN0MsSUFBSTtRQUNGLE1BQU0sU0FBUyxHQUFVLElBQUEsWUFBSyxFQUFDLElBQUksRUFBRTtZQUNuQyxPQUFPLEVBQUUsSUFBSTtZQUNiLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUFDLE9BQU8sS0FBVSxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNoQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuaW1wb3J0IHtyZWFkRmlsZX0gZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7cGFyc2V9IGZyb20gJ2Nzdi1wYXJzZS9zeW5jJztcblxuaW1wb3J0IHtDb25maWdQYXJhbXMsIFBsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFUlJPUlMsIHZhbGlkYXRlfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtcbiAgRklMRV9GRVRDSF9GQUlMRUQsXG4gIEZJTEVfUkVBRF9GQUlMRUQsXG4gIE1JU1NJTkdfQ1NWX0NPTFVNTixcbiAgTUlTU0lOR19DT05GSUcsXG4gIE5PX1FVRVJZX0RBVEEsXG59ID0gU1RSSU5HUztcblxuY29uc3Qge1xuICBGZXRjaGluZ0ZpbGVFcnJvcixcbiAgUmVhZEZpbGVFcnJvcixcbiAgTWlzc2luZ0NTVkNvbHVtbkVycm9yLFxuICBRdWVyeURhdGFOb3RGb3VuZEVycm9yLFxuICBDb25maWdFcnJvcixcbiAgQ1NWUGFyc2VFcnJvcixcbn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBDU1ZMb29rdXAgPSBQbHVnaW5GYWN0b3J5KHtcbiAgY29uZmlnVmFsaWRhdGlvbjogKGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgIU9iamVjdC5rZXlzKGNvbmZpZyk/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKE1JU1NJTkdfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICBmaWxlcGF0aDogei5zdHJpbmcoKSxcbiAgICAgIHF1ZXJ5OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKSxcbiAgICAgIG91dHB1dDogelxuICAgICAgICAuc3RyaW5nKClcbiAgICAgICAgLm9yKHouYXJyYXkoei5zdHJpbmcoKSkpXG4gICAgICAgIC5vcih6LmFycmF5KHouYXJyYXkoei5zdHJpbmcoKSkpKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBjb25maWdTY2hlbWE+Pihjb25maWdTY2hlbWEsIGNvbmZpZyk7XG4gIH0sXG4gIGltcGxlbWVudGF0aW9uOiBhc3luYyAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSwgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICAvKipcbiAgICAgKiAxLiBUcmllcyB0byByZXRyaWV2ZSBnaXZlbiBmaWxlICh3aXRoIHVybCBvciBsb2NhbCBwYXRoKS5cbiAgICAgKiAyLiBQYXJzZXMgZ2l2ZW4gQ1NWLlxuICAgICAqIDMuIEZpbHRlcnMgcmVxdWVzdGVkIGluZm9ybWF0aW9uIGZyb20gQ1NWLlxuICAgICAqL1xuICAgIGNvbnN0IHtmaWxlcGF0aCwgcXVlcnksIG91dHB1dH0gPSBjb25maWc7XG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHJldHJpZXZlRmlsZShmaWxlcGF0aCk7XG4gICAgY29uc3QgcGFyc2VkQ1NWID0gcGFyc2VDU1ZGaWxlKGZpbGUpO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgLyoqIENvbGxlY3RzIHF1ZXJ5IHZhbHVlcyBmcm9tIGlucHV0LiAqL1xuICAgICAgY29uc3QgcXVlcnlEYXRhOiBhbnkgPSB7fTtcbiAgICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5KTtcbiAgICAgIHF1ZXJ5S2V5cy5mb3JFYWNoKHF1ZXJ5S2V5ID0+IHtcbiAgICAgICAgY29uc3QgcXVlcnlWYWx1ZSA9IHF1ZXJ5W3F1ZXJ5S2V5XTtcbiAgICAgICAgcXVlcnlEYXRhW3F1ZXJ5S2V5XSA9IGlucHV0W3F1ZXJ5VmFsdWVdO1xuICAgICAgfSk7XG5cbiAgICAgIC8qKiBHZXRzIHJlbGF0ZWQgZGF0YSBmcm9tIENTVi4gKi9cbiAgICAgIGNvbnN0IHJlbGF0ZWREYXRhID0gcGFyc2VkQ1NWLmZpbmQod2l0aENyaXRlcmlhKHF1ZXJ5RGF0YSkpO1xuXG4gICAgICBpZiAoIXJlbGF0ZWREYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBRdWVyeURhdGFOb3RGb3VuZEVycm9yKE5PX1FVRVJZX0RBVEEpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgLi4uZmlsdGVyT3V0cHV0KHJlbGF0ZWREYXRhLCB7b3V0cHV0LCBxdWVyeX0pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiBzdHJpbmcgaXMgVVJMLlxuICovXG5jb25zdCBpc1VSTCA9IChmaWxlcGF0aDogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgbmV3IFVSTChmaWxlcGF0aCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiBgZmlsZXBhdGhgIGlzIHVybCwgdGhlbiB0cmllcyB0byBmZXRjaCBpdC5cbiAqIE90aGVyd2lzZSB0cmllcyB0byByZWFkIGZpbGUuXG4gKi9cbmNvbnN0IHJldHJpZXZlRmlsZSA9IGFzeW5jIChmaWxlcGF0aDogc3RyaW5nKSA9PiB7XG4gIGlmIChpc1VSTChmaWxlcGF0aCkpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSBhd2FpdCBheGlvcy5nZXQoZmlsZXBhdGgpLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIHRocm93IG5ldyBGZXRjaGluZ0ZpbGVFcnJvcihcbiAgICAgICAgRklMRV9GRVRDSF9GQUlMRUQoZmlsZXBhdGgsIGVycm9yLnJlc3BvbnNlLm1lc3NhZ2UpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICByZXR1cm4gcmVhZEZpbGUoZmlsZXBhdGgpLmNhdGNoKGVycm9yID0+IHtcbiAgICB0aHJvdyBuZXcgUmVhZEZpbGVFcnJvcihGSUxFX1JFQURfRkFJTEVEKGZpbGVwYXRoLCBlcnJvcikpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIGludmFsaWQ6IGB1bmRlZmluZWRgLCBgbnVsbGAgb3IgYW4gZW1wdHkgc3RyaW5nLCB0aGVuIHNldHMgYG5hbmAgaW5zdGVhZC5cbiAqL1xuY29uc3Qgc2V0TmFuVmFsdWUgPSAodmFsdWU6IGFueSkgPT5cbiAgdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgPyAnbmFuJyA6IHZhbHVlO1xuXG4vKipcbiAqIENvbnZlcnRzIGVtcHR5IHZhbHVlcyB0byBgbmFuYC5cbiAqL1xuY29uc3QgbmFuaWZ5RW1wdHlWYWx1ZXMgPSAob2JqZWN0OiBhbnkpID0+IHtcbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgICBvYmplY3Rba2V5XSA9IHNldE5hblZhbHVlKHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICByZXR1cm4gc2V0TmFuVmFsdWUob2JqZWN0KTtcbn07XG5cbi8qKlxuICogSWYgYGZpZWxkYCBpcyBtaXNzaW5nIGZyb20gYG9iamVjdGAsIHRoZW4gcmVqZWN0IHdpdGggZXJyb3IuXG4gKiBPdGhlcndpc2UgbmFuaWZ5IGVtcHR5IHZhbHVlcyBhbmQgcmV0dXJuIGRhdGEuXG4gKi9cbmNvbnN0IGZpZWxkQWNjZXNzb3IgPSAoZmllbGQ6IHN0cmluZywgb2JqZWN0OiBhbnkpID0+IHtcbiAgaWYgKCEoYCR7ZmllbGR9YCBpbiBvYmplY3QpKSB7XG4gICAgdGhyb3cgbmV3IE1pc3NpbmdDU1ZDb2x1bW5FcnJvcihNSVNTSU5HX0NTVl9DT0xVTU4oZmllbGQpKTtcbiAgfVxuXG4gIHJldHVybiBuYW5pZnlFbXB0eVZhbHVlcyhvYmplY3RbZmllbGRdKTtcbn07XG5cbi8qKlxuICogMS4gSWYgb3V0cHV0IGlzIGFueXRoaW5nLCB0aGVuIHJlbW92ZXMgcXVlcnkgZGF0YSBmcm9tIGNzdiByZWNvcmQgdG8gZXNjYXBlIGR1cGxpY2F0ZXMuXG4gKiAyLiBPdGhlcndpc2UgY2hlY2tzIGlmIGl0J3MgYSBtaWx0aWRpbWVuc2lvbmFsIGFycmF5LCB0aGVuIGdyYWJzIG11bHRpcGxlIGZpZWxkcyAoKS5cbiAqIDMuIElmIG5vdCwgdGhlbiByZXR1cm5zIHNpbmdsZSBmaWVsZC5cbiAqIDQuIEluIGNhc2UgaWYgaXQncyBzdHJpbmcsIHRoZW5cbiAqL1xuY29uc3QgZmlsdGVyT3V0cHV0ID0gKFxuICBkYXRhRnJvbUNTVjogYW55LFxuICBwYXJhbXM6IHtcbiAgICBvdXRwdXQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgc3RyaW5nW11bXTtcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfVxuKSA9PiB7XG4gIGNvbnN0IHtvdXRwdXQsIHF1ZXJ5fSA9IHBhcmFtcztcblxuICBpZiAob3V0cHV0ID09PSAnKicpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocXVlcnkpO1xuXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBkZWxldGUgZGF0YUZyb21DU1Zba2V5XTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuYW5pZnlFbXB0eVZhbHVlcyhkYXRhRnJvbUNTVik7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShvdXRwdXQpKSB7XG4gICAgLyoqIENoZWNrIGlmIGl0J3MgYSBtdWx0aWRpbWVuc2lvbmFsIGFycmF5LiAqL1xuICAgIGlmIChBcnJheS5pc0FycmF5KG91dHB1dFswXSkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgICAgIG91dHB1dC5mb3JFYWNoKG91dHB1dEZpZWxkID0+IHtcbiAgICAgICAgLyoqIENoZWNrIGlmIHRoZXJlIGlzIG5vIHJlbmFtaW5nIHJlcXVlc3QsIHRoZW4gZXhwb3J0IGFzIGlzICovXG4gICAgICAgIGNvbnN0IG91dHB1dFRpdGxlID0gb3V0cHV0RmllbGRbMV0gfHwgb3V0cHV0RmllbGRbMF07XG4gICAgICAgIHJlc3VsdFtvdXRwdXRUaXRsZV0gPSBmaWVsZEFjY2Vzc29yKG91dHB1dEZpZWxkWzBdLCBkYXRhRnJvbUNTVik7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXRUaXRsZSA9IG91dHB1dFsxXSB8fCBvdXRwdXRbMF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgW291dHB1dFRpdGxlIGFzIHN0cmluZ106IGZpZWxkQWNjZXNzb3Iob3V0cHV0WzBdLCBkYXRhRnJvbUNTViksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgW291dHB1dF06IGZpZWxkQWNjZXNzb3Iob3V0cHV0LCBkYXRhRnJvbUNTViksXG4gIH07XG59O1xuXG4vKipcbiAqIEFzc2VydHMgQ1NWIHJlY29yZCB3aXRoIHF1ZXJ5IGRhdGEuXG4gKi9cbmNvbnN0IHdpdGhDcml0ZXJpYSA9IChxdWVyeURhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IChjc3ZSZWNvcmQ6IGFueSkgPT4ge1xuICBjb25zdCBpZk1hdGNoZXNDcml0ZXJpYSA9IE9iamVjdC5rZXlzKHF1ZXJ5RGF0YSkubWFwKFxuICAgIChrZXk6IHN0cmluZykgPT4gY3N2UmVjb3JkW2tleV0gPT0gcXVlcnlEYXRhW2tleV1cbiAgKTtcblxuICByZXR1cm4gaWZNYXRjaGVzQ3JpdGVyaWEuZXZlcnkodmFsdWUgPT4gdmFsdWUgPT09IHRydWUpO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgQ1NWIGZpbGUuXG4gKi9cbmNvbnN0IHBhcnNlQ1NWRmlsZSA9IChmaWxlOiBzdHJpbmcgfCBCdWZmZXIpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRDU1Y6IGFueVtdID0gcGFyc2UoZmlsZSwge1xuICAgICAgY29sdW1uczogdHJ1ZSxcbiAgICAgIHNraXBfZW1wdHlfbGluZXM6IHRydWUsXG4gICAgICBjYXN0OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhcnNlZENTVjtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIHRocm93IG5ldyBDU1ZQYXJzZUVycm9yKGVycm9yKTtcbiAgfVxufTtcbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2Nzdi1sb29rdXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkJBQTJCO0FBQzNCLDZCQUFzQjtBQUd0QiwyREFBeUQ7QUFDekQsaURBQXVEO0FBRXZELHlDQUFxQztBQUNyQyxxREFLNkI7QUFFN0IsTUFBTSxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRWhELE1BQU0sRUFBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFeEMsUUFBQSxTQUFTLEdBQUcsSUFBQSwwQkFBYSxFQUFDO0lBQ3JDLGdCQUFnQixFQUFFLENBQUMsTUFBb0IsRUFBRSxFQUFFO1FBQ3pDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRTtZQUMzQyxNQUFNLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsTUFBTSxZQUFZLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztZQUM1QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNwQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxPQUFDO2lCQUNOLE1BQU0sRUFBRTtpQkFDUixFQUFFLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDdkIsRUFBRSxDQUFDLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUVILE9B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QUFDLENBQUMsRUFBRSxXQUFXLENBQUM7U0FDL0QsQ0FBQztLQUNIO0lBRUQsT0FBTztRQUNMLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBQSwyQkFBYSxFQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7S0FDN0MsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO0lBQzFFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQ2xELENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUNsRCxDQUFDO0lBRUYsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7Q29uZmlnUGFyYW1zLCBQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7RVJST1JTLCB2YWxpZGF0ZX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHtcbiAgZmllbGRBY2Nlc3NvcixcbiAgbmFuaWZ5RW1wdHlWYWx1ZXMsXG4gIHBhcnNlQ1NWRmlsZSxcbiAgcmV0cmlldmVGaWxlLFxufSBmcm9tICcuLi91dGlsL2Nzdi1oZWxwZXJzJztcblxuY29uc3Qge01JU1NJTkdfQ09ORklHLCBOT19RVUVSWV9EQVRBfSA9IFNUUklOR1M7XG5cbmNvbnN0IHtRdWVyeURhdGFOb3RGb3VuZEVycm9yLCBDb25maWdFcnJvcn0gPSBFUlJPUlM7XG5cbmV4cG9ydCBjb25zdCBDU1ZMb29rdXAgPSBQbHVnaW5GYWN0b3J5KHtcbiAgY29uZmlnVmFsaWRhdGlvbjogKGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgIU9iamVjdC5rZXlzKGNvbmZpZyk/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKE1JU1NJTkdfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgICBmaWxlcGF0aDogei5zdHJpbmcoKSxcbiAgICAgIHF1ZXJ5OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKSxcbiAgICAgIG91dHB1dDogelxuICAgICAgICAuc3RyaW5nKClcbiAgICAgICAgLm9yKHouYXJyYXkoei5zdHJpbmcoKSkpXG4gICAgICAgIC5vcih6LmFycmF5KHouYXJyYXkoei5zdHJpbmcoKSkpKSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBjb25maWdTY2hlbWE+Pihjb25maWdTY2hlbWEsIGNvbmZpZyk7XG4gIH0sXG4gIGltcGxlbWVudGF0aW9uOiBhc3luYyAoaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSwgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICAvKipcbiAgICAgKiAxLiBUcmllcyB0byByZXRyaWV2ZSBnaXZlbiBmaWxlICh3aXRoIHVybCBvciBsb2NhbCBwYXRoKS5cbiAgICAgKiAyLiBQYXJzZXMgZ2l2ZW4gQ1NWLlxuICAgICAqIDMuIEZpbHRlcnMgcmVxdWVzdGVkIGluZm9ybWF0aW9uIGZyb20gQ1NWLlxuICAgICAqL1xuICAgIGNvbnN0IHtmaWxlcGF0aCwgcXVlcnksIG91dHB1dH0gPSBjb25maWc7XG4gICAgY29uc3QgZmlsZSA9IGF3YWl0IHJldHJpZXZlRmlsZShmaWxlcGF0aCk7XG4gICAgY29uc3QgcGFyc2VkQ1NWID0gcGFyc2VDU1ZGaWxlKGZpbGUpO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoaW5wdXQgPT4ge1xuICAgICAgLyoqIENvbGxlY3RzIHF1ZXJ5IHZhbHVlcyBmcm9tIGlucHV0LiAqL1xuICAgICAgY29uc3QgcXVlcnlEYXRhOiBhbnkgPSB7fTtcbiAgICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5KTtcbiAgICAgIHF1ZXJ5S2V5cy5mb3JFYWNoKHF1ZXJ5S2V5ID0+IHtcbiAgICAgICAgY29uc3QgcXVlcnlWYWx1ZSA9IHF1ZXJ5W3F1ZXJ5S2V5XTtcbiAgICAgICAgcXVlcnlEYXRhW3F1ZXJ5S2V5XSA9IGlucHV0W3F1ZXJ5VmFsdWVdO1xuICAgICAgfSk7XG5cbiAgICAgIC8qKiBHZXRzIHJlbGF0ZWQgZGF0YSBmcm9tIENTVi4gKi9cbiAgICAgIGNvbnN0IHJlbGF0ZWREYXRhID0gcGFyc2VkQ1NWLmZpbmQod2l0aENyaXRlcmlhKHF1ZXJ5RGF0YSkpO1xuXG4gICAgICBpZiAoIXJlbGF0ZWREYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBRdWVyeURhdGFOb3RGb3VuZEVycm9yKE5PX1FVRVJZX0RBVEEpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgLi4uZmlsdGVyT3V0cHV0KHJlbGF0ZWREYXRhLCB7b3V0cHV0LCBxdWVyeX0pLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIDEuIElmIG91dHB1dCBpcyBhbnl0aGluZywgdGhlbiByZW1vdmVzIHF1ZXJ5IGRhdGEgZnJvbSBjc3YgcmVjb3JkIHRvIGVzY2FwZSBkdXBsaWNhdGVzLlxuICogMi4gT3RoZXJ3aXNlIGNoZWNrcyBpZiBpdCdzIGEgbWlsdGlkaW1lbnNpb25hbCBhcnJheSwgdGhlbiBncmFicyBtdWx0aXBsZSBmaWVsZHMgKCkuXG4gKiAzLiBJZiBub3QsIHRoZW4gcmV0dXJucyBzaW5nbGUgZmllbGQuXG4gKiA0LiBJbiBjYXNlIGlmIGl0J3Mgc3RyaW5nLCB0aGVuXG4gKi9cbmNvbnN0IGZpbHRlck91dHB1dCA9IChcbiAgZGF0YUZyb21DU1Y6IGFueSxcbiAgcGFyYW1zOiB7XG4gICAgb3V0cHV0OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHN0cmluZ1tdW107XG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH1cbikgPT4ge1xuICBjb25zdCB7b3V0cHV0LCBxdWVyeX0gPSBwYXJhbXM7XG5cbiAgaWYgKG91dHB1dCA9PT0gJyonKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5KTtcblxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgZGVsZXRlIGRhdGFGcm9tQ1NWW2tleV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmFuaWZ5RW1wdHlWYWx1ZXMoZGF0YUZyb21DU1YpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkob3V0cHV0KSkge1xuICAgIC8qKiBDaGVjayBpZiBpdCdzIGEgbXVsdGlkaW1lbnNpb25hbCBhcnJheS4gKi9cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvdXRwdXRbMF0pKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuXG4gICAgICBvdXRwdXQuZm9yRWFjaChvdXRwdXRGaWVsZCA9PiB7XG4gICAgICAgIC8qKiBDaGVjayBpZiB0aGVyZSBpcyBubyByZW5hbWluZyByZXF1ZXN0LCB0aGVuIGV4cG9ydCBhcyBpcyAqL1xuICAgICAgICBjb25zdCBvdXRwdXRUaXRsZSA9IG91dHB1dEZpZWxkWzFdIHx8IG91dHB1dEZpZWxkWzBdO1xuICAgICAgICByZXN1bHRbb3V0cHV0VGl0bGVdID0gZmllbGRBY2Nlc3NvcihvdXRwdXRGaWVsZFswXSwgZGF0YUZyb21DU1YpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0VGl0bGUgPSBvdXRwdXRbMV0gfHwgb3V0cHV0WzBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIFtvdXRwdXRUaXRsZSBhcyBzdHJpbmddOiBmaWVsZEFjY2Vzc29yKG91dHB1dFswXSwgZGF0YUZyb21DU1YpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFtvdXRwdXRdOiBmaWVsZEFjY2Vzc29yKG91dHB1dCwgZGF0YUZyb21DU1YpLFxuICB9O1xufTtcblxuLyoqXG4gKiBBc3NlcnRzIENTViByZWNvcmQgd2l0aCBxdWVyeSBkYXRhLlxuICovXG5jb25zdCB3aXRoQ3JpdGVyaWEgPSAocXVlcnlEYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiAoY3N2UmVjb3JkOiBhbnkpID0+IHtcbiAgY29uc3QgaWZNYXRjaGVzQ3JpdGVyaWEgPSBPYmplY3Qua2V5cyhxdWVyeURhdGEpLm1hcChcbiAgICAoa2V5OiBzdHJpbmcpID0+IGNzdlJlY29yZFtrZXldID09IHF1ZXJ5RGF0YVtrZXldXG4gICk7XG5cbiAgcmV0dXJuIGlmTWF0Y2hlc0NyaXRlcmlhLmV2ZXJ5KHZhbHVlID0+IHZhbHVlID09PSB0cnVlKTtcbn07XG4iXX0=
|
|
@@ -9,6 +9,7 @@ export { SciEmbodied } from './sci-embodied';
|
|
|
9
9
|
export { Sci } from './sci';
|
|
10
10
|
export { Exponent } from './exponent';
|
|
11
11
|
export { CSVLookup } from './csv-lookup';
|
|
12
|
+
export { CSVImport } from './csv-import';
|
|
12
13
|
export { Shell } from './shell';
|
|
13
14
|
export { Regex } from './regex';
|
|
14
15
|
export { Copy } from './copy-param';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TimeSync = exports.TimeConverter = exports.Copy = exports.Regex = exports.Shell = exports.CSVLookup = exports.Exponent = exports.Sci = exports.SciEmbodied = exports.Sum = exports.Multiply = exports.Coefficient = exports.Subtract = exports.Divide = exports.MockObservations = exports.Interpolation = void 0;
|
|
3
|
+
exports.TimeSync = exports.TimeConverter = exports.Copy = exports.Regex = exports.Shell = exports.CSVImport = exports.CSVLookup = exports.Exponent = exports.Sci = exports.SciEmbodied = exports.Sum = exports.Multiply = exports.Coefficient = exports.Subtract = exports.Divide = exports.MockObservations = exports.Interpolation = void 0;
|
|
4
4
|
var interpolation_1 = require("./interpolation");
|
|
5
5
|
Object.defineProperty(exports, "Interpolation", { enumerable: true, get: function () { return interpolation_1.Interpolation; } });
|
|
6
6
|
var mock_observations_1 = require("./mock-observations");
|
|
@@ -23,6 +23,8 @@ var exponent_1 = require("./exponent");
|
|
|
23
23
|
Object.defineProperty(exports, "Exponent", { enumerable: true, get: function () { return exponent_1.Exponent; } });
|
|
24
24
|
var csv_lookup_1 = require("./csv-lookup");
|
|
25
25
|
Object.defineProperty(exports, "CSVLookup", { enumerable: true, get: function () { return csv_lookup_1.CSVLookup; } });
|
|
26
|
+
var csv_import_1 = require("./csv-import");
|
|
27
|
+
Object.defineProperty(exports, "CSVImport", { enumerable: true, get: function () { return csv_import_1.CSVImport; } });
|
|
26
28
|
var shell_1 = require("./shell");
|
|
27
29
|
Object.defineProperty(exports, "Shell", { enumerable: true, get: function () { return shell_1.Shell; } });
|
|
28
30
|
var regex_1 = require("./regex");
|
|
@@ -33,4 +35,4 @@ var time_converter_1 = require("./time-converter");
|
|
|
33
35
|
Object.defineProperty(exports, "TimeConverter", { enumerable: true, get: function () { return time_converter_1.TimeConverter; } });
|
|
34
36
|
var time_sync_1 = require("./time-sync");
|
|
35
37
|
Object.defineProperty(exports, "TimeSync", { enumerable: true, get: function () { return time_sync_1.TimeSync; } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE4QztBQUF0Qyw4R0FBQSxhQUFhLE9BQUE7QUFDckIseURBQXFEO0FBQTdDLHFIQUFBLGdCQUFnQixPQUFBO0FBQ3hCLG1DQUFnQztBQUF4QixnR0FBQSxNQUFNLE9BQUE7QUFDZCx1Q0FBb0M7QUFBNUIsb0dBQUEsUUFBUSxPQUFBO0FBQ2hCLDZDQUEwQztBQUFsQywwR0FBQSxXQUFXLE9BQUE7QUFDbkIsdUNBQW9DO0FBQTVCLG9HQUFBLFFBQVEsT0FBQTtBQUNoQiw2QkFBMEI7QUFBbEIsMEZBQUEsR0FBRyxPQUFBO0FBQ1gsK0NBQTJDO0FBQW5DLDJHQUFBLFdBQVcsT0FBQTtBQUNuQiw2QkFBMEI7QUFBbEIsMEZBQUEsR0FBRyxPQUFBO0FBQ1gsdUNBQW9DO0FBQTVCLG9HQUFBLFFBQVEsT0FBQTtBQUNoQiwyQ0FBdUM7QUFBL0IsdUdBQUEsU0FBUyxPQUFBO0FBQ2pCLDJDQUF1QztBQUEvQix1R0FBQSxTQUFTLE9BQUE7QUFDakIsaUNBQThCO0FBQXRCLDhGQUFBLEtBQUssT0FBQTtBQUNiLGlDQUE4QjtBQUF0Qiw4RkFBQSxLQUFLLE9BQUE7QUFDYiwyQ0FBa0M7QUFBMUIsa0dBQUEsSUFBSSxPQUFBO0FBQ1osbURBQStDO0FBQXZDLCtHQUFBLGFBQWEsT0FBQTtBQUNyQix5Q0FBcUM7QUFBN0IscUdBQUEsUUFBUSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtJbnRlcnBvbGF0aW9ufSBmcm9tICcuL2ludGVycG9sYXRpb24nO1xuZXhwb3J0IHtNb2NrT2JzZXJ2YXRpb25zfSBmcm9tICcuL21vY2stb2JzZXJ2YXRpb25zJztcbmV4cG9ydCB7RGl2aWRlfSBmcm9tICcuL2RpdmlkZSc7XG5leHBvcnQge1N1YnRyYWN0fSBmcm9tICcuL3N1YnRyYWN0JztcbmV4cG9ydCB7Q29lZmZpY2llbnR9IGZyb20gJy4vY29lZmZpY2llbnQnO1xuZXhwb3J0IHtNdWx0aXBseX0gZnJvbSAnLi9tdWx0aXBseSc7XG5leHBvcnQge1N1bX0gZnJvbSAnLi9zdW0nO1xuZXhwb3J0IHtTY2lFbWJvZGllZH0gZnJvbSAnLi9zY2ktZW1ib2RpZWQnO1xuZXhwb3J0IHtTY2l9IGZyb20gJy4vc2NpJztcbmV4cG9ydCB7RXhwb25lbnR9IGZyb20gJy4vZXhwb25lbnQnO1xuZXhwb3J0IHtDU1ZMb29rdXB9IGZyb20gJy4vY3N2LWxvb2t1cCc7XG5leHBvcnQge0NTVkltcG9ydH0gZnJvbSAnLi9jc3YtaW1wb3J0JztcbmV4cG9ydCB7U2hlbGx9IGZyb20gJy4vc2hlbGwnO1xuZXhwb3J0IHtSZWdleH0gZnJvbSAnLi9yZWdleCc7XG5leHBvcnQge0NvcHl9IGZyb20gJy4vY29weS1wYXJhbSc7XG5leHBvcnQge1RpbWVDb252ZXJ0ZXJ9IGZyb20gJy4vdGltZS1jb252ZXJ0ZXInO1xuZXhwb3J0IHtUaW1lU3luY30gZnJvbSAnLi90aW1lLXN5bmMnO1xuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if given string is URL.
|
|
3
|
+
*/
|
|
4
|
+
export declare const isURL: (filepath: string) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Checks if given `filepath` is url, then tries to fetch it.
|
|
7
|
+
* Otherwise tries to read file.
|
|
8
|
+
*/
|
|
9
|
+
export declare const retrieveFile: (filepath: string) => Promise<any>;
|
|
10
|
+
/**
|
|
11
|
+
* Checks if value is invalid: `undefined`, `null` or an empty string, then sets `nan` instead.
|
|
12
|
+
*/
|
|
13
|
+
export declare const setNanValue: (value: any) => any;
|
|
14
|
+
/**
|
|
15
|
+
* Converts empty values to `nan`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const nanifyEmptyValues: (object: any) => any;
|
|
18
|
+
/**
|
|
19
|
+
* If `field` is missing from `object`, then reject with error.
|
|
20
|
+
* Otherwise nanify empty values and return data.
|
|
21
|
+
*/
|
|
22
|
+
export declare const fieldAccessor: (field: string, object: any) => any;
|
|
23
|
+
/**
|
|
24
|
+
* Parses CSV file.
|
|
25
|
+
*/
|
|
26
|
+
export declare const parseCSVFile: (file: string | Buffer) => any[];
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseCSVFile = exports.fieldAccessor = exports.nanifyEmptyValues = exports.setNanValue = exports.retrieveFile = exports.isURL = void 0;
|
|
7
|
+
const promises_1 = require("fs/promises");
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
const sync_1 = require("csv-parse/sync");
|
|
10
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
11
|
+
const config_1 = require("../../config");
|
|
12
|
+
const { FILE_FETCH_FAILED, FILE_READ_FAILED, MISSING_CSV_COLUMN } = config_1.STRINGS;
|
|
13
|
+
const { FetchingFileError, ReadFileError, MissingCSVColumnError, CSVParseError } = utils_1.ERRORS;
|
|
14
|
+
/**
|
|
15
|
+
* Checks if given string is URL.
|
|
16
|
+
*/
|
|
17
|
+
const isURL = (filepath) => {
|
|
18
|
+
try {
|
|
19
|
+
new URL(filepath);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.isURL = isURL;
|
|
27
|
+
/**
|
|
28
|
+
* Checks if given `filepath` is url, then tries to fetch it.
|
|
29
|
+
* Otherwise tries to read file.
|
|
30
|
+
*/
|
|
31
|
+
const retrieveFile = async (filepath) => {
|
|
32
|
+
if ((0, exports.isURL)(filepath)) {
|
|
33
|
+
const { data } = await axios_1.default.get(filepath).catch(error => {
|
|
34
|
+
throw new FetchingFileError(FILE_FETCH_FAILED(filepath, error.response.message));
|
|
35
|
+
});
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
return (0, promises_1.readFile)(filepath).catch(error => {
|
|
39
|
+
throw new ReadFileError(FILE_READ_FAILED(filepath, error));
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
exports.retrieveFile = retrieveFile;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if value is invalid: `undefined`, `null` or an empty string, then sets `nan` instead.
|
|
45
|
+
*/
|
|
46
|
+
const setNanValue = (value) => value === null || value === '' ? 'nan' : value;
|
|
47
|
+
exports.setNanValue = setNanValue;
|
|
48
|
+
/**
|
|
49
|
+
* Converts empty values to `nan`.
|
|
50
|
+
*/
|
|
51
|
+
const nanifyEmptyValues = (object) => {
|
|
52
|
+
if (typeof object === 'object') {
|
|
53
|
+
const keys = Object.keys(object);
|
|
54
|
+
keys.forEach(key => {
|
|
55
|
+
const value = object[key];
|
|
56
|
+
object[key] = (0, exports.setNanValue)(value);
|
|
57
|
+
});
|
|
58
|
+
return object;
|
|
59
|
+
}
|
|
60
|
+
return (0, exports.setNanValue)(object);
|
|
61
|
+
};
|
|
62
|
+
exports.nanifyEmptyValues = nanifyEmptyValues;
|
|
63
|
+
/**
|
|
64
|
+
* If `field` is missing from `object`, then reject with error.
|
|
65
|
+
* Otherwise nanify empty values and return data.
|
|
66
|
+
*/
|
|
67
|
+
const fieldAccessor = (field, object) => {
|
|
68
|
+
if (!(`${field}` in object)) {
|
|
69
|
+
throw new MissingCSVColumnError(MISSING_CSV_COLUMN(field));
|
|
70
|
+
}
|
|
71
|
+
return (0, exports.nanifyEmptyValues)(object[field]);
|
|
72
|
+
};
|
|
73
|
+
exports.fieldAccessor = fieldAccessor;
|
|
74
|
+
/**
|
|
75
|
+
* Parses CSV file.
|
|
76
|
+
*/
|
|
77
|
+
const parseCSVFile = (file) => {
|
|
78
|
+
try {
|
|
79
|
+
const parsedCSV = (0, sync_1.parse)(file, {
|
|
80
|
+
columns: true,
|
|
81
|
+
skip_empty_lines: true,
|
|
82
|
+
cast: true,
|
|
83
|
+
});
|
|
84
|
+
return parsedCSV;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error(error);
|
|
88
|
+
throw new CSVParseError(error);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.parseCSVFile = parseCSVFile;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3V0aWwvY3N2LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMENBQXFDO0FBQ3JDLGtEQUEwQjtBQUMxQix5Q0FBcUM7QUFDckMsaURBQTZDO0FBRTdDLHlDQUFxQztBQUVyQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRTFFLE1BQU0sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFDLEdBQzVFLGNBQU0sQ0FBQztBQUVUOztHQUVHO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDeEMsSUFBSTtRQUNGLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDLENBQUM7QUFQVyxRQUFBLEtBQUssU0FPaEI7QUFFRjs7O0dBR0c7QUFDSSxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ3JELElBQUksSUFBQSxhQUFLLEVBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbkIsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckQsTUFBTSxJQUFJLGlCQUFpQixDQUN6QixpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FDcEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sSUFBQSxtQkFBUSxFQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0QyxNQUFNLElBQUksYUFBYSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBZFcsUUFBQSxZQUFZLGdCQWN2QjtBQUVGOztHQUVHO0FBQ0ksTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUN4QyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBRHBDLFFBQUEsV0FBVyxlQUN5QjtBQUVqRDs7R0FFRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUMvQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLG1CQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxJQUFBLG1CQUFXLEVBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBYlcsUUFBQSxpQkFBaUIscUJBYTVCO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBVyxFQUFFLEVBQUU7SUFDMUQsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRTtRQUMzQixNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUM1RDtJQUVELE9BQU8sSUFBQSx5QkFBaUIsRUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUM7QUFOVyxRQUFBLGFBQWEsaUJBTXhCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLFlBQVksR0FBRyxDQUFDLElBQXFCLEVBQUUsRUFBRTtJQUNwRCxJQUFJO1FBQ0YsTUFBTSxTQUFTLEdBQVUsSUFBQSxZQUFLLEVBQUMsSUFBSSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxJQUFJO1lBQ2IsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQyxDQUFDO0FBYlcsUUFBQSxZQUFZLGdCQWF2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cmVhZEZpbGV9IGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQge3BhcnNlfSBmcm9tICdjc3YtcGFyc2Uvc3luYyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7RklMRV9GRVRDSF9GQUlMRUQsIEZJTEVfUkVBRF9GQUlMRUQsIE1JU1NJTkdfQ1NWX0NPTFVNTn0gPSBTVFJJTkdTO1xuXG5jb25zdCB7RmV0Y2hpbmdGaWxlRXJyb3IsIFJlYWRGaWxlRXJyb3IsIE1pc3NpbmdDU1ZDb2x1bW5FcnJvciwgQ1NWUGFyc2VFcnJvcn0gPVxuICBFUlJPUlM7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGdpdmVuIHN0cmluZyBpcyBVUkwuXG4gKi9cbmV4cG9ydCBjb25zdCBpc1VSTCA9IChmaWxlcGF0aDogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgbmV3IFVSTChmaWxlcGF0aCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBnaXZlbiBgZmlsZXBhdGhgIGlzIHVybCwgdGhlbiB0cmllcyB0byBmZXRjaCBpdC5cbiAqIE90aGVyd2lzZSB0cmllcyB0byByZWFkIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCByZXRyaWV2ZUZpbGUgPSBhc3luYyAoZmlsZXBhdGg6IHN0cmluZykgPT4ge1xuICBpZiAoaXNVUkwoZmlsZXBhdGgpKSB7XG4gICAgY29uc3Qge2RhdGF9ID0gYXdhaXQgYXhpb3MuZ2V0KGZpbGVwYXRoKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBuZXcgRmV0Y2hpbmdGaWxlRXJyb3IoXG4gICAgICAgIEZJTEVfRkVUQ0hfRkFJTEVEKGZpbGVwYXRoLCBlcnJvci5yZXNwb25zZS5tZXNzYWdlKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcmV0dXJuIHJlYWRGaWxlKGZpbGVwYXRoKS5jYXRjaChlcnJvciA9PiB7XG4gICAgdGhyb3cgbmV3IFJlYWRGaWxlRXJyb3IoRklMRV9SRUFEX0ZBSUxFRChmaWxlcGF0aCwgZXJyb3IpKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyBpbnZhbGlkOiBgdW5kZWZpbmVkYCwgYG51bGxgIG9yIGFuIGVtcHR5IHN0cmluZywgdGhlbiBzZXRzIGBuYW5gIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXROYW5WYWx1ZSA9ICh2YWx1ZTogYW55KSA9PlxuICB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgPyAnbmFuJyA6IHZhbHVlO1xuXG4vKipcbiAqIENvbnZlcnRzIGVtcHR5IHZhbHVlcyB0byBgbmFuYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5hbmlmeUVtcHR5VmFsdWVzID0gKG9iamVjdDogYW55KSA9PiB7XG4gIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuICAgICAgb2JqZWN0W2tleV0gPSBzZXROYW5WYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgcmV0dXJuIHNldE5hblZhbHVlKG9iamVjdCk7XG59O1xuXG4vKipcbiAqIElmIGBmaWVsZGAgaXMgbWlzc2luZyBmcm9tIGBvYmplY3RgLCB0aGVuIHJlamVjdCB3aXRoIGVycm9yLlxuICogT3RoZXJ3aXNlIG5hbmlmeSBlbXB0eSB2YWx1ZXMgYW5kIHJldHVybiBkYXRhLlxuICovXG5leHBvcnQgY29uc3QgZmllbGRBY2Nlc3NvciA9IChmaWVsZDogc3RyaW5nLCBvYmplY3Q6IGFueSkgPT4ge1xuICBpZiAoIShgJHtmaWVsZH1gIGluIG9iamVjdCkpIHtcbiAgICB0aHJvdyBuZXcgTWlzc2luZ0NTVkNvbHVtbkVycm9yKE1JU1NJTkdfQ1NWX0NPTFVNTihmaWVsZCkpO1xuICB9XG5cbiAgcmV0dXJuIG5hbmlmeUVtcHR5VmFsdWVzKG9iamVjdFtmaWVsZF0pO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgQ1NWIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUNTVkZpbGUgPSAoZmlsZTogc3RyaW5nIHwgQnVmZmVyKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkQ1NWOiBhbnlbXSA9IHBhcnNlKGZpbGUsIHtcbiAgICAgIGNvbHVtbnM6IHRydWUsXG4gICAgICBza2lwX2VtcHR5X2xpbmVzOiB0cnVlLFxuICAgICAgY2FzdDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJzZWRDU1Y7XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB0aHJvdyBuZXcgQ1NWUGFyc2VFcnJvcihlcnJvcik7XG4gIH1cbn07XG4iXX0=
|