* nodejs: addon
* rename
* changes
* change lib name
* package
* lib path
* simplex-chat-nodejs: fix library paths
* simplex-chat-nodejs: change addon name
* simplex-chat-nodejs: install libs, adjust package and installation
* simplex-chat-nodejs: add npmignore
* gitignore: add additional nodejs path
* simplex-chat-nodejs: fix shim name
* gitignore: ignore nodejs package lock
* simplex-chat-nodejs: rename shim to underscore
* simplex-chat-nodejs: fix library loading on Mac
* simplex-chat-nodejs: expose low-level functions, move tests
* simplex-chat-nodejs: expose shim fucntions
* simplex-chat-nodejs: fixed libs version
* simplex-chat-nodejs: switch to official repository
* simpelx-chat-nodejs: adjust release tag
* async addon, tests
* refactor, fixes
* high level chat api
* simplify cpp add-on - move logic to JS, fix API
* api for events, api test
* update @simplex-chat/types
* Revert "update @simplex-chat/types"
This reverts commit da3f89866f.
* change @simplex-chat/types version
* receiver for any events, wait with timeout
* low-level bot example
* typedoc
* network connection events
* declarative bot api
* readme, docs
* update docs
* update readme
* add liveMessage support
* allow passing welcome message as string
* @simplex-chat/webrtc-client 6.5.0-beta.3
* bot test
* concurrent connection in tests
* nodejs/download-libs: cleanup on version mismatch
* nodejs/download-libs: bump libs version
* do not handle signals in Haskell
* update bot examples
* flatten docs and use local links to code
* update readme
* 6.5.0-beta.4
* include more files in npm package, 6.5.0-beta.4.2
* .gitignore
---------
Co-authored-by: Avently <7953703+avently@users.noreply.github.com>
Co-authored-by: shum <github.shum@liber.li>
22 KiB
simplex-chat / api / ChatApi
Class: ChatApi
Defined in: src/api.ts:62
Main API class for interacting with the chat core library.
Properties
ctrl_
protectedctrl_:bigint|undefined
Defined in: src/api.ts:68
Accessors
ctrl
Get Signature
get ctrl():
bigint
Defined in: src/api.ts:295
Chat controller reference
Returns
bigint
initialized
Get Signature
get initialized():
boolean
Defined in: src/api.ts:281
Chat controller is initialized
Returns
boolean
started
Get Signature
get started():
boolean
Defined in: src/api.ts:288
Chat controller is started
Returns
boolean
Methods
apiAcceptContactRequest()
apiAcceptContactRequest(
contactReqId):Promise<Contact>
Defined in: src/api.ts:697
Accept contact request. Network usage: interactive.
Parameters
contactReqId
number
Returns
Promise<Contact>
apiAcceptMember()
apiAcceptMember(
groupId,groupMemberId,memberRole):Promise<GroupMember>
Defined in: src/api.ts:517
Accept group member. Requires Admin role. Network usage: background.
Parameters
groupId
number
groupMemberId
number
memberRole
GroupMemberRole
Returns
Promise<GroupMember>
apiAddMember()
apiAddMember(
groupId,contactId,memberRole):Promise<GroupMember>
Defined in: src/api.ts:497
Add contact to group. Requires bot to have Admin role. Network usage: interactive.
Parameters
groupId
number
contactId
number
memberRole
GroupMemberRole
Returns
Promise<GroupMember>
apiBlockMembersForAll()
apiBlockMembersForAll(
groupId,groupMemberIds,blocked):Promise<void>
Defined in: src/api.ts:537
Block members. Requires Moderator role. Network usage: background.
Parameters
groupId
number
groupMemberIds
number[]
blocked
boolean
Returns
Promise<void>
apiCancelFile()
apiCancelFile(
fileId):Promise<void>
Defined in: src/api.ts:487
Cancel file. Network usage: background.
Parameters
fileId
number
Returns
Promise<void>
apiChatItemReaction()
apiChatItemReaction(
chatType,chatId,chatItemId,add,reaction):Promise<ChatItemDeletion[]>
Defined in: src/api.ts:461
Add/remove message reaction. Network usage: background.
Parameters
chatType
ChatType
chatId
number
chatItemId
number
add
boolean
reaction
MsgReaction
Returns
Promise<ChatItemDeletion[]>
apiConnect()
apiConnect(
userId,incognito,preparedLink?):Promise<ConnReqType>
Defined in: src/api.ts:666
Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link Network usage: interactive.
Parameters
userId
number
incognito
boolean
preparedLink?
CreatedConnLink
Returns
Promise<ConnReqType>
apiConnectActiveUser()
apiConnectActiveUser(
connLink):Promise<ConnReqType>
Defined in: src/api.ts:675
Connect via SimpleX link as string in the active user profile. Network usage: interactive.
Parameters
connLink
string
Returns
Promise<ConnReqType>
apiConnectPlan()
apiConnectPlan(
userId,connectionLink):Promise<[ConnectionPlan,CreatedConnLink]>
Defined in: src/api.ts:656
Determine SimpleX link type and if the bot is already connected via this link. Network usage: interactive.
Parameters
userId
number
connectionLink
string
Returns
Promise<[ConnectionPlan, CreatedConnLink]>
apiCreateActiveUser()
apiCreateActiveUser(
profile?):Promise<User>
Defined in: src/api.ts:774
Create new user profile Network usage: no.
Parameters
profile?
Profile
Returns
Promise<User>
apiCreateGroupLink()
apiCreateGroupLink(
groupId,memberRole):Promise<string>
Defined in: src/api.ts:597
Create group link. Network usage: interactive.
Parameters
groupId
number
memberRole
GroupMemberRole
Returns
Promise<string>
apiCreateLink()
apiCreateLink(
userId):Promise<string>
Defined in: src/api.ts:643
Create 1-time invitation link. Network usage: interactive.
Parameters
userId
number
Returns
Promise<string>
apiCreateUserAddress()
apiCreateUserAddress(
userId):Promise<CreatedConnLink>
Defined in: src/api.ts:312
Create bot address. Network usage: interactive.
Parameters
userId
number
Returns
Promise<CreatedConnLink>
apiDeleteChat()
apiDeleteChat(
chatType,chatId,deleteMode):Promise<void>
Defined in: src/api.ts:737
Delete chat. Network usage: background.
Parameters
chatType
ChatType
chatId
number
deleteMode
ChatDeleteMode = ...
Returns
Promise<void>
apiDeleteChatItems()
apiDeleteChatItems(
chatType,chatId,chatItemIds,deleteMode):Promise<ChatItemDeletion[]>
Defined in: src/api.ts:436
Delete message. Network usage: background.
Parameters
chatType
ChatType
chatId
number
chatItemIds
number[]
deleteMode
CIDeleteMode
Returns
Promise<ChatItemDeletion[]>
apiDeleteGroupLink()
apiDeleteGroupLink(
groupId):Promise<void>
Defined in: src/api.ts:619
Delete group link. Network usage: background.
Parameters
groupId
number
Returns
Promise<void>
apiDeleteMemberChatItem()
apiDeleteMemberChatItem(
groupId,chatItemIds):Promise<ChatItemDeletion[]>
Defined in: src/api.ts:451
Moderate message. Requires Moderator role (and higher than message author's). Network usage: background.
Parameters
groupId
number
chatItemIds
number[]
Returns
Promise<ChatItemDeletion[]>
apiDeleteUser()
apiDeleteUser(
userId,delSMPQueues,viewPwd?):Promise<void>
Defined in: src/api.ts:804
Delete user profile. Network usage: background.
Parameters
userId
number
delSMPQueues
boolean
viewPwd?
string
Returns
Promise<void>
apiDeleteUserAddress()
apiDeleteUserAddress(
userId):Promise<void>
Defined in: src/api.ts:322
Deletes a user address. Network usage: background.
Parameters
userId
number
Returns
Promise<void>
apiGetActiveUser()
apiGetActiveUser():
Promise<User|undefined>
Defined in: src/api.ts:754
Get active user profile Network usage: no.
Returns
Promise<User | undefined>
apiGetGroupLink()
apiGetGroupLink(
groupId):Promise<GroupLink>
Defined in: src/api.ts:628
Get group link. Network usage: no.
Parameters
groupId
number
Returns
Promise<GroupLink>
apiGetGroupLinkStr()
apiGetGroupLinkStr(
groupId):Promise<string>
Defined in: src/api.ts:634
Parameters
groupId
number
Returns
Promise<string>
apiGetUserAddress()
apiGetUserAddress(
userId):Promise<UserContactLink|undefined>
Defined in: src/api.ts:332
Get bot address and settings. Network usage: no.
Parameters
userId
number
Returns
Promise<UserContactLink | undefined>
apiJoinGroup()
apiJoinGroup(
groupId):Promise<GroupInfo>
Defined in: src/api.ts:507
Join group. Network usage: interactive.
Parameters
groupId
number
Returns
Promise<GroupInfo>
apiLeaveGroup()
apiLeaveGroup(
groupId):Promise<GroupInfo>
Defined in: src/api.ts:557
Leave group. Network usage: background.
Parameters
groupId
number
Returns
Promise<GroupInfo>
apiListContacts()
apiListContacts(
userId):Promise<Contact[]>
Defined in: src/api.ts:717
Get contacts. Network usage: no.
Parameters
userId
number
Returns
Promise<Contact[]>
apiListGroups()
apiListGroups(
userId,contactId?,search?):Promise<GroupInfo[]>
Defined in: src/api.ts:727
Get groups. Network usage: no.
Parameters
userId
number
contactId?
number
search?
string
Returns
Promise<GroupInfo[]>
apiListMembers()
apiListMembers(
groupId):Promise<GroupMember[]>
Defined in: src/api.ts:567
Get group members. Network usage: no.
Parameters
groupId
number
Returns
Promise<GroupMember[]>
apiListUsers()
apiListUsers():
Promise<UserInfo[]>
Defined in: src/api.ts:784
Get all user profiles Network usage: no.
Returns
Promise<UserInfo[]>
apiNewGroup()
apiNewGroup(
userId,groupProfile):Promise<GroupInfo>
Defined in: src/api.ts:577
Create group. Network usage: no.
Parameters
userId
number
groupProfile
GroupProfile
Returns
Promise<GroupInfo>
apiReceiveFile()
apiReceiveFile(
fileId):Promise<AChatItem>
Defined in: src/api.ts:477
Receive file. Network usage: no.
Parameters
fileId
number
Returns
Promise<AChatItem>
apiRejectContactRequest()
apiRejectContactRequest(
contactReqId):Promise<void>
Defined in: src/api.ts:707
Reject contact request. The user who sent the request is not notified. Network usage: no.
Parameters
contactReqId
number
Returns
Promise<void>
apiRemoveMembers()
apiRemoveMembers(
groupId,memberIds,withMessages):Promise<GroupMember[]>
Defined in: src/api.ts:547
Remove members. Requires Admin role. Network usage: background.
Parameters
groupId
number
memberIds
number[]
withMessages
boolean = false
Returns
Promise<GroupMember[]>
apiSendMessages()
apiSendMessages(
chat,messages,liveMessage):Promise<AChatItem[]>
Defined in: src/api.ts:381
Send messages. Network usage: background.
Parameters
chat
ChatInfo | ChatRef | [ChatType, number]
messages
ComposedMessage[]
liveMessage
boolean = false
Returns
Promise<AChatItem[]>
apiSendTextMessage()
apiSendTextMessage(
chat,text,inReplyTo?):Promise<AChatItem[]>
Defined in: src/api.ts:403
Send text message. Network usage: background.
Parameters
chat
ChatInfo | ChatRef | [ChatType, number]
text
string
inReplyTo?
number
Returns
Promise<AChatItem[]>
apiSendTextReply()
apiSendTextReply(
chatItem,text):Promise<AChatItem[]>
Defined in: src/api.ts:411
Send text message in reply to received message. Network usage: background.
Parameters
chatItem
AChatItem
text
string
Returns
Promise<AChatItem[]>
apiSetActiveUser()
apiSetActiveUser(
userId,viewPwd?):Promise<User>
Defined in: src/api.ts:794
Set active user profile Network usage: no.
Parameters
userId
number
viewPwd?
string
Returns
Promise<User>
apiSetAddressSettings()
apiSetAddressSettings(
userId,__namedParameters):Promise<void>
Defined in: src/api.ts:364
Set bot address settings. Network usage: interactive.
Parameters
userId
number
__namedParameters
Returns
Promise<void>
apiSetContactPrefs()
apiSetContactPrefs(
contactId,preferences):Promise<void>
Defined in: src/api.ts:830
Configure chat preference overrides for the contact. Network usage: background.
Parameters
contactId
number
preferences
Preferences
Returns
Promise<void>
apiSetGroupLinkMemberRole()
apiSetGroupLinkMemberRole(
groupId,memberRole):Promise<void>
Defined in: src/api.ts:610
Set member role for group link. Network usage: no.
Parameters
groupId
number
memberRole
GroupMemberRole
Returns
Promise<void>
apiSetMembersRole()
apiSetMembersRole(
groupId,groupMemberIds,memberRole):Promise<void>
Defined in: src/api.ts:527
Set members role. Requires Admin role. Network usage: background.
Parameters
groupId
number
groupMemberIds
number[]
memberRole
GroupMemberRole
Returns
Promise<void>
apiSetProfileAddress()
apiSetProfileAddress(
userId,enable):Promise<UserProfileUpdateSummary>
Defined in: src/api.ts:350
Add address to bot profile. Network usage: interactive.
Parameters
userId
number
enable
boolean
Returns
Promise<UserProfileUpdateSummary>
apiUpdateChatItem()
apiUpdateChatItem(
chatType,chatId,chatItemId,msgContent,liveMessage):Promise<ChatItem>
Defined in: src/api.ts:419
Update message. Network usage: background.
Parameters
chatType
ChatType
chatId
number
chatItemId
number
msgContent
MsgContent
liveMessage
false
Returns
Promise<ChatItem>
apiUpdateGroupProfile()
apiUpdateGroupProfile(
groupId,groupProfile):Promise<GroupInfo>
Defined in: src/api.ts:587
Update group profile. Network usage: background.
Parameters
groupId
number
groupProfile
GroupProfile
Returns
Promise<GroupInfo>
apiUpdateProfile()
apiUpdateProfile(
userId,profile):Promise<UserProfileUpdateSummary|undefined>
Defined in: src/api.ts:814
Update user profile. Network usage: background.
Parameters
userId
number
profile
Profile
Returns
Promise<UserProfileUpdateSummary | undefined>
close()
close():
Promise<void>
Defined in: src/api.ts:114
Close chat database. Usually doesn't need to be called in chat bots.
Returns
Promise<void>
off()
off<
K>(event,subscriber):void
Defined in: src/api.ts:253
Unsubscribe all or a specific handler from a specific event.
Type Parameters
K
K extends Tag
Parameters
event
K
The event type to unsubscribe from.
subscriber
An optional subscriber function for the event.
EventSubscriberFunc<K> | undefined
Returns
void
offAny()
offAny(
receiver):void
Defined in: src/api.ts:269
Unsubscribe all or a specific handler from any events.
Parameters
receiver
An optional subscriber function for the event.
EventSubscriberFunc<Tag> | undefined
Returns
void
on()
Call Signature
on<
K>(subscribers):void
Defined in: src/api.ts:163
Subscribe multiple event handlers at once.
Type Parameters
K
K extends Tag
Parameters
subscribers
An object mapping event types (CEvt.Tag) to their subscriber functions.
Returns
void
Throws
If the same function is subscribed to event.
Call Signature
on<
K>(event,subscriber):void
Defined in: src/api.ts:171
Subscribe a handler to a specific event.
Type Parameters
K
K extends Tag
Parameters
event
K
The event type to subscribe to.
subscriber
The subscriber function for the event.
Returns
void
Throws
If the same function is subscribed to event.
onAny()
onAny(
receiver):void
Defined in: src/api.ts:194
Subscribe a handler to any event.
Parameters
receiver
EventSubscriberFunc<Tag>
The receiver function for any event.
Returns
void
Throws
If the same function is subscribed to event.
once()
once<
K>(event,subscriber):void
Defined in: src/api.ts:205
Subscribe a handler to a specific event to be delivered one time.
Type Parameters
K
K extends Tag
Parameters
event
K
The event type to subscribe to.
subscriber
The subscriber function for the event.
Returns
void
Throws
If the same function is subscribed to event.
recvChatEvent()
recvChatEvent(
wait):Promise<ChatEvent|undefined>
Defined in: src/api.ts:304
Parameters
wait
number = 5_000_000
Returns
Promise<ChatEvent | undefined>
sendChatCmd()
sendChatCmd(
cmd):Promise<ChatResponse>
Defined in: src/api.ts:300
Parameters
cmd
string
Returns
Promise<ChatResponse>
startChat()
startChat():
Promise<void>
Defined in: src/api.ts:88
Start chat controller. Must be called with the existing user profile.
Returns
Promise<void>
stopChat()
stopChat():
Promise<void>
Defined in: src/api.ts:102
Stop chat controller. Must be called before closing the database. Usually doesn't need to be called in chat bots.
Returns
Promise<void>
wait()
Call Signature
wait<
K>(event):Promise<ChatEvent& {type:K; }>
Defined in: src/api.ts:213
Waits for specific event, with an optional predicate.
Returns undefined on timeout if specified.
Type Parameters
K
K extends Tag
Parameters
event
K
Returns
Promise<ChatEvent & { type: K; }>
Call Signature
wait<
K>(event,predicate):Promise<ChatEvent& {type:K; }>
Defined in: src/api.ts:214
Waits for specific event, with an optional predicate.
Returns undefined on timeout if specified.
Type Parameters
K
K extends Tag
Parameters
event
K
predicate
(event) => boolean | undefined
Returns
Promise<ChatEvent & { type: K; }>
Call Signature
wait<
K>(event,timeout):Promise<ChatEvent & { type: K; } |undefined>
Defined in: src/api.ts:215
Waits for specific event, with an optional predicate.
Returns undefined on timeout if specified.
Type Parameters
K
K extends Tag
Parameters
event
K
timeout
number
Returns
Promise<ChatEvent & { type: K; } | undefined>
Call Signature
wait<
K>(event,predicate,timeout):Promise<ChatEvent & { type: K; } |undefined>
Defined in: src/api.ts:216
Waits for specific event, with an optional predicate.
Returns undefined on timeout if specified.
Type Parameters
K
K extends Tag
Parameters
event
K
predicate
(event) => boolean | undefined
timeout
number
Returns
Promise<ChatEvent & { type: K; } | undefined>
init()
staticinit(dbFilePrefix,dbKey?,confirm?):Promise<ChatApi>
Defined in: src/api.ts:76
Initializes the ChatApi.
Parameters
dbFilePrefix
string
File prefix for the database files.
dbKey?
string = ""
Database encryption key.
confirm?
MigrationConfirmation = core.MigrationConfirmation.YesUp
Migration confirmation mode.
Returns
Promise<ChatApi>