@gamention/pulse-core
v0.3.7
Published
Core client SDK for Pulse — WebSocket connection, state management, and API for real-time collaboration
Maintainers
Readme
@gamention/pulse-core
Core client SDK for Pulse — WebSocket connection management, state management, and API for real-time collaboration.
Installation
npm install @gamention/pulse-coreQuick Start
import { PulseClient } from '@gamention/pulse-core';
const client = new PulseClient({
apiKey: 'pk_...',
token: 'jwt_token_from_your_backend',
room: 'my-page',
endpoint: 'wss://pulse.hire.rest',
});
client.connect();
// Listen for real-time events
client.state.on('threads', (threads) => {
console.log('Threads updated:', threads);
});
client.state.on('presence', (users) => {
console.log('Online users:', users);
});
// Create a comment thread
client.createThread('Great work on this section!', {
position: { x: 0.5, y: 0.3 },
mentions: [],
});
// Reply to a thread
client.reply('thread-id', 'Thanks!');
// React to a comment
client.addReaction('comment-id', 'comment', '\u{1F44D}');
// Upload a file
const result = await client.uploadFile(file);API
PulseClient
| Method | Description |
|--------|-------------|
| connect() | Connect to the WebSocket server |
| disconnect() | Disconnect and clean up |
| createThread(body, options?) | Create a new comment thread |
| reply(threadId, body, mentions?) | Reply to a thread |
| editComment(commentId, body, mentions?) | Edit a comment |
| deleteComment(commentId) | Delete a comment |
| resolveThread(threadId, resolved?) | Resolve/reopen a thread |
| addReaction(targetId, targetType, emoji) | Add a reaction |
| removeReaction(reactionId) | Remove a reaction |
| moveCursor(position) | Send cursor position |
| uploadFile(file) | Upload an image/audio/video file |
| markRead(notificationId) | Mark notification as read |
| markAllRead() | Mark all notifications as read |
StateManager (client.state)
| Property | Description |
|----------|-------------|
| user | Current authenticated user |
| threads | All threads in the room |
| presence | Online users |
| notifications | User's notifications |
| unreadCount | Unread notification count |
Subscribe to changes with client.state.on(event, callback).
When to Use This
Use @gamention/pulse-core when you want to build your own UI on top of Pulse. For drop-in web components, use @gamention/pulse-elements instead.
Documentation
Full docs at pulse.hire.rest/docs
License
MIT
