@lhremote/core 0.6.0 → 0.8.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 (356) hide show
  1. package/README.md +39 -0
  2. package/dist/cdp/client.d.ts +5 -1
  3. package/dist/cdp/client.d.ts.map +1 -1
  4. package/dist/cdp/client.js +11 -3
  5. package/dist/cdp/client.js.map +1 -1
  6. package/dist/data/index.d.ts +1 -0
  7. package/dist/data/index.d.ts.map +1 -1
  8. package/dist/data/index.js +1 -0
  9. package/dist/data/index.js.map +1 -1
  10. package/dist/data/linkedin-reference.d.ts +44 -0
  11. package/dist/data/linkedin-reference.d.ts.map +1 -0
  12. package/dist/data/linkedin-reference.js +316 -0
  13. package/dist/data/linkedin-reference.js.map +1 -0
  14. package/dist/data/linkedin-reference.test.d.ts +2 -0
  15. package/dist/data/linkedin-reference.test.d.ts.map +1 -0
  16. package/dist/data/linkedin-reference.test.js +124 -0
  17. package/dist/data/linkedin-reference.test.js.map +1 -0
  18. package/dist/db/index.d.ts +1 -1
  19. package/dist/db/index.d.ts.map +1 -1
  20. package/dist/db/index.js +1 -1
  21. package/dist/db/index.js.map +1 -1
  22. package/dist/db/repositories/action-budget.d.ts +29 -0
  23. package/dist/db/repositories/action-budget.d.ts.map +1 -0
  24. package/dist/db/repositories/action-budget.js +100 -0
  25. package/dist/db/repositories/action-budget.js.map +1 -0
  26. package/dist/db/repositories/action-budget.test.d.ts +2 -0
  27. package/dist/db/repositories/action-budget.test.d.ts.map +1 -0
  28. package/dist/db/repositories/action-budget.test.js +181 -0
  29. package/dist/db/repositories/action-budget.test.js.map +1 -0
  30. package/dist/db/repositories/campaign-hard-delete.integration.test.d.ts +2 -0
  31. package/dist/db/repositories/campaign-hard-delete.integration.test.d.ts.map +1 -0
  32. package/dist/db/repositories/campaign-hard-delete.integration.test.js +78 -0
  33. package/dist/db/repositories/campaign-hard-delete.integration.test.js.map +1 -0
  34. package/dist/db/repositories/campaign.d.ts +14 -0
  35. package/dist/db/repositories/campaign.d.ts.map +1 -1
  36. package/dist/db/repositories/campaign.js +125 -0
  37. package/dist/db/repositories/campaign.js.map +1 -1
  38. package/dist/db/repositories/index.d.ts +1 -0
  39. package/dist/db/repositories/index.d.ts.map +1 -1
  40. package/dist/db/repositories/index.js +1 -0
  41. package/dist/db/repositories/index.js.map +1 -1
  42. package/dist/index.d.ts +6 -5
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +28 -6
  45. package/dist/index.js.map +1 -1
  46. package/dist/linkedin/__tests__/dom-automation.integration.test.d.ts +2 -0
  47. package/dist/linkedin/__tests__/dom-automation.integration.test.d.ts.map +1 -0
  48. package/dist/linkedin/__tests__/dom-automation.integration.test.js +160 -0
  49. package/dist/linkedin/__tests__/dom-automation.integration.test.js.map +1 -0
  50. package/dist/linkedin/__tests__/selectors.integration.test.d.ts +2 -0
  51. package/dist/linkedin/__tests__/selectors.integration.test.d.ts.map +1 -0
  52. package/dist/linkedin/__tests__/selectors.integration.test.js +258 -0
  53. package/dist/linkedin/__tests__/selectors.integration.test.js.map +1 -0
  54. package/dist/linkedin/dom-automation.d.ts +67 -0
  55. package/dist/linkedin/dom-automation.d.ts.map +1 -0
  56. package/dist/linkedin/dom-automation.js +139 -0
  57. package/dist/linkedin/dom-automation.js.map +1 -0
  58. package/dist/linkedin/index.d.ts +3 -0
  59. package/dist/linkedin/index.d.ts.map +1 -0
  60. package/dist/linkedin/index.js +5 -0
  61. package/dist/linkedin/index.js.map +1 -0
  62. package/dist/linkedin/selectors.d.ts +67 -0
  63. package/dist/linkedin/selectors.d.ts.map +1 -0
  64. package/dist/linkedin/selectors.js +74 -0
  65. package/dist/linkedin/selectors.js.map +1 -0
  66. package/dist/operations/build-linkedin-url.d.ts +39 -0
  67. package/dist/operations/build-linkedin-url.d.ts.map +1 -0
  68. package/dist/operations/build-linkedin-url.js +72 -0
  69. package/dist/operations/build-linkedin-url.js.map +1 -0
  70. package/dist/operations/campaign-delete.d.ts +6 -2
  71. package/dist/operations/campaign-delete.d.ts.map +1 -1
  72. package/dist/operations/campaign-delete.js +9 -2
  73. package/dist/operations/campaign-delete.js.map +1 -1
  74. package/dist/operations/campaign-delete.test.js +41 -1
  75. package/dist/operations/campaign-delete.test.js.map +1 -1
  76. package/dist/operations/campaign-erase.d.ts +19 -0
  77. package/dist/operations/campaign-erase.d.ts.map +1 -0
  78. package/dist/operations/campaign-erase.js +22 -0
  79. package/dist/operations/campaign-erase.js.map +1 -0
  80. package/dist/operations/campaign-erase.test.d.ts +2 -0
  81. package/dist/operations/campaign-erase.test.d.ts.map +1 -0
  82. package/dist/operations/campaign-erase.test.js +101 -0
  83. package/dist/operations/campaign-erase.test.js.map +1 -0
  84. package/dist/operations/comment-on-post.d.ts +34 -0
  85. package/dist/operations/comment-on-post.d.ts.map +1 -0
  86. package/dist/operations/comment-on-post.js +108 -0
  87. package/dist/operations/comment-on-post.js.map +1 -0
  88. package/dist/operations/comment-on-post.test.d.ts +2 -0
  89. package/dist/operations/comment-on-post.test.d.ts.map +1 -0
  90. package/dist/operations/comment-on-post.test.js +240 -0
  91. package/dist/operations/comment-on-post.test.js.map +1 -0
  92. package/dist/operations/dismiss-errors.d.ts +22 -0
  93. package/dist/operations/dismiss-errors.d.ts.map +1 -0
  94. package/dist/operations/dismiss-errors.js +55 -0
  95. package/dist/operations/dismiss-errors.js.map +1 -0
  96. package/dist/operations/dismiss-errors.test.d.ts +2 -0
  97. package/dist/operations/dismiss-errors.test.d.ts.map +1 -0
  98. package/dist/operations/dismiss-errors.test.js +136 -0
  99. package/dist/operations/dismiss-errors.test.js.map +1 -0
  100. package/dist/operations/endorse-skills.d.ts +10 -0
  101. package/dist/operations/endorse-skills.d.ts.map +1 -0
  102. package/dist/operations/endorse-skills.js +12 -0
  103. package/dist/operations/endorse-skills.js.map +1 -0
  104. package/dist/operations/enrich-profile.d.ts +18 -0
  105. package/dist/operations/enrich-profile.d.ts.map +1 -0
  106. package/dist/operations/enrich-profile.js +15 -0
  107. package/dist/operations/enrich-profile.js.map +1 -0
  108. package/dist/operations/ephemeral-action.d.ts +22 -0
  109. package/dist/operations/ephemeral-action.d.ts.map +1 -0
  110. package/dist/operations/ephemeral-action.js +31 -0
  111. package/dist/operations/ephemeral-action.js.map +1 -0
  112. package/dist/operations/follow-person.d.ts +9 -0
  113. package/dist/operations/follow-person.d.ts.map +1 -0
  114. package/dist/operations/follow-person.js +11 -0
  115. package/dist/operations/follow-person.js.map +1 -0
  116. package/dist/operations/get-action-budget.d.ts +6 -0
  117. package/dist/operations/get-action-budget.d.ts.map +1 -0
  118. package/dist/operations/get-action-budget.js +22 -0
  119. package/dist/operations/get-action-budget.js.map +1 -0
  120. package/dist/operations/get-action-budget.test.d.ts +2 -0
  121. package/dist/operations/get-action-budget.test.d.ts.map +1 -0
  122. package/dist/operations/get-action-budget.test.js +79 -0
  123. package/dist/operations/get-action-budget.test.js.map +1 -0
  124. package/dist/operations/get-errors.d.ts +9 -3
  125. package/dist/operations/get-errors.d.ts.map +1 -1
  126. package/dist/operations/get-errors.js +41 -4
  127. package/dist/operations/get-errors.js.map +1 -1
  128. package/dist/operations/get-errors.test.js +108 -42
  129. package/dist/operations/get-errors.test.js.map +1 -1
  130. package/dist/operations/get-feed.d.ts +33 -0
  131. package/dist/operations/get-feed.d.ts.map +1 -0
  132. package/dist/operations/get-feed.js +220 -0
  133. package/dist/operations/get-feed.js.map +1 -0
  134. package/dist/operations/get-feed.test.d.ts +2 -0
  135. package/dist/operations/get-feed.test.d.ts.map +1 -0
  136. package/dist/operations/get-feed.test.js +276 -0
  137. package/dist/operations/get-feed.test.js.map +1 -0
  138. package/dist/operations/get-post-engagers.d.ts +40 -0
  139. package/dist/operations/get-post-engagers.d.ts.map +1 -0
  140. package/dist/operations/get-post-engagers.js +128 -0
  141. package/dist/operations/get-post-engagers.js.map +1 -0
  142. package/dist/operations/get-post-engagers.test.d.ts +2 -0
  143. package/dist/operations/get-post-engagers.test.d.ts.map +1 -0
  144. package/dist/operations/get-post-engagers.test.js +19 -0
  145. package/dist/operations/get-post-engagers.test.js.map +1 -0
  146. package/dist/operations/get-post-stats.d.ts +38 -0
  147. package/dist/operations/get-post-stats.d.ts.map +1 -0
  148. package/dist/operations/get-post-stats.js +100 -0
  149. package/dist/operations/get-post-stats.js.map +1 -0
  150. package/dist/operations/get-post-stats.test.d.ts +2 -0
  151. package/dist/operations/get-post-stats.test.d.ts.map +1 -0
  152. package/dist/operations/get-post-stats.test.js +34 -0
  153. package/dist/operations/get-post-stats.test.js.map +1 -0
  154. package/dist/operations/get-post.d.ts +183 -0
  155. package/dist/operations/get-post.d.ts.map +1 -0
  156. package/dist/operations/get-post.js +270 -0
  157. package/dist/operations/get-post.js.map +1 -0
  158. package/dist/operations/get-post.test.d.ts +2 -0
  159. package/dist/operations/get-post.test.d.ts.map +1 -0
  160. package/dist/operations/get-post.test.js +449 -0
  161. package/dist/operations/get-post.test.js.map +1 -0
  162. package/dist/operations/get-profile-activity.d.ts +129 -0
  163. package/dist/operations/get-profile-activity.d.ts.map +1 -0
  164. package/dist/operations/get-profile-activity.js +181 -0
  165. package/dist/operations/get-profile-activity.js.map +1 -0
  166. package/dist/operations/get-profile-activity.test.d.ts +2 -0
  167. package/dist/operations/get-profile-activity.test.d.ts.map +1 -0
  168. package/dist/operations/get-profile-activity.test.js +205 -0
  169. package/dist/operations/get-profile-activity.test.js.map +1 -0
  170. package/dist/operations/get-throttle-status.d.ts +6 -0
  171. package/dist/operations/get-throttle-status.d.ts.map +1 -0
  172. package/dist/operations/get-throttle-status.js +30 -0
  173. package/dist/operations/get-throttle-status.js.map +1 -0
  174. package/dist/operations/get-throttle-status.test.d.ts +2 -0
  175. package/dist/operations/get-throttle-status.test.d.ts.map +1 -0
  176. package/dist/operations/get-throttle-status.test.js +62 -0
  177. package/dist/operations/get-throttle-status.test.js.map +1 -0
  178. package/dist/operations/index.d.ts +24 -0
  179. package/dist/operations/index.d.ts.map +1 -1
  180. package/dist/operations/index.js +35 -0
  181. package/dist/operations/index.js.map +1 -1
  182. package/dist/operations/like-person-posts.d.ts +14 -0
  183. package/dist/operations/like-person-posts.d.ts.map +1 -0
  184. package/dist/operations/like-person-posts.js +28 -0
  185. package/dist/operations/like-person-posts.js.map +1 -0
  186. package/dist/operations/message-person.d.ts +11 -0
  187. package/dist/operations/message-person.d.ts.map +1 -0
  188. package/dist/operations/message-person.js +19 -0
  189. package/dist/operations/message-person.js.map +1 -0
  190. package/dist/operations/react-to-post.d.ts +38 -0
  191. package/dist/operations/react-to-post.d.ts.map +1 -0
  192. package/dist/operations/react-to-post.js +82 -0
  193. package/dist/operations/react-to-post.js.map +1 -0
  194. package/dist/operations/react-to-post.test.d.ts +2 -0
  195. package/dist/operations/react-to-post.test.d.ts.map +1 -0
  196. package/dist/operations/react-to-post.test.js +154 -0
  197. package/dist/operations/react-to-post.test.js.map +1 -0
  198. package/dist/operations/remove-connection.d.ts +6 -0
  199. package/dist/operations/remove-connection.d.ts.map +1 -0
  200. package/dist/operations/remove-connection.js +7 -0
  201. package/dist/operations/remove-connection.js.map +1 -0
  202. package/dist/operations/resolve-linkedin-entity.d.ts +33 -0
  203. package/dist/operations/resolve-linkedin-entity.d.ts.map +1 -0
  204. package/dist/operations/resolve-linkedin-entity.js +198 -0
  205. package/dist/operations/resolve-linkedin-entity.js.map +1 -0
  206. package/dist/operations/search-posts.d.ts +143 -0
  207. package/dist/operations/search-posts.d.ts.map +1 -0
  208. package/dist/operations/search-posts.js +220 -0
  209. package/dist/operations/search-posts.js.map +1 -0
  210. package/dist/operations/search-posts.test.d.ts +2 -0
  211. package/dist/operations/search-posts.test.d.ts.map +1 -0
  212. package/dist/operations/search-posts.test.js +261 -0
  213. package/dist/operations/search-posts.test.js.map +1 -0
  214. package/dist/operations/send-inmail.d.ts +11 -0
  215. package/dist/operations/send-inmail.d.ts.map +1 -0
  216. package/dist/operations/send-inmail.js +19 -0
  217. package/dist/operations/send-inmail.js.map +1 -0
  218. package/dist/operations/send-invite.d.ts +9 -0
  219. package/dist/operations/send-invite.d.ts.map +1 -0
  220. package/dist/operations/send-invite.js +14 -0
  221. package/dist/operations/send-invite.js.map +1 -0
  222. package/dist/operations/visit-profile.d.ts +14 -0
  223. package/dist/operations/visit-profile.d.ts.map +1 -0
  224. package/dist/operations/visit-profile.js +49 -0
  225. package/dist/operations/visit-profile.js.map +1 -0
  226. package/dist/operations/visit-profile.test.d.ts +2 -0
  227. package/dist/operations/visit-profile.test.d.ts.map +1 -0
  228. package/dist/operations/visit-profile.test.js +193 -0
  229. package/dist/operations/visit-profile.test.js.map +1 -0
  230. package/dist/services/app.d.ts.map +1 -1
  231. package/dist/services/app.js +37 -12
  232. package/dist/services/app.js.map +1 -1
  233. package/dist/services/app.test.js +57 -0
  234. package/dist/services/app.test.js.map +1 -1
  235. package/dist/services/boolean-expression.d.ts +29 -0
  236. package/dist/services/boolean-expression.d.ts.map +1 -0
  237. package/dist/services/boolean-expression.js +79 -0
  238. package/dist/services/boolean-expression.js.map +1 -0
  239. package/dist/services/boolean-expression.test.d.ts +2 -0
  240. package/dist/services/boolean-expression.test.d.ts.map +1 -0
  241. package/dist/services/boolean-expression.test.js +64 -0
  242. package/dist/services/boolean-expression.test.js.map +1 -0
  243. package/dist/services/campaign.d.ts +10 -0
  244. package/dist/services/campaign.d.ts.map +1 -1
  245. package/dist/services/campaign.js +16 -0
  246. package/dist/services/campaign.js.map +1 -1
  247. package/dist/services/collection.d.ts +5 -2
  248. package/dist/services/collection.d.ts.map +1 -1
  249. package/dist/services/collection.js +33 -5
  250. package/dist/services/collection.js.map +1 -1
  251. package/dist/services/collection.test.js +64 -6
  252. package/dist/services/collection.test.js.map +1 -1
  253. package/dist/services/ephemeral-campaign.d.ts +64 -0
  254. package/dist/services/ephemeral-campaign.d.ts.map +1 -0
  255. package/dist/services/ephemeral-campaign.js +210 -0
  256. package/dist/services/ephemeral-campaign.js.map +1 -0
  257. package/dist/services/ephemeral-campaign.test.d.ts +2 -0
  258. package/dist/services/ephemeral-campaign.test.d.ts.map +1 -0
  259. package/dist/services/ephemeral-campaign.test.js +333 -0
  260. package/dist/services/ephemeral-campaign.test.js.map +1 -0
  261. package/dist/services/errors.d.ts +21 -0
  262. package/dist/services/errors.d.ts.map +1 -1
  263. package/dist/services/errors.js +35 -0
  264. package/dist/services/errors.js.map +1 -1
  265. package/dist/services/index.d.ts +7 -1
  266. package/dist/services/index.d.ts.map +1 -1
  267. package/dist/services/index.js +7 -1
  268. package/dist/services/index.js.map +1 -1
  269. package/dist/services/instance-context.d.ts.map +1 -1
  270. package/dist/services/instance-context.js +9 -1
  271. package/dist/services/instance-context.js.map +1 -1
  272. package/dist/services/instance-context.test.js +77 -1
  273. package/dist/services/instance-context.test.js.map +1 -1
  274. package/dist/services/instance.d.ts +43 -0
  275. package/dist/services/instance.d.ts.map +1 -1
  276. package/dist/services/instance.js +151 -0
  277. package/dist/services/instance.js.map +1 -1
  278. package/dist/services/instance.test.js +101 -0
  279. package/dist/services/instance.test.js.map +1 -1
  280. package/dist/services/launcher.d.ts +23 -0
  281. package/dist/services/launcher.d.ts.map +1 -1
  282. package/dist/services/launcher.js +81 -11
  283. package/dist/services/launcher.js.map +1 -1
  284. package/dist/services/launcher.test.js +109 -42
  285. package/dist/services/launcher.test.js.map +1 -1
  286. package/dist/services/sn-url-builder.d.ts +21 -0
  287. package/dist/services/sn-url-builder.d.ts.map +1 -0
  288. package/dist/services/sn-url-builder.js +132 -0
  289. package/dist/services/sn-url-builder.js.map +1 -0
  290. package/dist/services/sn-url-builder.test.d.ts +2 -0
  291. package/dist/services/sn-url-builder.test.d.ts.map +1 -0
  292. package/dist/services/sn-url-builder.test.js +130 -0
  293. package/dist/services/sn-url-builder.test.js.map +1 -0
  294. package/dist/services/url-builder.d.ts +12 -0
  295. package/dist/services/url-builder.d.ts.map +1 -0
  296. package/dist/services/url-builder.js +100 -0
  297. package/dist/services/url-builder.js.map +1 -0
  298. package/dist/services/url-builder.test.d.ts +2 -0
  299. package/dist/services/url-builder.test.d.ts.map +1 -0
  300. package/dist/services/url-builder.test.js +79 -0
  301. package/dist/services/url-builder.test.js.map +1 -0
  302. package/dist/services/url-templates.d.ts +41 -0
  303. package/dist/services/url-templates.d.ts.map +1 -0
  304. package/dist/services/url-templates.js +118 -0
  305. package/dist/services/url-templates.js.map +1 -0
  306. package/dist/services/url-templates.test.d.ts +2 -0
  307. package/dist/services/url-templates.test.d.ts.map +1 -0
  308. package/dist/services/url-templates.test.js +159 -0
  309. package/dist/services/url-templates.test.js.map +1 -0
  310. package/dist/types/action-budget.d.ts +52 -0
  311. package/dist/types/action-budget.d.ts.map +1 -0
  312. package/dist/types/action-budget.js +4 -0
  313. package/dist/types/action-budget.js.map +1 -0
  314. package/dist/types/campaign.d.ts +24 -0
  315. package/dist/types/campaign.d.ts.map +1 -1
  316. package/dist/types/feed.d.ts +32 -0
  317. package/dist/types/feed.d.ts.map +1 -0
  318. package/dist/types/feed.js +4 -0
  319. package/dist/types/feed.js.map +1 -0
  320. package/dist/types/index.d.ts +8 -2
  321. package/dist/types/index.d.ts.map +1 -1
  322. package/dist/types/linkedin-url.d.ts +109 -0
  323. package/dist/types/linkedin-url.d.ts.map +1 -0
  324. package/dist/types/linkedin-url.js +4 -0
  325. package/dist/types/linkedin-url.js.map +1 -0
  326. package/dist/types/post-analytics.d.ts +40 -0
  327. package/dist/types/post-analytics.d.ts.map +1 -0
  328. package/dist/types/post-analytics.js +4 -0
  329. package/dist/types/post-analytics.js.map +1 -0
  330. package/dist/types/post.d.ts +43 -0
  331. package/dist/types/post.d.ts.map +1 -0
  332. package/dist/types/post.js +4 -0
  333. package/dist/types/post.js.map +1 -0
  334. package/dist/types/search-posts.d.ts +22 -0
  335. package/dist/types/search-posts.d.ts.map +1 -0
  336. package/dist/types/search-posts.js +4 -0
  337. package/dist/types/search-posts.js.map +1 -0
  338. package/dist/types/ui-health.d.ts +16 -0
  339. package/dist/types/ui-health.d.ts.map +1 -1
  340. package/dist/voyager/index.d.ts +2 -0
  341. package/dist/voyager/index.d.ts.map +1 -0
  342. package/dist/voyager/index.js +4 -0
  343. package/dist/voyager/index.js.map +1 -0
  344. package/dist/voyager/interceptor.d.ts +100 -0
  345. package/dist/voyager/interceptor.d.ts.map +1 -0
  346. package/dist/voyager/interceptor.integration.test.d.ts +2 -0
  347. package/dist/voyager/interceptor.integration.test.d.ts.map +1 -0
  348. package/dist/voyager/interceptor.integration.test.js +89 -0
  349. package/dist/voyager/interceptor.integration.test.js.map +1 -0
  350. package/dist/voyager/interceptor.js +235 -0
  351. package/dist/voyager/interceptor.js.map +1 -0
  352. package/dist/voyager/interceptor.test.d.ts +2 -0
  353. package/dist/voyager/interceptor.test.d.ts.map +1 -0
  354. package/dist/voyager/interceptor.test.js +372 -0
  355. package/dist/voyager/interceptor.test.js.map +1 -0
  356. 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":"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"}
@@ -56,6 +56,17 @@ export declare class InstanceNotRunningError extends ServiceError {
56
56
  export declare class WrongPortError extends ServiceError {
57
57
  constructor(port: number);
58
58
  }
59
+ /**
60
+ * Thrown when the LinkedHelper launcher renderer does not provide
61
+ * a Node.js execution context (`require` is unavailable in all
62
+ * CDP execution contexts).
63
+ *
64
+ * This typically means LinkedHelper has changed its Electron
65
+ * configuration beyond what lhremote currently supports.
66
+ */
67
+ export declare class NodeIntegrationUnavailableError extends ServiceError {
68
+ constructor();
69
+ }
59
70
  /**
60
71
  * Thrown when a LinkedHelper action execution fails.
61
72
  */
@@ -110,6 +121,16 @@ export declare class CampaignTimeoutError extends ServiceError {
110
121
  readonly campaignId: number | undefined;
111
122
  constructor(message: string, campaignId?: number, options?: ErrorOptions);
112
123
  }
124
+ /**
125
+ * Thrown when an action cannot proceed because its daily budget
126
+ * has been exhausted.
127
+ */
128
+ export declare class BudgetExceededError extends ServiceError {
129
+ readonly limitType: string;
130
+ readonly dailyLimit: number;
131
+ readonly totalUsed: number;
132
+ constructor(limitType: string, dailyLimit: number, totalUsed: number);
133
+ }
113
134
  /**
114
135
  * Thrown when the LinkedHelper UI is in a blocked state due to
115
136
  * 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;;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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"}
@@ -85,6 +85,21 @@ export class WrongPortError extends ServiceError {
85
85
  this.name = "WrongPortError";
86
86
  }
87
87
  }
88
+ /**
89
+ * Thrown when the LinkedHelper launcher renderer does not provide
90
+ * a Node.js execution context (`require` is unavailable in all
91
+ * CDP execution contexts).
92
+ *
93
+ * This typically means LinkedHelper has changed its Electron
94
+ * configuration beyond what lhremote currently supports.
95
+ */
96
+ export class NodeIntegrationUnavailableError extends ServiceError {
97
+ constructor() {
98
+ super("LinkedHelper launcher does not expose Node.js APIs (require is unavailable). " +
99
+ "This may indicate an unsupported LinkedHelper version.");
100
+ this.name = "NodeIntegrationUnavailableError";
101
+ }
102
+ }
88
103
  /**
89
104
  * Thrown when a LinkedHelper action execution fails.
90
105
  */
@@ -164,6 +179,23 @@ export class CampaignTimeoutError extends ServiceError {
164
179
  this.campaignId = campaignId;
165
180
  }
166
181
  }
182
+ /**
183
+ * Thrown when an action cannot proceed because its daily budget
184
+ * has been exhausted.
185
+ */
186
+ export class BudgetExceededError extends ServiceError {
187
+ limitType;
188
+ dailyLimit;
189
+ totalUsed;
190
+ constructor(limitType, dailyLimit, totalUsed) {
191
+ super(`Action budget exceeded for ${limitType}: ` +
192
+ `${String(totalUsed)}/${String(dailyLimit)} used today`);
193
+ this.name = "BudgetExceededError";
194
+ this.limitType = limitType;
195
+ this.dailyLimit = dailyLimit;
196
+ this.totalUsed = totalUsed;
197
+ }
198
+ }
167
199
  /**
168
200
  * Thrown when the LinkedHelper UI is in a blocked state due to
169
201
  * a dialog, critical error, or blocking popup.
@@ -186,6 +218,9 @@ export class UIBlockedError extends ServiceError {
186
218
  if (health.popup?.blocked) {
187
219
  reasons.push(`Popup: ${health.popup.message ?? "blocking overlay active"}`);
188
220
  }
221
+ for (const instancePopup of health.instancePopups) {
222
+ reasons.push(`Instance popup: ${instancePopup.title}${instancePopup.description ? ` — ${instancePopup.description}` : ""}`);
223
+ }
189
224
  super(`LinkedHelper UI is blocked — ${reasons.join("; ")}`, options);
190
225
  this.name = "UIBlockedError";
191
226
  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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"}
@@ -1,12 +1,18 @@
1
1
  export { AppService, type AppServiceOptions } from "./app.js";
2
2
  export { InstanceService, type ActionResult, type HealthChecker } from "./instance.js";
3
+ export { VoyagerInterceptor, type VoyagerFetchOptions, type VoyagerResponse, type VoyagerResponseHandler, } from "../voyager/index.js";
3
4
  export { startInstanceWithRecovery, waitForInstancePort, waitForInstanceShutdown, type StartInstanceOutcome, } from "./instance-lifecycle.js";
4
5
  export { LauncherService } from "./launcher.js";
5
6
  export { checkStatus, type AccountInstanceStatus, type DatabaseStatus, type LauncherStatus, type StatusReport, } from "./status.js";
6
7
  export { CampaignService } from "./campaign.js";
8
+ export { EphemeralCampaignService } from "./ephemeral-campaign.js";
7
9
  export { AccountResolutionError, resolveAccount, } from "./account-resolution.js";
8
10
  export { withDatabase, withInstanceDatabase, type DatabaseContext, type InstanceDatabaseContext, } from "./instance-context.js";
9
11
  export { detectSourceType, validateSourceType } from "./source-type-registry.js";
12
+ export { buildBooleanExpression } from "./boolean-expression.js";
13
+ export { buildBasicSearchUrl } from "./url-builder.js";
14
+ export { buildSNSearchUrl } from "./sn-url-builder.js";
15
+ export { buildParameterisedUrl, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, } from "./url-templates.js";
10
16
  export { CollectionService } from "./collection.js";
11
- export { ActionExecutionError, AppLaunchError, AppNotFoundError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
17
+ export { ActionExecutionError, AppLaunchError, AppNotFoundError, BudgetExceededError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
12
18
  //# 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,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,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,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,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"}
@@ -2,13 +2,19 @@
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
3
  export { AppService } from "./app.js";
4
4
  export { InstanceService } from "./instance.js";
5
+ export { VoyagerInterceptor, } from "../voyager/index.js";
5
6
  export { startInstanceWithRecovery, waitForInstancePort, waitForInstanceShutdown, } from "./instance-lifecycle.js";
6
7
  export { LauncherService } from "./launcher.js";
7
8
  export { checkStatus, } from "./status.js";
8
9
  export { CampaignService } from "./campaign.js";
10
+ export { EphemeralCampaignService } from "./ephemeral-campaign.js";
9
11
  export { AccountResolutionError, resolveAccount, } from "./account-resolution.js";
10
12
  export { withDatabase, withInstanceDatabase, } from "./instance-context.js";
11
13
  export { detectSourceType, validateSourceType } from "./source-type-registry.js";
14
+ export { buildBooleanExpression } from "./boolean-expression.js";
15
+ export { buildBasicSearchUrl } from "./url-builder.js";
16
+ export { buildSNSearchUrl } from "./sn-url-builder.js";
17
+ export { buildParameterisedUrl, getFixedUrl, getParameterType, isFixedUrlType, isParameterisedType, isSNSearchBuilderType, isSearchBuilderType, } from "./url-templates.js";
12
18
  export { CollectionService } from "./collection.js";
13
- export { ActionExecutionError, AppLaunchError, AppNotFoundError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
19
+ export { ActionExecutionError, AppLaunchError, AppNotFoundError, BudgetExceededError, CampaignExecutionError, CampaignTimeoutError, CollectionBusyError, CollectionError, ExtractionTimeoutError, InstanceNotRunningError, InvalidProfileUrlError, LinkedHelperNotRunningError, LinkedHelperUnreachableError, NodeIntegrationUnavailableError, ServiceError, StartInstanceError, UIBlockedError, WrongPortError, } from "./errors.js";
14
20
  //# 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,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,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,kBAAkB,GAInB,MAAM,qBAAqB,CAAC;AAC7B,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"}
@@ -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;AAG9F,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,CAoDZ"}
@@ -50,7 +50,15 @@ export async function withInstanceDatabase(cdpPort, accountId, callback, options
50
50
  await launcher.connect();
51
51
  const connectedLauncher = launcher;
52
52
  instance.setHealthChecker(async () => {
53
- const health = await connectedLauncher.checkUIHealth(accountId);
53
+ const [launcherHealth, instancePopups] = await Promise.all([
54
+ connectedLauncher.checkUIHealth(accountId),
55
+ instance.getInstancePopups(),
56
+ ]);
57
+ const health = {
58
+ ...launcherHealth,
59
+ instancePopups: [...launcherHealth.instancePopups, ...instancePopups],
60
+ healthy: launcherHealth.healthy && instancePopups.length === 0,
61
+ };
54
62
  if (!health.healthy) {
55
63
  throw new UIBlockedError(health);
56
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instance-context.js","sourceRoot":"","sources":["../../src/services/instance-context.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAA8B,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAmBtE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,QAAkD,EAClD,OAA+B;IAE/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,SAAiB,EACjB,QAA0D,EAC1D,OAIC;IAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,uBAAuB,CAC/B,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,eAAe,CAClC,YAAY,EACZ,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CACpF,CAAC;IACF,IAAI,QAAQ,GAA2B,IAAI,CAAC;IAC5C,IAAI,EAAE,GAA0B,IAAI,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEzB,kDAAkD;QAClD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,iBAAiB,GAAG,QAAQ,CAAC;YACnC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,QAAQ,EAAE,UAAU,EAAE,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC3C,EAAE,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,MAAM,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,EAAE,EAAE,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"instance-context.js","sourceRoot":"","sources":["../../src/services/instance-context.ts"],"names":[],"mappings":"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"}