@grnsft/if 1.0.1 → 1.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +10 -0
- package/CONTAINER.md +148 -0
- package/Dockerfile +73 -0
- package/HELM_CHART.md +96 -0
- package/README.md +56 -0
- package/bin/docker-entrypoint.sh +15 -0
- package/build/common/types/manifest.d.ts +1 -0
- package/build/common/types/manifest.js +1 -1
- package/build/common/util/debug-logger.js +4 -18
- package/build/common/util/helpers.d.ts +3 -2
- package/build/common/util/helpers.js +6 -18
- package/build/common/util/storage.d.ts +9 -0
- package/build/common/util/storage.js +24 -0
- package/build/if-api/config/config.d.ts +9 -0
- package/build/if-api/config/config.js +58 -0
- package/build/if-api/config/index.d.ts +2 -0
- package/build/if-api/config/index.js +8 -0
- package/build/if-api/config/strings.d.ts +16 -0
- package/build/if-api/config/strings.js +20 -0
- package/build/if-api/index.d.ts +2 -0
- package/build/if-api/index.js +268 -0
- package/build/if-api/types/process-args.d.ts +18 -0
- package/build/if-api/types/process-args.js +3 -0
- package/build/if-api/util/args.d.ts +5 -0
- package/build/if-api/util/args.js +42 -0
- package/build/if-check/index.js +1 -11
- package/build/if-check/util/npm.d.ts +1 -1
- package/build/if-check/util/npm.js +31 -74
- package/build/if-metadata-check/config/config.d.ts +5 -0
- package/build/if-metadata-check/config/config.js +26 -0
- package/build/if-metadata-check/config/strings.d.ts +5 -0
- package/build/if-metadata-check/config/strings.js +9 -0
- package/build/if-metadata-check/index.d.ts +2 -0
- package/build/if-metadata-check/index.js +30 -0
- package/build/if-metadata-check/types/plugin.d.ts +7 -0
- package/build/if-metadata-check/types/plugin.js +3 -0
- package/build/if-metadata-check/types/process-args.d.ts +5 -0
- package/build/if-metadata-check/types/process-args.js +3 -0
- package/build/if-metadata-check/util/args.d.ts +57 -0
- package/build/if-metadata-check/util/args.js +29 -0
- package/build/if-metadata-check/util/metadata-checker.d.ts +44 -0
- package/build/if-metadata-check/util/metadata-checker.js +99 -0
- package/build/if-run/builtins/divide/index.js +2 -2
- package/build/if-run/builtins/sci/index.js +2 -2
- package/build/if-run/config/strings.js +3 -3
- package/build/if-run/index.js +1 -1
- package/build/if-run/lib/aggregate.d.ts +2 -2
- package/build/if-run/lib/aggregate.js +5 -19
- package/build/if-run/lib/compute.d.ts +1 -1
- package/build/if-run/lib/compute.js +10 -9
- package/build/if-run/lib/environment.d.ts +5 -1
- package/build/if-run/lib/environment.js +30 -29
- package/build/if-run/lib/initialize.d.ts +12 -0
- package/build/if-run/lib/initialize.js +37 -3
- package/build/if-run/lib/regroup.d.ts +3 -2
- package/build/if-run/lib/regroup.js +13 -9
- package/build/if-run/types/compute.d.ts +1 -1
- package/build/if-run/types/compute.js +1 -1
- package/build/if-run/util/os-checker.js +14 -10
- package/helm-chart/.helmignore +23 -0
- package/helm-chart/Chart.yaml +24 -0
- package/helm-chart/templates/NOTES.txt +22 -0
- package/helm-chart/templates/_helpers.tpl +62 -0
- package/helm-chart/templates/additionalPlugins.yaml +13 -0
- package/helm-chart/templates/deployment.yaml +144 -0
- package/helm-chart/templates/disabledPlugins.yaml +11 -0
- package/helm-chart/templates/env-configmap.yaml +10 -0
- package/helm-chart/templates/env-secret.yaml +10 -0
- package/helm-chart/templates/hpa.yaml +32 -0
- package/helm-chart/templates/ingress.yaml +43 -0
- package/helm-chart/templates/npmrc.yaml +11 -0
- package/helm-chart/templates/service.yaml +24 -0
- package/helm-chart/templates/serviceaccount.yaml +13 -0
- package/helm-chart/templates/tests/test-connection.yaml +15 -0
- package/helm-chart/values.yaml +175 -0
- package/jest.config.js +6 -2
- package/manifests/examples/bugs/aggregation-error-wrong-metric.yml +173 -0
- package/manifests/examples/bugs/input-error-missing-duration.yml +25 -0
- package/manifests/examples/bugs/mock-observations-failure-duration-is-zero.yml +33 -0
- package/manifests/examples/bugs/pipeline-error-naming-mismatch.yml +32 -0
- package/manifests/examples/bugs/pipeline-error-uninitialized-plugin.yml +33 -0
- package/manifests/examples/bugs/pipeline-ordering-error.yml +91 -0
- package/manifests/examples/builtins/divide/success-denominator-equal-zero.yml +36 -0
- package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +0 -1
- package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +0 -1
- package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +0 -1
- package/manifests/examples/builtins/mock-observations/success.yml +0 -1
- package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +0 -1
- package/manifests/examples/builtins/sci/failure-missing-input-param.yml +0 -1
- package/manifests/examples/builtins/sci/success.yml +0 -1
- package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +22 -0
- package/manifests/examples/builtins/time-sync/failure-missing-config.yml +0 -2
- package/manifests/examples/builtins/time-sync/success.yml +0 -2
- package/manifests/examples/features/aggregate-failure-invalid-metrics.yml +50 -0
- package/manifests/examples/features/aggregate-failure-missing-metric-in-inputs.yml +50 -0
- package/manifests/examples/features/aggregate-horizontal.yml +58 -0
- package/manifests/examples/features/aggregate-vertical.yml +58 -0
- package/manifests/examples/features/aggregate.yml +58 -0
- package/manifests/examples/pipelines/cloud-metadata-divide.yml +36 -0
- package/manifests/examples/pipelines/pipeline-with-mocks.yml +0 -1
- package/manifests/examples/pipelines/scenario-5.yml +0 -1
- package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-invalid-config-cpu-range.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-invalid-memory-utilization-range.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-missing-timestamp-from-param.yaml +0 -1
- package/manifests/outputs/builtins/sci/failure-invalid-config-value.yaml +0 -1
- package/manifests/outputs/builtins/sci/failure-missing-input-param.yaml +0 -1
- package/manifests/outputs/builtins/time-sync/failure-missing-config.yaml +0 -2
- package/manifests/outputs/features/regroup/success.yaml +72 -0
- package/manifests/outputs/pipelines/pipeline-with-aggregate.yaml +1291 -0
- package/manifests/outputs/pipelines/scenario-3.yaml +126 -0
- package/openapi.yaml +424 -0
- package/package.json +17 -12
- package/with-plugins/Dockerfile +59 -0
- package/.env +0 -5
- package/coverage/clover.xml +0 -2062
- package/coverage/coverage-final.json +0 -58
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/builtins/coefficient/index.ts.html +0 -298
- package/coverage/lcov-report/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +0 -826
- package/coverage/lcov-report/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/builtins/divide/index.ts.html +0 -358
- package/coverage/lcov-report/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/builtins/exponent/index.ts.html +0 -361
- package/coverage/lcov-report/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/builtins/index.html +0 -206
- package/coverage/lcov-report/builtins/index.ts.html +0 -130
- package/coverage/lcov-report/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/builtins/interpolation/index.ts.html +0 -676
- package/coverage/lcov-report/builtins/interpolation/types.ts.html +0 -100
- package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/builtins/mock-observations/index.ts.html +0 -619
- package/coverage/lcov-report/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/builtins/multiply/index.ts.html +0 -343
- package/coverage/lcov-report/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/builtins/regex/index.ts.html +0 -373
- package/coverage/lcov-report/builtins/sci/config.ts.html +0 -205
- package/coverage/lcov-report/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/builtins/sci/index.ts.html +0 -325
- package/coverage/lcov-report/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +0 -478
- package/coverage/lcov-report/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/builtins/shell/index.ts.html +0 -280
- package/coverage/lcov-report/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/builtins/subtract/index.ts.html +0 -379
- package/coverage/lcov-report/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/builtins/sum/index.ts.html +0 -334
- package/coverage/lcov-report/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/common/config/index.html +0 -131
- package/coverage/lcov-report/common/config/index.ts.html +0 -88
- package/coverage/lcov-report/common/config/strings.ts.html +0 -121
- package/coverage/lcov-report/common/lib/index.html +0 -116
- package/coverage/lcov-report/common/lib/load.ts.html +0 -139
- package/coverage/lcov-report/common/util/debug-logger.ts.html +0 -514
- package/coverage/lcov-report/common/util/fs.ts.html +0 -289
- package/coverage/lcov-report/common/util/helpers.ts.html +0 -355
- package/coverage/lcov-report/common/util/index.html +0 -191
- package/coverage/lcov-report/common/util/logger.ts.html +0 -151
- package/coverage/lcov-report/common/util/validations.ts.html +0 -628
- package/coverage/lcov-report/common/util/yaml.ts.html +0 -226
- package/coverage/lcov-report/config/config.ts.html +0 -463
- package/coverage/lcov-report/config/index.html +0 -161
- package/coverage/lcov-report/config/index.ts.html +0 -94
- package/coverage/lcov-report/config/params.ts.html +0 -697
- package/coverage/lcov-report/config/strings.ts.html +0 -490
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/if-check/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-check/config/index.html +0 -146
- package/coverage/lcov-report/if-check/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-check/config/strings.ts.html +0 -142
- package/coverage/lcov-report/if-check/util/args.ts.html +0 -310
- package/coverage/lcov-report/if-check/util/helpers.ts.html +0 -136
- package/coverage/lcov-report/if-check/util/index.html +0 -146
- package/coverage/lcov-report/if-check/util/npm.ts.html +0 -376
- package/coverage/lcov-report/if-csv/util/args.ts.html +0 -256
- package/coverage/lcov-report/if-csv/util/helpers.ts.html +0 -346
- package/coverage/lcov-report/if-csv/util/index.html +0 -131
- package/coverage/lcov-report/if-diff/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-diff/config/index.html +0 -146
- package/coverage/lcov-report/if-diff/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-diff/config/strings.ts.html +0 -100
- package/coverage/lcov-report/if-diff/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/if-diff/lib/index.html +0 -131
- package/coverage/lcov-report/if-diff/lib/load.ts.html +0 -199
- package/coverage/lcov-report/if-diff/util/args.ts.html +0 -274
- package/coverage/lcov-report/if-diff/util/helpers.ts.html +0 -337
- package/coverage/lcov-report/if-diff/util/index.html +0 -131
- package/coverage/lcov-report/if-env/config/config.ts.html +0 -211
- package/coverage/lcov-report/if-env/config/index.html +0 -146
- package/coverage/lcov-report/if-env/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-env/config/strings.ts.html +0 -109
- package/coverage/lcov-report/if-env/util/args.ts.html +0 -256
- package/coverage/lcov-report/if-env/util/index.html +0 -131
- package/coverage/lcov-report/if-env/util/npm.ts.html +0 -526
- package/coverage/lcov-report/if-merge/util/args.ts.html +0 -301
- package/coverage/lcov-report/if-merge/util/helpers.ts.html +0 -313
- package/coverage/lcov-report/if-merge/util/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +0 -286
- package/coverage/lcov-report/if-run/builtins/copy-param/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +0 -301
- package/coverage/lcov-report/if-run/builtins/csv-import/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/csv-import/index.ts.html +0 -364
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +0 -478
- package/coverage/lcov-report/if-run/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +0 -346
- package/coverage/lcov-report/if-run/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +0 -319
- package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/if-run/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/if-run/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/if-run/builtins/index.html +0 -146
- package/coverage/lcov-report/if-run/builtins/index.ts.html +0 -136
- package/coverage/lcov-report/if-run/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +0 -643
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +0 -607
- package/coverage/lcov-report/if-run/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +0 -289
- package/coverage/lcov-report/if-run/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +0 -298
- package/coverage/lcov-report/if-run/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +0 -418
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +0 -664
- package/coverage/lcov-report/if-run/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +0 -256
- package/coverage/lcov-report/if-run/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +0 -298
- package/coverage/lcov-report/if-run/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +0 -238
- package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +0 -205
- package/coverage/lcov-report/if-run/builtins/time-converter/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +0 -328
- package/coverage/lcov-report/if-run/builtins/time-sync/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +0 -1804
- package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/if-run/builtins/util/csv-helpers.ts.html +0 -376
- package/coverage/lcov-report/if-run/builtins/util/index.html +0 -116
- package/coverage/lcov-report/if-run/config/config.ts.html +0 -271
- package/coverage/lcov-report/if-run/config/index.html +0 -161
- package/coverage/lcov-report/if-run/config/index.ts.html +0 -94
- package/coverage/lcov-report/if-run/config/params.ts.html +0 -679
- package/coverage/lcov-report/if-run/config/strings.ts.html +0 -460
- package/coverage/lcov-report/if-run/lib/aggregate.ts.html +0 -577
- package/coverage/lcov-report/if-run/lib/compute.ts.html +0 -733
- package/coverage/lcov-report/if-run/lib/environment.ts.html +0 -373
- package/coverage/lcov-report/if-run/lib/exhaust.ts.html +0 -193
- package/coverage/lcov-report/if-run/lib/explain.ts.html +0 -484
- package/coverage/lcov-report/if-run/lib/index.html +0 -206
- package/coverage/lcov-report/if-run/lib/initialize.ts.html +0 -490
- package/coverage/lcov-report/if-run/lib/parameterize.ts.html +0 -322
- package/coverage/lcov-report/if-run/lib/regroup.ts.html +0 -349
- package/coverage/lcov-report/if-run/lib/time-sync.ts.html +0 -1510
- package/coverage/lcov-report/if-run/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/if-run/types/index.html +0 -146
- package/coverage/lcov-report/if-run/types/interface.ts.html +0 -112
- package/coverage/lcov-report/if-run/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +0 -277
- package/coverage/lcov-report/if-run/util/args.ts.html +0 -325
- package/coverage/lcov-report/if-run/util/helpers.ts.html +0 -208
- package/coverage/lcov-report/if-run/util/index.html +0 -191
- package/coverage/lcov-report/if-run/util/json.ts.html +0 -115
- package/coverage/lcov-report/if-run/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/if-run/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/index.html +0 -551
- package/coverage/lcov-report/lib/aggregate.ts.html +0 -358
- package/coverage/lcov-report/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/lib/compute.ts.html +0 -436
- package/coverage/lcov-report/lib/environment.ts.html +0 -376
- package/coverage/lcov-report/lib/exhaust.ts.html +0 -289
- package/coverage/lcov-report/lib/index.html +0 -221
- package/coverage/lcov-report/lib/initialize.ts.html +0 -430
- package/coverage/lcov-report/lib/load.ts.html +0 -268
- package/coverage/lcov-report/lib/parameterize.ts.html +0 -316
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/types/index.html +0 -146
- package/coverage/lcov-report/types/interface.ts.html +0 -112
- package/coverage/lcov-report/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/util/aggregation-helper.ts.html +0 -289
- package/coverage/lcov-report/util/args.ts.html +0 -649
- package/coverage/lcov-report/util/debug-logger.ts.html +0 -481
- package/coverage/lcov-report/util/errors.ts.html +0 -232
- package/coverage/lcov-report/util/fs.ts.html +0 -124
- package/coverage/lcov-report/util/helpers.ts.html +0 -895
- package/coverage/lcov-report/util/index.html +0 -296
- package/coverage/lcov-report/util/json.ts.html +0 -115
- package/coverage/lcov-report/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/util/logger.ts.html +0 -151
- package/coverage/lcov-report/util/npm.ts.html +0 -499
- package/coverage/lcov-report/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/util/validations.ts.html +0 -544
- package/coverage/lcov-report/util/yaml.ts.html +0 -193
- package/coverage/lcov.info +0 -3548
- package/manifests/outputs/builtins/interpolation/interpolation.yaml +0 -81
- package/manifests/outputs/features/failure-invalid-regroup.yaml +0 -87
- package/manifests/outputs/features/failure-missing-cloud-instance-type.yaml +0 -86
|
@@ -30,89 +30,46 @@ const fs_1 = require("../../common/util/fs");
|
|
|
30
30
|
const config_1 = require("../config");
|
|
31
31
|
const { IF_CHECK_VERIFIED } = config_1.STRINGS;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Executes a single Impact Framework command.
|
|
34
34
|
*/
|
|
35
|
-
const
|
|
35
|
+
const executeCommand = (command, args, executionOptions) => {
|
|
36
|
+
const commandPath = process.argv[1].replace(/(?<=[/\\])if-check(?:[/\\]index(?:\.[jt]s)?)?$/, command);
|
|
37
|
+
return (0, child_process_1.execFileSync)(process.execPath, [...process.execArgv, commandPath, ...args], executionOptions);
|
|
38
|
+
};
|
|
36
39
|
/**
|
|
37
|
-
* Executes a series of
|
|
40
|
+
* Executes a series of Impact Framework commands based on the provided manifest file.
|
|
38
41
|
*/
|
|
39
42
|
const executeCommands = async (manifest) => {
|
|
40
|
-
//
|
|
41
|
-
|
|
43
|
+
// Get fullpath of the manifest
|
|
44
|
+
if (!path.isAbsolute(manifest)) {
|
|
45
|
+
manifest = path.resolve(process.env.CURRENT_DIR || process.cwd(), manifest);
|
|
46
|
+
}
|
|
42
47
|
// Get the directory path and file name of the manifest
|
|
43
48
|
const manifestDirPath = path.dirname(manifest);
|
|
44
49
|
const manifestFileName = (0, fs_1.getFileName)(manifest);
|
|
45
50
|
// Create a path for the executed manifest file
|
|
46
51
|
const executedManifest = path.join(manifestDirPath, `re-${manifestFileName}`);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
isGlobal ? '' : '--',
|
|
68
|
-
...(prefixFlag === '' ? [] : [prefixFlag]),
|
|
69
|
-
'-m',
|
|
70
|
-
sanitizedManifest,
|
|
71
|
-
'-o',
|
|
72
|
-
sanitizedExecutedManifest,
|
|
73
|
-
];
|
|
74
|
-
// Construct the tty command to check if the process is running in a TTY context
|
|
75
|
-
const ttyCommand = ['node', '-p', 'Boolean(process.stdout.isTTY)'];
|
|
76
|
-
// Construct the if-diff command
|
|
77
|
-
const ifDiffCommand = [
|
|
78
|
-
isGlobal ? 'if-diff' : 'npm',
|
|
79
|
-
...(isGlobal ? [] : ['run', 'if-diff']),
|
|
80
|
-
isGlobal ? '' : '--',
|
|
81
|
-
...(prefixFlag === '' ? [] : [prefixFlag]),
|
|
82
|
-
'-s',
|
|
83
|
-
`${sanitizedExecutedManifest}.yaml`,
|
|
84
|
-
'-t',
|
|
85
|
-
sanitizedManifest,
|
|
86
|
-
];
|
|
87
|
-
const executionOptions = {
|
|
88
|
-
cwd: process.env.CURRENT_DIR || process.cwd(),
|
|
89
|
-
};
|
|
90
|
-
// Execute the if-env command
|
|
91
|
-
(0, child_process_1.execFileSync)(ifEnvCommand[0], ifEnvCommand.slice(1), {
|
|
92
|
-
...executionOptions,
|
|
93
|
-
shell: true,
|
|
94
|
-
});
|
|
95
|
-
// Execute the if-run command
|
|
96
|
-
(0, child_process_1.execFileSync)(ifRunCommand[0], ifRunCommand.slice(1), executionOptions);
|
|
97
|
-
// Execute the tty command to check if the process is running in a TTY context
|
|
98
|
-
(0, child_process_1.execFileSync)(ttyCommand[0], ttyCommand.slice(1), executionOptions);
|
|
99
|
-
// Get the result of the tty command
|
|
100
|
-
const ttyResult = (0, child_process_1.execFileSync)(ttyCommand[0], ttyCommand.slice(1), executionOptions);
|
|
101
|
-
// Determine if the process is running in a TTY context
|
|
102
|
-
const tty = ttyResult && ttyResult.toString().trim();
|
|
103
|
-
// Construct the full command to execute if-diff, optionally piping through tty
|
|
104
|
-
const fullCommand = `${tty === 'true' ? 'tty |' : ''} ${ifDiffCommand.join(' ')}`;
|
|
105
|
-
// Execute the full command
|
|
106
|
-
(0, child_process_1.execFileSync)(fullCommand, {
|
|
107
|
-
...executionOptions,
|
|
108
|
-
stdio: 'inherit',
|
|
109
|
-
shell: true,
|
|
110
|
-
});
|
|
111
|
-
// Remove the package.json file if it exists
|
|
112
|
-
await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`);
|
|
113
|
-
// Remove the executed manifest file if it exists
|
|
114
|
-
await (0, fs_1.removeFileIfExists)(`${executedManifest}.yaml`);
|
|
52
|
+
try {
|
|
53
|
+
// Execute the if-env command
|
|
54
|
+
executeCommand('if-env', ['-m', manifest], {
|
|
55
|
+
stdio: 'ignore',
|
|
56
|
+
});
|
|
57
|
+
// Execute the if-run command
|
|
58
|
+
executeCommand('if-run', ['-m', manifest, '-o', executedManifest], {
|
|
59
|
+
stdio: 'ignore',
|
|
60
|
+
});
|
|
61
|
+
// Execute the if-diff command
|
|
62
|
+
executeCommand('if-diff', ['-s', `${executedManifest}.yaml`, '-t', manifest], {
|
|
63
|
+
stdio: 'inherit',
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
// Remove the package.json file if it exists
|
|
68
|
+
await (0, fs_1.removeFileIfExists)(`${manifestDirPath}/package.json`);
|
|
69
|
+
// Remove the executed manifest file if it exists
|
|
70
|
+
await (0, fs_1.removeFileIfExists)(`${executedManifest}.yaml`);
|
|
71
|
+
}
|
|
115
72
|
console.log(IF_CHECK_VERIFIED(path.basename(manifest)));
|
|
116
73
|
};
|
|
117
74
|
exports.executeCommands = executeCommands;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLWNoZWNrL3V0aWwvbnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLGlEQUFxRTtBQUNyRSw2Q0FBcUU7QUFDckUsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxHQUFHLGdCQUFPLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixPQUFlLEVBQ2YsSUFBdUIsRUFDdkIsZ0JBQXFDLEVBQ3JDLEVBQUU7SUFDRixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDekMsZ0RBQWdELEVBQ2hELE9BQU8sQ0FDUixDQUFDO0lBRUYsT0FBTyxJQUFBLDRCQUFZLEVBQ2pCLE9BQU8sQ0FBQyxRQUFRLEVBQ2hCLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUMzQyxnQkFBZ0IsQ0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUN4RCwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDOUIsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzdFO0lBQ0QsdURBQXVEO0lBQ3ZELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdCQUFXLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsK0NBQStDO0lBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFOUUsSUFBSTtRQUNGLDZCQUE2QjtRQUM3QixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUMsQ0FBQztRQUVILDZCQUE2QjtRQUM3QixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUNqRSxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCw4QkFBOEI7UUFDOUIsY0FBYyxDQUNaLFNBQVMsRUFDVCxDQUFDLElBQUksRUFBRSxHQUFHLGdCQUFnQixPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUNsRDtZQUNFLEtBQUssRUFBRSxTQUFTO1NBQ2pCLENBQ0YsQ0FBQztLQUNIO1lBQVM7UUFDUiw0Q0FBNEM7UUFDNUMsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZUFBZSxlQUFlLENBQUMsQ0FBQztRQUM1RCxpREFBaUQ7UUFDakQsTUFBTSxJQUFBLHVCQUFrQixFQUFDLEdBQUcsZ0JBQWdCLE9BQU8sQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUF0Q1csUUFBQSxlQUFlLG1CQXNDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge2V4ZWNGaWxlU3luYywgdHlwZSBFeGVjRmlsZVN5bmNPcHRpb25zfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB7Z2V0RmlsZU5hbWUsIHJlbW92ZUZpbGVJZkV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SUZfQ0hFQ0tfVkVSSUZJRUR9ID0gU1RSSU5HUztcblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNpbmdsZSBJbXBhY3QgRnJhbWV3b3JrIGNvbW1hbmQuXG4gKi9cbmNvbnN0IGV4ZWN1dGVDb21tYW5kID0gKFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIGFyZ3M6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBleGVjdXRpb25PcHRpb25zOiBFeGVjRmlsZVN5bmNPcHRpb25zXG4pID0+IHtcbiAgY29uc3QgY29tbWFuZFBhdGggPSBwcm9jZXNzLmFyZ3ZbMV0ucmVwbGFjZShcbiAgICAvKD88PVsvXFxcXF0paWYtY2hlY2soPzpbL1xcXFxdaW5kZXgoPzpcXC5banRdcyk/KT8kLyxcbiAgICBjb21tYW5kXG4gICk7XG5cbiAgcmV0dXJuIGV4ZWNGaWxlU3luYyhcbiAgICBwcm9jZXNzLmV4ZWNQYXRoLFxuICAgIFsuLi5wcm9jZXNzLmV4ZWNBcmd2LCBjb21tYW5kUGF0aCwgLi4uYXJnc10sXG4gICAgZXhlY3V0aW9uT3B0aW9uc1xuICApO1xufTtcblxuLyoqXG4gKiBFeGVjdXRlcyBhIHNlcmllcyBvZiBJbXBhY3QgRnJhbWV3b3JrIGNvbW1hbmRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBtYW5pZmVzdCBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgZXhlY3V0ZUNvbW1hbmRzID0gYXN5bmMgKG1hbmlmZXN0OiBzdHJpbmcpID0+IHtcbiAgLy8gR2V0IGZ1bGxwYXRoIG9mIHRoZSBtYW5pZmVzdFxuICBpZiAoIXBhdGguaXNBYnNvbHV0ZShtYW5pZmVzdCkpIHtcbiAgICBtYW5pZmVzdCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmVudi5DVVJSRU5UX0RJUiB8fCBwcm9jZXNzLmN3ZCgpLCBtYW5pZmVzdCk7XG4gIH1cbiAgLy8gR2V0IHRoZSBkaXJlY3RvcnkgcGF0aCBhbmQgZmlsZSBuYW1lIG9mIHRoZSBtYW5pZmVzdFxuICBjb25zdCBtYW5pZmVzdERpclBhdGggPSBwYXRoLmRpcm5hbWUobWFuaWZlc3QpO1xuICBjb25zdCBtYW5pZmVzdEZpbGVOYW1lID0gZ2V0RmlsZU5hbWUobWFuaWZlc3QpO1xuICAvLyBDcmVhdGUgYSBwYXRoIGZvciB0aGUgZXhlY3V0ZWQgbWFuaWZlc3QgZmlsZVxuICBjb25zdCBleGVjdXRlZE1hbmlmZXN0ID0gcGF0aC5qb2luKG1hbmlmZXN0RGlyUGF0aCwgYHJlLSR7bWFuaWZlc3RGaWxlTmFtZX1gKTtcblxuICB0cnkge1xuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLWVudiBjb21tYW5kXG4gICAgZXhlY3V0ZUNvbW1hbmQoJ2lmLWVudicsIFsnLW0nLCBtYW5pZmVzdF0sIHtcbiAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICB9KTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLXJ1biBjb21tYW5kXG4gICAgZXhlY3V0ZUNvbW1hbmQoJ2lmLXJ1bicsIFsnLW0nLCBtYW5pZmVzdCwgJy1vJywgZXhlY3V0ZWRNYW5pZmVzdF0sIHtcbiAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICB9KTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlIGlmLWRpZmYgY29tbWFuZFxuICAgIGV4ZWN1dGVDb21tYW5kKFxuICAgICAgJ2lmLWRpZmYnLFxuICAgICAgWyctcycsIGAke2V4ZWN1dGVkTWFuaWZlc3R9LnlhbWxgLCAnLXQnLCBtYW5pZmVzdF0sXG4gICAgICB7XG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCcsXG4gICAgICB9XG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBSZW1vdmUgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlmIGl0IGV4aXN0c1xuICAgIGF3YWl0IHJlbW92ZUZpbGVJZkV4aXN0cyhgJHttYW5pZmVzdERpclBhdGh9L3BhY2thZ2UuanNvbmApO1xuICAgIC8vIFJlbW92ZSB0aGUgZXhlY3V0ZWQgbWFuaWZlc3QgZmlsZSBpZiBpdCBleGlzdHNcbiAgICBhd2FpdCByZW1vdmVGaWxlSWZFeGlzdHMoYCR7ZXhlY3V0ZWRNYW5pZmVzdH0ueWFtbGApO1xuICB9XG5cbiAgY29uc29sZS5sb2coSUZfQ0hFQ0tfVkVSSUZJRUQocGF0aC5iYXNlbmFtZShtYW5pZmVzdCkpKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFIG = void 0;
|
|
4
|
+
exports.CONFIG = {
|
|
5
|
+
ARGS: {
|
|
6
|
+
manifest: {
|
|
7
|
+
type: String,
|
|
8
|
+
alias: 'm',
|
|
9
|
+
description: 'Path of the manifest file',
|
|
10
|
+
},
|
|
11
|
+
parameters: {
|
|
12
|
+
type: String,
|
|
13
|
+
alias: 'p',
|
|
14
|
+
description: 'List of parameters to check',
|
|
15
|
+
multiple: true,
|
|
16
|
+
defaultValue: [],
|
|
17
|
+
},
|
|
18
|
+
help: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
alias: 'h',
|
|
21
|
+
description: 'Prints out the help instruction',
|
|
22
|
+
optional: true,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1ldGFkYXRhLWNoZWNrL2NvbmZpZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR2EsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSwyQkFBMkI7U0FDekM7UUFDRCxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxpQ0FBaUM7WUFDOUMsUUFBUSxFQUFFLElBQUk7U0FDZjtLQUNxQztDQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmd1bWVudENvbmZpZ30gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuaW1wb3J0IHtJRkNoZWNrTWV0YWRhdGFBcmdzfSBmcm9tICcuLi90eXBlcy9wcm9jZXNzLWFyZ3MnO1xuXG5leHBvcnQgY29uc3QgQ09ORklHID0ge1xuICBBUkdTOiB7XG4gICAgbWFuaWZlc3Q6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGFsaWFzOiAnbScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1BhdGggb2YgdGhlIG1hbmlmZXN0IGZpbGUnLFxuICAgIH0sXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgYWxpYXM6ICdwJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBwYXJhbWV0ZXJzIHRvIGNoZWNrJyxcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgZGVmYXVsdFZhbHVlOiBbXSxcbiAgICB9LFxuICAgIGhlbHA6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBhbGlhczogJ2gnLFxuICAgICAgZGVzY3JpcHRpb246ICdQcmludHMgb3V0IHRoZSBoZWxwIGluc3RydWN0aW9uJyxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0sXG4gIH0gYXMgQXJndW1lbnRDb25maWc8SUZDaGVja01ldGFkYXRhQXJncz4sXG59O1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRINGS = void 0;
|
|
4
|
+
exports.STRINGS = {
|
|
5
|
+
PARAMETERS_MISSING_METADATA: 'The following parameters are missing metadata: ',
|
|
6
|
+
ALL_PARAMETERS_HAVE_METADATA: 'All parameters have associated metadata.',
|
|
7
|
+
PERCENTAGE_COVERAGE: 'Metadata coverage percentage: ',
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXRhZGF0YS1jaGVjay9jb25maWcvc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRztJQUNyQiwyQkFBMkIsRUFDekIsaURBQWlEO0lBQ25ELDRCQUE0QixFQUFFLDBDQUEwQztJQUN4RSxtQkFBbUIsRUFBRSxnQ0FBZ0M7Q0FDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVFJJTkdTID0ge1xuICBQQVJBTUVURVJTX01JU1NJTkdfTUVUQURBVEE6XG4gICAgJ1RoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBhcmUgbWlzc2luZyBtZXRhZGF0YTogJyxcbiAgQUxMX1BBUkFNRVRFUlNfSEFWRV9NRVRBREFUQTogJ0FsbCBwYXJhbWV0ZXJzIGhhdmUgYXNzb2NpYXRlZCBtZXRhZGF0YS4nLFxuICBQRVJDRU5UQUdFX0NPVkVSQUdFOiAnTWV0YWRhdGEgY292ZXJhZ2UgcGVyY2VudGFnZTogJyxcbn07XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/user/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const args_1 = require("./util/args");
|
|
5
|
+
const metadata_checker_1 = require("./util/metadata-checker");
|
|
6
|
+
const debug_logger_1 = require("../common/util/debug-logger");
|
|
7
|
+
const logger_1 = require("../common/util/logger");
|
|
8
|
+
const strings_1 = require("./config/strings");
|
|
9
|
+
const { PERCENTAGE_COVERAGE, ALL_PARAMETERS_HAVE_METADATA, PARAMETERS_MISSING_METADATA, } = strings_1.STRINGS;
|
|
10
|
+
const IfCheckMetadata = async () => {
|
|
11
|
+
debug_logger_1.debugLogger.overrideConsoleMethods(false);
|
|
12
|
+
const { parameters, ...manifestData } = await (0, args_1.parseIFCheckMetadataArgs)();
|
|
13
|
+
const parameterSet = (0, metadata_checker_1.getParameters)(Object.values(manifestData.initialize.plugins), parameters);
|
|
14
|
+
const parameterWithMetadataSet = (0, metadata_checker_1.getParametersWithMetadata)(Object.values(manifestData.initialize.plugins));
|
|
15
|
+
const { percentage, missingParameters } = (0, metadata_checker_1.calculateMetadataCoverage)(parameterSet, parameterWithMetadataSet);
|
|
16
|
+
console.log(`${PERCENTAGE_COVERAGE} ${percentage.toFixed(2)}%`);
|
|
17
|
+
if (missingParameters.length > 0) {
|
|
18
|
+
console.log(PARAMETERS_MISSING_METADATA);
|
|
19
|
+
missingParameters.forEach(parameter => console.log(` - ${parameter}`));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.log(ALL_PARAMETERS_HAVE_METADATA);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
IfCheckMetadata().catch(error => {
|
|
26
|
+
if (error instanceof Error)
|
|
27
|
+
logger_1.logger.error(`${error.message}`);
|
|
28
|
+
throw error;
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaWYtbWV0YWRhdGEtY2hlY2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0Esc0NBQXFEO0FBQ3JELDhEQUlpQztBQUNqQyw4REFBd0Q7QUFDeEQsa0RBQTZDO0FBQzdDLDhDQUF5QztBQUV6QyxNQUFNLEVBQ0osbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QiwyQkFBMkIsR0FDNUIsR0FBRyxpQkFBTyxDQUFDO0FBRVosTUFBTSxlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDakMsMEJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxNQUFNLEVBQUMsVUFBVSxFQUFFLEdBQUcsWUFBWSxFQUFDLEdBQUcsTUFBTSxJQUFBLCtCQUF3QixHQUFFLENBQUM7SUFFdkUsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQ0FBYSxFQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFlLEVBQzVELFVBQVUsQ0FDWCxDQUFDO0lBQ0YsTUFBTSx3QkFBd0IsR0FBRyxJQUFBLDRDQUF5QixFQUN4RCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFlLENBQzdELENBQUM7SUFDRixNQUFNLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFDLEdBQUcsSUFBQSw0Q0FBeUIsRUFDL0QsWUFBWSxFQUNaLHdCQUF3QixDQUN6QixDQUFDO0lBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDekMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN6RTtTQUFNO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBQzNDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQzlCLElBQUksS0FBSyxZQUFZLEtBQUs7UUFBRSxlQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3VzZXIvYmluL2VudiBub2RlXG5cbmltcG9ydCB7SUZQbHVnaW59IGZyb20gJy4vdHlwZXMvcGx1Z2luJztcbmltcG9ydCB7cGFyc2VJRkNoZWNrTWV0YWRhdGFBcmdzfSBmcm9tICcuL3V0aWwvYXJncyc7XG5pbXBvcnQge1xuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRQYXJhbWV0ZXJzV2l0aE1ldGFkYXRhLFxuICBjYWxjdWxhdGVNZXRhZGF0YUNvdmVyYWdlLFxufSBmcm9tICcuL3V0aWwvbWV0YWRhdGEtY2hlY2tlcic7XG5pbXBvcnQge2RlYnVnTG9nZ2VyfSBmcm9tICcuLi9jb21tb24vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHtsb2dnZXJ9IGZyb20gJy4uL2NvbW1vbi91dGlsL2xvZ2dlcic7XG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCB7XG4gIFBFUkNFTlRBR0VfQ09WRVJBR0UsXG4gIEFMTF9QQVJBTUVURVJTX0hBVkVfTUVUQURBVEEsXG4gIFBBUkFNRVRFUlNfTUlTU0lOR19NRVRBREFUQSxcbn0gPSBTVFJJTkdTO1xuXG5jb25zdCBJZkNoZWNrTWV0YWRhdGEgPSBhc3luYyAoKSA9PiB7XG4gIGRlYnVnTG9nZ2VyLm92ZXJyaWRlQ29uc29sZU1ldGhvZHMoZmFsc2UpO1xuICBjb25zdCB7cGFyYW1ldGVycywgLi4ubWFuaWZlc3REYXRhfSA9IGF3YWl0IHBhcnNlSUZDaGVja01ldGFkYXRhQXJncygpO1xuXG4gIGNvbnN0IHBhcmFtZXRlclNldCA9IGdldFBhcmFtZXRlcnMoXG4gICAgT2JqZWN0LnZhbHVlcyhtYW5pZmVzdERhdGEuaW5pdGlhbGl6ZS5wbHVnaW5zKSBhcyBJRlBsdWdpbltdLFxuICAgIHBhcmFtZXRlcnNcbiAgKTtcbiAgY29uc3QgcGFyYW1ldGVyV2l0aE1ldGFkYXRhU2V0ID0gZ2V0UGFyYW1ldGVyc1dpdGhNZXRhZGF0YShcbiAgICBPYmplY3QudmFsdWVzKG1hbmlmZXN0RGF0YS5pbml0aWFsaXplLnBsdWdpbnMpIGFzIElGUGx1Z2luW11cbiAgKTtcbiAgY29uc3Qge3BlcmNlbnRhZ2UsIG1pc3NpbmdQYXJhbWV0ZXJzfSA9IGNhbGN1bGF0ZU1ldGFkYXRhQ292ZXJhZ2UoXG4gICAgcGFyYW1ldGVyU2V0LFxuICAgIHBhcmFtZXRlcldpdGhNZXRhZGF0YVNldFxuICApO1xuICBjb25zb2xlLmxvZyhgJHtQRVJDRU5UQUdFX0NPVkVSQUdFfSAke3BlcmNlbnRhZ2UudG9GaXhlZCgyKX0lYCk7XG4gIGlmIChtaXNzaW5nUGFyYW1ldGVycy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coUEFSQU1FVEVSU19NSVNTSU5HX01FVEFEQVRBKTtcbiAgICBtaXNzaW5nUGFyYW1ldGVycy5mb3JFYWNoKHBhcmFtZXRlciA9PiBjb25zb2xlLmxvZyhgICAtICR7cGFyYW1ldGVyfWApKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhBTExfUEFSQU1FVEVSU19IQVZFX01FVEFEQVRBKTtcbiAgfVxufTtcblxuSWZDaGVja01ldGFkYXRhKCkuY2F0Y2goZXJyb3IgPT4ge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgbG9nZ2VyLmVycm9yKGAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gIHRocm93IGVycm9yO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1ldGFkYXRhLWNoZWNrL3R5cGVzL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQbHVnaW5QYXJhbWV0ZXJzTWV0YWRhdGF9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZQbHVnaW4ge1xuICBwYXRoOiBzdHJpbmc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAncGFyYW1ldGVyLW1ldGFkYXRhJz86IFBsdWdpblBhcmFtZXRlcnNNZXRhZGF0YTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmLW1ldGFkYXRhLWNoZWNrL3R5cGVzL3Byb2Nlc3MtYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRkNoZWNrTWV0YWRhdGFBcmdzIHtcbiAgbWFuaWZlc3Q6IHN0cmluZztcbiAgcGFyYW1ldGVyczogc3RyaW5nW107XG4gIGhlbHA/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare const parseIFCheckMetadataArgs: () => Promise<{
|
|
2
|
+
parameters: string[];
|
|
3
|
+
name: string;
|
|
4
|
+
initialize: {
|
|
5
|
+
plugins: Record<string, {
|
|
6
|
+
path: string;
|
|
7
|
+
method: string;
|
|
8
|
+
mapping?: Record<string, string> | undefined;
|
|
9
|
+
config?: Record<string, any> | undefined;
|
|
10
|
+
'parameter-metadata'?: {
|
|
11
|
+
inputs?: Record<string, {
|
|
12
|
+
unit: string;
|
|
13
|
+
description: string;
|
|
14
|
+
'aggregation-method': {
|
|
15
|
+
time: "sum" | "avg" | "none" | "copy";
|
|
16
|
+
component: "sum" | "avg" | "none" | "copy";
|
|
17
|
+
};
|
|
18
|
+
}> | null | undefined;
|
|
19
|
+
outputs?: Record<string, {
|
|
20
|
+
unit: string;
|
|
21
|
+
description: string;
|
|
22
|
+
'aggregation-method': {
|
|
23
|
+
time: "sum" | "avg" | "none" | "copy";
|
|
24
|
+
component: "sum" | "avg" | "none" | "copy";
|
|
25
|
+
};
|
|
26
|
+
}> | null | undefined;
|
|
27
|
+
} | undefined;
|
|
28
|
+
} | undefined>;
|
|
29
|
+
};
|
|
30
|
+
tree: Record<string, any>;
|
|
31
|
+
description?: string | null | undefined;
|
|
32
|
+
tags?: {
|
|
33
|
+
kind?: string | null | undefined;
|
|
34
|
+
complexity?: string | null | undefined;
|
|
35
|
+
category?: string | null | undefined;
|
|
36
|
+
} | null | undefined;
|
|
37
|
+
explainer?: boolean | undefined;
|
|
38
|
+
explain?: Record<string, any> | undefined;
|
|
39
|
+
aggregation?: {
|
|
40
|
+
type: "horizontal" | "time" | "vertical" | "component" | "both";
|
|
41
|
+
metrics: string[];
|
|
42
|
+
'skip-components'?: string[] | undefined;
|
|
43
|
+
} | null | undefined;
|
|
44
|
+
execution?: {
|
|
45
|
+
status: string;
|
|
46
|
+
command?: string | undefined;
|
|
47
|
+
environment?: {
|
|
48
|
+
'if-version': string;
|
|
49
|
+
os: string;
|
|
50
|
+
'os-version': string;
|
|
51
|
+
'node-version': string;
|
|
52
|
+
'date-time': string;
|
|
53
|
+
dependencies: string[];
|
|
54
|
+
} | undefined;
|
|
55
|
+
error?: string | undefined;
|
|
56
|
+
} | undefined;
|
|
57
|
+
}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIFCheckMetadataArgs = void 0;
|
|
4
|
+
const ts_command_line_args_1 = require("ts-command-line-args");
|
|
5
|
+
const config_1 = require("../config/config");
|
|
6
|
+
const helpers_1 = require("../../common/util/helpers");
|
|
7
|
+
const load_1 = require("../../common/lib/load");
|
|
8
|
+
const validations_1 = require("../../common/util/validations");
|
|
9
|
+
const { ARGS } = config_1.CONFIG;
|
|
10
|
+
const validateAndParseIFCheckMetadataArgs = () => {
|
|
11
|
+
try {
|
|
12
|
+
return (0, ts_command_line_args_1.parse)(ARGS);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error instanceof Error) {
|
|
16
|
+
console.log(error.message);
|
|
17
|
+
(0, helpers_1.runHelpCommand)('if-check-metadata');
|
|
18
|
+
}
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const parseIFCheckMetadataArgs = async () => {
|
|
23
|
+
const { manifest, parameters } = validateAndParseIFCheckMetadataArgs();
|
|
24
|
+
const { rawManifest } = await (0, load_1.load)(manifest);
|
|
25
|
+
const validatedManifest = (0, validations_1.validateManifest)(rawManifest);
|
|
26
|
+
return { ...validatedManifest, parameters };
|
|
27
|
+
};
|
|
28
|
+
exports.parseIFCheckMetadataArgs = parseIFCheckMetadataArgs;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXRhZGF0YS1jaGVjay91dGlsL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0RBQTJDO0FBQzNDLDZDQUF3QztBQUN4Qyx1REFBeUQ7QUFDekQsZ0RBQTJDO0FBQzNDLCtEQUErRDtBQUUvRCxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRXRCLE1BQU0sbUNBQW1DLEdBQUcsR0FBd0IsRUFBRTtJQUNwRSxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFLLEVBQXNCLElBQUksQ0FBQyxDQUFDO0tBQ3pDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsSUFBQSx3QkFBYyxFQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDckM7UUFDRCxNQUFNLEtBQUssQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDO0FBRUssTUFBTSx3QkFBd0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNqRCxNQUFNLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBQyxHQUFHLG1DQUFtQyxFQUFFLENBQUM7SUFDckUsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLE1BQU0sSUFBQSxXQUFJLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDhCQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sRUFBQyxHQUFHLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUxXLFFBQUEsd0JBQXdCLDRCQUtuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SUZDaGVja01ldGFkYXRhQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcbmltcG9ydCB7cGFyc2V9IGZyb20gJ3RzLWNvbW1hbmQtbGluZS1hcmdzJztcbmltcG9ydCB7Q09ORklHfSBmcm9tICcuLi9jb25maWcvY29uZmlnJztcbmltcG9ydCB7cnVuSGVscENvbW1hbmR9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL2hlbHBlcnMnO1xuaW1wb3J0IHtsb2FkfSBmcm9tICcuLi8uLi9jb21tb24vbGliL2xvYWQnO1xuaW1wb3J0IHt2YWxpZGF0ZU1hbmlmZXN0fSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC92YWxpZGF0aW9ucyc7XG5cbmNvbnN0IHtBUkdTfSA9IENPTkZJRztcblxuY29uc3QgdmFsaWRhdGVBbmRQYXJzZUlGQ2hlY2tNZXRhZGF0YUFyZ3MgPSAoKTogSUZDaGVja01ldGFkYXRhQXJncyA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlPElGQ2hlY2tNZXRhZGF0YUFyZ3M+KEFSR1MpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTtcbiAgICAgIHJ1bkhlbHBDb21tYW5kKCdpZi1jaGVjay1tZXRhZGF0YScpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlSUZDaGVja01ldGFkYXRhQXJncyA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qge21hbmlmZXN0LCBwYXJhbWV0ZXJzfSA9IHZhbGlkYXRlQW5kUGFyc2VJRkNoZWNrTWV0YWRhdGFBcmdzKCk7XG4gIGNvbnN0IHtyYXdNYW5pZmVzdH0gPSBhd2FpdCBsb2FkKG1hbmlmZXN0KTtcbiAgY29uc3QgdmFsaWRhdGVkTWFuaWZlc3QgPSB2YWxpZGF0ZU1hbmlmZXN0KHJhd01hbmlmZXN0KTtcbiAgcmV0dXJuIHsuLi52YWxpZGF0ZWRNYW5pZmVzdCwgcGFyYW1ldGVyc307XG59O1xuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { IFPlugin } from '../types/plugin';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts a set of parameter values from the configurations of the provided plugins.
|
|
4
|
+
*
|
|
5
|
+
* @param plugins - An array of plugins, each containing configuration data.
|
|
6
|
+
* @param parameters - Additional parameter keys to extract from the plugin configurations.
|
|
7
|
+
* @returns A set of parameter values extracted from the plugin configurations.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getParameters: (plugins: IFPlugin[], parameters: string[]) => Set<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts a set of parameters that have defined metadata from the provided plugins.
|
|
12
|
+
*
|
|
13
|
+
* @param plugins - An array of plugins, each containing metadata information.
|
|
14
|
+
* @returns A set of parameter names that have associated metadata.
|
|
15
|
+
*/
|
|
16
|
+
export declare const getParametersWithMetadata: (plugins: IFPlugin[]) => Set<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Extracts parameters with metadata from a single plugin.
|
|
19
|
+
*
|
|
20
|
+
* @param plugin - A plugin object containing metadata information.
|
|
21
|
+
* @returns An array of parameter names that have associated metadata, including inputs and outputs.
|
|
22
|
+
*/
|
|
23
|
+
export declare const extractParametersWithMetadata: (plugin: IFPlugin) => string[];
|
|
24
|
+
/**
|
|
25
|
+
* Extracts parameter values from a plugin's configuration based on specified keys.
|
|
26
|
+
*
|
|
27
|
+
* @param config - The configuration object of a plugin.
|
|
28
|
+
* @param keys - An array of keys to look for in the configuration object.
|
|
29
|
+
* @returns An array of parameter values corresponding to the specified keys.
|
|
30
|
+
*/
|
|
31
|
+
export declare const extractParameters: (config: Record<string, any> | undefined, keys: string[]) => any[];
|
|
32
|
+
/**
|
|
33
|
+
* Calculates the coverage of metadata for a given set of parameters.
|
|
34
|
+
*
|
|
35
|
+
* @param parameterSet - A set of all parameters extracted from plugin configurations.
|
|
36
|
+
* @param parameterWithMetadataSet - A set of parameters that have associated metadata.
|
|
37
|
+
* @returns An object containing:
|
|
38
|
+
* - `percentage`: The percentage of parameters with metadata coverage.
|
|
39
|
+
* - `missingParameters`: An array of parameters that lack metadata coverage.
|
|
40
|
+
*/
|
|
41
|
+
export declare const calculateMetadataCoverage: (parameterSet: Set<string>, parameterWithMetadataSet: Set<string>) => {
|
|
42
|
+
percentage: number;
|
|
43
|
+
missingParameters: string[];
|
|
44
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateMetadataCoverage = exports.extractParameters = exports.extractParametersWithMetadata = exports.getParametersWithMetadata = exports.getParameters = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Extracts a set of parameter values from the configurations of the provided plugins.
|
|
6
|
+
*
|
|
7
|
+
* @param plugins - An array of plugins, each containing configuration data.
|
|
8
|
+
* @param parameters - Additional parameter keys to extract from the plugin configurations.
|
|
9
|
+
* @returns A set of parameter values extracted from the plugin configurations.
|
|
10
|
+
*/
|
|
11
|
+
const getParameters = (plugins, parameters) => {
|
|
12
|
+
return new Set(plugins.flatMap(plugin => (0, exports.extractParameters)(plugin.config, [
|
|
13
|
+
'input-parameter',
|
|
14
|
+
'output-parameter',
|
|
15
|
+
'input-parameters',
|
|
16
|
+
'output',
|
|
17
|
+
...parameters,
|
|
18
|
+
])));
|
|
19
|
+
};
|
|
20
|
+
exports.getParameters = getParameters;
|
|
21
|
+
/**
|
|
22
|
+
* Extracts a set of parameters that have defined metadata from the provided plugins.
|
|
23
|
+
*
|
|
24
|
+
* @param plugins - An array of plugins, each containing metadata information.
|
|
25
|
+
* @returns A set of parameter names that have associated metadata.
|
|
26
|
+
*/
|
|
27
|
+
const getParametersWithMetadata = (plugins) => {
|
|
28
|
+
return new Set(plugins.flatMap(plugin => (0, exports.extractParametersWithMetadata)(plugin)));
|
|
29
|
+
};
|
|
30
|
+
exports.getParametersWithMetadata = getParametersWithMetadata;
|
|
31
|
+
/**
|
|
32
|
+
* Extracts parameters with metadata from a single plugin.
|
|
33
|
+
*
|
|
34
|
+
* @param plugin - A plugin object containing metadata information.
|
|
35
|
+
* @returns An array of parameter names that have associated metadata, including inputs and outputs.
|
|
36
|
+
*/
|
|
37
|
+
const extractParametersWithMetadata = (plugin) => {
|
|
38
|
+
if (!plugin['parameter-metadata'])
|
|
39
|
+
return [];
|
|
40
|
+
const { inputs, outputs } = plugin['parameter-metadata'];
|
|
41
|
+
return [
|
|
42
|
+
...(inputs ? Object.keys(inputs) : []),
|
|
43
|
+
...(outputs ? Object.keys(outputs) : []),
|
|
44
|
+
];
|
|
45
|
+
};
|
|
46
|
+
exports.extractParametersWithMetadata = extractParametersWithMetadata;
|
|
47
|
+
/**
|
|
48
|
+
* Extracts parameter values from a plugin's configuration based on specified keys.
|
|
49
|
+
*
|
|
50
|
+
* @param config - The configuration object of a plugin.
|
|
51
|
+
* @param keys - An array of keys to look for in the configuration object.
|
|
52
|
+
* @returns An array of parameter values corresponding to the specified keys.
|
|
53
|
+
*/
|
|
54
|
+
const extractParameters = (config, keys) => {
|
|
55
|
+
if (!config)
|
|
56
|
+
return [];
|
|
57
|
+
return keys.flatMap(key => {
|
|
58
|
+
if (key in config && isStringOrStringArray(config[key])) {
|
|
59
|
+
return config[key];
|
|
60
|
+
}
|
|
61
|
+
return [];
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.extractParameters = extractParameters;
|
|
65
|
+
/**
|
|
66
|
+
* Calculates the coverage of metadata for a given set of parameters.
|
|
67
|
+
*
|
|
68
|
+
* @param parameterSet - A set of all parameters extracted from plugin configurations.
|
|
69
|
+
* @param parameterWithMetadataSet - A set of parameters that have associated metadata.
|
|
70
|
+
* @returns An object containing:
|
|
71
|
+
* - `percentage`: The percentage of parameters with metadata coverage.
|
|
72
|
+
* - `missingParameters`: An array of parameters that lack metadata coverage.
|
|
73
|
+
*/
|
|
74
|
+
const calculateMetadataCoverage = (parameterSet, parameterWithMetadataSet) => {
|
|
75
|
+
const totalParameters = parameterSet.size;
|
|
76
|
+
const parametersWithMetadata = [...parameterSet].filter(param => parameterWithMetadataSet.has(param)).length;
|
|
77
|
+
const percentage = totalParameters === 0
|
|
78
|
+
? 100
|
|
79
|
+
: (parametersWithMetadata / totalParameters) * 100;
|
|
80
|
+
const missingParameters = [...parameterSet].filter(parameter => !parameterWithMetadataSet.has(parameter));
|
|
81
|
+
return { percentage, missingParameters };
|
|
82
|
+
};
|
|
83
|
+
exports.calculateMetadataCoverage = calculateMetadataCoverage;
|
|
84
|
+
/**
|
|
85
|
+
* Checks if the given parameter is a string or an array of strings.
|
|
86
|
+
*
|
|
87
|
+
* @param parameter - The parameter to validate.
|
|
88
|
+
* @returns `true` if the parameter is a string or an array of strings, otherwise `false`.
|
|
89
|
+
*/
|
|
90
|
+
const isStringOrStringArray = (parameter) => {
|
|
91
|
+
if (typeof parameter === 'string') {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
if (Array.isArray(parameter)) {
|
|
95
|
+
return parameter.every(item => typeof item === 'string');
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXRhZGF0YS1jaGVjay91dGlsL21ldGFkYXRhLWNoZWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7Ozs7OztHQU1HO0FBQ0ksTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFtQixFQUFFLFVBQW9CLEVBQUUsRUFBRTtJQUN6RSxPQUFPLElBQUksR0FBRyxDQUNaLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDdkIsSUFBQSx5QkFBaUIsRUFBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQy9CLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLFFBQVE7UUFDUixHQUFHLFVBQVU7S0FDZCxDQUFDLENBQ0gsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBWlcsUUFBQSxhQUFhLGlCQVl4QjtBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE9BQW1CLEVBQUUsRUFBRTtJQUMvRCxPQUFPLElBQUksR0FBRyxDQUNaLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFBLHFDQUE2QixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ2pFLENBQUM7QUFDSixDQUFDLENBQUM7QUFKVyxRQUFBLHlCQUF5Qiw2QkFJcEM7QUFFRjs7Ozs7R0FLRztBQUNJLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxNQUFnQixFQUFFLEVBQUU7SUFDaEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzdDLE1BQU0sRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFDLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkQsT0FBTztRQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDekMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVBXLFFBQUEsNkJBQTZCLGlDQU94QztBQUVGOzs7Ozs7R0FNRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsTUFBdUMsRUFDdkMsSUFBYyxFQUNkLEVBQUU7SUFDRixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4QixJQUFJLEdBQUcsSUFBSSxNQUFNLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDdkQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWFcsUUFBQSxpQkFBaUIscUJBVzVCO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSSxNQUFNLHlCQUF5QixHQUFHLENBQ3ZDLFlBQXlCLEVBQ3pCLHdCQUFxQyxFQUNyQyxFQUFFO0lBQ0YsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztJQUMxQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDOUQsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUNwQyxDQUFDLE1BQU0sQ0FBQztJQUNULE1BQU0sVUFBVSxHQUNkLGVBQWUsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxHQUFHO1FBQ0wsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUcsZUFBZSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBRXZELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FDaEQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FDdEQsQ0FBQztJQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUM7QUFsQlcsUUFBQSx5QkFBeUIsNkJBa0JwQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWtCLEVBQVcsRUFBRTtJQUM1RCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0tBQzFEO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lGUGx1Z2lufSBmcm9tICcuLi90eXBlcy9wbHVnaW4nO1xuXG4vKipcbiAqIEV4dHJhY3RzIGEgc2V0IG9mIHBhcmFtZXRlciB2YWx1ZXMgZnJvbSB0aGUgY29uZmlndXJhdGlvbnMgb2YgdGhlIHByb3ZpZGVkIHBsdWdpbnMuXG4gKlxuICogQHBhcmFtIHBsdWdpbnMgLSBBbiBhcnJheSBvZiBwbHVnaW5zLCBlYWNoIGNvbnRhaW5pbmcgY29uZmlndXJhdGlvbiBkYXRhLlxuICogQHBhcmFtIHBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlciBrZXlzIHRvIGV4dHJhY3QgZnJvbSB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb25zLlxuICogQHJldHVybnMgQSBzZXQgb2YgcGFyYW1ldGVyIHZhbHVlcyBleHRyYWN0ZWQgZnJvbSB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgZ2V0UGFyYW1ldGVycyA9IChwbHVnaW5zOiBJRlBsdWdpbltdLCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICByZXR1cm4gbmV3IFNldDxzdHJpbmc+KFxuICAgIHBsdWdpbnMuZmxhdE1hcChwbHVnaW4gPT5cbiAgICAgIGV4dHJhY3RQYXJhbWV0ZXJzKHBsdWdpbi5jb25maWcsIFtcbiAgICAgICAgJ2lucHV0LXBhcmFtZXRlcicsXG4gICAgICAgICdvdXRwdXQtcGFyYW1ldGVyJyxcbiAgICAgICAgJ2lucHV0LXBhcmFtZXRlcnMnLFxuICAgICAgICAnb3V0cHV0JyxcbiAgICAgICAgLi4ucGFyYW1ldGVycyxcbiAgICAgIF0pXG4gICAgKVxuICApO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyBhIHNldCBvZiBwYXJhbWV0ZXJzIHRoYXQgaGF2ZSBkZWZpbmVkIG1ldGFkYXRhIGZyb20gdGhlIHByb3ZpZGVkIHBsdWdpbnMuXG4gKlxuICogQHBhcmFtIHBsdWdpbnMgLSBBbiBhcnJheSBvZiBwbHVnaW5zLCBlYWNoIGNvbnRhaW5pbmcgbWV0YWRhdGEgaW5mb3JtYXRpb24uXG4gKiBAcmV0dXJucyBBIHNldCBvZiBwYXJhbWV0ZXIgbmFtZXMgdGhhdCBoYXZlIGFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRQYXJhbWV0ZXJzV2l0aE1ldGFkYXRhID0gKHBsdWdpbnM6IElGUGx1Z2luW10pID0+IHtcbiAgcmV0dXJuIG5ldyBTZXQ8c3RyaW5nPihcbiAgICBwbHVnaW5zLmZsYXRNYXAocGx1Z2luID0+IGV4dHJhY3RQYXJhbWV0ZXJzV2l0aE1ldGFkYXRhKHBsdWdpbikpXG4gICk7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIHBhcmFtZXRlcnMgd2l0aCBtZXRhZGF0YSBmcm9tIGEgc2luZ2xlIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gQSBwbHVnaW4gb2JqZWN0IGNvbnRhaW5pbmcgbWV0YWRhdGEgaW5mb3JtYXRpb24uXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwYXJhbWV0ZXIgbmFtZXMgdGhhdCBoYXZlIGFzc29jaWF0ZWQgbWV0YWRhdGEsIGluY2x1ZGluZyBpbnB1dHMgYW5kIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0UGFyYW1ldGVyc1dpdGhNZXRhZGF0YSA9IChwbHVnaW46IElGUGx1Z2luKSA9PiB7XG4gIGlmICghcGx1Z2luWydwYXJhbWV0ZXItbWV0YWRhdGEnXSkgcmV0dXJuIFtdO1xuICBjb25zdCB7aW5wdXRzLCBvdXRwdXRzfSA9IHBsdWdpblsncGFyYW1ldGVyLW1ldGFkYXRhJ107XG4gIHJldHVybiBbXG4gICAgLi4uKGlucHV0cyA/IE9iamVjdC5rZXlzKGlucHV0cykgOiBbXSksXG4gICAgLi4uKG91dHB1dHMgPyBPYmplY3Qua2V5cyhvdXRwdXRzKSA6IFtdKSxcbiAgXTtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgcGFyYW1ldGVyIHZhbHVlcyBmcm9tIGEgcGx1Z2luJ3MgY29uZmlndXJhdGlvbiBiYXNlZCBvbiBzcGVjaWZpZWQga2V5cy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIGEgcGx1Z2luLlxuICogQHBhcmFtIGtleXMgLSBBbiBhcnJheSBvZiBrZXlzIHRvIGxvb2sgZm9yIGluIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhcmFtZXRlciB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGtleXMuXG4gKi9cbmV4cG9ydCBjb25zdCBleHRyYWN0UGFyYW1ldGVycyA9IChcbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkLFxuICBrZXlzOiBzdHJpbmdbXVxuKSA9PiB7XG4gIGlmICghY29uZmlnKSByZXR1cm4gW107XG4gIHJldHVybiBrZXlzLmZsYXRNYXAoa2V5ID0+IHtcbiAgICBpZiAoa2V5IGluIGNvbmZpZyAmJiBpc1N0cmluZ09yU3RyaW5nQXJyYXkoY29uZmlnW2tleV0pKSB7XG4gICAgICByZXR1cm4gY29uZmlnW2tleV07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGNvdmVyYWdlIG9mIG1ldGFkYXRhIGZvciBhIGdpdmVuIHNldCBvZiBwYXJhbWV0ZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbWV0ZXJTZXQgLSBBIHNldCBvZiBhbGwgcGFyYW1ldGVycyBleHRyYWN0ZWQgZnJvbSBwbHVnaW4gY29uZmlndXJhdGlvbnMuXG4gKiBAcGFyYW0gcGFyYW1ldGVyV2l0aE1ldGFkYXRhU2V0IC0gQSBzZXQgb2YgcGFyYW1ldGVycyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nOlxuICogICAtIGBwZXJjZW50YWdlYDogVGhlIHBlcmNlbnRhZ2Ugb2YgcGFyYW1ldGVycyB3aXRoIG1ldGFkYXRhIGNvdmVyYWdlLlxuICogICAtIGBtaXNzaW5nUGFyYW1ldGVyc2A6IEFuIGFycmF5IG9mIHBhcmFtZXRlcnMgdGhhdCBsYWNrIG1ldGFkYXRhIGNvdmVyYWdlLlxuICovXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlTWV0YWRhdGFDb3ZlcmFnZSA9IChcbiAgcGFyYW1ldGVyU2V0OiBTZXQ8c3RyaW5nPixcbiAgcGFyYW1ldGVyV2l0aE1ldGFkYXRhU2V0OiBTZXQ8c3RyaW5nPlxuKSA9PiB7XG4gIGNvbnN0IHRvdGFsUGFyYW1ldGVycyA9IHBhcmFtZXRlclNldC5zaXplO1xuICBjb25zdCBwYXJhbWV0ZXJzV2l0aE1ldGFkYXRhID0gWy4uLnBhcmFtZXRlclNldF0uZmlsdGVyKHBhcmFtID0+XG4gICAgcGFyYW1ldGVyV2l0aE1ldGFkYXRhU2V0LmhhcyhwYXJhbSlcbiAgKS5sZW5ndGg7XG4gIGNvbnN0IHBlcmNlbnRhZ2UgPVxuICAgIHRvdGFsUGFyYW1ldGVycyA9PT0gMFxuICAgICAgPyAxMDBcbiAgICAgIDogKHBhcmFtZXRlcnNXaXRoTWV0YWRhdGEgLyB0b3RhbFBhcmFtZXRlcnMpICogMTAwO1xuXG4gIGNvbnN0IG1pc3NpbmdQYXJhbWV0ZXJzID0gWy4uLnBhcmFtZXRlclNldF0uZmlsdGVyKFxuICAgIHBhcmFtZXRlciA9PiAhcGFyYW1ldGVyV2l0aE1ldGFkYXRhU2V0LmhhcyhwYXJhbWV0ZXIpXG4gICk7XG5cbiAgcmV0dXJuIHtwZXJjZW50YWdlLCBtaXNzaW5nUGFyYW1ldGVyc307XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGlzIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKlxuICogQHBhcmFtIHBhcmFtZXRlciAtIFRoZSBwYXJhbWV0ZXIgdG8gdmFsaWRhdGUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhcmFtZXRlciBpcyBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuY29uc3QgaXNTdHJpbmdPclN0cmluZ0FycmF5ID0gKHBhcmFtZXRlcjogdW5rbm93bik6IGJvb2xlYW4gPT4ge1xuICBpZiAodHlwZW9mIHBhcmFtZXRlciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbWV0ZXIpKSB7XG4gICAgcmV0dXJuIHBhcmFtZXRlci5ldmVyeShpdGVtID0+IHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiJdfQ==
|
|
@@ -58,9 +58,9 @@ const calculateDivide = (input, index, params) => {
|
|
|
58
58
|
const finalDenominator = typeof denominator === 'number' ? denominator : input[denominator];
|
|
59
59
|
const finalNumerator = typeof numerator === 'number' ? numerator : input[numerator];
|
|
60
60
|
if (finalDenominator === 0) {
|
|
61
|
-
console.warn(ZERO_DIVISION(
|
|
61
|
+
console.warn(ZERO_DIVISION('Divide', index));
|
|
62
62
|
return finalNumerator;
|
|
63
63
|
}
|
|
64
64
|
return finalNumerator / finalDenominator;
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL2RpdmlkZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFHdEIsMkRBQXlEO0FBQ3pELGlEQUE2QztBQUU3QyxrRUFBMEQ7QUFFMUQseUNBQXFDO0FBRXJDLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDcEQsTUFBTSxFQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXZELFFBQUEsTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxlQUFlLEVBQUUsQ0FBQyxLQUFtQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUM3RCxNQUFNLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUV4QyxNQUFNLE1BQU0sR0FBRyxPQUFDO2FBQ2IsTUFBTSxDQUFDO1lBQ04sQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNyQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMxRCxNQUFNLElBQUkscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNsRTtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUVoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDckQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDdkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksV0FBVzthQUM5QyxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixDQUFDLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQjthQUMzQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsMEJBQTBCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0NBQ3pELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBbUIsRUFDbkIsS0FBYSxFQUNiLE1BR0MsRUFDRCxFQUFFO0lBQ0YsTUFBTSxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFDeEMsTUFBTSxnQkFBZ0IsR0FDcEIsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGNBQWMsR0FDbEIsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvRCxJQUFJLGdCQUFnQixLQUFLLENBQUMsRUFBRTtRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3QyxPQUFPLGNBQWMsQ0FBQztLQUN2QjtJQUVELE9BQU8sY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBQzNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtDb25maWdQYXJhbXMsIFBsdWdpblBhcmFtc30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcbmltcG9ydCB7UGx1Z2luRmFjdG9yeX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5jb25zdCB7TWlzc2luZ0lucHV0RGF0YUVycm9yLCBDb25maWdFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7TUlTU0lOR19JTlBVVF9EQVRBLCBaRVJPX0RJVklTSU9OLCBNSVNTSU5HX0NPTkZJR30gPSBTVFJJTkdTO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlID0gUGx1Z2luRmFjdG9yeSh7XG4gIGNvbmZpZ1ZhbGlkYXRpb246IChjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGlmICghY29uZmlnIHx8ICFPYmplY3Qua2V5cyhjb25maWcpPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihNSVNTSU5HX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xuICAgICAgbnVtZXJhdG9yOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICAgIGRlbm9taW5hdG9yOiB6LnN0cmluZygpLm9yKHoubnVtYmVyKCkpLFxuICAgICAgb3V0cHV0OiB6LnN0cmluZygpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfSxcbiAgaW5wdXRWYWxpZGF0aW9uOiAoaW5wdXQ6IFBsdWdpblBhcmFtcywgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCB7bnVtZXJhdG9yLCBkZW5vbWluYXRvcn0gPSBjb25maWc7XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgW251bWVyYXRvcl06IHoubnVtYmVyKCksXG4gICAgICAgIFtkZW5vbWluYXRvcl06IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICAgIH0pXG4gICAgICAucmVmaW5lKCgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkZW5vbWluYXRvciA9PT0gJ3N0cmluZycgJiYgIWlucHV0W2Rlbm9taW5hdG9yXSkge1xuICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nSW5wdXREYXRhRXJyb3IoTUlTU0lOR19JTlBVVF9EQVRBKGRlbm9taW5hdG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgaW5wdXQpO1xuICB9LFxuICBpbXBsZW1lbnRhdGlvbjogYXN5bmMgKGlucHV0czogUGx1Z2luUGFyYW1zW10sIGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3Qge251bWVyYXRvciwgZGVub21pbmF0b3IsIG91dHB1dH0gPSBjb25maWc7XG5cbiAgICByZXR1cm4gaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkUmVzdWx0ID0gY2FsY3VsYXRlRGl2aWRlKGlucHV0LCBpbmRleCwge1xuICAgICAgICBudW1lcmF0b3I6IGlucHV0Lm51bWVyYXRvciB8fCBudW1lcmF0b3IsXG4gICAgICAgIGRlbm9taW5hdG9yOiBpbnB1dC5kZW5vbWluYXRvciB8fCBkZW5vbWluYXRvcixcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgW291dHB1dF06IGNhbGN1bGF0ZWRSZXN1bHQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9LFxuICBhbGxvd0FyaXRobWV0aWNFeHByZXNzaW9uczogWydudW1lcmF0b3InLCAnZGVub21pbmF0b3InXSxcbn0pO1xuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGRpdmlzaW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuXG4gKi9cbmNvbnN0IGNhbGN1bGF0ZURpdmlkZSA9IChcbiAgaW5wdXQ6IFBsdWdpblBhcmFtcyxcbiAgaW5kZXg6IG51bWJlcixcbiAgcGFyYW1zOiB7XG4gICAgbnVtZXJhdG9yOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgZGVub21pbmF0b3I6IG51bWJlciB8IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGNvbnN0IHtkZW5vbWluYXRvciwgbnVtZXJhdG9yfSA9IHBhcmFtcztcbiAgY29uc3QgZmluYWxEZW5vbWluYXRvciA9XG4gICAgdHlwZW9mIGRlbm9taW5hdG9yID09PSAnbnVtYmVyJyA/IGRlbm9taW5hdG9yIDogaW5wdXRbZGVub21pbmF0b3JdO1xuICBjb25zdCBmaW5hbE51bWVyYXRvciA9XG4gICAgdHlwZW9mIG51bWVyYXRvciA9PT0gJ251bWJlcicgPyBudW1lcmF0b3IgOiBpbnB1dFtudW1lcmF0b3JdO1xuXG4gIGlmIChmaW5hbERlbm9taW5hdG9yID09PSAwKSB7XG4gICAgY29uc29sZS53YXJuKFpFUk9fRElWSVNJT04oJ0RpdmlkZScsIGluZGV4KSk7XG4gICAgcmV0dXJuIGZpbmFsTnVtZXJhdG9yO1xuICB9XG5cbiAgcmV0dXJuIGZpbmFsTnVtZXJhdG9yIC8gZmluYWxEZW5vbWluYXRvcjtcbn07XG4iXX0=
|
|
@@ -74,7 +74,7 @@ exports.Sci = (0, interfaces_1.PluginFactory)({
|
|
|
74
74
|
? input[config['functional-unit']]
|
|
75
75
|
: config['functional-unit'];
|
|
76
76
|
if (functionalUnit === 0) {
|
|
77
|
-
console.warn(ZERO_DIVISION(
|
|
77
|
+
console.warn(ZERO_DIVISION('Sci', index));
|
|
78
78
|
return {
|
|
79
79
|
...input,
|
|
80
80
|
sci: input['carbon'],
|
|
@@ -89,4 +89,4 @@ exports.Sci = (0, interfaces_1.PluginFactory)({
|
|
|
89
89
|
},
|
|
90
90
|
allowArithmeticExpressions: ['functional-unit'],
|
|
91
91
|
});
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaWYtcnVuL2J1aWx0aW5zL3NjaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBc0I7QUFFdEIsMkRBQXlEO0FBR3pELGtFQUEwRDtBQUUxRCxpREFBNkM7QUFFN0Msa0VBQTREO0FBRTVELHlDQUFxQztBQUVyQyxNQUFNLEVBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFDLEdBQUcsY0FBTSxDQUFDO0FBQ3BELE1BQU0sRUFDSiw4QkFBOEIsRUFDOUIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsY0FBYyxHQUNmLEdBQUcsZ0JBQU8sQ0FBQztBQUVDLFFBQUEsR0FBRyxHQUFHLElBQUEsMEJBQWEsRUFBQztJQUMvQixRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLGlEQUFpRDtnQkFDOUQsSUFBSSxFQUFFLE9BQU87Z0JBQ2Isb0JBQW9CLEVBQUU7b0JBQ3BCLElBQUksRUFBRSxLQUFLO29CQUNYLFNBQVMsRUFBRSxLQUFLO2lCQUNqQjthQUNGO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLFdBQVcsRUFDVCx3R0FBd0c7Z0JBQzFHLElBQUksRUFBRSxNQUFNO2dCQUNaLG9CQUFvQixFQUFFO29CQUNwQixJQUFJLEVBQUUsS0FBSztvQkFDWCxTQUFTLEVBQUUsS0FBSztpQkFDakI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFO2dCQUNILFdBQVcsRUFBRSx3REFBd0Q7Z0JBQ3JFLElBQUksRUFBRSxPQUFPO2dCQUNiLG9CQUFvQixFQUFFO29CQUNwQixJQUFJLEVBQUUsS0FBSztvQkFDWCxTQUFTLEVBQUUsS0FBSztpQkFDakI7YUFDRjtTQUNGO0tBQ0Y7SUFDRCxnQkFBZ0IsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsTUFBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztRQUVELE1BQU0sTUFBTSxHQUFHLE9BQUM7YUFDYixNQUFNLENBQUM7WUFDTixpQkFBaUIsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1NBQzlCLENBQUM7YUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN2QyxPQUFPLEVBQUUsOEJBQThCO1NBQ3hDLENBQUMsQ0FBQztRQUVMLE9BQU8sSUFBQSxzQkFBUSxFQUF5QixNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGVBQWUsRUFBRSxDQUFDLEtBQW1CLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQzdELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxDQUFDLGNBQWMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzVELE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQzthQUNiLE1BQU0sQ0FBQztZQUNOLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUIsQ0FBQzthQUNELE1BQU0sQ0FBQyx3QkFBVSxFQUFFO1lBQ2xCLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN4RCxDQUFDLENBQUM7UUFFTCxPQUFPLElBQUEsc0JBQVEsRUFBeUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQXNCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3JFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUU5QixJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQztpQkFDckIsQ0FBQzthQUNIO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBRTFELE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLEdBQUcsRUFBRSxnQkFBZ0I7YUFDdEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDBCQUEwQixFQUFFLENBQUMsaUJBQWlCLENBQUM7Q0FDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7Q29uZmlnUGFyYW1zLCBQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7YWxsRGVmaW5lZH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWwvdmFsaWRhdGlvbnMnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtNaXNzaW5nSW5wdXREYXRhRXJyb3IsIENvbmZpZ0Vycm9yfSA9IEVSUk9SUztcbmNvbnN0IHtcbiAgTUlTU0lOR19GVU5DVElPTkFMX1VOSVRfQ09ORklHLFxuICBNSVNTSU5HX0ZVTkNUSU9OQUxfVU5JVF9JTlBVVCxcbiAgU0NJX01JU1NJTkdfRk5fVU5JVCxcbiAgWkVST19ESVZJU0lPTixcbiAgTUlTU0lOR19DT05GSUcsXG59ID0gU1RSSU5HUztcblxuZXhwb3J0IGNvbnN0IFNjaSA9IFBsdWdpbkZhY3Rvcnkoe1xuICBtZXRhZGF0YToge1xuICAgIGlucHV0czoge1xuICAgICAgY2FyYm9uOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnYW4gYW1vdW50IG9mIGNhcmJvbiBlbWl0dGVkIGludG8gdGhlIGF0bW9zcGhlcmUnLFxuICAgICAgICB1bml0OiAnZ0NPMmUnLFxuICAgICAgICAnYWdncmVnYXRpb24tbWV0aG9kJzoge1xuICAgICAgICAgIHRpbWU6ICdzdW0nLFxuICAgICAgICAgIGNvbXBvbmVudDogJ3N1bScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6IHtcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgJ3RoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbmFsIHVuaXQgaW4gd2hpY2ggdGhlIGZpbmFsIFNDSSB2YWx1ZSBzaG91bGQgYmUgZXhwcmVzc2VkLCBlLmcuIHJlcXVlc3RzLCB1c2VycycsXG4gICAgICAgIHVuaXQ6ICdub25lJyxcbiAgICAgICAgJ2FnZ3JlZ2F0aW9uLW1ldGhvZCc6IHtcbiAgICAgICAgICB0aW1lOiAnc3VtJyxcbiAgICAgICAgICBjb21wb25lbnQ6ICdzdW0nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIG91dHB1dHM6IHtcbiAgICAgIHNjaToge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ2NhcmJvbiBleHByZXNzZWQgaW4gdGVybXMgb2YgdGhlIGdpdmVuIGZ1bmN0aW9uYWwgdW5pdCcsXG4gICAgICAgIHVuaXQ6ICdnQ08yZScsXG4gICAgICAgICdhZ2dyZWdhdGlvbi1tZXRob2QnOiB7XG4gICAgICAgICAgdGltZTogJ2F2ZycsXG4gICAgICAgICAgY29tcG9uZW50OiAnc3VtJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgY29uZmlnVmFsaWRhdGlvbjogKGNvbmZpZzogQ29uZmlnUGFyYW1zKSA9PiB7XG4gICAgaWYgKCFjb25maWcgfHwgIU9iamVjdC5rZXlzKGNvbmZpZyk/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKE1JU1NJTkdfQ09ORklHKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY2hlbWEgPSB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6IHouc3RyaW5nKCksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShkYXRhID0+IGRhdGFbJ2Z1bmN0aW9uYWwtdW5pdCddLCB7XG4gICAgICAgIG1lc3NhZ2U6IE1JU1NJTkdfRlVOQ1RJT05BTF9VTklUX0NPTkZJRyxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbGlkYXRlPHouaW5mZXI8dHlwZW9mIHNjaGVtYT4+KHNjaGVtYSwgY29uZmlnKTtcbiAgfSxcbiAgaW5wdXRWYWxpZGF0aW9uOiAoaW5wdXQ6IFBsdWdpblBhcmFtcywgY29uZmlnOiBDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBmdW5jdGlvbmFsVW5pdCA9IGNvbmZpZ1snZnVuY3Rpb25hbC11bml0J107XG5cbiAgICBpZiAoIShmdW5jdGlvbmFsVW5pdCBpbiBpbnB1dCAmJiBpbnB1dFtmdW5jdGlvbmFsVW5pdF0gPj0gMCkpIHtcbiAgICAgIHRocm93IG5ldyBNaXNzaW5nSW5wdXREYXRhRXJyb3IoTUlTU0lOR19GVU5DVElPTkFMX1VOSVRfSU5QVVQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYSA9IHpcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICBjYXJib246IHoubnVtYmVyKCkuZ3RlKDApLFxuICAgICAgICBkdXJhdGlvbjogei5udW1iZXIoKS5ndGUoMSksXG4gICAgICB9KVxuICAgICAgLnJlZmluZShhbGxEZWZpbmVkLCB7XG4gICAgICAgIG1lc3NhZ2U6IFNDSV9NSVNTSU5HX0ZOX1VOSVQoY29uZmlnWydmdW5jdGlvbmFsLXVuaXQnXSksXG4gICAgICB9KTtcblxuICAgIHJldHVybiB2YWxpZGF0ZTx6LmluZmVyPHR5cGVvZiBzY2hlbWE+PihzY2hlbWEsIGlucHV0KTtcbiAgfSxcbiAgaW1wbGVtZW50YXRpb246IGFzeW5jIChpbnB1dHM6IFBsdWdpblBhcmFtc1tdLCBjb25maWc6IENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIHJldHVybiBpbnB1dHMubWFwKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uYWxVbml0ID0gaXNOYU4oY29uZmlnWydmdW5jdGlvbmFsLXVuaXQnXSlcbiAgICAgICAgPyBpbnB1dFtjb25maWdbJ2Z1bmN0aW9uYWwtdW5pdCddXVxuICAgICAgICA6IGNvbmZpZ1snZnVuY3Rpb25hbC11bml0J107XG5cbiAgICAgIGlmIChmdW5jdGlvbmFsVW5pdCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oWkVST19ESVZJU0lPTignU2NpJywgaW5kZXgpKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgIHNjaTogaW5wdXRbJ2NhcmJvbiddLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY2FsY3VsYXRlZFJlc3VsdCA9IGlucHV0WydjYXJib24nXSAvIGZ1bmN0aW9uYWxVbml0O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgc2NpOiBjYWxjdWxhdGVkUmVzdWx0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSxcbiAgYWxsb3dBcml0aG1ldGljRXhwcmVzc2lvbnM6IFsnZnVuY3Rpb25hbC11bml0J10sXG59KTtcbiJdfQ==
|