@hlmr/sdk-js 1.0.22 → 1.0.25

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.
Files changed (45) hide show
  1. package/dist/cjs/client/HlmrClient.d.ts +11 -1
  2. package/dist/cjs/client/HlmrClient.d.ts.map +1 -1
  3. package/dist/cjs/client/HlmrClient.js +17 -0
  4. package/dist/cjs/client/HlmrClient.js.map +1 -1
  5. package/dist/cjs/index.d.ts +3 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +4 -2
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/modules/events.d.ts +49 -0
  10. package/dist/cjs/modules/events.d.ts.map +1 -0
  11. package/dist/cjs/modules/events.js +405 -0
  12. package/dist/cjs/modules/events.js.map +1 -0
  13. package/dist/cjs/types/events.d.ts +86 -0
  14. package/dist/cjs/types/events.d.ts.map +1 -0
  15. package/dist/cjs/types/events.js +3 -0
  16. package/dist/cjs/types/events.js.map +1 -0
  17. package/dist/esm/client/HlmrClient.d.ts +11 -1
  18. package/dist/esm/client/HlmrClient.d.ts.map +1 -1
  19. package/dist/esm/client/HlmrClient.js +17 -0
  20. package/dist/esm/client/HlmrClient.js.map +1 -1
  21. package/dist/esm/index.d.ts +3 -1
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/index.js +2 -1
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/modules/events.d.ts +49 -0
  26. package/dist/esm/modules/events.d.ts.map +1 -0
  27. package/dist/esm/modules/events.js +401 -0
  28. package/dist/esm/modules/events.js.map +1 -0
  29. package/dist/esm/types/events.d.ts +86 -0
  30. package/dist/esm/types/events.d.ts.map +1 -0
  31. package/dist/esm/types/events.js +2 -0
  32. package/dist/esm/types/events.js.map +1 -0
  33. package/dist/types/client/HlmrClient.d.ts +11 -1
  34. package/dist/types/client/HlmrClient.d.ts.map +1 -1
  35. package/dist/types/index.d.ts +3 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/modules/events.d.ts +49 -0
  38. package/dist/types/modules/events.d.ts.map +1 -0
  39. package/dist/types/types/events.d.ts +86 -0
  40. package/dist/types/types/events.d.ts.map +1 -0
  41. package/dist/umd/hlmr-sdk.js +419 -1
  42. package/dist/umd/hlmr-sdk.js.map +1 -1
  43. package/dist/umd/hlmr-sdk.min.js +1 -1
  44. package/dist/umd/hlmr-sdk.min.js.map +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,401 @@
1
+ const DEFAULT_CONFIG = {
2
+ pingInterval: 30000,
3
+ autoReconnect: true,
4
+ maxReconnectAttempts: 5,
5
+ reconnectDelay: 1000,
6
+ maxReconnectDelay: 30000,
7
+ debug: false
8
+ };
9
+ export class EventsModule {
10
+ constructor(http, config) {
11
+ this.ws = null;
12
+ this.pingIntervalId = null;
13
+ this.reconnectAttempts = 0;
14
+ this.reconnectTimeoutId = null;
15
+ this.isConnecting = false;
16
+ this.isManualDisconnect = false;
17
+ this.subscriptions = new Map();
18
+ this.pendingSubscriptions = new Map();
19
+ this.listeners = new Map();
20
+ this.userId = null;
21
+ this.bearerToken = null;
22
+ this.authResolve = null;
23
+ this.authReject = null;
24
+ this.http = http;
25
+ this.config = { ...DEFAULT_CONFIG, ...config };
26
+ const httpConfig = http.config;
27
+ this.bearerToken = httpConfig.bearerToken || null;
28
+ }
29
+ async connect() {
30
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
31
+ throw new Error('Already connected');
32
+ }
33
+ if (this.isConnecting) {
34
+ throw new Error('Connection in progress');
35
+ }
36
+ this.isConnecting = true;
37
+ this.isManualDisconnect = false;
38
+ this.reconnectAttempts = 0;
39
+ return this._connect();
40
+ }
41
+ async _connect() {
42
+ return new Promise((resolve, reject) => {
43
+ try {
44
+ this.authResolve = resolve;
45
+ this.authReject = reject;
46
+ const wsUrl = this._buildWebSocketUrl();
47
+ if (this.config.debug) {
48
+ console.log('[EventsModule] Connecting to:', wsUrl);
49
+ }
50
+ this.ws = new WebSocket(wsUrl);
51
+ const connectionTimeout = setTimeout(() => {
52
+ if (this.ws && this.ws.readyState !== WebSocket.OPEN) {
53
+ this.ws.close();
54
+ this.isConnecting = false;
55
+ this.authResolve = null;
56
+ this.authReject = null;
57
+ reject(new Error('Connection timeout'));
58
+ }
59
+ }, 10000);
60
+ this.ws.onopen = () => {
61
+ if (this.config.debug) {
62
+ console.log('[EventsModule] WebSocket connected, sending auth...');
63
+ }
64
+ clearTimeout(connectionTimeout);
65
+ if (this.bearerToken) {
66
+ const authMessage = {
67
+ type: 'auth',
68
+ token: this.bearerToken
69
+ };
70
+ this.ws.send(JSON.stringify(authMessage));
71
+ if (this.config.debug) {
72
+ console.log('[EventsModule] Sent auth message');
73
+ }
74
+ }
75
+ else {
76
+ this.isConnecting = false;
77
+ this.authResolve = null;
78
+ this.authReject = null;
79
+ this.ws.close(1008, 'Missing authentication token');
80
+ reject(new Error('Missing authentication token'));
81
+ }
82
+ };
83
+ this.ws.onmessage = (event) => {
84
+ try {
85
+ const message = JSON.parse(event.data);
86
+ this._handleMessage(message);
87
+ }
88
+ catch (err) {
89
+ if (this.config.debug) {
90
+ console.error('[EventsModule] Failed to parse message:', err);
91
+ }
92
+ }
93
+ };
94
+ this.ws.onerror = (error) => {
95
+ if (this.config.debug) {
96
+ console.error('[EventsModule] WebSocket error:', error);
97
+ }
98
+ clearTimeout(connectionTimeout);
99
+ this.isConnecting = false;
100
+ this.authResolve = null;
101
+ this.authReject = null;
102
+ this._emit('error', new Error('WebSocket error'));
103
+ reject(new Error('WebSocket error'));
104
+ };
105
+ this.ws.onclose = (event) => {
106
+ if (this.config.debug) {
107
+ console.log('[EventsModule] WebSocket closed:', event.code, event.reason);
108
+ }
109
+ clearTimeout(connectionTimeout);
110
+ this._stopPingInterval();
111
+ this.isConnecting = false;
112
+ if (this.authReject) {
113
+ this.authReject(new Error(event.reason || 'Connection closed before authentication'));
114
+ this.authResolve = null;
115
+ this.authReject = null;
116
+ }
117
+ this._emit('disconnect', event.reason || 'Connection closed');
118
+ if (!this.isManualDisconnect && this.config.autoReconnect) {
119
+ this._scheduleReconnect();
120
+ }
121
+ };
122
+ }
123
+ catch (err) {
124
+ this.isConnecting = false;
125
+ this.authResolve = null;
126
+ this.authReject = null;
127
+ reject(err);
128
+ }
129
+ });
130
+ }
131
+ disconnect() {
132
+ this.isManualDisconnect = true;
133
+ this._cleanup();
134
+ if (this.ws) {
135
+ this.ws.close(1000, 'Client disconnect');
136
+ this.ws = null;
137
+ }
138
+ if (this.config.debug) {
139
+ console.log('[EventsModule] Disconnected');
140
+ }
141
+ }
142
+ async subscribe(domain, resource, options) {
143
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
144
+ throw new Error('Not connected');
145
+ }
146
+ const subscriptionId = this._generateId();
147
+ return new Promise((resolve, reject) => {
148
+ const subscriptionData = options
149
+ ? { domain, resource, options }
150
+ : { domain, resource };
151
+ const pendingData = {
152
+ resolve: (sub) => {
153
+ this.subscriptions.set(sub.id, subscriptionData);
154
+ resolve(sub);
155
+ },
156
+ reject,
157
+ ...subscriptionData
158
+ };
159
+ this.pendingSubscriptions.set(subscriptionId, pendingData);
160
+ const message = {
161
+ type: 'subscribe',
162
+ subscription_id: subscriptionId,
163
+ domain,
164
+ resource,
165
+ options: {
166
+ filters: (options === null || options === void 0 ? void 0 : options.filters) || {},
167
+ include_data: (options === null || options === void 0 ? void 0 : options.include_data) || false
168
+ }
169
+ };
170
+ this.ws.send(JSON.stringify(message));
171
+ if (this.config.debug) {
172
+ console.log('[EventsModule] Subscribing:', message);
173
+ }
174
+ setTimeout(() => {
175
+ if (this.pendingSubscriptions.has(subscriptionId)) {
176
+ this.pendingSubscriptions.delete(subscriptionId);
177
+ reject(new Error('Subscription timeout'));
178
+ }
179
+ }, 10000);
180
+ });
181
+ }
182
+ async unsubscribe(subscriptionId) {
183
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
184
+ throw new Error('Not connected');
185
+ }
186
+ return new Promise((resolve, reject) => {
187
+ const message = {
188
+ type: 'unsubscribe',
189
+ subscription_id: subscriptionId
190
+ };
191
+ this.ws.send(JSON.stringify(message));
192
+ this.subscriptions.delete(subscriptionId);
193
+ if (this.config.debug) {
194
+ console.log('[EventsModule] Unsubscribing:', subscriptionId);
195
+ }
196
+ resolve();
197
+ });
198
+ }
199
+ on(event, callback) {
200
+ if (!this.listeners.has(event)) {
201
+ this.listeners.set(event, new Set());
202
+ }
203
+ this.listeners.get(event).add(callback);
204
+ }
205
+ off(event, callback) {
206
+ const listeners = this.listeners.get(event);
207
+ if (listeners) {
208
+ listeners.delete(callback);
209
+ }
210
+ }
211
+ get isConnected() {
212
+ return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
213
+ }
214
+ get currentUserId() {
215
+ return this.userId;
216
+ }
217
+ getSubscriptions() {
218
+ return new Map(this.subscriptions);
219
+ }
220
+ ping() {
221
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
222
+ this.ws.send(JSON.stringify({ type: 'ping' }));
223
+ }
224
+ }
225
+ updateConfig(config) {
226
+ this.config = { ...this.config, ...config };
227
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
228
+ this._stopPingInterval();
229
+ this._startPingInterval();
230
+ }
231
+ }
232
+ _buildWebSocketUrl() {
233
+ const httpConfig = this.http.config;
234
+ const baseUrl = httpConfig.baseUrl;
235
+ const wsUrl = baseUrl
236
+ .replace('https://', 'wss://')
237
+ .replace('http://', 'ws://');
238
+ return `${wsUrl}/v1/events/ws`;
239
+ }
240
+ _handleMessage(message) {
241
+ var _a;
242
+ if (this.config.debug) {
243
+ console.log('[EventsModule] Message received:', message);
244
+ }
245
+ switch (message.type) {
246
+ case 'connected':
247
+ this.isConnecting = false;
248
+ this.userId = message.user_id;
249
+ this._emit('connect', message);
250
+ if (this.authResolve) {
251
+ this.authResolve(message);
252
+ this.authResolve = null;
253
+ this.authReject = null;
254
+ }
255
+ this._startPingInterval();
256
+ if (this.reconnectAttempts > 0) {
257
+ this._resubscribeAll();
258
+ }
259
+ this.reconnectAttempts = 0;
260
+ break;
261
+ case 'auth_error':
262
+ this.isConnecting = false;
263
+ const error = message.error || 'Authentication failed';
264
+ if (this.authReject) {
265
+ this.authReject(new Error(error));
266
+ this.authResolve = null;
267
+ this.authReject = null;
268
+ }
269
+ (_a = this.ws) === null || _a === void 0 ? void 0 : _a.close(1008, error);
270
+ break;
271
+ case 'subscription_confirmed':
272
+ this._handleSubscriptionConfirmed(message);
273
+ break;
274
+ case 'unsubscribed':
275
+ this.subscriptions.delete(message.subscription_id);
276
+ break;
277
+ case 'notification':
278
+ this._emit('notification', message);
279
+ break;
280
+ case 'system_notification':
281
+ this._emit('system_notification', message);
282
+ break;
283
+ case 'pong':
284
+ break;
285
+ case 'error':
286
+ this._emit('error', message);
287
+ break;
288
+ default:
289
+ if (this.config.debug) {
290
+ console.warn('[EventsModule] Unknown message type:', message.type);
291
+ }
292
+ }
293
+ }
294
+ _handleSubscriptionConfirmed(message) {
295
+ const pending = this.pendingSubscriptions.get(message.subscription_id);
296
+ if (pending) {
297
+ this.pendingSubscriptions.delete(message.subscription_id);
298
+ const subscription = {
299
+ id: message.subscription_id,
300
+ domain: message.domain,
301
+ resource: message.resource,
302
+ filters: message.filters
303
+ };
304
+ pending.resolve(subscription);
305
+ }
306
+ this._emit('subscription_confirmed', message);
307
+ }
308
+ _emit(event, ...args) {
309
+ const listeners = this.listeners.get(event);
310
+ if (listeners) {
311
+ listeners.forEach((callback) => {
312
+ try {
313
+ callback(...args);
314
+ }
315
+ catch (err) {
316
+ console.error(`[EventsModule] Error in ${event} listener:`, err);
317
+ }
318
+ });
319
+ }
320
+ }
321
+ _startPingInterval() {
322
+ if (this.config.pingInterval > 0) {
323
+ this.pingIntervalId = setInterval(() => {
324
+ this.ping();
325
+ }, this.config.pingInterval);
326
+ if (this.config.debug) {
327
+ console.log('[EventsModule] Ping interval started:', this.config.pingInterval);
328
+ }
329
+ }
330
+ }
331
+ _stopPingInterval() {
332
+ if (this.pingIntervalId) {
333
+ clearInterval(this.pingIntervalId);
334
+ this.pingIntervalId = null;
335
+ }
336
+ }
337
+ _scheduleReconnect() {
338
+ if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
339
+ if (this.config.debug) {
340
+ console.log('[EventsModule] Max reconnect attempts reached');
341
+ }
342
+ this._emit('error', new Error('Max reconnect attempts reached'));
343
+ return;
344
+ }
345
+ this.reconnectAttempts++;
346
+ const delay = Math.min(this.config.reconnectDelay * Math.pow(2, this.reconnectAttempts - 1), this.config.maxReconnectDelay);
347
+ if (this.config.debug) {
348
+ console.log(`[EventsModule] Reconnecting in ${delay}ms (attempt ${this.reconnectAttempts})`);
349
+ }
350
+ this._emit('reconnecting', this.reconnectAttempts);
351
+ this.reconnectTimeoutId = setTimeout(async () => {
352
+ try {
353
+ await this._connect();
354
+ }
355
+ catch (err) {
356
+ if (this.config.debug) {
357
+ console.error('[EventsModule] Reconnect failed:', err);
358
+ }
359
+ }
360
+ }, delay);
361
+ }
362
+ async _resubscribeAll() {
363
+ if (this.config.debug) {
364
+ console.log('[EventsModule] Re-subscribing to', this.subscriptions.size, 'subscriptions');
365
+ }
366
+ const subscriptionsToRestore = new Map(this.subscriptions);
367
+ this.subscriptions.clear();
368
+ for (const [id, sub] of subscriptionsToRestore) {
369
+ try {
370
+ await this.subscribe(sub.domain, sub.resource, sub.options);
371
+ if (this.config.debug) {
372
+ console.log('[EventsModule] Re-subscribed:', sub.domain, sub.resource);
373
+ }
374
+ }
375
+ catch (err) {
376
+ if (this.config.debug) {
377
+ console.error('[EventsModule] Failed to re-subscribe:', err);
378
+ }
379
+ }
380
+ }
381
+ }
382
+ _cleanup() {
383
+ this._stopPingInterval();
384
+ if (this.reconnectTimeoutId) {
385
+ clearTimeout(this.reconnectTimeoutId);
386
+ this.reconnectTimeoutId = null;
387
+ }
388
+ for (const pending of this.pendingSubscriptions.values()) {
389
+ pending.reject(new Error('Connection closed'));
390
+ }
391
+ this.pendingSubscriptions.clear();
392
+ }
393
+ _generateId() {
394
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
395
+ const r = (Math.random() * 16) | 0;
396
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
397
+ return v.toString(16);
398
+ });
399
+ }
400
+ }
401
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/modules/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ export interface SubscriptionFilters {
2
+ chat_ids?: string[];
3
+ trip_ids?: string[];
4
+ user_ids?: string[];
5
+ events?: string[];
6
+ }
7
+ export interface SubscriptionOptions {
8
+ filters?: SubscriptionFilters;
9
+ include_data?: boolean;
10
+ }
11
+ export interface Subscription {
12
+ id: string;
13
+ domain: string;
14
+ resource: string;
15
+ filters: SubscriptionFilters;
16
+ }
17
+ export interface EventNotification {
18
+ type: 'notification';
19
+ subscription_id: string;
20
+ domain: string;
21
+ resource: string;
22
+ event: string;
23
+ resource_id: string;
24
+ chat_id?: string;
25
+ trip_id?: string;
26
+ user_id?: string;
27
+ timestamp: string;
28
+ [key: string]: any;
29
+ }
30
+ export interface SystemNotification {
31
+ type: 'system_notification';
32
+ event: string;
33
+ domain: 'system';
34
+ resource: string;
35
+ action?: string;
36
+ message?: string;
37
+ [key: string]: any;
38
+ }
39
+ export interface ConnectedMessage {
40
+ type: 'connected';
41
+ user_id: string;
42
+ message: string;
43
+ system_subscriptions: string[];
44
+ }
45
+ export interface SubscriptionConfirmedMessage {
46
+ type: 'subscription_confirmed';
47
+ subscription_id: string;
48
+ domain: string;
49
+ resource: string;
50
+ filters: SubscriptionFilters;
51
+ }
52
+ export interface UnsubscribedMessage {
53
+ type: 'unsubscribed';
54
+ subscription_id: string;
55
+ }
56
+ export interface PongMessage {
57
+ type: 'pong';
58
+ }
59
+ export interface ErrorMessage {
60
+ type: 'error';
61
+ message: string;
62
+ code: number;
63
+ }
64
+ export interface AuthErrorMessage {
65
+ type: 'auth_error';
66
+ error: string;
67
+ }
68
+ export type WebSocketMessage = ConnectedMessage | SubscriptionConfirmedMessage | UnsubscribedMessage | EventNotification | SystemNotification | PongMessage | ErrorMessage | AuthErrorMessage;
69
+ export interface EventsModuleEvents {
70
+ connect: (message: ConnectedMessage) => void;
71
+ disconnect: (reason?: string) => void;
72
+ notification: (notification: EventNotification) => void;
73
+ system_notification: (notification: SystemNotification) => void;
74
+ error: (error: ErrorMessage | Error) => void;
75
+ subscription_confirmed: (subscription: SubscriptionConfirmedMessage) => void;
76
+ reconnecting: (attempt: number) => void;
77
+ }
78
+ export interface EventsModuleConfig {
79
+ pingInterval?: number;
80
+ autoReconnect?: boolean;
81
+ maxReconnectAttempts?: number;
82
+ reconnectDelay?: number;
83
+ maxReconnectDelay?: number;
84
+ debug?: boolean;
85
+ }
86
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":""}
@@ -4,13 +4,18 @@ import { AuthModule } from '../modules/auth';
4
4
  import { UserModule } from '../modules/user';
5
5
  import { SystemModule } from '../modules/system';
6
6
  import { AppsModule } from '../modules/apps';
7
+ import { EventsModule } from '../modules/events';
8
+ import type { EventsModuleConfig } from '../types/events';
7
9
  export declare class HlmrClient {
8
10
  private httpClient;
9
11
  readonly auth: AuthModule;
10
12
  readonly user: UserModule;
11
13
  readonly system: SystemModule;
12
14
  readonly apps: AppsModule;
13
- constructor(options: HlmrClientOptions);
15
+ readonly events: EventsModule;
16
+ constructor(options: HlmrClientOptions & {
17
+ eventsConfig?: EventsModuleConfig;
18
+ });
14
19
  private buildConfig;
15
20
  setBearerToken(token: string): void;
16
21
  clearBearerToken(): void;
@@ -27,5 +32,10 @@ export declare class HlmrClient {
27
32
  timeout?: number;
28
33
  headers?: Record<string, string>;
29
34
  }): Promise<import("../types/common").HttpResponse<T>>;
35
+ get<T>(path: string, options?: import('../types/common').RequestOptions): Promise<import("../types/common").HttpResponse<T>>;
36
+ post<T>(path: string, body?: any, options?: import('../types/common').RequestOptions): Promise<import("../types/common").HttpResponse<T>>;
37
+ put<T>(path: string, body?: any, options?: import('../types/common').RequestOptions): Promise<import("../types/common").HttpResponse<T>>;
38
+ patch<T>(path: string, body?: any, options?: import('../types/common').RequestOptions): Promise<import("../types/common").HttpResponse<T>>;
39
+ delete<T>(path: string, options?: import('../types/common').RequestOptions): Promise<import("../types/common").HttpResponse<T>>;
30
40
  }
31
41
  //# sourceMappingURL=HlmrClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HlmrClient.d.ts","sourceRoot":"","sources":["../../../src/client/HlmrClient.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAa;IAG/B,SAAgB,IAAI,EAAE,UAAU,CAAC;IAGjC,SAAgB,IAAI,EAAE,UAAU,CAAC;IAGjC,SAAgB,MAAM,EAAE,YAAY,CAAC;IAGrC,SAAgB,IAAI,EAAE,UAAU,CAAC;gBAErB,OAAO,EAAE,iBAAiB;IActC,OAAO,CAAC,WAAW;IAoCnB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUnC,gBAAgB,IAAI,IAAI;IAOxB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUlC,cAAc,IAAI,IAAI;IAOtB,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IActC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI;IAOjF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOhC,MAAM,CAAC,cAAc,CACnB,WAAW,EAAE,MAAM,OAAO,YAAY,EACtC,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,UAAU;IAab,MAAM,CAAC,aAAa,CAAC,KAAK,GAAE,MAAkB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU;IASjF,MAAM,CAAC,cAAc,CAAC,KAAK,GAAE,MAAkB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU;IASlF,MAAM,CAAC,UAAU,CAAC,KAAK,GAAE,MAAkB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU;IAaxE,aAAa,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAgB,EAC3D,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;CAInE"}
1
+ {"version":3,"file":"HlmrClient.d.ts","sourceRoot":"","sources":["../../../src/client/HlmrClient.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,14 @@ export type { UserProfile } from './types/user';
5
5
  export type { SystemPingResponse, SystemPingOptions, SystemVersionResponse } from './types/system';
6
6
  export type { LogSessionOptions, LogSessionResponse } from './modules/apps';
7
7
  export { AppsModule } from './modules/apps';
8
+ export { EventsModule } from './modules/events';
9
+ export type { Subscription, SubscriptionOptions, SubscriptionFilters, EventNotification, SystemNotification, ConnectedMessage, SubscriptionConfirmedMessage, UnsubscribedMessage, ErrorMessage, WebSocketMessage, EventsModuleConfig, EventsModuleEvents } from './types/events';
8
10
  export { HlmrApiError } from './types/errors';
9
11
  export type { JSendResponse, JSendSuccessResponse, JSendFailResponse, JSendErrorResponse } from './types/errors';
10
12
  export type { HttpClient } from './utils/http';
11
13
  export { isJSendResponse, isJSendSuccess, isJSendFail, isJSendError } from './utils/jsend';
12
14
  export { clearAllCache, preventBackNavigation, performLogout } from './utils/auth';
13
15
  export type { LogoutOptions } from './utils/auth';
14
- export declare const SDK_VERSION = "1.0.0";
16
+ export declare const SDK_VERSION = "1.0.25";
15
17
  export declare const SDK_NAME = "hlmr-sdk-js";
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,QAAQ,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,QAAQ,gBAAgB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { HttpClient } from '../utils/http';
2
+ import type { Subscription, SubscriptionOptions, ConnectedMessage, EventsModuleConfig, EventsModuleEvents } from '../types/events';
3
+ type EventCallback<K extends keyof EventsModuleEvents> = EventsModuleEvents[K];
4
+ export declare class EventsModule {
5
+ private http;
6
+ private config;
7
+ private ws;
8
+ private pingIntervalId;
9
+ private reconnectAttempts;
10
+ private reconnectTimeoutId;
11
+ private isConnecting;
12
+ private isManualDisconnect;
13
+ private subscriptions;
14
+ private pendingSubscriptions;
15
+ private listeners;
16
+ private userId;
17
+ private bearerToken;
18
+ private authResolve;
19
+ private authReject;
20
+ constructor(http: HttpClient, config?: EventsModuleConfig);
21
+ connect(): Promise<ConnectedMessage>;
22
+ private _connect;
23
+ disconnect(): void;
24
+ subscribe(domain: string, resource: string, options?: SubscriptionOptions): Promise<Subscription>;
25
+ unsubscribe(subscriptionId: string): Promise<void>;
26
+ on<K extends keyof EventsModuleEvents>(event: K, callback: EventCallback<K>): void;
27
+ off<K extends keyof EventsModuleEvents>(event: K, callback: EventCallback<K>): void;
28
+ get isConnected(): boolean;
29
+ get currentUserId(): string | null;
30
+ getSubscriptions(): Map<string, {
31
+ domain: string;
32
+ resource: string;
33
+ options?: SubscriptionOptions;
34
+ }>;
35
+ ping(): void;
36
+ updateConfig(config: Partial<EventsModuleConfig>): void;
37
+ private _buildWebSocketUrl;
38
+ private _handleMessage;
39
+ private _handleSubscriptionConfirmed;
40
+ private _emit;
41
+ private _startPingInterval;
42
+ private _stopPingInterval;
43
+ private _scheduleReconnect;
44
+ private _resubscribeAll;
45
+ private _cleanup;
46
+ private _generateId;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/modules/events.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAInB,gBAAgB,EAKhB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAYzB,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAK/E,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IAGnC,OAAO,CAAC,aAAa,CAA+F;IACpH,OAAO,CAAC,oBAAoB,CAMb;IAGf,OAAO,CAAC,SAAS,CAA2D;IAG5E,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,UAAU,CAAuC;gBAE7C,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAcnD,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAgB5B,QAAQ;IAgHtB,UAAU,IAAI,IAAI;IAsBZ,SAAS,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,CAAC;IA2DlB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BxD,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACnC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,IAAI;IAaP,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,IAAI;IAUP,IAAI,WAAW,IAAI,OAAO,CAEzB;IAKD,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAKD,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAOpG,IAAI,IAAI,IAAI;IASZ,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAYvD,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,cAAc;IAuEtB,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;YAmCZ,eAAe;IAsB7B,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,WAAW;CAOpB"}