@lhremote/core 0.1.0 → 0.2.1

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 (499) hide show
  1. package/README.md +124 -0
  2. package/dist/cdp/app-discovery.d.ts +22 -0
  3. package/dist/cdp/app-discovery.d.ts.map +1 -0
  4. package/dist/cdp/app-discovery.js +60 -0
  5. package/dist/cdp/app-discovery.js.map +1 -0
  6. package/dist/cdp/app-discovery.test.d.ts +2 -0
  7. package/dist/cdp/app-discovery.test.d.ts.map +1 -0
  8. package/dist/cdp/app-discovery.test.js +124 -0
  9. package/dist/cdp/app-discovery.test.js.map +1 -0
  10. package/dist/cdp/client.d.ts +14 -0
  11. package/dist/cdp/client.d.ts.map +1 -1
  12. package/dist/cdp/client.integration.test.js +10 -3
  13. package/dist/cdp/client.integration.test.js.map +1 -1
  14. package/dist/cdp/client.js +41 -8
  15. package/dist/cdp/client.js.map +1 -1
  16. package/dist/cdp/client.test.js +267 -3
  17. package/dist/cdp/client.test.js.map +1 -1
  18. package/dist/cdp/discovery.d.ts.map +1 -1
  19. package/dist/cdp/discovery.integration.test.js +2 -0
  20. package/dist/cdp/discovery.integration.test.js.map +1 -1
  21. package/dist/cdp/discovery.js +2 -0
  22. package/dist/cdp/discovery.js.map +1 -1
  23. package/dist/cdp/discovery.test.js +2 -0
  24. package/dist/cdp/discovery.test.js.map +1 -1
  25. package/dist/cdp/errors.d.ts.map +1 -1
  26. package/dist/cdp/errors.js +2 -0
  27. package/dist/cdp/errors.js.map +1 -1
  28. package/dist/cdp/errors.test.js +2 -0
  29. package/dist/cdp/errors.test.js.map +1 -1
  30. package/dist/cdp/index.d.ts +1 -0
  31. package/dist/cdp/index.d.ts.map +1 -1
  32. package/dist/cdp/index.js +3 -0
  33. package/dist/cdp/index.js.map +1 -1
  34. package/dist/cdp/instance-discovery.d.ts.map +1 -1
  35. package/dist/cdp/instance-discovery.integration.test.js +2 -0
  36. package/dist/cdp/instance-discovery.integration.test.js.map +1 -1
  37. package/dist/cdp/instance-discovery.js +5 -17
  38. package/dist/cdp/instance-discovery.js.map +1 -1
  39. package/dist/cdp/instance-discovery.test.js +2 -0
  40. package/dist/cdp/instance-discovery.test.js.map +1 -1
  41. package/dist/cdp/testing/launch-chromium.d.ts.map +1 -1
  42. package/dist/cdp/testing/launch-chromium.js +4 -1
  43. package/dist/cdp/testing/launch-chromium.js.map +1 -1
  44. package/dist/constants.d.ts +5 -0
  45. package/dist/constants.d.ts.map +1 -0
  46. package/dist/constants.js +7 -0
  47. package/dist/constants.js.map +1 -0
  48. package/dist/data/action-types.d.ts +39 -0
  49. package/dist/data/action-types.d.ts.map +1 -0
  50. package/dist/data/action-types.js +497 -0
  51. package/dist/data/action-types.js.map +1 -0
  52. package/dist/data/action-types.test.d.ts +2 -0
  53. package/dist/data/action-types.test.d.ts.map +1 -0
  54. package/dist/data/action-types.test.js +544 -0
  55. package/dist/data/action-types.test.js.map +1 -0
  56. package/dist/data/index.d.ts +3 -0
  57. package/dist/data/index.d.ts.map +1 -0
  58. package/dist/data/index.js +4 -0
  59. package/dist/data/index.js.map +1 -0
  60. package/dist/db/client.d.ts +19 -5
  61. package/dist/db/client.d.ts.map +1 -1
  62. package/dist/db/client.integration.test.js +5 -1
  63. package/dist/db/client.integration.test.js.map +1 -1
  64. package/dist/db/client.js +11 -5
  65. package/dist/db/client.js.map +1 -1
  66. package/dist/db/client.test.js +2 -0
  67. package/dist/db/client.test.js.map +1 -1
  68. package/dist/db/discovery.d.ts.map +1 -1
  69. package/dist/db/discovery.integration.test.js +2 -0
  70. package/dist/db/discovery.integration.test.js.map +1 -1
  71. package/dist/db/discovery.js +2 -0
  72. package/dist/db/discovery.js.map +1 -1
  73. package/dist/db/discovery.test.js +2 -0
  74. package/dist/db/discovery.test.js.map +1 -1
  75. package/dist/db/errors.d.ts +31 -0
  76. package/dist/db/errors.d.ts.map +1 -1
  77. package/dist/db/errors.js +49 -0
  78. package/dist/db/errors.js.map +1 -1
  79. package/dist/db/errors.test.js +2 -0
  80. package/dist/db/errors.test.js.map +1 -1
  81. package/dist/db/escape-like.d.ts +8 -0
  82. package/dist/db/escape-like.d.ts.map +1 -0
  83. package/dist/db/escape-like.js +12 -0
  84. package/dist/db/escape-like.js.map +1 -0
  85. package/dist/db/escape-like.test.d.ts +2 -0
  86. package/dist/db/escape-like.test.d.ts.map +1 -0
  87. package/dist/db/escape-like.test.js +25 -0
  88. package/dist/db/escape-like.test.js.map +1 -0
  89. package/dist/db/index.d.ts +3 -3
  90. package/dist/db/index.d.ts.map +1 -1
  91. package/dist/db/index.js +4 -2
  92. package/dist/db/index.js.map +1 -1
  93. package/dist/db/repositories/campaign-exclude-list.d.ts +89 -0
  94. package/dist/db/repositories/campaign-exclude-list.d.ts.map +1 -0
  95. package/dist/db/repositories/campaign-exclude-list.js +204 -0
  96. package/dist/db/repositories/campaign-exclude-list.js.map +1 -0
  97. package/dist/db/repositories/campaign-exclude-list.test.d.ts +2 -0
  98. package/dist/db/repositories/campaign-exclude-list.test.d.ts.map +1 -0
  99. package/dist/db/repositories/campaign-exclude-list.test.js +132 -0
  100. package/dist/db/repositories/campaign-exclude-list.test.js.map +1 -0
  101. package/dist/db/repositories/campaign-statistics.d.ts +58 -0
  102. package/dist/db/repositories/campaign-statistics.d.ts.map +1 -0
  103. package/dist/db/repositories/campaign-statistics.js +278 -0
  104. package/dist/db/repositories/campaign-statistics.js.map +1 -0
  105. package/dist/db/repositories/campaign-statistics.test.d.ts +2 -0
  106. package/dist/db/repositories/campaign-statistics.test.d.ts.map +1 -0
  107. package/dist/db/repositories/campaign-statistics.test.js +266 -0
  108. package/dist/db/repositories/campaign-statistics.test.js.map +1 -0
  109. package/dist/db/repositories/campaign.d.ts +103 -0
  110. package/dist/db/repositories/campaign.d.ts.map +1 -0
  111. package/dist/db/repositories/campaign.js +388 -0
  112. package/dist/db/repositories/campaign.js.map +1 -0
  113. package/dist/db/repositories/campaign.test.d.ts +2 -0
  114. package/dist/db/repositories/campaign.test.d.ts.map +1 -0
  115. package/dist/db/repositories/campaign.test.js +392 -0
  116. package/dist/db/repositories/campaign.test.js.map +1 -0
  117. package/dist/db/repositories/index.d.ts +4 -0
  118. package/dist/db/repositories/index.d.ts.map +1 -1
  119. package/dist/db/repositories/index.js +6 -0
  120. package/dist/db/repositories/index.js.map +1 -1
  121. package/dist/db/repositories/message.d.ts +57 -0
  122. package/dist/db/repositories/message.d.ts.map +1 -0
  123. package/dist/db/repositories/message.integration.test.d.ts +2 -0
  124. package/dist/db/repositories/message.integration.test.d.ts.map +1 -0
  125. package/dist/db/repositories/message.integration.test.js +137 -0
  126. package/dist/db/repositories/message.integration.test.js.map +1 -0
  127. package/dist/db/repositories/message.js +308 -0
  128. package/dist/db/repositories/message.js.map +1 -0
  129. package/dist/db/repositories/message.test.d.ts +2 -0
  130. package/dist/db/repositories/message.test.d.ts.map +1 -0
  131. package/dist/db/repositories/message.test.js +179 -0
  132. package/dist/db/repositories/message.test.js.map +1 -0
  133. package/dist/db/repositories/profile.d.ts +11 -1
  134. package/dist/db/repositories/profile.d.ts.map +1 -1
  135. package/dist/db/repositories/profile.integration.test.js +103 -0
  136. package/dist/db/repositories/profile.integration.test.js.map +1 -1
  137. package/dist/db/repositories/profile.js +52 -15
  138. package/dist/db/repositories/profile.js.map +1 -1
  139. package/dist/db/repositories/profile.test.js +90 -0
  140. package/dist/db/repositories/profile.test.js.map +1 -1
  141. package/dist/db/testing/create-fixture.d.ts +0 -6
  142. package/dist/db/testing/create-fixture.d.ts.map +1 -1
  143. package/dist/db/testing/create-fixture.js +463 -4
  144. package/dist/db/testing/create-fixture.js.map +1 -1
  145. package/dist/db/testing/open-fixture.d.ts +5 -4
  146. package/dist/db/testing/open-fixture.d.ts.map +1 -1
  147. package/dist/db/testing/open-fixture.js +24 -6
  148. package/dist/db/testing/open-fixture.js.map +1 -1
  149. package/dist/formats/campaign-format.d.ts +31 -0
  150. package/dist/formats/campaign-format.d.ts.map +1 -0
  151. package/dist/formats/campaign-format.js +225 -0
  152. package/dist/formats/campaign-format.js.map +1 -0
  153. package/dist/formats/campaign-format.test.d.ts +2 -0
  154. package/dist/formats/campaign-format.test.d.ts.map +1 -0
  155. package/dist/formats/campaign-format.test.js +442 -0
  156. package/dist/formats/campaign-format.test.js.map +1 -0
  157. package/dist/formats/errors.d.ts +7 -0
  158. package/dist/formats/errors.d.ts.map +1 -0
  159. package/dist/formats/errors.js +12 -0
  160. package/dist/formats/errors.js.map +1 -0
  161. package/dist/formats/index.d.ts +3 -0
  162. package/dist/formats/index.d.ts.map +1 -0
  163. package/dist/formats/index.js +5 -0
  164. package/dist/formats/index.js.map +1 -0
  165. package/dist/index.d.ts +10 -5
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +26 -4
  168. package/dist/index.js.map +1 -1
  169. package/dist/operations/campaign-add-action.d.ts +14 -0
  170. package/dist/operations/campaign-add-action.d.ts.map +1 -0
  171. package/dist/operations/campaign-add-action.js +33 -0
  172. package/dist/operations/campaign-add-action.js.map +1 -0
  173. package/dist/operations/campaign-add-action.test.d.ts +2 -0
  174. package/dist/operations/campaign-add-action.test.d.ts.map +1 -0
  175. package/dist/operations/campaign-add-action.test.js +122 -0
  176. package/dist/operations/campaign-add-action.test.js.map +1 -0
  177. package/dist/operations/campaign-create.d.ts +17 -0
  178. package/dist/operations/campaign-create.d.ts.map +1 -0
  179. package/dist/operations/campaign-create.js +21 -0
  180. package/dist/operations/campaign-create.js.map +1 -0
  181. package/dist/operations/campaign-create.test.d.ts +2 -0
  182. package/dist/operations/campaign-create.test.d.ts.map +1 -0
  183. package/dist/operations/campaign-create.test.js +121 -0
  184. package/dist/operations/campaign-create.test.js.map +1 -0
  185. package/dist/operations/campaign-delete.d.ts +20 -0
  186. package/dist/operations/campaign-delete.d.ts.map +1 -0
  187. package/dist/operations/campaign-delete.js +22 -0
  188. package/dist/operations/campaign-delete.js.map +1 -0
  189. package/dist/operations/campaign-delete.test.d.ts +2 -0
  190. package/dist/operations/campaign-delete.test.d.ts.map +1 -0
  191. package/dist/operations/campaign-delete.test.js +92 -0
  192. package/dist/operations/campaign-delete.test.js.map +1 -0
  193. package/dist/operations/campaign-exclude-add.d.ts +16 -0
  194. package/dist/operations/campaign-exclude-add.d.ts.map +1 -0
  195. package/dist/operations/campaign-exclude-add.js +27 -0
  196. package/dist/operations/campaign-exclude-add.js.map +1 -0
  197. package/dist/operations/campaign-exclude-add.test.d.ts +2 -0
  198. package/dist/operations/campaign-exclude-add.test.d.ts.map +1 -0
  199. package/dist/operations/campaign-exclude-add.test.js +114 -0
  200. package/dist/operations/campaign-exclude-add.test.js.map +1 -0
  201. package/dist/operations/campaign-exclude-list.d.ts +14 -0
  202. package/dist/operations/campaign-exclude-list.d.ts.map +1 -0
  203. package/dist/operations/campaign-exclude-list.js +26 -0
  204. package/dist/operations/campaign-exclude-list.js.map +1 -0
  205. package/dist/operations/campaign-exclude-list.test.d.ts +2 -0
  206. package/dist/operations/campaign-exclude-list.test.d.ts.map +1 -0
  207. package/dist/operations/campaign-exclude-list.test.js +113 -0
  208. package/dist/operations/campaign-exclude-list.test.js.map +1 -0
  209. package/dist/operations/campaign-exclude-remove.d.ts +16 -0
  210. package/dist/operations/campaign-exclude-remove.d.ts.map +1 -0
  211. package/dist/operations/campaign-exclude-remove.js +27 -0
  212. package/dist/operations/campaign-exclude-remove.js.map +1 -0
  213. package/dist/operations/campaign-exclude-remove.test.d.ts +2 -0
  214. package/dist/operations/campaign-exclude-remove.test.d.ts.map +1 -0
  215. package/dist/operations/campaign-exclude-remove.test.js +114 -0
  216. package/dist/operations/campaign-exclude-remove.test.js.map +1 -0
  217. package/dist/operations/campaign-export.d.ts +12 -0
  218. package/dist/operations/campaign-export.d.ts.map +1 -0
  219. package/dist/operations/campaign-export.js +24 -0
  220. package/dist/operations/campaign-export.js.map +1 -0
  221. package/dist/operations/campaign-export.test.d.ts +2 -0
  222. package/dist/operations/campaign-export.test.d.ts.map +1 -0
  223. package/dist/operations/campaign-export.test.js +134 -0
  224. package/dist/operations/campaign-export.test.js.map +1 -0
  225. package/dist/operations/campaign-get.d.ts +19 -0
  226. package/dist/operations/campaign-get.d.ts.map +1 -0
  227. package/dist/operations/campaign-get.js +23 -0
  228. package/dist/operations/campaign-get.js.map +1 -0
  229. package/dist/operations/campaign-get.test.d.ts +2 -0
  230. package/dist/operations/campaign-get.test.d.ts.map +1 -0
  231. package/dist/operations/campaign-get.test.js +99 -0
  232. package/dist/operations/campaign-get.test.js.map +1 -0
  233. package/dist/operations/campaign-list.d.ts +20 -0
  234. package/dist/operations/campaign-list.d.ts.map +1 -0
  235. package/dist/operations/campaign-list.js +23 -0
  236. package/dist/operations/campaign-list.js.map +1 -0
  237. package/dist/operations/campaign-list.test.d.ts +2 -0
  238. package/dist/operations/campaign-list.test.d.ts.map +1 -0
  239. package/dist/operations/campaign-list.test.js +106 -0
  240. package/dist/operations/campaign-list.test.js.map +1 -0
  241. package/dist/operations/campaign-move-next.d.ts +15 -0
  242. package/dist/operations/campaign-move-next.d.ts.map +1 -0
  243. package/dist/operations/campaign-move-next.js +25 -0
  244. package/dist/operations/campaign-move-next.js.map +1 -0
  245. package/dist/operations/campaign-move-next.test.d.ts +2 -0
  246. package/dist/operations/campaign-move-next.test.d.ts.map +1 -0
  247. package/dist/operations/campaign-move-next.test.js +105 -0
  248. package/dist/operations/campaign-move-next.test.js.map +1 -0
  249. package/dist/operations/campaign-remove-action.d.ts +12 -0
  250. package/dist/operations/campaign-remove-action.d.ts.map +1 -0
  251. package/dist/operations/campaign-remove-action.js +23 -0
  252. package/dist/operations/campaign-remove-action.js.map +1 -0
  253. package/dist/operations/campaign-remove-action.test.d.ts +2 -0
  254. package/dist/operations/campaign-remove-action.test.d.ts.map +1 -0
  255. package/dist/operations/campaign-remove-action.test.js +95 -0
  256. package/dist/operations/campaign-remove-action.test.js.map +1 -0
  257. package/dist/operations/campaign-reorder-actions.d.ts +13 -0
  258. package/dist/operations/campaign-reorder-actions.d.ts.map +1 -0
  259. package/dist/operations/campaign-reorder-actions.js +19 -0
  260. package/dist/operations/campaign-reorder-actions.js.map +1 -0
  261. package/dist/operations/campaign-reorder-actions.test.d.ts +2 -0
  262. package/dist/operations/campaign-reorder-actions.test.d.ts.map +1 -0
  263. package/dist/operations/campaign-reorder-actions.test.js +103 -0
  264. package/dist/operations/campaign-reorder-actions.test.js.map +1 -0
  265. package/dist/operations/campaign-retry.d.ts +13 -0
  266. package/dist/operations/campaign-retry.d.ts.map +1 -0
  267. package/dist/operations/campaign-retry.js +24 -0
  268. package/dist/operations/campaign-retry.js.map +1 -0
  269. package/dist/operations/campaign-retry.test.d.ts +2 -0
  270. package/dist/operations/campaign-retry.test.d.ts.map +1 -0
  271. package/dist/operations/campaign-retry.test.js +100 -0
  272. package/dist/operations/campaign-retry.test.js.map +1 -0
  273. package/dist/operations/campaign-start.d.ts +13 -0
  274. package/dist/operations/campaign-start.d.ts.map +1 -0
  275. package/dist/operations/campaign-start.js +24 -0
  276. package/dist/operations/campaign-start.js.map +1 -0
  277. package/dist/operations/campaign-start.test.d.ts +2 -0
  278. package/dist/operations/campaign-start.test.d.ts.map +1 -0
  279. package/dist/operations/campaign-start.test.js +105 -0
  280. package/dist/operations/campaign-start.test.js.map +1 -0
  281. package/dist/operations/campaign-statistics.d.ts +10 -0
  282. package/dist/operations/campaign-statistics.d.ts.map +1 -0
  283. package/dist/operations/campaign-statistics.js +23 -0
  284. package/dist/operations/campaign-statistics.js.map +1 -0
  285. package/dist/operations/campaign-statistics.test.d.ts +2 -0
  286. package/dist/operations/campaign-statistics.test.d.ts.map +1 -0
  287. package/dist/operations/campaign-statistics.test.js +120 -0
  288. package/dist/operations/campaign-statistics.test.js.map +1 -0
  289. package/dist/operations/campaign-status.d.ts +26 -0
  290. package/dist/operations/campaign-status.d.ts.map +1 -0
  291. package/dist/operations/campaign-status.js +32 -0
  292. package/dist/operations/campaign-status.js.map +1 -0
  293. package/dist/operations/campaign-status.test.d.ts +2 -0
  294. package/dist/operations/campaign-status.test.d.ts.map +1 -0
  295. package/dist/operations/campaign-status.test.js +142 -0
  296. package/dist/operations/campaign-status.test.js.map +1 -0
  297. package/dist/operations/campaign-stop.d.ts +11 -0
  298. package/dist/operations/campaign-stop.d.ts.map +1 -0
  299. package/dist/operations/campaign-stop.js +23 -0
  300. package/dist/operations/campaign-stop.js.map +1 -0
  301. package/dist/operations/campaign-stop.test.d.ts +2 -0
  302. package/dist/operations/campaign-stop.test.d.ts.map +1 -0
  303. package/dist/operations/campaign-stop.test.js +92 -0
  304. package/dist/operations/campaign-stop.test.js.map +1 -0
  305. package/dist/operations/campaign-update.d.ts +18 -0
  306. package/dist/operations/campaign-update.d.ts.map +1 -0
  307. package/dist/operations/campaign-update.js +21 -0
  308. package/dist/operations/campaign-update.js.map +1 -0
  309. package/dist/operations/campaign-update.test.d.ts +2 -0
  310. package/dist/operations/campaign-update.test.d.ts.map +1 -0
  311. package/dist/operations/campaign-update.test.js +105 -0
  312. package/dist/operations/campaign-update.test.js.map +1 -0
  313. package/dist/operations/check-replies.d.ts +12 -0
  314. package/dist/operations/check-replies.d.ts.map +1 -0
  315. package/dist/operations/check-replies.js +26 -0
  316. package/dist/operations/check-replies.js.map +1 -0
  317. package/dist/operations/check-replies.test.d.ts +2 -0
  318. package/dist/operations/check-replies.test.d.ts.map +1 -0
  319. package/dist/operations/check-replies.test.js +118 -0
  320. package/dist/operations/check-replies.test.js.map +1 -0
  321. package/dist/operations/import-people-from-urls.d.ts +16 -0
  322. package/dist/operations/import-people-from-urls.d.ts.map +1 -0
  323. package/dist/operations/import-people-from-urls.js +27 -0
  324. package/dist/operations/import-people-from-urls.js.map +1 -0
  325. package/dist/operations/import-people-from-urls.test.d.ts +2 -0
  326. package/dist/operations/import-people-from-urls.test.d.ts.map +1 -0
  327. package/dist/operations/import-people-from-urls.test.js +118 -0
  328. package/dist/operations/import-people-from-urls.test.js.map +1 -0
  329. package/dist/operations/index.d.ts +24 -0
  330. package/dist/operations/index.d.ts.map +1 -0
  331. package/dist/operations/index.js +30 -0
  332. package/dist/operations/index.js.map +1 -0
  333. package/dist/operations/query-messages.d.ts +23 -0
  334. package/dist/operations/query-messages.d.ts.map +1 -0
  335. package/dist/operations/query-messages.js +33 -0
  336. package/dist/operations/query-messages.js.map +1 -0
  337. package/dist/operations/query-messages.test.d.ts +2 -0
  338. package/dist/operations/query-messages.test.d.ts.map +1 -0
  339. package/dist/operations/query-messages.test.js +134 -0
  340. package/dist/operations/query-messages.test.js.map +1 -0
  341. package/dist/operations/scrape-messaging-history.d.ts +10 -0
  342. package/dist/operations/scrape-messaging-history.d.ts.map +1 -0
  343. package/dist/operations/scrape-messaging-history.js +24 -0
  344. package/dist/operations/scrape-messaging-history.js.map +1 -0
  345. package/dist/operations/scrape-messaging-history.test.d.ts +2 -0
  346. package/dist/operations/scrape-messaging-history.test.d.ts.map +1 -0
  347. package/dist/operations/scrape-messaging-history.test.js +112 -0
  348. package/dist/operations/scrape-messaging-history.test.js.map +1 -0
  349. package/dist/operations/types.d.ts +10 -0
  350. package/dist/operations/types.d.ts.map +1 -0
  351. package/dist/operations/types.js +4 -0
  352. package/dist/operations/types.js.map +1 -0
  353. package/dist/services/account-resolution.d.ts +22 -0
  354. package/dist/services/account-resolution.d.ts.map +1 -0
  355. package/dist/services/account-resolution.js +45 -0
  356. package/dist/services/account-resolution.js.map +1 -0
  357. package/dist/services/account-resolution.test.d.ts +2 -0
  358. package/dist/services/account-resolution.test.d.ts.map +1 -0
  359. package/dist/services/account-resolution.test.js +91 -0
  360. package/dist/services/account-resolution.test.js.map +1 -0
  361. package/dist/services/app.d.ts.map +1 -1
  362. package/dist/services/app.js +2 -0
  363. package/dist/services/app.js.map +1 -1
  364. package/dist/services/app.test.js +2 -0
  365. package/dist/services/app.test.js.map +1 -1
  366. package/dist/services/campaign.d.ts +143 -0
  367. package/dist/services/campaign.d.ts.map +1 -0
  368. package/dist/services/campaign.js +409 -0
  369. package/dist/services/campaign.js.map +1 -0
  370. package/dist/services/campaign.test.d.ts +2 -0
  371. package/dist/services/campaign.test.d.ts.map +1 -0
  372. package/dist/services/campaign.test.js +481 -0
  373. package/dist/services/campaign.test.js.map +1 -0
  374. package/dist/services/errors.d.ts +38 -0
  375. package/dist/services/errors.d.ts.map +1 -1
  376. package/dist/services/errors.js +60 -0
  377. package/dist/services/errors.js.map +1 -1
  378. package/dist/services/errors.test.js +53 -1
  379. package/dist/services/errors.test.js.map +1 -1
  380. package/dist/services/index.d.ts +5 -3
  381. package/dist/services/index.d.ts.map +1 -1
  382. package/dist/services/index.js +6 -2
  383. package/dist/services/index.js.map +1 -1
  384. package/dist/services/instance-context.d.ts +37 -0
  385. package/dist/services/instance-context.d.ts.map +1 -0
  386. package/dist/services/instance-context.js +49 -0
  387. package/dist/services/instance-context.js.map +1 -0
  388. package/dist/services/instance-context.test.d.ts +2 -0
  389. package/dist/services/instance-context.test.d.ts.map +1 -0
  390. package/dist/services/instance-context.test.js +203 -0
  391. package/dist/services/instance-context.test.js.map +1 -0
  392. package/dist/services/instance-lifecycle.d.ts.map +1 -1
  393. package/dist/services/instance-lifecycle.js +6 -6
  394. package/dist/services/instance-lifecycle.js.map +1 -1
  395. package/dist/services/instance-lifecycle.test.js +8 -2
  396. package/dist/services/instance-lifecycle.test.js.map +1 -1
  397. package/dist/services/instance.d.ts +40 -0
  398. package/dist/services/instance.d.ts.map +1 -1
  399. package/dist/services/instance.js +66 -9
  400. package/dist/services/instance.js.map +1 -1
  401. package/dist/services/instance.test.js +116 -6
  402. package/dist/services/instance.test.js.map +1 -1
  403. package/dist/services/launcher.d.ts +3 -0
  404. package/dist/services/launcher.d.ts.map +1 -1
  405. package/dist/services/launcher.js +25 -10
  406. package/dist/services/launcher.js.map +1 -1
  407. package/dist/services/launcher.test.js +39 -2
  408. package/dist/services/launcher.test.js.map +1 -1
  409. package/dist/services/status.d.ts +5 -1
  410. package/dist/services/status.d.ts.map +1 -1
  411. package/dist/services/status.js +24 -15
  412. package/dist/services/status.js.map +1 -1
  413. package/dist/services/status.test.js +42 -1
  414. package/dist/services/status.test.js.map +1 -1
  415. package/dist/testing/e2e-helpers.d.ts.map +1 -1
  416. package/dist/testing/e2e-helpers.js +7 -4
  417. package/dist/testing/e2e-helpers.js.map +1 -1
  418. package/dist/testing/index.d.ts +2 -0
  419. package/dist/testing/index.d.ts.map +1 -0
  420. package/dist/testing/index.js +4 -0
  421. package/dist/testing/index.js.map +1 -0
  422. package/dist/types/account.d.ts.map +1 -1
  423. package/dist/types/account.js +2 -0
  424. package/dist/types/account.js.map +1 -1
  425. package/dist/types/account.test.js +2 -0
  426. package/dist/types/account.test.js.map +1 -1
  427. package/dist/types/campaign.d.ts +267 -0
  428. package/dist/types/campaign.d.ts.map +1 -0
  429. package/dist/types/campaign.js +4 -0
  430. package/dist/types/campaign.js.map +1 -0
  431. package/dist/types/cdp.d.ts.map +1 -1
  432. package/dist/types/cdp.js +2 -0
  433. package/dist/types/cdp.js.map +1 -1
  434. package/dist/types/cdp.test.js +2 -0
  435. package/dist/types/cdp.test.js.map +1 -1
  436. package/dist/types/index.d.ts +3 -1
  437. package/dist/types/index.d.ts.map +1 -1
  438. package/dist/types/index.js +2 -0
  439. package/dist/types/index.js.map +1 -1
  440. package/dist/types/instance.d.ts.map +1 -1
  441. package/dist/types/instance.js +2 -6
  442. package/dist/types/instance.js.map +1 -1
  443. package/dist/types/instance.test.js +2 -0
  444. package/dist/types/instance.test.js.map +1 -1
  445. package/dist/types/messaging.d.ts +51 -0
  446. package/dist/types/messaging.d.ts.map +1 -0
  447. package/dist/types/messaging.js +4 -0
  448. package/dist/types/messaging.js.map +1 -0
  449. package/dist/types/profile.d.ts +31 -0
  450. package/dist/types/profile.d.ts.map +1 -1
  451. package/dist/types/profile.js +2 -6
  452. package/dist/types/profile.js.map +1 -1
  453. package/dist/types/profile.test.js +2 -0
  454. package/dist/types/profile.test.js.map +1 -1
  455. package/dist/utils/cdp-port.d.ts +5 -0
  456. package/dist/utils/cdp-port.d.ts.map +1 -0
  457. package/dist/utils/cdp-port.js +15 -0
  458. package/dist/utils/cdp-port.js.map +1 -0
  459. package/dist/utils/cdp-port.test.d.ts +2 -0
  460. package/dist/utils/cdp-port.test.d.ts.map +1 -0
  461. package/dist/utils/cdp-port.test.js +23 -0
  462. package/dist/utils/cdp-port.test.js.map +1 -0
  463. package/dist/utils/delay.d.ts +5 -0
  464. package/dist/utils/delay.d.ts.map +1 -0
  465. package/dist/utils/delay.js +9 -0
  466. package/dist/utils/delay.js.map +1 -0
  467. package/dist/utils/delay.test.d.ts +2 -0
  468. package/dist/utils/delay.test.d.ts.map +1 -0
  469. package/dist/utils/delay.test.js +17 -0
  470. package/dist/utils/delay.test.js.map +1 -0
  471. package/dist/utils/error-message.d.ts +5 -0
  472. package/dist/utils/error-message.d.ts.map +1 -0
  473. package/dist/utils/error-message.js +9 -0
  474. package/dist/utils/error-message.js.map +1 -0
  475. package/dist/utils/error-message.test.d.ts +2 -0
  476. package/dist/utils/error-message.test.d.ts.map +1 -0
  477. package/dist/utils/error-message.test.js +28 -0
  478. package/dist/utils/error-message.test.js.map +1 -0
  479. package/dist/utils/index.d.ts +5 -0
  480. package/dist/utils/index.d.ts.map +1 -0
  481. package/dist/utils/index.js +7 -0
  482. package/dist/utils/index.js.map +1 -0
  483. package/dist/utils/loopback.d.ts +10 -0
  484. package/dist/utils/loopback.d.ts.map +1 -0
  485. package/dist/utils/loopback.js +28 -0
  486. package/dist/utils/loopback.js.map +1 -0
  487. package/dist/utils/loopback.test.d.ts +2 -0
  488. package/dist/utils/loopback.test.d.ts.map +1 -0
  489. package/dist/utils/loopback.test.js +34 -0
  490. package/dist/utils/loopback.test.js.map +1 -0
  491. package/package.json +13 -8
  492. package/dist/services/profile.d.ts +0 -44
  493. package/dist/services/profile.d.ts.map +0 -1
  494. package/dist/services/profile.js +0 -83
  495. package/dist/services/profile.js.map +0 -1
  496. package/dist/services/profile.test.d.ts +0 -2
  497. package/dist/services/profile.test.d.ts.map +0 -1
  498. package/dist/services/profile.test.js +0 -145
  499. package/dist/services/profile.test.js.map +0 -1
@@ -0,0 +1,392 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
4
+ import { DatabaseClient } from "../client.js";
5
+ import { ActionNotFoundError, CampaignNotFoundError, NoNextActionError, } from "../errors.js";
6
+ import { openFixture } from "../testing/open-fixture.js";
7
+ import { CampaignRepository } from "./campaign.js";
8
+ describe("CampaignRepository", () => {
9
+ let db;
10
+ let client;
11
+ let repo;
12
+ beforeEach(() => {
13
+ db = openFixture();
14
+ client = { db };
15
+ repo = new CampaignRepository(client);
16
+ });
17
+ afterEach(() => {
18
+ db.close();
19
+ });
20
+ describe("listCampaigns", () => {
21
+ it("returns non-archived campaigns by default", () => {
22
+ const campaigns = repo.listCampaigns();
23
+ // Should not include archived campaign (id=3)
24
+ expect(campaigns).toHaveLength(4);
25
+ expect(campaigns.map((c) => c.id)).not.toContain(3);
26
+ });
27
+ it("includes archived campaigns when requested", () => {
28
+ const campaigns = repo.listCampaigns({ includeArchived: true });
29
+ expect(campaigns).toHaveLength(5);
30
+ expect(campaigns.map((c) => c.id)).toContain(3);
31
+ });
32
+ it("returns correct campaign summary fields", () => {
33
+ const campaigns = repo.listCampaigns({ includeArchived: true });
34
+ const outreach = campaigns.find((c) => c.id === 1);
35
+ expect(outreach).toBeDefined();
36
+ expect(outreach).toMatchObject({
37
+ name: "Outreach Campaign",
38
+ description: "Test outreach campaign",
39
+ state: "active",
40
+ liAccountId: 1,
41
+ actionCount: 1,
42
+ });
43
+ expect(outreach?.createdAt).toBeDefined();
44
+ });
45
+ it("derives correct state for different campaigns", () => {
46
+ const campaigns = repo.listCampaigns({ includeArchived: true });
47
+ const stateById = new Map(campaigns.map((c) => [c.id, c.state]));
48
+ expect(stateById.get(1)).toBe("active");
49
+ expect(stateById.get(2)).toBe("paused");
50
+ expect(stateById.get(3)).toBe("archived");
51
+ expect(stateById.get(4)).toBe("invalid");
52
+ });
53
+ it("returns campaigns ordered by created_at descending", () => {
54
+ const campaigns = repo.listCampaigns();
55
+ // Most recent first
56
+ const ids = campaigns.map((c) => c.id);
57
+ expect(ids.at(0)).toBe(1); // 2025-01-15
58
+ expect(ids.at(1)).toBe(2); // 2025-01-14
59
+ });
60
+ });
61
+ describe("getCampaign", () => {
62
+ it("returns a fully populated campaign", () => {
63
+ const campaign = repo.getCampaign(1);
64
+ expect(campaign.id).toBe(1);
65
+ expect(campaign.name).toBe("Outreach Campaign");
66
+ expect(campaign.description).toBe("Test outreach campaign");
67
+ expect(campaign.state).toBe("active");
68
+ expect(campaign.liAccountId).toBe(1);
69
+ expect(campaign.isPaused).toBe(false);
70
+ expect(campaign.isArchived).toBe(false);
71
+ expect(campaign.isValid).toBe(true);
72
+ expect(campaign.createdAt).toBeDefined();
73
+ });
74
+ it("throws CampaignNotFoundError for missing campaign", () => {
75
+ expect(() => repo.getCampaign(999)).toThrow(CampaignNotFoundError);
76
+ expect(() => repo.getCampaign(999)).toThrow("Campaign not found for id 999");
77
+ });
78
+ it("handles paused campaign", () => {
79
+ const campaign = repo.getCampaign(2);
80
+ expect(campaign.state).toBe("paused");
81
+ expect(campaign.isPaused).toBe(true);
82
+ });
83
+ it("handles archived campaign", () => {
84
+ const campaign = repo.getCampaign(3);
85
+ expect(campaign.state).toBe("archived");
86
+ expect(campaign.isArchived).toBe(true);
87
+ });
88
+ it("handles invalid campaign", () => {
89
+ const campaign = repo.getCampaign(4);
90
+ expect(campaign.state).toBe("invalid");
91
+ expect(campaign.isValid).toBe(false);
92
+ });
93
+ });
94
+ describe("getCampaignActions", () => {
95
+ it("returns all actions for a campaign", () => {
96
+ const actions = repo.getCampaignActions(1);
97
+ expect(actions).toHaveLength(1);
98
+ expect(actions[0]).toMatchObject({
99
+ id: 1,
100
+ campaignId: 1,
101
+ name: "Send Welcome Message",
102
+ description: "First touch message",
103
+ versionId: 1,
104
+ });
105
+ });
106
+ it("returns action config with parsed settings", () => {
107
+ const actions = repo.getCampaignActions(1);
108
+ expect(actions).toHaveLength(1);
109
+ const action = actions.at(0);
110
+ expect(action).toBeDefined();
111
+ expect(action?.config.id).toBe(1);
112
+ expect(action?.config.actionType).toBe("MessageToPerson");
113
+ expect(action?.config.coolDown).toBe(60000);
114
+ expect(action?.config.maxActionResultsPerIteration).toBe(10);
115
+ expect(action?.config.isDraft).toBe(false);
116
+ expect(action?.config.actionSettings).toHaveProperty("messageTemplate");
117
+ });
118
+ it("throws CampaignNotFoundError for missing campaign", () => {
119
+ expect(() => repo.getCampaignActions(999)).toThrow(CampaignNotFoundError);
120
+ });
121
+ it("returns empty array for campaign with no actions", () => {
122
+ const actions = repo.getCampaignActions(3);
123
+ expect(actions).toHaveLength(0);
124
+ });
125
+ });
126
+ describe("getResults", () => {
127
+ it("returns action results for a campaign", () => {
128
+ const results = repo.getResults(1);
129
+ expect(results).toHaveLength(4);
130
+ const result = results.find((r) => r.id === 1);
131
+ expect(result).toBeDefined();
132
+ expect(result).toMatchObject({
133
+ id: 1,
134
+ actionVersionId: 1,
135
+ personId: 1,
136
+ result: 1,
137
+ platform: "LINKEDIN",
138
+ });
139
+ expect(result?.createdAt).toBeDefined();
140
+ });
141
+ it("respects limit parameter", () => {
142
+ const results = repo.getResults(1, { limit: 1 });
143
+ expect(results).toHaveLength(1);
144
+ });
145
+ it("throws CampaignNotFoundError for missing campaign", () => {
146
+ expect(() => repo.getResults(999)).toThrow(CampaignNotFoundError);
147
+ });
148
+ it("returns empty array for campaign with no results", () => {
149
+ const results = repo.getResults(2);
150
+ expect(results).toHaveLength(0);
151
+ });
152
+ });
153
+ describe("getCampaignState", () => {
154
+ it("returns active state for active campaign", () => {
155
+ const state = repo.getCampaignState(1);
156
+ expect(state).toBe("active");
157
+ });
158
+ it("returns paused state for paused campaign", () => {
159
+ const state = repo.getCampaignState(2);
160
+ expect(state).toBe("paused");
161
+ });
162
+ it("returns archived state for archived campaign", () => {
163
+ const state = repo.getCampaignState(3);
164
+ expect(state).toBe("archived");
165
+ });
166
+ it("returns invalid state for invalid campaign", () => {
167
+ const state = repo.getCampaignState(4);
168
+ expect(state).toBe("invalid");
169
+ });
170
+ it("throws CampaignNotFoundError for missing campaign", () => {
171
+ expect(() => repo.getCampaignState(999)).toThrow(CampaignNotFoundError);
172
+ });
173
+ });
174
+ describe("fixIsValid", () => {
175
+ it("sets is_valid to 1 for a campaign with NULL is_valid", () => {
176
+ // Insert a campaign with is_valid = NULL (as created by the API)
177
+ db.exec(`INSERT INTO campaigns (id, name, type, is_valid, li_account_id)
178
+ VALUES (99, 'API-Created Campaign', 1, NULL, 1)`);
179
+ const before = repo.getCampaign(99);
180
+ expect(before.isValid).toBeNull();
181
+ expect(before.state).toBe("active");
182
+ repo.fixIsValid(99);
183
+ const after = repo.getCampaign(99);
184
+ expect(after.isValid).toBe(true);
185
+ expect(after.state).toBe("active");
186
+ });
187
+ it("sets is_valid to 1 for a campaign with is_valid = 0", () => {
188
+ const before = repo.getCampaign(4);
189
+ expect(before.isValid).toBe(false);
190
+ repo.fixIsValid(4);
191
+ const after = repo.getCampaign(4);
192
+ expect(after.isValid).toBe(true);
193
+ });
194
+ });
195
+ describe("createActionExcludeLists", () => {
196
+ it("creates exclude list chain for each action", () => {
197
+ // Campaign 2 has one action (id=2) with action_version (id=2)
198
+ // Verify no exclude_list_id initially
199
+ const before = db
200
+ .prepare("SELECT exclude_list_id FROM action_versions WHERE action_id = 2")
201
+ .all();
202
+ expect(before[0]?.exclude_list_id).toBeNull();
203
+ repo.createActionExcludeLists(2, 1);
204
+ // Verify exclude_list_id is now set
205
+ const after = db
206
+ .prepare("SELECT exclude_list_id FROM action_versions WHERE action_id = 2")
207
+ .all();
208
+ expect(after[0]?.exclude_list_id).not.toBeNull();
209
+ // Verify the chain: action_versions.exclude_list_id -> CPV -> collection
210
+ const cpvId = after.at(0)?.exclude_list_id;
211
+ expect(cpvId).toBeDefined();
212
+ const cpv = db
213
+ .prepare("SELECT id, collection_id, version_operation_status FROM collection_people_versions WHERE id = ?")
214
+ .get(cpvId);
215
+ expect(cpv).toBeDefined();
216
+ expect(cpv.version_operation_status).toBe("addToTarget");
217
+ const collection = db
218
+ .prepare("SELECT id, li_account_id FROM collections WHERE id = ?")
219
+ .get(cpv.collection_id);
220
+ expect(collection).toBeDefined();
221
+ expect(collection.li_account_id).toBe(1);
222
+ });
223
+ it("creates separate exclude lists per action", () => {
224
+ // Add a second action to campaign 1
225
+ db.exec(`
226
+ INSERT INTO action_configs (id, actionType, coolDown, maxActionResultsPerIteration, isDraft)
227
+ VALUES (99, 'VisitAndExtract', 60000, 10, 0);
228
+ INSERT INTO actions (id, campaign_id, name)
229
+ VALUES (99, 1, 'Second Action');
230
+ INSERT INTO action_versions (id, action_id, config_id)
231
+ VALUES (99, 99, 99);
232
+ `);
233
+ repo.createActionExcludeLists(1, 1);
234
+ // Both actions should have distinct exclude_list_ids
235
+ const av1 = db
236
+ .prepare("SELECT exclude_list_id FROM action_versions WHERE action_id = 1")
237
+ .get();
238
+ const av99 = db
239
+ .prepare("SELECT exclude_list_id FROM action_versions WHERE action_id = 99")
240
+ .get();
241
+ expect(av1.exclude_list_id).not.toBeNull();
242
+ expect(av99.exclude_list_id).not.toBeNull();
243
+ expect(av1.exclude_list_id).not.toBe(av99.exclude_list_id);
244
+ });
245
+ it("handles campaign with no actions", () => {
246
+ // Campaign 3 has no actions
247
+ expect(() => repo.createActionExcludeLists(3, 1)).not.toThrow();
248
+ });
249
+ it("throws CampaignNotFoundError for missing campaign", () => {
250
+ expect(() => repo.createActionExcludeLists(999, 1)).toThrow(CampaignNotFoundError);
251
+ });
252
+ it("uses the provided liAccountId for collections", () => {
253
+ repo.createActionExcludeLists(1, 5);
254
+ const av = db
255
+ .prepare("SELECT exclude_list_id FROM action_versions WHERE action_id = 1")
256
+ .get();
257
+ const cpv = db
258
+ .prepare("SELECT collection_id FROM collection_people_versions WHERE id = ?")
259
+ .get(av.exclude_list_id);
260
+ const collection = db
261
+ .prepare("SELECT li_account_id FROM collections WHERE id = ?")
262
+ .get(cpv.collection_id);
263
+ expect(collection.li_account_id).toBe(5);
264
+ });
265
+ });
266
+ describe("updateCampaign", () => {
267
+ it("updates campaign name", () => {
268
+ const updated = repo.updateCampaign(1, { name: "New Name" });
269
+ expect(updated.id).toBe(1);
270
+ expect(updated.name).toBe("New Name");
271
+ expect(updated.description).toBe("Test outreach campaign");
272
+ });
273
+ it("updates campaign description", () => {
274
+ const updated = repo.updateCampaign(1, {
275
+ description: "New description",
276
+ });
277
+ expect(updated.id).toBe(1);
278
+ expect(updated.name).toBe("Outreach Campaign");
279
+ expect(updated.description).toBe("New description");
280
+ });
281
+ it("clears campaign description with null", () => {
282
+ const updated = repo.updateCampaign(1, { description: null });
283
+ expect(updated.id).toBe(1);
284
+ expect(updated.description).toBeNull();
285
+ });
286
+ it("updates both name and description", () => {
287
+ const updated = repo.updateCampaign(1, {
288
+ name: "Updated",
289
+ description: "Updated desc",
290
+ });
291
+ expect(updated.name).toBe("Updated");
292
+ expect(updated.description).toBe("Updated desc");
293
+ });
294
+ it("returns unchanged campaign when no fields provided", () => {
295
+ const updated = repo.updateCampaign(1, {});
296
+ expect(updated.name).toBe("Outreach Campaign");
297
+ expect(updated.description).toBe("Test outreach campaign");
298
+ });
299
+ it("throws CampaignNotFoundError for missing campaign", () => {
300
+ expect(() => repo.updateCampaign(999, { name: "X" })).toThrow(CampaignNotFoundError);
301
+ });
302
+ it("preserves other campaign fields", () => {
303
+ const before = repo.getCampaign(1);
304
+ const updated = repo.updateCampaign(1, { name: "Changed" });
305
+ expect(updated.state).toBe(before.state);
306
+ expect(updated.liAccountId).toBe(before.liAccountId);
307
+ expect(updated.isPaused).toBe(before.isPaused);
308
+ expect(updated.isArchived).toBe(before.isArchived);
309
+ expect(updated.isValid).toBe(before.isValid);
310
+ expect(updated.createdAt).toBe(before.createdAt);
311
+ });
312
+ });
313
+ describe("moveToNextAction", () => {
314
+ // Campaign 5 has 3 actions: action 5 (VisitAndExtract) -> action 6 (Waiter) -> action 7 (InvitePerson)
315
+ // Person 1 is queued (state=1) in action 5, person 3 is processed (state=2) in action 5
316
+ it("moves person from current action to next action", () => {
317
+ const result = repo.moveToNextAction(5, 5, [1]);
318
+ expect(result.nextActionId).toBe(6);
319
+ // Person 1 should be marked successful (state=3) in action 5
320
+ const currentTarget = db
321
+ .prepare("SELECT state FROM action_target_people WHERE action_id = 5 AND person_id = 1")
322
+ .get();
323
+ expect(currentTarget.state).toBe(3);
324
+ // Person 1 should be queued (state=1) in action 6
325
+ const nextTarget = db
326
+ .prepare("SELECT state FROM action_target_people WHERE action_id = 6 AND person_id = 1")
327
+ .get();
328
+ expect(nextTarget.state).toBe(1);
329
+ });
330
+ it("moves person from middle action to last action", () => {
331
+ // First insert person 1 into action 6 (middle) so we can move to action 7
332
+ db.exec(`INSERT INTO action_target_people (action_id, action_version_id, person_id, state, li_account_id)
333
+ VALUES (6, 6, 1, 2, 1)`);
334
+ const result = repo.moveToNextAction(5, 6, [1]);
335
+ expect(result.nextActionId).toBe(7);
336
+ // Person 1 should be marked successful (state=3) in action 6
337
+ const currentTarget = db
338
+ .prepare("SELECT state FROM action_target_people WHERE action_id = 6 AND person_id = 1")
339
+ .get();
340
+ expect(currentTarget.state).toBe(3);
341
+ // Person 1 should be queued (state=1) in action 7
342
+ const nextTarget = db
343
+ .prepare("SELECT state FROM action_target_people WHERE action_id = 7 AND person_id = 1")
344
+ .get();
345
+ expect(nextTarget.state).toBe(1);
346
+ });
347
+ it("handles multiple persons in a single move", () => {
348
+ const result = repo.moveToNextAction(5, 5, [1, 3]);
349
+ expect(result.nextActionId).toBe(6);
350
+ // Both persons should be successful in action 5
351
+ const targets = db
352
+ .prepare("SELECT person_id, state FROM action_target_people WHERE action_id = 5")
353
+ .all();
354
+ const stateByPerson = new Map(targets.map((t) => [t.person_id, t.state]));
355
+ expect(stateByPerson.get(1)).toBe(3);
356
+ expect(stateByPerson.get(3)).toBe(3);
357
+ // Both should be queued in action 6
358
+ const nextTargets = db
359
+ .prepare("SELECT person_id, state FROM action_target_people WHERE action_id = 6")
360
+ .all();
361
+ expect(nextTargets).toHaveLength(2);
362
+ const nextStateByPerson = new Map(nextTargets.map((t) => [t.person_id, t.state]));
363
+ expect(nextStateByPerson.get(1)).toBe(1);
364
+ expect(nextStateByPerson.get(3)).toBe(1);
365
+ });
366
+ it("requeues person already in next action target list", () => {
367
+ // Insert person 1 into action 6 with state=2 (already processed)
368
+ db.exec(`INSERT INTO action_target_people (action_id, action_version_id, person_id, state, li_account_id)
369
+ VALUES (6, 6, 1, 2, 1)`);
370
+ repo.moveToNextAction(5, 5, [1]);
371
+ // Person 1 should be requeued (state=1) in action 6
372
+ const target = db
373
+ .prepare("SELECT state FROM action_target_people WHERE action_id = 6 AND person_id = 1")
374
+ .get();
375
+ expect(target.state).toBe(1);
376
+ });
377
+ it("throws NoNextActionError for last action", () => {
378
+ expect(() => repo.moveToNextAction(5, 7, [1])).toThrow(NoNextActionError);
379
+ });
380
+ it("throws ActionNotFoundError for invalid action", () => {
381
+ expect(() => repo.moveToNextAction(5, 999, [1])).toThrow(ActionNotFoundError);
382
+ });
383
+ it("throws CampaignNotFoundError for missing campaign", () => {
384
+ expect(() => repo.moveToNextAction(999, 5, [1])).toThrow(CampaignNotFoundError);
385
+ });
386
+ it("handles empty person list gracefully", () => {
387
+ const result = repo.moveToNextAction(5, 5, []);
388
+ expect(result.nextActionId).toBe(0);
389
+ });
390
+ });
391
+ });
392
+ //# sourceMappingURL=campaign.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.test.js","sourceRoot":"","sources":["../../../src/db/repositories/campaign.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
+ export { CampaignExcludeListRepository } from "./campaign-exclude-list.js";
2
+ export { CampaignRepository } from "./campaign.js";
3
+ export { CampaignStatisticsRepository } from "./campaign-statistics.js";
4
+ export { MessageRepository } from "./message.js";
1
5
  export { ProfileRepository } from "./profile.js";
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +1,8 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ export { CampaignExcludeListRepository } from "./campaign-exclude-list.js";
4
+ export { CampaignRepository } from "./campaign.js";
5
+ export { CampaignStatisticsRepository } from "./campaign-statistics.js";
6
+ export { MessageRepository } from "./message.js";
1
7
  export { ProfileRepository } from "./profile.js";
2
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/repositories/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { Chat, ConversationMessages, ConversationThread, Message, MessageStats } from "../../types/index.js";
2
+ import type { DatabaseClient } from "../client.js";
3
+ /**
4
+ * Read-only repository for querying messaging data from
5
+ * LinkedHelper's SQLite database.
6
+ */
7
+ export declare class MessageRepository {
8
+ private readonly stmtChatById;
9
+ private readonly stmtChatParticipants;
10
+ private readonly stmtChatMessageCount;
11
+ private readonly stmtChatLastMessage;
12
+ private readonly stmtListChats;
13
+ private readonly stmtListChatsByPerson;
14
+ private readonly stmtThreadMessages;
15
+ private readonly stmtThreadMessagesBefore;
16
+ private readonly stmtSearchMessages;
17
+ private readonly stmtMessagesSince;
18
+ private readonly stmtStats;
19
+ constructor(client: DatabaseClient);
20
+ /**
21
+ * Lists conversations, optionally filtered by a participant's person ID.
22
+ */
23
+ listChats(options?: {
24
+ personId?: number;
25
+ limit?: number;
26
+ offset?: number;
27
+ }): Chat[];
28
+ /**
29
+ * Gets the full conversation thread for a chat.
30
+ *
31
+ * @throws {ChatNotFoundError} if no chat exists with the given ID.
32
+ */
33
+ getThread(chatId: number, options?: {
34
+ limit?: number;
35
+ before?: string;
36
+ }): ConversationThread;
37
+ /**
38
+ * Searches messages by text content using SQL LIKE.
39
+ */
40
+ searchMessages(query: string, options?: {
41
+ limit?: number;
42
+ }): Message[];
43
+ /**
44
+ * Returns messages received after the given ISO timestamp, grouped
45
+ * by conversation. Each group identifies the sender (person) and
46
+ * includes the list of new messages in chronological order.
47
+ */
48
+ getMessagesSince(since: string): ConversationMessages[];
49
+ /**
50
+ * Returns aggregate statistics across all messaging data.
51
+ */
52
+ getMessageStats(): MessageStats;
53
+ private assembleChatFromListRow;
54
+ private assembleChat;
55
+ private getChatParticipants;
56
+ }
57
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/message.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EAEJ,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA8DnD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAEf,MAAM,EAAE,cAAc;IAwLlC;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,EAAE;IAqBV;;;;OAIG;IACH,SAAS,CACP,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,kBAAkB;IA0BrB;;OAEG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,EAAE;IAYZ;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,EAAE;IA4BvD;;OAEG;IACH,eAAe,IAAI,YAAY;IAW/B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,mBAAmB;CAW5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.integration.test.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/message.integration.test.ts"],"names":[],"mappings":""}