* simplex-chat-nodejs: typed DbConfig for ChatApi.init and BotDbOpts * simplex-chat-nodejs: regenerate typedoc docs for DbConfig * simplex-chat-nodejs: rename DbConfig.kind to .type
24 KiB
simplex-chat / api / ChatApi
Class: ChatApi
Defined in: src/api.ts:97
Main API class for interacting with the chat core library.
Properties
ctrl_
protectedctrl_:bigint|undefined
Defined in: src/api.ts:103
Accessors
ctrl
Get Signature
get ctrl():
bigint
Defined in: src/api.ts:329
Chat controller reference
Returns
bigint
initialized
Get Signature
get initialized():
boolean
Defined in: src/api.ts:315
Chat controller is initialized
Returns
boolean
started
Get Signature
get started():
boolean
Defined in: src/api.ts:322
Chat controller is started
Returns
boolean
Methods
apiAcceptContactRequest()
apiAcceptContactRequest(
contactReqId):Promise<Contact>
Defined in: src/api.ts:731
Accept contact request. Network usage: interactive.
Parameters
contactReqId
number
Returns
Promise<Contact>
apiAcceptMember()
apiAcceptMember(
groupId,groupMemberId,memberRole):Promise<GroupMember>
Defined in: src/api.ts:551
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:531
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:571
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:521
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:495
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:700
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:709
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:690
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:849
Create new user profile Network usage: no.
Parameters
profile?
Profile
Returns
Promise<User>
apiCreateGroupLink()
apiCreateGroupLink(
groupId,memberRole):Promise<string>
Defined in: src/api.ts:631
Create group link. Network usage: interactive.
Parameters
groupId
number
memberRole
GroupMemberRole
Returns
Promise<string>
apiCreateLink()
apiCreateLink(
userId):Promise<string>
Defined in: src/api.ts:677
Create 1-time invitation link. Network usage: interactive.
Parameters
userId
number
Returns
Promise<string>
apiCreateMemberContact()
apiCreateMemberContact(
groupId,groupMemberId):Promise<Contact>
Defined in: src/api.ts:915
Create a direct message contact with a group member. Returns the created contact. Network usage: interactive.
Parameters
groupId
number
groupMemberId
number
Returns
Promise<Contact>
apiCreateUserAddress()
apiCreateUserAddress(
userId):Promise<CreatedConnLink>
Defined in: src/api.ts:346
Create bot address. Network usage: interactive.
Parameters
userId
number
Returns
Promise<CreatedConnLink>
apiDeleteChat()
apiDeleteChat(
chatType,chatId,deleteMode?):Promise<void>
Defined in: src/api.ts:771
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:470
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:653
Delete group link. Network usage: background.
Parameters
groupId
number
Returns
Promise<void>
apiDeleteMemberChatItem()
apiDeleteMemberChatItem(
groupId,chatItemIds):Promise<ChatItemDeletion[]>
Defined in: src/api.ts:485
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:879
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:356
Deletes a user address. Network usage: background.
Parameters
userId
number
Returns
Promise<void>
apiGetActiveUser()
apiGetActiveUser():
Promise<User|undefined>
Defined in: src/api.ts:829
Get active user profile Network usage: no.
Returns
Promise<User | undefined>
apiGetChat()
apiGetChat(
chatType,chatId,count):Promise<any>
Defined in: src/api.ts:819
Get chat items. Network usage: no.
Parameters
chatType
ChatType
chatId
number
count
number
Returns
Promise<any>
apiGetGroupLink()
apiGetGroupLink(
groupId):Promise<GroupLink>
Defined in: src/api.ts:662
Get group link. Network usage: no.
Parameters
groupId
number
Returns
Promise<GroupLink>
apiGetGroupLinkStr()
apiGetGroupLinkStr(
groupId):Promise<string>
Defined in: src/api.ts:668
Parameters
groupId
number
Returns
Promise<string>
apiGetUserAddress()
apiGetUserAddress(
userId):Promise<UserContactLink|undefined>
Defined in: src/api.ts:366
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:541
Join group. Network usage: interactive.
Parameters
groupId
number
Returns
Promise<GroupInfo>
apiLeaveGroup()
apiLeaveGroup(
groupId):Promise<GroupInfo>
Defined in: src/api.ts:591
Leave group. Network usage: background.
Parameters
groupId
number
Returns
Promise<GroupInfo>
apiListContacts()
apiListContacts(
userId):Promise<Contact[]>
Defined in: src/api.ts:751
Get contacts. Network usage: no.
Parameters
userId
number
Returns
Promise<Contact[]>
apiListGroups()
apiListGroups(
userId,contactId?,search?):Promise<GroupInfo[]>
Defined in: src/api.ts:761
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:601
Get group members. Network usage: no.
Parameters
groupId
number
Returns
Promise<GroupMember[]>
apiListUsers()
apiListUsers():
Promise<UserInfo[]>
Defined in: src/api.ts:859
Get all user profiles Network usage: no.
Returns
Promise<UserInfo[]>
apiNewGroup()
apiNewGroup(
userId,groupProfile):Promise<GroupInfo>
Defined in: src/api.ts:611
Create group. Network usage: no.
Parameters
userId
number
groupProfile
GroupProfile
Returns
Promise<GroupInfo>
apiReceiveFile()
apiReceiveFile(
fileId):Promise<AChatItem>
Defined in: src/api.ts:511
Receive file. Network usage: no.
Parameters
fileId
number
Returns
Promise<AChatItem>
apiRejectContactRequest()
apiRejectContactRequest(
contactReqId):Promise<void>
Defined in: src/api.ts:741
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:581
Remove members. Requires Admin role. Network usage: background.
Parameters
groupId
number
memberIds
number[]
withMessages?
boolean = false
Returns
Promise<GroupMember[]>
apiSendMemberContactInvitation()
apiSendMemberContactInvitation(
contactId,message?):Promise<Contact>
Defined in: src/api.ts:926
Send a direct message invitation to a group member contact. The contact must have been created with apiCreateMemberContact. Network usage: interactive.
Parameters
contactId
number
message?
string | MsgContent
Returns
Promise<Contact>
apiSendMessages()
apiSendMessages(
chat,messages,liveMessage?):Promise<AChatItem[]>
Defined in: src/api.ts:415
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:437
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:445
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:869
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:398
Set bot address settings. Network usage: interactive.
Parameters
userId
number
__namedParameters
Returns
Promise<void>
apiSetAutoAcceptMemberContacts()
apiSetAutoAcceptMemberContacts(
userId,onOff):Promise<void>
Defined in: src/api.ts:808
Set auto-accept member contacts. Network usage: no.
Parameters
userId
number
onOff
boolean
Returns
Promise<void>
apiSetContactCustomData()
apiSetContactCustomData(
contactId,customData?):Promise<void>
Defined in: src/api.ts:798
Set contact custom data. Network usage: no.
Parameters
contactId
number
customData?
object
Returns
Promise<void>
apiSetContactPrefs()
apiSetContactPrefs(
contactId,preferences):Promise<void>
Defined in: src/api.ts:905
Configure chat preference overrides for the contact. Network usage: background.
Parameters
contactId
number
preferences
Preferences
Returns
Promise<void>
apiSetGroupCustomData()
apiSetGroupCustomData(
groupId,customData?):Promise<void>
Defined in: src/api.ts:788
Set group custom data. Network usage: no.
Parameters
groupId
number
customData?
object
Returns
Promise<void>
apiSetGroupLinkMemberRole()
apiSetGroupLinkMemberRole(
groupId,memberRole):Promise<void>
Defined in: src/api.ts:644
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:561
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:384
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:453
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:621
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:889
Update user profile. Network usage: background.
Parameters
userId
number
profile
Profile
Returns
Promise<UserProfileUpdateSummary | undefined>
close()
close():
Promise<void>
Defined in: src/api.ts:148
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:287
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?
EventSubscriberFunc<K> | undefined
An optional subscriber function for the event.
Returns
void
offAny()
offAny(
receiver?):void
Defined in: src/api.ts:303
Unsubscribe all or a specific handler from any events.
Parameters
receiver?
EventSubscriberFunc<Tag> | undefined
An optional subscriber function for the event.
Returns
void
on()
Call Signature
on<
K>(subscribers):void
Defined in: src/api.ts:197
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:205
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:228
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:239
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:338
Parameters
wait?
number = 5_000_000
Returns
Promise<ChatEvent | undefined>
sendChatCmd()
sendChatCmd(
cmd):Promise<ChatResponse>
Defined in: src/api.ts:334
Parameters
cmd
string
Returns
Promise<ChatResponse>
startChat()
startChat():
Promise<void>
Defined in: src/api.ts:122
Start chat controller. Must be called with the existing user profile.
Returns
Promise<void>
stopChat()
stopChat():
Promise<void>
Defined in: src/api.ts:136
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&object>
Defined in: src/api.ts:247
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 & object>
Call Signature
wait<
K>(event,predicate):Promise<ChatEvent&object>
Defined in: src/api.ts:248
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 & object>
Call Signature
wait<
K>(event,timeout):Promise<ChatEvent & { type: K; } |undefined>
Defined in: src/api.ts:249
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:250
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(db,confirm?):Promise<ChatApi>
Defined in: src/api.ts:110
Initializes the ChatApi.
Parameters
db
Database configuration (sqlite or postgres).
confirm?
MigrationConfirmation = core.MigrationConfirmation.YesUp
Migration confirmation mode.
Returns
Promise<ChatApi>