@grnsft/if 0.7.0 → 0.7.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/build/common/config/index.d.ts +1 -0
- package/build/common/config/index.js +6 -0
- package/build/common/config/strings.d.ts +11 -0
- package/build/common/config/strings.js +19 -0
- package/build/common/lib/load.d.ts +6 -0
- package/build/common/lib/load.js +18 -0
- package/build/common/types/manifest.d.ts +13 -0
- package/build/common/types/manifest.js +3 -0
- package/build/common/util/debug-logger.d.ts +4 -0
- package/build/common/util/debug-logger.js +124 -0
- package/build/common/util/fs.d.ts +20 -0
- package/build/common/util/fs.js +94 -0
- package/build/common/util/helpers.d.ts +15 -0
- package/build/common/util/helpers.js +80 -0
- package/build/common/util/logger.d.ts +5 -0
- package/build/common/util/logger.js +39 -0
- package/build/common/util/validations.d.ts +465 -0
- package/build/common/util/validations.js +148 -0
- package/build/common/util/yaml.d.ts +12 -0
- package/build/common/util/yaml.js +59 -0
- package/build/if-check/config/config.d.ts +6 -0
- package/build/if-check/config/config.js +31 -0
- package/build/if-check/config/index.d.ts +2 -0
- package/build/if-check/config/index.js +8 -0
- package/build/if-check/config/strings.d.ts +11 -0
- package/build/if-check/config/strings.js +15 -0
- package/build/if-check/index.d.ts +2 -0
- package/build/if-check/index.js +98 -0
- package/build/if-check/types/process-args.d.ts +4 -0
- package/build/if-check/types/process-args.js +3 -0
- package/build/if-check/util/args.d.ts +10 -0
- package/build/if-check/util/args.js +56 -0
- package/build/if-check/util/helpers.d.ts +4 -0
- package/build/if-check/util/helpers.js +18 -0
- package/build/if-check/util/npm.d.ts +4 -0
- package/build/if-check/util/npm.js +59 -0
- package/build/if-csv/config/config.d.ts +6 -0
- package/build/if-csv/config/config.js +36 -0
- package/build/if-csv/config/index.d.ts +2 -0
- package/build/if-csv/config/index.js +8 -0
- package/build/if-csv/config/strings.d.ts +3 -0
- package/build/if-csv/config/strings.js +7 -0
- package/build/if-csv/index.d.ts +2 -0
- package/build/if-csv/index.js +63 -0
- package/build/if-csv/types/csv.d.ts +7 -0
- package/build/if-csv/types/csv.js +3 -0
- package/build/if-csv/types/process-args.d.ts +5 -0
- package/build/if-csv/types/process-args.js +3 -0
- package/build/if-csv/util/args.d.ts +12 -0
- package/build/if-csv/util/args.js +47 -0
- package/build/if-csv/util/helpers.d.ts +9 -0
- package/build/if-csv/util/helpers.js +95 -0
- package/build/if-diff/config/config.d.ts +6 -0
- package/build/if-diff/config/config.js +31 -0
- package/build/if-diff/config/index.d.ts +2 -0
- package/build/if-diff/config/index.js +8 -0
- package/build/if-diff/config/strings.d.ts +6 -0
- package/build/if-diff/config/strings.js +10 -0
- package/build/if-diff/index.d.ts +2 -0
- package/build/if-diff/index.js +46 -0
- package/build/if-diff/lib/compare.d.ts +10 -0
- package/build/if-diff/lib/compare.js +56 -0
- package/build/if-diff/lib/load.d.ts +63 -0
- package/build/if-diff/lib/load.js +51 -0
- package/build/if-diff/types/args.d.ts +5 -0
- package/build/if-diff/types/args.js +3 -0
- package/build/if-diff/types/compare.d.ts +7 -0
- package/build/if-diff/types/compare.js +3 -0
- package/build/if-diff/types/process-args.d.ts +4 -0
- package/build/if-diff/types/process-args.js +3 -0
- package/build/if-diff/util/args.d.ts +5 -0
- package/build/if-diff/util/args.js +51 -0
- package/build/if-diff/util/helpers.d.ts +13 -0
- package/build/if-diff/util/helpers.js +75 -0
- package/build/if-env/config/config.d.ts +6 -0
- package/build/if-env/config/config.js +37 -0
- package/build/if-env/config/index.d.ts +2 -0
- package/build/if-env/config/index.js +8 -0
- package/build/if-env/config/strings.d.ts +7 -0
- package/build/if-env/config/strings.js +11 -0
- package/build/if-env/index.d.ts +2 -0
- package/build/if-env/index.js +40 -0
- package/build/if-env/types/if-env.d.ts +8 -0
- package/build/if-env/types/if-env.js +3 -0
- package/build/if-env/types/npm.d.ts +9 -0
- package/build/if-env/types/npm.js +3 -0
- package/build/if-env/types/process-args.d.ts +5 -0
- package/build/if-env/types/process-args.js +3 -0
- package/build/if-env/util/args.d.ts +12 -0
- package/build/if-env/util/args.js +47 -0
- package/build/if-env/util/helpers.d.ts +20 -0
- package/build/if-env/util/helpers.js +94 -0
- package/build/if-env/util/npm.d.ts +24 -0
- package/build/if-env/util/npm.js +126 -0
- package/build/if-merge/config/config.d.ts +6 -0
- package/build/if-merge/config/config.js +43 -0
- package/build/if-merge/config/index.d.ts +2 -0
- package/build/if-merge/config/index.js +8 -0
- package/build/if-merge/config/strings.d.ts +5 -0
- package/build/if-merge/config/strings.js +9 -0
- package/build/if-merge/index.d.ts +2 -0
- package/build/if-merge/index.js +26 -0
- package/build/if-merge/types/process-args.d.ts +6 -0
- package/build/if-merge/types/process-args.js +3 -0
- package/build/if-merge/util/args.d.ts +9 -0
- package/build/if-merge/util/args.js +59 -0
- package/build/if-merge/util/helpers.d.ts +5 -0
- package/build/if-merge/util/helpers.js +83 -0
- package/build/if-run/builtins/coefficient/index.d.ts +16 -0
- package/build/if-run/builtins/coefficient/index.js +45 -0
- package/build/if-run/builtins/copy-param/index.d.ts +21 -0
- package/build/if-run/builtins/copy-param/index.js +58 -0
- package/build/if-run/builtins/csv-lookup/index.d.ts +16 -0
- package/build/if-run/builtins/csv-lookup/index.js +175 -0
- package/build/if-run/builtins/divide/index.d.ts +16 -0
- package/build/if-run/builtins/divide/index.js +68 -0
- package/build/if-run/builtins/exponent/index.d.ts +16 -0
- package/build/if-run/builtins/exponent/index.js +52 -0
- package/build/if-run/builtins/export-log.d.ts +4 -0
- package/build/if-run/builtins/export-log.js +44 -0
- package/build/if-run/builtins/export-yaml.d.ts +4 -0
- package/build/if-run/builtins/export-yaml.js +30 -0
- package/build/if-run/builtins/index.d.ts +16 -0
- package/build/if-run/builtins/index.js +36 -0
- package/build/if-run/builtins/interpolation/index.d.ts +16 -0
- package/build/if-run/builtins/interpolation/index.js +138 -0
- package/build/if-run/builtins/mock-observations/helpers/common-generator.d.ts +3 -0
- package/build/if-run/builtins/mock-observations/helpers/common-generator.js +29 -0
- package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.d.ts +3 -0
- package/build/if-run/builtins/mock-observations/helpers/rand-int-generator.js +48 -0
- package/build/if-run/builtins/mock-observations/index.d.ts +16 -0
- package/build/if-run/builtins/mock-observations/index.js +108 -0
- package/build/if-run/builtins/mock-observations/interfaces/index.d.ts +6 -0
- package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
- package/build/if-run/builtins/multiply/index.d.ts +16 -0
- package/build/if-run/builtins/multiply/index.js +47 -0
- package/build/if-run/builtins/regex/index.d.ts +16 -0
- package/build/if-run/builtins/regex/index.js +55 -0
- package/build/if-run/builtins/sci/index.d.ts +16 -0
- package/build/if-run/builtins/sci/index.js +92 -0
- package/build/if-run/builtins/sci-embodied/index.d.ts +16 -0
- package/build/if-run/builtins/sci-embodied/index.js +142 -0
- package/build/if-run/builtins/shell/index.d.ts +16 -0
- package/build/if-run/builtins/shell/index.js +50 -0
- package/build/if-run/builtins/subtract/index.d.ts +16 -0
- package/build/if-run/builtins/subtract/index.js +51 -0
- package/build/if-run/builtins/sum/index.d.ts +16 -0
- package/build/if-run/builtins/sum/index.js +37 -0
- package/build/if-run/builtins/time-converter/config.d.ts +1 -0
- package/build/if-run/builtins/time-converter/config.js +44 -0
- package/build/if-run/builtins/time-converter/index.d.ts +16 -0
- package/build/if-run/builtins/time-converter/index.js +63 -0
- package/build/if-run/builtins/time-sync/index.d.ts +31 -0
- package/build/if-run/builtins/time-sync/index.js +371 -0
- package/build/if-run/config/config.d.ts +9 -0
- package/build/if-run/config/config.js +79 -0
- package/build/if-run/config/index.d.ts +2 -0
- package/build/if-run/config/index.js +8 -0
- package/build/if-run/config/strings.d.ts +62 -0
- package/build/if-run/config/strings.js +81 -0
- package/build/if-run/index.d.ts +2 -0
- package/build/if-run/index.js +58 -0
- package/build/if-run/lib/aggregate.d.ts +14 -0
- package/build/if-run/lib/aggregate.js +130 -0
- package/build/if-run/lib/compute.d.ts +5 -0
- package/build/if-run/lib/compute.js +164 -0
- package/build/if-run/lib/environment.d.ts +5 -0
- package/build/if-run/lib/environment.js +75 -0
- package/build/if-run/lib/exhaust.d.ts +7 -0
- package/build/if-run/lib/exhaust.js +27 -0
- package/build/if-run/lib/explain.d.ts +9 -0
- package/build/if-run/lib/explain.js +72 -0
- package/build/if-run/lib/initialize.d.ts +10 -0
- package/build/if-run/lib/initialize.js +113 -0
- package/build/if-run/lib/regroup.d.ts +5 -0
- package/build/if-run/lib/regroup.js +67 -0
- package/build/if-run/types/aggregation.d.ts +2 -0
- package/build/if-run/types/aggregation.js +11 -0
- package/build/if-run/types/compute.d.ts +33 -0
- package/build/if-run/types/compute.js +3 -0
- package/build/if-run/types/environment.d.ts +18 -0
- package/build/if-run/types/environment.js +3 -0
- package/build/if-run/types/explain.d.ts +16 -0
- package/build/if-run/types/explain.js +3 -0
- package/build/if-run/types/plugin-storage.d.ts +6 -0
- package/build/if-run/types/plugin-storage.js +3 -0
- package/build/if-run/types/process-args.d.ts +27 -0
- package/build/if-run/types/process-args.js +3 -0
- package/build/if-run/util/aggregation-helper.d.ts +6 -0
- package/build/if-run/util/aggregation-helper.js +52 -0
- package/build/if-run/util/args.d.ts +9 -0
- package/build/if-run/util/args.js +61 -0
- package/build/if-run/util/helpers.d.ts +8 -0
- package/build/if-run/util/helpers.js +37 -0
- package/build/if-run/util/log-memoize.d.ts +3 -0
- package/build/if-run/util/log-memoize.js +19 -0
- package/build/if-run/util/os-checker.d.ts +7 -0
- package/build/if-run/util/os-checker.js +97 -0
- package/build/if-run/util/plugin-storage.d.ts +14 -0
- package/build/if-run/util/plugin-storage.js +34 -0
- package/coverage/clover.xml +2045 -0
- package/coverage/coverage-final.json +55 -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 +511 -0
- package/coverage/lcov-report/common/util/fs.ts.html +289 -0
- package/coverage/lcov-report/common/util/helpers.ts.html +280 -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 +613 -0
- package/coverage/lcov-report/common/util/yaml.ts.html +193 -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 +304 -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 +232 -0
- package/coverage/lcov-report/if-csv/util/helpers.ts.html +346 -0
- package/coverage/lcov-report/if-csv/util/index.html +116 -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 +268 -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 +250 -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 +295 -0
- package/coverage/lcov-report/if-merge/util/helpers.ts.html +301 -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 +382 -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 +415 -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 +868 -0
- package/coverage/lcov-report/if-run/builtins/divide/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +469 -0
- package/coverage/lcov-report/if-run/builtins/exponent/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +394 -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 +133 -0
- package/coverage/lcov-report/if-run/builtins/interpolation/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +709 -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 +709 -0
- package/coverage/lcov-report/if-run/builtins/multiply/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +406 -0
- package/coverage/lcov-report/if-run/builtins/regex/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +433 -0
- package/coverage/lcov-report/if-run/builtins/sci/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +502 -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 +577 -0
- package/coverage/lcov-report/if-run/builtins/shell/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +343 -0
- package/coverage/lcov-report/if-run/builtins/subtract/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +418 -0
- package/coverage/lcov-report/if-run/builtins/sum/index.html +116 -0
- package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +400 -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 +412 -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 +1651 -0
- package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +1462 -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 +580 -0
- package/coverage/lcov-report/if-run/lib/compute.ts.html +709 -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 +217 -0
- package/coverage/lcov-report/if-run/lib/index.html +206 -0
- package/coverage/lcov-report/if-run/lib/initialize.ts.html +475 -0
- package/coverage/lcov-report/if-run/lib/parameterize.ts.html +322 -0
- package/coverage/lcov-report/if-run/lib/regroup.ts.html +325 -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 +280 -0
- package/coverage/lcov-report/if-run/util/args.ts.html +313 -0
- package/coverage/lcov-report/if-run/util/helpers.ts.html +304 -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 +521 -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 +3392 -0
- package/manifests/outputs/features/regroup/test.yml +92 -0
- package/package.json +9 -8
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWNzdi90eXBlcy9wcm9jZXNzLWFyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZDc3ZBcmdzIHtcbiAgbWFuaWZlc3Q/OiBzdHJpbmc7XG4gIG91dHB1dD86IHN0cmluZztcbiAgcGFyYW1zOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks for `manifest` and `params` flags to be present.
|
|
3
|
+
*/
|
|
4
|
+
export declare const parseIfCsvArgs: () => Promise<{
|
|
5
|
+
manifest: string;
|
|
6
|
+
output: string | undefined;
|
|
7
|
+
params: string;
|
|
8
|
+
} | {
|
|
9
|
+
output: string | undefined;
|
|
10
|
+
params: string;
|
|
11
|
+
manifest?: undefined;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIfCsvArgs = void 0;
|
|
4
|
+
const ts_command_line_args_1 = require("ts-command-line-args");
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const yaml_1 = require("../../common/util/yaml");
|
|
7
|
+
const helpers_1 = require("../../common/util/helpers");
|
|
8
|
+
const config_1 = require("../config");
|
|
9
|
+
const config_2 = require("../../common/config");
|
|
10
|
+
const fs_1 = require("../../common/util/fs");
|
|
11
|
+
const { ParseCliParamsError, CliSourceFileError } = utils_1.ERRORS;
|
|
12
|
+
const { ARGS, HELP } = config_1.CONFIG;
|
|
13
|
+
const { SOURCE_IS_NOT_YAML, MANIFEST_NOT_FOUND } = config_2.STRINGS;
|
|
14
|
+
/**
|
|
15
|
+
* Parses `if-csv` process arguments.
|
|
16
|
+
*/
|
|
17
|
+
const validateAndParseIfCsvArgs = () => {
|
|
18
|
+
try {
|
|
19
|
+
return (0, ts_command_line_args_1.parse)(ARGS, HELP);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error instanceof Error) {
|
|
23
|
+
throw new ParseCliParamsError(error.message);
|
|
24
|
+
}
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Checks for `manifest` and `params` flags to be present.
|
|
30
|
+
*/
|
|
31
|
+
const parseIfCsvArgs = async () => {
|
|
32
|
+
const { manifest, output, params } = validateAndParseIfCsvArgs();
|
|
33
|
+
if (manifest) {
|
|
34
|
+
const response = (0, helpers_1.prependFullFilePath)(manifest);
|
|
35
|
+
const isManifestFileExists = await (0, fs_1.isFileExists)(response);
|
|
36
|
+
if (!isManifestFileExists) {
|
|
37
|
+
throw new ParseCliParamsError(MANIFEST_NOT_FOUND);
|
|
38
|
+
}
|
|
39
|
+
if ((0, yaml_1.checkIfFileIsYaml)(manifest)) {
|
|
40
|
+
return { manifest, output, params };
|
|
41
|
+
}
|
|
42
|
+
throw new CliSourceFileError(SOURCE_IS_NOT_YAML);
|
|
43
|
+
}
|
|
44
|
+
return { output, params };
|
|
45
|
+
};
|
|
46
|
+
exports.parseIfCsvArgs = parseIfCsvArgs;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1jc3YvdXRpbC9hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyQztBQUMzQyxpREFBNkM7QUFFN0MsaURBQXlEO0FBQ3pELHVEQUE4RDtBQUU5RCxzQ0FBaUM7QUFDakMsZ0RBQThEO0FBRzlELDZDQUFrRDtBQUVsRCxNQUFNLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFekQsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUIsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFDLEdBQUcsZ0JBQWMsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0seUJBQXlCLEdBQUcsR0FBRyxFQUFFO0lBQ3JDLElBQUk7UUFDRixPQUFPLElBQUEsNEJBQUssRUFBWSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDdkMsTUFBTSxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztJQUUvRCxJQUFJLFFBQVEsRUFBRTtRQUNaLE1BQU0sUUFBUSxHQUFHLElBQUEsNkJBQW1CLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDekIsTUFBTSxJQUFJLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLElBQUEsd0JBQWlCLEVBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUM7U0FDbkM7UUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNsRDtJQUVELE9BQU8sRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsY0FBYyxrQkFtQnpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZX0gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7Y2hlY2tJZkZpbGVJc1lhbWx9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3lhbWwnO1xuaW1wb3J0IHtwcmVwZW5kRnVsbEZpbGVQYXRofSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtDT05GSUd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge1NUUklOR1MgYXMgQ09NTU9OX1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbW1vbi9jb25maWcnO1xuXG5pbXBvcnQge0lGQ3N2QXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcbmltcG9ydCB7aXNGaWxlRXhpc3RzfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9mcyc7XG5cbmNvbnN0IHtQYXJzZUNsaVBhcmFtc0Vycm9yLCBDbGlTb3VyY2VGaWxlRXJyb3J9ID0gRVJST1JTO1xuXG5jb25zdCB7QVJHUywgSEVMUH0gPSBDT05GSUc7XG5jb25zdCB7U09VUkNFX0lTX05PVF9ZQU1MLCBNQU5JRkVTVF9OT1RfRk9VTkR9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogUGFyc2VzIGBpZi1jc3ZgIHByb2Nlc3MgYXJndW1lbnRzLlxuICovXG5jb25zdCB2YWxpZGF0ZUFuZFBhcnNlSWZDc3ZBcmdzID0gKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZTxJRkNzdkFyZ3M+KEFSR1MsIEhFTFApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgZm9yIGBtYW5pZmVzdGAgYW5kIGBwYXJhbXNgIGZsYWdzIHRvIGJlIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlmQ3N2QXJncyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qge21hbmlmZXN0LCBvdXRwdXQsIHBhcmFtc30gPSB2YWxpZGF0ZUFuZFBhcnNlSWZDc3ZBcmdzKCk7XG5cbiAgaWYgKG1hbmlmZXN0KSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBwcmVwZW5kRnVsbEZpbGVQYXRoKG1hbmlmZXN0KTtcbiAgICBjb25zdCBpc01hbmlmZXN0RmlsZUV4aXN0cyA9IGF3YWl0IGlzRmlsZUV4aXN0cyhyZXNwb25zZSk7XG5cbiAgICBpZiAoIWlzTWFuaWZlc3RGaWxlRXhpc3RzKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihNQU5JRkVTVF9OT1RfRk9VTkQpO1xuICAgIH1cblxuICAgIGlmIChjaGVja0lmRmlsZUlzWWFtbChtYW5pZmVzdCkpIHtcbiAgICAgIHJldHVybiB7bWFuaWZlc3QsIG91dHB1dCwgcGFyYW1zfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKFNPVVJDRV9JU19OT1RfWUFNTCk7XG4gIH1cblxuICByZXR1cm4ge291dHB1dCwgcGFyYW1zfTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CsvOptions } from '../types/csv';
|
|
2
|
+
/**
|
|
3
|
+
* Gets the manifest data if `outputs` is present in it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const getManifestData: (manifest: string) => Promise<any>;
|
|
6
|
+
/**
|
|
7
|
+
* Generates a CSV file based on the provided tree structure, context, output path, and params.
|
|
8
|
+
*/
|
|
9
|
+
export declare const generateCsv: (options: CsvOptions) => Promise<string | void>;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.generateCsv = exports.getManifestData = void 0;
|
|
27
|
+
const fs = __importStar(require("fs/promises"));
|
|
28
|
+
const sync_1 = require("csv-stringify/sync");
|
|
29
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
30
|
+
const load_1 = require("../../common/lib/load");
|
|
31
|
+
const config_1 = require("../config");
|
|
32
|
+
const { FAILURE_MESSAGE_OUTPUTS } = config_1.STRINGS;
|
|
33
|
+
const { ManifestValidationError } = utils_1.ERRORS;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the manifest data if `outputs` is present in it.
|
|
36
|
+
*/
|
|
37
|
+
const getManifestData = async (manifest) => {
|
|
38
|
+
const { rawManifest } = await (0, load_1.load)(manifest);
|
|
39
|
+
const { children } = rawManifest.tree;
|
|
40
|
+
if (children?.child?.outputs || children?.['child-0']?.outputs) {
|
|
41
|
+
return rawManifest;
|
|
42
|
+
}
|
|
43
|
+
throw new ManifestValidationError(FAILURE_MESSAGE_OUTPUTS);
|
|
44
|
+
};
|
|
45
|
+
exports.getManifestData = getManifestData;
|
|
46
|
+
/**
|
|
47
|
+
* Generates a CSV file based on the provided tree structure, context, output path, and params.
|
|
48
|
+
*/
|
|
49
|
+
const generateCsv = async (options) => {
|
|
50
|
+
const { tree, context, outputPath, params } = options;
|
|
51
|
+
const columns = ['Path'];
|
|
52
|
+
const matrix = [columns];
|
|
53
|
+
const aggregationIsEnabled = !!context.aggregation;
|
|
54
|
+
const traverseTree = (node, params, path = 'tree') => {
|
|
55
|
+
if (node.aggregated) {
|
|
56
|
+
if (path === 'tree') {
|
|
57
|
+
columns.push('Aggregated');
|
|
58
|
+
}
|
|
59
|
+
matrix.push([`${path}.${params}`, node.aggregated[params]]);
|
|
60
|
+
}
|
|
61
|
+
if (node.outputs) {
|
|
62
|
+
node.outputs.forEach((output) => {
|
|
63
|
+
const { timestamp } = output;
|
|
64
|
+
if (!columns.includes(timestamp)) {
|
|
65
|
+
columns.push(timestamp);
|
|
66
|
+
}
|
|
67
|
+
const lastRow = matrix[matrix.length - 1];
|
|
68
|
+
if (aggregationIsEnabled) {
|
|
69
|
+
lastRow.push(output[params]);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (matrix.length === 1 || lastRow.length === columns.length) {
|
|
73
|
+
matrix.push([`${path}.${params}`, output[params]]);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
lastRow.push(output[params]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (node.children) {
|
|
82
|
+
Object.keys(node.children).forEach(childKey => {
|
|
83
|
+
traverseTree(node.children[childKey], params, `${path}.children.${childKey}`);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
traverseTree(tree, params);
|
|
88
|
+
const csvString = (0, sync_1.stringify)(matrix, { columns });
|
|
89
|
+
if (!outputPath) {
|
|
90
|
+
return csvString;
|
|
91
|
+
}
|
|
92
|
+
return await fs.writeFile(`${outputPath}.csv`, csvString);
|
|
93
|
+
};
|
|
94
|
+
exports.generateCsv = generateCsv;
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1jc3YvdXRpbC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLDZDQUE2QztBQUU3QyxpREFBNkM7QUFFN0MsZ0RBQTJDO0FBRzNDLHNDQUFrQztBQUVsQyxNQUFNLEVBQUMsdUJBQXVCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBQzFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUV6Qzs7R0FFRztBQUNJLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLE1BQU0sSUFBQSxXQUFJLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFFcEMsSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUU7UUFDOUQsT0FBTyxXQUFXLENBQUM7S0FDcEI7SUFFRCxNQUFNLElBQUksdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFUVyxRQUFBLGVBQWUsbUJBUzFCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsT0FBbUIsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsR0FBRyxPQUFPLENBQUM7SUFDcEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFFbkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFTLEVBQUUsTUFBYyxFQUFFLElBQUksR0FBRyxNQUFNLEVBQUUsRUFBRTtRQUNoRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBb0IsRUFBRSxFQUFFO2dCQUM1QyxNQUFNLEVBQUMsU0FBUyxFQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUUzQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDekI7Z0JBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBRTFDLElBQUksb0JBQW9CLEVBQUU7b0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQzlCO3FCQUFNO29CQUNMLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFO3dCQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDcEQ7eUJBQU07d0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUMsWUFBWSxDQUNWLElBQUksQ0FBQyxRQUFTLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sRUFDTixHQUFHLElBQUksYUFBYSxRQUFRLEVBQUUsQ0FDL0IsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDLENBQUM7SUFFRixZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTNCLE1BQU0sU0FBUyxHQUFHLElBQUEsZ0JBQVMsRUFBQyxNQUFNLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDZixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDO0FBeERXLFFBQUEsV0FBVyxlQXdEdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQge3N0cmluZ2lmeX0gZnJvbSAnY3N2LXN0cmluZ2lmeS9zeW5jJztcbmltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7bG9hZH0gZnJvbSAnLi4vLi4vY29tbW9uL2xpYi9sb2FkJztcblxuaW1wb3J0IHtDc3ZPcHRpb25zfSBmcm9tICcuLi90eXBlcy9jc3YnO1xuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7RkFJTFVSRV9NRVNTQUdFX09VVFBVVFN9ID0gU1RSSU5HUztcbmNvbnN0IHtNYW5pZmVzdFZhbGlkYXRpb25FcnJvcn0gPSBFUlJPUlM7XG5cbi8qKlxuICogR2V0cyB0aGUgbWFuaWZlc3QgZGF0YSBpZiBgb3V0cHV0c2AgaXMgcHJlc2VudCBpbiBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE1hbmlmZXN0RGF0YSA9IGFzeW5jIChtYW5pZmVzdDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHtyYXdNYW5pZmVzdH0gPSBhd2FpdCBsb2FkKG1hbmlmZXN0KTtcbiAgY29uc3Qge2NoaWxkcmVufSA9IHJhd01hbmlmZXN0LnRyZWU7XG5cbiAgaWYgKGNoaWxkcmVuPy5jaGlsZD8ub3V0cHV0cyB8fCBjaGlsZHJlbj8uWydjaGlsZC0wJ10/Lm91dHB1dHMpIHtcbiAgICByZXR1cm4gcmF3TWFuaWZlc3Q7XG4gIH1cblxuICB0aHJvdyBuZXcgTWFuaWZlc3RWYWxpZGF0aW9uRXJyb3IoRkFJTFVSRV9NRVNTQUdFX09VVFBVVFMpO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBDU1YgZmlsZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdHJlZSBzdHJ1Y3R1cmUsIGNvbnRleHQsIG91dHB1dCBwYXRoLCBhbmQgcGFyYW1zLlxuICovXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVDc3YgPSBhc3luYyAob3B0aW9uczogQ3N2T3B0aW9ucykgPT4ge1xuICBjb25zdCB7dHJlZSwgY29udGV4dCwgb3V0cHV0UGF0aCwgcGFyYW1zfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNvbHVtbnMgPSBbJ1BhdGgnXTtcbiAgY29uc3QgbWF0cml4ID0gW2NvbHVtbnNdO1xuICBjb25zdCBhZ2dyZWdhdGlvbklzRW5hYmxlZCA9ICEhY29udGV4dC5hZ2dyZWdhdGlvbjtcblxuICBjb25zdCB0cmF2ZXJzZVRyZWUgPSAobm9kZTogYW55LCBwYXJhbXM6IHN0cmluZywgcGF0aCA9ICd0cmVlJykgPT4ge1xuICAgIGlmIChub2RlLmFnZ3JlZ2F0ZWQpIHtcbiAgICAgIGlmIChwYXRoID09PSAndHJlZScpIHtcbiAgICAgICAgY29sdW1ucy5wdXNoKCdBZ2dyZWdhdGVkJyk7XG4gICAgICB9XG4gICAgICBtYXRyaXgucHVzaChbYCR7cGF0aH0uJHtwYXJhbXN9YCwgbm9kZS5hZ2dyZWdhdGVkW3BhcmFtc11dKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5vdXRwdXRzKSB7XG4gICAgICBub2RlLm91dHB1dHMuZm9yRWFjaCgob3V0cHV0OiBQbHVnaW5QYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3Qge3RpbWVzdGFtcH0gPSBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKCFjb2x1bW5zLmluY2x1ZGVzKHRpbWVzdGFtcCkpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2godGltZXN0YW1wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhc3RSb3cgPSBtYXRyaXhbbWF0cml4Lmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChhZ2dyZWdhdGlvbklzRW5hYmxlZCkge1xuICAgICAgICAgIGxhc3RSb3cucHVzaChvdXRwdXRbcGFyYW1zXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG1hdHJpeC5sZW5ndGggPT09IDEgfHwgbGFzdFJvdy5sZW5ndGggPT09IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtYXRyaXgucHVzaChbYCR7cGF0aH0uJHtwYXJhbXN9YCwgb3V0cHV0W3BhcmFtc11dKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdFJvdy5wdXNoKG91dHB1dFtwYXJhbXNdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBPYmplY3Qua2V5cyhub2RlLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkS2V5ID0+IHtcbiAgICAgICAgdHJhdmVyc2VUcmVlKFxuICAgICAgICAgIG5vZGUuY2hpbGRyZW4hW2NoaWxkS2V5XSxcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgYCR7cGF0aH0uY2hpbGRyZW4uJHtjaGlsZEtleX1gXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgdHJhdmVyc2VUcmVlKHRyZWUsIHBhcmFtcyk7XG5cbiAgY29uc3QgY3N2U3RyaW5nID0gc3RyaW5naWZ5KG1hdHJpeCwge2NvbHVtbnN9KTtcblxuICBpZiAoIW91dHB1dFBhdGgpIHtcbiAgICByZXR1cm4gY3N2U3RyaW5nO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGZzLndyaXRlRmlsZShgJHtvdXRwdXRQYXRofS5jc3ZgLCBjc3ZTdHJpbmcpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFIG = void 0;
|
|
4
|
+
const config_1 = require("../../common/config");
|
|
5
|
+
const { DISCLAIMER_MESSAGE } = config_1.STRINGS;
|
|
6
|
+
exports.CONFIG = {
|
|
7
|
+
ARGS: {
|
|
8
|
+
source: {
|
|
9
|
+
type: String,
|
|
10
|
+
optional: true,
|
|
11
|
+
alias: 's',
|
|
12
|
+
description: '[path to the source file]',
|
|
13
|
+
},
|
|
14
|
+
target: {
|
|
15
|
+
type: String,
|
|
16
|
+
optional: false,
|
|
17
|
+
alias: 't',
|
|
18
|
+
description: '[path to the target file',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
HELP: {
|
|
22
|
+
helpArg: 'help',
|
|
23
|
+
headerContentSections: [
|
|
24
|
+
{ header: 'Impact Framework', content: 'IF-Diff Helpful keywords:' },
|
|
25
|
+
],
|
|
26
|
+
footerContentSections: [
|
|
27
|
+
{ header: 'Green Software Foundation', content: DISCLAIMER_MESSAGE },
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWRpZmYvY29uZmlnL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxnREFBNEM7QUFJNUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUV4QixRQUFBLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsMkJBQTJCO1NBQ3pDO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLDBCQUEwQjtTQUN4QztLQUM0QjtJQUMvQixJQUFJLEVBQUU7UUFDSixPQUFPLEVBQUUsTUFBTTtRQUNmLHFCQUFxQixFQUFFO1lBQ3JCLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBQztTQUNuRTtRQUNELHFCQUFxQixFQUFFO1lBQ3JCLEVBQUMsTUFBTSxFQUFFLDJCQUEyQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBQztTQUNuRTtLQUNtQjtDQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmd1bWVudENvbmZpZywgUGFyc2VPcHRpb25zfSBmcm9tICd0cy1jb21tYW5kLWxpbmUtYXJncyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29tbW9uL2NvbmZpZyc7XG5cbmltcG9ydCB7SUZEaWZmQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuY29uc3Qge0RJU0NMQUlNRVJfTUVTU0FHRX0gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgQ09ORklHID0ge1xuICBBUkdTOiB7XG4gICAgc291cmNlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgIGFsaWFzOiAncycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1twYXRoIHRvIHRoZSBzb3VyY2UgZmlsZV0nLFxuICAgIH0sXG4gICAgdGFyZ2V0OiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBvcHRpb25hbDogZmFsc2UsXG4gICAgICBhbGlhczogJ3QnLFxuICAgICAgZGVzY3JpcHRpb246ICdbcGF0aCB0byB0aGUgdGFyZ2V0IGZpbGUnLFxuICAgIH0sXG4gIH0gYXMgQXJndW1lbnRDb25maWc8SUZEaWZmQXJncz4sXG4gIEhFTFA6IHtcbiAgICBoZWxwQXJnOiAnaGVscCcsXG4gICAgaGVhZGVyQ29udGVudFNlY3Rpb25zOiBbXG4gICAgICB7aGVhZGVyOiAnSW1wYWN0IEZyYW1ld29yaycsIGNvbnRlbnQ6ICdJRi1EaWZmIEhlbHBmdWwga2V5d29yZHM6J30sXG4gICAgXSxcbiAgICBmb290ZXJDb250ZW50U2VjdGlvbnM6IFtcbiAgICAgIHtoZWFkZXI6ICdHcmVlbiBTb2Z0d2FyZSBGb3VuZGF0aW9uJywgY29udGVudDogRElTQ0xBSU1FUl9NRVNTQUdFfSxcbiAgICBdLFxuICB9IGFzIFBhcnNlT3B0aW9uczxhbnk+LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRINGS = exports.CONFIG = void 0;
|
|
4
|
+
var config_1 = require("./config");
|
|
5
|
+
Object.defineProperty(exports, "CONFIG", { enumerable: true, get: function () { return config_1.CONFIG; } });
|
|
6
|
+
var strings_1 = require("./strings");
|
|
7
|
+
Object.defineProperty(exports, "STRINGS", { enumerable: true, get: function () { return strings_1.STRINGS; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaWYtZGlmZi9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWdDO0FBQXhCLGdHQUFBLE1BQU0sT0FBQTtBQUNkLHFDQUFrQztBQUExQixrR0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge0NPTkZJR30gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IHtTVFJJTkdTfSBmcm9tICcuL3N0cmluZ3MnO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRINGS = void 0;
|
|
4
|
+
exports.STRINGS = {
|
|
5
|
+
INVALID_TARGET: 'Target is invalid.',
|
|
6
|
+
INVALID_SOURCE: 'Source is invalid.',
|
|
7
|
+
FAILURE_MESSAGE: 'Files do not match!',
|
|
8
|
+
SUCCESS_MESSAGE: 'Files match!',
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL2NvbmZpZy9zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsT0FBTyxHQUFHO0lBQ3JCLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsY0FBYyxFQUFFLG9CQUFvQjtJQUNwQyxlQUFlLEVBQUUscUJBQXFCO0lBQ3RDLGVBQWUsRUFBRSxjQUFjO0NBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1RSSU5HUyA9IHtcbiAgSU5WQUxJRF9UQVJHRVQ6ICdUYXJnZXQgaXMgaW52YWxpZC4nLFxuICBJTlZBTElEX1NPVVJDRTogJ1NvdXJjZSBpcyBpbnZhbGlkLicsXG4gIEZBSUxVUkVfTUVTU0FHRTogJ0ZpbGVzIGRvIG5vdCBtYXRjaCEnLFxuICBTVUNDRVNTX01FU1NBR0U6ICdGaWxlcyBtYXRjaCEnLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/* eslint-disable no-process-exit */
|
|
5
|
+
const load_1 = require("./lib/load");
|
|
6
|
+
const compare_1 = require("./lib/compare");
|
|
7
|
+
const args_1 = require("./util/args");
|
|
8
|
+
const helpers_1 = require("./util/helpers");
|
|
9
|
+
const helpers_2 = require("../common/util/helpers");
|
|
10
|
+
const validations_1 = require("../common/util/validations");
|
|
11
|
+
const logger_1 = require("../common/util/logger");
|
|
12
|
+
const debug_logger_1 = require("../common/util/debug-logger");
|
|
13
|
+
const config_1 = require("./config");
|
|
14
|
+
const { FAILURE_MESSAGE, SUCCESS_MESSAGE } = config_1.STRINGS;
|
|
15
|
+
const IfDiff = async () => {
|
|
16
|
+
const pipedSourceManifest = await (0, helpers_2.parseManifestFromStdin)();
|
|
17
|
+
const { sourcePath, targetPath } = (0, args_1.parseIfDiffArgs)();
|
|
18
|
+
// Call this function with false parameter to prevent log debug messages.
|
|
19
|
+
debug_logger_1.debugLogger.overrideConsoleMethods(false);
|
|
20
|
+
const { rawSourceManifest, rawTargetManifest } = await (0, load_1.loadIfDiffFiles)({
|
|
21
|
+
targetPath,
|
|
22
|
+
sourcePath,
|
|
23
|
+
pipedSourceManifest,
|
|
24
|
+
});
|
|
25
|
+
const [sourceManifest, targetManifest] = [
|
|
26
|
+
rawSourceManifest,
|
|
27
|
+
rawTargetManifest,
|
|
28
|
+
].map(validations_1.validateManifest);
|
|
29
|
+
const result = (0, compare_1.compare)(sourceManifest, targetManifest);
|
|
30
|
+
if (Object.keys(result).length) {
|
|
31
|
+
(0, helpers_1.formatNotMatchingLog)({
|
|
32
|
+
message: FAILURE_MESSAGE,
|
|
33
|
+
...result,
|
|
34
|
+
});
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
console.log(SUCCESS_MESSAGE);
|
|
38
|
+
process.exit(0);
|
|
39
|
+
};
|
|
40
|
+
IfDiff().catch(error => {
|
|
41
|
+
if (error instanceof Error) {
|
|
42
|
+
logger_1.logger.error(error);
|
|
43
|
+
process.exit(2);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWYtZGlmZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvQ0FBb0M7QUFDcEMscUNBQTJDO0FBQzNDLDJDQUFzQztBQUV0QyxzQ0FBNEM7QUFDNUMsNENBQW9EO0FBQ3BELG9EQUE4RDtBQUM5RCw0REFBNEQ7QUFFNUQsa0RBQTZDO0FBQzdDLDhEQUF3RDtBQUV4RCxxQ0FBaUM7QUFFakMsTUFBTSxFQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRW5ELE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ3hCLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLGdDQUFzQixHQUFFLENBQUM7SUFDM0QsTUFBTSxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMsR0FBRyxJQUFBLHNCQUFlLEdBQUUsQ0FBQztJQUVuRCx5RUFBeUU7SUFDekUsMEJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUxQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUMsR0FBRyxNQUFNLElBQUEsc0JBQWUsRUFBQztRQUNuRSxVQUFVO1FBQ1YsVUFBVTtRQUNWLG1CQUFtQjtLQUNwQixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxHQUFHO1FBQ3ZDLGlCQUFpQjtRQUNqQixpQkFBaUI7S0FDbEIsQ0FBQyxHQUFHLENBQUMsOEJBQWdCLENBQUMsQ0FBQztJQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFBLGlCQUFPLEVBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXZELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsSUFBQSw4QkFBb0IsRUFBQztZQUNuQixPQUFPLEVBQUUsZUFBZTtZQUN4QixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUNyQixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7UUFDMUIsZUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCB7bG9hZElmRGlmZkZpbGVzfSBmcm9tICcuL2xpYi9sb2FkJztcbmltcG9ydCB7Y29tcGFyZX0gZnJvbSAnLi9saWIvY29tcGFyZSc7XG5cbmltcG9ydCB7cGFyc2VJZkRpZmZBcmdzfSBmcm9tICcuL3V0aWwvYXJncyc7XG5pbXBvcnQge2Zvcm1hdE5vdE1hdGNoaW5nTG9nfSBmcm9tICcuL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge3BhcnNlTWFuaWZlc3RGcm9tU3RkaW59IGZyb20gJy4uL2NvbW1vbi91dGlsL2hlbHBlcnMnO1xuaW1wb3J0IHt2YWxpZGF0ZU1hbmlmZXN0fSBmcm9tICcuLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuLi9jb21tb24vdXRpbC9sb2dnZXInO1xuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi4vY29tbW9uL3V0aWwvZGVidWctbG9nZ2VyJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IHtGQUlMVVJFX01FU1NBR0UsIFNVQ0NFU1NfTUVTU0FHRX0gPSBTVFJJTkdTO1xuXG5jb25zdCBJZkRpZmYgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBpcGVkU291cmNlTWFuaWZlc3QgPSBhd2FpdCBwYXJzZU1hbmlmZXN0RnJvbVN0ZGluKCk7XG4gIGNvbnN0IHtzb3VyY2VQYXRoLCB0YXJnZXRQYXRofSA9IHBhcnNlSWZEaWZmQXJncygpO1xuXG4gIC8vIENhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGZhbHNlIHBhcmFtZXRlciB0byBwcmV2ZW50IGxvZyBkZWJ1ZyBtZXNzYWdlcy5cbiAgZGVidWdMb2dnZXIub3ZlcnJpZGVDb25zb2xlTWV0aG9kcyhmYWxzZSk7XG5cbiAgY29uc3Qge3Jhd1NvdXJjZU1hbmlmZXN0LCByYXdUYXJnZXRNYW5pZmVzdH0gPSBhd2FpdCBsb2FkSWZEaWZmRmlsZXMoe1xuICAgIHRhcmdldFBhdGgsXG4gICAgc291cmNlUGF0aCxcbiAgICBwaXBlZFNvdXJjZU1hbmlmZXN0LFxuICB9KTtcbiAgY29uc3QgW3NvdXJjZU1hbmlmZXN0LCB0YXJnZXRNYW5pZmVzdF0gPSBbXG4gICAgcmF3U291cmNlTWFuaWZlc3QsXG4gICAgcmF3VGFyZ2V0TWFuaWZlc3QsXG4gIF0ubWFwKHZhbGlkYXRlTWFuaWZlc3QpO1xuICBjb25zdCByZXN1bHQgPSBjb21wYXJlKHNvdXJjZU1hbmlmZXN0LCB0YXJnZXRNYW5pZmVzdCk7XG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RoKSB7XG4gICAgZm9ybWF0Tm90TWF0Y2hpbmdMb2coe1xuICAgICAgbWVzc2FnZTogRkFJTFVSRV9NRVNTQUdFLFxuICAgICAgLi4ucmVzdWx0LFxuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgY29uc29sZS5sb2coU1VDQ0VTU19NRVNTQUdFKTtcbiAgcHJvY2Vzcy5leGl0KDApO1xufTtcblxuSWZEaWZmKCkuY2F0Y2goZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcHJvY2Vzcy5leGl0KDIpO1xuICB9XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Difference } from '../types/compare';
|
|
2
|
+
/**
|
|
3
|
+
* 1. If objects are not of the same type or are primitive types, compares directly.
|
|
4
|
+
* 2. Gets the keys from both objects.
|
|
5
|
+
* 3. If both are arrays, checks their elements.
|
|
6
|
+
* 4. Checks for keys present in both objects.
|
|
7
|
+
* If key is `execution`, omit unnecessary params.
|
|
8
|
+
* 5. If all keys are checked and no differences are found, return empty object.
|
|
9
|
+
*/
|
|
10
|
+
export declare const compare: (source: any, target: any, path?: string) => Difference;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compare = void 0;
|
|
4
|
+
const helpers_1 = require("../util/helpers");
|
|
5
|
+
/**
|
|
6
|
+
* 1. If objects are not of the same type or are primitive types, compares directly.
|
|
7
|
+
* 2. Gets the keys from both objects.
|
|
8
|
+
* 3. If both are arrays, checks their elements.
|
|
9
|
+
* 4. Checks for keys present in both objects.
|
|
10
|
+
* If key is `execution`, omit unnecessary params.
|
|
11
|
+
* 5. If all keys are checked and no differences are found, return empty object.
|
|
12
|
+
*/
|
|
13
|
+
const compare = (source, target, path = '') => {
|
|
14
|
+
if ((0, helpers_1.oneIsPrimitive)(source, target)) {
|
|
15
|
+
return (0, helpers_1.checkIfEqual)(source, target)
|
|
16
|
+
? {}
|
|
17
|
+
: {
|
|
18
|
+
path,
|
|
19
|
+
source,
|
|
20
|
+
target,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const keys1 = Object.keys(source);
|
|
24
|
+
const keys2 = Object.keys(target);
|
|
25
|
+
const allKeys = new Set([...keys1, ...keys2]);
|
|
26
|
+
if (path === '') {
|
|
27
|
+
allKeys.delete('name');
|
|
28
|
+
allKeys.delete('description');
|
|
29
|
+
allKeys.delete('tags');
|
|
30
|
+
}
|
|
31
|
+
if (path === 'initialize') {
|
|
32
|
+
allKeys.delete('outputs');
|
|
33
|
+
}
|
|
34
|
+
if (path === 'execution') {
|
|
35
|
+
const whitelist = ['status', 'error'];
|
|
36
|
+
allKeys.forEach(value => {
|
|
37
|
+
if (!whitelist.includes(value)) {
|
|
38
|
+
allKeys.delete(value);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(source) && Array.isArray(target)) {
|
|
43
|
+
source.forEach((_record, i) => {
|
|
44
|
+
(0, exports.compare)(source[i], target[i], path ? `${path}[${i}]` : `${i}`);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
for (const key of allKeys) {
|
|
48
|
+
const result = (0, exports.compare)(source[key], target[key], path ? `${path}.${key}` : key);
|
|
49
|
+
if (Object.keys(result).length) {
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {};
|
|
54
|
+
};
|
|
55
|
+
exports.compare = compare;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL2xpYi9jb21wYXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE2RDtBQUk3RDs7Ozs7OztHQU9HO0FBQ0ksTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQWMsRUFBRTtJQUN6RSxJQUFJLElBQUEsd0JBQWMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDbEMsT0FBTyxJQUFBLHNCQUFZLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUNqQyxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQztnQkFDRSxJQUFJO2dCQUNKLE1BQU07Z0JBQ04sTUFBTTthQUNQLENBQUM7S0FDUDtJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVsQyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU5QyxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7UUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN4QjtJQUVELElBQUksSUFBSSxLQUFLLFlBQVksRUFBRTtRQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBQSxlQUFPLEVBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDWCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUM5QixDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM5QixPQUFPLE1BQU0sQ0FBQztTQUNmO0tBQ0Y7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQXREVyxRQUFBLE9BQU8sV0FzRGxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjaGVja0lmRXF1YWwsIG9uZUlzUHJpbWl0aXZlfSBmcm9tICcuLi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge0RpZmZlcmVuY2V9IGZyb20gJy4uL3R5cGVzL2NvbXBhcmUnO1xuXG4vKipcbiAqIDEuIElmIG9iamVjdHMgYXJlIG5vdCBvZiB0aGUgc2FtZSB0eXBlIG9yIGFyZSBwcmltaXRpdmUgdHlwZXMsIGNvbXBhcmVzIGRpcmVjdGx5LlxuICogMi4gR2V0cyB0aGUga2V5cyBmcm9tIGJvdGggb2JqZWN0cy5cbiAqIDMuIElmIGJvdGggYXJlIGFycmF5cywgY2hlY2tzIHRoZWlyIGVsZW1lbnRzLlxuICogNC4gQ2hlY2tzIGZvciBrZXlzIHByZXNlbnQgaW4gYm90aCBvYmplY3RzLlxuICogICAgSWYga2V5IGlzIGBleGVjdXRpb25gLCBvbWl0IHVubmVjZXNzYXJ5IHBhcmFtcy5cbiAqIDUuIElmIGFsbCBrZXlzIGFyZSBjaGVja2VkIGFuZCBubyBkaWZmZXJlbmNlcyBhcmUgZm91bmQsIHJldHVybiBlbXB0eSBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wYXJlID0gKHNvdXJjZTogYW55LCB0YXJnZXQ6IGFueSwgcGF0aCA9ICcnKTogRGlmZmVyZW5jZSA9PiB7XG4gIGlmIChvbmVJc1ByaW1pdGl2ZShzb3VyY2UsIHRhcmdldCkpIHtcbiAgICByZXR1cm4gY2hlY2tJZkVxdWFsKHNvdXJjZSwgdGFyZ2V0KVxuICAgICAgPyB7fVxuICAgICAgOiB7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICB9O1xuICB9XG5cbiAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKHRhcmdldCk7XG5cbiAgY29uc3QgYWxsS2V5cyA9IG5ldyBTZXQoWy4uLmtleXMxLCAuLi5rZXlzMl0pO1xuXG4gIGlmIChwYXRoID09PSAnJykge1xuICAgIGFsbEtleXMuZGVsZXRlKCduYW1lJyk7XG4gICAgYWxsS2V5cy5kZWxldGUoJ2Rlc2NyaXB0aW9uJyk7XG4gICAgYWxsS2V5cy5kZWxldGUoJ3RhZ3MnKTtcbiAgfVxuXG4gIGlmIChwYXRoID09PSAnaW5pdGlhbGl6ZScpIHtcbiAgICBhbGxLZXlzLmRlbGV0ZSgnb3V0cHV0cycpO1xuICB9XG5cbiAgaWYgKHBhdGggPT09ICdleGVjdXRpb24nKSB7XG4gICAgY29uc3Qgd2hpdGVsaXN0ID0gWydzdGF0dXMnLCAnZXJyb3InXTtcbiAgICBhbGxLZXlzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgaWYgKCF3aGl0ZWxpc3QuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgIGFsbEtleXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkgJiYgQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgc291cmNlLmZvckVhY2goKF9yZWNvcmQsIGkpID0+IHtcbiAgICAgIGNvbXBhcmUoc291cmNlW2ldLCB0YXJnZXRbaV0sIHBhdGggPyBgJHtwYXRofVske2l9XWAgOiBgJHtpfWApO1xuICAgIH0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgYWxsS2V5cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IGNvbXBhcmUoXG4gICAgICBzb3VyY2Vba2V5XSxcbiAgICAgIHRhcmdldFtrZXldLFxuICAgICAgcGF0aCA/IGAke3BhdGh9LiR7a2V5fWAgOiBrZXlcbiAgICApO1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7fTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { LoadDiffParams } from '../types/args';
|
|
2
|
+
/**
|
|
3
|
+
* Loads files to compare. As a source file checks if data is piped and then decides which one to take.
|
|
4
|
+
*/
|
|
5
|
+
export declare const loadIfDiffFiles: (params: LoadDiffParams) => Promise<{
|
|
6
|
+
rawSourceManifest: unknown;
|
|
7
|
+
rawTargetManifest: {
|
|
8
|
+
name: string;
|
|
9
|
+
initialize: {
|
|
10
|
+
plugins: Record<string, {
|
|
11
|
+
path: string;
|
|
12
|
+
method: string;
|
|
13
|
+
mapping?: Record<string, string> | undefined;
|
|
14
|
+
config?: Record<string, any> | undefined;
|
|
15
|
+
'parameter-metadata'?: {
|
|
16
|
+
inputs?: Record<string, {
|
|
17
|
+
unit: string;
|
|
18
|
+
description: string;
|
|
19
|
+
'aggregation-method': {
|
|
20
|
+
time: "sum" | "avg" | "none" | "copy";
|
|
21
|
+
component: "sum" | "avg" | "none" | "copy";
|
|
22
|
+
};
|
|
23
|
+
}> | null | undefined;
|
|
24
|
+
outputs?: Record<string, {
|
|
25
|
+
unit: string;
|
|
26
|
+
description: string;
|
|
27
|
+
'aggregation-method': {
|
|
28
|
+
time: "sum" | "avg" | "none" | "copy";
|
|
29
|
+
component: "sum" | "avg" | "none" | "copy";
|
|
30
|
+
};
|
|
31
|
+
}> | null | undefined;
|
|
32
|
+
} | undefined;
|
|
33
|
+
} | undefined>;
|
|
34
|
+
};
|
|
35
|
+
tree: Record<string, any>;
|
|
36
|
+
description?: string | null | undefined;
|
|
37
|
+
tags?: {
|
|
38
|
+
kind?: string | null | undefined;
|
|
39
|
+
complexity?: string | null | undefined;
|
|
40
|
+
category?: string | null | undefined;
|
|
41
|
+
} | null | undefined;
|
|
42
|
+
explainer?: boolean | undefined;
|
|
43
|
+
explain?: Record<string, any> | undefined;
|
|
44
|
+
aggregation?: {
|
|
45
|
+
type: "horizontal" | "time" | "vertical" | "component" | "both";
|
|
46
|
+
metrics: string[];
|
|
47
|
+
'skip-components'?: string[] | undefined;
|
|
48
|
+
} | null | undefined;
|
|
49
|
+
execution?: {
|
|
50
|
+
status: string;
|
|
51
|
+
command?: string | undefined;
|
|
52
|
+
environment?: {
|
|
53
|
+
'if-version': string;
|
|
54
|
+
os: string;
|
|
55
|
+
'os-version': string;
|
|
56
|
+
'node-version': string;
|
|
57
|
+
'date-time': string;
|
|
58
|
+
dependencies: string[];
|
|
59
|
+
} | undefined;
|
|
60
|
+
error?: string | undefined;
|
|
61
|
+
} | undefined;
|
|
62
|
+
};
|
|
63
|
+
}>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.loadIfDiffFiles = void 0;
|
|
27
|
+
const YAML = __importStar(require("js-yaml"));
|
|
28
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
29
|
+
const yaml_1 = require("../../common/util/yaml");
|
|
30
|
+
const config_1 = require("../config");
|
|
31
|
+
const { CliSourceFileError } = utils_1.ERRORS;
|
|
32
|
+
const { INVALID_SOURCE } = config_1.STRINGS;
|
|
33
|
+
/**
|
|
34
|
+
* Loads files to compare. As a source file checks if data is piped and then decides which one to take.
|
|
35
|
+
*/
|
|
36
|
+
const loadIfDiffFiles = async (params) => {
|
|
37
|
+
const { sourcePath, targetPath, pipedSourceManifest } = params;
|
|
38
|
+
if (!sourcePath && !pipedSourceManifest) {
|
|
39
|
+
throw new CliSourceFileError(INVALID_SOURCE);
|
|
40
|
+
}
|
|
41
|
+
const loadFromSource = sourcePath && (await (0, yaml_1.openYamlFileAsObject)(sourcePath));
|
|
42
|
+
const loadFromSTDIN = pipedSourceManifest && (await YAML.load(pipedSourceManifest));
|
|
43
|
+
const rawSourceManifest = loadFromSource || loadFromSTDIN;
|
|
44
|
+
const rawTargetManifest = await (0, yaml_1.openYamlFileAsObject)(targetPath);
|
|
45
|
+
return {
|
|
46
|
+
rawSourceManifest,
|
|
47
|
+
rawTargetManifest,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
exports.loadIfDiffFiles = loadIfDiffFiles;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL2xpYi9sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQWdDO0FBRWhDLGlEQUE2QztBQUU3QyxpREFBNEQ7QUFFNUQsc0NBQWtDO0FBS2xDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUVwQyxNQUFNLEVBQUMsY0FBYyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVqQzs7R0FFRztBQUNJLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxNQUFzQixFQUFFLEVBQUU7SUFDOUQsTUFBTSxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFFN0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1FBQ3ZDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUM5QztJQUVELE1BQU0sY0FBYyxHQUNsQixVQUFVLElBQUksQ0FBQyxNQUFNLElBQUEsMkJBQW9CLEVBQVcsVUFBVyxDQUFDLENBQUMsQ0FBQztJQUNwRSxNQUFNLGFBQWEsR0FDakIsbUJBQW1CLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW9CLENBQUMsQ0FBQyxDQUFDO0lBRWpFLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxJQUFJLGFBQWEsQ0FBQztJQUMxRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBQSwyQkFBb0IsRUFBVyxVQUFVLENBQUMsQ0FBQztJQUUzRSxPQUFPO1FBQ0wsaUJBQWlCO1FBQ2pCLGlCQUFpQjtLQUNsQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbkJXLFFBQUEsZUFBZSxtQkFtQjFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgWUFNTCBmcm9tICdqcy15YW1sJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7b3BlbllhbWxGaWxlQXNPYmplY3R9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3lhbWwnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7TG9hZERpZmZQYXJhbXN9IGZyb20gJy4uL3R5cGVzL2FyZ3MnO1xuaW1wb3J0IHtNYW5pZmVzdH0gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzL21hbmlmZXN0JztcblxuY29uc3Qge0NsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtJTlZBTElEX1NPVVJDRX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIExvYWRzIGZpbGVzIHRvIGNvbXBhcmUuIEFzIGEgc291cmNlIGZpbGUgY2hlY2tzIGlmIGRhdGEgaXMgcGlwZWQgYW5kIHRoZW4gZGVjaWRlcyB3aGljaCBvbmUgdG8gdGFrZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRJZkRpZmZGaWxlcyA9IGFzeW5jIChwYXJhbXM6IExvYWREaWZmUGFyYW1zKSA9PiB7XG4gIGNvbnN0IHtzb3VyY2VQYXRoLCB0YXJnZXRQYXRoLCBwaXBlZFNvdXJjZU1hbmlmZXN0fSA9IHBhcmFtcztcblxuICBpZiAoIXNvdXJjZVBhdGggJiYgIXBpcGVkU291cmNlTWFuaWZlc3QpIHtcbiAgICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKElOVkFMSURfU09VUkNFKTtcbiAgfVxuXG4gIGNvbnN0IGxvYWRGcm9tU291cmNlID1cbiAgICBzb3VyY2VQYXRoICYmIChhd2FpdCBvcGVuWWFtbEZpbGVBc09iamVjdDxNYW5pZmVzdD4oc291cmNlUGF0aCEpKTtcbiAgY29uc3QgbG9hZEZyb21TVERJTiA9XG4gICAgcGlwZWRTb3VyY2VNYW5pZmVzdCAmJiAoYXdhaXQgWUFNTC5sb2FkKHBpcGVkU291cmNlTWFuaWZlc3QhKSk7XG5cbiAgY29uc3QgcmF3U291cmNlTWFuaWZlc3QgPSBsb2FkRnJvbVNvdXJjZSB8fCBsb2FkRnJvbVNURElOO1xuICBjb25zdCByYXdUYXJnZXRNYW5pZmVzdCA9IGF3YWl0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0PE1hbmlmZXN0Pih0YXJnZXRQYXRoKTtcblxuICByZXR1cm4ge1xuICAgIHJhd1NvdXJjZU1hbmlmZXN0LFxuICAgIHJhd1RhcmdldE1hbmlmZXN0LFxuICB9O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL3R5cGVzL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIExvYWREaWZmUGFyYW1zID0ge1xuICBzb3VyY2VQYXRoPzogc3RyaW5nO1xuICB0YXJnZXRQYXRoOiBzdHJpbmc7XG4gIHBpcGVkU291cmNlTWFuaWZlc3Q/OiBzdHJpbmc7XG59O1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL3R5cGVzL2NvbXBhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIERpZmZlcmVuY2UgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHNvdXJjZT86IGFueTtcbiAgdGFyZ2V0PzogYW55O1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWRpZmYvdHlwZXMvcHJvY2Vzcy1hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElGRGlmZkFyZ3Mge1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIHRhcmdldDogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIfDiffArgs = void 0;
|
|
4
|
+
const ts_command_line_args_1 = require("ts-command-line-args");
|
|
5
|
+
const utils_1 = require("@grnsft/if-core/utils");
|
|
6
|
+
const yaml_1 = require("../../common/util/yaml");
|
|
7
|
+
const helpers_1 = require("../../common/util/helpers");
|
|
8
|
+
const config_1 = require("../config");
|
|
9
|
+
const config_2 = require("../../common/config");
|
|
10
|
+
const { ParseCliParamsError, CliTargetFileError, CliSourceFileError } = utils_1.ERRORS;
|
|
11
|
+
const { ARGS, HELP } = config_1.CONFIG;
|
|
12
|
+
const { INVALID_TARGET } = config_1.STRINGS;
|
|
13
|
+
const { SOURCE_IS_NOT_YAML, TARGET_IS_NOT_YAML } = config_2.STRINGS;
|
|
14
|
+
/**
|
|
15
|
+
* Parses `if-diff` process arguments.
|
|
16
|
+
*/
|
|
17
|
+
const validateAndParseIfDiffArgs = () => {
|
|
18
|
+
try {
|
|
19
|
+
return (0, ts_command_line_args_1.parse)(ARGS, HELP);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error instanceof Error) {
|
|
23
|
+
throw new ParseCliParamsError(error.message);
|
|
24
|
+
}
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Checks for `source` and `target` flags to be present.
|
|
30
|
+
*/
|
|
31
|
+
const parseIfDiffArgs = () => {
|
|
32
|
+
const { source, target } = validateAndParseIfDiffArgs();
|
|
33
|
+
if (target) {
|
|
34
|
+
if (source && !(0, yaml_1.checkIfFileIsYaml)(source)) {
|
|
35
|
+
throw new CliSourceFileError(SOURCE_IS_NOT_YAML);
|
|
36
|
+
}
|
|
37
|
+
if ((0, yaml_1.checkIfFileIsYaml)(target)) {
|
|
38
|
+
const response = {
|
|
39
|
+
targetPath: (0, helpers_1.prependFullFilePath)(target),
|
|
40
|
+
};
|
|
41
|
+
if (source && (0, yaml_1.checkIfFileIsYaml)(source)) {
|
|
42
|
+
response.sourcePath = (0, helpers_1.prependFullFilePath)(source);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
}
|
|
46
|
+
throw new CliTargetFileError(TARGET_IS_NOT_YAML);
|
|
47
|
+
}
|
|
48
|
+
throw new ParseCliParamsError(INVALID_TARGET);
|
|
49
|
+
};
|
|
50
|
+
exports.parseIfDiffArgs = parseIfDiffArgs;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1kaWZmL3V0aWwvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBMkM7QUFDM0MsaURBQTZDO0FBRTdDLGlEQUF5RDtBQUN6RCx1REFBOEQ7QUFFOUQsc0NBQTBDO0FBQzFDLGdEQUE4RDtBQUs5RCxNQUFNLEVBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFFN0UsTUFBTSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUIsTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFDakMsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFDLEdBQUcsZ0JBQWMsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLElBQUk7UUFDRixPQUFPLElBQUEsNEJBQUssRUFBYSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDdEM7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzlDO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQztJQUV0RCxJQUFJLE1BQU0sRUFBRTtRQUNWLElBQUksTUFBTSxJQUFJLENBQUMsSUFBQSx3QkFBaUIsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksSUFBQSx3QkFBaUIsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixNQUFNLFFBQVEsR0FBbUI7Z0JBQy9CLFVBQVUsRUFBRSxJQUFBLDZCQUFtQixFQUFDLE1BQU0sQ0FBQzthQUN4QyxDQUFDO1lBRUYsSUFBSSxNQUFNLElBQUksSUFBQSx3QkFBaUIsRUFBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFBLDZCQUFtQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ25EO1lBRUQsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLElBQUksa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNsRDtJQUVELE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUF4QlcsUUFBQSxlQUFlLG1CQXdCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3BhcnNlfSBmcm9tICd0cy1jb21tYW5kLWxpbmUtYXJncyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtjaGVja0lmRmlsZUlzWWFtbH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwveWFtbCc7XG5pbXBvcnQge3ByZXBlbmRGdWxsRmlsZVBhdGh9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2hlbHBlcnMnO1xuXG5pbXBvcnQge0NPTkZJRywgU1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7U1RSSU5HUyBhcyBDT01NT05fU1RSSU5HU30gZnJvbSAnLi4vLi4vY29tbW9uL2NvbmZpZyc7XG5cbmltcG9ydCB7SUZEaWZmQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcbmltcG9ydCB7TG9hZERpZmZQYXJhbXN9IGZyb20gJy4uL3R5cGVzL2FyZ3MnO1xuXG5jb25zdCB7UGFyc2VDbGlQYXJhbXNFcnJvciwgQ2xpVGFyZ2V0RmlsZUVycm9yLCBDbGlTb3VyY2VGaWxlRXJyb3J9ID0gRVJST1JTO1xuXG5jb25zdCB7QVJHUywgSEVMUH0gPSBDT05GSUc7XG5jb25zdCB7SU5WQUxJRF9UQVJHRVR9ID0gU1RSSU5HUztcbmNvbnN0IHtTT1VSQ0VfSVNfTk9UX1lBTUwsIFRBUkdFVF9JU19OT1RfWUFNTH0gPSBDT01NT05fU1RSSU5HUztcblxuLyoqXG4gKiBQYXJzZXMgYGlmLWRpZmZgIHByb2Nlc3MgYXJndW1lbnRzLlxuICovXG5jb25zdCB2YWxpZGF0ZUFuZFBhcnNlSWZEaWZmQXJncyA9ICgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2U8SUZEaWZmQXJncz4oQVJHUywgSEVMUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZUNsaVBhcmFtc0Vycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyBmb3IgYHNvdXJjZWAgYW5kIGB0YXJnZXRgIGZsYWdzIHRvIGJlIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlmRGlmZkFyZ3MgPSAoKSA9PiB7XG4gIGNvbnN0IHtzb3VyY2UsIHRhcmdldH0gPSB2YWxpZGF0ZUFuZFBhcnNlSWZEaWZmQXJncygpO1xuXG4gIGlmICh0YXJnZXQpIHtcbiAgICBpZiAoc291cmNlICYmICFjaGVja0lmRmlsZUlzWWFtbChzb3VyY2UpKSB7XG4gICAgICB0aHJvdyBuZXcgQ2xpU291cmNlRmlsZUVycm9yKFNPVVJDRV9JU19OT1RfWUFNTCk7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrSWZGaWxlSXNZYW1sKHRhcmdldCkpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBMb2FkRGlmZlBhcmFtcyA9IHtcbiAgICAgICAgdGFyZ2V0UGF0aDogcHJlcGVuZEZ1bGxGaWxlUGF0aCh0YXJnZXQpLFxuICAgICAgfTtcblxuICAgICAgaWYgKHNvdXJjZSAmJiBjaGVja0lmRmlsZUlzWWFtbChzb3VyY2UpKSB7XG4gICAgICAgIHJlc3BvbnNlLnNvdXJjZVBhdGggPSBwcmVwZW5kRnVsbEZpbGVQYXRoKHNvdXJjZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQ2xpVGFyZ2V0RmlsZUVycm9yKFRBUkdFVF9JU19OT1RfWUFNTCk7XG4gIH1cblxuICB0aHJvdyBuZXcgUGFyc2VDbGlQYXJhbXNFcnJvcihJTlZBTElEX1RBUkdFVCk7XG59O1xuIl19
|