@grnsft/if 0.1.2 → 0.1.3
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/CONTRIBUTING.md +13 -17
- package/README.md +17 -18
- package/coverage/clover.xml +111 -65
- package/coverage/coverage-final.json +7 -6
- package/coverage/lcov-report/config/config.ts.html +12 -3
- package/coverage/lcov-report/config/index.html +1 -1
- package/coverage/lcov-report/config/index.ts.html +3 -3
- package/coverage/lcov-report/config/strings.ts.html +2 -2
- package/coverage/lcov-report/index.html +9 -9
- package/coverage/lcov-report/lib/index.html +24 -9
- package/coverage/lcov-report/lib/models-universe.ts.html +1 -1
- package/coverage/lcov-report/lib/observatory.ts.html +7 -7
- package/coverage/lcov-report/lib/planet-aggregator.ts.html +253 -0
- package/coverage/lcov-report/lib/supercomputer.ts.html +211 -52
- package/coverage/lcov-report/util/args.ts.html +1 -1
- package/coverage/lcov-report/util/errors.ts.html +10 -7
- package/coverage/lcov-report/util/index.html +1 -1
- package/coverage/lcov-report/util/yaml.ts.html +1 -1
- package/coverage/lcov.info +184 -105
- package/examples/impls/case-studies/aggregation.yml +97 -0
- package/examples/impls/case-studies/ntt-data-on-premise.yaml +0 -42
- package/examples/impls/test/aggregation-test.yml +109 -0
- package/examples/impls/test/large-impl.yml +257303 -0
- package/examples/ompls/aggregation-test.yml +340 -0
- package/package.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -0
- package/yarn-error.log +5431 -0
- package/build/config/index.d.ts +0 -2
- package/build/config/index.js +0 -8
- package/build/config/strings.d.ts +0 -14
- package/build/config/strings.js +0 -30
- package/build/index.d.ts +0 -2
- package/build/index.js +0 -46
- package/build/lib/models-universe.d.ts +0 -28
- package/build/lib/models-universe.js +0 -95
- package/build/lib/supercomputer.d.ts +0 -30
- package/build/lib/supercomputer.js +0 -109
- package/build/types/azure-importer.d.ts +0 -29
- package/build/types/azure-importer.js +0 -3
- package/build/types/boavizta.d.ts +0 -7
- package/build/types/boavizta.js +0 -3
- package/build/types/common.d.ts +0 -7
- package/build/types/common.js +0 -9
- package/build/types/impl.d.ts +0 -40
- package/build/types/impl.js +0 -3
- package/build/types/models-universe.d.ts +0 -24
- package/build/types/models-universe.js +0 -3
- package/build/util/args.d.ts +0 -8
- package/build/util/helpers.d.ts +0 -4
- package/build/util/validations.d.ts +0 -25
- package/build/util/validations.js +0 -52
- package/build/util/yaml.d.ts +0 -13
- package/build/util/yaml.js +0 -36
package/build/config/index.d.ts
DELETED
package/build/config/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STRINGS = exports.CONFIG = void 0;
|
|
4
|
-
var config_1 = require("./config");
|
|
5
|
-
Object.defineProperty(exports, "CONFIG", { enumerable: true, get: function () { return config_1.CONFIG; } });
|
|
6
|
-
var strings_1 = require("./strings");
|
|
7
|
-
Object.defineProperty(exports, "STRINGS", { enumerable: true, get: function () { return strings_1.STRINGS; } });
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFnQztBQUF4QixnR0FBQSxNQUFNLE9BQUE7QUFDZCxxQ0FBa0M7QUFBMUIsa0dBQUEsT0FBTyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtDT05GSUd9IGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCB7U1RSSU5HU30gZnJvbSAnLi9zdHJpbmdzJztcbiJdfQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const STRINGS: {
|
|
2
|
-
FILE_IS_NOT_YAML: string;
|
|
3
|
-
IMPL_IS_MISSING: string;
|
|
4
|
-
MISSING_CLASSNAME: string;
|
|
5
|
-
MISSING_PATH: string;
|
|
6
|
-
MODEL_DOESNT_EXIST: string;
|
|
7
|
-
NOT_OUTPUT_MODEL_EXTENSION: string;
|
|
8
|
-
STRUCTURE_MALFORMED: (childName: string) => string;
|
|
9
|
-
NOT_INITIALIZED_MODEL: (modelName: string) => string;
|
|
10
|
-
DISCLAIMER_MESSAGE: string;
|
|
11
|
-
NOT_NATIVE_MODEL: string;
|
|
12
|
-
SOMETHING_WRONG: string;
|
|
13
|
-
ISSUE_TEMPLATE: string;
|
|
14
|
-
};
|
package/build/config/strings.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STRINGS = void 0;
|
|
4
|
-
exports.STRINGS = {
|
|
5
|
-
FILE_IS_NOT_YAML: 'Provided impl file is not in yaml format.',
|
|
6
|
-
IMPL_IS_MISSING: 'Impl file is missing.',
|
|
7
|
-
MISSING_CLASSNAME: 'Initalization param `model` is missing.',
|
|
8
|
-
MISSING_PATH: 'Initalization param `path` is missing.',
|
|
9
|
-
MODEL_DOESNT_EXIST: 'Provided model class does not belong to any model.',
|
|
10
|
-
NOT_OUTPUT_MODEL_EXTENSION: 'Provided model does not extend ModelInterface.',
|
|
11
|
-
STRUCTURE_MALFORMED: (childName) => `Graph is malformed: graph.children.${childName} is not valid.`,
|
|
12
|
-
NOT_INITIALIZED_MODEL: (modelName) => `You're trying to use not initalized model: ${modelName}.`,
|
|
13
|
-
DISCLAIMER_MESSAGE: `
|
|
14
|
-
[!important] Incubation Project
|
|
15
|
-
|
|
16
|
-
This project is an incubation project being run inside the Green Software Foundation; as such, we *DON’T recommend using it in any critical use case.
|
|
17
|
-
Incubation projects are experimental, offer no support guarantee, have minimal governance and process, and may be retired at any moment. This project may one day graduate, in which case this disclaimer will be removed.
|
|
18
|
-
`,
|
|
19
|
-
NOT_NATIVE_MODEL: `
|
|
20
|
-
[!important]
|
|
21
|
-
|
|
22
|
-
You are using models that are not part of the Impact Framework standard library. You should do your own research to ensure the models are up to date and accurate. They may not be actively maintained.
|
|
23
|
-
`,
|
|
24
|
-
SOMETHING_WRONG: 'Something wrong with cli arguments. Please check docs.',
|
|
25
|
-
ISSUE_TEMPLATE: `
|
|
26
|
-
Impact Framework is an alpha release from the Green Software Foundation and is released to capture early feedback. If you'd like to offer some feedback, please use this issue template:
|
|
27
|
-
https://github.com/Green-Software-Foundation/if/issues/new?assignees=&labels=feedback&projects=&template=feedback.md&title=Feedback+-+
|
|
28
|
-
`,
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc3RyaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRztJQUNyQixnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0QsZUFBZSxFQUFFLHVCQUF1QjtJQUN4QyxpQkFBaUIsRUFBRSx5Q0FBeUM7SUFDNUQsWUFBWSxFQUFFLHdDQUF3QztJQUN0RCxrQkFBa0IsRUFBRSxvREFBb0Q7SUFDeEUsMEJBQTBCLEVBQUUsZ0RBQWdEO0lBQzVFLG1CQUFtQixFQUFFLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQ3pDLHNDQUFzQyxTQUFTLGdCQUFnQjtJQUNqRSxxQkFBcUIsRUFBRSxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUMzQyw4Q0FBOEMsU0FBUyxHQUFHO0lBQzVELGtCQUFrQixFQUFFOzs7OztDQUtyQjtJQUNDLGdCQUFnQixFQUFFOzs7O0NBSW5CO0lBQ0MsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxjQUFjLEVBQUU7OztDQUdqQjtDQUNBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1RSSU5HUyA9IHtcbiAgRklMRV9JU19OT1RfWUFNTDogJ1Byb3ZpZGVkIGltcGwgZmlsZSBpcyBub3QgaW4geWFtbCBmb3JtYXQuJyxcbiAgSU1QTF9JU19NSVNTSU5HOiAnSW1wbCBmaWxlIGlzIG1pc3NpbmcuJyxcbiAgTUlTU0lOR19DTEFTU05BTUU6ICdJbml0YWxpemF0aW9uIHBhcmFtIGBtb2RlbGAgaXMgbWlzc2luZy4nLFxuICBNSVNTSU5HX1BBVEg6ICdJbml0YWxpemF0aW9uIHBhcmFtIGBwYXRoYCBpcyBtaXNzaW5nLicsXG4gIE1PREVMX0RPRVNOVF9FWElTVDogJ1Byb3ZpZGVkIG1vZGVsIGNsYXNzIGRvZXMgbm90IGJlbG9uZyB0byBhbnkgbW9kZWwuJyxcbiAgTk9UX09VVFBVVF9NT0RFTF9FWFRFTlNJT046ICdQcm92aWRlZCBtb2RlbCBkb2VzIG5vdCBleHRlbmQgTW9kZWxJbnRlcmZhY2UuJyxcbiAgU1RSVUNUVVJFX01BTEZPUk1FRDogKGNoaWxkTmFtZTogc3RyaW5nKSA9PlxuICAgIGBHcmFwaCBpcyBtYWxmb3JtZWQ6IGdyYXBoLmNoaWxkcmVuLiR7Y2hpbGROYW1lfSBpcyBub3QgdmFsaWQuYCxcbiAgTk9UX0lOSVRJQUxJWkVEX01PREVMOiAobW9kZWxOYW1lOiBzdHJpbmcpID0+XG4gICAgYFlvdSdyZSB0cnlpbmcgdG8gdXNlIG5vdCBpbml0YWxpemVkIG1vZGVsOiAke21vZGVsTmFtZX0uYCxcbiAgRElTQ0xBSU1FUl9NRVNTQUdFOiBgXG5bIWltcG9ydGFudF0gSW5jdWJhdGlvbiBQcm9qZWN0XG5cblRoaXMgcHJvamVjdCBpcyBhbiBpbmN1YmF0aW9uIHByb2plY3QgYmVpbmcgcnVuIGluc2lkZSB0aGUgR3JlZW4gU29mdHdhcmUgRm91bmRhdGlvbjsgYXMgc3VjaCwgd2UgKkRPTuKAmVQgcmVjb21tZW5kIHVzaW5nIGl0IGluIGFueSBjcml0aWNhbCB1c2UgY2FzZS4gXG5JbmN1YmF0aW9uIHByb2plY3RzIGFyZSBleHBlcmltZW50YWwsIG9mZmVyIG5vIHN1cHBvcnQgZ3VhcmFudGVlLCBoYXZlIG1pbmltYWwgZ292ZXJuYW5jZSBhbmQgcHJvY2VzcywgYW5kIG1heSBiZSByZXRpcmVkIGF0IGFueSBtb21lbnQuIFRoaXMgcHJvamVjdCBtYXkgb25lIGRheSBncmFkdWF0ZSwgaW4gd2hpY2ggY2FzZSB0aGlzIGRpc2NsYWltZXIgd2lsbCBiZSByZW1vdmVkLlxuYCxcbiAgTk9UX05BVElWRV9NT0RFTDogYFxuWyFpbXBvcnRhbnRdXG5cbllvdSBhcmUgdXNpbmcgbW9kZWxzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJbXBhY3QgRnJhbWV3b3JrIHN0YW5kYXJkIGxpYnJhcnkuIFlvdSBzaG91bGQgZG8geW91ciBvd24gcmVzZWFyY2ggdG8gZW5zdXJlIHRoZSBtb2RlbHMgYXJlIHVwIHRvIGRhdGUgYW5kIGFjY3VyYXRlLiBUaGV5IG1heSBub3QgYmUgYWN0aXZlbHkgbWFpbnRhaW5lZC4gIFxuYCxcbiAgU09NRVRISU5HX1dST05HOiAnU29tZXRoaW5nIHdyb25nIHdpdGggY2xpIGFyZ3VtZW50cy4gUGxlYXNlIGNoZWNrIGRvY3MuJyxcbiAgSVNTVUVfVEVNUExBVEU6IGBcbkltcGFjdCBGcmFtZXdvcmsgaXMgYW4gYWxwaGEgcmVsZWFzZSBmcm9tIHRoZSBHcmVlbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCBpcyByZWxlYXNlZCB0byBjYXB0dXJlIGVhcmx5IGZlZWRiYWNrLiBJZiB5b3UnZCBsaWtlIHRvIG9mZmVyIHNvbWUgZmVlZGJhY2ssIHBsZWFzZSB1c2UgdGhpcyBpc3N1ZSB0ZW1wbGF0ZTogXG5odHRwczovL2dpdGh1Yi5jb20vR3JlZW4tU29mdHdhcmUtRm91bmRhdGlvbi9pZi9pc3N1ZXMvbmV3P2Fzc2lnbmVlcz0mbGFiZWxzPWZlZWRiYWNrJnByb2plY3RzPSZ0ZW1wbGF0ZT1mZWVkYmFjay5tZCZ0aXRsZT1GZWVkYmFjaystK1xuYCxcbn07XG4iXX0=
|
package/build/index.d.ts
DELETED
package/build/index.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const models_universe_1 = require("./lib/models-universe");
|
|
5
|
-
const supercomputer_1 = require("./lib/supercomputer");
|
|
6
|
-
const args_1 = require("./util/args");
|
|
7
|
-
const errors_1 = require("./util/errors");
|
|
8
|
-
const helpers_1 = require("./util/helpers");
|
|
9
|
-
const validations_1 = require("./util/validations");
|
|
10
|
-
const yaml_1 = require("./util/yaml");
|
|
11
|
-
const config_1 = require("./config");
|
|
12
|
-
const { CliInputError } = errors_1.ERRORS;
|
|
13
|
-
const { DISCLAIMER_MESSAGE, SOMETHING_WRONG } = config_1.STRINGS;
|
|
14
|
-
/**
|
|
15
|
-
* 1. Parses yml input/output process arguments.
|
|
16
|
-
* 2. Opens yaml file as an object.
|
|
17
|
-
* 3. Initializes models.
|
|
18
|
-
* 4. Initializes graph, does computing.
|
|
19
|
-
* 5. Saves processed object as a yaml file.
|
|
20
|
-
* @example run `npm run impact-engine -- --impl ./test.yml --ompl ./result.yml`
|
|
21
|
-
*/
|
|
22
|
-
const impactEngine = async () => {
|
|
23
|
-
console.log(DISCLAIMER_MESSAGE);
|
|
24
|
-
const processParams = (0, args_1.parseProcessArgument)();
|
|
25
|
-
if (processParams) {
|
|
26
|
-
const { inputPath, outputPath } = processParams;
|
|
27
|
-
const rawImpl = await (0, yaml_1.openYamlFileAsObject)(inputPath);
|
|
28
|
-
// Lifecycle Validation
|
|
29
|
-
const impl = (0, validations_1.validateImpl)(rawImpl);
|
|
30
|
-
// Lifecycle Initialize Models
|
|
31
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
32
|
-
impl.initialize.models.forEach((model) => modelsHandbook.writeDown(model));
|
|
33
|
-
// Lifecycle Computing
|
|
34
|
-
const ateruiComputer = new supercomputer_1.Supercomputer(impl, modelsHandbook);
|
|
35
|
-
const ompl = await ateruiComputer.compute();
|
|
36
|
-
if (!outputPath) {
|
|
37
|
-
console.log(JSON.stringify(ompl));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
await (0, yaml_1.saveYamlFileAs)(ompl, outputPath);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
return Promise.reject(new CliInputError(SOMETHING_WRONG));
|
|
44
|
-
};
|
|
45
|
-
impactEngine().catch(helpers_1.andHandle);
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkRBQXFEO0FBQ3JELHVEQUFrRDtBQUVsRCxzQ0FBaUQ7QUFDakQsMENBQXFDO0FBQ3JDLDRDQUF5QztBQUN6QyxvREFBZ0Q7QUFDaEQsc0NBQWlFO0FBRWpFLHFDQUFpQztBQUVqQyxNQUFNLEVBQUMsYUFBYSxFQUFDLEdBQUcsZUFBTSxDQUFDO0FBRS9CLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXREOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFaEMsTUFBTSxhQUFhLEdBQUcsSUFBQSwyQkFBb0IsR0FBRSxDQUFDO0lBRTdDLElBQUksYUFBYSxFQUFFO1FBQ2pCLE1BQU0sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLEdBQUcsYUFBYSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSwyQkFBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUV0RCx1QkFBdUI7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLDhCQUE4QjtRQUM5QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUM1QyxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNoQyxDQUFDO1FBRUYsc0JBQXNCO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLElBQUksNkJBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFNUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBQSxxQkFBYyxFQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV2QyxPQUFPO0tBQ1I7SUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRixZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IHtNb2RlbHNVbml2ZXJzZX0gZnJvbSAnLi9saWIvbW9kZWxzLXVuaXZlcnNlJztcbmltcG9ydCB7U3VwZXJjb21wdXRlcn0gZnJvbSAnLi9saWIvc3VwZXJjb21wdXRlcic7XG5cbmltcG9ydCB7cGFyc2VQcm9jZXNzQXJndW1lbnR9IGZyb20gJy4vdXRpbC9hcmdzJztcbmltcG9ydCB7RVJST1JTfSBmcm9tICcuL3V0aWwvZXJyb3JzJztcbmltcG9ydCB7YW5kSGFuZGxlfSBmcm9tICcuL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge3ZhbGlkYXRlSW1wbH0gZnJvbSAnLi91dGlsL3ZhbGlkYXRpb25zJztcbmltcG9ydCB7b3BlbllhbWxGaWxlQXNPYmplY3QsIHNhdmVZYW1sRmlsZUFzfSBmcm9tICcuL3V0aWwveWFtbCc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi9jb25maWcnO1xuXG5jb25zdCB7Q2xpSW5wdXRFcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtESVNDTEFJTUVSX01FU1NBR0UsIFNPTUVUSElOR19XUk9OR30gPSBTVFJJTkdTO1xuXG4vKipcbiAqIDEuIFBhcnNlcyB5bWwgaW5wdXQvb3V0cHV0IHByb2Nlc3MgYXJndW1lbnRzLlxuICogMi4gT3BlbnMgeWFtbCBmaWxlIGFzIGFuIG9iamVjdC5cbiAqIDMuIEluaXRpYWxpemVzIG1vZGVscy5cbiAqIDQuIEluaXRpYWxpemVzIGdyYXBoLCBkb2VzIGNvbXB1dGluZy5cbiAqIDUuIFNhdmVzIHByb2Nlc3NlZCBvYmplY3QgYXMgYSB5YW1sIGZpbGUuXG4gKiBAZXhhbXBsZSBydW4gYG5wbSBydW4gaW1wYWN0LWVuZ2luZSAtLSAtLWltcGwgLi90ZXN0LnltbCAtLW9tcGwgLi9yZXN1bHQueW1sYFxuICovXG5jb25zdCBpbXBhY3RFbmdpbmUgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKERJU0NMQUlNRVJfTUVTU0FHRSk7XG5cbiAgY29uc3QgcHJvY2Vzc1BhcmFtcyA9IHBhcnNlUHJvY2Vzc0FyZ3VtZW50KCk7XG5cbiAgaWYgKHByb2Nlc3NQYXJhbXMpIHtcbiAgICBjb25zdCB7aW5wdXRQYXRoLCBvdXRwdXRQYXRofSA9IHByb2Nlc3NQYXJhbXM7XG4gICAgY29uc3QgcmF3SW1wbCA9IGF3YWl0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0KGlucHV0UGF0aCk7XG5cbiAgICAvLyBMaWZlY3ljbGUgVmFsaWRhdGlvblxuICAgIGNvbnN0IGltcGwgPSB2YWxpZGF0ZUltcGwocmF3SW1wbCk7XG5cbiAgICAvLyBMaWZlY3ljbGUgSW5pdGlhbGl6ZSBNb2RlbHNcbiAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgIGltcGwuaW5pdGlhbGl6ZS5tb2RlbHMuZm9yRWFjaCgobW9kZWw6IGFueSkgPT5cbiAgICAgIG1vZGVsc0hhbmRib29rLndyaXRlRG93bihtb2RlbClcbiAgICApO1xuXG4gICAgLy8gTGlmZWN5Y2xlIENvbXB1dGluZ1xuICAgIGNvbnN0IGF0ZXJ1aUNvbXB1dGVyID0gbmV3IFN1cGVyY29tcHV0ZXIoaW1wbCwgbW9kZWxzSGFuZGJvb2spO1xuICAgIGNvbnN0IG9tcGwgPSBhd2FpdCBhdGVydWlDb21wdXRlci5jb21wdXRlKCk7XG5cbiAgICBpZiAoIW91dHB1dFBhdGgpIHtcbiAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG9tcGwpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBzYXZlWWFtbEZpbGVBcyhvbXBsLCBvdXRwdXRQYXRoKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgQ2xpSW5wdXRFcnJvcihTT01FVEhJTkdfV1JPTkcpKTtcbn07XG5cbmltcGFjdEVuZ2luZSgpLmNhdGNoKGFuZEhhbmRsZSk7XG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ImplInitializeModel, InitalizedModels } from '../types/models-universe';
|
|
2
|
-
/**
|
|
3
|
-
* Models Initialization Lifecycle.
|
|
4
|
-
*/
|
|
5
|
-
export declare class ModelsUniverse {
|
|
6
|
-
/**
|
|
7
|
-
* Models list.
|
|
8
|
-
*/
|
|
9
|
-
initalizedModels: InitalizedModels;
|
|
10
|
-
/**
|
|
11
|
-
* Checks if model is instance of `IOutputModelInterface`.
|
|
12
|
-
*/
|
|
13
|
-
private instanceOfModel;
|
|
14
|
-
/**
|
|
15
|
-
* Returns plugin model. Checks if model is missing then rejects with error.
|
|
16
|
-
* Then checks if `path` is starting with github, then grabs the repository name.
|
|
17
|
-
* Imports module, then checks if it's a class which implements input model interface.
|
|
18
|
-
*/
|
|
19
|
-
private handPluginModel;
|
|
20
|
-
/**
|
|
21
|
-
* Initializes and registers model.
|
|
22
|
-
*/
|
|
23
|
-
writeDown(modelToInitalize: ImplInitializeModel): InitalizedModels;
|
|
24
|
-
/**
|
|
25
|
-
* Returns existing model by `name`.
|
|
26
|
-
*/
|
|
27
|
-
getInitializedModel(modelName: string, config: any): Promise<import("../types/model-interface").ModelPluginInterface>;
|
|
28
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelsUniverse = void 0;
|
|
4
|
-
const errors_1 = require("../util/errors");
|
|
5
|
-
const config_1 = require("../config");
|
|
6
|
-
const { ModelInitializationError, ModelCredentialError } = errors_1.ERRORS;
|
|
7
|
-
const { GITHUB_PATH } = config_1.CONFIG;
|
|
8
|
-
const { MISSING_CLASSNAME, NOT_OUTPUT_MODEL_EXTENSION, NOT_INITIALIZED_MODEL, MISSING_PATH, MODEL_DOESNT_EXIST, NOT_NATIVE_MODEL, } = config_1.STRINGS;
|
|
9
|
-
/**
|
|
10
|
-
* Models Initialization Lifecycle.
|
|
11
|
-
*/
|
|
12
|
-
class ModelsUniverse {
|
|
13
|
-
constructor() {
|
|
14
|
-
/**
|
|
15
|
-
* Models list.
|
|
16
|
-
*/
|
|
17
|
-
this.initalizedModels = {};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Checks if model is instance of `IOutputModelInterface`.
|
|
21
|
-
*/
|
|
22
|
-
instanceOfModel(ClassContainer) {
|
|
23
|
-
try {
|
|
24
|
-
const testModel = new ClassContainer();
|
|
25
|
-
const boolable = 'configure' in testModel && 'execute' in testModel;
|
|
26
|
-
return boolable;
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
throw ModelInitializationError(MODEL_DOESNT_EXIST);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Returns plugin model. Checks if model is missing then rejects with error.
|
|
34
|
-
* Then checks if `path` is starting with github, then grabs the repository name.
|
|
35
|
-
* Imports module, then checks if it's a class which implements input model interface.
|
|
36
|
-
*/
|
|
37
|
-
async handPluginModel(model, path) {
|
|
38
|
-
if (!model) {
|
|
39
|
-
throw new ModelCredentialError(MISSING_CLASSNAME);
|
|
40
|
-
}
|
|
41
|
-
if (!path) {
|
|
42
|
-
throw new ModelCredentialError(MISSING_PATH);
|
|
43
|
-
}
|
|
44
|
-
if (path?.startsWith(GITHUB_PATH)) {
|
|
45
|
-
const parts = path.split('/');
|
|
46
|
-
path = parts[parts.length - 1];
|
|
47
|
-
}
|
|
48
|
-
if (!path.includes('if-models')) {
|
|
49
|
-
console.log(NOT_NATIVE_MODEL);
|
|
50
|
-
}
|
|
51
|
-
const pluginModule = await Promise.resolve(`${path}`).then(s => require(s));
|
|
52
|
-
if (this.instanceOfModel(pluginModule[model])) {
|
|
53
|
-
return pluginModule[model];
|
|
54
|
-
}
|
|
55
|
-
throw new Error(NOT_OUTPUT_MODEL_EXTENSION);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Initializes and registers model.
|
|
59
|
-
*/
|
|
60
|
-
writeDown(modelToInitalize) {
|
|
61
|
-
const { name, config, model, path } = modelToInitalize;
|
|
62
|
-
const callback = async (graphOptions) => {
|
|
63
|
-
const Model = await this.handPluginModel(model, path);
|
|
64
|
-
const params = {
|
|
65
|
-
...config,
|
|
66
|
-
...graphOptions,
|
|
67
|
-
};
|
|
68
|
-
const initalizedModel = await new Model().configure(params);
|
|
69
|
-
return initalizedModel;
|
|
70
|
-
};
|
|
71
|
-
this.initalizedModels = {
|
|
72
|
-
...this.initalizedModels,
|
|
73
|
-
[name]: callback,
|
|
74
|
-
};
|
|
75
|
-
return this.initalizedModels;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Returns existing model by `name`.
|
|
79
|
-
*/
|
|
80
|
-
async getInitializedModel(modelName, config) {
|
|
81
|
-
try {
|
|
82
|
-
if (this.initalizedModels[modelName]) {
|
|
83
|
-
return await this.initalizedModels[modelName](config);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
if (error instanceof Error) {
|
|
88
|
-
throw new ModelInitializationError(error.message);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
throw new ModelInitializationError(NOT_INITIALIZED_MODEL(modelName));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.ModelsUniverse = ModelsUniverse;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9tb2RlbHMtdW5pdmVyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXNDO0FBRXRDLHNDQUEwQztBQVExQyxNQUFNLEVBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFaEUsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUM3QixNQUFNLEVBQ0osaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsR0FBRyxnQkFBTyxDQUFDO0FBRVo7O0dBRUc7QUFDSCxNQUFhLGNBQWM7SUFBM0I7UUFDRTs7V0FFRztRQUNJLHFCQUFnQixHQUFxQixFQUFFLENBQUM7SUE0RmpELENBQUM7SUExRkM7O09BRUc7SUFDSyxlQUFlLENBQUMsY0FBbUI7UUFDekMsSUFBSTtZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFFdkMsTUFBTSxRQUFRLEdBQUcsV0FBVyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDO1lBRXBFLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYyxFQUFFLElBQWE7UUFDekQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtRQUVELE1BQU0sWUFBWSxHQUFHLHlCQUFhLElBQUkseUJBQUMsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDN0MsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLGdCQUFxQztRQUNwRCxNQUFNLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFFckQsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLFlBQTBCLEVBQUUsRUFBRTtZQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXRELE1BQU0sTUFBTSxHQUFHO2dCQUNiLEdBQUcsTUFBTTtnQkFDVCxHQUFHLFlBQVk7YUFDaEIsQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUQsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtZQUN4QixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVE7U0FDakIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxTQUFpQixFQUFFLE1BQVc7UUFDN0QsSUFBSTtZQUNGLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNuRDtTQUNGO1FBRUQsTUFBTSxJQUFJLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBaEdELHdDQWdHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7Q09ORklHLCBTVFJJTkdTfSBmcm9tICcuLi9jb25maWcnO1xuXG5pbXBvcnQge1xuICBHcmFwaE9wdGlvbnMsXG4gIEltcGxJbml0aWFsaXplTW9kZWwsXG4gIEluaXRhbGl6ZWRNb2RlbHMsXG59IGZyb20gJy4uL3R5cGVzL21vZGVscy11bml2ZXJzZSc7XG5cbmNvbnN0IHtNb2RlbEluaXRpYWxpemF0aW9uRXJyb3IsIE1vZGVsQ3JlZGVudGlhbEVycm9yfSA9IEVSUk9SUztcblxuY29uc3Qge0dJVEhVQl9QQVRIfSA9IENPTkZJRztcbmNvbnN0IHtcbiAgTUlTU0lOR19DTEFTU05BTUUsXG4gIE5PVF9PVVRQVVRfTU9ERUxfRVhURU5TSU9OLFxuICBOT1RfSU5JVElBTElaRURfTU9ERUwsXG4gIE1JU1NJTkdfUEFUSCxcbiAgTU9ERUxfRE9FU05UX0VYSVNULFxuICBOT1RfTkFUSVZFX01PREVMLFxufSA9IFNUUklOR1M7XG5cbi8qKlxuICogTW9kZWxzIEluaXRpYWxpemF0aW9uIExpZmVjeWNsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vZGVsc1VuaXZlcnNlIHtcbiAgLyoqXG4gICAqIE1vZGVscyBsaXN0LlxuICAgKi9cbiAgcHVibGljIGluaXRhbGl6ZWRNb2RlbHM6IEluaXRhbGl6ZWRNb2RlbHMgPSB7fTtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIG1vZGVsIGlzIGluc3RhbmNlIG9mIGBJT3V0cHV0TW9kZWxJbnRlcmZhY2VgLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YW5jZU9mTW9kZWwoQ2xhc3NDb250YWluZXI6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXN0TW9kZWwgPSBuZXcgQ2xhc3NDb250YWluZXIoKTtcblxuICAgICAgY29uc3QgYm9vbGFibGUgPSAnY29uZmlndXJlJyBpbiB0ZXN0TW9kZWwgJiYgJ2V4ZWN1dGUnIGluIHRlc3RNb2RlbDtcblxuICAgICAgcmV0dXJuIGJvb2xhYmxlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBNb2RlbEluaXRpYWxpemF0aW9uRXJyb3IoTU9ERUxfRE9FU05UX0VYSVNUKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBwbHVnaW4gbW9kZWwuIENoZWNrcyBpZiBtb2RlbCBpcyBtaXNzaW5nIHRoZW4gcmVqZWN0cyB3aXRoIGVycm9yLlxuICAgKiBUaGVuIGNoZWNrcyBpZiBgcGF0aGAgaXMgc3RhcnRpbmcgd2l0aCBnaXRodWIsIHRoZW4gZ3JhYnMgdGhlIHJlcG9zaXRvcnkgbmFtZS5cbiAgICogSW1wb3J0cyBtb2R1bGUsIHRoZW4gY2hlY2tzIGlmIGl0J3MgYSBjbGFzcyB3aGljaCBpbXBsZW1lbnRzIGlucHV0IG1vZGVsIGludGVyZmFjZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZFBsdWdpbk1vZGVsKG1vZGVsPzogc3RyaW5nLCBwYXRoPzogc3RyaW5nKSB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgdGhyb3cgbmV3IE1vZGVsQ3JlZGVudGlhbEVycm9yKE1JU1NJTkdfQ0xBU1NOQU1FKTtcbiAgICB9XG5cbiAgICBpZiAoIXBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBNb2RlbENyZWRlbnRpYWxFcnJvcihNSVNTSU5HX1BBVEgpO1xuICAgIH1cblxuICAgIGlmIChwYXRoPy5zdGFydHNXaXRoKEdJVEhVQl9QQVRIKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcvJyk7XG4gICAgICBwYXRoID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgaWYgKCFwYXRoLmluY2x1ZGVzKCdpZi1tb2RlbHMnKSkge1xuICAgICAgY29uc29sZS5sb2coTk9UX05BVElWRV9NT0RFTCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGx1Z2luTW9kdWxlID0gYXdhaXQgaW1wb3J0KHBhdGgpO1xuXG4gICAgaWYgKHRoaXMuaW5zdGFuY2VPZk1vZGVsKHBsdWdpbk1vZHVsZVttb2RlbF0pKSB7XG4gICAgICByZXR1cm4gcGx1Z2luTW9kdWxlW21vZGVsXTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoTk9UX09VVFBVVF9NT0RFTF9FWFRFTlNJT04pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGFuZCByZWdpc3RlcnMgbW9kZWwuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVEb3duKG1vZGVsVG9Jbml0YWxpemU6IEltcGxJbml0aWFsaXplTW9kZWwpIHtcbiAgICBjb25zdCB7bmFtZSwgY29uZmlnLCBtb2RlbCwgcGF0aH0gPSBtb2RlbFRvSW5pdGFsaXplO1xuXG4gICAgY29uc3QgY2FsbGJhY2sgPSBhc3luYyAoZ3JhcGhPcHRpb25zOiBHcmFwaE9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IE1vZGVsID0gYXdhaXQgdGhpcy5oYW5kUGx1Z2luTW9kZWwobW9kZWwsIHBhdGgpO1xuXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgLi4uZ3JhcGhPcHRpb25zLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaW5pdGFsaXplZE1vZGVsID0gYXdhaXQgbmV3IE1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIHJldHVybiBpbml0YWxpemVkTW9kZWw7XG4gICAgfTtcblxuICAgIHRoaXMuaW5pdGFsaXplZE1vZGVscyA9IHtcbiAgICAgIC4uLnRoaXMuaW5pdGFsaXplZE1vZGVscyxcbiAgICAgIFtuYW1lXTogY2FsbGJhY2ssXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmluaXRhbGl6ZWRNb2RlbHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBleGlzdGluZyBtb2RlbCBieSBgbmFtZWAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SW5pdGlhbGl6ZWRNb2RlbChtb2RlbE5hbWU6IHN0cmluZywgY29uZmlnOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuaW5pdGFsaXplZE1vZGVsc1ttb2RlbE5hbWVdKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmluaXRhbGl6ZWRNb2RlbHNbbW9kZWxOYW1lXShjb25maWcpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgTW9kZWxJbml0aWFsaXphdGlvbkVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBNb2RlbEluaXRpYWxpemF0aW9uRXJyb3IoTk9UX0lOSVRJQUxJWkVEX01PREVMKG1vZGVsTmFtZSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ModelsUniverse } from './models-universe';
|
|
2
|
-
import { Impl } from '../types/impl';
|
|
3
|
-
/**
|
|
4
|
-
* Computer for `impl` documents.
|
|
5
|
-
*/
|
|
6
|
-
export declare class Supercomputer {
|
|
7
|
-
private olderChild;
|
|
8
|
-
private impl;
|
|
9
|
-
private modelsHandbook;
|
|
10
|
-
constructor(impl: Impl, modelsHandbook: ModelsUniverse);
|
|
11
|
-
/**
|
|
12
|
-
* Flattens config entries.
|
|
13
|
-
*/
|
|
14
|
-
private flattenConfigValues;
|
|
15
|
-
/**
|
|
16
|
-
* Adds config entries to each obsercation object passed.
|
|
17
|
-
*/
|
|
18
|
-
private enrichInputs;
|
|
19
|
-
/**
|
|
20
|
-
* If child is top level, then initializes `this.olderChild`.
|
|
21
|
-
* If `children` object contains `children` property, it means inputs are nested (calls compute again).
|
|
22
|
-
* Otherwise enriches inputs, passes them to Observatory.
|
|
23
|
-
* For each model from pipeline Observatory gathers inputs. Then results are stored.
|
|
24
|
-
*/
|
|
25
|
-
private calculateOutputsForChild;
|
|
26
|
-
/**
|
|
27
|
-
* Checks if object is top level children or nested, then runs through all children and calculates outputs.
|
|
28
|
-
*/
|
|
29
|
-
compute(childrenObject?: any): Promise<Impl>;
|
|
30
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Supercomputer = void 0;
|
|
4
|
-
const observatory_1 = require("./observatory");
|
|
5
|
-
const errors_1 = require("../util/errors");
|
|
6
|
-
const config_1 = require("../config");
|
|
7
|
-
const { ImplValidationError } = errors_1.ERRORS;
|
|
8
|
-
const { STRUCTURE_MALFORMED } = config_1.STRINGS;
|
|
9
|
-
/**
|
|
10
|
-
* Computer for `impl` documents.
|
|
11
|
-
*/
|
|
12
|
-
class Supercomputer {
|
|
13
|
-
constructor(impl, modelsHandbook) {
|
|
14
|
-
this.olderChild = { name: '', info: {} };
|
|
15
|
-
this.impl = impl;
|
|
16
|
-
this.modelsHandbook = modelsHandbook;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Flattens config entries.
|
|
20
|
-
*/
|
|
21
|
-
flattenConfigValues(config) {
|
|
22
|
-
if (!config) {
|
|
23
|
-
return {};
|
|
24
|
-
}
|
|
25
|
-
const configModelNames = Object.keys(config);
|
|
26
|
-
const values = configModelNames.reduce((acc, name) => {
|
|
27
|
-
acc = {
|
|
28
|
-
...acc,
|
|
29
|
-
...config[name],
|
|
30
|
-
};
|
|
31
|
-
return acc;
|
|
32
|
-
}, {});
|
|
33
|
-
return values;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Adds config entries to each obsercation object passed.
|
|
37
|
-
*/
|
|
38
|
-
enrichInputs(inputs, config, nestedConfig) {
|
|
39
|
-
const configValues = this.flattenConfigValues(config);
|
|
40
|
-
const nestedConfigValues = this.flattenConfigValues(nestedConfig);
|
|
41
|
-
return inputs.map((input) => ({
|
|
42
|
-
...input,
|
|
43
|
-
...configValues,
|
|
44
|
-
...nestedConfigValues,
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* If child is top level, then initializes `this.olderChild`.
|
|
49
|
-
* If `children` object contains `children` property, it means inputs are nested (calls compute again).
|
|
50
|
-
* Otherwise enriches inputs, passes them to Observatory.
|
|
51
|
-
* For each model from pipeline Observatory gathers inputs. Then results are stored.
|
|
52
|
-
*/
|
|
53
|
-
async calculateOutputsForChild(childrenObject, params) {
|
|
54
|
-
const { childName, areChildrenNested } = params;
|
|
55
|
-
if (!areChildrenNested) {
|
|
56
|
-
this.olderChild = {
|
|
57
|
-
name: childName,
|
|
58
|
-
info: this.impl.graph.children[childName],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
const { pipeline, inputs, config } = this.olderChild.info;
|
|
62
|
-
if ('children' in childrenObject[childName]) {
|
|
63
|
-
return this.compute(childrenObject[childName].children);
|
|
64
|
-
}
|
|
65
|
-
if (!('inputs' in childrenObject[childName])) {
|
|
66
|
-
throw new ImplValidationError(STRUCTURE_MALFORMED(childName));
|
|
67
|
-
}
|
|
68
|
-
const specificInputs = areChildrenNested
|
|
69
|
-
? childrenObject[childName].inputs
|
|
70
|
-
: inputs;
|
|
71
|
-
const childrenConfig = childrenObject[childName].config || {};
|
|
72
|
-
const enrichedInputs = this.enrichInputs(specificInputs, config, childrenConfig);
|
|
73
|
-
const observatory = new observatory_1.Observatory(enrichedInputs);
|
|
74
|
-
for (const modelName of pipeline) {
|
|
75
|
-
const params = config && config[modelName];
|
|
76
|
-
const modelInstance = await this.modelsHandbook.getInitializedModel(modelName, params);
|
|
77
|
-
await observatory.doInvestigationsWith(modelInstance);
|
|
78
|
-
}
|
|
79
|
-
const outputs = observatory.getOutputs();
|
|
80
|
-
if (areChildrenNested) {
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
82
|
-
// @ts-ignore
|
|
83
|
-
this.impl.graph.children[this.olderChild.name].children[childName].outputs = observatory.getOutputs();
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.impl.graph.children[this.olderChild.name].outputs = outputs;
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Checks if object is top level children or nested, then runs through all children and calculates outputs.
|
|
91
|
-
*/
|
|
92
|
-
async compute(childrenObject) {
|
|
93
|
-
const implOrChildren = childrenObject || this.impl;
|
|
94
|
-
const areChildrenNested = !!childrenObject;
|
|
95
|
-
const children = areChildrenNested
|
|
96
|
-
? implOrChildren
|
|
97
|
-
: implOrChildren.graph.children;
|
|
98
|
-
const childrenNames = Object.keys(children);
|
|
99
|
-
for (const childName of childrenNames) {
|
|
100
|
-
await this.calculateOutputsForChild(children, {
|
|
101
|
-
childName,
|
|
102
|
-
areChildrenNested,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return this.impl;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
exports.Supercomputer = Supercomputer;
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwZXJjb21wdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3VwZXJjb21wdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQ0FBMEM7QUFFMUMsMkNBQXNDO0FBRXRDLHNDQUFrQztBQUtsQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsR0FBRyxlQUFNLENBQUM7QUFFckMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLEdBQUcsZ0JBQU8sQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUt4QixZQUFZLElBQVUsRUFBRSxjQUE4QjtRQUo5QyxlQUFVLEdBQXFCLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFLMUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CLENBQUMsTUFBYztRQUN4QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDaEUsR0FBRyxHQUFHO2dCQUNKLEdBQUcsR0FBRztnQkFDTixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDaEIsQ0FBQztZQUVGLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUNsQixNQUFxQixFQUNyQixNQUFjLEVBQ2QsWUFBb0I7UUFFcEIsTUFBTSxZQUFZLEdBQUcs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QUFJLENBQUMsSUFBSSxDQUFDO1FBQ25ELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBYSxpQkFBaUI7WUFDMUMsQ0FBQyxDQUFDLGNBQWM7WUFDaEIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUMsS0FBSyxNQUFNLFNBQVMsSUFBSSxhQUFhLEVBQUU7WUFDckMsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxTQUFTO2dCQUNULGlCQUFpQjthQUNsQixDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUExSUQsc0NBMElDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbHNVbml2ZXJzZX0gZnJvbSAnLi9tb2RlbHMtdW5pdmVyc2UnO1xuaW1wb3J0IHtPYnNlcnZhdG9yeX0gZnJvbSAnLi9vYnNlcnZhdG9yeSc7XG5cbmltcG9ydCB7RVJST1JTfSBmcm9tICcuLi91dGlsL2Vycm9ycyc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtDaGlsZEluZm9ybWF0aW9ufSBmcm9tICcuLi90eXBlcy9zdXBlcmNvbXB1dGVyJztcbmltcG9ydCB7Q2hpbGRyZW4sIENvbmZpZywgSW1wbCwgTW9kZWxQYXJhbXN9IGZyb20gJy4uL3R5cGVzL2ltcGwnO1xuXG5jb25zdCB7SW1wbFZhbGlkYXRpb25FcnJvcn0gPSBFUlJPUlM7XG5cbmNvbnN0IHtTVFJVQ1RVUkVfTUFMRk9STUVEfSA9IFNUUklOR1M7XG5cbi8qKlxuICogQ29tcHV0ZXIgZm9yIGBpbXBsYCBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcmNvbXB1dGVyIHtcbiAgcHJpdmF0ZSBvbGRlckNoaWxkOiBDaGlsZEluZm9ybWF0aW9uID0ge25hbWU6ICcnLCBpbmZvOiB7fX07XG4gIHByaXZhdGUgaW1wbDogSW1wbDtcbiAgcHJpdmF0ZSBtb2RlbHNIYW5kYm9vazogTW9kZWxzVW5pdmVyc2U7XG5cbiAgY29uc3RydWN0b3IoaW1wbDogSW1wbCwgbW9kZWxzSGFuZGJvb2s6IE1vZGVsc1VuaXZlcnNlKSB7XG4gICAgdGhpcy5pbXBsID0gaW1wbDtcbiAgICB0aGlzLm1vZGVsc0hhbmRib29rID0gbW9kZWxzSGFuZGJvb2s7XG4gIH1cblxuICAvKipcbiAgICogRmxhdHRlbnMgY29uZmlnIGVudHJpZXMuXG4gICAqL1xuICBwcml2YXRlIGZsYXR0ZW5Db25maWdWYWx1ZXMoY29uZmlnOiBDb25maWcpIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZ01vZGVsTmFtZXMgPSBPYmplY3Qua2V5cyhjb25maWcpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGNvbmZpZ01vZGVsTmFtZXMucmVkdWNlKChhY2M6IGFueSwgbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBhY2MgPSB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uY29uZmlnW25hbWVdLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY29uZmlnIGVudHJpZXMgdG8gZWFjaCBvYnNlcmNhdGlvbiBvYmplY3QgcGFzc2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBlbnJpY2hJbnB1dHMoXG4gICAgaW5wdXRzOiBNb2RlbFBhcmFtc1tdLFxuICAgIGNvbmZpZzogQ29uZmlnLFxuICAgIG5lc3RlZENvbmZpZzogQ29uZmlnXG4gICkge1xuICAgIGNvbnN0IGNvbmZpZ1ZhbHVlcyA9IHRoaXMuZmxhdHRlbkNvbmZpZ1ZhbHVlcyhjb25maWcpO1xuICAgIGNvbnN0IG5lc3RlZENvbmZpZ1ZhbHVlcyA9IHRoaXMuZmxhdHRlbkNvbmZpZ1ZhbHVlcyhuZXN0ZWRDb25maWcpO1xuXG4gICAgcmV0dXJuIGlucHV0cy5tYXAoKGlucHV0OiBhbnkpID0+ICh7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIC4uLmNvbmZpZ1ZhbHVlcyxcbiAgICAgIC4uLm5lc3RlZENvbmZpZ1ZhbHVlcyxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgY2hpbGQgaXMgdG9wIGxldmVsLCB0aGVuIGluaXRpYWxpemVzIGB0aGlzLm9sZGVyQ2hpbGRgLlxuICAgKiBJZiBgY2hpbGRyZW5gIG9iamVjdCBjb250YWlucyBgY2hpbGRyZW5gIHByb3BlcnR5LCBpdCBtZWFucyBpbnB1dHMgYXJlIG5lc3RlZCAoY2FsbHMgY29tcHV0ZSBhZ2FpbikuXG4gICAqIE90aGVyd2lzZSBlbnJpY2hlcyBpbnB1dHMsIHBhc3NlcyB0aGVtIHRvIE9ic2VydmF0b3J5LlxuICAgKiBGb3IgZWFjaCBtb2RlbCBmcm9tIHBpcGVsaW5lIE9ic2VydmF0b3J5IGdhdGhlcnMgaW5wdXRzLiBUaGVuIHJlc3VsdHMgYXJlIHN0b3JlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY2FsY3VsYXRlT3V0cHV0c0ZvckNoaWxkKFxuICAgIGNoaWxkcmVuT2JqZWN0OiBDaGlsZHJlbixcbiAgICBwYXJhbXM6IGFueVxuICApIHtcbiAgICBjb25zdCB7Y2hpbGROYW1lLCBhcmVDaGlsZHJlbk5lc3RlZH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIWFyZUNoaWxkcmVuTmVzdGVkKSB7XG4gICAgICB0aGlzLm9sZGVyQ2hpbGQgPSB7XG4gICAgICAgIG5hbWU6IGNoaWxkTmFtZSxcbiAgICAgICAgaW5mbzogdGhpcy5pbXBsLmdyYXBoLmNoaWxkcmVuW2NoaWxkTmFtZV0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHtwaXBlbGluZSwgaW5wdXRzLCBjb25maWd9ID0gdGhpcy5vbGRlckNoaWxkLmluZm87XG5cbiAgICBpZiAoJ2NoaWxkcmVuJyBpbiBjaGlsZHJlbk9iamVjdFtjaGlsZE5hbWVdKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wdXRlKGNoaWxkcmVuT2JqZWN0W2NoaWxkTmFtZV0uY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGlmICghKCdpbnB1dHMnIGluIGNoaWxkcmVuT2JqZWN0W2NoaWxkTmFtZV0pKSB7XG4gICAgICB0aHJvdyBuZXcgSW1wbFZhbGlkYXRpb25FcnJvcihTVFJVQ1RVUkVfTUFMRk9STUVEKGNoaWxkTmFtZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHNwZWNpZmljSW5wdXRzID0gYXJlQ2hpbGRyZW5OZXN0ZWRcbiAgICAgID8gY2hpbGRyZW5PYmplY3RbY2hpbGROYW1lXS5pbnB1dHNcbiAgICAgIDogaW5wdXRzO1xuXG4gICAgY29uc3QgY2hpbGRyZW5Db25maWcgPSBjaGlsZHJlbk9iamVjdFtjaGlsZE5hbWVdLmNvbmZpZyB8fCB7fTtcblxuICAgIGNvbnN0IGVucmljaGVkSW5wdXRzID0gdGhpcy5lbnJpY2hJbnB1dHMoXG4gICAgICBzcGVjaWZpY0lucHV0cyxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGNoaWxkcmVuQ29uZmlnXG4gICAgKTtcblxuICAgIGNvbnN0IG9ic2VydmF0b3J5ID0gbmV3IE9ic2VydmF0b3J5KGVucmljaGVkSW5wdXRzKTtcblxuICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIG9mIHBpcGVsaW5lKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBjb25maWcgJiYgY29uZmlnW21vZGVsTmFtZV07XG4gICAgICBjb25zdCBtb2RlbEluc3RhbmNlID0gYXdhaXQgdGhpcy5tb2RlbHNIYW5kYm9vay5nZXRJbml0aWFsaXplZE1vZGVsKFxuICAgICAgICBtb2RlbE5hbWUsXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcblxuICAgICAgYXdhaXQgb2JzZXJ2YXRvcnkuZG9JbnZlc3RpZ2F0aW9uc1dpdGgobW9kZWxJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cHV0cyA9IG9ic2VydmF0b3J5LmdldE91dHB1dHMoKTtcblxuICAgIGlmIChhcmVDaGlsZHJlbk5lc3RlZCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5pbXBsLmdyYXBoLmNoaWxkcmVuW3RoaXMub2xkZXJDaGlsZC5uYW1lXS5jaGlsZHJlbltcbiAgICAgICAgY2hpbGROYW1lXG4gICAgICBdLm91dHB1dHMgPSBvYnNlcnZhdG9yeS5nZXRPdXRwdXRzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmltcGwuZ3JhcGguY2hpbGRyZW5bdGhpcy5vbGRlckNoaWxkLm5hbWVdLm91dHB1dHMgPSBvdXRwdXRzO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgb2JqZWN0IGlzIHRvcCBsZXZlbCBjaGlsZHJlbiBvciBuZXN0ZWQsIHRoZW4gcnVucyB0aHJvdWdoIGFsbCBjaGlsZHJlbiBhbmQgY2FsY3VsYXRlcyBvdXRwdXRzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbXB1dGUoY2hpbGRyZW5PYmplY3Q/OiBhbnkpIHtcbiAgICBjb25zdCBpbXBsT3JDaGlsZHJlbiA9IGNoaWxkcmVuT2JqZWN0IHx8IHRoaXMuaW1wbDtcbiAgICBjb25zdCBhcmVDaGlsZHJlbk5lc3RlZCA9ICEhY2hpbGRyZW5PYmplY3Q7XG4gICAgY29uc3QgY2hpbGRyZW46IENoaWxkcmVuID0gYXJlQ2hpbGRyZW5OZXN0ZWRcbiAgICAgID8gaW1wbE9yQ2hpbGRyZW5cbiAgICAgIDogaW1wbE9yQ2hpbGRyZW4uZ3JhcGguY2hpbGRyZW47XG4gICAgY29uc3QgY2hpbGRyZW5OYW1lcyA9IE9iamVjdC5rZXlzKGNoaWxkcmVuKTtcblxuICAgIGZvciAoY29uc3QgY2hpbGROYW1lIG9mIGNoaWxkcmVuTmFtZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FsY3VsYXRlT3V0cHV0c0ZvckNoaWxkKGNoaWxkcmVuLCB7XG4gICAgICAgIGNoaWxkTmFtZSxcbiAgICAgICAgYXJlQ2hpbGRyZW5OZXN0ZWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbXBsO1xuICB9XG59XG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export type AzureOutputs = {
|
|
2
|
-
timestamps: string[];
|
|
3
|
-
cpu_utils: string[];
|
|
4
|
-
memAvailable: string[];
|
|
5
|
-
};
|
|
6
|
-
export type AzureInputs = {
|
|
7
|
-
resourceGroupName: string;
|
|
8
|
-
vmName: string;
|
|
9
|
-
subscriptionId: string;
|
|
10
|
-
timespan: string;
|
|
11
|
-
interval: string;
|
|
12
|
-
aggregation: string;
|
|
13
|
-
timestamp: string;
|
|
14
|
-
duration: string;
|
|
15
|
-
window: string;
|
|
16
|
-
};
|
|
17
|
-
export type GetMetricsParams = {
|
|
18
|
-
subscriptionId: string;
|
|
19
|
-
resourceGroupName: string;
|
|
20
|
-
timespan: string;
|
|
21
|
-
interval: string;
|
|
22
|
-
aggregation: string;
|
|
23
|
-
vmName: string;
|
|
24
|
-
};
|
|
25
|
-
export type AzureMetadataOutputs = {
|
|
26
|
-
location: string;
|
|
27
|
-
instanceType: string;
|
|
28
|
-
totalMemoryGB: string;
|
|
29
|
-
};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtaW1wb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvYXp1cmUtaW1wb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEF6dXJlT3V0cHV0cyA9IHtcbiAgdGltZXN0YW1wczogc3RyaW5nW107XG4gIGNwdV91dGlsczogc3RyaW5nW107XG4gIG1lbUF2YWlsYWJsZTogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBBenVyZUlucHV0cyA9IHtcbiAgcmVzb3VyY2VHcm91cE5hbWU6IHN0cmluZztcbiAgdm1OYW1lOiBzdHJpbmc7XG4gIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gIHRpbWVzcGFuOiBzdHJpbmc7XG4gIGludGVydmFsOiBzdHJpbmc7XG4gIGFnZ3JlZ2F0aW9uOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBkdXJhdGlvbjogc3RyaW5nO1xuICB3aW5kb3c6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdldE1ldHJpY3NQYXJhbXMgPSB7XG4gIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gIHJlc291cmNlR3JvdXBOYW1lOiBzdHJpbmc7XG4gIHRpbWVzcGFuOiBzdHJpbmc7XG4gIGludGVydmFsOiBzdHJpbmc7XG4gIGFnZ3JlZ2F0aW9uOiBzdHJpbmc7XG4gIHZtTmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQXp1cmVNZXRhZGF0YU91dHB1dHMgPSB7XG4gIGxvY2F0aW9uOiBzdHJpbmc7XG4gIGluc3RhbmNlVHlwZTogc3RyaW5nO1xuICB0b3RhbE1lbW9yeUdCOiBzdHJpbmc7XG59O1xuIl19
|
package/build/types/boavizta.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hdml6dGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvYm9hdml6dGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUJvYXZpenRhVXNhZ2VTQ0kge1xuICBlOiBudW1iZXI7XG4gIG06IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQm9hdml6dGFJbnN0YW5jZVR5cGVzID0ge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXTtcbn07XG4iXX0=
|
package/build/types/common.d.ts
DELETED
package/build/types/common.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Interpolation = void 0;
|
|
4
|
-
var Interpolation;
|
|
5
|
-
(function (Interpolation) {
|
|
6
|
-
Interpolation["SPLINE"] = "spline";
|
|
7
|
-
Interpolation["LINEAR"] = "linear";
|
|
8
|
-
})(Interpolation || (exports.Interpolation = Interpolation = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEtleVZhbHVlUGFpciA9IHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufTtcblxuZXhwb3J0IGVudW0gSW50ZXJwb2xhdGlvbiB7XG4gIFNQTElORSA9ICdzcGxpbmUnLFxuICBMSU5FQVIgPSAnbGluZWFyJyxcbn1cbiJdfQ==
|
package/build/types/impl.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
type Tag = {
|
|
2
|
-
kind?: string;
|
|
3
|
-
complexity?: string;
|
|
4
|
-
category?: string;
|
|
5
|
-
};
|
|
6
|
-
type Model = {
|
|
7
|
-
name: string;
|
|
8
|
-
kind?: string;
|
|
9
|
-
verbose?: boolean;
|
|
10
|
-
path?: string;
|
|
11
|
-
};
|
|
12
|
-
export type ModelParams = {
|
|
13
|
-
timestamp: number;
|
|
14
|
-
duration: number;
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
};
|
|
17
|
-
export type Config = {
|
|
18
|
-
[key: string]: any;
|
|
19
|
-
};
|
|
20
|
-
export type Children = {
|
|
21
|
-
[key: string]: {
|
|
22
|
-
pipeline: string[];
|
|
23
|
-
config: Config;
|
|
24
|
-
inputs: ModelParams[];
|
|
25
|
-
children?: Children;
|
|
26
|
-
outputs?: ModelParams[];
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
export type Impl = {
|
|
30
|
-
name: string;
|
|
31
|
-
description: string | null | undefined;
|
|
32
|
-
tags: Tag | null | undefined;
|
|
33
|
-
initialize: {
|
|
34
|
-
models: Model[];
|
|
35
|
-
};
|
|
36
|
-
graph: {
|
|
37
|
-
children: Children;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
export {};
|
package/build/types/impl.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFRhZyA9IHtcbiAga2luZD86IHN0cmluZztcbiAgY29tcGxleGl0eT86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59O1xuXG50eXBlIE1vZGVsID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGtpbmQ/OiBzdHJpbmc7XG4gIHZlcmJvc2U/OiBib29sZWFuO1xuICBwYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTW9kZWxQYXJhbXMgPSB7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgdHlwZSBDb25maWcgPSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIENoaWxkcmVuID0ge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgcGlwZWxpbmU6IHN0cmluZ1tdO1xuICAgIGNvbmZpZzogQ29uZmlnO1xuICAgIGlucHV0czogTW9kZWxQYXJhbXNbXTtcbiAgICBjaGlsZHJlbj86IENoaWxkcmVuO1xuICAgIG91dHB1dHM/OiBNb2RlbFBhcmFtc1tdO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgSW1wbCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdGFnczogVGFnIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgaW5pdGlhbGl6ZToge1xuICAgIG1vZGVsczogTW9kZWxbXTtcbiAgfTtcbiAgZ3JhcGg6IHtcbiAgICBjaGlsZHJlbjogQ2hpbGRyZW47XG4gIH07XG59O1xuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ModelPluginInterface } from '../types/model-interface';
|
|
2
|
-
type InitializeOptions = {
|
|
3
|
-
allocation: string;
|
|
4
|
-
verbose: boolean;
|
|
5
|
-
};
|
|
6
|
-
export type GraphOptions = {
|
|
7
|
-
'core-units': number;
|
|
8
|
-
'physical-processor': string;
|
|
9
|
-
};
|
|
10
|
-
export type ImplInitializeModel = {
|
|
11
|
-
config: InitializeOptions;
|
|
12
|
-
name: string;
|
|
13
|
-
model?: string;
|
|
14
|
-
path?: string;
|
|
15
|
-
};
|
|
16
|
-
export type InitalizedModels = {
|
|
17
|
-
[key: string]: (graphOptions: GraphOptions) => Promise<ModelPluginInterface>;
|
|
18
|
-
};
|
|
19
|
-
export type HandModelParams = {
|
|
20
|
-
name: string;
|
|
21
|
-
model?: string;
|
|
22
|
-
path?: string;
|
|
23
|
-
};
|
|
24
|
-
export {};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL21vZGVscy11bml2ZXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbFBsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcblxudHlwZSBJbml0aWFsaXplT3B0aW9ucyA9IHtcbiAgYWxsb2NhdGlvbjogc3RyaW5nO1xuICB2ZXJib3NlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgR3JhcGhPcHRpb25zID0ge1xuICAnY29yZS11bml0cyc6IG51bWJlcjtcbiAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gIGNvbmZpZzogSW5pdGlhbGl6ZU9wdGlvbnM7XG4gIG5hbWU6IHN0cmluZztcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbml0YWxpemVkTW9kZWxzID0ge1xuICBba2V5OiBzdHJpbmddOiAoZ3JhcGhPcHRpb25zOiBHcmFwaE9wdGlvbnMpID0+IFByb21pc2U8TW9kZWxQbHVnaW5JbnRlcmZhY2U+O1xufTtcblxuZXhwb3J0IHR5cGUgSGFuZE1vZGVsUGFyYW1zID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1vZGVsPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xufTtcbiJdfQ==
|
package/build/util/args.d.ts
DELETED
package/build/util/helpers.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Impl } from '../types/impl';
|
|
2
|
-
/**
|
|
3
|
-
* Validates given `impl` object to match pattern.
|
|
4
|
-
*/
|
|
5
|
-
export declare const validateImpl: (impl: Impl) => {
|
|
6
|
-
name: string;
|
|
7
|
-
description: string | null;
|
|
8
|
-
tags: {
|
|
9
|
-
kind?: string | undefined;
|
|
10
|
-
complexity?: string | undefined;
|
|
11
|
-
category?: string | undefined;
|
|
12
|
-
} | null;
|
|
13
|
-
initialize: {
|
|
14
|
-
models: {
|
|
15
|
-
name: string;
|
|
16
|
-
kind?: string | undefined;
|
|
17
|
-
path?: string | undefined;
|
|
18
|
-
model?: string | undefined;
|
|
19
|
-
config?: Record<string, any> | undefined;
|
|
20
|
-
}[];
|
|
21
|
-
};
|
|
22
|
-
graph: {
|
|
23
|
-
children: Record<string, any>;
|
|
24
|
-
};
|
|
25
|
-
};
|