exodus-framework 2.0.754 → 2.0.756

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 (72) hide show
  1. package/lib/app/core.d.ts +1 -0
  2. package/lib/app/core.d.ts.map +1 -1
  3. package/lib/{services → app}/error.d.ts +11 -12
  4. package/lib/app/error.d.ts.map +1 -0
  5. package/lib/app/index.d.ts +1 -0
  6. package/lib/app/index.d.ts.map +1 -1
  7. package/lib/controllers/messaging/application.d.ts.map +1 -1
  8. package/lib/controllers/messaging/database.d.ts.map +1 -1
  9. package/lib/controllers/messaging/environment.d.ts.map +1 -1
  10. package/lib/middlewares/access.d.ts.map +1 -1
  11. package/lib/services/express.d.ts.map +1 -1
  12. package/lib/services/rabitmq.d.ts.map +1 -1
  13. package/lib/services/redis.d.ts.map +1 -1
  14. package/lib/services/security.d.ts.map +1 -1
  15. package/lib/services/sequelize.d.ts.map +1 -1
  16. package/lib/services/socket.d.ts.map +1 -1
  17. package/lib/services/task.d.ts.map +1 -1
  18. package/lib/utils/api.d.ts.map +1 -1
  19. package/package.json +1 -1
  20. package/lib/app/app.js +0 -84
  21. package/lib/app/controller.js +0 -95
  22. package/lib/app/core.js +0 -66
  23. package/lib/app/index.js +0 -60
  24. package/lib/app/service.js +0 -24
  25. package/lib/app/settings.js +0 -138
  26. package/lib/app/singleton.js +0 -29
  27. package/lib/contracts/console.js +0 -5
  28. package/lib/contracts/entity.js +0 -5
  29. package/lib/contracts/http.js +0 -50
  30. package/lib/contracts/index.js +0 -104
  31. package/lib/contracts/messaging.js +0 -25
  32. package/lib/contracts/security.js +0 -5
  33. package/lib/contracts/service.js +0 -5
  34. package/lib/contracts/session.js +0 -5
  35. package/lib/contracts/settings.js +0 -5
  36. package/lib/contracts/singleton.js +0 -5
  37. package/lib/contracts/socket.js +0 -11
  38. package/lib/controllers/api/file.js +0 -24
  39. package/lib/controllers/api/index.js +0 -13
  40. package/lib/controllers/index.js +0 -16
  41. package/lib/controllers/messaging/application.js +0 -72
  42. package/lib/controllers/messaging/database.js +0 -72
  43. package/lib/controllers/messaging/environment.js +0 -98
  44. package/lib/express.d.js +0 -5
  45. package/lib/index.js +0 -92
  46. package/lib/middlewares/access.js +0 -78
  47. package/lib/middlewares/authentication.js +0 -21
  48. package/lib/middlewares/file.js +0 -41
  49. package/lib/middlewares/index.js +0 -27
  50. package/lib/models/Application.js +0 -61
  51. package/lib/models/DatabaseHost.js +0 -62
  52. package/lib/models/EnvConnection.js +0 -41
  53. package/lib/models/index.js +0 -46
  54. package/lib/routes/index.js +0 -16
  55. package/lib/routes/messaging/index.js +0 -34
  56. package/lib/services/error.d.ts.map +0 -1
  57. package/lib/services/error.js +0 -52
  58. package/lib/services/express.js +0 -152
  59. package/lib/services/file.js +0 -65
  60. package/lib/services/index.js +0 -88
  61. package/lib/services/rabitmq.js +0 -102
  62. package/lib/services/redis.js +0 -60
  63. package/lib/services/security.js +0 -230
  64. package/lib/services/sequelize.js +0 -284
  65. package/lib/services/socket.js +0 -56
  66. package/lib/services/task.js +0 -165
  67. package/lib/utils/api.js +0 -50
  68. package/lib/utils/database.js +0 -157
  69. package/lib/utils/date.js +0 -28
  70. package/lib/utils/index.js +0 -60
  71. package/lib/utils/logger.js +0 -51
  72. package/lib/utils/session.js +0 -23
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _dateFns = require("date-fns");
8
- var _app = require("../app");
9
- var _controller = _interopRequireDefault(require("../app/controller"));
10
- var _http = require("../contracts/http");
11
- var _models = require("../models");
12
- var _error = require("../services/error");
13
- var _security = _interopRequireDefault(require("../services/security"));
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- class AccessMiddleware extends _controller.default {
16
- accessLevel = level => {
17
- return (req, res, next) => {
18
- if (!level.includes(req.auth.account.type)) {
19
- throw new _error.ApplicationHttpException({
20
- message: 'Nível de acesso não permitido para esta rota.',
21
- statusCode: _http.EHttpResponseCode.informationBlocked
22
- });
23
- }
24
- next();
25
- };
26
- };
27
- getTenant = async (req, res, next) => {
28
- const account = req.auth?.account;
29
- const tenantId = req.header('X-Exodus-Tenant-ID');
30
- const applicationId = req.header('X-Exodus-Application-ID');
31
- let envUuid = '';
32
-
33
- /* Aplicações */
34
- if (applicationId) {
35
- const application = await _models.Application.findOne({
36
- where: {
37
- token: applicationId
38
- }
39
- });
40
- if (!application) {
41
- throw new _error.ApplicationHttpException({
42
- message: 'Token de aplicação inválido',
43
- statusCode: _http.EHttpResponseCode.informationUnauthorized
44
- });
45
- } else if (!application.active) {
46
- throw new _error.ApplicationHttpException({
47
- message: 'Token desativado',
48
- statusCode: _http.EHttpResponseCode.informationBlocked
49
- });
50
- } else if ((0, _dateFns.isBefore)(application.expiresAt, new Date())) {
51
- throw new _error.ApplicationHttpException({
52
- message: 'Token expirado',
53
- statusCode: _http.EHttpResponseCode.informationBlocked
54
- });
55
- } else {
56
- //valido
57
- const data = await _security.default.singleton().verifySignature(applicationId, _security.default.singleton().getServicePublicKey());
58
- if (!data) {
59
- throw new _error.ApplicationHttpException({
60
- message: 'Token sem autênticidade.',
61
- statusCode: _http.EHttpResponseCode.informationBlocked
62
- });
63
- }
64
- envUuid = data.payload.envUuid;
65
- }
66
- } else if (tenantId) {
67
- envUuid = tenantId;
68
- }
69
- if (account && account.type != 'ADMINISTRATOR') {
70
- envUuid = account.envUuid;
71
- }
72
- req.tenant = {
73
- id: envUuid || _app.Core.settings.getDatabase().service.database
74
- };
75
- next();
76
- };
77
- }
78
- var _default = exports.default = AccessMiddleware;
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _expressJwt = require("express-jwt");
8
- var _app = require("../app");
9
- var _controller = _interopRequireDefault(require("../app/controller"));
10
- var _security = _interopRequireDefault(require("../services/security"));
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- class AuthenticationMiddleware extends _controller.default {
13
- decryptToken = (0, _expressJwt.expressjwt)({
14
- secret: async () => {
15
- return _security.default.singleton().getServicePublicKey().toPEM(false);
16
- },
17
- issuer: _app.Core.settings.getAuthentication().serviceIssuer,
18
- algorithms: ['RS256']
19
- });
20
- }
21
- var _default = exports.default = AuthenticationMiddleware;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _controller = _interopRequireDefault(require("../app/controller"));
8
- var _multer = _interopRequireDefault(require("multer"));
9
- var fs = _interopRequireWildcard(require("fs"));
10
- var _path = _interopRequireDefault(require("path"));
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 FileMiddleware extends _controller.default {
16
- storage;
17
- constructor() {
18
- super();
19
- this.initStorage();
20
- }
21
- initStorage() {
22
- this.storage = _multer.default.diskStorage({
23
- destination: async (req, file, cb) => {
24
- !fs.existsSync(_app.Core.settings.getAppication().filePaths.temporary) && fs.mkdirSync(_app.Core.settings.getAppication().filePaths.temporary, {
25
- recursive: true
26
- });
27
- cb(null, _app.Core.settings.getAppication().filePaths.temporary);
28
- },
29
- filename: (req, file, cb) => {
30
- const name = Date.now() + _path.default.extname(file.originalname);
31
- cb(null, name);
32
- }
33
- });
34
- }
35
- upload = field => {
36
- return (0, _multer.default)({
37
- storage: this.storage
38
- }).single(field);
39
- };
40
- }
41
- var _default = exports.default = FileMiddleware;
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "AccessMiddleware", {
7
- enumerable: true,
8
- get: function () {
9
- return _access.default;
10
- }
11
- });
12
- Object.defineProperty(exports, "AuthenticationMiddleware", {
13
- enumerable: true,
14
- get: function () {
15
- return _authentication.default;
16
- }
17
- });
18
- Object.defineProperty(exports, "FileMiddleware", {
19
- enumerable: true,
20
- get: function () {
21
- return _file.default;
22
- }
23
- });
24
- var _access = _interopRequireDefault(require("./access"));
25
- var _authentication = _interopRequireDefault(require("./authentication"));
26
- var _file = _interopRequireDefault(require("./file"));
27
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Application = void 0;
7
- var _sequelize = require("sequelize");
8
- var _database = require("../utils/database");
9
- class Application extends _sequelize.Model {}
10
- exports.Application = Application;
11
- Application.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- name: {
20
- type: _sequelize.DataTypes.STRING(200),
21
- allowNull: false
22
- },
23
- token: {
24
- type: _sequelize.DataTypes.TEXT,
25
- allowNull: false
26
- },
27
- key: {
28
- type: _sequelize.DataTypes.TEXT,
29
- allowNull: false
30
- },
31
- acess: {
32
- type: _sequelize.DataTypes.JSON(),
33
- allowNull: true
34
- },
35
- expiresAt: {
36
- type: _sequelize.DataTypes.DATE,
37
- allowNull: false
38
- },
39
- active: {
40
- type: _sequelize.DataTypes.BOOLEAN,
41
- defaultValue: true
42
- },
43
- comments: {
44
- type: _sequelize.DataTypes.STRING(255),
45
- allowNull: true
46
- },
47
- params: {
48
- type: _sequelize.DataTypes.JSON,
49
- defaultValue: {},
50
- allowNull: true
51
- }
52
- }, {
53
- tableName: 'applications',
54
- sequelize: _database.serviceDB,
55
- indexes: [{
56
- fields: ['name']
57
- }, {
58
- fields: ['token'],
59
- unique: true
60
- }]
61
- });
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DatabaseHost = void 0;
7
- var _sequelize = require("sequelize");
8
- var _database = require("../utils/database");
9
- class DatabaseHost extends _sequelize.Model {}
10
- exports.DatabaseHost = DatabaseHost;
11
- DatabaseHost.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- host: {
20
- type: _sequelize.DataTypes.STRING(200),
21
- allowNull: false
22
- },
23
- name: {
24
- type: _sequelize.DataTypes.STRING(200),
25
- allowNull: false
26
- },
27
- dialect: {
28
- type: _sequelize.DataTypes.ENUM('mysql', 'postgres', 'sqlite', 'mariadb', 'mssql', 'db2', 'snowflake', 'oracle'),
29
- allowNull: false
30
- },
31
- username: {
32
- type: _sequelize.DataTypes.STRING(100),
33
- allowNull: false
34
- },
35
- credential: {
36
- type: _sequelize.DataTypes.TEXT,
37
- allowNull: false
38
- },
39
- password: {
40
- type: _sequelize.DataTypes.TEXT,
41
- allowNull: false
42
- },
43
- active: {
44
- type: _sequelize.DataTypes.BOOLEAN,
45
- defaultValue: true
46
- },
47
- params: {
48
- type: _sequelize.DataTypes.JSON,
49
- defaultValue: {},
50
- allowNull: true
51
- }
52
- }, {
53
- tableName: 'database_hosts',
54
- sequelize: _database.serviceDB,
55
- indexes: [{
56
- fields: ['name'],
57
- unique: true
58
- }, {
59
- fields: ['host'],
60
- unique: true
61
- }]
62
- });
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.EnvDBHost = void 0;
7
- var _sequelize = require("sequelize");
8
- var _utils = require("../utils");
9
- class EnvDBHost extends _sequelize.Model {}
10
- exports.EnvDBHost = EnvDBHost;
11
- EnvDBHost.init({
12
- uuid: {
13
- type: _sequelize.DataTypes.UUID,
14
- defaultValue: _sequelize.DataTypes.UUIDV4,
15
- primaryKey: true,
16
- allowNull: false,
17
- autoIncrement: false
18
- },
19
- hostUuid: {
20
- type: _sequelize.DataTypes.UUID,
21
- allowNull: false
22
- },
23
- envUuid: {
24
- type: _sequelize.DataTypes.UUID,
25
- allowNull: false
26
- },
27
- envToken: {
28
- type: _sequelize.DataTypes.UUID,
29
- allowNull: false
30
- }
31
- }, {
32
- tableName: 'env_dbhost',
33
- sequelize: _utils.serviceDB,
34
- indexes: [{
35
- fields: ['envUuid'],
36
- unique: true
37
- }, {
38
- fields: ['envToken', 'hostUuid'],
39
- unique: true
40
- }]
41
- });
@@ -1,46 +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 _DatabaseHost = require("./DatabaseHost");
11
- Object.keys(_DatabaseHost).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] === _DatabaseHost[key]) return;
15
- Object.defineProperty(exports, key, {
16
- enumerable: true,
17
- get: function () {
18
- return _DatabaseHost[key];
19
- }
20
- });
21
- });
22
- var _EnvConnection = require("./EnvConnection");
23
- Object.keys(_EnvConnection).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] === _EnvConnection[key]) return;
27
- Object.defineProperty(exports, key, {
28
- enumerable: true,
29
- get: function () {
30
- return _EnvConnection[key];
31
- }
32
- });
33
- });
34
- var _Application = require("./Application");
35
- Object.keys(_Application).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] === _Application[key]) return;
39
- Object.defineProperty(exports, key, {
40
- enumerable: true,
41
- get: function () {
42
- return _Application[key];
43
- }
44
- });
45
- });
46
- const NativeModels = exports.NativeModels = [_DatabaseHost.DatabaseHost, _EnvConnection.EnvDBHost, _Application.Application];
@@ -1,16 +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
- });
@@ -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 +0,0 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/services/error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,cAAM,eAAgB,SAAQ,IAAI;;CAIjC;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,oBAAoB,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;gBAER,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,iBAAiB,CAAC;QAC/B,KAAK,CAAC,EAAE,oBAAoB,CAAC;QAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAUD,OAAO,CAAC,MAAM;CAKf;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,SAAgB,OAAO,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;gBAER,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAOxC,OAAO,CAAC,MAAM;CAKf"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ApplicationHttpException = exports.ApplicationException = void 0;
7
- var _logger = _interopRequireDefault(require("../utils/logger"));
8
- var _http = require("../contracts/http");
9
- var _core = _interopRequireDefault(require("../app/core"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- class ExodusErrorBase extends _core.default {
12
- constructor() {
13
- super();
14
- }
15
- }
16
- class ApplicationHttpException extends ExodusErrorBase {
17
- message;
18
- statusCode;
19
- level;
20
- data;
21
- error;
22
- constructor(data) {
23
- super();
24
- this.message = data.message;
25
- this.statusCode = data.statusCode || _http.EHttpResponseCode.iternalErro;
26
- this.level = data.level || 'error';
27
- this.data = data.data;
28
- this.error = data.error;
29
- this.handle();
30
- }
31
- handle() {
32
- (0, _logger.default)().warn(this.message, this.statusCode);
33
- (0, _logger.default)().warn(this.data);
34
- this.error && (0, _logger.default)().error(this.error);
35
- }
36
- }
37
- exports.ApplicationHttpException = ApplicationHttpException;
38
- class ApplicationException extends ExodusErrorBase {
39
- message;
40
- error;
41
- constructor(message, error) {
42
- super();
43
- this.message = message;
44
- this.error = error;
45
- this.handle();
46
- }
47
- handle() {
48
- this.log(`${this.message}`, 'danger');
49
- (0, _logger.default)().error(this.error);
50
- }
51
- }
52
- exports.ApplicationException = ApplicationException;
@@ -1,152 +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
- require("express-async-errors");
10
- var _expressRequestsLogger = _interopRequireDefault(require("express-requests-logger"));
11
- var http = _interopRequireWildcard(require("http"));
12
- var _qs = _interopRequireDefault(require("qs"));
13
- var _app = require("../app");
14
- var _service = _interopRequireDefault(require("../app/service"));
15
- var _http2 = require("../contracts/http");
16
- var _logger = _interopRequireDefault(require("../utils/logger"));
17
- var _error = require("./error");
18
- 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); }
19
- 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; }
20
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
- class ExpressService extends _service.default {
22
- server;
23
- mainRouter;
24
- async init() {
25
- if (!this.mainRouter) throw new _error.ApplicationException('Need router'); //!sem router
26
-
27
- const expss = (0, _express.default)();
28
- this.server = http.createServer(expss);
29
- expss.use('/public', _express.default.static(_app.Core.settings.getHttp().publicPath));
30
- expss.use((0, _expressRequestsLogger.default)({
31
- logger: (0, _logger.default)()
32
- }));
33
- expss.set('query parser', str => _qs.default.parse(str));
34
- expss.use(this.responseTypeMiddleware.bind(this));
35
- expss.use(_express.default.json({
36
- limit: '10mb'
37
- }));
38
- expss.use(_express.default.urlencoded({
39
- extended: true,
40
- limit: '10mb'
41
- }));
42
- expss.use((0, _cors.default)({
43
- origin: '*'
44
- }));
45
- expss.use(this.mainRouter);
46
- expss.use(this.handleAuthorizationFailure.bind(this));
47
- expss.use(this.handleNotFoud.bind(this));
48
- expss.use(this.handleRequestProcessFailure.bind(this));
49
- this.server.listen(_app.Core.settings.getAppication().port, () => {
50
- (0, _logger.default)().info(`servidor iniciado na porta: ${_app.Core.settings.getAppication().port}`);
51
- this.log(`🌍 Http Server Listering On: ${_app.Core.settings.getAppication().port}`, 'success');
52
- });
53
- }
54
- getHttpServer() {
55
- return this.server;
56
- }
57
- sendResponse(objResponse, res, next) {
58
- objResponse.timestamp = Date.now();
59
- if (!objResponse.code) objResponse.code = _http2.EHttpResponseCode.successfullyProcessedInformation;
60
- res.status(objResponse.code);
61
- if (objResponse.location) {
62
- res.location(objResponse.location);
63
- delete objResponse.location;
64
- }
65
- let FormulatedResponse;
66
- switch (_app.Core.settings.getHttp().formulation) {
67
- case 'direct':
68
- if (objResponse['data']) {
69
- FormulatedResponse = objResponse.data;
70
- } else {
71
- FormulatedResponse = objResponse;
72
- }
73
- break;
74
- case 'standart':
75
- FormulatedResponse = objResponse;
76
- break;
77
- default:
78
- FormulatedResponse = objResponse;
79
- break;
80
- }
81
- if (next) {
82
- res.write(JSON.stringify(FormulatedResponse));
83
- next();
84
- } else {
85
- res.send(JSON.stringify(FormulatedResponse));
86
- }
87
- }
88
- responseTypeMiddleware(req, res, next) {
89
- res.contentType('application/json');
90
- next();
91
- }
92
-
93
- //* Handlers
94
- handleNotFoud(req, res) {
95
- this.sendResponse({
96
- message: 'Endereço não encontrado',
97
- type: 'warning',
98
- status: false,
99
- code: _http2.EHttpResponseCode.informationNotFound
100
- }, res);
101
- }
102
- handleAuthorizationFailure(err, req, res, next) {
103
- if (err.name === 'UnauthorizedError') {
104
- throw new _error.ApplicationHttpException({
105
- message: 'Falha na autorização',
106
- statusCode: _http2.EHttpResponseCode.informationUnauthorized
107
- });
108
- } else {
109
- next(err);
110
- }
111
- }
112
- handleRequestProcessFailure = async (err, req, res, _) => {
113
- if (err instanceof _error.ApplicationHttpException) {
114
- return this.sendResponse({
115
- message: err.message,
116
- type: err.level,
117
- status: false,
118
- code: err.statusCode,
119
- data: err.data
120
- }, res);
121
- }
122
- this.sendResponse({
123
- message: 'Houve um erro ao acessar este recurso',
124
- type: 'error',
125
- status: false,
126
- code: 500
127
- }, res);
128
- new _error.ApplicationException('Erro não tratado em uma rota.', err);
129
- };
130
- async checkRequest(params) {
131
- let pass = true;
132
- const need = [];
133
- for (const [key, param] of Object.entries(params)) {
134
- if (!param || param === null || param.length < 1 || typeof param === 'string' && param === '' || typeof param === 'object' && Object.values(param).length < 1) {
135
- pass = false;
136
- need.push(key);
137
- }
138
- }
139
- if (!pass) throw new _error.ApplicationHttpException({
140
- message: 'Requisição incompleta',
141
- statusCode: _http2.EHttpResponseCode.incompleteRequest,
142
- level: 'error',
143
- data: {
144
- need
145
- }
146
- });
147
- }
148
- registerRouter(router) {
149
- this.mainRouter = router;
150
- }
151
- }
152
- var _default = exports.default = ExpressService;