@oxidezap/baileyrs 0.0.26 → 0.0.27

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 (530) hide show
  1. package/lib/Bridge/adapt.d.ts +2 -0
  2. package/lib/Bridge/adapt.d.ts.map +1 -1
  3. package/lib/Bridge/adapt.js +2 -1
  4. package/lib/Bridge/adapt.js.map +1 -1
  5. package/lib/Bridge/history-sync-wire.d.ts +17 -0
  6. package/lib/Bridge/history-sync-wire.d.ts.map +1 -0
  7. package/lib/Bridge/history-sync-wire.js +45 -0
  8. package/lib/Bridge/history-sync-wire.js.map +1 -0
  9. package/lib/Bridge/index.d.ts +1 -1
  10. package/lib/Bridge/index.d.ts.map +1 -1
  11. package/lib/Bridge/index.js +3 -3
  12. package/lib/Bridge/index.js.map +1 -1
  13. package/lib/Bridge/primitives.d.ts +4 -0
  14. package/lib/Bridge/primitives.d.ts.map +1 -1
  15. package/lib/Bridge/primitives.js +14 -0
  16. package/lib/Bridge/primitives.js.map +1 -1
  17. package/lib/Bridge/schema.d.ts +9 -2
  18. package/lib/Bridge/schema.d.ts.map +1 -1
  19. package/lib/Bridge/schema.js +263 -35
  20. package/lib/Bridge/schema.js.map +1 -1
  21. package/lib/Bridge/types.d.ts +117 -3
  22. package/lib/Bridge/types.d.ts.map +1 -1
  23. package/lib/Compatibility/group-metadata.d.ts +9 -0
  24. package/lib/Compatibility/group-metadata.d.ts.map +1 -0
  25. package/lib/Compatibility/group-metadata.js +70 -0
  26. package/lib/Compatibility/group-metadata.js.map +1 -0
  27. package/lib/Compatibility/group-notifications.d.ts +22 -0
  28. package/lib/Compatibility/group-notifications.d.ts.map +1 -0
  29. package/lib/Compatibility/group-notifications.js +307 -0
  30. package/lib/Compatibility/group-notifications.js.map +1 -0
  31. package/lib/Compatibility/group-stub-params.d.ts +32 -0
  32. package/lib/Compatibility/group-stub-params.d.ts.map +1 -0
  33. package/lib/Compatibility/group-stub-params.js +57 -0
  34. package/lib/Compatibility/group-stub-params.js.map +1 -0
  35. package/lib/Compatibility/internal/async-primitives.d.ts +16 -0
  36. package/lib/Compatibility/internal/async-primitives.d.ts.map +1 -0
  37. package/lib/Compatibility/internal/async-primitives.js +42 -0
  38. package/lib/Compatibility/internal/async-primitives.js.map +1 -0
  39. package/lib/Compatibility/internal/auth-state.d.ts +15 -0
  40. package/lib/Compatibility/internal/auth-state.d.ts.map +1 -0
  41. package/lib/Compatibility/internal/auth-state.js +21 -0
  42. package/lib/Compatibility/internal/auth-state.js.map +1 -0
  43. package/lib/Compatibility/internal/cache-store.d.ts +7 -0
  44. package/lib/Compatibility/internal/cache-store.d.ts.map +1 -0
  45. package/lib/Compatibility/internal/cache-store.js +19 -0
  46. package/lib/Compatibility/internal/cache-store.js.map +1 -0
  47. package/lib/Compatibility/internal/expiring-lru-map.d.ts +21 -0
  48. package/lib/Compatibility/internal/expiring-lru-map.d.ts.map +1 -0
  49. package/lib/Compatibility/internal/expiring-lru-map.js +68 -0
  50. package/lib/Compatibility/internal/expiring-lru-map.js.map +1 -0
  51. package/lib/Compatibility/internal/make-mutex.d.ts +7 -0
  52. package/lib/Compatibility/internal/make-mutex.d.ts.map +1 -0
  53. package/lib/Compatibility/internal/make-mutex.js +31 -0
  54. package/lib/Compatibility/internal/make-mutex.js.map +1 -0
  55. package/lib/Compatibility/internal/native-memory-store.d.ts +6 -0
  56. package/lib/Compatibility/internal/native-memory-store.d.ts.map +1 -0
  57. package/lib/Compatibility/internal/native-memory-store.js +8 -0
  58. package/lib/Compatibility/internal/native-memory-store.js.map +1 -0
  59. package/lib/Compatibility/internal/numeric-enum.d.ts +8 -0
  60. package/lib/Compatibility/internal/numeric-enum.d.ts.map +1 -0
  61. package/lib/Compatibility/internal/numeric-enum.js +11 -0
  62. package/lib/Compatibility/internal/numeric-enum.js.map +1 -0
  63. package/lib/Compatibility/internal/signal-key-store.d.ts +9 -0
  64. package/lib/Compatibility/internal/signal-key-store.d.ts.map +1 -0
  65. package/lib/Compatibility/internal/signal-key-store.js +17 -0
  66. package/lib/Compatibility/internal/signal-key-store.js.map +1 -0
  67. package/lib/Compatibility/legacy-store/adapter.d.ts +4 -0
  68. package/lib/Compatibility/legacy-store/adapter.d.ts.map +1 -0
  69. package/lib/Compatibility/legacy-store/adapter.js +301 -0
  70. package/lib/Compatibility/legacy-store/adapter.js.map +1 -0
  71. package/lib/Compatibility/legacy-store/codecs/basic.d.ts +6 -0
  72. package/lib/Compatibility/legacy-store/codecs/basic.d.ts.map +1 -0
  73. package/lib/Compatibility/legacy-store/codecs/basic.js +184 -0
  74. package/lib/Compatibility/legacy-store/codecs/basic.js.map +1 -0
  75. package/lib/Compatibility/legacy-store/codecs/index.d.ts +6 -0
  76. package/lib/Compatibility/legacy-store/codecs/index.d.ts.map +1 -0
  77. package/lib/Compatibility/legacy-store/codecs/index.js +7 -0
  78. package/lib/Compatibility/legacy-store/codecs/index.js.map +1 -0
  79. package/lib/Compatibility/legacy-store/codecs/signal.d.ts +8 -0
  80. package/lib/Compatibility/legacy-store/codecs/signal.d.ts.map +1 -0
  81. package/lib/Compatibility/legacy-store/codecs/signal.js +219 -0
  82. package/lib/Compatibility/legacy-store/codecs/signal.js.map +1 -0
  83. package/lib/Compatibility/legacy-store/common.d.ts +25 -0
  84. package/lib/Compatibility/legacy-store/common.d.ts.map +1 -0
  85. package/lib/Compatibility/legacy-store/common.js +112 -0
  86. package/lib/Compatibility/legacy-store/common.js.map +1 -0
  87. package/lib/Compatibility/legacy-store/constants.d.ts +226 -0
  88. package/lib/Compatibility/legacy-store/constants.d.ts.map +1 -0
  89. package/lib/Compatibility/legacy-store/constants.js +199 -0
  90. package/lib/Compatibility/legacy-store/constants.js.map +1 -0
  91. package/lib/Compatibility/legacy-store/device.d.ts +9 -0
  92. package/lib/Compatibility/legacy-store/device.d.ts.map +1 -0
  93. package/lib/Compatibility/legacy-store/device.js +192 -0
  94. package/lib/Compatibility/legacy-store/device.js.map +1 -0
  95. package/lib/Compatibility/legacy-store/multi-file.d.ts +6 -0
  96. package/lib/Compatibility/legacy-store/multi-file.d.ts.map +1 -0
  97. package/lib/Compatibility/legacy-store/multi-file.js +84 -0
  98. package/lib/Compatibility/legacy-store/multi-file.js.map +1 -0
  99. package/lib/Compatibility/legacy-store/native-projection.d.ts +8 -0
  100. package/lib/Compatibility/legacy-store/native-projection.d.ts.map +1 -0
  101. package/lib/Compatibility/legacy-store/native-projection.js +109 -0
  102. package/lib/Compatibility/legacy-store/native-projection.js.map +1 -0
  103. package/lib/Compatibility/legacy-store/routing.d.ts +18 -0
  104. package/lib/Compatibility/legacy-store/routing.d.ts.map +1 -0
  105. package/lib/Compatibility/legacy-store/routing.js +162 -0
  106. package/lib/Compatibility/legacy-store/routing.js.map +1 -0
  107. package/lib/Compatibility/legacy-store/types.d.ts +41 -0
  108. package/lib/Compatibility/legacy-store/types.d.ts.map +1 -0
  109. package/lib/Compatibility/legacy-store/types.js +3 -0
  110. package/lib/Compatibility/legacy-store/types.js.map +1 -0
  111. package/lib/Compatibility/legacy-store/validation.d.ts +9 -0
  112. package/lib/Compatibility/legacy-store/validation.d.ts.map +1 -0
  113. package/lib/Compatibility/legacy-store/validation.js +49 -0
  114. package/lib/Compatibility/legacy-store/validation.js.map +1 -0
  115. package/lib/Compatibility/media-type.d.ts +10 -0
  116. package/lib/Compatibility/media-type.d.ts.map +1 -0
  117. package/lib/Compatibility/media-type.js +31 -0
  118. package/lib/Compatibility/media-type.js.map +1 -0
  119. package/lib/Compatibility/message-keys.d.ts +9 -0
  120. package/lib/Compatibility/message-keys.d.ts.map +1 -0
  121. package/lib/Compatibility/message-keys.js +15 -0
  122. package/lib/Compatibility/message-keys.js.map +1 -0
  123. package/lib/Compatibility/message-relay.d.ts +26 -0
  124. package/lib/Compatibility/message-relay.d.ts.map +1 -0
  125. package/lib/Compatibility/message-relay.js +61 -0
  126. package/lib/Compatibility/message-relay.js.map +1 -0
  127. package/lib/Compatibility/message-upsert.d.ts +11 -0
  128. package/lib/Compatibility/message-upsert.d.ts.map +1 -0
  129. package/lib/Compatibility/message-upsert.js +8 -0
  130. package/lib/Compatibility/message-upsert.js.map +1 -0
  131. package/lib/Compatibility/participating-refresh.d.ts +9 -0
  132. package/lib/Compatibility/participating-refresh.d.ts.map +1 -0
  133. package/lib/Compatibility/participating-refresh.js +14 -0
  134. package/lib/Compatibility/participating-refresh.js.map +1 -0
  135. package/lib/Compatibility/proto-runtime.d.ts +9 -0
  136. package/lib/Compatibility/proto-runtime.d.ts.map +1 -0
  137. package/lib/Compatibility/proto-runtime.js +567 -0
  138. package/lib/Compatibility/proto-runtime.js.map +1 -0
  139. package/lib/Compatibility/public-api/auth-utils.d.ts +6 -0
  140. package/lib/Compatibility/public-api/auth-utils.d.ts.map +1 -0
  141. package/lib/Compatibility/public-api/auth-utils.js +202 -0
  142. package/lib/Compatibility/public-api/auth-utils.js.map +1 -0
  143. package/lib/Compatibility/public-api/enum-types.d.ts +163 -0
  144. package/lib/Compatibility/public-api/enum-types.d.ts.map +1 -0
  145. package/lib/Compatibility/public-api/enum-types.js +10 -0
  146. package/lib/Compatibility/public-api/enum-types.js.map +1 -0
  147. package/lib/Compatibility/public-api/identity-change-handler.d.ts +42 -0
  148. package/lib/Compatibility/public-api/identity-change-handler.d.ts.map +1 -0
  149. package/lib/Compatibility/public-api/identity-change-handler.js +38 -0
  150. package/lib/Compatibility/public-api/identity-change-handler.js.map +1 -0
  151. package/lib/Compatibility/public-api/message-retry-manager.d.ts +62 -0
  152. package/lib/Compatibility/public-api/message-retry-manager.d.ts.map +1 -0
  153. package/lib/Compatibility/public-api/message-retry-manager.js +180 -0
  154. package/lib/Compatibility/public-api/message-retry-manager.js.map +1 -0
  155. package/lib/Compatibility/public-api/pre-key-manager.d.ts +14 -0
  156. package/lib/Compatibility/public-api/pre-key-manager.d.ts.map +1 -0
  157. package/lib/Compatibility/public-api/pre-key-manager.js +83 -0
  158. package/lib/Compatibility/public-api/pre-key-manager.js.map +1 -0
  159. package/lib/Compatibility/public-api/stanza-ack.d.ts +4 -0
  160. package/lib/Compatibility/public-api/stanza-ack.d.ts.map +1 -0
  161. package/lib/Compatibility/public-api/stanza-ack.js +20 -0
  162. package/lib/Compatibility/public-api/stanza-ack.js.map +1 -0
  163. package/lib/Compatibility/signal-repository.d.ts +12 -0
  164. package/lib/Compatibility/signal-repository.d.ts.map +1 -0
  165. package/lib/Compatibility/signal-repository.js +131 -0
  166. package/lib/Compatibility/signal-repository.js.map +1 -0
  167. package/lib/Compatibility/socket-results.d.ts +28 -0
  168. package/lib/Compatibility/socket-results.d.ts.map +1 -0
  169. package/lib/Compatibility/socket-results.js +72 -0
  170. package/lib/Compatibility/socket-results.js.map +1 -0
  171. package/lib/Compatibility/stanza-responses.d.ts +13 -0
  172. package/lib/Compatibility/stanza-responses.d.ts.map +1 -0
  173. package/lib/Compatibility/stanza-responses.js +16 -0
  174. package/lib/Compatibility/stanza-responses.js.map +1 -0
  175. package/lib/Compatibility/tagged-message-waiter.d.ts +5 -0
  176. package/lib/Compatibility/tagged-message-waiter.d.ts.map +1 -0
  177. package/lib/Compatibility/tagged-message-waiter.js +42 -0
  178. package/lib/Compatibility/tagged-message-waiter.js.map +1 -0
  179. package/lib/Compatibility/usync/adapter.d.ts +13 -0
  180. package/lib/Compatibility/usync/adapter.d.ts.map +1 -0
  181. package/lib/Compatibility/usync/adapter.js +291 -0
  182. package/lib/Compatibility/usync/adapter.js.map +1 -0
  183. package/lib/Compatibility/websocket-client.d.ts +40 -0
  184. package/lib/Compatibility/websocket-client.d.ts.map +1 -0
  185. package/lib/Compatibility/websocket-client.js +120 -0
  186. package/lib/Compatibility/websocket-client.js.map +1 -0
  187. package/lib/Defaults/index.d.ts +70 -3
  188. package/lib/Defaults/index.d.ts.map +1 -1
  189. package/lib/Defaults/index.js +107 -15
  190. package/lib/Defaults/index.js.map +1 -1
  191. package/lib/Platform/crypto.d.ts +6 -0
  192. package/lib/Platform/crypto.d.ts.map +1 -0
  193. package/lib/Platform/crypto.js +36 -0
  194. package/lib/Platform/crypto.js.map +1 -0
  195. package/lib/Socket/blocking.d.ts +2 -2
  196. package/lib/Socket/blocking.d.ts.map +1 -1
  197. package/lib/Socket/blocking.js +2 -1
  198. package/lib/Socket/blocking.js.map +1 -1
  199. package/lib/Socket/chat-actions.d.ts +2 -9
  200. package/lib/Socket/chat-actions.d.ts.map +1 -1
  201. package/lib/Socket/chat-actions.js +24 -13
  202. package/lib/Socket/chat-actions.js.map +1 -1
  203. package/lib/Socket/communities.d.ts +61 -0
  204. package/lib/Socket/communities.d.ts.map +1 -0
  205. package/lib/Socket/communities.js +72 -0
  206. package/lib/Socket/communities.js.map +1 -0
  207. package/lib/Socket/contacts.d.ts +4 -2
  208. package/lib/Socket/contacts.d.ts.map +1 -1
  209. package/lib/Socket/contacts.js +6 -4
  210. package/lib/Socket/contacts.js.map +1 -1
  211. package/lib/Socket/events.d.ts +13 -5
  212. package/lib/Socket/events.d.ts.map +1 -1
  213. package/lib/Socket/events.js +273 -55
  214. package/lib/Socket/events.js.map +1 -1
  215. package/lib/Socket/group-notifications.d.ts +1 -30
  216. package/lib/Socket/group-notifications.d.ts.map +1 -1
  217. package/lib/Socket/group-notifications.js +3 -268
  218. package/lib/Socket/group-notifications.js.map +1 -1
  219. package/lib/Socket/groups.d.ts +17 -36
  220. package/lib/Socket/groups.d.ts.map +1 -1
  221. package/lib/Socket/groups.js +111 -116
  222. package/lib/Socket/groups.js.map +1 -1
  223. package/lib/Socket/index.d.ts +140 -201
  224. package/lib/Socket/index.d.ts.map +1 -1
  225. package/lib/Socket/index.js +215 -345
  226. package/lib/Socket/index.js.map +1 -1
  227. package/lib/Socket/message-capping.d.ts +4 -0
  228. package/lib/Socket/message-capping.d.ts.map +1 -0
  229. package/lib/Socket/message-capping.js +22 -0
  230. package/lib/Socket/message-capping.js.map +1 -0
  231. package/lib/Socket/messages.d.ts +8 -14
  232. package/lib/Socket/messages.d.ts.map +1 -1
  233. package/lib/Socket/messages.js +74 -40
  234. package/lib/Socket/messages.js.map +1 -1
  235. package/lib/Socket/newsletter.d.ts +5 -0
  236. package/lib/Socket/newsletter.d.ts.map +1 -1
  237. package/lib/Socket/newsletter.js +7 -0
  238. package/lib/Socket/newsletter.js.map +1 -1
  239. package/lib/Socket/prekeys.d.ts +10 -0
  240. package/lib/Socket/prekeys.d.ts.map +1 -0
  241. package/lib/Socket/prekeys.js +21 -0
  242. package/lib/Socket/prekeys.js.map +1 -0
  243. package/lib/Socket/presence.d.ts +3 -3
  244. package/lib/Socket/presence.d.ts.map +1 -1
  245. package/lib/Socket/presence.js +2 -2
  246. package/lib/Socket/presence.js.map +1 -1
  247. package/lib/Socket/profile.d.ts +6 -8
  248. package/lib/Socket/profile.d.ts.map +1 -1
  249. package/lib/Socket/profile.js +18 -17
  250. package/lib/Socket/profile.js.map +1 -1
  251. package/lib/Socket/reachout.js +1 -1
  252. package/lib/Socket/transport.d.ts.map +1 -1
  253. package/lib/Socket/transport.js +13 -1
  254. package/lib/Socket/transport.js.map +1 -1
  255. package/lib/Socket/types.d.ts +4 -2
  256. package/lib/Socket/types.d.ts.map +1 -1
  257. package/lib/Socket/types.js.map +1 -1
  258. package/lib/Socket/usync.d.ts +12 -0
  259. package/lib/Socket/usync.d.ts.map +1 -0
  260. package/lib/Socket/usync.js +27 -0
  261. package/lib/Socket/usync.js.map +1 -0
  262. package/lib/Types/Auth.d.ts +28 -30
  263. package/lib/Types/Auth.d.ts.map +1 -1
  264. package/lib/Types/Auth.js +1 -1
  265. package/lib/Types/Auth.js.map +1 -1
  266. package/lib/Types/BinaryNode.d.ts +0 -4
  267. package/lib/Types/BinaryNode.d.ts.map +1 -1
  268. package/lib/Types/Bussines.d.ts +1 -1
  269. package/lib/Types/Bussines.d.ts.map +1 -1
  270. package/lib/Types/Call.d.ts +3 -1
  271. package/lib/Types/Call.d.ts.map +1 -1
  272. package/lib/Types/Chat.d.ts +2 -2
  273. package/lib/Types/Chat.d.ts.map +1 -1
  274. package/lib/Types/Events.d.ts +16 -5
  275. package/lib/Types/Events.d.ts.map +1 -1
  276. package/lib/Types/Events.js +1 -1
  277. package/lib/Types/Events.js.map +1 -1
  278. package/lib/Types/GroupMetadata.d.ts +4 -0
  279. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  280. package/lib/Types/Label.d.ts +3 -23
  281. package/lib/Types/Label.d.ts.map +1 -1
  282. package/lib/Types/Label.js +24 -23
  283. package/lib/Types/Label.js.map +1 -1
  284. package/lib/Types/LabelAssociation.d.ts +5 -6
  285. package/lib/Types/LabelAssociation.d.ts.map +1 -1
  286. package/lib/Types/LabelAssociation.js +4 -5
  287. package/lib/Types/LabelAssociation.js.map +1 -1
  288. package/lib/Types/Message.d.ts +45 -10
  289. package/lib/Types/Message.d.ts.map +1 -1
  290. package/lib/Types/Message.js +5 -7
  291. package/lib/Types/Message.js.map +1 -1
  292. package/lib/Types/Newsletter.d.ts +5 -28
  293. package/lib/Types/Newsletter.d.ts.map +1 -1
  294. package/lib/Types/Newsletter.js +34 -30
  295. package/lib/Types/Newsletter.js.map +1 -1
  296. package/lib/Types/Product.d.ts +75 -0
  297. package/lib/Types/Product.d.ts.map +1 -0
  298. package/lib/Types/Product.js +2 -0
  299. package/lib/Types/Product.js.map +1 -0
  300. package/lib/Types/Reachout.d.ts +3 -18
  301. package/lib/Types/Reachout.d.ts.map +1 -1
  302. package/lib/Types/Reachout.js +20 -19
  303. package/lib/Types/Reachout.js.map +1 -1
  304. package/lib/Types/Signal.d.ts +91 -0
  305. package/lib/Types/Signal.d.ts.map +1 -0
  306. package/lib/Types/Signal.js +2 -0
  307. package/lib/Types/Signal.js.map +1 -0
  308. package/lib/Types/Socket.d.ts +76 -30
  309. package/lib/Types/Socket.d.ts.map +1 -1
  310. package/lib/Types/State.d.ts +19 -0
  311. package/lib/Types/State.d.ts.map +1 -1
  312. package/lib/Types/State.js +26 -1
  313. package/lib/Types/State.js.map +1 -1
  314. package/lib/Types/USync.d.ts +9 -0
  315. package/lib/Types/USync.d.ts.map +1 -0
  316. package/lib/Types/USync.js +2 -0
  317. package/lib/Types/USync.js.map +1 -0
  318. package/lib/Types/index.d.ts +9 -12
  319. package/lib/Types/index.d.ts.map +1 -1
  320. package/lib/Types/index.js +30 -30
  321. package/lib/Types/index.js.map +1 -1
  322. package/lib/Utils/auth-utils.d.ts +2 -0
  323. package/lib/Utils/auth-utils.d.ts.map +1 -0
  324. package/lib/Utils/auth-utils.js +3 -0
  325. package/lib/Utils/auth-utils.js.map +1 -0
  326. package/lib/Utils/boom.d.ts +8 -32
  327. package/lib/Utils/boom.d.ts.map +1 -1
  328. package/lib/Utils/boom.js +7 -62
  329. package/lib/Utils/boom.js.map +1 -1
  330. package/lib/Utils/browser-utils.d.ts +1 -0
  331. package/lib/Utils/browser-utils.d.ts.map +1 -1
  332. package/lib/Utils/browser-utils.js +6 -0
  333. package/lib/Utils/browser-utils.js.map +1 -1
  334. package/lib/Utils/companion-reg-client-utils.d.ts +8 -0
  335. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  336. package/lib/Utils/companion-reg-client-utils.js +32 -0
  337. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  338. package/lib/Utils/crypto.d.ts +31 -0
  339. package/lib/Utils/crypto.d.ts.map +1 -0
  340. package/lib/Utils/crypto.js +81 -0
  341. package/lib/Utils/crypto.js.map +1 -0
  342. package/lib/Utils/event-buffer.d.ts +15 -4
  343. package/lib/Utils/event-buffer.d.ts.map +1 -1
  344. package/lib/Utils/event-buffer.js +471 -34
  345. package/lib/Utils/event-buffer.js.map +1 -1
  346. package/lib/Utils/generics.d.ts +52 -15
  347. package/lib/Utils/generics.d.ts.map +1 -1
  348. package/lib/Utils/generics.js +269 -25
  349. package/lib/Utils/generics.js.map +1 -1
  350. package/lib/Utils/group-stub-params.d.ts +1 -28
  351. package/lib/Utils/group-stub-params.d.ts.map +1 -1
  352. package/lib/Utils/group-stub-params.js +2 -44
  353. package/lib/Utils/group-stub-params.js.map +1 -1
  354. package/lib/Utils/identity-change-handler.d.ts +2 -0
  355. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  356. package/lib/Utils/identity-change-handler.js +4 -0
  357. package/lib/Utils/identity-change-handler.js.map +1 -0
  358. package/lib/Utils/index.d.ts +9 -0
  359. package/lib/Utils/index.d.ts.map +1 -1
  360. package/lib/Utils/index.js +19 -10
  361. package/lib/Utils/index.js.map +1 -1
  362. package/lib/Utils/logger.d.ts.map +1 -1
  363. package/lib/Utils/message-retry-manager.d.ts +2 -0
  364. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  365. package/lib/Utils/message-retry-manager.js +4 -0
  366. package/lib/Utils/message-retry-manager.js.map +1 -0
  367. package/lib/Utils/messages-media.d.ts +28 -6
  368. package/lib/Utils/messages-media.d.ts.map +1 -1
  369. package/lib/Utils/messages-media.js +119 -1
  370. package/lib/Utils/messages-media.js.map +1 -1
  371. package/lib/Utils/messages.d.ts +33 -9
  372. package/lib/Utils/messages.d.ts.map +1 -1
  373. package/lib/Utils/messages.js +106 -33
  374. package/lib/Utils/messages.js.map +1 -1
  375. package/lib/Utils/native-crypto-provider.d.ts +10 -8
  376. package/lib/Utils/native-crypto-provider.d.ts.map +1 -1
  377. package/lib/Utils/native-crypto-provider.js +13 -56
  378. package/lib/Utils/native-crypto-provider.js.map +1 -1
  379. package/lib/Utils/pre-key-manager.d.ts +2 -0
  380. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  381. package/lib/Utils/pre-key-manager.js +3 -0
  382. package/lib/Utils/pre-key-manager.js.map +1 -0
  383. package/lib/Utils/process-history-message.d.ts +15 -4
  384. package/lib/Utils/process-history-message.d.ts.map +1 -1
  385. package/lib/Utils/process-history-message.js +162 -95
  386. package/lib/Utils/process-history-message.js.map +1 -1
  387. package/lib/Utils/process-message.d.ts +25 -0
  388. package/lib/Utils/process-message.d.ts.map +1 -0
  389. package/lib/Utils/process-message.js +79 -0
  390. package/lib/Utils/process-message.js.map +1 -0
  391. package/lib/Utils/signal.d.ts +29 -0
  392. package/lib/Utils/signal.d.ts.map +1 -0
  393. package/lib/Utils/signal.js +133 -0
  394. package/lib/Utils/signal.js.map +1 -0
  395. package/lib/Utils/sparse-array.d.ts +9 -0
  396. package/lib/Utils/sparse-array.d.ts.map +1 -0
  397. package/lib/Utils/sparse-array.js +12 -0
  398. package/lib/Utils/sparse-array.js.map +1 -0
  399. package/lib/Utils/stanza-ack.d.ts +2 -0
  400. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  401. package/lib/Utils/stanza-ack.js +3 -0
  402. package/lib/Utils/stanza-ack.js.map +1 -0
  403. package/lib/Utils/use-bridge-store.d.ts.map +1 -1
  404. package/lib/Utils/use-bridge-store.js +191 -7
  405. package/lib/Utils/use-bridge-store.js.map +1 -1
  406. package/lib/Utils/use-memory-store.d.ts +8 -4
  407. package/lib/Utils/use-memory-store.d.ts.map +1 -1
  408. package/lib/Utils/use-memory-store.js +87 -10
  409. package/lib/Utils/use-memory-store.js.map +1 -1
  410. package/lib/Utils/use-multi-file-auth-state.d.ts +4 -2
  411. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -1
  412. package/lib/Utils/use-multi-file-auth-state.js +13 -5
  413. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  414. package/lib/Utils/wrap-legacy-store.d.ts +8 -32
  415. package/lib/Utils/wrap-legacy-store.d.ts.map +1 -1
  416. package/lib/Utils/wrap-legacy-store.js +7 -1214
  417. package/lib/Utils/wrap-legacy-store.js.map +1 -1
  418. package/lib/WABinary/generic-utils.d.ts +8 -0
  419. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  420. package/lib/WABinary/generic-utils.js +63 -1
  421. package/lib/WABinary/generic-utils.js.map +1 -1
  422. package/lib/WABinary/index.js +2 -2
  423. package/lib/WABinary/jid-utils.d.ts +22 -10
  424. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  425. package/lib/WABinary/jid-utils.js +40 -9
  426. package/lib/WABinary/jid-utils.js.map +1 -1
  427. package/lib/WAProto/compatibility-schema.d.ts +25 -0
  428. package/lib/WAProto/compatibility-schema.d.ts.map +1 -0
  429. package/lib/WAProto/compatibility-schema.js +6 -0
  430. package/lib/WAProto/compatibility-schema.js.map +1 -0
  431. package/lib/WAProto/runtime.d.ts +14019 -0
  432. package/lib/WAProto/runtime.js +17 -0
  433. package/lib/WAProto/runtime.js.map +1 -0
  434. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -0
  435. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts.map +1 -0
  436. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +39 -0
  437. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js.map +1 -0
  438. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  439. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  440. package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -0
  441. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  442. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  443. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  444. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +41 -0
  445. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  446. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  447. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  448. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +19 -0
  449. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  450. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +10 -0
  451. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts.map +1 -0
  452. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +15 -0
  453. package/lib/WAUSync/Protocols/USyncLIDProtocol.js.map +1 -0
  454. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  455. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  456. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +25 -0
  457. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  458. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  459. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  460. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +21 -0
  461. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  462. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  463. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  464. package/lib/WAUSync/Protocols/index.js +6 -0
  465. package/lib/WAUSync/Protocols/index.js.map +1 -0
  466. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  467. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  468. package/lib/WAUSync/USyncQuery.js +78 -0
  469. package/lib/WAUSync/USyncQuery.js.map +1 -0
  470. package/lib/WAUSync/USyncUser.d.ts +17 -0
  471. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  472. package/lib/WAUSync/USyncUser.js +31 -0
  473. package/lib/WAUSync/USyncUser.js.map +1 -0
  474. package/lib/WAUSync/index.d.ts +4 -0
  475. package/lib/WAUSync/index.d.ts.map +1 -0
  476. package/lib/WAUSync/index.js +4 -0
  477. package/lib/WAUSync/index.js.map +1 -0
  478. package/lib/index.d.ts +2 -1
  479. package/lib/index.d.ts.map +1 -1
  480. package/lib/index.js +9 -9
  481. package/lib/index.js.map +1 -1
  482. package/package.json +32 -14
  483. package/lib/Bridge/__tests__/adapt.test.d.ts +0 -2
  484. package/lib/Bridge/__tests__/adapt.test.d.ts.map +0 -1
  485. package/lib/Bridge/__tests__/adapt.test.js +0 -387
  486. package/lib/Bridge/__tests__/adapt.test.js.map +0 -1
  487. package/lib/Bridge/__tests__/dts-drift.test.d.ts +0 -13
  488. package/lib/Bridge/__tests__/dts-drift.test.d.ts.map +0 -1
  489. package/lib/Bridge/__tests__/dts-drift.test.js +0 -90
  490. package/lib/Bridge/__tests__/dts-drift.test.js.map +0 -1
  491. package/lib/Bridge/__tests__/fixtures.d.ts +0 -192
  492. package/lib/Bridge/__tests__/fixtures.d.ts.map +0 -1
  493. package/lib/Bridge/__tests__/fixtures.js +0 -99
  494. package/lib/Bridge/__tests__/fixtures.js.map +0 -1
  495. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts +0 -73
  496. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts.map +0 -1
  497. package/lib/Utils/__tests__/_legacy-store-fixtures.js +0 -113
  498. package/lib/Utils/__tests__/_legacy-store-fixtures.js.map +0 -1
  499. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts +0 -10
  500. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts.map +0 -1
  501. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js +0 -291
  502. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js.map +0 -1
  503. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts +0 -8
  504. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts.map +0 -1
  505. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js +0 -91
  506. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js.map +0 -1
  507. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts +0 -10
  508. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts.map +0 -1
  509. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js +0 -125
  510. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js.map +0 -1
  511. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts +0 -2
  512. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts.map +0 -1
  513. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js +0 -214
  514. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js.map +0 -1
  515. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts +0 -14
  516. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts.map +0 -1
  517. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js +0 -305
  518. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js.map +0 -1
  519. package/lib/Utils/bridge-call.d.ts +0 -22
  520. package/lib/Utils/bridge-call.d.ts.map +0 -1
  521. package/lib/Utils/bridge-call.js +0 -105
  522. package/lib/Utils/bridge-call.js.map +0 -1
  523. package/lib/Utils/lid-mapping-store.d.ts +0 -81
  524. package/lib/Utils/lid-mapping-store.d.ts.map +0 -1
  525. package/lib/Utils/lid-mapping-store.js +0 -126
  526. package/lib/Utils/lid-mapping-store.js.map +0 -1
  527. package/lib/__tests__/expect.d.ts +0 -44
  528. package/lib/__tests__/expect.d.ts.map +0 -1
  529. package/lib/__tests__/expect.js +0 -100
  530. package/lib/__tests__/expect.js.map +0 -1
@@ -1,214 +0,0 @@
1
- // Ratchet semantic equivalence across the wrap-legacy-store boundary:
2
- // chain converted Rust→JS (or back) must derive identical message keys.
3
- // Pins the off-by-one between Rust `chain_key.index` and JS `chainKey.counter`.
4
- import { Buffer } from 'node:buffer';
5
- import { createHmac } from 'node:crypto';
6
- import { describe, test } from 'node:test';
7
- import SessionRecord from 'libsignal/src/session_record.js';
8
- import { proto as bridgeProto } from 'whatsapp-rust-bridge/proto-types';
9
- import { expect } from "../../__tests__/expect.js";
10
- import { fill, makeWrapped, BRIDGE_SESSION_KEY_LID, UPSTREAM_SESSION_KEY_LID } from "./_legacy-store-fixtures.js";
11
- const MSG_SEED = Buffer.from([0x01]);
12
- const CHAIN_SEED = Buffer.from([0x02]);
13
- const hmac = (key, seed) => createHmac('sha256', key).update(seed).digest();
14
- function walkChain(initialKey, n) {
15
- let k = Buffer.from(initialKey);
16
- const msgKeys = [];
17
- for (let i = 0; i < n; i++) {
18
- msgKeys.push(hmac(k, MSG_SEED));
19
- k = hmac(k, CHAIN_SEED);
20
- }
21
- return { keyAfterNSteps: k, msgKeys };
22
- }
23
- // Replica of libsignal's private SessionCipher.fillMessageKeys.
24
- function jsFillMessageKeys(chain, target) {
25
- while (chain.chainKey.counter < target) {
26
- const key = chain.chainKey.key;
27
- chain.chainKey.counter += 1;
28
- chain.messageKeys[chain.chainKey.counter] = hmac(key, MSG_SEED);
29
- chain.chainKey.key = hmac(key, CHAIN_SEED);
30
- }
31
- }
32
- function buildBridgeProto(opts) {
33
- const { initialChainKey, senderRustIndex = 0, receiverRustIndex = 0, senderRatchetPub = fill(33, 2), receiverRatchetPub = fill(33, 5) } = opts;
34
- return bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
35
- currentSession: bridgeProto.SessionStructure.create({
36
- sessionVersion: 3,
37
- localIdentityPublic: fill(33, 9),
38
- remoteIdentityPublic: fill(33, 8),
39
- rootKey: fill(32, 11),
40
- previousCounter: 0,
41
- senderChain: {
42
- senderRatchetKey: senderRatchetPub,
43
- senderRatchetKeyPrivate: fill(32, 3),
44
- chainKey: { index: senderRustIndex, key: new Uint8Array(initialChainKey) },
45
- messageKeys: []
46
- },
47
- receiverChains: [
48
- {
49
- senderRatchetKey: receiverRatchetPub,
50
- chainKey: { index: receiverRustIndex, key: new Uint8Array(initialChainKey) },
51
- messageKeys: []
52
- }
53
- ],
54
- remoteRegistrationId: 1234,
55
- localRegistrationId: 5678,
56
- aliceBaseKey: fill(33, 7)
57
- }),
58
- previousSessions: []
59
- })).finish();
60
- }
61
- function buildJsSession(opts) {
62
- const baseKey = Buffer.from(fill(33, 7));
63
- return {
64
- _sessions: {
65
- [baseKey.toString('base64')]: {
66
- registrationId: 9999,
67
- currentRatchet: {
68
- ephemeralKeyPair: {
69
- pubKey: opts.senderRatchetPub.toString('base64'),
70
- privKey: opts.senderRatchetPriv.toString('base64')
71
- },
72
- lastRemoteEphemeralKey: Buffer.alloc(0).toString('base64'),
73
- previousCounter: 0,
74
- rootKey: Buffer.from(fill(32, 11)).toString('base64')
75
- },
76
- indexInfo: {
77
- baseKey: baseKey.toString('base64'),
78
- baseKeyType: 1,
79
- closed: -1,
80
- used: 0,
81
- created: 0,
82
- remoteIdentityKey: Buffer.from(fill(33, 8)).toString('base64')
83
- },
84
- _chains: {
85
- [opts.senderRatchetPub.toString('base64')]: {
86
- chainKey: { counter: opts.counter, key: opts.chainKey.toString('base64') },
87
- chainType: 1,
88
- messageKeys: {}
89
- }
90
- }
91
- }
92
- },
93
- version: 'v1'
94
- };
95
- }
96
- async function writeProtoAndReadJS(protoBytes) {
97
- const { wrapped, keys } = await makeWrapped();
98
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, protoBytes);
99
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
100
- if (!stored)
101
- throw new Error('wrapper did not write session under upstream key');
102
- return SessionRecord.deserialize(stored);
103
- }
104
- function chainFor(rec, ratchetPub) {
105
- const session = rec.getOpenSession();
106
- if (!session)
107
- throw new Error('no open session');
108
- const chain = session._chains[Buffer.from(ratchetPub).toString('base64')];
109
- if (!chain)
110
- throw new Error(`no chain for ratchet ${Buffer.from(ratchetPub).toString('hex').slice(0, 12)}…`);
111
- return chain;
112
- }
113
- describe('wrap-legacy-store: Rust↔JS chain-key index/counter mapping', () => {
114
- const senderRatchet = fill(33, 2);
115
- const receiverRatchet = fill(33, 5);
116
- test('fresh Rust chain (index=0) → JS counter=-1', async () => {
117
- const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: Buffer.from(fill(32, 42)), senderRustIndex: 0 }));
118
- expect(chainFor(rec, senderRatchet).chainKey.counter).toBe(-1);
119
- });
120
- test('Rust index=N → JS counter=N-1 for arbitrary N', async () => {
121
- for (const n of [0, 1, 2, 5, 17, 100, 940]) {
122
- const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: Buffer.from(fill(32, 50)), senderRustIndex: n }));
123
- expect(chainFor(rec, senderRatchet).chainKey.counter).toBe(n - 1);
124
- }
125
- });
126
- test('receiver chain mirrors sender chain mapping', async () => {
127
- const rec = await writeProtoAndReadJS(buildBridgeProto({
128
- initialChainKey: Buffer.from(fill(32, 11)),
129
- senderRustIndex: 0,
130
- receiverRustIndex: 5
131
- }));
132
- expect(chainFor(rec, receiverRatchet).chainKey.counter).toBe(4);
133
- });
134
- test('JS counter=N → Rust index=N+1 (inverse direction)', async () => {
135
- const { wrapped, keys } = await makeWrapped();
136
- keys.raw['session'] = {
137
- [UPSTREAM_SESSION_KEY_LID]: buildJsSession({
138
- senderRatchetPub: Buffer.from(fill(33, 2)),
139
- senderRatchetPriv: Buffer.from(fill(32, 3)),
140
- chainKey: Buffer.from(fill(32, 70)),
141
- counter: 6
142
- })
143
- };
144
- const protoBytes = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
145
- const decoded = bridgeProto.RecordStructure.decode(protoBytes);
146
- expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(7);
147
- });
148
- test('fresh JS chain (counter=-1) → Rust index=0', async () => {
149
- const { wrapped, keys } = await makeWrapped();
150
- keys.raw['session'] = {
151
- [UPSTREAM_SESSION_KEY_LID]: buildJsSession({
152
- senderRatchetPub: Buffer.from(fill(33, 2)),
153
- senderRatchetPriv: Buffer.from(fill(32, 3)),
154
- chainKey: Buffer.from(fill(32, 21)),
155
- counter: -1
156
- })
157
- };
158
- const protoBytes = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
159
- const decoded = bridgeProto.RecordStructure.decode(protoBytes);
160
- expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(0);
161
- });
162
- });
163
- describe('wrap-legacy-store: ratchet semantic equivalence after Rust→JS', () => {
164
- const senderRatchet = fill(33, 2);
165
- const receiverRatchet = fill(33, 5);
166
- test('JS derives the same msg key Rust would derive natively', async () => {
167
- const k0 = Buffer.from(fill(32, 99));
168
- const { keyAfterNSteps: k3 } = walkChain(k0, 3);
169
- const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: k3, senderRustIndex: 3 }));
170
- const chain = chainFor(rec, senderRatchet);
171
- expect(chain.chainKey.counter).toBe(2);
172
- expect(chain.chainKey.key.equals(k3)).toBe(true);
173
- const jsChain = {
174
- chainKey: { counter: chain.chainKey.counter, key: chain.chainKey.key },
175
- chainType: chain.chainType,
176
- messageKeys: {}
177
- };
178
- jsFillMessageKeys(jsChain, 3);
179
- const { msgKeys: expected } = walkChain(k0, 4);
180
- expect(jsChain.messageKeys[3].equals(expected[3])).toBe(true);
181
- });
182
- test('receiver chain decrypts the next inbound msg after roundtrip', async () => {
183
- const k0 = Buffer.from(fill(32, 33));
184
- const { keyAfterNSteps: kN } = walkChain(k0, 5);
185
- const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: kN, senderRustIndex: 0, receiverRustIndex: 5 }));
186
- const chain = chainFor(rec, receiverRatchet);
187
- expect(chain.chainKey.counter).toBe(4);
188
- const jsChain = {
189
- chainKey: { counter: chain.chainKey.counter, key: chain.chainKey.key },
190
- chainType: chain.chainType,
191
- messageKeys: {}
192
- };
193
- jsFillMessageKeys(jsChain, 5);
194
- const { msgKeys: expected } = walkChain(k0, 6);
195
- expect(jsChain.messageKeys[5].equals(expected[5])).toBe(true);
196
- });
197
- test('Rust→JS→Rust is a fixed point for chain state (index + bytes)', async () => {
198
- const initial = Buffer.from(fill(32, 77));
199
- const original = buildBridgeProto({
200
- initialChainKey: initial,
201
- senderRustIndex: 4,
202
- receiverRustIndex: 6
203
- });
204
- const { wrapped } = await makeWrapped();
205
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, original);
206
- const round = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
207
- const decoded = bridgeProto.RecordStructure.decode(round);
208
- expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(4);
209
- expect(decoded.currentSession?.receiverChains?.[0]?.chainKey?.index).toBe(6);
210
- expect(Buffer.from(decoded.currentSession?.senderChain?.chainKey?.key ?? []).equals(initial)).toBe(true);
211
- expect(Buffer.from(decoded.currentSession?.receiverChains?.[0]?.chainKey?.key ?? []).equals(initial)).toBe(true);
212
- });
213
- });
214
- //# sourceMappingURL=wrap-legacy-store-session-ratchet.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap-legacy-store-session-ratchet.test.js","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session-ratchet.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Cross-impl gap for `session`:
3
- * • Bridge: store `session`, key `{user}[:dev]@{server}.{sig}`,
4
- * value = protobuf `RecordStructure` (current + previous_sessions).
5
- * • Upstream: store `session`, key `{signalUser}.{deviceId}`,
6
- * value = JS object `{ _sessions: { [base64BaseKey]: SessionEntry }, version: 'v1' }`.
7
- *
8
- * Without conversion, upstream's `loadSession` either misses the key or
9
- * throws inside `SessionRecord.deserialize`, falling back to a fresh
10
- * PreKey signal handshake on every cross-impl swap. These tests pin
11
- * direct, no-re-handshake compatibility.
12
- */
13
- export {};
14
- //# sourceMappingURL=wrap-legacy-store-session.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap-legacy-store-session.test.d.ts","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -1,305 +0,0 @@
1
- /**
2
- * Cross-impl gap for `session`:
3
- * • Bridge: store `session`, key `{user}[:dev]@{server}.{sig}`,
4
- * value = protobuf `RecordStructure` (current + previous_sessions).
5
- * • Upstream: store `session`, key `{signalUser}.{deviceId}`,
6
- * value = JS object `{ _sessions: { [base64BaseKey]: SessionEntry }, version: 'v1' }`.
7
- *
8
- * Without conversion, upstream's `loadSession` either misses the key or
9
- * throws inside `SessionRecord.deserialize`, falling back to a fresh
10
- * PreKey signal handshake on every cross-impl swap. These tests pin
11
- * direct, no-re-handshake compatibility.
12
- */
13
- import { Buffer } from 'node:buffer';
14
- import { describe, test } from 'node:test';
15
- import SessionRecord from 'libsignal/src/session_record.js';
16
- import { proto as bridgeProto } from 'whatsapp-rust-bridge/proto-types';
17
- import { expect } from "../../__tests__/expect.js";
18
- import { BRIDGE_SESSION_KEY_LID, BRIDGE_SESSION_KEY_PN, BRIDGE_SESSION_KEY_PN_DEV, UPSTREAM_SESSION_KEY_LID, UPSTREAM_SESSION_KEY_PN, UPSTREAM_SESSION_KEY_PN_DEV, buildBridgeSessionBytes, fill, makeWrapped } from "./_legacy-store-fixtures.js";
19
- describe('wrap-legacy-store: session key-name translation', () => {
20
- test('LID → upstream `_1.deviceId`', async () => {
21
- const { wrapped, keys } = await makeWrapped();
22
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, buildBridgeSessionBytes());
23
- expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID]).toBeDefined();
24
- expect(keys.raw['session']?.[BRIDGE_SESSION_KEY_LID]).toBeUndefined();
25
- });
26
- test('PN no-device → bare `{user}.{signalDev}`', async () => {
27
- const { wrapped, keys } = await makeWrapped();
28
- await wrapped.set('session', BRIDGE_SESSION_KEY_PN, buildBridgeSessionBytes());
29
- expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN]).toBeDefined();
30
- });
31
- test('PN with JID device → device suffix preserved', async () => {
32
- const { wrapped, keys } = await makeWrapped();
33
- await wrapped.set('session', BRIDGE_SESSION_KEY_PN_DEV, buildBridgeSessionBytes());
34
- expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN_DEV]).toBeDefined();
35
- });
36
- });
37
- describe('wrap-legacy-store: session value-byte translation', () => {
38
- test('bridge proto bytes load via upstream `SessionRecord.deserialize` as OPEN', async () => {
39
- const { wrapped, keys } = await makeWrapped();
40
- const aliceBaseKey = Buffer.from(fill(33, 100));
41
- const rootKey = Buffer.from(fill(32, 11));
42
- const remoteIdentity = Buffer.from(fill(33, 17));
43
- const senderRatchetPub = Buffer.from(fill(33, 23));
44
- const senderRatchetPriv = Buffer.from(fill(32, 29));
45
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, buildBridgeSessionBytes({
46
- rootKey: new Uint8Array(rootKey),
47
- aliceBaseKey: new Uint8Array(aliceBaseKey),
48
- remoteIdentity: new Uint8Array(remoteIdentity),
49
- senderRatchetPub: new Uint8Array(senderRatchetPub),
50
- senderRatchetPriv: new Uint8Array(senderRatchetPriv),
51
- remoteRegistrationId: 99,
52
- previousCounter: 4
53
- }));
54
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
55
- const rec = SessionRecord.deserialize(stored);
56
- expect(rec.haveOpenSession()).toBe(true);
57
- const open = rec.getOpenSession();
58
- expect(open.registrationId).toBe(99);
59
- expect(open.currentRatchet.previousCounter).toBe(4);
60
- expect(Buffer.from(open.currentRatchet.rootKey).equals(rootKey)).toBe(true);
61
- expect(Buffer.from(open.currentRatchet.ephemeralKeyPair.pubKey).equals(senderRatchetPub)).toBe(true);
62
- expect(Buffer.from(open.currentRatchet.ephemeralKeyPair.privKey).equals(senderRatchetPriv)).toBe(true);
63
- expect(Buffer.from(open.indexInfo.baseKey).equals(aliceBaseKey)).toBe(true);
64
- expect(Buffer.from(open.indexInfo.remoteIdentityKey).equals(remoteIdentity)).toBe(true);
65
- expect(open.indexInfo.closed).toBe(-1);
66
- expect(Object.keys(open._chains).length).toBeGreaterThanOrEqual(1);
67
- });
68
- test('upstream JS object → bridge GET produces valid proto with same fields', async () => {
69
- const { wrapped, keys } = await makeWrapped();
70
- const baseKey = Buffer.alloc(33, 0xa0);
71
- const rootKey = Buffer.alloc(32, 0xb0);
72
- const remoteIdent = Buffer.alloc(33, 0xc0);
73
- const ephPub = Buffer.alloc(33, 0xd0);
74
- const ephPriv = Buffer.alloc(32, 0xe0);
75
- const lastRemoteEph = Buffer.alloc(33, 0xf0);
76
- keys.raw['session'] = {
77
- [UPSTREAM_SESSION_KEY_LID]: {
78
- _sessions: {
79
- [baseKey.toString('base64')]: {
80
- registrationId: 4242,
81
- currentRatchet: {
82
- ephemeralKeyPair: { pubKey: ephPub.toString('base64'), privKey: ephPriv.toString('base64') },
83
- lastRemoteEphemeralKey: lastRemoteEph.toString('base64'),
84
- previousCounter: 7,
85
- rootKey: rootKey.toString('base64')
86
- },
87
- indexInfo: {
88
- baseKey: baseKey.toString('base64'),
89
- baseKeyType: 1,
90
- closed: -1,
91
- used: Date.now(),
92
- created: Date.now(),
93
- remoteIdentityKey: remoteIdent.toString('base64')
94
- },
95
- _chains: {}
96
- }
97
- },
98
- version: 'v1'
99
- }
100
- };
101
- const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
102
- const decoded = bridgeProto.RecordStructure.decode(protoOut);
103
- const cs = decoded.currentSession;
104
- expect(cs.remoteRegistrationId).toBe(4242);
105
- expect(cs.previousCounter).toBe(7);
106
- expect(Buffer.from(cs.rootKey).equals(rootKey)).toBe(true);
107
- expect(Buffer.from(cs.aliceBaseKey).equals(baseKey)).toBe(true);
108
- expect(Buffer.from(cs.remoteIdentityPublic).equals(remoteIdent)).toBe(true);
109
- expect(Buffer.from(cs.senderChain.senderRatchetKey).equals(ephPub)).toBe(true);
110
- expect(Buffer.from(cs.senderChain.senderRatchetKeyPrivate).equals(ephPriv)).toBe(true);
111
- });
112
- test('round-trip: bridge SET → upstream loadSession → still open + same identity', async () => {
113
- const { wrapped, keys } = await makeWrapped();
114
- const remoteIdentity = Buffer.alloc(33, 0x11);
115
- await wrapped.set('session', BRIDGE_SESSION_KEY_PN, buildBridgeSessionBytes({ remoteIdentity: new Uint8Array(remoteIdentity), remoteRegistrationId: 7 }));
116
- const rec = SessionRecord.deserialize(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN]);
117
- const open = rec.getOpenSession();
118
- expect(open.registrationId).toBe(7);
119
- expect(Buffer.from(open.indexInfo.remoteIdentityKey).equals(remoteIdentity)).toBe(true);
120
- });
121
- });
122
- describe('wrap-legacy-store: session edge cases', () => {
123
- test('lastRemoteEphemeralKey does NOT collide with senderRatchetKey when receiverChains empty', async () => {
124
- // Regression: the converter previously used senderRatchetKey as a
125
- // placeholder, which made upstream's `maybeStepRatchet` close the
126
- // SENDER chain on the next peer ratchet (corrupting outbound
127
- // encryption). Now uses aliceBaseKey (when bob) or empty buffer.
128
- const { wrapped, keys } = await makeWrapped();
129
- const senderRatchetPub = fill(33, 2);
130
- const aliceBaseKey = fill(33, 7);
131
- const protoBytes = bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
132
- currentSession: bridgeProto.SessionStructure.create({
133
- sessionVersion: 3,
134
- rootKey: fill(32, 1),
135
- previousCounter: 0,
136
- senderChain: {
137
- senderRatchetKey: senderRatchetPub,
138
- senderRatchetKeyPrivate: fill(32, 3),
139
- chainKey: { index: 0, key: fill(32, 4) },
140
- messageKeys: []
141
- },
142
- receiverChains: [],
143
- remoteIdentityPublic: fill(33, 8),
144
- remoteRegistrationId: 99,
145
- localRegistrationId: 11,
146
- aliceBaseKey,
147
- pendingPreKey: { preKeyId: 42, signedPreKeyId: 7, baseKey: aliceBaseKey }
148
- }),
149
- previousSessions: []
150
- })).finish();
151
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, protoBytes);
152
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
153
- const entry = Object.values(stored._sessions)[0];
154
- expect(entry.currentRatchet.lastRemoteEphemeralKey).not.toBe(Buffer.from(senderRatchetPub).toString('base64'));
155
- });
156
- test('baseKeyType: pendingPreKey present → OURS (alice), absent → THEIRS (bob)', async () => {
157
- // Regression: previously set OURS whenever aliceBaseKey existed
158
- // (always), making upstream `getSession(byBaseKey)` throw.
159
- const baseKeyTypeFor = async (withPendingPreKey) => {
160
- const { wrapped, keys } = await makeWrapped();
161
- const aliceBaseKey = fill(33, 7);
162
- const session = bridgeProto.SessionStructure.create({
163
- sessionVersion: 3,
164
- rootKey: fill(32, 1),
165
- previousCounter: 0,
166
- senderChain: {
167
- senderRatchetKey: fill(33, 2),
168
- senderRatchetKeyPrivate: fill(32, 3),
169
- chainKey: { index: 0, key: fill(32, 4) },
170
- messageKeys: []
171
- },
172
- receiverChains: withPendingPreKey
173
- ? []
174
- : [
175
- {
176
- senderRatchetKey: fill(33, 5),
177
- chainKey: { index: 1, key: fill(32, 6) },
178
- messageKeys: []
179
- }
180
- ],
181
- remoteIdentityPublic: fill(33, 8),
182
- remoteRegistrationId: 1,
183
- aliceBaseKey,
184
- ...(withPendingPreKey ? { pendingPreKey: { preKeyId: 1, signedPreKeyId: 2, baseKey: aliceBaseKey } } : {})
185
- });
186
- await wrapped.set('session', BRIDGE_SESSION_KEY_PN, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({ currentSession: session, previousSessions: [] })).finish());
187
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN];
188
- return Object.values(stored._sessions)[0].indexInfo.baseKeyType;
189
- };
190
- expect(await baseKeyTypeFor(true)).toBe(1); // OURS
191
- expect(await baseKeyTypeFor(false)).toBe(2); // THEIRS
192
- });
193
- test('multi-session: currentSession + previousSessions[] all land in upstream `_sessions`', async () => {
194
- const { wrapped, keys } = await makeWrapped();
195
- const mkSession = (rootSeed, baseKeySeed) => bridgeProto.SessionStructure.create({
196
- sessionVersion: 3,
197
- rootKey: fill(32, rootSeed),
198
- previousCounter: 0,
199
- senderChain: {
200
- senderRatchetKey: fill(33, rootSeed * 3),
201
- senderRatchetKeyPrivate: fill(32, rootSeed * 5),
202
- chainKey: { index: 0, key: fill(32, rootSeed * 7) },
203
- messageKeys: []
204
- },
205
- receiverChains: [
206
- {
207
- senderRatchetKey: fill(33, rootSeed * 11),
208
- chainKey: { index: 1, key: fill(32, rootSeed * 13) },
209
- messageKeys: []
210
- }
211
- ],
212
- remoteIdentityPublic: fill(33, 8),
213
- remoteRegistrationId: 1,
214
- aliceBaseKey: fill(33, baseKeySeed)
215
- });
216
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
217
- currentSession: mkSession(1, 100),
218
- previousSessions: [mkSession(2, 200), mkSession(3, 250)]
219
- })).finish());
220
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
221
- expect(stored.version).toBe('v1');
222
- expect(Object.keys(stored._sessions).length).toBe(3);
223
- const open = Object.values(stored._sessions).filter(e => e.indexInfo.closed === -1);
224
- expect(open.length).toBe(1);
225
- expect(open[0].indexInfo.baseKey).toBe(Buffer.from(fill(33, 100)).toString('base64'));
226
- // Front of Rust's previous_sessions = newest archived → must get
227
- // the LARGER `closed` timestamp so upstream's removeOldSessions
228
- // evicts the oldest first.
229
- const closedEntries = Object.values(stored._sessions).filter(e => e.indexInfo.closed > 0);
230
- const newer = closedEntries.find(e => e.indexInfo.baseKey === Buffer.from(fill(33, 200)).toString('base64'));
231
- const older = closedEntries.find(e => e.indexInfo.baseKey === Buffer.from(fill(33, 250)).toString('base64'));
232
- expect(newer.indexInfo.closed).toBeGreaterThan(older.indexInfo.closed);
233
- });
234
- test('pendingPreKey round-trips with field rename `signedPreKeyId↔signedKeyId`', async () => {
235
- const { wrapped, keys } = await makeWrapped();
236
- const aliceBaseKey = fill(33, 7);
237
- await wrapped.set('session', BRIDGE_SESSION_KEY_LID, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
238
- currentSession: bridgeProto.SessionStructure.create({
239
- sessionVersion: 3,
240
- rootKey: fill(32, 1),
241
- previousCounter: 0,
242
- senderChain: {
243
- senderRatchetKey: fill(33, 2),
244
- senderRatchetKeyPrivate: fill(32, 3),
245
- chainKey: { index: 0, key: fill(32, 4) },
246
- messageKeys: []
247
- },
248
- receiverChains: [],
249
- remoteIdentityPublic: fill(33, 8),
250
- remoteRegistrationId: 1,
251
- aliceBaseKey,
252
- pendingPreKey: { preKeyId: 314, signedPreKeyId: 271, baseKey: aliceBaseKey }
253
- }),
254
- previousSessions: []
255
- })).finish());
256
- const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
257
- const entry = Object.values(stored._sessions)[0];
258
- expect(entry.pendingPreKey.preKeyId).toBe(314);
259
- expect(entry.pendingPreKey.signedKeyId).toBe(271); // rename: signedPreKeyId → signedKeyId
260
- expect(entry.pendingPreKey.baseKey).toBe(Buffer.from(aliceBaseKey).toString('base64'));
261
- const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
262
- const decoded = bridgeProto.RecordStructure.decode(protoOut);
263
- expect(decoded.currentSession?.pendingPreKey?.preKeyId).toBe(314);
264
- expect(decoded.currentSession?.pendingPreKey?.signedPreKeyId).toBe(271);
265
- });
266
- test('aliceBaseKey preserved on JS→bridge regardless of baseKeyType (bob-side restoration)', async () => {
267
- // Regression: previously dropped aliceBaseKey when baseKeyType=THEIRS,
268
- // breaking Rust's `find_matching_previous_session_index` lookup on
269
- // subsequent PreKeySignal arrivals.
270
- const { wrapped, keys } = await makeWrapped();
271
- const baseKey = Buffer.alloc(33, 0xa0);
272
- keys.raw['session'] = {
273
- [UPSTREAM_SESSION_KEY_LID]: {
274
- _sessions: {
275
- [baseKey.toString('base64')]: {
276
- registrationId: 4242,
277
- currentRatchet: {
278
- ephemeralKeyPair: {
279
- pubKey: Buffer.alloc(33, 0xd0).toString('base64'),
280
- privKey: Buffer.alloc(32, 0xe0).toString('base64')
281
- },
282
- lastRemoteEphemeralKey: Buffer.alloc(33, 0xf0).toString('base64'),
283
- previousCounter: 0,
284
- rootKey: Buffer.alloc(32, 0xb0).toString('base64')
285
- },
286
- indexInfo: {
287
- baseKey: baseKey.toString('base64'),
288
- baseKeyType: 2, // THEIRS — we're bob
289
- closed: -1,
290
- used: Date.now(),
291
- created: Date.now(),
292
- remoteIdentityKey: Buffer.alloc(33, 0xc0).toString('base64')
293
- },
294
- _chains: {}
295
- }
296
- },
297
- version: 'v1'
298
- }
299
- };
300
- const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
301
- const decoded = bridgeProto.RecordStructure.decode(protoOut);
302
- expect(Buffer.from(decoded.currentSession.aliceBaseKey).equals(baseKey)).toBe(true);
303
- });
304
- });
305
- //# sourceMappingURL=wrap-legacy-store-session.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap-legacy-store-session.test.js","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session.test.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Wrap a bridge client so that any async method call captures the JS-side
3
- * call stack and re-stamps it onto rejections. The wrapped client is
4
- * indistinguishable from the unwrapped one for callers — same shape, same
5
- * promises, same return values.
6
- *
7
- * Implementation:
8
- * - `Proxy` intercepts every `get` for a method.
9
- * - The intercepted function captures a placeholder `Error` *before*
10
- * awaiting (synchronously in the JS event loop tick of the call site),
11
- * calling `Error.captureStackTrace(_, fn)` to elide its own frame and
12
- * pin the stack to the user's call site.
13
- * - On rejection, `reStampStack` grafts the captured stack onto the
14
- * `WhatsAppError`'s `stack` and rethrows.
15
- * - On success / non-promise returns / non-function gets: passthrough.
16
- *
17
- * Cost: one `new Error()` + one `captureStackTrace` per async call. V8 has
18
- * fast paths for both — sub-microsecond. Negligible for the rates the
19
- * bridge sees in practice.
20
- */
21
- export declare function wrapBridgeClient<T extends object>(client: T): T;
22
- //# sourceMappingURL=bridge-call.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge-call.d.ts","sourceRoot":"","sources":["../../src/Utils/bridge-call.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAoD/D"}