evaengine 0.11.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai/analysis.md +657 -0
- package/.ai/architecture/runtime.md +504 -0
- package/.ai/contracts/public-api.md +447 -0
- package/.ai/external-project-guide.md +248 -0
- package/.ai/vision.md +314 -0
- package/README.md +51 -62
- package/bin/engine +15 -21
- package/index.js +2 -18
- package/package.json +60 -64
- package/src/index.js +57 -0
- package/bin/engine-babel +0 -38
- package/lib/commands/index.js +0 -25
- package/lib/commands/index.js.map +0 -1
- package/lib/commands/interface.js +0 -51
- package/lib/commands/interface.js.map +0 -1
- package/lib/commands/make_entity.js +0 -549
- package/lib/commands/make_entity.js.map +0 -1
- package/lib/commands/tramp.js +0 -53
- package/lib/commands/tramp.js.map +0 -1
- package/lib/config/index.js +0 -98
- package/lib/config/index.js.map +0 -1
- package/lib/di.js +0 -99
- package/lib/di.js.map +0 -1
- package/lib/engine.js +0 -558
- package/lib/engine.js.map +0 -1
- package/lib/entities/index.js +0 -283
- package/lib/entities/index.js.map +0 -1
- package/lib/exceptions/index.js +0 -522
- package/lib/exceptions/index.js.map +0 -1
- package/lib/index.js +0 -105
- package/lib/index.js.map +0 -1
- package/lib/middlewares/auth.js +0 -97
- package/lib/middlewares/auth.js.map +0 -1
- package/lib/middlewares/auth_kong.js +0 -48
- package/lib/middlewares/auth_kong.js.map +0 -1
- package/lib/middlewares/debug.js +0 -68
- package/lib/middlewares/debug.js.map +0 -1
- package/lib/middlewares/index.js +0 -45
- package/lib/middlewares/index.js.map +0 -1
- package/lib/middlewares/providers.js +0 -102
- package/lib/middlewares/providers.js.map +0 -1
- package/lib/middlewares/session.js +0 -76
- package/lib/middlewares/session.js.map +0 -1
- package/lib/middlewares/trace.js +0 -241
- package/lib/middlewares/trace.js.map +0 -1
- package/lib/middlewares/validator.js +0 -71
- package/lib/middlewares/validator.js.map +0 -1
- package/lib/middlewares/view_cache.js +0 -160
- package/lib/middlewares/view_cache.js.map +0 -1
- package/lib/services/cache.js +0 -234
- package/lib/services/cache.js.map +0 -1
- package/lib/services/config.js +0 -140
- package/lib/services/config.js.map +0 -1
- package/lib/services/env.js +0 -40
- package/lib/services/env.js.map +0 -1
- package/lib/services/event_manager.js +0 -110
- package/lib/services/event_manager.js.map +0 -1
- package/lib/services/http_client.js +0 -178
- package/lib/services/http_client.js.map +0 -1
- package/lib/services/index.js +0 -70
- package/lib/services/index.js.map +0 -1
- package/lib/services/interface.js +0 -12
- package/lib/services/interface.js.map +0 -1
- package/lib/services/joi.js +0 -28
- package/lib/services/joi.js.map +0 -1
- package/lib/services/jwt_token.js +0 -120
- package/lib/services/jwt_token.js.map +0 -1
- package/lib/services/jwt_token_kong.js +0 -111
- package/lib/services/jwt_token_kong.js.map +0 -1
- package/lib/services/logger.js +0 -172
- package/lib/services/logger.js.map +0 -1
- package/lib/services/namespace.js +0 -188
- package/lib/services/namespace.js.map +0 -1
- package/lib/services/now.js +0 -69
- package/lib/services/now.js.map +0 -1
- package/lib/services/providers.js +0 -195
- package/lib/services/providers.js.map +0 -1
- package/lib/services/redis.js +0 -77
- package/lib/services/redis.js.map +0 -1
- package/lib/services/rest_client.js +0 -136
- package/lib/services/rest_client.js.map +0 -1
- package/lib/swagger/index.js +0 -684
- package/lib/swagger/index.js.map +0 -1
- package/lib/utils/api_scaffold.js +0 -253
- package/lib/utils/api_scaffold.js.map +0 -1
- package/lib/utils/case_converter.js +0 -48
- package/lib/utils/case_converter.js.map +0 -1
- package/lib/utils/crc32.js +0 -22
- package/lib/utils/crc32.js.map +0 -1
- package/lib/utils/datetime.js +0 -21
- package/lib/utils/datetime.js.map +0 -1
- package/lib/utils/host.js +0 -48
- package/lib/utils/host.js.map +0 -1
- package/lib/utils/index.js +0 -61
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/pagination.js +0 -269
- package/lib/utils/pagination.js.map +0 -1
- package/lib/utils/random.js +0 -33
- package/lib/utils/random.js.map +0 -1
- package/lib/utils/smart_query.js +0 -342
- package/lib/utils/smart_query.js.map +0 -1
- package/lib/utils/test.js +0 -62
- package/lib/utils/test.js.map +0 -1
- package/lib/utils/wrapper.js +0 -9
- package/lib/utils/wrapper.js.map +0 -1
package/lib/config/index.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = {
|
|
7
|
-
app: {
|
|
8
|
-
name: 'evaengine'
|
|
9
|
-
},
|
|
10
|
-
sequelize: {
|
|
11
|
-
logging: true
|
|
12
|
-
},
|
|
13
|
-
logger: {
|
|
14
|
-
file: false //set to false to disable file logger
|
|
15
|
-
},
|
|
16
|
-
trace: {
|
|
17
|
-
enable: true,
|
|
18
|
-
header: false,
|
|
19
|
-
api: false
|
|
20
|
-
},
|
|
21
|
-
namespace: {
|
|
22
|
-
enable: true,
|
|
23
|
-
defaultName: 'eva.ns'
|
|
24
|
-
},
|
|
25
|
-
cache: {
|
|
26
|
-
prefix: 'eva',
|
|
27
|
-
driver: 'redis'
|
|
28
|
-
},
|
|
29
|
-
redis: {
|
|
30
|
-
host: '127.0.0.1',
|
|
31
|
-
port: 6379,
|
|
32
|
-
lazyConnect: true
|
|
33
|
-
},
|
|
34
|
-
db: {
|
|
35
|
-
dialect: 'mysql',
|
|
36
|
-
port: 3306,
|
|
37
|
-
database: '',
|
|
38
|
-
dialectOptions: {
|
|
39
|
-
multipleStatements: true,
|
|
40
|
-
timeout: 3
|
|
41
|
-
},
|
|
42
|
-
replication: {
|
|
43
|
-
write: {
|
|
44
|
-
host: '',
|
|
45
|
-
username: '',
|
|
46
|
-
password: '',
|
|
47
|
-
pool: {}
|
|
48
|
-
},
|
|
49
|
-
read: []
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
session: {
|
|
53
|
-
cookie: {
|
|
54
|
-
path: '/',
|
|
55
|
-
httpOnly: false,
|
|
56
|
-
secure: false,
|
|
57
|
-
maxAge: 3600 * 1000 //这里单位是ms
|
|
58
|
-
},
|
|
59
|
-
store: null,
|
|
60
|
-
secret: 'evaengine',
|
|
61
|
-
resave: true,
|
|
62
|
-
saveUninitialized: true
|
|
63
|
-
},
|
|
64
|
-
token: {
|
|
65
|
-
prefix: '',
|
|
66
|
-
secret: '',
|
|
67
|
-
faker: {
|
|
68
|
-
enable: false,
|
|
69
|
-
key: 'eva',
|
|
70
|
-
uid: 1
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
swagger: {
|
|
74
|
-
swagger: '2.0',
|
|
75
|
-
info: {
|
|
76
|
-
title: '',
|
|
77
|
-
description: '',
|
|
78
|
-
version: ''
|
|
79
|
-
},
|
|
80
|
-
produces: ['application/json'],
|
|
81
|
-
host: '',
|
|
82
|
-
basePath: '/',
|
|
83
|
-
schemes: ['http'],
|
|
84
|
-
securityDefinitions: {
|
|
85
|
-
api_key: {
|
|
86
|
-
type: 'apiKey',
|
|
87
|
-
name: 'api_key',
|
|
88
|
-
in: 'query'
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
security: [{
|
|
92
|
-
api_key: []
|
|
93
|
-
}],
|
|
94
|
-
paths: {},
|
|
95
|
-
definitions: {}
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
package/lib/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/index.js"],"names":["app","name","sequelize","logging","logger","file","trace","enable","header","api","namespace","defaultName","cache","prefix","driver","redis","host","port","lazyConnect","db","dialect","database","dialectOptions","multipleStatements","timeout","replication","write","username","password","pool","read","session","cookie","path","httpOnly","secure","maxAge","store","secret","resave","saveUninitialized","token","faker","key","uid","swagger","info","title","description","version","produces","basePath","schemes","securityDefinitions","api_key","type","in","security","paths","definitions"],"mappings":";;;;;kBAAe;AACbA,OAAK;AACHC,UAAM;AADH,GADQ;AAIbC,aAAW;AACTC,aAAS;AADA,GAJE;AAObC,UAAQ;AACNC,UAAM,KADA,CACM;AADN,GAPK;AAUbC,SAAO;AACLC,YAAQ,IADH;AAELC,YAAQ,KAFH;AAGLC,SAAK;AAHA,GAVM;AAebC,aAAW;AACTH,YAAQ,IADC;AAETI,iBAAa;AAFJ,GAfE;AAmBbC,SAAO;AACLC,YAAQ,KADH;AAELC,YAAQ;AAFH,GAnBM;AAuBbC,SAAO;AACLC,UAAM,WADD;AAELC,UAAM,IAFD;AAGLC,iBAAa;AAHR,GAvBM;AA4BbC,MAAI;AACFC,aAAS,OADP;AAEFH,UAAM,IAFJ;AAGFI,cAAU,EAHR;AAIFC,oBAAgB;AACdC,0BAAoB,IADN;AAEdC,eAAS;AAFK,KAJd;AAQFC,iBAAa;AACXC,aAAO;AACLV,cAAM,EADD;AAELW,kBAAU,EAFL;AAGLC,kBAAU,EAHL;AAILC,cAAM;AAJD,OADI;AAOXC,YAAM;AAPK;AARX,GA5BS;AA8CbC,WAAS;AACPC,YAAQ;AACNC,YAAM,GADA;AAENC,gBAAU,KAFJ;AAGNC,cAAQ,KAHF;AAINC,cAAQ,OAAO,IAJT,CAIc;AAJd,KADD;AAOPC,WAAO,IAPA;AAQPC,YAAQ,WARD;AASPC,YAAQ,IATD;AAUPC,uBAAmB;AAVZ,GA9CI;AA0DbC,SAAO;AACL5B,YAAQ,EADH;AAELyB,YAAQ,EAFH;AAGLI,WAAO;AACLnC,cAAQ,KADH;AAELoC,WAAK,KAFA;AAGLC,WAAK;AAHA;AAHF,GA1DM;AAmEbC,WAAS;AACPA,aAAS,KADF;AAEPC,UAAM;AACJC,aAAO,EADH;AAEJC,mBAAa,EAFT;AAGJC,eAAS;AAHL,KAFC;AAOPC,cAAU,CACR,kBADQ,CAPH;AAUPlC,UAAM,EAVC;AAWPmC,cAAU,GAXH;AAYPC,aAAS,CACP,MADO,CAZF;AAePC,yBAAqB;AACnBC,eAAS;AACPC,cAAM,QADC;AAEPtD,cAAM,SAFC;AAGPuD,YAAI;AAHG;AADU,KAfd;AAsBPC,cAAU,CAAC;AACTH,eAAS;AADA,KAAD,CAtBH;AAyBPI,WAAO,EAzBA;AA0BPC,iBAAa;AA1BN;AAnEI,C","file":"index.js","sourcesContent":["export default {\n app: {\n name: 'evaengine'\n },\n sequelize: {\n logging: true\n },\n logger: {\n file: false //set to false to disable file logger\n },\n trace: {\n enable: true,\n header: false,\n api: false\n },\n namespace: {\n enable: true,\n defaultName: 'eva.ns'\n },\n cache: {\n prefix: 'eva',\n driver: 'redis'\n },\n redis: {\n host: '127.0.0.1',\n port: 6379,\n lazyConnect: true\n },\n db: {\n dialect: 'mysql',\n port: 3306,\n database: '',\n dialectOptions: {\n multipleStatements: true,\n timeout: 3\n },\n replication: {\n write: {\n host: '',\n username: '',\n password: '',\n pool: {}\n },\n read: []\n }\n },\n session: {\n cookie: {\n path: '/',\n httpOnly: false,\n secure: false,\n maxAge: 3600 * 1000 //这里单位是ms\n },\n store: null,\n secret: 'evaengine',\n resave: true,\n saveUninitialized: true\n },\n token: {\n prefix: '',\n secret: '',\n faker: {\n enable: false,\n key: 'eva',\n uid: 1\n }\n },\n swagger: {\n swagger: '2.0',\n info: {\n title: '',\n description: '',\n version: ''\n },\n produces: [\n 'application/json'\n ],\n host: '',\n basePath: '/',\n schemes: [\n 'http'\n ],\n securityDefinitions: {\n api_key: {\n type: 'apiKey',\n name: 'api_key',\n in: 'query'\n }\n },\n security: [{\n api_key: []\n }],\n paths: {},\n definitions: {}\n }\n};\n"]}
|
package/lib/di.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = undefined;
|
|
7
|
-
|
|
8
|
-
var _constitute = require('constitute');
|
|
9
|
-
|
|
10
|
-
var _constitute2 = _interopRequireDefault(_constitute);
|
|
11
|
-
|
|
12
|
-
var _exceptions = require('./exceptions');
|
|
13
|
-
|
|
14
|
-
var _providers = require('./services/providers');
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
let container = new _constitute2.default.Container();
|
|
19
|
-
let bound = {};
|
|
20
|
-
|
|
21
|
-
let DI = class DI {
|
|
22
|
-
static getContainer() {
|
|
23
|
-
return container;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
static getBound() {
|
|
27
|
-
return bound;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
static get(service) {
|
|
31
|
-
if (typeof service !== 'string') {
|
|
32
|
-
return container.constitute(service);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (!bound[service]) {
|
|
36
|
-
throw new _exceptions.RuntimeException(`Service ${service} not bound yet`);
|
|
37
|
-
}
|
|
38
|
-
return container.constitute(bound[service]);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
static bindClass(...args) {
|
|
42
|
-
if (typeof args[0] === 'string') {
|
|
43
|
-
[, bound[args[0]]] = args;
|
|
44
|
-
}
|
|
45
|
-
return container.bindClass(...args);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
static bindValue(...args) {
|
|
49
|
-
if (typeof args[0] === 'string') {
|
|
50
|
-
[, bound[args[0]]] = args;
|
|
51
|
-
}
|
|
52
|
-
return container.bindValue(...args);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
static bindMethod(...args) {
|
|
56
|
-
if (typeof args[0] === 'string') {
|
|
57
|
-
[, bound[args[0]]] = args;
|
|
58
|
-
}
|
|
59
|
-
return container.bindMethod(...args);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
static reset() {
|
|
63
|
-
container = new _constitute2.default.Container();
|
|
64
|
-
bound = {};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @param {Array} providers
|
|
69
|
-
* @param {EvaEngine} engine
|
|
70
|
-
*/
|
|
71
|
-
static registerServiceProviders(providers = [], engine) {
|
|
72
|
-
for (const providerClass of providers) {
|
|
73
|
-
DI.registerService(providerClass, engine);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* @param {constructor} ProviderClass
|
|
79
|
-
* @param {EvaEngine} engine
|
|
80
|
-
*/
|
|
81
|
-
static registerService(ProviderClass, engine) {
|
|
82
|
-
const provider = new ProviderClass(engine);
|
|
83
|
-
if (!(provider instanceof _providers.ServiceProvider)) {
|
|
84
|
-
throw new _exceptions.RuntimeException(`Input provider ${provider.name} not service provider`);
|
|
85
|
-
}
|
|
86
|
-
provider.register();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
static registerMockedProviders(providers, configPath) {
|
|
90
|
-
const mockEngine = {
|
|
91
|
-
getMeta: () => ({
|
|
92
|
-
configPath
|
|
93
|
-
})
|
|
94
|
-
};
|
|
95
|
-
DI.registerServiceProviders(providers, mockEngine);
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
exports.default = DI;
|
|
99
|
-
//# sourceMappingURL=di.js.map
|
package/lib/di.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/di.js"],"names":["container","constitute","Container","bound","DI","getContainer","getBound","get","service","RuntimeException","bindClass","args","bindValue","bindMethod","reset","registerServiceProviders","providers","engine","providerClass","registerService","ProviderClass","provider","ServiceProvider","name","register","registerMockedProviders","configPath","mockEngine","getMeta"],"mappings":";;;;;;;AAAA;;;;AACA;;AACA;;;;AAEA,IAAIA,YAAY,IAAIC,qBAAWC,SAAf,EAAhB;AACA,IAAIC,QAAQ,EAAZ;;IAEqBC,E,GAAN,MAAMA,EAAN,CAAS;AACtB,SAAOC,YAAP,GAAsB;AACpB,WAAOL,SAAP;AACD;;AAED,SAAOM,QAAP,GAAkB;AAChB,WAAOH,KAAP;AACD;;AAED,SAAOI,GAAP,CAAWC,OAAX,EAAoB;AAClB,QAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,aAAOR,UAAUC,UAAV,CAAqBO,OAArB,CAAP;AACD;;AAED,QAAI,CAACL,MAAMK,OAAN,CAAL,EAAqB;AACnB,YAAM,IAAIC,4BAAJ,CAAsB,WAAUD,OAAQ,gBAAxC,CAAN;AACD;AACD,WAAOR,UAAUC,UAAV,CAAqBE,MAAMK,OAAN,CAArB,CAAP;AACD;;AAED,SAAOE,SAAP,CAAiB,GAAGC,IAApB,EAA0B;AACxB,QAAI,OAAOA,KAAK,CAAL,CAAP,KAAmB,QAAvB,EAAiC;AAC/B,SAAGR,MAAMQ,KAAK,CAAL,CAAN,CAAH,IAAqBA,IAArB;AACD;AACD,WAAOX,UAAUU,SAAV,CAAoB,GAAGC,IAAvB,CAAP;AACD;;AAED,SAAOC,SAAP,CAAiB,GAAGD,IAApB,EAA0B;AACxB,QAAI,OAAOA,KAAK,CAAL,CAAP,KAAmB,QAAvB,EAAiC;AAC/B,SAAGR,MAAMQ,KAAK,CAAL,CAAN,CAAH,IAAqBA,IAArB;AACD;AACD,WAAOX,UAAUY,SAAV,CAAoB,GAAGD,IAAvB,CAAP;AACD;;AAED,SAAOE,UAAP,CAAkB,GAAGF,IAArB,EAA2B;AACzB,QAAI,OAAOA,KAAK,CAAL,CAAP,KAAmB,QAAvB,EAAiC;AAC/B,SAAGR,MAAMQ,KAAK,CAAL,CAAN,CAAH,IAAqBA,IAArB;AACD;AACD,WAAOX,UAAUa,UAAV,CAAqB,GAAGF,IAAxB,CAAP;AACD;;AAED,SAAOG,KAAP,GAAe;AACbd,gBAAY,IAAIC,qBAAWC,SAAf,EAAZ;AACAC,YAAQ,EAAR;AACD;;AAED;;;;AAIA,SAAOY,wBAAP,CAAgCC,YAAY,EAA5C,EAAgDC,MAAhD,EAAwD;AACtD,SAAK,MAAMC,aAAX,IAA4BF,SAA5B,EAAuC;AACrCZ,SAAGe,eAAH,CAAmBD,aAAnB,EAAkCD,MAAlC;AACD;AACF;;AAED;;;;AAIA,SAAOE,eAAP,CAAuBC,aAAvB,EAAsCH,MAAtC,EAA8C;AAC5C,UAAMI,WAAW,IAAID,aAAJ,CAAkBH,MAAlB,CAAjB;AACA,QAAI,EAAEI,oBAAoBC,0BAAtB,CAAJ,EAA4C;AAC1C,YAAM,IAAIb,4BAAJ,CAAsB,kBAAiBY,SAASE,IAAK,uBAArD,CAAN;AACD;AACDF,aAASG,QAAT;AACD;;AAED,SAAOC,uBAAP,CAA+BT,SAA/B,EAA0CU,UAA1C,EAAsD;AACpD,UAAMC,aAAa;AACjBC,eAAS,OAAO;AACdF;AADc,OAAP;AADQ,KAAnB;AAKAtB,OAAGW,wBAAH,CAA4BC,SAA5B,EAAuCW,UAAvC;AACD;AA3EqB,C;kBAAHvB,E","file":"di.js","sourcesContent":["import constitute from 'constitute';\nimport { RuntimeException } from './exceptions';\nimport { ServiceProvider } from './services/providers';\n\nlet container = new constitute.Container();\nlet bound = {};\n\nexport default class DI {\n static getContainer() {\n return container;\n }\n\n static getBound() {\n return bound;\n }\n\n static get(service) {\n if (typeof service !== 'string') {\n return container.constitute(service);\n }\n\n if (!bound[service]) {\n throw new RuntimeException(`Service ${service} not bound yet`);\n }\n return container.constitute(bound[service]);\n }\n\n static bindClass(...args) {\n if (typeof args[0] === 'string') {\n [, bound[args[0]]] = args;\n }\n return container.bindClass(...args);\n }\n\n static bindValue(...args) {\n if (typeof args[0] === 'string') {\n [, bound[args[0]]] = args;\n }\n return container.bindValue(...args);\n }\n\n static bindMethod(...args) {\n if (typeof args[0] === 'string') {\n [, bound[args[0]]] = args;\n }\n return container.bindMethod(...args);\n }\n\n static reset() {\n container = new constitute.Container();\n bound = {};\n }\n\n /**\n * @param {Array} providers\n * @param {EvaEngine} engine\n */\n static registerServiceProviders(providers = [], engine) {\n for (const providerClass of providers) {\n DI.registerService(providerClass, engine);\n }\n }\n\n /**\n * @param {constructor} ProviderClass\n * @param {EvaEngine} engine\n */\n static registerService(ProviderClass, engine) {\n const provider = new ProviderClass(engine);\n if (!(provider instanceof ServiceProvider)) {\n throw new RuntimeException(`Input provider ${provider.name} not service provider`);\n }\n provider.register();\n }\n\n static registerMockedProviders(providers, configPath) {\n const mockEngine = {\n getMeta: () => ({\n configPath\n })\n };\n DI.registerServiceProviders(providers, mockEngine);\n }\n}\n"]}
|