exodus-framework 2.1.1031 → 2.1.1033
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.d.ts +6 -0
- package/lib/app/classes/broadcast.d.ts.map +1 -1
- package/lib/app/classes/broadcast.js +1 -3
- package/lib/app/classes/communication.d.ts +17 -0
- package/lib/app/classes/communication.d.ts.map +1 -1
- package/lib/app/classes/communication.js +0 -8
- package/lib/app/classes/event.d.ts +6 -0
- package/lib/app/classes/event.d.ts.map +1 -1
- package/lib/app/classes/managed.d.ts +7 -0
- package/lib/app/classes/managed.d.ts.map +1 -1
- package/lib/app/classes/managed.js +0 -20
- package/lib/app/classes/service.d.ts +126 -0
- package/lib/app/classes/service.d.ts.map +1 -1
- package/lib/app/classes/service.js +4 -9
- package/lib/app/classes/servicemodel.d.ts +7 -0
- package/lib/app/classes/servicemodel.d.ts.map +1 -1
- package/lib/app/classes/singleton.d.ts +9 -0
- package/lib/app/classes/singleton.d.ts.map +1 -1
- package/lib/app/classes/singleton.js +0 -1
- package/lib/app/classes/socket/clienthandler.js +0 -6
- package/lib/app/classes/socket/eventhandler.js +0 -6
- package/lib/app/classes/socket/ssehandler.d.ts +1 -1
- package/lib/app/classes/socket/ssehandler.d.ts.map +1 -1
- package/lib/app/classes/socket/ssehandler.js +19 -22
- package/lib/app/classes/system.d.ts +6 -0
- package/lib/app/classes/system.d.ts.map +1 -1
- package/lib/app/controller.d.ts +25 -0
- package/lib/app/controller.d.ts.map +1 -1
- package/lib/app/core.d.ts +9 -0
- package/lib/app/core.d.ts.map +1 -1
- package/lib/app/core.js +0 -6
- package/lib/app/error.js +0 -1
- package/lib/app/exodus.d.ts +7 -0
- package/lib/app/exodus.d.ts.map +1 -1
- package/lib/app/exodus.js +1 -30
- package/lib/app/settings.js +3 -14
- package/lib/contracts/communication/communication.js +4 -4
- package/lib/contracts/contansts.js +2 -2
- package/lib/contracts/core.js +1 -1
- package/lib/contracts/entity.js +2 -4
- package/lib/contracts/http.d.ts +17 -1
- package/lib/contracts/http.d.ts.map +1 -1
- package/lib/contracts/http.js +2 -2
- package/lib/contracts/messaging.d.ts +1 -1
- package/lib/contracts/messaging.d.ts.map +1 -1
- package/lib/contracts/messaging.js +2 -2
- package/lib/contracts/service.js +1 -1
- package/lib/contracts/socket.js +2 -2
- package/lib/controllers/api/file.js +0 -4
- package/lib/controllers/api/log.js +0 -1
- package/lib/controllers/api/report.js +0 -1
- package/lib/controllers/messaging/application.js +0 -10
- package/lib/controllers/messaging/environment.js +0 -11
- package/lib/middlewares/access.d.ts +6 -0
- package/lib/middlewares/access.d.ts.map +1 -1
- package/lib/middlewares/access.js +0 -5
- package/lib/middlewares/authentication.d.ts +7 -0
- package/lib/middlewares/authentication.d.ts.map +1 -1
- package/lib/middlewares/authentication.js +2 -5
- package/lib/middlewares/file.js +0 -1
- package/lib/routes/api/v1/logs.js +0 -7
- package/lib/routes/api/v1/report.js +0 -7
- package/lib/routes/api/v1/sse.js +2 -11
- package/lib/routes/messaging/index.js +0 -6
- package/lib/services/database.d.ts +17 -0
- package/lib/services/database.d.ts.map +1 -1
- package/lib/services/database.js +5 -19
- package/lib/services/express.js +1 -7
- package/lib/services/file/FileLibrary.d.ts +8 -0
- package/lib/services/file/FileLibrary.d.ts.map +1 -1
- package/lib/services/file/FileLibrary.js +0 -2
- package/lib/services/file/classes/Mimetyp.d.ts +12 -0
- package/lib/services/file/classes/Mimetyp.d.ts.map +1 -1
- package/lib/services/file/classes/Mimetyp.js +0 -41
- package/lib/services/file/constants/mimes.js +0 -1
- package/lib/services/logger.js +0 -5
- package/lib/services/rabitmq.d.ts +26 -0
- package/lib/services/rabitmq.d.ts.map +1 -1
- package/lib/services/rabitmq.js +7 -13
- package/lib/services/redis.d.ts +7 -0
- package/lib/services/redis.d.ts.map +1 -1
- package/lib/services/redis.js +2 -5
- package/lib/services/security.d.ts +52 -0
- package/lib/services/security.d.ts.map +1 -1
- package/lib/services/security.js +0 -3
- package/lib/services/sequelize.d.ts +8 -0
- package/lib/services/sequelize.d.ts.map +1 -1
- package/lib/services/sequelize.js +3 -16
- package/lib/services/socket.d.ts +7 -0
- package/lib/services/socket.d.ts.map +1 -1
- package/lib/services/socket.js +1 -4
- package/lib/services/task/queue/QueueService.js +0 -1
- package/lib/services/task/queue/QueueTask.js +0 -16
- package/lib/services/task/scheduler/SchedulerTask.d.ts +16 -0
- package/lib/services/task/scheduler/SchedulerTask.d.ts.map +1 -1
- package/lib/services/task/scheduler/SchedulerTask.js +0 -9
- package/lib/services/test.js +0 -2
- package/lib/tasks/queue/teste.js +0 -20
- package/lib/tasks/schedule/teste.js +0 -16
- package/lib/utils/api.d.ts +157 -0
- package/lib/utils/api.d.ts.map +1 -1
- package/lib/utils/api.js +0 -10
- package/lib/utils/database.js +0 -18
- package/lib/utils/logger-transport.js +0 -7
- package/lib/utils/phone.d.ts +171 -0
- package/lib/utils/phone.d.ts.map +1 -1
- package/lib/utils/phone.js +0 -27
- package/package.json +1 -1
@@ -9,13 +9,8 @@ var _models = require("../../models");
|
|
9
9
|
var _services = require("../../services");
|
10
10
|
var _logger = _interopRequireDefault(require("../../services/logger"));
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
-
//TODO: a ordem de inicialização do sistema impede as tasks estarem disponiveis até o momento
|
13
|
-
//TODO: deveria ser assim?
|
14
12
|
class EnvironmentController extends _app.MessagingController {
|
15
13
|
created = async (data, ack) => {
|
16
|
-
/* EnvironmentSyncQueue.addJob({ create: data });
|
17
|
-
ack(); */
|
18
|
-
|
19
14
|
try {
|
20
15
|
const db = data.database;
|
21
16
|
const token = data.envToken;
|
@@ -52,9 +47,6 @@ class EnvironmentController extends _app.MessagingController {
|
|
52
47
|
}
|
53
48
|
};
|
54
49
|
updatedDatabase = async (data, ack) => {
|
55
|
-
/* EnvironmentSyncQueue.addJob({ update: data });
|
56
|
-
ack(); */
|
57
|
-
|
58
50
|
try {
|
59
51
|
const relation = await _models.EnvDBHost.findOne({
|
60
52
|
where: {
|
@@ -73,9 +65,6 @@ class EnvironmentController extends _app.MessagingController {
|
|
73
65
|
}
|
74
66
|
};
|
75
67
|
sync = async (data, ack) => {
|
76
|
-
/* EnvironmentSyncQueue.addJob({ sync: data });
|
77
|
-
ack(); */
|
78
|
-
|
79
68
|
try {
|
80
69
|
data.forEach(async env => {
|
81
70
|
try {
|
@@ -2,6 +2,12 @@ import { RequestHandler } from 'express';
|
|
2
2
|
import HttpController from '../app/controller';
|
3
3
|
import { TAccountType } from '../contracts';
|
4
4
|
declare class AccessMiddleware extends HttpController {
|
5
|
+
/**
|
6
|
+
* !Deve ser chamada!!
|
7
|
+
*
|
8
|
+
* @param {TAccountType[]} level
|
9
|
+
* @memberof AccessMiddleware
|
10
|
+
*/
|
5
11
|
accessLevel: (level: TAccountType[]) => RequestHandler;
|
6
12
|
getTenant: RequestHandler;
|
7
13
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/middlewares/access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,cAAM,gBAAiB,SAAQ,cAAc;
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../src/middlewares/access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAM5C,cAAM,gBAAiB,SAAQ,cAAc;IAC3C;;;;;OAKG;IACH,WAAW,UAAW,YAAY,EAAE,KAAG,cAAc,CAWnD;IAEF,SAAS,EAAE,cAAc,CA+FvB;CACH;AAED,eAAe,gBAAgB,CAAC"}
|
@@ -35,8 +35,6 @@ class AccessMiddleware extends _controller.default {
|
|
35
35
|
const applicationId = req.header('X-Exodus-Application-ID');
|
36
36
|
const exodusServiceId = req.header('X-Exodus-Service-ID');
|
37
37
|
let isApplication = false;
|
38
|
-
|
39
|
-
//! Negar caso não haja um ou outro;
|
40
38
|
if (!account && !applicationId && !tenantId && !exodusServiceId) {
|
41
39
|
throw new _app.HttpError({
|
42
40
|
message: 'Credênciais de autênticação não informadas',
|
@@ -51,8 +49,6 @@ class AccessMiddleware extends _controller.default {
|
|
51
49
|
trigger: tenantId
|
52
50
|
};
|
53
51
|
let envUuid = '';
|
54
|
-
|
55
|
-
/* Aplicações */
|
56
52
|
if (applicationId) {
|
57
53
|
isApplication = true;
|
58
54
|
const application = await _models.Application.findOne({
|
@@ -76,7 +72,6 @@ class AccessMiddleware extends _controller.default {
|
|
76
72
|
statusCode: _http.EHttpResponseCode.informationBlocked
|
77
73
|
});
|
78
74
|
} else {
|
79
|
-
//valido
|
80
75
|
const data = await _security.default.getService().verifySignature(applicationId, _security.default.getService().getServicePublicKey());
|
81
76
|
if (!data) {
|
82
77
|
throw new _app.HttpError({
|
@@ -3,6 +3,13 @@ import { Socket } from 'socket.io';
|
|
3
3
|
import { ExtendedError } from 'socket.io/dist/namespace';
|
4
4
|
import HttpController, { SocketController } from '../app/controller';
|
5
5
|
export declare class AuthenticationMiddleware extends HttpController {
|
6
|
+
/**
|
7
|
+
* Recupera a sessão ativa baseada no token
|
8
|
+
*
|
9
|
+
* @param {boolean} [required=true] Controla se o token de sessão é obrigatório (Em caso de rota API usar como false)
|
10
|
+
* @return {*} {RequestHandler}
|
11
|
+
* @memberof AuthenticationMiddleware
|
12
|
+
*/
|
6
13
|
decryptToken(required?: boolean): RequestHandler;
|
7
14
|
}
|
8
15
|
export declare class SocketAuthenticationMiddleware extends SocketController {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/middlewares/authentication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,cAAc,EAAE,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMrE,qBAAa,wBAAyB,SAAQ,cAAc;
|
1
|
+
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/middlewares/authentication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,cAAc,EAAE,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMrE,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,GAAE,OAAc,GAAG,cAAc;CAUvD;AAED,qBAAa,8BAA+B,SAAQ,gBAAgB;IAClE,YAAY,WAAkB,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,IAAI,mBAqFvE;CACH"}
|
@@ -27,7 +27,7 @@ class AuthenticationMiddleware extends _controller.default {
|
|
27
27
|
},
|
28
28
|
issuer: _app.Core.settings.getAuthentication().serviceIssuer,
|
29
29
|
algorithms: ['RS256'],
|
30
|
-
credentialsRequired: required
|
30
|
+
credentialsRequired: required
|
31
31
|
});
|
32
32
|
}
|
33
33
|
}
|
@@ -39,7 +39,7 @@ class SocketAuthenticationMiddleware extends _controller.SocketController {
|
|
39
39
|
const applicationId = socket.handshake.auth['X-Exodus-Application-ID'];
|
40
40
|
let isApplication = false;
|
41
41
|
let envUuid = '';
|
42
|
-
socket.extraHeaders = socket.handshake.auth;
|
42
|
+
socket.extraHeaders = socket.handshake.auth;
|
43
43
|
try {
|
44
44
|
if (!token) {
|
45
45
|
return next(new Error('Token ausente'));
|
@@ -62,8 +62,6 @@ class SocketAuthenticationMiddleware extends _controller.SocketController {
|
|
62
62
|
environmentId: tenantId,
|
63
63
|
trigger: tenantId
|
64
64
|
};
|
65
|
-
|
66
|
-
/* Aplicações */
|
67
65
|
if (applicationId) {
|
68
66
|
isApplication = true;
|
69
67
|
const application = await _models.Application.findOne({
|
@@ -78,7 +76,6 @@ class SocketAuthenticationMiddleware extends _controller.SocketController {
|
|
78
76
|
} else if ((0, _dateFns.isBefore)(application.expiresAt, new Date())) {
|
79
77
|
return next(new Error('Token de aplicação expirado'));
|
80
78
|
} else {
|
81
|
-
//valido
|
82
79
|
const data = await _security.default.singleton().verifySignature(applicationId, _security.default.singleton().getServicePublicKey());
|
83
80
|
if (!data) {
|
84
81
|
return next(new Error('Token de aplicação sem autênticidade'));
|
package/lib/middlewares/file.js
CHANGED
@@ -25,7 +25,6 @@ class FileMiddleware extends _controller.default {
|
|
25
25
|
cb(null, _app.Core.settings.getAppication().filePaths.temporary);
|
26
26
|
},
|
27
27
|
filename: (req, file, cb) => {
|
28
|
-
// const name = Date.now() + path.extname(file.originalname);
|
29
28
|
const name = Date.now() + '_@_' + file.originalname;
|
30
29
|
cb(null, name);
|
31
30
|
}
|
@@ -7,13 +7,6 @@ exports.logRouter = void 0;
|
|
7
7
|
var _express = require("express");
|
8
8
|
var _log = _interopRequireDefault(require("../../../controllers/api/log"));
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
-
//* Router
|
11
10
|
const logRouter = exports.logRouter = (0, _express.Router)();
|
12
|
-
|
13
|
-
//* Middlewares
|
14
|
-
|
15
|
-
//* Controllers
|
16
11
|
const logController = new _log.default();
|
17
|
-
|
18
|
-
//* Definitions
|
19
12
|
logRouter.route('/list').post(logController.list);
|
@@ -7,13 +7,6 @@ exports.reportRouter = void 0;
|
|
7
7
|
var _express = require("express");
|
8
8
|
var _report = _interopRequireDefault(require("../../../controllers/api/report"));
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
10
|
-
//* Router
|
11
10
|
const reportRouter = exports.reportRouter = (0, _express.Router)();
|
12
|
-
|
13
|
-
//* Middlewares
|
14
|
-
|
15
|
-
//* Controllers
|
16
11
|
const reportController = new _report.default();
|
17
|
-
|
18
|
-
//* Definitions
|
19
12
|
reportRouter.route('/list').post(reportController.list);
|
package/lib/routes/api/v1/sse.js
CHANGED
@@ -7,27 +7,18 @@ exports.sseRouter = void 0;
|
|
7
7
|
var _express = require("express");
|
8
8
|
const sseRouter = exports.sseRouter = (0, _express.Router)();
|
9
9
|
sseRouter.route('/sse').post((req, res) => {
|
10
|
-
// Definir cabeçalhos SSE
|
11
10
|
res.setHeader('Content-Type', 'text/event-stream');
|
12
11
|
res.setHeader('Cache-Control', 'no-cache');
|
13
12
|
res.setHeader('Connection', 'keep-alive');
|
14
|
-
res.flushHeaders();
|
15
|
-
|
16
|
-
// Função para enviar eventos
|
13
|
+
res.flushHeaders();
|
17
14
|
const sendEvent = data => {
|
18
|
-
res.write(`data: ${data}\n\n`);
|
15
|
+
res.write(`data: ${data}\n\n`);
|
19
16
|
};
|
20
|
-
|
21
|
-
// Enviar um evento inicial
|
22
17
|
sendEvent('Conexão SSE estabelecida!');
|
23
|
-
|
24
|
-
// Exemplo: enviar eventos periodicamente
|
25
18
|
const intervalId = setInterval(() => {
|
26
19
|
const message = `Mensagem do servidor: ${new Date().toLocaleTimeString()}`;
|
27
20
|
sendEvent(message);
|
28
21
|
}, 5000);
|
29
|
-
|
30
|
-
// Limpar intervalo e encerrar conexão quando o cliente fechar a conexão
|
31
22
|
req.on('close', () => {
|
32
23
|
clearInterval(intervalId);
|
33
24
|
res.end();
|
@@ -8,24 +8,18 @@ var _application = _interopRequireDefault(require("../../controllers/messaging/a
|
|
8
8
|
var _database = _interopRequireDefault(require("../../controllers/messaging/database"));
|
9
9
|
var _environment = _interopRequireDefault(require("../../controllers/messaging/environment"));
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
11
|
-
//* Controllers
|
12
11
|
const databaseController = new _database.default();
|
13
12
|
const envController = new _environment.default();
|
14
13
|
const appController = new _application.default();
|
15
|
-
|
16
|
-
//* Definitions
|
17
14
|
const NativeMessagingRoutes = {
|
18
|
-
/* Connections Library */
|
19
15
|
'exodus.database.created': databaseController.created,
|
20
16
|
'exodus.database.updated': databaseController.update,
|
21
17
|
'exodus.database.deleted': databaseController.delete,
|
22
18
|
'exodus.database.sync': databaseController.sync,
|
23
|
-
/* Application Integrations */
|
24
19
|
'exodus.application.created': appController.created,
|
25
20
|
'exodus.application.updated': appController.update,
|
26
21
|
'exodus.application.deleted': appController.delete,
|
27
22
|
'exodus.application.sync': appController.sync,
|
28
|
-
/* Environment Sync Database Relations */
|
29
23
|
'exodus.environment.created': envController.created,
|
30
24
|
'exodus.environment.deleted': envController.deleted,
|
31
25
|
'exodus.environment.sync': envController.sync,
|
@@ -28,8 +28,25 @@ declare class DatabaseService extends Service {
|
|
28
28
|
createDB(hostId: string, name: string): Promise<boolean>;
|
29
29
|
deleteDB(hostId: string, name: string): Promise<boolean>;
|
30
30
|
hasDB(hostId: string, name: string): Promise<boolean>;
|
31
|
+
/**
|
32
|
+
* Usado para acionar migrações especificas do tenant
|
33
|
+
*
|
34
|
+
* @param {Sequelize} connection
|
35
|
+
* @memberof DatabaseService
|
36
|
+
*/
|
31
37
|
execTenantMigrates(connection: Sequelize): Promise<void>;
|
38
|
+
/**
|
39
|
+
* Usado para acionar migrações especificas do core
|
40
|
+
*
|
41
|
+
* @param {Sequelize} connection
|
42
|
+
* @memberof DatabaseService
|
43
|
+
*/
|
32
44
|
execCoreMigrates(connection: Sequelize): Promise<void>;
|
45
|
+
/**
|
46
|
+
* Usado para acionar migrações especificas do serviço
|
47
|
+
*
|
48
|
+
* @memberof DatabaseService
|
49
|
+
*/
|
33
50
|
execServiceMigrate(): Promise<void>;
|
34
51
|
}
|
35
52
|
export default DatabaseService;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAsB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAgB,SAAS,EAAE,MAAM,WAAW,CAAC;AAKpD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,WAAW,CAAyB;IAE/B,aAAa;IAWb,OAAO;IA0CP,WAAW;YAMV,cAAc;IAgDf,gBAAgB,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO;IAwBL,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAO;IAO9C,cAAc,CAAC,IAAI,EAAE;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB;YA2Ba,sBAAsB;IA6BvB,YAAY;IAKZ,aAAa;IAKb,oBAAoB,CAAC,QAAQ,EAAE,MAAM;YAMpC,UAAU;IASX,SAAS,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EAClD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAU1B,OAAO,CAAC,qBAAqB;IAIhB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA+BrC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAmBrC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAsB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAgB,SAAS,EAAE,MAAM,WAAW,CAAC;AAKpD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,WAAW,CAAyB;IAE/B,aAAa;IAWb,OAAO;IA0CP,WAAW;YAMV,cAAc;IAgDf,gBAAgB,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO;IAwBL,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAO;IAO9C,cAAc,CAAC,IAAI,EAAE;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB;YA2Ba,sBAAsB;IA6BvB,YAAY;IAKZ,aAAa;IAKb,oBAAoB,CAAC,QAAQ,EAAE,MAAM;YAMpC,UAAU;IASX,SAAS,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EAClD,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAU1B,OAAO,CAAC,qBAAqB;IAIhB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA+BrC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAmBrC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAkB/C;;;;;OAKG;IACU,kBAAkB,CAAC,UAAU,EAAE,SAAS;IAcrD;;;;;OAKG;IACU,gBAAgB,CAAC,UAAU,EAAE,SAAS;IAenD;;;;OAIG;IACU,kBAAkB;CAehC;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/database.js
CHANGED
@@ -20,8 +20,6 @@ class DatabaseService extends _app.Service {
|
|
20
20
|
async onServiceInit() {
|
21
21
|
this.entities = new Map();
|
22
22
|
this.connections = new Map();
|
23
|
-
|
24
|
-
// para busca rápidas
|
25
23
|
this.connections.set(_app.Core.settings.getDatabase().main.database, _utils.mainDb);
|
26
24
|
this.startAttemptDelay = 5 * 1000;
|
27
25
|
this.maxStartAttempts = 3;
|
@@ -33,8 +31,8 @@ class DatabaseService extends _app.Service {
|
|
33
31
|
await _utils.mainDb.sync({
|
34
32
|
alter: true
|
35
33
|
});
|
36
|
-
await this.execServiceMigrate();
|
37
|
-
await this.execTenantMigrates(_utils.mainDb);
|
34
|
+
await this.execServiceMigrate();
|
35
|
+
await this.execTenantMigrates(_utils.mainDb);
|
38
36
|
this.log('✅ Connected service database sucessfully', 'success');
|
39
37
|
if (process.env.DB_INIT_WITH_MIGRATE === 'true') {
|
40
38
|
const tenants = await this.getAllTenants();
|
@@ -58,8 +56,6 @@ class DatabaseService extends _app.Service {
|
|
58
56
|
await super.onStartFail();
|
59
57
|
this.log(`Not possible to connect database`, 'danger');
|
60
58
|
}
|
61
|
-
|
62
|
-
//* Connection
|
63
59
|
async initConnection(tenantId, migrate = true) {
|
64
60
|
const tenantInfo = await this.getTenantInformation(tenantId);
|
65
61
|
if (!tenantInfo) {
|
@@ -81,7 +77,7 @@ class DatabaseService extends _app.Service {
|
|
81
77
|
const password = data.payload;
|
82
78
|
const connection = await this.createConnection(address, port, database, dbHost.username, password, dbHost.dialect);
|
83
79
|
if (migrate) {
|
84
|
-
await this.execCoreMigrates(connection);
|
80
|
+
await this.execCoreMigrates(connection);
|
85
81
|
await this.execTenantMigrates(connection);
|
86
82
|
}
|
87
83
|
this.connections.set(tenantId, connection);
|
@@ -150,12 +146,8 @@ class DatabaseService extends _app.Service {
|
|
150
146
|
throw new Error(`Não foi possível descriptografar as credenciais de conexão para host: ${hostId}`);
|
151
147
|
}
|
152
148
|
const password = data.payload;
|
153
|
-
return this.createConnection(address, port, undefined,
|
154
|
-
//! apenas retornar a conexão
|
155
|
-
host.username, password, host.dialect);
|
149
|
+
return this.createConnection(address, port, undefined, host.username, password, host.dialect);
|
156
150
|
}
|
157
|
-
|
158
|
-
//* Environment
|
159
151
|
async getTenantIds() {
|
160
152
|
const tenants = await _models.EnvDBHost.findAll({
|
161
153
|
attributes: ['envUuid']
|
@@ -174,13 +166,10 @@ class DatabaseService extends _app.Service {
|
|
174
166
|
});
|
175
167
|
return relation;
|
176
168
|
}
|
177
|
-
|
178
|
-
//* Entity
|
179
169
|
async loadEntity(entity, tenantId) {
|
180
170
|
const k = `${tenantId}#${entity.name}`;
|
181
171
|
const connection = await this.getConnection(tenantId);
|
182
172
|
const loadedEntity = entity.initialize(connection);
|
183
|
-
// await loadedEntity.sync({ force: false, alter: false }); //! tenta recriar os indices e da erro
|
184
173
|
this.entities.set(k, loadedEntity);
|
185
174
|
}
|
186
175
|
async getEntity(model, tenantId) {
|
@@ -190,8 +179,6 @@ class DatabaseService extends _app.Service {
|
|
190
179
|
}
|
191
180
|
return this.entities.get(k);
|
192
181
|
}
|
193
|
-
|
194
|
-
//* Utils
|
195
182
|
normalizeDatabaseName(envToken) {
|
196
183
|
return `${_app.Core.settings.getDatabase().main.database}_${envToken}`;
|
197
184
|
}
|
@@ -202,7 +189,6 @@ class DatabaseService extends _app.Service {
|
|
202
189
|
const dbQueryName = `${_app.Core.settings.getDatabase().main.database}_${name}`;
|
203
190
|
const [results] = await connection.query(`SHOW DATABASES LIKE '${dbQueryName}';`);
|
204
191
|
if (results.length === 0) {
|
205
|
-
// Se o banco de dados não existir, cria-o
|
206
192
|
await connection.query(`CREATE DATABASE ${dbQueryName};`);
|
207
193
|
this.log(`Database "${dbQueryName}" has been created.`);
|
208
194
|
await connection.query(`USE ${dbQueryName};`);
|
@@ -266,7 +252,7 @@ class DatabaseService extends _app.Service {
|
|
266
252
|
const migrations = _app.Core.settings.getDatabase().migrationsPath;
|
267
253
|
const umzung = new _umzug.Umzug({
|
268
254
|
migrations: {
|
269
|
-
glob: `${migrations}/*.js`
|
255
|
+
glob: `${migrations}/*.js`
|
270
256
|
},
|
271
257
|
context: connection.getQueryInterface(),
|
272
258
|
storage: new _umzug.SequelizeStorage({
|
package/lib/services/express.js
CHANGED
@@ -16,16 +16,12 @@ var _http2 = require("../contracts/http");
|
|
16
16
|
var _logger = _interopRequireDefault(require("./logger"));
|
17
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
19
|
-
// import 'express-async-errors';
|
20
|
-
|
21
19
|
class ExpressService extends _service.default {
|
22
20
|
server;
|
23
21
|
mainRouter;
|
24
|
-
|
25
|
-
//!Deve ser iniciado no cluster, pois no master causa erro de port bind
|
26
22
|
async onServiceClusterInit() {
|
27
23
|
await super.onServiceClusterInit();
|
28
|
-
if (!this.mainRouter) throw new Error('Need router');
|
24
|
+
if (!this.mainRouter) throw new Error('Need router');
|
29
25
|
}
|
30
26
|
async onStartCluster() {
|
31
27
|
await super.onStartCluster();
|
@@ -99,8 +95,6 @@ class ExpressService extends _service.default {
|
|
99
95
|
res.contentType('application/json');
|
100
96
|
next();
|
101
97
|
}
|
102
|
-
|
103
|
-
//* Handler errors
|
104
98
|
handleNotFoud(req, res) {
|
105
99
|
this.sendResponse({
|
106
100
|
message: 'Endereço não encontrado',
|
@@ -19,7 +19,15 @@ declare class FileLibraryService extends Service {
|
|
19
19
|
getCachedFileByTitle(title: string): FileCache;
|
20
20
|
deleteFile(md5: string): Promise<boolean>;
|
21
21
|
getFileMeta(md5: string): Promise<IMetaFile>;
|
22
|
+
/**
|
23
|
+
* Save a file to the library and register it in the cache
|
24
|
+
* @return MD5 hash of the saved file
|
25
|
+
*/
|
22
26
|
saveAndRegisterFile(filePath: string, temporary?: boolean): Promise<string>;
|
27
|
+
/**
|
28
|
+
* Save a file buffer to the library and register it in the cache
|
29
|
+
* @return MD5 hash of the saved file
|
30
|
+
*/
|
23
31
|
saveAndRegisterBuffer(buffer: Buffer, originalName: string, ext: string): Promise<string>;
|
24
32
|
getMD5FromFile(filePath: string): Promise<string>;
|
25
33
|
getMD5FromBuffer(buffer: Buffer): string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FileLibrary.d.ts","sourceRoot":"","sources":["../../../src/services/file/FileLibrary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAGzC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,cAAM,kBAAmB,SAAQ,OAAO;IACtC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IAEzB,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,aAAa;IASb,OAAO;YAMN,WAAW;YA+BX,iBAAiB;IAyBxB,WAAW,CAAC,GAAG,EAAE,MAAM;IAOjB,UAAU,CAAC,GAAG,EAAE,MAAM;IAO5B,aAAa,CAAC,GAAG,EAAE,MAAM;IAOzB,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO5B,UAAU,CAAC,GAAG,EAAE,MAAM;IAWtB,WAAW,CAAC,GAAG,EAAE,MAAM;
|
1
|
+
{"version":3,"file":"FileLibrary.d.ts","sourceRoot":"","sources":["../../../src/services/file/FileLibrary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAGzC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,cAAM,kBAAmB,SAAQ,OAAO;IACtC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IAEzB,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,aAAa;IASb,OAAO;YAMN,WAAW;YA+BX,iBAAiB;IAyBxB,WAAW,CAAC,GAAG,EAAE,MAAM;IAOjB,UAAU,CAAC,GAAG,EAAE,MAAM;IAO5B,aAAa,CAAC,GAAG,EAAE,MAAM;IAOzB,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO5B,UAAU,CAAC,GAAG,EAAE,MAAM;IAWtB,WAAW,CAAC,GAAG,EAAE,MAAM;IAOpC;;;OAGG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAQ;IAqCpE;;;OAGG;IACU,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IA2B7E,cAAc,CAAC,QAAQ,EAAE,MAAM;IAW/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMxC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,OAAO;CAGf;AAED,eAAe,kBAAkB,CAAC"}
|
@@ -35,7 +35,6 @@ class FileLibraryService extends _service.default {
|
|
35
35
|
const files = await _fsExtra.default.readdir(this.path);
|
36
36
|
this.log(`Carregando biblioteca de arquivos. Encontrados ${files.length} arquivos`, 'info');
|
37
37
|
for (const file of files) {
|
38
|
-
// apenas metadados
|
39
38
|
if (!file.endsWith('.meta')) continue;
|
40
39
|
const filePath = _path.default.join(this.path, file);
|
41
40
|
const fileCache = new _FileCache.default(filePath);
|
@@ -66,7 +65,6 @@ class FileLibraryService extends _service.default {
|
|
66
65
|
}
|
67
66
|
const md5 = await this.getMD5FromFile(itemPath);
|
68
67
|
if (md5 && !this.cache.has(md5)) {
|
69
|
-
//! este move o arquivo, não é preciso excluir o original
|
70
68
|
await this.saveAndRegisterFile(itemPath);
|
71
69
|
} else {
|
72
70
|
await _fsExtra.default.unlink(itemPath);
|
@@ -7,9 +7,21 @@ declare class MimeType {
|
|
7
7
|
typeToExtensions: Map<string, Set<string>>;
|
8
8
|
constructor(...args: TypeMap[]);
|
9
9
|
define(typeMap: TypeMap, force?: boolean): this;
|
10
|
+
/**
|
11
|
+
* Get mime type associated with an extension
|
12
|
+
*/
|
10
13
|
getType(path: string): string;
|
14
|
+
/**
|
15
|
+
* Get extension associated with a filepath
|
16
|
+
*/
|
11
17
|
getFileExtension(path: string): string;
|
18
|
+
/**
|
19
|
+
* Get default file extension associated with a mime type
|
20
|
+
*/
|
12
21
|
getExtension(type: string): string;
|
22
|
+
/**
|
23
|
+
* Get all file extensions associated with a mime type
|
24
|
+
*/
|
13
25
|
getAllExtensions(type: string): Set<string>;
|
14
26
|
_freeze(): this;
|
15
27
|
_getTestState(): {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Mimetyp.d.ts","sourceRoot":"","sources":["../../../../src/services/file/classes/Mimetyp.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3C,cAAM,QAAQ;IACZ,eAAe,sBAA6B;IAC5C,eAAe,sBAA6B;IAC5C,gBAAgB,2BAAkC;gBAEtC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMvB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,UAAQ;
|
1
|
+
{"version":3,"file":"Mimetyp.d.ts","sourceRoot":"","sources":["../../../../src/services/file/classes/Mimetyp.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3C,cAAM,QAAQ;IACZ,eAAe,sBAA6B;IAC5C,eAAe,sBAA6B;IAC5C,gBAAgB,2BAAkC;gBAEtC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMvB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,UAAQ;IA2C7C;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM;IAkB3B;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAYpC;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM;IAShC;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAUpC,OAAO;IAgBP,aAAa;;;;CAMd;AAED,eAAe,QAAQ,CAAC"}
|
@@ -15,7 +15,6 @@ class MimeType {
|
|
15
15
|
}
|
16
16
|
define(typeMap, force = false) {
|
17
17
|
for (let [type, extensions] of Object.entries(typeMap)) {
|
18
|
-
// Lowercase thingz
|
19
18
|
type = type.toLowerCase();
|
20
19
|
extensions = extensions.map(ext => ext.toLowerCase());
|
21
20
|
if (!this.typeToExtensions.has(type)) {
|
@@ -26,19 +25,12 @@ class MimeType {
|
|
26
25
|
for (let extension of extensions) {
|
27
26
|
const starred = extension.startsWith('*');
|
28
27
|
extension = starred ? extension.slice(1) : extension;
|
29
|
-
|
30
|
-
// Add to list of extensions for the type
|
31
28
|
allExtensions?.add(extension);
|
32
29
|
if (first) {
|
33
|
-
// Map type to default extension (first in list)
|
34
30
|
this.typeToExtension.set(type, extension);
|
35
31
|
}
|
36
32
|
first = false;
|
37
|
-
|
38
|
-
// Starred types are not eligible to be the default extension
|
39
33
|
if (starred) continue;
|
40
|
-
|
41
|
-
// Map extension to type
|
42
34
|
const currentType = this.extensionToType.get(extension);
|
43
35
|
if (currentType && currentType != type && !force) {
|
44
36
|
throw new Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`);
|
@@ -48,63 +40,30 @@ class MimeType {
|
|
48
40
|
}
|
49
41
|
return this;
|
50
42
|
}
|
51
|
-
|
52
|
-
/**
|
53
|
-
* Get mime type associated with an extension
|
54
|
-
*/
|
55
43
|
getType(path) {
|
56
44
|
if (typeof path !== 'string') return null;
|
57
|
-
|
58
|
-
// Remove chars preceeding `/` or `\`
|
59
45
|
const last = path.replace(/^.*[/\\]/, '').toLowerCase();
|
60
|
-
|
61
|
-
// Remove chars preceeding '.'
|
62
46
|
const ext = last.replace(/^.*\./, '').toLowerCase();
|
63
47
|
const hasPath = last.length < path.length;
|
64
48
|
const hasDot = ext.length < last.length - 1;
|
65
|
-
|
66
|
-
// Extension-less file?
|
67
49
|
if (!hasDot && hasPath) return null;
|
68
50
|
return this.extensionToType.get(ext) ?? null;
|
69
51
|
}
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Get extension associated with a filepath
|
73
|
-
*/
|
74
52
|
getFileExtension(path) {
|
75
53
|
if (typeof path !== 'string') return null;
|
76
|
-
|
77
|
-
// Remove chars preceeding `/` or `\`
|
78
54
|
const last = path.replace(/^.*[/\\]/, '').toLowerCase();
|
79
|
-
|
80
|
-
// Remove chars preceeding '.'
|
81
55
|
const ext = last.replace(/^.*\./, '').toLowerCase();
|
82
56
|
return ext;
|
83
57
|
}
|
84
|
-
|
85
|
-
/**
|
86
|
-
* Get default file extension associated with a mime type
|
87
|
-
*/
|
88
58
|
getExtension(type) {
|
89
59
|
if (typeof type !== 'string') return null;
|
90
|
-
|
91
|
-
// Remove http header parameter(s) (specifically, charset)
|
92
60
|
type = type?.split?.(';')[0];
|
93
61
|
return (type && this.typeToExtension.get(type.trim().toLowerCase())) ?? null;
|
94
62
|
}
|
95
|
-
|
96
|
-
/**
|
97
|
-
* Get all file extensions associated with a mime type
|
98
|
-
*/
|
99
63
|
getAllExtensions(type) {
|
100
64
|
if (typeof type !== 'string') return null;
|
101
65
|
return this.typeToExtensions.get(type.toLowerCase()) ?? null;
|
102
66
|
}
|
103
|
-
|
104
|
-
//
|
105
|
-
// Private API, for internal use only. These APIs may change at any time
|
106
|
-
//
|
107
|
-
|
108
67
|
_freeze() {
|
109
68
|
this.define = () => {
|
110
69
|
throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');
|
@@ -748,7 +748,6 @@ const MimeStandardTypes = exports.MimeStandardTypes = {
|
|
748
748
|
'application/mmt-usd+xml': ['musd'],
|
749
749
|
'application/mods+xml': ['mods'],
|
750
750
|
'application/mp21': ['m21', 'mp21'],
|
751
|
-
/* 'application/mp4': ['mp4', 'mpg4', 'mp4s', 'm4p'], */
|
752
751
|
'application/msix': ['msix'],
|
753
752
|
'application/msixbundle': ['msixbundle'],
|
754
753
|
'application/msword': ['doc', 'dot'],
|
package/lib/services/logger.js
CHANGED
@@ -86,7 +86,6 @@ class LoggerService extends _managed.default {
|
|
86
86
|
targets.push({
|
87
87
|
level: _core.default.settings.getLogger().level,
|
88
88
|
target: 'pino-pretty',
|
89
|
-
// human-readable
|
90
89
|
options: {
|
91
90
|
colorize: true
|
92
91
|
}
|
@@ -110,8 +109,6 @@ class LoggerService extends _managed.default {
|
|
110
109
|
async compressLogFolder(date) {
|
111
110
|
const folderPath = _path.default.resolve(_core.default.settings.getLogger().path, date);
|
112
111
|
const outputPath = _path.default.resolve(_core.default.settings.getLogger().path, 'backups', `${date}.zip`);
|
113
|
-
|
114
|
-
// Verifica se a pasta existe
|
115
112
|
if (!(await (0, _util.promisify)(fs.stat)(folderPath))) {
|
116
113
|
throw new Error(`A pasta de logs não foi encontrada: ${folderPath}`);
|
117
114
|
}
|
@@ -140,8 +137,6 @@ class LoggerService extends _managed.default {
|
|
140
137
|
const datePath = _path.default.join(_core.default.settings.getLogger().path, dateFolder);
|
141
138
|
const stats = await (0, _promises.stat)(datePath);
|
142
139
|
const isDir = stats.isDirectory();
|
143
|
-
|
144
|
-
// Ignora se não for pasta ou se for a pasta do dia
|
145
140
|
if (!isDir || dateFolder === 'backups' || dateFolder === (0, _dateFns.format)(_exodus.default.getStartedAt(), 'dd-MM-yyyy')) continue;
|
146
141
|
try {
|
147
142
|
await this.compressLogFolder(dateFolder);
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import client, { Channel, Connection } from 'amqplib';
|
2
2
|
import Service from '../app/classes/service';
|
3
3
|
import { TMessageQueueDataMap, TMessagingQueueEventList, TMessagingQueueHandler } from '../contracts';
|
4
|
+
/**
|
5
|
+
* Serviço de Mensageria
|
6
|
+
*
|
7
|
+
* @class RabbitMQService
|
8
|
+
* @extends {Service}
|
9
|
+
* @implements {IService}
|
10
|
+
*/
|
4
11
|
declare class RabbitMQService extends Service {
|
5
12
|
connection: Connection;
|
6
13
|
channel: Channel;
|
@@ -18,7 +25,26 @@ declare class RabbitMQService extends Service {
|
|
18
25
|
connect(): Promise<boolean>;
|
19
26
|
registerHandles(): Promise<void>;
|
20
27
|
private setupErrorHandles;
|
28
|
+
/**
|
29
|
+
* Envia uma mensagem para a fila especificada
|
30
|
+
* @template K
|
31
|
+
* @param {K} topic
|
32
|
+
* @param {TMessageQueueDataMap[K]} data
|
33
|
+
* @param {string} [transactionId]
|
34
|
+
* @memberof RabbitMQService
|
35
|
+
*
|
36
|
+
* @deprecated use publish
|
37
|
+
*/
|
21
38
|
sendToQueue<K extends keyof TMessageQueueDataMap>(topic: K, data: TMessageQueueDataMap[K], transactionId?: string): Promise<false | `${string}-${string}-${string}-${string}-${string}`>;
|
39
|
+
/**
|
40
|
+
* Publica uma mensagem em um tópico específico
|
41
|
+
*
|
42
|
+
* @template K
|
43
|
+
* @param {K} topic
|
44
|
+
* @param {TMessageQueueDataMap[K]} data
|
45
|
+
* @param {string} [transactionId]
|
46
|
+
* @memberof RabbitMQService
|
47
|
+
*/
|
22
48
|
publish<K extends keyof TMessageQueueDataMap>(topic: K, data: TMessageQueueDataMap[K], transactionId?: string): Promise<false | `${string}-${string}-${string}-${string}-${string}`>;
|
23
49
|
consumeFromQueue(msg: client.ConsumeMessage): Promise<void>;
|
24
50
|
handlerMessageAttempt(msg: client.ConsumeMessage): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAGtB;;;;;;GAMG;AACH,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IACtF,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,oBAAoB;IAepB,cAAc;IAMd,sBAAsB;IAMtB,WAAW;IAKX,OAAO;IA+BP,eAAe;IAM5B,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;;;OASG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACpD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAKxB;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAChD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAqBlB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA4BjD,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IAiBhD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,wBAAwB;IAI/C,aAAa,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACvD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9B,cAAc,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAW7D,YAAY,CACjB,CAAC,SAAS,MAAM,oBAAoB,EACpC,CAAC,SAAS,MAAM,oBAAoB,EACpC,IAAI,EAAE;QACN,IAAI,EAAE;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAClD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,MAAM,IAAI,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CAwBF;AAED,eAAe,eAAe,CAAC"}
|