exodus-framework 2.0.954 → 2.0.955
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/lib/app/settings.d.ts.map +1 -1
- package/lib/contracts/settings.d.ts +1 -2
- package/lib/contracts/settings.d.ts.map +1 -1
- package/lib/utils/database.d.ts +1 -1
- package/lib/utils/database.d.ts.map +1 -1
- package/package.json +1 -1
- package/lib/app/classes/broadcast.js +0 -79
- package/lib/app/classes/cache.js +0 -94
- package/lib/app/classes/communication.js +0 -99
- package/lib/app/classes/communicationcontext.js +0 -1
- package/lib/app/classes/event.js +0 -94
- package/lib/app/classes/index.js +0 -105
- package/lib/app/classes/managed.js +0 -145
- package/lib/app/classes/service.js +0 -232
- package/lib/app/classes/servicemodel.js +0 -22
- package/lib/app/classes/singleton.js +0 -26
- package/lib/app/classes/socket/clienthandler.js +0 -54
- package/lib/app/classes/socket/eventhandler.js +0 -51
- package/lib/app/classes/socket/index.js +0 -20
- package/lib/app/classes/system.js +0 -49
- package/lib/app/controller.js +0 -97
- package/lib/app/core.js +0 -47
- package/lib/app/error.js +0 -66
- package/lib/app/exodus.js +0 -97
- package/lib/app/index.js +0 -68
- package/lib/app/settings.js +0 -162
- package/lib/certificates/private_key.pem +0 -27
- package/lib/certificates/public_key.pem +0 -9
- package/lib/contracts/communication/communication.js +0 -39
- package/lib/contracts/communication/index.js +0 -27
- package/lib/contracts/communication/operation.js +0 -5
- package/lib/contracts/console.js +0 -5
- package/lib/contracts/contansts.js +0 -13
- package/lib/contracts/core.js +0 -12
- package/lib/contracts/entity.js +0 -5
- package/lib/contracts/http.js +0 -52
- package/lib/contracts/index.js +0 -104
- package/lib/contracts/messaging.js +0 -50
- package/lib/contracts/security.js +0 -5
- package/lib/contracts/service.js +0 -11
- package/lib/contracts/session.js +0 -5
- package/lib/contracts/settings.js +0 -5
- package/lib/contracts/singleton.js +0 -5
- package/lib/contracts/socket.js +0 -11
- package/lib/contracts/tasks.js +0 -1
- package/lib/controllers/api/file.js +0 -24
- package/lib/controllers/api/index.js +0 -13
- package/lib/controllers/api/log.js +0 -55
- package/lib/controllers/api/report.js +0 -55
- package/lib/controllers/index.js +0 -16
- package/lib/controllers/messaging/application.js +0 -75
- package/lib/controllers/messaging/database.js +0 -64
- package/lib/controllers/messaging/environment.js +0 -111
- package/lib/express.d.js +0 -5
- package/lib/index.js +0 -104
- package/lib/middlewares/access.js +0 -114
- package/lib/middlewares/authentication.js +0 -104
- package/lib/middlewares/file.js +0 -41
- package/lib/middlewares/index.js +0 -36
- package/lib/models/Application.js +0 -65
- package/lib/models/DatabaseHost.js +0 -62
- package/lib/models/EnvConnection.js +0 -41
- package/lib/models/Log.js +0 -67
- package/lib/models/Report.js +0 -65
- package/lib/models/System.js +0 -54
- package/lib/models/index.js +0 -82
- package/lib/routes/api/index.js +0 -16
- package/lib/routes/api/v1/index.js +0 -38
- package/lib/routes/api/v1/logs.js +0 -19
- package/lib/routes/api/v1/report.js +0 -19
- package/lib/routes/api/v1/sse.js +0 -36
- package/lib/routes/index.js +0 -27
- package/lib/routes/messaging/index.js +0 -34
- package/lib/services/database.js +0 -136
- package/lib/services/ecosystem.js +0 -46
- package/lib/services/express.js +0 -162
- package/lib/services/file.js +0 -65
- package/lib/services/file_new.js +0 -136
- package/lib/services/index.js +0 -108
- package/lib/services/log.js +0 -26
- package/lib/services/rabitmq.js +0 -187
- package/lib/services/redis.js +0 -84
- package/lib/services/security.js +0 -231
- package/lib/services/sequelize.js +0 -313
- package/lib/services/socket.js +0 -123
- package/lib/services/task/TaskServiceBase.js +0 -17
- package/lib/services/task/index.js +0 -40
- package/lib/services/task/queue/QueueService.js +0 -48
- package/lib/services/task/queue/QueueTask.js +0 -134
- package/lib/services/task/queue/SingleQueue.js +0 -68
- package/lib/services/task/queue/index.js +0 -27
- package/lib/services/task/scheduler/SchedulerService.js +0 -31
- package/lib/services/task/scheduler/SchedulerTask.js +0 -211
- package/lib/services/task/scheduler/index.js +0 -20
- package/lib/services/test.js +0 -27
- package/lib/socket.d.js +0 -3
- package/lib/tasks/index.js +0 -27
- package/lib/tasks/queue/application.js +0 -44
- package/lib/tasks/queue/environment.js +0 -92
- package/lib/tasks/queue/index.js +0 -20
- package/lib/tasks/queue/teste.js +0 -21
- package/lib/tasks/schedule/index.js +0 -13
- package/lib/tasks/schedule/restart.js +0 -19
- package/lib/tasks/schedule/teste.js +0 -61
- package/lib/utils/api.js +0 -65
- package/lib/utils/database.js +0 -157
- package/lib/utils/date.js +0 -28
- package/lib/utils/index.js +0 -60
- package/lib/utils/logger.js +0 -51
- package/lib/utils/session.js +0 -23
package/lib/models/index.js
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
var _exportNames = {
|
7
|
-
NativeModels: true
|
8
|
-
};
|
9
|
-
exports.NativeModels = void 0;
|
10
|
-
var _Log = require("./Log");
|
11
|
-
Object.keys(_Log).forEach(function (key) {
|
12
|
-
if (key === "default" || key === "__esModule") return;
|
13
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
14
|
-
if (key in exports && exports[key] === _Log[key]) return;
|
15
|
-
Object.defineProperty(exports, key, {
|
16
|
-
enumerable: true,
|
17
|
-
get: function () {
|
18
|
-
return _Log[key];
|
19
|
-
}
|
20
|
-
});
|
21
|
-
});
|
22
|
-
var _System = require("./System");
|
23
|
-
Object.keys(_System).forEach(function (key) {
|
24
|
-
if (key === "default" || key === "__esModule") return;
|
25
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
26
|
-
if (key in exports && exports[key] === _System[key]) return;
|
27
|
-
Object.defineProperty(exports, key, {
|
28
|
-
enumerable: true,
|
29
|
-
get: function () {
|
30
|
-
return _System[key];
|
31
|
-
}
|
32
|
-
});
|
33
|
-
});
|
34
|
-
var _Report = require("./Report");
|
35
|
-
Object.keys(_Report).forEach(function (key) {
|
36
|
-
if (key === "default" || key === "__esModule") return;
|
37
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
38
|
-
if (key in exports && exports[key] === _Report[key]) return;
|
39
|
-
Object.defineProperty(exports, key, {
|
40
|
-
enumerable: true,
|
41
|
-
get: function () {
|
42
|
-
return _Report[key];
|
43
|
-
}
|
44
|
-
});
|
45
|
-
});
|
46
|
-
var _Application = require("./Application");
|
47
|
-
Object.keys(_Application).forEach(function (key) {
|
48
|
-
if (key === "default" || key === "__esModule") return;
|
49
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
50
|
-
if (key in exports && exports[key] === _Application[key]) return;
|
51
|
-
Object.defineProperty(exports, key, {
|
52
|
-
enumerable: true,
|
53
|
-
get: function () {
|
54
|
-
return _Application[key];
|
55
|
-
}
|
56
|
-
});
|
57
|
-
});
|
58
|
-
var _DatabaseHost = require("./DatabaseHost");
|
59
|
-
Object.keys(_DatabaseHost).forEach(function (key) {
|
60
|
-
if (key === "default" || key === "__esModule") return;
|
61
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
62
|
-
if (key in exports && exports[key] === _DatabaseHost[key]) return;
|
63
|
-
Object.defineProperty(exports, key, {
|
64
|
-
enumerable: true,
|
65
|
-
get: function () {
|
66
|
-
return _DatabaseHost[key];
|
67
|
-
}
|
68
|
-
});
|
69
|
-
});
|
70
|
-
var _EnvConnection = require("./EnvConnection");
|
71
|
-
Object.keys(_EnvConnection).forEach(function (key) {
|
72
|
-
if (key === "default" || key === "__esModule") return;
|
73
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
74
|
-
if (key in exports && exports[key] === _EnvConnection[key]) return;
|
75
|
-
Object.defineProperty(exports, key, {
|
76
|
-
enumerable: true,
|
77
|
-
get: function () {
|
78
|
-
return _EnvConnection[key];
|
79
|
-
}
|
80
|
-
});
|
81
|
-
});
|
82
|
-
const NativeModels = exports.NativeModels = [_Log.Log, _System.System, _Report.Report];
|
package/lib/routes/api/index.js
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
var _v = require("./v1");
|
7
|
-
Object.keys(_v).forEach(function (key) {
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
9
|
-
if (key in exports && exports[key] === _v[key]) return;
|
10
|
-
Object.defineProperty(exports, key, {
|
11
|
-
enumerable: true,
|
12
|
-
get: function () {
|
13
|
-
return _v[key];
|
14
|
-
}
|
15
|
-
});
|
16
|
-
});
|
@@ -1,38 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
var _logs = require("./logs");
|
7
|
-
Object.keys(_logs).forEach(function (key) {
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
9
|
-
if (key in exports && exports[key] === _logs[key]) return;
|
10
|
-
Object.defineProperty(exports, key, {
|
11
|
-
enumerable: true,
|
12
|
-
get: function () {
|
13
|
-
return _logs[key];
|
14
|
-
}
|
15
|
-
});
|
16
|
-
});
|
17
|
-
var _report = require("./report");
|
18
|
-
Object.keys(_report).forEach(function (key) {
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
20
|
-
if (key in exports && exports[key] === _report[key]) return;
|
21
|
-
Object.defineProperty(exports, key, {
|
22
|
-
enumerable: true,
|
23
|
-
get: function () {
|
24
|
-
return _report[key];
|
25
|
-
}
|
26
|
-
});
|
27
|
-
});
|
28
|
-
var _sse = require("./sse");
|
29
|
-
Object.keys(_sse).forEach(function (key) {
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
31
|
-
if (key in exports && exports[key] === _sse[key]) return;
|
32
|
-
Object.defineProperty(exports, key, {
|
33
|
-
enumerable: true,
|
34
|
-
get: function () {
|
35
|
-
return _sse[key];
|
36
|
-
}
|
37
|
-
});
|
38
|
-
});
|
@@ -1,19 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.logRouter = void 0;
|
7
|
-
var _express = require("express");
|
8
|
-
var _log = _interopRequireDefault(require("../../../controllers/api/log"));
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
-
//* Router
|
11
|
-
const logRouter = exports.logRouter = (0, _express.Router)();
|
12
|
-
|
13
|
-
//* Middlewares
|
14
|
-
|
15
|
-
//* Controllers
|
16
|
-
const logController = new _log.default();
|
17
|
-
|
18
|
-
//* Definitions
|
19
|
-
logRouter.route('/list').post(logController.list);
|
@@ -1,19 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.reportRouter = void 0;
|
7
|
-
var _express = require("express");
|
8
|
-
var _report = _interopRequireDefault(require("../../../controllers/api/report"));
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
-
//* Router
|
11
|
-
const reportRouter = exports.reportRouter = (0, _express.Router)();
|
12
|
-
|
13
|
-
//* Middlewares
|
14
|
-
|
15
|
-
//* Controllers
|
16
|
-
const reportController = new _report.default();
|
17
|
-
|
18
|
-
//* Definitions
|
19
|
-
reportRouter.route('/list').post(reportController.list);
|
package/lib/routes/api/v1/sse.js
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.sseRouter = void 0;
|
7
|
-
var _express = require("express");
|
8
|
-
const sseRouter = exports.sseRouter = (0, _express.Router)();
|
9
|
-
sseRouter.route('/sse').post((req, res) => {
|
10
|
-
// Definir cabeçalhos SSE
|
11
|
-
res.setHeader('Content-Type', 'text/event-stream');
|
12
|
-
res.setHeader('Cache-Control', 'no-cache');
|
13
|
-
res.setHeader('Connection', 'keep-alive');
|
14
|
-
res.flushHeaders(); // Enviar headers imediatamente
|
15
|
-
|
16
|
-
// Função para enviar eventos
|
17
|
-
const sendEvent = data => {
|
18
|
-
res.write(`data: ${data}\n\n`); // Formatação para SSE
|
19
|
-
};
|
20
|
-
|
21
|
-
// Enviar um evento inicial
|
22
|
-
sendEvent('Conexão SSE estabelecida!');
|
23
|
-
|
24
|
-
// Exemplo: enviar eventos periodicamente
|
25
|
-
const intervalId = setInterval(() => {
|
26
|
-
const message = `Mensagem do servidor: ${new Date().toLocaleTimeString()}`;
|
27
|
-
sendEvent(message);
|
28
|
-
}, 5000);
|
29
|
-
|
30
|
-
// Limpar intervalo e encerrar conexão quando o cliente fechar a conexão
|
31
|
-
req.on('close', () => {
|
32
|
-
clearInterval(intervalId);
|
33
|
-
res.end();
|
34
|
-
console.log('Conexão SSE fechada.');
|
35
|
-
});
|
36
|
-
});
|
package/lib/routes/index.js
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
var _messaging = require("./messaging");
|
7
|
-
Object.keys(_messaging).forEach(function (key) {
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
9
|
-
if (key in exports && exports[key] === _messaging[key]) return;
|
10
|
-
Object.defineProperty(exports, key, {
|
11
|
-
enumerable: true,
|
12
|
-
get: function () {
|
13
|
-
return _messaging[key];
|
14
|
-
}
|
15
|
-
});
|
16
|
-
});
|
17
|
-
var _api = require("./api");
|
18
|
-
Object.keys(_api).forEach(function (key) {
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
20
|
-
if (key in exports && exports[key] === _api[key]) return;
|
21
|
-
Object.defineProperty(exports, key, {
|
22
|
-
enumerable: true,
|
23
|
-
get: function () {
|
24
|
-
return _api[key];
|
25
|
-
}
|
26
|
-
});
|
27
|
-
});
|
@@ -1,34 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
var _application = _interopRequireDefault(require("../../controllers/messaging/application"));
|
8
|
-
var _database = _interopRequireDefault(require("../../controllers/messaging/database"));
|
9
|
-
var _environment = _interopRequireDefault(require("../../controllers/messaging/environment"));
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
-
//* Controllers
|
12
|
-
const databaseController = new _database.default();
|
13
|
-
const envController = new _environment.default();
|
14
|
-
const appController = new _application.default();
|
15
|
-
|
16
|
-
//* Definitions
|
17
|
-
const NativeMessagingRoutes = {
|
18
|
-
/* Connections Library */
|
19
|
-
'exodus.database.created': databaseController.created,
|
20
|
-
'exodus.database.updated': databaseController.update,
|
21
|
-
'exodus.database.deleted': databaseController.delete,
|
22
|
-
'exodus.database.sync': databaseController.sync,
|
23
|
-
/* Application Integrations */
|
24
|
-
'exodus.application.created': appController.created,
|
25
|
-
'exodus.application.updated': appController.update,
|
26
|
-
'exodus.application.deleted': appController.delete,
|
27
|
-
'exodus.application.sync': appController.sync,
|
28
|
-
/* Environment Sync Database Relations */
|
29
|
-
'exodus.environment.created': envController.created,
|
30
|
-
'exodus.environment.deleted': envController.deleted,
|
31
|
-
'exodus.environment.sync': envController.sync,
|
32
|
-
'exodus.environment.updated.database': envController.updatedDatabase
|
33
|
-
};
|
34
|
-
var _default = exports.default = NativeMessagingRoutes;
|
package/lib/services/database.js
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
var _sequelize = require("sequelize");
|
8
|
-
var _app = require("../app");
|
9
|
-
var _models = require("../models");
|
10
|
-
var _utils = require("../utils");
|
11
|
-
var _security = _interopRequireDefault(require("./security"));
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
13
|
-
class DatabaseService extends _app.Service {
|
14
|
-
entities;
|
15
|
-
connections;
|
16
|
-
async onServiceInit() {
|
17
|
-
this.entities = new Map();
|
18
|
-
this.connections = new Map();
|
19
|
-
|
20
|
-
// para busca rápidas
|
21
|
-
this.connections.set(_app.Core.settings.getDatabase().service.database, _utils.serviceDB);
|
22
|
-
this.startAttemptDelay = 5 * 1000;
|
23
|
-
this.maxStartAttempts = 3;
|
24
|
-
}
|
25
|
-
async onStart() {
|
26
|
-
this.log(`⌛️ Connecting Sequelize to database: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
|
27
|
-
try {
|
28
|
-
await _utils.serviceDB.authenticate();
|
29
|
-
await _utils.serviceDB.sync({
|
30
|
-
alter: true
|
31
|
-
});
|
32
|
-
this.log('✅ Connected service database sucessfully', 'success');
|
33
|
-
return true;
|
34
|
-
} catch (error) {
|
35
|
-
(0, _utils.logger)().error(error, `Not connected Sequelize to database`);
|
36
|
-
return false;
|
37
|
-
}
|
38
|
-
}
|
39
|
-
async onStartFail() {
|
40
|
-
await super.onStartFail();
|
41
|
-
this.log(`Not possible to connect database`, 'danger');
|
42
|
-
}
|
43
|
-
|
44
|
-
//* Connection
|
45
|
-
async initConnection(tenantId) {
|
46
|
-
const tenantInfo = await this.getTenantInformation(tenantId);
|
47
|
-
if (!tenantInfo) {
|
48
|
-
throw new Error(`Não é possível inicia a conexão para o tenant ${tenantId}, a relação EnvDB não foi localizada`);
|
49
|
-
}
|
50
|
-
const dbHost = await _models.DatabaseHost.findByPk(tenantInfo.hostUuid);
|
51
|
-
if (!tenantInfo) {
|
52
|
-
throw new Error(`Não é possível inicia a conexão para o tenant ${tenantId}, não foi possível localizar a informação de host`);
|
53
|
-
}
|
54
|
-
const splitedInfo = dbHost.host.split(':');
|
55
|
-
const address = splitedInfo[0];
|
56
|
-
const port = Number(splitedInfo[1]);
|
57
|
-
const database = this.normalizeDatabaseName(tenantInfo.envToken);
|
58
|
-
const key = await _security.default.getService().loadKeyByStr(dbHost.credential);
|
59
|
-
const data = await _security.default.getService().verifySignature(dbHost.password, key);
|
60
|
-
if (!data) {
|
61
|
-
throw new Error(`Não foi possível descriptografar as credenciais de conexão para hostUuid: ${tenantInfo.hostUuid}`);
|
62
|
-
}
|
63
|
-
const password = data.payload;
|
64
|
-
const connection = await this.createConnection(address, port, database, dbHost.username, password, dbHost.dialect);
|
65
|
-
this.connections.set(tenantId, connection);
|
66
|
-
}
|
67
|
-
async createConnection(host, port, database, username, password, dialect) {
|
68
|
-
const sequelize = new _sequelize.Sequelize({
|
69
|
-
host,
|
70
|
-
port,
|
71
|
-
dialect,
|
72
|
-
database,
|
73
|
-
username,
|
74
|
-
password,
|
75
|
-
define: {
|
76
|
-
timestamps: true
|
77
|
-
},
|
78
|
-
timezone: '-03:00',
|
79
|
-
logging: _app.Core.settings.getDatabase().service.log,
|
80
|
-
pool: _app.Core.settings.getDatabase().service.pool
|
81
|
-
});
|
82
|
-
try {
|
83
|
-
await sequelize.authenticate();
|
84
|
-
return sequelize;
|
85
|
-
} catch (error) {
|
86
|
-
new _app.ErrorHandler('Não foi possível realizar uma conexão', error);
|
87
|
-
return null;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
async getConnection(tenantId) {
|
91
|
-
if (!this.connections.has(tenantId)) {
|
92
|
-
await this.initConnection(tenantId);
|
93
|
-
}
|
94
|
-
return this.connections.get(tenantId);
|
95
|
-
}
|
96
|
-
|
97
|
-
//* Environment
|
98
|
-
async getTenantIds() {
|
99
|
-
const tenants = await _models.EnvDBHost.findAll({
|
100
|
-
attributes: ['envUuid']
|
101
|
-
});
|
102
|
-
return tenants.map(t => t.envUuid);
|
103
|
-
}
|
104
|
-
async getTenantInformation(tenantId) {
|
105
|
-
const relation = await _models.EnvDBHost.findOne({
|
106
|
-
where: {
|
107
|
-
envUuid: tenantId
|
108
|
-
}
|
109
|
-
});
|
110
|
-
return relation;
|
111
|
-
}
|
112
|
-
|
113
|
-
//* Entity
|
114
|
-
async loadEntity(entity, tenantId) {
|
115
|
-
const k = `${tenantId}#${entity.name}`;
|
116
|
-
const connection = await this.getConnection(tenantId);
|
117
|
-
const loadedEntity = entity.initialize(connection);
|
118
|
-
await loadedEntity.sync({
|
119
|
-
alter: true
|
120
|
-
});
|
121
|
-
this.entities.set(k, loadedEntity);
|
122
|
-
}
|
123
|
-
async getEntity(model, tenantId) {
|
124
|
-
const k = `${tenantId}#${model.name}`;
|
125
|
-
if (!this.entities.has(k)) {
|
126
|
-
await this.loadEntity(model, tenantId);
|
127
|
-
}
|
128
|
-
return this.entities.get(k);
|
129
|
-
}
|
130
|
-
|
131
|
-
//* Utils
|
132
|
-
normalizeDatabaseName(envToken) {
|
133
|
-
return `${_app.Core.settings.getDatabase().service.database}_${envToken}`;
|
134
|
-
}
|
135
|
-
}
|
136
|
-
var _default = exports.default = DatabaseService;
|
@@ -1,46 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
var _app = require("../app");
|
8
|
-
var _System = require("../models/System");
|
9
|
-
var _sequelize = _interopRequireDefault(require("./sequelize"));
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
-
class EcosystemService extends _app.Service {
|
12
|
-
async getSystemVariable(tenantId, key) {
|
13
|
-
const Entity = await _sequelize.default.singleton().getModel(_System.System, tenantId);
|
14
|
-
return Entity.findOne({
|
15
|
-
where: {
|
16
|
-
key
|
17
|
-
}
|
18
|
-
});
|
19
|
-
}
|
20
|
-
async setSystemVariable(tenantId, key, value) {
|
21
|
-
const Entity = await _sequelize.default.singleton().getModel(_System.System, tenantId);
|
22
|
-
const variable = await Entity.findOne({
|
23
|
-
where: {
|
24
|
-
key
|
25
|
-
}
|
26
|
-
});
|
27
|
-
if (!variable) throw new Error('System variable not found: ' + key);
|
28
|
-
variable.value = value;
|
29
|
-
variable.changed('value', true);
|
30
|
-
await variable.save();
|
31
|
-
}
|
32
|
-
async createSystemVariable(tenantId, key, value) {
|
33
|
-
const Entity = await _sequelize.default.singleton().getModel(_System.System, tenantId);
|
34
|
-
const variable = await Entity.findOne({
|
35
|
-
where: {
|
36
|
-
key
|
37
|
-
}
|
38
|
-
});
|
39
|
-
if (variable) throw new Error('System variable has exists: ' + key);
|
40
|
-
return await Entity.create({
|
41
|
-
key,
|
42
|
-
value
|
43
|
-
});
|
44
|
-
}
|
45
|
-
}
|
46
|
-
var _default = exports.default = EcosystemService;
|
package/lib/services/express.js
DELETED
@@ -1,162 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
var _cors = _interopRequireDefault(require("cors"));
|
8
|
-
var _express = _interopRequireDefault(require("express"));
|
9
|
-
var _expressRequestsLogger = _interopRequireDefault(require("express-requests-logger"));
|
10
|
-
var http = _interopRequireWildcard(require("http"));
|
11
|
-
var _qs = _interopRequireDefault(require("qs"));
|
12
|
-
var _core = _interopRequireDefault(require("../app/core"));
|
13
|
-
var _error = require("../app/error");
|
14
|
-
var _service = _interopRequireDefault(require("../app/classes/service"));
|
15
|
-
var _http2 = require("../contracts/http");
|
16
|
-
var _logger = _interopRequireDefault(require("../utils/logger"));
|
17
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
19
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
20
|
-
// import 'express-async-errors';
|
21
|
-
|
22
|
-
class ExpressService extends _service.default {
|
23
|
-
server;
|
24
|
-
mainRouter;
|
25
|
-
|
26
|
-
//!Deve ser iniciado no cluster, pois no master causa erro de port bind
|
27
|
-
async onServiceClusterInit() {
|
28
|
-
await super.onServiceClusterInit();
|
29
|
-
if (!this.mainRouter) throw new Error('Need router'); //!sem router
|
30
|
-
}
|
31
|
-
async onStartCluster() {
|
32
|
-
await super.onStartCluster();
|
33
|
-
const expss = (0, _express.default)();
|
34
|
-
this.server = http.createServer(expss);
|
35
|
-
expss.use('/public', _express.default.static(_core.default.settings.getHttp().publicPath));
|
36
|
-
expss.use((0, _expressRequestsLogger.default)({
|
37
|
-
logger: (0, _logger.default)()
|
38
|
-
}));
|
39
|
-
expss.set('query parser', str => _qs.default.parse(str));
|
40
|
-
expss.use(this.responseTypeMiddleware.bind(this));
|
41
|
-
expss.use(_express.default.json({
|
42
|
-
limit: '10mb'
|
43
|
-
}));
|
44
|
-
expss.use(_express.default.urlencoded({
|
45
|
-
extended: true,
|
46
|
-
limit: '10mb'
|
47
|
-
}));
|
48
|
-
expss.use((0, _cors.default)({
|
49
|
-
origin: '*'
|
50
|
-
}));
|
51
|
-
expss.use(this.mainRouter);
|
52
|
-
expss.use(this.handleAuthorizationFailure.bind(this));
|
53
|
-
expss.use(this.handleNotFoud.bind(this));
|
54
|
-
expss.use(this.handleRequestProcessFailure.bind(this));
|
55
|
-
return true;
|
56
|
-
}
|
57
|
-
async onExodusClusterStarted() {
|
58
|
-
await super.onExodusClusterStarted();
|
59
|
-
this.server.listen(_core.default.settings.getAppication().port, () => {
|
60
|
-
(0, _logger.default)().info(`servidor iniciado na porta: ${_core.default.settings.getAppication().port}`);
|
61
|
-
this.log(`🌍 Http Server Listering On: ${_core.default.settings.getAppication().port}`, 'success');
|
62
|
-
});
|
63
|
-
}
|
64
|
-
getHttpServer() {
|
65
|
-
return this.server;
|
66
|
-
}
|
67
|
-
sendResponse(objResponse, res, next) {
|
68
|
-
objResponse.timestamp = Date.now();
|
69
|
-
if (!objResponse.code) objResponse.code = _http2.EHttpResponseCode.successfullyProcessedInformation;
|
70
|
-
res.status(objResponse.code);
|
71
|
-
if (objResponse.location) {
|
72
|
-
res.location(objResponse.location);
|
73
|
-
delete objResponse.location;
|
74
|
-
}
|
75
|
-
let FormulatedResponse;
|
76
|
-
switch (_core.default.settings.getHttp().formulation) {
|
77
|
-
case 'direct':
|
78
|
-
if (objResponse['data']) {
|
79
|
-
FormulatedResponse = objResponse.data;
|
80
|
-
} else {
|
81
|
-
FormulatedResponse = objResponse;
|
82
|
-
}
|
83
|
-
break;
|
84
|
-
case 'standart':
|
85
|
-
FormulatedResponse = objResponse;
|
86
|
-
break;
|
87
|
-
default:
|
88
|
-
FormulatedResponse = objResponse;
|
89
|
-
break;
|
90
|
-
}
|
91
|
-
if (next) {
|
92
|
-
res.write(JSON.stringify(FormulatedResponse));
|
93
|
-
next();
|
94
|
-
} else {
|
95
|
-
res.send(JSON.stringify(FormulatedResponse));
|
96
|
-
}
|
97
|
-
}
|
98
|
-
responseTypeMiddleware(req, res, next) {
|
99
|
-
res.contentType('application/json');
|
100
|
-
next();
|
101
|
-
}
|
102
|
-
|
103
|
-
//* Handler errors
|
104
|
-
handleNotFoud(req, res) {
|
105
|
-
this.sendResponse({
|
106
|
-
message: 'Endereço não encontrado',
|
107
|
-
type: 'warning',
|
108
|
-
status: false,
|
109
|
-
code: _http2.EHttpResponseCode.informationNotFound
|
110
|
-
}, res);
|
111
|
-
}
|
112
|
-
handleAuthorizationFailure(err, req, res, next) {
|
113
|
-
if (err.name === 'UnauthorizedError') {
|
114
|
-
throw new _error.HttpError({
|
115
|
-
message: 'Falha na autorização',
|
116
|
-
statusCode: _http2.EHttpResponseCode.informationUnauthorized
|
117
|
-
});
|
118
|
-
} else {
|
119
|
-
next(err);
|
120
|
-
}
|
121
|
-
}
|
122
|
-
handleRequestProcessFailure = async (err, req, res, _) => {
|
123
|
-
if (err instanceof _error.HttpError) {
|
124
|
-
return this.sendResponse({
|
125
|
-
message: err.message,
|
126
|
-
type: err.level,
|
127
|
-
status: false,
|
128
|
-
code: err.statusCode,
|
129
|
-
data: err.data
|
130
|
-
}, res);
|
131
|
-
}
|
132
|
-
this.sendResponse({
|
133
|
-
message: 'Houve um erro ao acessar este recurso',
|
134
|
-
type: 'error',
|
135
|
-
status: false,
|
136
|
-
code: 500
|
137
|
-
}, res);
|
138
|
-
new _error.ErrorHandler('Erro não tratado em uma rota.', err);
|
139
|
-
};
|
140
|
-
async checkRequest(params) {
|
141
|
-
let pass = true;
|
142
|
-
const need = [];
|
143
|
-
for (const [key, param] of Object.entries(params)) {
|
144
|
-
if (!param || param === null || param.length < 1 || typeof param === 'string' && param === '' || typeof param === 'object' && Object.values(param).length < 1) {
|
145
|
-
pass = false;
|
146
|
-
need.push(key);
|
147
|
-
}
|
148
|
-
}
|
149
|
-
if (!pass) throw new _error.HttpError({
|
150
|
-
message: 'Requisição incompleta',
|
151
|
-
statusCode: _http2.EHttpResponseCode.incompleteRequest,
|
152
|
-
level: 'error',
|
153
|
-
data: {
|
154
|
-
need
|
155
|
-
}
|
156
|
-
});
|
157
|
-
}
|
158
|
-
static registerRouter(router) {
|
159
|
-
this.getService().mainRouter = router;
|
160
|
-
}
|
161
|
-
}
|
162
|
-
var _default = exports.default = ExpressService;
|
package/lib/services/file.js
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
var _service = _interopRequireDefault(require("../app/classes/service"));
|
8
|
-
var _logger = _interopRequireDefault(require("../utils/logger"));
|
9
|
-
var fs = _interopRequireWildcard(require("fs"));
|
10
|
-
var fsPromisses = _interopRequireWildcard(require("fs/promises"));
|
11
|
-
var _app = require("../app");
|
12
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
14
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
15
|
-
class FileService extends _service.default {
|
16
|
-
async onStart() {
|
17
|
-
await Promise.all([this.checkPaths(), this.cleanTemp()]);
|
18
|
-
return true;
|
19
|
-
}
|
20
|
-
async checkPaths() {
|
21
|
-
for (const path of Object.values(_app.Core.settings.getAppication().filePaths)) {
|
22
|
-
!fs.existsSync(path) && fs.mkdirSync(path, {
|
23
|
-
recursive: true
|
24
|
-
});
|
25
|
-
}
|
26
|
-
}
|
27
|
-
async cleanTemp() {
|
28
|
-
this.listFiles('temporary', files => {
|
29
|
-
for (const file of files) {
|
30
|
-
const p = _app.Core.settings.getAppication().filePaths.temporary + '/' + file;
|
31
|
-
fs.rmSync(p, {
|
32
|
-
recursive: true
|
33
|
-
});
|
34
|
-
}
|
35
|
-
});
|
36
|
-
}
|
37
|
-
async save(filename, destiny) {
|
38
|
-
const p = _app.Core.settings.getAppication().filePaths.temporary + '/' + filename;
|
39
|
-
const d = _app.Core.settings.getAppication().filePaths[destiny] + '/' + filename;
|
40
|
-
return await fsPromisses.rename(p, d).then(() => d).catch(e => {
|
41
|
-
(0, _logger.default)().error({
|
42
|
-
filename,
|
43
|
-
destiny,
|
44
|
-
erro: e
|
45
|
-
}, 'Não foi possível salvar o arquivo');
|
46
|
-
return false;
|
47
|
-
});
|
48
|
-
}
|
49
|
-
async delete(filename, destiny) {
|
50
|
-
const d = _app.Core.settings.getAppication().filePaths[destiny] + '/' + filename;
|
51
|
-
return await fsPromisses.unlink(d).then(() => true).catch(e => {
|
52
|
-
(0, _logger.default)().error({
|
53
|
-
filename,
|
54
|
-
destiny,
|
55
|
-
erro: e
|
56
|
-
}, 'Não foi possível deletar o arquivo');
|
57
|
-
return false;
|
58
|
-
});
|
59
|
-
}
|
60
|
-
listFiles(origin, cb) {
|
61
|
-
const p = _app.Core.settings.getAppication().filePaths[origin];
|
62
|
-
fs.readdir(p, (_, file) => cb(file));
|
63
|
-
}
|
64
|
-
}
|
65
|
-
var _default = exports.default = FileService;
|