@grnsft/if 0.0.2
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/.devcontainer/devcontainer.json +38 -0
- package/.editorconfig +8 -0
- package/.env.example +9 -0
- package/.eslintignore +4 -0
- package/.eslintrc.json +8 -0
- package/.github/ISSUE_TEMPLATE/agenda.md +36 -0
- package/.github/ISSUE_TEMPLATE/blank-issue.md +10 -0
- package/.github/ISSUE_TEMPLATE/feedback.md +42 -0
- package/.github/ISSUE_TEMPLATE/model-plugin.md +63 -0
- package/.github/ISSUE_TEMPLATE/user-story.md +10 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +21 -0
- package/.github/workflows/nodejs-ci.yml +34 -0
- package/.gitmodules +3 -0
- package/.prettierrc.js +3 -0
- package/CONTRIBUTING.md +194 -0
- package/LICENSE +21 -0
- package/Makefile +16 -0
- package/README.md +67 -0
- package/build/__mocks__/azure/index.d.ts +11 -0
- package/build/__mocks__/azure/index.js +132 -0
- package/build/__mocks__/boavizta/countries.json +138 -0
- package/build/__mocks__/boavizta/instance_types.json +625 -0
- package/build/__mocks__/boavizta/providers.json +1 -0
- package/build/__mocks__/fs/index.d.ts +3 -0
- package/build/__mocks__/fs/index.js +56 -0
- package/build/__mocks__/model-universe/index.d.ts +33 -0
- package/build/__mocks__/model-universe/index.js +68 -0
- package/build/__mocks__/watt-time/data.json +119 -0
- package/build/__tests__/integration/ompl/index.test.d.ts +1 -0
- package/build/__tests__/integration/ompl/index.test.js +61 -0
- package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/azure-importer/index.test.js +152 -0
- package/build/__tests__/unit/lib/boavizta/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/boavizta/index.test.js +579 -0
- package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/aveva.test.js +36 -0
- package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/emem.test.js +108 -0
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +53 -0
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +23 -0
- package/build/__tests__/unit/lib/ccf/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/ccf/index.test.js +223 -0
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +73 -0
- package/build/__tests__/unit/lib/sci/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci/index.test.js +106 -0
- package/build/__tests__/unit/lib/sci-e/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-e/index.test.js +30 -0
- package/build/__tests__/unit/lib/sci-m/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-m/index.test.js +58 -0
- package/build/__tests__/unit/lib/sci-o/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-o/index.test.js +42 -0
- package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/shell-imp/index.test.js +21 -0
- package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/tdp-finder/index.test.js +62 -0
- package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/teads-aws/index.test.js +170 -0
- package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/teads-curve/index.test.js +146 -0
- package/build/__tests__/unit/lib/watt-time/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/watt-time/index.test.js +106 -0
- package/build/__tests__/unit/util/args.test.d.ts +1 -0
- package/build/__tests__/unit/util/args.test.js +92 -0
- package/build/__tests__/unit/util/models-universe.test.d.ts +1 -0
- package/build/__tests__/unit/util/models-universe.test.js +211 -0
- package/build/__tests__/unit/util/observatory.test.d.ts +1 -0
- package/build/__tests__/unit/util/observatory.test.js +91 -0
- package/build/__tests__/unit/util/supercomputer.test.d.ts +1 -0
- package/build/__tests__/unit/util/supercomputer.test.js +231 -0
- package/build/__tests__/unit/util/yaml.test.d.ts +1 -0
- package/build/__tests__/unit/util/yaml.test.js +59 -0
- package/build/config/config.d.ts +32 -0
- package/build/config/config.js +74 -0
- package/build/config/index.d.ts +2 -0
- package/build/config/index.js +8 -0
- package/build/config/strings.d.ts +14 -0
- package/build/config/strings.js +30 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +46 -0
- package/build/lib/azure-importer/index.d.ts +55 -0
- package/build/lib/azure-importer/index.js +314 -0
- package/build/lib/boavizta/index.d.ts +53 -0
- package/build/lib/boavizta/index.js +254 -0
- package/build/lib/case-studies/aveva-model.d.ts +29 -0
- package/build/lib/case-studies/aveva-model.js +53 -0
- package/build/lib/case-studies/emem-model.d.ts +42 -0
- package/build/lib/case-studies/emem-model.js +93 -0
- package/build/lib/case-studies/eshoppen-model.d.ts +24 -0
- package/build/lib/case-studies/eshoppen-model.js +123 -0
- package/build/lib/case-studies/index.d.ts +4 -0
- package/build/lib/case-studies/index.js +21 -0
- package/build/lib/case-studies/sci-accenture-model.d.ts +10 -0
- package/build/lib/case-studies/sci-accenture-model.js +37 -0
- package/build/lib/ccf/aws-embodied.json +5591 -0
- package/build/lib/ccf/aws-instances.json +21116 -0
- package/build/lib/ccf/aws-use.json +79 -0
- package/build/lib/ccf/azure-embodied.json +6547 -0
- package/build/lib/ccf/azure-instances.json +8332 -0
- package/build/lib/ccf/azure-use.json +58 -0
- package/build/lib/ccf/gcp-embodied.json +3049 -0
- package/build/lib/ccf/gcp-instances.json +3880 -0
- package/build/lib/ccf/gcp-use.json +58 -0
- package/build/lib/ccf/index.d.ts +63 -0
- package/build/lib/ccf/index.js +338 -0
- package/build/lib/cloud-instance-metadata/aws-instances.json +1 -0
- package/build/lib/cloud-instance-metadata/azure-instances.json +1 -0
- package/build/lib/cloud-instance-metadata/index.d.ts +15 -0
- package/build/lib/cloud-instance-metadata/index.js +104 -0
- package/build/lib/index.d.ts +15 -0
- package/build/lib/index.js +32 -0
- package/build/lib/interfaces/ccf.d.ts +19 -0
- package/build/lib/interfaces/ccf.js +3 -0
- package/build/lib/interfaces/index.d.ts +7 -0
- package/build/lib/interfaces/index.js +18 -0
- package/build/lib/sci/index.d.ts +13 -0
- package/build/lib/sci/index.js +131 -0
- package/build/lib/sci-e/index.d.ts +38 -0
- package/build/lib/sci-e/index.js +85 -0
- package/build/lib/sci-m/index.d.ts +10 -0
- package/build/lib/sci-m/index.js +124 -0
- package/build/lib/sci-o/index.d.ts +17 -0
- package/build/lib/sci-o/index.js +52 -0
- package/build/lib/shell-imp/index.d.ts +32 -0
- package/build/lib/shell-imp/index.js +82 -0
- package/build/lib/tdp-finder/index.d.ts +19 -0
- package/build/lib/tdp-finder/index.js +98 -0
- package/build/lib/teads-aws/aws-embodied.json +1 -0
- package/build/lib/teads-aws/aws-instances.json +1 -0
- package/build/lib/teads-aws/index.d.ts +58 -0
- package/build/lib/teads-aws/index.js +208 -0
- package/build/lib/teads-curve/index.d.ts +52 -0
- package/build/lib/teads-curve/index.js +158 -0
- package/build/lib/watt-time/index.d.ts +18 -0
- package/build/lib/watt-time/index.js +204 -0
- package/build/types/azure-importer.d.ts +29 -0
- package/build/types/azure-importer.js +3 -0
- package/build/types/boavizta.d.ts +7 -0
- package/build/types/boavizta.js +3 -0
- package/build/types/common.d.ts +7 -0
- package/build/types/common.js +9 -0
- package/build/types/impl.d.ts +40 -0
- package/build/types/impl.js +3 -0
- package/build/types/models-universe.d.ts +24 -0
- package/build/types/models-universe.js +3 -0
- package/build/types/process-args.d.ts +7 -0
- package/build/types/process-args.js +3 -0
- package/build/types/supercomputer.d.ts +4 -0
- package/build/types/supercomputer.js +3 -0
- package/build/util/args.d.ts +8 -0
- package/build/util/args.js +48 -0
- package/build/util/errors.d.ts +6 -0
- package/build/util/errors.js +22 -0
- package/build/util/helpers.d.ts +4 -0
- package/build/util/helpers.js +18 -0
- package/build/util/models-universe.d.ts +28 -0
- package/build/util/models-universe.js +95 -0
- package/build/util/observatory.d.ts +20 -0
- package/build/util/observatory.js +31 -0
- package/build/util/supercomputer.d.ts +30 -0
- package/build/util/supercomputer.js +109 -0
- package/build/util/validations.d.ts +25 -0
- package/build/util/validations.js +52 -0
- package/build/util/yaml.d.ts +13 -0
- package/build/util/yaml.js +36 -0
- package/coverage/clover.xml +1172 -0
- package/coverage/coverage-final.json +27 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/config/config.ts.html +310 -0
- package/coverage/lcov-report/config/index.html +146 -0
- package/coverage/lcov-report/config/index.ts.html +91 -0
- package/coverage/lcov-report/config/strings.ts.html +118 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +341 -0
- package/coverage/lcov-report/lib/boavizta/index.html +116 -0
- package/coverage/lcov-report/lib/boavizta/index.ts.html +1171 -0
- package/coverage/lcov-report/lib/case-studies/aveva-model.ts.html +277 -0
- package/coverage/lcov-report/lib/case-studies/emem-model.ts.html +439 -0
- package/coverage/lcov-report/lib/case-studies/eshoppen-model.ts.html +550 -0
- package/coverage/lcov-report/lib/case-studies/index.html +176 -0
- package/coverage/lcov-report/lib/case-studies/index.ts.html +97 -0
- package/coverage/lcov-report/lib/case-studies/sci-accenture-model.ts.html +232 -0
- package/coverage/lcov-report/lib/ccf/index.html +116 -0
- package/coverage/lcov-report/lib/ccf/index.ts.html +1339 -0
- package/coverage/lcov-report/lib/cloud-instance-metadata/index.html +116 -0
- package/coverage/lcov-report/lib/cloud-instance-metadata/index.ts.html +370 -0
- package/coverage/lcov-report/lib/index.html +116 -0
- package/coverage/lcov-report/lib/index.ts.html +121 -0
- package/coverage/lcov-report/lib/sci/index.html +116 -0
- package/coverage/lcov-report/lib/sci/index.ts.html +571 -0
- package/coverage/lcov-report/lib/sci-e/index.html +116 -0
- package/coverage/lcov-report/lib/sci-e/index.ts.html +403 -0
- package/coverage/lcov-report/lib/sci-m/index.html +116 -0
- package/coverage/lcov-report/lib/sci-m/index.ts.html +487 -0
- package/coverage/lcov-report/lib/sci-o/index.html +116 -0
- package/coverage/lcov-report/lib/sci-o/index.ts.html +265 -0
- package/coverage/lcov-report/lib/shell-imp/index.html +116 -0
- package/coverage/lcov-report/lib/shell-imp/index.ts.html +376 -0
- package/coverage/lcov-report/lib/teads-aws/index.html +116 -0
- package/coverage/lcov-report/lib/teads-aws/index.ts.html +823 -0
- package/coverage/lcov-report/lib/teads-curve/index.html +116 -0
- package/coverage/lcov-report/lib/teads-curve/index.ts.html +625 -0
- package/coverage/lcov-report/lib/watt-time/index.html +116 -0
- package/coverage/lcov-report/lib/watt-time/index.ts.html +829 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/types/common.ts.html +109 -0
- package/coverage/lcov-report/types/index.html +116 -0
- package/coverage/lcov-report/util/args.ts.html +244 -0
- package/coverage/lcov-report/util/index.html +176 -0
- package/coverage/lcov-report/util/models-universe.ts.html +679 -0
- package/coverage/lcov-report/util/observatory.ts.html +229 -0
- package/coverage/lcov-report/util/supercomputer.ts.html +466 -0
- package/coverage/lcov-report/util/yaml.ts.html +193 -0
- package/coverage/lcov.info +2094 -0
- package/docs/implementations/tdp-finder.md +36 -0
- package/examples/impls/case-studies/accenture.yml +155 -0
- package/examples/impls/case-studies/aveva.yaml +48 -0
- package/examples/impls/case-studies/azure-yassine.yaml +67 -0
- package/examples/impls/case-studies/boavizta.yml +26 -0
- package/examples/impls/case-studies/dow_msft.yml +173 -0
- package/examples/impls/case-studies/farm-insights.yaml +35 -0
- package/examples/impls/case-studies/gsf-website.yaml +93 -0
- package/examples/impls/case-studies/msft-eshoppen.yaml +162 -0
- package/examples/impls/case-studies/msft-green-ai.yaml +58 -0
- package/examples/impls/case-studies/ntt-data-on-premise.yaml +201 -0
- package/examples/impls/tdp-finder-test.yml +19 -0
- package/examples/impls/test/azure.yml +26 -0
- package/examples/impls/test/ccf.yml +19 -0
- package/examples/impls/test/complex-pipeline.yml +67 -0
- package/examples/impls/test/if-demo.yml +51 -0
- package/examples/impls/test/metadata.yml +20 -0
- package/examples/impls/test/nesting.yml +65 -0
- package/examples/impls/test/sci-e.yml +21 -0
- package/examples/impls/test/sci-m.yml +24 -0
- package/examples/impls/test/sci-o.yml +28 -0
- package/examples/impls/test/sci.yml +27 -0
- package/examples/impls/test/shell.yml +18 -0
- package/examples/impls/test/toto.yaml +22 -0
- package/examples/ompls/azure.yml +145 -0
- package/examples/ompls/ccf.yml +27 -0
- package/examples/ompls/complex-pipeline.yml +105 -0
- package/examples/ompls/full-sci.yml +64 -0
- package/examples/ompls/if-demo.yml +493 -0
- package/examples/ompls/metadata.yml +29 -0
- package/examples/ompls/nesting.yml +107 -0
- package/examples/ompls/sci-e.yml +23 -0
- package/examples/ompls/sci-m.yml +33 -0
- package/examples/ompls/sci-o.yml +29 -0
- package/examples/ompls/sci.yml +36 -0
- package/examples/ompls/shell.yml +23 -0
- package/jest.config.js +14 -0
- package/package.json +71 -0
- package/scripts/impact-test.sh +12 -0
- package/src/__mocks__/boavizta/countries.json +138 -0
- package/src/__mocks__/boavizta/instance_types.json +625 -0
- package/src/__mocks__/boavizta/providers.json +1 -0
- package/src/__mocks__/watt-time/data.json +119 -0
- package/src/config/units.yaml +125 -0
- package/src/lib/ccf/aws-embodied.json +5591 -0
- package/src/lib/ccf/aws-instances.json +21116 -0
- package/src/lib/ccf/aws-use.json +79 -0
- package/src/lib/ccf/azure-embodied.json +6547 -0
- package/src/lib/ccf/azure-instances.json +8332 -0
- package/src/lib/ccf/azure-use.json +58 -0
- package/src/lib/ccf/gcp-embodied.json +3049 -0
- package/src/lib/ccf/gcp-instances.json +3880 -0
- package/src/lib/ccf/gcp-use.json +58 -0
- package/src/lib/cloud-instance-metadata/aws-instances.json +1 -0
- package/src/lib/cloud-instance-metadata/azure-instances.json +1 -0
- package/src/lib/shell-imp/sampler +30 -0
- package/src/lib/tdp-finder/README.md +7 -0
- package/src/lib/tdp-finder/boavizta_data.csv +1768 -0
- package/src/lib/tdp-finder/data.csv +4460 -0
- package/src/lib/tdp-finder/data2.csv +2162 -0
- package/src/lib/teads-aws/aws-embodied.json +1 -0
- package/src/lib/teads-aws/aws-instances.json +1 -0
- package/tsconfig.test.json +39 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/yarn-error.log +5854 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const index_1 = require("../../../../lib/teads-curve/index");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('teads:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize with params', async () => {
|
|
8
|
+
const outputModel = new index_1.TeadsCurveModel();
|
|
9
|
+
await outputModel.configure('test', {
|
|
10
|
+
'thermal-design-power': 200,
|
|
11
|
+
});
|
|
12
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
13
|
+
{
|
|
14
|
+
duration: 3600,
|
|
15
|
+
'cpu-util': 50.0,
|
|
16
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
17
|
+
},
|
|
18
|
+
])).resolves.toStrictEqual([
|
|
19
|
+
{
|
|
20
|
+
'energy-cpu': 0.15,
|
|
21
|
+
duration: 3600,
|
|
22
|
+
'cpu-util': 50.0,
|
|
23
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
24
|
+
},
|
|
25
|
+
]);
|
|
26
|
+
});
|
|
27
|
+
(0, globals_1.test)('teads:initialize with params:spline', async () => {
|
|
28
|
+
const outputModel = new index_1.TeadsCurveModel();
|
|
29
|
+
await outputModel.configure('test', {
|
|
30
|
+
'thermal-design-power': 300,
|
|
31
|
+
});
|
|
32
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
33
|
+
{
|
|
34
|
+
duration: 3600,
|
|
35
|
+
'cpu-util': 10.0,
|
|
36
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
duration: 3600,
|
|
40
|
+
'cpu-util': 50.0,
|
|
41
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
duration: 3600,
|
|
45
|
+
'cpu-util': 100.0,
|
|
46
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
47
|
+
},
|
|
48
|
+
])).resolves.toStrictEqual([
|
|
49
|
+
{
|
|
50
|
+
duration: 3600,
|
|
51
|
+
'cpu-util': 10.0,
|
|
52
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
53
|
+
'energy-cpu': 0.096,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
duration: 3600,
|
|
57
|
+
'cpu-util': 50.0,
|
|
58
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
59
|
+
'energy-cpu': 0.225,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
duration: 3600,
|
|
63
|
+
'cpu-util': 100.0,
|
|
64
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
65
|
+
'energy-cpu': 0.306,
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
});
|
|
69
|
+
(0, globals_1.test)('teads:initialize with params:linear', async () => {
|
|
70
|
+
const outputModel = new index_1.TeadsCurveModel();
|
|
71
|
+
await outputModel.configure('test', {
|
|
72
|
+
'thermal-design-power': 300,
|
|
73
|
+
interpolation: 'linear',
|
|
74
|
+
});
|
|
75
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
76
|
+
{
|
|
77
|
+
duration: 3600,
|
|
78
|
+
'cpu-util': 10.0,
|
|
79
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
duration: 3600,
|
|
83
|
+
'cpu-util': 50.0,
|
|
84
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
duration: 3600,
|
|
88
|
+
'cpu-util': 100.0,
|
|
89
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
duration: 3600,
|
|
93
|
+
'cpu-util': 15.0,
|
|
94
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
duration: 3600,
|
|
98
|
+
'cpu-util': 55.0,
|
|
99
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
duration: 3600,
|
|
103
|
+
'cpu-util': 75.0,
|
|
104
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
105
|
+
},
|
|
106
|
+
])).resolves.toStrictEqual([
|
|
107
|
+
{
|
|
108
|
+
duration: 3600,
|
|
109
|
+
'cpu-util': 10.0,
|
|
110
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
111
|
+
'energy-cpu': 0.096,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
duration: 3600,
|
|
115
|
+
'cpu-util': 50.0,
|
|
116
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
117
|
+
'energy-cpu': 0.225,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
duration: 3600,
|
|
121
|
+
'cpu-util': 100.0,
|
|
122
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
123
|
+
'energy-cpu': 0.306,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
duration: 3600,
|
|
127
|
+
'cpu-util': 15.0,
|
|
128
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
129
|
+
'energy-cpu': 0.11212500000000002,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
duration: 3600,
|
|
133
|
+
'cpu-util': 55.0,
|
|
134
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
135
|
+
'energy-cpu': 0.2331,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
duration: 3600,
|
|
139
|
+
'cpu-util': 75.0,
|
|
140
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
141
|
+
'energy-cpu': 0.2655,
|
|
142
|
+
},
|
|
143
|
+
]);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvdGVhZHMtY3VydmUvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCw2REFBa0U7QUFFbEUsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLElBQUEsY0FBSSxFQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksdUJBQWUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsc0JBQXNCLEVBQUUsR0FBRztTQUM1QixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ2xCO2dCQUNFLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixTQUFTLEVBQUUsc0JBQXNCO2FBQ2xDO1NBQ0YsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxZQUFZLEVBQUUsSUFBSTtnQkFDbEIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUEsY0FBSSxFQUFDLHFDQUFxQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksdUJBQWUsRUFBRSxDQUFDO1FBQzFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsc0JBQXNCLEVBQUUsR0FBRztTQUM1QixDQUFDLENB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Q0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLFlBQVksRUFBRSxNQUFNO2FBQ3JCO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLFlBQVksRUFBRSxNQUFNO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge1RlYWRzQ3VydmVNb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3RlYWRzLWN1cnZlL2luZGV4JztcblxuamVzdC5zZXRUaW1lb3V0KDMwMDAwKTtcblxuZGVzY3JpYmUoJ3RlYWRzOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIHdpdGggcGFyYW1zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG91dHB1dE1vZGVsID0gbmV3IFRlYWRzQ3VydmVNb2RlbCgpO1xuICAgIGF3YWl0IG91dHB1dE1vZGVsLmNvbmZpZ3VyZSgndGVzdCcsIHtcbiAgICAgICd0aGVybWFsLWRlc2lnbi1wb3dlcic6IDIwMCxcbiAgICB9KTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdjcHUtdXRpbCc6IDUwLjAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAnZW5lcmd5LWNwdSc6IDAuMTUsXG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiA1MC4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbiAgdGVzdCgndGVhZHM6aW5pdGlhbGl6ZSB3aXRoIHBhcmFtczpzcGxpbmUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgVGVhZHNDdXJ2ZU1vZGVsKCk7XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge1xuICAgICAgJ3RoZXJtYWwtZGVzaWduLXBvd2VyJzogMzAwLFxuICAgIH0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogMTAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiA1MC4wLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdjcHUtdXRpbCc6IDEwMC4wLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDEwLjAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgJ2VuZXJneS1jcHUnOiAwLjA5NixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiA1MC4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMC4yMjUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTAwLjAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgJ2VuZXJneS1jcHUnOiAwLjMwNixcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xuICB0ZXN0KCd0ZWFkczppbml0aWFsaXplIHdpdGggcGFyYW1zOmxpbmVhcicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRwdXRNb2RlbCA9IG5ldyBUZWFkc0N1cnZlTW9kZWwoKTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICAndGhlcm1hbC1kZXNpZ24tcG93ZXInOiAzMDAsXG4gICAgICBpbnRlcnBvbGF0aW9uOiAnbGluZWFyJyxcbiAgICB9KTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdjcHUtdXRpbCc6IDEwLjAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogNTAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxMDAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxNS4wLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdjcHUtdXRpbCc6IDU1LjAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogNzUuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChbXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiAxMC4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMC4wOTYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogNTAuMCxcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICAnZW5lcmd5LWNwdSc6IDAuMjI1LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDEwMC4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMC4zMDYsXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiAxNS4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMC4xMTIxMjUwMDAwMDAwMDAwMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiA1NS4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMC4yMzMxLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDc1LjAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgJ2VuZXJneS1jcHUnOiAwLjI2NTUsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const index_1 = require("../../../../lib/watt-time/index");
|
|
5
|
+
const DATA = require("../../../../__mocks__/watt-time/data.json");
|
|
6
|
+
const axios_1 = require("axios");
|
|
7
|
+
globals_1.jest.setTimeout(30000);
|
|
8
|
+
globals_1.jest.mock('axios');
|
|
9
|
+
const mockAxios = axios_1.default;
|
|
10
|
+
// Mock out all top level functions, such as get, put, delete and post:
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
mockAxios.get.mockImplementation(url => {
|
|
14
|
+
switch (url) {
|
|
15
|
+
case 'https://api2.watttime.org/v2/login':
|
|
16
|
+
return Promise.resolve({
|
|
17
|
+
status: 200,
|
|
18
|
+
data: {
|
|
19
|
+
token: 'test_token',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
case 'https://api2.watttime.org/v2/data':
|
|
23
|
+
return Promise.resolve({
|
|
24
|
+
data: DATA,
|
|
25
|
+
status: 200,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
(0, globals_1.describe)('watt-time:configure test', () => {
|
|
30
|
+
(0, globals_1.test)('initialize and test', async () => {
|
|
31
|
+
const model = await new index_1.WattTimeGridEmissions().configure('watt-time', {
|
|
32
|
+
username: 'test1',
|
|
33
|
+
password: 'test2',
|
|
34
|
+
});
|
|
35
|
+
(0, globals_1.expect)(model).toBeInstanceOf(index_1.WattTimeGridEmissions);
|
|
36
|
+
await (0, globals_1.expect)(model.execute([
|
|
37
|
+
{
|
|
38
|
+
location: '37.7749,-122.4194',
|
|
39
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
40
|
+
duration: 1200,
|
|
41
|
+
},
|
|
42
|
+
])).resolves.toStrictEqual([
|
|
43
|
+
{
|
|
44
|
+
location: '37.7749,-122.4194',
|
|
45
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
46
|
+
duration: 1200,
|
|
47
|
+
'grid-carbon-intensity': 2185.332173907599,
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
await (0, globals_1.expect)(model.execute([
|
|
51
|
+
{
|
|
52
|
+
location: '37.7749,-122.4194',
|
|
53
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
54
|
+
duration: 120,
|
|
55
|
+
},
|
|
56
|
+
])).resolves.toStrictEqual([
|
|
57
|
+
{
|
|
58
|
+
location: '37.7749,-122.4194',
|
|
59
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
60
|
+
duration: 120,
|
|
61
|
+
'grid-carbon-intensity': 2198.0087539832293,
|
|
62
|
+
},
|
|
63
|
+
]);
|
|
64
|
+
await (0, globals_1.expect)(model.execute([
|
|
65
|
+
{
|
|
66
|
+
location: '37.7749,-122.4194',
|
|
67
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
68
|
+
duration: 300,
|
|
69
|
+
},
|
|
70
|
+
])).resolves.toStrictEqual([
|
|
71
|
+
{
|
|
72
|
+
location: '37.7749,-122.4194',
|
|
73
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
74
|
+
duration: 300,
|
|
75
|
+
'grid-carbon-intensity': 2198.0087539832293,
|
|
76
|
+
},
|
|
77
|
+
]);
|
|
78
|
+
await (0, globals_1.expect)(model.execute([
|
|
79
|
+
{
|
|
80
|
+
location: '37.7749,-122.4194',
|
|
81
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
82
|
+
duration: 360,
|
|
83
|
+
},
|
|
84
|
+
])).resolves.toStrictEqual([
|
|
85
|
+
{
|
|
86
|
+
location: '37.7749,-122.4194',
|
|
87
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
88
|
+
duration: 360,
|
|
89
|
+
'grid-carbon-intensity': 2193.5995087395318,
|
|
90
|
+
},
|
|
91
|
+
]);
|
|
92
|
+
await (0, globals_1.expect)(model.execute([
|
|
93
|
+
{
|
|
94
|
+
location: '37.7749,-122.4194',
|
|
95
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
96
|
+
duration: 3600,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
location: '37.7749,-122.4194',
|
|
100
|
+
timestamp: '2021-01-02T01:00:00Z',
|
|
101
|
+
duration: 3600,
|
|
102
|
+
},
|
|
103
|
+
])).rejects.toThrowError();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvd2F0dC10aW1lL2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QsMkRBQXNFO0FBQ3RFLGtFQUFrRTtBQUNsRSxpQ0FBMEI7QUFFMUIsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25CLE1BQU0sU0FBUyxHQUFHLGVBQWtDLENBQUM7QUFDckQsdUVBQXVFO0FBQ3ZFLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNyQyxRQUFRLEdBQUcsRUFBRTtRQUNYLEtBQUssb0NBQW9DO1lBQ3ZDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDckIsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxZQUFZO2lCQUNwQjthQUNGLENBQUMsQ0FBQztRQUNMLEtBQUssbUNBQW1DO1lBQ3RDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDckIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLEdBQUc7YUFDWixDQUFDLENBQUM7S0FDTjtBQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0gsSUFBQSxrQkFBUSxFQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtJQUN4QyxJQUFBLGNBQUksRUFBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksNkJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQ3JFLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsNkJBQXFCLENBQUMsQ0FBQztRQUNwRCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsdUJBQXVCLEVBQUUsaUJBQWlCO2FBQzNDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLFFBQVEsRUFBRSxHQUFHO2FBQ2Q7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLFFBQVEsRUFBRSxHQUFHO2dCQUNiLHVCQUF1QixFQUFFLGtCQUFrQjthQUM1QztTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixTQUFTLEVBQUUsc0JBQXNCO2dCQUNqQyxRQUFRLEVBQUUsR0FBRzthQUNkO1NBQ0YsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixTQUFTLEVBQUUsc0JBQXNCO2dCQUNqQyxRQUFRLEVBQUUsR0FBRztnQkFDYix1QkFBdUIsRUFBRSxrQkFBa0I7YUFDNUM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsUUFBUSxFQUFFLEdBQUc7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsdUJBQXVCLEVBQUUsa0JBQWtCO2FBQzVDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRDtnQkFDRSxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixTQUFTLEVBQUUsc0JBQXNCO2dCQUNqQyxRQUFRLEVBQUUsSUFBSTthQUNmO1NBQ0YsQ0FBQyxDQUNILENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rlc2NyaWJlLCBleHBlY3QsIGplc3QsIHRlc3R9IGZyb20gJ0BqZXN0L2dsb2JhbHMnO1xuaW1wb3J0IHtXYXR0VGltZUdyaWRFbWlzc2lvbnN9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi93YXR0LXRpbWUvaW5kZXgnO1xuaW1wb3J0ICogYXMgREFUQSBmcm9tICcuLi8uLi8uLi8uLi9fX21vY2tzX18vd2F0dC10aW1lL2RhdGEuanNvbic7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5qZXN0Lm1vY2soJ2F4aW9zJyk7XG5jb25zdCBtb2NrQXhpb3MgPSBheGlvcyBhcyBqZXN0Lk1vY2tlZDx0eXBlb2YgYXhpb3M+O1xuLy8gTW9jayBvdXQgYWxsIHRvcCBsZXZlbCBmdW5jdGlvbnMsIHN1Y2ggYXMgZ2V0LCBwdXQsIGRlbGV0ZSBhbmQgcG9zdDpcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbi8vIEB0cy1pZ25vcmVcbm1vY2tBeGlvcy5nZXQubW9ja0ltcGxlbWVudGF0aW9uKHVybCA9PiB7XG4gIHN3aXRjaCAodXJsKSB7XG4gICAgY2FzZSAnaHR0cHM6Ly9hcGkyLndhdHR0aW1lLm9yZy92Mi9sb2dpbic6XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0b2tlbjogJ3Rlc3RfdG9rZW4nLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY2FzZSAnaHR0cHM6Ly9hcGkyLndhdHR0aW1lLm9yZy92Mi9kYXRhJzpcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBkYXRhOiBEQVRBLFxuICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgIH0pO1xuICB9XG59KTtcbmRlc2NyaWJlKCd3YXR0LXRpbWU6Y29uZmlndXJlIHRlc3QnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgYW5kIHRlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgV2F0dFRpbWVHcmlkRW1pc3Npb25zKCkuY29uZmlndXJlKCd3YXR0LXRpbWUnLCB7XG4gICAgICB1c2VybmFtZTogJ3Rlc3QxJyxcbiAgICAgIHBhc3N3b3JkOiAndGVzdDInLFxuICAgIH0pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoV2F0dFRpbWVHcmlkRW1pc3Npb25zKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIGxvY2F0aW9uOiAnMzcuNzc0OSwtMTIyLjQxOTQnLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgICBkdXJhdGlvbjogMTIwMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246ICczNy43NzQ5LC0xMjIuNDE5NCcsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZHVyYXRpb246IDEyMDAsXG4gICAgICAgICdncmlkLWNhcmJvbi1pbnRlbnNpdHknOiAyMTg1LjMzMjE3MzkwNzU5OSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBsb2NhdGlvbjogJzM3Ljc3NDksLTEyMi40MTk0JyxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICAgZHVyYXRpb246IDEyMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246ICczNy43NzQ5LC0xMjIuNDE5NCcsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZHVyYXRpb246IDEyMCxcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIxOTguMDA4NzUzOTgzMjI5MyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBsb2NhdGlvbjogJzM3Ljc3NDksLTEyMi40MTk0JyxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246ICczNy43NzQ5LC0xMjIuNDE5NCcsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIxOTguMDA4NzUzOTgzMjI5MyxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBsb2NhdGlvbjogJzM3Ljc3NDksLTEyMi40MTk0JyxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgICAgZHVyYXRpb246IDM2MCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246ICczNy43NzQ5LC0xMjIuNDE5NCcsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZHVyYXRpb246IDM2MCxcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIxOTMuNTk5NTA4NzM5NTMxOCxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIGxvY2F0aW9uOiAnMzcuNzc0OSwtMTIyLjQxOTQnLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxvY2F0aW9uOiAnMzcuNzc0OSwtMTIyLjQxOTQnLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDJUMDE6MDA6MDBaJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
jest.mock('ts-command-line-args', () => ({
|
|
4
|
+
__esModule: true,
|
|
5
|
+
parse: () => {
|
|
6
|
+
switch (process.env.result) {
|
|
7
|
+
case 'error':
|
|
8
|
+
return {};
|
|
9
|
+
case 'impl':
|
|
10
|
+
return {
|
|
11
|
+
impl: 'impl-mock.yml',
|
|
12
|
+
};
|
|
13
|
+
case 'impl-ompl':
|
|
14
|
+
return {
|
|
15
|
+
impl: 'impl-mock.yml',
|
|
16
|
+
ompl: 'ompl-mock.yml',
|
|
17
|
+
};
|
|
18
|
+
case 'help':
|
|
19
|
+
return {
|
|
20
|
+
help: true,
|
|
21
|
+
};
|
|
22
|
+
default:
|
|
23
|
+
return {
|
|
24
|
+
impl: 'mock-impl.yaml',
|
|
25
|
+
ompl: 'mock-ompl',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
}));
|
|
30
|
+
const path = require("path");
|
|
31
|
+
const args_1 = require("../../../util/args");
|
|
32
|
+
const errors_1 = require("../../../util/errors");
|
|
33
|
+
const config_1 = require("../../../config");
|
|
34
|
+
const { CliInputError } = errors_1.ERRORS;
|
|
35
|
+
const { impact } = config_1.CONFIG;
|
|
36
|
+
const { HELP } = impact;
|
|
37
|
+
const { IMPL_IS_MISSING } = config_1.STRINGS;
|
|
38
|
+
describe('util/args: ', () => {
|
|
39
|
+
const originalEnv = process.env;
|
|
40
|
+
describe('parseProcessArgument(): ', () => {
|
|
41
|
+
it('throws error if there is no argument passed.', () => {
|
|
42
|
+
expect.assertions(2);
|
|
43
|
+
process.env.result = 'error'; // used for mocking
|
|
44
|
+
try {
|
|
45
|
+
(0, args_1.parseProcessArgument)();
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (error instanceof Error) {
|
|
49
|
+
expect(error).toBeInstanceOf(CliInputError);
|
|
50
|
+
expect(error.message).toEqual(IMPL_IS_MISSING);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
it('returns impl path.', () => {
|
|
55
|
+
expect.assertions(1);
|
|
56
|
+
process.env.result = 'impl';
|
|
57
|
+
const result = (0, args_1.parseProcessArgument)();
|
|
58
|
+
const processRunningPath = process.cwd();
|
|
59
|
+
const implPath = 'impl-mock.yml';
|
|
60
|
+
const expectedResult = {
|
|
61
|
+
inputPath: path.normalize(`${processRunningPath}/${implPath}`),
|
|
62
|
+
};
|
|
63
|
+
expect(result).toEqual(expectedResult);
|
|
64
|
+
});
|
|
65
|
+
it('returns impl and ompl path.', () => {
|
|
66
|
+
expect.assertions(1);
|
|
67
|
+
process.env.result = 'impl-ompl';
|
|
68
|
+
const result = (0, args_1.parseProcessArgument)();
|
|
69
|
+
const processRunningPath = process.cwd();
|
|
70
|
+
const implPath = 'impl-mock.yml';
|
|
71
|
+
const omplPath = 'ompl-mock.yml';
|
|
72
|
+
const expectedResult = {
|
|
73
|
+
inputPath: path.normalize(`${processRunningPath}/${implPath}`),
|
|
74
|
+
outputPath: path.normalize(`${processRunningPath}/${omplPath}`),
|
|
75
|
+
};
|
|
76
|
+
expect(result).toEqual(expectedResult);
|
|
77
|
+
});
|
|
78
|
+
it('logs help.', () => {
|
|
79
|
+
expect.assertions(3);
|
|
80
|
+
const originalLog = console.log;
|
|
81
|
+
console.log = jest.fn();
|
|
82
|
+
process.env.result = 'help';
|
|
83
|
+
const result = (0, args_1.parseProcessArgument)();
|
|
84
|
+
expect(result).toBeUndefined();
|
|
85
|
+
expect(console.log).toBeCalledTimes(1);
|
|
86
|
+
expect(console.log).toBeCalledWith(HELP);
|
|
87
|
+
console.log = originalLog;
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
process.env = originalEnv;
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19fdGVzdHNfXy91bml0L3V0aWwvYXJncy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzFCLEtBQUssT0FBTztnQkFDVixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDVCxPQUFPO29CQUNMLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO1lBQ0osS0FBSyxXQUFXO2dCQUNkLE9BQU87b0JBQ0wsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO1lBQ0osS0FBSyxNQUFNO2dCQUNULE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQztZQUNKO2dCQUNFLE9BQU87b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCLENBQUM7U0FDTDtJQUNILENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUVKLDZCQUE4QjtBQUU5Qiw2Q0FBd0Q7QUFDeEQsaURBQTRDO0FBRTVDLDRDQUFnRDtBQUVoRCxNQUFNLEVBQUMsYUFBYSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9CLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDeEIsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLE1BQU0sQ0FBQztBQUN0QixNQUFNLEVBQUMsZUFBZSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVsQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRWhDLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7UUFDeEMsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQjtZQUVqRCxJQUFJO2dCQUNGLElBQUEsMkJBQW9CLEdBQUUsQ0FBQzthQUN4QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtvQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDNUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ2hEO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7WUFDNUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFFNUIsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQkFBb0IsR0FBRSxDQUFDO1lBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRXpDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQztZQUNqQyxNQUFNLGNBQWMsR0FBRztnQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsSUFBSSxRQUFRLEVBQUUsQ0FBQzthQUMvRCxDQUFDO1lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7WUFDckMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7WUFFakMsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQkFBb0IsR0FBRSxDQUFDO1lBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBRXpDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQztZQUNqQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUM7WUFDakMsTUFBTSxjQUFjLEdBQUc7Z0JBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzlELFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLElBQUksUUFBUSxFQUFFLENBQUM7YUFDaEUsQ0FBQztZQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNwQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDaEMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFFeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBRTVCLE1BQU0sTUFBTSxHQUFHLElBQUEsMkJBQW9CLEdBQUUsQ0FBQztZQUV0QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFekMsT0FBTyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiamVzdC5tb2NrKCd0cy1jb21tYW5kLWxpbmUtYXJncycsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIHBhcnNlOiAoKSA9PiB7XG4gICAgc3dpdGNoIChwcm9jZXNzLmVudi5yZXN1bHQpIHtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgY2FzZSAnaW1wbCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wbDogJ2ltcGwtbW9jay55bWwnLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnaW1wbC1vbXBsJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbXBsOiAnaW1wbC1tb2NrLnltbCcsXG4gICAgICAgICAgb21wbDogJ29tcGwtbW9jay55bWwnLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnaGVscCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVscDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wbDogJ21vY2staW1wbC55YW1sJyxcbiAgICAgICAgICBvbXBsOiAnbW9jay1vbXBsJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH0sXG59KSk7XG5cbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5pbXBvcnQge3BhcnNlUHJvY2Vzc0FyZ3VtZW50fSBmcm9tICcuLi8uLi8uLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uLy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtTVFJJTkdTLCBDT05GSUd9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtDbGlJbnB1dEVycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge2ltcGFjdH0gPSBDT05GSUc7XG5jb25zdCB7SEVMUH0gPSBpbXBhY3Q7XG5jb25zdCB7SU1QTF9JU19NSVNTSU5HfSA9IFNUUklOR1M7XG5cbmRlc2NyaWJlKCd1dGlsL2FyZ3M6ICcsICgpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxFbnYgPSBwcm9jZXNzLmVudjtcblxuICBkZXNjcmliZSgncGFyc2VQcm9jZXNzQXJndW1lbnQoKTogJywgKCkgPT4ge1xuICAgIGl0KCd0aHJvd3MgZXJyb3IgaWYgdGhlcmUgaXMgbm8gYXJndW1lbnQgcGFzc2VkLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnZXJyb3InOyAvLyB1c2VkIGZvciBtb2NraW5nXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoQ2xpSW5wdXRFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoSU1QTF9JU19NSVNTSU5HKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgaW1wbCBwYXRoLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDEpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaW1wbCc7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG4gICAgICBjb25zdCBwcm9jZXNzUnVubmluZ1BhdGggPSBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgICBjb25zdCBpbXBsUGF0aCA9ICdpbXBsLW1vY2sueW1sJztcbiAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0ID0ge1xuICAgICAgICBpbnB1dFBhdGg6IHBhdGgubm9ybWFsaXplKGAke3Byb2Nlc3NSdW5uaW5nUGF0aH0vJHtpbXBsUGF0aH1gKSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgaW1wbCBhbmQgb21wbCBwYXRoLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDEpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaW1wbC1vbXBsJztcblxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFyc2VQcm9jZXNzQXJndW1lbnQoKTtcbiAgICAgIGNvbnN0IHByb2Nlc3NSdW5uaW5nUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAgIGNvbnN0IGltcGxQYXRoID0gJ2ltcGwtbW9jay55bWwnO1xuICAgICAgY29uc3Qgb21wbFBhdGggPSAnb21wbC1tb2NrLnltbCc7XG4gICAgICBjb25zdCBleHBlY3RlZFJlc3VsdCA9IHtcbiAgICAgICAgaW5wdXRQYXRoOiBwYXRoLm5vcm1hbGl6ZShgJHtwcm9jZXNzUnVubmluZ1BhdGh9LyR7aW1wbFBhdGh9YCksXG4gICAgICAgIG91dHB1dFBhdGg6IHBhdGgubm9ybWFsaXplKGAke3Byb2Nlc3NSdW5uaW5nUGF0aH0vJHtvbXBsUGF0aH1gKSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2xvZ3MgaGVscC4nLCAoKSA9PiB7XG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygzKTtcblxuICAgICAgY29uc3Qgb3JpZ2luYWxMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIGNvbnNvbGUubG9nID0gamVzdC5mbigpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaGVscCc7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChjb25zb2xlLmxvZykudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgICAgZXhwZWN0KGNvbnNvbGUubG9nKS50b0JlQ2FsbGVkV2l0aChIRUxQKTtcblxuICAgICAgY29uc29sZS5sb2cgPSBvcmlnaW5hbExvZztcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvY2Vzcy5lbnYgPSBvcmlnaW5hbEVudjtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const model_universe_1 = require("../../../__mocks__/model-universe");
|
|
4
|
+
const lib_1 = require("../../../lib");
|
|
5
|
+
const models_universe_1 = require("../../../util/models-universe");
|
|
6
|
+
const config_1 = require("../../../config");
|
|
7
|
+
const { MISSING_CLASSNAME, MISSING_PATH, NOT_OUTPUT_MODEL_EXTENSION, NOT_INITIALIZED_MODEL, } = config_1.STRINGS;
|
|
8
|
+
describe('util/models-universe: ', () => {
|
|
9
|
+
describe('init ModelsUniverse', () => {
|
|
10
|
+
it('initializes object with required properties.', () => {
|
|
11
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
12
|
+
expect(typeof modelsHandbook.getInitializedModel).toBe('function');
|
|
13
|
+
expect(typeof modelsHandbook.initalizedModels).toBe('object');
|
|
14
|
+
expect(typeof modelsHandbook.writeDown).toBe('function');
|
|
15
|
+
expect(modelsHandbook.initalizedModels).toEqual({});
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
describe('writeDown(): ', () => {
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
jest.resetModules();
|
|
21
|
+
jest.restoreAllMocks();
|
|
22
|
+
});
|
|
23
|
+
it('throws error in case model is not supported.', () => {
|
|
24
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
25
|
+
const modelInfo = {
|
|
26
|
+
config: {
|
|
27
|
+
allocation: 'mock-allocation',
|
|
28
|
+
verbose: true,
|
|
29
|
+
},
|
|
30
|
+
name: 'test',
|
|
31
|
+
};
|
|
32
|
+
const expectedMessage = `Missing or wrong model: ${modelInfo.name}.`;
|
|
33
|
+
try {
|
|
34
|
+
modelsHandbook.writeDown(modelInfo);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error instanceof Error) {
|
|
38
|
+
expect(error.message).toEqual(expectedMessage);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
it('registers `shell` model in initalized models list.', () => {
|
|
43
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
44
|
+
const modelInfo = {
|
|
45
|
+
config: {
|
|
46
|
+
allocation: 'mock-allocation',
|
|
47
|
+
verbose: true,
|
|
48
|
+
},
|
|
49
|
+
name: 'mock-name',
|
|
50
|
+
};
|
|
51
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
52
|
+
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
53
|
+
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
54
|
+
});
|
|
55
|
+
it('registers `plugin` model in initalized models list.', () => {
|
|
56
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
57
|
+
const modelInfo = {
|
|
58
|
+
config: {
|
|
59
|
+
allocation: 'mock-allocation',
|
|
60
|
+
verbose: true,
|
|
61
|
+
},
|
|
62
|
+
name: 'mock-name',
|
|
63
|
+
};
|
|
64
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
65
|
+
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
66
|
+
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
67
|
+
});
|
|
68
|
+
it('throws `missing classname` error while registration of `plugin` model.', async () => {
|
|
69
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
70
|
+
const modelInfo = {
|
|
71
|
+
config: {
|
|
72
|
+
allocation: 'mock-allocation',
|
|
73
|
+
verbose: true,
|
|
74
|
+
},
|
|
75
|
+
name: 'mock-name',
|
|
76
|
+
};
|
|
77
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
78
|
+
const model = modelsList[modelInfo.name];
|
|
79
|
+
expect.assertions(2);
|
|
80
|
+
try {
|
|
81
|
+
await model({
|
|
82
|
+
'core-units': 1,
|
|
83
|
+
'physical-processor': 'intel',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof Error) {
|
|
88
|
+
expect(error).toBeInstanceOf(Error);
|
|
89
|
+
expect(error.message).toEqual(MISSING_CLASSNAME);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
it('throws `missing path parameter` error while registration of `plugin` model.', async () => {
|
|
94
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
95
|
+
const modelInfo = {
|
|
96
|
+
config: {
|
|
97
|
+
allocation: 'mock-allocation',
|
|
98
|
+
verbose: true,
|
|
99
|
+
},
|
|
100
|
+
name: 'mock-name',
|
|
101
|
+
model: 'MockaviztaModel',
|
|
102
|
+
};
|
|
103
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
104
|
+
const model = modelsList[modelInfo.name];
|
|
105
|
+
expect.assertions(2);
|
|
106
|
+
try {
|
|
107
|
+
await model({
|
|
108
|
+
'core-units': 1,
|
|
109
|
+
'physical-processor': 'intel',
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (error instanceof Error) {
|
|
114
|
+
expect(error).toBeInstanceOf(Error);
|
|
115
|
+
expect(error.message).toEqual(MISSING_PATH);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
it('should successfully initalize plugin model.', async () => {
|
|
120
|
+
jest.mock('mockavizta-model', () => ({
|
|
121
|
+
__esModule: true,
|
|
122
|
+
MockaviztaModel: model_universe_1.MockModel,
|
|
123
|
+
}), { virtual: true });
|
|
124
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
125
|
+
const modelInfo = {
|
|
126
|
+
config: {
|
|
127
|
+
allocation: 'mock-allocation',
|
|
128
|
+
verbose: true,
|
|
129
|
+
},
|
|
130
|
+
name: 'mock-name',
|
|
131
|
+
model: 'MockaviztaModel',
|
|
132
|
+
path: 'https://github.com/mock/mockavizta-model',
|
|
133
|
+
};
|
|
134
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
135
|
+
const model = modelsList[modelInfo.name];
|
|
136
|
+
expect.assertions(1);
|
|
137
|
+
const response = await model({
|
|
138
|
+
'core-units': 1,
|
|
139
|
+
'physical-processor': 'intel',
|
|
140
|
+
});
|
|
141
|
+
expect(response).toBeInstanceOf(model_universe_1.MockModel);
|
|
142
|
+
});
|
|
143
|
+
it('should throw `input model does not extend base interface` error.', async () => {
|
|
144
|
+
jest.mock('mockavizta-model', () => ({
|
|
145
|
+
__esModule: true,
|
|
146
|
+
MockaviztaModel: class FakeModel {
|
|
147
|
+
},
|
|
148
|
+
}), { virtual: true });
|
|
149
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
150
|
+
const modelInfo = {
|
|
151
|
+
config: {
|
|
152
|
+
allocation: 'mock-allocation',
|
|
153
|
+
verbose: true,
|
|
154
|
+
},
|
|
155
|
+
name: 'mock-name',
|
|
156
|
+
model: 'MockaviztaModel',
|
|
157
|
+
path: 'https://github.com/mock/mockavizta-model',
|
|
158
|
+
};
|
|
159
|
+
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
160
|
+
const model = modelsList[modelInfo.name];
|
|
161
|
+
expect.assertions(2);
|
|
162
|
+
try {
|
|
163
|
+
await model({
|
|
164
|
+
'core-units': 1,
|
|
165
|
+
'physical-processor': 'intel',
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
if (error instanceof Error) {
|
|
170
|
+
expect(error).toBeInstanceOf(Error);
|
|
171
|
+
expect(error.message).toEqual(NOT_OUTPUT_MODEL_EXTENSION);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
describe('getInitializedModel(): ', () => {
|
|
177
|
+
it('throws error in case if model is not initalized.', async () => {
|
|
178
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
179
|
+
const modelName = 'mock-modelName';
|
|
180
|
+
const config = {};
|
|
181
|
+
const expectedMessage = NOT_INITIALIZED_MODEL(modelName);
|
|
182
|
+
try {
|
|
183
|
+
await modelsHandbook.getInitializedModel(modelName, config);
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
if (error instanceof Error) {
|
|
187
|
+
expect(error).toBeInstanceOf(Error);
|
|
188
|
+
expect(error.message).toEqual(expectedMessage);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
it.skip('returns initalized model.', async () => {
|
|
193
|
+
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
194
|
+
const modelInfo = {
|
|
195
|
+
config: {
|
|
196
|
+
allocation: 'mock-allocation',
|
|
197
|
+
verbose: true,
|
|
198
|
+
},
|
|
199
|
+
name: 'boavizta-cpu',
|
|
200
|
+
};
|
|
201
|
+
modelsHandbook.writeDown(modelInfo);
|
|
202
|
+
const config = {
|
|
203
|
+
'physical-processor': 'intel',
|
|
204
|
+
'core-units': 1,
|
|
205
|
+
};
|
|
206
|
+
const model = await modelsHandbook.getInitializedModel(modelInfo.name, config);
|
|
207
|
+
expect(model).toBeInstanceOf(lib_1.BoaviztaCpuOutputModel);
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvX190ZXN0c19fL3VuaXQvdXRpbC9tb2RlbHMtdW5pdmVyc2UudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNFQUE0RDtBQUU1RCxzQ0FBb0Q7QUFFcEQsbUVBQTZEO0FBRTdELDRDQUF3QztBQUl4QyxNQUFNLEVBQ0osaUJBQWlCLEVBQ2pCLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIscUJBQXFCLEdBQ3RCLEdBQUcsZ0JBQU8sQ0FBQztBQUVaLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1lBQ3RELE1BQU0sY0FBYyxHQUFHLElBQUksZ0NBQWMsRUFBRSxDQUFDO1lBRTVDLE1BQU0sQ0FBQyxPQUFPLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRSxNQUFNLENBQUMsT0FBTyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsTUFBTSxDQUFDLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6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TW9kZWx9IGZyb20gJy4uLy4uLy4uL19fbW9ja3NfXy9tb2RlbC11bml2ZXJzZSc7XG5cbmltcG9ydCB7Qm9hdml6dGFDcHVPdXRwdXRNb2RlbH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW1wb3J0IHtNb2RlbHNVbml2ZXJzZX0gZnJvbSAnLi4vLi4vLi4vdXRpbC9tb2RlbHMtdW5pdmVyc2UnO1xuXG5pbXBvcnQge1NUUklOR1N9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmltcG9ydCB7SW1wbEluaXRpYWxpemVNb2RlbH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbW9kZWxzLXVuaXZlcnNlJztcblxuY29uc3Qge1xuICBNSVNTSU5HX0NMQVNTTkFNRSxcbiAgTUlTU0lOR19QQVRILFxuICBOT1RfT1VUUFVUX01PREVMX0VYVEVOU0lPTixcbiAgTk9UX0lOSVRJQUxJWkVEX01PREVMLFxufSA9IFNUUklOR1M7XG5cbmRlc2NyaWJlKCd1dGlsL21vZGVscy11bml2ZXJzZTogJywgKCkgPT4ge1xuICBkZXNjcmliZSgnaW5pdCBNb2RlbHNVbml2ZXJzZScsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbGl6ZXMgb2JqZWN0IHdpdGggcmVxdWlyZWQgcHJvcGVydGllcy4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuXG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0hhbmRib29rLmdldEluaXRpYWxpemVkTW9kZWwpLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0hhbmRib29rLmluaXRhbGl6ZWRNb2RlbHMpLnRvQmUoJ29iamVjdCcpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNIYW5kYm9vay53cml0ZURvd24pLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgICBleHBlY3QobW9kZWxzSGFuZGJvb2suaW5pdGFsaXplZE1vZGVscykudG9FcXVhbCh7fSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd3cml0ZURvd24oKTogJywgKCkgPT4ge1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgamVzdC5yZXNldE1vZHVsZXMoKTtcbiAgICAgIGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG4gICAgfSk7XG5cbiAgICBpdCgndGhyb3dzIGVycm9yIGluIGNhc2UgbW9kZWwgaXMgbm90IHN1cHBvcnRlZC4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBleHBlY3RlZE1lc3NhZ2UgPSBgTWlzc2luZyBvciB3cm9uZyBtb2RlbDogJHttb2RlbEluZm8ubmFtZX0uYDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKGV4cGVjdGVkTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGl0KCdyZWdpc3RlcnMgYHNoZWxsYCBtb2RlbCBpbiBpbml0YWxpemVkIG1vZGVscyBsaXN0LicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgZXhwZWN0KG1vZGVsc0xpc3QpLnRvSGF2ZVByb3BlcnR5KG1vZGVsSW5mby5uYW1lKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV0pLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVnaXN0ZXJzIGBwbHVnaW5gIG1vZGVsIGluIGluaXRhbGl6ZWQgbW9kZWxzIGxpc3QuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBleHBlY3QobW9kZWxzTGlzdCkudG9IYXZlUHJvcGVydHkobW9kZWxJbmZvLm5hbWUpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXSkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCd0aHJvd3MgYG1pc3NpbmcgY2xhc3NuYW1lYCBlcnJvciB3aGlsZSByZWdpc3RyYXRpb24gb2YgYHBsdWdpbmAgbW9kZWwuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygyKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbW9kZWwoe1xuICAgICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ2ludGVsJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKE1JU1NJTkdfQ0xBU1NOQU1FKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Rocm93cyBgbWlzc2luZyBwYXRoIHBhcmFtZXRlcmAgZXJyb3Igd2hpbGUgcmVnaXN0cmF0aW9uIG9mIGBwbHVnaW5gIG1vZGVsLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgICBtb2RlbDogJ01vY2thdml6dGFNb2RlbCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygyKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbW9kZWwoe1xuICAgICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ2ludGVsJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKE1JU1NJTkdfUEFUSCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2Vzc2Z1bGx5IGluaXRhbGl6ZSBwbHVnaW4gbW9kZWwuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgamVzdC5tb2NrKFxuICAgICAgICAnbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICAgICgpID0+ICh7XG4gICAgICAgICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICAgICAgICBNb2NrYXZpenRhTW9kZWw6IE1vY2tNb2RlbCxcbiAgICAgICAgfSksXG4gICAgICAgIHt2aXJ0dWFsOiB0cnVlfVxuICAgICAgKTtcblxuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICAgIG1vZGVsOiAnTW9ja2F2aXp0YU1vZGVsJyxcbiAgICAgICAgcGF0aDogJ2h0dHBzOi8vZ2l0aHViLmNvbS9tb2NrL21vY2thdml6dGEtbW9kZWwnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXTtcblxuICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbW9kZWwoe1xuICAgICAgICAnY29yZS11bml0cyc6IDEsXG4gICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNwb25zZSkudG9CZUluc3RhbmNlT2YoTW9ja01vZGVsKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgYGlucHV0IG1vZGVsIGRvZXMgbm90IGV4dGVuZCBiYXNlIGludGVyZmFjZWAgZXJyb3IuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgamVzdC5tb2NrKFxuICAgICAgICAnbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICAgICgpID0+ICh7XG4gICAgICAgICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICAgICAgICBNb2NrYXZpenRhTW9kZWw6IGNsYXNzIEZha2VNb2RlbCB7fSxcbiAgICAgICAgfSksXG4gICAgICAgIHt2aXJ0dWFsOiB0cnVlfVxuICAgICAgKTtcblxuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICAgIG1vZGVsOiAnTW9ja2F2aXp0YU1vZGVsJyxcbiAgICAgICAgcGF0aDogJ2h0dHBzOi8vZ2l0aHViLmNvbS9tb2NrL21vY2thdml6dGEtbW9kZWwnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXTtcblxuICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1vZGVsKHtcbiAgICAgICAgICAnY29yZS11bml0cyc6IDEsXG4gICAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdpbnRlbCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChOT1RfT1VUUFVUX01PREVMX0VYVEVOU0lPTik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEluaXRpYWxpemVkTW9kZWwoKTogJywgKCkgPT4ge1xuICAgIGl0KCd0aHJvd3MgZXJyb3IgaW4gY2FzZSBpZiBtb2RlbCBpcyBub3QgaW5pdGFsaXplZC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuXG4gICAgICBjb25zdCBtb2RlbE5hbWUgPSAnbW9jay1tb2RlbE5hbWUnO1xuICAgICAgY29uc3QgY29uZmlnID0ge307XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkTWVzc2FnZSA9IE5PVF9JTklUSUFMSVpFRF9NT0RFTChtb2RlbE5hbWUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbHNIYW5kYm9vay5nZXRJbml0aWFsaXplZE1vZGVsKG1vZGVsTmFtZSwgY29uZmlnKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoZXhwZWN0ZWRNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQuc2tpcCgncmV0dXJucyBpbml0YWxpemVkIG1vZGVsLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdib2F2aXp0YS1jcHUnLFxuICAgICAgfTtcbiAgICAgIG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuXG4gICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICAnY29yZS11bml0cyc6IDEsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG1vZGVsc0hhbmRib29rLmdldEluaXRpYWxpemVkTW9kZWwoXG4gICAgICAgIG1vZGVsSW5mby5uYW1lLFxuICAgICAgICBjb25maWdcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoQm9hdml6dGFDcHVPdXRwdXRNb2RlbCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|