@lhremote/core 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/dist/cdp/app-discovery.d.ts +57 -0
  2. package/dist/cdp/app-discovery.d.ts.map +1 -1
  3. package/dist/cdp/app-discovery.js +90 -7
  4. package/dist/cdp/app-discovery.js.map +1 -1
  5. package/dist/cdp/app-discovery.test.js +180 -9
  6. package/dist/cdp/app-discovery.test.js.map +1 -1
  7. package/dist/cdp/client.d.ts +8 -1
  8. package/dist/cdp/client.d.ts.map +1 -1
  9. package/dist/cdp/client.js +8 -1
  10. package/dist/cdp/client.js.map +1 -1
  11. package/dist/cdp/discovery.d.ts.map +1 -1
  12. package/dist/cdp/discovery.js +5 -1
  13. package/dist/cdp/discovery.js.map +1 -1
  14. package/dist/cdp/discovery.test.js +7 -0
  15. package/dist/cdp/discovery.test.js.map +1 -1
  16. package/dist/cdp/index.d.ts +1 -1
  17. package/dist/cdp/index.d.ts.map +1 -1
  18. package/dist/cdp/index.js +1 -1
  19. package/dist/cdp/index.js.map +1 -1
  20. package/dist/cdp/instance-discovery.d.ts.map +1 -1
  21. package/dist/cdp/instance-discovery.js +25 -10
  22. package/dist/cdp/instance-discovery.js.map +1 -1
  23. package/dist/cdp/instance-discovery.test.js +17 -0
  24. package/dist/cdp/instance-discovery.test.js.map +1 -1
  25. package/dist/cdp/testing/launch-chromium.d.ts +1 -1
  26. package/dist/cdp/testing/launch-chromium.js +2 -2
  27. package/dist/db/client.d.ts.map +1 -1
  28. package/dist/db/client.js +3 -0
  29. package/dist/db/client.js.map +1 -1
  30. package/dist/db/repositories/campaign-hard-delete.integration.test.js +4 -1
  31. package/dist/db/repositories/campaign-hard-delete.integration.test.js.map +1 -1
  32. package/dist/db/repositories/campaign.d.ts.map +1 -1
  33. package/dist/db/repositories/campaign.js +81 -33
  34. package/dist/db/repositories/campaign.js.map +1 -1
  35. package/dist/db/repositories/campaign.test.js +2 -2
  36. package/dist/db/repositories/collection-list.d.ts +11 -0
  37. package/dist/db/repositories/collection-list.d.ts.map +1 -1
  38. package/dist/db/repositories/collection-list.integration.test.js +6 -4
  39. package/dist/db/repositories/collection-list.integration.test.js.map +1 -1
  40. package/dist/db/repositories/collection-list.js +92 -2
  41. package/dist/db/repositories/collection-list.js.map +1 -1
  42. package/dist/db/testing/create-fixture.js +36 -2
  43. package/dist/db/testing/create-fixture.js.map +1 -1
  44. package/dist/index.d.ts +6 -6
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +6 -6
  47. package/dist/index.js.map +1 -1
  48. package/dist/linkedin/dom-automation-retry.test.d.ts +2 -0
  49. package/dist/linkedin/dom-automation-retry.test.d.ts.map +1 -0
  50. package/dist/linkedin/dom-automation-retry.test.js +51 -0
  51. package/dist/linkedin/dom-automation-retry.test.js.map +1 -0
  52. package/dist/linkedin/dom-automation.d.ts +166 -6
  53. package/dist/linkedin/dom-automation.d.ts.map +1 -1
  54. package/dist/linkedin/dom-automation.js +496 -21
  55. package/dist/linkedin/dom-automation.js.map +1 -1
  56. package/dist/linkedin/humanized-mouse.d.ts +69 -0
  57. package/dist/linkedin/humanized-mouse.d.ts.map +1 -0
  58. package/dist/linkedin/humanized-mouse.js +109 -0
  59. package/dist/linkedin/humanized-mouse.js.map +1 -0
  60. package/dist/linkedin/index.d.ts +3 -2
  61. package/dist/linkedin/index.d.ts.map +1 -1
  62. package/dist/linkedin/index.js +3 -2
  63. package/dist/linkedin/index.js.map +1 -1
  64. package/dist/linkedin/selectors.d.ts +74 -48
  65. package/dist/linkedin/selectors.d.ts.map +1 -1
  66. package/dist/linkedin/selectors.js +64 -41
  67. package/dist/linkedin/selectors.js.map +1 -1
  68. package/dist/operations/add-people-to-collection.d.ts +1 -1
  69. package/dist/operations/add-people-to-collection.d.ts.map +1 -1
  70. package/dist/operations/add-people-to-collection.js +3 -6
  71. package/dist/operations/add-people-to-collection.js.map +1 -1
  72. package/dist/operations/build-linkedin-url.test.d.ts +2 -0
  73. package/dist/operations/build-linkedin-url.test.d.ts.map +1 -0
  74. package/dist/operations/build-linkedin-url.test.js +158 -0
  75. package/dist/operations/build-linkedin-url.test.js.map +1 -0
  76. package/dist/operations/campaign-add-action.d.ts +1 -1
  77. package/dist/operations/campaign-add-action.d.ts.map +1 -1
  78. package/dist/operations/campaign-add-action.js +3 -6
  79. package/dist/operations/campaign-add-action.js.map +1 -1
  80. package/dist/operations/campaign-create.d.ts +1 -1
  81. package/dist/operations/campaign-create.d.ts.map +1 -1
  82. package/dist/operations/campaign-create.js +3 -6
  83. package/dist/operations/campaign-create.js.map +1 -1
  84. package/dist/operations/campaign-delete.d.ts +1 -1
  85. package/dist/operations/campaign-delete.d.ts.map +1 -1
  86. package/dist/operations/campaign-delete.js +3 -6
  87. package/dist/operations/campaign-delete.js.map +1 -1
  88. package/dist/operations/campaign-erase.d.ts +1 -1
  89. package/dist/operations/campaign-erase.d.ts.map +1 -1
  90. package/dist/operations/campaign-erase.js +3 -6
  91. package/dist/operations/campaign-erase.js.map +1 -1
  92. package/dist/operations/campaign-exclude-add.d.ts +1 -1
  93. package/dist/operations/campaign-exclude-add.d.ts.map +1 -1
  94. package/dist/operations/campaign-exclude-add.js +3 -6
  95. package/dist/operations/campaign-exclude-add.js.map +1 -1
  96. package/dist/operations/campaign-exclude-list.d.ts +1 -1
  97. package/dist/operations/campaign-exclude-list.d.ts.map +1 -1
  98. package/dist/operations/campaign-exclude-list.js +3 -6
  99. package/dist/operations/campaign-exclude-list.js.map +1 -1
  100. package/dist/operations/campaign-exclude-remove.d.ts +1 -1
  101. package/dist/operations/campaign-exclude-remove.d.ts.map +1 -1
  102. package/dist/operations/campaign-exclude-remove.js +3 -6
  103. package/dist/operations/campaign-exclude-remove.js.map +1 -1
  104. package/dist/operations/campaign-export.d.ts +1 -1
  105. package/dist/operations/campaign-export.d.ts.map +1 -1
  106. package/dist/operations/campaign-export.js +3 -6
  107. package/dist/operations/campaign-export.js.map +1 -1
  108. package/dist/operations/campaign-get.d.ts +1 -1
  109. package/dist/operations/campaign-get.d.ts.map +1 -1
  110. package/dist/operations/campaign-get.js +3 -6
  111. package/dist/operations/campaign-get.js.map +1 -1
  112. package/dist/operations/campaign-list-people.d.ts +1 -1
  113. package/dist/operations/campaign-list-people.d.ts.map +1 -1
  114. package/dist/operations/campaign-list-people.js +3 -6
  115. package/dist/operations/campaign-list-people.js.map +1 -1
  116. package/dist/operations/campaign-list.d.ts +1 -1
  117. package/dist/operations/campaign-list.d.ts.map +1 -1
  118. package/dist/operations/campaign-list.js +3 -6
  119. package/dist/operations/campaign-list.js.map +1 -1
  120. package/dist/operations/campaign-move-next.d.ts +1 -1
  121. package/dist/operations/campaign-move-next.d.ts.map +1 -1
  122. package/dist/operations/campaign-move-next.js +3 -6
  123. package/dist/operations/campaign-move-next.js.map +1 -1
  124. package/dist/operations/campaign-remove-action.d.ts +1 -1
  125. package/dist/operations/campaign-remove-action.d.ts.map +1 -1
  126. package/dist/operations/campaign-remove-action.js +3 -6
  127. package/dist/operations/campaign-remove-action.js.map +1 -1
  128. package/dist/operations/campaign-remove-people.d.ts +1 -1
  129. package/dist/operations/campaign-remove-people.d.ts.map +1 -1
  130. package/dist/operations/campaign-remove-people.js +3 -6
  131. package/dist/operations/campaign-remove-people.js.map +1 -1
  132. package/dist/operations/campaign-reorder-actions.d.ts +1 -1
  133. package/dist/operations/campaign-reorder-actions.d.ts.map +1 -1
  134. package/dist/operations/campaign-reorder-actions.js +3 -6
  135. package/dist/operations/campaign-reorder-actions.js.map +1 -1
  136. package/dist/operations/campaign-retry.d.ts +1 -1
  137. package/dist/operations/campaign-retry.d.ts.map +1 -1
  138. package/dist/operations/campaign-retry.js +3 -6
  139. package/dist/operations/campaign-retry.js.map +1 -1
  140. package/dist/operations/campaign-start.d.ts +1 -1
  141. package/dist/operations/campaign-start.d.ts.map +1 -1
  142. package/dist/operations/campaign-start.js +3 -6
  143. package/dist/operations/campaign-start.js.map +1 -1
  144. package/dist/operations/campaign-statistics.d.ts +1 -1
  145. package/dist/operations/campaign-statistics.d.ts.map +1 -1
  146. package/dist/operations/campaign-statistics.js +3 -6
  147. package/dist/operations/campaign-statistics.js.map +1 -1
  148. package/dist/operations/campaign-status.d.ts +1 -1
  149. package/dist/operations/campaign-status.d.ts.map +1 -1
  150. package/dist/operations/campaign-status.js +3 -6
  151. package/dist/operations/campaign-status.js.map +1 -1
  152. package/dist/operations/campaign-stop.d.ts +1 -1
  153. package/dist/operations/campaign-stop.d.ts.map +1 -1
  154. package/dist/operations/campaign-stop.js +3 -6
  155. package/dist/operations/campaign-stop.js.map +1 -1
  156. package/dist/operations/campaign-update-action.d.ts +1 -1
  157. package/dist/operations/campaign-update-action.d.ts.map +1 -1
  158. package/dist/operations/campaign-update-action.js +3 -6
  159. package/dist/operations/campaign-update-action.js.map +1 -1
  160. package/dist/operations/campaign-update.d.ts +1 -1
  161. package/dist/operations/campaign-update.d.ts.map +1 -1
  162. package/dist/operations/campaign-update.js +3 -6
  163. package/dist/operations/campaign-update.js.map +1 -1
  164. package/dist/operations/check-replies.d.ts +3 -1
  165. package/dist/operations/check-replies.d.ts.map +1 -1
  166. package/dist/operations/check-replies.js +124 -17
  167. package/dist/operations/check-replies.js.map +1 -1
  168. package/dist/operations/check-replies.test.js +152 -17
  169. package/dist/operations/check-replies.test.js.map +1 -1
  170. package/dist/operations/collect-people.d.ts +1 -1
  171. package/dist/operations/collect-people.d.ts.map +1 -1
  172. package/dist/operations/collect-people.js +18 -12
  173. package/dist/operations/collect-people.js.map +1 -1
  174. package/dist/operations/collect-people.test.js +21 -5
  175. package/dist/operations/collect-people.test.js.map +1 -1
  176. package/dist/operations/comment-on-post.d.ts +4 -1
  177. package/dist/operations/comment-on-post.d.ts.map +1 -1
  178. package/dist/operations/comment-on-post.js +15 -19
  179. package/dist/operations/comment-on-post.js.map +1 -1
  180. package/dist/operations/comment-on-post.test.js +8 -6
  181. package/dist/operations/comment-on-post.test.js.map +1 -1
  182. package/dist/operations/create-collection.d.ts +1 -1
  183. package/dist/operations/create-collection.d.ts.map +1 -1
  184. package/dist/operations/create-collection.js +5 -7
  185. package/dist/operations/create-collection.js.map +1 -1
  186. package/dist/operations/create-collection.test.js +3 -1
  187. package/dist/operations/create-collection.test.js.map +1 -1
  188. package/dist/operations/delete-collection.d.ts +1 -1
  189. package/dist/operations/delete-collection.d.ts.map +1 -1
  190. package/dist/operations/delete-collection.js +3 -6
  191. package/dist/operations/delete-collection.js.map +1 -1
  192. package/dist/operations/dismiss-errors.d.ts +11 -5
  193. package/dist/operations/dismiss-errors.d.ts.map +1 -1
  194. package/dist/operations/dismiss-errors.js +68 -34
  195. package/dist/operations/dismiss-errors.js.map +1 -1
  196. package/dist/operations/dismiss-errors.test.js +129 -8
  197. package/dist/operations/dismiss-errors.test.js.map +1 -1
  198. package/dist/operations/endorse-skills.test.d.ts +2 -0
  199. package/dist/operations/endorse-skills.test.d.ts.map +1 -0
  200. package/dist/operations/endorse-skills.test.js +70 -0
  201. package/dist/operations/endorse-skills.test.js.map +1 -0
  202. package/dist/operations/enrich-profile.test.d.ts +2 -0
  203. package/dist/operations/enrich-profile.test.d.ts.map +1 -0
  204. package/dist/operations/enrich-profile.test.js +73 -0
  205. package/dist/operations/enrich-profile.test.js.map +1 -0
  206. package/dist/operations/ephemeral-action.d.ts +2 -1
  207. package/dist/operations/ephemeral-action.d.ts.map +1 -1
  208. package/dist/operations/ephemeral-action.js +5 -7
  209. package/dist/operations/ephemeral-action.js.map +1 -1
  210. package/dist/operations/ephemeral-action.test.d.ts +2 -0
  211. package/dist/operations/ephemeral-action.test.d.ts.map +1 -0
  212. package/dist/operations/ephemeral-action.test.js +159 -0
  213. package/dist/operations/ephemeral-action.test.js.map +1 -0
  214. package/dist/operations/follow-person.test.d.ts +2 -0
  215. package/dist/operations/follow-person.test.d.ts.map +1 -0
  216. package/dist/operations/follow-person.test.js +57 -0
  217. package/dist/operations/follow-person.test.js.map +1 -0
  218. package/dist/operations/get-action-budget.d.ts +1 -1
  219. package/dist/operations/get-action-budget.d.ts.map +1 -1
  220. package/dist/operations/get-action-budget.js +3 -6
  221. package/dist/operations/get-action-budget.js.map +1 -1
  222. package/dist/operations/get-errors.d.ts +5 -1
  223. package/dist/operations/get-errors.d.ts.map +1 -1
  224. package/dist/operations/get-errors.js +55 -33
  225. package/dist/operations/get-errors.js.map +1 -1
  226. package/dist/operations/get-errors.test.js +54 -55
  227. package/dist/operations/get-errors.test.js.map +1 -1
  228. package/dist/operations/get-feed.d.ts +83 -4
  229. package/dist/operations/get-feed.d.ts.map +1 -1
  230. package/dist/operations/get-feed.js +400 -153
  231. package/dist/operations/get-feed.js.map +1 -1
  232. package/dist/operations/get-feed.test.js +416 -190
  233. package/dist/operations/get-feed.test.js.map +1 -1
  234. package/dist/operations/get-post-engagers.d.ts +6 -3
  235. package/dist/operations/get-post-engagers.d.ts.map +1 -1
  236. package/dist/operations/get-post-engagers.js +278 -78
  237. package/dist/operations/get-post-engagers.js.map +1 -1
  238. package/dist/operations/get-post-engagers.test.js +292 -14
  239. package/dist/operations/get-post-engagers.test.js.map +1 -1
  240. package/dist/operations/get-post-stats.d.ts +8 -3
  241. package/dist/operations/get-post-stats.d.ts.map +1 -1
  242. package/dist/operations/get-post-stats.js +101 -37
  243. package/dist/operations/get-post-stats.js.map +1 -1
  244. package/dist/operations/get-post-stats.test.js +137 -2
  245. package/dist/operations/get-post-stats.test.js.map +1 -1
  246. package/dist/operations/get-post.d.ts +9 -150
  247. package/dist/operations/get-post.d.ts.map +1 -1
  248. package/dist/operations/get-post.js +356 -210
  249. package/dist/operations/get-post.js.map +1 -1
  250. package/dist/operations/get-post.test.js +210 -387
  251. package/dist/operations/get-post.test.js.map +1 -1
  252. package/dist/operations/get-profile-activity.d.ts +13 -92
  253. package/dist/operations/get-profile-activity.d.ts.map +1 -1
  254. package/dist/operations/get-profile-activity.js +305 -105
  255. package/dist/operations/get-profile-activity.js.map +1 -1
  256. package/dist/operations/get-profile-activity.test.js +277 -158
  257. package/dist/operations/get-profile-activity.test.js.map +1 -1
  258. package/dist/operations/get-throttle-status.d.ts +1 -1
  259. package/dist/operations/get-throttle-status.d.ts.map +1 -1
  260. package/dist/operations/get-throttle-status.js +4 -10
  261. package/dist/operations/get-throttle-status.js.map +1 -1
  262. package/dist/operations/import-people-from-collection.d.ts +1 -1
  263. package/dist/operations/import-people-from-collection.d.ts.map +1 -1
  264. package/dist/operations/import-people-from-collection.js +3 -6
  265. package/dist/operations/import-people-from-collection.js.map +1 -1
  266. package/dist/operations/import-people-from-urls.d.ts +1 -1
  267. package/dist/operations/import-people-from-urls.d.ts.map +1 -1
  268. package/dist/operations/import-people-from-urls.js +3 -6
  269. package/dist/operations/import-people-from-urls.js.map +1 -1
  270. package/dist/operations/index.d.ts +2 -2
  271. package/dist/operations/index.d.ts.map +1 -1
  272. package/dist/operations/index.js +2 -1
  273. package/dist/operations/index.js.map +1 -1
  274. package/dist/operations/like-person-posts.test.d.ts +2 -0
  275. package/dist/operations/like-person-posts.test.d.ts.map +1 -0
  276. package/dist/operations/like-person-posts.test.js +103 -0
  277. package/dist/operations/like-person-posts.test.js.map +1 -0
  278. package/dist/operations/list-collections.d.ts +1 -1
  279. package/dist/operations/list-collections.d.ts.map +1 -1
  280. package/dist/operations/list-collections.js +3 -6
  281. package/dist/operations/list-collections.js.map +1 -1
  282. package/dist/operations/message-person.test.d.ts +2 -0
  283. package/dist/operations/message-person.test.d.ts.map +1 -0
  284. package/dist/operations/message-person.test.js +108 -0
  285. package/dist/operations/message-person.test.js.map +1 -0
  286. package/dist/operations/navigate-away.d.ts +14 -0
  287. package/dist/operations/navigate-away.d.ts.map +1 -0
  288. package/dist/operations/navigate-away.js +24 -0
  289. package/dist/operations/navigate-away.js.map +1 -0
  290. package/dist/operations/navigate-away.test.d.ts +2 -0
  291. package/dist/operations/navigate-away.test.d.ts.map +1 -0
  292. package/dist/operations/navigate-away.test.js +51 -0
  293. package/dist/operations/navigate-away.test.js.map +1 -0
  294. package/dist/operations/query-messages.d.ts +1 -1
  295. package/dist/operations/query-messages.d.ts.map +1 -1
  296. package/dist/operations/query-messages.js +3 -6
  297. package/dist/operations/query-messages.js.map +1 -1
  298. package/dist/operations/react-to-post.d.ts +16 -4
  299. package/dist/operations/react-to-post.d.ts.map +1 -1
  300. package/dist/operations/react-to-post.js +86 -24
  301. package/dist/operations/react-to-post.js.map +1 -1
  302. package/dist/operations/react-to-post.test.js +55 -5
  303. package/dist/operations/react-to-post.test.js.map +1 -1
  304. package/dist/operations/remove-connection.test.d.ts +2 -0
  305. package/dist/operations/remove-connection.test.d.ts.map +1 -0
  306. package/dist/operations/remove-connection.test.js +45 -0
  307. package/dist/operations/remove-connection.test.js.map +1 -0
  308. package/dist/operations/remove-people-from-collection.d.ts +1 -1
  309. package/dist/operations/remove-people-from-collection.d.ts.map +1 -1
  310. package/dist/operations/remove-people-from-collection.js +3 -6
  311. package/dist/operations/remove-people-from-collection.js.map +1 -1
  312. package/dist/operations/resolve-linkedin-entity.d.ts.map +1 -1
  313. package/dist/operations/resolve-linkedin-entity.js +2 -2
  314. package/dist/operations/resolve-linkedin-entity.js.map +1 -1
  315. package/dist/operations/resolve-linkedin-entity.test.d.ts +2 -0
  316. package/dist/operations/resolve-linkedin-entity.test.d.ts.map +1 -0
  317. package/dist/operations/resolve-linkedin-entity.test.js +343 -0
  318. package/dist/operations/resolve-linkedin-entity.test.js.map +1 -0
  319. package/dist/operations/scrape-messaging-history.d.ts +2 -1
  320. package/dist/operations/scrape-messaging-history.d.ts.map +1 -1
  321. package/dist/operations/scrape-messaging-history.js +113 -18
  322. package/dist/operations/scrape-messaging-history.js.map +1 -1
  323. package/dist/operations/scrape-messaging-history.test.js +109 -12
  324. package/dist/operations/scrape-messaging-history.test.js.map +1 -1
  325. package/dist/operations/search-posts.d.ts +20 -112
  326. package/dist/operations/search-posts.d.ts.map +1 -1
  327. package/dist/operations/search-posts.js +369 -170
  328. package/dist/operations/search-posts.js.map +1 -1
  329. package/dist/operations/search-posts.test.js +273 -234
  330. package/dist/operations/search-posts.test.js.map +1 -1
  331. package/dist/operations/send-inmail.test.d.ts +2 -0
  332. package/dist/operations/send-inmail.test.d.ts.map +1 -0
  333. package/dist/operations/send-inmail.test.js +108 -0
  334. package/dist/operations/send-inmail.test.js.map +1 -0
  335. package/dist/operations/send-invite.test.d.ts +2 -0
  336. package/dist/operations/send-invite.test.d.ts.map +1 -0
  337. package/dist/operations/send-invite.test.js +59 -0
  338. package/dist/operations/send-invite.test.js.map +1 -0
  339. package/dist/operations/types.d.ts +27 -1
  340. package/dist/operations/types.d.ts.map +1 -1
  341. package/dist/operations/types.js +14 -1
  342. package/dist/operations/types.js.map +1 -1
  343. package/dist/operations/visit-profile.d.ts +1 -1
  344. package/dist/operations/visit-profile.d.ts.map +1 -1
  345. package/dist/operations/visit-profile.js +3 -6
  346. package/dist/operations/visit-profile.js.map +1 -1
  347. package/dist/services/account-resolution.d.ts +10 -4
  348. package/dist/services/account-resolution.d.ts.map +1 -1
  349. package/dist/services/account-resolution.js +63 -5
  350. package/dist/services/account-resolution.js.map +1 -1
  351. package/dist/services/app.d.ts +6 -2
  352. package/dist/services/app.d.ts.map +1 -1
  353. package/dist/services/app.js +18 -6
  354. package/dist/services/app.js.map +1 -1
  355. package/dist/services/app.test.js +41 -7
  356. package/dist/services/app.test.js.map +1 -1
  357. package/dist/services/campaign.d.ts +40 -4
  358. package/dist/services/campaign.d.ts.map +1 -1
  359. package/dist/services/campaign.js +176 -10
  360. package/dist/services/campaign.js.map +1 -1
  361. package/dist/services/campaign.test.js +53 -15
  362. package/dist/services/campaign.test.js.map +1 -1
  363. package/dist/services/collection.d.ts +16 -21
  364. package/dist/services/collection.d.ts.map +1 -1
  365. package/dist/services/collection.js +34 -47
  366. package/dist/services/collection.js.map +1 -1
  367. package/dist/services/collection.test.js +30 -91
  368. package/dist/services/collection.test.js.map +1 -1
  369. package/dist/services/ephemeral-campaign.d.ts +6 -0
  370. package/dist/services/ephemeral-campaign.d.ts.map +1 -1
  371. package/dist/services/ephemeral-campaign.js +54 -10
  372. package/dist/services/ephemeral-campaign.js.map +1 -1
  373. package/dist/services/ephemeral-campaign.test.js +23 -10
  374. package/dist/services/ephemeral-campaign.test.js.map +1 -1
  375. package/dist/services/errors.d.ts +2 -1
  376. package/dist/services/errors.d.ts.map +1 -1
  377. package/dist/services/errors.js +6 -3
  378. package/dist/services/errors.js.map +1 -1
  379. package/dist/services/index.d.ts +1 -2
  380. package/dist/services/index.d.ts.map +1 -1
  381. package/dist/services/index.js +1 -2
  382. package/dist/services/index.js.map +1 -1
  383. package/dist/services/instance-context.d.ts +5 -1
  384. package/dist/services/instance-context.d.ts.map +1 -1
  385. package/dist/services/instance-context.js +87 -28
  386. package/dist/services/instance-context.js.map +1 -1
  387. package/dist/services/instance-context.test.js +5 -1
  388. package/dist/services/instance-context.test.js.map +1 -1
  389. package/dist/services/instance-lifecycle.d.ts.map +1 -1
  390. package/dist/services/instance-lifecycle.js +32 -1
  391. package/dist/services/instance-lifecycle.js.map +1 -1
  392. package/dist/services/instance-lifecycle.test.js +52 -1
  393. package/dist/services/instance-lifecycle.test.js.map +1 -1
  394. package/dist/services/instance.d.ts +37 -9
  395. package/dist/services/instance.d.ts.map +1 -1
  396. package/dist/services/instance.js +100 -25
  397. package/dist/services/instance.js.map +1 -1
  398. package/dist/services/instance.test.js +157 -0
  399. package/dist/services/instance.test.js.map +1 -1
  400. package/dist/services/launcher.d.ts +47 -3
  401. package/dist/services/launcher.d.ts.map +1 -1
  402. package/dist/services/launcher.js +205 -33
  403. package/dist/services/launcher.js.map +1 -1
  404. package/dist/services/launcher.test.js +133 -6
  405. package/dist/services/launcher.test.js.map +1 -1
  406. package/dist/services/source-type-registry.d.ts +8 -0
  407. package/dist/services/source-type-registry.d.ts.map +1 -1
  408. package/dist/services/source-type-registry.js +39 -0
  409. package/dist/services/source-type-registry.js.map +1 -1
  410. package/dist/services/source-type-registry.test.js +31 -1
  411. package/dist/services/source-type-registry.test.js.map +1 -1
  412. package/dist/services/status.d.ts +6 -2
  413. package/dist/services/status.d.ts.map +1 -1
  414. package/dist/services/status.js +67 -34
  415. package/dist/services/status.js.map +1 -1
  416. package/dist/services/status.test.js +9 -2
  417. package/dist/services/status.test.js.map +1 -1
  418. package/dist/testing/e2e-helpers.d.ts +47 -1
  419. package/dist/testing/e2e-helpers.d.ts.map +1 -1
  420. package/dist/testing/e2e-helpers.js +244 -7
  421. package/dist/testing/e2e-helpers.js.map +1 -1
  422. package/dist/testing/index.d.ts +1 -1
  423. package/dist/testing/index.d.ts.map +1 -1
  424. package/dist/testing/index.js +1 -1
  425. package/dist/testing/index.js.map +1 -1
  426. package/dist/types/account.d.ts +1 -1
  427. package/dist/types/campaign.d.ts +1 -1
  428. package/dist/types/campaign.d.ts.map +1 -1
  429. package/dist/types/feed.d.ts +1 -3
  430. package/dist/types/feed.d.ts.map +1 -1
  431. package/dist/types/index.d.ts +0 -1
  432. package/dist/types/index.d.ts.map +1 -1
  433. package/dist/utils/cdp-port.d.ts.map +1 -1
  434. package/dist/utils/cdp-port.js +3 -1
  435. package/dist/utils/cdp-port.js.map +1 -1
  436. package/dist/utils/cdp-port.test.js +1 -1
  437. package/dist/utils/cdp-port.test.js.map +1 -1
  438. package/dist/utils/delay.d.ts +79 -0
  439. package/dist/utils/delay.d.ts.map +1 -1
  440. package/dist/utils/delay.js +118 -0
  441. package/dist/utils/delay.js.map +1 -1
  442. package/dist/utils/delay.test.js +111 -1
  443. package/dist/utils/delay.test.js.map +1 -1
  444. package/dist/utils/index.d.ts +2 -1
  445. package/dist/utils/index.d.ts.map +1 -1
  446. package/dist/utils/index.js +2 -1
  447. package/dist/utils/index.js.map +1 -1
  448. package/dist/utils/session-pacer.d.ts +27 -0
  449. package/dist/utils/session-pacer.d.ts.map +1 -0
  450. package/dist/utils/session-pacer.js +55 -0
  451. package/dist/utils/session-pacer.js.map +1 -0
  452. package/dist/utils/session-pacer.test.d.ts +2 -0
  453. package/dist/utils/session-pacer.test.d.ts.map +1 -0
  454. package/dist/utils/session-pacer.test.js +111 -0
  455. package/dist/utils/session-pacer.test.js.map +1 -0
  456. package/package.json +1 -1
  457. package/dist/linkedin/__tests__/selectors.integration.test.d.ts +0 -2
  458. package/dist/linkedin/__tests__/selectors.integration.test.d.ts.map +0 -1
  459. package/dist/linkedin/__tests__/selectors.integration.test.js +0 -258
  460. package/dist/linkedin/__tests__/selectors.integration.test.js.map +0 -1
  461. package/dist/types/search-posts.d.ts +0 -22
  462. package/dist/types/search-posts.d.ts.map +0 -1
  463. package/dist/types/search-posts.js +0 -4
  464. package/dist/types/search-posts.js.map +0 -1
  465. package/dist/voyager/index.d.ts +0 -2
  466. package/dist/voyager/index.d.ts.map +0 -1
  467. package/dist/voyager/index.js +0 -4
  468. package/dist/voyager/index.js.map +0 -1
  469. package/dist/voyager/interceptor.d.ts +0 -100
  470. package/dist/voyager/interceptor.d.ts.map +0 -1
  471. package/dist/voyager/interceptor.integration.test.d.ts +0 -2
  472. package/dist/voyager/interceptor.integration.test.d.ts.map +0 -1
  473. package/dist/voyager/interceptor.integration.test.js +0 -89
  474. package/dist/voyager/interceptor.integration.test.js.map +0 -1
  475. package/dist/voyager/interceptor.js +0 -235
  476. package/dist/voyager/interceptor.js.map +0 -1
  477. package/dist/voyager/interceptor.test.d.ts +0 -2
  478. package/dist/voyager/interceptor.test.d.ts.map +0 -1
  479. package/dist/voyager/interceptor.test.js +0 -372
  480. package/dist/voyager/interceptor.test.js.map +0 -1
@@ -0,0 +1,343 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-only
2
+ // Copyright (C) 2026 Oleksii PELYKH
3
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
4
+ vi.mock("../cdp/index.js", () => ({
5
+ resolveInstancePort: vi.fn(),
6
+ }));
7
+ vi.mock("../cdp/client.js", () => ({
8
+ CDPClient: vi.fn(),
9
+ }));
10
+ vi.mock("../cdp/discovery.js", () => ({
11
+ discoverTargets: vi.fn(),
12
+ }));
13
+ import { resolveInstancePort } from "../cdp/index.js";
14
+ import { CDPClient } from "../cdp/client.js";
15
+ import { discoverTargets } from "../cdp/discovery.js";
16
+ import { resolveLinkedInEntity } from "./resolve-linkedin-entity.js";
17
+ const LINKEDIN_TARGET = {
18
+ id: "target-1",
19
+ type: "page",
20
+ title: "LinkedIn",
21
+ url: "https://www.linkedin.com/feed/",
22
+ description: "",
23
+ devtoolsFrontendUrl: "",
24
+ };
25
+ const mockClient = {
26
+ connect: vi.fn().mockResolvedValue(undefined),
27
+ evaluate: vi.fn(),
28
+ disconnect: vi.fn(),
29
+ };
30
+ function setupVoyagerMocks() {
31
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
32
+ vi.mocked(CDPClient).mockImplementation(function () {
33
+ return mockClient;
34
+ });
35
+ vi.mocked(discoverTargets).mockResolvedValue([LINKEDIN_TARGET]);
36
+ }
37
+ describe("resolveLinkedInEntity", () => {
38
+ beforeEach(() => {
39
+ vi.clearAllMocks();
40
+ });
41
+ afterEach(() => {
42
+ vi.restoreAllMocks();
43
+ });
44
+ describe("public typeahead (COMPANY/GEO)", () => {
45
+ it("uses public strategy when public endpoint succeeds", async () => {
46
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
47
+ const mockResponse = {
48
+ ok: true,
49
+ json: vi.fn().mockResolvedValue({
50
+ elements: [
51
+ {
52
+ hitInfo: {
53
+ id: "1234",
54
+ displayName: "Acme Corp",
55
+ },
56
+ },
57
+ ],
58
+ }),
59
+ };
60
+ vi.spyOn(globalThis, "fetch").mockResolvedValue(mockResponse);
61
+ const result = await resolveLinkedInEntity({
62
+ query: "Acme",
63
+ entityType: "COMPANY",
64
+ cdpPort: 9222,
65
+ });
66
+ expect(result.strategy).toBe("public");
67
+ expect(result.matches).toEqual([
68
+ { id: "1234", name: "Acme Corp", type: "COMPANY" },
69
+ ]);
70
+ });
71
+ it("returns empty matches when public endpoint returns no elements", async () => {
72
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
73
+ vi.spyOn(globalThis, "fetch").mockResolvedValue({
74
+ ok: true,
75
+ json: vi.fn().mockResolvedValue({ elements: [] }),
76
+ });
77
+ const result = await resolveLinkedInEntity({
78
+ query: "NonexistentCorp",
79
+ entityType: "COMPANY",
80
+ cdpPort: 9222,
81
+ });
82
+ expect(result.strategy).toBe("public");
83
+ expect(result.matches).toEqual([]);
84
+ });
85
+ it("falls back to Voyager when public endpoint fails", async () => {
86
+ setupVoyagerMocks();
87
+ vi.spyOn(globalThis, "fetch").mockResolvedValue({
88
+ ok: false,
89
+ status: 500,
90
+ });
91
+ mockClient.evaluate.mockResolvedValue({
92
+ data: {
93
+ elements: [
94
+ {
95
+ targetUrn: "urn:li:organization:5678",
96
+ title: { text: "Fallback Corp" },
97
+ },
98
+ ],
99
+ },
100
+ });
101
+ const result = await resolveLinkedInEntity({
102
+ query: "Fallback",
103
+ entityType: "COMPANY",
104
+ cdpPort: 9222,
105
+ });
106
+ expect(result.strategy).toBe("voyager");
107
+ expect(result.matches).toEqual([
108
+ { id: "5678", name: "Fallback Corp", type: "COMPANY" },
109
+ ]);
110
+ });
111
+ it("falls back to Voyager when public fetch throws", async () => {
112
+ setupVoyagerMocks();
113
+ vi.spyOn(globalThis, "fetch").mockRejectedValue(new Error("network error"));
114
+ mockClient.evaluate.mockResolvedValue({
115
+ data: { elements: [] },
116
+ });
117
+ const result = await resolveLinkedInEntity({
118
+ query: "test",
119
+ entityType: "GEO",
120
+ cdpPort: 9222,
121
+ });
122
+ expect(result.strategy).toBe("voyager");
123
+ });
124
+ it("uses GEO typeahead type for public endpoint", async () => {
125
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
126
+ const fetchSpy = vi.spyOn(globalThis, "fetch").mockResolvedValue({
127
+ ok: true,
128
+ json: vi.fn().mockResolvedValue({
129
+ elements: [
130
+ { hitInfo: { id: "101", locationName: "San Francisco" } },
131
+ ],
132
+ }),
133
+ });
134
+ await resolveLinkedInEntity({
135
+ query: "San Francisco",
136
+ entityType: "GEO",
137
+ cdpPort: 9222,
138
+ });
139
+ const url = fetchSpy.mock.calls[0]?.[0];
140
+ expect(url).toContain("typeaheadType=GEO");
141
+ expect(url).toContain("query=San+Francisco");
142
+ });
143
+ it("limits public results to 10", async () => {
144
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
145
+ const elements = Array.from({ length: 15 }, (_, i) => ({
146
+ hitInfo: { id: String(i), displayName: `Company ${String(i)}` },
147
+ }));
148
+ vi.spyOn(globalThis, "fetch").mockResolvedValue({
149
+ ok: true,
150
+ json: vi.fn().mockResolvedValue({ elements }),
151
+ });
152
+ const result = await resolveLinkedInEntity({
153
+ query: "test",
154
+ entityType: "COMPANY",
155
+ cdpPort: 9222,
156
+ });
157
+ expect(result.matches).toHaveLength(10);
158
+ });
159
+ it("filters out elements without hitInfo.id", async () => {
160
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
161
+ vi.spyOn(globalThis, "fetch").mockResolvedValue({
162
+ ok: true,
163
+ json: vi.fn().mockResolvedValue({
164
+ elements: [
165
+ { hitInfo: { id: "1", displayName: "Valid" } },
166
+ { hitInfo: { displayName: "No ID" } },
167
+ { hitInfo: { id: "3", companyName: "Also Valid" } },
168
+ ],
169
+ }),
170
+ });
171
+ const result = await resolveLinkedInEntity({
172
+ query: "test",
173
+ entityType: "COMPANY",
174
+ cdpPort: 9222,
175
+ });
176
+ expect(result.matches).toHaveLength(2);
177
+ expect(result.matches[0]?.id).toBe("1");
178
+ expect(result.matches[1]?.id).toBe("3");
179
+ });
180
+ });
181
+ describe("Voyager typeahead (SCHOOL)", () => {
182
+ it("goes directly to Voyager for SCHOOL entity type", async () => {
183
+ setupVoyagerMocks();
184
+ const fetchSpy = vi.spyOn(globalThis, "fetch");
185
+ mockClient.evaluate.mockResolvedValue({
186
+ data: {
187
+ elements: [
188
+ {
189
+ targetUrn: "urn:li:school:12345",
190
+ title: { text: "MIT" },
191
+ },
192
+ ],
193
+ },
194
+ });
195
+ const result = await resolveLinkedInEntity({
196
+ query: "MIT",
197
+ entityType: "SCHOOL",
198
+ cdpPort: 9222,
199
+ });
200
+ // Public endpoint should NOT be called for SCHOOL
201
+ expect(fetchSpy).not.toHaveBeenCalled();
202
+ expect(result.strategy).toBe("voyager");
203
+ expect(result.matches).toEqual([
204
+ { id: "12345", name: "MIT", type: "SCHOOL" },
205
+ ]);
206
+ });
207
+ it("extracts ID from tracking URN when targetUrn is missing", async () => {
208
+ setupVoyagerMocks();
209
+ mockClient.evaluate.mockResolvedValue({
210
+ data: {
211
+ elements: [
212
+ {
213
+ trackingUrn: "urn:li:school:99999",
214
+ title: { text: "Stanford" },
215
+ },
216
+ ],
217
+ },
218
+ });
219
+ const result = await resolveLinkedInEntity({
220
+ query: "Stanford",
221
+ entityType: "SCHOOL",
222
+ cdpPort: 9222,
223
+ });
224
+ expect(result.matches[0]?.id).toBe("99999");
225
+ });
226
+ it("disconnects client after Voyager request", async () => {
227
+ setupVoyagerMocks();
228
+ mockClient.evaluate.mockResolvedValue({
229
+ data: { elements: [] },
230
+ });
231
+ await resolveLinkedInEntity({
232
+ query: "test",
233
+ entityType: "SCHOOL",
234
+ cdpPort: 9222,
235
+ });
236
+ expect(mockClient.disconnect).toHaveBeenCalled();
237
+ });
238
+ it("disconnects client even when Voyager request fails", async () => {
239
+ setupVoyagerMocks();
240
+ mockClient.evaluate.mockResolvedValue({
241
+ error: "HTTP 403: Forbidden",
242
+ });
243
+ await expect(resolveLinkedInEntity({
244
+ query: "test",
245
+ entityType: "SCHOOL",
246
+ cdpPort: 9222,
247
+ })).rejects.toThrow("Voyager typeahead request failed");
248
+ expect(mockClient.disconnect).toHaveBeenCalled();
249
+ });
250
+ it("throws when no LinkedIn page is found", async () => {
251
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
252
+ vi.mocked(CDPClient).mockImplementation(function () {
253
+ return mockClient;
254
+ });
255
+ vi.mocked(discoverTargets).mockResolvedValue([
256
+ {
257
+ id: "target-1",
258
+ type: "page",
259
+ title: "Example",
260
+ url: "https://example.com",
261
+ description: "",
262
+ devtoolsFrontendUrl: "",
263
+ },
264
+ ]);
265
+ await expect(resolveLinkedInEntity({
266
+ query: "test",
267
+ entityType: "SCHOOL",
268
+ cdpPort: 9222,
269
+ })).rejects.toThrow("No LinkedIn page found");
270
+ });
271
+ });
272
+ describe("security", () => {
273
+ it("rejects non-loopback host without allowRemote", async () => {
274
+ vi.mocked(resolveInstancePort).mockResolvedValue(9222);
275
+ vi.mocked(discoverTargets).mockResolvedValue([LINKEDIN_TARGET]);
276
+ await expect(resolveLinkedInEntity({
277
+ query: "test",
278
+ entityType: "SCHOOL",
279
+ cdpPort: 9222,
280
+ cdpHost: "192.168.1.100",
281
+ })).rejects.toThrow("requires --allow-remote");
282
+ });
283
+ it("allows non-loopback host with allowRemote", async () => {
284
+ setupVoyagerMocks();
285
+ mockClient.evaluate.mockResolvedValue({
286
+ data: { elements: [] },
287
+ });
288
+ const result = await resolveLinkedInEntity({
289
+ query: "test",
290
+ entityType: "SCHOOL",
291
+ cdpPort: 9222,
292
+ cdpHost: "192.168.1.100",
293
+ allowRemote: true,
294
+ });
295
+ expect(result.strategy).toBe("voyager");
296
+ });
297
+ it("allows localhost without allowRemote", async () => {
298
+ setupVoyagerMocks();
299
+ mockClient.evaluate.mockResolvedValue({
300
+ data: { elements: [] },
301
+ });
302
+ const result = await resolveLinkedInEntity({
303
+ query: "test",
304
+ entityType: "SCHOOL",
305
+ cdpPort: 9222,
306
+ cdpHost: "localhost",
307
+ });
308
+ expect(result.strategy).toBe("voyager");
309
+ });
310
+ });
311
+ describe("connection options", () => {
312
+ it("defaults cdpHost to 127.0.0.1", async () => {
313
+ setupVoyagerMocks();
314
+ mockClient.evaluate.mockResolvedValue({
315
+ data: { elements: [] },
316
+ });
317
+ await resolveLinkedInEntity({
318
+ query: "test",
319
+ entityType: "SCHOOL",
320
+ cdpPort: 9222,
321
+ });
322
+ expect(discoverTargets).toHaveBeenCalledWith(9222, "127.0.0.1");
323
+ });
324
+ it("uses resolveInstancePort to determine actual port", async () => {
325
+ vi.mocked(resolveInstancePort).mockResolvedValue(35000);
326
+ vi.mocked(CDPClient).mockImplementation(function () {
327
+ return mockClient;
328
+ });
329
+ vi.mocked(discoverTargets).mockResolvedValue([LINKEDIN_TARGET]);
330
+ mockClient.evaluate.mockResolvedValue({
331
+ data: { elements: [] },
332
+ });
333
+ await resolveLinkedInEntity({
334
+ query: "test",
335
+ entityType: "SCHOOL",
336
+ cdpPort: 9222,
337
+ });
338
+ expect(resolveInstancePort).toHaveBeenCalledWith(9222, undefined);
339
+ expect(discoverTargets).toHaveBeenCalledWith(35000, "127.0.0.1");
340
+ });
341
+ });
342
+ });
343
+ //# sourceMappingURL=resolve-linkedin-entity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-linkedin-entity.test.js","sourceRoot":"","sources":["../../src/operations/resolve-linkedin-entity.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { MessageStats } from "../types/index.js";
2
- import type { ConnectionOptions } from "./types.js";
2
+ import { type ConnectionOptions } from "./types.js";
3
3
  export interface ScrapeMessagingHistoryInput extends ConnectionOptions {
4
4
  readonly personIds: number[];
5
+ readonly pauseOthers?: boolean | undefined;
5
6
  }
6
7
  export interface ScrapeMessagingHistoryOutput {
7
8
  readonly success: true;
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-messaging-history.d.ts","sourceRoot":"","sources":["../../src/operations/scrape-messaging-history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CA0BvC"}
1
+ {"version":3,"file":"scrape-messaging-history.d.ts","sourceRoot":"","sources":["../../src/operations/scrape-messaging-history.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQrE,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAoGvC"}
@@ -2,28 +2,123 @@
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
3
  import { resolveAccount } from "../services/account-resolution.js";
4
4
  import { withInstanceDatabase } from "../services/instance-context.js";
5
- import { MessageRepository } from "../db/index.js";
6
- import { DEFAULT_CDP_PORT } from "../constants.js";
5
+ import { CampaignService } from "../services/campaign.js";
6
+ import { CampaignTimeoutError } from "../services/errors.js";
7
+ import { MessageRepository, ProfileRepository } from "../db/index.js";
8
+ import { delay } from "../utils/delay.js";
9
+ import { errorMessage } from "../utils/error-message.js";
10
+ import { buildCdpOptions } from "./types.js";
11
+ /** Timeout for ephemeral campaign completion (5 minutes). */
12
+ const CAMPAIGN_TIMEOUT = 300_000;
13
+ /** Interval between campaign status polls (2 seconds). */
14
+ const POLL_INTERVAL = 2_000;
7
15
  export async function scrapeMessagingHistory(input) {
8
16
  if (input.personIds.length === 0) {
9
17
  throw new Error("At least one personId is required");
10
18
  }
11
- const cdpPort = input.cdpPort ?? DEFAULT_CDP_PORT;
12
- const accountId = await resolveAccount(cdpPort, {
13
- ...(input.cdpHost !== undefined && { host: input.cdpHost }),
14
- ...(input.allowRemote !== undefined && { allowRemote: input.allowRemote }),
15
- });
19
+ const cdpPort = input.cdpPort;
20
+ const accountId = await resolveAccount(cdpPort, buildCdpOptions(input));
16
21
  return withInstanceDatabase(cdpPort, accountId, async ({ instance, db }) => {
17
- await instance.executeAction("ScrapeMessagingHistory", {
18
- personIds: input.personIds,
19
- });
20
- const repo = new MessageRepository(db);
21
- const stats = repo.getMessageStats();
22
- return {
23
- success: true,
24
- actionType: "ScrapeMessagingHistory",
25
- stats,
26
- };
27
- }, { instanceTimeout: 300_000 });
22
+ const campaignService = new CampaignService(instance, db);
23
+ const profileRepo = new ProfileRepository(db);
24
+ // Resolve person IDs to LinkedIn profile URLs
25
+ const profiles = profileRepo.findByIds(input.personIds);
26
+ const linkedInUrls = [];
27
+ for (let i = 0; i < input.personIds.length; i++) {
28
+ const personId = input.personIds[i];
29
+ const profile = profiles[i];
30
+ if (!profile) {
31
+ throw new Error(`Person ${String(personId)} not found in database`);
32
+ }
33
+ const publicId = profile.externalIds.find((e) => e.typeGroup === "public");
34
+ if (!publicId) {
35
+ throw new Error(`Person ${String(personId)} has no LinkedIn public ID`);
36
+ }
37
+ linkedInUrls.push(`https://www.linkedin.com/in/${publicId.externalId}`);
38
+ }
39
+ let campaign;
40
+ let pausedCampaignIds = [];
41
+ try {
42
+ // Pause all campaigns so the runner has nothing left to pick up —
43
+ // otherwise stopRunnerAndWaitForIdle can time out because the
44
+ // runner keeps starting new actions from active campaigns.
45
+ pausedCampaignIds = await campaignService.pauseAll();
46
+ await campaignService.stopRunnerAndWaitForIdle();
47
+ // Create ephemeral campaign with ScrapeMessagingHistory action
48
+ campaign = await campaignService.create({
49
+ name: `[ephemeral] ScrapeMessagingHistory ${new Date().toISOString()}`,
50
+ actions: [{
51
+ name: "ScrapeMessagingHistory",
52
+ actionType: "ScrapeMessagingHistory",
53
+ coolDown: 0,
54
+ maxActionResultsPerIteration: input.personIds.length,
55
+ }],
56
+ });
57
+ // Import target persons into campaign
58
+ await campaignService.importPeopleFromUrls(campaign.id, linkedInUrls);
59
+ // Start the campaign: wait for idle, unpause, start runner
60
+ await campaignService.start(campaign.id, []);
61
+ // Poll for completion (runner idle + no queued persons)
62
+ const deadline = Date.now() + CAMPAIGN_TIMEOUT;
63
+ let completed = false;
64
+ while (Date.now() < deadline) {
65
+ const status = await campaignService.getStatus(campaign.id);
66
+ const counts = status.actionCounts[0];
67
+ if (status.runnerState === "idle" && counts && counts.queued === 0) {
68
+ completed = true;
69
+ break;
70
+ }
71
+ const remaining = deadline - Date.now();
72
+ if (remaining <= 0)
73
+ break;
74
+ await delay(Math.min(POLL_INTERVAL, remaining));
75
+ }
76
+ if (!completed) {
77
+ throw new CampaignTimeoutError(`ScrapeMessagingHistory did not complete within ${String(CAMPAIGN_TIMEOUT)}ms`, campaign.id);
78
+ }
79
+ // Read message stats from database
80
+ const repo = new MessageRepository(db);
81
+ const stats = repo.getMessageStats();
82
+ return {
83
+ success: true,
84
+ actionType: "ScrapeMessagingHistory",
85
+ stats,
86
+ };
87
+ }
88
+ finally {
89
+ // Stop runner first so DB writes don't contend with it
90
+ try {
91
+ await campaignService.stopRunnerAndWaitForIdle();
92
+ }
93
+ catch (e) {
94
+ console.warn("Best-effort stopRunner failed:", errorMessage(e));
95
+ }
96
+ if (campaign) {
97
+ try {
98
+ await campaignService.stop(campaign.id);
99
+ }
100
+ catch (e) {
101
+ console.warn("Best-effort campaign stop failed:", errorMessage(e));
102
+ }
103
+ try {
104
+ campaignService.hardDelete(campaign.id);
105
+ }
106
+ catch (e) {
107
+ console.warn("Best-effort campaign hardDelete failed:", errorMessage(e));
108
+ }
109
+ }
110
+ if (pausedCampaignIds.length > 0) {
111
+ try {
112
+ await campaignService.unpauseCampaigns(pausedCampaignIds);
113
+ }
114
+ catch (e) {
115
+ console.warn("Best-effort unpauseCampaigns failed:", errorMessage(e));
116
+ }
117
+ }
118
+ // Runner is intentionally left stopped — restarting it immediately
119
+ // races with the next operation's pauseAll/stopRunner sequence and
120
+ // the runner may pick up a LinkedIn action before it can be stopped.
121
+ }
122
+ }, { instanceTimeout: CAMPAIGN_TIMEOUT, db: { readOnly: false } });
28
123
  }
29
124
  //# sourceMappingURL=scrape-messaging-history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrape-messaging-history.js","sourceRoot":"","sources":["../../src/operations/scrape-messaging-history.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAanD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC;IAElC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;QACzE,MAAM,QAAQ,CAAC,aAAa,CAAC,wBAAwB,EAAE;YACrD,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,IAAa;YACtB,UAAU,EAAE,wBAAiC;YAC7C,KAAK;SACN,CAAC;IACJ,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"scrape-messaging-history.js","sourceRoot":"","sources":["../../src/operations/scrape-messaging-history.ts"],"names":[],"mappings":"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"}