@in.pulse-crm/sdk 1.2.3 → 1.3.1

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/dist/index.d.ts CHANGED
@@ -4,4 +4,6 @@ import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
5
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
6
  import ReportSDK, { ChatReport, ChatReportFileFormat, GenerateChatReportOptions } from "./report";
7
- export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatReport, ChatReportFileFormat, GenerateChatReportOptions };
7
+ import SocketClientSDK, { JoinChatFunction, JoinRoomFunction, ListenEventFunction } from "./socket-client";
8
+ import SocketServerSDK, { EmitFunction, InstanceName, SocketAdminRoom, SocketChatReportsRoom, SocketChatRoom, SocketEventType, SocketMonitorRoom, SocketRoomType } from "./socket-server";
9
+ export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatReport, ChatReportFileFormat, GenerateChatReportOptions, SocketClientSDK, JoinChatFunction, JoinRoomFunction, ListenEventFunction, SocketServerSDK, EmitFunction, InstanceName, SocketAdminRoom, SocketChatReportsRoom, SocketChatRoom, SocketEventType, SocketMonitorRoom, SocketRoomType };
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.ChatReportFileFormat = exports.ReportSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
39
+ exports.SocketEventType = exports.SocketServerSDK = exports.SocketClientSDK = exports.ChatReportFileFormat = exports.ReportSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
40
40
  const auth_1 = __importDefault(require("./auth"));
41
41
  exports.AuthSDK = auth_1.default;
42
42
  const file_1 = __importStar(require("./file"));
@@ -50,3 +50,8 @@ Object.defineProperty(exports, "UserRole", { enumerable: true, get: function ()
50
50
  const report_1 = __importStar(require("./report"));
51
51
  exports.ReportSDK = report_1.default;
52
52
  Object.defineProperty(exports, "ChatReportFileFormat", { enumerable: true, get: function () { return report_1.ChatReportFileFormat; } });
53
+ const socket_client_1 = __importDefault(require("./socket-client"));
54
+ exports.SocketClientSDK = socket_client_1.default;
55
+ const socket_server_1 = __importStar(require("./socket-server"));
56
+ exports.SocketServerSDK = socket_server_1.default;
57
+ Object.defineProperty(exports, "SocketEventType", { enumerable: true, get: function () { return socket_server_1.SocketEventType; } });
@@ -0,0 +1,91 @@
1
+ import { Socket } from "socket.io-client";
2
+ import { PhoneNumber } from "@in.pulse-crm/utils";
3
+ import { ChatId, NotImplemented, QRCode, SocketEventType, SocketRoomType } from "./socket-server";
4
+ /**
5
+ * Função para entrar em uma sala de socket.
6
+ */
7
+ export type JoinRoomFunction = {
8
+ (room: SocketRoomType): void;
9
+ };
10
+ /**
11
+ * Função para entrar em um chat de socket.
12
+ */
13
+ export type JoinChatFunction = {
14
+ (phone: PhoneNumber): void;
15
+ };
16
+ /**
17
+ * Função para escutar eventos de socket.
18
+ */
19
+ export type ListenEventFunction = {
20
+ /**
21
+ * Escuta evento de mensagem
22
+ * Ainda não implementado.
23
+ */
24
+ (event: SocketEventType.MESSAGE, listener: (data: NotImplemented) => void): void;
25
+ /**
26
+ * Escuta evento de edição de mensagem
27
+ * Ainda não implementado.
28
+ */
29
+ (event: SocketEventType.MESSAGE_EDIT, listener: (data: NotImplemented) => void): void;
30
+ /**
31
+ * Escuta evento de status de mensagem
32
+ * Ainda não implementado.
33
+ */
34
+ (event: SocketEventType.MESSAGE_STATUS, listener: (data: NotImplemented) => void): void;
35
+ /**
36
+ * Escuta evento de novo chat
37
+ * Ainda não implementado.
38
+ */
39
+ (event: SocketEventType.NEW_CHAT, listener: (data: NotImplemented) => void): void;
40
+ /**
41
+ * Escuta evento de chat finalizado
42
+ * @trigger Quando um chat é finalizado
43
+ * @target Sala de monitoria e ao atendente do chat
44
+ * @data Um número contendo o ID do chat finalizado
45
+ */
46
+ (event: SocketEventType.CHAT_FINISHED, listener: (chatId: ChatId) => void): void;
47
+ /**
48
+ * Escuta evento de notificação
49
+ * @trigger Quando uma notificação é enviada
50
+ * @target Sala de administração do setor
51
+ */
52
+ (event: SocketEventType.NOTIFICATION, listener: (notification: NotImplemented) => void): void;
53
+ /**
54
+ * Escuta evento de QR Code
55
+ * @trigger Quando um QR Code é gerado
56
+ * @target Sala de administração do setor
57
+ */
58
+ (event: SocketEventType.QR_CODE, listener: (qr: QRCode) => void): void;
59
+ };
60
+ /**
61
+ * Classe para consumo dos eventos de socket.
62
+ */
63
+ export default class SocketClientSDK {
64
+ private readonly io;
65
+ constructor(io: Socket);
66
+ /**
67
+ * Escuta eventos de socket.
68
+ *
69
+ * @param event - O tipo de evento a ser escutado.
70
+ * @param listener - A função a ser chamada quando o evento ocorrer.
71
+ */
72
+ on: ListenEventFunction;
73
+ /**
74
+ * Entra em uma sala de socket.
75
+ *
76
+ * @param room - O tipo de sala a ser ingressada.
77
+ */
78
+ joinRoom: JoinRoomFunction;
79
+ /**
80
+ * Entra em um chat de socket.
81
+ *
82
+ * @param phone - O número de telefone do chat a ser ingressado.
83
+ */
84
+ joinChat: JoinChatFunction;
85
+ /**
86
+ * Define o token de autenticação para o socket.
87
+ *
88
+ * @param token - O token de autenticação.
89
+ */
90
+ setAuth(token: string): void;
91
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const socket_server_1 = require("./socket-server");
4
+ /**
5
+ * Classe para consumo dos eventos de socket.
6
+ */
7
+ class SocketClientSDK {
8
+ io;
9
+ constructor(io) {
10
+ this.io = io;
11
+ this.on(socket_server_1.SocketEventType.CHAT_FINISHED, (chatId) => {
12
+ console.log(`Chat ${chatId} finalizado.`);
13
+ });
14
+ }
15
+ /**
16
+ * Escuta eventos de socket.
17
+ *
18
+ * @param event - O tipo de evento a ser escutado.
19
+ * @param listener - A função a ser chamada quando o evento ocorrer.
20
+ */
21
+ on = (event, listener) => {
22
+ this.io.on(event, listener);
23
+ };
24
+ /**
25
+ * Entra em uma sala de socket.
26
+ *
27
+ * @param room - O tipo de sala a ser ingressada.
28
+ */
29
+ joinRoom = (room) => {
30
+ this.io.emit("join", `${room}`);
31
+ };
32
+ /**
33
+ * Entra em um chat de socket.
34
+ *
35
+ * @param phone - O número de telefone do chat a ser ingressado.
36
+ */
37
+ joinChat = (phone) => {
38
+ this.io.emit("join", `chat:${phone}`);
39
+ };
40
+ /**
41
+ * Define o token de autenticação para o socket.
42
+ *
43
+ * @param token - O token de autenticação.
44
+ */
45
+ setAuth(token) {
46
+ this.io.auth = { token: token ? `Bearer ${token}` : null };
47
+ }
48
+ }
49
+ exports.default = SocketClientSDK;
@@ -0,0 +1,78 @@
1
+ import { PhoneNumber } from "@in.pulse-crm/utils";
2
+ import { AxiosInstance } from "axios";
3
+ /**
4
+ * Tipos de eventos de socket.
5
+ */
6
+ export declare enum SocketEventType {
7
+ MESSAGE = "message",
8
+ MESSAGE_EDIT = "message_edit",
9
+ MESSAGE_STATUS = "message_status",
10
+ NEW_CHAT = "new_chat",
11
+ CHAT_FINISHED = "chat_finished",
12
+ NOTIFICATION = "notification",
13
+ QR_CODE = "qr_code"
14
+ }
15
+ /**
16
+ * Sala de chat, recebe todos eventos de um chat específico.
17
+ */
18
+ export type SocketChatRoom = `chat:${PhoneNumber}`;
19
+ /**
20
+ * Sala de administrador, recebe eventos de adminstrador de um setor específico.
21
+ */
22
+ export type SocketAdminRoom = `sector:${SectorId}:admin`;
23
+ /**
24
+ * Sala de monitoria, recebe eventos de monitoria de um setor específico.
25
+ */
26
+ export type SocketMonitorRoom = `sector:${SectorId}:monitor`;
27
+ /**
28
+ * Sala de relatórios de chat, recebe eventos de relatórios de chat de um setor específico.
29
+ */
30
+ export type SocketChatReportsRoom = `sector:${SectorId}:chat_reports`;
31
+ /**
32
+ * Tipo de sala de socket.
33
+ */
34
+ export type SocketRoomType = SocketChatRoom | SocketAdminRoom | SocketChatReportsRoom | SocketMonitorRoom;
35
+ /**
36
+ * Ainda não implementado.
37
+ */
38
+ export type NotImplemented = unknown;
39
+ /**
40
+ * String representando um QR Code.
41
+ */
42
+ export type QRCode = string;
43
+ /**
44
+ * Id de um chat.
45
+ */
46
+ export type ChatId = number;
47
+ /**
48
+ * Id de um setor.
49
+ */
50
+ export type SectorId = number;
51
+ /**
52
+ * Nome de uma instância.
53
+ */
54
+ export type InstanceName = string;
55
+ export type EmitFunction = {
56
+ (instanceName: string, room: SocketChatRoom | SocketMonitorRoom, event: SocketEventType.NEW_CHAT, value: NotImplemented): void;
57
+ (instanceName: string, room: SocketChatRoom | SocketMonitorRoom, event: SocketEventType.CHAT_FINISHED, value: ChatId): void;
58
+ (instanceName: string, room: SocketAdminRoom, event: SocketEventType.QR_CODE, value: QRCode): void;
59
+ (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE, value: NotImplemented): void;
60
+ (instanceName: string, room: SocketAdminRoom, event: SocketEventType.NOTIFICATION, value: NotImplemented): void;
61
+ (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_EDIT, value: NotImplemented): void;
62
+ (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_STATUS, value: NotImplemented): void;
63
+ };
64
+ /**
65
+ * Classe para manipulação de eventos de socket.
66
+ */
67
+ export default class SocketServerSDK {
68
+ private readonly httpClient;
69
+ constructor(httpClient: AxiosInstance);
70
+ /**
71
+ * Emite um evento de socket.
72
+ * @param instanceName - O nome da instância.
73
+ * @param room - A sala de destino.
74
+ * @param event - O tipo do evento.
75
+ * @param value - O valor do evento.
76
+ */
77
+ emit: EmitFunction;
78
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SocketEventType = void 0;
4
+ /**
5
+ * Tipos de eventos de socket.
6
+ */
7
+ var SocketEventType;
8
+ (function (SocketEventType) {
9
+ SocketEventType["MESSAGE"] = "message";
10
+ SocketEventType["MESSAGE_EDIT"] = "message_edit";
11
+ SocketEventType["MESSAGE_STATUS"] = "message_status";
12
+ SocketEventType["NEW_CHAT"] = "new_chat";
13
+ SocketEventType["CHAT_FINISHED"] = "chat_finished";
14
+ SocketEventType["NOTIFICATION"] = "notification";
15
+ SocketEventType["QR_CODE"] = "qr_code";
16
+ })(SocketEventType || (exports.SocketEventType = SocketEventType = {}));
17
+ /**
18
+ * Classe para manipulação de eventos de socket.
19
+ */
20
+ class SocketServerSDK {
21
+ httpClient;
22
+ constructor(httpClient) {
23
+ this.httpClient = httpClient;
24
+ }
25
+ /**
26
+ * Emite um evento de socket.
27
+ * @param instanceName - O nome da instância.
28
+ * @param room - A sala de destino.
29
+ * @param event - O tipo do evento.
30
+ * @param value - O valor do evento.
31
+ */
32
+ emit = async (instanceName, room, event, value) => {
33
+ await this.httpClient.post(`/emit/${instanceName}/${room}/${event}`, value);
34
+ };
35
+ }
36
+ exports.default = SocketServerSDK;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@in.pulse-crm/sdk",
3
- "version": "1.2.3",
3
+ "version": "1.3.1",
4
4
  "description": "SDKs for abstraction of api consumption of in.pulse-crm application",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -23,8 +23,9 @@
23
23
  "author": "Renan G. Dutra <r.granatodutra@gmail.com>",
24
24
  "license": "ISC",
25
25
  "dependencies": {
26
- "@in.pulse-crm/utils": "^1.0.0",
27
- "axios": "^1.8.3"
26
+ "@in.pulse-crm/utils": "^1.3.0",
27
+ "axios": "^1.8.3",
28
+ "socket.io-client": "^4.8.1"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@types/node": "^22.13.10",
package/src/index.ts CHANGED
@@ -4,6 +4,19 @@ import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
5
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
6
  import ReportSDK, { ChatReport, ChatReportFileFormat, GenerateChatReportOptions } from "./report";
7
+ import SocketClientSDK, { JoinChatFunction, JoinRoomFunction, ListenEventFunction } from "./socket-client";
8
+ import
9
+ SocketServerSDK,
10
+ {
11
+ EmitFunction,
12
+ InstanceName,
13
+ SocketAdminRoom,
14
+ SocketChatReportsRoom,
15
+ SocketChatRoom,
16
+ SocketEventType,
17
+ SocketMonitorRoom,
18
+ SocketRoomType
19
+ } from "./socket-server";
7
20
 
8
21
  export {
9
22
  AuthSDK,
@@ -25,5 +38,18 @@ export {
25
38
  ReportSDK,
26
39
  ChatReport,
27
40
  ChatReportFileFormat,
28
- GenerateChatReportOptions
41
+ GenerateChatReportOptions,
42
+ SocketClientSDK,
43
+ JoinChatFunction,
44
+ JoinRoomFunction,
45
+ ListenEventFunction,
46
+ SocketServerSDK,
47
+ EmitFunction,
48
+ InstanceName,
49
+ SocketAdminRoom,
50
+ SocketChatReportsRoom,
51
+ SocketChatRoom,
52
+ SocketEventType,
53
+ SocketMonitorRoom,
54
+ SocketRoomType
29
55
  };
@@ -0,0 +1,117 @@
1
+ import { Socket } from "socket.io-client";
2
+ import { PhoneNumber } from "@in.pulse-crm/utils";
3
+ import { ChatId, NotImplemented, QRCode, SocketEventType, SocketRoomType } from "./socket-server";
4
+
5
+ /**
6
+ * Função para entrar em uma sala de socket.
7
+ */
8
+ export type JoinRoomFunction = {
9
+ (room: SocketRoomType): void;
10
+ };
11
+
12
+ /**
13
+ * Função para entrar em um chat de socket.
14
+ */
15
+ export type JoinChatFunction = {
16
+ (phone: PhoneNumber): void;
17
+ };
18
+
19
+ /**
20
+ * Função para escutar eventos de socket.
21
+ */
22
+ export type ListenEventFunction = {
23
+ /**
24
+ * Escuta evento de mensagem
25
+ * Ainda não implementado.
26
+ */
27
+ (event: SocketEventType.MESSAGE, listener: (data: NotImplemented) => void): void;
28
+
29
+ /**
30
+ * Escuta evento de edição de mensagem
31
+ * Ainda não implementado.
32
+ */
33
+ (event: SocketEventType.MESSAGE_EDIT, listener: (data: NotImplemented) => void): void;
34
+
35
+ /**
36
+ * Escuta evento de status de mensagem
37
+ * Ainda não implementado.
38
+ */
39
+ (event: SocketEventType.MESSAGE_STATUS, listener: (data: NotImplemented) => void): void;
40
+
41
+ /**
42
+ * Escuta evento de novo chat
43
+ * Ainda não implementado.
44
+ */
45
+ (event: SocketEventType.NEW_CHAT, listener: (data: NotImplemented) => void): void;
46
+
47
+ /**
48
+ * Escuta evento de chat finalizado
49
+ * @trigger Quando um chat é finalizado
50
+ * @target Sala de monitoria e ao atendente do chat
51
+ * @data Um número contendo o ID do chat finalizado
52
+ */
53
+ (event: SocketEventType.CHAT_FINISHED, listener: (chatId: ChatId) => void): void;
54
+
55
+ /**
56
+ * Escuta evento de notificação
57
+ * @trigger Quando uma notificação é enviada
58
+ * @target Sala de administração do setor
59
+ */
60
+ (event: SocketEventType.NOTIFICATION, listener: (notification: NotImplemented) => void): void;
61
+
62
+ /**
63
+ * Escuta evento de QR Code
64
+ * @trigger Quando um QR Code é gerado
65
+ * @target Sala de administração do setor
66
+ */
67
+ (event: SocketEventType.QR_CODE, listener: (qr: QRCode) => void): void;
68
+ }
69
+
70
+ /**
71
+ * Classe para consumo dos eventos de socket.
72
+ */
73
+ export default class SocketClientSDK {
74
+ constructor(private readonly io: Socket) {
75
+
76
+ this.on(SocketEventType.CHAT_FINISHED, (chatId) => {
77
+ console.log(`Chat ${chatId} finalizado.`);
78
+ });
79
+ }
80
+
81
+ /**
82
+ * Escuta eventos de socket.
83
+ *
84
+ * @param event - O tipo de evento a ser escutado.
85
+ * @param listener - A função a ser chamada quando o evento ocorrer.
86
+ */
87
+ public on: ListenEventFunction = (event, listener) => {
88
+ this.io.on(event, listener);
89
+ }
90
+
91
+ /**
92
+ * Entra em uma sala de socket.
93
+ *
94
+ * @param room - O tipo de sala a ser ingressada.
95
+ */
96
+ public joinRoom: JoinRoomFunction = (room) => {
97
+ this.io.emit("join", `${room}`);
98
+ }
99
+
100
+ /**
101
+ * Entra em um chat de socket.
102
+ *
103
+ * @param phone - O número de telefone do chat a ser ingressado.
104
+ */
105
+ public joinChat: JoinChatFunction = (phone) => {
106
+ this.io.emit("join", `chat:${phone}`);
107
+ }
108
+
109
+ /**
110
+ * Define o token de autenticação para o socket.
111
+ *
112
+ * @param token - O token de autenticação.
113
+ */
114
+ public setAuth(token: string) {
115
+ this.io.auth = { token: token ? `Bearer ${token}` : null };
116
+ }
117
+ }
@@ -0,0 +1,129 @@
1
+ import { PhoneNumber } from "@in.pulse-crm/utils";
2
+ import { AxiosInstance } from "axios";
3
+
4
+ /**
5
+ * Tipos de eventos de socket.
6
+ */
7
+ export enum SocketEventType {
8
+ MESSAGE = "message",
9
+ MESSAGE_EDIT = "message_edit",
10
+ MESSAGE_STATUS = "message_status",
11
+ NEW_CHAT = "new_chat",
12
+ CHAT_FINISHED = "chat_finished",
13
+ NOTIFICATION = "notification",
14
+ QR_CODE = "qr_code"
15
+ }
16
+
17
+ /**
18
+ * Sala de chat, recebe todos eventos de um chat específico.
19
+ */
20
+ export type SocketChatRoom = `chat:${PhoneNumber}`;
21
+
22
+ /**
23
+ * Sala de administrador, recebe eventos de adminstrador de um setor específico.
24
+ */
25
+ export type SocketAdminRoom = `sector:${SectorId}:admin`;
26
+
27
+ /**
28
+ * Sala de monitoria, recebe eventos de monitoria de um setor específico.
29
+ */
30
+ export type SocketMonitorRoom = `sector:${SectorId}:monitor`;
31
+
32
+ /**
33
+ * Sala de relatórios de chat, recebe eventos de relatórios de chat de um setor específico.
34
+ */
35
+ export type SocketChatReportsRoom = `sector:${SectorId}:chat_reports`;
36
+
37
+ /**
38
+ * Tipo de sala de socket.
39
+ */
40
+ export type SocketRoomType = SocketChatRoom | SocketAdminRoom | SocketChatReportsRoom | SocketMonitorRoom;
41
+
42
+ /**
43
+ * Ainda não implementado.
44
+ */
45
+ export type NotImplemented = unknown;
46
+
47
+ /**
48
+ * String representando um QR Code.
49
+ */
50
+ export type QRCode = string;
51
+
52
+ /**
53
+ * Id de um chat.
54
+ */
55
+ export type ChatId = number;
56
+
57
+ /**
58
+ * Id de um setor.
59
+ */
60
+ export type SectorId = number;
61
+
62
+ /**
63
+ * Nome de uma instância.
64
+ */
65
+ export type InstanceName = string;
66
+
67
+ export type EmitFunction = {
68
+ (
69
+ instanceName: string,
70
+ room: SocketChatRoom | SocketMonitorRoom,
71
+ event: SocketEventType.NEW_CHAT,
72
+ value: NotImplemented
73
+ ): void;
74
+ (
75
+ instanceName: string,
76
+ room: SocketChatRoom | SocketMonitorRoom,
77
+ event: SocketEventType.CHAT_FINISHED,
78
+ value: ChatId
79
+ ): void;
80
+ (
81
+ instanceName: string,
82
+ room: SocketAdminRoom,
83
+ event: SocketEventType.QR_CODE,
84
+ value: QRCode
85
+ ): void;
86
+ (
87
+ instanceName: string,
88
+ room: SocketChatRoom,
89
+ event: SocketEventType.MESSAGE,
90
+ value: NotImplemented
91
+ ): void;
92
+ (
93
+ instanceName: string,
94
+ room: SocketAdminRoom,
95
+ event: SocketEventType.NOTIFICATION,
96
+ value: NotImplemented
97
+ ): void;
98
+ (
99
+ instanceName: string,
100
+ room: SocketChatRoom,
101
+ event: SocketEventType.MESSAGE_EDIT,
102
+ value: NotImplemented
103
+ ): void;
104
+ (
105
+ instanceName: string,
106
+ room: SocketChatRoom,
107
+ event: SocketEventType.MESSAGE_STATUS,
108
+ value: NotImplemented
109
+ ): void;
110
+ };
111
+
112
+ /**
113
+ * Classe para manipulação de eventos de socket.
114
+ */
115
+ export default class SocketServerSDK {
116
+
117
+ constructor(private readonly httpClient: AxiosInstance) { }
118
+
119
+ /**
120
+ * Emite um evento de socket.
121
+ * @param instanceName - O nome da instância.
122
+ * @param room - A sala de destino.
123
+ * @param event - O tipo do evento.
124
+ * @param value - O valor do evento.
125
+ */
126
+ public emit: EmitFunction = async (instanceName, room, event, value) => {
127
+ await this.httpClient.post(`/emit/${instanceName}/${room}/${event}`, value);
128
+ }
129
+ }