提交图

5 次代码提交

作者 SHA1 备注 提交日期
XuqmGroup
21f27c1770 feat: add leaveGroup, addGroupMember, removeGroupMember, setConversationMuted/Pinned
- ImSDK: leaveGroup removes current user from group via DELETE /groups/{id}/members/{userId}
- ImSDK: addGroupMember / removeGroupMember for admin operations
- ImSDK: setConversationMuted / setConversationPinned exposed from ImDatabase methods
- ImSDK: fetchGroupHistory uses new /messages/group-history/{groupId} endpoint

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 11:57:52 +08:00
XuqmGroup
03261f3416 feat(im): add listFriends, addFriend, removeFriend to ImSDK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 17:27:19 +08:00
XuqmGroup
d7e7cd8e2d feat: async remote init, file upload in SDK, device info, ScaledImage, DB v2
- XuqmSDK.initialize(appId, serverUrl): fetches config from tenant platform
- ImSDK: sendImageMessage/sendVideoMessage/sendAudioMessage/sendFileMessage
- upload.ts: FormData upload to file-service with Bearer auth
- device.ts: deviceId (UUID), brand→pushVendor detection, platform info
- ScaledImage component: aspect-ratio bounded image rendering
- WatermelonDB schema v2: is_muted, is_pinned on conversations
- subscribeConversations: reactive WatermelonDB observable
- searchMessages: keyword/date/chat-type/target filtering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 16:41:19 +08:00
XuqmGroup
4e821b280b feat(rn-im): add WatermelonDB local message database
- Add schema for im_conversations and im_messages tables
- ConversationModel/MessageModel: WatermelonDB ORM models
- ImDatabase: init/saveMessage/getMessages/getConversations/markRead/bulkSave
- ImSDK: fetchHistory/fetchGroupHistory read local DB first, cache server results
- ImSDK: incoming WebSocket messages auto-saved to local DB
- ImSDK: new listConversations() and markRead() public APIs
- @nozbe/watermelondb >=0.27.0 added as peer dependency

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 20:54:12 +08:00
XuqmGroup
febefc8d69 refactor: SDK monorepo with modular packages + clean init API
- Restructure as yarn workspace with packages/common, im, push, update
- @xuqm/rn-common: built-in URLs (no apiBaseUrl/imWsUrl in init), init({appId, debug})
- @xuqm/rn-im: login(userId) handles token internally, no token in public API
- @xuqm/rn-update: registerPlugin({moduleId,version}) for self-registration,
  checkAppUpdate() auto-detects version via XuqmVersionModule native bridge,
  checkRnUpdate(moduleId) uses registered version (no app-layer arg)
- Add XuqmVersionModule native stubs for Android/iOS
- Keep @xuqm/rn-sdk as convenience meta-package re-exporting all

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 16:16:31 +08:00