@only-chat/client 0.2.0-beta.25 → 0.2.0-beta.26

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/README.md CHANGED
@@ -1,4 +1,79 @@
1
1
  # only-chat
2
2
  This is a client implementation for only-chat.
3
3
 
4
- The client is a main part of the platform that processes and dispatches messages from the transport layer and from the queue.
4
+ The client is a main part of the platform that processes and dispatches messages from the transport layer and from the queue.
5
+
6
+ # Client Statuses
7
+
8
+ | Status | Value | Description |
9
+ | :--- | :--- | :--- |
10
+ | None | 0 | The client was created, no actions have been performed with it. |
11
+ | Authenticated | 1 | The client is successfully authenticated. |
12
+ | Connected | 2 | The client is successfully connected to the server. |
13
+ | Session | 3 | The client has joined one of the chats. |
14
+ | WatchSession | 4 | The client is monitoring changes in all chats. |
15
+ | Disconnected | 0xFF | The client is successfully disconnected from the server. |
16
+
17
+ ## Request Structure
18
+
19
+ For all commands, the request is of the type `Request`:
20
+
21
+ ```typescript
22
+ {
23
+ type: string; // Command type
24
+ clientMessageId: string; // Client identifier
25
+ data: object; // Request data
26
+ }
27
+ ```
28
+
29
+ ## Command Specifications
30
+
31
+ ### Status: `None`
32
+
33
+ * Any command is treated as a connection command to the service.
34
+ * **Must be of request type:** `ConnectRequest`.
35
+
36
+ ---
37
+
38
+ ### Status: `Connected`, `Session`, or `WatchSession`
39
+
40
+ The command must be of request type `JoinRequest` or `Request`.
41
+
42
+ | Command | Description | Request Data Type |
43
+ | :--- | :--- | :--- |
44
+ | `close` | Command to close a conversation; new messages cannot be added to a closed conversation. | `ConversationRequest` |
45
+ | `delete` | Command to delete a conversation. If a user attempts to delete a conversation where they are not the creator, they will be removed from the conversation and the participant list. | `ConversationRequest` |
46
+ | `update` | Command to modify a conversation; the creator can change the title and participant list. | `ConversationRequest` |
47
+ | `find` | Search for messages in conversations. | `FindRequest` |
48
+ | `load` | Retrieve the list of the user's conversations. | `LoadRequest` |
49
+
50
+ ---
51
+
52
+ ### Status: `Connected`
53
+
54
+ The command must be of request type `JoinRequest`.
55
+
56
+ | Command | Description |
57
+ | :--- | :--- |
58
+ | `join` | Join a conversation. |
59
+ | `watch` | Monitor changes in conversations. |
60
+
61
+ ---
62
+
63
+ ### Status: `Session`
64
+
65
+ The command must be of request type `Request`.
66
+
67
+ | Command | Description | Request Data Type |
68
+ | :--- | :--- | :--- |
69
+ | `text` | Add a text message to the current conversation. | `TextMessage` |
70
+ | `file` | Add a message with a link to an external resource in the current conversation. | `FileMessage` |
71
+ | `message-update` | Command to edit a message in the current conversation; the author can modify it. | `MessageUpdate` |
72
+ | `message-delete` | Command to delete a message in the current conversation; the author can delete it. | `MessageDelete` |
73
+ | `load-messages` | Command to load messages in the current conversation. | `LoadRequest` |
74
+
75
+ ---
76
+
77
+ ## Error Handling
78
+
79
+ Any other command or an incorrect request type is considered an error and results in forced connection termination and disconnection of the client from the service.
package/dist/index.d.ts CHANGED
@@ -19,13 +19,6 @@ export interface Config {
19
19
  userStore: UserStore;
20
20
  instanceId: string;
21
21
  }
22
- export interface LoadRequest {
23
- from?: number;
24
- size?: number;
25
- ids?: string[];
26
- excludeIds?: string[];
27
- before?: Date;
28
- }
29
22
  interface ConversationInfo {
30
23
  participants: Set<string>;
31
24
  clients: WsClient[];
package/dist/index.js CHANGED
@@ -9,6 +9,32 @@ export var TransportState;
9
9
  /** The connection is closed. */
10
10
  TransportState[TransportState["CLOSED"] = 3] = "CLOSED";
11
11
  })(TransportState || (TransportState = {}));
12
+ var ErrorMessage;
13
+ (function (ErrorMessage) {
14
+ ErrorMessage["AuthenticationFailed"] = "Authentication failed";
15
+ ErrorMessage["CloseConversationFailed"] = "Close conversation failed";
16
+ ErrorMessage["ConversationAlreadyClosed"] = "Conversation already closed";
17
+ ErrorMessage["ConversationClosed"] = "Conversation closed";
18
+ ErrorMessage["ConversationNotFound"] = "Conversation not found";
19
+ ErrorMessage["ConversationTitleRequired"] = "Conversation title required";
20
+ ErrorMessage["DeleteMessageFailed"] = "Delete message failed";
21
+ ErrorMessage["IndexMessageFailed"] = "Index message failed";
22
+ ErrorMessage["LessThanTwoParticipants"] = "Less than 2 participants";
23
+ ErrorMessage["SaveConversationFailed"] = "Save conversation failed";
24
+ ErrorMessage["UpdateConversationFailed"] = "Update conversation failed";
25
+ ErrorMessage["UpdateMessageFailed"] = "Update message failed";
26
+ ErrorMessage["UserNotAllowedToCloseConversation"] = "User is not allowed to close conversation";
27
+ ErrorMessage["UserNotAllowedToDeleteMessage"] = "User is not allowed to delete message";
28
+ ErrorMessage["UserNotAllowedToUpdateConversation"] = "User is not allowed to update conversation";
29
+ ErrorMessage["UserNotAllowedToUpdateMessage"] = "User is not allowed to update message";
30
+ ErrorMessage["UnableToGetPeerToPeerConversationIdentifier"] = "Unable to get peer to peer conversation identifier";
31
+ ErrorMessage["WrongConversation"] = "Wrong conversation";
32
+ ErrorMessage["WrongConversationIdentifier"] = "Wrong conversation identifier";
33
+ ErrorMessage["WrongFileName"] = "Wrong file name";
34
+ ErrorMessage["WrongMessage"] = "Wrong message";
35
+ ErrorMessage["WrongMessageType"] = "Wrong message type";
36
+ ErrorMessage["WrongRequestType"] = "Wrong request type";
37
+ })(ErrorMessage || (ErrorMessage = {}));
12
38
  var StopStatus;
13
39
  (function (StopStatus) {
14
40
  StopStatus["Deleted"] = "Deleted";
@@ -300,7 +326,7 @@ export class WsClient {
300
326
  };
301
327
  const response = await store.saveMessage(m);
302
328
  if (response.result !== 'created') {
303
- const err = 'Index message failed';
329
+ const err = ErrorMessage.IndexMessageFailed;
304
330
  if (!this.lastError) {
305
331
  this.lastError = err;
306
332
  }
@@ -374,7 +400,7 @@ export class WsClient {
374
400
  if (data.conversationId) {
375
401
  conversation = await store.getParticipantConversationById(this.id, data.conversationId);
376
402
  if (!conversation?.id) {
377
- this.lastError = 'Wrong conversation';
403
+ this.lastError = ErrorMessage.WrongConversation;
378
404
  return false;
379
405
  }
380
406
  }
@@ -382,7 +408,7 @@ export class WsClient {
382
408
  const participants = new Set(data.participants?.map(p => p.trim()).filter(s => s.length));
383
409
  participants.add(this.id);
384
410
  if (participants.size < 2) {
385
- this.lastError = 'Less than 2 participants';
411
+ this.lastError = ErrorMessage.LessThanTwoParticipants;
386
412
  return false;
387
413
  }
388
414
  let conversationId;
@@ -390,7 +416,7 @@ export class WsClient {
390
416
  if (!data.title && participants.size == 2) {
391
417
  const conversationIdResult = await store.getPeerToPeerConversationId(participantsArray[0], participantsArray[1]);
392
418
  if (!conversationIdResult?.id) {
393
- this.lastError = 'Unable to get peer to peer conversation identifier';
419
+ this.lastError = ErrorMessage.UnableToGetPeerToPeerConversationIdentifier;
394
420
  logger?.error(this.lastError);
395
421
  return false;
396
422
  }
@@ -399,7 +425,7 @@ export class WsClient {
399
425
  conversation = await store.getParticipantConversationById(undefined, conversationId);
400
426
  }
401
427
  else if (!data.title) {
402
- this.lastError = 'Conversation title required';
428
+ this.lastError = ErrorMessage.ConversationTitleRequired;
403
429
  return false;
404
430
  }
405
431
  const conversationsParticipans = conversation ? new Set(conversation.participants) : undefined;
@@ -411,7 +437,7 @@ export class WsClient {
411
437
  id: conversationId,
412
438
  participants: participantsArray,
413
439
  title: data.title,
414
- createdBy: conversation?.createdBy ?? this.id,
440
+ createdBy: conversation?.createdBy ?? (conversationId ? '' : this.id),
415
441
  createdAt: conversation?.createdAt ?? now,
416
442
  updatedAt: conversation?.createdAt ? now : undefined,
417
443
  };
@@ -421,7 +447,7 @@ export class WsClient {
421
447
  }
422
448
  if (!created && response.result !== 'updated') {
423
449
  logger?.error(`Save conversation with id ${conversation.id} failed`);
424
- this.lastError = 'Save conversation failed';
450
+ this.lastError = ErrorMessage.SaveConversationFailed;
425
451
  return false;
426
452
  }
427
453
  conversation.id = response._id;
@@ -459,14 +485,14 @@ export class WsClient {
459
485
  }
460
486
  onMessage(data, isBinary) {
461
487
  try {
462
- if (!(data instanceof Buffer)) {
463
- throw new Error('Wrong transport');
464
- }
465
488
  if (isBinary) {
466
489
  logger?.error('Binary message received');
467
490
  throw new Error('Binary message');
468
491
  }
469
- const msg = JSON.parse(data?.toString());
492
+ if (!(data instanceof Buffer)) {
493
+ throw new Error('Wrong transport');
494
+ }
495
+ const msg = JSON.parse(data.toString());
470
496
  if (msg && sendStates.includes(this.state)) {
471
497
  const request = msg;
472
498
  if (request && connectedRequestTypes.includes(request.type)) {
@@ -564,18 +590,18 @@ export class WsClient {
564
590
  });
565
591
  const message = findResult.messages?.[0];
566
592
  if (!message) {
567
- this.lastError = 'Wrong message';
593
+ this.lastError = ErrorMessage.WrongMessage;
568
594
  return false;
569
595
  }
570
596
  if (message.fromId != this.id) {
571
- this.lastError = 'User is not allowed to delete message';
597
+ this.lastError = ErrorMessage.UserNotAllowedToDeleteMessage;
572
598
  return false;
573
599
  }
574
600
  message.deletedAt = request.deletedAt;
575
601
  const response = await store.saveMessage(message);
576
602
  if (response.result !== 'updated') {
577
603
  logger?.error(`Delete message with id ${message.id} failed`);
578
- this.lastError = 'Delete message failed';
604
+ this.lastError = ErrorMessage.DeleteMessageFailed;
579
605
  return false;
580
606
  }
581
607
  logger?.debug(`Message with id ${message.id} was deleted successfully`);
@@ -589,11 +615,11 @@ export class WsClient {
589
615
  });
590
616
  const message = findResult.messages?.[0];
591
617
  if (!message) {
592
- this.lastError = 'Wrong message';
618
+ this.lastError = ErrorMessage.WrongMessage;
593
619
  return false;
594
620
  }
595
621
  if (message.fromId !== this.id) {
596
- this.lastError = 'User is not allowed to update message';
622
+ this.lastError = ErrorMessage.UserNotAllowedToUpdateMessage;
597
623
  return false;
598
624
  }
599
625
  switch (message.type) {
@@ -601,7 +627,7 @@ export class WsClient {
601
627
  {
602
628
  const { link, name, type, size } = request;
603
629
  if (!name) {
604
- this.lastError = 'Wrong file name';
630
+ this.lastError = ErrorMessage.WrongFileName;
605
631
  return false;
606
632
  }
607
633
  message.data = { link, name, type, size };
@@ -618,7 +644,7 @@ export class WsClient {
618
644
  const response = await store.saveMessage(message);
619
645
  if (response.result !== 'updated') {
620
646
  logger?.error(`Update message with id ${message.id} failed`);
621
- this.lastError = 'Update message failed';
647
+ this.lastError = ErrorMessage.UpdateMessageFailed;
622
648
  return false;
623
649
  }
624
650
  logger?.debug(`Message with id ${message.id} was updated successfully`);
@@ -628,7 +654,7 @@ export class WsClient {
628
654
  const conversation = data.conversationId ? await store.getParticipantConversationById(this.id, data.conversationId) : this.conversation;
629
655
  if (!conversation || this.id !== conversation.createdBy) {
630
656
  //Only creator can update conversation
631
- this.lastError = 'User is not allowed to update conversation';
657
+ this.lastError = ErrorMessage.UserNotAllowedToUpdateConversation;
632
658
  return false;
633
659
  }
634
660
  conversation.title = data.title;
@@ -637,7 +663,7 @@ export class WsClient {
637
663
  const response = await store.saveConversation(conversation);
638
664
  if (response.result !== 'updated') {
639
665
  logger?.error(`Update conversation with id ${conversation.id} failed`);
640
- this.lastError = 'Update conversation failed';
666
+ this.lastError = ErrorMessage.UpdateConversationFailed;
641
667
  return false;
642
668
  }
643
669
  logger?.debug(`Conversation with id ${conversation.id} was updated successfully`);
@@ -646,17 +672,17 @@ export class WsClient {
646
672
  async closeDeleteConversation(data, del) {
647
673
  const id = data.conversationId ?? this.conversation?.id;
648
674
  if (!id) {
649
- this.lastError = 'Wrong conversation identifier';
675
+ this.lastError = ErrorMessage.WrongConversationIdentifier;
650
676
  return null;
651
677
  }
652
678
  const conversation = await store.getParticipantConversationById(this.id, id);
653
679
  if (!conversation) {
654
680
  //Only creator can close or delete conversation
655
- this.lastError = 'Conversation not found';
681
+ this.lastError = ErrorMessage.ConversationNotFound;
656
682
  return null;
657
683
  }
658
684
  if (!del && conversation.closedAt) {
659
- this.lastError = 'Conversation already closed';
685
+ this.lastError = ErrorMessage.ConversationAlreadyClosed;
660
686
  return null;
661
687
  }
662
688
  let type = 'updated';
@@ -678,13 +704,13 @@ export class WsClient {
678
704
  data.participants = conversation.participants;
679
705
  }
680
706
  else {
681
- this.lastError = 'User is not allowed to close conversation';
707
+ this.lastError = ErrorMessage.UserNotAllowedToCloseConversation;
682
708
  return null;
683
709
  }
684
710
  const response = await store.saveConversation(conversation);
685
711
  if (response.result !== 'updated') {
686
712
  logger?.error(`Close conversation with id ${conversation.id} failed`);
687
- this.lastError = 'Close conversation failed';
713
+ this.lastError = ErrorMessage.CloseConversationFailed;
688
714
  return null;
689
715
  }
690
716
  logger?.debug(`Conversation with id ${conversation.id} was updated successfully`);
@@ -692,7 +718,7 @@ export class WsClient {
692
718
  }
693
719
  async processRequest(request) {
694
720
  if (!request.data) {
695
- this.lastError = 'Wrong message';
721
+ this.lastError = ErrorMessage.WrongMessage;
696
722
  return false;
697
723
  }
698
724
  const clientMessageId = request.clientMessageId;
@@ -751,12 +777,12 @@ export class WsClient {
751
777
  }
752
778
  async processConversationRequest(request) {
753
779
  if (!request.data) {
754
- this.lastError = 'Wrong message';
780
+ this.lastError = ErrorMessage.WrongMessage;
755
781
  return false;
756
782
  }
757
783
  const verifyConversation = () => {
758
784
  if (this.conversation.closedAt) {
759
- this.lastError = 'Conversation closed';
785
+ this.lastError = ErrorMessage.ConversationClosed;
760
786
  return false;
761
787
  }
762
788
  return true;
@@ -773,7 +799,7 @@ export class WsClient {
773
799
  return false;
774
800
  }
775
801
  if (!request.data.name) {
776
- this.lastError = 'Wrong file name';
802
+ this.lastError = ErrorMessage.WrongFileName;
777
803
  return false;
778
804
  }
779
805
  break;
@@ -795,7 +821,7 @@ export class WsClient {
795
821
  await this.loadMessages(request.data, request.clientMessageId);
796
822
  return true;
797
823
  default:
798
- this.lastError = 'Wrong message type';
824
+ this.lastError = ErrorMessage.WrongMessageType;
799
825
  return false;
800
826
  }
801
827
  return this.publishMessage(broadcastType, request.clientMessageId, request.data, true);
@@ -803,7 +829,7 @@ export class WsClient {
803
829
  async connect(request) {
804
830
  this.id = request?.authInfo && await userStore.authenticate(request.authInfo);
805
831
  if (!this.id) {
806
- this.lastError = 'Authentication failed';
832
+ this.lastError = ErrorMessage.AuthenticationFailed;
807
833
  return false;
808
834
  }
809
835
  this.state = WsClientState.Authenticated;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@only-chat/client",
3
- "version": "0.2.0-beta.25",
3
+ "version": "0.2.0-beta.26",
4
4
  "description": "Client for only-chat",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,10 +18,10 @@
18
18
  "license": "MIT",
19
19
  "devDependencies": {
20
20
  "@jest/globals": "^29.7.0",
21
- "@only-chat/in-memory-queue": "0.2.0-beta.25",
22
- "@only-chat/in-memory-store": "0.2.0-beta.25",
23
- "@only-chat/in-memory-user-store": "0.2.0-beta.25",
24
- "@only-chat/types": "0.2.0-beta.25",
21
+ "@only-chat/in-memory-queue": "0.2.0-beta.26",
22
+ "@only-chat/in-memory-store": "0.2.0-beta.26",
23
+ "@only-chat/in-memory-user-store": "0.2.0-beta.26",
24
+ "@only-chat/types": "0.2.0-beta.26",
25
25
  "@types/jest": "^29.5.12",
26
26
  "jest": "^29.7.0",
27
27
  "jest-ts-webcompat-resolver": "^1.0.0",