@vforsh/argus-watcher 0.1.11 → 0.1.13

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 (329) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cdp/mouse.d.ts +19 -3
  3. package/dist/cdp/mouse.d.ts.map +1 -1
  4. package/dist/cdp/mouse.js +57 -9
  5. package/dist/cdp/mouse.js.map +1 -1
  6. package/dist/cdp/pageIndicator.d.ts +5 -0
  7. package/dist/cdp/pageIndicator.d.ts.map +1 -1
  8. package/dist/cdp/pageIndicator.js +22 -254
  9. package/dist/cdp/pageIndicator.js.map +1 -1
  10. package/dist/cdp/pageIndicatorScript.d.ts +20 -0
  11. package/dist/cdp/pageIndicatorScript.d.ts.map +1 -0
  12. package/dist/cdp/pageIndicatorScript.js +405 -0
  13. package/dist/cdp/pageIndicatorScript.js.map +1 -0
  14. package/dist/cdp/recording.d.ts +15 -0
  15. package/dist/cdp/recording.d.ts.map +1 -0
  16. package/dist/cdp/recording.js +389 -0
  17. package/dist/cdp/recording.js.map +1 -0
  18. package/dist/cdp/screenshot.d.ts.map +1 -1
  19. package/dist/cdp/screenshot.js +2 -133
  20. package/dist/cdp/screenshot.js.map +1 -1
  21. package/dist/cdp/visualCapture.d.ts +38 -0
  22. package/dist/cdp/visualCapture.d.ts.map +1 -0
  23. package/dist/cdp/visualCapture.js +156 -0
  24. package/dist/cdp/visualCapture.js.map +1 -0
  25. package/dist/events.d.ts +1 -1
  26. package/dist/events.d.ts.map +1 -1
  27. package/dist/http/routes/authCookies.d.ts +5 -10
  28. package/dist/http/routes/authCookies.d.ts.map +1 -1
  29. package/dist/http/routes/authCookies.js +17 -30
  30. package/dist/http/routes/authCookies.js.map +1 -1
  31. package/dist/http/routes/defineDomTargetRoute.d.ts +14 -5
  32. package/dist/http/routes/defineDomTargetRoute.d.ts.map +1 -1
  33. package/dist/http/routes/defineDomTargetRoute.js +27 -33
  34. package/dist/http/routes/defineDomTargetRoute.js.map +1 -1
  35. package/dist/http/routes/defineRoute.d.ts +9 -0
  36. package/dist/http/routes/defineRoute.d.ts.map +1 -1
  37. package/dist/http/routes/defineRoute.js +9 -9
  38. package/dist/http/routes/defineRoute.js.map +1 -1
  39. package/dist/http/routes/domSelectorRoute.d.ts +4 -11
  40. package/dist/http/routes/domSelectorRoute.d.ts.map +1 -1
  41. package/dist/http/routes/domSelectorRoute.js +9 -17
  42. package/dist/http/routes/domSelectorRoute.js.map +1 -1
  43. package/dist/http/routes/getAuthCookies.d.ts +1 -2
  44. package/dist/http/routes/getAuthCookies.d.ts.map +1 -1
  45. package/dist/http/routes/getAuthCookies.js +14 -14
  46. package/dist/http/routes/getAuthCookies.js.map +1 -1
  47. package/dist/http/routes/getAuthState.d.ts +1 -2
  48. package/dist/http/routes/getAuthState.d.ts.map +1 -1
  49. package/dist/http/routes/getAuthState.js +13 -13
  50. package/dist/http/routes/getAuthState.js.map +1 -1
  51. package/dist/http/routes/getDialog.d.ts +1 -2
  52. package/dist/http/routes/getDialog.d.ts.map +1 -1
  53. package/dist/http/routes/getDialog.js +7 -10
  54. package/dist/http/routes/getDialog.js.map +1 -1
  55. package/dist/http/routes/getEmulation.d.ts +1 -2
  56. package/dist/http/routes/getEmulation.d.ts.map +1 -1
  57. package/dist/http/routes/getEmulation.js +7 -7
  58. package/dist/http/routes/getEmulation.js.map +1 -1
  59. package/dist/http/routes/getExtensionDiagnostics.d.ts +2 -0
  60. package/dist/http/routes/getExtensionDiagnostics.d.ts.map +1 -0
  61. package/dist/http/routes/getExtensionDiagnostics.js +16 -0
  62. package/dist/http/routes/getExtensionDiagnostics.js.map +1 -0
  63. package/dist/http/routes/getExtensionTabs.d.ts +1 -2
  64. package/dist/http/routes/getExtensionTabs.d.ts.map +1 -1
  65. package/dist/http/routes/getExtensionTabs.js +18 -16
  66. package/dist/http/routes/getExtensionTabs.js.map +1 -1
  67. package/dist/http/routes/getLogs.d.ts +1 -2
  68. package/dist/http/routes/getLogs.d.ts.map +1 -1
  69. package/dist/http/routes/getLogs.js +31 -26
  70. package/dist/http/routes/getLogs.js.map +1 -1
  71. package/dist/http/routes/getNet.d.ts +1 -2
  72. package/dist/http/routes/getNet.d.ts.map +1 -1
  73. package/dist/http/routes/getNet.js +19 -21
  74. package/dist/http/routes/getNet.js.map +1 -1
  75. package/dist/http/routes/getNetRequest.d.ts +1 -2
  76. package/dist/http/routes/getNetRequest.d.ts.map +1 -1
  77. package/dist/http/routes/getNetRequest.js +22 -20
  78. package/dist/http/routes/getNetRequest.js.map +1 -1
  79. package/dist/http/routes/getNetRequestBody.d.ts +1 -2
  80. package/dist/http/routes/getNetRequestBody.d.ts.map +1 -1
  81. package/dist/http/routes/getNetRequestBody.js +53 -51
  82. package/dist/http/routes/getNetRequestBody.js.map +1 -1
  83. package/dist/http/routes/getNetRequests.d.ts +1 -2
  84. package/dist/http/routes/getNetRequests.d.ts.map +1 -1
  85. package/dist/http/routes/getNetRequests.js +19 -21
  86. package/dist/http/routes/getNetRequests.js.map +1 -1
  87. package/dist/http/routes/getNetSse.d.ts +1 -2
  88. package/dist/http/routes/getNetSse.d.ts.map +1 -1
  89. package/dist/http/routes/getNetSse.js +19 -21
  90. package/dist/http/routes/getNetSse.js.map +1 -1
  91. package/dist/http/routes/getNetTail.d.ts +1 -2
  92. package/dist/http/routes/getNetTail.d.ts.map +1 -1
  93. package/dist/http/routes/getNetTail.js +21 -30
  94. package/dist/http/routes/getNetTail.js.map +1 -1
  95. package/dist/http/routes/getNetWebSocketConnection.d.ts +1 -2
  96. package/dist/http/routes/getNetWebSocketConnection.d.ts.map +1 -1
  97. package/dist/http/routes/getNetWebSocketConnection.js +22 -17
  98. package/dist/http/routes/getNetWebSocketConnection.js.map +1 -1
  99. package/dist/http/routes/getNetWebSockets.d.ts +1 -2
  100. package/dist/http/routes/getNetWebSockets.d.ts.map +1 -1
  101. package/dist/http/routes/getNetWebSockets.js +19 -21
  102. package/dist/http/routes/getNetWebSockets.js.map +1 -1
  103. package/dist/http/routes/getStatus.d.ts +1 -2
  104. package/dist/http/routes/getStatus.d.ts.map +1 -1
  105. package/dist/http/routes/getStatus.js +6 -4
  106. package/dist/http/routes/getStatus.js.map +1 -1
  107. package/dist/http/routes/getTail.d.ts +1 -2
  108. package/dist/http/routes/getTail.d.ts.map +1 -1
  109. package/dist/http/routes/getTail.js +31 -26
  110. package/dist/http/routes/getTail.js.map +1 -1
  111. package/dist/http/routes/getTargets.d.ts +1 -2
  112. package/dist/http/routes/getTargets.d.ts.map +1 -1
  113. package/dist/http/routes/getTargets.js +14 -13
  114. package/dist/http/routes/getTargets.js.map +1 -1
  115. package/dist/http/routes/getThrottle.d.ts +1 -2
  116. package/dist/http/routes/getThrottle.d.ts.map +1 -1
  117. package/dist/http/routes/getThrottle.js +7 -7
  118. package/dist/http/routes/getThrottle.js.map +1 -1
  119. package/dist/http/routes/index.d.ts +5 -1
  120. package/dist/http/routes/index.d.ts.map +1 -1
  121. package/dist/http/routes/index.js +121 -114
  122. package/dist/http/routes/index.js.map +1 -1
  123. package/dist/http/routes/netFilters.d.ts +10 -0
  124. package/dist/http/routes/netFilters.d.ts.map +1 -1
  125. package/dist/http/routes/netFilters.js +23 -1
  126. package/dist/http/routes/netFilters.js.map +1 -1
  127. package/dist/http/routes/netMock.d.ts +3 -0
  128. package/dist/http/routes/netMock.d.ts.map +1 -0
  129. package/dist/http/routes/netMock.js +141 -0
  130. package/dist/http/routes/netMock.js.map +1 -0
  131. package/dist/http/routes/postAttach.d.ts +1 -2
  132. package/dist/http/routes/postAttach.d.ts.map +1 -1
  133. package/dist/http/routes/postAttach.js +23 -22
  134. package/dist/http/routes/postAttach.js.map +1 -1
  135. package/dist/http/routes/postAuthStateLoad.d.ts +1 -2
  136. package/dist/http/routes/postAuthStateLoad.d.ts.map +1 -1
  137. package/dist/http/routes/postAuthStateLoad.js +29 -34
  138. package/dist/http/routes/postAuthStateLoad.js.map +1 -1
  139. package/dist/http/routes/postCodeEdit.d.ts +1 -2
  140. package/dist/http/routes/postCodeEdit.d.ts.map +1 -1
  141. package/dist/http/routes/postCodeEdit.js +20 -25
  142. package/dist/http/routes/postCodeEdit.js.map +1 -1
  143. package/dist/http/routes/postCodeGrep.d.ts +1 -2
  144. package/dist/http/routes/postCodeGrep.d.ts.map +1 -1
  145. package/dist/http/routes/postCodeGrep.js +20 -25
  146. package/dist/http/routes/postCodeGrep.js.map +1 -1
  147. package/dist/http/routes/postCodeList.d.ts +1 -2
  148. package/dist/http/routes/postCodeList.d.ts.map +1 -1
  149. package/dist/http/routes/postCodeList.js +14 -19
  150. package/dist/http/routes/postCodeList.js.map +1 -1
  151. package/dist/http/routes/postCodeRead.d.ts +1 -2
  152. package/dist/http/routes/postCodeRead.d.ts.map +1 -1
  153. package/dist/http/routes/postCodeRead.js +24 -29
  154. package/dist/http/routes/postCodeRead.js.map +1 -1
  155. package/dist/http/routes/postDetach.d.ts +1 -2
  156. package/dist/http/routes/postDetach.d.ts.map +1 -1
  157. package/dist/http/routes/postDetach.js +23 -22
  158. package/dist/http/routes/postDetach.js.map +1 -1
  159. package/dist/http/routes/postDialog.d.ts +1 -2
  160. package/dist/http/routes/postDialog.d.ts.map +1 -1
  161. package/dist/http/routes/postDialog.js +30 -29
  162. package/dist/http/routes/postDialog.js.map +1 -1
  163. package/dist/http/routes/postDomAdd.d.ts +1 -2
  164. package/dist/http/routes/postDomAdd.d.ts.map +1 -1
  165. package/dist/http/routes/postDomAdd.js +44 -48
  166. package/dist/http/routes/postDomAdd.js.map +1 -1
  167. package/dist/http/routes/postDomClick.d.ts +0 -1
  168. package/dist/http/routes/postDomClick.d.ts.map +1 -1
  169. package/dist/http/routes/postDomClick.js +12 -21
  170. package/dist/http/routes/postDomClick.js.map +1 -1
  171. package/dist/http/routes/postDomDrag.d.ts +2 -0
  172. package/dist/http/routes/postDomDrag.d.ts.map +1 -0
  173. package/dist/http/routes/postDomDrag.js +54 -0
  174. package/dist/http/routes/postDomDrag.js.map +1 -0
  175. package/dist/http/routes/postDomFill.d.ts +1 -2
  176. package/dist/http/routes/postDomFill.d.ts.map +1 -1
  177. package/dist/http/routes/postDomFill.js +17 -49
  178. package/dist/http/routes/postDomFill.js.map +1 -1
  179. package/dist/http/routes/postDomInfo.d.ts +1 -2
  180. package/dist/http/routes/postDomInfo.d.ts.map +1 -1
  181. package/dist/http/routes/postDomInfo.js +14 -20
  182. package/dist/http/routes/postDomInfo.js.map +1 -1
  183. package/dist/http/routes/postDomKeydown.d.ts +1 -2
  184. package/dist/http/routes/postDomKeydown.d.ts.map +1 -1
  185. package/dist/http/routes/postDomKeydown.js +26 -30
  186. package/dist/http/routes/postDomKeydown.js.map +1 -1
  187. package/dist/http/routes/postDomModify.d.ts +1 -2
  188. package/dist/http/routes/postDomModify.d.ts.map +1 -1
  189. package/dist/http/routes/postDomModify.js +30 -41
  190. package/dist/http/routes/postDomModify.js.map +1 -1
  191. package/dist/http/routes/postDomRemove.d.ts +1 -2
  192. package/dist/http/routes/postDomRemove.d.ts.map +1 -1
  193. package/dist/http/routes/postDomRemove.js +13 -18
  194. package/dist/http/routes/postDomRemove.js.map +1 -1
  195. package/dist/http/routes/postDomScroll.d.ts +1 -2
  196. package/dist/http/routes/postDomScroll.d.ts.map +1 -1
  197. package/dist/http/routes/postDomScroll.js +37 -42
  198. package/dist/http/routes/postDomScroll.js.map +1 -1
  199. package/dist/http/routes/postDomScrollTo.d.ts +1 -2
  200. package/dist/http/routes/postDomScrollTo.d.ts.map +1 -1
  201. package/dist/http/routes/postDomScrollTo.js +42 -48
  202. package/dist/http/routes/postDomScrollTo.js.map +1 -1
  203. package/dist/http/routes/postDomSetFile.d.ts +1 -2
  204. package/dist/http/routes/postDomSetFile.d.ts.map +1 -1
  205. package/dist/http/routes/postDomSetFile.js +29 -32
  206. package/dist/http/routes/postDomSetFile.js.map +1 -1
  207. package/dist/http/routes/postDomTree.d.ts +1 -2
  208. package/dist/http/routes/postDomTree.d.ts.map +1 -1
  209. package/dist/http/routes/postDomTree.js +13 -17
  210. package/dist/http/routes/postDomTree.js.map +1 -1
  211. package/dist/http/routes/postEmulation.d.ts +1 -2
  212. package/dist/http/routes/postEmulation.d.ts.map +1 -1
  213. package/dist/http/routes/postEmulation.js +29 -39
  214. package/dist/http/routes/postEmulation.js.map +1 -1
  215. package/dist/http/routes/postEval.d.ts +1 -2
  216. package/dist/http/routes/postEval.d.ts.map +1 -1
  217. package/dist/http/routes/postEval.js +22 -26
  218. package/dist/http/routes/postEval.js.map +1 -1
  219. package/dist/http/routes/postLocate.d.ts +2 -4
  220. package/dist/http/routes/postLocate.d.ts.map +1 -1
  221. package/dist/http/routes/postLocate.js +40 -60
  222. package/dist/http/routes/postLocate.js.map +1 -1
  223. package/dist/http/routes/postNetClear.d.ts +1 -2
  224. package/dist/http/routes/postNetClear.d.ts.map +1 -1
  225. package/dist/http/routes/postNetClear.js +14 -13
  226. package/dist/http/routes/postNetClear.js.map +1 -1
  227. package/dist/http/routes/postRecord.d.ts +3 -0
  228. package/dist/http/routes/postRecord.d.ts.map +1 -0
  229. package/dist/http/routes/postRecord.js +88 -0
  230. package/dist/http/routes/postRecord.js.map +1 -0
  231. package/dist/http/routes/postReload.d.ts +1 -2
  232. package/dist/http/routes/postReload.d.ts.map +1 -1
  233. package/dist/http/routes/postReload.js +10 -16
  234. package/dist/http/routes/postReload.js.map +1 -1
  235. package/dist/http/routes/postScreenshot.d.ts +1 -2
  236. package/dist/http/routes/postScreenshot.d.ts.map +1 -1
  237. package/dist/http/routes/postScreenshot.js +11 -22
  238. package/dist/http/routes/postScreenshot.js.map +1 -1
  239. package/dist/http/routes/postShutdown.d.ts +1 -2
  240. package/dist/http/routes/postShutdown.d.ts.map +1 -1
  241. package/dist/http/routes/postShutdown.js +15 -11
  242. package/dist/http/routes/postShutdown.js.map +1 -1
  243. package/dist/http/routes/postSnapshot.d.ts +1 -2
  244. package/dist/http/routes/postSnapshot.d.ts.map +1 -1
  245. package/dist/http/routes/postSnapshot.js +21 -26
  246. package/dist/http/routes/postSnapshot.js.map +1 -1
  247. package/dist/http/routes/postThrottle.d.ts +1 -2
  248. package/dist/http/routes/postThrottle.d.ts.map +1 -1
  249. package/dist/http/routes/postThrottle.js +26 -35
  250. package/dist/http/routes/postThrottle.js.map +1 -1
  251. package/dist/http/routes/postTraceStart.d.ts +1 -2
  252. package/dist/http/routes/postTraceStart.d.ts.map +1 -1
  253. package/dist/http/routes/postTraceStart.js +8 -16
  254. package/dist/http/routes/postTraceStart.js.map +1 -1
  255. package/dist/http/routes/postTraceStop.d.ts +1 -2
  256. package/dist/http/routes/postTraceStop.d.ts.map +1 -1
  257. package/dist/http/routes/postTraceStop.js +8 -16
  258. package/dist/http/routes/postTraceStop.js.map +1 -1
  259. package/dist/http/routes/postVisibility.d.ts +1 -2
  260. package/dist/http/routes/postVisibility.d.ts.map +1 -1
  261. package/dist/http/routes/postVisibility.js +21 -27
  262. package/dist/http/routes/postVisibility.js.map +1 -1
  263. package/dist/http/routes/storage.d.ts +2 -4
  264. package/dist/http/routes/storage.d.ts.map +1 -1
  265. package/dist/http/routes/storage.js +13 -25
  266. package/dist/http/routes/storage.js.map +1 -1
  267. package/dist/http/server.d.ts +6 -1
  268. package/dist/http/server.d.ts.map +1 -1
  269. package/dist/http/server.js.map +1 -1
  270. package/dist/index.d.ts +5 -5
  271. package/dist/index.d.ts.map +1 -1
  272. package/dist/index.js.map +1 -1
  273. package/dist/native-messaging/control-session-manager.d.ts +36 -0
  274. package/dist/native-messaging/control-session-manager.d.ts.map +1 -0
  275. package/dist/native-messaging/control-session-manager.js +96 -0
  276. package/dist/native-messaging/control-session-manager.js.map +1 -0
  277. package/dist/native-messaging/messaging.d.ts +4 -4
  278. package/dist/native-messaging/messaging.d.ts.map +1 -1
  279. package/dist/native-messaging/messaging.js.map +1 -1
  280. package/dist/native-messaging/session-manager.d.ts +2 -15
  281. package/dist/native-messaging/session-manager.d.ts.map +1 -1
  282. package/dist/native-messaging/session-manager.js +0 -34
  283. package/dist/native-messaging/session-manager.js.map +1 -1
  284. package/dist/native-messaging/types.d.ts +78 -2
  285. package/dist/native-messaging/types.d.ts.map +1 -1
  286. package/dist/net/NetMockController.d.ts +26 -0
  287. package/dist/net/NetMockController.d.ts.map +1 -0
  288. package/dist/net/NetMockController.js +264 -0
  289. package/dist/net/NetMockController.js.map +1 -0
  290. package/dist/runtime/watcherServices.d.ts +3 -0
  291. package/dist/runtime/watcherServices.d.ts.map +1 -1
  292. package/dist/runtime/watcherServices.js +14 -1
  293. package/dist/runtime/watcherServices.js.map +1 -1
  294. package/dist/runtime/watcherSetup.d.ts +3 -0
  295. package/dist/runtime/watcherSetup.d.ts.map +1 -1
  296. package/dist/runtime/watcherSetup.js +4 -0
  297. package/dist/runtime/watcherSetup.js.map +1 -1
  298. package/dist/scripts/install-host.js +58 -54
  299. package/dist/scripts/install-host.js.map +1 -1
  300. package/dist/sources/extension-control-source.d.ts +9 -0
  301. package/dist/sources/extension-control-source.d.ts.map +1 -0
  302. package/dist/sources/extension-control-source.js +109 -0
  303. package/dist/sources/extension-control-source.js.map +1 -0
  304. package/dist/sources/extension-frame-state.d.ts +5 -0
  305. package/dist/sources/extension-frame-state.d.ts.map +1 -1
  306. package/dist/sources/extension-frame-state.js +7 -0
  307. package/dist/sources/extension-frame-state.js.map +1 -1
  308. package/dist/sources/extension-source.d.ts +3 -1
  309. package/dist/sources/extension-source.d.ts.map +1 -1
  310. package/dist/sources/extension-source.js +50 -137
  311. package/dist/sources/extension-source.js.map +1 -1
  312. package/dist/sources/extension-target-recovery.d.ts +32 -0
  313. package/dist/sources/extension-target-recovery.d.ts.map +1 -0
  314. package/dist/sources/extension-target-recovery.js +114 -0
  315. package/dist/sources/extension-target-recovery.js.map +1 -0
  316. package/dist/sources/types.d.ts +8 -3
  317. package/dist/sources/types.d.ts.map +1 -1
  318. package/dist/startWatcherRuntime.d.ts.map +1 -1
  319. package/dist/startWatcherRuntime.js +12 -2
  320. package/dist/startWatcherRuntime.js.map +1 -1
  321. package/package.json +1 -1
  322. package/dist/http/routes/postStorageLocal.d.ts +0 -2
  323. package/dist/http/routes/postStorageLocal.d.ts.map +0 -1
  324. package/dist/http/routes/postStorageLocal.js +0 -3
  325. package/dist/http/routes/postStorageLocal.js.map +0 -1
  326. package/dist/http/routes/postStorageSession.d.ts +0 -2
  327. package/dist/http/routes/postStorageSession.d.ts.map +0 -1
  328. package/dist/http/routes/postStorageSession.js +0 -3
  329. package/dist/http/routes/postStorageSession.js.map +0 -1
@@ -1,18 +1,19 @@
1
1
  import { createNativeMessaging } from '../native-messaging/messaging.js';
2
2
  import { SessionManager } from '../native-messaging/session-manager.js';
3
- import { buildFrameTargets, buildPageTarget, createEmptyFrameState, createNotAttachedError, isSelectedTargetReady, parseExtensionTargetId, resolveSelectedFrameCommandState, } from './extension-frame-state.js';
3
+ import { buildFrameTargetContext, buildFrameTargets, buildPageTarget, createEmptyFrameState, createNotAttachedError, isSelectedTargetReady, parseExtensionTargetId, } from './extension-frame-state.js';
4
4
  import { createDelegatingSession } from './extension-delegating-session.js';
5
5
  import { registerExtensionSessionEventHandlers } from './extension-session-events.js';
6
+ import { createControlExtensionSource } from './extension-control-source.js';
7
+ import { createTargetRecovery } from './extension-target-recovery.js';
6
8
  import { getSelectedExtensionTarget, reconcileExtensionTargetSelection, refreshExtensionFrameTitle, refreshExtensionFrameTree, removeExtensionFrame, seedExtensionFrameState, setRequestedTargetSelection, } from './extension-frame-runtime.js';
7
- const TARGET_RECOVERY_INTERVAL_MS = 500;
8
- const TARGET_RECOVERY_TIMEOUT_MS = 30_000;
9
- const FRAME_COMMAND_READY_TIMEOUT_MS = 3_000;
10
- const FRAME_COMMAND_READY_POLL_MS = 100;
11
9
  /**
12
10
  * Create an extension source that connects to Chrome via Native Messaging.
13
11
  * Returns a handle that can be used to control the source and access CDP session.
14
12
  */
15
13
  export const createExtensionSource = (options) => {
14
+ if (options.role === 'control') {
15
+ return createControlExtensionSource(options);
16
+ }
16
17
  const { events, ignoreMatcher, stripUrlPrefixes, watcherId, watcherHost, watcherPort } = options;
17
18
  const messaging = createNativeMessaging();
18
19
  const hostInfo = {
@@ -24,7 +25,6 @@ export const createExtensionSource = (options) => {
24
25
  let currentSession = null;
25
26
  let stopping = false;
26
27
  const frameStateByTabId = new Map();
27
- const targetRecoveryByTabId = new Map();
28
28
  const delegatingSessions = new Set();
29
29
  const getCurrentExtensionSession = () => {
30
30
  if (!currentSession) {
@@ -32,6 +32,12 @@ export const createExtensionSource = (options) => {
32
32
  }
33
33
  return currentSession;
34
34
  };
35
+ const targetRecovery = createTargetRecovery({
36
+ getCurrentSession: () => currentSession,
37
+ getOrCreateFrameState,
38
+ refreshFrameTree,
39
+ reconcileTargetSelection,
40
+ });
35
41
  const sessionManager = new SessionManager(messaging, {
36
42
  onAttach: (session) => {
37
43
  console.error(`[ExtensionSource] Tab attached: ${session.tabId} - ${session.url}`);
@@ -46,12 +52,11 @@ export const createExtensionSource = (options) => {
46
52
  currentSession = null;
47
53
  }
48
54
  rebindDelegatingSessions();
49
- clearTargetRecovery(tabId);
55
+ targetRecovery.clear(tabId);
50
56
  frameStateByTabId.delete(tabId);
51
57
  emitStatus(null, reason);
52
58
  events.onDetach?.(reason);
53
59
  },
54
- onTabsUpdated: () => { },
55
60
  onTargetSelected: (tabId, frameId) => {
56
61
  const session = currentSession;
57
62
  if (!session || session.tabId !== tabId) {
@@ -71,7 +76,7 @@ export const createExtensionSource = (options) => {
71
76
  if (targetContext.kind !== 'frame') {
72
77
  return undefined;
73
78
  }
74
- const readyTargetContext = await waitForSelectedFrameCommandTarget();
79
+ const readyTargetContext = await targetRecovery.waitForSelectedFrameCommandTarget();
75
80
  if (method !== 'Runtime.evaluate' || params?.contextId != null || readyTargetContext.sessionId) {
76
81
  return { targetContext: readyTargetContext };
77
82
  }
@@ -93,6 +98,7 @@ export const createExtensionSource = (options) => {
93
98
  });
94
99
  delegatingSessions.add(pageController);
95
100
  messaging.start();
101
+ messaging.send({ type: 'host_ready' });
96
102
  sendHostInfo();
97
103
  messaging.onDisconnect(() => {
98
104
  console.error('[ExtensionSource] Extension disconnected');
@@ -103,7 +109,7 @@ export const createExtensionSource = (options) => {
103
109
  });
104
110
  const stop = async () => {
105
111
  stopping = true;
106
- clearAllTargetRecovery();
112
+ targetRecovery.clearAll();
107
113
  disposeDelegatingSessions();
108
114
  messaging.stop();
109
115
  };
@@ -123,15 +129,34 @@ export const createExtensionSource = (options) => {
123
129
  }
124
130
  return targets;
125
131
  };
126
- const attachTarget = (targetId) => {
132
+ const attachTarget = async (targetId) => {
127
133
  const target = parseExtensionTargetId(targetId);
128
- const session = requireOwnedSession(target.tabId);
134
+ const session = currentSession;
135
+ if (!session) {
136
+ if (target.frameId) {
137
+ throw new Error(`Cannot attach iframe ${target.frameId} before tab ${target.tabId} is attached`);
138
+ }
139
+ throw new Error(`Watcher ${hostInfo.watcherId} is a tab watcher. Use extension-control to attach tab ${target.tabId}.`);
140
+ }
141
+ if (session.tabId !== target.tabId) {
142
+ throw new Error(`Watcher ${hostInfo.watcherId} is pinned to tab ${session.tabId}, not tab ${target.tabId}`);
143
+ }
129
144
  requestTargetSelection(session, target.frameId);
145
+ return { ok: true, tab: sessionToBrowserTab(session), watcherId: hostInfo.watcherId };
130
146
  };
131
- const detachTarget = (targetId) => {
147
+ const detachTarget = async (targetId) => {
132
148
  const target = parseExtensionTargetId(targetId);
133
- const session = requireOwnedSession(target.tabId);
134
- sessionManager.detachTab(session.tabId);
149
+ const session = currentSession;
150
+ if (!session || session.tabId === target.tabId) {
151
+ sessionManager.detachTab(target.tabId);
152
+ return {
153
+ ok: true,
154
+ tab: session
155
+ ? { ...sessionToBrowserTab(session), attached: false, watcherId: undefined }
156
+ : { tabId: target.tabId, url: '', title: '', attached: false },
157
+ };
158
+ }
159
+ throw new Error(`Watcher ${hostInfo.watcherId} is pinned to tab ${session.tabId}, not tab ${target.tabId}`);
135
160
  };
136
161
  return {
137
162
  session: proxySession,
@@ -175,9 +200,6 @@ export const createExtensionSource = (options) => {
175
200
  },
176
201
  stop,
177
202
  listTargets,
178
- listTabs: async (filter) => {
179
- return await sessionManager.listTabs(filter);
180
- },
181
203
  attachTarget,
182
204
  detachTarget,
183
205
  };
@@ -190,16 +212,6 @@ export const createExtensionSource = (options) => {
190
212
  pid: hostInfo.watcherPid,
191
213
  });
192
214
  }
193
- function requireOwnedSession(tabId) {
194
- const session = currentSession;
195
- if (!session) {
196
- throw createNotAttachedError();
197
- }
198
- if (session.tabId !== tabId) {
199
- throw new Error(`Watcher ${hostInfo.watcherId} is pinned to tab ${session.tabId}, not tab ${tabId}`);
200
- }
201
- return session;
202
- }
203
215
  function rebindDelegatingSessions() {
204
216
  for (const controller of delegatingSessions) {
205
217
  controller.rebind();
@@ -211,11 +223,6 @@ export const createExtensionSource = (options) => {
211
223
  }
212
224
  delegatingSessions.clear();
213
225
  }
214
- function clearAllTargetRecovery() {
215
- for (const tabId of targetRecoveryByTabId.keys()) {
216
- clearTargetRecovery(tabId);
217
- }
218
- }
219
226
  async function bootstrapAttachedSession(session) {
220
227
  try {
221
228
  registerExtensionSessionEventHandlers({
@@ -314,6 +321,7 @@ export const createExtensionSource = (options) => {
314
321
  if (state.activeAttachedAt == null) {
315
322
  state.activeAttachedAt = Date.now();
316
323
  }
324
+ const targetReady = isTargetReady(session.tabId);
317
325
  emitStatus(target, null);
318
326
  messaging.send({
319
327
  type: 'target_info',
@@ -321,6 +329,7 @@ export const createExtensionSource = (options) => {
321
329
  title: target.title,
322
330
  url: target.url,
323
331
  attachedAt: state.activeAttachedAt,
332
+ targetReady,
324
333
  });
325
334
  events.onTargetChanged?.(session.handle, target);
326
335
  }
@@ -342,7 +351,7 @@ export const createExtensionSource = (options) => {
342
351
  const changed = reconcileExtensionTargetSelection(session, state, () => {
343
352
  emitTargetChanged(session);
344
353
  });
345
- syncTargetRecovery(session, state);
354
+ targetRecovery.sync(session, state);
346
355
  return changed;
347
356
  }
348
357
  async function refreshFrameTree(session) {
@@ -363,111 +372,15 @@ export const createExtensionSource = (options) => {
363
372
  emitTargetChanged(session);
364
373
  }, contextId);
365
374
  }
366
- function syncTargetRecovery(session, state) {
367
- if (!needsTargetRecovery(state)) {
368
- clearTargetRecovery(session.tabId);
369
- return;
370
- }
371
- if (targetRecoveryByTabId.has(session.tabId)) {
372
- return;
373
- }
374
- const timer = setInterval(() => {
375
- void retryTargetRecovery(session.tabId);
376
- }, TARGET_RECOVERY_INTERVAL_MS);
377
- targetRecoveryByTabId.set(session.tabId, {
378
- timer,
379
- deadline: Date.now() + TARGET_RECOVERY_TIMEOUT_MS,
380
- });
381
- }
382
- async function kickTargetRecovery(session) {
383
- const state = getOrCreateFrameState(session.tabId);
384
- if (!needsTargetRecovery(state)) {
385
- return;
386
- }
387
- syncTargetRecovery(session, state);
388
- await retryTargetRecovery(session.tabId);
389
- }
390
- function clearTargetRecovery(tabId) {
391
- const recovery = targetRecoveryByTabId.get(tabId);
392
- if (!recovery) {
393
- return;
394
- }
395
- clearInterval(recovery.timer);
396
- targetRecoveryByTabId.delete(tabId);
397
- }
398
- async function retryTargetRecovery(tabId) {
399
- const recovery = targetRecoveryByTabId.get(tabId);
400
- const session = currentSession;
401
- if (!recovery || !session || session.tabId !== tabId) {
402
- clearTargetRecovery(tabId);
403
- return;
404
- }
405
- if (hasTargetRecoveryExpired(recovery)) {
406
- clearTargetRecovery(tabId);
407
- return;
408
- }
409
- const state = getOrCreateFrameState(tabId);
410
- if (!needsTargetRecovery(state)) {
411
- clearTargetRecovery(tabId);
412
- return;
413
- }
414
- try {
415
- await refreshFrameTree(session);
416
- }
417
- catch {
418
- // Best-effort; Chrome can reject frame-tree reads transiently during reload.
419
- }
420
- reconcileTargetSelection(session);
421
- if (!needsTargetRecovery(getOrCreateFrameState(tabId))) {
422
- clearTargetRecovery(tabId);
423
- }
424
- }
425
- function buildFrameTargetContext(state, frameId) {
426
- return {
427
- kind: 'frame',
428
- frameId,
429
- executionContextId: state.executionContexts.get(frameId) ?? null,
430
- sessionId: state.frames.get(frameId)?.sessionId ?? null,
431
- };
432
- }
433
375
  function isTargetReady(tabId) {
434
376
  return isSelectedTargetReady(getOrCreateFrameState(tabId));
435
377
  }
436
- async function waitForSelectedFrameCommandTarget() {
437
- const session = getCurrentExtensionSession();
438
- const tabId = session.tabId;
439
- const immediate = resolveSelectedFrameCommandState(getOrCreateFrameState(tabId));
440
- if (immediate.kind === 'frame') {
441
- return buildFrameTargetContext(getOrCreateFrameState(tabId), immediate.frameId);
442
- }
443
- await kickTargetRecovery(session);
444
- const deadline = Date.now() + FRAME_COMMAND_READY_TIMEOUT_MS;
445
- while (Date.now() < deadline) {
446
- await delay(FRAME_COMMAND_READY_POLL_MS);
447
- const current = currentSession;
448
- if (!current || current.tabId !== tabId) {
449
- throw createNotAttachedError();
450
- }
451
- const commandState = resolveSelectedFrameCommandState(getOrCreateFrameState(tabId));
452
- if (commandState.kind === 'frame') {
453
- return buildFrameTargetContext(getOrCreateFrameState(tabId), commandState.frameId);
454
- }
455
- }
456
- throw buildSelectedFrameNotReadyError(tabId);
457
- }
458
378
  };
459
- function needsTargetRecovery(state) {
460
- return resolveSelectedFrameCommandState(state).kind === 'pending';
461
- }
462
- function hasTargetRecoveryExpired(recovery) {
463
- return Date.now() >= recovery.deadline;
464
- }
465
- function buildSelectedFrameNotReadyError(tabId) {
466
- const error = new Error(`Selected iframe target on tab ${tabId} is not executable yet after reload. Try again in a few seconds or reattach the watcher if the problem persists.`);
467
- error.code = 'extension_frame_not_ready';
468
- return error;
469
- }
470
- function delay(ms) {
471
- return new Promise((resolve) => setTimeout(resolve, ms));
472
- }
379
+ const sessionToBrowserTab = (session) => ({
380
+ tabId: session.tabId,
381
+ url: session.url,
382
+ title: session.title,
383
+ faviconUrl: session.faviconUrl,
384
+ attached: true,
385
+ });
473
386
  //# sourceMappingURL=extension-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension-source.js","sourceRoot":"","sources":["../../src/sources/extension-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension-source.js","sourceRoot":"","sources":["../../src/sources/extension-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ExtensionSession } from '../native-messaging/session-manager.js';
2
+ import type { CdpTargetContext } from '../cdp/connection.js';
3
+ import { type ExtensionFrameState } from './extension-frame-state.js';
4
+ type TargetRecoveryDeps = {
5
+ getCurrentSession: () => ExtensionSession | null;
6
+ getOrCreateFrameState: (tabId: number) => ExtensionFrameState;
7
+ refreshFrameTree: (session: ExtensionSession) => Promise<void>;
8
+ reconcileTargetSelection: (session: ExtensionSession) => boolean;
9
+ };
10
+ export type TargetRecoveryController = {
11
+ /** Start or stop the per-tab recovery loop based on whether the selected frame is still pending. */
12
+ sync: (session: ExtensionSession, state: ExtensionFrameState) => void;
13
+ clear: (tabId: number) => void;
14
+ clearAll: () => void;
15
+ /**
16
+ * Resolve the frame-scoped target context for the currently selected iframe,
17
+ * polling (and driving recovery) until the frame is executable or the
18
+ * readiness timeout elapses.
19
+ */
20
+ waitForSelectedFrameCommandTarget: () => Promise<Extract<CdpTargetContext, {
21
+ kind: 'frame';
22
+ }>>;
23
+ };
24
+ /**
25
+ * Selected-iframe recovery: after a reload the requested frame can temporarily
26
+ * disappear or lack an execution context. This controller re-reads the frame
27
+ * tree on an interval until the selection can be re-resolved, instead of
28
+ * silently routing commands to the parent page.
29
+ */
30
+ export declare const createTargetRecovery: (deps: TargetRecoveryDeps) => TargetRecoveryController;
31
+ export {};
32
+ //# sourceMappingURL=extension-target-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-target-recovery.d.ts","sourceRoot":"","sources":["../../src/sources/extension-target-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAIN,KAAK,mBAAmB,EACxB,MAAM,4BAA4B,CAAA;AASnC,KAAK,kBAAkB,GAAG;IACzB,iBAAiB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAA;IAChD,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,mBAAmB,CAAA;IAC7D,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,wBAAwB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAA;CAChE,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,oGAAoG;IACpG,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACrE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,iCAAiC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAA;CAC9F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,kBAAkB,KAAG,wBAkH/D,CAAA"}
@@ -0,0 +1,114 @@
1
+ import { buildFrameTargetContext, createNotAttachedError, resolveSelectedFrameCommandState, } from './extension-frame-state.js';
2
+ const TARGET_RECOVERY_INTERVAL_MS = 500;
3
+ const TARGET_RECOVERY_TIMEOUT_MS = 30_000;
4
+ const FRAME_COMMAND_READY_TIMEOUT_MS = 3_000;
5
+ const FRAME_COMMAND_READY_POLL_MS = 100;
6
+ /**
7
+ * Selected-iframe recovery: after a reload the requested frame can temporarily
8
+ * disappear or lack an execution context. This controller re-reads the frame
9
+ * tree on an interval until the selection can be re-resolved, instead of
10
+ * silently routing commands to the parent page.
11
+ */
12
+ export const createTargetRecovery = (deps) => {
13
+ const { getCurrentSession, getOrCreateFrameState, refreshFrameTree, reconcileTargetSelection } = deps;
14
+ const recoveryByTabId = new Map();
15
+ const sync = (session, state) => {
16
+ if (!needsTargetRecovery(state)) {
17
+ clear(session.tabId);
18
+ return;
19
+ }
20
+ if (recoveryByTabId.has(session.tabId)) {
21
+ return;
22
+ }
23
+ const timer = setInterval(() => {
24
+ void retry(session.tabId);
25
+ }, TARGET_RECOVERY_INTERVAL_MS);
26
+ recoveryByTabId.set(session.tabId, {
27
+ timer,
28
+ deadline: Date.now() + TARGET_RECOVERY_TIMEOUT_MS,
29
+ });
30
+ };
31
+ const clear = (tabId) => {
32
+ const recovery = recoveryByTabId.get(tabId);
33
+ if (!recovery) {
34
+ return;
35
+ }
36
+ clearInterval(recovery.timer);
37
+ recoveryByTabId.delete(tabId);
38
+ };
39
+ const clearAll = () => {
40
+ for (const tabId of recoveryByTabId.keys()) {
41
+ clear(tabId);
42
+ }
43
+ };
44
+ const retry = async (tabId) => {
45
+ const recovery = recoveryByTabId.get(tabId);
46
+ const session = getCurrentSession();
47
+ if (!recovery || !session || session.tabId !== tabId) {
48
+ clear(tabId);
49
+ return;
50
+ }
51
+ if (Date.now() >= recovery.deadline) {
52
+ clear(tabId);
53
+ return;
54
+ }
55
+ const state = getOrCreateFrameState(tabId);
56
+ if (!needsTargetRecovery(state)) {
57
+ clear(tabId);
58
+ return;
59
+ }
60
+ try {
61
+ await refreshFrameTree(session);
62
+ }
63
+ catch {
64
+ // Best-effort; Chrome can reject frame-tree reads transiently during reload.
65
+ }
66
+ reconcileTargetSelection(session);
67
+ if (!needsTargetRecovery(getOrCreateFrameState(tabId))) {
68
+ clear(tabId);
69
+ }
70
+ };
71
+ /** Ensure the recovery loop is running and trigger an immediate retry. */
72
+ const kick = async (session) => {
73
+ const state = getOrCreateFrameState(session.tabId);
74
+ if (!needsTargetRecovery(state)) {
75
+ return;
76
+ }
77
+ sync(session, state);
78
+ await retry(session.tabId);
79
+ };
80
+ const waitForSelectedFrameCommandTarget = async () => {
81
+ const session = getCurrentSession();
82
+ if (!session) {
83
+ throw createNotAttachedError();
84
+ }
85
+ const tabId = session.tabId;
86
+ const immediate = resolveSelectedFrameCommandState(getOrCreateFrameState(tabId));
87
+ if (immediate.kind === 'frame') {
88
+ return buildFrameTargetContext(getOrCreateFrameState(tabId), immediate.frameId);
89
+ }
90
+ await kick(session);
91
+ const deadline = Date.now() + FRAME_COMMAND_READY_TIMEOUT_MS;
92
+ while (Date.now() < deadline) {
93
+ await delay(FRAME_COMMAND_READY_POLL_MS);
94
+ const current = getCurrentSession();
95
+ if (!current || current.tabId !== tabId) {
96
+ throw createNotAttachedError();
97
+ }
98
+ const commandState = resolveSelectedFrameCommandState(getOrCreateFrameState(tabId));
99
+ if (commandState.kind === 'frame') {
100
+ return buildFrameTargetContext(getOrCreateFrameState(tabId), commandState.frameId);
101
+ }
102
+ }
103
+ throw buildSelectedFrameNotReadyError(tabId);
104
+ };
105
+ return { sync, clear, clearAll, waitForSelectedFrameCommandTarget };
106
+ };
107
+ const needsTargetRecovery = (state) => resolveSelectedFrameCommandState(state).kind === 'pending';
108
+ const buildSelectedFrameNotReadyError = (tabId) => {
109
+ const error = new Error(`Selected iframe target on tab ${tabId} is not executable yet after reload. Try again in a few seconds or reattach the watcher if the problem persists.`);
110
+ error.code = 'extension_frame_not_ready';
111
+ return error;
112
+ };
113
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
114
+ //# sourceMappingURL=extension-target-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-target-recovery.js","sourceRoot":"","sources":["../../src/sources/extension-target-recovery.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Both sources implement the same interface, allowing the watcher
4
4
  * to work with either CDP WebSocket or Extension Native Messaging.
5
5
  */
6
- import type { AuthStateCookie, LogEvent } from '@vforsh/argus-core';
6
+ import type { AuthStateCookie, ExtensionDiagnosticsResponse, ExtensionTabActionResponse, LogEvent } from '@vforsh/argus-core';
7
7
  import type { CdpSessionHandle } from '../cdp/connection.js';
8
8
  import type { NetFilterContext } from '../net/filtering.js';
9
9
  export type ExtensionTabListFilter = {
@@ -111,11 +111,16 @@ export type CdpSourceHandle = {
111
111
  title: string;
112
112
  faviconUrl?: string;
113
113
  attached: boolean;
114
+ watcherId?: string;
114
115
  }>>;
115
116
  /** Attach to a specific target by ID (extension mode only). */
116
- attachTarget?: (targetId: string) => void;
117
+ attachTarget?: (targetId: string, options?: {
118
+ watcherId?: string;
119
+ }) => Promise<ExtensionTabActionResponse>;
117
120
  /** Detach from a specific target by ID (extension mode only). */
118
- detachTarget?: (targetId: string) => void;
121
+ detachTarget?: (targetId: string) => Promise<ExtensionTabActionResponse>;
122
+ /** Read live extension/control diagnostics (extension-control only). */
123
+ getExtensionDiagnostics?: () => Promise<ExtensionDiagnosticsResponse>;
119
124
  };
120
125
  /**
121
126
  * Options common to all CDP sources.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sources/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startWatcherRuntime.d.ts","sourceRoot":"","sources":["../src/startWatcherRuntime.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAKpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAU,SAAS,mBAAmB,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,aAAa,CA+VhH,CAAA"}
1
+ {"version":3,"file":"startWatcherRuntime.d.ts","sourceRoot":"","sources":["../src/startWatcherRuntime.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAKpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAU,SAAS,mBAAmB,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,aAAa,CA2WhH,CAAA"}
@@ -11,7 +11,7 @@ import { createWatcherRuntimeServices } from './runtime/watcherServices.js';
11
11
  */
12
12
  export const createWatcherHandle = async (options, watcherId) => {
13
13
  const setup = normalizeWatcherSetup(options, watcherId);
14
- const { sourceMode, host, port, pageConsoleLogging, events, buffer, netBuffer, realtimeNetBuffer, record, fileLogger, emulationController, throttleController, visibilityController, } = setup;
14
+ const { sourceMode, host, port, pageConsoleLogging, events, buffer, netBuffer, realtimeNetBuffer, record, fileLogger, emulationController, throttleController, visibilityController, netMockController, } = setup;
15
15
  let closing = false;
16
16
  let readyForShutdown = false;
17
17
  let shutdownRequested = false;
@@ -178,6 +178,7 @@ export const createWatcherHandle = async (options, watcherId) => {
178
178
  // forward the attach to other services so downstream flows (boot
179
179
  // waits, indicator paints) benefit immediately.
180
180
  await visibilityController.onAttach(sourceHandle.pageSession ?? session);
181
+ await netMockController.onAttach(sourceHandle.pageSession ?? session);
181
182
  await networkCapture?.onAttached();
182
183
  onIndicatorAttach(session, target);
183
184
  await maybeInjectOnAttach(session, target);
@@ -201,12 +202,14 @@ export const createWatcherHandle = async (options, watcherId) => {
201
202
  dialogTracker.clear();
202
203
  runtimeEditor?.rebind();
203
204
  networkCapture?.onDetached();
205
+ netMockController.onDetach();
204
206
  indicatorController?.onDetach();
207
+ recorder.onDetached(reason);
205
208
  if (reason != null) {
206
209
  traceRecorder.onDetached(reason);
207
210
  }
208
211
  };
209
- const { sourceHandle, networkCapture, traceRecorder, screenshotter, runtimeEditor } = createWatcherRuntimeServices(options, setup, {
212
+ const { sourceHandle, networkCapture, traceRecorder, screenshotter, recorder, runtimeEditor } = createWatcherRuntimeServices(options, setup, {
210
213
  onLog: handleSourceLog,
211
214
  onStatus: updateCdpStatus,
212
215
  onPageNavigation: handlePageNavigation,
@@ -215,7 +218,11 @@ export const createWatcherHandle = async (options, watcherId) => {
215
218
  onAttach: handleSourceAttach,
216
219
  onTargetChanged: handleTargetChanged,
217
220
  onDetach: handleSourceDetach,
221
+ onRecordingStateChange: (recording) => {
222
+ indicatorController?.setRecording(recording);
223
+ },
218
224
  });
225
+ netMockController.bind(sourceHandle.pageSession ?? sourceHandle.session);
219
226
  const dialogSession = sourceHandle.pageSession ?? sourceHandle.session;
220
227
  dialogSession.onEvent('Page.javascriptDialogOpening', (params) => {
221
228
  const dialog = parseDialogStatus(params);
@@ -241,10 +248,12 @@ export const createWatcherHandle = async (options, watcherId) => {
241
248
  cdpSession: sourceHandle.session,
242
249
  traceRecorder,
243
250
  screenshotter,
251
+ recorder,
244
252
  runtimeEditor,
245
253
  emulationController,
246
254
  throttleController,
247
255
  visibilityController,
256
+ netMockController,
248
257
  getNetFilterContext: sourceHandle.getNetFilterContext,
249
258
  readBrowserCookies: sourceHandle.readBrowserCookies,
250
259
  sourceHandle: sourceMode === 'extension' ? sourceHandle : undefined,
@@ -287,6 +296,7 @@ export const createWatcherHandle = async (options, watcherId) => {
287
296
  await sourceHandle.stop();
288
297
  await fileLogger?.close();
289
298
  traceRecorder.onDetached('watcher_stopped');
299
+ recorder.onDetached('watcher_stopped');
290
300
  await server.close();
291
301
  await removeWatcher(record.id);
292
302
  events.clearListeners();