exodus-framework 2.0.955 → 2.0.956
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/classes/broadcast.js +79 -0
- package/lib/app/classes/cache.js +94 -0
- package/lib/app/classes/communication.js +99 -0
- package/lib/app/classes/communicationcontext.js +1 -0
- package/lib/app/classes/event.js +94 -0
- package/lib/app/classes/index.js +105 -0
- package/lib/app/classes/managed.js +145 -0
- package/lib/app/classes/service.js +232 -0
- package/lib/app/classes/servicemodel.js +22 -0
- package/lib/app/classes/singleton.js +26 -0
- package/lib/app/classes/socket/clienthandler.js +54 -0
- package/lib/app/classes/socket/eventhandler.js +51 -0
- package/lib/app/classes/socket/index.js +20 -0
- package/lib/app/classes/system.js +49 -0
- package/lib/app/controller.js +97 -0
- package/lib/app/core.js +47 -0
- package/lib/app/error.js +66 -0
- package/lib/app/exodus.js +97 -0
- package/lib/app/index.js +68 -0
- package/lib/app/settings.js +161 -0
- package/lib/certificates/private_key.pem +27 -0
- package/lib/certificates/public_key.pem +9 -0
- package/lib/contracts/communication/communication.js +39 -0
- package/lib/contracts/communication/index.js +27 -0
- package/lib/contracts/communication/operation.js +5 -0
- package/lib/contracts/console.js +5 -0
- package/lib/contracts/contansts.js +13 -0
- package/lib/contracts/core.js +12 -0
- package/lib/contracts/entity.js +5 -0
- package/lib/contracts/http.js +52 -0
- package/lib/contracts/index.js +104 -0
- package/lib/contracts/messaging.js +50 -0
- package/lib/contracts/security.js +5 -0
- package/lib/contracts/service.js +11 -0
- package/lib/contracts/session.js +5 -0
- package/lib/contracts/settings.js +5 -0
- package/lib/contracts/singleton.js +5 -0
- package/lib/contracts/socket.js +11 -0
- package/lib/contracts/tasks.js +1 -0
- package/lib/controllers/api/file.js +24 -0
- package/lib/controllers/api/index.js +13 -0
- package/lib/controllers/api/log.js +55 -0
- package/lib/controllers/api/report.js +55 -0
- package/lib/controllers/index.js +16 -0
- package/lib/controllers/messaging/application.js +75 -0
- package/lib/controllers/messaging/database.js +64 -0
- package/lib/controllers/messaging/environment.js +111 -0
- package/lib/express.d.js +5 -0
- package/lib/index.js +104 -0
- package/lib/middlewares/access.js +114 -0
- package/lib/middlewares/authentication.js +104 -0
- package/lib/middlewares/file.js +41 -0
- package/lib/middlewares/index.js +36 -0
- package/lib/models/Application.js +65 -0
- package/lib/models/DatabaseHost.js +62 -0
- package/lib/models/EnvConnection.js +41 -0
- package/lib/models/Log.js +67 -0
- package/lib/models/Report.js +65 -0
- package/lib/models/System.js +54 -0
- package/lib/models/index.js +82 -0
- package/lib/routes/api/index.js +16 -0
- package/lib/routes/api/v1/index.js +38 -0
- package/lib/routes/api/v1/logs.js +19 -0
- package/lib/routes/api/v1/report.js +19 -0
- package/lib/routes/api/v1/sse.js +36 -0
- package/lib/routes/index.js +27 -0
- package/lib/routes/messaging/index.js +34 -0
- package/lib/services/database.js +136 -0
- package/lib/services/ecosystem.js +46 -0
- package/lib/services/express.js +162 -0
- package/lib/services/file.js +65 -0
- package/lib/services/file_new.js +136 -0
- package/lib/services/index.js +108 -0
- package/lib/services/log.js +26 -0
- package/lib/services/rabitmq.js +187 -0
- package/lib/services/redis.js +84 -0
- package/lib/services/security.js +231 -0
- package/lib/services/sequelize.js +313 -0
- package/lib/services/socket.js +123 -0
- package/lib/services/task/TaskServiceBase.js +17 -0
- package/lib/services/task/index.js +40 -0
- package/lib/services/task/queue/QueueService.js +48 -0
- package/lib/services/task/queue/QueueTask.js +134 -0
- package/lib/services/task/queue/SingleQueue.js +68 -0
- package/lib/services/task/queue/index.js +27 -0
- package/lib/services/task/scheduler/SchedulerService.js +31 -0
- package/lib/services/task/scheduler/SchedulerTask.js +211 -0
- package/lib/services/task/scheduler/index.js +20 -0
- package/lib/services/test.js +27 -0
- package/lib/socket.d.js +3 -0
- package/lib/tasks/index.js +27 -0
- package/lib/tasks/queue/application.js +44 -0
- package/lib/tasks/queue/environment.js +92 -0
- package/lib/tasks/queue/index.js +20 -0
- package/lib/tasks/queue/teste.js +21 -0
- package/lib/tasks/schedule/index.js +13 -0
- package/lib/tasks/schedule/restart.js +19 -0
- package/lib/tasks/schedule/teste.js +61 -0
- package/lib/utils/api.js +65 -0
- package/lib/utils/database.js +157 -0
- package/lib/utils/date.js +28 -0
- package/lib/utils/index.js +60 -0
- package/lib/utils/logger.js +51 -0
- package/lib/utils/session.js +23 -0
- package/package.json +1 -1
@@ -0,0 +1,232 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _service = require("../../contracts/service");
|
8
|
+
var _communication = _interopRequireDefault(require("./communication"));
|
9
|
+
var _managed = _interopRequireDefault(require("./managed"));
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
+
/**
|
12
|
+
* Classe base de Serviços
|
13
|
+
* Responsável por gerênciar métodos e funções utilizadas por todas
|
14
|
+
* as classes de serviço desta aplicação
|
15
|
+
*
|
16
|
+
* @abstract
|
17
|
+
* @class Service
|
18
|
+
* @extends {Managed}
|
19
|
+
* @template S
|
20
|
+
*/
|
21
|
+
class Service extends _managed.default {
|
22
|
+
static instance;
|
23
|
+
eCom;
|
24
|
+
startAttemptDelay = 1000; // Tempo de espera para cada tentativa de inicialização
|
25
|
+
maxStartAttempts = 3; // Numero de tentativas máximas para iniciar o serviço
|
26
|
+
currentStartAttempts = 1; // Numero de tentativas atual para iniciar o serviço
|
27
|
+
|
28
|
+
constructor() {
|
29
|
+
super();
|
30
|
+
this.eCom = new _communication.default(this.constructor.name);
|
31
|
+
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Mesmo que getService
|
35
|
+
*
|
36
|
+
* @deprecated Use getService
|
37
|
+
* @static
|
38
|
+
* @template S
|
39
|
+
* @param {TStaticService<S>} this
|
40
|
+
* @memberof Service
|
41
|
+
*/
|
42
|
+
static singleton() {
|
43
|
+
if (!this.instance) this.instance = new this();
|
44
|
+
return this.instance;
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Obtem a instância atual deste serviço
|
48
|
+
*
|
49
|
+
* @static
|
50
|
+
* @template S
|
51
|
+
* @param {TStaticService<S>} this
|
52
|
+
* @memberof Service
|
53
|
+
*/
|
54
|
+
static getService() {
|
55
|
+
return this.singleton();
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Chamado antes de onStart, serve como preparação para a inicialização do serviços
|
60
|
+
* pré fetchs e etc...
|
61
|
+
* Diferente de onStart, este é chamado apenas uma vez
|
62
|
+
*
|
63
|
+
* @public
|
64
|
+
* @memberof Service
|
65
|
+
*/
|
66
|
+
async onServiceInit() {
|
67
|
+
this.eCom.on(_service.eEventCommunication.RECEIVED_CLUSTER_MESSAGE, this.onServiceMasterReceived.bind(this));
|
68
|
+
this.eCom.on(_service.eEventCommunication.RECEIVED_MASTER_MESSAGE, this.onServiceClusterReceived.bind(this));
|
69
|
+
if (this.isMaster()) {
|
70
|
+
await this.onServiceMasterInit();
|
71
|
+
}
|
72
|
+
if (this.isCluster()) {
|
73
|
+
await this.onServiceClusterInit();
|
74
|
+
}
|
75
|
+
}
|
76
|
+
/**
|
77
|
+
* Mesmo que onServiceInit, mas do lado do master
|
78
|
+
*
|
79
|
+
* @protected
|
80
|
+
* @memberof Service
|
81
|
+
*/
|
82
|
+
async onServiceMasterInit() {
|
83
|
+
return;
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
* Mesmo que onServiceInit, mas do lado do cluster
|
87
|
+
*
|
88
|
+
* @protected
|
89
|
+
* @memberof Service
|
90
|
+
*/
|
91
|
+
async onServiceClusterInit() {
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
|
95
|
+
// !future
|
96
|
+
/**
|
97
|
+
* Inicia o procedimento de inicialização do seriviço
|
98
|
+
* usado para conexões, fetchs e etc...
|
99
|
+
*
|
100
|
+
* @return {*} {Promise<boolean>}
|
101
|
+
* @memberof Service
|
102
|
+
*/
|
103
|
+
async onStart() {
|
104
|
+
if (this.isMaster()) {
|
105
|
+
return this.onStartMaster();
|
106
|
+
}
|
107
|
+
if (this.isCluster()) {
|
108
|
+
return this.onStartCluster();
|
109
|
+
}
|
110
|
+
return true;
|
111
|
+
}
|
112
|
+
async onStartMaster() {
|
113
|
+
return true;
|
114
|
+
}
|
115
|
+
async onStartCluster() {
|
116
|
+
return true;
|
117
|
+
}
|
118
|
+
/**
|
119
|
+
* Quando uma nova tentativa de inicialização é executada
|
120
|
+
*
|
121
|
+
* @memberof Service
|
122
|
+
*/
|
123
|
+
async onStartAttempt() {
|
124
|
+
this.currentStartAttempts += 1;
|
125
|
+
}
|
126
|
+
/**
|
127
|
+
* Executado quando a inicialização deste serviço falhar
|
128
|
+
*
|
129
|
+
* @memberof Service
|
130
|
+
*/
|
131
|
+
async onStartFail() {
|
132
|
+
// this.log(`Erro on init this service.`, 'danger');
|
133
|
+
}
|
134
|
+
/**
|
135
|
+
* Quando o serviço inicializar com sucesso
|
136
|
+
*
|
137
|
+
* @memberof Service
|
138
|
+
*/
|
139
|
+
async onStartSuccessfully() {
|
140
|
+
this.currentStartAttempts = 1;
|
141
|
+
}
|
142
|
+
/**
|
143
|
+
* Quando todos os serviços foram carregados
|
144
|
+
* Pode ser usado para eliminar dados utilizados na inicialização
|
145
|
+
*
|
146
|
+
* @memberof Service
|
147
|
+
*/
|
148
|
+
async onExodusStarted() {
|
149
|
+
if (this.isMaster()) {
|
150
|
+
await this.onExodusMasterStarted();
|
151
|
+
}
|
152
|
+
if (this.isCluster()) {
|
153
|
+
await this.onExodusClusterStarted();
|
154
|
+
}
|
155
|
+
}
|
156
|
+
/**
|
157
|
+
* Mesmo que onExodusStarted mas no master
|
158
|
+
*
|
159
|
+
* @memberof Service
|
160
|
+
*/
|
161
|
+
async onExodusMasterStarted() {}
|
162
|
+
/**
|
163
|
+
* Mesmo que onExodusStarted mas no cluster
|
164
|
+
*
|
165
|
+
* @memberof Service
|
166
|
+
*/
|
167
|
+
async onExodusClusterStarted() {}
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Enviar dados para a instância deste serviço no cluster
|
171
|
+
*
|
172
|
+
* @protected
|
173
|
+
* @param {number} clusterId
|
174
|
+
* @param {string} event
|
175
|
+
* @param {D} data
|
176
|
+
* @memberof Service
|
177
|
+
*/
|
178
|
+
sendToServiceCluster(clusterId, event, data) {
|
179
|
+
this.eCom.sendMessageToCluster(clusterId, event, data);
|
180
|
+
}
|
181
|
+
|
182
|
+
/**
|
183
|
+
* Enviar dados para a instancia deste serviço no master
|
184
|
+
*
|
185
|
+
* @protected
|
186
|
+
* @param {string} event
|
187
|
+
* @param {D} data
|
188
|
+
* @memberof Service
|
189
|
+
*/
|
190
|
+
sendToServiceMaster(event, data) {
|
191
|
+
this.eCom.sendMessageToMaster(event, data);
|
192
|
+
}
|
193
|
+
|
194
|
+
/**
|
195
|
+
* Quando dados enviados do serviço no master para a instância no cluster
|
196
|
+
*
|
197
|
+
* @protected
|
198
|
+
* @param {Worker} _worker
|
199
|
+
* @param {string} _eventKey
|
200
|
+
* @param {*} _data
|
201
|
+
* @memberof Service
|
202
|
+
*/
|
203
|
+
onServiceMasterReceived(_worker, _eventKey, _data) {
|
204
|
+
return;
|
205
|
+
}
|
206
|
+
/**
|
207
|
+
* Quando dados enviados do serviço no cluster para a instância no master
|
208
|
+
*
|
209
|
+
* @protected
|
210
|
+
* @param {string} _eventKey
|
211
|
+
* @param {*} _data
|
212
|
+
* @memberof Service
|
213
|
+
*/
|
214
|
+
onServiceClusterReceived(_eventKey, _data) {
|
215
|
+
return;
|
216
|
+
}
|
217
|
+
|
218
|
+
/**
|
219
|
+
* Reporta a condição de inicialização falhou
|
220
|
+
* se verdadeiro, o Exodus irá cancelar a inicialização deste serviço e chamar onStartFail
|
221
|
+
*
|
222
|
+
* @return {*} {boolean}
|
223
|
+
* @memberof Service
|
224
|
+
*/
|
225
|
+
isStartFailed() {
|
226
|
+
return this.currentStartAttempts > this.maxStartAttempts;
|
227
|
+
}
|
228
|
+
getAttemptDelay() {
|
229
|
+
return this.startAttemptDelay;
|
230
|
+
}
|
231
|
+
}
|
232
|
+
var _default = exports.default = Service;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _sequelize = require("sequelize");
|
8
|
+
class ServiceModel extends _sequelize.Model {
|
9
|
+
static initialize(connection) {
|
10
|
+
return connection.define(this.name, this.getEntityParams(), this.getConnParams());
|
11
|
+
}
|
12
|
+
static async associate(_models) {
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
static getEntityParams() {
|
16
|
+
throw new Error('Entity params não definido');
|
17
|
+
}
|
18
|
+
static getConnParams() {
|
19
|
+
throw new Error('Entity Connection params não definido');
|
20
|
+
}
|
21
|
+
}
|
22
|
+
var _default = exports.default = ServiceModel;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _managed = _interopRequireDefault(require("./managed"));
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
9
|
+
/**
|
10
|
+
* Classe base para gerênciamento de instancia Singleton
|
11
|
+
* Usada para possibilitar a classe filha de manipular a
|
12
|
+
* instancia de sí mesma
|
13
|
+
*
|
14
|
+
* @abstract
|
15
|
+
* @class Singleton
|
16
|
+
* @extends {Managed}
|
17
|
+
*/
|
18
|
+
class Singleton extends _managed.default {
|
19
|
+
// #Singleton
|
20
|
+
static instance;
|
21
|
+
static singleton() {
|
22
|
+
if (!this.instance) this.instance = new this();
|
23
|
+
return this.instance;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
var _default = exports.default = Singleton;
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _core = require("../../../contracts/core");
|
8
|
+
var _system = _interopRequireDefault(require("../system"));
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
class SocketClientHandler extends _system.default {
|
11
|
+
side;
|
12
|
+
name;
|
13
|
+
active;
|
14
|
+
request;
|
15
|
+
requestor;
|
16
|
+
tenantId;
|
17
|
+
account;
|
18
|
+
isApplication;
|
19
|
+
async onInit(request) {
|
20
|
+
this.side = _core.eExecutionSide.ANY;
|
21
|
+
this.name = this.constructor.name;
|
22
|
+
this.active = true;
|
23
|
+
this.request = request;
|
24
|
+
this.requestor = request.requestor;
|
25
|
+
this.tenantId = request.tenant.id;
|
26
|
+
this.account = request.auth.account;
|
27
|
+
this.isApplication = request.isApplication;
|
28
|
+
}
|
29
|
+
|
30
|
+
/* Connection */
|
31
|
+
onConnect() {}
|
32
|
+
onDisconnect() {}
|
33
|
+
|
34
|
+
/* Event Handler */
|
35
|
+
onEvent(_event, ..._args) {}
|
36
|
+
|
37
|
+
//# Getters
|
38
|
+
getSide() {
|
39
|
+
return this.side;
|
40
|
+
}
|
41
|
+
getName() {
|
42
|
+
return this.name;
|
43
|
+
}
|
44
|
+
getActive() {
|
45
|
+
return this.active;
|
46
|
+
}
|
47
|
+
getRequester() {
|
48
|
+
return this.request;
|
49
|
+
}
|
50
|
+
send(event, ...args) {
|
51
|
+
this.request.send(event, ...args);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
var _default = exports.default = SocketClientHandler;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _core = require("../../../contracts/core");
|
8
|
+
var _system = _interopRequireDefault(require("../system"));
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
class SocketEventHandler extends _system.default {
|
11
|
+
event;
|
12
|
+
side;
|
13
|
+
name;
|
14
|
+
active;
|
15
|
+
requesters;
|
16
|
+
onInit() {
|
17
|
+
this.side = _core.eExecutionSide.ANY;
|
18
|
+
this.name = this.constructor.name;
|
19
|
+
this.active = true;
|
20
|
+
this.requesters = new Map();
|
21
|
+
}
|
22
|
+
|
23
|
+
/* Connection */
|
24
|
+
onConnect(request) {
|
25
|
+
this.requesters.set(request.requestor.id, request);
|
26
|
+
}
|
27
|
+
onDisconnect(request) {
|
28
|
+
this.requesters.delete(request.requestor.id);
|
29
|
+
}
|
30
|
+
|
31
|
+
/* Event Handler */
|
32
|
+
onEvent(_request, ..._args) {}
|
33
|
+
|
34
|
+
//# Getters
|
35
|
+
getEvent() {
|
36
|
+
return this.event;
|
37
|
+
}
|
38
|
+
getSide() {
|
39
|
+
return this.side;
|
40
|
+
}
|
41
|
+
getName() {
|
42
|
+
return this.name;
|
43
|
+
}
|
44
|
+
getActive() {
|
45
|
+
return this.active;
|
46
|
+
}
|
47
|
+
getRequester(id) {
|
48
|
+
return this.requesters.get(id);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
var _default = exports.default = SocketEventHandler;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "SocketClientHandler", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _clienthandler.default;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
Object.defineProperty(exports, "SocketEventHandler", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function () {
|
15
|
+
return _eventhandler.default;
|
16
|
+
}
|
17
|
+
});
|
18
|
+
var _eventhandler = _interopRequireDefault(require("./eventhandler"));
|
19
|
+
var _clienthandler = _interopRequireDefault(require("./clienthandler"));
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _cluster = _interopRequireDefault(require("cluster"));
|
8
|
+
var _dateFns = require("date-fns");
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
class System {
|
11
|
+
log(msg, level = 'normal') {
|
12
|
+
if (!msg) return;
|
13
|
+
let query = '\x1b[97m[%s]';
|
14
|
+
const params = [(0, _dateFns.format)(new Date(), 'HH:mm:ss')];
|
15
|
+
if (_cluster.default.isWorker) {
|
16
|
+
query = query + `\x1b[96m[%s]`;
|
17
|
+
params.push(`Cluster${_cluster.default.worker.id}`);
|
18
|
+
}
|
19
|
+
query = query + `\x1b[33m[%s]`;
|
20
|
+
params.push(this.constructor.name || 'unknow');
|
21
|
+
switch (level) {
|
22
|
+
case 'info':
|
23
|
+
query = query + `\x1b[94m `;
|
24
|
+
break;
|
25
|
+
case 'danger':
|
26
|
+
query = query + `\x1b[91m `;
|
27
|
+
break;
|
28
|
+
case 'warning':
|
29
|
+
query = query + `\x1b[33m `;
|
30
|
+
break;
|
31
|
+
case 'success':
|
32
|
+
query = query + `\x1b[92m `;
|
33
|
+
break;
|
34
|
+
case 'especial':
|
35
|
+
query = query + `\x1b[95m `;
|
36
|
+
break;
|
37
|
+
case 'comment':
|
38
|
+
query = query + `\x1b[97m `;
|
39
|
+
break;
|
40
|
+
case 'normal':
|
41
|
+
query = query + `\x1b[0m `;
|
42
|
+
break;
|
43
|
+
}
|
44
|
+
query = query + `%s\x1b[0m`;
|
45
|
+
params.push(msg);
|
46
|
+
console.log(query, ...params);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
var _default = exports.default = System;
|
@@ -0,0 +1,97 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = exports.SocketRequest = exports.SocketController = exports.MessagingController = exports.HttpController = void 0;
|
7
|
+
var _express = _interopRequireDefault(require("../services/express"));
|
8
|
+
var _system = _interopRequireDefault(require("./classes/system"));
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
+
/**
|
11
|
+
* Classe base dos conttrolers http
|
12
|
+
*
|
13
|
+
* @abstract
|
14
|
+
* @class Controller
|
15
|
+
* @extends {System}
|
16
|
+
*/
|
17
|
+
class HttpController extends _system.default {
|
18
|
+
constructor() {
|
19
|
+
super();
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Metódo de envio de respostar http para o cliente
|
24
|
+
*
|
25
|
+
* @protected
|
26
|
+
* @param {THttpResponse} objResponse
|
27
|
+
* @param {Response} res
|
28
|
+
* @param {NextFunction} [next]
|
29
|
+
* @return {void}
|
30
|
+
* @memberof Controller
|
31
|
+
*/
|
32
|
+
send(objResponse, res, next) {
|
33
|
+
return _express.default.singleton().sendResponse(objResponse, res, next);
|
34
|
+
}
|
35
|
+
validate(data) {
|
36
|
+
return _express.default.singleton().checkRequest(data);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
/**
|
41
|
+
* Class base dos controllers SocketIO
|
42
|
+
*
|
43
|
+
* @export
|
44
|
+
* @abstract
|
45
|
+
* @class SocketController
|
46
|
+
* @extends {System}
|
47
|
+
*/
|
48
|
+
exports.HttpController = HttpController;
|
49
|
+
class SocketController extends _system.default {
|
50
|
+
constructor() {
|
51
|
+
super();
|
52
|
+
}
|
53
|
+
handlerEventBind(cb) {
|
54
|
+
return (req, data) => {
|
55
|
+
const d = this.bufferToData(data);
|
56
|
+
cb(req, ...d);
|
57
|
+
};
|
58
|
+
}
|
59
|
+
bufferToData(data) {
|
60
|
+
return Array.from(data);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
exports.SocketController = SocketController;
|
64
|
+
class SocketRequest extends _system.default {
|
65
|
+
auth;
|
66
|
+
tenant;
|
67
|
+
requestor;
|
68
|
+
isApplication;
|
69
|
+
constructor(socket) {
|
70
|
+
super();
|
71
|
+
this.socket = socket;
|
72
|
+
this.auth = this.socket.auth;
|
73
|
+
this.tenant = this.socket.tenant;
|
74
|
+
this.requestor = this.socket.requestor;
|
75
|
+
this.isApplication = this.socket.isApplication;
|
76
|
+
}
|
77
|
+
send(event, ...data) {
|
78
|
+
this.socket.emit(event, ...data);
|
79
|
+
}
|
80
|
+
getSocket() {
|
81
|
+
return this.socket;
|
82
|
+
}
|
83
|
+
dataToBuffer(data) {
|
84
|
+
return Buffer.from(data, 'utf-8');
|
85
|
+
}
|
86
|
+
}
|
87
|
+
exports.SocketRequest = SocketRequest;
|
88
|
+
class MessagingController extends _system.default {
|
89
|
+
constructor() {
|
90
|
+
super();
|
91
|
+
}
|
92
|
+
bufferToData(data) {
|
93
|
+
return Array.from(data);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
exports.MessagingController = MessagingController;
|
97
|
+
var _default = exports.default = HttpController;
|
package/lib/app/core.js
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var fs = _interopRequireWildcard(require("fs"));
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
9
|
+
var _settings = _interopRequireDefault(require("./settings"));
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
+
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); }
|
12
|
+
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; }
|
13
|
+
/**
|
14
|
+
* Class base responsável pelo gerênciamento RUNTIME da aplicação
|
15
|
+
* controle de cache, uso de memoria e gerênciamento de dados locais
|
16
|
+
*
|
17
|
+
* Todas as classes devem herdar esta classe para um gerênciamento completo
|
18
|
+
*
|
19
|
+
* @abstract
|
20
|
+
* @class Core
|
21
|
+
*/
|
22
|
+
class Core {
|
23
|
+
static settings = new _settings.default();
|
24
|
+
|
25
|
+
//# System info
|
26
|
+
static getVersion() {
|
27
|
+
try {
|
28
|
+
const packageJson = fs.readFileSync(_path.default.resolve(__dirname, '../../package.json'), 'utf8');
|
29
|
+
const packageData = JSON.parse(packageJson);
|
30
|
+
return packageData.version;
|
31
|
+
} catch (error) {
|
32
|
+
console.error('Error reading package.json:', error);
|
33
|
+
return undefined;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
//#Setters
|
38
|
+
static setSettings(settings) {
|
39
|
+
this.settings = settings;
|
40
|
+
}
|
41
|
+
|
42
|
+
//#Getters
|
43
|
+
static getSettings() {
|
44
|
+
return this.settings;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
var _default = exports.default = Core;
|
package/lib/app/error.js
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.HttpError = exports.ErrorHandler = void 0;
|
7
|
+
var _contracts = require("../contracts");
|
8
|
+
var _utils = require("../utils");
|
9
|
+
var _managed = _interopRequireDefault(require("./classes/managed"));
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
+
class ErrorHandler extends _managed.default {
|
12
|
+
message;
|
13
|
+
error;
|
14
|
+
caller;
|
15
|
+
constructor(message, error) {
|
16
|
+
super();
|
17
|
+
this.message = message;
|
18
|
+
this.error = error;
|
19
|
+
this.caller = this.getCallerClassName();
|
20
|
+
this.handle();
|
21
|
+
}
|
22
|
+
handle() {
|
23
|
+
this.register();
|
24
|
+
}
|
25
|
+
register() {
|
26
|
+
const message = this.caller && this.caller != 'L' ? `[${this.caller}]->${this.message}` : this.message;
|
27
|
+
this.log(`${message}`, 'danger');
|
28
|
+
(0, _utils.logger)().error(this.error);
|
29
|
+
}
|
30
|
+
getCallerClassName() {
|
31
|
+
const err = new Error();
|
32
|
+
const stackLines = err.stack?.split('\n') || [];
|
33
|
+
if (stackLines.length >= 4) {
|
34
|
+
const callerLine = stackLines[3].trim();
|
35
|
+
// Extraindo o nome da função/classe
|
36
|
+
const match = callerLine.match(/at (\w+)/);
|
37
|
+
if (match && match[1]) {
|
38
|
+
return match[1];
|
39
|
+
}
|
40
|
+
}
|
41
|
+
return null;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
exports.ErrorHandler = ErrorHandler;
|
45
|
+
class HttpError extends _managed.default {
|
46
|
+
message;
|
47
|
+
statusCode;
|
48
|
+
level;
|
49
|
+
data;
|
50
|
+
error;
|
51
|
+
constructor(data) {
|
52
|
+
super();
|
53
|
+
this.message = data.message;
|
54
|
+
this.statusCode = data.statusCode || _contracts.EHttpResponseCode.iternalErro;
|
55
|
+
this.level = data.level || 'error';
|
56
|
+
this.data = data.data;
|
57
|
+
this.error = data.error;
|
58
|
+
this.handle();
|
59
|
+
}
|
60
|
+
handle() {
|
61
|
+
(0, _utils.logger)().warn(this.message, this.statusCode);
|
62
|
+
(0, _utils.logger)().warn(this.data);
|
63
|
+
this.error && (0, _utils.logger)().error(this.error);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
exports.HttpError = HttpError;
|