@vforsh/argus-watcher 0.1.1 → 0.1.3

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 (327) hide show
  1. package/README.md +66 -14
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/artifacts.d.ts +13 -0
  4. package/dist/artifacts.d.ts.map +1 -0
  5. package/dist/artifacts.js +27 -0
  6. package/dist/artifacts.js.map +1 -0
  7. package/dist/buffer/LogBuffer.d.ts +8 -3
  8. package/dist/buffer/LogBuffer.d.ts.map +1 -1
  9. package/dist/buffer/LogBuffer.js +9 -1
  10. package/dist/buffer/LogBuffer.js.map +1 -1
  11. package/dist/buffer/NetBuffer.d.ts +29 -0
  12. package/dist/buffer/NetBuffer.d.ts.map +1 -0
  13. package/dist/buffer/NetBuffer.js +85 -0
  14. package/dist/buffer/NetBuffer.js.map +1 -0
  15. package/dist/cdp/accessibility.d.ts +18 -0
  16. package/dist/cdp/accessibility.d.ts.map +1 -0
  17. package/dist/cdp/accessibility.js +300 -0
  18. package/dist/cdp/accessibility.js.map +1 -0
  19. package/dist/cdp/connection.d.ts +24 -0
  20. package/dist/cdp/connection.d.ts.map +1 -0
  21. package/dist/cdp/connection.js +131 -0
  22. package/dist/cdp/connection.js.map +1 -0
  23. package/dist/cdp/dom/fill.d.ts +22 -0
  24. package/dist/cdp/dom/fill.d.ts.map +1 -0
  25. package/dist/cdp/dom/fill.js +59 -0
  26. package/dist/cdp/dom/fill.js.map +1 -0
  27. package/dist/cdp/dom/info.d.ts +14 -0
  28. package/dist/cdp/dom/info.d.ts.map +1 -0
  29. package/dist/cdp/dom/info.js +52 -0
  30. package/dist/cdp/dom/info.js.map +1 -0
  31. package/dist/cdp/dom/insert.d.ts +19 -0
  32. package/dist/cdp/dom/insert.d.ts.map +1 -0
  33. package/dist/cdp/dom/insert.js +30 -0
  34. package/dist/cdp/dom/insert.js.map +1 -0
  35. package/dist/cdp/dom/modify.d.ts +50 -0
  36. package/dist/cdp/dom/modify.d.ts.map +1 -0
  37. package/dist/cdp/dom/modify.js +100 -0
  38. package/dist/cdp/dom/modify.js.map +1 -0
  39. package/dist/cdp/dom/remove.d.ts +17 -0
  40. package/dist/cdp/dom/remove.d.ts.map +1 -0
  41. package/dist/cdp/dom/remove.js +27 -0
  42. package/dist/cdp/dom/remove.js.map +1 -0
  43. package/dist/cdp/dom/selector.d.ts +19 -0
  44. package/dist/cdp/dom/selector.d.ts.map +1 -0
  45. package/dist/cdp/dom/selector.js +64 -0
  46. package/dist/cdp/dom/selector.js.map +1 -0
  47. package/dist/cdp/dom/setFile.d.ts +21 -0
  48. package/dist/cdp/dom/setFile.d.ts.map +1 -0
  49. package/dist/cdp/dom/setFile.js +82 -0
  50. package/dist/cdp/dom/setFile.js.map +1 -0
  51. package/dist/cdp/dom/submit.d.ts +15 -0
  52. package/dist/cdp/dom/submit.d.ts.map +1 -0
  53. package/dist/cdp/dom/submit.js +130 -0
  54. package/dist/cdp/dom/submit.js.map +1 -0
  55. package/dist/cdp/dom/tree.d.ts +16 -0
  56. package/dist/cdp/dom/tree.d.ts.map +1 -0
  57. package/dist/cdp/dom/tree.js +100 -0
  58. package/dist/cdp/dom/tree.js.map +1 -0
  59. package/dist/cdp/dom/types.d.ts +16 -0
  60. package/dist/cdp/dom/types.d.ts.map +1 -0
  61. package/dist/cdp/dom/types.js +2 -0
  62. package/dist/cdp/dom/types.js.map +1 -0
  63. package/dist/cdp/dom.d.ts +17 -0
  64. package/dist/cdp/dom.d.ts.map +1 -0
  65. package/dist/cdp/dom.js +10 -0
  66. package/dist/cdp/dom.js.map +1 -0
  67. package/dist/cdp/emulation.d.ts +16 -0
  68. package/dist/cdp/emulation.d.ts.map +1 -0
  69. package/dist/cdp/emulation.js +40 -0
  70. package/dist/cdp/emulation.js.map +1 -0
  71. package/dist/cdp/eval.d.ts +10 -0
  72. package/dist/cdp/eval.d.ts.map +1 -0
  73. package/dist/cdp/eval.js +34 -0
  74. package/dist/cdp/eval.js.map +1 -0
  75. package/dist/cdp/keyboard.d.ts +38 -0
  76. package/dist/cdp/keyboard.d.ts.map +1 -0
  77. package/dist/cdp/keyboard.js +148 -0
  78. package/dist/cdp/keyboard.js.map +1 -0
  79. package/dist/cdp/mouse.d.ts +49 -0
  80. package/dist/cdp/mouse.d.ts.map +1 -0
  81. package/dist/cdp/mouse.js +199 -0
  82. package/dist/cdp/mouse.js.map +1 -0
  83. package/dist/cdp/networkCapture.d.ts +11 -0
  84. package/dist/cdp/networkCapture.d.ts.map +1 -0
  85. package/dist/cdp/networkCapture.js +99 -0
  86. package/dist/cdp/networkCapture.js.map +1 -0
  87. package/dist/cdp/pageIndicator.d.ts +41 -0
  88. package/dist/cdp/pageIndicator.d.ts.map +1 -0
  89. package/dist/cdp/pageIndicator.js +395 -0
  90. package/dist/cdp/pageIndicator.js.map +1 -0
  91. package/dist/cdp/redaction.d.ts +3 -0
  92. package/dist/cdp/redaction.d.ts.map +1 -0
  93. package/dist/cdp/redaction.js +35 -0
  94. package/dist/cdp/redaction.js.map +1 -0
  95. package/dist/cdp/remoteObject.d.ts +6 -0
  96. package/dist/cdp/remoteObject.d.ts.map +1 -0
  97. package/dist/cdp/remoteObject.js +94 -0
  98. package/dist/cdp/remoteObject.js.map +1 -0
  99. package/dist/cdp/screenshot.d.ts +10 -0
  100. package/dist/cdp/screenshot.d.ts.map +1 -0
  101. package/dist/cdp/screenshot.js +87 -0
  102. package/dist/cdp/screenshot.js.map +1 -0
  103. package/dist/cdp/storageLocal.d.ts +8 -0
  104. package/dist/cdp/storageLocal.d.ts.map +1 -0
  105. package/dist/cdp/storageLocal.js +70 -0
  106. package/dist/cdp/storageLocal.js.map +1 -0
  107. package/dist/cdp/text-filter.d.ts +19 -0
  108. package/dist/cdp/text-filter.d.ts.map +1 -0
  109. package/dist/cdp/text-filter.js +54 -0
  110. package/dist/cdp/text-filter.js.map +1 -0
  111. package/dist/cdp/throttle.d.ts +6 -0
  112. package/dist/cdp/throttle.d.ts.map +1 -0
  113. package/dist/cdp/throttle.js +9 -0
  114. package/dist/cdp/throttle.js.map +1 -0
  115. package/dist/cdp/tracing.d.ts +14 -0
  116. package/dist/cdp/tracing.d.ts.map +1 -0
  117. package/dist/cdp/tracing.js +115 -0
  118. package/dist/cdp/tracing.js.map +1 -0
  119. package/dist/cdp/watcher.d.ts +17 -2
  120. package/dist/cdp/watcher.d.ts.map +1 -1
  121. package/dist/cdp/watcher.js +125 -99
  122. package/dist/cdp/watcher.js.map +1 -1
  123. package/dist/emulation/EmulationController.d.ts +12 -0
  124. package/dist/emulation/EmulationController.d.ts.map +1 -0
  125. package/dist/emulation/EmulationController.js +83 -0
  126. package/dist/emulation/EmulationController.js.map +1 -0
  127. package/dist/events.d.ts +86 -0
  128. package/dist/events.d.ts.map +1 -0
  129. package/dist/events.js +2 -0
  130. package/dist/events.js.map +1 -0
  131. package/dist/fileLogs/WatcherFileLogger.d.ts +5 -2
  132. package/dist/fileLogs/WatcherFileLogger.d.ts.map +1 -1
  133. package/dist/fileLogs/WatcherFileLogger.js +30 -12
  134. package/dist/fileLogs/WatcherFileLogger.js.map +1 -1
  135. package/dist/http/httpUtils.d.ts +25 -0
  136. package/dist/http/httpUtils.d.ts.map +1 -0
  137. package/dist/http/httpUtils.js +170 -0
  138. package/dist/http/httpUtils.js.map +1 -0
  139. package/dist/http/router.d.ts +5 -0
  140. package/dist/http/router.d.ts.map +1 -0
  141. package/dist/http/router.js +81 -0
  142. package/dist/http/router.js.map +1 -0
  143. package/dist/http/routes/getEmulation.d.ts +3 -0
  144. package/dist/http/routes/getEmulation.d.ts.map +1 -0
  145. package/dist/http/routes/getEmulation.js +8 -0
  146. package/dist/http/routes/getEmulation.js.map +1 -0
  147. package/dist/http/routes/getLogs.d.ts +3 -0
  148. package/dist/http/routes/getLogs.d.ts.map +1 -0
  149. package/dist/http/routes/getLogs.js +28 -0
  150. package/dist/http/routes/getLogs.js.map +1 -0
  151. package/dist/http/routes/getNet.d.ts +3 -0
  152. package/dist/http/routes/getNet.d.ts.map +1 -0
  153. package/dist/http/routes/getNet.js +17 -0
  154. package/dist/http/routes/getNet.js.map +1 -0
  155. package/dist/http/routes/getNetTail.d.ts +3 -0
  156. package/dist/http/routes/getNetTail.d.ts.map +1 -0
  157. package/dist/http/routes/getNetTail.js +18 -0
  158. package/dist/http/routes/getNetTail.js.map +1 -0
  159. package/dist/http/routes/getStatus.d.ts +3 -0
  160. package/dist/http/routes/getStatus.d.ts.map +1 -0
  161. package/dist/http/routes/getStatus.js +21 -0
  162. package/dist/http/routes/getStatus.js.map +1 -0
  163. package/dist/http/routes/getTail.d.ts +3 -0
  164. package/dist/http/routes/getTail.d.ts.map +1 -0
  165. package/dist/http/routes/getTail.js +28 -0
  166. package/dist/http/routes/getTail.js.map +1 -0
  167. package/dist/http/routes/getTargets.d.ts +3 -0
  168. package/dist/http/routes/getTargets.d.ts.map +1 -0
  169. package/dist/http/routes/getTargets.js +16 -0
  170. package/dist/http/routes/getTargets.js.map +1 -0
  171. package/dist/http/routes/getThrottle.d.ts +3 -0
  172. package/dist/http/routes/getThrottle.d.ts.map +1 -0
  173. package/dist/http/routes/getThrottle.js +8 -0
  174. package/dist/http/routes/getThrottle.js.map +1 -0
  175. package/dist/http/routes/postAttach.d.ts +3 -0
  176. package/dist/http/routes/postAttach.d.ts.map +1 -0
  177. package/dist/http/routes/postAttach.js +23 -0
  178. package/dist/http/routes/postAttach.js.map +1 -0
  179. package/dist/http/routes/postDetach.d.ts +3 -0
  180. package/dist/http/routes/postDetach.d.ts.map +1 -0
  181. package/dist/http/routes/postDetach.js +23 -0
  182. package/dist/http/routes/postDetach.js.map +1 -0
  183. package/dist/http/routes/postDomAdd.d.ts +7 -0
  184. package/dist/http/routes/postDomAdd.d.ts.map +1 -0
  185. package/dist/http/routes/postDomAdd.js +97 -0
  186. package/dist/http/routes/postDomAdd.js.map +1 -0
  187. package/dist/http/routes/postDomClick.d.ts +3 -0
  188. package/dist/http/routes/postDomClick.d.ts.map +1 -0
  189. package/dist/http/routes/postDomClick.js +85 -0
  190. package/dist/http/routes/postDomClick.js.map +1 -0
  191. package/dist/http/routes/postDomFill.d.ts +3 -0
  192. package/dist/http/routes/postDomFill.d.ts.map +1 -0
  193. package/dist/http/routes/postDomFill.js +58 -0
  194. package/dist/http/routes/postDomFill.js.map +1 -0
  195. package/dist/http/routes/postDomFocus.d.ts +3 -0
  196. package/dist/http/routes/postDomFocus.d.ts.map +1 -0
  197. package/dist/http/routes/postDomFocus.js +40 -0
  198. package/dist/http/routes/postDomFocus.js.map +1 -0
  199. package/dist/http/routes/postDomHover.d.ts +3 -0
  200. package/dist/http/routes/postDomHover.d.ts.map +1 -0
  201. package/dist/http/routes/postDomHover.js +40 -0
  202. package/dist/http/routes/postDomHover.js.map +1 -0
  203. package/dist/http/routes/postDomInfo.d.ts +3 -0
  204. package/dist/http/routes/postDomInfo.d.ts.map +1 -0
  205. package/dist/http/routes/postDomInfo.js +40 -0
  206. package/dist/http/routes/postDomInfo.js.map +1 -0
  207. package/dist/http/routes/postDomKeydown.d.ts +3 -0
  208. package/dist/http/routes/postDomKeydown.d.ts.map +1 -0
  209. package/dist/http/routes/postDomKeydown.js +36 -0
  210. package/dist/http/routes/postDomKeydown.js.map +1 -0
  211. package/dist/http/routes/postDomModify.d.ts +3 -0
  212. package/dist/http/routes/postDomModify.d.ts.map +1 -0
  213. package/dist/http/routes/postDomModify.js +45 -0
  214. package/dist/http/routes/postDomModify.js.map +1 -0
  215. package/dist/http/routes/postDomRemove.d.ts +3 -0
  216. package/dist/http/routes/postDomRemove.d.ts.map +1 -0
  217. package/dist/http/routes/postDomRemove.js +39 -0
  218. package/dist/http/routes/postDomRemove.js.map +1 -0
  219. package/dist/http/routes/postDomScroll.d.ts +3 -0
  220. package/dist/http/routes/postDomScroll.d.ts.map +1 -0
  221. package/dist/http/routes/postDomScroll.js +75 -0
  222. package/dist/http/routes/postDomScroll.js.map +1 -0
  223. package/dist/http/routes/postDomScrollTo.d.ts +3 -0
  224. package/dist/http/routes/postDomScrollTo.d.ts.map +1 -0
  225. package/dist/http/routes/postDomScrollTo.js +69 -0
  226. package/dist/http/routes/postDomScrollTo.js.map +1 -0
  227. package/dist/http/routes/postDomSetFile.d.ts +3 -0
  228. package/dist/http/routes/postDomSetFile.d.ts.map +1 -0
  229. package/dist/http/routes/postDomSetFile.js +67 -0
  230. package/dist/http/routes/postDomSetFile.js.map +1 -0
  231. package/dist/http/routes/postDomSubmit.d.ts +3 -0
  232. package/dist/http/routes/postDomSubmit.d.ts.map +1 -0
  233. package/dist/http/routes/postDomSubmit.js +49 -0
  234. package/dist/http/routes/postDomSubmit.js.map +1 -0
  235. package/dist/http/routes/postDomTree.d.ts +3 -0
  236. package/dist/http/routes/postDomTree.d.ts.map +1 -0
  237. package/dist/http/routes/postDomTree.js +41 -0
  238. package/dist/http/routes/postDomTree.js.map +1 -0
  239. package/dist/http/routes/postEmulation.d.ts +3 -0
  240. package/dist/http/routes/postEmulation.d.ts.map +1 -0
  241. package/dist/http/routes/postEmulation.js +70 -0
  242. package/dist/http/routes/postEmulation.js.map +1 -0
  243. package/dist/http/routes/postEval.d.ts +3 -0
  244. package/dist/http/routes/postEval.d.ts.map +1 -0
  245. package/dist/http/routes/postEval.js +26 -0
  246. package/dist/http/routes/postEval.js.map +1 -0
  247. package/dist/http/routes/postReload.d.ts +3 -0
  248. package/dist/http/routes/postReload.d.ts.map +1 -0
  249. package/dist/http/routes/postReload.js +20 -0
  250. package/dist/http/routes/postReload.js.map +1 -0
  251. package/dist/http/routes/postScreenshot.d.ts +3 -0
  252. package/dist/http/routes/postScreenshot.d.ts.map +1 -0
  253. package/dist/http/routes/postScreenshot.js +17 -0
  254. package/dist/http/routes/postScreenshot.js.map +1 -0
  255. package/dist/http/routes/postShutdown.d.ts +3 -0
  256. package/dist/http/routes/postShutdown.d.ts.map +1 -0
  257. package/dist/http/routes/postShutdown.js +13 -0
  258. package/dist/http/routes/postShutdown.js.map +1 -0
  259. package/dist/http/routes/postSnapshot.d.ts +3 -0
  260. package/dist/http/routes/postSnapshot.d.ts.map +1 -0
  261. package/dist/http/routes/postSnapshot.js +28 -0
  262. package/dist/http/routes/postSnapshot.js.map +1 -0
  263. package/dist/http/routes/postStorageLocal.d.ts +3 -0
  264. package/dist/http/routes/postStorageLocal.d.ts.map +1 -0
  265. package/dist/http/routes/postStorageLocal.js +31 -0
  266. package/dist/http/routes/postStorageLocal.js.map +1 -0
  267. package/dist/http/routes/postThrottle.d.ts +3 -0
  268. package/dist/http/routes/postThrottle.d.ts.map +1 -0
  269. package/dist/http/routes/postThrottle.js +38 -0
  270. package/dist/http/routes/postThrottle.js.map +1 -0
  271. package/dist/http/routes/postTraceStart.d.ts +3 -0
  272. package/dist/http/routes/postTraceStart.d.ts.map +1 -0
  273. package/dist/http/routes/postTraceStart.js +17 -0
  274. package/dist/http/routes/postTraceStart.js.map +1 -0
  275. package/dist/http/routes/postTraceStop.d.ts +3 -0
  276. package/dist/http/routes/postTraceStop.d.ts.map +1 -0
  277. package/dist/http/routes/postTraceStop.js +17 -0
  278. package/dist/http/routes/postTraceStop.js.map +1 -0
  279. package/dist/http/routes/types.d.ts +9 -0
  280. package/dist/http/routes/types.d.ts.map +1 -0
  281. package/dist/http/routes/types.js +10 -0
  282. package/dist/http/routes/types.js.map +1 -0
  283. package/dist/http/server.d.ts +40 -1
  284. package/dist/http/server.d.ts.map +1 -1
  285. package/dist/http/server.js +3 -82
  286. package/dist/http/server.js.map +1 -1
  287. package/dist/index.d.ts +117 -14
  288. package/dist/index.d.ts.map +1 -1
  289. package/dist/index.js +331 -44
  290. package/dist/index.js.map +1 -1
  291. package/dist/native-messaging/messaging.d.ts +18 -0
  292. package/dist/native-messaging/messaging.d.ts.map +1 -0
  293. package/dist/native-messaging/messaging.js +94 -0
  294. package/dist/native-messaging/messaging.js.map +1 -0
  295. package/dist/native-messaging/session-manager.d.ts +105 -0
  296. package/dist/native-messaging/session-manager.d.ts.map +1 -0
  297. package/dist/native-messaging/session-manager.js +259 -0
  298. package/dist/native-messaging/session-manager.js.map +1 -0
  299. package/dist/native-messaging/types.d.ts +79 -0
  300. package/dist/native-messaging/types.d.ts.map +1 -0
  301. package/dist/native-messaging/types.js +6 -0
  302. package/dist/native-messaging/types.js.map +1 -0
  303. package/dist/registry/registry.d.ts +9 -2
  304. package/dist/registry/registry.d.ts.map +1 -1
  305. package/dist/registry/registry.js +53 -9
  306. package/dist/registry/registry.js.map +1 -1
  307. package/dist/scripts/install-host.d.ts +10 -0
  308. package/dist/scripts/install-host.d.ts.map +1 -0
  309. package/dist/scripts/install-host.js +189 -0
  310. package/dist/scripts/install-host.js.map +1 -0
  311. package/dist/sources/cdp-source.d.ts +24 -0
  312. package/dist/sources/cdp-source.d.ts.map +1 -0
  313. package/dist/sources/cdp-source.js +48 -0
  314. package/dist/sources/cdp-source.js.map +1 -0
  315. package/dist/sources/extension-source.d.ts +15 -0
  316. package/dist/sources/extension-source.d.ts.map +1 -0
  317. package/dist/sources/extension-source.js +256 -0
  318. package/dist/sources/extension-source.js.map +1 -0
  319. package/dist/sources/types.d.ts +92 -0
  320. package/dist/sources/types.d.ts.map +1 -0
  321. package/dist/sources/types.js +7 -0
  322. package/dist/sources/types.js.map +1 -0
  323. package/dist/throttle/ThrottleController.d.ts +12 -0
  324. package/dist/throttle/ThrottleController.d.ts.map +1 -0
  325. package/dist/throttle/ThrottleController.js +67 -0
  326. package/dist/throttle/ThrottleController.js.map +1 -0
  327. package/package.json +8 -2
@@ -1,10 +1,15 @@
1
+ import { previewStringify } from '@vforsh/argus-core';
1
2
  import { stripUrlPrefixes } from './locationCleanup.js';
2
3
  import { selectBestFrame } from './selectBestFrame.js';
3
4
  import { resolveSourcemappedLocation } from '../sourcemaps/resolveLocation.js';
5
+ import { createCdpSessionHandle } from './connection.js';
6
+ import { serializeRemoteObject, serializeRemoteObjects } from './remoteObject.js';
4
7
  /** Start CDP polling + websocket subscriptions for console/exception events. */
5
8
  export const startCdpWatcher = (options) => {
6
9
  let stopped = false;
7
10
  let socket = null;
11
+ let currentTarget = null;
12
+ const { session, attach, detach } = options.sessionHandle ?? createCdpSessionHandle();
8
13
  const stop = async () => {
9
14
  stopped = true;
10
15
  if (socket) {
@@ -12,7 +17,36 @@ export const startCdpWatcher = (options) => {
12
17
  }
13
18
  };
14
19
  void runLoop();
15
- return { stop };
20
+ session.onEvent('Runtime.consoleAPICalled', (params) => {
21
+ if (!currentTarget) {
22
+ return;
23
+ }
24
+ void toConsoleEvent(params, currentTarget, { ...options, cdp: session }).then((event) => options.onLog(event));
25
+ });
26
+ session.onEvent('Runtime.exceptionThrown', (params) => {
27
+ if (!currentTarget) {
28
+ return;
29
+ }
30
+ void toExceptionEvent(params, currentTarget, { ...options, cdp: session }).then((event) => options.onLog(event));
31
+ });
32
+ session.onEvent('Page.frameNavigated', (params) => {
33
+ if (!currentTarget) {
34
+ return;
35
+ }
36
+ const navigation = parseNavigation(params);
37
+ if (!navigation) {
38
+ return;
39
+ }
40
+ currentTarget.url = navigation.url;
41
+ options.onPageNavigation?.({ url: navigation.url, title: currentTarget.title ?? null });
42
+ });
43
+ session.onEvent('Page.domContentEventFired', () => {
44
+ if (!currentTarget) {
45
+ return;
46
+ }
47
+ options.onPageLoad?.();
48
+ });
49
+ return { stop, session };
16
50
  async function runLoop() {
17
51
  let backoffMs = 1_000;
18
52
  while (!stopped) {
@@ -21,8 +55,10 @@ export const startCdpWatcher = (options) => {
21
55
  backoffMs = 1_000;
22
56
  }
23
57
  catch (error) {
58
+ const reason = `connect_failed: ${formatError(error)}`;
24
59
  options.onLog(createSystemLog(`CDP connection failed: ${formatError(error)}`));
25
- options.onStatus({ attached: false, target: null });
60
+ options.onStatus({ attached: false, target: null, reason });
61
+ options.onDetach?.(reason);
26
62
  await delay(backoffMs);
27
63
  backoffMs = Math.min(backoffMs * 2, 10_000);
28
64
  }
@@ -30,7 +66,6 @@ export const startCdpWatcher = (options) => {
30
66
  }
31
67
  async function connectOnce() {
32
68
  const target = await findTarget(options.chrome, options.match);
33
- const pendingRequests = new Map();
34
69
  socket = new WebSocket(target.webSocketDebuggerUrl);
35
70
  await new Promise((resolve, reject) => {
36
71
  socket?.addEventListener('open', () => resolve());
@@ -39,55 +74,39 @@ export const startCdpWatcher = (options) => {
39
74
  if (!socket) {
40
75
  throw new Error('WebSocket unavailable');
41
76
  }
42
- socket.addEventListener('message', (event) => {
43
- const message = parseMessage(event.data);
44
- if (!message || typeof message !== 'object') {
45
- return;
46
- }
47
- const payload = message;
48
- if (payload.id != null) {
49
- const pending = pendingRequests.get(payload.id);
50
- if (!pending) {
51
- return;
52
- }
53
- pendingRequests.delete(payload.id);
54
- if (payload.error) {
55
- pending.reject(new Error(payload.error.message ?? 'CDP request failed'));
56
- return;
57
- }
58
- pending.resolve(payload.result);
59
- return;
60
- }
61
- if (payload.method === 'Runtime.consoleAPICalled') {
62
- void toConsoleEvent(payload.params, target, options).then((event) => options.onLog(event));
63
- return;
64
- }
65
- if (payload.method === 'Runtime.exceptionThrown') {
66
- void toExceptionEvent(payload.params, target, options).then((event) => options.onLog(event));
67
- return;
68
- }
69
- if (payload.method === 'Page.frameNavigated') {
70
- const navigation = parseNavigation(payload.params);
71
- if (!navigation) {
72
- return;
73
- }
74
- target.url = navigation.url;
75
- options.onPageNavigation?.({ url: navigation.url, title: target.title ?? null });
76
- }
77
+ const ws = socket;
78
+ const connection = attach(ws);
79
+ currentTarget = target;
80
+ ws.addEventListener('message', (event) => {
81
+ connection.handleMessage(event.data);
77
82
  });
78
- socket.addEventListener('close', () => {
79
- options.onStatus({ attached: false, target: null });
83
+ ws.addEventListener('close', () => {
84
+ const reason = stopped ? 'stopped' : 'socket_closed';
85
+ currentTarget = null;
86
+ detach(reason);
87
+ options.onStatus({ attached: false, target: null, reason });
88
+ options.onDetach?.(reason);
80
89
  });
81
- const pageIntl = await fetchPageIntl(socket, pendingRequests);
90
+ const pageIntl = await fetchPageIntl(session);
82
91
  if (pageIntl) {
83
92
  options.onPageIntl?.(pageIntl);
84
93
  }
85
- await sendAndWait(socket, pendingRequests, 'Runtime.enable');
86
- await sendAndWait(socket, pendingRequests, 'Page.enable');
94
+ await session.sendAndWait('Runtime.enable');
95
+ await session.sendAndWait('Page.enable');
96
+ await options.onAttach?.(session, target);
87
97
  // Only signal attached after we've enabled the necessary domains
88
- options.onStatus({ attached: true, target: { title: target.title ?? null, url: target.url ?? null } });
98
+ options.onStatus({
99
+ attached: true,
100
+ target: {
101
+ title: target.title ?? null,
102
+ url: target.url ?? null,
103
+ type: target.type ?? null,
104
+ parentId: target.parentId ?? null,
105
+ },
106
+ reason: null,
107
+ });
89
108
  await new Promise((resolve) => {
90
- socket?.addEventListener('close', () => resolve());
109
+ ws.addEventListener('close', () => resolve());
91
110
  });
92
111
  }
93
112
  };
@@ -107,21 +126,57 @@ const findTarget = async (chrome, match) => {
107
126
  if (targets.length === 0) {
108
127
  throw new Error('No CDP targets available');
109
128
  }
110
- if (!match || (!match.url && !match.title && !match.urlRegex && !match.titleRegex)) {
129
+ // Direct target ID match bypasses all other filters
130
+ if (match?.targetId) {
131
+ const selected = targets.find((t) => t.id === match.targetId);
132
+ if (!selected) {
133
+ throw new Error(`No CDP target found with id: ${match.targetId}`);
134
+ }
135
+ return selected;
136
+ }
137
+ const hasFilters = match?.url || match?.title || match?.urlRegex || match?.titleRegex || match?.type || match?.origin || match?.parent;
138
+ if (!match || !hasFilters) {
111
139
  return targets[0];
112
140
  }
113
141
  const urlRegex = match.urlRegex ? safeRegex(match.urlRegex) : null;
114
142
  const titleRegex = match.titleRegex ? safeRegex(match.titleRegex) : null;
143
+ // Build a lookup map for parent resolution
144
+ const targetById = new Map(targets.map((t) => [t.id, t]));
115
145
  const selected = targets.find((target) => {
146
+ // Type filter (exact match)
147
+ if (match.type && target.type !== match.type) {
148
+ return false;
149
+ }
150
+ // Origin filter (match URL origin only)
151
+ if (match.origin) {
152
+ const targetOrigin = extractOrigin(target.url);
153
+ if (!targetOrigin || !targetOrigin.includes(match.origin)) {
154
+ return false;
155
+ }
156
+ }
157
+ // Parent filter (match parent target's URL)
158
+ if (match.parent) {
159
+ if (!target.parentId) {
160
+ return false;
161
+ }
162
+ const parent = targetById.get(target.parentId);
163
+ if (!parent || !parent.url.includes(match.parent)) {
164
+ return false;
165
+ }
166
+ }
167
+ // URL substring filter
116
168
  if (match.url && !target.url.includes(match.url)) {
117
169
  return false;
118
170
  }
171
+ // Title substring filter
119
172
  if (match.title && !target.title.includes(match.title)) {
120
173
  return false;
121
174
  }
175
+ // URL regex filter
122
176
  if (urlRegex && !urlRegex.test(target.url)) {
123
177
  return false;
124
178
  }
179
+ // Title regex filter
125
180
  if (titleRegex && !titleRegex.test(target.title)) {
126
181
  return false;
127
182
  }
@@ -132,6 +187,19 @@ const findTarget = async (chrome, match) => {
132
187
  }
133
188
  return selected;
134
189
  };
190
+ /**
191
+ * Extract the origin (protocol + host + port) from a URL.
192
+ * Returns null if the URL is malformed.
193
+ */
194
+ const extractOrigin = (url) => {
195
+ try {
196
+ const parsed = new URL(url);
197
+ return parsed.origin;
198
+ }
199
+ catch {
200
+ return null;
201
+ }
202
+ };
135
203
  const fetchTargets = async (chrome) => {
136
204
  const response = await fetch(`http://${chrome.host}:${chrome.port}/json`);
137
205
  if (!response.ok) {
@@ -147,12 +215,16 @@ const fetchTargets = async (chrome) => {
147
215
  title: String(target.title ?? ''),
148
216
  url: String(target.url ?? ''),
149
217
  webSocketDebuggerUrl: String(target.webSocketDebuggerUrl ?? ''),
218
+ type: String(target.type ?? 'page'),
219
+ parentId: typeof target.parentId === 'string' ? target.parentId : null,
150
220
  }))
151
221
  .filter((target) => Boolean(target.webSocketDebuggerUrl));
152
222
  };
153
223
  const toConsoleEvent = async (params, target, config) => {
154
224
  const record = params;
155
- const args = Array.isArray(record.args) ? record.args.map(serializeRemoteObject) : [];
225
+ const cdp = config.cdp;
226
+ const runtimeClient = cdp ? { sendAndWait: (method, params) => cdp.sendAndWait(method, params) } : undefined;
227
+ const args = Array.isArray(record.args) ? await serializeRemoteObjects(record.args, runtimeClient) : [];
156
228
  const text = formatArgs(args);
157
229
  const baseEvent = {
158
230
  ts: Date.now(),
@@ -176,7 +248,9 @@ const toConsoleEvent = async (params, target, config) => {
176
248
  const toExceptionEvent = async (params, target, config) => {
177
249
  const record = params;
178
250
  const details = record.exceptionDetails;
179
- const exceptionValue = details?.exception ? serializeRemoteObject(details.exception) : null;
251
+ const cdp = config.cdp;
252
+ const runtimeClient = cdp ? { sendAndWait: (method, params) => cdp.sendAndWait(method, params) } : undefined;
253
+ const exceptionValue = details?.exception ? await serializeRemoteObject(details.exception, runtimeClient) : null;
180
254
  const args = exceptionValue != null ? [exceptionValue] : [];
181
255
  const exceptionDescription = describeExceptionValue(exceptionValue);
182
256
  const text = formatExceptionText(details?.text, exceptionDescription);
@@ -274,26 +348,6 @@ const formatExceptionText = (baseText, description) => {
274
348
  }
275
349
  return trimmed;
276
350
  };
277
- const serializeRemoteObject = (value) => {
278
- if (!value || typeof value !== 'object') {
279
- return value;
280
- }
281
- const record = value;
282
- if (record.unserializableValue) {
283
- return record.unserializableValue;
284
- }
285
- if (record.value !== undefined) {
286
- return record.value;
287
- }
288
- if (record.preview?.properties) {
289
- const preview = {};
290
- for (const prop of record.preview.properties) {
291
- preview[prop.name] = prop.value ?? '';
292
- }
293
- return preview;
294
- }
295
- return record.description ?? record.subtype ?? record.type ?? 'Object';
296
- };
297
351
  const normalizeLevel = (level) => {
298
352
  if (level === 'warn') {
299
353
  return 'warning';
@@ -310,39 +364,11 @@ const formatArgs = (args) => {
310
364
  if (args.length === 0) {
311
365
  return '';
312
366
  }
313
- return args.map((arg) => (typeof arg === 'string' ? arg : JSON.stringify(arg))).join(' ');
314
- };
315
- const parseMessage = (data) => {
316
- if (typeof data === 'string') {
317
- try {
318
- return JSON.parse(data);
319
- }
320
- catch {
321
- return null;
322
- }
323
- }
324
- if (data instanceof ArrayBuffer) {
325
- return parseMessage(new TextDecoder().decode(data));
326
- }
327
- return null;
328
- };
329
- let nextId = 1;
330
- const sendAndWait = (socket, pendingRequests, method, params) => {
331
- const id = nextId++;
332
- return new Promise((resolve, reject) => {
333
- pendingRequests.set(id, { resolve, reject });
334
- try {
335
- socket.send(JSON.stringify({ id, method, params }));
336
- }
337
- catch (error) {
338
- pendingRequests.delete(id);
339
- reject(error instanceof Error ? error : new Error(String(error)));
340
- }
341
- });
367
+ return args.map((arg) => previewStringify(arg)).join(' ');
342
368
  };
343
- const fetchPageIntl = async (socket, pendingRequests) => {
369
+ const fetchPageIntl = async (session) => {
344
370
  try {
345
- const result = await sendAndWait(socket, pendingRequests, 'Runtime.evaluate', {
371
+ const result = await session.sendAndWait('Runtime.evaluate', {
346
372
  expression: '(() => { const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone ?? null; const locale = navigator.language ?? null; return { timezone, locale }; })()',
347
373
  returnByValue: true,
348
374
  });
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { EmulationState, EmulationStatusResponse, EmulationSetResponse, EmulationClearResponse } from '@vforsh/argus-core';
2
+ import type { CdpSessionHandle } from '../cdp/connection.js';
3
+ export type EmulationController = {
4
+ getStatus: (ctx: {
5
+ attached: boolean;
6
+ }) => EmulationStatusResponse;
7
+ setDesired: (state: EmulationState, session: CdpSessionHandle | null) => Promise<EmulationSetResponse>;
8
+ clearDesired: (session: CdpSessionHandle | null) => Promise<EmulationClearResponse>;
9
+ onAttach: (session: CdpSessionHandle) => Promise<void>;
10
+ };
11
+ export declare const createEmulationController: () => EmulationController;
12
+ //# sourceMappingURL=EmulationController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmulationController.d.ts","sourceRoot":"","sources":["../../src/emulation/EmulationController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC/H,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAK5D,MAAM,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,uBAAuB,CAAA;IAClE,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACtG,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACnF,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,mBAwF5C,CAAA"}
@@ -0,0 +1,83 @@
1
+ import { applyEmulation, clearEmulation } from '../cdp/emulation.js';
2
+ export const createEmulationController = () => {
3
+ let desired = null;
4
+ let applied = false;
5
+ let baselineUserAgent = null;
6
+ let lastError = null;
7
+ const getBaseline = () => ({ userAgent: baselineUserAgent });
8
+ const getStatus = (ctx) => ({
9
+ ok: true,
10
+ attached: ctx.attached,
11
+ applied,
12
+ state: desired,
13
+ baseline: { userAgent: baselineUserAgent },
14
+ lastError,
15
+ });
16
+ const setDesired = async (state, session) => {
17
+ desired = state;
18
+ lastError = null;
19
+ if (!session || !session.isAttached()) {
20
+ applied = false;
21
+ return { ok: true, attached: false, applied: false, state: desired };
22
+ }
23
+ try {
24
+ await applyEmulation(session, state, getBaseline());
25
+ applied = true;
26
+ return { ok: true, attached: true, applied: true, state: desired };
27
+ }
28
+ catch (error) {
29
+ applied = false;
30
+ lastError = { message: error instanceof Error ? error.message : String(error) };
31
+ return { ok: true, attached: true, applied: false, state: desired, error: lastError };
32
+ }
33
+ };
34
+ const clearDesired = async (session) => {
35
+ desired = null;
36
+ lastError = null;
37
+ if (!session || !session.isAttached()) {
38
+ applied = false;
39
+ return { ok: true, attached: false, applied: false, state: null };
40
+ }
41
+ try {
42
+ await clearEmulation(session, getBaseline());
43
+ applied = false;
44
+ return { ok: true, attached: true, applied: true, state: null };
45
+ }
46
+ catch (error) {
47
+ applied = false;
48
+ lastError = { message: error instanceof Error ? error.message : String(error) };
49
+ return { ok: true, attached: true, applied: false, state: null, error: lastError };
50
+ }
51
+ };
52
+ const onAttach = async (session) => {
53
+ // Capture baseline UA before any overrides
54
+ try {
55
+ const result = (await session.sendAndWait('Runtime.evaluate', {
56
+ expression: 'navigator.userAgent',
57
+ returnByValue: true,
58
+ }));
59
+ const value = result?.result?.value;
60
+ baselineUserAgent = typeof value === 'string' ? value : null;
61
+ }
62
+ catch {
63
+ baselineUserAgent = null;
64
+ }
65
+ // Re-apply desired state if set (persist-until-clear semantics)
66
+ if (!desired) {
67
+ applied = false;
68
+ return;
69
+ }
70
+ try {
71
+ await applyEmulation(session, desired, getBaseline());
72
+ applied = true;
73
+ lastError = null;
74
+ }
75
+ catch (error) {
76
+ applied = false;
77
+ lastError = { message: error instanceof Error ? error.message : String(error) };
78
+ console.warn(`[Emulation] Failed to re-apply emulation on attach: ${lastError.message}`);
79
+ }
80
+ };
81
+ return { getStatus, setDesired, clearDesired, onAttach };
82
+ };
83
+ //# sourceMappingURL=EmulationController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmulationController.js","sourceRoot":"","sources":["../../src/emulation/EmulationController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import type { LogLevel } from '@vforsh/argus-core';
2
+ /**
3
+ * Event payload for when the watcher attaches to a CDP target.
4
+ */
5
+ export type CdpAttachedEvent = {
6
+ /** ISO timestamp of the event. */
7
+ ts: number;
8
+ /** Unique watcher identifier. */
9
+ watcherId: string;
10
+ /** CDP target metadata. */
11
+ target: {
12
+ /** Human-readable page title for the target. */
13
+ title: string | null;
14
+ /** Page URL for the target. */
15
+ url: string | null;
16
+ /** Target type (e.g., 'page', 'iframe', 'worker'). */
17
+ type: string | null;
18
+ /** Parent target ID for nested targets (e.g., iframes). Null for top-level pages. */
19
+ parentId: string | null;
20
+ } | null;
21
+ };
22
+ /**
23
+ * Event payload for when the watcher detaches from a CDP target.
24
+ */
25
+ export type CdpDetachedEvent = {
26
+ /** ISO timestamp of the event. */
27
+ ts: number;
28
+ /** Unique watcher identifier. */
29
+ watcherId: string;
30
+ /** Best-effort reason for detachment. */
31
+ reason: string;
32
+ /** Last known CDP target metadata. */
33
+ target: {
34
+ /** Human-readable page title for the target. */
35
+ title: string | null;
36
+ /** Page URL for the target. */
37
+ url: string | null;
38
+ } | null;
39
+ };
40
+ /**
41
+ * Query parameters for log/tail requests.
42
+ */
43
+ export type LogRequestQuery = {
44
+ after?: number;
45
+ limit?: number;
46
+ levels?: LogLevel[];
47
+ match?: string[];
48
+ matchCase?: 'sensitive' | 'insensitive';
49
+ source?: string;
50
+ sinceTs?: number;
51
+ timeoutMs?: number;
52
+ };
53
+ /**
54
+ * Query parameters for network/tail requests.
55
+ */
56
+ export type NetRequestQuery = {
57
+ after?: number;
58
+ limit?: number;
59
+ sinceTs?: number;
60
+ timeoutMs?: number;
61
+ grep?: string;
62
+ };
63
+ /**
64
+ * Event payload for when a client requests logs or tail via HTTP.
65
+ */
66
+ export type HttpRequestEvent = {
67
+ /** ISO timestamp of the event. */
68
+ ts: number;
69
+ /** Unique watcher identifier. */
70
+ watcherId: string;
71
+ /** The requested endpoint. */
72
+ endpoint: 'logs' | 'tail' | 'net' | 'net/tail' | 'eval' | 'trace/start' | 'trace/stop' | 'screenshot' | 'snapshot' | 'dom/tree' | 'dom/info' | 'dom/hover' | 'dom/click' | 'dom/keydown' | 'dom/add' | 'dom/remove' | 'dom/modify' | 'dom/set-file' | 'dom/focus' | 'dom/fill' | 'dom/submit' | 'dom/scroll' | 'dom/scroll-to' | 'emulation' | 'throttle' | 'storage/local' | 'reload' | 'shutdown' | 'targets' | 'attach' | 'detach';
73
+ /** IP address of the requester (best-effort). */
74
+ remoteAddress: string | null;
75
+ /** Parsed query parameters. */
76
+ query?: LogRequestQuery | NetRequestQuery;
77
+ };
78
+ /**
79
+ * Map of events emitted by the Argus watcher.
80
+ */
81
+ export type ArgusWatcherEventMap = {
82
+ cdpAttached: CdpAttachedEvent;
83
+ cdpDetached: CdpDetachedEvent;
84
+ httpRequested: HttpRequestEvent;
85
+ };
86
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,MAAM,EAAE;QACP,gDAAgD;QAChD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,+BAA+B;QAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,sDAAsD;QACtD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,qFAAqF;QACrF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,GAAG,IAAI,CAAA;CACR,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,MAAM,EAAE;QACP,gDAAgD;QAChD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,+BAA+B;QAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAClB,GAAG,IAAI,CAAA;CACR,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,QAAQ,EACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,UAAU,GACV,MAAM,GACN,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,WAAW,GACX,UAAU,GACV,eAAe,GACf,QAAQ,GACR,UAAU,GACV,SAAS,GACT,QAAQ,GACR,QAAQ,CAAA;IACX,iDAAiD;IACjD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,eAAe,GAAG,eAAe,CAAA;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,aAAa,EAAE,gBAAgB,CAAA;CAC/B,CAAA"}
package/dist/events.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import type { LogEvent, WatcherChrome, WatcherMatch } from '@vforsh/argus-core';
2
+ import type { BuildFilenameContext } from '../index.js';
2
3
  type PageInfo = {
3
4
  url: string;
4
5
  title: string | null;
@@ -11,20 +12,22 @@ export type WatcherFileLoggerOptions = {
11
12
  watcherId: string;
12
13
  startedAt: number;
13
14
  logsDir: string;
14
- chrome: WatcherChrome;
15
+ chrome?: WatcherChrome;
15
16
  match?: WatcherMatch;
16
17
  maxFiles: number;
17
18
  includeTimestamps: boolean;
19
+ buildFilename?: (context: BuildFilenameContext) => string | undefined | null;
18
20
  };
19
21
  export declare class WatcherFileLogger {
20
22
  private readonly watcherId;
21
23
  private readonly startedAt;
22
24
  private readonly startedAtIso;
23
25
  private readonly logsDir;
24
- private readonly chrome;
26
+ private readonly chrome?;
25
27
  private readonly match?;
26
28
  private readonly maxFiles;
27
29
  private readonly includeTimestamps;
30
+ private readonly customBuildFilename?;
28
31
  private currentStream;
29
32
  private writePromise;
30
33
  private fileIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"WatcherFileLogger.d.ts","sourceRoot":"","sources":["../../src/fileLogs/WatcherFileLogger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG/E,KAAK,QAAQ,GAAG;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,KAAK,YAAY,GAAG;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,OAAO,EAAE,wBAAwB;IAW7C,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IASrC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI;IAkB7C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAe5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAWR,YAAY;IA4B1B,OAAO,CAAC,aAAa;YAIP,kBAAkB;YAWlB,aAAa;IAe3B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;YAQL,aAAa;CA2C3B"}
1
+ {"version":3,"file":"WatcherFileLogger.d.ts","sourceRoot":"","sources":["../../src/fileLogs/WatcherFileLogger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,KAAK,QAAQ,GAAG;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,KAAK,YAAY,GAAG;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CAC5E,CAAA;AAED,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAA8D;IACnG,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAQ;gBAEV,OAAO,EAAE,wBAAwB;IAY7C,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IASrC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI;IAkB7C,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAe5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAWR,YAAY;IA4B1B,OAAO,CAAC,aAAa;YAiCP,kBAAkB;YAWlB,aAAa;IAe3B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;YAQL,aAAa;CA2C3B"}