exodus-framework 2.1.1050 → 2.1.1051

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.
@@ -6,6 +6,8 @@ declare class SSEHandler extends System {
6
6
  protected response: Response;
7
7
  protected side: eExecutionSide;
8
8
  protected active: boolean;
9
+ protected security: boolean;
10
+ private secretKey;
9
11
  protected ticketInterval: number;
10
12
  private tickInterval;
11
13
  constructor(request: Request, response: Response);
@@ -18,8 +20,14 @@ declare class SSEHandler extends System {
18
20
  getSide(): eExecutionSide;
19
21
  getActive(): boolean;
20
22
  protected getTicketInterval(): number;
23
+ /**
24
+ * Envia dados através do SSE (Server-Sent Events)
25
+ * @param event Nome do evento
26
+ * @param data Dados a serem enviados (serão criptografados se security=true)
27
+ */
21
28
  protected send(event: string, data: any): void;
22
29
  static handle(): (request: Request, res: Response) => Promise<void>;
30
+ private encryptData;
23
31
  }
24
32
  export default SSEHandler;
25
33
  //# sourceMappingURL=ssehandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssehandler.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/ssehandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,cAAM,UAAW,SAAQ,MAAM;IAO3B,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAP9B,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,YAAY,CAAwB;gBAGhC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ;IAKvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAiBjC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMtC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAG9B,OAAO;IAGP,SAAS;IAGhB,SAAS,CAAC,iBAAiB;IAI3B,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;WAOzB,MAAM,cACK,OAAO,OAAO,QAAQ;CAQhD;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ssehandler.d.ts","sourceRoot":"","sources":["../../../../src/app/classes/socket/ssehandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,MAAM,MAAM,WAAW,CAAC;AAG/B,cAAM,UAAW,SAAQ,MAAM;IAS3B,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAT9B,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,YAAY,CAAwB;gBAGhC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ;IAKvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAiBjC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAgBtC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAUjC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAG9B,OAAO;IAGP,SAAS;IAGhB,SAAS,CAAC,iBAAiB;IAI3B;;;;OAIG;IACH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;WAazB,MAAM,cACK,OAAO,OAAO,QAAQ;IAS/C,OAAO,CAAC,WAAW;CAsBpB;AAED,eAAe,UAAU,CAAC"}
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _core = require("../../../contracts/core");
8
8
  var _system = _interopRequireDefault(require("../system"));
9
+ var _crypto = _interopRequireDefault(require("crypto"));
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  class SSEHandler extends _system.default {
11
12
  side;
12
13
  active;
14
+ security;
15
+ secretKey;
13
16
  ticketInterval;
14
17
  tickInterval;
15
18
  constructor(request, response) {
@@ -20,6 +23,7 @@ class SSEHandler extends _system.default {
20
23
  onInit() {
21
24
  this.side = _core.eExecutionSide.ANY;
22
25
  this.active = true;
26
+ this.security = false;
23
27
  this.ticketInterval = 3000;
24
28
  }
25
29
  onConnect() {
@@ -37,6 +41,9 @@ class SSEHandler extends _system.default {
37
41
  });
38
42
  }
39
43
  onAfterConnect() {
44
+ if (this.security) {
45
+ this.secretKey = _crypto.default.pbkdf2Sync(this.request.auth.account.uuid, this.request.tenant.id, 100000, 32, 'sha256');
46
+ }
40
47
  this.tickInterval = setInterval(() => {
41
48
  this.onTick();
42
49
  }, this.ticketInterval);
@@ -69,10 +76,20 @@ class SSEHandler extends _system.default {
69
76
  getTicketInterval() {
70
77
  return this.ticketInterval;
71
78
  }
79
+
80
+ /**
81
+ * Envia dados através do SSE (Server-Sent Events)
82
+ * @param event Nome do evento
83
+ * @param data Dados a serem enviados (serão criptografados se security=true)
84
+ */
72
85
  send(event, data) {
73
86
  if (!this.response.destroyed) {
87
+ let dataToSend = data;
88
+ if (this.security && this.secretKey) {
89
+ dataToSend = this.encryptData(data);
90
+ }
74
91
  this.response.write(`event: ${event}\n`);
75
- this.response.write(`data: ${JSON.stringify(data)}\n\n`);
92
+ this.response.write(`data: ${JSON.stringify(dataToSend)}\n\n`);
76
93
  }
77
94
  }
78
95
  static handle() {
@@ -83,5 +100,25 @@ class SSEHandler extends _system.default {
83
100
  await handler.onAfterConnect();
84
101
  };
85
102
  }
103
+ encryptData(data) {
104
+ if (this.security && this.secretKey) {
105
+ try {
106
+ const key = new Uint8Array(this.secretKey);
107
+ const iv = _crypto.default.randomBytes(16);
108
+ const cipher = _crypto.default.createCipheriv('aes-256-cbc', key, new Uint8Array(iv));
109
+ let encrypted = cipher.update(JSON.stringify(data), 'utf8', 'hex');
110
+ encrypted += cipher.final('hex');
111
+ return {
112
+ encrypted,
113
+ iv: iv.toString('hex')
114
+ };
115
+ } catch (error) {
116
+ console.warn('SSE encryption failed:', error);
117
+ return data;
118
+ }
119
+ } else {
120
+ return data;
121
+ }
122
+ }
86
123
  }
87
124
  var _default = exports.default = SSEHandler;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.1.1050",
3
+ "version": "2.1.1051",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",