@lhremote/core 0.7.0 → 0.9.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 (546) 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/index.d.ts +1 -1
  31. package/dist/db/index.d.ts.map +1 -1
  32. package/dist/db/index.js +1 -1
  33. package/dist/db/index.js.map +1 -1
  34. package/dist/db/repositories/action-budget.d.ts +29 -0
  35. package/dist/db/repositories/action-budget.d.ts.map +1 -0
  36. package/dist/db/repositories/action-budget.js +100 -0
  37. package/dist/db/repositories/action-budget.js.map +1 -0
  38. package/dist/db/repositories/action-budget.test.d.ts +2 -0
  39. package/dist/db/repositories/action-budget.test.d.ts.map +1 -0
  40. package/dist/db/repositories/action-budget.test.js +181 -0
  41. package/dist/db/repositories/action-budget.test.js.map +1 -0
  42. package/dist/db/repositories/campaign-hard-delete.integration.test.d.ts +2 -0
  43. package/dist/db/repositories/campaign-hard-delete.integration.test.d.ts.map +1 -0
  44. package/dist/db/repositories/campaign-hard-delete.integration.test.js +78 -0
  45. package/dist/db/repositories/campaign-hard-delete.integration.test.js.map +1 -0
  46. package/dist/db/repositories/campaign.d.ts +14 -0
  47. package/dist/db/repositories/campaign.d.ts.map +1 -1
  48. package/dist/db/repositories/campaign.js +125 -0
  49. package/dist/db/repositories/campaign.js.map +1 -1
  50. package/dist/db/repositories/collection-list.integration.test.js +6 -4
  51. package/dist/db/repositories/collection-list.integration.test.js.map +1 -1
  52. package/dist/db/repositories/index.d.ts +1 -0
  53. package/dist/db/repositories/index.d.ts.map +1 -1
  54. package/dist/db/repositories/index.js +1 -0
  55. package/dist/db/repositories/index.js.map +1 -1
  56. package/dist/index.d.ts +7 -6
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +27 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/linkedin/__tests__/dom-automation.integration.test.d.ts +2 -0
  61. package/dist/linkedin/__tests__/dom-automation.integration.test.d.ts.map +1 -0
  62. package/dist/linkedin/__tests__/dom-automation.integration.test.js +160 -0
  63. package/dist/linkedin/__tests__/dom-automation.integration.test.js.map +1 -0
  64. package/dist/linkedin/dom-automation-retry.test.d.ts +2 -0
  65. package/dist/linkedin/dom-automation-retry.test.d.ts.map +1 -0
  66. package/dist/linkedin/dom-automation-retry.test.js +51 -0
  67. package/dist/linkedin/dom-automation-retry.test.js.map +1 -0
  68. package/dist/linkedin/dom-automation.d.ts +224 -0
  69. package/dist/linkedin/dom-automation.d.ts.map +1 -0
  70. package/dist/linkedin/dom-automation.js +614 -0
  71. package/dist/linkedin/dom-automation.js.map +1 -0
  72. package/dist/linkedin/humanized-mouse.d.ts +69 -0
  73. package/dist/linkedin/humanized-mouse.d.ts.map +1 -0
  74. package/dist/linkedin/humanized-mouse.js +109 -0
  75. package/dist/linkedin/humanized-mouse.js.map +1 -0
  76. package/dist/linkedin/index.d.ts +4 -0
  77. package/dist/linkedin/index.d.ts.map +1 -0
  78. package/dist/linkedin/index.js +6 -0
  79. package/dist/linkedin/index.js.map +1 -0
  80. package/dist/linkedin/selectors.d.ts +67 -0
  81. package/dist/linkedin/selectors.d.ts.map +1 -0
  82. package/dist/linkedin/selectors.js +74 -0
  83. package/dist/linkedin/selectors.js.map +1 -0
  84. package/dist/operations/add-people-to-collection.d.ts +1 -1
  85. package/dist/operations/add-people-to-collection.d.ts.map +1 -1
  86. package/dist/operations/add-people-to-collection.js +3 -6
  87. package/dist/operations/add-people-to-collection.js.map +1 -1
  88. package/dist/operations/build-linkedin-url.test.d.ts +2 -0
  89. package/dist/operations/build-linkedin-url.test.d.ts.map +1 -0
  90. package/dist/operations/build-linkedin-url.test.js +158 -0
  91. package/dist/operations/build-linkedin-url.test.js.map +1 -0
  92. package/dist/operations/campaign-add-action.d.ts +1 -1
  93. package/dist/operations/campaign-add-action.d.ts.map +1 -1
  94. package/dist/operations/campaign-add-action.js +3 -6
  95. package/dist/operations/campaign-add-action.js.map +1 -1
  96. package/dist/operations/campaign-create.d.ts +1 -1
  97. package/dist/operations/campaign-create.d.ts.map +1 -1
  98. package/dist/operations/campaign-create.js +3 -6
  99. package/dist/operations/campaign-create.js.map +1 -1
  100. package/dist/operations/campaign-delete.d.ts +7 -3
  101. package/dist/operations/campaign-delete.d.ts.map +1 -1
  102. package/dist/operations/campaign-delete.js +12 -8
  103. package/dist/operations/campaign-delete.js.map +1 -1
  104. package/dist/operations/campaign-delete.test.js +41 -1
  105. package/dist/operations/campaign-delete.test.js.map +1 -1
  106. package/dist/operations/campaign-erase.d.ts +19 -0
  107. package/dist/operations/campaign-erase.d.ts.map +1 -0
  108. package/dist/operations/campaign-erase.js +19 -0
  109. package/dist/operations/campaign-erase.js.map +1 -0
  110. package/dist/operations/campaign-erase.test.d.ts +2 -0
  111. package/dist/operations/campaign-erase.test.d.ts.map +1 -0
  112. package/dist/operations/campaign-erase.test.js +101 -0
  113. package/dist/operations/campaign-erase.test.js.map +1 -0
  114. package/dist/operations/campaign-exclude-add.d.ts +1 -1
  115. package/dist/operations/campaign-exclude-add.d.ts.map +1 -1
  116. package/dist/operations/campaign-exclude-add.js +3 -6
  117. package/dist/operations/campaign-exclude-add.js.map +1 -1
  118. package/dist/operations/campaign-exclude-list.d.ts +1 -1
  119. package/dist/operations/campaign-exclude-list.d.ts.map +1 -1
  120. package/dist/operations/campaign-exclude-list.js +3 -6
  121. package/dist/operations/campaign-exclude-list.js.map +1 -1
  122. package/dist/operations/campaign-exclude-remove.d.ts +1 -1
  123. package/dist/operations/campaign-exclude-remove.d.ts.map +1 -1
  124. package/dist/operations/campaign-exclude-remove.js +3 -6
  125. package/dist/operations/campaign-exclude-remove.js.map +1 -1
  126. package/dist/operations/campaign-export.d.ts +1 -1
  127. package/dist/operations/campaign-export.d.ts.map +1 -1
  128. package/dist/operations/campaign-export.js +3 -6
  129. package/dist/operations/campaign-export.js.map +1 -1
  130. package/dist/operations/campaign-get.d.ts +1 -1
  131. package/dist/operations/campaign-get.d.ts.map +1 -1
  132. package/dist/operations/campaign-get.js +3 -6
  133. package/dist/operations/campaign-get.js.map +1 -1
  134. package/dist/operations/campaign-list-people.d.ts +1 -1
  135. package/dist/operations/campaign-list-people.d.ts.map +1 -1
  136. package/dist/operations/campaign-list-people.js +3 -6
  137. package/dist/operations/campaign-list-people.js.map +1 -1
  138. package/dist/operations/campaign-list.d.ts +1 -1
  139. package/dist/operations/campaign-list.d.ts.map +1 -1
  140. package/dist/operations/campaign-list.js +3 -6
  141. package/dist/operations/campaign-list.js.map +1 -1
  142. package/dist/operations/campaign-move-next.d.ts +1 -1
  143. package/dist/operations/campaign-move-next.d.ts.map +1 -1
  144. package/dist/operations/campaign-move-next.js +3 -6
  145. package/dist/operations/campaign-move-next.js.map +1 -1
  146. package/dist/operations/campaign-remove-action.d.ts +1 -1
  147. package/dist/operations/campaign-remove-action.d.ts.map +1 -1
  148. package/dist/operations/campaign-remove-action.js +3 -6
  149. package/dist/operations/campaign-remove-action.js.map +1 -1
  150. package/dist/operations/campaign-remove-people.d.ts +1 -1
  151. package/dist/operations/campaign-remove-people.d.ts.map +1 -1
  152. package/dist/operations/campaign-remove-people.js +3 -6
  153. package/dist/operations/campaign-remove-people.js.map +1 -1
  154. package/dist/operations/campaign-reorder-actions.d.ts +1 -1
  155. package/dist/operations/campaign-reorder-actions.d.ts.map +1 -1
  156. package/dist/operations/campaign-reorder-actions.js +3 -6
  157. package/dist/operations/campaign-reorder-actions.js.map +1 -1
  158. package/dist/operations/campaign-retry.d.ts +1 -1
  159. package/dist/operations/campaign-retry.d.ts.map +1 -1
  160. package/dist/operations/campaign-retry.js +3 -6
  161. package/dist/operations/campaign-retry.js.map +1 -1
  162. package/dist/operations/campaign-start.d.ts +1 -1
  163. package/dist/operations/campaign-start.d.ts.map +1 -1
  164. package/dist/operations/campaign-start.js +3 -6
  165. package/dist/operations/campaign-start.js.map +1 -1
  166. package/dist/operations/campaign-statistics.d.ts +1 -1
  167. package/dist/operations/campaign-statistics.d.ts.map +1 -1
  168. package/dist/operations/campaign-statistics.js +3 -6
  169. package/dist/operations/campaign-statistics.js.map +1 -1
  170. package/dist/operations/campaign-status.d.ts +1 -1
  171. package/dist/operations/campaign-status.d.ts.map +1 -1
  172. package/dist/operations/campaign-status.js +3 -6
  173. package/dist/operations/campaign-status.js.map +1 -1
  174. package/dist/operations/campaign-stop.d.ts +1 -1
  175. package/dist/operations/campaign-stop.d.ts.map +1 -1
  176. package/dist/operations/campaign-stop.js +3 -6
  177. package/dist/operations/campaign-stop.js.map +1 -1
  178. package/dist/operations/campaign-update-action.d.ts +1 -1
  179. package/dist/operations/campaign-update-action.d.ts.map +1 -1
  180. package/dist/operations/campaign-update-action.js +3 -6
  181. package/dist/operations/campaign-update-action.js.map +1 -1
  182. package/dist/operations/campaign-update.d.ts +1 -1
  183. package/dist/operations/campaign-update.d.ts.map +1 -1
  184. package/dist/operations/campaign-update.js +3 -6
  185. package/dist/operations/campaign-update.js.map +1 -1
  186. package/dist/operations/check-replies.d.ts +3 -1
  187. package/dist/operations/check-replies.d.ts.map +1 -1
  188. package/dist/operations/check-replies.js +132 -17
  189. package/dist/operations/check-replies.js.map +1 -1
  190. package/dist/operations/check-replies.test.js +177 -17
  191. package/dist/operations/check-replies.test.js.map +1 -1
  192. package/dist/operations/collect-people.d.ts +1 -1
  193. package/dist/operations/collect-people.d.ts.map +1 -1
  194. package/dist/operations/collect-people.js +3 -6
  195. package/dist/operations/collect-people.js.map +1 -1
  196. package/dist/operations/comment-on-post.d.ts +37 -0
  197. package/dist/operations/comment-on-post.d.ts.map +1 -0
  198. package/dist/operations/comment-on-post.js +104 -0
  199. package/dist/operations/comment-on-post.js.map +1 -0
  200. package/dist/operations/comment-on-post.test.d.ts +2 -0
  201. package/dist/operations/comment-on-post.test.d.ts.map +1 -0
  202. package/dist/operations/comment-on-post.test.js +242 -0
  203. package/dist/operations/comment-on-post.test.js.map +1 -0
  204. package/dist/operations/create-collection.d.ts +1 -1
  205. package/dist/operations/create-collection.d.ts.map +1 -1
  206. package/dist/operations/create-collection.js +3 -6
  207. package/dist/operations/create-collection.js.map +1 -1
  208. package/dist/operations/delete-collection.d.ts +1 -1
  209. package/dist/operations/delete-collection.d.ts.map +1 -1
  210. package/dist/operations/delete-collection.js +3 -6
  211. package/dist/operations/delete-collection.js.map +1 -1
  212. package/dist/operations/dismiss-errors.d.ts +25 -0
  213. package/dist/operations/dismiss-errors.d.ts.map +1 -0
  214. package/dist/operations/dismiss-errors.js +74 -0
  215. package/dist/operations/dismiss-errors.js.map +1 -0
  216. package/dist/operations/dismiss-errors.test.d.ts +2 -0
  217. package/dist/operations/dismiss-errors.test.d.ts.map +1 -0
  218. package/dist/operations/dismiss-errors.test.js +183 -0
  219. package/dist/operations/dismiss-errors.test.js.map +1 -0
  220. package/dist/operations/endorse-skills.d.ts +10 -0
  221. package/dist/operations/endorse-skills.d.ts.map +1 -0
  222. package/dist/operations/endorse-skills.js +12 -0
  223. package/dist/operations/endorse-skills.js.map +1 -0
  224. package/dist/operations/endorse-skills.test.d.ts +2 -0
  225. package/dist/operations/endorse-skills.test.d.ts.map +1 -0
  226. package/dist/operations/endorse-skills.test.js +70 -0
  227. package/dist/operations/endorse-skills.test.js.map +1 -0
  228. package/dist/operations/enrich-profile.d.ts +18 -0
  229. package/dist/operations/enrich-profile.d.ts.map +1 -0
  230. package/dist/operations/enrich-profile.js +15 -0
  231. package/dist/operations/enrich-profile.js.map +1 -0
  232. package/dist/operations/enrich-profile.test.d.ts +2 -0
  233. package/dist/operations/enrich-profile.test.d.ts.map +1 -0
  234. package/dist/operations/enrich-profile.test.js +73 -0
  235. package/dist/operations/enrich-profile.test.js.map +1 -0
  236. package/dist/operations/ephemeral-action.d.ts +22 -0
  237. package/dist/operations/ephemeral-action.d.ts.map +1 -0
  238. package/dist/operations/ephemeral-action.js +28 -0
  239. package/dist/operations/ephemeral-action.js.map +1 -0
  240. package/dist/operations/ephemeral-action.test.d.ts +2 -0
  241. package/dist/operations/ephemeral-action.test.d.ts.map +1 -0
  242. package/dist/operations/ephemeral-action.test.js +140 -0
  243. package/dist/operations/ephemeral-action.test.js.map +1 -0
  244. package/dist/operations/follow-person.d.ts +9 -0
  245. package/dist/operations/follow-person.d.ts.map +1 -0
  246. package/dist/operations/follow-person.js +11 -0
  247. package/dist/operations/follow-person.js.map +1 -0
  248. package/dist/operations/follow-person.test.d.ts +2 -0
  249. package/dist/operations/follow-person.test.d.ts.map +1 -0
  250. package/dist/operations/follow-person.test.js +57 -0
  251. package/dist/operations/follow-person.test.js.map +1 -0
  252. package/dist/operations/get-action-budget.d.ts +6 -0
  253. package/dist/operations/get-action-budget.d.ts.map +1 -0
  254. package/dist/operations/get-action-budget.js +19 -0
  255. package/dist/operations/get-action-budget.js.map +1 -0
  256. package/dist/operations/get-action-budget.test.d.ts +2 -0
  257. package/dist/operations/get-action-budget.test.d.ts.map +1 -0
  258. package/dist/operations/get-action-budget.test.js +79 -0
  259. package/dist/operations/get-action-budget.test.js.map +1 -0
  260. package/dist/operations/get-errors.d.ts +14 -4
  261. package/dist/operations/get-errors.d.ts.map +1 -1
  262. package/dist/operations/get-errors.js +72 -13
  263. package/dist/operations/get-errors.js.map +1 -1
  264. package/dist/operations/get-errors.test.js +108 -43
  265. package/dist/operations/get-errors.test.js.map +1 -1
  266. package/dist/operations/get-feed.d.ts +112 -0
  267. package/dist/operations/get-feed.d.ts.map +1 -0
  268. package/dist/operations/get-feed.js +467 -0
  269. package/dist/operations/get-feed.js.map +1 -0
  270. package/dist/operations/get-feed.test.d.ts +2 -0
  271. package/dist/operations/get-feed.test.d.ts.map +1 -0
  272. package/dist/operations/get-feed.test.js +502 -0
  273. package/dist/operations/get-feed.test.js.map +1 -0
  274. package/dist/operations/get-post-engagers.d.ts +43 -0
  275. package/dist/operations/get-post-engagers.d.ts.map +1 -0
  276. package/dist/operations/get-post-engagers.js +328 -0
  277. package/dist/operations/get-post-engagers.js.map +1 -0
  278. package/dist/operations/get-post-engagers.test.d.ts +2 -0
  279. package/dist/operations/get-post-engagers.test.d.ts.map +1 -0
  280. package/dist/operations/get-post-engagers.test.js +297 -0
  281. package/dist/operations/get-post-engagers.test.js.map +1 -0
  282. package/dist/operations/get-post-stats.d.ts +43 -0
  283. package/dist/operations/get-post-stats.d.ts.map +1 -0
  284. package/dist/operations/get-post-stats.js +164 -0
  285. package/dist/operations/get-post-stats.js.map +1 -0
  286. package/dist/operations/get-post-stats.test.d.ts +2 -0
  287. package/dist/operations/get-post-stats.test.d.ts.map +1 -0
  288. package/dist/operations/get-post-stats.test.js +169 -0
  289. package/dist/operations/get-post-stats.test.js.map +1 -0
  290. package/dist/operations/get-post.d.ts +42 -0
  291. package/dist/operations/get-post.d.ts.map +1 -0
  292. package/dist/operations/get-post.js +416 -0
  293. package/dist/operations/get-post.js.map +1 -0
  294. package/dist/operations/get-post.test.d.ts +2 -0
  295. package/dist/operations/get-post.test.d.ts.map +1 -0
  296. package/dist/operations/get-post.test.js +272 -0
  297. package/dist/operations/get-post.test.js.map +1 -0
  298. package/dist/operations/get-profile-activity.d.ts +50 -0
  299. package/dist/operations/get-profile-activity.d.ts.map +1 -0
  300. package/dist/operations/get-profile-activity.js +381 -0
  301. package/dist/operations/get-profile-activity.js.map +1 -0
  302. package/dist/operations/get-profile-activity.test.d.ts +2 -0
  303. package/dist/operations/get-profile-activity.test.d.ts.map +1 -0
  304. package/dist/operations/get-profile-activity.test.js +324 -0
  305. package/dist/operations/get-profile-activity.test.js.map +1 -0
  306. package/dist/operations/get-throttle-status.d.ts +6 -0
  307. package/dist/operations/get-throttle-status.d.ts.map +1 -0
  308. package/dist/operations/get-throttle-status.js +24 -0
  309. package/dist/operations/get-throttle-status.js.map +1 -0
  310. package/dist/operations/get-throttle-status.test.d.ts +2 -0
  311. package/dist/operations/get-throttle-status.test.d.ts.map +1 -0
  312. package/dist/operations/get-throttle-status.test.js +62 -0
  313. package/dist/operations/get-throttle-status.test.js.map +1 -0
  314. package/dist/operations/import-people-from-collection.d.ts +1 -1
  315. package/dist/operations/import-people-from-collection.d.ts.map +1 -1
  316. package/dist/operations/import-people-from-collection.js +3 -6
  317. package/dist/operations/import-people-from-collection.js.map +1 -1
  318. package/dist/operations/import-people-from-urls.d.ts +1 -1
  319. package/dist/operations/import-people-from-urls.d.ts.map +1 -1
  320. package/dist/operations/import-people-from-urls.js +3 -6
  321. package/dist/operations/import-people-from-urls.js.map +1 -1
  322. package/dist/operations/index.d.ts +23 -1
  323. package/dist/operations/index.d.ts.map +1 -1
  324. package/dist/operations/index.js +33 -0
  325. package/dist/operations/index.js.map +1 -1
  326. package/dist/operations/like-person-posts.d.ts +14 -0
  327. package/dist/operations/like-person-posts.d.ts.map +1 -0
  328. package/dist/operations/like-person-posts.js +28 -0
  329. package/dist/operations/like-person-posts.js.map +1 -0
  330. package/dist/operations/like-person-posts.test.d.ts +2 -0
  331. package/dist/operations/like-person-posts.test.d.ts.map +1 -0
  332. package/dist/operations/like-person-posts.test.js +103 -0
  333. package/dist/operations/like-person-posts.test.js.map +1 -0
  334. package/dist/operations/list-collections.d.ts +1 -1
  335. package/dist/operations/list-collections.d.ts.map +1 -1
  336. package/dist/operations/list-collections.js +3 -6
  337. package/dist/operations/list-collections.js.map +1 -1
  338. package/dist/operations/message-person.d.ts +11 -0
  339. package/dist/operations/message-person.d.ts.map +1 -0
  340. package/dist/operations/message-person.js +19 -0
  341. package/dist/operations/message-person.js.map +1 -0
  342. package/dist/operations/message-person.test.d.ts +2 -0
  343. package/dist/operations/message-person.test.d.ts.map +1 -0
  344. package/dist/operations/message-person.test.js +108 -0
  345. package/dist/operations/message-person.test.js.map +1 -0
  346. package/dist/operations/navigate-away.d.ts +14 -0
  347. package/dist/operations/navigate-away.d.ts.map +1 -0
  348. package/dist/operations/navigate-away.js +24 -0
  349. package/dist/operations/navigate-away.js.map +1 -0
  350. package/dist/operations/navigate-away.test.d.ts +2 -0
  351. package/dist/operations/navigate-away.test.d.ts.map +1 -0
  352. package/dist/operations/navigate-away.test.js +51 -0
  353. package/dist/operations/navigate-away.test.js.map +1 -0
  354. package/dist/operations/query-messages.d.ts +1 -1
  355. package/dist/operations/query-messages.d.ts.map +1 -1
  356. package/dist/operations/query-messages.js +3 -6
  357. package/dist/operations/query-messages.js.map +1 -1
  358. package/dist/operations/react-to-post.d.ts +41 -0
  359. package/dist/operations/react-to-post.d.ts.map +1 -0
  360. package/dist/operations/react-to-post.js +80 -0
  361. package/dist/operations/react-to-post.js.map +1 -0
  362. package/dist/operations/react-to-post.test.d.ts +2 -0
  363. package/dist/operations/react-to-post.test.d.ts.map +1 -0
  364. package/dist/operations/react-to-post.test.js +157 -0
  365. package/dist/operations/react-to-post.test.js.map +1 -0
  366. package/dist/operations/remove-connection.d.ts +6 -0
  367. package/dist/operations/remove-connection.d.ts.map +1 -0
  368. package/dist/operations/remove-connection.js +7 -0
  369. package/dist/operations/remove-connection.js.map +1 -0
  370. package/dist/operations/remove-connection.test.d.ts +2 -0
  371. package/dist/operations/remove-connection.test.d.ts.map +1 -0
  372. package/dist/operations/remove-connection.test.js +45 -0
  373. package/dist/operations/remove-connection.test.js.map +1 -0
  374. package/dist/operations/remove-people-from-collection.d.ts +1 -1
  375. package/dist/operations/remove-people-from-collection.d.ts.map +1 -1
  376. package/dist/operations/remove-people-from-collection.js +3 -6
  377. package/dist/operations/remove-people-from-collection.js.map +1 -1
  378. package/dist/operations/resolve-linkedin-entity.d.ts.map +1 -1
  379. package/dist/operations/resolve-linkedin-entity.js +2 -2
  380. package/dist/operations/resolve-linkedin-entity.js.map +1 -1
  381. package/dist/operations/resolve-linkedin-entity.test.d.ts +2 -0
  382. package/dist/operations/resolve-linkedin-entity.test.d.ts.map +1 -0
  383. package/dist/operations/resolve-linkedin-entity.test.js +343 -0
  384. package/dist/operations/resolve-linkedin-entity.test.js.map +1 -0
  385. package/dist/operations/scrape-messaging-history.d.ts +2 -1
  386. package/dist/operations/scrape-messaging-history.d.ts.map +1 -1
  387. package/dist/operations/scrape-messaging-history.js +121 -18
  388. package/dist/operations/scrape-messaging-history.js.map +1 -1
  389. package/dist/operations/scrape-messaging-history.test.js +134 -12
  390. package/dist/operations/scrape-messaging-history.test.js.map +1 -1
  391. package/dist/operations/search-posts.d.ts +51 -0
  392. package/dist/operations/search-posts.d.ts.map +1 -0
  393. package/dist/operations/search-posts.js +419 -0
  394. package/dist/operations/search-posts.js.map +1 -0
  395. package/dist/operations/search-posts.test.d.ts +2 -0
  396. package/dist/operations/search-posts.test.d.ts.map +1 -0
  397. package/dist/operations/search-posts.test.js +300 -0
  398. package/dist/operations/search-posts.test.js.map +1 -0
  399. package/dist/operations/send-inmail.d.ts +11 -0
  400. package/dist/operations/send-inmail.d.ts.map +1 -0
  401. package/dist/operations/send-inmail.js +19 -0
  402. package/dist/operations/send-inmail.js.map +1 -0
  403. package/dist/operations/send-inmail.test.d.ts +2 -0
  404. package/dist/operations/send-inmail.test.d.ts.map +1 -0
  405. package/dist/operations/send-inmail.test.js +108 -0
  406. package/dist/operations/send-inmail.test.js.map +1 -0
  407. package/dist/operations/send-invite.d.ts +9 -0
  408. package/dist/operations/send-invite.d.ts.map +1 -0
  409. package/dist/operations/send-invite.js +14 -0
  410. package/dist/operations/send-invite.js.map +1 -0
  411. package/dist/operations/send-invite.test.d.ts +2 -0
  412. package/dist/operations/send-invite.test.d.ts.map +1 -0
  413. package/dist/operations/send-invite.test.js +59 -0
  414. package/dist/operations/send-invite.test.js.map +1 -0
  415. package/dist/operations/types.d.ts +24 -1
  416. package/dist/operations/types.d.ts.map +1 -1
  417. package/dist/operations/types.js +13 -1
  418. package/dist/operations/types.js.map +1 -1
  419. package/dist/operations/visit-profile.d.ts +14 -0
  420. package/dist/operations/visit-profile.d.ts.map +1 -0
  421. package/dist/operations/visit-profile.js +46 -0
  422. package/dist/operations/visit-profile.js.map +1 -0
  423. package/dist/operations/visit-profile.test.d.ts +2 -0
  424. package/dist/operations/visit-profile.test.d.ts.map +1 -0
  425. package/dist/operations/visit-profile.test.js +193 -0
  426. package/dist/operations/visit-profile.test.js.map +1 -0
  427. package/dist/services/account-resolution.d.ts +9 -4
  428. package/dist/services/account-resolution.d.ts.map +1 -1
  429. package/dist/services/account-resolution.js +60 -5
  430. package/dist/services/account-resolution.js.map +1 -1
  431. package/dist/services/app.d.ts +6 -2
  432. package/dist/services/app.d.ts.map +1 -1
  433. package/dist/services/app.js +18 -6
  434. package/dist/services/app.js.map +1 -1
  435. package/dist/services/app.test.js +41 -7
  436. package/dist/services/app.test.js.map +1 -1
  437. package/dist/services/campaign.d.ts +44 -2
  438. package/dist/services/campaign.d.ts.map +1 -1
  439. package/dist/services/campaign.js +124 -1
  440. package/dist/services/campaign.js.map +1 -1
  441. package/dist/services/collection.d.ts +5 -2
  442. package/dist/services/collection.d.ts.map +1 -1
  443. package/dist/services/collection.js +24 -5
  444. package/dist/services/collection.js.map +1 -1
  445. package/dist/services/collection.test.js +51 -9
  446. package/dist/services/collection.test.js.map +1 -1
  447. package/dist/services/ephemeral-campaign.d.ts +64 -0
  448. package/dist/services/ephemeral-campaign.d.ts.map +1 -0
  449. package/dist/services/ephemeral-campaign.js +210 -0
  450. package/dist/services/ephemeral-campaign.js.map +1 -0
  451. package/dist/services/ephemeral-campaign.test.d.ts +2 -0
  452. package/dist/services/ephemeral-campaign.test.d.ts.map +1 -0
  453. package/dist/services/ephemeral-campaign.test.js +333 -0
  454. package/dist/services/ephemeral-campaign.test.js.map +1 -0
  455. package/dist/services/errors.d.ts +12 -1
  456. package/dist/services/errors.d.ts.map +1 -1
  457. package/dist/services/errors.js +26 -3
  458. package/dist/services/errors.js.map +1 -1
  459. package/dist/services/index.d.ts +2 -1
  460. package/dist/services/index.d.ts.map +1 -1
  461. package/dist/services/index.js +2 -1
  462. package/dist/services/index.js.map +1 -1
  463. package/dist/services/instance-context.d.ts +5 -1
  464. package/dist/services/instance-context.d.ts.map +1 -1
  465. package/dist/services/instance-context.js +87 -20
  466. package/dist/services/instance-context.js.map +1 -1
  467. package/dist/services/instance-context.test.js +82 -2
  468. package/dist/services/instance-context.test.js.map +1 -1
  469. package/dist/services/instance-lifecycle.d.ts.map +1 -1
  470. package/dist/services/instance-lifecycle.js +32 -1
  471. package/dist/services/instance-lifecycle.js.map +1 -1
  472. package/dist/services/instance-lifecycle.test.js +52 -1
  473. package/dist/services/instance-lifecycle.test.js.map +1 -1
  474. package/dist/services/instance.d.ts +43 -0
  475. package/dist/services/instance.d.ts.map +1 -1
  476. package/dist/services/instance.js +163 -1
  477. package/dist/services/instance.js.map +1 -1
  478. package/dist/services/instance.test.js +135 -0
  479. package/dist/services/instance.test.js.map +1 -1
  480. package/dist/services/launcher.d.ts +54 -3
  481. package/dist/services/launcher.d.ts.map +1 -1
  482. package/dist/services/launcher.js +223 -34
  483. package/dist/services/launcher.js.map +1 -1
  484. package/dist/services/launcher.test.js +133 -6
  485. package/dist/services/launcher.test.js.map +1 -1
  486. package/dist/services/status.d.ts +6 -2
  487. package/dist/services/status.d.ts.map +1 -1
  488. package/dist/services/status.js +67 -34
  489. package/dist/services/status.js.map +1 -1
  490. package/dist/services/status.test.js +9 -2
  491. package/dist/services/status.test.js.map +1 -1
  492. package/dist/testing/e2e-helpers.d.ts +23 -1
  493. package/dist/testing/e2e-helpers.d.ts.map +1 -1
  494. package/dist/testing/e2e-helpers.js +110 -5
  495. package/dist/testing/e2e-helpers.js.map +1 -1
  496. package/dist/testing/index.d.ts +1 -1
  497. package/dist/testing/index.d.ts.map +1 -1
  498. package/dist/testing/index.js +1 -1
  499. package/dist/testing/index.js.map +1 -1
  500. package/dist/types/account.d.ts +1 -1
  501. package/dist/types/action-budget.d.ts +52 -0
  502. package/dist/types/action-budget.d.ts.map +1 -0
  503. package/dist/types/action-budget.js +4 -0
  504. package/dist/types/action-budget.js.map +1 -0
  505. package/dist/types/campaign.d.ts +24 -0
  506. package/dist/types/campaign.d.ts.map +1 -1
  507. package/dist/types/feed.d.ts +30 -0
  508. package/dist/types/feed.d.ts.map +1 -0
  509. package/dist/types/feed.js +4 -0
  510. package/dist/types/feed.js.map +1 -0
  511. package/dist/types/index.d.ts +6 -2
  512. package/dist/types/index.d.ts.map +1 -1
  513. package/dist/types/post-analytics.d.ts +40 -0
  514. package/dist/types/post-analytics.d.ts.map +1 -0
  515. package/dist/types/post-analytics.js +4 -0
  516. package/dist/types/post-analytics.js.map +1 -0
  517. package/dist/types/post.d.ts +43 -0
  518. package/dist/types/post.d.ts.map +1 -0
  519. package/dist/types/post.js +4 -0
  520. package/dist/types/post.js.map +1 -0
  521. package/dist/types/ui-health.d.ts +16 -0
  522. package/dist/types/ui-health.d.ts.map +1 -1
  523. package/dist/utils/cdp-port.d.ts.map +1 -1
  524. package/dist/utils/cdp-port.js +3 -1
  525. package/dist/utils/cdp-port.js.map +1 -1
  526. package/dist/utils/cdp-port.test.js +1 -1
  527. package/dist/utils/cdp-port.test.js.map +1 -1
  528. package/dist/utils/delay.d.ts +79 -0
  529. package/dist/utils/delay.d.ts.map +1 -1
  530. package/dist/utils/delay.js +118 -0
  531. package/dist/utils/delay.js.map +1 -1
  532. package/dist/utils/delay.test.js +111 -1
  533. package/dist/utils/delay.test.js.map +1 -1
  534. package/dist/utils/index.d.ts +2 -1
  535. package/dist/utils/index.d.ts.map +1 -1
  536. package/dist/utils/index.js +2 -1
  537. package/dist/utils/index.js.map +1 -1
  538. package/dist/utils/session-pacer.d.ts +27 -0
  539. package/dist/utils/session-pacer.d.ts.map +1 -0
  540. package/dist/utils/session-pacer.js +55 -0
  541. package/dist/utils/session-pacer.js.map +1 -0
  542. package/dist/utils/session-pacer.test.d.ts +2 -0
  543. package/dist/utils/session-pacer.test.d.ts.map +1 -0
  544. package/dist/utils/session-pacer.test.js +111 -0
  545. package/dist/utils/session-pacer.test.js.map +1 -0
  546. package/package.json +1 -1
@@ -0,0 +1,333 @@
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
+ import { CampaignExecutionError, CampaignTimeoutError, } from "./errors.js";
5
+ import { EphemeralCampaignService } from "./ephemeral-campaign.js";
6
+ // Mock InstanceService
7
+ const mockEvaluateUI = vi.fn();
8
+ vi.mock("./instance.js", () => ({
9
+ InstanceService: vi.fn().mockImplementation(function () {
10
+ this.evaluateUI = mockEvaluateUI;
11
+ }),
12
+ }));
13
+ // Mock CampaignRepository (via db/index.js)
14
+ const mockListCampaigns = vi.fn();
15
+ const mockGetCampaign = vi.fn();
16
+ const mockGetCampaignActions = vi.fn();
17
+ const mockGetResults = vi.fn();
18
+ const mockFixIsValid = vi.fn();
19
+ const mockCreateActionExcludeLists = vi.fn();
20
+ const mockDeleteCampaign = vi.fn();
21
+ // Mock CampaignStatisticsRepository
22
+ const mockResetForRerun = vi.fn();
23
+ // Mock ProfileRepository
24
+ const mockFindByIds = vi.fn();
25
+ const mockFindByPublicId = vi.fn();
26
+ vi.mock("../db/index.js", async (importOriginal) => {
27
+ const original = await importOriginal();
28
+ return {
29
+ CampaignRepository: vi.fn().mockImplementation(function () {
30
+ this.listCampaigns = mockListCampaigns;
31
+ this.getCampaign = mockGetCampaign;
32
+ this.getCampaignActions = mockGetCampaignActions;
33
+ this.getResults = mockGetResults;
34
+ this.fixIsValid = mockFixIsValid;
35
+ this.createActionExcludeLists = mockCreateActionExcludeLists;
36
+ this.deleteCampaign = mockDeleteCampaign;
37
+ }),
38
+ CampaignStatisticsRepository: vi.fn().mockImplementation(function () {
39
+ this.resetForRerun = mockResetForRerun;
40
+ }),
41
+ ProfileRepository: vi.fn().mockImplementation(function () {
42
+ this.findByIds = mockFindByIds;
43
+ this.findByPublicId = mockFindByPublicId;
44
+ }),
45
+ CampaignNotFoundError: original.CampaignNotFoundError,
46
+ ActionNotFoundError: original.ActionNotFoundError,
47
+ ProfileNotFoundError: original.ProfileNotFoundError,
48
+ };
49
+ });
50
+ import { InstanceService } from "./instance.js";
51
+ const MOCK_CAMPAIGN = {
52
+ id: 99,
53
+ name: "[ephemeral] MessageToPerson",
54
+ description: null,
55
+ state: "paused",
56
+ liAccountId: 1,
57
+ isPaused: true,
58
+ isArchived: false,
59
+ isValid: true,
60
+ createdAt: "2025-01-15T00:00:00Z",
61
+ };
62
+ const MOCK_ACTIONS = [
63
+ {
64
+ id: 10,
65
+ campaignId: 99,
66
+ name: "MessageToPerson",
67
+ description: null,
68
+ config: {
69
+ id: 100,
70
+ actionType: "MessageToPerson",
71
+ actionSettings: { message: "Hello" },
72
+ coolDown: 0,
73
+ maxActionResultsPerIteration: 1,
74
+ isDraft: false,
75
+ },
76
+ versionId: 1000,
77
+ },
78
+ ];
79
+ const MOCK_PROFILE = {
80
+ id: 42,
81
+ miniProfile: { firstName: "Ada", lastName: "Lovelace", headline: "Engineer", avatar: null },
82
+ externalIds: [
83
+ { externalId: "ada-lovelace", typeGroup: "public", isMemberId: false },
84
+ { externalId: "123456789", typeGroup: "member", isMemberId: true },
85
+ ],
86
+ currentPosition: null,
87
+ education: [],
88
+ skills: [],
89
+ emails: [],
90
+ };
91
+ const MOCK_RESULT = {
92
+ id: 1,
93
+ actionVersionId: 1000,
94
+ personId: 42,
95
+ result: 1,
96
+ platform: "LINKEDIN",
97
+ createdAt: "2025-01-15T12:00:00Z",
98
+ profile: { firstName: "Ada", lastName: "Lovelace", headline: "Engineer", company: null, title: null },
99
+ };
100
+ afterEach(() => {
101
+ vi.restoreAllMocks();
102
+ });
103
+ describe("EphemeralCampaignService", () => {
104
+ let service;
105
+ beforeEach(() => {
106
+ vi.useFakeTimers();
107
+ vi.clearAllMocks();
108
+ mockEvaluateUI.mockResolvedValue(undefined);
109
+ const instance = new InstanceService(9223);
110
+ service = new EphemeralCampaignService(instance, {});
111
+ });
112
+ afterEach(() => {
113
+ vi.useRealTimers();
114
+ });
115
+ /**
116
+ * Set up mocks for a successful execute() flow:
117
+ * create → import → start (idle + unpause + runner) → poll (status) → results → stop → cleanup
118
+ */
119
+ function setupSuccessFlow() {
120
+ // create: CDP createCampaign returns campaign ID
121
+ mockEvaluateUI.mockResolvedValueOnce({ id: 99 });
122
+ mockGetCampaign.mockReturnValue(MOCK_CAMPAIGN);
123
+ mockGetCampaignActions.mockReturnValue(MOCK_ACTIONS);
124
+ // import: CDP importPeopleFromUrls
125
+ mockEvaluateUI.mockResolvedValueOnce({
126
+ total: { addToTarget: { successful: 1, alreadyInQueue: 0, alreadyProcessed: 0, failed: 0 } },
127
+ });
128
+ // start: waitForIdle (idle), unpause, start runner
129
+ mockEvaluateUI
130
+ .mockResolvedValueOnce("idle") // getRunnerState
131
+ .mockResolvedValueOnce(undefined) // unpause
132
+ .mockResolvedValueOnce(true); // start
133
+ // poll: getStatus (campaign + actions + runnerState + isPaused + actionCounts)
134
+ mockEvaluateUI
135
+ .mockResolvedValueOnce("idle") // runnerState
136
+ .mockResolvedValueOnce(false) // isPaused
137
+ .mockResolvedValueOnce({ queued: 0, processed: 0, successful: 1, failed: 0 }); // actionCounts
138
+ // results
139
+ mockGetResults.mockReturnValue([MOCK_RESULT]);
140
+ // stop: pause + stop runner
141
+ mockEvaluateUI
142
+ .mockResolvedValueOnce(undefined) // pause
143
+ .mockResolvedValueOnce(undefined); // stop runner
144
+ // hardDelete is sync (db only)
145
+ }
146
+ describe("execute with person ID target", () => {
147
+ it("executes full lifecycle: create → import → start → poll → results → cleanup", async () => {
148
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
149
+ setupSuccessFlow();
150
+ const promise = service.execute("MessageToPerson", 42, { message: "Hello" });
151
+ await vi.advanceTimersByTimeAsync(10_000);
152
+ const result = await promise;
153
+ expect(result.success).toBe(true);
154
+ expect(result.personId).toBe(42);
155
+ expect(result.results).toEqual([MOCK_RESULT]);
156
+ expect(result.campaignId).toBeUndefined();
157
+ });
158
+ it("resolves LinkedIn URL from person profile", async () => {
159
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
160
+ setupSuccessFlow();
161
+ const promise = service.execute("MessageToPerson", 42);
162
+ await vi.advanceTimersByTimeAsync(10_000);
163
+ await promise;
164
+ // import call should include the resolved LinkedIn URL
165
+ const importExpr = mockEvaluateUI.mock.calls[1]?.[0];
166
+ expect(importExpr).toContain("ada-lovelace");
167
+ });
168
+ it("throws CampaignExecutionError when person ID not found", async () => {
169
+ mockFindByIds.mockReturnValue([null]);
170
+ await expect(service.execute("MessageToPerson", 999)).rejects.toThrow(CampaignExecutionError);
171
+ });
172
+ it("throws CampaignExecutionError when person has no public ID", async () => {
173
+ mockFindByIds.mockReturnValue([{
174
+ ...MOCK_PROFILE,
175
+ externalIds: [{ externalId: "123", typeGroup: "member", isMemberId: true }],
176
+ }]);
177
+ await expect(service.execute("MessageToPerson", 42)).rejects.toThrow(CampaignExecutionError);
178
+ });
179
+ });
180
+ describe("execute with LinkedIn URL target", () => {
181
+ it("imports from URL and resolves person ID after import", async () => {
182
+ mockFindByPublicId.mockReturnValue(MOCK_PROFILE);
183
+ setupSuccessFlow();
184
+ const promise = service.execute("InvitePerson", "https://www.linkedin.com/in/ada-lovelace");
185
+ await vi.advanceTimersByTimeAsync(10_000);
186
+ const result = await promise;
187
+ expect(result.success).toBe(true);
188
+ expect(result.personId).toBe(42);
189
+ expect(mockFindByPublicId).toHaveBeenCalledWith("ada-lovelace");
190
+ });
191
+ it("throws CampaignExecutionError for invalid LinkedIn URL before campaign creation", async () => {
192
+ await expect(service.execute("InvitePerson", "https://example.com/not-linkedin")).rejects.toThrow(CampaignExecutionError);
193
+ // No CDP calls should have been made (validation fails before create)
194
+ expect(mockEvaluateUI).not.toHaveBeenCalled();
195
+ });
196
+ });
197
+ describe("import failure", () => {
198
+ it("throws CampaignExecutionError when import fails and cleans up", async () => {
199
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
200
+ // create succeeds
201
+ mockEvaluateUI.mockResolvedValueOnce({ id: 99 });
202
+ mockGetCampaign.mockReturnValue(MOCK_CAMPAIGN);
203
+ mockGetCampaignActions.mockReturnValue(MOCK_ACTIONS);
204
+ // import returns zero successful
205
+ mockEvaluateUI.mockResolvedValueOnce({
206
+ total: { addToTarget: { successful: 0, alreadyInQueue: 0, alreadyProcessed: 0, failed: 1 } },
207
+ });
208
+ await expect(service.execute("MessageToPerson", 42)).rejects.toThrow(CampaignExecutionError);
209
+ // Verify cleanup happened (hardDelete is sync)
210
+ expect(mockDeleteCampaign).toHaveBeenCalledWith(99);
211
+ });
212
+ });
213
+ describe("timeout handling", () => {
214
+ it("throws CampaignTimeoutError when action does not complete", async () => {
215
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
216
+ // create
217
+ mockEvaluateUI.mockResolvedValueOnce({ id: 99 });
218
+ mockGetCampaign.mockReturnValue(MOCK_CAMPAIGN);
219
+ mockGetCampaignActions.mockReturnValue(MOCK_ACTIONS);
220
+ // import
221
+ mockEvaluateUI.mockResolvedValueOnce({
222
+ total: { addToTarget: { successful: 1, alreadyInQueue: 0, alreadyProcessed: 0, failed: 0 } },
223
+ });
224
+ // start
225
+ mockEvaluateUI
226
+ .mockResolvedValueOnce("idle")
227
+ .mockResolvedValueOnce(undefined)
228
+ .mockResolvedValueOnce(true);
229
+ // poll: return type-correct shapes that keep the poll going (never completes)
230
+ // getStatus calls 3 CDP methods: runnerState, isPaused, actionCounts
231
+ let pollCall = 0;
232
+ mockEvaluateUI.mockImplementation(() => {
233
+ const phase = pollCall % 3;
234
+ pollCall++;
235
+ if (phase === 0)
236
+ return Promise.resolve("campaigns");
237
+ if (phase === 1)
238
+ return Promise.resolve(false);
239
+ return Promise.resolve({ queued: 1, processed: 0, successful: 0, failed: 0 });
240
+ });
241
+ const promise = service.execute("MessageToPerson", 42, undefined, { timeout: 5_000 });
242
+ const caughtPromise = promise.catch((e) => e);
243
+ await vi.advanceTimersByTimeAsync(10_000);
244
+ const error = await caughtPromise;
245
+ expect(error).toBeInstanceOf(CampaignTimeoutError);
246
+ });
247
+ });
248
+ describe("keepCampaign option", () => {
249
+ it("archives instead of hard-deleting when keepCampaign is true", async () => {
250
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
251
+ setupSuccessFlow();
252
+ const promise = service.execute("MessageToPerson", 42, undefined, { keepCampaign: true });
253
+ await vi.advanceTimersByTimeAsync(10_000);
254
+ const result = await promise;
255
+ expect(result.campaignId).toBe(99);
256
+ // Should NOT hard-delete
257
+ expect(mockDeleteCampaign).not.toHaveBeenCalled();
258
+ // Archive is done via CDP (setCampaignArchivedStatus) — verify the call
259
+ const archiveCall = mockEvaluateUI.mock.calls.find((call) => call[0].includes("setCampaignArchivedStatus"));
260
+ expect(archiveCall).toBeDefined();
261
+ });
262
+ });
263
+ describe("failed action result", () => {
264
+ it("returns success=false when action result is negative", async () => {
265
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
266
+ // create
267
+ mockEvaluateUI.mockResolvedValueOnce({ id: 99 });
268
+ mockGetCampaign.mockReturnValue(MOCK_CAMPAIGN);
269
+ mockGetCampaignActions.mockReturnValue(MOCK_ACTIONS);
270
+ // import
271
+ mockEvaluateUI.mockResolvedValueOnce({
272
+ total: { addToTarget: { successful: 1, alreadyInQueue: 0, alreadyProcessed: 0, failed: 0 } },
273
+ });
274
+ // start
275
+ mockEvaluateUI
276
+ .mockResolvedValueOnce("idle")
277
+ .mockResolvedValueOnce(undefined)
278
+ .mockResolvedValueOnce(true);
279
+ // poll: action failed
280
+ mockEvaluateUI
281
+ .mockResolvedValueOnce("idle")
282
+ .mockResolvedValueOnce(false)
283
+ .mockResolvedValueOnce({ queued: 0, processed: 0, successful: 0, failed: 1 });
284
+ // results
285
+ const failedResult = { ...MOCK_RESULT, result: -1 };
286
+ mockGetResults.mockReturnValue([failedResult]);
287
+ // stop
288
+ mockEvaluateUI
289
+ .mockResolvedValueOnce(undefined)
290
+ .mockResolvedValueOnce(undefined);
291
+ const promise = service.execute("MessageToPerson", 42);
292
+ await vi.advanceTimersByTimeAsync(10_000);
293
+ const result = await promise;
294
+ expect(result.success).toBe(false);
295
+ expect(result.results[0]?.result).toBe(-1);
296
+ });
297
+ });
298
+ describe("runner idle with no queued", () => {
299
+ it("completes when runner returns to idle with zero queued", async () => {
300
+ mockFindByIds.mockReturnValue([MOCK_PROFILE]);
301
+ // create
302
+ mockEvaluateUI.mockResolvedValueOnce({ id: 99 });
303
+ mockGetCampaign.mockReturnValue(MOCK_CAMPAIGN);
304
+ mockGetCampaignActions.mockReturnValue(MOCK_ACTIONS);
305
+ // import
306
+ mockEvaluateUI.mockResolvedValueOnce({
307
+ total: { addToTarget: { successful: 1, alreadyInQueue: 0, alreadyProcessed: 0, failed: 0 } },
308
+ });
309
+ // start
310
+ mockEvaluateUI
311
+ .mockResolvedValueOnce("idle")
312
+ .mockResolvedValueOnce(undefined)
313
+ .mockResolvedValueOnce(true);
314
+ // poll: idle with zero queued but zero successful/failed (edge case)
315
+ mockEvaluateUI
316
+ .mockResolvedValueOnce("idle")
317
+ .mockResolvedValueOnce(false)
318
+ .mockResolvedValueOnce({ queued: 0, processed: 0, successful: 0, failed: 0 });
319
+ // results (empty — person was processed but no result recorded)
320
+ mockGetResults.mockReturnValue([]);
321
+ // stop
322
+ mockEvaluateUI
323
+ .mockResolvedValueOnce(undefined)
324
+ .mockResolvedValueOnce(undefined);
325
+ const promise = service.execute("MessageToPerson", 42);
326
+ await vi.advanceTimersByTimeAsync(10_000);
327
+ const result = await promise;
328
+ expect(result.success).toBe(false);
329
+ expect(result.results).toEqual([]);
330
+ });
331
+ });
332
+ });
333
+ //# sourceMappingURL=ephemeral-campaign.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ephemeral-campaign.test.js","sourceRoot":"","sources":["../../src/services/ephemeral-campaign.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAQzE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,uBAAuB;AACvB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE/B,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;IACnC,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAClC,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAChC,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACvC,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/B,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/B,MAAM,4BAA4B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC7C,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEnC,oCAAoC;AACpC,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAElC,yBAAyB;AACzB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEnC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACjD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAmC,CAAC;IACzE,OAAO;QACL,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;YAC7C,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;YACnC,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;YACjC,IAAI,CAAC,wBAAwB,GAAG,4BAA4B,CAAC;YAC7D,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC;QAC3C,CAAC,CAAC;QACF,4BAA4B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;YACvD,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;QACzC,CAAC,CAAC;QACF,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC;QAC3C,CAAC,CAAC;QACF,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;QACrD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;KACpD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,aAAa,GAAa;IAC9B,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,sBAAsB;CAClC,CAAC;AAEF,MAAM,YAAY,GAAqB;IACrC;QACE,EAAE,EAAE,EAAE;QACN,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE;YACN,EAAE,EAAE,GAAG;YACP,UAAU,EAAE,iBAAiB;YAC7B,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YACpC,QAAQ,EAAE,CAAC;YACX,4BAA4B,EAAE,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf;QACD,SAAS,EAAE,IAAI;KAChB;CACF,CAAC;AAEF,MAAM,YAAY,GAAY;IAC5B,EAAE,EAAE,EAAE;IACN,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3F,WAAW,EAAE;QACX,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;QACtE,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;KACnE;IACD,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,WAAW,GAAyB;IACxC,EAAE,EAAE,CAAC;IACL,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;CACtG,CAAC;AAEF,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,eAAe,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,OAAiC,CAAC;IAEtC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,GAAG,IAAI,wBAAwB,CAAC,QAAQ,EAAE,EAAW,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,SAAS,gBAAgB;QACvB,iDAAiD;QACjD,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAC/C,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAErD,mCAAmC;QACnC,cAAc,CAAC,qBAAqB,CAAC;YACnC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;SAC7F,CAAC,CAAC;QAEH,mDAAmD;QACnD,cAAc;aACX,qBAAqB,CAAC,MAAM,CAAC,CAAI,iBAAiB;aAClD,qBAAqB,CAAC,SAAS,CAAC,CAAC,UAAU;aAC3C,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAK,QAAQ;QAE5C,+EAA+E;QAC/E,cAAc;aACX,qBAAqB,CAAC,MAAM,CAAC,CAAG,cAAc;aAC9C,qBAAqB,CAAC,KAAK,CAAC,CAAI,WAAW;aAC3C,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;QAEhG,UAAU;QACV,cAAc,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAE9C,4BAA4B;QAC5B,cAAc;aACX,qBAAqB,CAAC,SAAS,CAAC,CAAC,QAAQ;aACzC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;QAEnD,+BAA+B;IACjC,CAAC;IAED,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YAC3F,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7E,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,CAAC;YAEd,uDAAuD;YACvD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAW,CAAC;YAC/D,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtC,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CACxC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC7B,GAAG,YAAY;oBACf,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;iBAC5E,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CACvC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,kBAAkB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACjD,gBAAgB,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAC7B,cAAc,EACd,0CAA0C,CAC3C,CAAC;YACF,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,kCAAkC,CAAC,CACpE,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAE1C,sEAAsE;YACtE,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9C,kBAAkB;YAClB,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC/C,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAErD,iCAAiC;YACjC,cAAc,CAAC,qBAAqB,CAAC;gBACnC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;aAC7F,CAAC,CAAC;YAEH,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CACvC,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAE1C,+CAA+C;YAC/C,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9C,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC/C,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAErD,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC;gBACnC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;aAC7F,CAAC,CAAC;YAEH,QAAQ;YACR,cAAc;iBACX,qBAAqB,CAAC,MAAM,CAAC;iBAC7B,qBAAqB,CAAC,SAAS,CAAC;iBAChC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE/B,8EAA8E;YAC9E,qEAAqE;YACrE,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBACrC,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC3B,QAAQ,EAAE,CAAC;gBACX,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrD,IAAI,KAAK,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvD,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC;YAElC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9C,gBAAgB,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,yBAAyB;YACzB,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAClD,wEAAwE;YACxE,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAChD,CAAC,IAAI,EAAE,EAAE,CAAE,IAAI,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CACpE,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9C,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC/C,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAErD,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC;gBACnC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;aAC7F,CAAC,CAAC;YAEH,QAAQ;YACR,cAAc;iBACX,qBAAqB,CAAC,MAAM,CAAC;iBAC7B,qBAAqB,CAAC,SAAS,CAAC;iBAChC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE/B,sBAAsB;YACtB,cAAc;iBACX,qBAAqB,CAAC,MAAM,CAAC;iBAC7B,qBAAqB,CAAC,KAAK,CAAC;iBAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAEhF,UAAU;YACV,MAAM,YAAY,GAAG,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YACpD,cAAc,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE/C,OAAO;YACP,cAAc;iBACX,qBAAqB,CAAC,SAAS,CAAC;iBAChC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,aAAa,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAE9C,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC/C,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAErD,SAAS;YACT,cAAc,CAAC,qBAAqB,CAAC;gBACnC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;aAC7F,CAAC,CAAC;YAEH,QAAQ;YACR,cAAc;iBACX,qBAAqB,CAAC,MAAM,CAAC;iBAC7B,qBAAqB,CAAC,SAAS,CAAC;iBAChC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE/B,qEAAqE;YACrE,cAAc;iBACX,qBAAqB,CAAC,MAAM,CAAC;iBAC7B,qBAAqB,CAAC,KAAK,CAAC;iBAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAEhF,gEAAgE;YAChE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEnC,OAAO;YACP,cAAc;iBACX,qBAAqB,CAAC,SAAS,CAAC;iBAChC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -23,7 +23,7 @@ export declare class AppLaunchError extends ServiceError {
23
23
  * Thrown when the LinkedHelper launcher is not reachable via CDP.
24
24
  */
25
25
  export declare class LinkedHelperNotRunningError extends ServiceError {
26
- constructor(port: number);
26
+ constructor(port?: number);
27
27
  }
28
28
  /**
29
29
  * Thrown when the LinkedHelper application is running as an OS process
@@ -54,6 +54,7 @@ export declare class InstanceNotRunningError extends ServiceError {
54
54
  * (webview) rather than the launcher process.
55
55
  */
56
56
  export declare class WrongPortError extends ServiceError {
57
+ readonly port: number;
57
58
  constructor(port: number);
58
59
  }
59
60
  /**
@@ -121,6 +122,16 @@ export declare class CampaignTimeoutError extends ServiceError {
121
122
  readonly campaignId: number | undefined;
122
123
  constructor(message: string, campaignId?: number, options?: ErrorOptions);
123
124
  }
125
+ /**
126
+ * Thrown when an action cannot proceed because its daily budget
127
+ * has been exhausted.
128
+ */
129
+ export declare class BudgetExceededError extends ServiceError {
130
+ readonly limitType: string;
131
+ readonly dailyLimit: number;
132
+ readonly totalUsed: number;
133
+ constructor(limitType: string, dailyLimit: number, totalUsed: number);
134
+ }
124
135
  /**
125
136
  * Thrown when the LinkedHelper UI is in a blocked state due to
126
137
  * a dialog, critical error, or blocking popup.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/services/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;gBACpC,OAAO,CAAC,EAAE,MAAM;CAM7B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,YAAY;gBAC/C,IAAI,EAAE,MAAM;CAMzB;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA6B,SAAQ,YAAY;IAC5D,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;gBAExB,SAAS,EAAE,aAAa,EAAE;CASvC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAM/C;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAClC,IAAI,EAAE,MAAM;CAOzB;AAED;;;;;;;GAOG;AACH,qBAAa,+BAAgC,SAAQ,YAAY;;CAQhE;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAQzE;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;gBAC1C,GAAG,EAAE,MAAM;CAMxB;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;gBAC1C,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMlD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAQxD;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAKzE;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAKzE;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY;CAsB3D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/services/errors.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
- import { DEFAULT_CDP_PORT } from "../constants.js";
4
3
  /**
5
4
  * Base class for all service-layer errors.
6
5
  */
@@ -34,7 +33,9 @@ export class AppLaunchError extends ServiceError {
34
33
  */
35
34
  export class LinkedHelperNotRunningError extends ServiceError {
36
35
  constructor(port) {
37
- super(`LinkedHelper is not running (no CDP endpoint at port ${String(port)})`);
36
+ super(port !== undefined
37
+ ? `LinkedHelper is not running (no CDP endpoint at port ${String(port)})`
38
+ : "LinkedHelper is not running (no processes found)");
38
39
  this.name = "LinkedHelperNotRunningError";
39
40
  }
40
41
  }
@@ -79,10 +80,12 @@ export class InstanceNotRunningError extends ServiceError {
79
80
  * (webview) rather than the launcher process.
80
81
  */
81
82
  export class WrongPortError extends ServiceError {
83
+ port;
82
84
  constructor(port) {
83
85
  super(`CDP port ${String(port)} appears to be a LinkedHelper instance, not the launcher. ` +
84
- `Use the launcher port instead (default: ${String(DEFAULT_CDP_PORT)}).`);
86
+ "Use the launcher port instead (omit cdpPort to auto-discover).");
85
87
  this.name = "WrongPortError";
88
+ this.port = port;
86
89
  }
87
90
  }
88
91
  /**
@@ -179,6 +182,23 @@ export class CampaignTimeoutError extends ServiceError {
179
182
  this.campaignId = campaignId;
180
183
  }
181
184
  }
185
+ /**
186
+ * Thrown when an action cannot proceed because its daily budget
187
+ * has been exhausted.
188
+ */
189
+ export class BudgetExceededError extends ServiceError {
190
+ limitType;
191
+ dailyLimit;
192
+ totalUsed;
193
+ constructor(limitType, dailyLimit, totalUsed) {
194
+ super(`Action budget exceeded for ${limitType}: ` +
195
+ `${String(totalUsed)}/${String(dailyLimit)} used today`);
196
+ this.name = "BudgetExceededError";
197
+ this.limitType = limitType;
198
+ this.dailyLimit = dailyLimit;
199
+ this.totalUsed = totalUsed;
200
+ }
201
+ }
182
202
  /**
183
203
  * Thrown when the LinkedHelper UI is in a blocked state due to
184
204
  * a dialog, critical error, or blocking popup.
@@ -201,6 +221,9 @@ export class UIBlockedError extends ServiceError {
201
221
  if (health.popup?.blocked) {
202
222
  reasons.push(`Popup: ${health.popup.message ?? "blocking overlay active"}`);
203
223
  }
224
+ for (const instancePopup of health.instancePopups) {
225
+ reasons.push(`Instance popup: ${instancePopup.title}${instancePopup.description ? ` — ${instancePopup.description}` : ""}`);
226
+ }
204
227
  super(`LinkedHelper UI is blocked — ${reasons.join("; ")}`, options);
205
228
  this.name = "UIBlockedError";
206
229
  this.health = health;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/services/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/services/errors.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { startInstanceWithRecovery, waitForInstancePort, waitForInstanceShutdown
4
4
  export { LauncherService } from "./launcher.js";
5
5
  export { checkStatus, type AccountInstanceStatus, type DatabaseStatus, type LauncherStatus, type StatusReport, } from "./status.js";
6
6
  export { CampaignService } from "./campaign.js";
7
+ export { EphemeralCampaignService } from "./ephemeral-campaign.js";
7
8
  export { AccountResolutionError, resolveAccount, } from "./account-resolution.js";
8
9
  export { withDatabase, withInstanceDatabase, type DatabaseContext, type InstanceDatabaseContext, } from "./instance-context.js";
9
10
  export { detectSourceType, validateSourceType } from "./source-type-registry.js";
@@ -12,5 +13,5 @@ export { buildBasicSearchUrl } from "./url-builder.js";
12
13
  export { buildSNSearchUrl } from "./sn-url-builder.js";
13
14
  export { buildParameterisedUrl, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, } from "./url-templates.js";
14
15
  export { CollectionService } from "./collection.js";
15
- export { ActionExecutionError, AppLaunchError, AppNotFoundError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
16
+ export { ActionExecutionError, AppLaunchError, AppNotFoundError, BudgetExceededError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,WAAW,EACX,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,WAAW,EACX,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -6,6 +6,7 @@ export { startInstanceWithRecovery, waitForInstancePort, waitForInstanceShutdown
6
6
  export { LauncherService } from "./launcher.js";
7
7
  export { checkStatus, } from "./status.js";
8
8
  export { CampaignService } from "./campaign.js";
9
+ export { EphemeralCampaignService } from "./ephemeral-campaign.js";
9
10
  export { AccountResolutionError, resolveAccount, } from "./account-resolution.js";
10
11
  export { withDatabase, withInstanceDatabase, } from "./instance-context.js";
11
12
  export { detectSourceType, validateSourceType } from "./source-type-registry.js";
@@ -14,5 +15,5 @@ export { buildBasicSearchUrl } from "./url-builder.js";
14
15
  export { buildSNSearchUrl } from "./sn-url-builder.js";
15
16
  export { buildParameterisedUrl, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, } from "./url-templates.js";
16
17
  export { CollectionService } from "./collection.js";
17
- export { ActionExecutionError, AppLaunchError, AppNotFoundError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
18
+ export { ActionExecutionError, AppLaunchError, AppNotFoundError, BudgetExceededError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,UAAU,EAA0B,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,WAAW,GAKZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,UAAU,EAA0B,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,WAAW,GAKZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC"}
@@ -28,6 +28,10 @@ export declare function withDatabase<T>(accountId: number, callback: (ctx: Datab
28
28
  *
29
29
  * All resources are cleaned up automatically when the callback finishes.
30
30
  *
31
+ * When {@link cdpPort} is omitted, the instance port is auto-discovered
32
+ * via {@link resolveAppPort}. When the provided port is an instance
33
+ * port (rather than a launcher port), it is used directly.
34
+ *
31
35
  * A launcher connection is opened alongside the instance so that
32
36
  * post-evaluation UI health checks can detect blocking dialogs and
33
37
  * popups. If the launcher connection fails the operation proceeds
@@ -35,7 +39,7 @@ export declare function withDatabase<T>(accountId: number, callback: (ctx: Datab
35
39
  *
36
40
  * @throws {InstanceNotRunningError} if no instance port can be discovered.
37
41
  */
38
- export declare function withInstanceDatabase<T>(cdpPort: number, accountId: number, callback: (ctx: InstanceDatabaseContext) => T | Promise<T>, options?: {
42
+ export declare function withInstanceDatabase<T>(cdpPort: number | undefined, accountId: number, callback: (ctx: InstanceDatabaseContext) => T | Promise<T>, options?: {
39
43
  instanceTimeout?: number;
40
44
  db?: DatabaseClientOptions;
41
45
  launcher?: {
@@ -1 +1 @@
1
- {"version":3,"file":"instance-context.d.ts","sourceRoot":"","sources":["../../src/services/instance-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAoB,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC1D,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAC3B,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD,GACA,OAAO,CAAC,CAAC,CAAC,CA4CZ"}
1
+ {"version":3,"file":"instance-context.d.ts","sourceRoot":"","sources":["../../src/services/instance-context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAoB,MAAM,gBAAgB,CAAC;AAI9F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC1D,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAC3B,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD,GACA,OAAO,CAAC,CAAC,CAAC,CAiDZ"}