@viewberapp/chat 0.0.36 → 0.0.37

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/API.d.ts CHANGED
@@ -5,9 +5,17 @@ export interface ConstructApiParams {
5
5
  axios: AxiosInstance;
6
6
  jwtToken?: string;
7
7
  getChatMessagesRoute: (chatId: number) => string;
8
+ getChatAblyTokenRoute: () => string;
8
9
  getChatStoreMessageRoute: (chatId: number) => string;
9
10
  getChatForAppointmentRoute: (appointmentId: number) => string;
10
11
  }
12
+ export declare type GetAblyTokenReturnValue = {
13
+ token: Record<any, any>;
14
+ error?: undefined;
15
+ } | {
16
+ token?: undefined;
17
+ error: ChatError;
18
+ };
11
19
  export declare type StoreMessageReturnValue = {
12
20
  message: Message;
13
21
  error?: undefined;
@@ -33,9 +41,11 @@ export default class API {
33
41
  private axios;
34
42
  private jwtToken?;
35
43
  private getChatMessagesRoute;
44
+ private getChatAblyTokenRoute;
36
45
  private getChatStoreMessageRoute;
37
46
  private getChatForAppointmentRoute;
38
47
  constructor(params: ConstructApiParams);
48
+ getAblyToken: (chats: number[]) => Promise<GetAblyTokenReturnValue>;
39
49
  storeMessage: (chatId: number, message: string) => Promise<StoreMessageReturnValue>;
40
50
  getLatestMessages: (chatId: number) => Promise<GetLatestMessagesReturnValue>;
41
51
  getChatIdFromAppointmentId: (appointmentId: number) => Promise<GetChatIdFromAppointmentIdReturnValue>;
package/dist/API.js CHANGED
@@ -7,6 +7,21 @@ const axios_1 = __importDefault(require("axios"));
7
7
  const Message_1 = __importDefault(require("./Message"));
8
8
  class API {
9
9
  constructor(params) {
10
+ this.getAblyToken = (chats) => new Promise((resolve, reject) => {
11
+ this.axios.post(this.getChatAblyTokenRoute(), {
12
+ chats
13
+ }, {
14
+ headers: this.constructHeaders(),
15
+ }).then(response => {
16
+ resolve({ token: response.data });
17
+ }).catch(err => {
18
+ var _a;
19
+ if (axios_1.default.isAxiosError(err) && ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) === 403) {
20
+ resolve({ error: { code: 'unauthorized' } });
21
+ }
22
+ resolve({ error: { code: 'error' } });
23
+ });
24
+ });
10
25
  this.storeMessage = (chatId, message) => new Promise((resolve, reject) => {
11
26
  this.axios.post(this.getChatStoreMessageRoute(chatId), { message }, {
12
27
  headers: this.constructHeaders(),
@@ -73,6 +88,7 @@ class API {
73
88
  this.axios = params.axios;
74
89
  this.jwtToken = params.jwtToken;
75
90
  this.getChatMessagesRoute = params.getChatMessagesRoute;
91
+ this.getChatAblyTokenRoute = params.getChatAblyTokenRoute;
76
92
  this.getChatStoreMessageRoute = params.getChatStoreMessageRoute;
77
93
  this.getChatForAppointmentRoute = params.getChatForAppointmentRoute;
78
94
  }
package/dist/API.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../src/API.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { PresenceChannel } from "laravel-echo";
1
+ import Ably from 'ably';
2
2
  import API from "./API";
3
3
  import { Logger } from "./logger";
4
4
  import OnlineUser from "./OnlineUser";
5
5
  import PendingMessage from "./PendingMessage";
6
6
  import ChatSubscription from "./ChatSubscription";
7
7
  import Message from "./Message";
8
+ import { ChatConnectionStatus } from './Chat';
8
9
  export interface CachedChatParams {
9
10
  id: number;
10
11
  api: API;
11
- channel: PresenceChannel;
12
+ channel: Ably.Types.RealtimeChannelCallbacks;
12
13
  logger: Logger;
13
- leave: () => void;
14
14
  }
15
15
  export declare type Messages = (Message | PendingMessage)[];
16
16
  export default class CachedChat {
@@ -21,8 +21,7 @@ export default class CachedChat {
21
21
  private subscriptions;
22
22
  private channel;
23
23
  private logger;
24
- private _leave;
25
- constructor({ id, api, channel, logger, leave }: CachedChatParams);
24
+ constructor({ id, api, channel, logger }: CachedChatParams);
26
25
  sendMessage(message: string): Promise<void>;
27
26
  getLatestMessages(): void;
28
27
  addMessage(message: Message | PendingMessage): void;
@@ -31,6 +30,5 @@ export default class CachedChat {
31
30
  cancelSubscription(subscription: ChatSubscription): void;
32
31
  cancelAllSubscriptions(): void;
33
32
  private fireMessagesEventOnEachActiveSubscription;
34
- leave(): void;
35
- cancelAllSubscriptionsAndLeave(): void;
33
+ onConnectionStatusChange(status: ChatConnectionStatus): void;
36
34
  }
@@ -1,37 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  const uuid_1 = require("uuid");
30
- const OnlineUser_1 = __importDefault(require("./OnlineUser"));
31
7
  const PendingMessage_1 = __importDefault(require("./PendingMessage"));
32
- const Message_1 = __importStar(require("./Message"));
8
+ const Message_1 = require("./Message");
33
9
  class CachedChat {
34
- constructor({ id, api, channel, logger, leave }) {
10
+ constructor({ id, api, channel, logger }) {
35
11
  this.id = id;
36
12
  this.api = api;
37
13
  this.messages = [];
@@ -39,63 +15,11 @@ class CachedChat {
39
15
  this.subscriptions = [];
40
16
  this.channel = channel;
41
17
  this.logger = logger;
42
- this._leave = leave;
43
- channel
44
- .here((users) => {
45
- const onlineUsers = users.map((user) => new OnlineUser_1.default({
46
- id: user.id,
47
- first_name: user.first_name
48
- }));
49
- this.onlineUsers = onlineUsers;
50
- this.subscriptions.forEach((subscription) => {
51
- subscription.fireEventIfActive('here', {
52
- users: onlineUsers.concat()
53
- });
54
- });
55
- })
56
- .joining((user) => {
57
- const onlineUser = new OnlineUser_1.default({
58
- id: user.id,
59
- first_name: user.first_name
60
- });
61
- const onlineUsers = this.onlineUsers.concat([onlineUser]);
62
- this.onlineUsers = onlineUsers;
63
- this.subscriptions.forEach((subscription) => {
64
- subscription.fireEventIfActive('userJoining', {
65
- user: onlineUser,
66
- users: onlineUsers.concat()
67
- });
68
- });
69
- })
70
- .leaving((user) => {
71
- const onlineUser = new OnlineUser_1.default({
72
- id: user.id,
73
- first_name: user.first_name
74
- });
75
- const onlineUsers = this.onlineUsers.filter(u => {
76
- return u.id !== onlineUser.id;
77
- });
78
- this.onlineUsers = onlineUsers;
79
- this.subscriptions.forEach((subscription) => {
80
- subscription.fireEventIfActive('userLeaving', {
81
- user: onlineUser,
82
- users: onlineUsers.concat()
83
- });
84
- });
85
- })
86
- .listen('.chat.message.created', (event) => {
87
- this.addMessage(new Message_1.default({
88
- id: event.id,
89
- chatId: event.chat_id,
90
- message: event.message,
91
- senderId: event.sender_id,
92
- sender: event.sender,
93
- isAdminMessage: event.is_admin_message
94
- }));
95
- this.fireMessagesEventOnEachActiveSubscription();
96
- })
97
- .error((error) => {
98
- console.error(error);
18
+ channel.subscribe((message) => {
19
+ this.logger.debug('channel.subscribe', message);
20
+ });
21
+ channel.presence.enter(undefined, (error) => {
22
+ this.logger.debug('channel.presence.enter error', error);
99
23
  });
100
24
  }
101
25
  sendMessage(message) {
@@ -179,12 +103,12 @@ class CachedChat {
179
103
  subscription.fireEventIfActive('messages', { messages: this.messages.concat() });
180
104
  });
181
105
  }
182
- leave() {
183
- this._leave();
184
- }
185
- cancelAllSubscriptionsAndLeave() {
186
- this.cancelAllSubscriptions();
187
- this.leave();
106
+ onConnectionStatusChange(status) {
107
+ this.subscriptions.forEach(s => {
108
+ if (s.getStatus() === 'active') {
109
+ s.setConnectionStatus(status);
110
+ }
111
+ });
188
112
  }
189
113
  }
190
114
  exports.default = CachedChat;
@@ -1 +1 @@
1
- {"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,+BAAoC;AACpC,8DAAsC;AACtC,sEAA8C;AAE9C,qDAAmD;AAYnD,MAAqB,UAAU;IAU3B,YAAY,EACR,EAAE,EACF,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACU;QACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,OAAO;aACF,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YAEjB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,oBAAU,CAAC;gBACxD,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,UAAU;aAC9B,CAAC,CAAC,CAAC;YAGJ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAG/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBACnC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE;iBAC9B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAEnB,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC;gBAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,UAAU;aAC9B,CAAC,CAAC;YAGH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAG1D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAG/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;oBAC1C,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE;iBAC9B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAEnB,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC;gBAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,UAAU,EAAE,IAAI,CAAC,UAAU;aAC9B,CAAC,CAAC;YAGH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC5C,OAAO,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YAGH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAG/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;oBAC1C,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE;iBAC9B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,MAAM,CAAC,uBAAuB,EAAE,CAAC,KAAU,EAAE,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,iBAAO,CAAC;gBACxB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,QAAQ,EAAE,KAAK,CAAC,SAAS;gBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc,EAAE,KAAK,CAAC,gBAAgB;aACzC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,yCAAyC,EAAE,CAAC;QACrD,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACX,CAAC;IAED,WAAW,CAAE,OAAe;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAEnC,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC;gBACtC,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,OAAO;gBACP,MAAM,EAAE,SAAS;aACpB,CAAC,CAAC;YAGH,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAGhC,IAAI,CAAC,yCAAyC,EAAE,CAAC;YAGjD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,EAAE,EAAE;gBAE9D,IAAI,KAAK,EAAE;oBACP,OAAO;iBACV;gBAGD,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAGpD,IAAI,CAAC,yCAAyC,EAAE,CAAC;gBAGjD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,EAAE,EAAE;YAE3D,IAAI,QAAQ,EAAE;gBAEV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE1C,IAAI,CAAC,yCAAyC,EAAE,CAAC;aACpD;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAMD,UAAU,CAAC,OAA+B;QAItC,IAAI,OAAO,YAAY,wBAAc,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO;SACV;QAID,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QAGf,KAAI,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAI7C,IAAI,IAAA,uBAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACzE,KAAK,GAAG,CAAC,CAAC;aACb;YAGD,IAAI,IAAA,uBAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC;gBACzE,OAAO;aACV;SACJ;QAGD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAQd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5C;aAAM;YAOH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5C;IACL,CAAC;IAEO,qBAAqB,CAAC,cAA8B,EAAE,OAAgB;QAC1E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAyB,EAAE,EAAE;YAC/D,OAAO,CAAC,KAAK,cAAc,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,YAA8B;QAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,YAA8B;QAC7C,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,yCAAyC;QAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;YAG1D,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,8BAA8B;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ;AA3PD,6BA2PC"}
1
+ {"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":"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"}
package/dist/Chat.d.ts CHANGED
@@ -7,17 +7,12 @@ export interface ChatOptions {
7
7
  axios: AxiosInstance;
8
8
  logger?: Logger;
9
9
  jwtToken?: string;
10
- constructPusher: (config: ConstructPusherConfig) => any;
11
10
  getChatMessagesRoute: (chatId: number) => string;
11
+ getChatAblyTokenRoute: () => string;
12
12
  getChatStoreMessageRoute: (chatId: number) => string;
13
13
  getChatForAppointmentRoute: (appointmentId: number) => string;
14
14
  }
15
- export interface ConstructPusherConfig {
16
- jwtToken?: string;
17
- }
18
- export interface LoginOptions {
19
- jwtToken?: string;
20
- }
15
+ export declare type ChatConnectionStatus = 'initialized' | 'connecting' | 'connected' | 'disconnected' | 'suspended' | 'closing' | 'closed' | 'failed';
21
16
  export declare type GetReturnValue = {
22
17
  subscription: ChatSubscription;
23
18
  error?: undefined;
@@ -35,9 +30,8 @@ export declare type GetChatReturnValue = {
35
30
  declare const Chat: {
36
31
  init: (_options: ChatOptions) => void;
37
32
  isInitialized: () => boolean;
38
- login: ({ jwtToken }: LoginOptions) => void;
39
- logout: () => void;
40
33
  get: (id: number) => Promise<GetReturnValue>;
41
34
  appointment: (appointmentId: number) => Promise<GetReturnValue>;
35
+ setJwtToken: (jwtToken?: string) => void;
42
36
  };
43
37
  export default Chat;
package/dist/Chat.js CHANGED
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -12,17 +35,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
36
  };
14
37
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const laravel_echo_1 = __importDefault(require("laravel-echo"));
38
+ const Ably = __importStar(require("ably"));
16
39
  const API_1 = __importDefault(require("./API"));
17
40
  const CachedChat_1 = __importDefault(require("./CachedChat"));
18
41
  const logger_1 = require("./logger");
19
42
  const ChatSubscription_1 = __importDefault(require("./ChatSubscription"));
20
43
  const Chat = (function () {
21
44
  let initialized = false;
22
- let echo;
45
+ let ably;
23
46
  let api;
24
47
  let logger;
25
48
  let options;
49
+ let connectionStatus = 'initialized';
26
50
  const chats = {};
27
51
  const init = (_options) => {
28
52
  if (initialized) {
@@ -31,56 +55,57 @@ const Chat = (function () {
31
55
  }
32
56
  initialized = true;
33
57
  options = _options;
34
- echo = new laravel_echo_1.default({
35
- broadcaster: 'pusher',
36
- client: _options.constructPusher({
37
- jwtToken: options.jwtToken
38
- })
39
- });
40
58
  api = new API_1.default({
41
59
  axios: options.axios,
42
60
  jwtToken: options.jwtToken,
43
61
  getChatMessagesRoute: options.getChatMessagesRoute,
62
+ getChatAblyTokenRoute: options.getChatAblyTokenRoute,
44
63
  getChatStoreMessageRoute: options.getChatStoreMessageRoute,
45
64
  getChatForAppointmentRoute: options.getChatForAppointmentRoute
46
65
  });
47
66
  logger = options.logger || new logger_1.ConsoleLogger;
67
+ let ablyOptions = {
68
+ authCallback(tokenParams, callback) {
69
+ logger.debug('authCallbackData', tokenParams);
70
+ api.getAblyToken(Object.keys(chats).map(id => Number(id))).then(result => {
71
+ if (result.error) {
72
+ callback(result.error.code, undefined);
73
+ }
74
+ else {
75
+ callback(null, result.token);
76
+ }
77
+ });
78
+ },
79
+ };
80
+ ably = new Ably.Realtime(ablyOptions);
81
+ ably.connection.on(handleAblyConnectionStateChange);
48
82
  };
49
83
  const isInitialized = () => {
50
84
  return initialized;
51
85
  };
52
- const login = ({ jwtToken }) => {
53
- if (echo) {
54
- logout();
86
+ const setJwtToken = (jwtToken) => {
87
+ if (options.jwtToken === jwtToken
88
+ || ((options.jwtToken === null || typeof options.jwtToken === 'undefined')
89
+ && (jwtToken === null || typeof jwtToken === 'undefined'))) {
90
+ return;
55
91
  }
56
92
  options.jwtToken = jwtToken;
57
- echo = new laravel_echo_1.default({
58
- broadcaster: 'pusher',
59
- client: options.constructPusher({
60
- jwtToken: options.jwtToken
61
- })
62
- });
93
+ for (const chatId in chats) {
94
+ if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
95
+ chats[chatId].cancelAllSubscriptions();
96
+ ably.channels.release(getChannelName(Number(chatId)));
97
+ delete chats[chatId];
98
+ }
99
+ }
63
100
  api = new API_1.default({
64
101
  axios: options.axios,
65
102
  jwtToken: options.jwtToken,
66
103
  getChatMessagesRoute: options.getChatMessagesRoute,
104
+ getChatAblyTokenRoute: options.getChatAblyTokenRoute,
67
105
  getChatStoreMessageRoute: options.getChatStoreMessageRoute,
68
106
  getChatForAppointmentRoute: options.getChatForAppointmentRoute
69
107
  });
70
- };
71
- const logout = () => {
72
- if (typeof echo === 'undefined') {
73
- return;
74
- }
75
- const _echo = echo;
76
- echo = undefined;
77
- for (const chatId in chats) {
78
- if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
79
- chats[chatId].cancelAllSubscriptionsAndLeave();
80
- delete chats[chatId];
81
- }
82
- }
83
- _echo.disconnect();
108
+ reauthorizeAbly();
84
109
  };
85
110
  const get = (id) => __awaiter(this, void 0, void 0, function* () {
86
111
  const { chat, error } = getChat(id);
@@ -88,7 +113,8 @@ const Chat = (function () {
88
113
  return { error };
89
114
  }
90
115
  const subscription = new ChatSubscription_1.default(chat, {
91
- status: 'active'
116
+ status: 'active',
117
+ connectionStatus
92
118
  });
93
119
  chat.addSubscription(subscription);
94
120
  chat.getLatestMessages();
@@ -102,32 +128,36 @@ const Chat = (function () {
102
128
  return yield get(chatId);
103
129
  });
104
130
  const getChat = (chatId) => {
105
- if (!echo) {
106
- return { error: {
107
- code: 'echo_is_not_defined'
108
- } };
109
- }
110
131
  if (!(chatId.toString() in chats)) {
111
132
  chats[chatId] = new CachedChat_1.default({
112
133
  id: chatId,
113
134
  api,
114
- channel: echo.join(getChannelName(chatId)),
115
- logger,
116
- leave: () => echo === null || echo === void 0 ? void 0 : echo.leave(getChannelName(chatId))
135
+ channel: ably.channels.get(getChannelName(chatId)),
136
+ logger
117
137
  });
118
138
  }
119
139
  return { chat: chats[chatId] };
120
140
  };
141
+ const reauthorizeAbly = () => {
142
+ ably.auth.authorize(undefined, undefined, function (err, result) {
143
+ logger.debug(err, result);
144
+ });
145
+ };
146
+ const handleAblyConnectionStateChange = (event) => {
147
+ connectionStatus = event.current;
148
+ Object.values(chats).forEach(chat => {
149
+ chat.onConnectionStatusChange(connectionStatus);
150
+ });
151
+ };
121
152
  const getChannelName = (chatId) => {
122
- return `chat.${chatId}`;
153
+ return `viewber:chat:${chatId}`;
123
154
  };
124
155
  return {
125
156
  init,
126
157
  isInitialized,
127
- login,
128
- logout,
129
158
  get,
130
159
  appointment,
160
+ setJwtToken
131
161
  };
132
162
  })();
133
163
  exports.default = Chat;
package/dist/Chat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export default interface ChatError {
2
- code: ('error' | 'unauthorized' | 'chat_not_initialized' | 'echo_is_not_defined');
2
+ code: ('error' | 'unauthorized' | 'chat_not_initialized');
3
3
  }
@@ -1,8 +1,10 @@
1
1
  import CachedChat, { Messages } from "./CachedChat";
2
+ import { ChatConnectionStatus } from "./Chat";
2
3
  import OnlineUser from "./OnlineUser";
3
4
  export declare type ChatSubscriptionStatus = 'active' | 'cancelled';
4
5
  export interface ChatSubscriptionOptions {
5
6
  status: ChatSubscriptionStatus;
7
+ connectionStatus: ChatConnectionStatus;
6
8
  }
7
9
  export interface ChatSubscriptionEventCallbackData {
8
10
  messages: {
@@ -22,6 +24,9 @@ export interface ChatSubscriptionEventCallbackData {
22
24
  statusChange: {
23
25
  status: ChatSubscriptionStatus;
24
26
  };
27
+ connectionStatusChange: {
28
+ status: ChatConnectionStatus;
29
+ };
25
30
  }
26
31
  declare type ChatSubscriptionEventsAndCallbacks<Type> = {
27
32
  [Event in keyof Type]?: (data: Type[Event]) => void;
@@ -30,10 +35,13 @@ export declare type ChatSubscriptionEventHandlers = ChatSubscriptionEventsAndCal
30
35
  export default class ChatSubscription {
31
36
  private chat;
32
37
  private status;
38
+ private connectionStatus;
33
39
  private eventHandlers;
34
40
  constructor(chat: CachedChat, options: ChatSubscriptionOptions);
35
41
  getStatus(): ChatSubscriptionStatus;
36
42
  setStatus(status: ChatSubscriptionStatus): void;
43
+ getConnectionStatus(): ChatConnectionStatus;
44
+ setConnectionStatus(status: ChatConnectionStatus): void;
37
45
  sendMessage(message: string): Promise<any>;
38
46
  on<Event extends keyof ChatSubscriptionEventHandlers>(event: Event, handler: ChatSubscriptionEventHandlers[Event]): this;
39
47
  fireEvent<Event extends keyof ChatSubscriptionEventHandlers>(name: Event, data: ChatSubscriptionEventCallbackData[Event]): void;
@@ -4,6 +4,7 @@ class ChatSubscription {
4
4
  constructor(chat, options) {
5
5
  this.chat = chat;
6
6
  this.status = options.status;
7
+ this.connectionStatus = options.connectionStatus;
7
8
  this.eventHandlers = {};
8
9
  }
9
10
  getStatus() {
@@ -12,6 +13,15 @@ class ChatSubscription {
12
13
  setStatus(status) {
13
14
  this.status = status;
14
15
  }
16
+ getConnectionStatus() {
17
+ return this.connectionStatus;
18
+ }
19
+ setConnectionStatus(status) {
20
+ this.connectionStatus = status;
21
+ this.fireEvent('connectionStatusChange', {
22
+ status: this.connectionStatus
23
+ });
24
+ }
15
25
  sendMessage(message) {
16
26
  return this.chat.sendMessage(message);
17
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;AAsCA,MAAqB,gBAAgB;IAKjC,YAAY,IAAgB,EAAE,OAAgC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAA8B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CAAoD,KAAY,EAAE,OAA6C;QAC7G,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAoD,IAAW,EAAE,IAA8C;;QACpH,MAAA,MAAA,IAAI,CAAC,aAAa,EAAC,IAAI,CAAC,mDAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB,CAAoD,IAAW,EAAE,IAA8C;QAC5H,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AAzCD,mCAyCC"}
1
+ {"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;AA2CA,MAAqB,gBAAgB;IAMjC,YAAY,IAAgB,EAAE,OAAgC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAA8B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,mBAAmB,CAAC,MAA4B;QAC5C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;YACrC,MAAM,EAAE,IAAI,CAAC,gBAAgB;SAChC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CAAoD,KAAY,EAAE,OAA6C;QAC7G,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAoD,IAAW,EAAE,IAA8C;;QACpH,MAAA,MAAA,IAAI,CAAC,aAAa,EAAC,IAAI,CAAC,mDAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB,CAAoD,IAAW,EAAE,IAA8C;QAC5H,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AAtDD,mCAsDC"}
@@ -1,7 +1,7 @@
1
1
  import ConsoleLogger from "./ConsoleLogger";
2
2
  import RollbarLogger from "./RollbarLogger";
3
3
  import NullLogger from "./NullLogger";
4
- export declare type LogArgument = Error | string | object;
4
+ export declare type LogArgument = Error | string | object | any;
5
5
  export interface Logger {
6
6
  error: (...args: LogArgument[]) => void;
7
7
  critical: (...args: LogArgument[]) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viewberapp/chat",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "description": "Viewber chat",
5
5
  "author": "Jacob <jacob.chen@viewber.co.uk>",
6
6
  "homepage": "https://bitbucket.org/ezadr/viewberjs#readme",
@@ -41,5 +41,5 @@
41
41
  "react": "^16.14.0",
42
42
  "rollbar": "^2.25.0"
43
43
  },
44
- "gitHead": "abd33b82377ca90829930c391ffc3c3f476a5d17"
44
+ "gitHead": "6c13974efab8281ead9c978da0d37e9b90ee116a"
45
45
  }