@webitel/chat-web-sdk 0.0.7 → 0.0.8

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
@@ -8,7 +8,7 @@ export { type IMessage, // Message class
8
8
  type MessageHistorySearchParams, type MessageHistorySearchResult, type MessageModel, // Message backend response type
9
9
  useMessagesService, } from './modules/messages';
10
10
  export { ChatsSocketMessage, // enum for socket message types
11
- createChatsSocketClient, } from './modules/socket';
11
+ createChatsSocketClient, ChatsSocketConnectionStatus, } from './modules/socket';
12
12
  export { type IThread, // Thread class
13
13
  type ThreadModel, // Thread backend response type
14
14
  type ThreadSearchParams, type ThreadSearchResult, useThreadsService, } from './modules/threads';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAAE,sDAAsD;AACzE,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEN,mBAAmB,EAEnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,uBAAuB,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,KAAK,YAAY,EAAE,gCAAgC;AACnD,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAAE,gBAAgB;AAC/B,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,KAAK,QAAQ,EAAE,gBAAgB;AAC/B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAAE,gCAAgC;AAEnD,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAAE,gCAAgC;AACpD,uBAAuB,GAIvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,OAAO,EAAE,eAAe;AAC7B,KAAK,WAAW,EAAE,+BAA+B;AACjD,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAAE,sDAAsD;AACzE,iBAAiB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEN,mBAAmB,EAEnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,uBAAuB,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,KAAK,YAAY,EAAE,gCAAgC;AACnD,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAAE,gBAAgB;AAC/B,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,KAAK,QAAQ,EAAE,gBAAgB;AAC/B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAAE,gCAAgC;AAEnD,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAAE,gCAAgC;AACpD,uBAAuB,EACvB,2BAA2B,GAI3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,KAAK,OAAO,EAAE,eAAe;AAC7B,KAAK,WAAW,EAAE,+BAA+B;AACjD,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GACjB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -2167,6 +2167,7 @@ function mr({ name: e, payload: t }, { serviceConfig: n }) {
2167
2167
  //#region src/modules/socket/classes/ChatsSoketClient.ts
2168
2168
  var hr = class {
2169
2169
  emitter = sr();
2170
+ stateEmitter = sr();
2170
2171
  socketConfig;
2171
2172
  serviceConfig;
2172
2173
  ws = null;
@@ -2177,31 +2178,36 @@ var hr = class {
2177
2178
  get connectionState() {
2178
2179
  return this.wsConnectionState;
2179
2180
  }
2181
+ setConnectionState(e) {
2182
+ let t = this.wsConnectionState;
2183
+ t !== e && (this.wsConnectionState = e, this.stateEmitter.emit(e, { previous: t }));
2184
+ }
2180
2185
  async connect() {
2181
- this.wsConnectionState = $.Connecting;
2182
- let e = new WebSocket(new URL(this.socketConfig.baseUrl).toString());
2183
- this.ws = e, setTimeout(() => {
2184
- e.send(JSON.stringify({ "x-webitel-access": this.socketConfig.accessToken }));
2185
- }, 1e3), this.ws.onopen = () => {
2186
- this.wsConnectionState = $.Connected;
2187
- }, this.ws.onerror = () => {
2188
- this.wsConnectionState = $.Error;
2189
- }, this.ws.onclose = () => {
2190
- this.wsConnectionState = $.Disconnected, this.ws = null;
2191
- }, this.ws.onmessage = (e) => {
2192
- let { eventName: t, eventPayload: n } = pr(r(JSON.parse(e.data), [A()]).payload, { serviceConfig: this.serviceConfig });
2193
- this.emitter.emit(t, n);
2194
- };
2186
+ return new Promise((e, t) => {
2187
+ this.setConnectionState($.Connecting), this.ws = new WebSocket(new URL(this.socketConfig.baseUrl).toString()), this.ws.onopen = () => {
2188
+ this.setConnectionState($.Connected), this.ws.send(JSON.stringify({ "x-webitel-access": this.socketConfig.accessToken }));
2189
+ }, this.ws.onerror = () => {
2190
+ this.setConnectionState($.Error), t(/* @__PURE__ */ Error("failed to connect to socket"));
2191
+ }, this.ws.onclose = () => {
2192
+ this.setConnectionState($.Disconnected), this.ws = null, t(/* @__PURE__ */ Error("socket disconnected"));
2193
+ }, this.ws.onmessage = (t) => {
2194
+ let { eventName: n, eventPayload: i } = pr(r(JSON.parse(t.data), [A()]).payload, { serviceConfig: this.serviceConfig });
2195
+ n === Q.Connected && e(), this.emitter.emit(n, i);
2196
+ };
2197
+ });
2195
2198
  }
2196
2199
  async reconnect() {
2197
2200
  throw Error("Not implemented");
2198
2201
  }
2199
2202
  async disconnect() {
2200
- this.ws?.close(), this.wsConnectionState = $.Disconnected, this.ws = null;
2203
+ this.ws?.close(), this.setConnectionState($.Disconnected), this.ws = null;
2201
2204
  }
2202
- on(e, t) {
2205
+ onMessage(e, t) {
2203
2206
  this.emitter.on(e, t);
2204
2207
  }
2208
+ onState(e, t) {
2209
+ this.stateEmitter.on(e, t);
2210
+ }
2205
2211
  };
2206
2212
  function gr({ socketConfig: e, serviceConfig: t }) {
2207
2213
  return new hr({
@@ -2227,6 +2233,6 @@ function xr(e) {
2227
2233
  return { fetchThreads: (t) => br(e, t ?? {}) };
2228
2234
  }
2229
2235
  //#endregion
2230
- export { Q as ChatsSocketMessage, gr as createChatsSocketClient, Hn as createServiceConfig, Wn as createSocketConfig, le as useAccountService, or as useContactsService, Z as useMessagesService, xr as useThreadsService };
2236
+ export { $ as ChatsSocketConnectionStatus, Q as ChatsSocketMessage, gr as createChatsSocketClient, Hn as createServiceConfig, Wn as createSocketConfig, le as useAccountService, or as useContactsService, Z as useMessagesService, xr as useThreadsService };
2231
2237
 
2232
2238
  //# sourceMappingURL=index.js.map