> ## Documentation Index
> Fetch the complete documentation index at: https://social-b97141fb-feat-user-history-moderation-detail.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TypeScript

> This page contains an overview of all relevant changes made to the TypeScript SDK

<Note>
  This page is checked against `@amityco/ts-sdk` package metadata and the TypeScript SDK source changelog in `AmityTypescriptSDK/CHANGELOG.md`.
</Note>

<Update label="7.28.0  (25/09/2026)" tags={["New Releases","Improvements"]}>
  ## 🚀 New Features

  #### Comment Approval for Communities

  A community can now require review before a new comment is visible. While a comment is pending, only its author, the community's reviewers, and network admins can see it. It stays out of public comment lists and comment counts until a reviewer approves it. See [Comment Review](/social-plus-sdk/social/content-management/comments/moderation/comment-review).

  * **Turn it on:** set `needApprovalOnCommentCreation` when you create or update the community.
  * **Approval status:** `comment.approvalStatus` is `pending`, `approved`, or `rejected`.
  * **Create without a local copy:** `CommentRepository.createComment(bundle, false)` skips the local comment, so the comment you get back carries the server's approval status. The default, `true`, keeps today's behavior.
  * **Review queue:** `CommentRepository.getCommentReviewQueue` returns the community's pending comments. Narrow it to one post or a date range.
  * **Approve or decline:** `CommentRepository.approveComment` and `declineComment`. Declining deletes the comment. The optional `reason` (at most 250 characters) is kept for the moderation record only.
  * **Permission:** reviewers need `ReviewCommunityCommentPermission`.
  * **Editing while pending:** `Client.getSocialSettings()` returns `isAllowEditCommentWhenReviewingEnabled`, which tells you whether an author may edit a pending comment.
  * **Realtime:** an approved comment appears as soon as it is approved, through the `comment.approved` event. Subscribe with `CommentRepository.onCommentApproved`. A declined comment arrives as a deletion.

  #### Curated Content

  Fetch the posts selected for a topic configured in the Console, and build your own discovery surface around them. A pool is one bounded, ranked result with no pagination, and the SDK keeps the server's order. See [Topic-based Content Discovery](/social-plus-sdk/social/discovery-engagement/feed/curated-content).

  * **Fetch a pool:** `CuratedContentRepository.getPool(topicId, limit?)` returns a promise of the pool: the topic plus its ranked posts. `limit` must be between 1 and 100.
  * **Analytics:** `topic.analytics` provides `markAsViewed()`, `markPostAsViewed(postId)`, and `markPostClick(postId)`.

  #### Pin Message in Live Channels

  Pin one message in a live channel so it stays visible above the chat. Pinning a new message replaces the current pin. The server clears the pin when the message is deleted or its author is banned from the channel or globally. See [Pin and Unpin Messages](/social-plus-sdk/chat/messaging-features/messages/pin-message).

  * **Pin and unpin:** `MessageRepository.pinMessage` and `unpinMessage`.
  * **Read the pin:** `channel.pinnedMessage` holds the current pinned message, or `null` when nothing is pinned.
  * **Permission:** `PinMessagePermission`. Channel moderators, and livestream hosts and co-hosts, have it by default.
  * **Realtime:** `ChannelRepository.getChannel` emits on every pin and unpin, driven by the `channel.messagePinned` and `channel.messageUnpinned` events. `ChannelRepository.onChannelMessagePinned` and `onChannelMessageUnpinned` are also available as separate callbacks.

  #### Local Event on Channel Creation

  `createChannel` now fires a local `channel.created` event right after a successful create. A newly created channel appears immediately in a running `ChannelRepository.getChannels` query, instead of waiting for its first message.

  ## ✨ Improvements

  * Added `post.getLocalCommentCount(includePending)`. By default, the count leaves out the current user's own comments that are still awaiting approval. Pass `true` to include them. `post.localCommentCount` is now deprecated and equals `getLocalCommentCount(true)`.

  ## 🐞 Bug Fixes

  * Fixed a member's channel role change (`channel.roleAdded` / `channel.roleRemoved`) not updating `ChannelRepository.getChannel`, which could leave a stale pin permission.
  * Fixed a globally banned user's session staying active when the realtime ban event was missed. The next API call now terminates the session and notifies `onClientBanned`.
  * Fixed a deleted message's text lingering in the channel list preview when the preview setting excludes deleted messages.
  * Fixed `message.creator.avatar` always resolving to `undefined` even though the type declared it.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.27.1  (24/09/2026)" tags={["Improvements"]}>
  ## 🐞 Bug Fixes

  * Fixed a crash from an unhandled MQTT CONNACK timeout error arriving on a connection that had already been discarded.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.27.0  (11/09/2026)" tags={["New Releases","Improvements"]}>
  ## 🚀 New Features

  #### v4 Sessions

  Migrated `loginWithAccessToken` to v4 sessions.

  #### Skip Token Renewal for Banned Users

  Token renewal is now skipped for globally banned users.

  ## 🐞 Bug Fixes

  * No longer builds a cache key from an id the payload left null.
  * Capped the MQTT v5 session expiry at 1800s.
  * Typed the video file metadata.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.26.0  (28/08/2026)" tags={["Improvements"]}>
  ## ✨ Improvements

  * Maintenance release published as part of the 28 August coordinated release. No new functional changes since 7.25.0.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.25.0  (31/07/2026)" tags={["New Releases","Improvements"]}>
  ## 🚀 New Features

  #### Report User with Reason

  Added the ability to report a user with a reason.

  ## ✨ Improvements

  * Upgraded the MQTT client to protocol v5.

  ## 🐞 Bug Fixes

  * Added an `excludeOwnEvents` query parameter to event queries.
  * Fixed the message preview not updating in real time on edit.
  * Added `actorUserId` to co-host data.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.24.0  (17/07/2026)" tags={["Improvements"]}>
  ## 🐞 Bug Fixes

  * Fixed the `liveChatEnabled` field type on the room (live) object.
  * Fixed the community avatar not resolving for stories.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.23.0  (03/07/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### For You Feed

  Added a personalized **For You** feed. New APIs let you fetch the recommended feed and read its network-level setting, and the feed reports a "caught up" state once the user has seen all available recommendations.

  #### Notification Settings

  Added APIs to read and update user notification settings.

  #### Chat Settings API

  Added a chat settings API for configuring channel and messaging behavior.

  #### Channel Search Live Collection

  Added a live collection for searching channels, so search results stay in sync as data changes.

  #### Enhanced User Blocking

  A new API to list all users blocking the current user, a public auto-subscription enum, and a dedicated error code emitted when the maximum number of blocked users is reached.

  #### Shareable Link Configuration

  Updated the `getShareableLinkConfiguration` schema.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.22.0  (05/06/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Visitor Daily Usage Limit

  Added detection for the visitor daily read quota (100 req/day, error code `400323` — `ServerError.VISITOR_USAGE_LIMIT_EXCEEDED`). The SDK detects this error in the Axios response interceptor and emits an  `visitorUsageLimitReached` event. Subscribe via `onVisitorUsageLimitReached(callback)`.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.21.0  (15/05/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Optimistic Comment Creation

  * Added optimistic comment creation support — comments now appear instantly in the UI before server confirmation, improving perceived performance.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.20.0  (30/04/2026)" tags={["Improvements"]}>
  ## ✨ Improvements

  * Improved MQTT connection retry mechanism for better real-time messaging stability.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.19.0  (24/04/2026)" tags={["Improvements"]}>
  ## 🐞 Bug Fixes

  * Fixed incorrect unread count increment for live channels, which caused `getTotalUnreadCount` to return inaccurate results.
  * Fixed incorrect local `commentsCount` increment.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.18.0  (10/04/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Get All Blocked Users

  Introduce `getAllBlockedUsers()` on `UserRepository` — returns the full list of blocked users (up to 100) as a non-paginated, one-shot `Promise<Amity.User[]>` with a 5-minute TTL cache.

  #### Excluding Roles in Community Member Queries

  Add `excludingRoles` parameter to `getMembers()` and `searchMembers()` query params. Members holding any of the specified roles are excluded from the live collection result.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.17.0  (27/03/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Live Thumbnail and Resolution in AmityRoom

  Add `liveThumbnailUrl`, `liveResolution`, and `recordedResolution` fields to `AmityRoom` to expose server-generated thumbnail and stream resolution data.

  #### Link Detection in Comments

  Add link detection support to comment create/update APIs, enabling automatic link parsing in comment text.

  #### Root Comment and Latest Comment ID in Query

  Add `rootId` and `latestCommentId` fields to the comment query API for improved comment threading and navigation.

  #### Page Size for Get Comments

  Add `pageSize` parameter to `getComments` API for more granular control over comment pagination.

  ## 🐞 Bug Fixes

  * Fixed posts going missing after paging REFRESH.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.16.0  (20/03/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Product Tagging in Posts

  Introduce product tagging support in posts — tag products in post text via `@` trigger and per-media. Includes product search and create/update post with product tags.

  #### Livestream Product Tagging

  Introduce product management in livestream(Room) post — tag, pin, and remove products across broadcast phases.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.15.0  (19/02/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### User Search

  Introduced a new `searchBy` param in `searchUsersByDisplayName` API providing additional search options.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.14.0  (13/02/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Authentication

  Introduce an ability to login with a pre-fetched `accessToken`.

  #### Comment Count

  Introduce a local calculated comment count based on incoming real-time events.

  #### Community Post Query by Tags

  Introduce an ability to community posts with matching tags.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.13.0  (30/01/2026)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Livestream Analytics

  Introduce `AmityRoomAnalytics` for the purpose of tracking watch minute

  #### Session Termination Reason

  Introduce `reason` when client goes into `termianted` state

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.12.0  (24/12/2025)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Livestream Post With Room

  Introduce Room service, an upgrade and a replacement for`stream`

  #### Event Scheduling

  Introduce Event service, enabling event scheduling

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.11.0  (17/10/2025)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Mixed Attachments Post

  * Support `mixed` structure post where a post can contains multiple datatypes such as image, video, file, and audio.

  #### Audio Content Support

  * Support audio file upload.
  * Introduce `audio` dataType for post.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.10.0  (03/10/2025)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Public Access

  * Added `loginAsVisitor()` function, enables user to interact as a visitor.
  * Added `loginAsBot()` function, enables SEO bot to crawl through public data.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>

<Update label="7.9.0  (11/09/2025)" tags={["New Releases"]}>
  ## 🚀 New Features

  #### Child stream

  * Support child stream creation where a child stream can be linked to a parent stream.

  #### Poll

  * Added `unvotePoll()` function, enables user to update poll answer.

  #### Preview members

  * Added `getPreviewMembers()` on `AmityChannel`, enables access upto 4 members of converation and community channel.

  ## 🧩 Compatibility

  <AccordionGroup>
    <Accordion title="Environment" icon="gear">
      | Config | Version |
      | :- | :- |
      | NodeJS | >=v12 |
      | NPM | >=v6 |
    </Accordion>
  </AccordionGroup>
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.