hermes-chat-react 0.1.0 → 0.1.2

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/react.d.cts CHANGED
@@ -1,195 +1,7 @@
1
- export { ConnectResponse, ConnectionStatus, CreateDirectRoomInput, CreateGroupRoomInput, DeliveryStatus, HermesConfig, HermesEvents, HermesUser, LastSeenEvent, Message, MessageHistoryResult, MessageType, PresenceEvent, Reaction, ReactionEvent, ReceiptEvent, Room, RoomType, SendMessageInput, TypingEvent, UploadResult } from './index.cjs';
1
+ import { HermesClient, Message, SendMessageInput, Room, CreateDirectRoomInput, CreateGroupRoomInput, Reaction, UploadResult, HermesUser } from './index.cjs';
2
+ export { ConnectResponse, ConnectionStatus, DeliveryStatus, HermesConfig, HermesEvents, LastSeenEvent, MessageHistoryResult, MessageType, PresenceEvent, ReactionEvent, ReceiptEvent, RoomType, TypingEvent } from './index.cjs';
2
3
  import React from 'react';
3
4
 
4
- interface HermesConfig {
5
- endpoint: string;
6
- apiKey: string;
7
- secret: string;
8
- userId: string;
9
- }
10
- interface HermesUser {
11
- userId: string;
12
- displayName: string;
13
- avatar?: string;
14
- email?: string;
15
- }
16
- type RoomType = "direct" | "group";
17
- interface Room {
18
- _id: string;
19
- name?: string;
20
- type: RoomType;
21
- createdBy: string;
22
- members: string[];
23
- admins: string[];
24
- avatar?: string;
25
- description?: string;
26
- lastMessage?: Message;
27
- lastActivity: string;
28
- unreadCount: number;
29
- isMuted: boolean;
30
- isPinned: boolean;
31
- createdAt: string;
32
- updatedAt: string;
33
- }
34
- interface CreateDirectRoomInput {
35
- targetUserId: string;
36
- }
37
- interface CreateGroupRoomInput {
38
- name: string;
39
- memberIds: string[];
40
- description?: string;
41
- avatar?: string;
42
- }
43
- type MessageType = "text" | "link" | "image" | "video" | "audio" | "document";
44
- type DeliveryStatus = "sent" | "delivered" | "seen";
45
- interface Reaction {
46
- emoji: string;
47
- users: string[];
48
- }
49
- interface Message {
50
- _id: string;
51
- roomId: string;
52
- senderId: string;
53
- type: MessageType;
54
- text?: string;
55
- url?: string;
56
- fileName?: string;
57
- fileSize?: number;
58
- mimeType?: string;
59
- thumbnail?: string;
60
- replyTo?: string;
61
- reactions: Reaction[];
62
- deliveryStatus: DeliveryStatus;
63
- seenBy: string[];
64
- isDeleted: boolean;
65
- deletedAt?: string;
66
- editedAt?: string;
67
- createdAt: string;
68
- updatedAt: string;
69
- }
70
- interface SendMessageInput {
71
- roomId: string;
72
- type: MessageType;
73
- text?: string;
74
- url?: string;
75
- fileName?: string;
76
- fileSize?: number;
77
- mimeType?: string;
78
- thumbnail?: string;
79
- replyTo?: string;
80
- }
81
- interface MessageHistoryResult {
82
- messages: Message[];
83
- hasMore: boolean;
84
- }
85
- interface PresenceEvent {
86
- userId: string;
87
- displayName: string;
88
- roomId?: string;
89
- }
90
- interface LastSeenEvent {
91
- userId: string;
92
- lastSeen: string;
93
- }
94
- interface TypingEvent {
95
- userId: string;
96
- displayName: string;
97
- roomId: string;
98
- }
99
- interface ReceiptEvent {
100
- roomId: string;
101
- userId: string;
102
- lastMessageId: string;
103
- seenAt: string;
104
- }
105
- interface ReactionEvent {
106
- messageId: string;
107
- roomId: string;
108
- reactions: Reaction[];
109
- }
110
- interface UploadResult {
111
- type: MessageType;
112
- url: string;
113
- thumbnail?: string;
114
- fileName: string;
115
- fileSize: number;
116
- mimeType: string;
117
- }
118
- interface HermesEvents {
119
- connected: () => void;
120
- disconnected: (reason: string) => void;
121
- error: (error: Error) => void;
122
- "message:receive": (message: Message) => void;
123
- "message:deleted": (data: {
124
- messageId: string;
125
- roomId: string;
126
- }) => void;
127
- "message:edited": (message: Message) => void;
128
- "room:created": (room: Room) => void;
129
- "room:deleted": (data: {
130
- roomId: string;
131
- }) => void;
132
- "room:member:joined": (data: {
133
- roomId: string;
134
- userId: string;
135
- }) => void;
136
- "room:member:left": (data: {
137
- roomId: string;
138
- userId: string;
139
- }) => void;
140
- "user:online": (event: PresenceEvent) => void;
141
- "user:offline": (event: LastSeenEvent) => void;
142
- "typing:started": (event: TypingEvent) => void;
143
- "typing:stopped": (event: TypingEvent) => void;
144
- "receipt:updated": (event: ReceiptEvent) => void;
145
- "reaction:updated": (event: ReactionEvent) => void;
146
- }
147
- type ConnectionStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
148
-
149
- type EventKey = keyof HermesEvents;
150
- type EventCallback<K extends EventKey> = HermesEvents[K];
151
- declare class EventEmitter {
152
- private listeners;
153
- on<K extends EventKey>(event: K, callback: EventCallback<K>): this;
154
- off<K extends EventKey>(event: K, callback: EventCallback<K>): void;
155
- once<K extends EventKey>(event: K, callback: EventCallback<K>): this;
156
- emit<K extends EventKey>(event: K, ...args: Parameters<EventCallback<K>>): this;
157
- removeAllListeners<K extends EventKey>(event?: K): this;
158
- listenerCount<K extends EventKey>(event: K): number;
159
- }
160
-
161
- declare class HermesClient extends EventEmitter {
162
- private config;
163
- private socket;
164
- private token;
165
- user: HermesUser | null;
166
- status: ConnectionStatus;
167
- constructor(config: HermesConfig);
168
- connect(): Promise<HermesUser>;
169
- private _connectSocket;
170
- disconnect(): void;
171
- private _wireSocketEvents;
172
- _emit<T = any>(event: string, data?: any): Promise<T>;
173
- sendMessage(input: SendMessageInput): Promise<Message>;
174
- getHistory(roomId: string, before?: string, limit?: number): Promise<MessageHistoryResult>;
175
- deleteMessage(messageId: string, roomId: string): Promise<void>;
176
- editMessage(messageId: string, roomId: string, text: string): Promise<Message>;
177
- createDirectRoom(input: CreateDirectRoomInput): Promise<Room>;
178
- createGroupRoom(input: CreateGroupRoomInput): Promise<Room>;
179
- deleteRoom(roomId: string): Promise<void>;
180
- getRooms(): Promise<Room[]>;
181
- addMember(roomId: string, newMemberId: string): Promise<void>;
182
- removeMember(roomId: string, targetId: string): Promise<void>;
183
- pingPresence(roomId: string): void;
184
- startTyping(roomId: string): void;
185
- stopTyping(roomId: string): void;
186
- markSeen(roomId: string, lastMessageId: string): Promise<void>;
187
- addReaction(messageId: string, roomId: string, emoji: string): Promise<void>;
188
- uploadFile(file: File): Promise<UploadResult>;
189
- get isConnected(): boolean;
190
- get currentUser(): HermesUser | null;
191
- }
192
-
193
5
  declare const useMessages: (client: HermesClient, roomId: string | null) => {
194
6
  messages: Message[];
195
7
  loading: boolean;
@@ -340,4 +152,4 @@ interface MediaMessageProps {
340
152
  }
341
153
  declare const MediaMessage: React.FC<MediaMessageProps>;
342
154
 
343
- export { ChatInput, MediaMessage, MessageList, OnlineBadge, ReactionPicker, RoomList, TypingIndicator, useMessages, usePresence, useReactions, useReadReceipts, useRooms, useTyping, useUpload };
155
+ export { ChatInput, CreateDirectRoomInput, CreateGroupRoomInput, HermesClient, HermesUser, MediaMessage, Message, MessageList, OnlineBadge, Reaction, ReactionPicker, Room, RoomList, SendMessageInput, TypingIndicator, UploadResult, useMessages, usePresence, useReactions, useReadReceipts, useRooms, useTyping, useUpload };
package/dist/react.d.ts CHANGED
@@ -1,195 +1,7 @@
1
- export { ConnectResponse, ConnectionStatus, CreateDirectRoomInput, CreateGroupRoomInput, DeliveryStatus, HermesConfig, HermesEvents, HermesUser, LastSeenEvent, Message, MessageHistoryResult, MessageType, PresenceEvent, Reaction, ReactionEvent, ReceiptEvent, Room, RoomType, SendMessageInput, TypingEvent, UploadResult } from './index.js';
1
+ import { HermesClient, Message, SendMessageInput, Room, CreateDirectRoomInput, CreateGroupRoomInput, Reaction, UploadResult, HermesUser } from './index.js';
2
+ export { ConnectResponse, ConnectionStatus, DeliveryStatus, HermesConfig, HermesEvents, LastSeenEvent, MessageHistoryResult, MessageType, PresenceEvent, ReactionEvent, ReceiptEvent, RoomType, TypingEvent } from './index.js';
2
3
  import React from 'react';
3
4
 
4
- interface HermesConfig {
5
- endpoint: string;
6
- apiKey: string;
7
- secret: string;
8
- userId: string;
9
- }
10
- interface HermesUser {
11
- userId: string;
12
- displayName: string;
13
- avatar?: string;
14
- email?: string;
15
- }
16
- type RoomType = "direct" | "group";
17
- interface Room {
18
- _id: string;
19
- name?: string;
20
- type: RoomType;
21
- createdBy: string;
22
- members: string[];
23
- admins: string[];
24
- avatar?: string;
25
- description?: string;
26
- lastMessage?: Message;
27
- lastActivity: string;
28
- unreadCount: number;
29
- isMuted: boolean;
30
- isPinned: boolean;
31
- createdAt: string;
32
- updatedAt: string;
33
- }
34
- interface CreateDirectRoomInput {
35
- targetUserId: string;
36
- }
37
- interface CreateGroupRoomInput {
38
- name: string;
39
- memberIds: string[];
40
- description?: string;
41
- avatar?: string;
42
- }
43
- type MessageType = "text" | "link" | "image" | "video" | "audio" | "document";
44
- type DeliveryStatus = "sent" | "delivered" | "seen";
45
- interface Reaction {
46
- emoji: string;
47
- users: string[];
48
- }
49
- interface Message {
50
- _id: string;
51
- roomId: string;
52
- senderId: string;
53
- type: MessageType;
54
- text?: string;
55
- url?: string;
56
- fileName?: string;
57
- fileSize?: number;
58
- mimeType?: string;
59
- thumbnail?: string;
60
- replyTo?: string;
61
- reactions: Reaction[];
62
- deliveryStatus: DeliveryStatus;
63
- seenBy: string[];
64
- isDeleted: boolean;
65
- deletedAt?: string;
66
- editedAt?: string;
67
- createdAt: string;
68
- updatedAt: string;
69
- }
70
- interface SendMessageInput {
71
- roomId: string;
72
- type: MessageType;
73
- text?: string;
74
- url?: string;
75
- fileName?: string;
76
- fileSize?: number;
77
- mimeType?: string;
78
- thumbnail?: string;
79
- replyTo?: string;
80
- }
81
- interface MessageHistoryResult {
82
- messages: Message[];
83
- hasMore: boolean;
84
- }
85
- interface PresenceEvent {
86
- userId: string;
87
- displayName: string;
88
- roomId?: string;
89
- }
90
- interface LastSeenEvent {
91
- userId: string;
92
- lastSeen: string;
93
- }
94
- interface TypingEvent {
95
- userId: string;
96
- displayName: string;
97
- roomId: string;
98
- }
99
- interface ReceiptEvent {
100
- roomId: string;
101
- userId: string;
102
- lastMessageId: string;
103
- seenAt: string;
104
- }
105
- interface ReactionEvent {
106
- messageId: string;
107
- roomId: string;
108
- reactions: Reaction[];
109
- }
110
- interface UploadResult {
111
- type: MessageType;
112
- url: string;
113
- thumbnail?: string;
114
- fileName: string;
115
- fileSize: number;
116
- mimeType: string;
117
- }
118
- interface HermesEvents {
119
- connected: () => void;
120
- disconnected: (reason: string) => void;
121
- error: (error: Error) => void;
122
- "message:receive": (message: Message) => void;
123
- "message:deleted": (data: {
124
- messageId: string;
125
- roomId: string;
126
- }) => void;
127
- "message:edited": (message: Message) => void;
128
- "room:created": (room: Room) => void;
129
- "room:deleted": (data: {
130
- roomId: string;
131
- }) => void;
132
- "room:member:joined": (data: {
133
- roomId: string;
134
- userId: string;
135
- }) => void;
136
- "room:member:left": (data: {
137
- roomId: string;
138
- userId: string;
139
- }) => void;
140
- "user:online": (event: PresenceEvent) => void;
141
- "user:offline": (event: LastSeenEvent) => void;
142
- "typing:started": (event: TypingEvent) => void;
143
- "typing:stopped": (event: TypingEvent) => void;
144
- "receipt:updated": (event: ReceiptEvent) => void;
145
- "reaction:updated": (event: ReactionEvent) => void;
146
- }
147
- type ConnectionStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
148
-
149
- type EventKey = keyof HermesEvents;
150
- type EventCallback<K extends EventKey> = HermesEvents[K];
151
- declare class EventEmitter {
152
- private listeners;
153
- on<K extends EventKey>(event: K, callback: EventCallback<K>): this;
154
- off<K extends EventKey>(event: K, callback: EventCallback<K>): void;
155
- once<K extends EventKey>(event: K, callback: EventCallback<K>): this;
156
- emit<K extends EventKey>(event: K, ...args: Parameters<EventCallback<K>>): this;
157
- removeAllListeners<K extends EventKey>(event?: K): this;
158
- listenerCount<K extends EventKey>(event: K): number;
159
- }
160
-
161
- declare class HermesClient extends EventEmitter {
162
- private config;
163
- private socket;
164
- private token;
165
- user: HermesUser | null;
166
- status: ConnectionStatus;
167
- constructor(config: HermesConfig);
168
- connect(): Promise<HermesUser>;
169
- private _connectSocket;
170
- disconnect(): void;
171
- private _wireSocketEvents;
172
- _emit<T = any>(event: string, data?: any): Promise<T>;
173
- sendMessage(input: SendMessageInput): Promise<Message>;
174
- getHistory(roomId: string, before?: string, limit?: number): Promise<MessageHistoryResult>;
175
- deleteMessage(messageId: string, roomId: string): Promise<void>;
176
- editMessage(messageId: string, roomId: string, text: string): Promise<Message>;
177
- createDirectRoom(input: CreateDirectRoomInput): Promise<Room>;
178
- createGroupRoom(input: CreateGroupRoomInput): Promise<Room>;
179
- deleteRoom(roomId: string): Promise<void>;
180
- getRooms(): Promise<Room[]>;
181
- addMember(roomId: string, newMemberId: string): Promise<void>;
182
- removeMember(roomId: string, targetId: string): Promise<void>;
183
- pingPresence(roomId: string): void;
184
- startTyping(roomId: string): void;
185
- stopTyping(roomId: string): void;
186
- markSeen(roomId: string, lastMessageId: string): Promise<void>;
187
- addReaction(messageId: string, roomId: string, emoji: string): Promise<void>;
188
- uploadFile(file: File): Promise<UploadResult>;
189
- get isConnected(): boolean;
190
- get currentUser(): HermesUser | null;
191
- }
192
-
193
5
  declare const useMessages: (client: HermesClient, roomId: string | null) => {
194
6
  messages: Message[];
195
7
  loading: boolean;
@@ -340,4 +152,4 @@ interface MediaMessageProps {
340
152
  }
341
153
  declare const MediaMessage: React.FC<MediaMessageProps>;
342
154
 
343
- export { ChatInput, MediaMessage, MessageList, OnlineBadge, ReactionPicker, RoomList, TypingIndicator, useMessages, usePresence, useReactions, useReadReceipts, useRooms, useTyping, useUpload };
155
+ export { ChatInput, CreateDirectRoomInput, CreateGroupRoomInput, HermesClient, HermesUser, MediaMessage, Message, MessageList, OnlineBadge, Reaction, ReactionPicker, Room, RoomList, SendMessageInput, TypingIndicator, UploadResult, useMessages, usePresence, useReactions, useReadReceipts, useRooms, useTyping, useUpload };
package/dist/react.js CHANGED
@@ -1,4 +1,6 @@
1
- import "./chunk-D42PTTYC.js";
1
+ import {
2
+ HermesClient
3
+ } from "./chunk-OMLFDWYU.js";
2
4
 
3
5
  // src/react/hooks/useMessages.ts
4
6
  import { useState, useEffect, useCallback, useRef } from "react";
@@ -1870,6 +1872,7 @@ var MediaMessage = ({
1870
1872
  };
1871
1873
  export {
1872
1874
  ChatInput,
1875
+ HermesClient,
1873
1876
  MediaMessage,
1874
1877
  MessageList,
1875
1878
  OnlineBadge,