bb-fca 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/LICENSE-MIT +21 -0
  2. package/README.md +0 -0
  3. package/dist/core/client.js +50 -0
  4. package/dist/core/client.js.map +1 -0
  5. package/dist/core/models/buildAPI.js +103 -0
  6. package/dist/core/models/buildAPI.js.map +1 -0
  7. package/dist/core/models/loginHelper.js +209 -0
  8. package/dist/core/models/loginHelper.js.map +1 -0
  9. package/dist/core/models/setOptions.js +47 -0
  10. package/dist/core/models/setOptions.js.map +1 -0
  11. package/dist/deltas/apis/create.js +30 -0
  12. package/dist/deltas/apis/create.js.map +1 -0
  13. package/dist/deltas/apis/extra/addExternalModule.js +23 -0
  14. package/dist/deltas/apis/extra/addExternalModule.js.map +1 -0
  15. package/dist/deltas/apis/extra/getAccess.js +110 -0
  16. package/dist/deltas/apis/extra/getAccess.js.map +1 -0
  17. package/dist/deltas/apis/http/httpGet.js +57 -0
  18. package/dist/deltas/apis/http/httpGet.js.map +1 -0
  19. package/dist/deltas/apis/http/httpPost.js +57 -0
  20. package/dist/deltas/apis/http/httpPost.js.map +1 -0
  21. package/dist/deltas/apis/http/httpPostFormData.js +61 -0
  22. package/dist/deltas/apis/http/httpPostFormData.js.map +1 -0
  23. package/dist/deltas/apis/login/GetBotInfo.js +83 -0
  24. package/dist/deltas/apis/login/GetBotInfo.js.map +1 -0
  25. package/dist/deltas/apis/login/getBotInitialData.js +46 -0
  26. package/dist/deltas/apis/login/getBotInitialData.js.map +1 -0
  27. package/dist/deltas/apis/login/logout.js +54 -0
  28. package/dist/deltas/apis/login/logout.js.map +1 -0
  29. package/dist/deltas/apis/messaging/editMessage.js +64 -0
  30. package/dist/deltas/apis/messaging/editMessage.js.map +1 -0
  31. package/dist/deltas/apis/messaging/emoji.js +120 -0
  32. package/dist/deltas/apis/messaging/emoji.js.map +1 -0
  33. package/dist/deltas/apis/messaging/gcmember.js +164 -0
  34. package/dist/deltas/apis/messaging/gcmember.js.map +1 -0
  35. package/dist/deltas/apis/messaging/gcname.js +119 -0
  36. package/dist/deltas/apis/messaging/gcname.js.map +1 -0
  37. package/dist/deltas/apis/messaging/gcrule.js +144 -0
  38. package/dist/deltas/apis/messaging/gcrule.js.map +1 -0
  39. package/dist/deltas/apis/messaging/markAsDelivered.js +44 -0
  40. package/dist/deltas/apis/messaging/markAsDelivered.js.map +1 -0
  41. package/dist/deltas/apis/messaging/markAsRead.js +84 -0
  42. package/dist/deltas/apis/messaging/markAsRead.js.map +1 -0
  43. package/dist/deltas/apis/messaging/markAsReadAll.js +34 -0
  44. package/dist/deltas/apis/messaging/markAsReadAll.js.map +1 -0
  45. package/dist/deltas/apis/messaging/markAsSeen.js +64 -0
  46. package/dist/deltas/apis/messaging/markAsSeen.js.map +1 -0
  47. package/dist/deltas/apis/messaging/nickname.js +129 -0
  48. package/dist/deltas/apis/messaging/nickname.js.map +1 -0
  49. package/dist/deltas/apis/messaging/notes.js +156 -0
  50. package/dist/deltas/apis/messaging/notes.js.map +1 -0
  51. package/dist/deltas/apis/messaging/resolvePhotoUrl.js +55 -0
  52. package/dist/deltas/apis/messaging/resolvePhotoUrl.js.map +1 -0
  53. package/dist/deltas/apis/messaging/sendMessage.js +239 -0
  54. package/dist/deltas/apis/messaging/sendMessage.js.map +1 -0
  55. package/dist/deltas/apis/messaging/sendTypingIndicator.js +41 -0
  56. package/dist/deltas/apis/messaging/sendTypingIndicator.js.map +1 -0
  57. package/dist/deltas/apis/messaging/setMessageReaction.js +30 -0
  58. package/dist/deltas/apis/messaging/setMessageReaction.js.map +1 -0
  59. package/dist/deltas/apis/messaging/shareContact.js +59 -0
  60. package/dist/deltas/apis/messaging/shareContact.js.map +1 -0
  61. package/dist/deltas/apis/messaging/stickers.js +246 -0
  62. package/dist/deltas/apis/messaging/stickers.js.map +1 -0
  63. package/dist/deltas/apis/messaging/theme.js +227 -0
  64. package/dist/deltas/apis/messaging/theme.js.map +1 -0
  65. package/dist/deltas/apis/messaging/unsendMessage.js +19 -0
  66. package/dist/deltas/apis/messaging/unsendMessage.js.map +1 -0
  67. package/dist/deltas/apis/mqtt/deltas/value.js +193 -0
  68. package/dist/deltas/apis/mqtt/deltas/value.js.map +1 -0
  69. package/dist/deltas/apis/mqtt/listenMqtt.js +306 -0
  70. package/dist/deltas/apis/mqtt/listenMqtt.js.map +1 -0
  71. package/dist/deltas/apis/mqtt/listenSpeed.js +166 -0
  72. package/dist/deltas/apis/mqtt/listenSpeed.js.map +1 -0
  73. package/dist/deltas/apis/mqtt/pinMessage.js +166 -0
  74. package/dist/deltas/apis/mqtt/pinMessage.js.map +1 -0
  75. package/dist/deltas/apis/mqtt/realtime.js +160 -0
  76. package/dist/deltas/apis/mqtt/realtime.js.map +1 -0
  77. package/dist/deltas/apis/mqtt/sendMessageMqtt.js +184 -0
  78. package/dist/deltas/apis/mqtt/sendMessageMqtt.js.map +1 -0
  79. package/dist/deltas/apis/mqtt/setMessageReactionMqtt.js +57 -0
  80. package/dist/deltas/apis/mqtt/setMessageReactionMqtt.js.map +1 -0
  81. package/dist/deltas/apis/posting/comment.js +195 -0
  82. package/dist/deltas/apis/posting/comment.js.map +1 -0
  83. package/dist/deltas/apis/posting/follow.js +82 -0
  84. package/dist/deltas/apis/posting/follow.js.map +1 -0
  85. package/dist/deltas/apis/posting/friend.js +253 -0
  86. package/dist/deltas/apis/posting/friend.js.map +1 -0
  87. package/dist/deltas/apis/posting/post.js +551 -0
  88. package/dist/deltas/apis/posting/post.js.map +1 -0
  89. package/dist/deltas/apis/posting/share.js +59 -0
  90. package/dist/deltas/apis/posting/share.js.map +1 -0
  91. package/dist/deltas/apis/posting/story.js +176 -0
  92. package/dist/deltas/apis/posting/story.js.map +1 -0
  93. package/dist/deltas/apis/threads/getThreadHistory.js +233 -0
  94. package/dist/deltas/apis/threads/getThreadHistory.js.map +1 -0
  95. package/dist/deltas/apis/threads/getThreadInfo.js +197 -0
  96. package/dist/deltas/apis/threads/getThreadInfo.js.map +1 -0
  97. package/dist/deltas/apis/threads/getThreadList.js +201 -0
  98. package/dist/deltas/apis/threads/getThreadList.js.map +1 -0
  99. package/dist/deltas/apis/users/getUserInfo.js +254 -0
  100. package/dist/deltas/apis/users/getUserInfo.js.map +1 -0
  101. package/dist/index.d.ts +696 -0
  102. package/dist/types/core/client.d.ts +2 -0
  103. package/dist/types/core/models/buildAPI.d.ts +13 -0
  104. package/dist/types/core/models/loginHelper.d.ts +15 -0
  105. package/dist/types/core/models/setOptions.d.ts +2 -0
  106. package/dist/types/deltas/apis/create.d.ts +23 -0
  107. package/dist/types/deltas/apis/extra/addExternalModule.d.ts +1 -0
  108. package/dist/types/deltas/apis/extra/getAccess.d.ts +1 -0
  109. package/dist/types/deltas/apis/http/httpGet.d.ts +1 -0
  110. package/dist/types/deltas/apis/http/httpPost.d.ts +1 -0
  111. package/dist/types/deltas/apis/http/httpPostFormData.d.ts +1 -0
  112. package/dist/types/deltas/apis/login/GetBotInfo.d.ts +32 -0
  113. package/dist/types/deltas/apis/login/getBotInitialData.d.ts +1 -0
  114. package/dist/types/deltas/apis/login/logout.d.ts +7 -0
  115. package/dist/types/deltas/apis/messaging/editMessage.d.ts +7 -0
  116. package/dist/types/deltas/apis/messaging/emoji.d.ts +1 -0
  117. package/dist/types/deltas/apis/messaging/gcmember.d.ts +1 -0
  118. package/dist/types/deltas/apis/messaging/gcname.d.ts +1 -0
  119. package/dist/types/deltas/apis/messaging/gcrule.d.ts +1 -0
  120. package/dist/types/deltas/apis/messaging/markAsDelivered.d.ts +7 -0
  121. package/dist/types/deltas/apis/messaging/markAsRead.d.ts +6 -0
  122. package/dist/types/deltas/apis/messaging/markAsReadAll.d.ts +7 -0
  123. package/dist/types/deltas/apis/messaging/markAsSeen.d.ts +6 -0
  124. package/dist/types/deltas/apis/messaging/nickname.d.ts +1 -0
  125. package/dist/types/deltas/apis/messaging/notes.d.ts +14 -0
  126. package/dist/types/deltas/apis/messaging/resolvePhotoUrl.d.ts +9 -0
  127. package/dist/types/deltas/apis/messaging/sendMessage.d.ts +1 -0
  128. package/dist/types/deltas/apis/messaging/sendTypingIndicator.d.ts +6 -0
  129. package/dist/types/deltas/apis/messaging/setMessageReaction.d.ts +1 -0
  130. package/dist/types/deltas/apis/messaging/shareContact.d.ts +8 -0
  131. package/dist/types/deltas/apis/messaging/stickers.d.ts +48 -0
  132. package/dist/types/deltas/apis/messaging/theme.d.ts +1 -0
  133. package/dist/types/deltas/apis/messaging/unsendMessage.d.ts +1 -0
  134. package/dist/types/deltas/apis/mqtt/deltas/value.d.ts +2 -0
  135. package/dist/types/deltas/apis/mqtt/listenMqtt.d.ts +20 -0
  136. package/dist/types/deltas/apis/mqtt/listenSpeed.d.ts +21 -0
  137. package/dist/types/deltas/apis/mqtt/pinMessage.d.ts +1 -0
  138. package/dist/types/deltas/apis/mqtt/realtime.d.ts +1 -0
  139. package/dist/types/deltas/apis/mqtt/sendMessageMqtt.d.ts +1 -0
  140. package/dist/types/deltas/apis/mqtt/setMessageReactionMqtt.d.ts +1 -0
  141. package/dist/types/deltas/apis/posting/comment.d.ts +9 -0
  142. package/dist/types/deltas/apis/posting/follow.d.ts +14 -0
  143. package/dist/types/deltas/apis/posting/friend.d.ts +61 -0
  144. package/dist/types/deltas/apis/posting/post.d.ts +20 -0
  145. package/dist/types/deltas/apis/posting/share.d.ts +1 -0
  146. package/dist/types/deltas/apis/posting/story.d.ts +39 -0
  147. package/dist/types/deltas/apis/threads/getThreadHistory.d.ts +7 -0
  148. package/dist/types/deltas/apis/threads/getThreadInfo.d.ts +7 -0
  149. package/dist/types/deltas/apis/threads/getThreadList.d.ts +7 -0
  150. package/dist/types/deltas/apis/users/getUserInfo.d.ts +1 -0
  151. package/dist/types/utils/axios.d.ts +7 -0
  152. package/dist/types/utils/clients.d.ts +4 -0
  153. package/dist/types/utils/constants.d.ts +24 -0
  154. package/dist/types/utils/formatters/data/formatAttachment.d.ts +2 -0
  155. package/dist/types/utils/formatters/data/formatDelta.d.ts +4 -0
  156. package/dist/types/utils/formatters/index.d.ts +17 -0
  157. package/dist/types/utils/formatters/value/formatCookie.d.ts +8 -0
  158. package/dist/types/utils/formatters/value/formatDate.d.ts +6 -0
  159. package/dist/types/utils/formatters/value/formatID.d.ts +7 -0
  160. package/dist/types/utils/headers.d.ts +2 -0
  161. package/dist/types/utils/index.d.ts +75 -0
  162. package/dist/types/utils/user-agents.d.ts +9 -0
  163. package/dist/utils/axios.js +148 -0
  164. package/dist/utils/axios.js.map +1 -0
  165. package/dist/utils/clients.js +120 -0
  166. package/dist/utils/clients.js.map +1 -0
  167. package/dist/utils/constants.js +249 -0
  168. package/dist/utils/constants.js.map +1 -0
  169. package/dist/utils/formatters/data/formatAttachment.js +61 -0
  170. package/dist/utils/formatters/data/formatAttachment.js.map +1 -0
  171. package/dist/utils/formatters/data/formatDelta.js +67 -0
  172. package/dist/utils/formatters/data/formatDelta.js.map +1 -0
  173. package/dist/utils/formatters/index.js +132 -0
  174. package/dist/utils/formatters/index.js.map +1 -0
  175. package/dist/utils/formatters/value/formatCookie.js +13 -0
  176. package/dist/utils/formatters/value/formatCookie.js.map +1 -0
  177. package/dist/utils/formatters/value/formatDate.js +33 -0
  178. package/dist/utils/formatters/value/formatDate.js.map +1 -0
  179. package/dist/utils/formatters/value/formatID.js +17 -0
  180. package/dist/utils/formatters/value/formatID.js.map +1 -0
  181. package/dist/utils/headers.js +61 -0
  182. package/dist/utils/headers.js.map +1 -0
  183. package/dist/utils/index.js +105 -0
  184. package/dist/utils/index.js.map +1 -0
  185. package/dist/utils/user-agents.js +41 -0
  186. package/dist/utils/user-agents.js.map +1 -0
  187. package/examples/post.example.js +149 -0
  188. package/module/index.js +5 -0
  189. package/package.json +56 -0
  190. package/src/core/client.ts +66 -0
  191. package/src/core/models/buildAPI.ts +131 -0
  192. package/src/core/models/loginHelper.ts +226 -0
  193. package/src/core/models/setOptions.ts +48 -0
  194. package/src/deltas/apis/create.ts +28 -0
  195. package/src/deltas/apis/extra/addExternalModule.ts +23 -0
  196. package/src/deltas/apis/extra/getAccess.ts +141 -0
  197. package/src/deltas/apis/http/httpGet.ts +61 -0
  198. package/src/deltas/apis/http/httpPost.ts +61 -0
  199. package/src/deltas/apis/http/httpPostFormData.ts +67 -0
  200. package/src/deltas/apis/login/GetBotInfo.ts +88 -0
  201. package/src/deltas/apis/login/getBotInitialData.ts +42 -0
  202. package/src/deltas/apis/login/logout.ts +62 -0
  203. package/src/deltas/apis/messaging/editMessage.ts +69 -0
  204. package/src/deltas/apis/messaging/emoji.ts +135 -0
  205. package/src/deltas/apis/messaging/gcmember.ts +175 -0
  206. package/src/deltas/apis/messaging/gcname.ts +136 -0
  207. package/src/deltas/apis/messaging/gcrule.ts +152 -0
  208. package/src/deltas/apis/messaging/markAsDelivered.ts +47 -0
  209. package/src/deltas/apis/messaging/markAsRead.ts +94 -0
  210. package/src/deltas/apis/messaging/markAsReadAll.ts +38 -0
  211. package/src/deltas/apis/messaging/markAsSeen.ts +69 -0
  212. package/src/deltas/apis/messaging/nickname.ts +153 -0
  213. package/src/deltas/apis/messaging/notes.ts +165 -0
  214. package/src/deltas/apis/messaging/resolvePhotoUrl.ts +56 -0
  215. package/src/deltas/apis/messaging/sendMessage.ts +286 -0
  216. package/src/deltas/apis/messaging/sendTypingIndicator.ts +48 -0
  217. package/src/deltas/apis/messaging/setMessageReaction.ts +25 -0
  218. package/src/deltas/apis/messaging/shareContact.ts +63 -0
  219. package/src/deltas/apis/messaging/stickers.ts +255 -0
  220. package/src/deltas/apis/messaging/theme.ts +280 -0
  221. package/src/deltas/apis/messaging/unsendMessage.ts +15 -0
  222. package/src/deltas/apis/mqtt/deltas/value.ts +224 -0
  223. package/src/deltas/apis/mqtt/listenMqtt.ts +332 -0
  224. package/src/deltas/apis/mqtt/listenSpeed.ts +179 -0
  225. package/src/deltas/apis/mqtt/pinMessage.ts +135 -0
  226. package/src/deltas/apis/mqtt/realtime.ts +169 -0
  227. package/src/deltas/apis/mqtt/sendMessageMqtt.ts +206 -0
  228. package/src/deltas/apis/mqtt/setMessageReactionMqtt.ts +61 -0
  229. package/src/deltas/apis/posting/comment.ts +205 -0
  230. package/src/deltas/apis/posting/follow.ts +79 -0
  231. package/src/deltas/apis/posting/friend.ts +241 -0
  232. package/src/deltas/apis/posting/post.ts +599 -0
  233. package/src/deltas/apis/posting/share.ts +60 -0
  234. package/src/deltas/apis/posting/story.ts +207 -0
  235. package/src/deltas/apis/threads/getThreadHistory.ts +237 -0
  236. package/src/deltas/apis/threads/getThreadInfo.ts +210 -0
  237. package/src/deltas/apis/threads/getThreadList.ts +224 -0
  238. package/src/deltas/apis/users/getUserInfo.ts +244 -0
  239. package/src/types/index.d.ts +696 -0
  240. package/src/utils/axios.ts +178 -0
  241. package/src/utils/clients.ts +125 -0
  242. package/src/utils/constants.ts +281 -0
  243. package/src/utils/formatters/data/formatAttachment.ts +58 -0
  244. package/src/utils/formatters/data/formatDelta.ts +45 -0
  245. package/src/utils/formatters/index.ts +82 -0
  246. package/src/utils/formatters/value/formatCookie.ts +13 -0
  247. package/src/utils/formatters/value/formatDate.ts +34 -0
  248. package/src/utils/formatters/value/formatID.ts +14 -0
  249. package/src/utils/formatters.old.ts +1049 -0
  250. package/src/utils/headers.ts +65 -0
  251. package/src/utils/index.ts +65 -0
  252. package/src/utils/user-agents.ts +49 -0
  253. package/tsconfig.json +37 -0
@@ -0,0 +1,696 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { ReadStream } from 'fs';
4
+
5
+ export type UserID = string;
6
+ export type ThreadID = string;
7
+ export type MessageID = string;
8
+ export type Callback<T = any> = (err: any, result?: T) => void;
9
+
10
+ export interface Coordinates {
11
+ latitude: number;
12
+ longitude: number;
13
+ }
14
+
15
+ export interface Mention {
16
+ tag: string;
17
+ id: UserID;
18
+ fromIndex?: number;
19
+ }
20
+
21
+ export interface Reaction {
22
+ reaction: string;
23
+ userID: UserID;
24
+ }
25
+
26
+ export interface StickerPackInfo {
27
+ id: string;
28
+ name: string;
29
+ thumbnail?: string;
30
+ }
31
+
32
+ export interface StickerInfo {
33
+ type: 'sticker';
34
+ ID: string;
35
+ url?: string;
36
+ animatedUrl?: string;
37
+ packID?: string;
38
+ label: string;
39
+ stickerID: string;
40
+ }
41
+
42
+ export interface AddedStickerPackInfo {
43
+ id: string;
44
+ name: string;
45
+ in_sticker_tray: boolean;
46
+ artist?: string;
47
+ preview_image?: { uri: string };
48
+ thumbnail_image?: { uri: string };
49
+ }
50
+
51
+ export interface CommentMessage {
52
+ body: string;
53
+ attachment?: ReadStream[];
54
+ mentions?: Mention[];
55
+ url?: string;
56
+ sticker?: string;
57
+ }
58
+
59
+ export interface CommentResult {
60
+ id: string;
61
+ url: string;
62
+ count: number;
63
+ }
64
+
65
+ export interface PostCommentAuthor {
66
+ id: string | null;
67
+ name: string;
68
+ avatar: string | null;
69
+ }
70
+
71
+ export interface PostCommentReply {
72
+ id: string;
73
+ text: string;
74
+ created_time: number;
75
+ author: PostCommentAuthor;
76
+ }
77
+
78
+ export interface PostComment {
79
+ id: string;
80
+ graphql_id: string;
81
+ text: string;
82
+ author: PostCommentAuthor;
83
+ created_time: number;
84
+ reply_count: number;
85
+ total_reply_count: number;
86
+ depth: number;
87
+ replies?: PostCommentReply[];
88
+ }
89
+
90
+ export interface GetPostCommentsOptions {
91
+ story_fbid: string;
92
+ id?: string;
93
+ }
94
+
95
+ export interface ShareResult {
96
+ postID: string;
97
+ url: string;
98
+ }
99
+
100
+ export interface CreatePostOptions {
101
+ message?: string;
102
+ privacy?: 'EVERYONE' | 'FRIENDS' | 'SELF';
103
+ photos?: string[];
104
+ }
105
+
106
+ export interface CreatePostResult {
107
+ success: boolean;
108
+ postID: string | null;
109
+ data: any;
110
+ url?: string | null;
111
+ }
112
+
113
+ export interface DeletePostResult {
114
+ success: boolean;
115
+ postID: string;
116
+ data: any;
117
+ }
118
+
119
+ export interface UploadPhotoResult {
120
+ success: boolean;
121
+ photoID: string | null;
122
+ uploadID: string;
123
+ data: any;
124
+ }
125
+
126
+ export interface Attachment {
127
+ type:
128
+ | 'photo'
129
+ | 'animated_image'
130
+ | 'video'
131
+ | 'audio'
132
+ | 'file'
133
+ | 'sticker'
134
+ | 'share'
135
+ | 'location'
136
+ | 'unknown';
137
+ ID: string;
138
+ filename: string;
139
+ url?: string;
140
+ name?: string;
141
+ }
142
+
143
+ export interface PhotoAttachment extends Attachment {
144
+ type: 'photo';
145
+ thumbnailUrl: string;
146
+ previewUrl: string;
147
+ previewWidth: number;
148
+ previewHeight: number;
149
+ largePreviewUrl: string;
150
+ largePreviewWidth: number;
151
+ largePreviewHeight: number;
152
+ width: number;
153
+ height: number;
154
+ }
155
+
156
+ export interface VideoAttachment extends Attachment {
157
+ type: 'video';
158
+ duration: number;
159
+ width: number;
160
+ height: number;
161
+ previewUrl: string;
162
+ previewWidth: number;
163
+ previewHeight: number;
164
+ videoType: 'file_attachment' | 'native_video' | 'unknown';
165
+ }
166
+
167
+ export interface AudioAttachment extends Attachment {
168
+ type: 'audio';
169
+ duration: number;
170
+ audioType: string;
171
+ isVoiceMail: boolean;
172
+ }
173
+
174
+ export interface FileAttachment extends Attachment {
175
+ type: 'file';
176
+ isMalicious: boolean;
177
+ contentType: string;
178
+ }
179
+
180
+ export interface StickerAttachment extends Attachment {
181
+ type: 'sticker';
182
+ packID: string;
183
+ spriteUrl?: string;
184
+ spriteUrl2x?: string;
185
+ width: number;
186
+ height: number;
187
+ caption: string;
188
+ description: string;
189
+ frameCount: number;
190
+ frameRate: number;
191
+ framesPerRow: number;
192
+ framesPerCol: number;
193
+ }
194
+
195
+ export interface ShareAttachment extends Attachment {
196
+ type: 'share';
197
+ title: string;
198
+ description?: string;
199
+ source?: string;
200
+ image?: string;
201
+ width?: number;
202
+ height?: number;
203
+ playable?: boolean;
204
+ subattachments?: any[];
205
+ properties: Record<string, any>;
206
+ }
207
+
208
+ export type AnyAttachment =
209
+ | PhotoAttachment
210
+ | VideoAttachment
211
+ | AudioAttachment
212
+ | FileAttachment
213
+ | StickerAttachment
214
+ | ShareAttachment;
215
+
216
+ export interface MessageReply {
217
+ messageID: MessageID;
218
+ senderID: UserID;
219
+ body: string;
220
+ attachments: AnyAttachment[];
221
+ timestamp: string;
222
+ isReply: true;
223
+ }
224
+
225
+ export interface Message {
226
+ type: 'message';
227
+ senderID: UserID;
228
+ body: string;
229
+ threadID: ThreadID;
230
+ messageID: MessageID;
231
+ attachments: AnyAttachment[];
232
+ mentions: Record<string, string>;
233
+ timestamp: string;
234
+ isGroup: boolean;
235
+ participantIDs?: UserID[];
236
+ messageReply?: MessageReply;
237
+ isUnread?: boolean;
238
+ reactions?: Reaction[];
239
+ }
240
+
241
+ export interface Event {
242
+ type: 'event';
243
+ threadID: ThreadID;
244
+ logMessageType: string;
245
+ logMessageData: any;
246
+ logMessageBody: string;
247
+ timestamp: string;
248
+ author: UserID;
249
+ }
250
+
251
+ export interface TypingIndicator {
252
+ type: 'typ';
253
+ isTyping: boolean;
254
+ from: UserID;
255
+ threadID: ThreadID;
256
+ fromMobile: boolean;
257
+ }
258
+
259
+ export interface PresenceEvent {
260
+ type: 'presence';
261
+ userID: UserID;
262
+ timestamp: number;
263
+ statuses: number;
264
+ }
265
+
266
+ export interface UnsendMessageEvent {
267
+ threadID: ThreadID;
268
+ messageID: MessageID;
269
+ senderID: UserID;
270
+ deletionTimestamp: string;
271
+ timestamp: string;
272
+ }
273
+
274
+ export interface EmojiEvent {
275
+ threadID: ThreadID;
276
+ emoji: string;
277
+ }
278
+
279
+ export interface GroupNameEvent {
280
+ threadID: ThreadID;
281
+ name: string;
282
+ }
283
+
284
+ export interface NicknameEvent {
285
+ threadID: ThreadID;
286
+ participantID: UserID;
287
+ nickname: string;
288
+ }
289
+
290
+ export interface GroupRuleEvent {
291
+ threadID: ThreadID;
292
+ }
293
+
294
+ export type ListenEvent = Message | Event | TypingIndicator | PresenceEvent;
295
+
296
+ export interface UserInfo {
297
+ id: UserID;
298
+ name: string;
299
+ firstName: string;
300
+ lastName?: string;
301
+ vanity: string;
302
+ profileUrl: string;
303
+ profilePicUrl: string;
304
+ gender: string;
305
+ type: 'user' | 'page';
306
+ isFriend: boolean;
307
+ isBirthday: boolean;
308
+ bio?: string;
309
+ live_city?: string;
310
+ followers?: string;
311
+ following?: string;
312
+ coverPhoto?: string;
313
+ }
314
+
315
+ export interface ThreadInfo {
316
+ threadID: ThreadID;
317
+ threadName?: string;
318
+ participantIDs: UserID[];
319
+ userInfo: UserInfo[];
320
+ unreadCount: number;
321
+ messageCount: number;
322
+ imageSrc?: string;
323
+ timestamp: string;
324
+ muteUntil: number;
325
+ isGroup: boolean;
326
+ isArchived: boolean;
327
+ isSubscribed: boolean;
328
+ folder: string;
329
+ nicknames: Record<UserID, string>;
330
+ adminIDs: UserID[];
331
+ emoji?: string;
332
+ color?: string;
333
+ canReply: boolean;
334
+ inviteLink: {
335
+ enable: boolean;
336
+ link: string | null;
337
+ };
338
+ }
339
+
340
+ export interface MessageObject {
341
+ body?: string;
342
+ attachment?: ReadStream[];
343
+ sticker?: string;
344
+ emoji?: string;
345
+ emojiSize?: 'small' | 'medium' | 'large';
346
+ mentions?: Mention[];
347
+ edit?: [string, number][];
348
+ }
349
+
350
+ export interface API {
351
+ /** Set global options for the API. */
352
+ setOptions(options: LoginOptions): void;
353
+
354
+ /** Get the current appState (cookies) for saving/restoring sessions. */
355
+ getAppState(): any[];
356
+
357
+ /** Get the current logged-in user's ID. */
358
+ getCurrentUserID(): UserID;
359
+
360
+ /** Get a specific option value or all options. */
361
+ getOptions(key?: string): any;
362
+
363
+ // ── Listening ──────────────────────────────────────────────────
364
+
365
+ /** Start listening for new messages and events via MQTT. */
366
+ listenMqtt(callback: (err: any, event: ListenEvent) => void): EventEmitter;
367
+
368
+ /** Start listening for new messages and events (speed variant). */
369
+ listenSpeed(callback: (err: any, event: ListenEvent) => void): EventEmitter;
370
+
371
+ /** Start listening for realtime events. */
372
+ realtime(callback: (err: any, event: ListenEvent) => void): EventEmitter;
373
+
374
+ // ── Messaging ──────────────────────────────────────────────────
375
+
376
+ /** Send a message (plain text or object) to a thread via MQTT. */
377
+ sendMessageMqtt(
378
+ message: string | MessageObject,
379
+ threadID: ThreadID,
380
+ replyToMessage?: MessageID,
381
+ callback?: Callback<Message>,
382
+ ): void;
383
+
384
+ /** Send a message (plain text or object) to a thread via HTTP. */
385
+ sendMessage(
386
+ message: string | MessageObject,
387
+ threadID: ThreadID,
388
+ replyToMessage?: MessageID,
389
+ callback?: Callback<Message>,
390
+ ): Promise<any>;
391
+
392
+ /** Edit an existing message's text. */
393
+ editMessage(text: string, messageID: MessageID, callback?: Callback): void;
394
+
395
+ /** Unsend (delete) a message for everyone. */
396
+ unsendMessage(
397
+ messageID: MessageID,
398
+ threadID: ThreadID,
399
+ callback?: Callback<UnsendMessageEvent>,
400
+ ): Promise<UnsendMessageEvent>;
401
+
402
+ /** Set a reaction emoji on a message via MQTT. */
403
+ setMessageReactionMqtt(
404
+ reaction: string,
405
+ messageID: MessageID,
406
+ callback?: Callback,
407
+ ): void;
408
+
409
+ /** Set a reaction emoji on a message via HTTP. */
410
+ setMessageReaction(
411
+ reaction: string,
412
+ messageID: MessageID,
413
+ callback?: Callback,
414
+ ): void;
415
+
416
+ /** Send a typing indicator to a thread. */
417
+ sendTypingIndicator(
418
+ sendTyping: boolean,
419
+ threadID: ThreadID,
420
+ callback?: Callback,
421
+ ): Promise<void>;
422
+
423
+ // ── Read Receipts ──────────────────────────────────────────────
424
+
425
+ /** Mark a thread as read. */
426
+ markAsRead(
427
+ threadID: ThreadID,
428
+ read?: boolean,
429
+ callback?: Callback,
430
+ ): Promise<any>;
431
+
432
+ /** Mark all threads as read. */
433
+ markAsReadAll(callback?: Callback): Promise<void>;
434
+
435
+ /** Mark messages as seen. */
436
+ markAsSeen(timestamp?: number, callback?: Callback): Promise<void>;
437
+
438
+ /** Mark a message as delivered. */
439
+ markAsDelivered(
440
+ threadID: ThreadID,
441
+ messageID: MessageID,
442
+ callback?: Callback,
443
+ ): Promise<void>;
444
+
445
+ // ── Thread Info ────────────────────────────────────────────────
446
+
447
+ /** Get information about a thread. */
448
+ getThreadInfo(
449
+ threadID: ThreadID,
450
+ callback?: Callback<ThreadInfo>,
451
+ ): Promise<ThreadInfo>;
452
+ getThreadInfo(
453
+ threadID: ThreadID[],
454
+ callback?: Callback<Record<ThreadID, ThreadInfo>>,
455
+ ): Promise<Record<ThreadID, ThreadInfo>>;
456
+
457
+ /** Get a list of threads. */
458
+ getThreadList(
459
+ limit: number,
460
+ timestamp: number | null,
461
+ tags: string[],
462
+ callback?: Callback<ThreadInfo[]>,
463
+ ): Promise<ThreadInfo[]>;
464
+
465
+ /** Get message history for a thread. */
466
+ getThreadHistory(
467
+ threadID: ThreadID,
468
+ amount: number,
469
+ timestamp: number | null,
470
+ callback?: Callback<Message[]>,
471
+ ): Promise<Message[]>;
472
+
473
+ // ── User Info ──────────────────────────────────────────────────
474
+
475
+ /** Get information about one or more users. */
476
+ getUserInfo(
477
+ id: UserID,
478
+ usePayload?: boolean,
479
+ callback?: Callback<UserInfo>,
480
+ ): Promise<UserInfo>;
481
+ getUserInfo(
482
+ id: UserID[],
483
+ usePayload?: boolean,
484
+ callback?: Callback<Record<UserID, UserInfo>>,
485
+ ): Promise<Record<UserID, UserInfo>>;
486
+
487
+ // ── Group Chat Management ─────────────────────────────────────
488
+
489
+ /** Change the emoji for a thread. */
490
+ emoji(
491
+ emoji: string,
492
+ threadID?: ThreadID,
493
+ callback?: Callback<EmojiEvent>,
494
+ ): Promise<EmojiEvent>;
495
+
496
+ /** Change the group chat name. */
497
+ gcname(
498
+ newName: string,
499
+ threadID?: ThreadID,
500
+ callback?: Callback<GroupNameEvent>,
501
+ ): Promise<GroupNameEvent>;
502
+
503
+ /** Change a group chat member's nickname. */
504
+ nickname(
505
+ nickname: string,
506
+ threadID: ThreadID,
507
+ participantID: UserID,
508
+ callback?: Callback<NicknameEvent>,
509
+ ): Promise<NicknameEvent>;
510
+
511
+ /** Change the group chat theme. */
512
+ theme(
513
+ themeID: string,
514
+ threadID?: ThreadID,
515
+ callback?: Callback,
516
+ ): Promise<any>;
517
+
518
+ /** Add or remove members from a group chat. */
519
+ gcmember(
520
+ action: 'add' | 'remove',
521
+ threadID: ThreadID,
522
+ memberIDs: UserID | UserID[],
523
+ callback?: Callback,
524
+ ): Promise<any>;
525
+
526
+ /** Manage group chat rules. */
527
+ gcrule(
528
+ threadID: ThreadID,
529
+ rules: any,
530
+ callback?: Callback<GroupRuleEvent>,
531
+ ): Promise<GroupRuleEvent>;
532
+
533
+ /** Create, edit, or manage group notes. */
534
+ notes(options: any, callback?: Callback): Promise<any>;
535
+
536
+ /** Pin or unpin a message in a thread. */
537
+ pinMessage(
538
+ action: 'pin' | 'unpin',
539
+ threadID: ThreadID,
540
+ messageID: MessageID,
541
+ ): Promise<any>;
542
+ pinMessage(action: 'list', threadID: ThreadID): Promise<Message[]>;
543
+
544
+ // ── Contact ────────────────────────────────────────────────────
545
+
546
+ /** Share a contact card to a thread. */
547
+ shareContact(
548
+ text: string,
549
+ senderID: UserID,
550
+ threadID: ThreadID,
551
+ callback?: Callback,
552
+ ): void;
553
+ shareContact(senderID: UserID, threadID: ThreadID, callback?: Callback): void;
554
+
555
+ /** Resolve a photo's full URL from its ID. */
556
+ resolvePhotoUrl(
557
+ photoID: string,
558
+ callback?: Callback<string>,
559
+ ): Promise<string>;
560
+
561
+ // ── Posting ────────────────────────────────────────────────────
562
+
563
+ /** Post, comment, and manage Facebook posts. */
564
+ post: {
565
+ create(
566
+ options: string | CreatePostOptions,
567
+ callback?: Callback<CreatePostResult>,
568
+ ): Promise<CreatePostResult>;
569
+ delete(
570
+ postID: string,
571
+ callback?: Callback<DeletePostResult>,
572
+ ): Promise<DeletePostResult>;
573
+ getComments(
574
+ postID: string | GetPostCommentsOptions,
575
+ callback?: Callback<PostComment[]>,
576
+ ): Promise<PostComment[]>;
577
+ uploadPhoto(
578
+ photoPath: string,
579
+ callback?: Callback<UploadPhotoResult>,
580
+ ): Promise<UploadPhotoResult>;
581
+ };
582
+
583
+ /** Comment on a Facebook post. */
584
+ comment(
585
+ msg: string | CommentMessage,
586
+ postID: string,
587
+ replyCommentID?: string,
588
+ callback?: Callback<CommentResult>,
589
+ ): Promise<CommentResult>;
590
+
591
+ /** Share a Facebook post. */
592
+ share(
593
+ text: string,
594
+ postID: string,
595
+ callback?: Callback<ShareResult>,
596
+ ): Promise<ShareResult>;
597
+ share(postID: string, callback?: Callback<ShareResult>): Promise<ShareResult>;
598
+
599
+ /** Post a story. */
600
+ story(options: any, callback?: Callback): Promise<any>;
601
+
602
+ // ── Social ─────────────────────────────────────────────────────
603
+
604
+ /** Follow or unfollow a user. */
605
+ follow(senderID: UserID, follow: boolean, callback?: Callback): void;
606
+
607
+ /** Send or cancel a friend request. */
608
+ friend(action: 'add' | 'cancel', userID: UserID, callback?: Callback): void;
609
+
610
+ // ── Stickers ───────────────────────────────────────────────────
611
+
612
+ /** Sticker-related API methods. */
613
+ stickers: {
614
+ search(query: string): Promise<StickerInfo[]>;
615
+ listPacks(): Promise<StickerPackInfo[]>;
616
+ getStorePacks(): Promise<StickerPackInfo[]>;
617
+ listAllPacks(): Promise<StickerPackInfo[]>;
618
+ addPack(packID: string): Promise<AddedStickerPackInfo>;
619
+ getStickersInPack(packID: string): Promise<StickerInfo[]>;
620
+ getAiStickers(options?: { limit?: number }): Promise<StickerInfo[]>;
621
+ };
622
+
623
+ // ── HTTP ───────────────────────────────────────────────────────
624
+
625
+ /** Make an authenticated GET request. */
626
+ httpGet(
627
+ url: string,
628
+ form?: any,
629
+ customHeader?: any,
630
+ callback?: Callback<string>,
631
+ notAPI?: boolean,
632
+ ): Promise<string>;
633
+
634
+ /** Make an authenticated POST request. */
635
+ httpPost(
636
+ url: string,
637
+ form?: any,
638
+ customHeader?: any,
639
+ callback?: Callback<string>,
640
+ notAPI?: boolean,
641
+ ): Promise<string>;
642
+
643
+ /** Make an authenticated POST request with form data. */
644
+ httpPostFormData(
645
+ url: string,
646
+ form?: any,
647
+ customHeader?: any,
648
+ callback?: Callback<string>,
649
+ notAPI?: boolean,
650
+ ): Promise<string>;
651
+
652
+ // ── Session ────────────────────────────────────────────────────
653
+
654
+ /** Log out and invalidate the current session. */
655
+ logout(callback?: (err: any) => void): Promise<void>;
656
+
657
+ /** Get bot info from the session. */
658
+ GetBotInfo(callback?: Callback): Promise<any>;
659
+
660
+ /** Get access token. */
661
+ getAccess(authCode?: string, callback?: Callback<string>): Promise<string>;
662
+
663
+ /** Add an external module to extend the API. */
664
+ addExternalModule(moduleObj: Record<string, Function>): void;
665
+
666
+ /** Allow accessing dynamically loaded methods. */
667
+ [key: string]: any;
668
+ }
669
+
670
+ export interface LoginCredentials {
671
+ appState?: any;
672
+ }
673
+
674
+ export interface LoginOptions {
675
+ online?: boolean;
676
+ selfListen?: boolean;
677
+ listenEvents?: boolean;
678
+ updatePresence?: boolean;
679
+ forceLogin?: boolean;
680
+ autoMarkDelivery?: boolean;
681
+ autoMarkRead?: boolean;
682
+ listenTyping?: boolean;
683
+ proxy?: string;
684
+ autoReconnect?: boolean;
685
+ userAgent?: string;
686
+ emitReady?: boolean;
687
+ randomUserAgent?: boolean;
688
+ bypassRegion?: string;
689
+ }
690
+
691
+ /** Log in to Facebook Messenger and receive an API instance. */
692
+ export function login(
693
+ credentials: LoginCredentials,
694
+ options: LoginOptions | Callback<API>,
695
+ callback?: Callback<API>,
696
+ ): void;