@actschurch/ccms-sdk 0.0.4 → 0.0.5
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 +55 -1
- package/dist/core/Config.d.ts +21 -2
- package/dist/core/Config.d.ts.map +1 -1
- package/dist/core/Config.js.map +1 -1
- package/dist/core/HttpClient.d.ts +5 -0
- package/dist/core/HttpClient.d.ts.map +1 -1
- package/dist/core/HttpClient.js +75 -0
- package/dist/core/HttpClient.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/models/file/Folder.d.ts +179 -0
- package/dist/models/file/Folder.d.ts.map +1 -0
- package/dist/models/file/Folder.js +6 -0
- package/dist/models/file/Folder.js.map +1 -0
- package/dist/models/file/ModelView/FileRecordModelView.d.ts +3 -0
- package/dist/models/file/ModelView/FileRecordModelView.d.ts.map +1 -1
- package/dist/models/file/PresignUploadRequest.d.ts +4 -0
- package/dist/models/file/PresignUploadRequest.d.ts.map +1 -1
- package/dist/models/file/index.d.ts +1 -0
- package/dist/models/file/index.d.ts.map +1 -1
- package/dist/models/file/index.js +1 -0
- package/dist/models/file/index.js.map +1 -1
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/socialmedia/index.d.ts +322 -0
- package/dist/models/socialmedia/index.d.ts.map +1 -0
- package/dist/models/socialmedia/index.js +6 -0
- package/dist/models/socialmedia/index.js.map +1 -0
- package/dist/models/system/ModelView/Health.d.ts +14 -11
- package/dist/models/system/ModelView/Health.d.ts.map +1 -1
- package/dist/models/system/ModelView/Health.js +1 -0
- package/dist/models/system/ModelView/Health.js.map +1 -1
- package/dist/models/system/ModelView/RabbitMQManagement.d.ts +93 -92
- package/dist/models/system/ModelView/RabbitMQManagement.d.ts.map +1 -1
- package/dist/models/system/ModelView/RedisManagement.d.ts +94 -42
- package/dist/models/system/ModelView/RedisManagement.d.ts.map +1 -1
- package/dist/models/task/ModelView/CreateTask.d.ts +14 -17
- package/dist/models/task/ModelView/CreateTask.d.ts.map +1 -1
- package/dist/models/task/ModelView/UpdateTaskPriorityRequest.d.ts +10 -0
- package/dist/models/task/ModelView/UpdateTaskPriorityRequest.d.ts.map +1 -0
- package/dist/models/task/ModelView/UpdateTaskPriorityRequest.js +2 -0
- package/dist/models/task/ModelView/UpdateTaskPriorityRequest.js.map +1 -0
- package/dist/models/task/ModelView/UpdateTaskProjectRequest.d.ts +10 -0
- package/dist/models/task/ModelView/UpdateTaskProjectRequest.d.ts.map +1 -0
- package/dist/models/task/ModelView/UpdateTaskProjectRequest.js +2 -0
- package/dist/models/task/ModelView/UpdateTaskProjectRequest.js.map +1 -0
- package/dist/models/task/ModelView/index.d.ts +2 -0
- package/dist/models/task/ModelView/index.d.ts.map +1 -1
- package/dist/models/task/ModelView/index.js +2 -0
- package/dist/models/task/ModelView/index.js.map +1 -1
- package/dist/react/CCMSProvider.d.ts +1 -19
- package/dist/react/CCMSProvider.d.ts.map +1 -1
- package/dist/react/CCMSProvider.js +71 -56
- package/dist/react/CCMSProvider.js.map +1 -1
- package/dist/react/hooks/index.d.ts +0 -1
- package/dist/react/hooks/index.d.ts.map +1 -1
- package/dist/react/hooks/index.js +1 -3
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/services/index.d.ts +1 -0
- package/dist/react/hooks/services/index.d.ts.map +1 -1
- package/dist/react/hooks/services/index.js +2 -0
- package/dist/react/hooks/services/index.js.map +1 -1
- package/dist/react/hooks/services/useSocialMediaServices.d.ts +43 -0
- package/dist/react/hooks/services/useSocialMediaServices.d.ts.map +1 -0
- package/dist/react/hooks/services/useSocialMediaServices.js +65 -0
- package/dist/react/hooks/services/useSocialMediaServices.js.map +1 -0
- package/dist/react/hooks/services/useUsersServices.d.ts +5 -1
- package/dist/react/hooks/services/useUsersServices.d.ts.map +1 -1
- package/dist/react/hooks/services/useUsersServices.js +6 -0
- package/dist/react/hooks/services/useUsersServices.js.map +1 -1
- package/dist/react/hooks/useCCMS.d.ts +7 -4
- package/dist/react/hooks/useCCMS.d.ts.map +1 -1
- package/dist/react/hooks/useCCMS.js +8 -4
- package/dist/react/hooks/useCCMS.js.map +1 -1
- package/dist/realtime/index.d.ts +1 -1
- package/dist/realtime/index.d.ts.map +1 -1
- package/dist/realtime/index.js +2 -5
- package/dist/realtime/index.js.map +1 -1
- package/dist/realtime/presence/ActivityTracker.d.ts +141 -0
- package/dist/realtime/presence/ActivityTracker.d.ts.map +1 -0
- package/dist/realtime/presence/ActivityTracker.js +342 -0
- package/dist/realtime/presence/ActivityTracker.js.map +1 -0
- package/dist/realtime/presence/AutoHeartbeatManager.d.ts +68 -0
- package/dist/realtime/presence/AutoHeartbeatManager.d.ts.map +1 -0
- package/dist/realtime/presence/AutoHeartbeatManager.js +160 -0
- package/dist/realtime/presence/AutoHeartbeatManager.js.map +1 -0
- package/dist/realtime/presence/IdleDetector.d.ts +107 -0
- package/dist/realtime/presence/IdleDetector.d.ts.map +1 -0
- package/dist/realtime/presence/IdleDetector.js +270 -0
- package/dist/realtime/presence/IdleDetector.js.map +1 -0
- package/dist/realtime/presence/PresenceClient.d.ts +18 -2
- package/dist/realtime/presence/PresenceClient.d.ts.map +1 -1
- package/dist/realtime/presence/PresenceClient.js +54 -1
- package/dist/realtime/presence/PresenceClient.js.map +1 -1
- package/dist/realtime/presence/PresenceManager.d.ts +191 -0
- package/dist/realtime/presence/PresenceManager.d.ts.map +1 -0
- package/dist/realtime/presence/PresenceManager.js +314 -0
- package/dist/realtime/presence/PresenceManager.js.map +1 -0
- package/dist/realtime/presence/PresenceProvider.d.ts +16 -0
- package/dist/realtime/presence/PresenceProvider.d.ts.map +1 -1
- package/dist/realtime/presence/PresenceProvider.js +16 -0
- package/dist/realtime/presence/PresenceProvider.js.map +1 -1
- package/dist/realtime/presence/index.d.ts +5 -0
- package/dist/realtime/presence/index.d.ts.map +1 -1
- package/dist/realtime/presence/index.js +10 -0
- package/dist/realtime/presence/index.js.map +1 -1
- package/dist/realtime/presence/types.d.ts +23 -5
- package/dist/realtime/presence/types.d.ts.map +1 -1
- package/dist/realtime/presence/types.js +5 -5
- package/dist/realtime/presence/types.js.map +1 -1
- package/dist/realtime/presence/utils.d.ts +87 -0
- package/dist/realtime/presence/utils.d.ts.map +1 -0
- package/dist/realtime/presence/utils.js +191 -0
- package/dist/realtime/presence/utils.js.map +1 -0
- package/dist/realtime/shared/BaseSignalRClient.d.ts.map +1 -1
- package/dist/realtime/shared/BaseSignalRClient.js +38 -4
- package/dist/realtime/shared/BaseSignalRClient.js.map +1 -1
- package/dist/services/file/FileService.d.ts +55 -1
- package/dist/services/file/FileService.d.ts.map +1 -1
- package/dist/services/file/FileService.js +114 -0
- package/dist/services/file/FileService.js.map +1 -1
- package/dist/services/file/FolderService.d.ts +99 -0
- package/dist/services/file/FolderService.d.ts.map +1 -0
- package/dist/services/file/FolderService.js +147 -0
- package/dist/services/file/FolderService.js.map +1 -0
- package/dist/services/file/index.d.ts +3 -0
- package/dist/services/file/index.d.ts.map +1 -1
- package/dist/services/file/index.js +3 -0
- package/dist/services/file/index.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/socialmedia/SocialMediaAccountService.d.ts +38 -0
- package/dist/services/socialmedia/SocialMediaAccountService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaAccountService.js +59 -0
- package/dist/services/socialmedia/SocialMediaAccountService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaAdsService.d.ts +74 -0
- package/dist/services/socialmedia/SocialMediaAdsService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaAdsService.js +130 -0
- package/dist/services/socialmedia/SocialMediaAdsService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaDashboardService.d.ts +137 -0
- package/dist/services/socialmedia/SocialMediaDashboardService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaDashboardService.js +179 -0
- package/dist/services/socialmedia/SocialMediaDashboardService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaMetricsService.d.ts +56 -0
- package/dist/services/socialmedia/SocialMediaMetricsService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaMetricsService.js +105 -0
- package/dist/services/socialmedia/SocialMediaMetricsService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaPostService.d.ts +56 -0
- package/dist/services/socialmedia/SocialMediaPostService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaPostService.js +94 -0
- package/dist/services/socialmedia/SocialMediaPostService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaStoryService.d.ts +47 -0
- package/dist/services/socialmedia/SocialMediaStoryService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaStoryService.js +77 -0
- package/dist/services/socialmedia/SocialMediaStoryService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaThresholdService.d.ts +47 -0
- package/dist/services/socialmedia/SocialMediaThresholdService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaThresholdService.js +75 -0
- package/dist/services/socialmedia/SocialMediaThresholdService.js.map +1 -0
- package/dist/services/socialmedia/SocialMediaVideoService.d.ts +47 -0
- package/dist/services/socialmedia/SocialMediaVideoService.d.ts.map +1 -0
- package/dist/services/socialmedia/SocialMediaVideoService.js +77 -0
- package/dist/services/socialmedia/SocialMediaVideoService.js.map +1 -0
- package/dist/services/socialmedia/index.d.ts +43 -0
- package/dist/services/socialmedia/index.d.ts.map +1 -0
- package/dist/services/socialmedia/index.js +41 -0
- package/dist/services/socialmedia/index.js.map +1 -0
- package/dist/services/system/HealthService.d.ts +15 -0
- package/dist/services/system/HealthService.d.ts.map +1 -1
- package/dist/services/system/HealthService.js +21 -15
- package/dist/services/system/HealthService.js.map +1 -1
- package/dist/services/system/RabbitMQManagementService.d.ts +13 -9
- package/dist/services/system/RabbitMQManagementService.d.ts.map +1 -1
- package/dist/services/system/RabbitMQManagementService.js +23 -40
- package/dist/services/system/RabbitMQManagementService.js.map +1 -1
- package/dist/services/system/RedisManagementService.d.ts +13 -6
- package/dist/services/system/RedisManagementService.d.ts.map +1 -1
- package/dist/services/system/RedisManagementService.js +42 -20
- package/dist/services/system/RedisManagementService.js.map +1 -1
- package/dist/services/task/TaskService.d.ts +100 -1
- package/dist/services/task/TaskService.d.ts.map +1 -1
- package/dist/services/task/TaskService.js +167 -0
- package/dist/services/task/TaskService.js.map +1 -1
- package/dist/services/types.d.ts +2 -0
- package/dist/services/types.d.ts.map +1 -1
- package/dist/services/users/PresenceAnalyticsService.d.ts +179 -0
- package/dist/services/users/PresenceAnalyticsService.d.ts.map +1 -0
- package/dist/services/users/PresenceAnalyticsService.js +232 -0
- package/dist/services/users/PresenceAnalyticsService.js.map +1 -0
- package/dist/services/users/RightService.d.ts +16 -20
- package/dist/services/users/RightService.d.ts.map +1 -1
- package/dist/services/users/RightService.js +3 -37
- package/dist/services/users/RightService.js.map +1 -1
- package/dist/services/users/RoleService.d.ts +27 -0
- package/dist/services/users/RoleService.d.ts.map +1 -1
- package/dist/services/users/RoleService.js +54 -0
- package/dist/services/users/RoleService.js.map +1 -1
- package/dist/services/users/SystemService.d.ts +9 -0
- package/dist/services/users/SystemService.d.ts.map +1 -1
- package/dist/services/users/SystemService.js +20 -0
- package/dist/services/users/SystemService.js.map +1 -1
- package/dist/services/users/UserPreferencesService.d.ts +27 -0
- package/dist/services/users/UserPreferencesService.d.ts.map +1 -1
- package/dist/services/users/UserPreferencesService.js +54 -0
- package/dist/services/users/UserPreferencesService.js.map +1 -1
- package/dist/services/users/UserPushDeviceService.d.ts +18 -0
- package/dist/services/users/UserPushDeviceService.d.ts.map +1 -1
- package/dist/services/users/UserPushDeviceService.js +35 -0
- package/dist/services/users/UserPushDeviceService.js.map +1 -1
- package/dist/services/users/UserService.d.ts +142 -1
- package/dist/services/users/UserService.d.ts.map +1 -1
- package/dist/services/users/UserService.js +265 -0
- package/dist/services/users/UserService.js.map +1 -1
- package/dist/services/users/index.d.ts +5 -2
- package/dist/services/users/index.d.ts.map +1 -1
- package/dist/services/users/index.js +3 -0
- package/dist/services/users/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/react/hooks/useRealtime.d.ts +0 -63
- package/dist/react/hooks/useRealtime.d.ts.map +0 -1
- package/dist/react/hooks/useRealtime.js +0 -146
- package/dist/react/hooks/useRealtime.js.map +0 -1
- package/dist/realtime/RealtimeClient.d.ts +0 -99
- package/dist/realtime/RealtimeClient.d.ts.map +0 -1
- package/dist/realtime/RealtimeClient.js +0 -278
- package/dist/realtime/RealtimeClient.js.map +0 -1
- package/dist/realtime/types.d.ts +0 -76
- package/dist/realtime/types.d.ts.map +0 -1
- package/dist/realtime/types.js +0 -55
- package/dist/realtime/types.js.map +0 -1
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PresenceManager
|
|
3
|
+
* High-level wrapper that combines PresenceClient with automatic features
|
|
4
|
+
* Provides a simpler API than managing individual components
|
|
5
|
+
* Matches the functionality of the working test app
|
|
6
|
+
*/
|
|
7
|
+
import { PresenceClient } from './PresenceClient';
|
|
8
|
+
import { AutoHeartbeatManager } from './AutoHeartbeatManager';
|
|
9
|
+
import { ActivityTracker, ActivityPlatform } from './ActivityTracker';
|
|
10
|
+
import { IdleDetector, IdleCallback } from './IdleDetector';
|
|
11
|
+
import { PresenceStatus, UserPresenceUpdate, PresenceStats, PresenceClientOptions } from './types';
|
|
12
|
+
import { ConnectionState } from '../shared/types';
|
|
13
|
+
export interface PresenceManagerOptions extends Omit<PresenceClientOptions, 'platform'> {
|
|
14
|
+
/** Enable automatic heartbeat (default: true) */
|
|
15
|
+
autoHeartbeat?: boolean;
|
|
16
|
+
/** Heartbeat interval in seconds (default: 30) */
|
|
17
|
+
heartbeatInterval?: number;
|
|
18
|
+
/** Enable activity tracking (default: true) */
|
|
19
|
+
activityTracking?: boolean;
|
|
20
|
+
/** Activity debounce delay in milliseconds (default: 5000) - DEPRECATED */
|
|
21
|
+
activityDebounce?: number;
|
|
22
|
+
/** High-significance activity throttle in milliseconds (default: 2000) */
|
|
23
|
+
highSignificanceThrottle?: number;
|
|
24
|
+
/** Low-significance activity throttle in milliseconds (default: 5000) */
|
|
25
|
+
lowSignificanceThrottle?: number;
|
|
26
|
+
/** Enable idle detection (default: true) */
|
|
27
|
+
idleDetection?: boolean;
|
|
28
|
+
/** Idle timeout in minutes (default: 5) */
|
|
29
|
+
idleTimeout?: number;
|
|
30
|
+
/** Idle grace period in seconds (default: 30) */
|
|
31
|
+
idleGracePeriod?: number;
|
|
32
|
+
/** Platform type (default: auto-detect) */
|
|
33
|
+
platform?: ActivityPlatform;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* All-in-one presence manager with automatic features
|
|
37
|
+
* Simplifies presence integration by managing all components automatically
|
|
38
|
+
*/
|
|
39
|
+
export declare class PresenceManager {
|
|
40
|
+
/** Core presence client */
|
|
41
|
+
readonly client: PresenceClient;
|
|
42
|
+
/** Automatic heartbeat manager */
|
|
43
|
+
readonly heartbeat: AutoHeartbeatManager;
|
|
44
|
+
/** Activity tracker */
|
|
45
|
+
readonly activityTracker: ActivityTracker;
|
|
46
|
+
/** Idle detector */
|
|
47
|
+
readonly idleDetector: IdleDetector;
|
|
48
|
+
private options;
|
|
49
|
+
private unsubscribeHandlers;
|
|
50
|
+
/**
|
|
51
|
+
* Create PresenceManager
|
|
52
|
+
* @param hubUrl - PresenceHub URL (e.g., 'http://localhost:5201/presencehub')
|
|
53
|
+
* @param getToken - Function that returns JWT token
|
|
54
|
+
* @param options - Configuration options
|
|
55
|
+
*/
|
|
56
|
+
constructor(hubUrl: string, getToken: () => Promise<string | null>, options?: PresenceManagerOptions);
|
|
57
|
+
/**
|
|
58
|
+
* Setup automatic features to start/stop with connection
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
private setupAutoFeatures;
|
|
62
|
+
/**
|
|
63
|
+
* Connect to PresenceHub
|
|
64
|
+
* Automatically starts enabled automatic features
|
|
65
|
+
*/
|
|
66
|
+
connect(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Disconnect from PresenceHub
|
|
69
|
+
* Automatically stops all automatic features
|
|
70
|
+
*/
|
|
71
|
+
disconnect(): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Get connection state
|
|
74
|
+
*/
|
|
75
|
+
getConnectionState(): ConnectionState;
|
|
76
|
+
/**
|
|
77
|
+
* Check if connected
|
|
78
|
+
*/
|
|
79
|
+
isConnected(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Update current user's status
|
|
82
|
+
* @param status - Presence status
|
|
83
|
+
* @param message - Optional activity message
|
|
84
|
+
*/
|
|
85
|
+
updateStatus(status: PresenceStatus, message?: string): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Get list of online user IDs
|
|
88
|
+
*/
|
|
89
|
+
getOnlineUsers(): Promise<string[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Get specific user's presence
|
|
92
|
+
*/
|
|
93
|
+
getUserPresence(userId: string): Promise<UserPresenceUpdate | null>;
|
|
94
|
+
/**
|
|
95
|
+
* Get all presence records (online + recent offline)
|
|
96
|
+
*/
|
|
97
|
+
getAllPresence(): Promise<UserPresenceUpdate[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Get current user's presence
|
|
100
|
+
*/
|
|
101
|
+
getCurrentUserPresence(): UserPresenceUpdate | null;
|
|
102
|
+
/**
|
|
103
|
+
* Get online users as a map
|
|
104
|
+
*/
|
|
105
|
+
getOnlineUsersMap(): Map<string, UserPresenceUpdate>;
|
|
106
|
+
/**
|
|
107
|
+
* Get presence statistics (Admin only)
|
|
108
|
+
*/
|
|
109
|
+
getPresenceStats(): Promise<PresenceStats>;
|
|
110
|
+
/**
|
|
111
|
+
* Set all users offline (Admin only)
|
|
112
|
+
*/
|
|
113
|
+
setAllUsersOffline(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Force disconnect a user (Admin only)
|
|
116
|
+
*/
|
|
117
|
+
forceDisconnectUser(userId: string): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Subscribe to presence events
|
|
120
|
+
* @param event - Event name
|
|
121
|
+
* @param handler - Event handler function
|
|
122
|
+
* @returns Unsubscribe function
|
|
123
|
+
*/
|
|
124
|
+
on<T = unknown>(event: string, handler: (data: T) => void): () => void;
|
|
125
|
+
/**
|
|
126
|
+
* Subscribe to idle state changes
|
|
127
|
+
* @param callback - Called when idle state changes
|
|
128
|
+
*/
|
|
129
|
+
onIdleChange(callback: IdleCallback): void;
|
|
130
|
+
/**
|
|
131
|
+
* Enable/disable automatic heartbeat
|
|
132
|
+
*/
|
|
133
|
+
setAutoHeartbeat(enabled: boolean): void;
|
|
134
|
+
/**
|
|
135
|
+
* Update heartbeat interval
|
|
136
|
+
*/
|
|
137
|
+
setHeartbeatInterval(seconds: number): void;
|
|
138
|
+
/**
|
|
139
|
+
* Enable/disable activity tracking
|
|
140
|
+
*/
|
|
141
|
+
setActivityTracking(enabled: boolean): void;
|
|
142
|
+
/**
|
|
143
|
+
* Update activity debounce delay
|
|
144
|
+
*/
|
|
145
|
+
setActivityDebounce(ms: number): void;
|
|
146
|
+
/**
|
|
147
|
+
* Enable/disable idle detection
|
|
148
|
+
*/
|
|
149
|
+
setIdleDetection(enabled: boolean): void;
|
|
150
|
+
/**
|
|
151
|
+
* Update idle timeout
|
|
152
|
+
*/
|
|
153
|
+
setIdleTimeout(minutes: number): void;
|
|
154
|
+
/**
|
|
155
|
+
* Update high-significance activity throttle
|
|
156
|
+
*/
|
|
157
|
+
setHighSignificanceThrottle(ms: number): void;
|
|
158
|
+
/**
|
|
159
|
+
* Update low-significance activity throttle
|
|
160
|
+
*/
|
|
161
|
+
setLowSignificanceThrottle(ms: number): void;
|
|
162
|
+
/**
|
|
163
|
+
* Update idle grace period
|
|
164
|
+
*/
|
|
165
|
+
setIdleGracePeriod(seconds: number): void;
|
|
166
|
+
/**
|
|
167
|
+
* Get last heartbeat timestamp
|
|
168
|
+
*/
|
|
169
|
+
getLastHeartbeat(): Date | null;
|
|
170
|
+
/**
|
|
171
|
+
* Get last activity timestamp
|
|
172
|
+
*/
|
|
173
|
+
getLastActivity(): Date;
|
|
174
|
+
/**
|
|
175
|
+
* Get current idle status
|
|
176
|
+
*/
|
|
177
|
+
isIdle(): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Get remaining time before going idle (in seconds)
|
|
180
|
+
*/
|
|
181
|
+
getRemainingIdleTime(): number;
|
|
182
|
+
/**
|
|
183
|
+
* Get formatted remaining idle time string
|
|
184
|
+
*/
|
|
185
|
+
getFormattedIdleTime(): string;
|
|
186
|
+
/**
|
|
187
|
+
* Destroy the manager and cleanup all resources
|
|
188
|
+
*/
|
|
189
|
+
destroy(): Promise<void>;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=PresenceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresenceManager.d.ts","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PresenceManager
|
|
3
|
+
* High-level wrapper that combines PresenceClient with automatic features
|
|
4
|
+
* Provides a simpler API than managing individual components
|
|
5
|
+
* Matches the functionality of the working test app
|
|
6
|
+
*/
|
|
7
|
+
import { PresenceClient } from './PresenceClient';
|
|
8
|
+
import { AutoHeartbeatManager } from './AutoHeartbeatManager';
|
|
9
|
+
import { ActivityTracker } from './ActivityTracker';
|
|
10
|
+
import { IdleDetector } from './IdleDetector';
|
|
11
|
+
import { ConnectionState } from '../shared/types';
|
|
12
|
+
/**
|
|
13
|
+
* All-in-one presence manager with automatic features
|
|
14
|
+
* Simplifies presence integration by managing all components automatically
|
|
15
|
+
*/
|
|
16
|
+
export class PresenceManager {
|
|
17
|
+
/**
|
|
18
|
+
* Create PresenceManager
|
|
19
|
+
* @param hubUrl - PresenceHub URL (e.g., 'http://localhost:5201/presencehub')
|
|
20
|
+
* @param getToken - Function that returns JWT token
|
|
21
|
+
* @param options - Configuration options
|
|
22
|
+
*/
|
|
23
|
+
constructor(hubUrl, getToken, options = {}) {
|
|
24
|
+
this.unsubscribeHandlers = [];
|
|
25
|
+
// Merge with defaults
|
|
26
|
+
this.options = {
|
|
27
|
+
autoHeartbeat: options.autoHeartbeat !== false,
|
|
28
|
+
heartbeatInterval: options.heartbeatInterval || 30,
|
|
29
|
+
activityTracking: options.activityTracking !== false,
|
|
30
|
+
activityDebounce: options.activityDebounce || 5000,
|
|
31
|
+
highSignificanceThrottle: options.highSignificanceThrottle || 2000,
|
|
32
|
+
lowSignificanceThrottle: options.lowSignificanceThrottle || 5000,
|
|
33
|
+
idleDetection: options.idleDetection !== false,
|
|
34
|
+
idleTimeout: options.idleTimeout || 5,
|
|
35
|
+
idleGracePeriod: options.idleGracePeriod ?? 30,
|
|
36
|
+
platform: options.platform || 'web',
|
|
37
|
+
...options,
|
|
38
|
+
};
|
|
39
|
+
// Create core client - map platform for PresenceClient (web or react-native only)
|
|
40
|
+
const clientPlatform = this.options.platform === 'node' ? 'web' : this.options.platform;
|
|
41
|
+
const clientOptions = {
|
|
42
|
+
...options,
|
|
43
|
+
platform: clientPlatform,
|
|
44
|
+
};
|
|
45
|
+
this.client = new PresenceClient(hubUrl, getToken, clientOptions);
|
|
46
|
+
// Create automatic feature managers
|
|
47
|
+
this.heartbeat = new AutoHeartbeatManager(this.client, this.options.heartbeatInterval);
|
|
48
|
+
this.activityTracker = new ActivityTracker(this.client, this.options.activityDebounce, this.options.highSignificanceThrottle, this.options.lowSignificanceThrottle, this.options.platform);
|
|
49
|
+
this.idleDetector = new IdleDetector(this.client, this.activityTracker, this.options.idleTimeout, this.options.idleGracePeriod);
|
|
50
|
+
// Setup automatic feature activation on connection
|
|
51
|
+
this.setupAutoFeatures();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Setup automatic features to start/stop with connection
|
|
55
|
+
* @private
|
|
56
|
+
*/
|
|
57
|
+
setupAutoFeatures() {
|
|
58
|
+
const unsubscribe = this.client.onStateChange((state) => {
|
|
59
|
+
if (state === ConnectionState.Connected) {
|
|
60
|
+
console.log('[PresenceManager] Connected - starting automatic features');
|
|
61
|
+
// Start heartbeat if enabled
|
|
62
|
+
if (this.options.autoHeartbeat) {
|
|
63
|
+
this.heartbeat.start();
|
|
64
|
+
}
|
|
65
|
+
// Start activity tracking if enabled
|
|
66
|
+
if (this.options.activityTracking) {
|
|
67
|
+
this.activityTracker.start();
|
|
68
|
+
}
|
|
69
|
+
// Start idle detection if enabled
|
|
70
|
+
if (this.options.idleDetection) {
|
|
71
|
+
this.idleDetector.start();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (state === ConnectionState.Disconnected) {
|
|
75
|
+
console.log('[PresenceManager] Disconnected - stopping automatic features');
|
|
76
|
+
// Stop all automatic features
|
|
77
|
+
this.heartbeat.stop();
|
|
78
|
+
this.activityTracker.stop();
|
|
79
|
+
this.idleDetector.stop();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
this.unsubscribeHandlers.push(unsubscribe);
|
|
83
|
+
}
|
|
84
|
+
// ===== Connection Methods =====
|
|
85
|
+
/**
|
|
86
|
+
* Connect to PresenceHub
|
|
87
|
+
* Automatically starts enabled automatic features
|
|
88
|
+
*/
|
|
89
|
+
async connect() {
|
|
90
|
+
await this.client.connect();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Disconnect from PresenceHub
|
|
94
|
+
* Automatically stops all automatic features
|
|
95
|
+
*/
|
|
96
|
+
async disconnect() {
|
|
97
|
+
await this.client.disconnect();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get connection state
|
|
101
|
+
*/
|
|
102
|
+
getConnectionState() {
|
|
103
|
+
return this.client.getState();
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if connected
|
|
107
|
+
*/
|
|
108
|
+
isConnected() {
|
|
109
|
+
return this.client.getState() === ConnectionState.Connected;
|
|
110
|
+
}
|
|
111
|
+
// ===== User Presence Methods =====
|
|
112
|
+
/**
|
|
113
|
+
* Update current user's status
|
|
114
|
+
* @param status - Presence status
|
|
115
|
+
* @param message - Optional activity message
|
|
116
|
+
*/
|
|
117
|
+
async updateStatus(status, message) {
|
|
118
|
+
await this.client.updateStatus(status, message);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get list of online user IDs
|
|
122
|
+
*/
|
|
123
|
+
async getOnlineUsers() {
|
|
124
|
+
return await this.client.getOnlineUsers();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get specific user's presence
|
|
128
|
+
*/
|
|
129
|
+
async getUserPresence(userId) {
|
|
130
|
+
return await this.client.getUserPresence(userId);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get all presence records (online + recent offline)
|
|
134
|
+
*/
|
|
135
|
+
async getAllPresence() {
|
|
136
|
+
return await this.client.getAllPresence();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get current user's presence
|
|
140
|
+
*/
|
|
141
|
+
getCurrentUserPresence() {
|
|
142
|
+
return this.client.getCurrentUserPresence();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get online users as a map
|
|
146
|
+
*/
|
|
147
|
+
getOnlineUsersMap() {
|
|
148
|
+
return this.client.getOnlineUsersMap();
|
|
149
|
+
}
|
|
150
|
+
// ===== Admin Methods =====
|
|
151
|
+
/**
|
|
152
|
+
* Get presence statistics (Admin only)
|
|
153
|
+
*/
|
|
154
|
+
async getPresenceStats() {
|
|
155
|
+
return await this.client.getPresenceStats();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Set all users offline (Admin only)
|
|
159
|
+
*/
|
|
160
|
+
async setAllUsersOffline() {
|
|
161
|
+
await this.client.setAllUsersOffline();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Force disconnect a user (Admin only)
|
|
165
|
+
*/
|
|
166
|
+
async forceDisconnectUser(userId) {
|
|
167
|
+
await this.client.forceDisconnectUser(userId);
|
|
168
|
+
}
|
|
169
|
+
// ===== Event Subscriptions =====
|
|
170
|
+
/**
|
|
171
|
+
* Subscribe to presence events
|
|
172
|
+
* @param event - Event name
|
|
173
|
+
* @param handler - Event handler function
|
|
174
|
+
* @returns Unsubscribe function
|
|
175
|
+
*/
|
|
176
|
+
on(event, handler) {
|
|
177
|
+
return this.client.on(event, handler);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Subscribe to idle state changes
|
|
181
|
+
* @param callback - Called when idle state changes
|
|
182
|
+
*/
|
|
183
|
+
onIdleChange(callback) {
|
|
184
|
+
this.idleDetector.stop(); // Stop current if running
|
|
185
|
+
this.idleDetector.start(callback); // Restart with new callback
|
|
186
|
+
}
|
|
187
|
+
// ===== Configuration Methods =====
|
|
188
|
+
/**
|
|
189
|
+
* Enable/disable automatic heartbeat
|
|
190
|
+
*/
|
|
191
|
+
setAutoHeartbeat(enabled) {
|
|
192
|
+
this.options.autoHeartbeat = enabled;
|
|
193
|
+
if (enabled && this.isConnected()) {
|
|
194
|
+
this.heartbeat.start();
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
this.heartbeat.stop();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Update heartbeat interval
|
|
202
|
+
*/
|
|
203
|
+
setHeartbeatInterval(seconds) {
|
|
204
|
+
this.options.heartbeatInterval = seconds;
|
|
205
|
+
this.heartbeat.setInterval(seconds);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Enable/disable activity tracking
|
|
209
|
+
*/
|
|
210
|
+
setActivityTracking(enabled) {
|
|
211
|
+
this.options.activityTracking = enabled;
|
|
212
|
+
if (enabled && this.isConnected()) {
|
|
213
|
+
this.activityTracker.start();
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
this.activityTracker.stop();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Update activity debounce delay
|
|
221
|
+
*/
|
|
222
|
+
setActivityDebounce(ms) {
|
|
223
|
+
this.options.activityDebounce = ms;
|
|
224
|
+
this.activityTracker.setDebounce(ms);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Enable/disable idle detection
|
|
228
|
+
*/
|
|
229
|
+
setIdleDetection(enabled) {
|
|
230
|
+
this.options.idleDetection = enabled;
|
|
231
|
+
if (enabled && this.isConnected()) {
|
|
232
|
+
this.idleDetector.start();
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
this.idleDetector.stop();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Update idle timeout
|
|
240
|
+
*/
|
|
241
|
+
setIdleTimeout(minutes) {
|
|
242
|
+
this.options.idleTimeout = minutes;
|
|
243
|
+
this.idleDetector.setIdleTimeout(minutes);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Update high-significance activity throttle
|
|
247
|
+
*/
|
|
248
|
+
setHighSignificanceThrottle(ms) {
|
|
249
|
+
this.options.highSignificanceThrottle = ms;
|
|
250
|
+
this.activityTracker.setHighSignificanceThrottle(ms);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Update low-significance activity throttle
|
|
254
|
+
*/
|
|
255
|
+
setLowSignificanceThrottle(ms) {
|
|
256
|
+
this.options.lowSignificanceThrottle = ms;
|
|
257
|
+
this.activityTracker.setLowSignificanceThrottle(ms);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Update idle grace period
|
|
261
|
+
*/
|
|
262
|
+
setIdleGracePeriod(seconds) {
|
|
263
|
+
this.options.idleGracePeriod = seconds;
|
|
264
|
+
this.idleDetector.setGracePeriod(seconds);
|
|
265
|
+
}
|
|
266
|
+
// ===== Status Methods =====
|
|
267
|
+
/**
|
|
268
|
+
* Get last heartbeat timestamp
|
|
269
|
+
*/
|
|
270
|
+
getLastHeartbeat() {
|
|
271
|
+
return this.heartbeat.getLastHeartbeat();
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get last activity timestamp
|
|
275
|
+
*/
|
|
276
|
+
getLastActivity() {
|
|
277
|
+
return new Date(this.activityTracker.getLastActivityTime());
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Get current idle status
|
|
281
|
+
*/
|
|
282
|
+
isIdle() {
|
|
283
|
+
return this.idleDetector.getIdleStatus();
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get remaining time before going idle (in seconds)
|
|
287
|
+
*/
|
|
288
|
+
getRemainingIdleTime() {
|
|
289
|
+
return this.idleDetector.getRemainingTime();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get formatted remaining idle time string
|
|
293
|
+
*/
|
|
294
|
+
getFormattedIdleTime() {
|
|
295
|
+
return this.idleDetector.getFormattedRemainingTime();
|
|
296
|
+
}
|
|
297
|
+
// ===== Cleanup =====
|
|
298
|
+
/**
|
|
299
|
+
* Destroy the manager and cleanup all resources
|
|
300
|
+
*/
|
|
301
|
+
async destroy() {
|
|
302
|
+
console.log('[PresenceManager] Destroying');
|
|
303
|
+
// Stop all automatic features
|
|
304
|
+
this.heartbeat.stop();
|
|
305
|
+
this.activityTracker.stop();
|
|
306
|
+
this.idleDetector.stop();
|
|
307
|
+
// Unsubscribe from all handlers
|
|
308
|
+
this.unsubscribeHandlers.forEach((unsub) => unsub());
|
|
309
|
+
this.unsubscribeHandlers = [];
|
|
310
|
+
// Disconnect and destroy client
|
|
311
|
+
await this.client.destroy();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=PresenceManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresenceManager.js","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAyBlD;;;GAGG;AACH,MAAM,OAAO,eAAe;IA2B1B;;;;;OAKG;IACH,YACE,MAAc,EACd,QAAsC,EACtC,UAAkC,EAAE;QAX9B,wBAAmB,GAAsB,EAAE,CAAC;QAalD,sBAAsB;QACtB,IAAI,CAAC,OAAO,GAAG;YACb,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;YAC9C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,EAAE;YAClD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,KAAK,KAAK;YACpD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;YAClD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,IAAI,IAAI;YAClE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,IAAI,IAAI;YAChE,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;YAC9C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;YACrC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;YAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;YACnC,GAAG,OAAO;SACX,CAAC;QAEF,kFAAkF;QAClF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxF,MAAM,aAAa,GAA0B;YAC3C,GAAG,OAAO;YACV,QAAQ,EAAE,cAAc;SACzB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAElE,oCAAoC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEvF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CACxC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAC7B,IAAI,CAAC,OAAO,CAAC,wBAAwB,EACrC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAClC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,OAAO,CAAC,eAAe,CAC7B,CAAC;QAEF,mDAAmD;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;YACtD,IAAI,KAAK,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAEzE,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBAED,qCAAqC;gBACrC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAClC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC/B,CAAC;gBAED,kCAAkC;gBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,KAAK,eAAe,CAAC,YAAY,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;gBAE5E,8BAA8B;gBAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,iCAAiC;IAEjC;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,eAAe,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,oCAAoC;IAEpC;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,OAAgB;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,4BAA4B;IAE5B;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,kCAAkC;IAElC;;;;;OAKG;IACH,EAAE,CAAc,KAAa,EAAE,OAA0B;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAsB;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,0BAA0B;QACpD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAA4B;IACjE,CAAC;IAED,oCAAoC;IAEpC;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QACrC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAgB;QAClC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC;QACxC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,EAAU;QAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC;QACrC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,2BAA2B,CAAC,EAAU;QACpC,IAAI,CAAC,OAAO,CAAC,wBAAwB,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,EAAU;QACnC,IAAI,CAAC,OAAO,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAe;QAChC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,6BAA6B;IAE7B;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;IACvD,CAAC;IAED,sBAAsB;IAEtB;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,8BAA8B;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAEzB,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9B,gCAAgC;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
* PresenceProvider
|
|
3
3
|
* React Context Provider for presence management
|
|
4
4
|
* Auto-connects on login, auto-disconnects on logout, handles activity detection
|
|
5
|
+
*
|
|
6
|
+
* @deprecated For new projects, use CCMSProvider with presenceUrl config instead.
|
|
7
|
+
* This provider is maintained for backward compatibility and fine-grained control.
|
|
8
|
+
*
|
|
9
|
+
* Migration example:
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Old way:
|
|
12
|
+
* <PresenceProvider authManager={authManager} baseUrl={baseUrl}>
|
|
13
|
+
* <App />
|
|
14
|
+
* </PresenceProvider>
|
|
15
|
+
*
|
|
16
|
+
* // New way (recommended):
|
|
17
|
+
* <CCMSProvider config={{ baseUrl, presenceUrl, getToken: async () => token }}>
|
|
18
|
+
* <App />
|
|
19
|
+
* </CCMSProvider>
|
|
20
|
+
* ```
|
|
5
21
|
*/
|
|
6
22
|
import { PresenceProviderProps } from './types';
|
|
7
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenceProvider.d.ts","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceProvider.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PresenceProvider.d.ts","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,EAGL,qBAAqB,EAItB,MAAM,SAAS,CAAC;AAyFjB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,OAAO,EACP,OAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,EAAE,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAoQrC"}
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
* PresenceProvider
|
|
3
3
|
* React Context Provider for presence management
|
|
4
4
|
* Auto-connects on login, auto-disconnects on logout, handles activity detection
|
|
5
|
+
*
|
|
6
|
+
* @deprecated For new projects, use CCMSProvider with presenceUrl config instead.
|
|
7
|
+
* This provider is maintained for backward compatibility and fine-grained control.
|
|
8
|
+
*
|
|
9
|
+
* Migration example:
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Old way:
|
|
12
|
+
* <PresenceProvider authManager={authManager} baseUrl={baseUrl}>
|
|
13
|
+
* <App />
|
|
14
|
+
* </PresenceProvider>
|
|
15
|
+
*
|
|
16
|
+
* // New way (recommended):
|
|
17
|
+
* <CCMSProvider config={{ baseUrl, presenceUrl, getToken: async () => token }}>
|
|
18
|
+
* <App />
|
|
19
|
+
* </CCMSProvider>
|
|
20
|
+
* ```
|
|
5
21
|
*/
|
|
6
22
|
import React, { useRef, useReducer, useEffect, useCallback, useMemo } from 'react';
|
|
7
23
|
import { PresenceContext } from './PresenceContext';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresenceProvider.js","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceProvider.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PresenceProvider.js","sourceRoot":"","sources":["../../../src/realtime/presence/PresenceProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export * from './types';
|
|
6
6
|
export * from './PresenceClient';
|
|
7
|
+
export * from './utils';
|
|
8
|
+
export * from './AutoHeartbeatManager';
|
|
9
|
+
export * from './ActivityTracker';
|
|
10
|
+
export * from './IdleDetector';
|
|
11
|
+
export * from './PresenceManager';
|
|
7
12
|
export * from './ActivityDetector';
|
|
8
13
|
export * from './PresenceContext';
|
|
9
14
|
export * from './PresenceProvider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/realtime/presence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/realtime/presence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,SAAS,CAAC;AAGxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -2,8 +2,18 @@
|
|
|
2
2
|
* Presence Module
|
|
3
3
|
* Real-time user presence tracking with automatic status management
|
|
4
4
|
*/
|
|
5
|
+
// Core types and client
|
|
5
6
|
export * from './types';
|
|
6
7
|
export * from './PresenceClient';
|
|
8
|
+
// Utility helpers
|
|
9
|
+
export * from './utils';
|
|
10
|
+
// Automatic feature managers
|
|
11
|
+
export * from './AutoHeartbeatManager';
|
|
12
|
+
export * from './ActivityTracker';
|
|
13
|
+
export * from './IdleDetector';
|
|
14
|
+
// High-level manager (recommended)
|
|
15
|
+
export * from './PresenceManager';
|
|
16
|
+
// Legacy components (still available for backward compatibility)
|
|
7
17
|
export * from './ActivityDetector';
|
|
8
18
|
export * from './PresenceContext';
|
|
9
19
|
export * from './PresenceProvider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/realtime/presence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/realtime/presence/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAwB;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,SAAS,CAAC;AAExB,6BAA6B;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,iEAAiE;AACjE,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,mEAAmE;AACnE,qEAAqE"}
|