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.
Files changed (110) hide show
  1. package/lib/app/settings.d.ts.map +1 -1
  2. package/lib/contracts/settings.d.ts +1 -2
  3. package/lib/contracts/settings.d.ts.map +1 -1
  4. package/lib/utils/database.d.ts +1 -1
  5. package/lib/utils/database.d.ts.map +1 -1
  6. package/package.json +1 -1
  7. package/lib/app/classes/broadcast.js +0 -79
  8. package/lib/app/classes/cache.js +0 -94
  9. package/lib/app/classes/communication.js +0 -99
  10. package/lib/app/classes/communicationcontext.js +0 -1
  11. package/lib/app/classes/event.js +0 -94
  12. package/lib/app/classes/index.js +0 -105
  13. package/lib/app/classes/managed.js +0 -145
  14. package/lib/app/classes/service.js +0 -232
  15. package/lib/app/classes/servicemodel.js +0 -22
  16. package/lib/app/classes/singleton.js +0 -26
  17. package/lib/app/classes/socket/clienthandler.js +0 -54
  18. package/lib/app/classes/socket/eventhandler.js +0 -51
  19. package/lib/app/classes/socket/index.js +0 -20
  20. package/lib/app/classes/system.js +0 -49
  21. package/lib/app/controller.js +0 -97
  22. package/lib/app/core.js +0 -47
  23. package/lib/app/error.js +0 -66
  24. package/lib/app/exodus.js +0 -97
  25. package/lib/app/index.js +0 -68
  26. package/lib/app/settings.js +0 -162
  27. package/lib/certificates/private_key.pem +0 -27
  28. package/lib/certificates/public_key.pem +0 -9
  29. package/lib/contracts/communication/communication.js +0 -39
  30. package/lib/contracts/communication/index.js +0 -27
  31. package/lib/contracts/communication/operation.js +0 -5
  32. package/lib/contracts/console.js +0 -5
  33. package/lib/contracts/contansts.js +0 -13
  34. package/lib/contracts/core.js +0 -12
  35. package/lib/contracts/entity.js +0 -5
  36. package/lib/contracts/http.js +0 -52
  37. package/lib/contracts/index.js +0 -104
  38. package/lib/contracts/messaging.js +0 -50
  39. package/lib/contracts/security.js +0 -5
  40. package/lib/contracts/service.js +0 -11
  41. package/lib/contracts/session.js +0 -5
  42. package/lib/contracts/settings.js +0 -5
  43. package/lib/contracts/singleton.js +0 -5
  44. package/lib/contracts/socket.js +0 -11
  45. package/lib/contracts/tasks.js +0 -1
  46. package/lib/controllers/api/file.js +0 -24
  47. package/lib/controllers/api/index.js +0 -13
  48. package/lib/controllers/api/log.js +0 -55
  49. package/lib/controllers/api/report.js +0 -55
  50. package/lib/controllers/index.js +0 -16
  51. package/lib/controllers/messaging/application.js +0 -75
  52. package/lib/controllers/messaging/database.js +0 -64
  53. package/lib/controllers/messaging/environment.js +0 -111
  54. package/lib/express.d.js +0 -5
  55. package/lib/index.js +0 -104
  56. package/lib/middlewares/access.js +0 -114
  57. package/lib/middlewares/authentication.js +0 -104
  58. package/lib/middlewares/file.js +0 -41
  59. package/lib/middlewares/index.js +0 -36
  60. package/lib/models/Application.js +0 -65
  61. package/lib/models/DatabaseHost.js +0 -62
  62. package/lib/models/EnvConnection.js +0 -41
  63. package/lib/models/Log.js +0 -67
  64. package/lib/models/Report.js +0 -65
  65. package/lib/models/System.js +0 -54
  66. package/lib/models/index.js +0 -82
  67. package/lib/routes/api/index.js +0 -16
  68. package/lib/routes/api/v1/index.js +0 -38
  69. package/lib/routes/api/v1/logs.js +0 -19
  70. package/lib/routes/api/v1/report.js +0 -19
  71. package/lib/routes/api/v1/sse.js +0 -36
  72. package/lib/routes/index.js +0 -27
  73. package/lib/routes/messaging/index.js +0 -34
  74. package/lib/services/database.js +0 -136
  75. package/lib/services/ecosystem.js +0 -46
  76. package/lib/services/express.js +0 -162
  77. package/lib/services/file.js +0 -65
  78. package/lib/services/file_new.js +0 -136
  79. package/lib/services/index.js +0 -108
  80. package/lib/services/log.js +0 -26
  81. package/lib/services/rabitmq.js +0 -187
  82. package/lib/services/redis.js +0 -84
  83. package/lib/services/security.js +0 -231
  84. package/lib/services/sequelize.js +0 -313
  85. package/lib/services/socket.js +0 -123
  86. package/lib/services/task/TaskServiceBase.js +0 -17
  87. package/lib/services/task/index.js +0 -40
  88. package/lib/services/task/queue/QueueService.js +0 -48
  89. package/lib/services/task/queue/QueueTask.js +0 -134
  90. package/lib/services/task/queue/SingleQueue.js +0 -68
  91. package/lib/services/task/queue/index.js +0 -27
  92. package/lib/services/task/scheduler/SchedulerService.js +0 -31
  93. package/lib/services/task/scheduler/SchedulerTask.js +0 -211
  94. package/lib/services/task/scheduler/index.js +0 -20
  95. package/lib/services/test.js +0 -27
  96. package/lib/socket.d.js +0 -3
  97. package/lib/tasks/index.js +0 -27
  98. package/lib/tasks/queue/application.js +0 -44
  99. package/lib/tasks/queue/environment.js +0 -92
  100. package/lib/tasks/queue/index.js +0 -20
  101. package/lib/tasks/queue/teste.js +0 -21
  102. package/lib/tasks/schedule/index.js +0 -13
  103. package/lib/tasks/schedule/restart.js +0 -19
  104. package/lib/tasks/schedule/teste.js +0 -61
  105. package/lib/utils/api.js +0 -65
  106. package/lib/utils/database.js +0 -157
  107. package/lib/utils/date.js +0 -28
  108. package/lib/utils/index.js +0 -60
  109. package/lib/utils/logger.js +0 -51
  110. package/lib/utils/session.js +0 -23
@@ -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];
@@ -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);
@@ -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
- });
@@ -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;
@@ -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;
@@ -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;
@@ -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;