@areumtecnologia/unitychat 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.
Files changed (855) hide show
  1. package/README.md +407 -0
  2. package/data/sessions/session1/app-state-sync-key-AAAAAN3d.json +1 -0
  3. package/data/sessions/session1/app-state-sync-key-AAAAAN3e.json +1 -0
  4. package/data/sessions/session1/app-state-sync-key-AAAAAN3f.json +1 -0
  5. package/data/sessions/session1/app-state-sync-key-AAAAAN3g.json +1 -0
  6. package/data/sessions/session1/app-state-sync-key-AAAAAN3h.json +1 -0
  7. package/data/sessions/session1/app-state-sync-key-AAAAAN3i.json +1 -0
  8. package/data/sessions/session1/app-state-sync-key-AAAAAN3j.json +1 -0
  9. package/data/sessions/session1/app-state-sync-key-AAAAAN3k.json +1 -0
  10. package/data/sessions/session1/app-state-sync-key-AAAAAN3l.json +1 -0
  11. package/data/sessions/session1/app-state-sync-key-AAAAAN3m.json +1 -0
  12. package/data/sessions/session1/app-state-sync-key-AAAAAN3n.json +1 -0
  13. package/data/sessions/session1/app-state-sync-key-AAAAAN3o.json +1 -0
  14. package/data/sessions/session1/app-state-sync-key-AAAAAN3p.json +1 -0
  15. package/data/sessions/session1/app-state-sync-key-AAAAAN3q.json +1 -0
  16. package/data/sessions/session1/app-state-sync-key-AAAAAN3r.json +1 -0
  17. package/data/sessions/session1/app-state-sync-key-AAAAAN3s.json +1 -0
  18. package/data/sessions/session1/app-state-sync-key-AAAAAN3t.json +1 -0
  19. package/data/sessions/session1/app-state-sync-key-AAAAAN3u.json +1 -0
  20. package/data/sessions/session1/app-state-sync-version-regular_low.json +1 -0
  21. package/data/sessions/session1/creds.json +1 -0
  22. package/data/sessions/session1/device-list-559181648646.json +1 -0
  23. package/data/sessions/session1/lid-mapping-275801408819393_reverse.json +1 -0
  24. package/data/sessions/session1/lid-mapping-559181648646.json +1 -0
  25. package/data/sessions/session1/pre-key-1.json +1 -0
  26. package/data/sessions/session1/pre-key-10.json +1 -0
  27. package/data/sessions/session1/pre-key-100.json +1 -0
  28. package/data/sessions/session1/pre-key-101.json +1 -0
  29. package/data/sessions/session1/pre-key-102.json +1 -0
  30. package/data/sessions/session1/pre-key-103.json +1 -0
  31. package/data/sessions/session1/pre-key-104.json +1 -0
  32. package/data/sessions/session1/pre-key-105.json +1 -0
  33. package/data/sessions/session1/pre-key-106.json +1 -0
  34. package/data/sessions/session1/pre-key-107.json +1 -0
  35. package/data/sessions/session1/pre-key-108.json +1 -0
  36. package/data/sessions/session1/pre-key-109.json +1 -0
  37. package/data/sessions/session1/pre-key-11.json +1 -0
  38. package/data/sessions/session1/pre-key-110.json +1 -0
  39. package/data/sessions/session1/pre-key-111.json +1 -0
  40. package/data/sessions/session1/pre-key-112.json +1 -0
  41. package/data/sessions/session1/pre-key-113.json +1 -0
  42. package/data/sessions/session1/pre-key-114.json +1 -0
  43. package/data/sessions/session1/pre-key-115.json +1 -0
  44. package/data/sessions/session1/pre-key-116.json +1 -0
  45. package/data/sessions/session1/pre-key-117.json +1 -0
  46. package/data/sessions/session1/pre-key-118.json +1 -0
  47. package/data/sessions/session1/pre-key-119.json +1 -0
  48. package/data/sessions/session1/pre-key-12.json +1 -0
  49. package/data/sessions/session1/pre-key-120.json +1 -0
  50. package/data/sessions/session1/pre-key-121.json +1 -0
  51. package/data/sessions/session1/pre-key-122.json +1 -0
  52. package/data/sessions/session1/pre-key-123.json +1 -0
  53. package/data/sessions/session1/pre-key-124.json +1 -0
  54. package/data/sessions/session1/pre-key-125.json +1 -0
  55. package/data/sessions/session1/pre-key-126.json +1 -0
  56. package/data/sessions/session1/pre-key-127.json +1 -0
  57. package/data/sessions/session1/pre-key-128.json +1 -0
  58. package/data/sessions/session1/pre-key-129.json +1 -0
  59. package/data/sessions/session1/pre-key-13.json +1 -0
  60. package/data/sessions/session1/pre-key-130.json +1 -0
  61. package/data/sessions/session1/pre-key-131.json +1 -0
  62. package/data/sessions/session1/pre-key-132.json +1 -0
  63. package/data/sessions/session1/pre-key-133.json +1 -0
  64. package/data/sessions/session1/pre-key-134.json +1 -0
  65. package/data/sessions/session1/pre-key-135.json +1 -0
  66. package/data/sessions/session1/pre-key-136.json +1 -0
  67. package/data/sessions/session1/pre-key-137.json +1 -0
  68. package/data/sessions/session1/pre-key-138.json +1 -0
  69. package/data/sessions/session1/pre-key-139.json +1 -0
  70. package/data/sessions/session1/pre-key-14.json +1 -0
  71. package/data/sessions/session1/pre-key-140.json +1 -0
  72. package/data/sessions/session1/pre-key-141.json +1 -0
  73. package/data/sessions/session1/pre-key-142.json +1 -0
  74. package/data/sessions/session1/pre-key-143.json +1 -0
  75. package/data/sessions/session1/pre-key-144.json +1 -0
  76. package/data/sessions/session1/pre-key-145.json +1 -0
  77. package/data/sessions/session1/pre-key-146.json +1 -0
  78. package/data/sessions/session1/pre-key-147.json +1 -0
  79. package/data/sessions/session1/pre-key-148.json +1 -0
  80. package/data/sessions/session1/pre-key-149.json +1 -0
  81. package/data/sessions/session1/pre-key-15.json +1 -0
  82. package/data/sessions/session1/pre-key-150.json +1 -0
  83. package/data/sessions/session1/pre-key-151.json +1 -0
  84. package/data/sessions/session1/pre-key-152.json +1 -0
  85. package/data/sessions/session1/pre-key-153.json +1 -0
  86. package/data/sessions/session1/pre-key-154.json +1 -0
  87. package/data/sessions/session1/pre-key-155.json +1 -0
  88. package/data/sessions/session1/pre-key-156.json +1 -0
  89. package/data/sessions/session1/pre-key-157.json +1 -0
  90. package/data/sessions/session1/pre-key-158.json +1 -0
  91. package/data/sessions/session1/pre-key-159.json +1 -0
  92. package/data/sessions/session1/pre-key-16.json +1 -0
  93. package/data/sessions/session1/pre-key-160.json +1 -0
  94. package/data/sessions/session1/pre-key-161.json +1 -0
  95. package/data/sessions/session1/pre-key-162.json +1 -0
  96. package/data/sessions/session1/pre-key-163.json +1 -0
  97. package/data/sessions/session1/pre-key-164.json +1 -0
  98. package/data/sessions/session1/pre-key-165.json +1 -0
  99. package/data/sessions/session1/pre-key-166.json +1 -0
  100. package/data/sessions/session1/pre-key-167.json +1 -0
  101. package/data/sessions/session1/pre-key-168.json +1 -0
  102. package/data/sessions/session1/pre-key-169.json +1 -0
  103. package/data/sessions/session1/pre-key-17.json +1 -0
  104. package/data/sessions/session1/pre-key-170.json +1 -0
  105. package/data/sessions/session1/pre-key-171.json +1 -0
  106. package/data/sessions/session1/pre-key-172.json +1 -0
  107. package/data/sessions/session1/pre-key-173.json +1 -0
  108. package/data/sessions/session1/pre-key-174.json +1 -0
  109. package/data/sessions/session1/pre-key-175.json +1 -0
  110. package/data/sessions/session1/pre-key-176.json +1 -0
  111. package/data/sessions/session1/pre-key-177.json +1 -0
  112. package/data/sessions/session1/pre-key-178.json +1 -0
  113. package/data/sessions/session1/pre-key-179.json +1 -0
  114. package/data/sessions/session1/pre-key-18.json +1 -0
  115. package/data/sessions/session1/pre-key-180.json +1 -0
  116. package/data/sessions/session1/pre-key-181.json +1 -0
  117. package/data/sessions/session1/pre-key-182.json +1 -0
  118. package/data/sessions/session1/pre-key-183.json +1 -0
  119. package/data/sessions/session1/pre-key-184.json +1 -0
  120. package/data/sessions/session1/pre-key-185.json +1 -0
  121. package/data/sessions/session1/pre-key-186.json +1 -0
  122. package/data/sessions/session1/pre-key-187.json +1 -0
  123. package/data/sessions/session1/pre-key-188.json +1 -0
  124. package/data/sessions/session1/pre-key-189.json +1 -0
  125. package/data/sessions/session1/pre-key-19.json +1 -0
  126. package/data/sessions/session1/pre-key-190.json +1 -0
  127. package/data/sessions/session1/pre-key-191.json +1 -0
  128. package/data/sessions/session1/pre-key-192.json +1 -0
  129. package/data/sessions/session1/pre-key-193.json +1 -0
  130. package/data/sessions/session1/pre-key-194.json +1 -0
  131. package/data/sessions/session1/pre-key-195.json +1 -0
  132. package/data/sessions/session1/pre-key-196.json +1 -0
  133. package/data/sessions/session1/pre-key-197.json +1 -0
  134. package/data/sessions/session1/pre-key-198.json +1 -0
  135. package/data/sessions/session1/pre-key-199.json +1 -0
  136. package/data/sessions/session1/pre-key-2.json +1 -0
  137. package/data/sessions/session1/pre-key-20.json +1 -0
  138. package/data/sessions/session1/pre-key-200.json +1 -0
  139. package/data/sessions/session1/pre-key-201.json +1 -0
  140. package/data/sessions/session1/pre-key-202.json +1 -0
  141. package/data/sessions/session1/pre-key-203.json +1 -0
  142. package/data/sessions/session1/pre-key-204.json +1 -0
  143. package/data/sessions/session1/pre-key-205.json +1 -0
  144. package/data/sessions/session1/pre-key-206.json +1 -0
  145. package/data/sessions/session1/pre-key-207.json +1 -0
  146. package/data/sessions/session1/pre-key-208.json +1 -0
  147. package/data/sessions/session1/pre-key-209.json +1 -0
  148. package/data/sessions/session1/pre-key-21.json +1 -0
  149. package/data/sessions/session1/pre-key-210.json +1 -0
  150. package/data/sessions/session1/pre-key-211.json +1 -0
  151. package/data/sessions/session1/pre-key-212.json +1 -0
  152. package/data/sessions/session1/pre-key-213.json +1 -0
  153. package/data/sessions/session1/pre-key-214.json +1 -0
  154. package/data/sessions/session1/pre-key-215.json +1 -0
  155. package/data/sessions/session1/pre-key-216.json +1 -0
  156. package/data/sessions/session1/pre-key-217.json +1 -0
  157. package/data/sessions/session1/pre-key-218.json +1 -0
  158. package/data/sessions/session1/pre-key-219.json +1 -0
  159. package/data/sessions/session1/pre-key-22.json +1 -0
  160. package/data/sessions/session1/pre-key-220.json +1 -0
  161. package/data/sessions/session1/pre-key-221.json +1 -0
  162. package/data/sessions/session1/pre-key-222.json +1 -0
  163. package/data/sessions/session1/pre-key-223.json +1 -0
  164. package/data/sessions/session1/pre-key-224.json +1 -0
  165. package/data/sessions/session1/pre-key-225.json +1 -0
  166. package/data/sessions/session1/pre-key-226.json +1 -0
  167. package/data/sessions/session1/pre-key-227.json +1 -0
  168. package/data/sessions/session1/pre-key-228.json +1 -0
  169. package/data/sessions/session1/pre-key-229.json +1 -0
  170. package/data/sessions/session1/pre-key-23.json +1 -0
  171. package/data/sessions/session1/pre-key-230.json +1 -0
  172. package/data/sessions/session1/pre-key-231.json +1 -0
  173. package/data/sessions/session1/pre-key-232.json +1 -0
  174. package/data/sessions/session1/pre-key-233.json +1 -0
  175. package/data/sessions/session1/pre-key-234.json +1 -0
  176. package/data/sessions/session1/pre-key-235.json +1 -0
  177. package/data/sessions/session1/pre-key-236.json +1 -0
  178. package/data/sessions/session1/pre-key-237.json +1 -0
  179. package/data/sessions/session1/pre-key-238.json +1 -0
  180. package/data/sessions/session1/pre-key-239.json +1 -0
  181. package/data/sessions/session1/pre-key-24.json +1 -0
  182. package/data/sessions/session1/pre-key-240.json +1 -0
  183. package/data/sessions/session1/pre-key-241.json +1 -0
  184. package/data/sessions/session1/pre-key-242.json +1 -0
  185. package/data/sessions/session1/pre-key-243.json +1 -0
  186. package/data/sessions/session1/pre-key-244.json +1 -0
  187. package/data/sessions/session1/pre-key-245.json +1 -0
  188. package/data/sessions/session1/pre-key-246.json +1 -0
  189. package/data/sessions/session1/pre-key-247.json +1 -0
  190. package/data/sessions/session1/pre-key-248.json +1 -0
  191. package/data/sessions/session1/pre-key-249.json +1 -0
  192. package/data/sessions/session1/pre-key-25.json +1 -0
  193. package/data/sessions/session1/pre-key-250.json +1 -0
  194. package/data/sessions/session1/pre-key-251.json +1 -0
  195. package/data/sessions/session1/pre-key-252.json +1 -0
  196. package/data/sessions/session1/pre-key-253.json +1 -0
  197. package/data/sessions/session1/pre-key-254.json +1 -0
  198. package/data/sessions/session1/pre-key-255.json +1 -0
  199. package/data/sessions/session1/pre-key-256.json +1 -0
  200. package/data/sessions/session1/pre-key-257.json +1 -0
  201. package/data/sessions/session1/pre-key-258.json +1 -0
  202. package/data/sessions/session1/pre-key-259.json +1 -0
  203. package/data/sessions/session1/pre-key-26.json +1 -0
  204. package/data/sessions/session1/pre-key-260.json +1 -0
  205. package/data/sessions/session1/pre-key-261.json +1 -0
  206. package/data/sessions/session1/pre-key-262.json +1 -0
  207. package/data/sessions/session1/pre-key-263.json +1 -0
  208. package/data/sessions/session1/pre-key-264.json +1 -0
  209. package/data/sessions/session1/pre-key-265.json +1 -0
  210. package/data/sessions/session1/pre-key-266.json +1 -0
  211. package/data/sessions/session1/pre-key-267.json +1 -0
  212. package/data/sessions/session1/pre-key-268.json +1 -0
  213. package/data/sessions/session1/pre-key-269.json +1 -0
  214. package/data/sessions/session1/pre-key-27.json +1 -0
  215. package/data/sessions/session1/pre-key-270.json +1 -0
  216. package/data/sessions/session1/pre-key-271.json +1 -0
  217. package/data/sessions/session1/pre-key-272.json +1 -0
  218. package/data/sessions/session1/pre-key-273.json +1 -0
  219. package/data/sessions/session1/pre-key-274.json +1 -0
  220. package/data/sessions/session1/pre-key-275.json +1 -0
  221. package/data/sessions/session1/pre-key-276.json +1 -0
  222. package/data/sessions/session1/pre-key-277.json +1 -0
  223. package/data/sessions/session1/pre-key-278.json +1 -0
  224. package/data/sessions/session1/pre-key-279.json +1 -0
  225. package/data/sessions/session1/pre-key-28.json +1 -0
  226. package/data/sessions/session1/pre-key-280.json +1 -0
  227. package/data/sessions/session1/pre-key-281.json +1 -0
  228. package/data/sessions/session1/pre-key-282.json +1 -0
  229. package/data/sessions/session1/pre-key-283.json +1 -0
  230. package/data/sessions/session1/pre-key-284.json +1 -0
  231. package/data/sessions/session1/pre-key-285.json +1 -0
  232. package/data/sessions/session1/pre-key-286.json +1 -0
  233. package/data/sessions/session1/pre-key-287.json +1 -0
  234. package/data/sessions/session1/pre-key-288.json +1 -0
  235. package/data/sessions/session1/pre-key-289.json +1 -0
  236. package/data/sessions/session1/pre-key-29.json +1 -0
  237. package/data/sessions/session1/pre-key-290.json +1 -0
  238. package/data/sessions/session1/pre-key-291.json +1 -0
  239. package/data/sessions/session1/pre-key-292.json +1 -0
  240. package/data/sessions/session1/pre-key-293.json +1 -0
  241. package/data/sessions/session1/pre-key-294.json +1 -0
  242. package/data/sessions/session1/pre-key-295.json +1 -0
  243. package/data/sessions/session1/pre-key-296.json +1 -0
  244. package/data/sessions/session1/pre-key-297.json +1 -0
  245. package/data/sessions/session1/pre-key-298.json +1 -0
  246. package/data/sessions/session1/pre-key-299.json +1 -0
  247. package/data/sessions/session1/pre-key-3.json +1 -0
  248. package/data/sessions/session1/pre-key-30.json +1 -0
  249. package/data/sessions/session1/pre-key-300.json +1 -0
  250. package/data/sessions/session1/pre-key-301.json +1 -0
  251. package/data/sessions/session1/pre-key-302.json +1 -0
  252. package/data/sessions/session1/pre-key-303.json +1 -0
  253. package/data/sessions/session1/pre-key-304.json +1 -0
  254. package/data/sessions/session1/pre-key-305.json +1 -0
  255. package/data/sessions/session1/pre-key-306.json +1 -0
  256. package/data/sessions/session1/pre-key-307.json +1 -0
  257. package/data/sessions/session1/pre-key-308.json +1 -0
  258. package/data/sessions/session1/pre-key-309.json +1 -0
  259. package/data/sessions/session1/pre-key-31.json +1 -0
  260. package/data/sessions/session1/pre-key-310.json +1 -0
  261. package/data/sessions/session1/pre-key-311.json +1 -0
  262. package/data/sessions/session1/pre-key-312.json +1 -0
  263. package/data/sessions/session1/pre-key-313.json +1 -0
  264. package/data/sessions/session1/pre-key-314.json +1 -0
  265. package/data/sessions/session1/pre-key-315.json +1 -0
  266. package/data/sessions/session1/pre-key-316.json +1 -0
  267. package/data/sessions/session1/pre-key-317.json +1 -0
  268. package/data/sessions/session1/pre-key-318.json +1 -0
  269. package/data/sessions/session1/pre-key-319.json +1 -0
  270. package/data/sessions/session1/pre-key-32.json +1 -0
  271. package/data/sessions/session1/pre-key-320.json +1 -0
  272. package/data/sessions/session1/pre-key-321.json +1 -0
  273. package/data/sessions/session1/pre-key-322.json +1 -0
  274. package/data/sessions/session1/pre-key-323.json +1 -0
  275. package/data/sessions/session1/pre-key-324.json +1 -0
  276. package/data/sessions/session1/pre-key-325.json +1 -0
  277. package/data/sessions/session1/pre-key-326.json +1 -0
  278. package/data/sessions/session1/pre-key-327.json +1 -0
  279. package/data/sessions/session1/pre-key-328.json +1 -0
  280. package/data/sessions/session1/pre-key-329.json +1 -0
  281. package/data/sessions/session1/pre-key-33.json +1 -0
  282. package/data/sessions/session1/pre-key-330.json +1 -0
  283. package/data/sessions/session1/pre-key-331.json +1 -0
  284. package/data/sessions/session1/pre-key-332.json +1 -0
  285. package/data/sessions/session1/pre-key-333.json +1 -0
  286. package/data/sessions/session1/pre-key-334.json +1 -0
  287. package/data/sessions/session1/pre-key-335.json +1 -0
  288. package/data/sessions/session1/pre-key-336.json +1 -0
  289. package/data/sessions/session1/pre-key-337.json +1 -0
  290. package/data/sessions/session1/pre-key-338.json +1 -0
  291. package/data/sessions/session1/pre-key-339.json +1 -0
  292. package/data/sessions/session1/pre-key-34.json +1 -0
  293. package/data/sessions/session1/pre-key-340.json +1 -0
  294. package/data/sessions/session1/pre-key-341.json +1 -0
  295. package/data/sessions/session1/pre-key-342.json +1 -0
  296. package/data/sessions/session1/pre-key-343.json +1 -0
  297. package/data/sessions/session1/pre-key-344.json +1 -0
  298. package/data/sessions/session1/pre-key-345.json +1 -0
  299. package/data/sessions/session1/pre-key-346.json +1 -0
  300. package/data/sessions/session1/pre-key-347.json +1 -0
  301. package/data/sessions/session1/pre-key-348.json +1 -0
  302. package/data/sessions/session1/pre-key-349.json +1 -0
  303. package/data/sessions/session1/pre-key-35.json +1 -0
  304. package/data/sessions/session1/pre-key-350.json +1 -0
  305. package/data/sessions/session1/pre-key-351.json +1 -0
  306. package/data/sessions/session1/pre-key-352.json +1 -0
  307. package/data/sessions/session1/pre-key-353.json +1 -0
  308. package/data/sessions/session1/pre-key-354.json +1 -0
  309. package/data/sessions/session1/pre-key-355.json +1 -0
  310. package/data/sessions/session1/pre-key-356.json +1 -0
  311. package/data/sessions/session1/pre-key-357.json +1 -0
  312. package/data/sessions/session1/pre-key-358.json +1 -0
  313. package/data/sessions/session1/pre-key-359.json +1 -0
  314. package/data/sessions/session1/pre-key-36.json +1 -0
  315. package/data/sessions/session1/pre-key-360.json +1 -0
  316. package/data/sessions/session1/pre-key-361.json +1 -0
  317. package/data/sessions/session1/pre-key-362.json +1 -0
  318. package/data/sessions/session1/pre-key-363.json +1 -0
  319. package/data/sessions/session1/pre-key-364.json +1 -0
  320. package/data/sessions/session1/pre-key-365.json +1 -0
  321. package/data/sessions/session1/pre-key-366.json +1 -0
  322. package/data/sessions/session1/pre-key-367.json +1 -0
  323. package/data/sessions/session1/pre-key-368.json +1 -0
  324. package/data/sessions/session1/pre-key-369.json +1 -0
  325. package/data/sessions/session1/pre-key-37.json +1 -0
  326. package/data/sessions/session1/pre-key-370.json +1 -0
  327. package/data/sessions/session1/pre-key-371.json +1 -0
  328. package/data/sessions/session1/pre-key-372.json +1 -0
  329. package/data/sessions/session1/pre-key-373.json +1 -0
  330. package/data/sessions/session1/pre-key-374.json +1 -0
  331. package/data/sessions/session1/pre-key-375.json +1 -0
  332. package/data/sessions/session1/pre-key-376.json +1 -0
  333. package/data/sessions/session1/pre-key-377.json +1 -0
  334. package/data/sessions/session1/pre-key-378.json +1 -0
  335. package/data/sessions/session1/pre-key-379.json +1 -0
  336. package/data/sessions/session1/pre-key-38.json +1 -0
  337. package/data/sessions/session1/pre-key-380.json +1 -0
  338. package/data/sessions/session1/pre-key-381.json +1 -0
  339. package/data/sessions/session1/pre-key-382.json +1 -0
  340. package/data/sessions/session1/pre-key-383.json +1 -0
  341. package/data/sessions/session1/pre-key-384.json +1 -0
  342. package/data/sessions/session1/pre-key-385.json +1 -0
  343. package/data/sessions/session1/pre-key-386.json +1 -0
  344. package/data/sessions/session1/pre-key-387.json +1 -0
  345. package/data/sessions/session1/pre-key-388.json +1 -0
  346. package/data/sessions/session1/pre-key-389.json +1 -0
  347. package/data/sessions/session1/pre-key-39.json +1 -0
  348. package/data/sessions/session1/pre-key-390.json +1 -0
  349. package/data/sessions/session1/pre-key-391.json +1 -0
  350. package/data/sessions/session1/pre-key-392.json +1 -0
  351. package/data/sessions/session1/pre-key-393.json +1 -0
  352. package/data/sessions/session1/pre-key-394.json +1 -0
  353. package/data/sessions/session1/pre-key-395.json +1 -0
  354. package/data/sessions/session1/pre-key-396.json +1 -0
  355. package/data/sessions/session1/pre-key-397.json +1 -0
  356. package/data/sessions/session1/pre-key-398.json +1 -0
  357. package/data/sessions/session1/pre-key-399.json +1 -0
  358. package/data/sessions/session1/pre-key-4.json +1 -0
  359. package/data/sessions/session1/pre-key-40.json +1 -0
  360. package/data/sessions/session1/pre-key-400.json +1 -0
  361. package/data/sessions/session1/pre-key-401.json +1 -0
  362. package/data/sessions/session1/pre-key-402.json +1 -0
  363. package/data/sessions/session1/pre-key-403.json +1 -0
  364. package/data/sessions/session1/pre-key-404.json +1 -0
  365. package/data/sessions/session1/pre-key-405.json +1 -0
  366. package/data/sessions/session1/pre-key-406.json +1 -0
  367. package/data/sessions/session1/pre-key-407.json +1 -0
  368. package/data/sessions/session1/pre-key-408.json +1 -0
  369. package/data/sessions/session1/pre-key-409.json +1 -0
  370. package/data/sessions/session1/pre-key-41.json +1 -0
  371. package/data/sessions/session1/pre-key-410.json +1 -0
  372. package/data/sessions/session1/pre-key-411.json +1 -0
  373. package/data/sessions/session1/pre-key-412.json +1 -0
  374. package/data/sessions/session1/pre-key-413.json +1 -0
  375. package/data/sessions/session1/pre-key-414.json +1 -0
  376. package/data/sessions/session1/pre-key-415.json +1 -0
  377. package/data/sessions/session1/pre-key-416.json +1 -0
  378. package/data/sessions/session1/pre-key-417.json +1 -0
  379. package/data/sessions/session1/pre-key-418.json +1 -0
  380. package/data/sessions/session1/pre-key-419.json +1 -0
  381. package/data/sessions/session1/pre-key-42.json +1 -0
  382. package/data/sessions/session1/pre-key-420.json +1 -0
  383. package/data/sessions/session1/pre-key-421.json +1 -0
  384. package/data/sessions/session1/pre-key-422.json +1 -0
  385. package/data/sessions/session1/pre-key-423.json +1 -0
  386. package/data/sessions/session1/pre-key-424.json +1 -0
  387. package/data/sessions/session1/pre-key-425.json +1 -0
  388. package/data/sessions/session1/pre-key-426.json +1 -0
  389. package/data/sessions/session1/pre-key-427.json +1 -0
  390. package/data/sessions/session1/pre-key-428.json +1 -0
  391. package/data/sessions/session1/pre-key-429.json +1 -0
  392. package/data/sessions/session1/pre-key-43.json +1 -0
  393. package/data/sessions/session1/pre-key-430.json +1 -0
  394. package/data/sessions/session1/pre-key-431.json +1 -0
  395. package/data/sessions/session1/pre-key-432.json +1 -0
  396. package/data/sessions/session1/pre-key-433.json +1 -0
  397. package/data/sessions/session1/pre-key-434.json +1 -0
  398. package/data/sessions/session1/pre-key-435.json +1 -0
  399. package/data/sessions/session1/pre-key-436.json +1 -0
  400. package/data/sessions/session1/pre-key-437.json +1 -0
  401. package/data/sessions/session1/pre-key-438.json +1 -0
  402. package/data/sessions/session1/pre-key-439.json +1 -0
  403. package/data/sessions/session1/pre-key-44.json +1 -0
  404. package/data/sessions/session1/pre-key-440.json +1 -0
  405. package/data/sessions/session1/pre-key-441.json +1 -0
  406. package/data/sessions/session1/pre-key-442.json +1 -0
  407. package/data/sessions/session1/pre-key-443.json +1 -0
  408. package/data/sessions/session1/pre-key-444.json +1 -0
  409. package/data/sessions/session1/pre-key-445.json +1 -0
  410. package/data/sessions/session1/pre-key-446.json +1 -0
  411. package/data/sessions/session1/pre-key-447.json +1 -0
  412. package/data/sessions/session1/pre-key-448.json +1 -0
  413. package/data/sessions/session1/pre-key-449.json +1 -0
  414. package/data/sessions/session1/pre-key-45.json +1 -0
  415. package/data/sessions/session1/pre-key-450.json +1 -0
  416. package/data/sessions/session1/pre-key-451.json +1 -0
  417. package/data/sessions/session1/pre-key-452.json +1 -0
  418. package/data/sessions/session1/pre-key-453.json +1 -0
  419. package/data/sessions/session1/pre-key-454.json +1 -0
  420. package/data/sessions/session1/pre-key-455.json +1 -0
  421. package/data/sessions/session1/pre-key-456.json +1 -0
  422. package/data/sessions/session1/pre-key-457.json +1 -0
  423. package/data/sessions/session1/pre-key-458.json +1 -0
  424. package/data/sessions/session1/pre-key-459.json +1 -0
  425. package/data/sessions/session1/pre-key-46.json +1 -0
  426. package/data/sessions/session1/pre-key-460.json +1 -0
  427. package/data/sessions/session1/pre-key-461.json +1 -0
  428. package/data/sessions/session1/pre-key-462.json +1 -0
  429. package/data/sessions/session1/pre-key-463.json +1 -0
  430. package/data/sessions/session1/pre-key-464.json +1 -0
  431. package/data/sessions/session1/pre-key-465.json +1 -0
  432. package/data/sessions/session1/pre-key-466.json +1 -0
  433. package/data/sessions/session1/pre-key-467.json +1 -0
  434. package/data/sessions/session1/pre-key-468.json +1 -0
  435. package/data/sessions/session1/pre-key-469.json +1 -0
  436. package/data/sessions/session1/pre-key-47.json +1 -0
  437. package/data/sessions/session1/pre-key-470.json +1 -0
  438. package/data/sessions/session1/pre-key-471.json +1 -0
  439. package/data/sessions/session1/pre-key-472.json +1 -0
  440. package/data/sessions/session1/pre-key-473.json +1 -0
  441. package/data/sessions/session1/pre-key-474.json +1 -0
  442. package/data/sessions/session1/pre-key-475.json +1 -0
  443. package/data/sessions/session1/pre-key-476.json +1 -0
  444. package/data/sessions/session1/pre-key-477.json +1 -0
  445. package/data/sessions/session1/pre-key-478.json +1 -0
  446. package/data/sessions/session1/pre-key-479.json +1 -0
  447. package/data/sessions/session1/pre-key-48.json +1 -0
  448. package/data/sessions/session1/pre-key-480.json +1 -0
  449. package/data/sessions/session1/pre-key-481.json +1 -0
  450. package/data/sessions/session1/pre-key-482.json +1 -0
  451. package/data/sessions/session1/pre-key-483.json +1 -0
  452. package/data/sessions/session1/pre-key-484.json +1 -0
  453. package/data/sessions/session1/pre-key-485.json +1 -0
  454. package/data/sessions/session1/pre-key-486.json +1 -0
  455. package/data/sessions/session1/pre-key-487.json +1 -0
  456. package/data/sessions/session1/pre-key-488.json +1 -0
  457. package/data/sessions/session1/pre-key-489.json +1 -0
  458. package/data/sessions/session1/pre-key-49.json +1 -0
  459. package/data/sessions/session1/pre-key-490.json +1 -0
  460. package/data/sessions/session1/pre-key-491.json +1 -0
  461. package/data/sessions/session1/pre-key-492.json +1 -0
  462. package/data/sessions/session1/pre-key-493.json +1 -0
  463. package/data/sessions/session1/pre-key-494.json +1 -0
  464. package/data/sessions/session1/pre-key-495.json +1 -0
  465. package/data/sessions/session1/pre-key-496.json +1 -0
  466. package/data/sessions/session1/pre-key-497.json +1 -0
  467. package/data/sessions/session1/pre-key-498.json +1 -0
  468. package/data/sessions/session1/pre-key-499.json +1 -0
  469. package/data/sessions/session1/pre-key-5.json +1 -0
  470. package/data/sessions/session1/pre-key-50.json +1 -0
  471. package/data/sessions/session1/pre-key-500.json +1 -0
  472. package/data/sessions/session1/pre-key-501.json +1 -0
  473. package/data/sessions/session1/pre-key-502.json +1 -0
  474. package/data/sessions/session1/pre-key-503.json +1 -0
  475. package/data/sessions/session1/pre-key-504.json +1 -0
  476. package/data/sessions/session1/pre-key-505.json +1 -0
  477. package/data/sessions/session1/pre-key-506.json +1 -0
  478. package/data/sessions/session1/pre-key-507.json +1 -0
  479. package/data/sessions/session1/pre-key-508.json +1 -0
  480. package/data/sessions/session1/pre-key-509.json +1 -0
  481. package/data/sessions/session1/pre-key-51.json +1 -0
  482. package/data/sessions/session1/pre-key-510.json +1 -0
  483. package/data/sessions/session1/pre-key-511.json +1 -0
  484. package/data/sessions/session1/pre-key-512.json +1 -0
  485. package/data/sessions/session1/pre-key-513.json +1 -0
  486. package/data/sessions/session1/pre-key-514.json +1 -0
  487. package/data/sessions/session1/pre-key-515.json +1 -0
  488. package/data/sessions/session1/pre-key-516.json +1 -0
  489. package/data/sessions/session1/pre-key-517.json +1 -0
  490. package/data/sessions/session1/pre-key-518.json +1 -0
  491. package/data/sessions/session1/pre-key-519.json +1 -0
  492. package/data/sessions/session1/pre-key-52.json +1 -0
  493. package/data/sessions/session1/pre-key-520.json +1 -0
  494. package/data/sessions/session1/pre-key-521.json +1 -0
  495. package/data/sessions/session1/pre-key-522.json +1 -0
  496. package/data/sessions/session1/pre-key-523.json +1 -0
  497. package/data/sessions/session1/pre-key-524.json +1 -0
  498. package/data/sessions/session1/pre-key-525.json +1 -0
  499. package/data/sessions/session1/pre-key-526.json +1 -0
  500. package/data/sessions/session1/pre-key-527.json +1 -0
  501. package/data/sessions/session1/pre-key-528.json +1 -0
  502. package/data/sessions/session1/pre-key-529.json +1 -0
  503. package/data/sessions/session1/pre-key-53.json +1 -0
  504. package/data/sessions/session1/pre-key-530.json +1 -0
  505. package/data/sessions/session1/pre-key-531.json +1 -0
  506. package/data/sessions/session1/pre-key-532.json +1 -0
  507. package/data/sessions/session1/pre-key-533.json +1 -0
  508. package/data/sessions/session1/pre-key-534.json +1 -0
  509. package/data/sessions/session1/pre-key-535.json +1 -0
  510. package/data/sessions/session1/pre-key-536.json +1 -0
  511. package/data/sessions/session1/pre-key-537.json +1 -0
  512. package/data/sessions/session1/pre-key-538.json +1 -0
  513. package/data/sessions/session1/pre-key-539.json +1 -0
  514. package/data/sessions/session1/pre-key-54.json +1 -0
  515. package/data/sessions/session1/pre-key-540.json +1 -0
  516. package/data/sessions/session1/pre-key-541.json +1 -0
  517. package/data/sessions/session1/pre-key-542.json +1 -0
  518. package/data/sessions/session1/pre-key-543.json +1 -0
  519. package/data/sessions/session1/pre-key-544.json +1 -0
  520. package/data/sessions/session1/pre-key-545.json +1 -0
  521. package/data/sessions/session1/pre-key-546.json +1 -0
  522. package/data/sessions/session1/pre-key-547.json +1 -0
  523. package/data/sessions/session1/pre-key-548.json +1 -0
  524. package/data/sessions/session1/pre-key-549.json +1 -0
  525. package/data/sessions/session1/pre-key-55.json +1 -0
  526. package/data/sessions/session1/pre-key-550.json +1 -0
  527. package/data/sessions/session1/pre-key-551.json +1 -0
  528. package/data/sessions/session1/pre-key-552.json +1 -0
  529. package/data/sessions/session1/pre-key-553.json +1 -0
  530. package/data/sessions/session1/pre-key-554.json +1 -0
  531. package/data/sessions/session1/pre-key-555.json +1 -0
  532. package/data/sessions/session1/pre-key-556.json +1 -0
  533. package/data/sessions/session1/pre-key-557.json +1 -0
  534. package/data/sessions/session1/pre-key-558.json +1 -0
  535. package/data/sessions/session1/pre-key-559.json +1 -0
  536. package/data/sessions/session1/pre-key-56.json +1 -0
  537. package/data/sessions/session1/pre-key-560.json +1 -0
  538. package/data/sessions/session1/pre-key-561.json +1 -0
  539. package/data/sessions/session1/pre-key-562.json +1 -0
  540. package/data/sessions/session1/pre-key-563.json +1 -0
  541. package/data/sessions/session1/pre-key-564.json +1 -0
  542. package/data/sessions/session1/pre-key-565.json +1 -0
  543. package/data/sessions/session1/pre-key-566.json +1 -0
  544. package/data/sessions/session1/pre-key-567.json +1 -0
  545. package/data/sessions/session1/pre-key-568.json +1 -0
  546. package/data/sessions/session1/pre-key-569.json +1 -0
  547. package/data/sessions/session1/pre-key-57.json +1 -0
  548. package/data/sessions/session1/pre-key-570.json +1 -0
  549. package/data/sessions/session1/pre-key-571.json +1 -0
  550. package/data/sessions/session1/pre-key-572.json +1 -0
  551. package/data/sessions/session1/pre-key-573.json +1 -0
  552. package/data/sessions/session1/pre-key-574.json +1 -0
  553. package/data/sessions/session1/pre-key-575.json +1 -0
  554. package/data/sessions/session1/pre-key-576.json +1 -0
  555. package/data/sessions/session1/pre-key-577.json +1 -0
  556. package/data/sessions/session1/pre-key-578.json +1 -0
  557. package/data/sessions/session1/pre-key-579.json +1 -0
  558. package/data/sessions/session1/pre-key-58.json +1 -0
  559. package/data/sessions/session1/pre-key-580.json +1 -0
  560. package/data/sessions/session1/pre-key-581.json +1 -0
  561. package/data/sessions/session1/pre-key-582.json +1 -0
  562. package/data/sessions/session1/pre-key-583.json +1 -0
  563. package/data/sessions/session1/pre-key-584.json +1 -0
  564. package/data/sessions/session1/pre-key-585.json +1 -0
  565. package/data/sessions/session1/pre-key-586.json +1 -0
  566. package/data/sessions/session1/pre-key-587.json +1 -0
  567. package/data/sessions/session1/pre-key-588.json +1 -0
  568. package/data/sessions/session1/pre-key-589.json +1 -0
  569. package/data/sessions/session1/pre-key-59.json +1 -0
  570. package/data/sessions/session1/pre-key-590.json +1 -0
  571. package/data/sessions/session1/pre-key-591.json +1 -0
  572. package/data/sessions/session1/pre-key-592.json +1 -0
  573. package/data/sessions/session1/pre-key-593.json +1 -0
  574. package/data/sessions/session1/pre-key-594.json +1 -0
  575. package/data/sessions/session1/pre-key-595.json +1 -0
  576. package/data/sessions/session1/pre-key-596.json +1 -0
  577. package/data/sessions/session1/pre-key-597.json +1 -0
  578. package/data/sessions/session1/pre-key-598.json +1 -0
  579. package/data/sessions/session1/pre-key-599.json +1 -0
  580. package/data/sessions/session1/pre-key-6.json +1 -0
  581. package/data/sessions/session1/pre-key-60.json +1 -0
  582. package/data/sessions/session1/pre-key-600.json +1 -0
  583. package/data/sessions/session1/pre-key-601.json +1 -0
  584. package/data/sessions/session1/pre-key-602.json +1 -0
  585. package/data/sessions/session1/pre-key-603.json +1 -0
  586. package/data/sessions/session1/pre-key-604.json +1 -0
  587. package/data/sessions/session1/pre-key-605.json +1 -0
  588. package/data/sessions/session1/pre-key-606.json +1 -0
  589. package/data/sessions/session1/pre-key-607.json +1 -0
  590. package/data/sessions/session1/pre-key-608.json +1 -0
  591. package/data/sessions/session1/pre-key-609.json +1 -0
  592. package/data/sessions/session1/pre-key-61.json +1 -0
  593. package/data/sessions/session1/pre-key-610.json +1 -0
  594. package/data/sessions/session1/pre-key-611.json +1 -0
  595. package/data/sessions/session1/pre-key-612.json +1 -0
  596. package/data/sessions/session1/pre-key-613.json +1 -0
  597. package/data/sessions/session1/pre-key-614.json +1 -0
  598. package/data/sessions/session1/pre-key-615.json +1 -0
  599. package/data/sessions/session1/pre-key-616.json +1 -0
  600. package/data/sessions/session1/pre-key-617.json +1 -0
  601. package/data/sessions/session1/pre-key-618.json +1 -0
  602. package/data/sessions/session1/pre-key-619.json +1 -0
  603. package/data/sessions/session1/pre-key-62.json +1 -0
  604. package/data/sessions/session1/pre-key-620.json +1 -0
  605. package/data/sessions/session1/pre-key-621.json +1 -0
  606. package/data/sessions/session1/pre-key-622.json +1 -0
  607. package/data/sessions/session1/pre-key-623.json +1 -0
  608. package/data/sessions/session1/pre-key-624.json +1 -0
  609. package/data/sessions/session1/pre-key-625.json +1 -0
  610. package/data/sessions/session1/pre-key-626.json +1 -0
  611. package/data/sessions/session1/pre-key-627.json +1 -0
  612. package/data/sessions/session1/pre-key-628.json +1 -0
  613. package/data/sessions/session1/pre-key-629.json +1 -0
  614. package/data/sessions/session1/pre-key-63.json +1 -0
  615. package/data/sessions/session1/pre-key-630.json +1 -0
  616. package/data/sessions/session1/pre-key-631.json +1 -0
  617. package/data/sessions/session1/pre-key-632.json +1 -0
  618. package/data/sessions/session1/pre-key-633.json +1 -0
  619. package/data/sessions/session1/pre-key-634.json +1 -0
  620. package/data/sessions/session1/pre-key-635.json +1 -0
  621. package/data/sessions/session1/pre-key-636.json +1 -0
  622. package/data/sessions/session1/pre-key-637.json +1 -0
  623. package/data/sessions/session1/pre-key-638.json +1 -0
  624. package/data/sessions/session1/pre-key-639.json +1 -0
  625. package/data/sessions/session1/pre-key-64.json +1 -0
  626. package/data/sessions/session1/pre-key-640.json +1 -0
  627. package/data/sessions/session1/pre-key-641.json +1 -0
  628. package/data/sessions/session1/pre-key-642.json +1 -0
  629. package/data/sessions/session1/pre-key-643.json +1 -0
  630. package/data/sessions/session1/pre-key-644.json +1 -0
  631. package/data/sessions/session1/pre-key-645.json +1 -0
  632. package/data/sessions/session1/pre-key-646.json +1 -0
  633. package/data/sessions/session1/pre-key-647.json +1 -0
  634. package/data/sessions/session1/pre-key-648.json +1 -0
  635. package/data/sessions/session1/pre-key-649.json +1 -0
  636. package/data/sessions/session1/pre-key-65.json +1 -0
  637. package/data/sessions/session1/pre-key-650.json +1 -0
  638. package/data/sessions/session1/pre-key-651.json +1 -0
  639. package/data/sessions/session1/pre-key-652.json +1 -0
  640. package/data/sessions/session1/pre-key-653.json +1 -0
  641. package/data/sessions/session1/pre-key-654.json +1 -0
  642. package/data/sessions/session1/pre-key-655.json +1 -0
  643. package/data/sessions/session1/pre-key-656.json +1 -0
  644. package/data/sessions/session1/pre-key-657.json +1 -0
  645. package/data/sessions/session1/pre-key-658.json +1 -0
  646. package/data/sessions/session1/pre-key-659.json +1 -0
  647. package/data/sessions/session1/pre-key-66.json +1 -0
  648. package/data/sessions/session1/pre-key-660.json +1 -0
  649. package/data/sessions/session1/pre-key-661.json +1 -0
  650. package/data/sessions/session1/pre-key-662.json +1 -0
  651. package/data/sessions/session1/pre-key-663.json +1 -0
  652. package/data/sessions/session1/pre-key-664.json +1 -0
  653. package/data/sessions/session1/pre-key-665.json +1 -0
  654. package/data/sessions/session1/pre-key-666.json +1 -0
  655. package/data/sessions/session1/pre-key-667.json +1 -0
  656. package/data/sessions/session1/pre-key-668.json +1 -0
  657. package/data/sessions/session1/pre-key-669.json +1 -0
  658. package/data/sessions/session1/pre-key-67.json +1 -0
  659. package/data/sessions/session1/pre-key-670.json +1 -0
  660. package/data/sessions/session1/pre-key-671.json +1 -0
  661. package/data/sessions/session1/pre-key-672.json +1 -0
  662. package/data/sessions/session1/pre-key-673.json +1 -0
  663. package/data/sessions/session1/pre-key-674.json +1 -0
  664. package/data/sessions/session1/pre-key-675.json +1 -0
  665. package/data/sessions/session1/pre-key-676.json +1 -0
  666. package/data/sessions/session1/pre-key-677.json +1 -0
  667. package/data/sessions/session1/pre-key-678.json +1 -0
  668. package/data/sessions/session1/pre-key-679.json +1 -0
  669. package/data/sessions/session1/pre-key-68.json +1 -0
  670. package/data/sessions/session1/pre-key-680.json +1 -0
  671. package/data/sessions/session1/pre-key-681.json +1 -0
  672. package/data/sessions/session1/pre-key-682.json +1 -0
  673. package/data/sessions/session1/pre-key-683.json +1 -0
  674. package/data/sessions/session1/pre-key-684.json +1 -0
  675. package/data/sessions/session1/pre-key-685.json +1 -0
  676. package/data/sessions/session1/pre-key-686.json +1 -0
  677. package/data/sessions/session1/pre-key-687.json +1 -0
  678. package/data/sessions/session1/pre-key-688.json +1 -0
  679. package/data/sessions/session1/pre-key-689.json +1 -0
  680. package/data/sessions/session1/pre-key-69.json +1 -0
  681. package/data/sessions/session1/pre-key-690.json +1 -0
  682. package/data/sessions/session1/pre-key-691.json +1 -0
  683. package/data/sessions/session1/pre-key-692.json +1 -0
  684. package/data/sessions/session1/pre-key-693.json +1 -0
  685. package/data/sessions/session1/pre-key-694.json +1 -0
  686. package/data/sessions/session1/pre-key-695.json +1 -0
  687. package/data/sessions/session1/pre-key-696.json +1 -0
  688. package/data/sessions/session1/pre-key-697.json +1 -0
  689. package/data/sessions/session1/pre-key-698.json +1 -0
  690. package/data/sessions/session1/pre-key-699.json +1 -0
  691. package/data/sessions/session1/pre-key-7.json +1 -0
  692. package/data/sessions/session1/pre-key-70.json +1 -0
  693. package/data/sessions/session1/pre-key-700.json +1 -0
  694. package/data/sessions/session1/pre-key-701.json +1 -0
  695. package/data/sessions/session1/pre-key-702.json +1 -0
  696. package/data/sessions/session1/pre-key-703.json +1 -0
  697. package/data/sessions/session1/pre-key-704.json +1 -0
  698. package/data/sessions/session1/pre-key-705.json +1 -0
  699. package/data/sessions/session1/pre-key-706.json +1 -0
  700. package/data/sessions/session1/pre-key-707.json +1 -0
  701. package/data/sessions/session1/pre-key-708.json +1 -0
  702. package/data/sessions/session1/pre-key-709.json +1 -0
  703. package/data/sessions/session1/pre-key-71.json +1 -0
  704. package/data/sessions/session1/pre-key-710.json +1 -0
  705. package/data/sessions/session1/pre-key-711.json +1 -0
  706. package/data/sessions/session1/pre-key-712.json +1 -0
  707. package/data/sessions/session1/pre-key-713.json +1 -0
  708. package/data/sessions/session1/pre-key-714.json +1 -0
  709. package/data/sessions/session1/pre-key-715.json +1 -0
  710. package/data/sessions/session1/pre-key-716.json +1 -0
  711. package/data/sessions/session1/pre-key-717.json +1 -0
  712. package/data/sessions/session1/pre-key-718.json +1 -0
  713. package/data/sessions/session1/pre-key-719.json +1 -0
  714. package/data/sessions/session1/pre-key-72.json +1 -0
  715. package/data/sessions/session1/pre-key-720.json +1 -0
  716. package/data/sessions/session1/pre-key-721.json +1 -0
  717. package/data/sessions/session1/pre-key-722.json +1 -0
  718. package/data/sessions/session1/pre-key-723.json +1 -0
  719. package/data/sessions/session1/pre-key-724.json +1 -0
  720. package/data/sessions/session1/pre-key-725.json +1 -0
  721. package/data/sessions/session1/pre-key-726.json +1 -0
  722. package/data/sessions/session1/pre-key-727.json +1 -0
  723. package/data/sessions/session1/pre-key-728.json +1 -0
  724. package/data/sessions/session1/pre-key-729.json +1 -0
  725. package/data/sessions/session1/pre-key-73.json +1 -0
  726. package/data/sessions/session1/pre-key-730.json +1 -0
  727. package/data/sessions/session1/pre-key-731.json +1 -0
  728. package/data/sessions/session1/pre-key-732.json +1 -0
  729. package/data/sessions/session1/pre-key-733.json +1 -0
  730. package/data/sessions/session1/pre-key-734.json +1 -0
  731. package/data/sessions/session1/pre-key-735.json +1 -0
  732. package/data/sessions/session1/pre-key-736.json +1 -0
  733. package/data/sessions/session1/pre-key-737.json +1 -0
  734. package/data/sessions/session1/pre-key-738.json +1 -0
  735. package/data/sessions/session1/pre-key-739.json +1 -0
  736. package/data/sessions/session1/pre-key-74.json +1 -0
  737. package/data/sessions/session1/pre-key-740.json +1 -0
  738. package/data/sessions/session1/pre-key-741.json +1 -0
  739. package/data/sessions/session1/pre-key-742.json +1 -0
  740. package/data/sessions/session1/pre-key-743.json +1 -0
  741. package/data/sessions/session1/pre-key-744.json +1 -0
  742. package/data/sessions/session1/pre-key-745.json +1 -0
  743. package/data/sessions/session1/pre-key-746.json +1 -0
  744. package/data/sessions/session1/pre-key-747.json +1 -0
  745. package/data/sessions/session1/pre-key-748.json +1 -0
  746. package/data/sessions/session1/pre-key-749.json +1 -0
  747. package/data/sessions/session1/pre-key-75.json +1 -0
  748. package/data/sessions/session1/pre-key-750.json +1 -0
  749. package/data/sessions/session1/pre-key-751.json +1 -0
  750. package/data/sessions/session1/pre-key-752.json +1 -0
  751. package/data/sessions/session1/pre-key-753.json +1 -0
  752. package/data/sessions/session1/pre-key-754.json +1 -0
  753. package/data/sessions/session1/pre-key-755.json +1 -0
  754. package/data/sessions/session1/pre-key-756.json +1 -0
  755. package/data/sessions/session1/pre-key-757.json +1 -0
  756. package/data/sessions/session1/pre-key-758.json +1 -0
  757. package/data/sessions/session1/pre-key-759.json +1 -0
  758. package/data/sessions/session1/pre-key-76.json +1 -0
  759. package/data/sessions/session1/pre-key-760.json +1 -0
  760. package/data/sessions/session1/pre-key-761.json +1 -0
  761. package/data/sessions/session1/pre-key-762.json +1 -0
  762. package/data/sessions/session1/pre-key-763.json +1 -0
  763. package/data/sessions/session1/pre-key-764.json +1 -0
  764. package/data/sessions/session1/pre-key-765.json +1 -0
  765. package/data/sessions/session1/pre-key-766.json +1 -0
  766. package/data/sessions/session1/pre-key-767.json +1 -0
  767. package/data/sessions/session1/pre-key-768.json +1 -0
  768. package/data/sessions/session1/pre-key-769.json +1 -0
  769. package/data/sessions/session1/pre-key-77.json +1 -0
  770. package/data/sessions/session1/pre-key-770.json +1 -0
  771. package/data/sessions/session1/pre-key-771.json +1 -0
  772. package/data/sessions/session1/pre-key-772.json +1 -0
  773. package/data/sessions/session1/pre-key-773.json +1 -0
  774. package/data/sessions/session1/pre-key-774.json +1 -0
  775. package/data/sessions/session1/pre-key-775.json +1 -0
  776. package/data/sessions/session1/pre-key-776.json +1 -0
  777. package/data/sessions/session1/pre-key-777.json +1 -0
  778. package/data/sessions/session1/pre-key-778.json +1 -0
  779. package/data/sessions/session1/pre-key-779.json +1 -0
  780. package/data/sessions/session1/pre-key-78.json +1 -0
  781. package/data/sessions/session1/pre-key-780.json +1 -0
  782. package/data/sessions/session1/pre-key-781.json +1 -0
  783. package/data/sessions/session1/pre-key-782.json +1 -0
  784. package/data/sessions/session1/pre-key-783.json +1 -0
  785. package/data/sessions/session1/pre-key-784.json +1 -0
  786. package/data/sessions/session1/pre-key-785.json +1 -0
  787. package/data/sessions/session1/pre-key-786.json +1 -0
  788. package/data/sessions/session1/pre-key-787.json +1 -0
  789. package/data/sessions/session1/pre-key-788.json +1 -0
  790. package/data/sessions/session1/pre-key-789.json +1 -0
  791. package/data/sessions/session1/pre-key-79.json +1 -0
  792. package/data/sessions/session1/pre-key-790.json +1 -0
  793. package/data/sessions/session1/pre-key-791.json +1 -0
  794. package/data/sessions/session1/pre-key-792.json +1 -0
  795. package/data/sessions/session1/pre-key-793.json +1 -0
  796. package/data/sessions/session1/pre-key-794.json +1 -0
  797. package/data/sessions/session1/pre-key-795.json +1 -0
  798. package/data/sessions/session1/pre-key-796.json +1 -0
  799. package/data/sessions/session1/pre-key-797.json +1 -0
  800. package/data/sessions/session1/pre-key-798.json +1 -0
  801. package/data/sessions/session1/pre-key-799.json +1 -0
  802. package/data/sessions/session1/pre-key-8.json +1 -0
  803. package/data/sessions/session1/pre-key-80.json +1 -0
  804. package/data/sessions/session1/pre-key-800.json +1 -0
  805. package/data/sessions/session1/pre-key-801.json +1 -0
  806. package/data/sessions/session1/pre-key-802.json +1 -0
  807. package/data/sessions/session1/pre-key-803.json +1 -0
  808. package/data/sessions/session1/pre-key-804.json +1 -0
  809. package/data/sessions/session1/pre-key-805.json +1 -0
  810. package/data/sessions/session1/pre-key-806.json +1 -0
  811. package/data/sessions/session1/pre-key-807.json +1 -0
  812. package/data/sessions/session1/pre-key-808.json +1 -0
  813. package/data/sessions/session1/pre-key-809.json +1 -0
  814. package/data/sessions/session1/pre-key-81.json +1 -0
  815. package/data/sessions/session1/pre-key-810.json +1 -0
  816. package/data/sessions/session1/pre-key-811.json +1 -0
  817. package/data/sessions/session1/pre-key-812.json +1 -0
  818. package/data/sessions/session1/pre-key-82.json +1 -0
  819. package/data/sessions/session1/pre-key-83.json +1 -0
  820. package/data/sessions/session1/pre-key-84.json +1 -0
  821. package/data/sessions/session1/pre-key-85.json +1 -0
  822. package/data/sessions/session1/pre-key-86.json +1 -0
  823. package/data/sessions/session1/pre-key-87.json +1 -0
  824. package/data/sessions/session1/pre-key-88.json +1 -0
  825. package/data/sessions/session1/pre-key-89.json +1 -0
  826. package/data/sessions/session1/pre-key-9.json +1 -0
  827. package/data/sessions/session1/pre-key-90.json +1 -0
  828. package/data/sessions/session1/pre-key-91.json +1 -0
  829. package/data/sessions/session1/pre-key-92.json +1 -0
  830. package/data/sessions/session1/pre-key-93.json +1 -0
  831. package/data/sessions/session1/pre-key-94.json +1 -0
  832. package/data/sessions/session1/pre-key-95.json +1 -0
  833. package/data/sessions/session1/pre-key-96.json +1 -0
  834. package/data/sessions/session1/pre-key-97.json +1 -0
  835. package/data/sessions/session1/pre-key-98.json +1 -0
  836. package/data/sessions/session1/pre-key-99.json +1 -0
  837. package/data/sessions/session1/session-275801408819393_1.0.json +1 -0
  838. package/handlers/baileys.js +25 -0
  839. package/handlers/calls.js +58 -0
  840. package/handlers/contacts.js +142 -0
  841. package/handlers/groups.js +195 -0
  842. package/handlers/messages.js +345 -0
  843. package/handlers/newsletters.js +184 -0
  844. package/handlers/presence-status.js +9 -0
  845. package/handlers/stories.js +37 -0
  846. package/handlers/users.js +119 -0
  847. package/index.js +649 -0
  848. package/package.json +19 -0
  849. package/types/buttons.js +72 -0
  850. package/types/interactive-messages.js +318 -0
  851. package/utils/generic-utils.js +23 -0
  852. package/utils/index.js +4 -0
  853. package/utils/message-normalizer.js +427 -0
  854. package/utils/message-store-db-handler.js +46 -0
  855. package/utils/message-store.js +73 -0
@@ -0,0 +1,427 @@
1
+ const digestSync = require('crypto-digest-sync');
2
+ /**
3
+ * Classe utilitária estática para normalizar o objeto de mensagem do Baileys
4
+ * em uma estrutura rica, consistente e completa. (Versão 3 - Final)
5
+ */
6
+ class MessageNormalizer {
7
+ /**
8
+ * Ponto de entrada principal. Normaliza uma mensagem bruta do Baileys.
9
+ * @param {import('../handlers/contacts').default} contact - O contato.
10
+ * @param {import('baileys').proto.WebMessageInfo} rawMessage - O objeto de mensagem bruto.
11
+ * @param {import('../client').default} client - A instância do cliente.
12
+ * @returns {object|null} Um objeto de mensagem normalizado ou null se não for uma mensagem válida.
13
+ */
14
+ static async normalize(contact, rawMessage, client) {
15
+ // if (!rawMessage || (!rawMessage.message && !rawMessage.messageStubType)) {
16
+ if (!rawMessage || !rawMessage.message) {
17
+ return null;
18
+ }
19
+
20
+ // Caso especial 1: Mensagem editada. A normalização é feita na mensagem interna.
21
+ const editedMsgContent = rawMessage.message?.protocolMessage?.editedMessage;
22
+ if (editedMsgContent) {
23
+ const originalKey = rawMessage.message.protocolMessage.key;
24
+ const normalizedEdit = await this.normalize(contact, { key: originalKey, message: editedMsgContent, pushName: rawMessage.pushName }, client);
25
+ if (normalizedEdit) {
26
+ normalizedEdit.isEdited = true;
27
+ normalizedEdit.id = originalKey.id; // Garante que o ID é o da mensagem original
28
+ }
29
+ return normalizedEdit;
30
+ }
31
+ const originalType = Object.keys(rawMessage.message)[0];
32
+ const type = this._getFriendlyType(rawMessage.message);
33
+ const messageContent = rawMessage.message[originalType];
34
+ const contextInfo = messageContent?.contextInfo || rawMessage.message?.messageContextInfo;
35
+ const clientJid = client.jidNormalizedUser(client.sock.user.id);
36
+ const fromMe = rawMessage.key.fromMe;
37
+ const from = fromMe ? clientJid : contact.id;
38
+ const to = fromMe ? contact.id : clientJid;
39
+
40
+ const normalized = {
41
+ id: rawMessage.key.id,
42
+ chat: contact,
43
+ fromMe,
44
+ from,
45
+ fromPushName: fromMe ? client.user.name : contact.name,
46
+ to,
47
+ type,
48
+ body: this._extractBody(rawMessage.message),
49
+ hasMedia: false,
50
+ media: null,
51
+ location: null,
52
+ contacts: this._extractContacts(rawMessage.message),
53
+ isReply: !!contextInfo?.quotedMessage,
54
+ quotedMessage: null,
55
+ isForwarded: !!contextInfo?.isForwarded,
56
+ forwardingScore: contextInfo?.forwardingScore || 0,
57
+ mentions: contextInfo?.mentionedJid || [],
58
+ isMentioningMe: (contextInfo?.mentionedJid || []).includes(clientJid),
59
+ isEdited: false,
60
+ interactiveReply: this._extractInteractiveReply(rawMessage.message),
61
+ reaction: this._extractReaction(rawMessage.message),
62
+ pollUpdate: await this._extractPollUpdate(rawMessage, client),
63
+ poll: this._extractPollCreation(rawMessage),
64
+ timestamp: new Date(Number(rawMessage.messageTimestamp) * 1000),
65
+ raw: rawMessage // Referência ao objeto original para acesso avançado
66
+ };
67
+
68
+ // Preenche os campos de mídia e localização com detalhes específicos
69
+ this._enrichWithTypedData(normalized, rawMessage, client);
70
+
71
+ // Se for uma resposta, normaliza a mensagem citada recursivamente
72
+ if (normalized.isReply) {
73
+ const quotedRaw = {
74
+ key: {
75
+ remoteJid: normalized.chat.id,
76
+ id: contextInfo.stanzaId,
77
+ fromMe: client.jidNormalizedUser(contextInfo.participant || normalized.chat.id) === clientJid,
78
+ participant: contextInfo.participant
79
+ },
80
+ message: contextInfo.quotedMessage
81
+ };
82
+ const quotedParticipantJid = client.jidNormalizedUser(contextInfo.participant || normalized.chat.id);
83
+ let quotedContact = await client.contacts.get(quotedParticipantJid);
84
+ if (!quotedContact) {
85
+ quotedContact = await client.contacts.normalize({ key: { remoteJid: quotedParticipantJid } });
86
+ }
87
+ normalized.quotedMessage = await this.normalize(quotedContact, quotedRaw, client);
88
+ }
89
+
90
+
91
+ return normalized;
92
+ }
93
+
94
+ /** @private Retorna um tipo amigável baseado no conteúdo da mensagem. */
95
+ static _getFriendlyType(message) {
96
+ if (!message) return 'unknown'
97
+
98
+ if (message.conversation || message.extendedTextMessage) return 'text';
99
+ if (message.imageMessage) return 'image';
100
+ if (message.albumMessage) return 'album';
101
+ if (message.videoMessage || message.associatedChildMessage?.message?.videoMessage) return 'video';
102
+ if (message.audioMessage) return 'audio';
103
+ if (message.documentMessage) return 'document';
104
+ if (message.documentWithCaptionMessage) return 'document';
105
+ if (message.stickerMessage) return 'sticker';
106
+ if (message.locationMessage) return 'location';
107
+ if (message.contactMessage || message.contactsArrayMessage) return 'contact';
108
+ if (message.buttonsResponseMessage || message.listResponseMessage) return 'interactive_reply';
109
+ if (message.reactionMessage) return 'reaction';
110
+ if (message.pollCreationMessage || message.pollCreationMessageV3) return 'poll_creation';
111
+ if (message.pollUpdateMessage) return 'poll_update';
112
+ if (message.templateButtonReplyMessage) return 'template_button_reply';
113
+ if (message.pinInChatMessage) return 'pin_in_chat';
114
+ if (message.unpinInChatMessage) return 'unpin_in_chat';
115
+ if (message.questionReplyMessage) return 'question_reply';
116
+ // Detectar o tipo de interactiveButtons pela propriedade name, se interactive buttons tiver apenas um botão
117
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'review_and_pay') return 'review_and_pay';
118
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'review_order') return 'review_order';
119
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'quick_reply') return 'quick_reply';
120
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'cta_url') return 'cta_url';
121
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'cta_copy') return 'cta_copy';
122
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'cta_call') return 'cta_call';
123
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons && message.interactiveMessage.interactiveButtons[0].name === 'voice_call') return 'voice_call';
124
+ if (message.interactiveResponseMessage && message.interactiveResponseMessage.nativeFlowResponseMessage && message.interactiveResponseMessage.nativeFlowResponseMessage.name === 'menu_options') return 'native_flow_menu_options_response';
125
+ if (message.interactiveResponseMessage && message.interactiveResponseMessage.nativeFlowResponseMessage) return 'native_flow_response';
126
+
127
+ if (message.interactiveMessage && message.interactiveMessage.interactiveButtons) return 'interactive_buttons';
128
+ if (message.interactiveMessage && message.interactiveMessage.interactiveList) return 'interactive_list';
129
+ if (message.interactiveResponseMessage) return 'interactive_response';
130
+
131
+ if (message.interactiveMessage) return 'interactive_message';
132
+
133
+ return 'unknown';
134
+ }
135
+
136
+
137
+ /** @private Extrai o conteúdo textual principal de qualquer tipo de mensagem. */
138
+ static _extractBody(message) {
139
+ return message?.conversation ||
140
+ message?.extendedTextMessage?.text ||
141
+ message?.imageMessage?.caption ||
142
+ message?.videoMessage?.caption ||
143
+ message?.associatedChildMessage?.message?.videoMessage?.caption ||
144
+ message?.documentWithCaptionMessage?.message?.documentMessage?.caption ||
145
+ message?.buttonsResponseMessage?.selectedDisplayText ||
146
+ message?.listResponseMessage?.title ||
147
+ message?.templateButtonReplyMessage?.selectedDisplayText ||
148
+ message.interactiveResponseMessage?.body?.text ||
149
+ message?.questionReplyMessage?.message?.extendedTextMessage?.text ||
150
+ '';
151
+ }
152
+
153
+ /** @private Extrai e formata os dados de mídia. */
154
+ static _enrichWithTypedData(normalized, rawMessage, client) {
155
+ let content = rawMessage.message;
156
+ let type = Object.keys(rawMessage.message).find(key => key != "messageContextInfo");
157
+ if (type === 'associatedChildMessage') {
158
+ content = rawMessage.message.associatedChildMessage.message;
159
+ type = Object.keys(rawMessage.message.associatedChildMessage.message).find(key => key != "messageContextInfo");
160
+ }
161
+ const messageContent = content[type];
162
+ const mediaTypes = ['imageMessage', 'videoMessage', 'audioMessage', 'documentMessage', 'stickerMessage', 'documentWithCaptionMessage'];
163
+ if (mediaTypes.includes(type)) {
164
+ const rootData = content.documentWithCaptionMessage ? content.documentWithCaptionMessage : content;
165
+ normalized.hasMedia = true;
166
+ normalized.media = {
167
+ mimetype: messageContent.mimetype || messageContent.message?.documentMessage?.mimetype,
168
+ fileName: messageContent.fileName || messageContent.message?.documentMessage?.title,
169
+ caption: messageContent.caption || messageContent.message?.documentMessage?.caption,
170
+ duration: messageContent.seconds || null,
171
+ isPtt: messageContent.ptt || false,
172
+ isGif: messageContent.gifPlayback || false,
173
+ isViewOnce: messageContent.viewOnce || false,
174
+ getAttachments: () => client.messages.getAttachments(rootData)
175
+ };
176
+ }
177
+
178
+ if (type === 'locationMessage') {
179
+ normalized.location = {
180
+ latitude: messageContent.degreesLatitude,
181
+ longitude: messageContent.degreesLongitude
182
+ };
183
+ }
184
+
185
+ }
186
+
187
+ /** @private Extrai os dados de uma resposta interativa (botão/lista). */
188
+ static _extractInteractiveReply(message) {
189
+ const buttonReply = message?.buttonsResponseMessage;
190
+ if (buttonReply) return { id: buttonReply.selectedButtonId, text: buttonReply.selectedDisplayText };
191
+
192
+ const listReply = message?.listResponseMessage;
193
+ if (listReply) return { id: listReply.singleSelectReply?.selectedRowId, text: listReply.title };
194
+
195
+ const interactiveReply = message?.interactiveResponseMessage;
196
+ if (interactiveReply) return { id: interactiveReply.nativeFlowResponseMessage.name, text: interactiveReply.nativeFlowResponseMessage.paramsJson };
197
+
198
+ const questionReply = message?.questionReplyMessage;
199
+ if (questionReply) return { id: questionReply.selectedButtonId, text: questionReply.selectedDisplayText };
200
+
201
+ return null;
202
+ }
203
+
204
+ /** @private Extrai os dados de uma reação a uma mensagem. */
205
+ static _extractReaction(message) {
206
+ const reaction = message?.reactionMessage;
207
+ if (!reaction) return null;
208
+ return {
209
+ emoji: reaction.text,
210
+ reactedMessageId: reaction.key.id,
211
+ senderTimestamp: new Date(Number(reaction.senderTimestampMs))
212
+ };
213
+ }
214
+
215
+ /** @private Extrai os dados de um voto em uma enquete (descriptografado). */
216
+ static async _extractPollUpdate(msg, client) {
217
+ const isGroup = msg.key.remoteJid.endsWith('@g.us');
218
+ const clientJid = client.jidNormalizedUser(client.sock.user.id);
219
+
220
+ const message = msg.message;
221
+ const pollUpdate = message?.pollUpdateMessage;
222
+ if (!pollUpdate || !pollUpdate.pollCreationMessageKey) return null;
223
+ let creationMsg = null;
224
+ let pollEncKeyBuffer = null;
225
+ let decryptPollVoteParams = null;
226
+ try {
227
+ // Recupera a mensagem de criação da enquete diretamente da store
228
+ creationMsg = await client.store.getMessage(
229
+ pollUpdate.pollCreationMessageKey.remoteJid,
230
+ pollUpdate.pollCreationMessageKey.id
231
+ );
232
+
233
+ if (!creationMsg) {
234
+ return null;
235
+ }
236
+
237
+ creationMsg.raw.message.pollCreationMessage = creationMsg.raw.message.pollCreationMessage ? creationMsg.raw.message.pollCreationMessage :
238
+ creationMsg.raw.message.pollCreationMessageV3;
239
+
240
+ // Verifica se a mensagem de criação existe e tem a estrutura correta
241
+ if (!creationMsg.raw.message.pollCreationMessage) {
242
+ console.warn("Mensagem de criação da enquete não encontrada na store ou sem estrutura válida");
243
+ return {
244
+ pollCreationMessageId: pollUpdate.pollCreationMessageKey?.id,
245
+ voterTimestamp: new Date(Number(pollUpdate.senderTimestampMs)),
246
+ selectedOptions: [],
247
+ error: "Poll creation message not found"
248
+ };
249
+ }
250
+
251
+ if (!creationMsg || !creationMsg.raw.message.pollCreationMessage) {
252
+ console.warn("Mensagem de criação da enquete sem estrutura válida");
253
+ return {
254
+ pollCreationMessageId: pollUpdate.pollCreationMessageKey?.id,
255
+ voterTimestamp: new Date(Number(pollUpdate.senderTimestampMs)),
256
+ selectedOptions: [],
257
+ error: "Mensagem de criação da enquete sem estrutura válida"
258
+ };
259
+ }
260
+
261
+ // Verifica se temos os dados necessários para descriptografia
262
+ if (!creationMsg.raw.message.messageContextInfo.messageSecret ||
263
+ !creationMsg.raw.message.pollCreationMessage.name ||
264
+ !creationMsg.raw.message.pollCreationMessage.options) {
265
+ console.warn("Mensagem de criação da enquete não contém dados necessários para descriptografia");
266
+ return {
267
+ pollCreationMessageId: pollUpdate.pollCreationMessageKey?.id,
268
+ voterTimestamp: new Date(Number(pollUpdate.senderTimestampMs)),
269
+ selectedOptions: [],
270
+ error: "Incomplete poll creation data"
271
+ };
272
+ }
273
+
274
+ pollEncKeyBuffer = Buffer.from(Object.values(creationMsg.raw.message.messageContextInfo.messageSecret));
275
+ decryptPollVoteParams = {
276
+ pollCreatorJid: creationMsg.raw.key.remoteJid,
277
+ pollMsgId: creationMsg.raw.key.id,
278
+ pollEncKey: pollEncKeyBuffer,
279
+ voterJid: isGroup ? msg.key.participant : msg.key.fromMe ? clientJid : msg.key.remoteJid,
280
+ };
281
+ // Descriptografa os votos usando a mensagem bruta da store
282
+ const decrypted = await client.decryptPollVote(pollUpdate.vote, decryptPollVoteParams);
283
+
284
+ const selectedOptions = [];
285
+ for (const decryptedHash of decrypted.selectedOptions) {
286
+ const hashHex = Buffer.from(decryptedHash).toString('hex').toUpperCase();
287
+ for (const option of creationMsg.raw.message.pollCreationMessage?.options || []) {
288
+ const hash = Buffer.from(digestSync("SHA-256", new TextEncoder().encode(Buffer.from(option.optionName).toString())))
289
+ .toString("hex")
290
+ .toUpperCase();
291
+ if (hashHex === hash) {
292
+ selectedOptions.push(option.optionName);
293
+ break;
294
+ }
295
+ }
296
+ }
297
+
298
+ return {
299
+ pollCreationMessageId: pollUpdate.pollCreationMessageKey?.id,
300
+ voterTimestamp: new Date(Number(pollUpdate.senderTimestampMs)),
301
+ selectedOptions,
302
+ success: selectedOptions.length > 0
303
+ };
304
+ } catch (err) {
305
+ console.error("Erro ao descriptografar voto:", err.message, {
306
+ msg,
307
+ pollUpdateMessage: pollUpdate,
308
+ decryptPollVoteParams,
309
+ errorStack: err.stack
310
+ });
311
+
312
+ return {
313
+ pollCreationMessageId: pollUpdate.pollCreationMessageKey?.id,
314
+ voterTimestamp: new Date(Number(pollUpdate.senderTimestampMs)),
315
+ selectedOptions: [],
316
+ error: err.message,
317
+ code: err.code
318
+ };
319
+ }
320
+ }
321
+
322
+ /** @private Extrai os dados de uma mensagem de criação de enquete. */
323
+ static _extractPollCreation(raw) {
324
+ const message = raw.message;
325
+ const poll = message?.pollCreationMessage || message.pollCreationMessageV3;
326
+ if (!poll) return null
327
+
328
+ return {
329
+ id: raw.key.id,
330
+ creator: {
331
+ jid: raw.key.remoteJid,
332
+ pushName: raw.pushName,
333
+ verifiedBizName: raw.verifiedBizName
334
+ },
335
+ name: poll.name,
336
+ selectableOptionsCount: poll.selectableOptionsCount,
337
+ allowsMultipleAnswers: poll.selectableOptionsCount > 1,
338
+ options: (poll.options || []).map(opt => ({
339
+ name: opt.optionName || null,
340
+ hash: opt.optionHash || null
341
+ })),
342
+ messageSecret: message.messageContextInfo?.messageSecret,
343
+ senderTimestamp: poll.messageTimestamp
344
+ ? new Date(Number(poll.messageTimestamp) * 1000)
345
+ : null,
346
+ raw: poll
347
+ }
348
+ }
349
+
350
+ /** @private Extrai os dados de contatos enviados. */
351
+ static _extractContacts(message) {
352
+ const parseVcard = (vcard = '') => {
353
+ const nameMatch = vcard.match(/FN:(.+)/);
354
+ const numberMatch = vcard.match(/waid=(\d+)/);
355
+ return {
356
+ name: (nameMatch ? nameMatch[1] : '').replace(/\\/g, ''),
357
+ number: numberMatch ? numberMatch[1] : ''
358
+ };
359
+ };
360
+
361
+ const singleContact = message?.contactMessage;
362
+ if (singleContact) return [parseVcard(singleContact.vcard)];
363
+
364
+ const multiContact = message?.contactsArrayMessage?.contacts;
365
+ if (multiContact) return multiContact.map(c => parseVcard(c.vcard));
366
+
367
+ return [];
368
+ }
369
+
370
+ /** @private Extrai os dados de uma mensagem de resposta a uma pergunta. recebida de uma newsletter */
371
+ static _extractQuestionReply(raw) {
372
+ const message = raw.message;
373
+ const questionReply = message?.questionReplyMessage;
374
+ if (!questionReply) return null;
375
+
376
+ return {
377
+ id: raw.key.id,
378
+ creator: {
379
+ jid: raw.key.remoteJid,
380
+ pushName: raw.pushName,
381
+ verifiedBizName: raw.verifiedBizName
382
+ },
383
+ question: questionReply.question,
384
+ answer: questionReply.answer,
385
+ senderTimestamp: questionReply.messageTimestamp
386
+ ? new Date(Number(questionReply.messageTimestamp) * 1000)
387
+ : null,
388
+ raw: questionReply
389
+ }
390
+ }
391
+
392
+ /** @private Extrai os dados de uma mensagem de video. */
393
+ static _extractVideo(raw) {
394
+ const message = raw.message;
395
+ const video = message?.videoMessage;
396
+ if (!video) return null;
397
+
398
+ return {
399
+ id: raw.key.id,
400
+ creator: {
401
+ jid: raw.key.remoteJid,
402
+ pushName: raw.pushName,
403
+ verifiedBizName: raw.verifiedBizName
404
+ },
405
+ url: video.url,
406
+ mimetype: video.mimetype,
407
+ fileSha256: video.fileSha256,
408
+ fileLength: video.fileLength,
409
+ seconds: video.seconds,
410
+ mediaKey: video.mediaKey,
411
+ height: video.height,
412
+ width: video.width,
413
+ fileEncSha256: video.fileEncSha256,
414
+ directPath: video.directPath,
415
+ mediaKeyTimestamp: video.mediaKeyTimestamp,
416
+ jpegThumbnail: video.jpegThumbnail,
417
+ streamingSidecar: video.streamingSidecar,
418
+ externalShareFullVideoDurationInSeconds: video.externalShareFullVideoDurationInSeconds,
419
+ motionPhotoPresentationOffsetMs: video.motionPhotoPresentationOffsetMs,
420
+ raw: video
421
+ }
422
+ }
423
+
424
+ }
425
+
426
+
427
+ module.exports = MessageNormalizer;
@@ -0,0 +1,46 @@
1
+ class MessageStore {
2
+ constructor(table) {
3
+ this.table = table;
4
+ }
5
+
6
+ async saveMessage(chatId, message) {
7
+ return await this.table.insert({
8
+ chat_id: chatId,
9
+ key: message.id,
10
+ from: message.from,
11
+ to: message.to
12
+ });
13
+ }
14
+
15
+ async getMessage(chatId, id) {
16
+ // Tenta buscar no banco de dados com base no chat_id e mid/key
17
+ const results = await this.table.select([{ chat_id: chatId }, 'AND', { key: id }]);
18
+ return results && results.length > 0 ? results[0] : null;
19
+ }
20
+
21
+ async getMessages(chatId, { from, to, limit } = {}) {
22
+ // Consulta mensagens associadas ao chat_id no banco
23
+ let messages = await this.table.select([{ chat_id: chatId }]);
24
+ if (!messages) {
25
+ return [];
26
+ }
27
+
28
+ if (from || to) {
29
+ messages = messages.filter(msg => {
30
+ const timestamp = msg.timestamp || msg.created_at || msg.raw?.messageTimestamp;
31
+ if (!timestamp) return true;
32
+ const ts = new Date(timestamp).getTime();
33
+ return (!from || ts >= new Date(from).getTime()) &&
34
+ (!to || ts <= new Date(to).getTime());
35
+ });
36
+ }
37
+
38
+ if (limit) {
39
+ messages = messages.slice(-limit);
40
+ }
41
+
42
+ return messages;
43
+ }
44
+ }
45
+
46
+ module.exports = MessageStore;
@@ -0,0 +1,73 @@
1
+ const fs = require('fs/promises');
2
+ const { existsSync } = require('fs');
3
+ const path = require('path');
4
+
5
+ class MessageStore {
6
+ constructor(basePath) {
7
+ this.basePath = path.join(basePath, 'message_store');
8
+ if (!existsSync(this.basePath)) {
9
+ const fsSync = require('fs');
10
+ fsSync.mkdirSync(this.basePath, { recursive: true });
11
+ }
12
+ }
13
+
14
+ _getFilePath(chatId) {
15
+ return path.join(this.basePath, `${chatId}.json`);
16
+ }
17
+
18
+ async _loadMessages(chatId) {
19
+ const filePath = this._getFilePath(chatId);
20
+ try {
21
+ await fs.access(filePath);
22
+ } catch {
23
+ return [];
24
+ }
25
+ try {
26
+ const data = await fs.readFile(filePath, 'utf8');
27
+ return JSON.parse(data) || [];
28
+ } catch (err) {
29
+ // Em caso de JSON corrompido, retorna lista vazia
30
+ return [];
31
+ }
32
+ }
33
+
34
+ async _saveMessages(chatId, messages) {
35
+ const filePath = this._getFilePath(chatId);
36
+ await fs.writeFile(filePath, JSON.stringify(messages, null, 2));
37
+ }
38
+
39
+ async saveMessage(chatId, message) {
40
+ const messages = await this._loadMessages(chatId);
41
+
42
+ // Evita duplicados pelo id
43
+ if (!messages.find(m => m.id === message.id)) {
44
+ messages.push(message);
45
+ await this._saveMessages(chatId, messages);
46
+ }
47
+ }
48
+
49
+ async getMessage(chatId, id) {
50
+ const messages = await this._loadMessages(chatId);
51
+ return messages.find(m => m.id === id);
52
+ }
53
+
54
+ async getMessages(chatId, { from, to, limit } = {}) {
55
+ let messages = await this._loadMessages(chatId);
56
+
57
+ if (from || to) {
58
+ messages = messages.filter(msg => {
59
+ const ts = new Date(msg.timestamp).getTime();
60
+ return (!from || ts >= new Date(from).getTime()) &&
61
+ (!to || ts <= new Date(to).getTime());
62
+ });
63
+ }
64
+
65
+ if (limit) {
66
+ messages = messages.slice(-limit);
67
+ }
68
+
69
+ return messages;
70
+ }
71
+ }
72
+
73
+ module.exports = MessageStore;