From fde8d3161e43c270acf1ee4d56bac89cda5d5497 Mon Sep 17 00:00:00 2001 From: rajdubey Date: Tue, 11 Aug 2026 17:33:40 +0530 Subject: [PATCH 1/2] Added AI Integration references --- sdk/javascript/ai-agents.mdx | 17 ++++ sdk/javascript/all-real-time-listeners.mdx | 17 ++++ sdk/javascript/authentication-overview.mdx | 17 ++++ sdk/javascript/block-users.mdx | 17 ++++ sdk/javascript/campaigns.mdx | 17 ++++ sdk/javascript/card-messages.mdx | 17 ++++ sdk/javascript/delivery-read-receipts.mdx | 17 ++++ sdk/javascript/group-kick-ban-members.mdx | 18 ++++ sdk/javascript/llms-javascript-v4.mdx | 113 +++++++++++++++++++++ sdk/javascript/mentions.mdx | 17 ++++ sdk/javascript/message-filtering.mdx | 16 +++ sdk/javascript/reactions.mdx | 17 ++++ sdk/javascript/receive-message.mdx | 17 ++++ sdk/javascript/retrieve-conversations.mdx | 17 ++++ sdk/javascript/retrieve-group-members.mdx | 16 +++ sdk/javascript/retrieve-groups.mdx | 17 ++++ sdk/javascript/retrieve-users.mdx | 17 ++++ sdk/javascript/send-message.mdx | 18 ++++ sdk/javascript/threaded-messages.mdx | 17 ++++ sdk/javascript/upload-files.mdx | 17 ++++ 20 files changed, 436 insertions(+) create mode 100644 sdk/javascript/llms-javascript-v4.mdx diff --git a/sdk/javascript/ai-agents.mdx b/sdk/javascript/ai-agents.mdx index 04056763f..df69e8c8d 100644 --- a/sdk/javascript/ai-agents.mdx +++ b/sdk/javascript/ai-agents.mdx @@ -3,6 +3,23 @@ title: "AI Agents" description: "Handle CometChat AI Agent events, tool calls, and agent messages in JavaScript apps." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.addAIAssistantListener(listenerId, ...)` · `CometChat.removeAIAssistantListener(listenerId)` · `CometChat.addMessageListener(listenerId, ...)` · `CometChat.removeMessageListener(listenerId)` | +| Key classes | `CometChat.AIAssistantBaseEvent` · `CometChat.AIAssistantMessage` · `CometChat.AIToolResultMessage` · `CometChat.AIToolArgumentMessage` · `CometChat.AIToolCall` | +| Primary output | Real-time run events are delivered as `CometChat.AIAssistantBaseEvent` objects to the `onAIAssistantEventReceived` callback; after the run completes, persisted `AIAssistantMessage` / `AIToolResultMessage` / `AIToolArgumentMessage` objects arrive on the `MessageListener` | +| Listeners registered | `AIAssistantListener` via `addAIAssistantListener` / `removeAIAssistantListener` (callback `onAIAssistantEventReceived`); `CometChat.MessageListener` via `addMessageListener` / `removeMessageListener` (callbacks `onAIAssistantMessageReceived`, `onAIToolResultReceived`, `onAIToolArgumentsReceived`) | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Agents only respond to text messages. `Run Start` and `Run Finished` events are always emitted; Tool Call events only appear when tools are invoked | +| Related | [AI Moderation](/sdk/javascript/ai-moderation) · [AI User Copilot](/sdk/javascript/ai-user-copilot-overview) · [Card Messages](/sdk/javascript/card-messages) · [Send a Message](/sdk/javascript/send-message) | +| Full reference | [`AIAssistantBaseEvent`](/sdk/reference/messages#aiassistantbaseevent) · [`AIAssistantMessage`](/sdk/reference/messages#aiassistantmessage) · [`AIToolResultMessage`](/sdk/reference/messages#aitoolresultmessage) · [`AIToolArgumentMessage`](/sdk/reference/messages#aitoolargumentmessage) | + + + ## AI Agents Overview AI Agents enable intelligent, automated interactions within your application. They can process user messages, trigger tools, and respond with contextually relevant information. For a broader introduction, see the [AI Agents section](/ai-agents). diff --git a/sdk/javascript/all-real-time-listeners.mdx b/sdk/javascript/all-real-time-listeners.mdx index bd78c0c1e..0c7e3bad9 100644 --- a/sdk/javascript/all-real-time-listeners.mdx +++ b/sdk/javascript/all-real-time-listeners.mdx @@ -3,6 +3,23 @@ title: "All Real Time Listeners" description: "Use CometChat real-time listeners for user presence, groups, messages, calls, AI assistant events, and ongoing calls." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.addUserListener(id, new CometChat.UserListener({...}))` · `CometChat.addGroupListener(id, new CometChat.GroupListener({...}))` · `CometChat.addMessageListener(id, new CometChat.MessageListener({...}))` · `CometChat.addCallListener(id, new CometChat.CallListener({...}))` · `CometChat.addAIAssistantListener(id, new CometChat.AIAssistantListener({...}))` · `CometChat.addLoginListener(id, new CometChat.LoginListener({...}))` · `CometChat.addConnectionListener(id, new CometChat.ConnectionListener({...}))` | +| Key classes | `CometChat.UserListener` · `CometChat.GroupListener` · `CometChat.MessageListener` · `CometChat.CallListener` · `CometChat.AIAssistantListener` · `CometChat.LoginListener` · `CometChat.ConnectionListener` | +| Primary output | Each listener fires typed callbacks — e.g. `onUserOnline(user)`, `onGroupMemberJoined(action, user, group)`, `onTextMessageReceived(message)`, `onMessagesDelivered(receipt)`, `onIncomingCallReceived(call)`, `onAIAssistantEventReceived(event)`, `loginSuccess(user)`, `onConnected()` | +| Listeners registered | `UserListener` (`onUserOnline` · `onUserOffline`); `GroupListener` (`onGroupMemberJoined` · `onGroupMemberLeft` · `onGroupMemberKicked` · `onGroupMemberBanned` · `onGroupMemberUnbanned` · `onGroupMemberScopeChanged` · `onMemberAddedToGroup`); `MessageListener` (`onTextMessageReceived` · `onMediaMessageReceived` · `onCustomMessageReceived` · `onTypingStarted` · `onTypingEnded` · `onMessagesDelivered` · `onMessagesRead` · `onMessageEdited` · `onMessageDeleted` · `onMessageReactionAdded` · `onCardMessageReceived` · `onAIAssistantMessageReceived`); `CallListener` (`onIncomingCallReceived` · `onOutgoingCallAccepted` · `onOutgoingCallRejected` · `onIncomingCallCancelled` · `onCallEndedMessageReceived`); `AIAssistantListener` (`onAIAssistantEventReceived`); `LoginListener` (`loginSuccess` · `loginFailure` · `logoutSuccess` · `logoutFailure`); `ConnectionListener` (`onConnected` · `inConnecting` · `onDisconnected` · `onFeatureThrottled`). Remove each with the matching `remove*Listener(id)` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Listener IDs must be unique per listener; use the same ID to remove it. Always call the matching `remove*Listener(id)` on unmount to avoid memory leaks and duplicate handling. `OngoingCallListener` belongs to the **Calls SDK** (not the Chat SDK) and is used via `CometChatCalls.addCallEventListener()` | +| Related | [Receive a Message](/sdk/javascript/receive-message) · [Delivery & Read Receipts](/sdk/javascript/delivery-read-receipts) · [Typing Indicators](/sdk/javascript/typing-indicators) · [User Presence](/sdk/javascript/user-presence) | +| Full reference | [`User`](/sdk/reference/entities#user) · [`MessageReceipt`](/sdk/reference/auxiliary#messagereceipt) · [`AIAssistantBaseEvent`](/sdk/reference/messages#aiassistantbaseevent) · [`CometChatException`](/sdk/reference/auxiliary#cometchatexception) | + + + CometChat provides 4 listeners viz. 1. [User Listener](/sdk/javascript/all-real-time-listeners#user-listener) diff --git a/sdk/javascript/authentication-overview.mdx b/sdk/javascript/authentication-overview.mdx index 1b5fc8728..07c417761 100644 --- a/sdk/javascript/authentication-overview.mdx +++ b/sdk/javascript/authentication-overview.mdx @@ -4,6 +4,23 @@ sidebarTitle: "Authentication" description: "Create users and authenticate them securely with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.login(UID, authKey)` · `CometChat.login(authToken)` · `CometChat.getLoggedinUser()` · `CometChat.logout()` · `CometChat.createUser(user, authKey)` | +| Key classes | `CometChat.User` · `CometChat.CometChatException` | +| Primary output | `login()` resolves to a `CometChat.User`; `getLoggedinUser()` resolves to the `CometChat.User` or `null` when no session exists; `logout()` resolves on success; all reject with `CometChat.CometChatException` | +| Listeners registered | `CometChat.LoginListener` via `CometChat.addLoginListener(listenerID, ...)` / `CometChat.removeLoginListener(listenerID)`; key callbacks `loginSuccess`, `loginFailure`, `logoutSuccess`, `logoutFailure` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk), and the user must already exist (create via the [Dashboard](https://app.cometchat.com) or the [Create User API](https://api-explorer.cometchat.com/reference/creates-user)) | +| Constraints | Auth Key login and `createUser()` with an Auth Key are for development/testing only — never ship an Auth Key in client code. For production, generate an [Auth Token](https://api-explorer.cometchat.com/reference/create-authtoken) server-side and pass it to `login(authToken)` | +| Related | [User Management](/sdk/javascript/user-management) · [Connection Status](/sdk/javascript/connection-status) · [All Real-Time Listeners](/sdk/javascript/all-real-time-listeners) · [Send a Message](/sdk/javascript/send-message) | +| Full reference | [`User`](/sdk/reference/entities#user) · [`CometChatException`](/sdk/reference/auxiliary#cometchatexception) | + + + ## Create User Before you log in a user, you must add the user to CometChat. diff --git a/sdk/javascript/block-users.mdx b/sdk/javascript/block-users.mdx index c6295b621..b6a7d4713 100644 --- a/sdk/javascript/block-users.mdx +++ b/sdk/javascript/block-users.mdx @@ -3,6 +3,23 @@ title: "Block Users" description: "Block and unblock users in chat apps with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.blockUsers(usersList)` · `CometChat.unblockUsers(usersList)` · `blockedUsersRequest.fetchNext()` (build via `BlockedUsersRequestBuilder`) | +| Request builder | `CometChat.BlockedUsersRequestBuilder` — configure with `.setLimit()` · `.setSearchKeyword()` · `.setDirection()`; then `.build()` → `.fetchNext()` | +| Key classes | `CometChat.User` (access via `getBlockedByMe()`, `getHasBlockedMe()`); direction via `CometChat.BlockedUsersRequest.directions.BLOCKED_BY_ME` / `.HAS_BLOCKED_ME` / `.BOTH` | +| Primary output | `blockUsers()` / `unblockUsers()` resolve to a `{ uid: "success" \| "fail" }` object (each UID processed independently); `fetchNext()` resolves to `Promise`; all reject with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | `setDirection()` default is `BOTH`; `blockUsers()` / `unblockUsers()` take an array of UIDs | +| Related | [Retrieve Users](/sdk/javascript/retrieve-users) · [User Presence](/sdk/javascript/user-presence) · [User Management](/sdk/javascript/user-management) · [Flag a Message](/sdk/javascript/flag-message) | +| Full reference | [`User`](/sdk/reference/entities#user) | + + + ## Block Users Block users to prevent all communication with them. Use `blockUsers()` with an array of UIDs. diff --git a/sdk/javascript/campaigns.mdx b/sdk/javascript/campaigns.mdx index 20253d779..fc5ef04b4 100644 --- a/sdk/javascript/campaigns.mdx +++ b/sdk/javascript/campaigns.mdx @@ -3,6 +3,23 @@ title: "Campaigns" description: "Fetch notification feed items, listen for real-time delivery, mark items as read/delivered, report engagement, and track push notifications using the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.markFeedItemAsRead(feedItem)` · `CometChat.markFeedItemAsDelivered(feedItem)` · `CometChat.markFeedItemsAsDelivered(feedItems)` · `CometChat.reportFeedEngagement(feedItem, interactionString)` · `CometChat.getNotificationFeedUnreadCount()` · `CometChat.getNotificationFeedItem(id)` · `CometChat.markPushNotificationDelivered(pushNotification)` · `CometChat.markPushNotificationClicked(pushNotification)` | +| Request builder | `new CometChat.NotificationFeedRequestBuilder().setLimit(limit).setReadState(state).setCategory(category).setChannelId(channelId).setTags(tags).build()` → `.fetchNext()` · also `NotificationCategoriesRequestBuilder().setLimit(limit).build()` → `.fetchNext()` | +| Key classes | `CometChat.NotificationFeedItem` · `CometChat.NotificationCategory` · `CometChat.PushNotification` · `CometChat.CardMessage` | +| Primary output | `NotificationFeedRequest.fetchNext()` resolves to `CometChat.NotificationFeedItem[]` (empty array when exhausted); `getNotificationFeedUnreadCount()` resolves to `{ count: number }`; mark/report methods resolve on success; all reject with `CometChat.CometChatException` | +| Listeners registered | Notification feed listener via `CometChat.addNotificationFeedListener("feedListener", ...)` / `CometChat.removeNotificationFeedListener("feedListener")`; key callback `onFeedItemReceived`. Card chat messages arrive on `CometChat.MessageListener`'s `onCardMessageReceived` callback | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); channels, categories, templates, and campaigns configured in the [Dashboard](/campaigns#setup-flow). Render cards with `@cometchat/cards-react` | +| Constraints | Card messages are **receive-only** — created and sent exclusively via the Platform (REST) API or Dashboard Bubble Builder; the SDK exposes the raw Card Schema JSON via `getCard()`. The Cards library is a pure renderer and does not execute card actions — your app must handle action callbacks | +| Related | [Card Messages](/sdk/javascript/card-messages) · [Receive a Message](/sdk/javascript/receive-message) · [All Real-Time Listeners](/sdk/javascript/all-real-time-listeners) · [Send a Message](/sdk/javascript/send-message) | + + + CometChat Campaigns lets you deliver targeted, rich notifications to users via an in-app notification feed. Each notification is a **Card Schema JSON** — a structured layout rendered natively by the CometChat Cards library. The SDK provides APIs to fetch feed items, listen for real-time delivery, mark items as read/delivered, report engagement, and retrieve unread counts. diff --git a/sdk/javascript/card-messages.mdx b/sdk/javascript/card-messages.mdx index 91d4ccc2b..f1a108059 100644 --- a/sdk/javascript/card-messages.mdx +++ b/sdk/javascript/card-messages.mdx @@ -3,6 +3,23 @@ title: "Card Messages" description: "Receive and render rich card messages with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.addMessageListener(listenerID, new CometChat.MessageListener({...}))` · `CometChat.addAIAssistantListener(listenerID, new CometChat.AIAssistantListener({...}))` · `cardMessage.getCard()` · `message.getElements()` · `element.getType()` / `element.getData()` | +| Key classes | `CometChat.CardMessage` · `CometChat.MessageListener` · `CometChat.AIAssistantMessage` · `CometChat.AIAssistantElement` · `CometChat.AIAssistantListener` · `CometChat.AIAssistantBaseEvent` (`AIAssistantCardStartedEvent` · `AIAssistantCardReceivedEvent` · `AIAssistantCardEndedEvent`) | +| Primary output | Cards are receive-only. Standalone cards arrive as a `CardMessage` (`getCard()` returns the raw Card Schema JSON, or `undefined`); inline cards arrive as elements on an `AIAssistantMessage` (`getElements()` returns `AIAssistantElement[]`); streaming cards arrive as `card_start` / `card` / `card_end` events (`getCard()` on the `card` event) | +| Listeners registered | `MessageListener` — `onCardMessageReceived(cardMessage: CometChat.CardMessage)` and `onAIAssistantMessageReceived(message: CometChat.AIAssistantMessage)`; `AIAssistantListener` — `onAIAssistantEventReceived(event: CometChat.AIAssistantBaseEvent)` for `card_start` / `card` / `card_end`. Remove with `CometChat.removeMessageListener(id)` / `CometChat.removeAIAssistantListener(id)` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Card support is **receive-only** — cards cannot be composed or sent from the SDK (they are authored server-side via the Platform REST API or Dashboard). Branch on `getCategory() === "card"` (a card's `getType()` returns `"text"`). The SDK never interprets the card body; rendering is your app's responsibility. Streaming and persisted cards for the same card share a `cardId` — correlate to avoid rendering twice. Always remove listeners on unmount | +| Related | [Receive a Message](/sdk/javascript/receive-message) · [AI Agents](/sdk/javascript/ai-agents) · [All Real Time Listeners](/sdk/javascript/all-real-time-listeners) · [Send a Message](/sdk/javascript/send-message) | +| Full reference | [`CardMessage`](/sdk/reference/messages#cardmessage) · [`AIAssistantMessage`](/sdk/reference/messages#aiassistantmessage) · [`AIAssistantElement`](/sdk/reference/messages#aiassistantelement) · [`AIAssistantBaseEvent`](/sdk/reference/messages#aiassistantbaseevent) | + + + Card messages let your app display rich, structured content — such as product cards, confirmations, or AI-generated summaries — inside a conversation. In the JavaScript SDK, card support is **receive-only**: the SDK deserializes incoming cards and hands you their raw payload through typed accessors, and your app is responsible for turning that payload into UI. The body of a card is **Card Schema JSON** — the same structured layout used by [Campaigns notification feeds](/sdk/javascript/campaigns). Cards are authored server-side (they cannot be composed or sent from the SDK) via the [Platform (REST) API](/rest-api/messages/send-message) or the **Dashboard Bubble Builder**, and delivered to clients like any other message. diff --git a/sdk/javascript/delivery-read-receipts.mdx b/sdk/javascript/delivery-read-receipts.mdx index aa076ccb5..3e44da187 100644 --- a/sdk/javascript/delivery-read-receipts.mdx +++ b/sdk/javascript/delivery-read-receipts.mdx @@ -3,6 +3,23 @@ title: "Delivery & Read Receipts" description: "Mark messages as delivered or read and handle receipts with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.markAsDelivered(message)` · `CometChat.markAsRead(message)` · `CometChat.markConversationAsDelivered(conversationWith, conversationType)` · `CometChat.markConversationAsRead(conversationWith, conversationType)` · `CometChat.markAsUnread(message)` · `CometChat.getMessageReceipts(messageId)` | +| Key classes | `CometChat.MessageListener` · `CometChat.MessageReceipt` · `CometChat.BaseMessage` | +| Primary output | `markAsDelivered()` / `markAsRead()` are fire-and-forget (they resolve but do **not** return a `MessageReceipt`); `markConversationAsDelivered()` / `markConversationAsRead()` resolve with a `string`; `markAsUnread()` resolves with a `string`; `getMessageReceipts()` resolves to `Promise`; all reject with `CometChat.CometChatException` | +| Listeners registered | `MessageListener` via `CometChat.addMessageListener(listenerID, ...)` / `CometChat.removeMessageListener(listenerID)` — receipt callbacks: `onMessagesDelivered`, `onMessagesRead`, `onMessagesDeliveredToAll` (groups), `onMessagesReadByAll` (groups), each receiving a `CometChat.MessageReceipt` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | `onMessagesDeliveredToAll`, `onMessagesReadByAll`, group `deliveredAt` / `readAt`, and `markAsUnread()` require the **Enhanced Messaging Status** feature. Always remove listeners on unmount to avoid memory leaks | +| Related | [Receive a Message](/sdk/javascript/receive-message) · [Typing Indicators](/sdk/javascript/typing-indicators) · [Retrieve Conversations](/sdk/javascript/retrieve-conversations) · [All Real Time Listeners](/sdk/javascript/all-real-time-listeners) | +| Full reference | [`MessageReceipt`](/sdk/reference/auxiliary#messagereceipt) · [`User`](/sdk/reference/entities#user) · [`BaseMessage`](/sdk/reference/messages#basemessage) | + + + ## Mark Messages as Delivered _In other words, as a recipient, how do I inform the sender that I've received a message?_ diff --git a/sdk/javascript/group-kick-ban-members.mdx b/sdk/javascript/group-kick-ban-members.mdx index 8fd34655d..46c090bb5 100644 --- a/sdk/javascript/group-kick-ban-members.mdx +++ b/sdk/javascript/group-kick-ban-members.mdx @@ -3,6 +3,24 @@ title: "Ban Or Kick Member From A Group" description: "Kick, ban, and unban CometChat group members in JavaScript apps when the logged-in user is an admin or moderator." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.kickGroupMember(GUID, UID)` · `CometChat.banGroupMember(GUID, UID)` · `CometChat.unbanGroupMember(GUID, UID)` | +| Request builder | `new CometChat.BannedMembersRequestBuilder(GUID).setLimit(limit).setSearchKeyword(keyword).build()` → `.fetchNext()` | +| Key classes | `CometChat.GroupMember` · `CometChat.User` · `CometChat.Group` · `CometChat.Action` | +| Primary output | `kickGroupMember()` / `banGroupMember()` / `unbanGroupMember()` resolve to `boolean` (`true`) · `BannedMembersRequest.fetchNext()` resolves to `CometChat.GroupMember[]` · all reject with `CometChat.CometChatException` | +| Listeners registered | `CometChat.GroupListener` via `CometChat.addGroupListener(listenerID, ...)` / `CometChat.removeGroupListener(listenerID)`; key callbacks `onGroupMemberKicked`, `onGroupMemberBanned`, `onGroupMemberUnbanned` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Kick, ban, and unban can only be performed by the group **Admin** or **Moderator**. A kicked user can rejoin; a banned user cannot rejoin until unbanned | +| Related | [Add Members](/sdk/javascript/group-add-members) · [Change Member Scope](/sdk/javascript/group-change-member-scope) · [Retrieve Group Members](/sdk/javascript/retrieve-group-members) · [Leave a Group](/sdk/javascript/leave-group) | +| Full reference | [`GroupMember`](/sdk/reference/entities#groupmember) · [`User`](/sdk/reference/entities#user) · [`Group`](/sdk/reference/entities#group) · [`Action`](/sdk/reference/messages#action) | + + + There are certain actions that can be performed on the group members: 1. Kick a member from the group diff --git a/sdk/javascript/llms-javascript-v4.mdx b/sdk/javascript/llms-javascript-v4.mdx new file mode 100644 index 000000000..48c32d3f3 --- /dev/null +++ b/sdk/javascript/llms-javascript-v4.mdx @@ -0,0 +1,113 @@ +--- +title: "JavaScript Chat SDK v4 — LLM docs index" +description: "Machine-readable, JavaScript-SDK-v4-scoped index of every SDK page as a clean .md twin. Built for AI coding agents; kept out of the human sidebar." +--- + +{/* + SCOPED LLM INDEX for the JavaScript Chat SDK v4. + - UNLISTED, NOT hidden: intentionally omitted from docs.json navigation so it never shows in + the human sidebar — but it IS built, served as a clean .md twin, and INDEXED for search + + AI assistants (so AI tools, and this pack's skill via its docs-map, can discover and read it). + - We deliberately do NOT use `hidden: true`/`noindex` here: in Mintlify `hidden` auto-applies + noindex, which would drop this page from search AND the auto global llms.txt / AI context. + We want it discoverable, so it stays indexable. + - Fetch this file's own .md twin as a lightweight, JS-SDK-only routing index instead of the + site-wide /docs/llms.txt (which spans every product and is far larger). +*/} + +# JavaScript Chat SDK v4 — LLM docs index (Latest) + +> Low-level JavaScript/TypeScript chat + calling client. Package +> `@cometchat/chat-sdk-javascript@4`. This page is a **JavaScript-SDK-v4-only** routing index for +> AI agents — a scoped alternative to the site-wide `/docs/llms.txt`. + +## How to use this index +Each link below is already a **`.md` twin** (clean Markdown: verbatim code + method signatures, +parameters, and listener contracts). Pick the page for the intent, fetch its `.md`, read the API +there. +- Convention: any docs page URL + `.md` → raw Markdown. +- Fallback: if a `.md` twin 404s, fetch the same URL **without** `.md` (HTML). Never read a + package `.d.ts` and never answer APIs from memory. + +## Hot path — usually no fetch needed +For a plain "add chat" the install, `init → login`, and the core `sendMessage` / `receive-message` +listener flow are stable; a well-built agent skill bakes them. Fetch below only for exhaustive +parameters, long-tail methods, group/user management, calling, or edge-case listeners. +- Setup: [Integration / Setup](setup-sdk.md) +- Auth/lifecycle: [Authentication](authentication-overview.md) +- Core send/receive: [Send a Message](send-message.md) · [Receive a Message](receive-message.md) · [Real-time Listeners](all-real-time-listeners.md) + +## Getting started / integration +- [Overview](overview.md) +- [Integration / Setup](setup-sdk.md) +- [Authentication](authentication-overview.md) + +## Messaging +- [Send a Message](send-message.md) +- [Media & File Messages](upload-files.md) +- [Receive a Message](receive-message.md) +- [Interactive / Card Messages](card-messages.md) +- [Message Filtering](message-filtering.md) +- [Retrieve Conversations](retrieve-conversations.md) +- [Threaded Messages](threaded-messages.md) +- [Edit a Message](edit-message.md) +- [Delete a Message](delete-message.md) +- [Flag a Message](flag-message.md) +- [Delete a Conversation](delete-conversation.md) +- [Typing Indicators](typing-indicators.md) +- [Transient Messages](transient-messages.md) +- [Delivery & Read Receipts](delivery-read-receipts.md) +- [Mentions](mentions.md) +- [Reactions](reactions.md) + +## Calling +- [Calling — Overview](calling-overview.md) + +## Users +- [Users — Overview](users-overview.md) +- [Retrieve Users](retrieve-users.md) +- [User Management](user-management.md) +- [Block Users](block-users.md) +- [User Presence](user-presence.md) + +## Groups +- [Groups — Overview](groups-overview.md) +- [Retrieve Groups](retrieve-groups.md) +- [Create a Group](create-group.md) +- [Update a Group](update-group.md) +- [Join a Group](join-group.md) +- [Leave a Group](leave-group.md) +- [Delete a Group](delete-group.md) +- [Retrieve Group Members](retrieve-group-members.md) +- [Add Group Members](group-add-members.md) +- [Kick / Ban Members](group-kick-ban-members.md) +- [Change Member Scope](group-change-member-scope.md) +- [Transfer Group Ownership](transfer-group-ownership.md) + +## AI, campaigns & webhooks +- [AI Moderation](ai-moderation.md) +- [AI Agents](ai-agents.md) +- [AI Copilot](ai-copilot.md) +- [Campaigns](campaigns.md) +- [Webhooks](webhooks.md) + +## Resources +- [Key Concepts](key-concepts.md) +- [Message Structure & Hierarchy](message-structure-and-hierarchy.md) +- [All Real-time Listeners](all-real-time-listeners.md) +- [Rate Limits](rate-limits.md) +- [Connection Status](connection-status.md) +- [Managing WebSocket Connections Manually](managing-web-sockets-connections-manually.md) + +## Best practices & troubleshooting +- [Best Practices](best-practices.md) +- [Error Codes](error-codes.md) +- [Troubleshooting](troubleshooting.md) + +## Migration & overviews +- [Upgrading from v3](upgrading-from-v3.md) +- [Extensions — Overview](extensions-overview.md) +- [AI User Copilot — Overview](ai-user-copilot-overview.md) +- [AI Chatbots — Overview](ai-chatbots-overview.md) +- [Webhooks — Overview](webhooks-overview.md) +- [Changelog](changelog.md) diff --git a/sdk/javascript/mentions.mdx b/sdk/javascript/mentions.mdx index fc0accb02..0ce740378 100644 --- a/sdk/javascript/mentions.mdx +++ b/sdk/javascript/mentions.mdx @@ -3,6 +3,23 @@ title: "Mentions" description: "Add user mentions to CometChat messages in one-on-one and group chats using UID-based mention syntax." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.sendMessage(textMessage)` (mention with `<@uid:UID>` syntax in the text) · `messagesRequest.fetchPrevious()` (build via `MessagesRequestBuilder`) · `message.getMentionedUsers()` | +| Request builder | `CometChat.MessagesRequestBuilder` — scope with `.setUID()` / `.setGUID()`, add `.setLimit()`, then `.mentionsWithTagInfo(true)` or `.mentionsWithBlockedInfo(true)`; `.build()` → `.fetchPrevious()` / `.fetchNext()` | +| Key classes | `CometChat.TextMessage` (send), `CometChat.BaseMessage` (fetched results), `CometChat.User` (mentioned users, via `getTags()` / `getBlockedByMe()` / `getHasBlockedMe()`) | +| Primary output | `sendMessage()` resolves to the sent `CometChat.TextMessage`; `fetchPrevious()` resolves to `Promise`; `getMentionedUsers()` returns `CometChat.User[]` (empty when none); async calls reject with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Mention format is `<@uid:UID>`; mentions are supported in text messages and media message captions; `mentionsWithTagInfo()` and `mentionsWithBlockedInfo()` default to `false` | +| Related | [Send a Message](/sdk/javascript/send-message) · [Additional Message Filtering](/sdk/javascript/message-filtering) · [Reactions](/sdk/javascript/reactions) · [Threaded Messages](/sdk/javascript/threaded-messages) | +| Full reference | [`TextMessage`](/sdk/reference/messages#textmessage) · [`BaseMessage`](/sdk/reference/messages#basemessage) · [`User`](/sdk/reference/entities#user) | + + + Mentions in messages enable users to refer to specific individual within a conversation. This is done by using the `<@uid:UID>` format, where `UID` represents the user’s unique identification. Mentions are a powerful tool for enhancing communication in messaging platforms. They streamline interaction by allowing users to easily engage and collaborate with particular individuals, especially in group conversations. diff --git a/sdk/javascript/message-filtering.mdx b/sdk/javascript/message-filtering.mdx index 595b6964c..b5d155c72 100644 --- a/sdk/javascript/message-filtering.mdx +++ b/sdk/javascript/message-filtering.mdx @@ -3,6 +3,22 @@ title: "Additional Message Filtering" description: "Filter and paginate CometChat messages by user, group, type, category, tags, timestamps, and unread status." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `messagesRequest.fetchNext()` · `messagesRequest.fetchPrevious()` (build via `MessagesRequestBuilder`) | +| Request builder | `CometChat.MessagesRequestBuilder` — scope with `.setUID(uid)` / `.setGUID(guid)`; filter with `.setLimit()` · `.setMessageId()` · `.setTimestamp()` · `.setCategories()` · `.setTypes()` · `.setTags()` · `.setParentMessageId()`; then `.build()` → `.fetchNext()` (newer) / `.fetchPrevious()` (older) | +| Primary output | `Promise` — resolves to an array of message objects; rejects with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); `.setGUID()` requires the logged-in user to be a group member | +| Constraints | `.setLimit()` max is 100 messages per iteration; `hasLinks()`, `hasAttachments()`, `hasReactions()`, `hasMentions()`, `setMentionedUIDs()`, and `setAttachmentTypes()` require the Conversation & Advanced Search add-on (Advanced/Custom plans) | +| Related | [Send a Message](/sdk/javascript/send-message) · [Receive a Message](/sdk/javascript/receive-message) · [Message Structure & Hierarchy](/sdk/javascript/message-structure-and-hierarchy) · [Threaded Messages](/sdk/javascript/threaded-messages) | +| Full reference | [`BaseMessage`](/sdk/reference/messages#basemessage) · [`TextMessage`](/sdk/reference/messages#textmessage) | + + + The `MessagesRequest` class as you must be familiar with helps you to fetch messages based on the various parameters provided to it. This document will help you understand better the various options that are available using the `MessagesRequest` class. The `MessagesRequest` class is designed using the `Builder design pattern`. In order to obtain an object of the `MessagesRequest` class, you will have to make use of the `MessagesRequestBuilder` class in the `MessagesRequest` class. diff --git a/sdk/javascript/reactions.mdx b/sdk/javascript/reactions.mdx index 0f42c7834..9e60b6b80 100644 --- a/sdk/javascript/reactions.mdx +++ b/sdk/javascript/reactions.mdx @@ -3,6 +3,23 @@ title: "Reactions" description: "Add, remove, fetch, and listen for message reactions with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.addReaction(messageId, emoji)` · `CometChat.removeReaction(messageId, emoji)` · `message.getReactions()` · `reactionCount.getReactedByMe()` · `CometChat.CometChatHelper.updateMessageWithReactionInfo(message, messageReaction, action)` | +| Request builder | `new CometChat.ReactionRequestBuilder().setMessageId(messageId).setReaction(emoji).setLimit(limit).build()` → `.fetchNext()` / `.fetchPrevious()` (max 100 per request) | +| Key classes | `CometChat.BaseMessage` · `CometChat.Reaction` · `CometChat.ReactionCount` · `CometChat.MessageReaction` · `CometChat.REACTION_ACTION` | +| Primary output | `addReaction()` / `removeReaction()` resolve to a `CometChat.BaseMessage` with updated reactions · `fetchNext()` / `fetchPrevious()` resolve to `CometChat.Reaction[]` · all reject with `CometChat.CometChatException` | +| Listeners registered | `CometChat.MessageListener` via `CometChat.addMessageListener(listenerID, ...)` / `CometChat.removeMessageListener(listenerID)`; key callbacks `onMessageReactionAdded` and `onMessageReactionRemoved` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Related | [Send a Message](/sdk/javascript/send-message) · [Receive a Message](/sdk/javascript/receive-message) · [Mentions](/sdk/javascript/mentions) · [Threaded Messages](/sdk/javascript/threaded-messages) | +| Full reference | [`BaseMessage`](/sdk/reference/messages#basemessage) · [`Reaction`](/sdk/reference/auxiliary#reaction) · [`ReactionCount`](/sdk/reference/auxiliary#reactioncount) · [`ReactionEvent`](/sdk/reference/auxiliary#reactionevent) | + + + Enhance user engagement in your chat application with message reactions. Users can express their emotions using reactions to messages. This feature allows users to add or remove reactions, and to fetch all reactions on a message. You can also listen to reaction events in real-time. Let's see how to work with reactions in CometChat's SDK. ## Add a Reaction diff --git a/sdk/javascript/receive-message.mdx b/sdk/javascript/receive-message.mdx index 3ecb4256b..7e10973ab 100644 --- a/sdk/javascript/receive-message.mdx +++ b/sdk/javascript/receive-message.mdx @@ -3,6 +3,23 @@ title: "Receive A Message" description: "Receive real-time, unread, and historical messages with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.addMessageListener(listenerID, new CometChat.MessageListener({...}))` · `new CometChat.MessagesRequestBuilder().setUID(UID).setLimit(limit).build()` · `messagesRequest.fetchPrevious()` · `CometChat.getUnreadMessageCount()` · `CometChat.getMessageDetails(messageId)` | +| Key classes | `CometChat.MessageListener` · `CometChat.MessagesRequestBuilder` · `CometChat.MessagesRequest` · `CometChat.BaseMessage` (`TextMessage` · `MediaMessage` · `CustomMessage`) | +| Primary output | Real-time callbacks deliver the specific message subclass (`TextMessage` / `MediaMessage` / `CustomMessage`); `fetchPrevious()` resolves to `Promise`; `getMessageDetails()` resolves to `Promise`; unread-count methods resolve to a `Promise` of an ID→count object; all reject with `CometChat.CometChatException` | +| Listeners registered | `MessageListener` via `CometChat.addMessageListener(listenerID, ...)` / `CometChat.removeMessageListener(listenerID)` — callbacks shown: `onTextMessageReceived`, `onMediaMessageReceived`, `onCustomMessageReceived` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | As a sender you do not receive your own message in a real-time event (though other devices of the same logged-in user do). Always remove listeners on unmount to avoid memory leaks and duplicate handling. Advanced search (file name, mentions, MIME type) requires the `Conversation & Advanced Search` feature | +| Related | [Send a Message](/sdk/javascript/send-message) · [Delivery & Read Receipts](/sdk/javascript/delivery-read-receipts) · [All Real Time Listeners](/sdk/javascript/all-real-time-listeners) · [Retrieve Conversations](/sdk/javascript/retrieve-conversations) | +| Full reference | [`BaseMessage`](/sdk/reference/messages#basemessage) · [`TextMessage`](/sdk/reference/messages#textmessage) · [`MediaMessage`](/sdk/reference/messages#mediamessage) · [`CustomMessage`](/sdk/reference/messages#custommessage) | + + + Receiving messages with CometChat has two parts: 1. Adding a [real-time listener](#real-time-messages) to receive messages while your app is running diff --git a/sdk/javascript/retrieve-conversations.mdx b/sdk/javascript/retrieve-conversations.mdx index b014834de..63374ed5f 100644 --- a/sdk/javascript/retrieve-conversations.mdx +++ b/sdk/javascript/retrieve-conversations.mdx @@ -3,6 +3,23 @@ title: "Retrieve Conversations" description: "Fetch recent CometChat conversations for chat lists, with support for one-on-one and group conversation filters." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `conversationsRequest.fetchNext()` (build via `ConversationsRequestBuilder`) · `CometChat.getConversation(conversationWith, conversationType)` · `CometChat.tagConversation(conversationWith, conversationType, tags)` · `CometChat.CometChatHelper.getConversationFromMessage(message)` | +| Request builder | `CometChat.ConversationsRequestBuilder` — configure with `.setLimit()` · `.setConversationType()` · `.setUserTags()` · `.setGroupTags()` · `.setTags()` · `.setSearchKeyword()` · `.setUnread()`; then `.build()` → `.fetchNext()` (call repeatedly to paginate) | +| Key classes | `CometChat.Conversation` (access peer via `getConversationWith()`, tags via `getTags()`) | +| Primary output | `Promise` from `fetchNext()`; `getConversation()` / `tagConversation()` resolve to a single `CometChat.Conversation`; all reject with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | `setLimit()` default is 30, max is 50; `setSearchKeyword()` and `setUnread()` require the Conversation & Advanced Search add-on (Advanced/Custom plans); `setHideAgentic()` and `setOnlyAgentic()` are mutually exclusive | +| Related | [Delete a Conversation](/sdk/javascript/delete-conversation) · [Receive a Message](/sdk/javascript/receive-message) · [Typing Indicators](/sdk/javascript/typing-indicators) · [Delivery & Read Receipts](/sdk/javascript/delivery-read-receipts) | +| Full reference | [`Conversation`](/sdk/reference/entities#conversation) | + + + Conversations provide the last messages for every one-on-one and group conversation the logged-in user is a part of. This makes it easy for you to build a **Recent Chat** list. ## Retrieve List of Conversations diff --git a/sdk/javascript/retrieve-group-members.mdx b/sdk/javascript/retrieve-group-members.mdx index 0c1d34d5f..87ab6a857 100644 --- a/sdk/javascript/retrieve-group-members.mdx +++ b/sdk/javascript/retrieve-group-members.mdx @@ -3,6 +3,22 @@ title: "Retrieve Group Members" description: "Fetch and paginate group members using the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `groupMembersRequest.fetchNext()` (build via `GroupMembersRequestBuilder`) | +| Request builder | `CometChat.GroupMembersRequestBuilder(GUID)` — GUID is passed to the constructor; configure with `.setLimit()` · `.setSearchKeyword()` · `.setScopes()` · `.setStatus()`; then `.build()` → `.fetchNext()` (call repeatedly to paginate) | +| Key classes | `CometChat.GroupMember` extends `CometChat.User`; access scope via `getScope()` (`"admin"` / `"moderator"` / `"participant"`); status via `CometChat.USER_STATUS.ONLINE` / `.OFFLINE` | +| Primary output | `Promise` — resolves to an array of members; rejects with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); a valid GUID must be supplied to the builder constructor | +| Related | [Retrieve Groups](/sdk/javascript/retrieve-groups) · [Add Members to a Group](/sdk/javascript/group-add-members) · [Kick & Ban Members](/sdk/javascript/group-kick-ban-members) · [Create a Group](/sdk/javascript/create-group) | +| Full reference | [`GroupMember`](/sdk/reference/entities#groupmember) · [`User`](/sdk/reference/entities#user) | + + + ## Retrieve the List of Group Members Use `GroupMembersRequestBuilder` to fetch members of a [Group](/sdk/reference/entities#group). The GUID must be specified in the constructor. diff --git a/sdk/javascript/retrieve-groups.mdx b/sdk/javascript/retrieve-groups.mdx index bc79702f6..e8f1017c9 100644 --- a/sdk/javascript/retrieve-groups.mdx +++ b/sdk/javascript/retrieve-groups.mdx @@ -3,6 +3,23 @@ title: "Retrieve Groups" description: "Fetch, search, filter, and paginate groups using the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `groupsRequest.fetchNext()` (build via `GroupsRequestBuilder`) · `CometChat.getGroup(guid)` · `CometChat.getOnlineGroupMemberCount(guids)` | +| Request builder | `CometChat.GroupsRequestBuilder` — configure with `.setLimit()` · `.setSearchKeyword()` · `.joinedOnly()` · `.setTags()` · `.withTags()`; then `.build()` → `.fetchNext()` (call repeatedly to paginate) | +| Key classes | `CometChat.Group` (access tags via `getTags()`) | +| Primary output | `Promise` from `fetchNext()`; `getGroup()` resolves to a single `CometChat.Group`; `getOnlineGroupMemberCount()` resolves to a `{ guid: count }` object; all reject with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | The list returns only public and password-protected groups; private groups appear only when the logged-in user is a member | +| Related | [Create a Group](/sdk/javascript/create-group) · [Retrieve Group Members](/sdk/javascript/retrieve-group-members) · [Add Members to a Group](/sdk/javascript/group-add-members) · [Retrieve Conversations](/sdk/javascript/retrieve-conversations) | +| Full reference | [`Group`](/sdk/reference/entities#group) | + + + ## Retrieve List of Groups _In other words, as a logged-in user, how do I retrieve the list of groups I've joined and groups that are available?_ diff --git a/sdk/javascript/retrieve-users.mdx b/sdk/javascript/retrieve-users.mdx index e3c05c4fc..03c856596 100644 --- a/sdk/javascript/retrieve-users.mdx +++ b/sdk/javascript/retrieve-users.mdx @@ -3,6 +3,23 @@ title: "Retrieve Users" description: "Retrieve users, logged-in user details, and online counts with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `usersRequest.fetchNext()` (build via `UsersRequestBuilder`) · `CometChat.getLoggedinUser()` · `CometChat.getUser(uid)` · `CometChat.getOnlineUserCount()` | +| Request builder | `CometChat.UsersRequestBuilder` — configure with `.setLimit()` · `.setSearchKeyword()` · `.searchIn()` · `.setStatus()` · `.hideBlockedUsers()` · `.setRoles()` · `.friendsOnly()` · `.setTags()` · `.withTags()` · `.setUIDs()` · `.sortBy()` · `.sortByOrder()`; then `.build()` → `.fetchNext()` (call repeatedly to paginate) | +| Key classes | `CometChat.User` (access via `getUid()`, `getName()`, `getStatus()`, `getRole()`, `getTags()`); status via `CometChat.USER_STATUS.ONLINE` / `.OFFLINE` | +| Primary output | `Promise` from `fetchNext()`; `getLoggedinUser()` / `getUser()` resolve to a single `CometChat.User`; `getOnlineUserCount()` resolves to a `number`; all reject with `CometChat.CometChatException` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | `setUIDs()` fetches a maximum of 25 users per request; `searchIn()` defaults to both `uid` and `name`; default sort order is `status → name → UID`, ascending | +| Related | [User Presence](/sdk/javascript/user-presence) · [Block Users](/sdk/javascript/block-users) · [User Management](/sdk/javascript/user-management) · [Retrieve Conversations](/sdk/javascript/retrieve-conversations) | +| Full reference | [`User`](/sdk/reference/entities#user) | + + + ## Retrieve Logged In User Details You can get the details of the logged-in user using the `getLoggedInUser()` method. This method can also be used to check if the user is logged in or not. If the method returns `Promise` with reject callback, it indicates that the user is not logged in and you need to log the user into CometChat SDK. diff --git a/sdk/javascript/send-message.mdx b/sdk/javascript/send-message.mdx index b644b02c0..14cc60cd4 100644 --- a/sdk/javascript/send-message.mdx +++ b/sdk/javascript/send-message.mdx @@ -3,6 +3,24 @@ title: "Send A Message" description: "Send text, media, custom, and interactive chat messages with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.sendMessage(textMessage)` · `CometChat.sendMediaMessage(mediaMessage)` · `CometChat.sendCustomMessage(customMessage)` | +| Message classes | `CometChat.TextMessage`, `CometChat.MediaMessage`, `CometChat.CustomMessage` (use `CometChat.Attachment` for hosted-URL media) | +| Primary output | `Promise` — resolves to the sent `TextMessage` / `MediaMessage` / `CustomMessage`; rejects with `CometChat.CometChatException` | +| Receiver targeting | `receiverType`: `CometChat.RECEIVER_TYPE.USER` (pass a UID) or `CometChat.RECEIVER_TYPE.GROUP` (pass a GUID) | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview) | +| Constraints | Card messages are **receive-only** (no `sendCardMessage()`). Media messages carry ≤ `file.count.max` attachments (default 10) or reject with `ERR_FILE_COUNT_EXCEEDED`; read the limit at runtime with `CometChat.getMaxAttachmentCount()` | +| Receive counterpart | Sent messages reach peers through `MessageListener` — see [Receive a Message](/sdk/javascript/receive-message) | +| Related | [Upload Files](/sdk/javascript/upload-files) · [Threaded Messages](/sdk/javascript/threaded-messages) · [Edit a Message](/sdk/javascript/edit-message) · [Delete a Message](/sdk/javascript/delete-message) | +| Full reference | [`TextMessage`](/sdk/reference/messages#textmessage) · [`MediaMessage`](/sdk/reference/messages#mediamessage) · [`CustomMessage`](/sdk/reference/messages#custommessage) | + + + Using CometChat, you can send three types of messages: 1. [Text Message](/sdk/javascript/send-message#text-message) is the most common and standard message type. diff --git a/sdk/javascript/threaded-messages.mdx b/sdk/javascript/threaded-messages.mdx index 1d6af168f..9025ac95b 100644 --- a/sdk/javascript/threaded-messages.mdx +++ b/sdk/javascript/threaded-messages.mdx @@ -3,6 +3,23 @@ title: "Threaded Messages" description: "Send, receive, and fetch threaded messages with the CometChat JavaScript SDK." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `textMessage.setParentMessageId(messageId)` · `CometChat.sendMessage(textMessage)` · `CometChat.addMessageListener(listenerID, new CometChat.MessageListener({...}))` · `message.getParentMessageId()` · `new CometChat.MessagesRequestBuilder().setParentMessageId(parentMessageId).setLimit(limit).build()` · `messagesRequest.fetchPrevious()` · `.hideReplies(true)` | +| Key classes | `CometChat.MessageListener` · `CometChat.MessagesRequestBuilder` · `CometChat.MessagesRequest` · `CometChat.TextMessage` · `CometChat.MediaMessage` · `CometChat.CustomMessage` · `CometChat.BaseMessage` | +| Primary output | `sendMessage()` resolves to the sent message (e.g. `TextMessage`); `fetchPrevious()` resolves to `Promise` (thread replies, or top-level messages when `hideReplies(true)` is set); real-time thread messages arrive on the `MessageListener`; all reject with `CometChat.CometChatException` | +| Listeners registered | `MessageListener` via `CometChat.addMessageListener(listenerID, ...)` / `CometChat.removeMessageListener(listenerID)` — callbacks: `onTextMessageReceived`, `onMediaMessageReceived`, `onCustomMessageReceived`; filter to the active thread with `getParentMessageId()` | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); a parent message ID to thread under | +| Constraints | `fetchPrevious()` returns at most 100 messages per request. Use `hideReplies(true)` on the builder to exclude thread replies and return only top-level messages. Always remove listeners on unmount to avoid memory leaks and duplicate handling | +| Related | [Send a Message](/sdk/javascript/send-message) · [Receive a Message](/sdk/javascript/receive-message) · [Message Filtering](/sdk/javascript/message-filtering) · [Reactions](/sdk/javascript/reactions) | +| Full reference | [`BaseMessage`](/sdk/reference/messages#basemessage) · [`TextMessage`](/sdk/reference/messages#textmessage) · [`MediaMessage`](/sdk/reference/messages#mediamessage) · [`CustomMessage`](/sdk/reference/messages#custommessage) | + + + Messages that are started from a particular message are called Threaded messages or simply threads. Each Thread is attached to a message which is the Parent message for that thread. ## Send Message in a Thread diff --git a/sdk/javascript/upload-files.mdx b/sdk/javascript/upload-files.mdx index 531bbd496..ce4153c54 100644 --- a/sdk/javascript/upload-files.mdx +++ b/sdk/javascript/upload-files.mdx @@ -4,6 +4,23 @@ sidebarTitle: "Upload Files" description: "Upload files directly to storage with per-file progress, remove, and retry through an UploadFileRequest — then send them as one or more media messages with multiple attachments." --- + + +| Field | Value | +| --- | --- | +| Package | `@cometchat/chat-sdk-javascript` | +| Import | `import { CometChat } from "@cometchat/chat-sdk-javascript";` | +| Key methods | `CometChat.createUploadFileRequest(receiverId, receiverType)` · `request.uploadAttachments([{ fileId, file }], listener)` · `request.uploadAttachment(fileId, file, listener)` · `request.getAttachments()` / `request.getAttachmentsByType(type)` · `request.removeAttachment(fileId)` · `request.retryAttachment(fileId)` · `request.clearAll()` · `CometChat.sendMediaMessage(mediaMessage)` · `CometChat.getMaxAttachmentCount()` | +| Key classes | `CometChat.UploadFileRequest` · `CometChat.UploadFileListener` · `CometChat.Attachment` · `CometChat.MediaMessage` · `CometChat.UploadResult` | +| Primary output | `createUploadFileRequest()` returns an `UploadFileRequest` (upload is decoupled from send). Progress and outcomes arrive on the `UploadFileListener` callbacks; each success yields a ready-to-send `Attachment` (with a hosted `url`). `sendMediaMessage()` resolves to `Promise` and rejects with `CometChat.CometChatException` | +| Listeners registered | `UploadFileListener` (per-call, or global via `request.addUploadListener(listener)` / `request.removeUploadListener()`) — callbacks: `onFileProgress(fileId, loaded, total, percent)`, `onFileUploaded(fileId, attachment)`, `onFileError(fileId, error)` (rejected, not retryable), `onFileFailure(fileId, error)` (failed, retryable), `onComplete(result)`. Not registered globally with a string id — it lives for the upload batch | +| Prerequisites | SDK initialized via [`CometChat.init()`](/sdk/javascript/setup-sdk) and a logged-in user via [`CometChat.login()`](/sdk/javascript/authentication-overview); the request `receiverId` / `receiverType` must match the `MediaMessage` you eventually send | +| Constraints | `fileId` is caller-supplied and required (dedup: a repeated `fileId` is silently skipped). Per-file size limit `file.size.max` (default 100 MB) is enforced at upload → `ERR_FILE_SIZE_EXCEEDED` via `onFileError`; attachments-per-message limit `file.count.max` (default 10) is enforced by `sendMediaMessage()` → `ERR_FILE_COUNT_EXCEEDED`. Send from an explicit button, **not** from `onComplete` (which fires on every batch drain). Call `clearAll()` after a successful send | +| Related | [Send a Message](/sdk/javascript/send-message) · [Receive a Message](/sdk/javascript/receive-message) · [Threaded Messages](/sdk/javascript/threaded-messages) · [Error Codes](/sdk/javascript/error-codes) | +| Full reference | [`Attachment`](/sdk/reference/auxiliary#attachment) · [`MediaMessage`](/sdk/reference/messages#mediamessage) · [`CometChatException`](/sdk/reference/auxiliary#cometchatexception) | + + + `CometChat.createUploadFileRequest(receiverId, receiverType)` returns an **`UploadFileRequest`** — the entry point for uploading files **directly to storage** with **per-file progress, success, and failure**. Upload is **decoupled from sending**: each uploaded file yields an [`Attachment`](/sdk/reference/auxiliary#attachment) (carrying a hosted `url`), which you then attach to a [`MediaMessage`](/sdk/reference/messages#mediamessage) and send with [`sendMediaMessage()`](/sdk/javascript/send-message#media-message). A request object is scoped to **one destination** (`receiverId` / `receiverType`) and **one upload batch**. This is the recommended way to build a **multi-attachment composer**: create a request, upload a batch of files, show a progress bar per file, let the user remove or retry individual files, then send them as a single media message with multiple attachments (or split across several). From 04301fba7b5320af7f20556da6ec875ec8d0b152 Mon Sep 17 00:00:00 2001 From: rajdubey Date: Fri, 14 Aug 2026 12:47:34 +0530 Subject: [PATCH 2/2] Fixed Link Rot Issue --- sdk/javascript/llms-javascript-v4.mdx | 126 +++++++++++++------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/sdk/javascript/llms-javascript-v4.mdx b/sdk/javascript/llms-javascript-v4.mdx index 48c32d3f3..98f212703 100644 --- a/sdk/javascript/llms-javascript-v4.mdx +++ b/sdk/javascript/llms-javascript-v4.mdx @@ -22,9 +22,9 @@ description: "Machine-readable, JavaScript-SDK-v4-scoped index of every SDK page > AI agents — a scoped alternative to the site-wide `/docs/llms.txt`. ## How to use this index -Each link below is already a **`.md` twin** (clean Markdown: verbatim code + method signatures, -parameters, and listener contracts). Pick the page for the intent, fetch its `.md`, read the API -there. +Each link points to the docs page; **append `.md`** to its URL to fetch the clean Markdown twin +(verbatim code + method signatures, parameters, and listener contracts). Pick the page for the +intent, then read the API there. - Convention: any docs page URL + `.md` → raw Markdown. - Fallback: if a `.md` twin 404s, fetch the same URL **without** `.md` (HTML). Never read a package `.d.ts` and never answer APIs from memory. @@ -33,81 +33,81 @@ there. For a plain "add chat" the install, `init → login`, and the core `sendMessage` / `receive-message` listener flow are stable; a well-built agent skill bakes them. Fetch below only for exhaustive parameters, long-tail methods, group/user management, calling, or edge-case listeners. -- Setup: [Integration / Setup](setup-sdk.md) -- Auth/lifecycle: [Authentication](authentication-overview.md) -- Core send/receive: [Send a Message](send-message.md) · [Receive a Message](receive-message.md) · [Real-time Listeners](all-real-time-listeners.md) +- Setup: [Integration / Setup](/sdk/javascript/setup-sdk) +- Auth/lifecycle: [Authentication](/sdk/javascript/authentication-overview) +- Core send/receive: [Send a Message](/sdk/javascript/send-message) · [Receive a Message](/sdk/javascript/receive-message) · [Real-time Listeners](/sdk/javascript/all-real-time-listeners) ## Getting started / integration -- [Overview](overview.md) -- [Integration / Setup](setup-sdk.md) -- [Authentication](authentication-overview.md) +- [Overview](/sdk/javascript/overview) +- [Integration / Setup](/sdk/javascript/setup-sdk) +- [Authentication](/sdk/javascript/authentication-overview) ## Messaging -- [Send a Message](send-message.md) -- [Media & File Messages](upload-files.md) -- [Receive a Message](receive-message.md) -- [Interactive / Card Messages](card-messages.md) -- [Message Filtering](message-filtering.md) -- [Retrieve Conversations](retrieve-conversations.md) -- [Threaded Messages](threaded-messages.md) -- [Edit a Message](edit-message.md) -- [Delete a Message](delete-message.md) -- [Flag a Message](flag-message.md) -- [Delete a Conversation](delete-conversation.md) -- [Typing Indicators](typing-indicators.md) -- [Transient Messages](transient-messages.md) -- [Delivery & Read Receipts](delivery-read-receipts.md) -- [Mentions](mentions.md) -- [Reactions](reactions.md) +- [Send a Message](/sdk/javascript/send-message) +- [Media & File Messages](/sdk/javascript/upload-files) +- [Receive a Message](/sdk/javascript/receive-message) +- [Interactive / Card Messages](/sdk/javascript/card-messages) +- [Message Filtering](/sdk/javascript/message-filtering) +- [Retrieve Conversations](/sdk/javascript/retrieve-conversations) +- [Threaded Messages](/sdk/javascript/threaded-messages) +- [Edit a Message](/sdk/javascript/edit-message) +- [Delete a Message](/sdk/javascript/delete-message) +- [Flag a Message](/sdk/javascript/flag-message) +- [Delete a Conversation](/sdk/javascript/delete-conversation) +- [Typing Indicators](/sdk/javascript/typing-indicators) +- [Transient Messages](/sdk/javascript/transient-messages) +- [Delivery & Read Receipts](/sdk/javascript/delivery-read-receipts) +- [Mentions](/sdk/javascript/mentions) +- [Reactions](/sdk/javascript/reactions) ## Calling -- [Calling — Overview](calling-overview.md) +- [Calling — Overview](/sdk/javascript/calling-overview) ## Users -- [Users — Overview](users-overview.md) -- [Retrieve Users](retrieve-users.md) -- [User Management](user-management.md) -- [Block Users](block-users.md) -- [User Presence](user-presence.md) +- [Users — Overview](/sdk/javascript/users-overview) +- [Retrieve Users](/sdk/javascript/retrieve-users) +- [User Management](/sdk/javascript/user-management) +- [Block Users](/sdk/javascript/block-users) +- [User Presence](/sdk/javascript/user-presence) ## Groups -- [Groups — Overview](groups-overview.md) -- [Retrieve Groups](retrieve-groups.md) -- [Create a Group](create-group.md) -- [Update a Group](update-group.md) -- [Join a Group](join-group.md) -- [Leave a Group](leave-group.md) -- [Delete a Group](delete-group.md) -- [Retrieve Group Members](retrieve-group-members.md) -- [Add Group Members](group-add-members.md) -- [Kick / Ban Members](group-kick-ban-members.md) -- [Change Member Scope](group-change-member-scope.md) -- [Transfer Group Ownership](transfer-group-ownership.md) +- [Groups — Overview](/sdk/javascript/groups-overview) +- [Retrieve Groups](/sdk/javascript/retrieve-groups) +- [Create a Group](/sdk/javascript/create-group) +- [Update a Group](/sdk/javascript/update-group) +- [Join a Group](/sdk/javascript/join-group) +- [Leave a Group](/sdk/javascript/leave-group) +- [Delete a Group](/sdk/javascript/delete-group) +- [Retrieve Group Members](/sdk/javascript/retrieve-group-members) +- [Add Group Members](/sdk/javascript/group-add-members) +- [Kick / Ban Members](/sdk/javascript/group-kick-ban-members) +- [Change Member Scope](/sdk/javascript/group-change-member-scope) +- [Transfer Group Ownership](/sdk/javascript/transfer-group-ownership) ## AI, campaigns & webhooks -- [AI Moderation](ai-moderation.md) -- [AI Agents](ai-agents.md) -- [AI Copilot](ai-copilot.md) -- [Campaigns](campaigns.md) -- [Webhooks](webhooks.md) +- [AI Moderation](/sdk/javascript/ai-moderation) +- [AI Agents](/sdk/javascript/ai-agents) +- [AI Copilot](/sdk/javascript/ai-copilot) +- [Campaigns](/sdk/javascript/campaigns) +- [Webhooks](/sdk/javascript/webhooks) ## Resources -- [Key Concepts](key-concepts.md) -- [Message Structure & Hierarchy](message-structure-and-hierarchy.md) -- [All Real-time Listeners](all-real-time-listeners.md) -- [Rate Limits](rate-limits.md) -- [Connection Status](connection-status.md) -- [Managing WebSocket Connections Manually](managing-web-sockets-connections-manually.md) +- [Key Concepts](/sdk/javascript/key-concepts) +- [Message Structure & Hierarchy](/sdk/javascript/message-structure-and-hierarchy) +- [All Real-time Listeners](/sdk/javascript/all-real-time-listeners) +- [Rate Limits](/sdk/javascript/rate-limits) +- [Connection Status](/sdk/javascript/connection-status) +- [Managing WebSocket Connections Manually](/sdk/javascript/managing-web-sockets-connections-manually) ## Best practices & troubleshooting -- [Best Practices](best-practices.md) -- [Error Codes](error-codes.md) -- [Troubleshooting](troubleshooting.md) +- [Best Practices](/sdk/javascript/best-practices) +- [Error Codes](/sdk/javascript/error-codes) +- [Troubleshooting](/sdk/javascript/troubleshooting) ## Migration & overviews -- [Upgrading from v3](upgrading-from-v3.md) -- [Extensions — Overview](extensions-overview.md) -- [AI User Copilot — Overview](ai-user-copilot-overview.md) -- [AI Chatbots — Overview](ai-chatbots-overview.md) -- [Webhooks — Overview](webhooks-overview.md) -- [Changelog](changelog.md) +- [Upgrading from v3](/sdk/javascript/upgrading-from-v3) +- [Extensions — Overview](/sdk/javascript/extensions-overview) +- [AI User Copilot — Overview](/sdk/javascript/ai-user-copilot-overview) +- [AI Chatbots — Overview](/sdk/javascript/ai-chatbots-overview) +- [Webhooks — Overview](/sdk/javascript/webhooks-overview) +- [Changelog](/sdk/javascript/changelog)