@grnsft/if 0.5.0 → 0.6.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/README.md +5 -17
- package/Refactor-migration-guide.md +110 -164
- package/build/common/config/index.d.ts +1 -0
- package/build/common/config/index.js +6 -0
- package/build/common/config/strings.d.ts +8 -0
- package/build/common/config/strings.js +16 -0
- package/build/common/lib/load.d.ts +6 -0
- package/build/common/lib/load.js +18 -0
- package/build/{types → common/types}/manifest.d.ts +4 -1
- package/build/common/types/manifest.js +3 -0
- package/build/common/util/debug-logger.js +115 -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/{util → common/util}/logger.js +1 -1
- package/build/{util → common/util}/validations.d.ts +149 -47
- package/build/common/util/validations.js +141 -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/{config → if-check/config}/index.d.ts +0 -1
- package/build/if-check/config/index.js +8 -0
- package/build/if-check/config/strings.d.ts +12 -0
- package/build/if-check/config/strings.js +16 -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 +37 -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 +4 -0
- package/build/if-csv/config/strings.js +8 -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 +51 -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.js +46 -0
- package/build/{lib → if-diff/lib}/compare.d.ts +1 -1
- package/build/if-diff/lib/compare.js +56 -0
- package/build/{lib → if-diff/lib}/load.d.ts +16 -18
- package/build/if-diff/lib/load.js +51 -0
- package/build/if-diff/types/args.js +3 -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.js +40 -0
- package/build/if-env/types/if-env.js +3 -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/{util → if-env/util}/npm.d.ts +0 -4
- package/build/if-env/util/npm.js +126 -0
- package/build/if-run/builtins/coefficient/index.d.ts +2 -0
- package/build/if-run/builtins/coefficient/index.js +67 -0
- package/build/if-run/builtins/copy-param/index.d.ts +2 -0
- package/build/if-run/builtins/copy-param/index.js +70 -0
- package/build/if-run/builtins/csv-lookup/index.d.ts +2 -0
- package/build/if-run/builtins/csv-lookup/index.js +190 -0
- package/build/if-run/builtins/divide/index.d.ts +2 -0
- package/build/if-run/builtins/divide/index.js +80 -0
- package/build/if-run/builtins/exponent/index.d.ts +2 -0
- package/build/if-run/builtins/exponent/index.js +60 -0
- package/build/{builtins → if-run/builtins}/export-log.d.ts +1 -1
- package/build/{builtins → if-run/builtins}/export-log.js +1 -1
- package/build/{builtins → if-run/builtins}/export-yaml.d.ts +1 -1
- package/build/if-run/builtins/export-yaml.js +30 -0
- package/build/{builtins → if-run/builtins}/index.d.ts +1 -2
- package/build/{builtins → if-run/builtins}/index.js +4 -6
- package/build/if-run/builtins/interpolation/index.d.ts +2 -0
- package/build/if-run/builtins/interpolation/index.js +151 -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.js +48 -0
- package/build/if-run/builtins/mock-observations/index.d.ts +2 -0
- package/build/if-run/builtins/mock-observations/index.js +116 -0
- package/build/if-run/builtins/mock-observations/interfaces/index.js +3 -0
- package/build/if-run/builtins/multiply/index.d.ts +2 -0
- package/build/if-run/builtins/multiply/index.js +59 -0
- package/build/if-run/builtins/regex/index.d.ts +2 -0
- package/build/if-run/builtins/regex/index.js +76 -0
- package/build/if-run/builtins/sci/config.js +44 -0
- package/build/if-run/builtins/sci/index.d.ts +2 -0
- package/build/if-run/builtins/sci/index.js +92 -0
- package/build/if-run/builtins/sci-embodied/index.d.ts +2 -0
- package/build/if-run/builtins/sci-embodied/index.js +156 -0
- package/build/if-run/builtins/shell/index.d.ts +2 -0
- package/build/if-run/builtins/shell/index.js +60 -0
- package/build/if-run/builtins/subtract/index.d.ts +2 -0
- package/build/if-run/builtins/subtract/index.js +61 -0
- package/build/if-run/builtins/sum/index.d.ts +2 -0
- package/build/if-run/builtins/sum/index.js +66 -0
- package/build/if-run/builtins/time-sync/index.d.ts +17 -0
- package/build/if-run/builtins/time-sync/index.js +339 -0
- package/build/if-run/config/config.d.ts +9 -0
- package/build/if-run/config/config.js +73 -0
- package/build/if-run/config/index.d.ts +2 -0
- package/build/if-run/config/index.js +8 -0
- package/build/{config → if-run/config}/strings.d.ts +28 -54
- package/build/if-run/config/strings.js +76 -0
- package/build/if-run/index.d.ts +2 -0
- package/build/if-run/index.js +63 -0
- package/build/if-run/lib/aggregate.d.ts +15 -0
- package/build/if-run/lib/aggregate.js +123 -0
- package/build/if-run/lib/compute.js +136 -0
- package/build/{lib → if-run/lib}/environment.d.ts +1 -1
- package/build/if-run/lib/environment.js +75 -0
- package/build/{lib → if-run/lib}/exhaust.d.ts +1 -1
- 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 +43 -0
- package/build/if-run/lib/initialize.d.ts +6 -0
- package/build/if-run/lib/initialize.js +109 -0
- package/build/if-run/lib/regroup.d.ts +5 -0
- package/build/if-run/lib/regroup.js +64 -0
- package/build/if-run/types/aggregation.d.ts +5 -0
- package/build/if-run/types/aggregation.js +6 -0
- package/build/{types → if-run/types}/compute.d.ts +12 -8
- package/build/if-run/types/compute.js +3 -0
- package/build/if-run/types/environment.js +3 -0
- package/build/{types → if-run/types}/exhaust-plugin-interface.d.ts +1 -1
- package/build/if-run/types/exhaust-plugin-interface.js +3 -0
- package/build/if-run/types/explain.d.ts +10 -0
- package/build/if-run/types/explain.js +3 -0
- package/build/if-run/types/interface.d.ts +3 -0
- package/build/if-run/types/interface.js +6 -0
- package/build/if-run/types/plugin-storage.js +3 -0
- package/build/if-run/types/process-args.d.ts +25 -0
- package/build/if-run/types/process-args.js +3 -0
- package/build/if-run/types/time-sync.js +3 -0
- package/build/{util → if-run/util}/aggregation-helper.d.ts +2 -1
- package/build/if-run/util/aggregation-helper.js +47 -0
- package/build/if-run/util/args.d.ts +9 -0
- package/build/if-run/util/args.js +60 -0
- package/build/if-run/util/helpers.d.ts +14 -0
- package/build/if-run/util/helpers.js +57 -0
- package/build/if-run/util/log-memoize.js +19 -0
- package/build/if-run/util/os-checker.js +97 -0
- package/build/{util → if-run/util}/plugin-storage.d.ts +1 -1
- package/build/if-run/util/plugin-storage.js +34 -0
- package/jest.config.js +2 -6
- package/manifests/examples/builtins/coefficient/failure-invalid-config-input-param.yml +2 -2
- package/manifests/examples/builtins/coefficient/failure-output-param-is-null.yaml +3 -3
- package/manifests/examples/builtins/coefficient/success.yml +2 -2
- package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +3 -3
- package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +3 -3
- package/manifests/examples/builtins/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yml +3 -3
- package/manifests/examples/builtins/csv-lookup/cloud-metadata/success.yml +3 -3
- package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-column.yml +3 -3
- package/manifests/examples/builtins/csv-lookup/region-metadata/failure-missing-output.yml +3 -3
- package/manifests/examples/builtins/csv-lookup/region-metadata/success-renaming.yml +4 -4
- package/manifests/examples/builtins/csv-lookup/region-metadata/success.yml +3 -3
- package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-missing-input-param.yml +2 -2
- package/manifests/examples/builtins/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yml +2 -2
- package/manifests/examples/builtins/csv-lookup/tdp-finder/success.yml +2 -2
- package/manifests/examples/builtins/divide/failure-denominator-equal-zero.yml +4 -4
- package/manifests/examples/builtins/divide/failure-invalid-config-denominator.yml +5 -5
- package/manifests/examples/builtins/divide/failure-missing-numerator.yml +4 -4
- package/manifests/examples/builtins/divide/success.yml +4 -6
- package/manifests/examples/builtins/exponent/success.yml +5 -7
- package/manifests/examples/builtins/interpolation/interpolation.yml +2 -2
- package/manifests/examples/builtins/interpolation/success.yml +2 -1
- package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +2 -2
- package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +2 -2
- package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +2 -2
- package/manifests/examples/builtins/mock-observations/success.yml +2 -2
- package/manifests/examples/builtins/multiply/failure-input-parameter-is-missing.yml +2 -4
- package/manifests/examples/builtins/multiply/success-with-multiple-inputs.yml +2 -4
- package/manifests/examples/builtins/multiply/success.yml +3 -4
- package/manifests/examples/builtins/regex/failure-missing-input-param.yml +2 -4
- package/manifests/examples/builtins/regex/failure-not-matching-with-regex.yml +2 -4
- package/manifests/examples/builtins/regex/success.yml +2 -4
- package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +2 -2
- package/manifests/examples/builtins/sci/failure-missing-input-param.yml +3 -2
- package/manifests/examples/builtins/sci/success.yml +2 -3
- package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +3 -3
- package/manifests/examples/builtins/sci-embodied/failure-missing-expected-lifespan.yml +2 -2
- package/manifests/examples/builtins/sci-embodied/success.yml +2 -2
- package/manifests/examples/builtins/shell/failure-invalid-command.yml +2 -2
- package/manifests/examples/builtins/shell/success.yml +2 -1
- package/manifests/examples/builtins/subtract/success.yml +6 -8
- package/manifests/examples/builtins/sum/failure-missing-input-param.yml +2 -4
- package/manifests/examples/builtins/sum/failure-missing-output-param.yml +3 -5
- package/manifests/examples/builtins/sum/success.yml +2 -4
- package/manifests/examples/builtins/time-sync/failure-config-start-later-end.yml +3 -3
- package/manifests/examples/builtins/time-sync/failure-missing-global-config.yml +3 -3
- package/manifests/examples/builtins/time-sync/success.yml +2 -2
- package/manifests/examples/{builtins/groupby/failure-invalid-config-group.yml → features/regroup/failure-invalid-regroup.yml} +4 -11
- package/manifests/examples/{builtins/groupby → features/regroup}/failure-missing-cloud-instance-type.yml +5 -12
- package/manifests/examples/{builtins/groupby → features/regroup}/success.yml +4 -11
- package/manifests/examples/pipelines/generics.yml +12 -13
- package/manifests/examples/pipelines/instance-metadata.yml +4 -5
- package/manifests/examples/pipelines/nesting.yml +157 -50
- package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-aggregate.yaml +997 -0
- package/manifests/examples/pipelines/outputs-if-diff/pipeline-with-mocks.yaml +1059 -0
- package/manifests/examples/pipelines/pipeline-teads-sci.yml +11 -11
- package/manifests/examples/pipelines/pipeline-with-aggregate.yml +114 -37
- package/manifests/examples/pipelines/pipeline-with-mocks.yml +193 -103
- package/manifests/examples/pipelines/scenario-1.yml +34 -0
- package/manifests/examples/pipelines/scenario-2.yml +52 -0
- package/manifests/examples/pipelines/scenario-3.yml +86 -0
- package/manifests/examples/pipelines/scenario-4.yml +46 -0
- package/manifests/examples/pipelines/scenario-5.yml +46 -0
- package/manifests/examples/pipelines/sci.yml +15 -17
- package/manifests/examples/pipelines/teads-curve.yml +7 -6
- package/manifests/examples/pipelines/zeros.yml +15 -16
- package/manifests/outputs/bugs/aggregation-error-wrong-metric.yaml +51 -59
- package/manifests/outputs/bugs/input-error-missing-duration.yaml +14 -16
- package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +14 -16
- package/manifests/outputs/bugs/pipeline-error-naming-mismatch.yaml +14 -16
- package/manifests/outputs/bugs/pipeline-error-uninitialized-plugin.yaml +15 -17
- package/manifests/outputs/bugs/pipeline-ordering-error.yaml +23 -26
- package/manifests/outputs/bugs/sci-embodied-missing-resources-total.yaml +13 -14
- package/manifests/outputs/{plugins → builtins}/coefficient/failure-invalid-config-input-param.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/coefficient/failure-output-param-is-null.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/coefficient/success.yaml +11 -16
- package/manifests/outputs/builtins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +76 -0
- package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/failure-missing-cloud-vendor.yaml +16 -19
- package/manifests/outputs/{plugins → builtins}/csv-lookup/cloud-metadata/success.yaml +16 -19
- package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-column.yaml +14 -15
- package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/failure-missing-output.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success-renaming.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/csv-lookup/region-metadata/success.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-missing-input-param.yaml +13 -16
- package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/failure-unsupported-physical-processor.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/csv-lookup/tdp-finder/success.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/divide/failure-invalid-config-denominator.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/divide/failure-missing-numerator.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/divide/success-denominator-equal-zero.yaml +14 -18
- package/manifests/outputs/{plugins → builtins}/divide/success.yaml +14 -18
- package/manifests/outputs/{plugins → builtins}/exponent/success.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/interpolation/interpolation.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/interpolation/success.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-config-cpu-range.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/mock-observations/failure-invalid-memory-utilization-range.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/mock-observations/failure-missing-timestamp-from-param.yaml +13 -15
- package/manifests/outputs/builtins/mock-observations/success.yaml +358 -0
- package/manifests/outputs/{plugins → builtins}/multiply/failure-input-parameter-is-missing.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/multiply/success-with-multiple-inputs.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/multiply/success.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/regex/failure-missing-input-param.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/regex/success.yaml +14 -19
- package/manifests/outputs/{plugins → builtins}/sci/failure-invalid-config-value.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/sci/failure-missing-input-param.yaml +13 -15
- package/manifests/outputs/{plugins/sci/success.yml.yaml → builtins/sci/success.yaml} +13 -16
- package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-invalid-default-emission-value.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/sci-embodied/failure-missing-expected-lifespan.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/sci-embodied/success.yaml +13 -15
- package/manifests/outputs/{plugins → builtins}/shell/failure-invalid-command.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/shell/success.yaml +14 -16
- package/manifests/outputs/{plugins → builtins}/subtract/success.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/sum/failure-missing-input-param.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/sum/failure-missing-output-param.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/sum/success.yaml +13 -17
- package/manifests/outputs/{plugins → builtins}/time-sync/failure-config-start-later-end.yaml +20 -23
- package/manifests/outputs/{plugins → builtins}/time-sync/success.yaml +38 -35
- package/manifests/outputs/features/aggregate-failure-invalid-metrics.yaml +17 -18
- package/manifests/outputs/features/aggregate-failure-missing-metric-in-inputs.yaml +17 -18
- package/manifests/outputs/features/aggregate-horizontal.yaml +27 -23
- package/manifests/outputs/features/aggregate-vertical.yaml +33 -29
- package/manifests/outputs/features/aggregate.yaml +33 -29
- package/manifests/outputs/{plugins/groupby/failure-invalid-config-group.yaml → features/failure-invalid-regroup.yaml} +16 -25
- package/manifests/outputs/{plugins/groupby → features}/failure-missing-cloud-instance-type.yaml +16 -25
- package/manifests/outputs/pipelines/cloud-metadata-divide.yaml +14 -18
- package/manifests/outputs/pipelines/generics.yaml +239 -0
- package/manifests/outputs/pipelines/instance-metadata.yaml +98 -0
- package/manifests/outputs/pipelines/mock-obs-time-sync.yaml +246 -147
- package/manifests/outputs/pipelines/nesting.yaml +1799 -0
- package/manifests/outputs/pipelines/pipeline-teads-sci.yaml +276 -0
- package/manifests/outputs/pipelines/sci.yaml +297 -0
- package/manifests/outputs/pipelines/teads-curve.yaml +188 -0
- package/manifests/outputs/pipelines/zeros.yaml +198 -0
- package/package.json +15 -16
- package/src/__mocks__/mock-manifest.yaml +2 -3
- package/src/{config → if-env/config}/env-template.yml +2 -3
- package/src/{builtins → if-run/builtins}/coefficient/README.md +31 -9
- package/src/{builtins → if-run/builtins}/copy-param/README.md +30 -11
- package/src/{builtins → if-run/builtins}/csv-lookup/README.md +32 -20
- package/src/{builtins → if-run/builtins}/divide/README.md +21 -8
- package/src/{builtins → if-run/builtins}/exponent/README.md +19 -8
- package/src/{builtins → if-run/builtins}/interpolation/README.md +21 -6
- package/src/{builtins → if-run/builtins}/mock-observations/README.md +18 -4
- package/src/{builtins → if-run/builtins}/multiply/README.md +20 -8
- package/src/{builtins → if-run/builtins}/regex/README.md +19 -9
- package/src/{builtins → if-run/builtins}/sci/README.md +19 -9
- package/src/{builtins → if-run/builtins}/sci-embodied/README.md +17 -5
- package/src/{builtins → if-run/builtins}/shell/README.md +19 -7
- package/src/{builtins → if-run/builtins}/subtract/README.md +17 -6
- package/src/{builtins → if-run/builtins}/sum/README.md +34 -8
- package/src/if-run/builtins/time-sync/README.md +267 -0
- package/build/builtins/coefficient/index.d.ts +0 -2
- package/build/builtins/coefficient/index.js +0 -65
- package/build/builtins/copy-param/index.d.ts +0 -2
- package/build/builtins/copy-param/index.js +0 -68
- package/build/builtins/csv-lookup/index.d.ts +0 -2
- package/build/builtins/csv-lookup/index.js +0 -188
- package/build/builtins/divide/index.d.ts +0 -2
- package/build/builtins/divide/index.js +0 -78
- package/build/builtins/exponent/index.d.ts +0 -2
- package/build/builtins/exponent/index.js +0 -58
- package/build/builtins/export-csv-raw.d.ts +0 -4
- package/build/builtins/export-csv-raw.js +0 -132
- package/build/builtins/export-csv.d.ts +0 -10
- package/build/builtins/export-csv.js +0 -96
- package/build/builtins/export-yaml.js +0 -30
- package/build/builtins/group-by.d.ts +0 -5
- package/build/builtins/group-by.js +0 -71
- package/build/builtins/interpolation/index.d.ts +0 -2
- package/build/builtins/interpolation/index.js +0 -148
- package/build/builtins/mock-observations/helpers/common-generator.js +0 -29
- package/build/builtins/mock-observations/helpers/rand-int-generator.js +0 -48
- package/build/builtins/mock-observations/index.d.ts +0 -2
- package/build/builtins/mock-observations/index.js +0 -114
- package/build/builtins/mock-observations/interfaces/index.js +0 -3
- package/build/builtins/multiply/index.d.ts +0 -2
- package/build/builtins/multiply/index.js +0 -57
- package/build/builtins/regex/index.d.ts +0 -2
- package/build/builtins/regex/index.js +0 -74
- package/build/builtins/sci/config.js +0 -44
- package/build/builtins/sci/index.d.ts +0 -2
- package/build/builtins/sci/index.js +0 -70
- package/build/builtins/sci-embodied/index.d.ts +0 -2
- package/build/builtins/sci-embodied/index.js +0 -114
- package/build/builtins/shell/index.d.ts +0 -2
- package/build/builtins/shell/index.js +0 -58
- package/build/builtins/subtract/index.d.ts +0 -2
- package/build/builtins/subtract/index.js +0 -59
- package/build/builtins/sum/index.d.ts +0 -2
- package/build/builtins/sum/index.js +0 -64
- package/build/builtins/time-sync.d.ts +0 -2
- package/build/builtins/time-sync.js +0 -300
- package/build/check.js +0 -95
- package/build/config/config.d.ts +0 -29
- package/build/config/config.js +0 -147
- package/build/config/index.js +0 -10
- package/build/config/params.d.ts +0 -2
- package/build/config/params.js +0 -196
- package/build/config/strings.js +0 -105
- package/build/diff.js +0 -46
- package/build/env.js +0 -38
- package/build/index.js +0 -48
- package/build/lib/aggregate.d.ts +0 -6
- package/build/lib/aggregate.js +0 -77
- package/build/lib/compare.js +0 -56
- package/build/lib/compute.js +0 -91
- package/build/lib/environment.js +0 -75
- package/build/lib/exhaust.js +0 -53
- package/build/lib/initialize.d.ts +0 -6
- package/build/lib/initialize.js +0 -101
- package/build/lib/load.js +0 -70
- package/build/lib/parameterize.d.ts +0 -6
- package/build/lib/parameterize.js +0 -55
- package/build/types/aggregation.d.ts +0 -2
- package/build/types/aggregation.js +0 -5
- package/build/types/compute.js +0 -3
- package/build/types/environment.js +0 -3
- package/build/types/exhaust-plugin-interface.js +0 -3
- package/build/types/if-env.js +0 -3
- package/build/types/interface.d.ts +0 -4
- package/build/types/interface.js +0 -8
- package/build/types/lib/compare.js +0 -3
- package/build/types/manifest.js +0 -3
- package/build/types/npm.js +0 -3
- package/build/types/parameters.d.ts +0 -5
- package/build/types/parameters.js +0 -5
- package/build/types/plugin-storage.js +0 -3
- package/build/types/process-args.d.ts +0 -33
- package/build/types/process-args.js +0 -3
- package/build/types/time-sync.js +0 -3
- package/build/types/util/args.js +0 -3
- package/build/util/aggregation-helper.js +0 -55
- package/build/util/args.d.ts +0 -37
- package/build/util/args.js +0 -205
- package/build/util/debug-logger.js +0 -118
- package/build/util/fs.js +0 -94
- package/build/util/helpers.d.ts +0 -57
- package/build/util/helpers.js +0 -251
- package/build/util/json.d.ts +0 -4
- package/build/util/json.js +0 -36
- package/build/util/log-memoize.js +0 -19
- package/build/util/npm.js +0 -152
- package/build/util/os-checker.js +0 -97
- package/build/util/plugin-storage.js +0 -34
- package/build/util/validations.js +0 -124
- package/build/util/yaml.js +0 -59
- package/manifests/outputs/bugs/initialize-error-no-config.yaml +0 -78
- package/manifests/outputs/bugs/initialize-error-no-path.yaml +0 -91
- package/manifests/outputs/bugs/initialize-error-no-plugins.yaml +0 -74
- package/manifests/outputs/divide.yaml +0 -93
- package/manifests/outputs/pipelines/mock-obs-group-by-cloud-meta.yaml +0 -645
- package/manifests/outputs/pipelines/mock-obs-groupby.yaml +0 -178
- package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-instance-type.yaml +0 -27
- package/manifests/outputs/plugins/csv-lookup/cloud-metadata/failure-invalid-vendor.yaml +0 -27
- package/manifests/outputs/plugins/groupby/success.yaml +0 -101
- package/manifests/outputs/plugins/mock-observations/success.yaml +0 -220
- package/manifests/outputs/plugins/regex/failure-not-matching-with-regex.yaml +0 -76
- package/manifests/outputs/plugins/time-sync/failure-missing-global-config.yaml +0 -78
- package/src/__tests__/integration/templates/integration.yaml +0 -16
- package/src/builtins/README.md +0 -848
- /package/build/{util → common/util}/debug-logger.d.ts +0 -0
- /package/build/{util → common/util}/fs.d.ts +0 -0
- /package/build/{util → common/util}/logger.d.ts +0 -0
- /package/build/{util → common/util}/yaml.d.ts +0 -0
- /package/build/{index.d.ts → if-check/index.d.ts} +0 -0
- /package/build/{check.d.ts → if-csv/index.d.ts} +0 -0
- /package/build/{diff.d.ts → if-diff/index.d.ts} +0 -0
- /package/build/{types/util → if-diff/types}/args.d.ts +0 -0
- /package/build/{types/lib → if-diff/types}/compare.d.ts +0 -0
- /package/build/{env.d.ts → if-env/index.d.ts} +0 -0
- /package/build/{types → if-env/types}/if-env.d.ts +0 -0
- /package/build/{types → if-env/types}/npm.d.ts +0 -0
- /package/build/{builtins → if-run/builtins}/mock-observations/helpers/common-generator.d.ts +0 -0
- /package/build/{builtins → if-run/builtins}/mock-observations/helpers/rand-int-generator.d.ts +0 -0
- /package/build/{builtins → if-run/builtins}/mock-observations/interfaces/index.d.ts +0 -0
- /package/build/{builtins → if-run/builtins}/sci/config.d.ts +0 -0
- /package/build/{lib → if-run/lib}/compute.d.ts +0 -0
- /package/build/{types → if-run/types}/environment.d.ts +0 -0
- /package/build/{types → if-run/types}/plugin-storage.d.ts +0 -0
- /package/build/{types → if-run/types}/time-sync.d.ts +0 -0
- /package/build/{util → if-run/util}/log-memoize.d.ts +0 -0
- /package/build/{util → if-run/util}/os-checker.d.ts +0 -0
package/build/index.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const aggregate_1 = require("./lib/aggregate");
|
|
5
|
-
const compute_1 = require("./lib/compute");
|
|
6
|
-
const environment_1 = require("./lib/environment");
|
|
7
|
-
const exhaust_1 = require("./lib/exhaust");
|
|
8
|
-
const initialize_1 = require("./lib/initialize");
|
|
9
|
-
const load_1 = require("./lib/load");
|
|
10
|
-
const parameterize_1 = require("./lib/parameterize");
|
|
11
|
-
const debug_logger_1 = require("./util/debug-logger");
|
|
12
|
-
const args_1 = require("./util/args");
|
|
13
|
-
const helpers_1 = require("./util/helpers");
|
|
14
|
-
const logger_1 = require("./util/logger");
|
|
15
|
-
const validations_1 = require("./util/validations");
|
|
16
|
-
const config_1 = require("./config");
|
|
17
|
-
const { DISCLAIMER_MESSAGE, EXITING_IF, STARTING_IF } = config_1.STRINGS;
|
|
18
|
-
const impactEngine = async () => {
|
|
19
|
-
const options = (0, args_1.parseIEProcessArgs)();
|
|
20
|
-
const { inputPath, paramPath, outputOptions, debug } = options;
|
|
21
|
-
debug_logger_1.debugLogger.overrideConsoleMethods(!!debug);
|
|
22
|
-
logger_1.logger.info(DISCLAIMER_MESSAGE);
|
|
23
|
-
console.info(STARTING_IF);
|
|
24
|
-
const { rawManifest, parameters } = await (0, load_1.load)(inputPath, paramPath);
|
|
25
|
-
const envManifest = await (0, environment_1.injectEnvironment)(rawManifest);
|
|
26
|
-
try {
|
|
27
|
-
const { tree, ...context } = (0, validations_1.validateManifest)(envManifest);
|
|
28
|
-
parameterize_1.parameterize.combine(context.params, parameters);
|
|
29
|
-
const pluginStorage = await (0, initialize_1.initialize)(context.initialize.plugins);
|
|
30
|
-
const computedTree = await (0, compute_1.compute)(tree, { context, pluginStorage });
|
|
31
|
-
const aggregatedTree = (0, aggregate_1.aggregate)(computedTree, context.aggregation);
|
|
32
|
-
await (0, exhaust_1.exhaust)(aggregatedTree, context, outputOptions);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
if (error instanceof Error) {
|
|
36
|
-
envManifest.execution.status = 'fail';
|
|
37
|
-
envManifest.execution.error = error.toString();
|
|
38
|
-
logger_1.logger.error(error);
|
|
39
|
-
const { tree, ...context } = envManifest;
|
|
40
|
-
if (error.name !== 'ExhaustError') {
|
|
41
|
-
(0, exhaust_1.exhaust)(tree, context, outputOptions);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
console.info(EXITING_IF);
|
|
46
|
-
};
|
|
47
|
-
impactEngine().catch(helpers_1.andHandle);
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQTBDO0FBQzFDLDJDQUFzQztBQUN0QyxtREFBb0Q7QUFDcEQsMkNBQXNDO0FBQ3RDLGlEQUE0QztBQUM1QyxxQ0FBZ0M7QUFDaEMscURBQWdEO0FBRWhELHNEQUFnRDtBQUNoRCxzQ0FBK0M7QUFDL0MsNENBQXlDO0FBQ3pDLDBDQUFxQztBQUNyQyxvREFBb0Q7QUFFcEQscUNBQWlDO0FBRWpDLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUU5RCxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFrQixHQUFFLENBQUM7SUFDckMsTUFBTSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUU3RCwwQkFBVyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU1QyxlQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQixNQUFNLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLE1BQU0sSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSwrQkFBaUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCxJQUFJO1FBQ0YsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7UUFDekQsMkJBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUEsdUJBQVUsRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLElBQUEscUJBQVMsRUFBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBQSxpQkFBTyxFQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDdkQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixXQUFXLENBQUMsU0FBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDdkMsV0FBVyxDQUFDLFNBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hELGVBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxHQUFHLFdBQVcsQ0FBQztZQUV2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO2dCQUNqQyxJQUFBLGlCQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQzthQUN2QztTQUNGO0tBQ0Y7SUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQztBQUVGLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBUyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQge2FnZ3JlZ2F0ZX0gZnJvbSAnLi9saWIvYWdncmVnYXRlJztcbmltcG9ydCB7Y29tcHV0ZX0gZnJvbSAnLi9saWIvY29tcHV0ZSc7XG5pbXBvcnQge2luamVjdEVudmlyb25tZW50fSBmcm9tICcuL2xpYi9lbnZpcm9ubWVudCc7XG5pbXBvcnQge2V4aGF1c3R9IGZyb20gJy4vbGliL2V4aGF1c3QnO1xuaW1wb3J0IHtpbml0aWFsaXplfSBmcm9tICcuL2xpYi9pbml0aWFsaXplJztcbmltcG9ydCB7bG9hZH0gZnJvbSAnLi9saWIvbG9hZCc7XG5pbXBvcnQge3BhcmFtZXRlcml6ZX0gZnJvbSAnLi9saWIvcGFyYW1ldGVyaXplJztcblxuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi91dGlsL2RlYnVnLWxvZ2dlcic7XG5pbXBvcnQge3BhcnNlSUVQcm9jZXNzQXJnc30gZnJvbSAnLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHthbmRIYW5kbGV9IGZyb20gJy4vdXRpbC9oZWxwZXJzJztcbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuL3V0aWwvbG9nZ2VyJztcbmltcG9ydCB7dmFsaWRhdGVNYW5pZmVzdH0gZnJvbSAnLi91dGlsL3ZhbGlkYXRpb25zJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuL2NvbmZpZyc7XG5cbmNvbnN0IHtESVNDTEFJTUVSX01FU1NBR0UsIEVYSVRJTkdfSUYsIFNUQVJUSU5HX0lGfSA9IFNUUklOR1M7XG5cbmNvbnN0IGltcGFjdEVuZ2luZSA9IGFzeW5jICgpID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlSUVQcm9jZXNzQXJncygpO1xuICBjb25zdCB7aW5wdXRQYXRoLCBwYXJhbVBhdGgsIG91dHB1dE9wdGlvbnMsIGRlYnVnfSA9IG9wdGlvbnM7XG5cbiAgZGVidWdMb2dnZXIub3ZlcnJpZGVDb25zb2xlTWV0aG9kcyghIWRlYnVnKTtcblxuICBsb2dnZXIuaW5mbyhESVNDTEFJTUVSX01FU1NBR0UpO1xuICBjb25zb2xlLmluZm8oU1RBUlRJTkdfSUYpO1xuXG4gIGNvbnN0IHtyYXdNYW5pZmVzdCwgcGFyYW1ldGVyc30gPSBhd2FpdCBsb2FkKGlucHV0UGF0aCwgcGFyYW1QYXRoKTtcbiAgY29uc3QgZW52TWFuaWZlc3QgPSBhd2FpdCBpbmplY3RFbnZpcm9ubWVudChyYXdNYW5pZmVzdCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7dHJlZSwgLi4uY29udGV4dH0gPSB2YWxpZGF0ZU1hbmlmZXN0KGVudk1hbmlmZXN0KTtcbiAgICBwYXJhbWV0ZXJpemUuY29tYmluZShjb250ZXh0LnBhcmFtcywgcGFyYW1ldGVycyk7XG4gICAgY29uc3QgcGx1Z2luU3RvcmFnZSA9IGF3YWl0IGluaXRpYWxpemUoY29udGV4dC5pbml0aWFsaXplLnBsdWdpbnMpO1xuICAgIGNvbnN0IGNvbXB1dGVkVHJlZSA9IGF3YWl0IGNvbXB1dGUodHJlZSwge2NvbnRleHQsIHBsdWdpblN0b3JhZ2V9KTtcbiAgICBjb25zdCBhZ2dyZWdhdGVkVHJlZSA9IGFnZ3JlZ2F0ZShjb21wdXRlZFRyZWUsIGNvbnRleHQuYWdncmVnYXRpb24pO1xuICAgIGF3YWl0IGV4aGF1c3QoYWdncmVnYXRlZFRyZWUsIGNvbnRleHQsIG91dHB1dE9wdGlvbnMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBlbnZNYW5pZmVzdC5leGVjdXRpb24hLnN0YXR1cyA9ICdmYWlsJztcbiAgICAgIGVudk1hbmlmZXN0LmV4ZWN1dGlvbiEuZXJyb3IgPSBlcnJvci50b1N0cmluZygpO1xuICAgICAgbG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICAgIGNvbnN0IHt0cmVlLCAuLi5jb250ZXh0fSA9IGVudk1hbmlmZXN0O1xuXG4gICAgICBpZiAoZXJyb3IubmFtZSAhPT0gJ0V4aGF1c3RFcnJvcicpIHtcbiAgICAgICAgZXhoYXVzdCh0cmVlLCBjb250ZXh0LCBvdXRwdXRPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc29sZS5pbmZvKEVYSVRJTkdfSUYpO1xufTtcblxuaW1wYWN0RW5naW5lKCkuY2F0Y2goYW5kSGFuZGxlKTtcbiJdfQ==
|
package/build/lib/aggregate.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { AggregationParams } from '../types/manifest';
|
|
2
|
-
/**
|
|
3
|
-
* If aggregation is disabled, then returns given `tree`.
|
|
4
|
-
* Otherwise creates copy of the tree, then applies aggregation to it.
|
|
5
|
-
*/
|
|
6
|
-
export declare const aggregate: (tree: any, aggregationParams: AggregationParams) => any;
|
package/build/lib/aggregate.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.aggregate = void 0;
|
|
4
|
-
const aggregation_helper_1 = require("../util/aggregation-helper");
|
|
5
|
-
const strings_1 = require("../config/strings");
|
|
6
|
-
const { AGGREGATING_NODE, AGGREGATING_OUTPUTS } = strings_1.STRINGS;
|
|
7
|
-
/**
|
|
8
|
-
* Gets `i`th element from all children outputs and collects them in single array.
|
|
9
|
-
*/
|
|
10
|
-
const getIthElementsFromChildren = (children, i) => {
|
|
11
|
-
const values = Object.values(children);
|
|
12
|
-
return values.map((value) => {
|
|
13
|
-
const output = value.outputs;
|
|
14
|
-
return output[i];
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* 1. Gets the i'th element from each childrens outputs (treating children as rows and we are after a column of data).
|
|
19
|
-
* 2. Now we just aggregate over the `ithSliceOfOutputs` the same as we did for the normal outputs.
|
|
20
|
-
*/
|
|
21
|
-
const temporalAggregation = (node, metrics) => {
|
|
22
|
-
const outputs = [];
|
|
23
|
-
const values = Object.values(node.children);
|
|
24
|
-
for (let i = 0; i < values[0].outputs.length; i++) {
|
|
25
|
-
const ithSliceOfOutputs = getIthElementsFromChildren(node.children, i);
|
|
26
|
-
outputs.push((0, aggregation_helper_1.aggregateInputsIntoOne)(ithSliceOfOutputs, metrics, true));
|
|
27
|
-
}
|
|
28
|
-
return outputs;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Navigates the tree depth first, bottom up,
|
|
32
|
-
* left to right aggregating the component nodes and then the grouping nodes will be aggregated
|
|
33
|
-
* only when all their child nodes have been aggregated.
|
|
34
|
-
* 1. Aggregates all the children.
|
|
35
|
-
* 2. At this point you can be positive all your children have been aggregated and so you can now work on aggregating yourself.
|
|
36
|
-
* 3. It's component node, аggregates just the outputs of THIS component node (horizontal/component aggregation).
|
|
37
|
-
* 4. Else it's grouping node, first does temporal aggregation. This assumes everything is on the same time-grid.
|
|
38
|
-
* The outputs of the grouping node are the aggregated time bucketed outputs of it's children.
|
|
39
|
-
* 5. Now a grouping node has it's own outputs, it can horizotnally aggregate them.
|
|
40
|
-
*/
|
|
41
|
-
const aggregateNode = (node, aggregationParams) => {
|
|
42
|
-
const metrics = aggregationParams.metrics;
|
|
43
|
-
const type = aggregationParams.type;
|
|
44
|
-
if (node.children) {
|
|
45
|
-
for (const child in node.children) {
|
|
46
|
-
console.debug(AGGREGATING_NODE(child));
|
|
47
|
-
aggregateNode(node.children[child], aggregationParams);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (!node.children) {
|
|
51
|
-
if (type === 'horizontal' || type === 'both') {
|
|
52
|
-
node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(node.outputs, metrics);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
if (type === 'vertical' || type === 'both') {
|
|
57
|
-
const outputs = temporalAggregation(node, metrics);
|
|
58
|
-
node.outputs = outputs;
|
|
59
|
-
node.aggregated = (0, aggregation_helper_1.aggregateInputsIntoOne)(outputs, metrics);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* If aggregation is disabled, then returns given `tree`.
|
|
65
|
-
* Otherwise creates copy of the tree, then applies aggregation to it.
|
|
66
|
-
*/
|
|
67
|
-
const aggregate = (tree, aggregationParams) => {
|
|
68
|
-
console.debug(AGGREGATING_OUTPUTS);
|
|
69
|
-
if (!aggregationParams || !aggregationParams.type) {
|
|
70
|
-
return tree;
|
|
71
|
-
}
|
|
72
|
-
const copyOfTree = structuredClone(tree);
|
|
73
|
-
aggregateNode(copyOfTree, aggregationParams);
|
|
74
|
-
return copyOfTree;
|
|
75
|
-
};
|
|
76
|
-
exports.aggregate = aggregate;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9hZ2dyZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUVBQWtFO0FBRWxFLCtDQUEwQztBQUkxQyxNQUFNLEVBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLFFBQWEsRUFBRSxDQUFTLEVBQUUsRUFBRTtJQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFN0IsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBUyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMzRCxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxHQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWpELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNqRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLDJDQUFzQixFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBUyxFQUFFLGlCQUF3QyxFQUFFLEVBQUU7SUFDNUUsTUFBTSxPQUFPLEdBQUcsaUJBQWtCLENBQUMsT0FBTyxDQUFDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLGlCQUFrQixDQUFDLElBQUksQ0FBQztJQUVyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUV2QyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3hEO0tBQ0Y7SUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNsQixJQUFJLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUEsMkNBQXNCLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNqRTtLQUNGO1NBQU07UUFDTCxJQUFJLElBQUksS0FBSyxVQUFVLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMxQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFBLDJDQUFzQixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RDtLQUNGO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFTLEVBQUUsaUJBQW9DLEVBQUUsRUFBRTtJQUMzRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFbkMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsYUFBYSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQVhXLFFBQUEsU0FBUyxhQVdwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGx1Z2luUGFyYW1zfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge2FnZ3JlZ2F0ZUlucHV0c0ludG9PbmV9IGZyb20gJy4uL3V0aWwvYWdncmVnYXRpb24taGVscGVyJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcvc3RyaW5ncyc7XG5cbmltcG9ydCB7QWdncmVnYXRpb25QYXJhbXMsIEFnZ3JlZ2F0aW9uUGFyYW1zU3VyZX0gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuXG5jb25zdCB7QUdHUkVHQVRJTkdfTk9ERSwgQUdHUkVHQVRJTkdfT1VUUFVUU30gPSBTVFJJTkdTO1xuXG4vKipcbiAqIEdldHMgYGlgdGggZWxlbWVudCBmcm9tIGFsbCBjaGlsZHJlbiBvdXRwdXRzIGFuZCBjb2xsZWN0cyB0aGVtIGluIHNpbmdsZSBhcnJheS5cbiAqL1xuY29uc3QgZ2V0SXRoRWxlbWVudHNGcm9tQ2hpbGRyZW4gPSAoY2hpbGRyZW46IGFueSwgaTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoY2hpbGRyZW4pO1xuXG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gdmFsdWUub3V0cHV0cztcblxuICAgIHJldHVybiBvdXRwdXRbaV07XG4gIH0pO1xufTtcblxuLyoqXG4gKiAxLiBHZXRzIHRoZSBpJ3RoIGVsZW1lbnQgZnJvbSBlYWNoIGNoaWxkcmVucyBvdXRwdXRzICh0cmVhdGluZyBjaGlsZHJlbiBhcyByb3dzIGFuZCB3ZSBhcmUgYWZ0ZXIgYSBjb2x1bW4gb2YgZGF0YSkuXG4gKiAyLiBOb3cgd2UganVzdCBhZ2dyZWdhdGUgb3ZlciB0aGUgYGl0aFNsaWNlT2ZPdXRwdXRzYCB0aGUgc2FtZSBhcyB3ZSBkaWQgZm9yIHRoZSBub3JtYWwgb3V0cHV0cy5cbiAqL1xuY29uc3QgdGVtcG9yYWxBZ2dyZWdhdGlvbiA9IChub2RlOiBhbnksIG1ldHJpY3M6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IG91dHB1dHM6IFBsdWdpblBhcmFtc1tdID0gW107XG4gIGNvbnN0IHZhbHVlczogYW55ID0gT2JqZWN0LnZhbHVlcyhub2RlLmNoaWxkcmVuKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5vdXRwdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaXRoU2xpY2VPZk91dHB1dHMgPSBnZXRJdGhFbGVtZW50c0Zyb21DaGlsZHJlbihub2RlLmNoaWxkcmVuLCBpKTtcbiAgICBvdXRwdXRzLnB1c2goYWdncmVnYXRlSW5wdXRzSW50b09uZShpdGhTbGljZU9mT3V0cHV0cywgbWV0cmljcywgdHJ1ZSkpO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dHM7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRlcyB0aGUgdHJlZSBkZXB0aCBmaXJzdCwgYm90dG9tIHVwLFxuICogIGxlZnQgdG8gcmlnaHQgYWdncmVnYXRpbmcgdGhlIGNvbXBvbmVudCBub2RlcyBhbmQgdGhlbiB0aGUgZ3JvdXBpbmcgbm9kZXMgd2lsbCBiZSBhZ2dyZWdhdGVkXG4gKiAgb25seSB3aGVuIGFsbCB0aGVpciBjaGlsZCBub2RlcyBoYXZlIGJlZW4gYWdncmVnYXRlZC5cbiAqIDEuIEFnZ3JlZ2F0ZXMgYWxsIHRoZSBjaGlsZHJlbi5cbiAqIDIuIEF0IHRoaXMgcG9pbnQgeW91IGNhbiBiZSBwb3NpdGl2ZSBhbGwgeW91ciBjaGlsZHJlbiBoYXZlIGJlZW4gYWdncmVnYXRlZCBhbmQgc28geW91IGNhbiBub3cgd29yayBvbiBhZ2dyZWdhdGluZyB5b3Vyc2VsZi5cbiAqIDMuIEl0J3MgY29tcG9uZW50IG5vZGUsINCwZ2dyZWdhdGVzIGp1c3QgdGhlIG91dHB1dHMgb2YgVEhJUyBjb21wb25lbnQgbm9kZSAoaG9yaXpvbnRhbC9jb21wb25lbnQgYWdncmVnYXRpb24pLlxuICogNC4gRWxzZSBpdCdzIGdyb3VwaW5nIG5vZGUsIGZpcnN0IGRvZXMgdGVtcG9yYWwgYWdncmVnYXRpb24uIFRoaXMgYXNzdW1lcyBldmVyeXRoaW5nIGlzIG9uIHRoZSBzYW1lIHRpbWUtZ3JpZC5cbiAqICAgIFRoZSBvdXRwdXRzIG9mIHRoZSBncm91cGluZyBub2RlIGFyZSB0aGUgYWdncmVnYXRlZCB0aW1lIGJ1Y2tldGVkIG91dHB1dHMgb2YgaXQncyBjaGlsZHJlbi5cbiAqIDUuIE5vdyBhIGdyb3VwaW5nIG5vZGUgaGFzIGl0J3Mgb3duIG91dHB1dHMsIGl0IGNhbiBob3Jpem90bmFsbHkgYWdncmVnYXRlIHRoZW0uXG4gKi9cbmNvbnN0IGFnZ3JlZ2F0ZU5vZGUgPSAobm9kZTogYW55LCBhZ2dyZWdhdGlvblBhcmFtczogQWdncmVnYXRpb25QYXJhbXNTdXJlKSA9PiB7XG4gIGNvbnN0IG1ldHJpY3MgPSBhZ2dyZWdhdGlvblBhcmFtcyEubWV0cmljcztcbiAgY29uc3QgdHlwZSA9IGFnZ3JlZ2F0aW9uUGFyYW1zIS50eXBlO1xuXG4gIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBpbiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKEFHR1JFR0FUSU5HX05PREUoY2hpbGQpKTtcblxuICAgICAgYWdncmVnYXRlTm9kZShub2RlLmNoaWxkcmVuW2NoaWxkXSwgYWdncmVnYXRpb25QYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgIGlmICh0eXBlID09PSAnaG9yaXpvbnRhbCcgfHwgdHlwZSA9PT0gJ2JvdGgnKSB7XG4gICAgICBub2RlLmFnZ3JlZ2F0ZWQgPSBhZ2dyZWdhdGVJbnB1dHNJbnRvT25lKG5vZGUub3V0cHV0cywgbWV0cmljcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlID09PSAndmVydGljYWwnIHx8IHR5cGUgPT09ICdib3RoJykge1xuICAgICAgY29uc3Qgb3V0cHV0cyA9IHRlbXBvcmFsQWdncmVnYXRpb24obm9kZSwgbWV0cmljcyk7XG4gICAgICBub2RlLm91dHB1dHMgPSBvdXRwdXRzO1xuICAgICAgbm9kZS5hZ2dyZWdhdGVkID0gYWdncmVnYXRlSW5wdXRzSW50b09uZShvdXRwdXRzLCBtZXRyaWNzKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogSWYgYWdncmVnYXRpb24gaXMgZGlzYWJsZWQsIHRoZW4gcmV0dXJucyBnaXZlbiBgdHJlZWAuXG4gKiBPdGhlcndpc2UgY3JlYXRlcyBjb3B5IG9mIHRoZSB0cmVlLCB0aGVuIGFwcGxpZXMgYWdncmVnYXRpb24gdG8gaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBhZ2dyZWdhdGUgPSAodHJlZTogYW55LCBhZ2dyZWdhdGlvblBhcmFtczogQWdncmVnYXRpb25QYXJhbXMpID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhBR0dSRUdBVElOR19PVVRQVVRTKTtcblxuICBpZiAoIWFnZ3JlZ2F0aW9uUGFyYW1zIHx8ICFhZ2dyZWdhdGlvblBhcmFtcy50eXBlKSB7XG4gICAgcmV0dXJuIHRyZWU7XG4gIH1cblxuICBjb25zdCBjb3B5T2ZUcmVlID0gc3RydWN0dXJlZENsb25lKHRyZWUpO1xuICBhZ2dyZWdhdGVOb2RlKGNvcHlPZlRyZWUsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcblxuICByZXR1cm4gY29weU9mVHJlZTtcbn07XG4iXX0=
|
package/build/lib/compare.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFJN0Q7Ozs7Ozs7R0FPRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFjLEVBQUU7SUFDekUsSUFBSSxJQUFBLHdCQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1FBQ2xDLE9BQU8sSUFBQSxzQkFBWSxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDakMsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUM7Z0JBQ0UsSUFBSTtnQkFDSixNQUFNO2dCQUNOLE1BQU07YUFDUCxDQUFDO0tBQ1A7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUMsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1FBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDeEI7SUFFRCxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUU7UUFDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQjtJQUVELElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRTtRQUN4QixNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBQSxlQUFPLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUEsZUFBTyxFQUNwQixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUNYLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsT0FBTyxNQUFNLENBQUM7U0FDZjtLQUNGO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUF0RFcsUUFBQSxPQUFPLFdBc0RsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y2hlY2tJZkVxdWFsLCBvbmVJc1ByaW1pdGl2ZX0gZnJvbSAnLi4vdXRpbC9oZWxwZXJzJztcblxuaW1wb3J0IHtEaWZmZXJlbmNlfSBmcm9tICcuLi90eXBlcy9saWIvY29tcGFyZSc7XG5cbi8qKlxuICogMS4gSWYgb2JqZWN0cyBhcmUgbm90IG9mIHRoZSBzYW1lIHR5cGUgb3IgYXJlIHByaW1pdGl2ZSB0eXBlcywgY29tcGFyZXMgZGlyZWN0bHkuXG4gKiAyLiBHZXRzIHRoZSBrZXlzIGZyb20gYm90aCBvYmplY3RzLlxuICogMy4gSWYgYm90aCBhcmUgYXJyYXlzLCBjaGVja3MgdGhlaXIgZWxlbWVudHMuXG4gKiA0LiBDaGVja3MgZm9yIGtleXMgcHJlc2VudCBpbiBib3RoIG9iamVjdHMuXG4gKiAgICBJZiBrZXkgaXMgYGV4ZWN1dGlvbmAsIG9taXQgdW5uZWNlc3NhcnkgcGFyYW1zLlxuICogNS4gSWYgYWxsIGtleXMgYXJlIGNoZWNrZWQgYW5kIG5vIGRpZmZlcmVuY2VzIGFyZSBmb3VuZCwgcmV0dXJuIGVtcHR5IG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXBhcmUgPSAoc291cmNlOiBhbnksIHRhcmdldDogYW55LCBwYXRoID0gJycpOiBEaWZmZXJlbmNlID0+IHtcbiAgaWYgKG9uZUlzUHJpbWl0aXZlKHNvdXJjZSwgdGFyZ2V0KSkge1xuICAgIHJldHVybiBjaGVja0lmRXF1YWwoc291cmNlLCB0YXJnZXQpXG4gICAgICA/IHt9XG4gICAgICA6IHtcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgIH07XG4gIH1cblxuICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXModGFyZ2V0KTtcblxuICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChbLi4ua2V5czEsIC4uLmtleXMyXSk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgYWxsS2V5cy5kZWxldGUoJ25hbWUnKTtcbiAgICBhbGxLZXlzLmRlbGV0ZSgnZGVzY3JpcHRpb24nKTtcbiAgICBhbGxLZXlzLmRlbGV0ZSgndGFncycpO1xuICB9XG5cbiAgaWYgKHBhdGggPT09ICdpbml0aWFsaXplJykge1xuICAgIGFsbEtleXMuZGVsZXRlKCdvdXRwdXRzJyk7XG4gIH1cblxuICBpZiAocGF0aCA9PT0gJ2V4ZWN1dGlvbicpIHtcbiAgICBjb25zdCB3aGl0ZWxpc3QgPSBbJ3N0YXR1cycsICdlcnJvciddO1xuICAgIGFsbEtleXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICBpZiAoIXdoaXRlbGlzdC5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgYWxsS2V5cy5kZWxldGUodmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSAmJiBBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICBzb3VyY2UuZm9yRWFjaCgoX3JlY29yZCwgaSkgPT4ge1xuICAgICAgY29tcGFyZShzb3VyY2VbaV0sIHRhcmdldFtpXSwgcGF0aCA/IGAke3BhdGh9WyR7aX1dYCA6IGAke2l9YCk7XG4gICAgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBhbGxLZXlzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29tcGFyZShcbiAgICAgIHNvdXJjZVtrZXldLFxuICAgICAgdGFyZ2V0W2tleV0sXG4gICAgICBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleVxuICAgICk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHt9O1xufTtcbiJdfQ==
|
package/build/lib/compute.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compute = void 0;
|
|
4
|
-
const debug_logger_1 = require("../util/debug-logger");
|
|
5
|
-
const helpers_1 = require("../util/helpers");
|
|
6
|
-
const interface_1 = require("../types/interface");
|
|
7
|
-
const strings_1 = require("../config/strings");
|
|
8
|
-
const { MERGING_DEFAULTS_WITH_INPUT_DATA, COMPUTING_PIPELINE_FOR_NODE } = strings_1.STRINGS;
|
|
9
|
-
/**
|
|
10
|
-
* Traverses all child nodes based on children grouping.
|
|
11
|
-
*/
|
|
12
|
-
const traverse = async (children, params) => {
|
|
13
|
-
for (const child in children) {
|
|
14
|
-
await computeNode(children[child], params);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Appends `default` values to `inputs`.
|
|
19
|
-
*/
|
|
20
|
-
const mergeDefaults = (inputs, defaults) => {
|
|
21
|
-
if (inputs) {
|
|
22
|
-
const response = defaults
|
|
23
|
-
? inputs.map(input => (0, helpers_1.mergeObjects)(defaults, input))
|
|
24
|
-
: inputs;
|
|
25
|
-
return response;
|
|
26
|
-
}
|
|
27
|
-
console.debug(MERGING_DEFAULTS_WITH_INPUT_DATA);
|
|
28
|
-
return defaults ? [defaults] : [];
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* 1. If the node has it's own pipeline, defaults or config then use that,
|
|
32
|
-
* otherwise use whatever has been passed down from further up the tree.
|
|
33
|
-
* 2. If it's a grouping node, then first of all computes all it's children.
|
|
34
|
-
* This is doing a depth first traversal.
|
|
35
|
-
* 3. Otherwise merges the defaults into the inputs.
|
|
36
|
-
* 4. Goes through the pipeline plugins, by checking if it's `execute` plugin. If so sets outputs.
|
|
37
|
-
* If is a `groupby` plugin, it will return child components rather than outputs.
|
|
38
|
-
* 5. Since after `groupby`, there are new child components, then computes them.
|
|
39
|
-
* Note: `pipeline` now equals the remaining plu.gins to apply to each child
|
|
40
|
-
*/
|
|
41
|
-
const computeNode = async (node, params) => {
|
|
42
|
-
const pipeline = (node.pipeline || params.pipeline);
|
|
43
|
-
const config = node.config || params.config;
|
|
44
|
-
const defaults = node.defaults || params.defaults;
|
|
45
|
-
if (node.children) {
|
|
46
|
-
return traverse(node.children, {
|
|
47
|
-
...params,
|
|
48
|
-
pipeline,
|
|
49
|
-
defaults,
|
|
50
|
-
config,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
let inputStorage = structuredClone(node.inputs);
|
|
54
|
-
inputStorage = mergeDefaults(inputStorage, defaults);
|
|
55
|
-
const pipelineCopy = structuredClone(pipeline);
|
|
56
|
-
while (pipelineCopy.length !== 0) {
|
|
57
|
-
const pluginName = pipelineCopy.shift();
|
|
58
|
-
const plugin = params.pluginStorage.get(pluginName);
|
|
59
|
-
const nodeConfig = config && config[pluginName];
|
|
60
|
-
console.debug(COMPUTING_PIPELINE_FOR_NODE(pluginName));
|
|
61
|
-
debug_logger_1.debugLogger.setExecutingPluginName(pluginName);
|
|
62
|
-
if ((0, interface_1.isExecute)(plugin)) {
|
|
63
|
-
inputStorage = await plugin.execute(inputStorage, nodeConfig);
|
|
64
|
-
debug_logger_1.debugLogger.setExecutingPluginName();
|
|
65
|
-
node.outputs = inputStorage;
|
|
66
|
-
}
|
|
67
|
-
if ((0, interface_1.isGroupBy)(plugin)) {
|
|
68
|
-
node.children = await plugin.execute(inputStorage, nodeConfig);
|
|
69
|
-
delete node.inputs;
|
|
70
|
-
delete node.outputs;
|
|
71
|
-
await traverse(node.children, {
|
|
72
|
-
...params,
|
|
73
|
-
pipeline: pipelineCopy,
|
|
74
|
-
defaults,
|
|
75
|
-
config,
|
|
76
|
-
});
|
|
77
|
-
debug_logger_1.debugLogger.setExecutingPluginName();
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Creates copy of existing tree, then applies computing strategy.
|
|
84
|
-
*/
|
|
85
|
-
const compute = async (tree, params) => {
|
|
86
|
-
const copyOfTree = structuredClone(tree);
|
|
87
|
-
await computeNode(copyOfTree, params);
|
|
88
|
-
return copyOfTree;
|
|
89
|
-
};
|
|
90
|
-
exports.compute = compute;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFBaUQ7QUFDakQsNkNBQTZDO0FBRzdDLGtEQUF3RDtBQUV4RCwrQ0FBMEM7QUFFMUMsTUFBTSxFQUFDLGdDQUFnQyxFQUFFLDJCQUEyQixFQUFDLEdBQUcsaUJBQU8sQ0FBQztBQUVoRjs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxRQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUU7UUFDNUIsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzVDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixNQUFzQixFQUN0QixRQUFrQyxFQUNsQyxFQUFFO0lBQ0YsSUFBSSxNQUFNLEVBQUU7UUFDVixNQUFNLFFBQVEsR0FBRyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBQSxzQkFBWSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRVgsT0FBTyxRQUFRLENBQUM7S0FDakI7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFFaEQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQVUsRUFBRSxNQUFjLEVBQWdCLEVBQUU7SUFDckUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQWEsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDO0lBRWxELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNqQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLEdBQUcsTUFBTTtZQUNULFFBQVE7WUFDUixRQUFRO1lBQ1IsTUFBTTtTQUNQLENBQUMsQ0FBQztLQUNKO0lBRUQsSUFBSSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQW1CLENBQUM7SUFDbEUsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBWSxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEQsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELDBCQUFXLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFBLHFCQUFTLEVBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDOUQsMEJBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxJQUFBLHFCQUFTLEVBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQ2xDLFlBQVksRUFDWixVQUEyQixDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUVwQixNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QixHQUFHLE1BQU07Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVE7Z0JBQ1IsTUFBTTthQUNQLENBQUMsQ0FBQztZQUVILDBCQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUVyQyxNQUFNO1NBQ1A7S0FDRjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQVMsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDaEUsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpDLE1BQU0sV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0QyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFOVyxRQUFBLE9BQU8sV0FNbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BsdWdpblBhcmFtcywgR3JvdXBCeUNvbmZpZ30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtkZWJ1Z0xvZ2dlcn0gZnJvbSAnLi4vdXRpbC9kZWJ1Zy1sb2dnZXInO1xuaW1wb3J0IHttZXJnZU9iamVjdHN9IGZyb20gJy4uL3V0aWwvaGVscGVycyc7XG5cbmltcG9ydCB7Q29tcHV0ZVBhcmFtcywgTm9kZSwgUGFyYW1zfSBmcm9tICcuLi90eXBlcy9jb21wdXRlJztcbmltcG9ydCB7aXNFeGVjdXRlLCBpc0dyb3VwQnl9IGZyb20gJy4uL3R5cGVzL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCB7TUVSR0lOR19ERUZBVUxUU19XSVRIX0lOUFVUX0RBVEEsIENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIFRyYXZlcnNlcyBhbGwgY2hpbGQgbm9kZXMgYmFzZWQgb24gY2hpbGRyZW4gZ3JvdXBpbmcuXG4gKi9cbmNvbnN0IHRyYXZlcnNlID0gYXN5bmMgKGNoaWxkcmVuOiBhbnksIHBhcmFtczogUGFyYW1zKSA9PiB7XG4gIGZvciAoY29uc3QgY2hpbGQgaW4gY2hpbGRyZW4pIHtcbiAgICBhd2FpdCBjb21wdXRlTm9kZShjaGlsZHJlbltjaGlsZF0sIHBhcmFtcyk7XG4gIH1cbn07XG5cbi8qKlxuICogQXBwZW5kcyBgZGVmYXVsdGAgdmFsdWVzIHRvIGBpbnB1dHNgLlxuICovXG5jb25zdCBtZXJnZURlZmF1bHRzID0gKFxuICBpbnB1dHM6IFBsdWdpblBhcmFtc1tdLFxuICBkZWZhdWx0czogUGx1Z2luUGFyYW1zIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgaWYgKGlucHV0cykge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gZGVmYXVsdHNcbiAgICAgID8gaW5wdXRzLm1hcChpbnB1dCA9PiBtZXJnZU9iamVjdHMoZGVmYXVsdHMsIGlucHV0KSlcbiAgICAgIDogaW5wdXRzO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgY29uc29sZS5kZWJ1ZyhNRVJHSU5HX0RFRkFVTFRTX1dJVEhfSU5QVVRfREFUQSk7XG5cbiAgcmV0dXJuIGRlZmF1bHRzID8gW2RlZmF1bHRzXSA6IFtdO1xufTtcblxuLyoqXG4gKiAxLiBJZiB0aGUgbm9kZSBoYXMgaXQncyBvd24gcGlwZWxpbmUsIGRlZmF1bHRzIG9yIGNvbmZpZyB0aGVuIHVzZSB0aGF0LFxuICogICAgb3RoZXJ3aXNlIHVzZSB3aGF0ZXZlciBoYXMgYmVlbiBwYXNzZWQgZG93biBmcm9tIGZ1cnRoZXIgdXAgdGhlIHRyZWUuXG4gKiAyLiBJZiBpdCdzIGEgZ3JvdXBpbmcgbm9kZSwgdGhlbiBmaXJzdCBvZiBhbGwgY29tcHV0ZXMgYWxsIGl0J3MgY2hpbGRyZW4uXG4gKiAgICBUaGlzIGlzIGRvaW5nIGEgZGVwdGggZmlyc3QgdHJhdmVyc2FsLlxuICogMy4gT3RoZXJ3aXNlIG1lcmdlcyB0aGUgZGVmYXVsdHMgaW50byB0aGUgaW5wdXRzLlxuICogNC4gR29lcyB0aHJvdWdoIHRoZSBwaXBlbGluZSBwbHVnaW5zLCBieSBjaGVja2luZyBpZiBpdCdzIGBleGVjdXRlYCBwbHVnaW4uIElmIHNvIHNldHMgb3V0cHV0cy5cbiAqICAgIElmIGlzIGEgYGdyb3VwYnlgIHBsdWdpbiwgaXQgd2lsbCByZXR1cm4gY2hpbGQgY29tcG9uZW50cyByYXRoZXIgdGhhbiBvdXRwdXRzLlxuICogNS4gU2luY2UgYWZ0ZXIgYGdyb3VwYnlgLCB0aGVyZSBhcmUgbmV3IGNoaWxkIGNvbXBvbmVudHMsIHRoZW4gY29tcHV0ZXMgdGhlbS5cbiAqICAgIE5vdGU6IGBwaXBlbGluZWAgbm93IGVxdWFscyB0aGUgcmVtYWluaW5nIHBsdS5naW5zIHRvIGFwcGx5IHRvIGVhY2ggY2hpbGRcbiAqL1xuY29uc3QgY29tcHV0ZU5vZGUgPSBhc3luYyAobm9kZTogTm9kZSwgcGFyYW1zOiBQYXJhbXMpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBwaXBlbGluZSA9IChub2RlLnBpcGVsaW5lIHx8IHBhcmFtcy5waXBlbGluZSkgYXMgc3RyaW5nW107XG4gIGNvbnN0IGNvbmZpZyA9IG5vZGUuY29uZmlnIHx8IHBhcmFtcy5jb25maWc7XG4gIGNvbnN0IGRlZmF1bHRzID0gbm9kZS5kZWZhdWx0cyB8fCBwYXJhbXMuZGVmYXVsdHM7XG5cbiAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICByZXR1cm4gdHJhdmVyc2Uobm9kZS5jaGlsZHJlbiwge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcGlwZWxpbmUsXG4gICAgICBkZWZhdWx0cyxcbiAgICAgIGNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBpbnB1dFN0b3JhZ2UgPSBzdHJ1Y3R1cmVkQ2xvbmUobm9kZS5pbnB1dHMpIGFzIFBsdWdpblBhcmFtc1tdO1xuICBpbnB1dFN0b3JhZ2UgPSBtZXJnZURlZmF1bHRzKGlucHV0U3RvcmFnZSwgZGVmYXVsdHMpO1xuICBjb25zdCBwaXBlbGluZUNvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUocGlwZWxpbmUpO1xuXG4gIHdoaWxlIChwaXBlbGluZUNvcHkubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3QgcGx1Z2luTmFtZSA9IHBpcGVsaW5lQ29weS5zaGlmdCgpIGFzIHN0cmluZztcbiAgICBjb25zdCBwbHVnaW4gPSBwYXJhbXMucGx1Z2luU3RvcmFnZS5nZXQocGx1Z2luTmFtZSk7XG4gICAgY29uc3Qgbm9kZUNvbmZpZyA9IGNvbmZpZyAmJiBjb25maWdbcGx1Z2luTmFtZV07XG5cbiAgICBjb25zb2xlLmRlYnVnKENPTVBVVElOR19QSVBFTElORV9GT1JfTk9ERShwbHVnaW5OYW1lKSk7XG4gICAgZGVidWdMb2dnZXIuc2V0RXhlY3V0aW5nUGx1Z2luTmFtZShwbHVnaW5OYW1lKTtcblxuICAgIGlmIChpc0V4ZWN1dGUocGx1Z2luKSkge1xuICAgICAgaW5wdXRTdG9yYWdlID0gYXdhaXQgcGx1Z2luLmV4ZWN1dGUoaW5wdXRTdG9yYWdlLCBub2RlQ29uZmlnKTtcbiAgICAgIGRlYnVnTG9nZ2VyLnNldEV4ZWN1dGluZ1BsdWdpbk5hbWUoKTtcblxuICAgICAgbm9kZS5vdXRwdXRzID0gaW5wdXRTdG9yYWdlO1xuICAgIH1cblxuICAgIGlmIChpc0dyb3VwQnkocGx1Z2luKSkge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IGF3YWl0IHBsdWdpbi5leGVjdXRlKFxuICAgICAgICBpbnB1dFN0b3JhZ2UsXG4gICAgICAgIG5vZGVDb25maWcgYXMgR3JvdXBCeUNvbmZpZ1xuICAgICAgKTtcbiAgICAgIGRlbGV0ZSBub2RlLmlucHV0cztcbiAgICAgIGRlbGV0ZSBub2RlLm91dHB1dHM7XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlKG5vZGUuY2hpbGRyZW4sIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICBwaXBlbGluZTogcGlwZWxpbmVDb3B5LFxuICAgICAgICBkZWZhdWx0cyxcbiAgICAgICAgY29uZmlnLFxuICAgICAgfSk7XG5cbiAgICAgIGRlYnVnTG9nZ2VyLnNldEV4ZWN1dGluZ1BsdWdpbk5hbWUoKTtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgY29weSBvZiBleGlzdGluZyB0cmVlLCB0aGVuIGFwcGxpZXMgY29tcHV0aW5nIHN0cmF0ZWd5LlxuICovXG5leHBvcnQgY29uc3QgY29tcHV0ZSA9IGFzeW5jICh0cmVlOiBhbnksIHBhcmFtczogQ29tcHV0ZVBhcmFtcykgPT4ge1xuICBjb25zdCBjb3B5T2ZUcmVlID0gc3RydWN0dXJlZENsb25lKHRyZWUpO1xuXG4gIGF3YWl0IGNvbXB1dGVOb2RlKGNvcHlPZlRyZWUsIHBhcmFtcyk7XG5cbiAgcmV0dXJuIGNvcHlPZlRyZWU7XG59O1xuIl19
|
package/build/lib/environment.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.injectEnvironment = void 0;
|
|
4
|
-
const luxon_1 = require("luxon");
|
|
5
|
-
const helpers_1 = require("../util/helpers");
|
|
6
|
-
const os_checker_1 = require("../util/os-checker");
|
|
7
|
-
const strings_1 = require("../config/strings");
|
|
8
|
-
const packageJson = require('../../package.json');
|
|
9
|
-
const { CAPTURING_RUNTIME_ENVIRONMENT_DATA } = strings_1.STRINGS;
|
|
10
|
-
/**
|
|
11
|
-
* 1. Gets the high-resolution real time when the application starts.
|
|
12
|
-
* 2. Converts the high-resolution time to milliseconds.
|
|
13
|
-
* 3. Gets the current DateTime.
|
|
14
|
-
* 4. Subtracts the milliseconds from the current DateTime.
|
|
15
|
-
*/
|
|
16
|
-
const getProcessStartingTimestamp = () => {
|
|
17
|
-
const startTime = process.hrtime();
|
|
18
|
-
const [seconds, nanoseconds] = process.hrtime(startTime);
|
|
19
|
-
const milliseconds = seconds * 1000 + nanoseconds / 1e6;
|
|
20
|
-
const currentDateTime = luxon_1.DateTime.local();
|
|
21
|
-
const applicationStartDateTime = currentDateTime.minus({
|
|
22
|
-
milliseconds: milliseconds,
|
|
23
|
-
});
|
|
24
|
-
return applicationStartDateTime.toUTC().toString();
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Goes through the dependencies, converts them into oneliner.
|
|
28
|
-
*/
|
|
29
|
-
const flattenDependencies = (dependencies) => dependencies.map(dependency => {
|
|
30
|
-
const [packageName, versionInfo] = dependency;
|
|
31
|
-
const { version, extraneous, resolved } = versionInfo;
|
|
32
|
-
const ifExtraneous = extraneous ? ` extraneous -> ${resolved}` : '';
|
|
33
|
-
const ifFromGithub = resolved && resolved.startsWith('git') ? ` (${resolved})` : '';
|
|
34
|
-
const formattedString = `${packageName}@${version}${ifExtraneous || ifFromGithub}`;
|
|
35
|
-
return formattedString;
|
|
36
|
-
});
|
|
37
|
-
/**
|
|
38
|
-
* 1. Runs `npm list --json`.
|
|
39
|
-
* 2. Parses json data and converts to list.
|
|
40
|
-
*/
|
|
41
|
-
const listDependencies = async () => {
|
|
42
|
-
const { stdout } = await (0, helpers_1.execPromise)('npm list --json');
|
|
43
|
-
const npmListResponse = JSON.parse(stdout);
|
|
44
|
-
if (npmListResponse.dependencies) {
|
|
45
|
-
const dependencies = Object.entries(npmListResponse.dependencies);
|
|
46
|
-
return flattenDependencies(dependencies);
|
|
47
|
-
}
|
|
48
|
-
return [];
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Injects execution information (command, environment) to existing manifest.
|
|
52
|
-
*/
|
|
53
|
-
const injectEnvironment = async (manifest) => {
|
|
54
|
-
console.debug(CAPTURING_RUNTIME_ENVIRONMENT_DATA);
|
|
55
|
-
const dependencies = await listDependencies();
|
|
56
|
-
const info = await (0, os_checker_1.osInfo)();
|
|
57
|
-
const dateTime = `${getProcessStartingTimestamp()} (UTC)`;
|
|
58
|
-
return {
|
|
59
|
-
...manifest,
|
|
60
|
-
execution: {
|
|
61
|
-
status: 'success',
|
|
62
|
-
command: process.argv.join(' '),
|
|
63
|
-
environment: {
|
|
64
|
-
'if-version': packageJson.version,
|
|
65
|
-
os: info.os,
|
|
66
|
-
'os-version': info['os-version'],
|
|
67
|
-
'node-version': process.versions.node,
|
|
68
|
-
'date-time': dateTime,
|
|
69
|
-
dependencies,
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
exports.injectEnvironment = injectEnvironment;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUErQjtBQUUvQiw2Q0FBNEM7QUFJNUMsbURBQTBDO0FBRTFDLCtDQUEwQztBQUUxQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVsRCxNQUFNLEVBQUMsa0NBQWtDLEVBQUMsR0FBRyxpQkFBTyxDQUFDO0FBRXJEOzs7OztHQUtHO0FBQ0gsTUFBTSwyQkFBMkIsR0FBRyxHQUFHLEVBQUU7SUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRW5DLE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxNQUFNLFlBQVksR0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFFeEQsTUFBTSxlQUFlLEdBQUcsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUV6QyxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDckQsWUFBWSxFQUFFLFlBQVk7S0FDM0IsQ0FBQyxDQUFDO0lBRUgsT0FBTyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUEyQyxFQUFFLEVBQUUsQ0FDMUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUM1QixNQUFNLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUM5QyxNQUFNLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsR0FBRyxXQUFXLENBQUM7SUFDcEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwRSxNQUFNLFlBQVksR0FDaEIsUUFBUSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxNQUFNLGVBQWUsR0FBRyxHQUFHLFdBQVcsSUFBSSxPQUFPLEdBQy9DLFlBQVksSUFBSSxZQUNsQixFQUFFLENBQUM7SUFFSCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDLENBQUMsQ0FBQztBQUVMOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDbEMsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSxxQkFBVyxFQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdEQsTUFBTSxlQUFlLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUQsSUFBSSxlQUFlLENBQUMsWUFBWSxFQUFFO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxFLE9BQU8sbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDMUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3BDLFFBQWtCLEVBQ0MsRUFBRTtJQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFFbEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxtQkFBTSxHQUFFLENBQUM7SUFDNUIsTUFBTSxRQUFRLEdBQUcsR0FBRywyQkFBMkIsRUFBRSxRQUFRLENBQUM7SUFFMUQsT0FBTztRQUNMLEdBQUcsUUFBUTtRQUNYLFNBQVMsRUFBRTtZQUNULE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDL0IsV0FBVyxFQUFFO2dCQUNYLFlBQVksRUFBRSxXQUFXLENBQUMsT0FBTztnQkFDakMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUNyQyxXQUFXLEVBQUUsUUFBUTtnQkFDckIsWUFBWTthQUNiO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBeEJXLFFBQUEsaUJBQWlCLHFCQXdCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5cbmltcG9ydCB7ZXhlY1Byb21pc2V9IGZyb20gJy4uL3V0aWwvaGVscGVycyc7XG5cbmltcG9ydCB7TWFuaWZlc3R9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcbmltcG9ydCB7TnBtTGlzdFJlc3BvbnNlLCBQYWNrYWdlRGVwZW5kZW5jeX0gZnJvbSAnLi4vdHlwZXMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHtvc0luZm99IGZyb20gJy4uL3V0aWwvb3MtY2hlY2tlcic7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnL3N0cmluZ3MnO1xuXG5jb25zdCBwYWNrYWdlSnNvbiA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpO1xuXG5jb25zdCB7Q0FQVFVSSU5HX1JVTlRJTUVfRU5WSVJPTk1FTlRfREFUQX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIDEuIEdldHMgdGhlIGhpZ2gtcmVzb2x1dGlvbiByZWFsIHRpbWUgd2hlbiB0aGUgYXBwbGljYXRpb24gc3RhcnRzLlxuICogMi4gQ29udmVydHMgdGhlIGhpZ2gtcmVzb2x1dGlvbiB0aW1lIHRvIG1pbGxpc2Vjb25kcy5cbiAqIDMuIEdldHMgdGhlIGN1cnJlbnQgRGF0ZVRpbWUuXG4gKiA0LiBTdWJ0cmFjdHMgdGhlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBjdXJyZW50IERhdGVUaW1lLlxuICovXG5jb25zdCBnZXRQcm9jZXNzU3RhcnRpbmdUaW1lc3RhbXAgPSAoKSA9PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG5cbiAgY29uc3QgW3NlY29uZHMsIG5hbm9zZWNvbmRzXSA9IHByb2Nlc3MuaHJ0aW1lKHN0YXJ0VGltZSk7XG4gIGNvbnN0IG1pbGxpc2Vjb25kcyA9IHNlY29uZHMgKiAxMDAwICsgbmFub3NlY29uZHMgLyAxZTY7XG5cbiAgY29uc3QgY3VycmVudERhdGVUaW1lID0gRGF0ZVRpbWUubG9jYWwoKTtcblxuICBjb25zdCBhcHBsaWNhdGlvblN0YXJ0RGF0ZVRpbWUgPSBjdXJyZW50RGF0ZVRpbWUubWludXMoe1xuICAgIG1pbGxpc2Vjb25kczogbWlsbGlzZWNvbmRzLFxuICB9KTtcblxuICByZXR1cm4gYXBwbGljYXRpb25TdGFydERhdGVUaW1lLnRvVVRDKCkudG9TdHJpbmcoKTtcbn07XG5cbi8qKlxuICogR29lcyB0aHJvdWdoIHRoZSBkZXBlbmRlbmNpZXMsIGNvbnZlcnRzIHRoZW0gaW50byBvbmVsaW5lci5cbiAqL1xuY29uc3QgZmxhdHRlbkRlcGVuZGVuY2llcyA9IChkZXBlbmRlbmNpZXM6IFtzdHJpbmcsIFBhY2thZ2VEZXBlbmRlbmN5XVtdKSA9PlxuICBkZXBlbmRlbmNpZXMubWFwKGRlcGVuZGVuY3kgPT4ge1xuICAgIGNvbnN0IFtwYWNrYWdlTmFtZSwgdmVyc2lvbkluZm9dID0gZGVwZW5kZW5jeTtcbiAgICBjb25zdCB7dmVyc2lvbiwgZXh0cmFuZW91cywgcmVzb2x2ZWR9ID0gdmVyc2lvbkluZm87XG4gICAgY29uc3QgaWZFeHRyYW5lb3VzID0gZXh0cmFuZW91cyA/IGAgZXh0cmFuZW91cyAtPiAke3Jlc29sdmVkfWAgOiAnJztcbiAgICBjb25zdCBpZkZyb21HaXRodWIgPVxuICAgICAgcmVzb2x2ZWQgJiYgcmVzb2x2ZWQuc3RhcnRzV2l0aCgnZ2l0JykgPyBgICgke3Jlc29sdmVkfSlgIDogJyc7XG4gICAgY29uc3QgZm9ybWF0dGVkU3RyaW5nID0gYCR7cGFja2FnZU5hbWV9QCR7dmVyc2lvbn0ke1xuICAgICAgaWZFeHRyYW5lb3VzIHx8IGlmRnJvbUdpdGh1YlxuICAgIH1gO1xuXG4gICAgcmV0dXJuIGZvcm1hdHRlZFN0cmluZztcbiAgfSk7XG5cbi8qKlxuICogMS4gUnVucyBgbnBtIGxpc3QgLS1qc29uYC5cbiAqIDIuIFBhcnNlcyBqc29uIGRhdGEgYW5kIGNvbnZlcnRzIHRvIGxpc3QuXG4gKi9cbmNvbnN0IGxpc3REZXBlbmRlbmNpZXMgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlY1Byb21pc2UoJ25wbSBsaXN0IC0tanNvbicpO1xuICBjb25zdCBucG1MaXN0UmVzcG9uc2U6IE5wbUxpc3RSZXNwb25zZSA9IEpTT04ucGFyc2Uoc3Rkb3V0KTtcblxuICBpZiAobnBtTGlzdFJlc3BvbnNlLmRlcGVuZGVuY2llcykge1xuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IE9iamVjdC5lbnRyaWVzKG5wbUxpc3RSZXNwb25zZS5kZXBlbmRlbmNpZXMpO1xuXG4gICAgcmV0dXJuIGZsYXR0ZW5EZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn07XG5cbi8qKlxuICogSW5qZWN0cyBleGVjdXRpb24gaW5mb3JtYXRpb24gKGNvbW1hbmQsIGVudmlyb25tZW50KSB0byBleGlzdGluZyBtYW5pZmVzdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGluamVjdEVudmlyb25tZW50ID0gYXN5bmMgKFxuICBtYW5pZmVzdDogTWFuaWZlc3Rcbik6IFByb21pc2U8TWFuaWZlc3Q+ID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhDQVBUVVJJTkdfUlVOVElNRV9FTlZJUk9OTUVOVF9EQVRBKTtcblxuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBhd2FpdCBsaXN0RGVwZW5kZW5jaWVzKCk7XG4gIGNvbnN0IGluZm8gPSBhd2FpdCBvc0luZm8oKTtcbiAgY29uc3QgZGF0ZVRpbWUgPSBgJHtnZXRQcm9jZXNzU3RhcnRpbmdUaW1lc3RhbXAoKX0gKFVUQylgO1xuXG4gIHJldHVybiB7XG4gICAgLi4ubWFuaWZlc3QsXG4gICAgZXhlY3V0aW9uOiB7XG4gICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgIGNvbW1hbmQ6IHByb2Nlc3MuYXJndi5qb2luKCcgJyksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAnaWYtdmVyc2lvbic6IHBhY2thZ2VKc29uLnZlcnNpb24sXG4gICAgICAgIG9zOiBpbmZvLm9zLFxuICAgICAgICAnb3MtdmVyc2lvbic6IGluZm9bJ29zLXZlcnNpb24nXSxcbiAgICAgICAgJ25vZGUtdmVyc2lvbic6IHByb2Nlc3MudmVyc2lvbnMubm9kZSxcbiAgICAgICAgJ2RhdGUtdGltZSc6IGRhdGVUaW1lLFxuICAgICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
package/build/lib/exhaust.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exhaust = void 0;
|
|
4
|
-
const utils_1 = require("@grnsft/if-core/utils");
|
|
5
|
-
/**
|
|
6
|
-
* @todo This is temporary solution, will be refactored to support dynamic plugins.
|
|
7
|
-
*/
|
|
8
|
-
const export_csv_1 = require("../builtins/export-csv");
|
|
9
|
-
const export_csv_raw_1 = require("../builtins/export-csv-raw");
|
|
10
|
-
const export_log_1 = require("../builtins/export-log");
|
|
11
|
-
const export_yaml_1 = require("../builtins/export-yaml");
|
|
12
|
-
const config_1 = require("../config");
|
|
13
|
-
const { InvalidExhaustPluginError } = utils_1.ERRORS;
|
|
14
|
-
const { INVALID_EXHAUST_PLUGIN, PREPARING_OUTPUT_DATA } = config_1.STRINGS;
|
|
15
|
-
/**
|
|
16
|
-
* Initialize exhaust plugins based on the provided config
|
|
17
|
-
*/
|
|
18
|
-
const initializeExhaustPlugins = (plugins) => plugins.map(initializeExhaustPlugin);
|
|
19
|
-
/**
|
|
20
|
-
* Factory method for exhaust plugins.
|
|
21
|
-
*/
|
|
22
|
-
const initializeExhaustPlugin = (name) => {
|
|
23
|
-
switch (name) {
|
|
24
|
-
case 'yaml':
|
|
25
|
-
return (0, export_yaml_1.ExportYaml)();
|
|
26
|
-
case 'csv':
|
|
27
|
-
return (0, export_csv_1.ExportCSV)();
|
|
28
|
-
case 'csv-raw':
|
|
29
|
-
return (0, export_csv_raw_1.ExportCSVRaw)();
|
|
30
|
-
default:
|
|
31
|
-
throw new InvalidExhaustPluginError(INVALID_EXHAUST_PLUGIN(name));
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Output manager - Exhaust.
|
|
36
|
-
* Grabs output plugins from context, executes every.
|
|
37
|
-
*/
|
|
38
|
-
const exhaust = async (tree, context, outputOptions) => {
|
|
39
|
-
console.debug(PREPARING_OUTPUT_DATA);
|
|
40
|
-
const outputPlugins = context.initialize.outputs;
|
|
41
|
-
if (outputOptions.stdout) {
|
|
42
|
-
(0, export_log_1.ExportLog)().execute(tree, context);
|
|
43
|
-
}
|
|
44
|
-
if (!outputPlugins) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const exhaustPlugins = initializeExhaustPlugins(outputPlugins);
|
|
48
|
-
for await (const plugin of exhaustPlugins) {
|
|
49
|
-
await plugin.execute(tree, context, outputOptions.outputPath);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
exports.exhaust = exhaust;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhoYXVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvZXhoYXVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBNkM7QUFFN0M7O0dBRUc7QUFDSCx1REFBaUQ7QUFDakQsK0RBQXdEO0FBQ3hELHVEQUFpRDtBQUNqRCx5REFBbUQ7QUFFbkQsc0NBQWtDO0FBTWxDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUMzQyxNQUFNLEVBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE9BQWlCLEVBQUUsRUFBRSxDQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsSUFBWSxFQUEwQixFQUFFO0lBQ3ZFLFFBQVEsSUFBSSxFQUFFO1FBQ1osS0FBSyxNQUFNO1lBQ1QsT0FBTyxJQUFBLHdCQUFVLEdBQUUsQ0FBQztRQUN0QixLQUFLLEtBQUs7WUFDUixPQUFPLElBQUEsc0JBQVMsR0FBRSxDQUFDO1FBQ3JCLEtBQUssU0FBUztZQUNaLE9BQU8sSUFBQSw2QkFBWSxHQUFFLENBQUM7UUFDeEI7WUFDRSxNQUFNLElBQUkseUJBQXlCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNyRTtBQUNILENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNJLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFDMUIsSUFBUyxFQUNULE9BQWdCLEVBQ2hCLGFBQXNCLEVBQ3RCLEVBQUU7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFckMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFFakQsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3hCLElBQUEsc0JBQVMsR0FBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDcEM7SUFFRCxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLE9BQU87S0FDUjtJQUVELE1BQU0sY0FBYyxHQUFHLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRS9ELElBQUksS0FBSyxFQUFFLE1BQU0sTUFBTSxJQUFJLGNBQWMsRUFBRTtRQUN6QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDL0Q7QUFDSCxDQUFDLENBQUM7QUF0QlcsUUFBQSxPQUFPLFdBc0JsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuXG4vKipcbiAqIEB0b2RvIFRoaXMgaXMgdGVtcG9yYXJ5IHNvbHV0aW9uLCB3aWxsIGJlIHJlZmFjdG9yZWQgdG8gc3VwcG9ydCBkeW5hbWljIHBsdWdpbnMuXG4gKi9cbmltcG9ydCB7RXhwb3J0Q1NWfSBmcm9tICcuLi9idWlsdGlucy9leHBvcnQtY3N2JztcbmltcG9ydCB7RXhwb3J0Q1NWUmF3fSBmcm9tICcuLi9idWlsdGlucy9leHBvcnQtY3N2LXJhdyc7XG5pbXBvcnQge0V4cG9ydExvZ30gZnJvbSAnLi4vYnVpbHRpbnMvZXhwb3J0LWxvZyc7XG5pbXBvcnQge0V4cG9ydFlhbWx9IGZyb20gJy4uL2J1aWx0aW5zL2V4cG9ydC15YW1sJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge0V4aGF1c3RQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uL3R5cGVzL2V4aGF1c3QtcGx1Z2luLWludGVyZmFjZSc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uL3R5cGVzL21hbmlmZXN0JztcbmltcG9ydCB7T3B0aW9uc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuY29uc3Qge0ludmFsaWRFeGhhdXN0UGx1Z2luRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0lOVkFMSURfRVhIQVVTVF9QTFVHSU4sIFBSRVBBUklOR19PVVRQVVRfREFUQX0gPSBTVFJJTkdTO1xuXG4vKipcbiAqIEluaXRpYWxpemUgZXhoYXVzdCBwbHVnaW5zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWdcbiAqL1xuY29uc3QgaW5pdGlhbGl6ZUV4aGF1c3RQbHVnaW5zID0gKHBsdWdpbnM6IHN0cmluZ1tdKSA9PlxuICBwbHVnaW5zLm1hcChpbml0aWFsaXplRXhoYXVzdFBsdWdpbik7XG5cbi8qKlxuICogRmFjdG9yeSBtZXRob2QgZm9yIGV4aGF1c3QgcGx1Z2lucy5cbiAqL1xuY29uc3QgaW5pdGlhbGl6ZUV4aGF1c3RQbHVnaW4gPSAobmFtZTogc3RyaW5nKTogRXhoYXVzdFBsdWdpbkludGVyZmFjZSA9PiB7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ3lhbWwnOlxuICAgICAgcmV0dXJuIEV4cG9ydFlhbWwoKTtcbiAgICBjYXNlICdjc3YnOlxuICAgICAgcmV0dXJuIEV4cG9ydENTVigpO1xuICAgIGNhc2UgJ2Nzdi1yYXcnOlxuICAgICAgcmV0dXJuIEV4cG9ydENTVlJhdygpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEV4aGF1c3RQbHVnaW5FcnJvcihJTlZBTElEX0VYSEFVU1RfUExVR0lOKG5hbWUpKTtcbiAgfVxufTtcblxuLyoqXG4gKiBPdXRwdXQgbWFuYWdlciAtIEV4aGF1c3QuXG4gKiBHcmFicyBvdXRwdXQgcGx1Z2lucyBmcm9tIGNvbnRleHQsIGV4ZWN1dGVzIGV2ZXJ5LlxuICovXG5leHBvcnQgY29uc3QgZXhoYXVzdCA9IGFzeW5jIChcbiAgdHJlZTogYW55LFxuICBjb250ZXh0OiBDb250ZXh0LFxuICBvdXRwdXRPcHRpb25zOiBPcHRpb25zXG4pID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhQUkVQQVJJTkdfT1VUUFVUX0RBVEEpO1xuXG4gIGNvbnN0IG91dHB1dFBsdWdpbnMgPSBjb250ZXh0LmluaXRpYWxpemUub3V0cHV0cztcblxuICBpZiAob3V0cHV0T3B0aW9ucy5zdGRvdXQpIHtcbiAgICBFeHBvcnRMb2coKS5leGVjdXRlKHRyZWUsIGNvbnRleHQpO1xuICB9XG5cbiAgaWYgKCFvdXRwdXRQbHVnaW5zKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZXhoYXVzdFBsdWdpbnMgPSBpbml0aWFsaXplRXhoYXVzdFBsdWdpbnMob3V0cHV0UGx1Z2lucyk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBwbHVnaW4gb2YgZXhoYXVzdFBsdWdpbnMpIHtcbiAgICBhd2FpdCBwbHVnaW4uZXhlY3V0ZSh0cmVlLCBjb250ZXh0LCBvdXRwdXRPcHRpb25zLm91dHB1dFBhdGgpO1xuICB9XG59O1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { GlobalPlugins } from '../types/manifest';
|
|
2
|
-
import { PluginStorageInterface } from '../types/plugin-storage';
|
|
3
|
-
/**
|
|
4
|
-
* Registers all plugins from `manifest`.`initialize` property.
|
|
5
|
-
*/
|
|
6
|
-
export declare const initialize: (plugins: GlobalPlugins) => Promise<PluginStorageInterface>;
|
package/build/lib/initialize.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
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.initialize = void 0;
|
|
27
|
-
const path = __importStar(require("node:path"));
|
|
28
|
-
const utils_1 = require("@grnsft/if-core/utils");
|
|
29
|
-
const logger_1 = require("../util/logger");
|
|
30
|
-
const log_memoize_1 = require("../util/log-memoize");
|
|
31
|
-
const plugin_storage_1 = require("../util/plugin-storage");
|
|
32
|
-
const config_1 = require("../config");
|
|
33
|
-
const { PluginInitializationError, MissingPluginMethodError, MissingPluginPathError, } = utils_1.ERRORS;
|
|
34
|
-
const { GITHUB_PATH, NATIVE_PLUGIN } = config_1.CONFIG;
|
|
35
|
-
const { MISSING_METHOD, MISSING_PATH, NOT_NATIVE_PLUGIN, INVALID_MODULE_PATH, LOADING_PLUGIN_FROM_PATH, INITIALIZING_PLUGIN, INITIALIZING_PLUGINS, } = config_1.STRINGS;
|
|
36
|
-
/**
|
|
37
|
-
* Imports module by given `path`.
|
|
38
|
-
*/
|
|
39
|
-
const importModuleFrom = async (path) => {
|
|
40
|
-
const module = await Promise.resolve(`${path}`).then(s => __importStar(require(s))).catch(error => {
|
|
41
|
-
throw new PluginInitializationError(INVALID_MODULE_PATH(path, error));
|
|
42
|
-
});
|
|
43
|
-
return module;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Imports `module` from given `path`, then checks if it's `ModelPluginInterface` extension.
|
|
47
|
-
*/
|
|
48
|
-
const importAndVerifyModule = async (method, path) => {
|
|
49
|
-
const pluginModule = await importModuleFrom(path);
|
|
50
|
-
return pluginModule[method];
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Checks if plugin is missing then rejects with error.
|
|
54
|
-
* Then checks if `path` is starting with github, then grabs the repository name.
|
|
55
|
-
* Imports module, then checks if it's a valid plugin.
|
|
56
|
-
*/
|
|
57
|
-
const handModule = (method, pluginPath) => {
|
|
58
|
-
console.debug(LOADING_PLUGIN_FROM_PATH(method, pluginPath));
|
|
59
|
-
if (pluginPath === 'builtin') {
|
|
60
|
-
pluginPath = path.normalize(`${__dirname}/../builtins`);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
if (pluginPath?.startsWith(GITHUB_PATH)) {
|
|
64
|
-
const parts = pluginPath.split('/');
|
|
65
|
-
pluginPath = parts[parts.length - 1];
|
|
66
|
-
}
|
|
67
|
-
if (!pluginPath.includes(NATIVE_PLUGIN)) {
|
|
68
|
-
(0, log_memoize_1.memoizedLog)(logger_1.logger.warn, NOT_NATIVE_PLUGIN(pluginPath));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return importAndVerifyModule(method, pluginPath);
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Initializes plugin with global config.
|
|
75
|
-
*/
|
|
76
|
-
const initPlugin = async (initPluginParams) => {
|
|
77
|
-
const { method, path, 'global-config': globalConfig } = initPluginParams;
|
|
78
|
-
console.debug(INITIALIZING_PLUGIN(method));
|
|
79
|
-
if (!method) {
|
|
80
|
-
throw new MissingPluginMethodError(MISSING_METHOD);
|
|
81
|
-
}
|
|
82
|
-
if (!path) {
|
|
83
|
-
throw new MissingPluginPathError(MISSING_PATH);
|
|
84
|
-
}
|
|
85
|
-
const plugin = await handModule(method, path);
|
|
86
|
-
return plugin(globalConfig);
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Registers all plugins from `manifest`.`initialize` property.
|
|
90
|
-
*/
|
|
91
|
-
const initialize = async (plugins) => {
|
|
92
|
-
console.debug(INITIALIZING_PLUGINS);
|
|
93
|
-
const storage = (0, plugin_storage_1.pluginStorage)();
|
|
94
|
-
for await (const pluginName of Object.keys(plugins)) {
|
|
95
|
-
const plugin = await initPlugin(plugins[pluginName]);
|
|
96
|
-
storage.set(pluginName, plugin);
|
|
97
|
-
}
|
|
98
|
-
return storage;
|
|
99
|
-
};
|
|
100
|
-
exports.initialize = initialize;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW5pdGlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUVsQyxpREFBNkM7QUFFN0MsMkNBQXNDO0FBQ3RDLHFEQUFnRDtBQUNoRCwyREFBcUQ7QUFFckQsc0NBQTBDO0FBTTFDLE1BQU0sRUFDSix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHNCQUFzQixHQUN2QixHQUFHLGNBQU0sQ0FBQztBQUVYLE1BQU0sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBQzVDLE1BQU0sRUFDSixjQUFjLEVBQ2QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQixvQkFBb0IsR0FDckIsR0FBRyxnQkFBTyxDQUFDO0FBRVo7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLG1CQUFPLElBQUksd0NBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlDLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLElBQVksRUFBRSxFQUFFO0lBQ25FLE1BQU0sWUFBWSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbEQsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBYyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTVELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtRQUM1QixVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsY0FBYyxDQUFDLENBQUM7S0FDekQ7U0FBTTtRQUNMLElBQUksVUFBVSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLElBQUEseUJBQVcsRUFBQyxlQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDekQ7S0FDRjtJQUVELE9BQU8scUJBQXFCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUN0QixnQkFBK0IsRUFDTCxFQUFFO0lBQzVCLE1BQU0sRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUMsR0FBRyxnQkFBZ0IsQ0FBQztJQUV2RSxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNwRDtJQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxNQUFNLElBQUksc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFOUMsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQzdCLE9BQXNCLEVBQ1csRUFBRTtJQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsSUFBQSw4QkFBYSxHQUFFLENBQUM7SUFFaEMsSUFBSSxLQUFLLEVBQUUsTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNqQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQWJXLFFBQUEsVUFBVSxjQWFyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuLi91dGlsL2xvZ2dlcic7XG5pbXBvcnQge21lbW9pemVkTG9nfSBmcm9tICcuLi91dGlsL2xvZy1tZW1vaXplJztcbmltcG9ydCB7cGx1Z2luU3RvcmFnZX0gZnJvbSAnLi4vdXRpbC9wbHVnaW4tc3RvcmFnZSc7XG5cbmltcG9ydCB7Q09ORklHLCBTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge1BsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vdHlwZXMvaW50ZXJmYWNlJztcbmltcG9ydCB7R2xvYmFsUGx1Z2lucywgUGx1Z2luT3B0aW9uc30gZnJvbSAnLi4vdHlwZXMvbWFuaWZlc3QnO1xuaW1wb3J0IHtQbHVnaW5TdG9yYWdlSW50ZXJmYWNlfSBmcm9tICcuLi90eXBlcy9wbHVnaW4tc3RvcmFnZSc7XG5cbmNvbnN0IHtcbiAgUGx1Z2luSW5pdGlhbGl6YXRpb25FcnJvcixcbiAgTWlzc2luZ1BsdWdpbk1ldGhvZEVycm9yLFxuICBNaXNzaW5nUGx1Z2luUGF0aEVycm9yLFxufSA9IEVSUk9SUztcblxuY29uc3Qge0dJVEhVQl9QQVRILCBOQVRJVkVfUExVR0lOfSA9IENPTkZJRztcbmNvbnN0IHtcbiAgTUlTU0lOR19NRVRIT0QsXG4gIE1JU1NJTkdfUEFUSCxcbiAgTk9UX05BVElWRV9QTFVHSU4sXG4gIElOVkFMSURfTU9EVUxFX1BBVEgsXG4gIExPQURJTkdfUExVR0lOX0ZST01fUEFUSCxcbiAgSU5JVElBTElaSU5HX1BMVUdJTixcbiAgSU5JVElBTElaSU5HX1BMVUdJTlMsXG59ID0gU1RSSU5HUztcblxuLyoqXG4gKiBJbXBvcnRzIG1vZHVsZSBieSBnaXZlbiBgcGF0aGAuXG4gKi9cbmNvbnN0IGltcG9ydE1vZHVsZUZyb20gPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChwYXRoKS5jYXRjaChlcnJvciA9PiB7XG4gICAgdGhyb3cgbmV3IFBsdWdpbkluaXRpYWxpemF0aW9uRXJyb3IoSU5WQUxJRF9NT0RVTEVfUEFUSChwYXRoLCBlcnJvcikpO1xuICB9KTtcblxuICByZXR1cm4gbW9kdWxlO1xufTtcblxuLyoqXG4gKiBJbXBvcnRzIGBtb2R1bGVgIGZyb20gZ2l2ZW4gYHBhdGhgLCB0aGVuIGNoZWNrcyBpZiBpdCdzIGBNb2RlbFBsdWdpbkludGVyZmFjZWAgZXh0ZW5zaW9uLlxuICovXG5jb25zdCBpbXBvcnRBbmRWZXJpZnlNb2R1bGUgPSBhc3luYyAobWV0aG9kOiBzdHJpbmcsIHBhdGg6IHN0cmluZykgPT4ge1xuICBjb25zdCBwbHVnaW5Nb2R1bGUgPSBhd2FpdCBpbXBvcnRNb2R1bGVGcm9tKHBhdGgpO1xuXG4gIHJldHVybiBwbHVnaW5Nb2R1bGVbbWV0aG9kXTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHBsdWdpbiBpcyBtaXNzaW5nIHRoZW4gcmVqZWN0cyB3aXRoIGVycm9yLlxuICogVGhlbiBjaGVja3MgaWYgYHBhdGhgIGlzIHN0YXJ0aW5nIHdpdGggZ2l0aHViLCB0aGVuIGdyYWJzIHRoZSByZXBvc2l0b3J5IG5hbWUuXG4gKiBJbXBvcnRzIG1vZHVsZSwgdGhlbiBjaGVja3MgaWYgaXQncyBhIHZhbGlkIHBsdWdpbi5cbiAqL1xuY29uc3QgaGFuZE1vZHVsZSA9IChtZXRob2Q6IHN0cmluZywgcGx1Z2luUGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUuZGVidWcoTE9BRElOR19QTFVHSU5fRlJPTV9QQVRIKG1ldGhvZCwgcGx1Z2luUGF0aCkpO1xuXG4gIGlmIChwbHVnaW5QYXRoID09PSAnYnVpbHRpbicpIHtcbiAgICBwbHVnaW5QYXRoID0gcGF0aC5ub3JtYWxpemUoYCR7X19kaXJuYW1lfS8uLi9idWlsdGluc2ApO1xuICB9IGVsc2Uge1xuICAgIGlmIChwbHVnaW5QYXRoPy5zdGFydHNXaXRoKEdJVEhVQl9QQVRIKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBwbHVnaW5QYXRoLnNwbGl0KCcvJyk7XG4gICAgICBwbHVnaW5QYXRoID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgaWYgKCFwbHVnaW5QYXRoLmluY2x1ZGVzKE5BVElWRV9QTFVHSU4pKSB7XG4gICAgICBtZW1vaXplZExvZyhsb2dnZXIud2FybiwgTk9UX05BVElWRV9QTFVHSU4ocGx1Z2luUGF0aCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbXBvcnRBbmRWZXJpZnlNb2R1bGUobWV0aG9kLCBwbHVnaW5QYXRoKTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgcGx1Z2luIHdpdGggZ2xvYmFsIGNvbmZpZy5cbiAqL1xuY29uc3QgaW5pdFBsdWdpbiA9IGFzeW5jIChcbiAgaW5pdFBsdWdpblBhcmFtczogUGx1Z2luT3B0aW9uc1xuKTogUHJvbWlzZTxQbHVnaW5JbnRlcmZhY2U+ID0+IHtcbiAgY29uc3Qge21ldGhvZCwgcGF0aCwgJ2dsb2JhbC1jb25maWcnOiBnbG9iYWxDb25maWd9ID0gaW5pdFBsdWdpblBhcmFtcztcblxuICBjb25zb2xlLmRlYnVnKElOSVRJQUxJWklOR19QTFVHSU4obWV0aG9kKSk7XG5cbiAgaWYgKCFtZXRob2QpIHtcbiAgICB0aHJvdyBuZXcgTWlzc2luZ1BsdWdpbk1ldGhvZEVycm9yKE1JU1NJTkdfTUVUSE9EKTtcbiAgfVxuXG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBNaXNzaW5nUGx1Z2luUGF0aEVycm9yKE1JU1NJTkdfUEFUSCk7XG4gIH1cblxuICBjb25zdCBwbHVnaW4gPSBhd2FpdCBoYW5kTW9kdWxlKG1ldGhvZCwgcGF0aCk7XG5cbiAgcmV0dXJuIHBsdWdpbihnbG9iYWxDb25maWcpO1xufTtcblxuLyoqXG4gKiBSZWdpc3RlcnMgYWxsIHBsdWdpbnMgZnJvbSBgbWFuaWZlc3RgLmBpbml0aWFsaXplYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRpYWxpemUgPSBhc3luYyAoXG4gIHBsdWdpbnM6IEdsb2JhbFBsdWdpbnNcbik6IFByb21pc2U8UGx1Z2luU3RvcmFnZUludGVyZmFjZT4gPT4ge1xuICBjb25zb2xlLmRlYnVnKElOSVRJQUxJWklOR19QTFVHSU5TKTtcblxuICBjb25zdCBzdG9yYWdlID0gcGx1Z2luU3RvcmFnZSgpO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcGx1Z2luTmFtZSBvZiBPYmplY3Qua2V5cyhwbHVnaW5zKSkge1xuICAgIGNvbnN0IHBsdWdpbiA9IGF3YWl0IGluaXRQbHVnaW4ocGx1Z2luc1twbHVnaW5OYW1lXSk7XG4gICAgc3RvcmFnZS5zZXQocGx1Z2luTmFtZSwgcGx1Z2luKTtcbiAgfVxuXG4gIHJldHVybiBzdG9yYWdlO1xufTtcbiJdfQ==
|