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