@grnsft/if 0.0.6 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.examples/ompls/azure.yml +205 -0
- package/.github/workflows/nodejs-ci.yml +0 -8
- package/README.md +48 -9
- package/build/index.js +1 -2
- package/coverage/clover.xml +132 -1118
- package/coverage/coverage-final.json +9 -26
- package/coverage/lcov-report/config/config.ts.html +3 -66
- package/coverage/lcov-report/config/index.html +15 -15
- package/coverage/lcov-report/config/index.ts.html +3 -3
- package/coverage/lcov-report/config/strings.ts.html +82 -19
- package/coverage/lcov-report/index.html +36 -231
- package/coverage/lcov-report/lib/index.html +43 -13
- package/coverage/lcov-report/lib/models-universe.ts.html +433 -0
- package/coverage/lcov-report/lib/observatory.ts.html +187 -0
- package/coverage/lcov-report/lib/supercomputer.ts.html +553 -0
- package/coverage/lcov-report/util/args.ts.html +23 -8
- package/coverage/lcov-report/util/errors.ts.html +157 -0
- package/coverage/lcov-report/util/index.html +20 -50
- package/coverage/lcov-report/util/yaml.ts.html +17 -11
- package/coverage/lcov.info +225 -2004
- package/examples/impls/test/azure.yml +8 -8
- package/examples/impls/test/ccf.yml +5 -3
- package/examples/impls/test/if-demo.yml +19 -9
- package/examples/impls/test/metadata.yml +3 -2
- package/examples/impls/test/nesting.yml +10 -13
- package/examples/impls/test/sci-e.yml +1 -1
- package/examples/impls/test/sci-m.yml +2 -2
- package/examples/impls/test/sci-o.yml +2 -4
- package/examples/impls/test/sci.yml +38 -15
- package/examples/impls/test/shell.yml +2 -1
- package/examples/impls/{tdp-finder-test.yml → test/tdp-finder.yml} +8 -8
- package/examples/ompls/ccf.yml +3 -1
- package/examples/ompls/if-demo.yml +46 -22
- package/package.json +15 -7
- package/tsconfig.build.json +7 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/build/__mocks__/azure/index.d.ts +0 -11
- package/build/__mocks__/azure/index.js +0 -132
- package/build/__mocks__/boavizta/countries.json +0 -138
- package/build/__mocks__/boavizta/instance_types.json +0 -625
- package/build/__mocks__/boavizta/providers.json +0 -1
- package/build/__mocks__/fs/index.d.ts +0 -3
- package/build/__mocks__/fs/index.js +0 -56
- package/build/__mocks__/model-universe/index.d.ts +0 -31
- package/build/__mocks__/model-universe/index.js +0 -64
- package/build/__mocks__/watt-time/data.json +0 -119
- package/build/__tests__/integration/ompl/index.test.d.ts +0 -1
- package/build/__tests__/integration/ompl/index.test.js +0 -61
- package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/azure-importer/index.test.js +0 -152
- package/build/__tests__/unit/lib/boavizta/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/boavizta/index.test.js +0 -579
- package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/aveva.test.js +0 -36
- package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/emem.test.js +0 -108
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +0 -53
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +0 -23
- package/build/__tests__/unit/lib/ccf/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/ccf/index.test.js +0 -223
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +0 -73
- package/build/__tests__/unit/lib/models-universe.test.d.ts +0 -1
- package/build/__tests__/unit/lib/models-universe.test.js +0 -193
- package/build/__tests__/unit/lib/observatory.test.d.ts +0 -1
- package/build/__tests__/unit/lib/observatory.test.js +0 -99
- package/build/__tests__/unit/lib/sci/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci/index.test.js +0 -106
- package/build/__tests__/unit/lib/sci-e/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-e/index.test.js +0 -30
- package/build/__tests__/unit/lib/sci-m/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-m/index.test.js +0 -58
- package/build/__tests__/unit/lib/sci-o/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-o/index.test.js +0 -42
- package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/shell-imp/index.test.js +0 -21
- package/build/__tests__/unit/lib/supercomputer.test.d.ts +0 -1
- package/build/__tests__/unit/lib/supercomputer.test.js +0 -231
- package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/tdp-finder/index.test.js +0 -62
- package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/teads-aws/index.test.js +0 -170
- package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/teads-curve/index.test.js +0 -146
- package/build/__tests__/unit/lib/watt-time/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/watt-time/index.test.js +0 -106
- package/build/__tests__/unit/util/args.test.d.ts +0 -1
- package/build/__tests__/unit/util/args.test.js +0 -92
- package/build/__tests__/unit/util/models-universe.test.d.ts +0 -1
- package/build/__tests__/unit/util/models-universe.test.js +0 -193
- package/build/__tests__/unit/util/observatory.test.d.ts +0 -1
- package/build/__tests__/unit/util/observatory.test.js +0 -99
- package/build/__tests__/unit/util/supercomputer.test.d.ts +0 -1
- package/build/__tests__/unit/util/supercomputer.test.js +0 -231
- package/build/__tests__/unit/util/yaml.test.d.ts +0 -1
- package/build/__tests__/unit/util/yaml.test.js +0 -59
- package/build/config/config.d.ts +0 -9
- package/build/config/config.js +0 -51
- package/build/lib/azure-importer/index.d.ts +0 -55
- package/build/lib/azure-importer/index.js +0 -314
- package/build/lib/boavizta/index.d.ts +0 -53
- package/build/lib/boavizta/index.js +0 -254
- package/build/lib/case-studies/aveva-model.d.ts +0 -29
- package/build/lib/case-studies/aveva-model.js +0 -53
- package/build/lib/case-studies/emem-model.d.ts +0 -42
- package/build/lib/case-studies/emem-model.js +0 -93
- package/build/lib/case-studies/eshoppen-model.d.ts +0 -24
- package/build/lib/case-studies/eshoppen-model.js +0 -123
- package/build/lib/case-studies/index.d.ts +0 -4
- package/build/lib/case-studies/index.js +0 -21
- package/build/lib/case-studies/sci-accenture-model.d.ts +0 -10
- package/build/lib/case-studies/sci-accenture-model.js +0 -37
- package/build/lib/ccf/aws-embodied.json +0 -5591
- package/build/lib/ccf/aws-instances.json +0 -21116
- package/build/lib/ccf/aws-use.json +0 -79
- package/build/lib/ccf/azure-embodied.json +0 -6547
- package/build/lib/ccf/azure-instances.json +0 -8332
- package/build/lib/ccf/azure-use.json +0 -58
- package/build/lib/ccf/gcp-embodied.json +0 -3049
- package/build/lib/ccf/gcp-instances.json +0 -3880
- package/build/lib/ccf/gcp-use.json +0 -58
- package/build/lib/ccf/index.d.ts +0 -63
- package/build/lib/ccf/index.js +0 -338
- package/build/lib/cloud-instance-metadata/aws-instances.json +0 -1
- package/build/lib/cloud-instance-metadata/azure-instances.json +0 -1
- package/build/lib/cloud-instance-metadata/index.d.ts +0 -15
- package/build/lib/cloud-instance-metadata/index.js +0 -104
- package/build/lib/index.d.ts +0 -14
- package/build/lib/index.js +0 -32
- package/build/lib/interfaces/ccf.d.ts +0 -19
- package/build/lib/interfaces/ccf.js +0 -3
- package/build/lib/interfaces/index.d.ts +0 -7
- package/build/lib/interfaces/index.js +0 -18
- package/build/lib/observatory.d.ts +0 -20
- package/build/lib/observatory.js +0 -31
- package/build/lib/sci/index.d.ts +0 -13
- package/build/lib/sci/index.js +0 -131
- package/build/lib/sci-e/index.d.ts +0 -38
- package/build/lib/sci-e/index.js +0 -85
- package/build/lib/sci-m/index.d.ts +0 -10
- package/build/lib/sci-m/index.js +0 -124
- package/build/lib/sci-o/index.d.ts +0 -17
- package/build/lib/sci-o/index.js +0 -52
- package/build/lib/shell-imp/index.d.ts +0 -32
- package/build/lib/shell-imp/index.js +0 -82
- package/build/lib/tdp-finder/index.d.ts +0 -19
- package/build/lib/tdp-finder/index.js +0 -98
- package/build/lib/teads-aws/aws-embodied.json +0 -1
- package/build/lib/teads-aws/aws-instances.json +0 -1
- package/build/lib/teads-aws/index.d.ts +0 -58
- package/build/lib/teads-aws/index.js +0 -208
- package/build/lib/teads-curve/index.d.ts +0 -52
- package/build/lib/teads-curve/index.js +0 -158
- package/build/lib/watt-time/index.d.ts +0 -18
- package/build/lib/watt-time/index.js +0 -204
- package/build/types/model-interface.d.ts +0 -16
- package/build/types/model-interface.js +0 -3
- package/build/types/process-args.d.ts +0 -7
- package/build/types/process-args.js +0 -3
- package/build/types/supercomputer.d.ts +0 -4
- package/build/types/supercomputer.js +0 -3
- package/build/util/args.js +0 -48
- package/build/util/errors.d.ts +0 -6
- package/build/util/errors.js +0 -22
- package/build/util/helpers.js +0 -18
- package/build/util/models-universe.d.ts +0 -28
- package/build/util/models-universe.js +0 -95
- package/build/util/observatory.d.ts +0 -20
- package/build/util/observatory.js +0 -31
- package/build/util/supercomputer.d.ts +0 -30
- package/build/util/supercomputer.js +0 -109
- package/docs/implementations/tdp-finder.md +0 -36
- package/examples/impls/test/complex-pipeline.yml +0 -67
- package/examples/impls/test/toto.yaml +0 -22
- package/src/__mocks__/boavizta/countries.json +0 -138
- package/src/__mocks__/boavizta/instance_types.json +0 -625
- package/src/__mocks__/boavizta/providers.json +0 -1
- package/src/__mocks__/watt-time/data.json +0 -119
- package/tsconfig.tsbuildinfo +0 -1
- package/yarn-error.log +0 -5854
|
@@ -1,146 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,106 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,92 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL19fdGVzdHNfXy91bml0L3V0aWwvYXJncy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxHQUFHLEVBQUU7UUFDVixRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzFCLEtBQUssT0FBTztnQkFDVixPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDVCxPQUFPO29CQUNMLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO1lBQ0osS0FBSyxXQUFXO2dCQUNkLE9BQU87b0JBQ0wsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLElBQUksRUFBRSxlQUFlO2lCQUN0QixDQUFDO1lBQ0osS0FBSyxNQUFNO2dCQUNULE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUk7aUJBQ1gsQ0FBQztZQUNKO2dCQUNFLE9BQU87b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCLENBQUM7U0FDTDtJQUNILENBQUM7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUVKLDZCQUE4QjtBQUU5Qiw2Q0FBd0Q7QUFDeEQsaURBQTRDO0FBRTVDLDRDQUFnRDtBQUVoRCxNQUFNLEVBQUMsYUFBYSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9CLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFDeEIsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLE1BQU0sQ0FBQztBQUN0QixNQUFNLEVBQUMsZUFBZSxFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUVsQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixNQUFNLFdBQVcsR0FBRyxP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QyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFekMsT0FBTyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiamVzdC5tb2NrKCd0cy1jb21tYW5kLWxpbmUtYXJncycsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIHBhcnNlOiAoKSA9PiB7XG4gICAgc3dpdGNoIChwcm9jZXNzLmVudi5yZXN1bHQpIHtcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgY2FzZSAnaW1wbCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wbDogJ2ltcGwtbW9jay55bWwnLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnaW1wbC1vbXBsJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbXBsOiAnaW1wbC1tb2NrLnltbCcsXG4gICAgICAgICAgb21wbDogJ29tcGwtbW9jay55bWwnLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnaGVscCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVscDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wbDogJ21vY2staW1wbC55YW1sJyxcbiAgICAgICAgICBvbXBsOiAnbW9jay1vbXBsJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH0sXG59KSk7XG5cbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5pbXBvcnQge3BhcnNlUHJvY2Vzc0FyZ3VtZW50fSBmcm9tICcuLi8uLi8uLi91dGlsL2FyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJy4uLy4uLy4uL3V0aWwvZXJyb3JzJztcblxuaW1wb3J0IHtTVFJJTkdTLCBDT05GSUd9IGZyb20gJy4uLy4uLy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtDbGlJbnB1dEVycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge2ltcGFjdH0gPSBDT05GSUc7XG5jb25zdCB7SEVMUH0gPSBpbXBhY3Q7XG5jb25zdCB7SU1QTF9JU19NSVNTSU5HfSA9IFNUUklOR1M7XG5cbmRlc2NyaWJlKCd1dGlsL2FyZ3M6ICcsICgpID0+IHtcbiAgY29uc3Qgb3JpZ2luYWxFbnYgPSBwcm9jZXNzLmVudjtcblxuICBkZXNjcmliZSgncGFyc2VQcm9jZXNzQXJndW1lbnQoKTogJywgKCkgPT4ge1xuICAgIGl0KCd0aHJvd3MgZXJyb3IgaWYgdGhlcmUgaXMgbm8gYXJndW1lbnQgcGFzc2VkLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnZXJyb3InOyAvLyB1c2VkIGZvciBtb2NraW5nXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoQ2xpSW5wdXRFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoSU1QTF9JU19NSVNTSU5HKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgaW1wbCBwYXRoLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDEpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaW1wbCc7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG4gICAgICBjb25zdCBwcm9jZXNzUnVubmluZ1BhdGggPSBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgICBjb25zdCBpbXBsUGF0aCA9ICdpbXBsLW1vY2sueW1sJztcbiAgICAgIGNvbnN0IGV4cGVjdGVkUmVzdWx0ID0ge1xuICAgICAgICBpbnB1dFBhdGg6IHBhdGgubm9ybWFsaXplKGAke3Byb2Nlc3NSdW5uaW5nUGF0aH0vJHtpbXBsUGF0aH1gKSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgaW1wbCBhbmQgb21wbCBwYXRoLicsICgpID0+IHtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDEpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaW1wbC1vbXBsJztcblxuICAgICAgY29uc3QgcmVzdWx0ID0gcGFyc2VQcm9jZXNzQXJndW1lbnQoKTtcbiAgICAgIGNvbnN0IHByb2Nlc3NSdW5uaW5nUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAgIGNvbnN0IGltcGxQYXRoID0gJ2ltcGwtbW9jay55bWwnO1xuICAgICAgY29uc3Qgb21wbFBhdGggPSAnb21wbC1tb2NrLnltbCc7XG4gICAgICBjb25zdCBleHBlY3RlZFJlc3VsdCA9IHtcbiAgICAgICAgaW5wdXRQYXRoOiBwYXRoLm5vcm1hbGl6ZShgJHtwcm9jZXNzUnVubmluZ1BhdGh9LyR7aW1wbFBhdGh9YCksXG4gICAgICAgIG91dHB1dFBhdGg6IHBhdGgubm9ybWFsaXplKGAke3Byb2Nlc3NSdW5uaW5nUGF0aH0vJHtvbXBsUGF0aH1gKSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2xvZ3MgaGVscC4nLCAoKSA9PiB7XG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygzKTtcblxuICAgICAgY29uc3Qgb3JpZ2luYWxMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIGNvbnNvbGUubG9nID0gamVzdC5mbigpO1xuXG4gICAgICBwcm9jZXNzLmVudi5yZXN1bHQgPSAnaGVscCc7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChjb25zb2xlLmxvZykudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgICAgZXhwZWN0KGNvbnNvbGUubG9nKS50b0JlQ2FsbGVkV2l0aChIRUxQKTtcblxuICAgICAgY29uc29sZS5sb2cgPSBvcmlnaW5hbExvZztcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvY2Vzcy5lbnYgPSBvcmlnaW5hbEVudjtcbn0pO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const model_universe_1 = require("../../../__mocks__/model-universe");
|
|
4
|
-
const models_universe_1 = require("../../../util/models-universe");
|
|
5
|
-
const config_1 = require("../../../config");
|
|
6
|
-
const { MISSING_CLASSNAME, MISSING_PATH, NOT_OUTPUT_MODEL_EXTENSION, NOT_INITIALIZED_MODEL, } = config_1.STRINGS;
|
|
7
|
-
describe('util/models-universe: ', () => {
|
|
8
|
-
describe('init ModelsUniverse', () => {
|
|
9
|
-
it('initializes object with required properties.', () => {
|
|
10
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
11
|
-
expect(typeof modelsHandbook.getInitializedModel).toBe('function');
|
|
12
|
-
expect(typeof modelsHandbook.initalizedModels).toBe('object');
|
|
13
|
-
expect(typeof modelsHandbook.writeDown).toBe('function');
|
|
14
|
-
expect(modelsHandbook.initalizedModels).toEqual({});
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
describe('writeDown(): ', () => {
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
jest.resetModules();
|
|
20
|
-
jest.restoreAllMocks();
|
|
21
|
-
});
|
|
22
|
-
it('throws error in case model is not supported.', () => {
|
|
23
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
24
|
-
const modelInfo = {
|
|
25
|
-
config: {
|
|
26
|
-
allocation: 'mock-allocation',
|
|
27
|
-
verbose: true,
|
|
28
|
-
},
|
|
29
|
-
name: 'test',
|
|
30
|
-
};
|
|
31
|
-
const expectedMessage = `Missing or wrong model: ${modelInfo.name}.`;
|
|
32
|
-
try {
|
|
33
|
-
modelsHandbook.writeDown(modelInfo);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (error instanceof Error) {
|
|
37
|
-
expect(error.message).toEqual(expectedMessage);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
it('registers `shell` model in initalized models list.', () => {
|
|
42
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
43
|
-
const modelInfo = {
|
|
44
|
-
config: {
|
|
45
|
-
allocation: 'mock-allocation',
|
|
46
|
-
verbose: true,
|
|
47
|
-
},
|
|
48
|
-
name: 'mock-name',
|
|
49
|
-
};
|
|
50
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
51
|
-
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
52
|
-
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
53
|
-
});
|
|
54
|
-
it('registers `plugin` model in initalized models list.', () => {
|
|
55
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
56
|
-
const modelInfo = {
|
|
57
|
-
config: {
|
|
58
|
-
allocation: 'mock-allocation',
|
|
59
|
-
verbose: true,
|
|
60
|
-
},
|
|
61
|
-
name: 'mock-name',
|
|
62
|
-
};
|
|
63
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
64
|
-
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
65
|
-
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
66
|
-
});
|
|
67
|
-
it('throws `missing classname` error while registration of `plugin` model.', async () => {
|
|
68
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
69
|
-
const modelInfo = {
|
|
70
|
-
config: {
|
|
71
|
-
allocation: 'mock-allocation',
|
|
72
|
-
verbose: true,
|
|
73
|
-
},
|
|
74
|
-
name: 'mock-name',
|
|
75
|
-
};
|
|
76
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
77
|
-
const model = modelsList[modelInfo.name];
|
|
78
|
-
expect.assertions(2);
|
|
79
|
-
try {
|
|
80
|
-
await model({
|
|
81
|
-
'core-units': 1,
|
|
82
|
-
'physical-processor': 'intel',
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
if (error instanceof Error) {
|
|
87
|
-
expect(error).toBeInstanceOf(Error);
|
|
88
|
-
expect(error.message).toEqual(MISSING_CLASSNAME);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
it('throws `missing path parameter` error while registration of `plugin` model.', async () => {
|
|
93
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
94
|
-
const modelInfo = {
|
|
95
|
-
config: {
|
|
96
|
-
allocation: 'mock-allocation',
|
|
97
|
-
verbose: true,
|
|
98
|
-
},
|
|
99
|
-
name: 'mock-name',
|
|
100
|
-
model: 'MockaviztaModel',
|
|
101
|
-
};
|
|
102
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
103
|
-
const model = modelsList[modelInfo.name];
|
|
104
|
-
expect.assertions(2);
|
|
105
|
-
try {
|
|
106
|
-
await model({
|
|
107
|
-
'core-units': 1,
|
|
108
|
-
'physical-processor': 'intel',
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (error instanceof Error) {
|
|
113
|
-
expect(error).toBeInstanceOf(Error);
|
|
114
|
-
expect(error.message).toEqual(MISSING_PATH);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
it('should successfully initalize plugin model.', async () => {
|
|
119
|
-
jest.mock('mockavizta-model', () => ({
|
|
120
|
-
__esModule: true,
|
|
121
|
-
MockaviztaModel: model_universe_1.MockModel,
|
|
122
|
-
}), { virtual: true });
|
|
123
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
124
|
-
const modelInfo = {
|
|
125
|
-
config: {
|
|
126
|
-
allocation: 'mock-allocation',
|
|
127
|
-
verbose: true,
|
|
128
|
-
},
|
|
129
|
-
name: 'mock-name',
|
|
130
|
-
model: 'MockaviztaModel',
|
|
131
|
-
path: 'https://github.com/mock/mockavizta-model',
|
|
132
|
-
};
|
|
133
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
134
|
-
const model = modelsList[modelInfo.name];
|
|
135
|
-
expect.assertions(1);
|
|
136
|
-
const response = await model({
|
|
137
|
-
'core-units': 1,
|
|
138
|
-
'physical-processor': 'intel',
|
|
139
|
-
});
|
|
140
|
-
expect(response).toBeInstanceOf(model_universe_1.MockModel);
|
|
141
|
-
});
|
|
142
|
-
it('should throw `input model does not extend base interface` error.', async () => {
|
|
143
|
-
jest.mock('mockavizta-model', () => ({
|
|
144
|
-
__esModule: true,
|
|
145
|
-
MockaviztaModel: class FakeModel {
|
|
146
|
-
},
|
|
147
|
-
}), { virtual: true });
|
|
148
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
149
|
-
const modelInfo = {
|
|
150
|
-
config: {
|
|
151
|
-
allocation: 'mock-allocation',
|
|
152
|
-
verbose: true,
|
|
153
|
-
},
|
|
154
|
-
name: 'mock-name',
|
|
155
|
-
model: 'MockaviztaModel',
|
|
156
|
-
path: 'https://github.com/mock/mockavizta-model',
|
|
157
|
-
};
|
|
158
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
159
|
-
const model = modelsList[modelInfo.name];
|
|
160
|
-
expect.assertions(2);
|
|
161
|
-
try {
|
|
162
|
-
await model({
|
|
163
|
-
'core-units': 1,
|
|
164
|
-
'physical-processor': 'intel',
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
if (error instanceof Error) {
|
|
169
|
-
expect(error).toBeInstanceOf(Error);
|
|
170
|
-
expect(error.message).toEqual(NOT_OUTPUT_MODEL_EXTENSION);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
describe('getInitializedModel(): ', () => {
|
|
176
|
-
it('throws error in case if model is not initalized.', async () => {
|
|
177
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
178
|
-
const modelName = 'mock-modelName';
|
|
179
|
-
const config = {};
|
|
180
|
-
const expectedMessage = NOT_INITIALIZED_MODEL(modelName);
|
|
181
|
-
try {
|
|
182
|
-
await modelsHandbook.getInitializedModel(modelName, config);
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
if (error instanceof Error) {
|
|
186
|
-
expect(error).toBeInstanceOf(Error);
|
|
187
|
-
expect(error.message).toEqual(expectedMessage);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvX190ZXN0c19fL3VuaXQvdXRpbC9tb2RlbHMtdW5pdmVyc2UudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNFQUE0RDtBQUU1RCxtRUFBNkQ7QUFFN0QsNENBQXdDO0FBSXhDLE1BQU0sRUFDSixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLDBCQUEwQixFQUMxQixxQkFBcUIsR0FDdEIsR0FBRyxnQkFBTyxDQUFDO0FBRVosUUFBUSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtJQUN0QyxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQ25DLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7WUFDdEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUM7WUFFNUMsTUFBTSxDQUFDLE9BQU8sY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxPQUFPLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1FBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxD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TSxlQUFlLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFekQsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDN0Q7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7b0JBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNoRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2NrTW9kZWx9IGZyb20gJy4uLy4uLy4uL19fbW9ja3NfXy9tb2RlbC11bml2ZXJzZSc7XG5cbmltcG9ydCB7TW9kZWxzVW5pdmVyc2V9IGZyb20gJy4uLy4uLy4uL3V0aWwvbW9kZWxzLXVuaXZlcnNlJztcblxuaW1wb3J0IHtTVFJJTkdTfSBmcm9tICcuLi8uLi8uLi9jb25maWcnO1xuXG5pbXBvcnQge0ltcGxJbml0aWFsaXplTW9kZWx9IGZyb20gJy4uLy4uLy4uL3R5cGVzL21vZGVscy11bml2ZXJzZSc7XG5cbmNvbnN0IHtcbiAgTUlTU0lOR19DTEFTU05BTUUsXG4gIE1JU1NJTkdfUEFUSCxcbiAgTk9UX09VVFBVVF9NT0RFTF9FWFRFTlNJT04sXG4gIE5PVF9JTklUSUFMSVpFRF9NT0RFTCxcbn0gPSBTVFJJTkdTO1xuXG5kZXNjcmliZSgndXRpbC9tb2RlbHMtdW5pdmVyc2U6ICcsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2luaXQgTW9kZWxzVW5pdmVyc2UnLCAoKSA9PiB7XG4gICAgaXQoJ2luaXRpYWxpemVzIG9iamVjdCB3aXRoIHJlcXVpcmVkIHByb3BlcnRpZXMuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcblxuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNIYW5kYm9vay5nZXRJbml0aWFsaXplZE1vZGVsKS50b0JlKCdmdW5jdGlvbicpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNIYW5kYm9vay5pbml0YWxpemVkTW9kZWxzKS50b0JlKCdvYmplY3QnKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKS50b0JlKCdmdW5jdGlvbicpO1xuICAgICAgZXhwZWN0KG1vZGVsc0hhbmRib29rLmluaXRhbGl6ZWRNb2RlbHMpLnRvRXF1YWwoe30pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnd3JpdGVEb3duKCk6ICcsICgpID0+IHtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGplc3QucmVzZXRNb2R1bGVzKCk7XG4gICAgICBqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Rocm93cyBlcnJvciBpbiBjYXNlIG1vZGVsIGlzIG5vdCBzdXBwb3J0ZWQuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ3Rlc3QnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRNZXNzYWdlID0gYE1pc3Npbmcgb3Igd3JvbmcgbW9kZWw6ICR7bW9kZWxJbmZvLm5hbWV9LmA7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChleHBlY3RlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgncmVnaXN0ZXJzIGBzaGVsbGAgbW9kZWwgaW4gaW5pdGFsaXplZCBtb2RlbHMgbGlzdC4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGV4cGVjdChtb2RlbHNMaXN0KS50b0hhdmVQcm9wZXJ0eShtb2RlbEluZm8ubmFtZSk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlZ2lzdGVycyBgcGx1Z2luYCBtb2RlbCBpbiBpbml0YWxpemVkIG1vZGVscyBsaXN0LicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgZXhwZWN0KG1vZGVsc0xpc3QpLnRvSGF2ZVByb3BlcnR5KG1vZGVsSW5mby5uYW1lKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV0pLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgfSk7XG5cbiAgICBpdCgndGhyb3dzIGBtaXNzaW5nIGNsYXNzbmFtZWAgZXJyb3Igd2hpbGUgcmVnaXN0cmF0aW9uIG9mIGBwbHVnaW5gIG1vZGVsLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXTtcblxuICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1vZGVsKHtcbiAgICAgICAgICAnY29yZS11bml0cyc6IDEsXG4gICAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdpbnRlbCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChNSVNTSU5HX0NMQVNTTkFNRSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGl0KCd0aHJvd3MgYG1pc3NpbmcgcGF0aCBwYXJhbWV0ZXJgIGVycm9yIHdoaWxlIHJlZ2lzdHJhdGlvbiBvZiBgcGx1Z2luYCBtb2RlbC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgICAgbW9kZWw6ICdNb2NrYXZpenRhTW9kZWwnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZWxzTGlzdCA9IG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbEluZm8pO1xuICAgICAgY29uc3QgbW9kZWwgPSBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXTtcblxuICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1vZGVsKHtcbiAgICAgICAgICAnY29yZS11bml0cyc6IDEsXG4gICAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdpbnRlbCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChNSVNTSU5HX1BBVEgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2Nlc3NmdWxseSBpbml0YWxpemUgcGx1Z2luIG1vZGVsLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGplc3QubW9jayhcbiAgICAgICAgJ21vY2thdml6dGEtbW9kZWwnLFxuICAgICAgICAoKSA9PiAoe1xuICAgICAgICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgICAgICAgTW9ja2F2aXp0YU1vZGVsOiBNb2NrTW9kZWwsXG4gICAgICAgIH0pLFxuICAgICAgICB7dmlydHVhbDogdHJ1ZX1cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgICBtb2RlbDogJ01vY2thdml6dGFNb2RlbCcsXG4gICAgICAgIHBhdGg6ICdodHRwczovL2dpdGh1Yi5jb20vbW9jay9tb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDEpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG1vZGVsKHtcbiAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ2ludGVsJyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzcG9uc2UpLnRvQmVJbnN0YW5jZU9mKE1vY2tNb2RlbCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGBpbnB1dCBtb2RlbCBkb2VzIG5vdCBleHRlbmQgYmFzZSBpbnRlcmZhY2VgIGVycm9yLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGplc3QubW9jayhcbiAgICAgICAgJ21vY2thdml6dGEtbW9kZWwnLFxuICAgICAgICAoKSA9PiAoe1xuICAgICAgICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgICAgICAgTW9ja2F2aXp0YU1vZGVsOiBjbGFzcyBGYWtlTW9kZWwge30sXG4gICAgICAgIH0pLFxuICAgICAgICB7dmlydHVhbDogdHJ1ZX1cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICdtb2NrLW5hbWUnLFxuICAgICAgICBtb2RlbDogJ01vY2thdml6dGFNb2RlbCcsXG4gICAgICAgIHBhdGg6ICdodHRwczovL2dpdGh1Yi5jb20vbW9jay9tb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbCh7XG4gICAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoTk9UX09VVFBVVF9NT0RFTF9FWFRFTlNJT04pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRJbml0aWFsaXplZE1vZGVsKCk6ICcsICgpID0+IHtcbiAgICBpdCgndGhyb3dzIGVycm9yIGluIGNhc2UgaWYgbW9kZWwgaXMgbm90IGluaXRhbGl6ZWQuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcblxuICAgICAgY29uc3QgbW9kZWxOYW1lID0gJ21vY2stbW9kZWxOYW1lJztcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHt9O1xuXG4gICAgICBjb25zdCBleHBlY3RlZE1lc3NhZ2UgPSBOT1RfSU5JVElBTElaRURfTU9ERUwobW9kZWxOYW1lKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbW9kZWxzSGFuZGJvb2suZ2V0SW5pdGlhbGl6ZWRNb2RlbChtb2RlbE5hbWUsIGNvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKGV4cGVjdGVkTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|