@oxidezap/baileyrs 0.0.26 → 0.0.28

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 (531) hide show
  1. package/README.md +31 -460
  2. package/lib/Bridge/adapt.d.ts +2 -0
  3. package/lib/Bridge/adapt.d.ts.map +1 -1
  4. package/lib/Bridge/adapt.js +2 -1
  5. package/lib/Bridge/adapt.js.map +1 -1
  6. package/lib/Bridge/history-sync-wire.d.ts +17 -0
  7. package/lib/Bridge/history-sync-wire.d.ts.map +1 -0
  8. package/lib/Bridge/history-sync-wire.js +61 -0
  9. package/lib/Bridge/history-sync-wire.js.map +1 -0
  10. package/lib/Bridge/index.d.ts +1 -1
  11. package/lib/Bridge/index.d.ts.map +1 -1
  12. package/lib/Bridge/index.js +3 -3
  13. package/lib/Bridge/index.js.map +1 -1
  14. package/lib/Bridge/primitives.d.ts +4 -0
  15. package/lib/Bridge/primitives.d.ts.map +1 -1
  16. package/lib/Bridge/primitives.js +14 -0
  17. package/lib/Bridge/primitives.js.map +1 -1
  18. package/lib/Bridge/schema.d.ts +9 -2
  19. package/lib/Bridge/schema.d.ts.map +1 -1
  20. package/lib/Bridge/schema.js +263 -35
  21. package/lib/Bridge/schema.js.map +1 -1
  22. package/lib/Bridge/types.d.ts +117 -3
  23. package/lib/Bridge/types.d.ts.map +1 -1
  24. package/lib/Compatibility/group-metadata.d.ts +9 -0
  25. package/lib/Compatibility/group-metadata.d.ts.map +1 -0
  26. package/lib/Compatibility/group-metadata.js +70 -0
  27. package/lib/Compatibility/group-metadata.js.map +1 -0
  28. package/lib/Compatibility/group-notifications.d.ts +22 -0
  29. package/lib/Compatibility/group-notifications.d.ts.map +1 -0
  30. package/lib/Compatibility/group-notifications.js +307 -0
  31. package/lib/Compatibility/group-notifications.js.map +1 -0
  32. package/lib/Compatibility/group-stub-params.d.ts +32 -0
  33. package/lib/Compatibility/group-stub-params.d.ts.map +1 -0
  34. package/lib/Compatibility/group-stub-params.js +57 -0
  35. package/lib/Compatibility/group-stub-params.js.map +1 -0
  36. package/lib/Compatibility/internal/async-primitives.d.ts +16 -0
  37. package/lib/Compatibility/internal/async-primitives.d.ts.map +1 -0
  38. package/lib/Compatibility/internal/async-primitives.js +42 -0
  39. package/lib/Compatibility/internal/async-primitives.js.map +1 -0
  40. package/lib/Compatibility/internal/auth-state.d.ts +15 -0
  41. package/lib/Compatibility/internal/auth-state.d.ts.map +1 -0
  42. package/lib/Compatibility/internal/auth-state.js +21 -0
  43. package/lib/Compatibility/internal/auth-state.js.map +1 -0
  44. package/lib/Compatibility/internal/cache-store.d.ts +7 -0
  45. package/lib/Compatibility/internal/cache-store.d.ts.map +1 -0
  46. package/lib/Compatibility/internal/cache-store.js +19 -0
  47. package/lib/Compatibility/internal/cache-store.js.map +1 -0
  48. package/lib/Compatibility/internal/expiring-lru-map.d.ts +21 -0
  49. package/lib/Compatibility/internal/expiring-lru-map.d.ts.map +1 -0
  50. package/lib/Compatibility/internal/expiring-lru-map.js +68 -0
  51. package/lib/Compatibility/internal/expiring-lru-map.js.map +1 -0
  52. package/lib/Compatibility/internal/make-mutex.d.ts +7 -0
  53. package/lib/Compatibility/internal/make-mutex.d.ts.map +1 -0
  54. package/lib/Compatibility/internal/make-mutex.js +31 -0
  55. package/lib/Compatibility/internal/make-mutex.js.map +1 -0
  56. package/lib/Compatibility/internal/native-memory-store.d.ts +6 -0
  57. package/lib/Compatibility/internal/native-memory-store.d.ts.map +1 -0
  58. package/lib/Compatibility/internal/native-memory-store.js +8 -0
  59. package/lib/Compatibility/internal/native-memory-store.js.map +1 -0
  60. package/lib/Compatibility/internal/numeric-enum.d.ts +8 -0
  61. package/lib/Compatibility/internal/numeric-enum.d.ts.map +1 -0
  62. package/lib/Compatibility/internal/numeric-enum.js +11 -0
  63. package/lib/Compatibility/internal/numeric-enum.js.map +1 -0
  64. package/lib/Compatibility/internal/signal-key-store.d.ts +9 -0
  65. package/lib/Compatibility/internal/signal-key-store.d.ts.map +1 -0
  66. package/lib/Compatibility/internal/signal-key-store.js +17 -0
  67. package/lib/Compatibility/internal/signal-key-store.js.map +1 -0
  68. package/lib/Compatibility/legacy-store/adapter.d.ts +4 -0
  69. package/lib/Compatibility/legacy-store/adapter.d.ts.map +1 -0
  70. package/lib/Compatibility/legacy-store/adapter.js +301 -0
  71. package/lib/Compatibility/legacy-store/adapter.js.map +1 -0
  72. package/lib/Compatibility/legacy-store/codecs/basic.d.ts +6 -0
  73. package/lib/Compatibility/legacy-store/codecs/basic.d.ts.map +1 -0
  74. package/lib/Compatibility/legacy-store/codecs/basic.js +184 -0
  75. package/lib/Compatibility/legacy-store/codecs/basic.js.map +1 -0
  76. package/lib/Compatibility/legacy-store/codecs/index.d.ts +6 -0
  77. package/lib/Compatibility/legacy-store/codecs/index.d.ts.map +1 -0
  78. package/lib/Compatibility/legacy-store/codecs/index.js +7 -0
  79. package/lib/Compatibility/legacy-store/codecs/index.js.map +1 -0
  80. package/lib/Compatibility/legacy-store/codecs/signal.d.ts +8 -0
  81. package/lib/Compatibility/legacy-store/codecs/signal.d.ts.map +1 -0
  82. package/lib/Compatibility/legacy-store/codecs/signal.js +219 -0
  83. package/lib/Compatibility/legacy-store/codecs/signal.js.map +1 -0
  84. package/lib/Compatibility/legacy-store/common.d.ts +25 -0
  85. package/lib/Compatibility/legacy-store/common.d.ts.map +1 -0
  86. package/lib/Compatibility/legacy-store/common.js +112 -0
  87. package/lib/Compatibility/legacy-store/common.js.map +1 -0
  88. package/lib/Compatibility/legacy-store/constants.d.ts +226 -0
  89. package/lib/Compatibility/legacy-store/constants.d.ts.map +1 -0
  90. package/lib/Compatibility/legacy-store/constants.js +199 -0
  91. package/lib/Compatibility/legacy-store/constants.js.map +1 -0
  92. package/lib/Compatibility/legacy-store/device.d.ts +9 -0
  93. package/lib/Compatibility/legacy-store/device.d.ts.map +1 -0
  94. package/lib/Compatibility/legacy-store/device.js +192 -0
  95. package/lib/Compatibility/legacy-store/device.js.map +1 -0
  96. package/lib/Compatibility/legacy-store/multi-file.d.ts +6 -0
  97. package/lib/Compatibility/legacy-store/multi-file.d.ts.map +1 -0
  98. package/lib/Compatibility/legacy-store/multi-file.js +84 -0
  99. package/lib/Compatibility/legacy-store/multi-file.js.map +1 -0
  100. package/lib/Compatibility/legacy-store/native-projection.d.ts +8 -0
  101. package/lib/Compatibility/legacy-store/native-projection.d.ts.map +1 -0
  102. package/lib/Compatibility/legacy-store/native-projection.js +109 -0
  103. package/lib/Compatibility/legacy-store/native-projection.js.map +1 -0
  104. package/lib/Compatibility/legacy-store/routing.d.ts +18 -0
  105. package/lib/Compatibility/legacy-store/routing.d.ts.map +1 -0
  106. package/lib/Compatibility/legacy-store/routing.js +162 -0
  107. package/lib/Compatibility/legacy-store/routing.js.map +1 -0
  108. package/lib/Compatibility/legacy-store/types.d.ts +41 -0
  109. package/lib/Compatibility/legacy-store/types.d.ts.map +1 -0
  110. package/lib/Compatibility/legacy-store/types.js +3 -0
  111. package/lib/Compatibility/legacy-store/types.js.map +1 -0
  112. package/lib/Compatibility/legacy-store/validation.d.ts +9 -0
  113. package/lib/Compatibility/legacy-store/validation.d.ts.map +1 -0
  114. package/lib/Compatibility/legacy-store/validation.js +49 -0
  115. package/lib/Compatibility/legacy-store/validation.js.map +1 -0
  116. package/lib/Compatibility/media-type.d.ts +10 -0
  117. package/lib/Compatibility/media-type.d.ts.map +1 -0
  118. package/lib/Compatibility/media-type.js +31 -0
  119. package/lib/Compatibility/media-type.js.map +1 -0
  120. package/lib/Compatibility/message-keys.d.ts +9 -0
  121. package/lib/Compatibility/message-keys.d.ts.map +1 -0
  122. package/lib/Compatibility/message-keys.js +15 -0
  123. package/lib/Compatibility/message-keys.js.map +1 -0
  124. package/lib/Compatibility/message-relay.d.ts +26 -0
  125. package/lib/Compatibility/message-relay.d.ts.map +1 -0
  126. package/lib/Compatibility/message-relay.js +61 -0
  127. package/lib/Compatibility/message-relay.js.map +1 -0
  128. package/lib/Compatibility/message-upsert.d.ts +11 -0
  129. package/lib/Compatibility/message-upsert.d.ts.map +1 -0
  130. package/lib/Compatibility/message-upsert.js +8 -0
  131. package/lib/Compatibility/message-upsert.js.map +1 -0
  132. package/lib/Compatibility/participating-refresh.d.ts +9 -0
  133. package/lib/Compatibility/participating-refresh.d.ts.map +1 -0
  134. package/lib/Compatibility/participating-refresh.js +14 -0
  135. package/lib/Compatibility/participating-refresh.js.map +1 -0
  136. package/lib/Compatibility/proto-runtime.d.ts +9 -0
  137. package/lib/Compatibility/proto-runtime.d.ts.map +1 -0
  138. package/lib/Compatibility/proto-runtime.js +567 -0
  139. package/lib/Compatibility/proto-runtime.js.map +1 -0
  140. package/lib/Compatibility/public-api/auth-utils.d.ts +6 -0
  141. package/lib/Compatibility/public-api/auth-utils.d.ts.map +1 -0
  142. package/lib/Compatibility/public-api/auth-utils.js +202 -0
  143. package/lib/Compatibility/public-api/auth-utils.js.map +1 -0
  144. package/lib/Compatibility/public-api/enum-types.d.ts +163 -0
  145. package/lib/Compatibility/public-api/enum-types.d.ts.map +1 -0
  146. package/lib/Compatibility/public-api/enum-types.js +10 -0
  147. package/lib/Compatibility/public-api/enum-types.js.map +1 -0
  148. package/lib/Compatibility/public-api/identity-change-handler.d.ts +42 -0
  149. package/lib/Compatibility/public-api/identity-change-handler.d.ts.map +1 -0
  150. package/lib/Compatibility/public-api/identity-change-handler.js +38 -0
  151. package/lib/Compatibility/public-api/identity-change-handler.js.map +1 -0
  152. package/lib/Compatibility/public-api/message-retry-manager.d.ts +62 -0
  153. package/lib/Compatibility/public-api/message-retry-manager.d.ts.map +1 -0
  154. package/lib/Compatibility/public-api/message-retry-manager.js +180 -0
  155. package/lib/Compatibility/public-api/message-retry-manager.js.map +1 -0
  156. package/lib/Compatibility/public-api/pre-key-manager.d.ts +14 -0
  157. package/lib/Compatibility/public-api/pre-key-manager.d.ts.map +1 -0
  158. package/lib/Compatibility/public-api/pre-key-manager.js +83 -0
  159. package/lib/Compatibility/public-api/pre-key-manager.js.map +1 -0
  160. package/lib/Compatibility/public-api/stanza-ack.d.ts +4 -0
  161. package/lib/Compatibility/public-api/stanza-ack.d.ts.map +1 -0
  162. package/lib/Compatibility/public-api/stanza-ack.js +20 -0
  163. package/lib/Compatibility/public-api/stanza-ack.js.map +1 -0
  164. package/lib/Compatibility/signal-repository.d.ts +12 -0
  165. package/lib/Compatibility/signal-repository.d.ts.map +1 -0
  166. package/lib/Compatibility/signal-repository.js +131 -0
  167. package/lib/Compatibility/signal-repository.js.map +1 -0
  168. package/lib/Compatibility/socket-results.d.ts +28 -0
  169. package/lib/Compatibility/socket-results.d.ts.map +1 -0
  170. package/lib/Compatibility/socket-results.js +72 -0
  171. package/lib/Compatibility/socket-results.js.map +1 -0
  172. package/lib/Compatibility/stanza-responses.d.ts +13 -0
  173. package/lib/Compatibility/stanza-responses.d.ts.map +1 -0
  174. package/lib/Compatibility/stanza-responses.js +16 -0
  175. package/lib/Compatibility/stanza-responses.js.map +1 -0
  176. package/lib/Compatibility/tagged-message-waiter.d.ts +5 -0
  177. package/lib/Compatibility/tagged-message-waiter.d.ts.map +1 -0
  178. package/lib/Compatibility/tagged-message-waiter.js +42 -0
  179. package/lib/Compatibility/tagged-message-waiter.js.map +1 -0
  180. package/lib/Compatibility/usync/adapter.d.ts +13 -0
  181. package/lib/Compatibility/usync/adapter.d.ts.map +1 -0
  182. package/lib/Compatibility/usync/adapter.js +291 -0
  183. package/lib/Compatibility/usync/adapter.js.map +1 -0
  184. package/lib/Compatibility/websocket-client.d.ts +40 -0
  185. package/lib/Compatibility/websocket-client.d.ts.map +1 -0
  186. package/lib/Compatibility/websocket-client.js +120 -0
  187. package/lib/Compatibility/websocket-client.js.map +1 -0
  188. package/lib/Defaults/index.d.ts +70 -3
  189. package/lib/Defaults/index.d.ts.map +1 -1
  190. package/lib/Defaults/index.js +107 -15
  191. package/lib/Defaults/index.js.map +1 -1
  192. package/lib/Platform/crypto.d.ts +6 -0
  193. package/lib/Platform/crypto.d.ts.map +1 -0
  194. package/lib/Platform/crypto.js +36 -0
  195. package/lib/Platform/crypto.js.map +1 -0
  196. package/lib/Socket/blocking.d.ts +2 -2
  197. package/lib/Socket/blocking.d.ts.map +1 -1
  198. package/lib/Socket/blocking.js +2 -1
  199. package/lib/Socket/blocking.js.map +1 -1
  200. package/lib/Socket/chat-actions.d.ts +2 -9
  201. package/lib/Socket/chat-actions.d.ts.map +1 -1
  202. package/lib/Socket/chat-actions.js +24 -13
  203. package/lib/Socket/chat-actions.js.map +1 -1
  204. package/lib/Socket/communities.d.ts +61 -0
  205. package/lib/Socket/communities.d.ts.map +1 -0
  206. package/lib/Socket/communities.js +72 -0
  207. package/lib/Socket/communities.js.map +1 -0
  208. package/lib/Socket/contacts.d.ts +4 -2
  209. package/lib/Socket/contacts.d.ts.map +1 -1
  210. package/lib/Socket/contacts.js +6 -4
  211. package/lib/Socket/contacts.js.map +1 -1
  212. package/lib/Socket/events.d.ts +13 -5
  213. package/lib/Socket/events.d.ts.map +1 -1
  214. package/lib/Socket/events.js +282 -57
  215. package/lib/Socket/events.js.map +1 -1
  216. package/lib/Socket/group-notifications.d.ts +1 -30
  217. package/lib/Socket/group-notifications.d.ts.map +1 -1
  218. package/lib/Socket/group-notifications.js +3 -268
  219. package/lib/Socket/group-notifications.js.map +1 -1
  220. package/lib/Socket/groups.d.ts +17 -36
  221. package/lib/Socket/groups.d.ts.map +1 -1
  222. package/lib/Socket/groups.js +111 -116
  223. package/lib/Socket/groups.js.map +1 -1
  224. package/lib/Socket/index.d.ts +140 -201
  225. package/lib/Socket/index.d.ts.map +1 -1
  226. package/lib/Socket/index.js +215 -345
  227. package/lib/Socket/index.js.map +1 -1
  228. package/lib/Socket/message-capping.d.ts +4 -0
  229. package/lib/Socket/message-capping.d.ts.map +1 -0
  230. package/lib/Socket/message-capping.js +22 -0
  231. package/lib/Socket/message-capping.js.map +1 -0
  232. package/lib/Socket/messages.d.ts +8 -14
  233. package/lib/Socket/messages.d.ts.map +1 -1
  234. package/lib/Socket/messages.js +74 -40
  235. package/lib/Socket/messages.js.map +1 -1
  236. package/lib/Socket/newsletter.d.ts +5 -0
  237. package/lib/Socket/newsletter.d.ts.map +1 -1
  238. package/lib/Socket/newsletter.js +7 -0
  239. package/lib/Socket/newsletter.js.map +1 -1
  240. package/lib/Socket/prekeys.d.ts +10 -0
  241. package/lib/Socket/prekeys.d.ts.map +1 -0
  242. package/lib/Socket/prekeys.js +21 -0
  243. package/lib/Socket/prekeys.js.map +1 -0
  244. package/lib/Socket/presence.d.ts +3 -3
  245. package/lib/Socket/presence.d.ts.map +1 -1
  246. package/lib/Socket/presence.js +2 -2
  247. package/lib/Socket/presence.js.map +1 -1
  248. package/lib/Socket/profile.d.ts +6 -8
  249. package/lib/Socket/profile.d.ts.map +1 -1
  250. package/lib/Socket/profile.js +18 -17
  251. package/lib/Socket/profile.js.map +1 -1
  252. package/lib/Socket/reachout.js +1 -1
  253. package/lib/Socket/transport.d.ts.map +1 -1
  254. package/lib/Socket/transport.js +13 -1
  255. package/lib/Socket/transport.js.map +1 -1
  256. package/lib/Socket/types.d.ts +4 -2
  257. package/lib/Socket/types.d.ts.map +1 -1
  258. package/lib/Socket/types.js.map +1 -1
  259. package/lib/Socket/usync.d.ts +12 -0
  260. package/lib/Socket/usync.d.ts.map +1 -0
  261. package/lib/Socket/usync.js +27 -0
  262. package/lib/Socket/usync.js.map +1 -0
  263. package/lib/Types/Auth.d.ts +28 -30
  264. package/lib/Types/Auth.d.ts.map +1 -1
  265. package/lib/Types/Auth.js +1 -1
  266. package/lib/Types/Auth.js.map +1 -1
  267. package/lib/Types/BinaryNode.d.ts +0 -4
  268. package/lib/Types/BinaryNode.d.ts.map +1 -1
  269. package/lib/Types/Bussines.d.ts +1 -1
  270. package/lib/Types/Bussines.d.ts.map +1 -1
  271. package/lib/Types/Call.d.ts +3 -1
  272. package/lib/Types/Call.d.ts.map +1 -1
  273. package/lib/Types/Chat.d.ts +2 -2
  274. package/lib/Types/Chat.d.ts.map +1 -1
  275. package/lib/Types/Events.d.ts +16 -5
  276. package/lib/Types/Events.d.ts.map +1 -1
  277. package/lib/Types/Events.js +1 -1
  278. package/lib/Types/Events.js.map +1 -1
  279. package/lib/Types/GroupMetadata.d.ts +4 -0
  280. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  281. package/lib/Types/Label.d.ts +3 -23
  282. package/lib/Types/Label.d.ts.map +1 -1
  283. package/lib/Types/Label.js +24 -23
  284. package/lib/Types/Label.js.map +1 -1
  285. package/lib/Types/LabelAssociation.d.ts +5 -6
  286. package/lib/Types/LabelAssociation.d.ts.map +1 -1
  287. package/lib/Types/LabelAssociation.js +4 -5
  288. package/lib/Types/LabelAssociation.js.map +1 -1
  289. package/lib/Types/Message.d.ts +45 -10
  290. package/lib/Types/Message.d.ts.map +1 -1
  291. package/lib/Types/Message.js +5 -7
  292. package/lib/Types/Message.js.map +1 -1
  293. package/lib/Types/Newsletter.d.ts +5 -28
  294. package/lib/Types/Newsletter.d.ts.map +1 -1
  295. package/lib/Types/Newsletter.js +34 -30
  296. package/lib/Types/Newsletter.js.map +1 -1
  297. package/lib/Types/Product.d.ts +75 -0
  298. package/lib/Types/Product.d.ts.map +1 -0
  299. package/lib/Types/Product.js +2 -0
  300. package/lib/Types/Product.js.map +1 -0
  301. package/lib/Types/Reachout.d.ts +3 -18
  302. package/lib/Types/Reachout.d.ts.map +1 -1
  303. package/lib/Types/Reachout.js +20 -19
  304. package/lib/Types/Reachout.js.map +1 -1
  305. package/lib/Types/Signal.d.ts +91 -0
  306. package/lib/Types/Signal.d.ts.map +1 -0
  307. package/lib/Types/Signal.js +2 -0
  308. package/lib/Types/Signal.js.map +1 -0
  309. package/lib/Types/Socket.d.ts +76 -30
  310. package/lib/Types/Socket.d.ts.map +1 -1
  311. package/lib/Types/State.d.ts +19 -0
  312. package/lib/Types/State.d.ts.map +1 -1
  313. package/lib/Types/State.js +26 -1
  314. package/lib/Types/State.js.map +1 -1
  315. package/lib/Types/USync.d.ts +9 -0
  316. package/lib/Types/USync.d.ts.map +1 -0
  317. package/lib/Types/USync.js +2 -0
  318. package/lib/Types/USync.js.map +1 -0
  319. package/lib/Types/index.d.ts +9 -12
  320. package/lib/Types/index.d.ts.map +1 -1
  321. package/lib/Types/index.js +30 -30
  322. package/lib/Types/index.js.map +1 -1
  323. package/lib/Utils/auth-utils.d.ts +2 -0
  324. package/lib/Utils/auth-utils.d.ts.map +1 -0
  325. package/lib/Utils/auth-utils.js +3 -0
  326. package/lib/Utils/auth-utils.js.map +1 -0
  327. package/lib/Utils/boom.d.ts +8 -32
  328. package/lib/Utils/boom.d.ts.map +1 -1
  329. package/lib/Utils/boom.js +7 -62
  330. package/lib/Utils/boom.js.map +1 -1
  331. package/lib/Utils/browser-utils.d.ts +1 -0
  332. package/lib/Utils/browser-utils.d.ts.map +1 -1
  333. package/lib/Utils/browser-utils.js +6 -0
  334. package/lib/Utils/browser-utils.js.map +1 -1
  335. package/lib/Utils/companion-reg-client-utils.d.ts +8 -0
  336. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  337. package/lib/Utils/companion-reg-client-utils.js +32 -0
  338. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  339. package/lib/Utils/crypto.d.ts +31 -0
  340. package/lib/Utils/crypto.d.ts.map +1 -0
  341. package/lib/Utils/crypto.js +81 -0
  342. package/lib/Utils/crypto.js.map +1 -0
  343. package/lib/Utils/event-buffer.d.ts +15 -4
  344. package/lib/Utils/event-buffer.d.ts.map +1 -1
  345. package/lib/Utils/event-buffer.js +471 -34
  346. package/lib/Utils/event-buffer.js.map +1 -1
  347. package/lib/Utils/generics.d.ts +52 -15
  348. package/lib/Utils/generics.d.ts.map +1 -1
  349. package/lib/Utils/generics.js +269 -25
  350. package/lib/Utils/generics.js.map +1 -1
  351. package/lib/Utils/group-stub-params.d.ts +1 -28
  352. package/lib/Utils/group-stub-params.d.ts.map +1 -1
  353. package/lib/Utils/group-stub-params.js +2 -44
  354. package/lib/Utils/group-stub-params.js.map +1 -1
  355. package/lib/Utils/identity-change-handler.d.ts +2 -0
  356. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  357. package/lib/Utils/identity-change-handler.js +4 -0
  358. package/lib/Utils/identity-change-handler.js.map +1 -0
  359. package/lib/Utils/index.d.ts +9 -0
  360. package/lib/Utils/index.d.ts.map +1 -1
  361. package/lib/Utils/index.js +19 -10
  362. package/lib/Utils/index.js.map +1 -1
  363. package/lib/Utils/logger.d.ts.map +1 -1
  364. package/lib/Utils/message-retry-manager.d.ts +2 -0
  365. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  366. package/lib/Utils/message-retry-manager.js +4 -0
  367. package/lib/Utils/message-retry-manager.js.map +1 -0
  368. package/lib/Utils/messages-media.d.ts +28 -6
  369. package/lib/Utils/messages-media.d.ts.map +1 -1
  370. package/lib/Utils/messages-media.js +119 -1
  371. package/lib/Utils/messages-media.js.map +1 -1
  372. package/lib/Utils/messages.d.ts +33 -9
  373. package/lib/Utils/messages.d.ts.map +1 -1
  374. package/lib/Utils/messages.js +106 -33
  375. package/lib/Utils/messages.js.map +1 -1
  376. package/lib/Utils/native-crypto-provider.d.ts +10 -8
  377. package/lib/Utils/native-crypto-provider.d.ts.map +1 -1
  378. package/lib/Utils/native-crypto-provider.js +13 -56
  379. package/lib/Utils/native-crypto-provider.js.map +1 -1
  380. package/lib/Utils/pre-key-manager.d.ts +2 -0
  381. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  382. package/lib/Utils/pre-key-manager.js +3 -0
  383. package/lib/Utils/pre-key-manager.js.map +1 -0
  384. package/lib/Utils/process-history-message.d.ts +15 -4
  385. package/lib/Utils/process-history-message.d.ts.map +1 -1
  386. package/lib/Utils/process-history-message.js +162 -95
  387. package/lib/Utils/process-history-message.js.map +1 -1
  388. package/lib/Utils/process-message.d.ts +25 -0
  389. package/lib/Utils/process-message.d.ts.map +1 -0
  390. package/lib/Utils/process-message.js +79 -0
  391. package/lib/Utils/process-message.js.map +1 -0
  392. package/lib/Utils/signal.d.ts +29 -0
  393. package/lib/Utils/signal.d.ts.map +1 -0
  394. package/lib/Utils/signal.js +133 -0
  395. package/lib/Utils/signal.js.map +1 -0
  396. package/lib/Utils/sparse-array.d.ts +9 -0
  397. package/lib/Utils/sparse-array.d.ts.map +1 -0
  398. package/lib/Utils/sparse-array.js +12 -0
  399. package/lib/Utils/sparse-array.js.map +1 -0
  400. package/lib/Utils/stanza-ack.d.ts +2 -0
  401. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  402. package/lib/Utils/stanza-ack.js +3 -0
  403. package/lib/Utils/stanza-ack.js.map +1 -0
  404. package/lib/Utils/use-bridge-store.d.ts.map +1 -1
  405. package/lib/Utils/use-bridge-store.js +191 -7
  406. package/lib/Utils/use-bridge-store.js.map +1 -1
  407. package/lib/Utils/use-memory-store.d.ts +8 -4
  408. package/lib/Utils/use-memory-store.d.ts.map +1 -1
  409. package/lib/Utils/use-memory-store.js +87 -10
  410. package/lib/Utils/use-memory-store.js.map +1 -1
  411. package/lib/Utils/use-multi-file-auth-state.d.ts +4 -2
  412. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -1
  413. package/lib/Utils/use-multi-file-auth-state.js +13 -5
  414. package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
  415. package/lib/Utils/wrap-legacy-store.d.ts +8 -32
  416. package/lib/Utils/wrap-legacy-store.d.ts.map +1 -1
  417. package/lib/Utils/wrap-legacy-store.js +7 -1214
  418. package/lib/Utils/wrap-legacy-store.js.map +1 -1
  419. package/lib/WABinary/generic-utils.d.ts +8 -0
  420. package/lib/WABinary/generic-utils.d.ts.map +1 -1
  421. package/lib/WABinary/generic-utils.js +63 -1
  422. package/lib/WABinary/generic-utils.js.map +1 -1
  423. package/lib/WABinary/index.js +2 -2
  424. package/lib/WABinary/jid-utils.d.ts +22 -10
  425. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  426. package/lib/WABinary/jid-utils.js +40 -9
  427. package/lib/WABinary/jid-utils.js.map +1 -1
  428. package/lib/WAProto/compatibility-schema.d.ts +25 -0
  429. package/lib/WAProto/compatibility-schema.d.ts.map +1 -0
  430. package/lib/WAProto/compatibility-schema.js +6 -0
  431. package/lib/WAProto/compatibility-schema.js.map +1 -0
  432. package/lib/WAProto/runtime.d.ts +14019 -0
  433. package/lib/WAProto/runtime.js +17 -0
  434. package/lib/WAProto/runtime.js.map +1 -0
  435. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -0
  436. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts.map +1 -0
  437. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +39 -0
  438. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js.map +1 -0
  439. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
  440. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  441. package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -0
  442. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  443. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  444. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  445. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +41 -0
  446. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  447. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  448. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  449. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +19 -0
  450. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  451. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +10 -0
  452. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts.map +1 -0
  453. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +15 -0
  454. package/lib/WAUSync/Protocols/USyncLIDProtocol.js.map +1 -0
  455. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  456. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  457. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +25 -0
  458. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  459. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  460. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  461. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +21 -0
  462. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  463. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  464. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  465. package/lib/WAUSync/Protocols/index.js +6 -0
  466. package/lib/WAUSync/Protocols/index.js.map +1 -0
  467. package/lib/WAUSync/USyncQuery.d.ts +30 -0
  468. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  469. package/lib/WAUSync/USyncQuery.js +78 -0
  470. package/lib/WAUSync/USyncQuery.js.map +1 -0
  471. package/lib/WAUSync/USyncUser.d.ts +17 -0
  472. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  473. package/lib/WAUSync/USyncUser.js +31 -0
  474. package/lib/WAUSync/USyncUser.js.map +1 -0
  475. package/lib/WAUSync/index.d.ts +4 -0
  476. package/lib/WAUSync/index.d.ts.map +1 -0
  477. package/lib/WAUSync/index.js +4 -0
  478. package/lib/WAUSync/index.js.map +1 -0
  479. package/lib/index.d.ts +2 -1
  480. package/lib/index.d.ts.map +1 -1
  481. package/lib/index.js +9 -9
  482. package/lib/index.js.map +1 -1
  483. package/package.json +33 -15
  484. package/lib/Bridge/__tests__/adapt.test.d.ts +0 -2
  485. package/lib/Bridge/__tests__/adapt.test.d.ts.map +0 -1
  486. package/lib/Bridge/__tests__/adapt.test.js +0 -387
  487. package/lib/Bridge/__tests__/adapt.test.js.map +0 -1
  488. package/lib/Bridge/__tests__/dts-drift.test.d.ts +0 -13
  489. package/lib/Bridge/__tests__/dts-drift.test.d.ts.map +0 -1
  490. package/lib/Bridge/__tests__/dts-drift.test.js +0 -90
  491. package/lib/Bridge/__tests__/dts-drift.test.js.map +0 -1
  492. package/lib/Bridge/__tests__/fixtures.d.ts +0 -192
  493. package/lib/Bridge/__tests__/fixtures.d.ts.map +0 -1
  494. package/lib/Bridge/__tests__/fixtures.js +0 -99
  495. package/lib/Bridge/__tests__/fixtures.js.map +0 -1
  496. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts +0 -73
  497. package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts.map +0 -1
  498. package/lib/Utils/__tests__/_legacy-store-fixtures.js +0 -113
  499. package/lib/Utils/__tests__/_legacy-store-fixtures.js.map +0 -1
  500. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts +0 -10
  501. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts.map +0 -1
  502. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js +0 -291
  503. package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js.map +0 -1
  504. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts +0 -8
  505. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts.map +0 -1
  506. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js +0 -91
  507. package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js.map +0 -1
  508. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts +0 -10
  509. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts.map +0 -1
  510. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js +0 -125
  511. package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js.map +0 -1
  512. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts +0 -2
  513. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts.map +0 -1
  514. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js +0 -214
  515. package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js.map +0 -1
  516. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts +0 -14
  517. package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts.map +0 -1
  518. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js +0 -305
  519. package/lib/Utils/__tests__/wrap-legacy-store-session.test.js.map +0 -1
  520. package/lib/Utils/bridge-call.d.ts +0 -22
  521. package/lib/Utils/bridge-call.d.ts.map +0 -1
  522. package/lib/Utils/bridge-call.js +0 -105
  523. package/lib/Utils/bridge-call.js.map +0 -1
  524. package/lib/Utils/lid-mapping-store.d.ts +0 -81
  525. package/lib/Utils/lid-mapping-store.d.ts.map +0 -1
  526. package/lib/Utils/lid-mapping-store.js +0 -126
  527. package/lib/Utils/lid-mapping-store.js.map +0 -1
  528. package/lib/__tests__/expect.d.ts +0 -44
  529. package/lib/__tests__/expect.d.ts.map +0 -1
  530. package/lib/__tests__/expect.js +0 -100
  531. package/lib/__tests__/expect.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Create a fixed-length sparse array without initializing every slot.
3
+ *
4
+ * History-sync decoders fill a contiguous prefix and truncate malformed or
5
+ * absent entries before exposing the result. Keeping this operation explicit
6
+ * avoids repeated array growth without paying `Array.from`'s O(length) fill.
7
+ */
8
+ export declare function createSparseArray<T>(length: number): T[];
9
+ //# sourceMappingURL=sparse-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparse-array.d.ts","sourceRoot":"","sources":["../../src/Utils/sparse-array.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAGxD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Create a fixed-length sparse array without initializing every slot.
3
+ *
4
+ * History-sync decoders fill a contiguous prefix and truncate malformed or
5
+ * absent entries before exposing the result. Keeping this operation explicit
6
+ * avoids repeated array growth without paying `Array.from`'s O(length) fill.
7
+ */
8
+ export function createSparseArray(length) {
9
+ // oxlint-disable-next-line unicorn/no-new-array -- sparse allocation is intentional; callers fill and truncate the prefix
10
+ return new Array(length);
11
+ }
12
+ //# sourceMappingURL=sparse-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparse-array.js","sourceRoot":"","sources":["../../src/Utils/sparse-array.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAI,MAAc;IAClD,0HAA0H;IAC1H,OAAO,IAAI,KAAK,CAAI,MAAM,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../Compatibility/public-api/stanza-ack.js';
2
+ //# sourceMappingURL=stanza-ack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stanza-ack.d.ts","sourceRoot":"","sources":["../../src/Utils/stanza-ack.ts"],"names":[],"mappings":"AACA,cAAc,2CAA2C,CAAA"}
@@ -0,0 +1,3 @@
1
+ // Stable public/deep-import facade for the Baileys ACK stanza adapter.
2
+ export * from '../Compatibility/public-api/stanza-ack.js';
3
+ //# sourceMappingURL=stanza-ack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stanza-ack.js","sourceRoot":"","sources":["../../src/Utils/stanza-ack.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,cAAc,2CAA2C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-bridge-store.d.ts","sourceRoot":"","sources":["../../src/Utils/use-bridge-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAsC5D;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAsIvG"}
1
+ {"version":3,"file":"use-bridge-store.d.ts","sourceRoot":"","sources":["../../src/Utils/use-bridge-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AA+C5D;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAqUvG"}
@@ -1,5 +1,5 @@
1
1
  import { Buffer } from 'node:buffer';
2
- import { mkdir, readFile, unlink, writeFile } from 'node:fs/promises';
2
+ import { mkdir, readdir, readFile, unlink, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  /**
5
5
  * Stores whose loss on SIGKILL produces undecryptable messages or
@@ -36,6 +36,14 @@ const CRITICAL_STORES = new Set([
36
36
  'sync_version',
37
37
  'mutation_mac'
38
38
  ]);
39
+ /**
40
+ * `ENOENT` is the only error tolerated on a write/readdir: it means the auth
41
+ * folder was removed (e.g. during shutdown/cleanup). Any other error (ENOSPC,
42
+ * EACCES, EIO, ENOTDIR) is a real persistence failure that MUST propagate —
43
+ * swallowing it would silently lose Signal session state or message secrets
44
+ * while the caller believes the write succeeded.
45
+ */
46
+ const isEnoent = (e) => e?.code === 'ENOENT';
39
47
  /**
40
48
  * Creates a file-based store for the WASM bridge.
41
49
  *
@@ -62,6 +70,18 @@ export async function useBridgeStore(folder) {
62
70
  }
63
71
  };
64
72
  const filePath = (store, key) => join(folder, `${store}-${encodeURIComponent(key)}.bin`);
73
+ // Durable write that propagates real failures but tolerates the folder
74
+ // having been removed (shutdown race). Used by both `set` and `setMany`.
75
+ const writeCritical = async (store, key, value) => {
76
+ try {
77
+ await writeFile(filePath(store, key), value);
78
+ }
79
+ catch (e) {
80
+ if (!isEnoent(e))
81
+ throw e;
82
+ // folder removed during shutdown — nothing to persist into
83
+ }
84
+ };
65
85
  // Batch write queue: coalesces rapid writes to the same key
66
86
  const pendingWrites = new Map();
67
87
  const WRITE_DELAY_MS = 50;
@@ -78,6 +98,28 @@ export async function useBridgeStore(folder) {
78
98
  // Ignore — folder may have been deleted during cleanup
79
99
  }
80
100
  };
101
+ // Delete many keys concurrently (shared by `deleteMany` and `deletePrefix`).
102
+ // Defined as a closure rather than a method so callers don't depend on
103
+ // `this` — the bridge invokes every store callback with `this = null`.
104
+ const doDeleteMany = async (store, keys) => {
105
+ if (keys.length === 0)
106
+ return;
107
+ await Promise.all(keys.map(async (key) => {
108
+ const cacheKey = `${store}\0${key}`;
109
+ cache.delete(cacheKey);
110
+ const existing = pendingWrites.get(cacheKey);
111
+ if (existing) {
112
+ clearTimeout(existing.timer);
113
+ pendingWrites.delete(cacheKey);
114
+ }
115
+ try {
116
+ await unlink(filePath(store, key));
117
+ }
118
+ catch {
119
+ // ignore if file doesn't exist
120
+ }
121
+ }));
122
+ };
81
123
  const FLUSH_MAX_PASSES = 32;
82
124
  const flushAll = async () => {
83
125
  // Drain in a loop because new sets can land while we're awaiting the
@@ -94,6 +136,59 @@ export async function useBridgeStore(folder) {
94
136
  throw new Error(`use-bridge-store flushAll did not quiesce after ${FLUSH_MAX_PASSES} passes (${pendingWrites.size} pending writes remain)`);
95
137
  }
96
138
  };
139
+ // Enumerate live keys in a namespace (shared by `listKeys` and
140
+ // `deletePrefix`). Closure, not a method, so it never depends on `this`.
141
+ // Files are `<store>-<encodeURIComponent(key)>.bin`; store names never
142
+ // contain a hyphen, so split on the FIRST hyphen and decode the remainder.
143
+ // readdir (durable view) is unioned with not-yet-flushed debounced writes
144
+ // so a key written <50ms ago isn't missed; a flush is awaited first so a
145
+ // torn debounce window can't drop a key. Pending deletes both cancel their
146
+ // `pendingWrites` entry AND unlink immediately, so they never appear here.
147
+ const doListKeys = async (store, prefix) => {
148
+ await flushAll();
149
+ const filePrefix = `${store}-`;
150
+ const found = new Set();
151
+ let entries;
152
+ try {
153
+ entries = await readdir(folder);
154
+ }
155
+ catch (e) {
156
+ // Folder removed (shutdown) → genuinely empty. Any other error
157
+ // (EACCES/EIO) must NOT masquerade as "no keys", or the core would
158
+ // think persisted state is gone and could prune live indexes.
159
+ if (isEnoent(e))
160
+ entries = [];
161
+ else
162
+ throw e;
163
+ }
164
+ for (const file of entries) {
165
+ if (!file.startsWith(filePrefix) || !file.endsWith('.bin'))
166
+ continue;
167
+ const encoded = file.slice(filePrefix.length, -'.bin'.length);
168
+ let key;
169
+ try {
170
+ key = decodeURIComponent(encoded);
171
+ }
172
+ catch {
173
+ continue; // skip a filename we can't decode rather than crash
174
+ }
175
+ if (prefix && !key.startsWith(prefix))
176
+ continue;
177
+ found.add(key);
178
+ }
179
+ // Union any writes still pending after the flush (a fresh set could land
180
+ // while flushAll awaited). Belt-and-suspenders.
181
+ for (const cacheKey of pendingWrites.keys()) {
182
+ const sep = cacheKey.indexOf('\0');
183
+ if (sep < 0 || cacheKey.slice(0, sep) !== store)
184
+ continue;
185
+ const key = cacheKey.slice(sep + 1);
186
+ if (prefix && !key.startsWith(prefix))
187
+ continue;
188
+ found.add(key);
189
+ }
190
+ return [...found];
191
+ };
97
192
  return {
98
193
  async get(store, key) {
99
194
  const cacheKey = `${store}\0${key}`;
@@ -128,12 +223,9 @@ export async function useBridgeStore(folder) {
128
223
  clearTimeout(existing.timer);
129
224
  pendingWrites.delete(cacheKey);
130
225
  }
131
- try {
132
- await writeFile(filePath(store, key), value);
133
- }
134
- catch {
135
- // Directory may have been removed during shutdown
136
- }
226
+ // Propagate real failures (ENOSPC/EACCES/…) — losing a critical
227
+ // Signal write silently corrupts the next decrypt.
228
+ await writeCritical(store, key, value);
137
229
  return;
138
230
  }
139
231
  // Non-critical writes: coalesce rapid writes to the same key
@@ -162,6 +254,98 @@ export async function useBridgeStore(folder) {
162
254
  // ignore if file doesn't exist
163
255
  }
164
256
  },
257
+ // Batched variant of `set`. The bridge calls this (when present) to
258
+ // persist a burst of entries in a single FFI crossing instead of N
259
+ // round-trips (e.g. ~20k messageSecrets from a history sync). Per-entry
260
+ // semantics are identical to `set` — same skip-if-equal, same cache
261
+ // touch, same critical-vs-debounced write policy.
262
+ async setMany(store, entries) {
263
+ // Empty batch is a valid no-op.
264
+ if (entries.length === 0)
265
+ return;
266
+ const critical = CRITICAL_STORES.has(store);
267
+ // Collect critical writes so we can run them concurrently with
268
+ // Promise.all instead of awaiting each writeFile serially in a loop.
269
+ const criticalWrites = [];
270
+ for (const [key, value] of entries) {
271
+ const cacheKey = `${store}\0${key}`;
272
+ // Skip write if value is identical to cached version.
273
+ // Buffer.compare accepts Uint8Array directly (no copy), unlike
274
+ // Buffer.from(prev).equals(Buffer.from(value)) which copied both.
275
+ const prev = cache.get(cacheKey);
276
+ if (prev && prev.length === value.length && Buffer.compare(prev, value) === 0) {
277
+ continue;
278
+ }
279
+ touchCache(cacheKey, value);
280
+ if (critical) {
281
+ // Cancel any pending debounced write for this key first,
282
+ // exactly like `set` does, then write immediately.
283
+ const existing = pendingWrites.get(cacheKey);
284
+ if (existing) {
285
+ clearTimeout(existing.timer);
286
+ pendingWrites.delete(cacheKey);
287
+ }
288
+ // Propagate real failures: if a critical write in the batch
289
+ // fails, setMany rejects, and the Rust core skips the
290
+ // follow-up self-index rewrite (so the index can't claim a
291
+ // value exists that was never persisted).
292
+ criticalWrites.push(writeCritical(store, key, value));
293
+ continue;
294
+ }
295
+ // Non-critical writes: coalesce rapid writes to the same key.
296
+ // The debounce already coalesces a burst, so scheduling each
297
+ // entry is fine — no immediate flush needed.
298
+ const existing = pendingWrites.get(cacheKey);
299
+ if (existing) {
300
+ clearTimeout(existing.timer);
301
+ }
302
+ const path = filePath(store, key);
303
+ const timer = setTimeout(() => void flushWrite(cacheKey), WRITE_DELAY_MS);
304
+ timer.unref(); // Don't keep the process alive for debounced writes
305
+ pendingWrites.set(cacheKey, { path, value, timer });
306
+ }
307
+ // Run all critical writes concurrently.
308
+ if (criticalWrites.length > 0) {
309
+ await Promise.all(criticalWrites);
310
+ }
311
+ },
312
+ // Batched variant of `delete`. Per-key semantics are identical to
313
+ // `delete`; unlinks run concurrently via Promise.all.
314
+ deleteMany: doDeleteMany,
315
+ // Read many keys at once. Cache-aside per key (like `get`), so a hit
316
+ // never touches disk; misses read the file. Missing keys are omitted.
317
+ async getMany(store, keys) {
318
+ if (keys.length === 0)
319
+ return [];
320
+ const results = await Promise.all(keys.map(async (key) => {
321
+ const cacheKey = `${store}\0${key}`;
322
+ const cached = cache.get(cacheKey);
323
+ if (cached)
324
+ return [key, cached];
325
+ const pending = pendingWrites.get(cacheKey);
326
+ if (pending)
327
+ return [key, pending.value];
328
+ try {
329
+ const data = await readFile(filePath(store, key));
330
+ const arr = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
331
+ touchCache(cacheKey, arr);
332
+ return [key, arr];
333
+ }
334
+ catch {
335
+ return null;
336
+ }
337
+ }));
338
+ return results.filter((r) => r !== null);
339
+ },
340
+ listKeys: doListKeys,
341
+ async deletePrefix(store, prefix) {
342
+ const keys = await doListKeys(store, prefix);
343
+ await doDeleteMany(store, keys);
344
+ return keys.length;
345
+ },
346
+ // File-per-key can do everything; enumeration via readdir lets the core
347
+ // drop its hand-maintained meta-indexes for this backend.
348
+ capabilities: { batch: true, enumerate: true, prefixDelete: true },
165
349
  flush: flushAll
166
350
  };
167
351
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-bridge-store.js","sourceRoot":"","sources":["../../src/Utils/use-bridge-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-bridge-store.js","sourceRoot":"","sources":["../../src/Utils/use-bridge-store.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import type { AuthenticationState } from '../Types/index.js';
2
2
  /**
3
- * Creates a purely in-memory store for the WASM bridge.
3
+ * Creates a purely in-memory authentication store.
4
4
  *
5
- * All state lives in a Map and is lost when the process exits.
6
- * Useful for benchmarks, tests, and ephemeral sessions.
5
+ * By default, a reusable host Map owns the bytes. `{ native: true }` instead
6
+ * selects the socket-local in-memory backend already owned by the core, avoiding
7
+ * host/WASM storage crossings. Native state is intentionally ephemeral and is
8
+ * not reusable by a later socket instance.
7
9
  */
8
- export declare function useMemoryStore(): NonNullable<AuthenticationState['store']>;
10
+ export declare function useMemoryStore(options?: {
11
+ native?: boolean;
12
+ }): NonNullable<AuthenticationState['store']>;
9
13
  //# sourceMappingURL=use-memory-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-memory-store.d.ts","sourceRoot":"","sources":["../../src/Utils/use-memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAI5D;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAkB1E"}
1
+ {"version":3,"file":"use-memory-store.d.ts","sourceRoot":"","sources":["../../src/Utils/use-memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAK5D;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CA2F5G"}
@@ -1,23 +1,100 @@
1
- const cacheKey = (store, key) => `${store}\0${key}`;
1
+ import { markNativeMemoryStore } from '../Compatibility/internal/native-memory-store.js';
2
2
  /**
3
- * Creates a purely in-memory store for the WASM bridge.
3
+ * Creates a purely in-memory authentication store.
4
4
  *
5
- * All state lives in a Map and is lost when the process exits.
6
- * Useful for benchmarks, tests, and ephemeral sessions.
5
+ * By default, a reusable host Map owns the bytes. `{ native: true }` instead
6
+ * selects the socket-local in-memory backend already owned by the core, avoiding
7
+ * host/WASM storage crossings. Native state is intentionally ephemeral and is
8
+ * not reusable by a later socket instance.
7
9
  */
8
- export function useMemoryStore() {
9
- const data = new Map();
10
- return {
10
+ export function useMemoryStore(options = {}) {
11
+ const stores = new Map();
12
+ const bucketForWrite = (store) => {
13
+ let bucket = stores.get(store);
14
+ if (!bucket) {
15
+ bucket = new Map();
16
+ stores.set(store, bucket);
17
+ }
18
+ return bucket;
19
+ };
20
+ const deleteEmptyBucket = (store, bucket) => {
21
+ if (bucket.size === 0)
22
+ stores.delete(store);
23
+ };
24
+ const memoryStore = {
11
25
  async get(store, key) {
12
- return data.get(cacheKey(store, key)) ?? null;
26
+ return stores.get(store)?.get(key) ?? null;
13
27
  },
14
28
  async set(store, key, value) {
15
- data.set(cacheKey(store, key), value);
29
+ bucketForWrite(store).set(key, value);
16
30
  },
17
31
  async delete(store, key) {
18
- data.delete(cacheKey(store, key));
32
+ const bucket = stores.get(store);
33
+ if (!bucket)
34
+ return;
35
+ bucket.delete(key);
36
+ deleteEmptyBucket(store, bucket);
37
+ },
38
+ async setMany(store, entries) {
39
+ if (entries.length === 0)
40
+ return;
41
+ const bucket = bucketForWrite(store);
42
+ for (const [key, value] of entries)
43
+ bucket.set(key, value);
44
+ },
45
+ async getMany(store, keys) {
46
+ const bucket = stores.get(store);
47
+ if (!bucket)
48
+ return [];
49
+ const out = [];
50
+ for (const key of keys) {
51
+ const value = bucket.get(key);
52
+ if (value !== undefined)
53
+ out.push([key, value]);
54
+ }
55
+ return out;
56
+ },
57
+ async deleteMany(store, keys) {
58
+ const bucket = stores.get(store);
59
+ if (!bucket)
60
+ return;
61
+ for (const key of keys)
62
+ bucket.delete(key);
63
+ deleteEmptyBucket(store, bucket);
64
+ },
65
+ async listKeys(store, prefix) {
66
+ const bucket = stores.get(store);
67
+ if (!bucket)
68
+ return [];
69
+ const out = [];
70
+ for (const key of bucket.keys()) {
71
+ if (prefix && !key.startsWith(prefix))
72
+ continue;
73
+ out.push(key);
74
+ }
75
+ return out;
76
+ },
77
+ async deletePrefix(store, prefix) {
78
+ const bucket = stores.get(store);
79
+ if (!bucket)
80
+ return 0;
81
+ let deleted = 0;
82
+ for (const key of bucket.keys()) {
83
+ if (!key.startsWith(prefix))
84
+ continue;
85
+ bucket.delete(key);
86
+ deleted += 1;
87
+ }
88
+ deleteEmptyBucket(store, bucket);
89
+ return deleted;
19
90
  },
91
+ // Declares the optional primitives the bridge may use. An in-memory Map
92
+ // can do everything; enumeration lets the core drop its meta-indexes.
93
+ capabilities: { batch: true, enumerate: true, prefixDelete: true },
20
94
  async flush() { }
21
95
  };
96
+ if (options.native)
97
+ markNativeMemoryStore(memoryStore);
98
+ return memoryStore;
22
99
  }
23
100
  //# sourceMappingURL=use-memory-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-memory-store.js","sourceRoot":"","sources":["../../src/Utils/use-memory-store.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,GAAG,EAAE,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAA;IAE1C,OAAO;QACN,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,GAAW;YACnC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;QAC9C,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,KAAiB;YACtD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,GAAW;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QAClC,CAAC;QAED,KAAK,CAAC,KAAK,KAAI,CAAC;KAChB,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"use-memory-store.js","sourceRoot":"","sources":["../../src/Utils/use-memory-store.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { AuthenticationState } from '../Types/index.js';
2
2
  /**
3
3
  * Creates a file-based authentication state for the Rust bridge.
4
4
  *
5
- * All crypto keys, sessions, and identity are managed by the Rust engine
6
- * and persisted as `.bin` files via the bridge store. No `creds.json` needed.
5
+ * All effective crypto keys, sessions, and identity are managed by the Rust
6
+ * engine and persisted as `.bin` files via the bridge store. The returned
7
+ * `creds` and `keys` are complete upstream-compatible mirrors so unchanged
8
+ * application code can inspect them or clear legacy entries safely.
7
9
  *
8
10
  * Returns a `saveCreds` no-op for upstream-Baileys API parity. Upstream
9
11
  * bots wire `ev.on('creds.update', saveCreds)` as the persistence hook;
@@ -1 +1 @@
1
- {"version":3,"file":"use-multi-file-auth-state.d.ts","sourceRoot":"","sources":["../../src/Utils/use-multi-file-auth-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GACjC,QAAQ,MAAM,KACZ,OAAO,CAAC;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAqBxE,CAAA"}
1
+ {"version":3,"file":"use-multi-file-auth-state.d.ts","sourceRoot":"","sources":["../../src/Utils/use-multi-file-auth-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAK5D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,WACzB,MAAM,KACZ,OAAO,CAAC;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAyBxE,CAAA"}
@@ -1,10 +1,14 @@
1
1
  import { mkdir, stat } from 'node:fs/promises';
2
- import { useBridgeStore } from "./use-bridge-store.js";
2
+ import { projectNativeStore } from '../Compatibility/legacy-store/native-projection.js';
3
+ import { initAuthCreds } from './generics.js';
4
+ import { useBridgeStore } from './use-bridge-store.js';
3
5
  /**
4
6
  * Creates a file-based authentication state for the Rust bridge.
5
7
  *
6
- * All crypto keys, sessions, and identity are managed by the Rust engine
7
- * and persisted as `.bin` files via the bridge store. No `creds.json` needed.
8
+ * All effective crypto keys, sessions, and identity are managed by the Rust
9
+ * engine and persisted as `.bin` files via the bridge store. The returned
10
+ * `creds` and `keys` are complete upstream-compatible mirrors so unchanged
11
+ * application code can inspect them or clear legacy entries safely.
8
12
  *
9
13
  * Returns a `saveCreds` no-op for upstream-Baileys API parity. Upstream
10
14
  * bots wire `ev.on('creds.update', saveCreds)` as the persistence hook;
@@ -25,10 +29,14 @@ export const useMultiFileAuthState = async (folder) => {
25
29
  await mkdir(folder, { recursive: true });
26
30
  }
27
31
  const store = await useBridgeStore(folder);
32
+ const creds = initAuthCreds();
33
+ const keys = projectNativeStore(store, creds);
28
34
  return {
29
- state: { store },
35
+ state: { creds, keys, store },
30
36
  saveCreds: async () => {
31
- // no-op: bridge owns creds and writes them through `store.set('device', …)`.
37
+ // no-op: bridge owns effective creds and writes them through
38
+ // `store.set('device', …)`; the in-process mirror is merged before this
39
+ // hook runs.
32
40
  // Kept on the surface so upstream-Baileys code paths keep type-checking.
33
41
  }
34
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-multi-file-auth-state.js","sourceRoot":"","sources":["../../src/Utils/use-multi-file-auth-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,MAAc,EAC4D,EAAE;IAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACd,8CAA8C,MAAM,oDAAoD,CACxG,CAAA;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO;QACN,KAAK,EAAE,EAAE,KAAK,EAAE;QAChB,SAAS,EAAE,KAAK,IAAI,EAAE;YACrB,6EAA6E;YAC7E,yEAAyE;QAC1E,CAAC;KACD,CAAA;AACF,CAAC,CAAA"}
1
+ {"version":3,"file":"use-multi-file-auth-state.js","sourceRoot":"","sources":["../../src/Utils/use-multi-file-auth-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,MAAc,EAC4D,EAAE;IAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACrD,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACd,8CAA8C,MAAM,oDAAoD,CACxG,CAAA;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,aAAa,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAgC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAE1E,OAAO;QACN,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QAC7B,SAAS,EAAE,KAAK,IAAI,EAAE;YACrB,6DAA6D;YAC7D,wEAAwE;YACxE,aAAa;YACb,yEAAyE;QAC1E,CAAC;KACD,CAAA;AACF,CAAC,CAAA"}
@@ -1,36 +1,12 @@
1
1
  /**
2
- * Wraps any upstream Baileys AuthenticationState as bridge-compatible
3
- * JsStoreCallbacks. Users keep their existing custom stores (MySQL,
4
- * MongoDB, Redis, etc.) — zero migration needed.
2
+ * Compatibility facade for callers that still provide Baileys
3
+ * `{ creds, keys }` authentication state.
5
4
  *
6
- * ```typescript
7
- * const { state, saveCreds } = await useMongoAuthState(db)
8
- * const sock = makeWASocket({
9
- * auth: { store: await wrapLegacyStore(state, saveCreds) }
10
- * })
11
- * ```
5
+ * The implementation lives in `Compatibility/legacy-store/`: the WASM bridge sees only its
6
+ * native byte-store contract, while every Baileys-specific projection remains
7
+ * in this package.
12
8
  */
13
- import type { JsStoreCallbacks } from 'whatsapp-rust-bridge';
14
- import type { AuthenticationState } from '../Types/index.js';
15
- export interface WrappedLegacyStore extends JsStoreCallbacks {
16
- flush(): Promise<void>;
17
- dispose(): void;
18
- }
19
- export declare function wrapLegacyStore(state: AuthenticationState, saveCreds: () => Promise<void>, logger?: {
20
- warn: (obj: unknown, msg?: string) => void;
21
- }): Promise<WrappedLegacyStore>;
22
- /**
23
- * Loads an upstream Baileys session (creds.json + key .json files) and returns
24
- * the standard `{ state, saveCreds }` tuple that `wrapLegacyStore` expects.
25
- *
26
- * ```typescript
27
- * const { state, saveCreds } = await useLegacyMultiFileAuthState('/path/to/baileys_auth_info')
28
- * const store = await wrapLegacyStore(state, saveCreds)
29
- * const sock = makeWASocket({ auth: { store } })
30
- * ```
31
- */
32
- export declare function useLegacyMultiFileAuthState(folder: string): Promise<{
33
- state: AuthenticationState;
34
- saveCreds: () => Promise<void>;
35
- }>;
9
+ export { wrapLegacyStore } from '../Compatibility/legacy-store/adapter.js';
10
+ export { useLegacyMultiFileAuthState } from '../Compatibility/legacy-store/multi-file.js';
11
+ export type { WrappedLegacyStore } from '../Compatibility/legacy-store/types.js';
36
12
  //# sourceMappingURL=wrap-legacy-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-legacy-store.d.ts","sourceRoot":"","sources":["../../src/Utils/wrap-legacy-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,KAAK,EAAuB,mBAAmB,EAAkC,MAAM,mBAAmB,CAAA;AAuBjH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;CACf;AAqgCD,wBAAsB,eAAe,CACpC,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC9B,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACrD,OAAO,CAAC,kBAAkB,CAAC,CA+P7B;AASD;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAoEzE"}
1
+ {"version":3,"file":"wrap-legacy-store.d.ts","sourceRoot":"","sources":["../../src/Utils/wrap-legacy-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAA;AACzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA"}