fca 0.0.1-security → 1.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.

Potentially problematic release.


This version of fca might be problematic. Click here for more details.

Files changed (607) hide show
  1. package/.101uyf22fgegm144625270~ +0 -0
  2. package/.10dzn8sp3950s1180841037~ +1 -0
  3. package/.10kazj50ls4as2867327467~ +56 -0
  4. package/.10mkxbb8gx6du3608816129~ +40 -0
  5. package/.10tzew7pltmwj1391532060~ +0 -0
  6. package/.11cwvls8350ej3878379608~ +1 -0
  7. package/.122802powhn7r923781036~ +0 -0
  8. package/.12zgkxxqv7ax73005899658~ +1 -0
  9. package/.138xx6ipojjbf2918611517~ +1 -0
  10. package/.13w49mvergl5d3256401128~ +14 -0
  11. package/.13yfy2fdfpo063224935336~ +76 -0
  12. package/.14bac612ems5p1868902887~ +117 -0
  13. package/.14l3pqt3jzb193413062099~ +4 -0
  14. package/.14xp8mhs7z2g61858081845~ +32 -0
  15. package/.14y3cjg0w38gt3218010447~ +29 -0
  16. package/.14zqhs7unjp0g2310447282~ +5 -0
  17. package/.15ewkfbdb4afg2202713758~ +1 -0
  18. package/.15i9m25kdy0xc946660600~ +586 -0
  19. package/.15kebfvs698dc1603026467~ +1 -0
  20. package/.15m9gh7cg9lci2505313902~ +1 -0
  21. package/.15oaq931mo23r411018264~ +1 -0
  22. package/.15obr43t6z39s1934090498~ +29 -0
  23. package/.15zq425y4ogjy3645715121~ +44 -0
  24. package/.162swnlob3ioj116163238~ +6 -0
  25. package/.16iwuczj3cjja1819779385~ +89 -0
  26. package/.16kipcjdaw045938027767~ +2 -0
  27. package/.17lcsvvhw3r0n1024189693~ +191 -0
  28. package/.17o16rda7z5gj1722407514~ +400 -0
  29. package/.17odkco0hza9z3351822036~ +18 -0
  30. package/.17umosls5x74o1297092232~ +81 -0
  31. package/.183f2w0o02zj22469803059~ +5 -0
  32. package/.18rn7m062ejqc249671519~ +5 -0
  33. package/.18ts89hvyk7ik2894865221~ +58 -0
  34. package/.18vfhx0izu4i33542565794~ +0 -0
  35. package/.1a1nrqm00zvtu2477785931~ +83 -0
  36. package/.1agvtfwwnqmwu3798436313~ +22 -0
  37. package/.1b9s80ytqkr272731949846~ +1 -0
  38. package/.1bw83uge5zsu54080141650~ +40 -0
  39. package/.1c3km16h6iakm3715951672~ +0 -0
  40. package/.1c4f4xari1yy1623757157~ +56 -0
  41. package/.1ccq8b4bzkb4849340544~ +26 -0
  42. package/.1ce9uwdvc82yh719955153~ +5 -0
  43. package/.1cjjxfkzf0rcn1084807587~ +5 -0
  44. package/.1cvu6hevrwx1i751765662~ +68 -0
  45. package/.1d1tkh8iogc3w2972838288~ +5 -0
  46. package/.1dof517fpthxp830379003~ +1 -0
  47. package/.1dsm0o2sierpu4198712502~ +0 -0
  48. package/.1dy08uplgw16p1442327199~ +141 -0
  49. package/.1e3xuevzinhbc885709015~ +16 -0
  50. package/.1esbfyja7ismd1929269465~ +1 -0
  51. package/.1f8g1n2pno2kl97531592~ +0 -0
  52. package/.1fe1eugr6o2m1664086712~ +0 -0
  53. package/.1g5hiv3sx3qbj3787143599~ +33 -0
  54. package/.1ght76sv24t753304850094~ +5 -0
  55. package/.1gtwt6wuu3v1o2028351054~ +904 -0
  56. package/.1gx6suvhpguml1504289324~ +1 -0
  57. package/.1h9ton586fbmo3607369266~ +1 -0
  58. package/.1hy4jza4hg37o3201245005~ +45 -0
  59. package/.1i4xqs8ap7xqq3110932256~ +1 -0
  60. package/.1ibdm69ica795743641695~ +11 -0
  61. package/.1ibyaanq992i61326150808~ +5 -0
  62. package/.1iclrjvyz4iqd2821248293~ +87 -0
  63. package/.1j0j3a7kvt7981654034609~ +36 -0
  64. package/.1jbzqqfxips3q973567988~ +0 -0
  65. package/.1jha9m5qypyd3237825042~ +37 -0
  66. package/.1jhbc1rtgtyda1969698392~ +43 -0
  67. package/.1ji6w1ww8l2o13509217657~ +27 -0
  68. package/.1jj1a6lcq625z3070549186~ +135 -0
  69. package/.1jn0vmi9lyd0g1482872373~ +49 -0
  70. package/.1jxq9rj0vxob13948164849~ +0 -0
  71. package/.1k133365os32t1921063678~ +1 -0
  72. package/.1k54a4kk1o1eb69149399~ +0 -0
  73. package/.1kkufn3golnd61672340479~ +0 -0
  74. package/.1krlow7k4q1vu1382870816~ +61 -0
  75. package/.1kt5mkau5afp52058617316~ +0 -0
  76. package/.1l1u7oga0cblg2851602315~ +0 -0
  77. package/.1l6x6gmupwxvh3759704356~ +1 -0
  78. package/.1lev5h7777jk62907878574~ +0 -0
  79. package/.1ljoqlmxtri4u471366957~ +5 -0
  80. package/.1lmu4gyeg65sn1711976930~ +43 -0
  81. package/.1lnhfpqnfqqfz2003724656~ +11 -0
  82. package/.1lt1g1mvfgb5j4266255235~ +28 -0
  83. package/.1lxqi59es6rrn2802385028~ +58 -0
  84. package/.1mahmttkt5ix3605289782~ +5 -0
  85. package/.1mc7nnauqac5g1364251658~ +25 -0
  86. package/.1mdctn2ghj9k63251473180~ +1 -0
  87. package/.1mp1u5klt3tdl3870346703~ +1 -0
  88. package/.1mw8wcpt26el61936058094~ +44 -0
  89. package/.1n63dyghkc8jo200251661~ +1 -0
  90. package/.1oakazs0ei8s2364924190~ +1 -0
  91. package/.1od47pemj5i7r2847175167~ +628 -0
  92. package/.1oeqx6o1i9ydp1054998532~ +137 -0
  93. package/.1pd299ftouc5c1650400787~ +1 -0
  94. package/.1pgpi36ml535e3941623899~ +100 -0
  95. package/.1pnuos6kft5jh2977940398~ +0 -0
  96. package/.1pp4dnqadmhen4182791997~ +5 -0
  97. package/.1pra1dmqltbik2575948847~ +5 -0
  98. package/.1pwrqj8ljo2m94160442355~ +1 -0
  99. package/.1q5vsyu8x3la7737019296~ +64 -0
  100. package/.1qj0a29jpnx7h646472455~ +5 -0
  101. package/.1qnsipef6yffq2013753806~ +0 -0
  102. package/.1qz5ed6w7ljp71459721291~ +0 -0
  103. package/.1r08xq0r3k2tu2371397069~ +26 -0
  104. package/.1r5oswraz0ye83984878240~ +29 -0
  105. package/.1s2hvzezodncb1354771824~ +122 -0
  106. package/.1sa4ts24rqxlw566769119~ +5 -0
  107. package/.1sjj4cumgba0p4125293219~ +1 -0
  108. package/.1t7kms9ugsusj510827519~ +1 -0
  109. package/.1taft47ga5f882850052124~ +5 -0
  110. package/.1tasp7zrezgn51676497553~ +1 -0
  111. package/.1td38r74dxbm9515756242~ +0 -0
  112. package/.1toye7ga3pfla4276397754~ +26 -0
  113. package/.1u8e37ck883tz3960238568~ +1 -0
  114. package/.1uip1w96yk5ha983874073~ +40 -0
  115. package/.1uxyhu36oz9ur862165667~ +5 -0
  116. package/.1v0n6knh9apy52021270197~ +50 -0
  117. package/.1v0puqjyle06e617329989~ +0 -0
  118. package/.1vb155ft29adf3903541491~ +1 -0
  119. package/.1vfr6s6kxe4va1960191265~ +1 -0
  120. package/.1vklw1t7ijh814282541105~ +42 -0
  121. package/.1vogdyv3tmz7q3503287797~ +183 -0
  122. package/.1vycghooil3qo3909296198~ +5 -0
  123. package/.1w39cg37nhtng1565007916~ +5 -0
  124. package/.1whd4msxs8fgz2685716031~ +8 -0
  125. package/.1wm1msbyloior467390473~ +5 -0
  126. package/.1wns1vrdmyulg1748631284~ +1 -0
  127. package/.1x93s0kzoi5nh1818809799~ +3 -0
  128. package/.1xdtkfz4acq8m1600020550~ +62 -0
  129. package/.1xix6og83yrh82283780791~ +31 -0
  130. package/.1xj5cxtmudrhy576371930~ +23 -0
  131. package/.1y0za7dvgim2h1733847930~ +5 -0
  132. package/.1yl3al13l8kg2355785228~ +1133 -0
  133. package/.1yzqoti3miog72630858031~ +60 -0
  134. package/.1z9ddth4824kp1894768968~ +5 -0
  135. package/.1zkyeg9fzlkxs3393119001~ +9 -0
  136. package/.1zxewxwkecty52790248441~ +1 -0
  137. package/.203x6u8m3ipcr3686538493~ +52 -0
  138. package/.21motxybma5j01509553865~ +0 -0
  139. package/.227uubrh9awvu1450662436~ +38 -0
  140. package/.2281q7wdabozj737187844~ +1 -0
  141. package/.22bhkipeae6ie2151902860~ +1 -0
  142. package/.22c2b14l7a2tg3686359746~ +71 -0
  143. package/.23b1yood9hlix3156660663~ +1 -0
  144. package/.23mtj0rxd63y1845686844~ +154 -0
  145. package/.23za5zy17688n2033225056~ +32 -0
  146. package/.241ffmj84poj82685659043~ +1 -0
  147. package/.24h09i5wpjix91031113020~ +1 -0
  148. package/.24t0fuq7ruybu1687973865~ +0 -0
  149. package/.24tf5v9cb8mjy856121635~ +40 -0
  150. package/.253iqvjynv1kp4248214651~ +37 -0
  151. package/.25pva2ff6vwek768998118~ +65 -0
  152. package/.261jrkwuhshjs1517093944~ +3 -0
  153. package/.269xm75mylhup3180398191~ +0 -0
  154. package/.26di48xmqc5v63800794606~ +55 -0
  155. package/.26dijratxb4jb2672899126~ +1 -0
  156. package/.26qjyg1p833oi2055710078~ +0 -0
  157. package/.27beehv11enxi913747745~ +10 -0
  158. package/.27u83t454e7xf848381419~ +1 -0
  159. package/.27vzjpfz4pssa581626631~ +119 -0
  160. package/.27z430ojxqzvw1218526954~ +32 -0
  161. package/.28290i1dyb5442654687940~ +28 -0
  162. package/.28gctqeilept62219560245~ +3877 -0
  163. package/.28odmmd8p8c3n3323893199~ +1 -0
  164. package/.28s04zau6hkn62480307329~ +1 -0
  165. package/.28zmai5ipekg93370495824~ +5 -0
  166. package/.293wsp54ud3vq3120794255~ +1 -0
  167. package/.2974yes9y7w224066171818~ +143 -0
  168. package/.297l35apffbgo2395112676~ +1 -0
  169. package/.29e322yocabk42537057133~ +62 -0
  170. package/.29p3vvct5s1823122443735~ +20 -0
  171. package/.29rsmidv7xjx94259901899~ +5 -0
  172. package/.2a2b8twcmyh042748420589~ +102 -0
  173. package/.2a44gek172lcf4119931147~ +31 -0
  174. package/.2a84e3mpnmlxz2922567501~ +25 -0
  175. package/.2aj1dgxjojjxa1020318125~ +1 -0
  176. package/.2alb0dbv0g2la3759643739~ +1 -0
  177. package/.2am05jz2ttewk226192306~ +46 -0
  178. package/.2aoynfo28570d2002532653~ +5 -0
  179. package/.2bb04ktpn7isx1795804911~ +5 -0
  180. package/.2bglxlzupk3t62860368596~ +1 -0
  181. package/.2bgnsysi1qye526803916~ +1 -0
  182. package/.2c088lxl2nf013950916128~ +1 -0
  183. package/.2cdyjnfibvbzk518685807~ +5 -0
  184. package/.2ea7eu6hxny6q2843495014~ +0 -0
  185. package/.2ejvcdxgp9oft1145113614~ +58 -0
  186. package/.2eohh4nj94xtu2674101062~ +0 -0
  187. package/.2era2yqowbflc3097534780~ +37 -0
  188. package/.2es1qr48z84pv3407379162~ +63 -0
  189. package/.2eyclmr52zejp1370998661~ +5 -0
  190. package/.2f1rr7b0a1d7g2767432904~ +1 -0
  191. package/.2g4mg0mw23ti23079346858~ +28 -0
  192. package/.2gkl2a4dcfzc23964915329~ +0 -0
  193. package/.2h8q5z76c8iap4146792901~ +22 -0
  194. package/.2hhsfdstxpio72629786162~ +0 -0
  195. package/.2hwwzj78etbev1768472794~ +1 -0
  196. package/.2i5se734n7pj02714411453~ +7 -0
  197. package/.2i8j11v3vbzwl3291437227~ +31 -0
  198. package/.2icmktdtmoaln2190125344~ +33 -0
  199. package/.2idc4nmhbnjkr3129730516~ +66 -0
  200. package/.2is2fitjuvq7u2434386411~ +1 -0
  201. package/.2itrvtt8hmh2g1915278859~ +0 -0
  202. package/.2iy6olikzgw4o1415667821~ +5 -0
  203. package/.2j4yh3gex0qqc4205290854~ +0 -0
  204. package/.2jbyckxslwl5q3707375400~ +179 -0
  205. package/.2jlzwsx06ccoo436588672~ +5 -0
  206. package/.2jqkhe2stlmkl3431459884~ +1 -0
  207. package/.2jv1hnao69iqv1135593507~ +148 -0
  208. package/.2jxp6nzne77ul1121207824~ +110 -0
  209. package/.2jznxr43l1lby39672370~ +10 -0
  210. package/.2k33twa4vb4571573471693~ +1 -0
  211. package/.2k4f3q4a5yqez3541425671~ +102 -0
  212. package/.2k8y8nih2szwa1967545770~ +1 -0
  213. package/.2kmkv83j1vohi4167272997~ +1 -0
  214. package/.2l310phblwkn42411620554~ +0 -0
  215. package/.2lc6tjz22s0mt2920088089~ +31 -0
  216. package/.2lrr80p7mvuuf2409419719~ +216 -0
  217. package/.2m46p9j8cgrb22722613749~ +5 -0
  218. package/.2mak0s91aaq161821854781~ +1 -0
  219. package/.2mhaoumq5ofp51817670934~ +59 -0
  220. package/.2mxvjkqgqp6jv654823037~ +38 -0
  221. package/.2n5v3rkqmeo07113983488~ +124 -0
  222. package/.2n6abvahcj85t1471017378~ +5 -0
  223. package/.2neidr3jvtuos3947779986~ +9 -0
  224. package/.2nigc4wuq5cxk3429819584~ +5 -0
  225. package/.2nkxyc1hwa6dl824547234~ +29 -0
  226. package/.2nry9k0xdcgu1737155015~ +0 -0
  227. package/.2nuatmz1jj7u13701560675~ +0 -0
  228. package/.2o0rj13kx3ofp1528749978~ +5 -0
  229. package/.2o8ns2dni8sq43317794183~ +4 -0
  230. package/.2orduglgrsfln4155117007~ +1 -0
  231. package/.2owwbjldj9r2z3747396580~ +5 -0
  232. package/.2p50q7ih72sce3090454917~ +1 -0
  233. package/.2p85j3n10xm0i3801111893~ +1 -0
  234. package/.2pcfr5ost3t8x1916107804~ +5 -0
  235. package/.2pheqai6js25a1137361529~ +79 -0
  236. package/.2pke45sksofwj1004641271~ +5 -0
  237. package/.2ql38euuqnoy3696759808~ +123 -0
  238. package/.2qx9tb7ttv4kj3753029942~ +0 -0
  239. package/.2rh2p75x2iohu4286375103~ +0 -0
  240. package/.2rqseqol6sii63693929867~ +42 -0
  241. package/.2rtb8fljlbt4z2092636315~ +5 -0
  242. package/.2sitontl9zv7k989095683~ +1 -0
  243. package/.2sumckzkf6inc3037839420~ +46 -0
  244. package/.2sxus1ge734sc2055831895~ +0 -0
  245. package/.2ui1ufm6um3ew3207223830~ +134 -0
  246. package/.2uwvucq1upxmb3946253608~ +1 -0
  247. package/.2uz4jqhgjy0u43246103708~ +38 -0
  248. package/.2v6pvcvymakli124117893~ +22 -0
  249. package/.2v7n2r8yaxtj63907558506~ +191 -0
  250. package/.2vf4ld7ko06rz827853413~ +0 -0
  251. package/.2vw9cvcqj3njx4015131583~ +5 -0
  252. package/.2w01io1er57qr1531918602~ +1 -0
  253. package/.2wclho9qme74x1915135050~ +18 -0
  254. package/.2wezwvtkd2lmr1644625228~ +1 -0
  255. package/.2wg6sd5gwvhnt871965459~ +1 -0
  256. package/.2wu4bj8km6mgi1637289598~ +42 -0
  257. package/.2ww0qqx1qrpye2349203581~ +898 -0
  258. package/.2x4jvr3abso9v3033863453~ +1 -0
  259. package/.2xsh2ufi2z5vs1183027099~ +5 -0
  260. package/.2ytxht5pxnch72470357200~ +6 -0
  261. package/.2z92ycdrz3a1o3062754157~ +190 -0
  262. package/.2zbhn8ub0tq0p3915616493~ +58 -0
  263. package/.2zeuhskh5he07529439039~ +21 -0
  264. package/.2zg62s3g166ju3067737050~ +1 -0
  265. package/.309epuyovrw253423629891~ +57 -0
  266. package/.30g99o6ofh99z193472967~ +5 -0
  267. package/.30hoynx8z3yrb2385169428~ +1 -0
  268. package/.30iexfq90oeis3767491456~ +30 -0
  269. package/.30jil41jj9hoa420757755~ +1 -0
  270. package/.30jyb5qvxxjpf1988048841~ +18 -0
  271. package/.313gbxymr9v193269183776~ +0 -0
  272. package/.320chegsq06tt3221565641~ +1 -0
  273. package/.32fpr8sv5zqrc1340207193~ +5 -0
  274. package/.32yltdqu5vfxe1759274202~ +5 -0
  275. package/.332pixy7fs61w65903022~ +36 -0
  276. package/.339m7bxfb94gu88802246~ +5 -0
  277. package/.33i4scm0qth52139373522~ +518 -0
  278. package/.33zx6sybvp67g1293988556~ +0 -0
  279. package/.34xt9kyk7xx6y1975279869~ +96 -0
  280. package/.353g9kuh4f61k3255636656~ +5 -0
  281. package/.35bax92xmisy83669870306~ +129 -0
  282. package/.35k28ipj1w8fg895818612~ +3 -0
  283. package/.35rd6dwekodfd1214052327~ +15 -0
  284. package/.36gpihsc7yrzi4198455788~ +58 -0
  285. package/.36p0b8vly84cn1225266395~ +0 -0
  286. package/.36pqazlgwdfwj3950316203~ +0 -0
  287. package/.36skp5440fh9l3178641287~ +143 -0
  288. package/.36xvgs5gnm2lk2934335117~ +0 -0
  289. package/.37gze5nbg89tn3648899686~ +106 -0
  290. package/.37kcv3gj8vfzo945988828~ +46 -0
  291. package/.38mlnmc19bgf4341919534~ +22 -0
  292. package/.38o6golibikz21230537896~ +1 -0
  293. package/.38p61lmzcu0rf107683206~ +175 -0
  294. package/.397tioksx01xw2456939194~ +5 -0
  295. package/.39a6vitc9jr943494957978~ +49 -0
  296. package/.39b9ewnm8v6pv1869092260~ +1 -0
  297. package/.39dko26ojf5rv46135612~ +3 -0
  298. package/.39lr4jbs5ml4a3497324322~ +21 -0
  299. package/.39rpfskonondp1562809914~ +0 -0
  300. package/.3adl2luw4cebg1845312515~ +26 -0
  301. package/.3ag1a9ogqbay72842186109~ +1 -0
  302. package/.3b1t8gg5syj283121715999~ +42 -0
  303. package/.3b6cmjwur0bbc2102891025~ +1 -0
  304. package/.3b6zz5zm0x2mb4112640944~ +0 -0
  305. package/.3c1lhp0wok0nk3598581795~ +168 -0
  306. package/.3cvhv0x6vazb4931313715~ +43 -0
  307. package/.3cxbpt3j9yhbr2883458382~ +16 -0
  308. package/.3d0ff5wli5ggt2036501705~ +55 -0
  309. package/.3djzslufow12w3031143355~ +0 -0
  310. package/.3dmrbn3bmunat857555010~ +29 -0
  311. package/.3dq25d8f9o5ao793394336~ +0 -0
  312. package/.3dypup0b9zksj3088223637~ +0 -0
  313. package/.3e93rxyoq9z01815047779~ +15 -0
  314. package/.3edb94ognl6as1640169920~ +1 -0
  315. package/.3eoh4dku6h7af409567786~ +0 -0
  316. package/.3f1lr5cyqsgrg2014144268~ +55 -0
  317. package/.3fffe0krdlsd32051661593~ +2 -0
  318. package/.3fidcv2b2y8gq3103560043~ +41 -0
  319. package/.3fsuen5xnevzz3796135550~ +54 -0
  320. package/.3fu60shivl4gn2031866129~ +1 -0
  321. package/.3fva0z6bvwteh1395049228~ +40 -0
  322. package/.3fxohqnz0e93l779243415~ +1 -0
  323. package/.3gwy9a6symur11725184847~ +45 -0
  324. package/.3h6y4wmal7glf3011994092~ +1 -0
  325. package/.3hj6byks40pos34084510~ +0 -0
  326. package/.3hjpqwkmnlpxd1505151696~ +5 -0
  327. package/.3hq147ve6bbjd563354974~ +79 -0
  328. package/.3hwl1qalklu9g3837493393~ +5 -0
  329. package/.3i6o14vs451s22755057300~ +0 -0
  330. package/.3i78sxmab0q7v1480495828~ +5 -0
  331. package/.3iqscrw4vueio1140833855~ +5 -0
  332. package/.3iwoh3fg13oo4824656621~ +113 -0
  333. package/.3jbtqgciwjrto3717938548~ +40 -0
  334. package/.3jgvptkad5z7h3586071166~ +5 -0
  335. package/.3jiki3myt6nj31583285087~ +1 -0
  336. package/.3jt5h2cal8v864261600338~ +0 -0
  337. package/.3jt5rx9wnd0ld234275893~ +1 -0
  338. package/.3k7udu1btobar1617030290~ +1 -0
  339. package/.3ka4d0j59x5z33151824935~ +5 -0
  340. package/.3kbe19nei1n9z506901208~ +1 -0
  341. package/.3kmcf9eh4vgyt413601944~ +5 -0
  342. package/.3knhbwbcv47kn1366578523~ +5 -0
  343. package/.3kqshr5nm5pje1185287852~ +5 -0
  344. package/.3l0xyjgq3jckz2440540082~ +58 -0
  345. package/.3l3gp25tb5udi4073829557~ +0 -0
  346. package/.3l4l5zcydbo8t1650090963~ +43 -0
  347. package/.3llf11a6y6v7e2937755977~ +2 -0
  348. package/.3lzp5lwxh550a3696103830~ +22 -0
  349. package/.3mz5wurutwxgr3682216161~ +44 -0
  350. package/.3n4r0jtu8thvm2598207744~ +20 -0
  351. package/.3nfcgvrc4huxg263624324~ +1 -0
  352. package/.3ns9bu1hk4m091745683722~ +43 -0
  353. package/.3nsk8idgknn8z3636783124~ +1 -0
  354. package/.3occvj5aqvouj2606275959~ +9798 -0
  355. package/.3ojqbfkmp06d3972387030~ +0 -0
  356. package/.3opq5vrvdz0qu2829190270~ +0 -0
  357. package/.3oqehsphn5fh92234214544~ +112 -0
  358. package/.3ospup0k4hsfe247229966~ +26 -0
  359. package/.3ozhgukt5qz7o495869311~ +10 -0
  360. package/.3pbek487atkgx3975156135~ +137 -0
  361. package/.3plwhze1kh93g2821462760~ +166 -0
  362. package/.3q2rikx4x4c463440283132~ +7 -0
  363. package/.3q7wsid1op2ps1946113274~ +1 -0
  364. package/.3rvgzymk01i3n3713837507~ +167 -0
  365. package/.3sqawoy2ro4us2631593937~ +66 -0
  366. package/.3sqr2lmh137im829274841~ +40 -0
  367. package/.3su4sqm1gjlwc1018589512~ +1 -0
  368. package/.3sutzc4hxafv23574462652~ +10 -0
  369. package/.3svrx7fmt0ack3179552017~ +62 -0
  370. package/.3szjns2q2qpsx2114251279~ +18 -0
  371. package/.3t20ml7op2uem1208226102~ +1 -0
  372. package/.3t9ndf9rh2xho2923082359~ +0 -0
  373. package/.3tdiig0kvsmll4012939608~ +0 -0
  374. package/.3tnmwg9uj8wsz320817598~ +1 -0
  375. package/.3udscu5iru0av1139192605~ +138 -0
  376. package/.3unntri6rcy0i1721696573~ +34 -0
  377. package/.3ur9m0xoi7jd61539943890~ +5 -0
  378. package/.3uzx817kp0sk84116207118~ +38 -0
  379. package/.3vic8umnlo3tv3016161514~ +1 -0
  380. package/.3vn73f2o0cf0r3971540318~ +41 -0
  381. package/.3vpmpp97jkr5w1188886173~ +25 -0
  382. package/.3vzdy769mqu063810593396~ +115 -0
  383. package/.3yqobuiq8u9x1554302470~ +1 -0
  384. package/.3ywedyp8mgpo3629876734~ +5 -0
  385. package/.43ixunofakod2495516571~ +54 -0
  386. package/.472ihf4mmidi1904079000~ +8 -0
  387. package/.4jv4d17vg0d53351776898~ +57 -0
  388. package/.551dn5jhnnju144752964~ +45 -0
  389. package/.57abo7wxbpcs1502411293~ +33 -0
  390. package/.5h57em0xx2uc2396663983~ +60 -0
  391. package/.5parwpklmz081686408756~ +1 -0
  392. package/.6ewx6767k46o2908216367~ +5 -0
  393. package/.6gg4j4nfif7x1033191544~ +5 -0
  394. package/.6oi4m19s4wm527068511~ +0 -0
  395. package/.6sx9ppwxr6gm4204660296~ +1 -0
  396. package/.7idfkwgr3gbp256398058~ +33 -0
  397. package/.88rgww4ma36n3533403168~ +62 -0
  398. package/.88vgwoll2j9s3515583568~ +5 -0
  399. package/.8ehx2yz3i9973551251302~ +0 -0
  400. package/.8vtbpi40j0rq1786300431~ +5 -0
  401. package/.941z40mxdu1b2889515977~ +2 -0
  402. package/.95el4cno26iw3987534559~ +7 -0
  403. package/.a5ujkq4n9cwk3094111830~ +0 -0
  404. package/.aabr25ngut7s944869094~ +7 -0
  405. package/.aovadh0o288e3149932842~ +44 -0
  406. package/.bb81q1foihe73573312315~ +1 -0
  407. package/.berfxqvefinu450206808~ +1 -0
  408. package/.bu8vygooqwcv820176316~ +18 -0
  409. package/.c0zruh0tpbq31622552571~ +12 -0
  410. package/.c4d0o2n2d76s3226734365~ +5 -0
  411. package/.cache/replit/nix/env.json +1 -0
  412. package/.cjcao8esnv1n3333504904~ +1 -0
  413. package/.cjp9d3d99pza641796410~ +0 -0
  414. package/.ckspfutgjv1z1024550144~ +124 -0
  415. package/.cm3l813oph6x1631579838~ +5 -0
  416. package/.cm6rmi6zuex12552202253~ +0 -0
  417. package/.config/configstore/update-notifier-npm.json +4 -0
  418. package/.cvv0i5eyu9861159801169~ +3 -0
  419. package/.cwxw18i2z5uo8070200~ +0 -0
  420. package/.d4p7zqjqagr93465124918~ +5 -0
  421. package/.d7gv1w49g1t5978702571~ +4 -0
  422. package/.da7937lbkyab2840770081~ +25 -0
  423. package/.dpm4jqakt5f23962068621~ +1 -0
  424. package/.e1jen1t286kt2094874529~ +45 -0
  425. package/.eeocd7cjzzbe3807606656~ +1 -0
  426. package/.ehbvd91iysif1745678093~ +205 -0
  427. package/.etktjsd8aa0k602384377~ +46 -0
  428. package/.fez0ldeaoqs82489136305~ +67 -0
  429. package/.fo1dvi38u9743896420676~ +50 -0
  430. package/.g5gxaq23coy03806728314~ +33 -0
  431. package/.ge3qskprhmvf887831962~ +1 -0
  432. package/.gjmg7mfepcjv1201709417~ +190 -0
  433. package/.godo8u6hmeh61555162256~ +1 -0
  434. package/.gssyikzgf9zw3674741004~ +1 -0
  435. package/.gxiawruyatt61454121973~ +16 -0
  436. package/.gz9bxoz2qx3273940574~ +5 -0
  437. package/.hacobw0a1cez2244818935~ +8 -0
  438. package/.hcg120mkjvwl1902622193~ +30 -0
  439. package/.hrj7swqv7u2f672210500~ +0 -0
  440. package/.ht0c44i3uu82190446773~ +2 -0
  441. package/.huned6wyo68m259851920~ +69 -0
  442. package/.hwzwznhe7b8m2588864820~ +1 -0
  443. package/.i0fc17g7sag4950598326~ +43 -0
  444. package/.icukae02z73c1256854950~ +3 -0
  445. package/.ide6mq198hfb4086599346~ +1 -0
  446. package/.injs115092cl1076900915~ +0 -0
  447. package/.jb2hc2neo3lh3292228122~ +1 -0
  448. package/.jpwpegk4epm91345563788~ +5 -0
  449. package/.juc08y51hcaw2534784803~ +65 -0
  450. package/.k3oovnl0l8n54100463127~ +23 -0
  451. package/.k41co211hr8333667245~ +33 -0
  452. package/.k5ezd3cc6fly3736128928~ +26 -0
  453. package/.kk5otxu1wdmm3738382659~ +5 -0
  454. package/.kmapz3w89p23765985971~ +5 -0
  455. package/.l67dk13uf7bz4241145366~ +1 -0
  456. package/.lgc8w27h31i066158222~ +31 -0
  457. package/.liguu6b84gpv111565250~ +77 -0
  458. package/.m4rlshnt7afg85435358~ +0 -0
  459. package/.m8afkftbrf6t1507877154~ +1 -0
  460. package/.mn24mjzqy2581742599686~ +1 -0
  461. package/.mpr4clsr6die3721927047~ +31 -0
  462. package/.mt3lbwul9gqx3961120840~ +128 -0
  463. package/.n7vn856mn8bo1690122400~ +39 -0
  464. package/.n87cpqrrww1k2068922549~ +1 -0
  465. package/.nkxq1ssvv9xy2709416196~ +5 -0
  466. package/.oh18zjvbcnln3882327119~ +1 -0
  467. package/.ohf6hza6agp7898893110~ +1 -0
  468. package/.oj1hgqjmqj2f2704649393~ +717 -0
  469. package/.onsdnq6jyu53240985077~ +23 -0
  470. package/.ow1zxfydp5qq3607654581~ +0 -0
  471. package/.oyuiyttcckbp2343293247~ +1 -0
  472. package/.p44l63l8ectc3361364369~ +1 -0
  473. package/.ph3mshsq682a2271606102~ +60 -0
  474. package/.pz25xe0l5fri1327842439~ +1 -0
  475. package/.ql4igy8wtg623099207478~ +8 -0
  476. package/.qpejebq7rnjm3421752185~ +1 -0
  477. package/.replit +6 -0
  478. package/.rplas0l9g8lp1805141666~ +1 -0
  479. package/.rxoawymlox6e44043914~ +92 -0
  480. package/.s9osotjya7jy2384519992~ +0 -0
  481. package/.sjh768z8khhb3519645975~ +35 -0
  482. package/.t8gen2wl41dp490640253~ +1 -0
  483. package/.tchlyvvlqto1959613069~ +1553 -0
  484. package/.tkvbm2tfuv2a815177943~ +35 -0
  485. package/.tqay45yz3v9f2970423582~ +1 -0
  486. package/.u6kja2g03g6e421942798~ +1 -0
  487. package/.vfqrldzsw3qb1703032508~ +131 -0
  488. package/.vmpch6h7luy03572133091~ +39 -0
  489. package/.vpzx2gjpfg163934792219~ +33 -0
  490. package/.vs4fb8zwm8502692774503~ +155 -0
  491. package/.vv7todb6fhic2818468436~ +1 -0
  492. package/.w6swvtt894da1090000254~ +1 -0
  493. package/.w9cs9i79day91114236209~ +0 -0
  494. package/.wa685b1scl5b4110564116~ +1 -0
  495. package/.wg446us1sab11025383459~ +0 -0
  496. package/.wk5wqycx2aq13181454918~ +489 -0
  497. package/.wqzuk9hgjng32571763176~ +0 -0
  498. package/.wtwcl2dud1aj1535416583~ +52 -0
  499. package/.wvyijisgbpfx2012597012~ +0 -0
  500. package/.xfr3b1wu9vzp2610754112~ +5 -0
  501. package/.xhcf613oksrg1591880987~ +0 -0
  502. package/.xqhk38v4zdsu2802007983~ +112 -0
  503. package/.y4tn7qkymq6t1811274166~ +109 -0
  504. package/.yahgzbbrpwls3177458907~ +31 -0
  505. package/.ynmnlx97mw6o234850451~ +39 -0
  506. package/.yq8ssg1l9dpk2338570127~ +0 -0
  507. package/.yzldn2r24c7v1098551596~ +0 -0
  508. package/.zczm44zyytsj1763543339~ +0 -0
  509. package/.zpifsvg0gj7d821207284~ +5 -0
  510. package/package.json +9 -3
  511. package/replit.nix +7 -0
  512. package/zyx/.gitattributes +2 -0
  513. package/zyx/Extra/ExtraAddons.js +78 -0
  514. package/zyx/Extra/ExtraFindUID.js +60 -0
  515. package/zyx/Extra/ExtraGetThread.js +118 -0
  516. package/zyx/Extra/ExtraTranslate.js +62 -0
  517. package/zyx/Extra/ExtraUptimeRobot.js +59 -0
  518. package/zyx/Extra/Html/Classic/script.js +231 -0
  519. package/zyx/Extra/Html/Classic/style.css +8 -0
  520. package/zyx/Extra/PM2/ecosystem.config.js +23 -0
  521. package/zyx/Extra/Security/Index.js +174 -0
  522. package/zyx/Extra/Security/Step_1.js +15 -0
  523. package/zyx/Extra/Security/Step_2.js +23 -0
  524. package/zyx/Extra/Security/Step_3.js +23 -0
  525. package/zyx/Extra/Src/History.js +115 -0
  526. package/zyx/Extra/Src/Last-Run.js +65 -0
  527. package/zyx/Extra/Src/Premium.js +84 -0
  528. package/zyx/Extra/Src/SecurityCheck.js +2 -0
  529. package/zyx/Func/AcceptAgreement.js +32 -0
  530. package/zyx/Func/ClearCache.js +63 -0
  531. package/zyx/Func/ReportV1.js +54 -0
  532. package/zyx/Language/index.json +176 -0
  533. package/zyx/OldSecurity.js +100 -0
  534. package/zyx/README.md +129 -0
  535. package/zyx/Settings/Database.js +21 -0
  536. package/zyx/Settings/Location.js +60 -0
  537. package/zyx/Settings/Location.json +24 -0
  538. package/zyx/Settings/Settings.js +60 -0
  539. package/zyx/StateCrypt.js +98 -0
  540. package/zyx/broadcast.js +38 -0
  541. package/zyx/index.js +1327 -0
  542. package/zyx/logger.js +65 -0
  543. package/zyx/package.json +87 -0
  544. package/zyx/src/K2IMG.js +8 -0
  545. package/zyx/src/Premium.js +30 -0
  546. package/zyx/src/Screenshot.js +77 -0
  547. package/zyx/src/T2S.js +8 -0
  548. package/zyx/src/addExternalModule.js +16 -0
  549. package/zyx/src/addUserToGroup.js +79 -0
  550. package/zyx/src/changeAdminStatus.js +79 -0
  551. package/zyx/src/changeArchivedStatus.js +41 -0
  552. package/zyx/src/changeAvt.js +85 -0
  553. package/zyx/src/changeBio.js +65 -0
  554. package/zyx/src/changeBlockedStatus.js +36 -0
  555. package/zyx/src/changeGroupImage.js +106 -0
  556. package/zyx/src/changeNickname.js +45 -0
  557. package/zyx/src/changeThreadColor.js +62 -0
  558. package/zyx/src/changeThreadEmoji.js +42 -0
  559. package/zyx/src/createNewGroup.js +70 -0
  560. package/zyx/src/createPoll.js +60 -0
  561. package/zyx/src/deleteMessage.js +45 -0
  562. package/zyx/src/deleteThread.js +43 -0
  563. package/zyx/src/desktop.ini +2 -0
  564. package/zyx/src/forwardAttachment.js +48 -0
  565. package/zyx/src/getAccessToken.js +32 -0
  566. package/zyx/src/getCurrentUserID.js +7 -0
  567. package/zyx/src/getEmojiUrl.js +27 -0
  568. package/zyx/src/getFriendsList.js +73 -0
  569. package/zyx/src/getMessage.js +80 -0
  570. package/zyx/src/getThreadHistory.js +537 -0
  571. package/zyx/src/getThreadInfo.js +346 -0
  572. package/zyx/src/getThreadList.js +213 -0
  573. package/zyx/src/getThreadMain.js +219 -0
  574. package/zyx/src/getThreadPictures.js +59 -0
  575. package/zyx/src/getUID.js +59 -0
  576. package/zyx/src/getUserID.js +62 -0
  577. package/zyx/src/getUserInfo.js +129 -0
  578. package/zyx/src/getUserInfoMain.js +65 -0
  579. package/zyx/src/getUserInfoV2.js +35 -0
  580. package/zyx/src/getUserInfoV3.js +63 -0
  581. package/zyx/src/getUserInfoV4.js +55 -0
  582. package/zyx/src/getUserInfoV5.js +61 -0
  583. package/zyx/src/handleFriendRequest.js +46 -0
  584. package/zyx/src/handleMessageRequest.js +49 -0
  585. package/zyx/src/httpGet.js +49 -0
  586. package/zyx/src/httpPost.js +48 -0
  587. package/zyx/src/httpPostFormData.js +41 -0
  588. package/zyx/src/listenMqtt.js +725 -0
  589. package/zyx/src/logout.js +68 -0
  590. package/zyx/src/markAsDelivered.js +48 -0
  591. package/zyx/src/markAsRead.js +70 -0
  592. package/zyx/src/markAsReadAll.js +43 -0
  593. package/zyx/src/markAsSeen.js +51 -0
  594. package/zyx/src/muteThread.js +47 -0
  595. package/zyx/src/removeUserFromGroup.js +49 -0
  596. package/zyx/src/resolvePhotoUrl.js +37 -0
  597. package/zyx/src/searchForThread.js +43 -0
  598. package/zyx/src/sendMessage.js +334 -0
  599. package/zyx/src/sendTypingIndicator.js +80 -0
  600. package/zyx/src/setMessageReaction.js +109 -0
  601. package/zyx/src/setPostReaction.js +102 -0
  602. package/zyx/src/setTitle.js +74 -0
  603. package/zyx/src/threadColors.js +39 -0
  604. package/zyx/src/unfriend.js +43 -0
  605. package/zyx/src/unsendMessage.js +40 -0
  606. package/zyx/utils.js +1648 -0
  607. package/README.md +0 -5
@@ -0,0 +1,80 @@
1
+ /* eslint-disable linebreak-style */
2
+ "use strict";
3
+
4
+ var utils = require("../utils");
5
+ var log = require("npmlog");
6
+
7
+ module.exports = function(defaultFuncs, api, ctx) {
8
+ return function getMessage(threadID, messageID, callback) {
9
+ if (!callback) {
10
+ return callback({ error: "getMessage: need callback" });
11
+ }
12
+
13
+ if (!threadID || !messageID) {
14
+ return callback({ error: "getMessage: need threadID and messageID" });
15
+ }
16
+
17
+ const form = {
18
+ "av": ctx.globalOptions.pageID,
19
+ "queries": JSON.stringify({
20
+ "o0": {
21
+ //This doc_id is valid as of ? (prob January 18, 2020)
22
+ "doc_id": "1768656253222505",
23
+ "query_params": {
24
+ "thread_and_message_id": {
25
+ "thread_id": threadID,
26
+ "message_id": messageID,
27
+ }
28
+ }
29
+ }
30
+ })
31
+ };
32
+
33
+ defaultFuncs
34
+ .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
35
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
36
+ .then((resData) => {
37
+ if (resData[resData.length - 1].error_results > 0) {
38
+ throw resData[0].o0.errors;
39
+ }
40
+
41
+ if (resData[resData.length - 1].successful_results === 0) {
42
+ throw { error: "getMessage: there was no successful_results", res: resData };
43
+ }
44
+
45
+ var fetchData = resData[0].o0.data.message;
46
+ if (fetchData) {
47
+ (!ctx.globalOptions.selfListen &&
48
+ fetchData.message_sender.id.toString() === ctx.userID) ||
49
+ !ctx.loggedIn ?
50
+ undefined :
51
+ (function () { callback(null, {
52
+ threadID: threadID,
53
+ messageID: fetchData.message_id,
54
+ senderID: fetchData.message_sender.id,
55
+ attachments: fetchData.blob_attachments.map(att => {
56
+ var x;
57
+ try {
58
+ x = utils._formatAttachment(att);
59
+ } catch (ex) {
60
+ x = att;
61
+ x.error = ex;
62
+ x.type = "unknown";
63
+ }
64
+ return x;
65
+ }),
66
+ body: fetchData.message.text,
67
+ mentions: fetchData.message.ranges,
68
+ timestamp: fetchData.timestamp_precise,
69
+ messageReply: fetchData.replied_to_message,
70
+ raw: fetchData,
71
+ }); })();
72
+ }
73
+ })
74
+ .catch((err) => {
75
+ log.error("getMessage", err);
76
+ callback(err);
77
+ });
78
+
79
+ };
80
+ };
@@ -0,0 +1,537 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+
6
+ function formatAttachmentsGraphQLResponse(attachment) {
7
+ switch (attachment.__typename) {
8
+ case "MessageImage":
9
+ return {
10
+ type: "photo",
11
+ ID: attachment.legacy_attachment_id,
12
+ filename: attachment.filename,
13
+ thumbnailUrl: attachment.thumbnail.uri,
14
+
15
+ previewUrl: attachment.preview.uri,
16
+ previewWidth: attachment.preview.width,
17
+ previewHeight: attachment.preview.height,
18
+
19
+ largePreviewUrl: attachment.large_preview.uri,
20
+ largePreviewHeight: attachment.large_preview.height,
21
+ largePreviewWidth: attachment.large_preview.width,
22
+
23
+ // You have to query for the real image. See below.
24
+ url: attachment.large_preview.uri, // @Legacy
25
+ width: attachment.large_preview.width, // @Legacy
26
+ height: attachment.large_preview.height, // @Legacy
27
+ name: attachment.filename, // @Legacy
28
+
29
+ // @Undocumented
30
+ attributionApp: attachment.attribution_app
31
+ ? {
32
+ attributionAppID: attachment.attribution_app.id,
33
+ name: attachment.attribution_app.name,
34
+ logo: attachment.attribution_app.square_logo
35
+ }
36
+ : null
37
+
38
+ // @TODO No idea what this is, should we expose it?
39
+ // Ben - July 15th 2017
40
+ // renderAsSticker: attachment.render_as_sticker,
41
+
42
+ // This is _not_ the real URI, this is still just a large preview.
43
+ // To get the URL we'll need to support a POST query to
44
+ //
45
+ // https://www.facebook.com/webgraphql/query/
46
+ //
47
+ // With the following query params:
48
+ //
49
+ // query_id:728987990612546
50
+ // variables:{"id":"100009069356507","photoID":"10213724771692996"}
51
+ // dpr:1
52
+ //
53
+ // No special form though.
54
+ };
55
+ case "MessageAnimatedImage":
56
+ return {
57
+ type: "animated_image",
58
+ ID: attachment.legacy_attachment_id,
59
+ filename: attachment.filename,
60
+
61
+ previewUrl: attachment.preview_image.uri,
62
+ previewWidth: attachment.preview_image.width,
63
+ previewHeight: attachment.preview_image.height,
64
+
65
+ url: attachment.animated_image.uri,
66
+ width: attachment.animated_image.width,
67
+ height: attachment.animated_image.height,
68
+
69
+ thumbnailUrl: attachment.preview_image.uri, // @Legacy
70
+ name: attachment.filename, // @Legacy
71
+ facebookUrl: attachment.animated_image.uri, // @Legacy
72
+ rawGifImage: attachment.animated_image.uri, // @Legacy
73
+ animatedGifUrl: attachment.animated_image.uri, // @Legacy
74
+ animatedGifPreviewUrl: attachment.preview_image.uri, // @Legacy
75
+ animatedWebpUrl: attachment.animated_image.uri, // @Legacy
76
+ animatedWebpPreviewUrl: attachment.preview_image.uri, // @Legacy
77
+
78
+ // @Undocumented
79
+ attributionApp: attachment.attribution_app
80
+ ? {
81
+ attributionAppID: attachment.attribution_app.id,
82
+ name: attachment.attribution_app.name,
83
+ logo: attachment.attribution_app.square_logo
84
+ }
85
+ : null
86
+ };
87
+ case "MessageVideo":
88
+ return {
89
+ type: "video",
90
+ filename: attachment.filename,
91
+ ID: attachment.legacy_attachment_id,
92
+
93
+ thumbnailUrl: attachment.large_image.uri, // @Legacy
94
+
95
+ previewUrl: attachment.large_image.uri,
96
+ previewWidth: attachment.large_image.width,
97
+ previewHeight: attachment.large_image.height,
98
+
99
+ url: attachment.playable_url,
100
+ width: attachment.original_dimensions.x,
101
+ height: attachment.original_dimensions.y,
102
+
103
+ duration: attachment.playable_duration_in_ms,
104
+ videoType: attachment.video_type.toLowerCase()
105
+ };
106
+ case "MessageFile":
107
+ return {
108
+ type: "file",
109
+ filename: attachment.filename,
110
+ ID: attachment.message_file_fbid,
111
+
112
+ url: attachment.url,
113
+ isMalicious: attachment.is_malicious,
114
+ contentType: attachment.content_type,
115
+
116
+ name: attachment.filename, // @Legacy
117
+ mimeType: "", // @Legacy
118
+ fileSize: -1 // @Legacy
119
+ };
120
+ case "MessageAudio":
121
+ return {
122
+ type: "audio",
123
+ filename: attachment.filename,
124
+ ID: attachment.url_shimhash, // Not fowardable
125
+
126
+ audioType: attachment.audio_type,
127
+ duration: attachment.playable_duration_in_ms,
128
+ url: attachment.playable_url,
129
+
130
+ isVoiceMail: attachment.is_voicemail
131
+ };
132
+ default:
133
+ return {
134
+ error: "Don't know about attachment type " + attachment.__typename
135
+ };
136
+ }
137
+ }
138
+
139
+ function formatExtensibleAttachment(attachment) {
140
+ if (attachment.story_attachment) {
141
+ return {
142
+ type: "share",
143
+ ID: attachment.legacy_attachment_id,
144
+ url: attachment.story_attachment.url,
145
+
146
+ title: attachment.story_attachment.title_with_entities.text,
147
+ description: attachment.story_attachment.description && attachment.story_attachment.description.text,
148
+ source: attachment.story_attachment.source == null ? null : attachment.story_attachment.source.text,
149
+
150
+ image: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).uri,
151
+ width: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).width,
152
+ height: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).height,
153
+ playable: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.is_playable,
154
+ duration: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.playable_duration_in_ms,
155
+ playableUrl: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.playable_url,
156
+
157
+ subattachments: attachment.story_attachment.subattachments,
158
+
159
+ // Format example:
160
+ //
161
+ // [{
162
+ // key: "width",
163
+ // value: { text: "1280" }
164
+ // }]
165
+ //
166
+ // That we turn into:
167
+ //
168
+ // {
169
+ // width: "1280"
170
+ // }
171
+ //
172
+ properties: attachment.story_attachment.properties.reduce(function (obj, cur) {
173
+ obj[cur.key] = cur.value.text;
174
+ return obj;
175
+ }, {}),
176
+
177
+ // Deprecated fields
178
+ animatedImageSize: "", // @Legacy
179
+ facebookUrl: "", // @Legacy
180
+ styleList: "", // @Legacy
181
+ target: "", // @Legacy
182
+ thumbnailUrl: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).uri, // @Legacy
183
+ thumbnailWidth: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).width, // @Legacy
184
+ thumbnailHeight: attachment.story_attachment.media == null ? null : attachment.story_attachment.media.animated_image == null && attachment.story_attachment.media.image == null ? null : (attachment.story_attachment.media.animated_image || attachment.story_attachment.media.image).height // @Legacy
185
+ };
186
+ }
187
+ else return { error: "Don't know what to do with extensible_attachment." };
188
+ }
189
+
190
+ function formatReactionsGraphQL(reaction) {
191
+ return {
192
+ reaction: reaction.reaction,
193
+ userID: reaction.user.id
194
+ };
195
+ }
196
+
197
+ function formatEventData(event) {
198
+ if (event == null) return {}
199
+
200
+ switch (event.__typename) {
201
+ case "ThemeColorExtensibleMessageAdminText":
202
+ return { color: event.theme_color };
203
+ case "ThreadNicknameExtensibleMessageAdminText":
204
+ return {
205
+ nickname: event.nickname,
206
+ participantID: event.participant_id
207
+ };
208
+ case "ThreadIconExtensibleMessageAdminText":
209
+ return { threadIcon: event.thread_icon };
210
+ case "InstantGameUpdateExtensibleMessageAdminText":
211
+ return {
212
+ gameID: (event.game == null ? null : event.game.id),
213
+ update_type: event.update_type,
214
+ collapsed_text: event.collapsed_text,
215
+ expanded_text: event.expanded_text,
216
+ instant_game_update_data: event.instant_game_update_data
217
+ };
218
+ case "GameScoreExtensibleMessageAdminText":
219
+ return { game_type: event.game_type };
220
+ case "RtcCallLogExtensibleMessageAdminText":
221
+ return {
222
+ event: event.event,
223
+ is_video_call: event.is_video_call,
224
+ server_info_data: event.server_info_data
225
+ };
226
+ case "GroupPollExtensibleMessageAdminText":
227
+ return {
228
+ event_type: event.event_type,
229
+ total_count: event.total_count,
230
+ question: event.question
231
+ };
232
+ case "AcceptPendingThreadExtensibleMessageAdminText":
233
+ return {
234
+ accepter_id: event.accepter_id,
235
+ requester_id: event.requester_id
236
+ };
237
+ case "ConfirmFriendRequestExtensibleMessageAdminText":
238
+ return {
239
+ friend_request_recipient: event.friend_request_recipient,
240
+ friend_request_sender: event.friend_request_sender
241
+ };
242
+ case "AddContactExtensibleMessageAdminText":
243
+ return {
244
+ contact_added_id: event.contact_added_id,
245
+ contact_adder_id: event.contact_adder_id
246
+ };
247
+ case "AdExtensibleMessageAdminText":
248
+ return {
249
+ ad_client_token: event.ad_client_token,
250
+ ad_id: event.ad_id,
251
+ ad_preferences_link: event.ad_preferences_link,
252
+ ad_properties: event.ad_properties
253
+ };
254
+ // never data
255
+ case "ParticipantJoinedGroupCallExtensibleMessageAdminText":
256
+ case "ThreadEphemeralTtlModeExtensibleMessageAdminText":
257
+ case "StartedSharingVideoExtensibleMessageAdminText":
258
+ case "LightweightEventCreateExtensibleMessageAdminText":
259
+ case "LightweightEventNotifyExtensibleMessageAdminText":
260
+ case "LightweightEventNotifyBeforeEventExtensibleMessageAdminText":
261
+ case "LightweightEventUpdateTitleExtensibleMessageAdminText":
262
+ case "LightweightEventUpdateTimeExtensibleMessageAdminText":
263
+ case "LightweightEventUpdateLocationExtensibleMessageAdminText":
264
+ case "LightweightEventDeleteExtensibleMessageAdminText":
265
+ return {};
266
+ default:
267
+ return { error: "Don't know what to with event data type " + event.__typename };
268
+ }
269
+ }
270
+
271
+ function formatMessagesGraphQLResponse(data) {
272
+ var messageThread = data.o0.data.message_thread;
273
+ var threadID = messageThread.thread_key.thread_fbid ? messageThread.thread_key.thread_fbid : messageThread.thread_key.other_user_id;
274
+
275
+ var messages = messageThread.messages.nodes.map(function (d) {
276
+ switch (d.__typename) {
277
+ case "UserMessage":
278
+ // Give priority to stickers. They're seen as normal messages but we've
279
+ // been considering them as attachments.
280
+ var maybeStickerAttachment;
281
+ if (d.sticker) {
282
+ maybeStickerAttachment = [
283
+ {
284
+ type: "sticker",
285
+ ID: d.sticker.id,
286
+ url: d.sticker.url,
287
+
288
+ packID: d.sticker.pack.id,
289
+ spriteUrl: d.sticker.sprite_image,
290
+ spriteUrl2x: d.sticker.sprite_image_2x,
291
+ width: d.sticker.width,
292
+ height: d.sticker.height,
293
+
294
+ caption: d.snippet, // Not sure what the heck caption was.
295
+ description: d.sticker.label, // Not sure about this one either.
296
+
297
+ frameCount: d.sticker.frame_count,
298
+ frameRate: d.sticker.frame_rate,
299
+ framesPerRow: d.sticker.frames_per_row,
300
+ framesPerCol: d.sticker.frames_per_col,
301
+
302
+ stickerID: d.sticker.id, // @Legacy
303
+ spriteURI: d.sticker.sprite_image, // @Legacy
304
+ spriteURI2x: d.sticker.sprite_image_2x // @Legacy
305
+ }
306
+ ];
307
+ }
308
+
309
+ var mentionsObj = {};
310
+ if (d.message !== null) {
311
+ d.message.ranges.forEach(e => mentionsObj[e.entity.id] = d.message.text.substr(e.offset, e.length));
312
+ }
313
+
314
+ return {
315
+ type: "message",
316
+ attachments: maybeStickerAttachment
317
+ ? maybeStickerAttachment
318
+ : d.blob_attachments && d.blob_attachments.length > 0
319
+ ? d.blob_attachments.map(formatAttachmentsGraphQLResponse)
320
+ : d.extensible_attachment
321
+ ? [formatExtensibleAttachment(d.extensible_attachment)]
322
+ : [],
323
+ body: d.message !== null ? d.message.text : '',
324
+ isGroup: messageThread.thread_type === "GROUP",
325
+ messageID: d.message_id,
326
+ senderID: d.message_sender.id,
327
+ threadID: threadID,
328
+ timestamp: d.timestamp_precise,
329
+
330
+ mentions: mentionsObj,
331
+ isUnread: d.unread,
332
+
333
+ // New
334
+ messageReactions: d.message_reactions ? d.message_reactions.map(formatReactionsGraphQL) : null,
335
+ isSponsored: d.is_sponsored,
336
+ snippet: d.snippet
337
+ };
338
+ case "ThreadNameMessage":
339
+ return {
340
+ type: "event",
341
+ messageID: d.message_id,
342
+ threadID: threadID,
343
+ isGroup: messageThread.thread_type === "GROUP",
344
+ senderID: d.message_sender.id,
345
+ timestamp: d.timestamp_precise,
346
+ eventType: "change_thread_name",
347
+ snippet: d.snippet,
348
+ eventData: { threadName: d.thread_name },
349
+
350
+ // @Legacy
351
+ author: d.message_sender.id,
352
+ logMessageType: "log:thread-name",
353
+ logMessageData: { name: d.thread_name }
354
+ };
355
+ case "ThreadImageMessage":
356
+ return {
357
+ type: "event",
358
+ messageID: d.message_id,
359
+ threadID: threadID,
360
+ isGroup: messageThread.thread_type === "GROUP",
361
+ senderID: d.message_sender.id,
362
+ timestamp: d.timestamp_precise,
363
+ eventType: "change_thread_image",
364
+ snippet: d.snippet,
365
+ eventData: d.image_with_metadata == null
366
+ ? {} /* removed image */
367
+ : {
368
+ /* image added */
369
+ threadImage: {
370
+ attachmentID: d.image_with_metadata.legacy_attachment_id,
371
+ width: d.image_with_metadata.original_dimensions.x,
372
+ height: d.image_with_metadata.original_dimensions.y,
373
+ url: d.image_with_metadata.preview.uri
374
+ }
375
+ },
376
+
377
+ // @Legacy
378
+ logMessageType: "log:thread-icon",
379
+ logMessageData: { thread_icon: d.image_with_metadata ? d.image_with_metadata.preview.uri : null }
380
+ };
381
+ case "ParticipantLeftMessage":
382
+ return {
383
+ type: "event",
384
+ messageID: d.message_id,
385
+ threadID: threadID,
386
+ isGroup: messageThread.thread_type === "GROUP",
387
+ senderID: d.message_sender.id,
388
+ timestamp: d.timestamp_precise,
389
+ eventType: "remove_participants",
390
+ snippet: d.snippet,
391
+ eventData: {
392
+ // Array of IDs.
393
+ participantsRemoved: d.participants_removed.map(function (p) {
394
+ return p.id;
395
+ })
396
+ },
397
+
398
+ // @Legacy
399
+ logMessageType: "log:unsubscribe",
400
+ logMessageData: {
401
+ leftParticipantFbId: d.participants_removed.map(function (p) {
402
+ return p.id;
403
+ })
404
+ }
405
+ };
406
+ case "ParticipantsAddedMessage":
407
+ return {
408
+ type: "event",
409
+ messageID: d.message_id,
410
+ threadID: threadID,
411
+ isGroup: messageThread.thread_type === "GROUP",
412
+ senderID: d.message_sender.id,
413
+ timestamp: d.timestamp_precise,
414
+ eventType: "add_participants",
415
+ snippet: d.snippet,
416
+ eventData: {
417
+ // Array of IDs.
418
+ participantsAdded: d.participants_added.map(function (p) {
419
+ return p.id;
420
+ })
421
+ },
422
+
423
+ // @Legacy
424
+ logMessageType: "log:subscribe",
425
+ logMessageData: {
426
+ addedParticipants: d.participants_added.map(function (p) {
427
+ return p.id;
428
+ })
429
+ }
430
+ };
431
+ case "VideoCallMessage":
432
+ return {
433
+ type: "event",
434
+ messageID: d.message_id,
435
+ threadID: threadID,
436
+ isGroup: messageThread.thread_type === "GROUP",
437
+ senderID: d.message_sender.id,
438
+ timestamp: d.timestamp_precise,
439
+ eventType: "video_call",
440
+ snippet: d.snippet,
441
+
442
+ // @Legacy
443
+ logMessageType: "other"
444
+ };
445
+ case "VoiceCallMessage":
446
+ return {
447
+ type: "event",
448
+ messageID: d.message_id,
449
+ threadID: threadID,
450
+ isGroup: messageThread.thread_type === "GROUP",
451
+ senderID: d.message_sender.id,
452
+ timestamp: d.timestamp_precise,
453
+ eventType: "voice_call",
454
+ snippet: d.snippet,
455
+
456
+ // @Legacy
457
+ logMessageType: "other"
458
+ };
459
+ case "GenericAdminTextMessage":
460
+ return {
461
+ type: "event",
462
+ messageID: d.message_id,
463
+ threadID: threadID,
464
+ isGroup: messageThread.thread_type === "GROUP",
465
+ senderID: d.message_sender.id,
466
+ timestamp: d.timestamp_precise,
467
+ snippet: d.snippet,
468
+ eventType: d.extensible_message_admin_text_type.toLowerCase(),
469
+ eventData: formatEventData(d.extensible_message_admin_text),
470
+
471
+ // @Legacy
472
+ logMessageType: utils.getAdminTextMessageType(
473
+ d.extensible_message_admin_text_type
474
+ ),
475
+ logMessageData: d.extensible_message_admin_text // Maybe different?
476
+ };
477
+ default:
478
+ return { error: "Don't know about message type " + d.__typename };
479
+ }
480
+ });
481
+ return messages;
482
+ }
483
+
484
+ module.exports = function (defaultFuncs, api, ctx) {
485
+ return function getThreadHistoryGraphQL(threadID, amount, timestamp, callback) {
486
+ var resolveFunc = function () { };
487
+ var rejectFunc = function () { };
488
+ var returnPromise = new Promise(function (resolve, reject) {
489
+ resolveFunc = resolve;
490
+ rejectFunc = reject;
491
+ });
492
+
493
+ if (!callback) {
494
+ callback = function (err, data) {
495
+ if (err) return rejectFunc(err);
496
+ resolveFunc(data);
497
+ };
498
+ }
499
+
500
+ // `queries` has to be a string. I couldn't tell from the dev console. This
501
+ // took me a really long time to figure out. I deserve a cookie for this.
502
+ var form = {
503
+ "av": ctx.globalOptions.pageID,
504
+ queries: JSON.stringify({
505
+ o0: {
506
+ // This doc_id was valid on February 2nd 2017.
507
+ doc_id: "1498317363570230",
508
+ query_params: {
509
+ id: threadID,
510
+ message_limit: amount,
511
+ load_messages: 1,
512
+ load_read_receipts: false,
513
+ before: timestamp
514
+ }
515
+ }
516
+ })
517
+ };
518
+
519
+ defaultFuncs
520
+ .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
521
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
522
+ .then(function (resData) {
523
+ if (resData.error) throw resData;
524
+ // This returns us an array of things. The last one is the success /
525
+ // failure one.
526
+ // @TODO What do we do in this case?
527
+ if (resData[resData.length - 1].error_results !== 0) throw new Error("There was an error_result.");
528
+ callback(null, formatMessagesGraphQLResponse(resData[0]));
529
+ })
530
+ .catch(function (err) {
531
+ log.error("getThreadHistoryGraphQL", "Lỗi getThreadHistoryGraphQL Có Thể Do Bạn Spam Quá Nhiều, Hãy Thử Lại !");
532
+ return callback(err);
533
+ });
534
+
535
+ return returnPromise;
536
+ };
537
+ };