@grnsft/if 1.0.1 → 1.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +10 -0
- package/CONTAINER.md +148 -0
- package/Dockerfile +73 -0
- package/HELM_CHART.md +96 -0
- package/README.md +56 -0
- package/bin/docker-entrypoint.sh +15 -0
- package/build/common/types/manifest.d.ts +1 -0
- package/build/common/types/manifest.js +1 -1
- package/build/common/util/debug-logger.js +4 -18
- package/build/common/util/helpers.d.ts +3 -2
- package/build/common/util/helpers.js +6 -18
- package/build/common/util/storage.d.ts +9 -0
- package/build/common/util/storage.js +24 -0
- package/build/if-api/config/config.d.ts +9 -0
- package/build/if-api/config/config.js +58 -0
- package/build/if-api/config/index.d.ts +2 -0
- package/build/if-api/config/index.js +8 -0
- package/build/if-api/config/strings.d.ts +16 -0
- package/build/if-api/config/strings.js +20 -0
- package/build/if-api/index.d.ts +2 -0
- package/build/if-api/index.js +268 -0
- package/build/if-api/types/process-args.d.ts +18 -0
- package/build/if-api/types/process-args.js +3 -0
- package/build/if-api/util/args.d.ts +5 -0
- package/build/if-api/util/args.js +42 -0
- package/build/if-check/index.js +1 -11
- package/build/if-check/util/npm.d.ts +1 -1
- package/build/if-check/util/npm.js +31 -74
- package/build/if-metadata-check/config/config.d.ts +5 -0
- package/build/if-metadata-check/config/config.js +26 -0
- package/build/if-metadata-check/config/strings.d.ts +5 -0
- package/build/if-metadata-check/config/strings.js +9 -0
- package/build/if-metadata-check/index.d.ts +2 -0
- package/build/if-metadata-check/index.js +30 -0
- package/build/if-metadata-check/types/plugin.d.ts +7 -0
- package/build/if-metadata-check/types/plugin.js +3 -0
- package/build/if-metadata-check/types/process-args.d.ts +5 -0
- package/build/if-metadata-check/types/process-args.js +3 -0
- package/build/if-metadata-check/util/args.d.ts +57 -0
- package/build/if-metadata-check/util/args.js +29 -0
- package/build/if-metadata-check/util/metadata-checker.d.ts +44 -0
- package/build/if-metadata-check/util/metadata-checker.js +99 -0
- package/build/if-run/builtins/divide/index.js +2 -2
- package/build/if-run/builtins/sci/index.js +2 -2
- package/build/if-run/config/strings.js +3 -3
- package/build/if-run/index.js +1 -1
- package/build/if-run/lib/aggregate.d.ts +2 -2
- package/build/if-run/lib/aggregate.js +5 -19
- package/build/if-run/lib/compute.d.ts +1 -1
- package/build/if-run/lib/compute.js +10 -9
- package/build/if-run/lib/environment.d.ts +5 -1
- package/build/if-run/lib/environment.js +30 -29
- package/build/if-run/lib/initialize.d.ts +12 -0
- package/build/if-run/lib/initialize.js +37 -3
- package/build/if-run/lib/regroup.d.ts +3 -2
- package/build/if-run/lib/regroup.js +13 -9
- package/build/if-run/types/compute.d.ts +1 -1
- package/build/if-run/types/compute.js +1 -1
- package/build/if-run/util/os-checker.js +14 -10
- package/helm-chart/.helmignore +23 -0
- package/helm-chart/Chart.yaml +24 -0
- package/helm-chart/templates/NOTES.txt +22 -0
- package/helm-chart/templates/_helpers.tpl +62 -0
- package/helm-chart/templates/additionalPlugins.yaml +13 -0
- package/helm-chart/templates/deployment.yaml +144 -0
- package/helm-chart/templates/disabledPlugins.yaml +11 -0
- package/helm-chart/templates/env-configmap.yaml +10 -0
- package/helm-chart/templates/env-secret.yaml +10 -0
- package/helm-chart/templates/hpa.yaml +32 -0
- package/helm-chart/templates/ingress.yaml +43 -0
- package/helm-chart/templates/npmrc.yaml +11 -0
- package/helm-chart/templates/service.yaml +24 -0
- package/helm-chart/templates/serviceaccount.yaml +13 -0
- package/helm-chart/templates/tests/test-connection.yaml +15 -0
- package/helm-chart/values.yaml +175 -0
- package/jest.config.js +6 -2
- package/manifests/examples/bugs/aggregation-error-wrong-metric.yml +173 -0
- package/manifests/examples/bugs/input-error-missing-duration.yml +25 -0
- package/manifests/examples/bugs/mock-observations-failure-duration-is-zero.yml +33 -0
- package/manifests/examples/bugs/pipeline-error-naming-mismatch.yml +32 -0
- package/manifests/examples/bugs/pipeline-error-uninitialized-plugin.yml +33 -0
- package/manifests/examples/bugs/pipeline-ordering-error.yml +91 -0
- package/manifests/examples/builtins/divide/success-denominator-equal-zero.yml +36 -0
- package/manifests/examples/builtins/mock-observations/failure-invalid-config-cpu-range.yml +0 -1
- package/manifests/examples/builtins/mock-observations/failure-invalid-memory-utilization-range.yml +0 -1
- package/manifests/examples/builtins/mock-observations/failure-missing-timestamp-from-param.yml +0 -1
- package/manifests/examples/builtins/mock-observations/success.yml +0 -1
- package/manifests/examples/builtins/sci/failure-invalid-config-value.yml +0 -1
- package/manifests/examples/builtins/sci/failure-missing-input-param.yml +0 -1
- package/manifests/examples/builtins/sci/success.yml +0 -1
- package/manifests/examples/builtins/sci-embodied/failure-invalid-default-emission-value.yml +22 -0
- package/manifests/examples/builtins/time-sync/failure-missing-config.yml +0 -2
- package/manifests/examples/builtins/time-sync/success.yml +0 -2
- package/manifests/examples/features/aggregate-failure-invalid-metrics.yml +50 -0
- package/manifests/examples/features/aggregate-failure-missing-metric-in-inputs.yml +50 -0
- package/manifests/examples/features/aggregate-horizontal.yml +58 -0
- package/manifests/examples/features/aggregate-vertical.yml +58 -0
- package/manifests/examples/features/aggregate.yml +58 -0
- package/manifests/examples/pipelines/cloud-metadata-divide.yml +36 -0
- package/manifests/examples/pipelines/pipeline-with-mocks.yml +0 -1
- package/manifests/examples/pipelines/scenario-5.yml +0 -1
- package/manifests/outputs/bugs/mock-observations-failure-duration-is-zero.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-invalid-config-cpu-range.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-invalid-memory-utilization-range.yaml +0 -1
- package/manifests/outputs/builtins/mock-observations/failure-missing-timestamp-from-param.yaml +0 -1
- package/manifests/outputs/builtins/sci/failure-invalid-config-value.yaml +0 -1
- package/manifests/outputs/builtins/sci/failure-missing-input-param.yaml +0 -1
- package/manifests/outputs/builtins/time-sync/failure-missing-config.yaml +0 -2
- package/manifests/outputs/features/regroup/success.yaml +72 -0
- package/manifests/outputs/pipelines/pipeline-with-aggregate.yaml +1291 -0
- package/manifests/outputs/pipelines/scenario-3.yaml +126 -0
- package/openapi.yaml +424 -0
- package/package.json +17 -12
- package/with-plugins/Dockerfile +59 -0
- package/.env +0 -5
- package/coverage/clover.xml +0 -2062
- package/coverage/coverage-final.json +0 -58
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/builtins/coefficient/index.ts.html +0 -298
- package/coverage/lcov-report/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/builtins/csv-lookup/index.ts.html +0 -826
- package/coverage/lcov-report/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/builtins/divide/index.ts.html +0 -358
- package/coverage/lcov-report/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/builtins/exponent/index.ts.html +0 -361
- package/coverage/lcov-report/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/builtins/index.html +0 -206
- package/coverage/lcov-report/builtins/index.ts.html +0 -130
- package/coverage/lcov-report/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/builtins/interpolation/index.ts.html +0 -676
- package/coverage/lcov-report/builtins/interpolation/types.ts.html +0 -100
- package/coverage/lcov-report/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/builtins/mock-observations/index.ts.html +0 -619
- package/coverage/lcov-report/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/builtins/multiply/index.ts.html +0 -343
- package/coverage/lcov-report/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/builtins/regex/index.ts.html +0 -373
- package/coverage/lcov-report/builtins/sci/config.ts.html +0 -205
- package/coverage/lcov-report/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/builtins/sci/index.ts.html +0 -325
- package/coverage/lcov-report/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/builtins/sci-embodied/index.ts.html +0 -478
- package/coverage/lcov-report/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/builtins/shell/index.ts.html +0 -280
- package/coverage/lcov-report/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/builtins/subtract/index.ts.html +0 -379
- package/coverage/lcov-report/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/builtins/sum/index.ts.html +0 -334
- package/coverage/lcov-report/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/common/config/index.html +0 -131
- package/coverage/lcov-report/common/config/index.ts.html +0 -88
- package/coverage/lcov-report/common/config/strings.ts.html +0 -121
- package/coverage/lcov-report/common/lib/index.html +0 -116
- package/coverage/lcov-report/common/lib/load.ts.html +0 -139
- package/coverage/lcov-report/common/util/debug-logger.ts.html +0 -514
- package/coverage/lcov-report/common/util/fs.ts.html +0 -289
- package/coverage/lcov-report/common/util/helpers.ts.html +0 -355
- package/coverage/lcov-report/common/util/index.html +0 -191
- package/coverage/lcov-report/common/util/logger.ts.html +0 -151
- package/coverage/lcov-report/common/util/validations.ts.html +0 -628
- package/coverage/lcov-report/common/util/yaml.ts.html +0 -226
- package/coverage/lcov-report/config/config.ts.html +0 -463
- package/coverage/lcov-report/config/index.html +0 -161
- package/coverage/lcov-report/config/index.ts.html +0 -94
- package/coverage/lcov-report/config/params.ts.html +0 -697
- package/coverage/lcov-report/config/strings.ts.html +0 -490
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/if-check/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-check/config/index.html +0 -146
- package/coverage/lcov-report/if-check/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-check/config/strings.ts.html +0 -142
- package/coverage/lcov-report/if-check/util/args.ts.html +0 -310
- package/coverage/lcov-report/if-check/util/helpers.ts.html +0 -136
- package/coverage/lcov-report/if-check/util/index.html +0 -146
- package/coverage/lcov-report/if-check/util/npm.ts.html +0 -376
- package/coverage/lcov-report/if-csv/util/args.ts.html +0 -256
- package/coverage/lcov-report/if-csv/util/helpers.ts.html +0 -346
- package/coverage/lcov-report/if-csv/util/index.html +0 -131
- package/coverage/lcov-report/if-diff/config/config.ts.html +0 -184
- package/coverage/lcov-report/if-diff/config/index.html +0 -146
- package/coverage/lcov-report/if-diff/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-diff/config/strings.ts.html +0 -100
- package/coverage/lcov-report/if-diff/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/if-diff/lib/index.html +0 -131
- package/coverage/lcov-report/if-diff/lib/load.ts.html +0 -199
- package/coverage/lcov-report/if-diff/util/args.ts.html +0 -274
- package/coverage/lcov-report/if-diff/util/helpers.ts.html +0 -337
- package/coverage/lcov-report/if-diff/util/index.html +0 -131
- package/coverage/lcov-report/if-env/config/config.ts.html +0 -211
- package/coverage/lcov-report/if-env/config/index.html +0 -146
- package/coverage/lcov-report/if-env/config/index.ts.html +0 -91
- package/coverage/lcov-report/if-env/config/strings.ts.html +0 -109
- package/coverage/lcov-report/if-env/util/args.ts.html +0 -256
- package/coverage/lcov-report/if-env/util/index.html +0 -131
- package/coverage/lcov-report/if-env/util/npm.ts.html +0 -526
- package/coverage/lcov-report/if-merge/util/args.ts.html +0 -301
- package/coverage/lcov-report/if-merge/util/helpers.ts.html +0 -313
- package/coverage/lcov-report/if-merge/util/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/coefficient/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/coefficient/index.ts.html +0 -286
- package/coverage/lcov-report/if-run/builtins/copy-param/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/copy-param/index.ts.html +0 -301
- package/coverage/lcov-report/if-run/builtins/csv-import/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/csv-import/index.ts.html +0 -364
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/csv-lookup/index.ts.html +0 -478
- package/coverage/lcov-report/if-run/builtins/divide/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/divide/index.ts.html +0 -346
- package/coverage/lcov-report/if-run/builtins/exponent/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/exponent/index.ts.html +0 -319
- package/coverage/lcov-report/if-run/builtins/export-csv-raw.ts.html +0 -553
- package/coverage/lcov-report/if-run/builtins/export-csv.ts.html +0 -436
- package/coverage/lcov-report/if-run/builtins/export-log.ts.html +0 -148
- package/coverage/lcov-report/if-run/builtins/export-yaml.ts.html +0 -193
- package/coverage/lcov-report/if-run/builtins/group-by.ts.html +0 -370
- package/coverage/lcov-report/if-run/builtins/index.html +0 -146
- package/coverage/lcov-report/if-run/builtins/index.ts.html +0 -136
- package/coverage/lcov-report/if-run/builtins/interpolation/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/interpolation/index.ts.html +0 -643
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/common-generator.ts.html +0 -184
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/mock-observations/helpers/rand-int-generator.ts.html +0 -289
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/mock-observations/index.ts.html +0 -607
- package/coverage/lcov-report/if-run/builtins/multiply/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/multiply/index.ts.html +0 -289
- package/coverage/lcov-report/if-run/builtins/regex/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/regex/index.ts.html +0 -298
- package/coverage/lcov-report/if-run/builtins/sci/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci/index.ts.html +0 -418
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sci-embodied/index.ts.html +0 -664
- package/coverage/lcov-report/if-run/builtins/shell/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/shell/index.ts.html +0 -256
- package/coverage/lcov-report/if-run/builtins/subtract/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/subtract/index.ts.html +0 -298
- package/coverage/lcov-report/if-run/builtins/sum/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/sum/index.ts.html +0 -238
- package/coverage/lcov-report/if-run/builtins/time-converter/config.ts.html +0 -205
- package/coverage/lcov-report/if-run/builtins/time-converter/index.html +0 -131
- package/coverage/lcov-report/if-run/builtins/time-converter/index.ts.html +0 -328
- package/coverage/lcov-report/if-run/builtins/time-sync/index.html +0 -116
- package/coverage/lcov-report/if-run/builtins/time-sync/index.ts.html +0 -1804
- package/coverage/lcov-report/if-run/builtins/time-sync.ts.html +0 -1462
- package/coverage/lcov-report/if-run/builtins/util/csv-helpers.ts.html +0 -376
- package/coverage/lcov-report/if-run/builtins/util/index.html +0 -116
- package/coverage/lcov-report/if-run/config/config.ts.html +0 -271
- package/coverage/lcov-report/if-run/config/index.html +0 -161
- package/coverage/lcov-report/if-run/config/index.ts.html +0 -94
- package/coverage/lcov-report/if-run/config/params.ts.html +0 -679
- package/coverage/lcov-report/if-run/config/strings.ts.html +0 -460
- package/coverage/lcov-report/if-run/lib/aggregate.ts.html +0 -577
- package/coverage/lcov-report/if-run/lib/compute.ts.html +0 -733
- package/coverage/lcov-report/if-run/lib/environment.ts.html +0 -373
- package/coverage/lcov-report/if-run/lib/exhaust.ts.html +0 -193
- package/coverage/lcov-report/if-run/lib/explain.ts.html +0 -484
- package/coverage/lcov-report/if-run/lib/index.html +0 -206
- package/coverage/lcov-report/if-run/lib/initialize.ts.html +0 -490
- package/coverage/lcov-report/if-run/lib/parameterize.ts.html +0 -322
- package/coverage/lcov-report/if-run/lib/regroup.ts.html +0 -349
- package/coverage/lcov-report/if-run/lib/time-sync.ts.html +0 -1510
- package/coverage/lcov-report/if-run/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/if-run/types/index.html +0 -146
- package/coverage/lcov-report/if-run/types/interface.ts.html +0 -112
- package/coverage/lcov-report/if-run/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/if-run/util/aggregation-helper.ts.html +0 -277
- package/coverage/lcov-report/if-run/util/args.ts.html +0 -325
- package/coverage/lcov-report/if-run/util/helpers.ts.html +0 -208
- package/coverage/lcov-report/if-run/util/index.html +0 -191
- package/coverage/lcov-report/if-run/util/json.ts.html +0 -115
- package/coverage/lcov-report/if-run/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/if-run/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/if-run/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/index.html +0 -551
- package/coverage/lcov-report/lib/aggregate.ts.html +0 -358
- package/coverage/lcov-report/lib/compare.ts.html +0 -286
- package/coverage/lcov-report/lib/compute.ts.html +0 -436
- package/coverage/lcov-report/lib/environment.ts.html +0 -376
- package/coverage/lcov-report/lib/exhaust.ts.html +0 -289
- package/coverage/lcov-report/lib/index.html +0 -221
- package/coverage/lcov-report/lib/initialize.ts.html +0 -430
- package/coverage/lcov-report/lib/load.ts.html +0 -268
- package/coverage/lcov-report/lib/parameterize.ts.html +0 -316
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/types/aggregation.ts.html +0 -94
- package/coverage/lcov-report/types/index.html +0 -146
- package/coverage/lcov-report/types/interface.ts.html +0 -112
- package/coverage/lcov-report/types/parameters.ts.html +0 -106
- package/coverage/lcov-report/util/aggregation-helper.ts.html +0 -289
- package/coverage/lcov-report/util/args.ts.html +0 -649
- package/coverage/lcov-report/util/debug-logger.ts.html +0 -481
- package/coverage/lcov-report/util/errors.ts.html +0 -232
- package/coverage/lcov-report/util/fs.ts.html +0 -124
- package/coverage/lcov-report/util/helpers.ts.html +0 -895
- package/coverage/lcov-report/util/index.html +0 -296
- package/coverage/lcov-report/util/json.ts.html +0 -115
- package/coverage/lcov-report/util/log-memoize.ts.html +0 -145
- package/coverage/lcov-report/util/logger.ts.html +0 -151
- package/coverage/lcov-report/util/npm.ts.html +0 -499
- package/coverage/lcov-report/util/os-checker.ts.html +0 -421
- package/coverage/lcov-report/util/plugin-storage.ts.html +0 -202
- package/coverage/lcov-report/util/validations.ts.html +0 -544
- package/coverage/lcov-report/util/yaml.ts.html +0 -193
- package/coverage/lcov.info +0 -3548
- package/manifests/outputs/builtins/interpolation/interpolation.yaml +0 -81
- package/manifests/outputs/features/failure-invalid-regroup.yaml +0 -87
- package/manifests/outputs/features/failure-missing-cloud-instance-type.yaml +0 -86
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.initialize = void 0;
|
|
26
|
+
exports.initialize = exports.setDisabledPlugins = exports.setExternalPluginWarning = void 0;
|
|
27
27
|
const path = __importStar(require("node:path"));
|
|
28
28
|
const utils_1 = require("@grnsft/if-core/utils");
|
|
29
29
|
const aggregate_1 = require("./aggregate");
|
|
@@ -34,6 +34,32 @@ const config_1 = require("../config");
|
|
|
34
34
|
const { PluginInitializationError, MissingPluginMethodError, MissingPluginPathError, } = utils_1.ERRORS;
|
|
35
35
|
const { GITHUB_PATH, NATIVE_PLUGIN } = config_1.CONFIG;
|
|
36
36
|
const { MISSING_METHOD, MISSING_PATH, NOT_NATIVE_PLUGIN, INVALID_MODULE_PATH, LOADING_PLUGIN_FROM_PATH, INITIALIZING_PLUGIN, INITIALIZING_PLUGINS, } = config_1.STRINGS;
|
|
37
|
+
/**
|
|
38
|
+
* Whether to output warnings for external plugins
|
|
39
|
+
*/
|
|
40
|
+
let enableExternalPluginWarning = true;
|
|
41
|
+
/**
|
|
42
|
+
* Set whether to output warnings for external plugins.
|
|
43
|
+
* @param enable true if warnings for external plugins should be output
|
|
44
|
+
*/
|
|
45
|
+
const setExternalPluginWarning = (enable) => {
|
|
46
|
+
enableExternalPluginWarning = enable;
|
|
47
|
+
};
|
|
48
|
+
exports.setExternalPluginWarning = setExternalPluginWarning;
|
|
49
|
+
/**
|
|
50
|
+
* List of plugins to disable
|
|
51
|
+
*/
|
|
52
|
+
let disabledPlugins = new Set();
|
|
53
|
+
/**
|
|
54
|
+
* Set plugins to be disabled.
|
|
55
|
+
* Each element is specified in the format `plugin-path:method-name`.
|
|
56
|
+
* Built-in plugins are specified as `builtin:method-name`.
|
|
57
|
+
* @param pluginsToBeDisabled List of plugins to be disabled
|
|
58
|
+
*/
|
|
59
|
+
const setDisabledPlugins = (pluginsToBeDisabled) => {
|
|
60
|
+
disabledPlugins = pluginsToBeDisabled;
|
|
61
|
+
};
|
|
62
|
+
exports.setDisabledPlugins = setDisabledPlugins;
|
|
37
63
|
/**
|
|
38
64
|
* Imports module by given `path`.
|
|
39
65
|
*/
|
|
@@ -58,6 +84,9 @@ const importAndVerifyModule = async (method, path) => {
|
|
|
58
84
|
const handModule = (method, pluginPath) => {
|
|
59
85
|
console.debug(LOADING_PLUGIN_FROM_PATH(method, pluginPath), '\n');
|
|
60
86
|
if (pluginPath === 'builtin') {
|
|
87
|
+
if (disabledPlugins.has('builtin:' + method)) {
|
|
88
|
+
throw new PluginInitializationError(INVALID_MODULE_PATH(`builtin:${method}`));
|
|
89
|
+
}
|
|
61
90
|
pluginPath = path.normalize(`${__dirname}/../builtins`);
|
|
62
91
|
}
|
|
63
92
|
else {
|
|
@@ -65,7 +94,12 @@ const handModule = (method, pluginPath) => {
|
|
|
65
94
|
const parts = pluginPath.split('/');
|
|
66
95
|
pluginPath = parts[parts.length - 1];
|
|
67
96
|
}
|
|
68
|
-
|
|
97
|
+
pluginPath = path.normalize(pluginPath);
|
|
98
|
+
if (pluginPath.startsWith('../') ||
|
|
99
|
+
disabledPlugins.has(`${pluginPath}:${method}`)) {
|
|
100
|
+
throw new PluginInitializationError(INVALID_MODULE_PATH(`${pluginPath}:${method}`));
|
|
101
|
+
}
|
|
102
|
+
if (enableExternalPluginWarning && !pluginPath.includes(NATIVE_PLUGIN)) {
|
|
69
103
|
(0, log_memoize_1.memoizedLog)(logger_1.logger.warn, NOT_NATIVE_PLUGIN(pluginPath));
|
|
70
104
|
}
|
|
71
105
|
}
|
|
@@ -110,4 +144,4 @@ const initialize = async (context) => {
|
|
|
110
144
|
return storage;
|
|
111
145
|
};
|
|
112
146
|
exports.initialize = initialize;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL2luaXRpYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFFbEMsaURBQTZDO0FBRzdDLDJDQUFvRDtBQUVwRCxxREFBZ0Q7QUFDaEQscURBQWdEO0FBQ2hELDJEQUFxRDtBQUVyRCxzQ0FBMEM7QUFLMUMsTUFBTSxFQUNKLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3ZCLEdBQUcsY0FBTSxDQUFDO0FBRVgsTUFBTSxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUMsTUFBTSxFQUNKLGNBQWMsRUFDZCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixHQUFHLGdCQUFPLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBRSxFQUFFO0lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQU8sSUFBSSx3Q0FBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFBRSxNQUFjLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDbkUsTUFBTSxZQUFZLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QixDQUFD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QUNqQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQXZCVyxRQUFBLFVBQVUsY0F1QnJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcbmltcG9ydCB7UGx1Z2luSW50ZXJmYWNlfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdHlwZXMnO1xuXG5pbXBvcnQge3N0b3JlQWdncmVnYXRpb25NZXRyaWNzfSBmcm9tICcuL2FnZ3JlZ2F0ZSc7XG5cbmltcG9ydCB7bG9nZ2VyfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9sb2dnZXInO1xuaW1wb3J0IHttZW1vaXplZExvZ30gZnJvbSAnLi4vdXRpbC9sb2ctbWVtb2l6ZSc7XG5pbXBvcnQge3BsdWdpblN0b3JhZ2V9IGZyb20gJy4uL3V0aWwvcGx1Z2luLXN0b3JhZ2UnO1xuXG5pbXBvcnQge0NPTkZJRywgU1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtDb250ZXh0LCBQbHVnaW5PcHRpb25zfSBmcm9tICcuLi8uLi9jb21tb24vdHlwZXMvbWFuaWZlc3QnO1xuaW1wb3J0IHtQbHVnaW5TdG9yYWdlSW50ZXJmYWNlfSBmcm9tICcuLi90eXBlcy9wbHVnaW4tc3RvcmFnZSc7XG5cbmNvbnN0IHtcbiAgUGx1Z2luSW5pdGlhbGl6YXRpb25FcnJvcixcbiAgTWlzc2luZ1BsdWdpbk1ldGhvZEVycm9yLFxuICBNaXNzaW5nUGx1Z2luUGF0aEVycm9yLFxufSA9IEVSUk9SUztcblxuY29uc3Qge0dJVEhVQl9QQVRILCBOQVRJVkVfUExVR0lOfSA9IENPTkZJRztcbmNvbnN0IHtcbiAgTUlTU0lOR19NRVRIT0QsXG4gIE1JU1NJTkdfUEFUSCxcbiAgTk9UX05BVElWRV9QTFVHSU4sXG4gIElOVkFMSURfTU9EVUxFX1BBVEgsXG4gIExPQURJTkdfUExVR0lOX0ZST01fUEFUSCxcbiAgSU5JVElBTElaSU5HX1BMVUdJTixcbiAgSU5JVElBTElaSU5HX1BMVUdJTlMsXG59ID0gU1RSSU5HUztcblxuLyoqXG4gKiBJbXBvcnRzIG1vZHVsZSBieSBnaXZlbiBgcGF0aGAuXG4gKi9cbmNvbnN0IGltcG9ydE1vZHVsZUZyb20gPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChwYXRoKS5jYXRjaChlcnJvciA9PiB7XG4gICAgdGhyb3cgbmV3IFBsdWdpbkluaXRpYWxpemF0aW9uRXJyb3IoSU5WQUxJRF9NT0RVTEVfUEFUSChwYXRoLCBlcnJvcikpO1xuICB9KTtcblxuICByZXR1cm4gbW9kdWxlO1xufTtcblxuLyoqXG4gKiBJbXBvcnRzIGBtb2R1bGVgIGZyb20gZ2l2ZW4gYHBhdGhgIGFuZCByZXR1cm5zIHJlcXVlc3RlZCBgbWV0aG9kYC5cbiAqL1xuY29uc3QgaW1wb3J0QW5kVmVyaWZ5TW9kdWxlID0gYXN5bmMgKG1ldGhvZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgcGx1Z2luTW9kdWxlID0gYXdhaXQgaW1wb3J0TW9kdWxlRnJvbShwYXRoKTtcblxuICByZXR1cm4gcGx1Z2luTW9kdWxlW21ldGhvZF07XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBwbHVnaW4gaXMgbWlzc2luZyB0aGVuIHJlamVjdHMgd2l0aCBlcnJvci5cbiAqIFRoZW4gY2hlY2tzIGlmIGBwYXRoYCBpcyBzdGFydGluZyB3aXRoIGdpdGh1YiwgdGhlbiBncmFicyB0aGUgcmVwb3NpdG9yeSBuYW1lLlxuICogSW1wb3J0cyBtb2R1bGUsIHRoZW4gY2hlY2tzIGlmIGl0J3MgYSB2YWxpZCBwbHVnaW4uXG4gKi9cbmNvbnN0IGhhbmRNb2R1bGUgPSAobWV0aG9kOiBzdHJpbmcsIHBsdWdpblBhdGg6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmRlYnVnKExPQURJTkdfUExVR0lOX0ZST01fUEFUSChtZXRob2QsIHBsdWdpblBhdGgpLCAnXFxuJyk7XG5cbiAgaWYgKHBsdWdpblBhdGggPT09ICdidWlsdGluJykge1xuICAgIHBsdWdpblBhdGggPSBwYXRoLm5vcm1hbGl6ZShgJHtfX2Rpcm5hbWV9Ly4uL2J1aWx0aW5zYCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHBsdWdpblBhdGg/LnN0YXJ0c1dpdGgoR0lUSFVCX1BBVEgpKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IHBsdWdpblBhdGguc3BsaXQoJy8nKTtcbiAgICAgIHBsdWdpblBhdGggPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBpZiAoIXBsdWdpblBhdGguaW5jbHVkZXMoTkFUSVZFX1BMVUdJTikpIHtcbiAgICAgIG1lbW9pemVkTG9nKGxvZ2dlci53YXJuLCBOT1RfTkFUSVZFX1BMVUdJTihwbHVnaW5QYXRoKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGltcG9ydEFuZFZlcmlmeU1vZHVsZShtZXRob2QsIHBsdWdpblBhdGgpO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBwbHVnaW4gd2l0aCBjb25maWcuXG4gKi9cbmNvbnN0IGluaXRQbHVnaW4gPSBhc3luYyAoXG4gIGluaXRQbHVnaW5QYXJhbXM6IFBsdWdpbk9wdGlvbnNcbik6IFByb21pc2U8UGx1Z2luSW50ZXJmYWNlPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBtZXRob2QsXG4gICAgcGF0aCxcbiAgICBtYXBwaW5nLFxuICAgIGNvbmZpZyxcbiAgICAncGFyYW1ldGVyLW1ldGFkYXRhJzogcGFyYW1ldGVyTWV0YWRhdGEsXG4gIH0gPSBpbml0UGx1Z2luUGFyYW1zITtcblxuICBpZiAoIW1ldGhvZCkge1xuICAgIHRocm93IG5ldyBNaXNzaW5nUGx1Z2luTWV0aG9kRXJyb3IoTUlTU0lOR19NRVRIT0QpO1xuICB9XG5cbiAgaWYgKCFwYXRoKSB7XG4gICAgdGhyb3cgbmV3IE1pc3NpbmdQbHVnaW5QYXRoRXJyb3IoTUlTU0lOR19QQVRIKTtcbiAgfVxuXG4gIGNvbnN0IHBsdWdpbiA9IGF3YWl0IGhhbmRNb2R1bGUobWV0aG9kLCBwYXRoKTtcblxuICByZXR1cm4gcGx1Z2luKGNvbmZpZywgcGFyYW1ldGVyTWV0YWRhdGEsIG1hcHBpbmcpO1xufTtcblxuLyoqXG4gKiBSZWdpc3RlcnMgYWxsIHBsdWdpbnMgZnJvbSBgbWFuaWZlc3RgLmBpbml0aWFsaXplYCBwcm9wZXJ0eS5cbiAqIDEuIEluaXRhbGl6ZXMgcGx1Z2luIHN0b3JhZ2UuXG4gKiAyLiBJdGVyYXRlcyBvdmVyIHBsdWdpbiBuYW1lcyBhcnJheS5cbiAqIDMuIFdoaWxlIGl0ZXJhdGlvbiwgaW5pdGFsaXplcyBjdXJyZW50IHBsdWdpbiwgZ2F0aGVycyBpdCdzIHBhcmFtZXRlcnMgKGlucHV0L291dHB1dCkuXG4gKiAgICBUaGVuIHN0b3JlcyB0aGUgYWdncmVnYXRpb24gbWV0cmljcyBmb3IgZWFjaCBwYXJhbWV0ZXIgdG8gb3ZlcnJpZGUgc3R1YiB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBpbml0aWFsaXplID0gYXN5bmMgKFxuICBjb250ZXh0OiBDb250ZXh0XG4pOiBQcm9taXNlPFBsdWdpblN0b3JhZ2VJbnRlcmZhY2U+ID0+IHtcbiAgY29uc29sZS5kZWJ1ZyhJTklUSUFMSVpJTkdfUExVR0lOUywgJ1xcbicpO1xuICBjb25zdCB7cGx1Z2luc30gPSBjb250ZXh0LmluaXRpYWxpemU7XG4gIGNvbnN0IHN0b3JhZ2UgPSBwbHVnaW5TdG9yYWdlKCk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBwbHVnaW5OYW1lIG9mIE9iamVjdC5rZXlzKHBsdWdpbnMpKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhJTklUSUFMSVpJTkdfUExVR0lOKHBsdWdpbk5hbWUpKTtcblxuICAgIGNvbnN0IHBsdWdpbiA9IGF3YWl0IGluaXRQbHVnaW4ocGx1Z2luc1twbHVnaW5OYW1lXSk7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHsuLi5wbHVnaW4ubWV0YWRhdGEuaW5wdXRzLCAuLi5wbHVnaW4ubWV0YWRhdGEub3V0cHV0c307XG5cbiAgICBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5mb3JFYWNoKGN1cnJlbnQgPT4ge1xuICAgICAgc3RvcmVBZ2dyZWdhdGlvbk1ldHJpY3Moe1xuICAgICAgICBbY3VycmVudF06IHBhcmFtZXRlcnNbY3VycmVudF1bJ2FnZ3JlZ2F0aW9uLW1ldGhvZCddLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzdG9yYWdlLnNldChwbHVnaW5OYW1lLCBwbHVnaW4pO1xuICB9XG5cbiAgcmV0dXJuIHN0b3JhZ2U7XG59O1xuIl19
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL2luaXRpYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFFbEMsaURBQTZDO0FBRzdDLDJDQUFvRDtBQUVwRCxxREFBZ0Q7QUFDaEQscURBQWdEO0FBQ2hELDJEQUFxRDtBQUVyRCxzQ0FBMEM7QUFLMUMsTUFBTSxFQUNKLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3ZCLEdBQUcsY0FBTSxDQUFDO0FBRVgsTUFBTSxFQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDNUMsTUFBTSxFQUNKLGNBQWMsRUFDZCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixHQUFHLGdCQUFPLENBQUM7QUFFWjs7R0FFRztBQUNILElBQUksMkJBQTJCLEdBQUcsSUFBSSxDQUFDO0FBRXZDOzs7R0FHRztBQUNJLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtJQUMxRCwyQkFBMkIsR0FBRyxNQUFNLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRlcsUUFBQSx3QkFBd0IsNEJBRW5DO0FBRUY7O0dBRUc7QUFDSCxJQUFJLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRXhDOzs7OztHQUtHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUFDLG1CQUFnQyxFQUFFLEVBQUU7SUFDckUsZUFBZSxHQUFHLG1CQUFtQixDQUFDO0FBQ3hDLENBQUMsQ0FBQztBQUZXLFFBQUEsa0JBQWtCLHNCQUU3QjtBQUVGOztHQUVHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxNQUFNLEdB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SSxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQzdCLE9BQWdCLEVBQ2lCLEVBQUU7SUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFhLEdBQUUsQ0FBQztJQUVoQyxJQUFJLEtBQUssRUFBRSxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUUvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxFQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBQyxDQUFDO1FBRTNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hDLElBQUEsbUNBQXVCLEVBQUM7Z0JBQ3RCLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDO2FBQ3JELENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDakM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUF2QlcsUUFBQSxVQUFVLGNBdUJyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5pbXBvcnQge1BsdWdpbkludGVyZmFjZX0gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtzdG9yZUFnZ3JlZ2F0aW9uTWV0cmljc30gZnJvbSAnLi9hZ2dyZWdhdGUnO1xuXG5pbXBvcnQge2xvZ2dlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvbG9nZ2VyJztcbmltcG9ydCB7bWVtb2l6ZWRMb2d9IGZyb20gJy4uL3V0aWwvbG9nLW1lbW9pemUnO1xuaW1wb3J0IHtwbHVnaW5TdG9yYWdlfSBmcm9tICcuLi91dGlsL3BsdWdpbi1zdG9yYWdlJztcblxuaW1wb3J0IHtDT05GSUcsIFNUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7Q29udGV4dCwgUGx1Z2luT3B0aW9uc30gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzL21hbmlmZXN0JztcbmltcG9ydCB7UGx1Z2luU3RvcmFnZUludGVyZmFjZX0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLXN0b3JhZ2UnO1xuXG5jb25zdCB7XG4gIFBsdWdpbkluaXRpYWxpemF0aW9uRXJyb3IsXG4gIE1pc3NpbmdQbHVnaW5NZXRob2RFcnJvcixcbiAgTWlzc2luZ1BsdWdpblBhdGhFcnJvcixcbn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtHSVRIVUJfUEFUSCwgTkFUSVZFX1BMVUdJTn0gPSBDT05GSUc7XG5jb25zdCB7XG4gIE1JU1NJTkdfTUVUSE9ELFxuICBNSVNTSU5HX1BBVEgsXG4gIE5PVF9OQVRJVkVfUExVR0lOLFxuICBJTlZBTElEX01PRFVMRV9QQVRILFxuICBMT0FESU5HX1BMVUdJTl9GUk9NX1BBVEgsXG4gIElOSVRJQUxJWklOR19QTFVHSU4sXG4gIElOSVRJQUxJWklOR19QTFVHSU5TLFxufSA9IFNUUklOR1M7XG5cbi8qKlxuICogV2hldGhlciB0byBvdXRwdXQgd2FybmluZ3MgZm9yIGV4dGVybmFsIHBsdWdpbnNcbiAqL1xubGV0IGVuYWJsZUV4dGVybmFsUGx1Z2luV2FybmluZyA9IHRydWU7XG5cbi8qKlxuICogU2V0IHdoZXRoZXIgdG8gb3V0cHV0IHdhcm5pbmdzIGZvciBleHRlcm5hbCBwbHVnaW5zLlxuICogQHBhcmFtIGVuYWJsZSB0cnVlIGlmIHdhcm5pbmdzIGZvciBleHRlcm5hbCBwbHVnaW5zIHNob3VsZCBiZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4dGVybmFsUGx1Z2luV2FybmluZyA9IChlbmFibGU6IGJvb2xlYW4pID0+IHtcbiAgZW5hYmxlRXh0ZXJuYWxQbHVnaW5XYXJuaW5nID0gZW5hYmxlO1xufTtcblxuLyoqXG4gKiBMaXN0IG9mIHBsdWdpbnMgdG8gZGlzYWJsZVxuICovXG5sZXQgZGlzYWJsZWRQbHVnaW5zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbi8qKlxuICogU2V0IHBsdWdpbnMgdG8gYmUgZGlzYWJsZWQuXG4gKiBFYWNoIGVsZW1lbnQgaXMgc3BlY2lmaWVkIGluIHRoZSBmb3JtYXQgYHBsdWdpbi1wYXRoOm1ldGhvZC1uYW1lYC5cbiAqIEJ1aWx0LWluIHBsdWdpbnMgYXJlIHNwZWNpZmllZCBhcyBgYnVpbHRpbjptZXRob2QtbmFtZWAuXG4gKiBAcGFyYW0gcGx1Z2luc1RvQmVEaXNhYmxlZCBMaXN0IG9mIHBsdWdpbnMgdG8gYmUgZGlzYWJsZWRcbiAqL1xuZXhwb3J0IGNvbnN0IHNldERpc2FibGVkUGx1Z2lucyA9IChwbHVnaW5zVG9CZURpc2FibGVkOiBTZXQ8c3RyaW5nPikgPT4ge1xuICBkaXNhYmxlZFBsdWdpbnMgPSBwbHVnaW5zVG9CZURpc2FibGVkO1xufTtcblxuLyoqXG4gKiBJbXBvcnRzIG1vZHVsZSBieSBnaXZlbiBgcGF0aGAuXG4gKi9cbmNvbnN0IGltcG9ydE1vZHVsZUZyb20gPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChwYXRoKS5jYXRjaChlcnJvciA9PiB7XG4gICAgdGhyb3cgbmV3IFBsdWdpbkluaXRpYWxpemF0aW9uRXJyb3IoSU5WQUxJRF9NT0RVTEVfUEFUSChwYXRoLCBlcnJvcikpO1xuICB9KTtcblxuICByZXR1cm4gbW9kdWxlO1xufTtcblxuLyoqXG4gKiBJbXBvcnRzIGBtb2R1bGVgIGZyb20gZ2l2ZW4gYHBhdGhgIGFuZCByZXR1cm5zIHJlcXVlc3RlZCBgbWV0aG9kYC5cbiAqL1xuY29uc3QgaW1wb3J0QW5kVmVyaWZ5TW9kdWxlID0gYXN5bmMgKG1ldGhvZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgcGx1Z2luTW9kdWxlID0gYXdhaXQgaW1wb3J0TW9kdWxlRnJvbShwYXRoKTtcblxuICByZXR1cm4gcGx1Z2luTW9kdWxlW21ldGhvZF07XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBwbHVnaW4gaXMgbWlzc2luZyB0aGVuIHJlamVjdHMgd2l0aCBlcnJvci5cbiAqIFRoZW4gY2hlY2tzIGlmIGBwYXRoYCBpcyBzdGFydGluZyB3aXRoIGdpdGh1YiwgdGhlbiBncmFicyB0aGUgcmVwb3NpdG9yeSBuYW1lLlxuICogSW1wb3J0cyBtb2R1bGUsIHRoZW4gY2hlY2tzIGlmIGl0J3MgYSB2YWxpZCBwbHVnaW4uXG4gKi9cbmNvbnN0IGhhbmRNb2R1bGUgPSAobWV0aG9kOiBzdHJpbmcsIHBsdWdpblBhdGg6IHN0cmluZykgPT4ge1xuICBjb25zb2xlLmRlYnVnKExPQURJTkdfUExVR0lOX0ZST01fUEFUSChtZXRob2QsIHBsdWdpblBhdGgpLCAnXFxuJyk7XG5cbiAgaWYgKHBsdWdpblBhdGggPT09ICdidWlsdGluJykge1xuICAgIGlmIChkaXNhYmxlZFBsdWdpbnMuaGFzKCdidWlsdGluOicgKyBtZXRob2QpKSB7XG4gICAgICB0aHJvdyBuZXcgUGx1Z2luSW5pdGlhbGl6YXRpb25FcnJvcihcbiAgICAgICAgSU5WQUxJRF9NT0RVTEVfUEFUSChgYnVpbHRpbjoke21ldGhvZH1gKVxuICAgICAgKTtcbiAgICB9XG4gICAgcGx1Z2luUGF0aCA9IHBhdGgubm9ybWFsaXplKGAke19fZGlybmFtZX0vLi4vYnVpbHRpbnNgKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAocGx1Z2luUGF0aD8uc3RhcnRzV2l0aChHSVRIVUJfUEFUSCkpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gcGx1Z2luUGF0aC5zcGxpdCgnLycpO1xuICAgICAgcGx1Z2luUGF0aCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgIH1cblxuICAgIHBsdWdpblBhdGggPSBwYXRoLm5vcm1hbGl6ZShwbHVnaW5QYXRoKTtcbiAgICBpZiAoXG4gICAgICBwbHVnaW5QYXRoLnN0YXJ0c1dpdGgoJy4uLycpIHx8XG4gICAgICBkaXNhYmxlZFBsdWdpbnMuaGFzKGAke3BsdWdpblBhdGh9OiR7bWV0aG9kfWApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUGx1Z2luSW5pdGlhbGl6YXRpb25FcnJvcihcbiAgICAgICAgSU5WQUxJRF9NT0RVTEVfUEFUSChgJHtwbHVnaW5QYXRofToke21ldGhvZH1gKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZW5hYmxlRXh0ZXJuYWxQbHVnaW5XYXJuaW5nICYmICFwbHVnaW5QYXRoLmluY2x1ZGVzKE5BVElWRV9QTFVHSU4pKSB7XG4gICAgICBtZW1vaXplZExvZyhsb2dnZXIud2FybiwgTk9UX05BVElWRV9QTFVHSU4ocGx1Z2luUGF0aCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbXBvcnRBbmRWZXJpZnlNb2R1bGUobWV0aG9kLCBwbHVnaW5QYXRoKTtcbn07XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgcGx1Z2luIHdpdGggY29uZmlnLlxuICovXG5jb25zdCBpbml0UGx1Z2luID0gYXN5bmMgKFxuICBpbml0UGx1Z2luUGFyYW1zOiBQbHVnaW5PcHRpb25zXG4pOiBQcm9taXNlPFBsdWdpbkludGVyZmFjZT4gPT4ge1xuICBjb25zdCB7XG4gICAgbWV0aG9kLFxuICAgIHBhdGgsXG4gICAgbWFwcGluZyxcbiAgICBjb25maWcsXG4gICAgJ3BhcmFtZXRlci1tZXRhZGF0YSc6IHBhcmFtZXRlck1ldGFkYXRhLFxuICB9ID0gaW5pdFBsdWdpblBhcmFtcyE7XG5cbiAgaWYgKCFtZXRob2QpIHtcbiAgICB0aHJvdyBuZXcgTWlzc2luZ1BsdWdpbk1ldGhvZEVycm9yKE1JU1NJTkdfTUVUSE9EKTtcbiAgfVxuXG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBNaXNzaW5nUGx1Z2luUGF0aEVycm9yKE1JU1NJTkdfUEFUSCk7XG4gIH1cblxuICBjb25zdCBwbHVnaW4gPSBhd2FpdCBoYW5kTW9kdWxlKG1ldGhvZCwgcGF0aCk7XG5cbiAgcmV0dXJuIHBsdWdpbihjb25maWcsIHBhcmFtZXRlck1ldGFkYXRhLCBtYXBwaW5nKTtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGFsbCBwbHVnaW5zIGZyb20gYG1hbmlmZXN0YC5gaW5pdGlhbGl6ZWAgcHJvcGVydHkuXG4gKiAxLiBJbml0YWxpemVzIHBsdWdpbiBzdG9yYWdlLlxuICogMi4gSXRlcmF0ZXMgb3ZlciBwbHVnaW4gbmFtZXMgYXJyYXkuXG4gKiAzLiBXaGlsZSBpdGVyYXRpb24sIGluaXRhbGl6ZXMgY3VycmVudCBwbHVnaW4sIGdhdGhlcnMgaXQncyBwYXJhbWV0ZXJzIChpbnB1dC9vdXRwdXQpLlxuICogICAgVGhlbiBzdG9yZXMgdGhlIGFnZ3JlZ2F0aW9uIG1ldHJpY3MgZm9yIGVhY2ggcGFyYW1ldGVyIHRvIG92ZXJyaWRlIHN0dWIgdmFsdWVzLlxuICovXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZSA9IGFzeW5jIChcbiAgY29udGV4dDogQ29udGV4dFxuKTogUHJvbWlzZTxQbHVnaW5TdG9yYWdlSW50ZXJmYWNlPiA9PiB7XG4gIGNvbnNvbGUuZGVidWcoSU5JVElBTElaSU5HX1BMVUdJTlMsICdcXG4nKTtcbiAgY29uc3Qge3BsdWdpbnN9ID0gY29udGV4dC5pbml0aWFsaXplO1xuICBjb25zdCBzdG9yYWdlID0gcGx1Z2luU3RvcmFnZSgpO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcGx1Z2luTmFtZSBvZiBPYmplY3Qua2V5cyhwbHVnaW5zKSkge1xuICAgIGNvbnNvbGUuZGVidWcoSU5JVElBTElaSU5HX1BMVUdJTihwbHVnaW5OYW1lKSk7XG5cbiAgICBjb25zdCBwbHVnaW4gPSBhd2FpdCBpbml0UGx1Z2luKHBsdWdpbnNbcGx1Z2luTmFtZV0pO1xuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7Li4ucGx1Z2luLm1ldGFkYXRhLmlucHV0cywgLi4ucGx1Z2luLm1ldGFkYXRhLm91dHB1dHN9O1xuXG4gICAgT2JqZWN0LmtleXMocGFyYW1ldGVycykuZm9yRWFjaChjdXJyZW50ID0+IHtcbiAgICAgIHN0b3JlQWdncmVnYXRpb25NZXRyaWNzKHtcbiAgICAgICAgW2N1cnJlbnRdOiBwYXJhbWV0ZXJzW2N1cnJlbnRdWydhZ2dyZWdhdGlvbi1tZXRob2QnXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc3RvcmFnZS5zZXQocGx1Z2luTmFtZSwgcGx1Z2luKTtcbiAgfVxuXG4gIHJldHVybiBzdG9yYWdlO1xufTtcbiJdfQ==
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { PluginParams } from '@grnsft/if-core/types';
|
|
2
|
+
import type { Node } from '../types/compute';
|
|
2
3
|
/**
|
|
3
4
|
* Regroups inputs and outputs based on the given group keys.
|
|
4
5
|
*/
|
|
5
|
-
export declare const Regroup: (inputs: PluginParams[], outputs: PluginParams[], groups: string[]) =>
|
|
6
|
+
export declare const Regroup: (inputs: PluginParams[], outputs: PluginParams[], groups: string[]) => Record<string, Node>;
|
|
6
7
|
/**
|
|
7
8
|
* Grabs all the values according to grouping criteria, then
|
|
8
9
|
* checks if regroup values are present in the children list.
|
|
9
10
|
*/
|
|
10
|
-
export declare const isRegrouped: (groups: string[],
|
|
11
|
+
export declare const isRegrouped: (groups: readonly string[], inputs: readonly PluginParams[], childNames: readonly string[]) => boolean;
|
|
@@ -11,14 +11,15 @@ const { INVALID_GROUP_KEY, REGROUP_ERROR } = config_1.STRINGS;
|
|
|
11
11
|
* Creates structure to insert inputs by groups.
|
|
12
12
|
*/
|
|
13
13
|
const appendGroup = (value, object, target, groups) => {
|
|
14
|
+
var _a;
|
|
14
15
|
if (groups.length === 0) {
|
|
15
|
-
object[target]
|
|
16
|
+
object[target] || (object[target] = []);
|
|
16
17
|
object[target].push(value);
|
|
17
18
|
return object;
|
|
18
19
|
}
|
|
19
20
|
const group = groups.shift();
|
|
20
|
-
object.children
|
|
21
|
-
object.children[group]
|
|
21
|
+
object.children || (object.children = {});
|
|
22
|
+
(_a = object.children)[group] || (_a[group] = {});
|
|
22
23
|
return appendGroup(value, object.children[group], target, groups);
|
|
23
24
|
};
|
|
24
25
|
/**
|
|
@@ -60,12 +61,15 @@ exports.Regroup = Regroup;
|
|
|
60
61
|
* Grabs all the values according to grouping criteria, then
|
|
61
62
|
* checks if regroup values are present in the children list.
|
|
62
63
|
*/
|
|
63
|
-
const isRegrouped = (groups,
|
|
64
|
+
const isRegrouped = (groups, inputs, childNames) => {
|
|
64
65
|
const validatedGroups = validateGroups(groups);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
if (childNames.length < validatedGroups.length) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
else if (childNames.length > validatedGroups.length) {
|
|
70
|
+
childNames = childNames.slice(-validatedGroups.length);
|
|
71
|
+
}
|
|
72
|
+
return inputs.every(input => validatedGroups.every((group, index) => input[group] === childNames[index]));
|
|
69
73
|
};
|
|
70
74
|
exports.isRegrouped = isRegrouped;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vbGliL3JlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXNCO0FBQ3RCLGlEQUE2QztBQUc3QywrREFBdUQ7QUFHdkQsc0NBQWtDO0FBRWxDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUN0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQ2xCLEtBQW1CLEVBQ25CLE1BQVksRUFDWixNQUE0QixFQUM1QixNQUFnQixFQUNWLEVBQUU7O0lBQ1IsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxNQUFiLE1BQU0sQ0FBQyxNQUFNLElBQU0sRUFBRSxFQUFDO1FBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUcsQ0FBQztJQUM5QixNQUFNLENBQUMsUUFBUSxLQUFmLE1BQU0sQ0FBQyxRQUFRLEdBQUssRUFBRSxFQUFDO0lBQ3ZCLE1BQUEsTUFBTSxDQUFDLFFBQVEsRUFBQyxLQUFLLFNBQUwsS0FBSyxJQUFNLEVBQUUsRUFBQztJQUU5QixPQUFPLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQXlCLEVBQXFCLEVBQUU7SUFDdEUsTUFBTSxTQUFTLEdBQUcsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUMvQixPQUFDLENBQUMsTUFBTSxFQUFFLEVBQ1YsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ3JELENBQUM7SUFFRixJQUFBLHNCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFdEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsUUFBZ0IsRUFBVSxFQUFFO0lBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDcEIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDN0Q7SUFFRCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNJLE1BQU0sT0FBTyxHQUFHLENBQ3JCLE1BQXNCLEVBQ3RCLE9BQXVCLEVBQ3ZCLE1BQWdCLEVBQ00sRUFBRTtJQUN4QixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixLQUFxQixFQUNyQixHQUFTLEVBQ1QsTUFBNEIsRUFDdEIsRUFBRTtRQUNSLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDcEQsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FDL0IsQ0FBQztZQUNGLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sR0FBRyxHQUFTLEVBQUUsQ0FBQztJQUNyQixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFN0MsT0FBTyxHQUFHLENBQUMsUUFBUyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQXpCVyxRQUFBLE9BQU8sV0F5QmxCO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSxXQUFXLEdBQUcsQ0FDekIsTUFBeUIsRUFDekIsTUFBK0IsRUFDL0IsVUFBNkIsRUFDcEIsRUFBRTtJQUNYLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRTtRQUM5QyxPQUFPLEtBQUssQ0FBQztLQUNkO1NBQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUU7UUFDckQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDeEQ7SUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDMUIsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDNUUsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWRXLFFBQUEsV0FBVyxlQWN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7en0gZnJvbSAnem9kJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICdAZ3Juc2Z0L2lmLWNvcmUvdXRpbHMnO1xuaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7dmFsaWRhdGV9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlsL3ZhbGlkYXRpb25zJztcbmltcG9ydCB0eXBlIHtOb2RlfSBmcm9tICcuLi90eXBlcy9jb21wdXRlJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCB7SW52YWxpZEdyb3VwaW5nRXJyb3J9ID0gRVJST1JTO1xuY29uc3Qge0lOVkFMSURfR1JPVVBfS0VZLCBSRUdST1VQX0VSUk9SfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ3JlYXRlcyBzdHJ1Y3R1cmUgdG8gaW5zZXJ0IGlucHV0cyBieSBncm91cHMuXG4gKi9cbmNvbnN0IGFwcGVuZEdyb3VwID0gKFxuICB2YWx1ZTogUGx1Z2luUGFyYW1zLFxuICBvYmplY3Q6IE5vZGUsXG4gIHRhcmdldDogJ2lucHV0cycgfCAnb3V0cHV0cycsXG4gIGdyb3Vwczogc3RyaW5nW11cbik6IE5vZGUgPT4ge1xuICBpZiAoZ3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgIG9iamVjdFt0YXJnZXRdIHx8PSBbXTtcbiAgICBvYmplY3RbdGFyZ2V0XSEucHVzaCh2YWx1ZSk7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIGNvbnN0IGdyb3VwID0gZ3JvdXBzLnNoaWZ0KCkhO1xuICBvYmplY3QuY2hpbGRyZW4gfHw9IHt9O1xuICBvYmplY3QuY2hpbGRyZW5bZ3JvdXBdIHx8PSB7fTtcblxuICByZXR1cm4gYXBwZW5kR3JvdXAodmFsdWUsIG9iamVjdC5jaGlsZHJlbltncm91cF0sIHRhcmdldCwgZ3JvdXBzKTtcbn07XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSBncm91cHMgYXJyYXkuXG4gKi9cbmNvbnN0IHZhbGlkYXRlR3JvdXBzID0gKGdyb3VwczogcmVhZG9ubHkgc3RyaW5nW10pOiByZWFkb25seSBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGlucHV0RGF0YSA9IHtyZWdyb3VwOiBncm91cHN9O1xuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gei5yZWNvcmQoXG4gICAgei5zdHJpbmcoKSxcbiAgICB6LmFycmF5KHouc3RyaW5nKCksIHttZXNzYWdlOiBSRUdST1VQX0VSUk9SfSkubWluKDEpXG4gICk7XG5cbiAgdmFsaWRhdGUodmFsaWRhdGlvblNjaGVtYSwgaW5wdXREYXRhKTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcblxuLyoqXG4gKiBMb29rcyB1cCBhIGdyb3VwIGtleSB2YWx1ZSBpbiB0aGUgaW5wdXQuXG4gKi9cbmNvbnN0IGxvb2t1cEdyb3VwS2V5ID0gKGlucHV0OiBQbHVnaW5QYXJhbXMsIGdyb3VwS2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBpZiAoIWlucHV0W2dyb3VwS2V5XSkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkR3JvdXBpbmdFcnJvcihJTlZBTElEX0dST1VQX0tFWShncm91cEtleSkpO1xuICB9XG5cbiAgcmV0dXJuIGlucHV0W2dyb3VwS2V5XTtcbn07XG5cbi8qKlxuICogUmVncm91cHMgaW5wdXRzIGFuZCBvdXRwdXRzIGJhc2VkIG9uIHRoZSBnaXZlbiBncm91cCBrZXlzLlxuICovXG5leHBvcnQgY29uc3QgUmVncm91cCA9IChcbiAgaW5wdXRzOiBQbHVnaW5QYXJhbXNbXSxcbiAgb3V0cHV0czogUGx1Z2luUGFyYW1zW10sXG4gIGdyb3Vwczogc3RyaW5nW11cbik6IFJlY29yZDxzdHJpbmcsIE5vZGU+ID0+IHtcbiAgY29uc3QgdmFsaWRhdGVkR3JvdXBzID0gdmFsaWRhdGVHcm91cHMoZ3JvdXBzKTtcblxuICBjb25zdCBhcHBlbmRUb0FjY3VtdWxhdG9yID0gKFxuICAgIGl0ZW1zOiBQbHVnaW5QYXJhbXNbXSxcbiAgICBhY2M6IE5vZGUsXG4gICAgdGFyZ2V0OiAnaW5wdXRzJyB8ICdvdXRwdXRzJ1xuICApOiB2b2lkID0+IHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IGdyb3Vwc1dpdGhEYXRhID0gdmFsaWRhdGVkR3JvdXBzLm1hcChncm91cEtleSA9PlxuICAgICAgICBsb29rdXBHcm91cEtleShpdGVtLCBncm91cEtleSlcbiAgICAgICk7XG4gICAgICBhcHBlbmRHcm91cChpdGVtLCBhY2MsIHRhcmdldCwgZ3JvdXBzV2l0aERhdGEpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBhY2M6IE5vZGUgPSB7fTtcbiAgYXBwZW5kVG9BY2N1bXVsYXRvcihpbnB1dHMsIGFjYywgJ2lucHV0cycpO1xuICBhcHBlbmRUb0FjY3VtdWxhdG9yKG91dHB1dHMsIGFjYywgJ291dHB1dHMnKTtcblxuICByZXR1cm4gYWNjLmNoaWxkcmVuITtcbn07XG5cbi8qKlxuICogR3JhYnMgYWxsIHRoZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIGdyb3VwaW5nIGNyaXRlcmlhLCB0aGVuXG4gKiAgY2hlY2tzIGlmIHJlZ3JvdXAgdmFsdWVzIGFyZSBwcmVzZW50IGluIHRoZSBjaGlsZHJlbiBsaXN0LlxuICovXG5leHBvcnQgY29uc3QgaXNSZWdyb3VwZWQgPSAoXG4gIGdyb3VwczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIGlucHV0czogcmVhZG9ubHkgUGx1Z2luUGFyYW1zW10sXG4gIGNoaWxkTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgdmFsaWRhdGVkR3JvdXBzID0gdmFsaWRhdGVHcm91cHMoZ3JvdXBzKTtcbiAgaWYgKGNoaWxkTmFtZXMubGVuZ3RoIDwgdmFsaWRhdGVkR3JvdXBzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIGlmIChjaGlsZE5hbWVzLmxlbmd0aCA+IHZhbGlkYXRlZEdyb3Vwcy5sZW5ndGgpIHtcbiAgICBjaGlsZE5hbWVzID0gY2hpbGROYW1lcy5zbGljZSgtdmFsaWRhdGVkR3JvdXBzLmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGlucHV0cy5ldmVyeShpbnB1dCA9PlxuICAgIHZhbGlkYXRlZEdyb3Vwcy5ldmVyeSgoZ3JvdXAsIGluZGV4KSA9PiBpbnB1dFtncm91cF0gPT09IGNoaWxkTmFtZXNbaW5kZXhdKVxuICApO1xufTtcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdHlwZXMvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7UGx1Z2luU3RvcmFnZUludGVyZmFjZX0gZnJvbSAnLi9wbHVnaW4tc3RvcmFnZSc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5cbi8qKlxuICogQHRvZG86IHJlbW92ZSBOb2RlQ29uZmlnIGFmdGVyIHNvbWUgcGVyaW9kXG4gKi9cbmV4cG9ydCB0eXBlIE5vZGVDb25maWcgPSB7XG4gIFtrZXk6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBQaGFzZWRQaXBlbGluZSA9IHtcbiAgb2JzZXJ2ZT86IHN0cmluZ1tdO1xuICByZWdyb3VwPzogc3RyaW5nW107XG4gIGNvbXB1dGU/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbXB1dGVQYXJhbXMgPSB7XG4gIHBsdWdpblN0b3JhZ2U6IFBsdWdpblN0b3JhZ2VJbnRlcmZhY2U7XG4gIGNvbnRleHQ6IENvbnRleHQ7XG4gIHBpcGVsaW5lPzogUGhhc2VkUGlwZWxpbmU7XG4gIGNvbmZpZz86IE5vZGVDb25maWc7XG4gIGRlZmF1bHRzPzogUGx1Z2luUGFyYW1zO1xuICBvYnNlcnZlPzogQm9vbGVhbjtcbiAgcmVncm91cD86IEJvb2xlYW47XG4gIGNvbXB1dGU/OiBCb29sZWFuO1xuICBhcHBlbmQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTm9kZSA9IHtcbiAgY2hpbGRyZW4/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdHlwZXMvY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQbHVnaW5QYXJhbXN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS90eXBlcyc7XG5cbmltcG9ydCB7UGx1Z2luU3RvcmFnZUludGVyZmFjZX0gZnJvbSAnLi9wbHVnaW4tc3RvcmFnZSc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5cbi8qKlxuICogQHRvZG86IHJlbW92ZSBOb2RlQ29uZmlnIGFmdGVyIHNvbWUgcGVyaW9kXG4gKi9cbmV4cG9ydCB0eXBlIE5vZGVDb25maWcgPSB7XG4gIFtrZXk6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBQaGFzZWRQaXBlbGluZSA9IHtcbiAgb2JzZXJ2ZT86IHN0cmluZ1tdO1xuICByZWdyb3VwPzogc3RyaW5nW107XG4gIGNvbXB1dGU/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbXB1dGVQYXJhbXMgPSB7XG4gIHBsdWdpblN0b3JhZ2U6IFBsdWdpblN0b3JhZ2VJbnRlcmZhY2U7XG4gIGNvbnRleHQ6IENvbnRleHQ7XG4gIHBpcGVsaW5lPzogUGhhc2VkUGlwZWxpbmU7XG4gIGNvbmZpZz86IE5vZGVDb25maWc7XG4gIGRlZmF1bHRzPzogUGx1Z2luUGFyYW1zO1xuICBvYnNlcnZlPzogQm9vbGVhbjtcbiAgcmVncm91cD86IEJvb2xlYW47XG4gIGNvbXB1dGU/OiBCb29sZWFuO1xuICBhcHBlbmQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTm9kZSA9IHtcbiAgY2hpbGRyZW4/OiBSZWNvcmQ8c3RyaW5nLCBOb2RlPjtcbiAgcGlwZWxpbmU/OiBQaGFzZWRQaXBlbGluZTtcbiAgY29uZmlnPzogTm9kZUNvbmZpZztcbiAgZGVmYXVsdHM/OiBQbHVnaW5QYXJhbXM7XG4gIGlucHV0cz86IFBsdWdpblBhcmFtc1tdO1xuICBvdXRwdXRzPzogUGx1Z2luUGFyYW1zW107XG59O1xuIl19
|
|
@@ -16,9 +16,9 @@ const helpers_1 = require("../../common/util/helpers");
|
|
|
16
16
|
* Parses os and os-version from the response.
|
|
17
17
|
*/
|
|
18
18
|
const getLinuxInfo = async () => {
|
|
19
|
-
const { stdout } = await (0, helpers_1.
|
|
19
|
+
const { stdout } = await (0, helpers_1.execFilePromise)('lsb_release', ['-id']);
|
|
20
20
|
const parseLinuxVersion = (lsbReleaseResponse) => {
|
|
21
|
-
const regex =
|
|
21
|
+
const regex = /^Distributor ID:\t(.+)\nDescription:\t([^ ]+) +([^ ]+) +(.+)$/m;
|
|
22
22
|
const match = lsbReleaseResponse.match(regex);
|
|
23
23
|
return {
|
|
24
24
|
os: match ? match[1] : (0, os_1.platform)(),
|
|
@@ -28,23 +28,27 @@ const getLinuxInfo = async () => {
|
|
|
28
28
|
return parseLinuxVersion(stdout);
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
|
-
* Executes in CMD `
|
|
31
|
+
* Executes in CMD `powershell -Command "Get-WmiObject Win32_OperatingSystem | Format-List -Property Caption, Version, BuildNumber"` command.
|
|
32
32
|
*
|
|
33
33
|
* ```
|
|
34
|
-
*
|
|
35
|
-
*
|
|
34
|
+
* Caption : Microsoft Windows 11 Enterprise\r
|
|
35
|
+
* Version : 10.0.22631\r
|
|
36
|
+
* BuildNumber : 22631\r
|
|
36
37
|
* ```
|
|
37
38
|
*
|
|
38
39
|
* Parses os and os-version from the response.
|
|
39
40
|
*/
|
|
40
41
|
const getWindowsInfo = async () => {
|
|
41
|
-
const { stdout } = await (0, helpers_1.
|
|
42
|
+
const { stdout } = await (0, helpers_1.execFilePromise)('powershell', [
|
|
43
|
+
'-Command',
|
|
44
|
+
'Get-WmiObject Win32_OperatingSystem | Format-List -Property Caption, Version, BuildNumber',
|
|
45
|
+
]);
|
|
42
46
|
const parseWindowsInfo = (systemInfoResponse) => {
|
|
43
|
-
const regex =
|
|
47
|
+
const regex = /^Caption\s*:\s*(.*)\r?\nVersion\s*:\s*(.*)\r?\nBuildNumber\s*:\s*(.*)$/m;
|
|
44
48
|
const match = systemInfoResponse.match(regex);
|
|
45
49
|
return {
|
|
46
50
|
os: match ? match[1] : (0, os_1.platform)(),
|
|
47
|
-
'os-version': match ? `${match[2]} ${match[3]}` : (0, os_1.release)(),
|
|
51
|
+
'os-version': match ? `${match[2]} N/A Build ${match[3]}` : (0, os_1.release)(),
|
|
48
52
|
};
|
|
49
53
|
};
|
|
50
54
|
return parseWindowsInfo(stdout);
|
|
@@ -61,7 +65,7 @@ const getWindowsInfo = async () => {
|
|
|
61
65
|
* Parses os and os version from the response.
|
|
62
66
|
*/
|
|
63
67
|
const getMacVersion = async () => {
|
|
64
|
-
const { stdout } = await (0, helpers_1.
|
|
68
|
+
const { stdout } = await (0, helpers_1.execFilePromise)('sw_vers');
|
|
65
69
|
const parseMacInfo = (swVersResponse) => {
|
|
66
70
|
const productNameRegex = /ProductName:\s*(.+)/;
|
|
67
71
|
const productVersionRegex = /ProductVersion:\s*(.+)/;
|
|
@@ -94,4 +98,4 @@ const osInfo = async () => {
|
|
|
94
98
|
}
|
|
95
99
|
};
|
|
96
100
|
exports.osInfo = osInfo;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3MtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1ydW4vdXRpbC9vcy1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFxQztBQUVyQyx1REFBMEQ7QUFFMUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUM5QixNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsTUFBTSxJQUFBLHlCQUFlLEVBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUUvRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsa0JBQTBCLEVBQUUsRUFBRTtRQUN2RCxNQUFNLEtBQUssR0FDVCxnRUFBZ0UsQ0FBQztRQUNuRSxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsT0FBTztZQUNMLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxhQUFRLEdBQUU7WUFDakMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEsWUFBTyxHQUFFO1NBQzVELENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoQyxNQUFNLEVBQUMsTUFBTSxFQUFDLEdBQUcsTUFBTSxJQUFBLHlCQUFlLEVBQUMsWUFBWSxFQUFFO1FBQ25ELFVBQVU7UUFDViwyRkFBMkY7S0FDNUYsQ0FBQyxDQUFDO0lBRUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGtCQUEwQixFQUFFLEVBQUU7UUFDdEQsTUFBTSxLQUFLLEdBQ1QseUVBQXlFLENBQUM7UUFDNUUsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsYUFBUSxHQUFFO1lBQ2pDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFBLFlBQU8sR0FBRTtTQUN0RSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDL0IsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLE1BQU0sSUFBQSx5QkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWxELE1BQU0sWUFBWSxHQUFHLENBQUMsY0FBc0IsRUFBRSxFQUFFO1FBQzlDLE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7UUFDL0MsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0IsQ0FBQztRQUVyRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRS9ELE9BQU87WUFDTCxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUEsYUFBUSxHQUFFO1lBQ2hELFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBQSxZQUFPLEdBQUU7U0FDaEUsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxNQUFNLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBQSxhQUFRLEdBQUUsQ0FBQztJQUUxQixRQUFRLE1BQU0sRUFBRTtRQUNkLEtBQUssUUFBUTtZQUNYLE9BQU8sYUFBYSxFQUFFLENBQUM7UUFDekIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxZQUFZLEVBQUUsQ0FBQztRQUN4QixLQUFLLE9BQU87WUFDVixPQUFPLGNBQWMsRUFBRSxDQUFDO1FBQzFCO1lBQ0UsT0FBTztnQkFDTCxFQUFFLEVBQUUsTUFBTTtnQkFDVixZQUFZLEVBQUUsSUFBQSxZQUFPLEdBQUU7YUFDeEIsQ0FBQztLQUNMO0FBQ0gsQ0FBQyxDQUFDO0FBaEJXLFFBQUEsTUFBTSxVQWdCakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3JlbGVhc2UsIHBsYXRmb3JtfSBmcm9tICdvcyc7XG5cbmltcG9ydCB7ZXhlY0ZpbGVQcm9taXNlfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9oZWxwZXJzJztcblxuLyoqXG4gKiBFeGVjdXRlcyBgbHNiX3JlbGVhc2UgLWFgIGNvbW1hbmQgaW4gdGVybWluYWwuXG4gKlxuICogYGBgXG4gKiBEaXN0cmlidXRvciBJRDogVWJ1bnR1XG4gKiBEZXNjcmlwdGlvbjogICAgVWJ1bnR1IDIyLjA0LjQgTFRTXG4gKiBSZWxlYXNlOiAgICAgICAgMjIuMDRcbiAqIENvZGVuYW1lOiAgICAgICBqYW1teVxuICogYGBgXG4gKlxuICogUGFyc2VzIG9zIGFuZCBvcy12ZXJzaW9uIGZyb20gdGhlIHJlc3BvbnNlLlxuICovXG5jb25zdCBnZXRMaW51eEluZm8gPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlY0ZpbGVQcm9taXNlKCdsc2JfcmVsZWFzZScsIFsnLWlkJ10pO1xuXG4gIGNvbnN0IHBhcnNlTGludXhWZXJzaW9uID0gKGxzYlJlbGVhc2VSZXNwb25zZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXggPVxuICAgICAgL15EaXN0cmlidXRvciBJRDpcXHQoLispXFxuRGVzY3JpcHRpb246XFx0KFteIF0rKSArKFteIF0rKSArKC4rKSQvbTtcbiAgICBjb25zdCBtYXRjaCA9IGxzYlJlbGVhc2VSZXNwb25zZS5tYXRjaChyZWdleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3M6IG1hdGNoID8gbWF0Y2hbMV0gOiBwbGF0Zm9ybSgpLFxuICAgICAgJ29zLXZlcnNpb24nOiBtYXRjaCA/IGAke21hdGNoWzNdfSAke21hdGNoWzRdfWAgOiByZWxlYXNlKCksXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gcGFyc2VMaW51eFZlcnNpb24oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgaW4gQ01EIGBwb3dlcnNoZWxsIC1Db21tYW5kIFwiR2V0LVdtaU9iamVjdCBXaW4zMl9PcGVyYXRpbmdTeXN0ZW0gfCBGb3JtYXQtTGlzdCAtUHJvcGVydHkgQ2FwdGlvbiwgVmVyc2lvbiwgQnVpbGROdW1iZXJcImAgY29tbWFuZC5cbiAqXG4gKiBgYGBcbiAqIENhcHRpb24gICAgIDogTWljcm9zb2Z0IFdpbmRvd3MgMTEgRW50ZXJwcmlzZVxcclxuICogVmVyc2lvbiAgICAgOiAxMC4wLjIyNjMxXFxyXG4gKiBCdWlsZE51bWJlciA6IDIyNjMxXFxyXG4gKiBgYGBcbiAqXG4gKiBQYXJzZXMgb3MgYW5kIG9zLXZlcnNpb24gZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbmNvbnN0IGdldFdpbmRvd3NJbmZvID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNGaWxlUHJvbWlzZSgncG93ZXJzaGVsbCcsIFtcbiAgICAnLUNvbW1hbmQnLFxuICAgICdHZXQtV21pT2JqZWN0IFdpbjMyX09wZXJhdGluZ1N5c3RlbSB8IEZvcm1hdC1MaXN0IC1Qcm9wZXJ0eSBDYXB0aW9uLCBWZXJzaW9uLCBCdWlsZE51bWJlcicsXG4gIF0pO1xuXG4gIGNvbnN0IHBhcnNlV2luZG93c0luZm8gPSAoc3lzdGVtSW5mb1Jlc3BvbnNlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByZWdleCA9XG4gICAgICAvXkNhcHRpb25cXHMqOlxccyooLiopXFxyP1xcblZlcnNpb25cXHMqOlxccyooLiopXFxyP1xcbkJ1aWxkTnVtYmVyXFxzKjpcXHMqKC4qKSQvbTtcbiAgICBjb25zdCBtYXRjaCA9IHN5c3RlbUluZm9SZXNwb25zZS5tYXRjaChyZWdleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3M6IG1hdGNoID8gbWF0Y2hbMV0gOiBwbGF0Zm9ybSgpLFxuICAgICAgJ29zLXZlcnNpb24nOiBtYXRjaCA/IGAke21hdGNoWzJdfSBOL0EgQnVpbGQgJHttYXRjaFszXX1gIDogcmVsZWFzZSgpLFxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIHBhcnNlV2luZG93c0luZm8oc3Rkb3V0KTtcbn07XG5cbi8qKlxuICogRXhlY3V0ZXMgYHN3X3ZlcnNgIGNvbW1hbmQgaW4gdGVybWluYWwuXG4gKlxuICogYGBgXG4gKiBQcm9kdWN0TmFtZTogICAgICBtYWNPU1xuICogUHJvZHVjdFZlcnNpb246ICAgMTQuMy4xXG4gKiBCdWlsZFZlcnNpb246ICAgICAyM0Q2MFxuICogYGBgXG4gKlxuICogUGFyc2VzIG9zIGFuZCBvcyB2ZXJzaW9uIGZyb20gdGhlIHJlc3BvbnNlLlxuICovXG5jb25zdCBnZXRNYWNWZXJzaW9uID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWNGaWxlUHJvbWlzZSgnc3dfdmVycycpO1xuXG4gIGNvbnN0IHBhcnNlTWFjSW5mbyA9IChzd1ZlcnNSZXNwb25zZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcHJvZHVjdE5hbWVSZWdleCA9IC9Qcm9kdWN0TmFtZTpcXHMqKC4rKS87XG4gICAgY29uc3QgcHJvZHVjdFZlcnNpb25SZWdleCA9IC9Qcm9kdWN0VmVyc2lvbjpcXHMqKC4rKS87XG5cbiAgICBjb25zdCBuYW1lTWF0Y2ggPSBzd1ZlcnNSZXNwb25zZS5tYXRjaChwcm9kdWN0TmFtZVJlZ2V4KTtcbiAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSBzd1ZlcnNSZXNwb25zZS5tYXRjaChwcm9kdWN0VmVyc2lvblJlZ2V4KTtcblxuICAgIHJldHVybiB7XG4gICAgICBvczogbmFtZU1hdGNoID8gbmFtZU1hdGNoWzFdLnRyaW0oKSA6IHBsYXRmb3JtKCksXG4gICAgICAnb3MtdmVyc2lvbic6IHZlcnNpb25NYXRjaCA/IHZlcnNpb25NYXRjaFsxXS50cmltKCkgOiByZWxlYXNlKCksXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gcGFyc2VNYWNJbmZvKHN0ZG91dCk7XG59O1xuXG4vKipcbiAqIEZpbmRzIG9wZXJhdGluZyBzeXN0ZW0gaW5mb3JtYXRpb24gbGlrZSBuYW1lIGFuZCB2ZXJzaW9uLlxuICovXG5leHBvcnQgY29uc3Qgb3NJbmZvID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBvc0tpbmQgPSBwbGF0Zm9ybSgpO1xuXG4gIHN3aXRjaCAob3NLaW5kKSB7XG4gICAgY2FzZSAnZGFyd2luJzpcbiAgICAgIHJldHVybiBnZXRNYWNWZXJzaW9uKCk7XG4gICAgY2FzZSAnbGludXgnOlxuICAgICAgcmV0dXJuIGdldExpbnV4SW5mbygpO1xuICAgIGNhc2UgJ3dpbjMyJzpcbiAgICAgIHJldHVybiBnZXRXaW5kb3dzSW5mbygpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvczogb3NLaW5kLFxuICAgICAgICAnb3MtdmVyc2lvbic6IHJlbGVhc2UoKSxcbiAgICAgIH07XG4gIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Patterns to ignore when building packages.
|
|
2
|
+
# This supports shell glob matching, relative path matching, and
|
|
3
|
+
# negation (prefixed with !). Only one pattern per line.
|
|
4
|
+
.DS_Store
|
|
5
|
+
# Common VCS dirs
|
|
6
|
+
.git/
|
|
7
|
+
.gitignore
|
|
8
|
+
.bzr/
|
|
9
|
+
.bzrignore
|
|
10
|
+
.hg/
|
|
11
|
+
.hgignore
|
|
12
|
+
.svn/
|
|
13
|
+
# Common backup files
|
|
14
|
+
*.swp
|
|
15
|
+
*.bak
|
|
16
|
+
*.tmp
|
|
17
|
+
*.orig
|
|
18
|
+
*~
|
|
19
|
+
# Various IDEs
|
|
20
|
+
.project
|
|
21
|
+
.idea/
|
|
22
|
+
*.tmproj
|
|
23
|
+
.vscode/
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
apiVersion: v2
|
|
2
|
+
name: if
|
|
3
|
+
description: A Helm chart for Kubernetes
|
|
4
|
+
|
|
5
|
+
# A chart can be either an 'application' or a 'library' chart.
|
|
6
|
+
#
|
|
7
|
+
# Application charts are a collection of templates that can be packaged into versioned archives
|
|
8
|
+
# to be deployed.
|
|
9
|
+
#
|
|
10
|
+
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
|
11
|
+
# a dependency of application charts to inject those utilities and functions into the rendering
|
|
12
|
+
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
|
13
|
+
type: application
|
|
14
|
+
|
|
15
|
+
# This is the chart version. This version number should be incremented each time you make changes
|
|
16
|
+
# to the chart and its templates, including the app version.
|
|
17
|
+
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
|
18
|
+
version: 1.0.0
|
|
19
|
+
|
|
20
|
+
# This is the version number of the application being deployed. This version number should be
|
|
21
|
+
# incremented each time you make changes to the application. Versions are not expected to
|
|
22
|
+
# follow Semantic Versioning. They should reflect the version the application is using.
|
|
23
|
+
# It is recommended to use it with quotes.
|
|
24
|
+
appVersion:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
1. Get the application URL by running these commands:
|
|
2
|
+
{{- if .Values.ingress.enabled }}
|
|
3
|
+
{{- range $host := .Values.ingress.hosts }}
|
|
4
|
+
{{- range .paths }}
|
|
5
|
+
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
|
6
|
+
{{- end }}
|
|
7
|
+
{{- end }}
|
|
8
|
+
{{- else if contains "NodePort" .Values.service.type }}
|
|
9
|
+
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "if.fullname" . }})
|
|
10
|
+
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
|
11
|
+
echo http://$NODE_IP:$NODE_PORT
|
|
12
|
+
{{- else if contains "LoadBalancer" .Values.service.type }}
|
|
13
|
+
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
|
14
|
+
You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "if.fullname" . }}'
|
|
15
|
+
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "if.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
|
16
|
+
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
|
17
|
+
{{- else if contains "ClusterIP" .Values.service.type }}
|
|
18
|
+
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "if.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
|
19
|
+
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
|
20
|
+
echo "Visit http://127.0.0.1:3000 to use your application"
|
|
21
|
+
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 3000:$CONTAINER_PORT
|
|
22
|
+
{{- end }}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{{/*
|
|
2
|
+
Expand the name of the chart.
|
|
3
|
+
*/}}
|
|
4
|
+
{{- define "if.name" -}}
|
|
5
|
+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
6
|
+
{{- end }}
|
|
7
|
+
|
|
8
|
+
{{/*
|
|
9
|
+
Create a default fully qualified app name.
|
|
10
|
+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
11
|
+
If release name contains chart name it will be used as a full name.
|
|
12
|
+
*/}}
|
|
13
|
+
{{- define "if.fullname" -}}
|
|
14
|
+
{{- if .Values.fullnameOverride }}
|
|
15
|
+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
16
|
+
{{- else }}
|
|
17
|
+
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
18
|
+
{{- if contains $name .Release.Name }}
|
|
19
|
+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
20
|
+
{{- else }}
|
|
21
|
+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
22
|
+
{{- end }}
|
|
23
|
+
{{- end }}
|
|
24
|
+
{{- end }}
|
|
25
|
+
|
|
26
|
+
{{/*
|
|
27
|
+
Create chart name and version as used by the chart label.
|
|
28
|
+
*/}}
|
|
29
|
+
{{- define "if.chart" -}}
|
|
30
|
+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
31
|
+
{{- end }}
|
|
32
|
+
|
|
33
|
+
{{/*
|
|
34
|
+
Common labels
|
|
35
|
+
*/}}
|
|
36
|
+
{{- define "if.labels" -}}
|
|
37
|
+
helm.sh/chart: {{ include "if.chart" . }}
|
|
38
|
+
{{ include "if.selectorLabels" . }}
|
|
39
|
+
{{- if .Chart.AppVersion }}
|
|
40
|
+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
41
|
+
{{- end }}
|
|
42
|
+
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
43
|
+
{{- end }}
|
|
44
|
+
|
|
45
|
+
{{/*
|
|
46
|
+
Selector labels
|
|
47
|
+
*/}}
|
|
48
|
+
{{- define "if.selectorLabels" -}}
|
|
49
|
+
app.kubernetes.io/name: {{ include "if.name" . }}
|
|
50
|
+
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
51
|
+
{{- end }}
|
|
52
|
+
|
|
53
|
+
{{/*
|
|
54
|
+
Create the name of the service account to use
|
|
55
|
+
*/}}
|
|
56
|
+
{{- define "if.serviceAccountName" -}}
|
|
57
|
+
{{- if .Values.serviceAccount.create }}
|
|
58
|
+
{{- default (include "if.fullname" .) .Values.serviceAccount.name }}
|
|
59
|
+
{{- else }}
|
|
60
|
+
{{- default "default" .Values.serviceAccount.name }}
|
|
61
|
+
{{- end }}
|
|
62
|
+
{{- end }}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{{- if .Values.additionalPlugins -}}
|
|
2
|
+
apiVersion: v1
|
|
3
|
+
kind: ConfigMap
|
|
4
|
+
metadata:
|
|
5
|
+
name: additional-plugins
|
|
6
|
+
labels:
|
|
7
|
+
{{- include "if.labels" . | nindent 4 }}
|
|
8
|
+
data:
|
|
9
|
+
plugins.txt: |
|
|
10
|
+
{{- range .Values.additionalPlugins }}
|
|
11
|
+
{{- . | nindent 4 }}
|
|
12
|
+
{{- end }}
|
|
13
|
+
{{- end }}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: Deployment
|
|
3
|
+
metadata:
|
|
4
|
+
name: {{ include "if.fullname" . }}
|
|
5
|
+
labels:
|
|
6
|
+
{{- include "if.labels" . | nindent 4 }}
|
|
7
|
+
spec:
|
|
8
|
+
{{- if not .Values.autoscaling.enabled }}
|
|
9
|
+
replicas: {{ .Values.replicaCount }}
|
|
10
|
+
{{- end }}
|
|
11
|
+
selector:
|
|
12
|
+
matchLabels:
|
|
13
|
+
{{- include "if.selectorLabels" . | nindent 6 }}
|
|
14
|
+
template:
|
|
15
|
+
metadata:
|
|
16
|
+
{{- with .Values.podAnnotations }}
|
|
17
|
+
annotations:
|
|
18
|
+
{{- toYaml . | nindent 8 }}
|
|
19
|
+
{{- end }}
|
|
20
|
+
labels:
|
|
21
|
+
{{- include "if.labels" . | nindent 8 }}
|
|
22
|
+
{{- with .Values.podLabels }}
|
|
23
|
+
{{- toYaml . | nindent 8 }}
|
|
24
|
+
{{- end }}
|
|
25
|
+
spec:
|
|
26
|
+
{{- with .Values.imagePullSecrets }}
|
|
27
|
+
imagePullSecrets:
|
|
28
|
+
{{- toYaml . | nindent 8 }}
|
|
29
|
+
{{- end }}
|
|
30
|
+
serviceAccountName: {{ include "if.serviceAccountName" . }}
|
|
31
|
+
{{- with .Values.podSecurityContext }}
|
|
32
|
+
securityContext:
|
|
33
|
+
{{- toYaml . | nindent 8 }}
|
|
34
|
+
{{- end }}
|
|
35
|
+
containers:
|
|
36
|
+
- name: {{ .Chart.Name }}
|
|
37
|
+
{{- with .Values.securityContext }}
|
|
38
|
+
securityContext:
|
|
39
|
+
{{- toYaml . | nindent 10 }}
|
|
40
|
+
{{- end }}
|
|
41
|
+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
|
42
|
+
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
43
|
+
args:
|
|
44
|
+
{{- range .Values.args }}
|
|
45
|
+
- {{ . }}
|
|
46
|
+
{{- end }}
|
|
47
|
+
{{- if .Values.disableExternalPluginWarning }}
|
|
48
|
+
- --disableExternalPluginWarning
|
|
49
|
+
{{- end }}
|
|
50
|
+
{{- if .Values.debug }}
|
|
51
|
+
- --debug
|
|
52
|
+
{{- end }}
|
|
53
|
+
ports:
|
|
54
|
+
- name: http
|
|
55
|
+
containerPort: 3000
|
|
56
|
+
{{- with .Values.livenessProbe }}
|
|
57
|
+
livenessProbe:
|
|
58
|
+
{{- toYaml . | nindent 10 }}
|
|
59
|
+
{{- end }}
|
|
60
|
+
{{- with .Values.readinessProbe }}
|
|
61
|
+
readinessProbe:
|
|
62
|
+
{{- toYaml . | nindent 10 }}
|
|
63
|
+
{{- end }}
|
|
64
|
+
{{- with .Values.startupProbe }}
|
|
65
|
+
startupProbe:
|
|
66
|
+
{{- toYaml . | nindent 10 }}
|
|
67
|
+
{{- end }}
|
|
68
|
+
{{- with .Values.resources }}
|
|
69
|
+
resources:
|
|
70
|
+
{{- toYaml . | nindent 10 }}
|
|
71
|
+
{{- end }}
|
|
72
|
+
{{- with .Values.env }}
|
|
73
|
+
{{- if or .secret .configMap .existingSecret.name .existingConfigMap.name }}
|
|
74
|
+
envFrom:
|
|
75
|
+
{{- end }}
|
|
76
|
+
{{- if .secret }}
|
|
77
|
+
- secretRef:
|
|
78
|
+
name: env-vars
|
|
79
|
+
{{- end }}
|
|
80
|
+
{{- if .configMap }}
|
|
81
|
+
- configMapRef:
|
|
82
|
+
name: env-vars
|
|
83
|
+
{{- end }}
|
|
84
|
+
{{- if .existingSecret.name }}
|
|
85
|
+
- secretRef:
|
|
86
|
+
name: {{ .existingSecret.name }}
|
|
87
|
+
{{- with .existingSecret.prefix }}
|
|
88
|
+
prefix: {{ . }}
|
|
89
|
+
{{- end }}
|
|
90
|
+
{{- end }}
|
|
91
|
+
{{- if .existingConfigMap.name }}
|
|
92
|
+
- configMapRef:
|
|
93
|
+
name: {{ .existingConfigMap.name }}
|
|
94
|
+
{{- with .existingConfigMap.prefix }}
|
|
95
|
+
prefix: {{ . }}
|
|
96
|
+
{{- end }}
|
|
97
|
+
{{- end }}
|
|
98
|
+
{{- end }}
|
|
99
|
+
volumeMounts:
|
|
100
|
+
- name: disabled-plugins
|
|
101
|
+
mountPath: /app/disabledPlugins.txt
|
|
102
|
+
subPath: disabledPlugins.txt
|
|
103
|
+
{{- if .Values.additionalPlugins }}
|
|
104
|
+
- name: additional-plugins
|
|
105
|
+
mountPath: /app/plugins.txt
|
|
106
|
+
subPath: plugins.txt
|
|
107
|
+
{{- end }}
|
|
108
|
+
{{- if .Values.npmrc }}
|
|
109
|
+
- name: npmrc
|
|
110
|
+
mountPath: /app/.npmrc
|
|
111
|
+
subPath: .npmrc
|
|
112
|
+
{{- end }}
|
|
113
|
+
{{- with .Values.volumeMounts }}
|
|
114
|
+
{{- toYaml . | nindent 8 }}
|
|
115
|
+
{{- end }}
|
|
116
|
+
volumes:
|
|
117
|
+
- name: disabled-plugins
|
|
118
|
+
configMap:
|
|
119
|
+
name: disabled-plugins
|
|
120
|
+
{{- if .Values.additionalPlugins }}
|
|
121
|
+
- name: additional-plugins
|
|
122
|
+
configMap:
|
|
123
|
+
name: additional-plugins
|
|
124
|
+
{{- end }}
|
|
125
|
+
{{- if .Values.npmrc }}
|
|
126
|
+
- name: npmrc
|
|
127
|
+
secret:
|
|
128
|
+
secretName: npmrc
|
|
129
|
+
{{- end }}
|
|
130
|
+
{{- with .Values.volumes }}
|
|
131
|
+
{{- toYaml . | nindent 6 }}
|
|
132
|
+
{{- end }}
|
|
133
|
+
{{- with .Values.nodeSelector }}
|
|
134
|
+
nodeSelector:
|
|
135
|
+
{{- toYaml . | nindent 8 }}
|
|
136
|
+
{{- end }}
|
|
137
|
+
{{- with .Values.affinity }}
|
|
138
|
+
affinity:
|
|
139
|
+
{{- toYaml . | nindent 8 }}
|
|
140
|
+
{{- end }}
|
|
141
|
+
{{- with .Values.tolerations }}
|
|
142
|
+
tolerations:
|
|
143
|
+
{{- toYaml . | nindent 6 }}
|
|
144
|
+
{{- end }}
|