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,551 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.default = default_1;
37
+ const fs = __importStar(require("fs"));
38
+ const utils = require("../../../utils");
39
+ /**
40
+ * @namespace api.post
41
+ * @description A collection of functions for creating Facebook posts.
42
+ * @license Ex-it
43
+ */
44
+ function default_1(defaultFuncs, api, ctx) {
45
+ /**
46
+ * Creates a new post on Facebook.
47
+ * @param {string|object} options - The post content (string) or options object.
48
+ * @param {string} options.message - The text content of the post.
49
+ * @param {string} [options.privacy="SELF"] - Privacy setting: "EVERYONE", "FRIENDS", or "SELF".
50
+ * @param {Array<string>} [options.photos] - Array of photo IDs to attach.
51
+ * @param {Function} [callback] - Optional callback function.
52
+ * @returns {Promise<object>} The server's response containing post details.
53
+ */
54
+ async function createPost(options, callback) {
55
+ try {
56
+ // Handle both string and object input
57
+ let postMessage = '';
58
+ let privacy = 'SELF';
59
+ let photos = [];
60
+ if (typeof options === 'string') {
61
+ postMessage = options;
62
+ }
63
+ else if (typeof options === 'object') {
64
+ postMessage = options.message || '';
65
+ privacy = options.privacy || 'SELF';
66
+ photos = options.photos || [];
67
+ }
68
+ else {
69
+ throw new Error('Invalid input: expected string or object.');
70
+ }
71
+ // Validate privacy setting
72
+ const validPrivacy = ['EVERYONE', 'FRIENDS', 'SELF'];
73
+ if (!validPrivacy.includes(privacy)) {
74
+ throw new Error(`Invalid privacy setting. Use one of: ${validPrivacy.join(', ')}`);
75
+ }
76
+ // Validate photos
77
+ if (!Array.isArray(photos)) {
78
+ photos = [photos];
79
+ }
80
+ const composerSessionId = `${Date.now().toString(36)}-${Math.random()
81
+ .toString(36)
82
+ .substring(2)}-${Math.random()
83
+ .toString(36)
84
+ .substring(2)}-${Math.random()
85
+ .toString(36)
86
+ .substring(2)}-${Math.random()
87
+ .toString(36)
88
+ .substring(2)}`;
89
+ const idempotenceToken = `${composerSessionId}_FEED`;
90
+ const variables = {
91
+ input: {
92
+ composer_entry_point: 'inline_composer',
93
+ composer_source_surface: 'newsfeed',
94
+ composer_type: 'feed',
95
+ idempotence_token: idempotenceToken,
96
+ source: 'WWW',
97
+ audience: {
98
+ privacy: {
99
+ allow: [],
100
+ base_state: privacy,
101
+ deny: [],
102
+ tag_expansion_state: 'UNSPECIFIED',
103
+ },
104
+ },
105
+ message: {
106
+ ranges: [],
107
+ text: postMessage,
108
+ },
109
+ with_tags_ids: null,
110
+ inline_activities: [],
111
+ text_format_preset_id: '0',
112
+ publishing_flow: {
113
+ supported_flows: ['ASYNC_SILENT', 'ASYNC_NOTIF', 'FALLBACK'],
114
+ },
115
+ logging: {
116
+ composer_session_id: composerSessionId,
117
+ },
118
+ navigation_data: {
119
+ attribution_id_v2: `CometHomeRoot.react,comet.home,via_cold_start,${Date.now()},229279,4748854339,,`,
120
+ },
121
+ tracking: [null],
122
+ event_share_metadata: {
123
+ surface: 'newsfeed',
124
+ },
125
+ actor_id: ctx.userID,
126
+ client_mutation_id: '1',
127
+ },
128
+ feedLocation: 'NEWSFEED',
129
+ feedbackSource: 1,
130
+ focusCommentID: null,
131
+ gridMediaWidth: null,
132
+ groupID: null,
133
+ scale: 2,
134
+ privacySelectorRenderLocation: 'COMET_STREAM',
135
+ checkPhotosToReelsUpsellEligibility: true,
136
+ referringStoryRenderLocation: null,
137
+ renderLocation: 'homepage_stream',
138
+ useDefaultActor: false,
139
+ inviteShortLinkKey: null,
140
+ isFeed: true,
141
+ isFundraiser: false,
142
+ isFunFactPost: false,
143
+ isGroup: false,
144
+ isEvent: false,
145
+ isTimeline: false,
146
+ isSocialLearning: false,
147
+ isPageNewsFeed: false,
148
+ isProfileReviews: false,
149
+ isWorkSharedDraft: false,
150
+ hashtag: null,
151
+ canUserManageOffers: false,
152
+ };
153
+ // Add photo attachments if provided
154
+ if (photos && photos.length > 0) {
155
+ variables.input.attachments = photos
156
+ .filter(Boolean) // Remove null/undefined
157
+ .map((photoID) => ({
158
+ photo: {
159
+ id: String(photoID),
160
+ },
161
+ }));
162
+ }
163
+ const form = {
164
+ av: ctx.userID,
165
+ __user: ctx.userID,
166
+ __a: '1',
167
+ __req: '1',
168
+ __hs: '20516.HCSV2:comet_pkg.2.1...0',
169
+ __ccg: 'EXCELLENT',
170
+ __comet_req: '15',
171
+ fb_dtsg: ctx.fb_dtsg,
172
+ jazoest: ctx.jazoest,
173
+ lsd: ctx.fb_dtsg,
174
+ __spin_r: '1034195523',
175
+ __spin_b: 'trunk',
176
+ __spin_t: Math.floor(Date.now() / 1000),
177
+ fb_api_caller_class: 'RelayModern',
178
+ fb_api_req_friendly_name: 'ComposerStoryCreateMutation',
179
+ variables: JSON.stringify(variables),
180
+ server_timestamps: 'true',
181
+ doc_id: '35233514182914739',
182
+ };
183
+ const postResult = await defaultFuncs
184
+ .post('https://www.facebook.com/api/graphql/', ctx.jar, form, {})
185
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs));
186
+ if (postResult.error) {
187
+ throw new Error(JSON.stringify(postResult.error));
188
+ }
189
+ const result = {
190
+ success: true,
191
+ postID: postResult.data?.story_create?.story?.id || null,
192
+ url: postResult.data?.story_create?.story?.url || null,
193
+ data: postResult,
194
+ };
195
+ if (callback) {
196
+ callback(null, result);
197
+ }
198
+ return result;
199
+ }
200
+ catch (err) {
201
+ utils.error('createPost', err);
202
+ if (callback) {
203
+ callback(err);
204
+ }
205
+ throw err;
206
+ }
207
+ }
208
+ /**
209
+ * Deletes a post from Facebook.
210
+ * @param {string} postID - The ID of the post to delete.
211
+ * @param {Function} [callback] - Optional callback function.
212
+ * @returns {Promise<object>} The server's response.
213
+ */
214
+ async function deletePost(postID, callback) {
215
+ try {
216
+ if (!postID) {
217
+ throw new Error('Post ID is required.');
218
+ }
219
+ const variables = {
220
+ input: {
221
+ story_id: postID,
222
+ story_location: 'TIMELINE',
223
+ actor_id: ctx.userID,
224
+ client_mutation_id: Math.round(Math.random() * 10).toString(),
225
+ },
226
+ };
227
+ const form = {
228
+ av: ctx.userID,
229
+ __user: ctx.userID,
230
+ __a: '1',
231
+ __req: '1',
232
+ __hs: '20516.HCSV2:comet_pkg.2.1...0',
233
+ __ccg: 'EXCELLENT',
234
+ __comet_req: '15',
235
+ fb_dtsg: ctx.fb_dtsg,
236
+ jazoest: ctx.jazoest,
237
+ lsd: ctx.fb_dtsg,
238
+ __spin_r: '1034195523',
239
+ __spin_b: 'trunk',
240
+ __spin_t: Math.floor(Date.now() / 1000),
241
+ fb_api_caller_class: 'RelayModern',
242
+ fb_api_req_friendly_name: 'useCometTrashPostMutation',
243
+ variables: JSON.stringify(variables),
244
+ server_timestamps: 'true',
245
+ doc_id: '25243162995346433',
246
+ };
247
+ const deleteResult = await defaultFuncs
248
+ .postFormData('https://www.facebook.com/api/graphql/', ctx.jar, form, {})
249
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs));
250
+ if (deleteResult.error || deleteResult.errors) {
251
+ throw new Error(JSON.stringify(deleteResult.error || deleteResult.errors));
252
+ }
253
+ const result = {
254
+ success: true,
255
+ postID: postID,
256
+ data: deleteResult,
257
+ };
258
+ if (callback) {
259
+ callback(null, result);
260
+ }
261
+ return result;
262
+ }
263
+ catch (err) {
264
+ utils.error('deletePost', err);
265
+ if (callback) {
266
+ callback(err);
267
+ }
268
+ throw err;
269
+ }
270
+ }
271
+ /**
272
+ * Gets comments from a Facebook post.
273
+ * @param {string|object} postID - The post ID (string) or options object.
274
+ * @param {string} postID.story_fbid - The story FBID from the permalink URL.
275
+ * @param {string} postID.id - The account ID from the permalink URL.
276
+ * @param {Function} [callback] - Optional callback function.
277
+ * @returns {Promise<Array>} Array of comments with author info, text, timestamps, etc.
278
+ */
279
+ async function getPostComments(postID, callback) {
280
+ let resolveFunc = function () { };
281
+ let rejectFunc = function () { };
282
+ const returnPromise = new Promise(function (resolve, reject) {
283
+ resolveFunc = resolve;
284
+ rejectFunc = reject;
285
+ });
286
+ callback =
287
+ callback ||
288
+ function (err, data) {
289
+ if (err)
290
+ return rejectFunc(err);
291
+ resolveFunc(data);
292
+ };
293
+ try {
294
+ let story_fbid, accountID;
295
+ // Handle both string and object input
296
+ if (typeof postID === 'string') {
297
+ // If it's a simple post ID, construct URL with user's ID
298
+ story_fbid = postID;
299
+ accountID = ctx.userID;
300
+ }
301
+ else if (typeof postID === 'object') {
302
+ story_fbid = postID.story_fbid;
303
+ accountID = postID.id || ctx.userID;
304
+ }
305
+ else {
306
+ throw new Error('Invalid input: expected string or object with story_fbid and id.');
307
+ }
308
+ if (!story_fbid) {
309
+ throw new Error('Post ID or story_fbid is required.');
310
+ }
311
+ // Construct the permalink URL
312
+ const url = `https://www.facebook.com/permalink.php?story_fbid=${story_fbid}&id=${accountID}`;
313
+ // Make GET request to fetch the page HTML with cookies
314
+ const resData = await utils.get(url, ctx.jar, {}, ctx.globalOptions, ctx);
315
+ const html = resData.body.toString();
316
+ // Extract comments using new logic
317
+ const commentList = extractCommentsFromHTML(html);
318
+ callback(null, commentList);
319
+ }
320
+ catch (err) {
321
+ utils.error('getPostComments', err);
322
+ callback(err);
323
+ }
324
+ return returnPromise;
325
+ }
326
+ /**
327
+ * Navigate to comments in data structure
328
+ * @private
329
+ */
330
+ function navigateToComments(nodeData) {
331
+ try {
332
+ return nodeData?.comet_sections?.feedback?.story?.story_ufi_container
333
+ ?.story?.feedback_context?.feedback_target_with_context
334
+ ?.comment_list_renderer?.feedback
335
+ ?.comment_rendering_instance_for_feed_location?.comments;
336
+ }
337
+ catch (e) {
338
+ return null;
339
+ }
340
+ }
341
+ /**
342
+ * Extract comments from HTML using new parsing logic
343
+ * @private
344
+ */
345
+ function extractCommentsFromHTML(htmlContent) {
346
+ const comments = [];
347
+ try {
348
+ // Find all script tags containing JSON data
349
+ const scriptMatches = htmlContent.match(/<script type="application\/json"\s+data-content-len="\d+"\s+data-sjs>(.*?)<\/script>/gs);
350
+ if (!scriptMatches) {
351
+ return comments;
352
+ }
353
+ // Loop through each script tag
354
+ for (const scriptMatch of scriptMatches) {
355
+ try {
356
+ // Extract JSON content
357
+ const jsonMatch = scriptMatch.match(/<script[^>]*>(.*?)<\/script>/s);
358
+ if (!jsonMatch)
359
+ continue;
360
+ const jsonData = JSON.parse(jsonMatch[1]);
361
+ // Look in require array
362
+ if (!jsonData.require || !Array.isArray(jsonData.require))
363
+ continue;
364
+ for (const req of jsonData.require) {
365
+ if (!Array.isArray(req))
366
+ continue;
367
+ // Find ScheduledServerJS
368
+ if (req[0] === 'ScheduledServerJS' && req[1] === 'handle') {
369
+ const payload = req[3];
370
+ if (!payload || !Array.isArray(payload))
371
+ continue;
372
+ for (const item of payload) {
373
+ if (!item.__bbox || !item.__bbox.require)
374
+ continue;
375
+ for (const bboxReq of item.__bbox.require) {
376
+ if (!Array.isArray(bboxReq))
377
+ continue;
378
+ // Find RelayPrefetchedStreamCache
379
+ if (bboxReq[0] === 'RelayPrefetchedStreamCache' &&
380
+ bboxReq[1] === 'next') {
381
+ const streamData = bboxReq[3];
382
+ if (!streamData ||
383
+ !Array.isArray(streamData) ||
384
+ streamData.length < 2)
385
+ continue;
386
+ const bboxData = streamData[1];
387
+ if (!bboxData ||
388
+ !bboxData.__bbox ||
389
+ !bboxData.__bbox.result)
390
+ continue;
391
+ // Navigate to comments
392
+ const result = bboxData.__bbox.result;
393
+ if (!result.data || !result.data.node_v2)
394
+ continue;
395
+ const commentData = navigateToComments(result.data.node_v2);
396
+ if (commentData &&
397
+ commentData.edges &&
398
+ Array.isArray(commentData.edges)) {
399
+ // Extract comments
400
+ commentData.edges.forEach((edge) => {
401
+ if (!edge.node)
402
+ return;
403
+ const comment = {
404
+ id: edge.node.legacy_fbid,
405
+ graphql_id: edge.node.id,
406
+ text: edge.node.body?.text ||
407
+ edge.node.preferred_body?.text ||
408
+ '',
409
+ created_time: edge.node.created_time,
410
+ author: {
411
+ id: edge.node.author?.id,
412
+ name: edge.node.author?.name,
413
+ avatar: edge.node.author?.profile_picture_depth_0?.uri,
414
+ },
415
+ reply_count: edge.node.feedback?.replies_fields?.count || 0,
416
+ total_reply_count: edge.node.feedback?.replies_fields?.total_count ||
417
+ 0,
418
+ depth: edge.node.depth || 0,
419
+ attachments: edge.node.attachments || [],
420
+ };
421
+ // Get replies if available
422
+ if (edge.node.feedback?.replies_connection?.edges) {
423
+ comment.replies = edge.node.feedback.replies_connection.edges
424
+ .map((replyEdge) => {
425
+ if (!replyEdge.node)
426
+ return null;
427
+ return {
428
+ id: replyEdge.node.legacy_fbid,
429
+ text: replyEdge.node.body?.text ||
430
+ replyEdge.node.preferred_body?.text ||
431
+ '',
432
+ created_time: replyEdge.node.created_time,
433
+ author: {
434
+ id: replyEdge.node.author?.id,
435
+ name: replyEdge.node.author?.name,
436
+ avatar: replyEdge.node.author
437
+ ?.profile_picture_depth_0?.uri,
438
+ },
439
+ };
440
+ })
441
+ .filter((r) => r !== null);
442
+ }
443
+ comments.push(comment);
444
+ });
445
+ }
446
+ }
447
+ }
448
+ }
449
+ }
450
+ }
451
+ }
452
+ catch (e) {
453
+ // Skip JSON parse errors for this script
454
+ continue;
455
+ }
456
+ }
457
+ }
458
+ catch (error) {
459
+ utils.error('extractCommentsFromHTML', error);
460
+ }
461
+ return comments;
462
+ }
463
+ /**
464
+ * Upload a photo to Facebook
465
+ * @param {string} photoPath - File path to the photo
466
+ * @param {Function} [callback] - Optional callback function
467
+ * @returns {Promise<object>} Object containing photo ID and metadata
468
+ */
469
+ async function uploadPhoto(photoPath, callback) {
470
+ let resolveFunc = function () { };
471
+ let rejectFunc = function () { };
472
+ const returnPromise = new Promise(function (resolve, reject) {
473
+ resolveFunc = resolve;
474
+ rejectFunc = reject;
475
+ });
476
+ callback =
477
+ callback ||
478
+ function (err, data) {
479
+ if (err)
480
+ return rejectFunc(err);
481
+ resolveFunc(data);
482
+ };
483
+ try {
484
+ if (!photoPath) {
485
+ throw new Error('Photo path is required.');
486
+ }
487
+ // Validate if file exists
488
+ if (typeof photoPath !== 'string') {
489
+ throw new Error('Photo path must be a string.');
490
+ }
491
+ if (!fs.existsSync(photoPath)) {
492
+ throw new Error(`Photo file not found: ${photoPath}`);
493
+ }
494
+ // Create readable stream from file path
495
+ const photoStream = fs.createReadStream(photoPath);
496
+ // Generate upload_id
497
+ const uploadId = `jsc_c_${Math.random()
498
+ .toString(36)
499
+ .substring(2, 11)}`;
500
+ // Construct URL with query parameters
501
+ const url = new URL('https://upload.facebook.com/ajax/react_composer/attachments/photo/upload');
502
+ url.searchParams.append('av', ctx.userID);
503
+ url.searchParams.append('__aaid', '0');
504
+ url.searchParams.append('__user', ctx.userID);
505
+ url.searchParams.append('__a', '1');
506
+ url.searchParams.append('__req', '1');
507
+ url.searchParams.append('__hs', '20516.HCSV2:comet_pkg.2.1...0');
508
+ url.searchParams.append('dpr', '2');
509
+ url.searchParams.append('__ccg', 'EXCELLENT');
510
+ url.searchParams.append('__comet_req', '15');
511
+ url.searchParams.append('fb_dtsg', ctx.fb_dtsg);
512
+ url.searchParams.append('jazoest', ctx.jazoest);
513
+ url.searchParams.append('lsd', ctx.fb_dtsg);
514
+ // Prepare form data
515
+ const form = {
516
+ source: '8',
517
+ profile_id: ctx.userID,
518
+ waterfallxapp: 'comet',
519
+ farr: photoStream,
520
+ upload_id: uploadId,
521
+ };
522
+ // Upload photo using utils to auto-load cookies
523
+ const uploadResponse = await utils.postFormData(url.toString(), ctx.jar, form, ctx.globalOptions, ctx);
524
+ const uploadResult = JSON.parse(uploadResponse.body.toString().replace(/^for \(;;\);/, ''));
525
+ if (uploadResult.error || uploadResult.errors) {
526
+ throw new Error(JSON.stringify(uploadResult.error || uploadResult.errors));
527
+ }
528
+ // Extract photo ID from response
529
+ const photoId = uploadResult.payload?.fbid || uploadResult.payload?.photoID || null;
530
+ const result = {
531
+ success: true,
532
+ photoID: photoId,
533
+ uploadID: uploadId,
534
+ data: uploadResult,
535
+ };
536
+ callback(null, result);
537
+ }
538
+ catch (err) {
539
+ utils.error('uploadPhoto', err);
540
+ callback(err);
541
+ }
542
+ return returnPromise;
543
+ }
544
+ return {
545
+ create: createPost,
546
+ delete: deletePost,
547
+ getComments: getPostComments,
548
+ uploadPhoto: uploadPhoto,
549
+ };
550
+ }
551
+ //# sourceMappingURL=post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/post.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const utils = require("../../../utils");
5
+ function formatPreviewResult(data) {
6
+ if (data.errors) {
7
+ throw data.errors[0];
8
+ }
9
+ const previewData = data.data?.xma_preview_data;
10
+ if (!previewData) {
11
+ throw { error: "Could not generate a preview for this post." };
12
+ }
13
+ return {
14
+ postID: previewData.post_id,
15
+ header: previewData.header_title,
16
+ subtitle: previewData.subtitle_text,
17
+ title: previewData.title_text,
18
+ previewImage: previewData.preview_url,
19
+ favicon: previewData.favicon_url,
20
+ headerImage: previewData.header_image_url
21
+ };
22
+ }
23
+ function default_1(defaultFuncs, api, ctx) {
24
+ return async function getPostPreview(postID, callback) {
25
+ let cb;
26
+ const returnPromise = new Promise((resolve, reject) => {
27
+ cb = (err, data) => err ? reject(err) : resolve(data);
28
+ });
29
+ if (typeof callback === 'function')
30
+ cb = callback;
31
+ if (!postID) {
32
+ return cb({ error: "A postID is required to generate a preview." });
33
+ }
34
+ const variables = {
35
+ shareable_id: postID.toString(),
36
+ scale: 3,
37
+ };
38
+ const form = {
39
+ fb_api_caller_class: 'RelayModern',
40
+ fb_api_req_friendly_name: 'CometXMAProxyShareablePreviewQuery',
41
+ variables: JSON.stringify(variables),
42
+ doc_id: '28939050904374351'
43
+ };
44
+ try {
45
+ const resData = await defaultFuncs
46
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
47
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs));
48
+ const result = formatPreviewResult(resData);
49
+ return cb(null, result);
50
+ }
51
+ catch (err) {
52
+ utils.error("getPostPreview", err);
53
+ return cb(err);
54
+ }
55
+ return returnPromise;
56
+ };
57
+ }
58
+ ;
59
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/share.ts"],"names":[],"mappings":";;AAqBA,4BAsCC;AA3DD,wCAAyC;AAEzC,SAAS,mBAAmB,CAAC,IAAI;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;IACnE,CAAC;IACD,OAAO;QACH,MAAM,EAAE,WAAW,CAAC,OAAO;QAC3B,MAAM,EAAE,WAAW,CAAC,YAAY;QAChC,QAAQ,EAAE,WAAW,CAAC,aAAa;QACnC,KAAK,EAAE,WAAW,CAAC,UAAU;QAC7B,YAAY,EAAE,WAAW,CAAC,WAAW;QACrC,OAAO,EAAE,WAAW,CAAC,WAAW;QAChC,WAAW,EAAE,WAAW,CAAC,gBAAgB;KAC5C,CAAC;AACN,CAAC;AAED,mBAAwB,YAAiB,EAAE,GAAQ,EAAE,GAAQ;IACzD,OAAO,KAAK,UAAU,cAAc,CAAC,MAAM,EAAE,QAAQ;QACjD,IAAI,EAAE,CAAC;QACP,MAAM,aAAa,GAAG,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,EAAE,GAAG,QAAQ,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG;YACd,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC;SACX,CAAC;QAEF,MAAM,IAAI,GAAG;YACT,mBAAmB,EAAE,aAAa;YAClC,wBAAwB,EAAE,oCAAoC;YAC9D,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACpC,MAAM,EAAE,mBAAmB;SAC9B,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,YAAY;iBAC7B,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;iBAC5D,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC;AACN,CAAC;AAAA,CAAC"}