@vforsh/argus 0.3.1 → 0.5.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 (437) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +6265 -6005
  3. package/dist/cdp/resolveCdpEndpoint.d.ts.map +1 -1
  4. package/dist/cdp/resolveCdpEndpoint.js +2 -1
  5. package/dist/cdp/resolveCdpEndpoint.js.map +1 -1
  6. package/dist/cli/defineCommand.d.ts +12 -0
  7. package/dist/cli/defineCommand.d.ts.map +1 -1
  8. package/dist/cli/defineCommand.js +71 -1
  9. package/dist/cli/defineCommand.js.map +1 -1
  10. package/dist/cli/defineWatcherCommand.d.ts +12 -54
  11. package/dist/cli/defineWatcherCommand.d.ts.map +1 -1
  12. package/dist/cli/defineWatcherCommand.js +1 -1
  13. package/dist/cli/defineWatcherCommand.js.map +1 -1
  14. package/dist/cli/parse.d.ts +1 -2
  15. package/dist/cli/parse.d.ts.map +1 -1
  16. package/dist/cli/parse.js +2 -10
  17. package/dist/cli/parse.js.map +1 -1
  18. package/dist/cli/plugins/pluginHost.d.ts.map +1 -1
  19. package/dist/cli/plugins/pluginHost.js +1 -1
  20. package/dist/cli/plugins/pluginHost.js.map +1 -1
  21. package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
  22. package/dist/cli/plugins/registerPlugins.js +10 -8
  23. package/dist/cli/plugins/registerPlugins.js.map +1 -1
  24. package/dist/cli/program.d.ts +11 -1
  25. package/dist/cli/program.d.ts.map +1 -1
  26. package/dist/cli/program.js +18 -9
  27. package/dist/cli/program.js.map +1 -1
  28. package/dist/cli/register/authCommands.d.ts.map +1 -1
  29. package/dist/cli/register/authCommands.js +8 -7
  30. package/dist/cli/register/authCommands.js.map +1 -1
  31. package/dist/cli/register/chromeCommands.d.ts.map +1 -1
  32. package/dist/cli/register/chromeCommands.js +12 -27
  33. package/dist/cli/register/chromeCommands.js.map +1 -1
  34. package/dist/cli/register/codeCommands.d.ts.map +1 -1
  35. package/dist/cli/register/codeCommands.js +7 -6
  36. package/dist/cli/register/codeCommands.js.map +1 -1
  37. package/dist/cli/register/dialogCommands.d.ts.map +1 -1
  38. package/dist/cli/register/dialogCommands.js +3 -2
  39. package/dist/cli/register/dialogCommands.js.map +1 -1
  40. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
  41. package/dist/cli/register/domCommandBuilder.js +2 -1
  42. package/dist/cli/register/domCommandBuilder.js.map +1 -1
  43. package/dist/cli/register/domCommands.d.ts.map +1 -1
  44. package/dist/cli/register/domCommands.js +7 -6
  45. package/dist/cli/register/domCommands.js.map +1 -1
  46. package/dist/cli/register/evalCommands.d.ts.map +1 -1
  47. package/dist/cli/register/evalCommands.js +27 -57
  48. package/dist/cli/register/evalCommands.js.map +1 -1
  49. package/dist/cli/register/extensionCommands.d.ts.map +1 -1
  50. package/dist/cli/register/extensionCommands.js +1 -1
  51. package/dist/cli/register/extensionCommands.js.map +1 -1
  52. package/dist/cli/register/fillCommand.d.ts.map +1 -1
  53. package/dist/cli/register/fillCommand.js +5 -5
  54. package/dist/cli/register/fillCommand.js.map +1 -1
  55. package/dist/cli/register/hoverCommand.d.ts.map +1 -1
  56. package/dist/cli/register/hoverCommand.js +2 -1
  57. package/dist/cli/register/hoverCommand.js.map +1 -1
  58. package/dist/cli/register/index.d.ts.map +1 -1
  59. package/dist/cli/register/index.js +2 -0
  60. package/dist/cli/register/index.js.map +1 -1
  61. package/dist/cli/register/keydownCommand.d.ts.map +1 -1
  62. package/dist/cli/register/keydownCommand.js +2 -1
  63. package/dist/cli/register/keydownCommand.js.map +1 -1
  64. package/dist/cli/register/locateCommands.d.ts.map +1 -1
  65. package/dist/cli/register/locateCommands.js +2 -1
  66. package/dist/cli/register/locateCommands.js.map +1 -1
  67. package/dist/cli/register/logsCommands.d.ts.map +1 -1
  68. package/dist/cli/register/logsCommands.js +8 -10
  69. package/dist/cli/register/logsCommands.js.map +1 -1
  70. package/dist/cli/register/netCommands.d.ts +0 -5
  71. package/dist/cli/register/netCommands.d.ts.map +1 -1
  72. package/dist/cli/register/netCommands.js +17 -143
  73. package/dist/cli/register/netCommands.js.map +1 -1
  74. package/dist/cli/register/pageCommands.d.ts.map +1 -1
  75. package/dist/cli/register/pageCommands.js +8 -7
  76. package/dist/cli/register/pageCommands.js.map +1 -1
  77. package/dist/cli/register/pluginCommands.d.ts.map +1 -1
  78. package/dist/cli/register/pluginCommands.js +3 -2
  79. package/dist/cli/register/pluginCommands.js.map +1 -1
  80. package/dist/cli/register/quickAccessCommands.d.ts.map +1 -1
  81. package/dist/cli/register/quickAccessCommands.js +16 -31
  82. package/dist/cli/register/quickAccessCommands.js.map +1 -1
  83. package/dist/cli/register/recordCommands.d.ts.map +1 -1
  84. package/dist/cli/register/recordCommands.js +12 -34
  85. package/dist/cli/register/recordCommands.js.map +1 -1
  86. package/dist/cli/register/scrollToCommand.d.ts.map +1 -1
  87. package/dist/cli/register/scrollToCommand.js +2 -1
  88. package/dist/cli/register/scrollToCommand.js.map +1 -1
  89. package/dist/cli/register/sessionCommands.d.ts +3 -0
  90. package/dist/cli/register/sessionCommands.d.ts.map +1 -0
  91. package/dist/cli/register/sessionCommands.js +24 -0
  92. package/dist/cli/register/sessionCommands.js.map +1 -0
  93. package/dist/cli/register/sharedOptions.d.ts +11 -0
  94. package/dist/cli/register/sharedOptions.d.ts.map +1 -0
  95. package/dist/cli/register/sharedOptions.js +10 -0
  96. package/dist/cli/register/sharedOptions.js.map +1 -0
  97. package/dist/cli/register/skillCommands.d.ts.map +1 -1
  98. package/dist/cli/register/skillCommands.js +2 -1
  99. package/dist/cli/register/skillCommands.js.map +1 -1
  100. package/dist/cli/register/snapshotCommands.d.ts.map +1 -1
  101. package/dist/cli/register/snapshotCommands.js +3 -2
  102. package/dist/cli/register/snapshotCommands.js.map +1 -1
  103. package/dist/cli/register/storageCommands.d.ts.map +1 -1
  104. package/dist/cli/register/storageCommands.js +2 -1
  105. package/dist/cli/register/storageCommands.js.map +1 -1
  106. package/dist/cli/register/throttleCommands.d.ts.map +1 -1
  107. package/dist/cli/register/throttleCommands.js +4 -3
  108. package/dist/cli/register/throttleCommands.js.map +1 -1
  109. package/dist/cli/register/traceCommands.d.ts.map +1 -1
  110. package/dist/cli/register/traceCommands.js +10 -30
  111. package/dist/cli/register/traceCommands.js.map +1 -1
  112. package/dist/cli/register/watcherCommands.d.ts.map +1 -1
  113. package/dist/cli/register/watcherCommands.js +12 -24
  114. package/dist/cli/register/watcherCommands.js.map +1 -1
  115. package/dist/cli/validation.d.ts +14 -0
  116. package/dist/cli/validation.d.ts.map +1 -1
  117. package/dist/cli/validation.js +17 -6
  118. package/dist/cli/validation.js.map +1 -1
  119. package/dist/commands/auth.d.ts.map +1 -1
  120. package/dist/commands/auth.js +3 -2
  121. package/dist/commands/auth.js.map +1 -1
  122. package/dist/commands/authCookieSupport.d.ts +4 -2
  123. package/dist/commands/authCookieSupport.d.ts.map +1 -1
  124. package/dist/commands/authCookieSupport.js +0 -4
  125. package/dist/commands/authCookieSupport.js.map +1 -1
  126. package/dist/commands/authCookies.d.ts +4 -4
  127. package/dist/commands/authCookies.d.ts.map +1 -1
  128. package/dist/commands/chrome/authState.d.ts +0 -12
  129. package/dist/commands/chrome/authState.d.ts.map +1 -1
  130. package/dist/commands/chrome/authState.js +0 -14
  131. package/dist/commands/chrome/authState.js.map +1 -1
  132. package/dist/commands/chrome/browser.d.ts.map +1 -1
  133. package/dist/commands/chrome/browser.js +2 -1
  134. package/dist/commands/chrome/browser.js.map +1 -1
  135. package/dist/commands/chrome/shared.d.ts.map +1 -1
  136. package/dist/commands/chrome/shared.js +3 -2
  137. package/dist/commands/chrome/shared.js.map +1 -1
  138. package/dist/commands/chrome/targets.d.ts.map +1 -1
  139. package/dist/commands/chrome/targets.js +6 -5
  140. package/dist/commands/chrome/targets.js.map +1 -1
  141. package/dist/commands/chromeStart.d.ts +10 -0
  142. package/dist/commands/chromeStart.d.ts.map +1 -1
  143. package/dist/commands/chromeStart.js +50 -41
  144. package/dist/commands/chromeStart.js.map +1 -1
  145. package/dist/commands/code.d.ts +2 -2
  146. package/dist/commands/code.d.ts.map +1 -1
  147. package/dist/commands/codeEdit.d.ts.map +1 -1
  148. package/dist/commands/codeEdit.js +3 -2
  149. package/dist/commands/codeEdit.js.map +1 -1
  150. package/dist/commands/configInit.d.ts +1 -0
  151. package/dist/commands/configInit.d.ts.map +1 -1
  152. package/dist/commands/configInit.js +17 -14
  153. package/dist/commands/configInit.js.map +1 -1
  154. package/dist/commands/dialog.d.ts +4 -4
  155. package/dist/commands/dialog.d.ts.map +1 -1
  156. package/dist/commands/doctor.d.ts.map +1 -1
  157. package/dist/commands/doctor.js +14 -10
  158. package/dist/commands/doctor.js.map +1 -1
  159. package/dist/commands/dom/shared.js +1 -1
  160. package/dist/commands/dom/shared.js.map +1 -1
  161. package/dist/commands/domAdd.d.ts +1 -1
  162. package/dist/commands/domAdd.d.ts.map +1 -1
  163. package/dist/commands/domAdd.js +10 -54
  164. package/dist/commands/domAdd.js.map +1 -1
  165. package/dist/commands/domAddScript.d.ts.map +1 -1
  166. package/dist/commands/domAddScript.js +14 -58
  167. package/dist/commands/domAddScript.js.map +1 -1
  168. package/dist/commands/domClick.d.ts +1 -2
  169. package/dist/commands/domClick.d.ts.map +1 -1
  170. package/dist/commands/domClick.js +2 -4
  171. package/dist/commands/domClick.js.map +1 -1
  172. package/dist/commands/domDrag.d.ts +1 -2
  173. package/dist/commands/domDrag.d.ts.map +1 -1
  174. package/dist/commands/domDrag.js +3 -5
  175. package/dist/commands/domDrag.js.map +1 -1
  176. package/dist/commands/domFill.d.ts +1 -1
  177. package/dist/commands/domFill.d.ts.map +1 -1
  178. package/dist/commands/domFill.js +10 -42
  179. package/dist/commands/domFill.js.map +1 -1
  180. package/dist/commands/domFocus.d.ts +1 -1
  181. package/dist/commands/domFocus.d.ts.map +1 -1
  182. package/dist/commands/domHover.d.ts +1 -1
  183. package/dist/commands/domHover.d.ts.map +1 -1
  184. package/dist/commands/domInfo.d.ts +1 -1
  185. package/dist/commands/domInfo.d.ts.map +1 -1
  186. package/dist/commands/domKeydown.d.ts +1 -1
  187. package/dist/commands/domKeydown.d.ts.map +1 -1
  188. package/dist/commands/domModify.d.ts.map +1 -1
  189. package/dist/commands/domModify.js +6 -7
  190. package/dist/commands/domModify.js.map +1 -1
  191. package/dist/commands/domRemove.d.ts +1 -1
  192. package/dist/commands/domRemove.d.ts.map +1 -1
  193. package/dist/commands/domScroll.d.ts +1 -1
  194. package/dist/commands/domScroll.d.ts.map +1 -1
  195. package/dist/commands/domScroll.js +16 -10
  196. package/dist/commands/domScroll.js.map +1 -1
  197. package/dist/commands/domScrollTo.d.ts +1 -1
  198. package/dist/commands/domScrollTo.d.ts.map +1 -1
  199. package/dist/commands/domSetFile.d.ts +1 -1
  200. package/dist/commands/domSetFile.d.ts.map +1 -1
  201. package/dist/commands/domTree.d.ts +1 -1
  202. package/dist/commands/domTree.d.ts.map +1 -1
  203. package/dist/commands/eval.d.ts +3 -32
  204. package/dist/commands/eval.d.ts.map +1 -1
  205. package/dist/commands/eval.js +14 -33
  206. package/dist/commands/eval.js.map +1 -1
  207. package/dist/commands/evalBundle.js +2 -1
  208. package/dist/commands/evalBundle.js.map +1 -1
  209. package/dist/commands/evalEmit.d.ts +35 -0
  210. package/dist/commands/evalEmit.d.ts.map +1 -0
  211. package/dist/commands/evalEmit.js +65 -0
  212. package/dist/commands/evalEmit.js.map +1 -0
  213. package/dist/commands/evalIframe.d.ts +16 -0
  214. package/dist/commands/evalIframe.d.ts.map +1 -0
  215. package/dist/commands/evalIframe.js +37 -0
  216. package/dist/commands/evalIframe.js.map +1 -0
  217. package/dist/commands/evalShared.d.ts +52 -44
  218. package/dist/commands/evalShared.d.ts.map +1 -1
  219. package/dist/commands/evalShared.js +64 -192
  220. package/dist/commands/evalShared.js.map +1 -1
  221. package/dist/commands/evalUntil.d.ts +4 -32
  222. package/dist/commands/evalUntil.d.ts.map +1 -1
  223. package/dist/commands/evalUntil.js +9 -29
  224. package/dist/commands/evalUntil.js.map +1 -1
  225. package/dist/commands/extension/attach.d.ts.map +1 -1
  226. package/dist/commands/extension/attach.js +12 -28
  227. package/dist/commands/extension/attach.js.map +1 -1
  228. package/dist/commands/extension/doctor.d.ts.map +1 -1
  229. package/dist/commands/extension/doctor.js +1 -1
  230. package/dist/commands/extension/doctor.js.map +1 -1
  231. package/dist/commands/extension/failures.d.ts +62 -0
  232. package/dist/commands/extension/failures.d.ts.map +1 -0
  233. package/dist/commands/extension/failures.js +70 -0
  234. package/dist/commands/extension/failures.js.map +1 -0
  235. package/dist/commands/extension/info.d.ts.map +1 -1
  236. package/dist/commands/extension/info.js +4 -14
  237. package/dist/commands/extension/info.js.map +1 -1
  238. package/dist/commands/extension/install.d.ts.map +1 -1
  239. package/dist/commands/extension/install.js +12 -22
  240. package/dist/commands/extension/install.js.map +1 -1
  241. package/dist/commands/extension/nativeHost.d.ts +22 -0
  242. package/dist/commands/extension/nativeHost.d.ts.map +1 -1
  243. package/dist/commands/extension/nativeHost.js +38 -7
  244. package/dist/commands/extension/nativeHost.js.map +1 -1
  245. package/dist/commands/extension/remove.d.ts.map +1 -1
  246. package/dist/commands/extension/remove.js +5 -15
  247. package/dist/commands/extension/remove.js.map +1 -1
  248. package/dist/commands/extension/resolveExtensionWatcher.d.ts.map +1 -1
  249. package/dist/commands/extension/resolveExtensionWatcher.js +3 -2
  250. package/dist/commands/extension/resolveExtensionWatcher.js.map +1 -1
  251. package/dist/commands/extension/select.js +11 -23
  252. package/dist/commands/extension/select.js.map +1 -1
  253. package/dist/commands/extension/setup.d.ts.map +1 -1
  254. package/dist/commands/extension/setup.js +8 -30
  255. package/dist/commands/extension/setup.js.map +1 -1
  256. package/dist/commands/extension/show.d.ts.map +1 -1
  257. package/dist/commands/extension/show.js +10 -17
  258. package/dist/commands/extension/show.js.map +1 -1
  259. package/dist/commands/extension/status.d.ts.map +1 -1
  260. package/dist/commands/extension/status.js +5 -14
  261. package/dist/commands/extension/status.js.map +1 -1
  262. package/dist/commands/extension/tabAttach.d.ts.map +1 -1
  263. package/dist/commands/extension/tabAttach.js +2 -2
  264. package/dist/commands/extension/tabAttach.js.map +1 -1
  265. package/dist/commands/extension/tabSelection.d.ts.map +1 -1
  266. package/dist/commands/extension/tabSelection.js +1 -1
  267. package/dist/commands/extension/tabSelection.js.map +1 -1
  268. package/dist/commands/extension/tabWatcher.d.ts +7 -1
  269. package/dist/commands/extension/tabWatcher.d.ts.map +1 -1
  270. package/dist/commands/extension/tabWatcher.js +17 -21
  271. package/dist/commands/extension/tabWatcher.js.map +1 -1
  272. package/dist/commands/extension/tabs.d.ts.map +1 -1
  273. package/dist/commands/extension/tabs.js +6 -31
  274. package/dist/commands/extension/tabs.js.map +1 -1
  275. package/dist/commands/extension/targetSelection.d.ts +10 -25
  276. package/dist/commands/extension/targetSelection.d.ts.map +1 -1
  277. package/dist/commands/extension/targetSelection.js +2 -2
  278. package/dist/commands/extension/targetSelection.js.map +1 -1
  279. package/dist/commands/extension/targets.js +2 -11
  280. package/dist/commands/extension/targets.js.map +1 -1
  281. package/dist/commands/iframeHelper.d.ts +13 -0
  282. package/dist/commands/iframeHelper.d.ts.map +1 -1
  283. package/dist/commands/iframeHelper.js +7 -1
  284. package/dist/commands/iframeHelper.js.map +1 -1
  285. package/dist/commands/inputSource.d.ts +57 -0
  286. package/dist/commands/inputSource.d.ts.map +1 -0
  287. package/dist/commands/inputSource.js +75 -0
  288. package/dist/commands/inputSource.js.map +1 -0
  289. package/dist/commands/list.d.ts.map +1 -1
  290. package/dist/commands/list.js +14 -6
  291. package/dist/commands/list.js.map +1 -1
  292. package/dist/commands/logs.d.ts +3 -3
  293. package/dist/commands/logs.d.ts.map +1 -1
  294. package/dist/commands/net.d.ts +1 -1
  295. package/dist/commands/net.d.ts.map +1 -1
  296. package/dist/commands/netClear.d.ts +1 -1
  297. package/dist/commands/netClear.d.ts.map +1 -1
  298. package/dist/commands/netExport.d.ts.map +1 -1
  299. package/dist/commands/netExport.js +9 -31
  300. package/dist/commands/netExport.js.map +1 -1
  301. package/dist/commands/netInspect.d.ts.map +1 -1
  302. package/dist/commands/netInspect.js +2 -1
  303. package/dist/commands/netInspect.js.map +1 -1
  304. package/dist/commands/netMock.d.ts +4 -4
  305. package/dist/commands/netMock.d.ts.map +1 -1
  306. package/dist/commands/netMock.js +2 -2
  307. package/dist/commands/netMock.js.map +1 -1
  308. package/dist/commands/netRequestClient.d.ts +2 -2
  309. package/dist/commands/netRequestClient.d.ts.map +1 -1
  310. package/dist/commands/netRequestClient.js.map +1 -1
  311. package/dist/commands/netShared.d.ts +22 -0
  312. package/dist/commands/netShared.d.ts.map +1 -1
  313. package/dist/commands/netShared.js +43 -16
  314. package/dist/commands/netShared.js.map +1 -1
  315. package/dist/commands/netSse.d.ts +1 -1
  316. package/dist/commands/netSse.d.ts.map +1 -1
  317. package/dist/commands/netSummary.js +6 -25
  318. package/dist/commands/netSummary.js.map +1 -1
  319. package/dist/commands/netWebSocket.d.ts +2 -2
  320. package/dist/commands/netWebSocket.d.ts.map +1 -1
  321. package/dist/commands/page.d.ts +8 -0
  322. package/dist/commands/page.d.ts.map +1 -1
  323. package/dist/commands/page.js +83 -83
  324. package/dist/commands/page.js.map +1 -1
  325. package/dist/commands/pageEmulation.d.ts +3 -3
  326. package/dist/commands/pageEmulation.d.ts.map +1 -1
  327. package/dist/commands/pageEmulation.js +17 -12
  328. package/dist/commands/pageEmulation.js.map +1 -1
  329. package/dist/commands/pluginConfig.d.ts.map +1 -1
  330. package/dist/commands/pluginConfig.js +21 -20
  331. package/dist/commands/pluginConfig.js.map +1 -1
  332. package/dist/commands/record.d.ts +3 -3
  333. package/dist/commands/record.d.ts.map +1 -1
  334. package/dist/commands/record.js +1 -1
  335. package/dist/commands/record.js.map +1 -1
  336. package/dist/commands/reload.d.ts +1 -1
  337. package/dist/commands/reload.d.ts.map +1 -1
  338. package/dist/commands/resolveTestId.d.ts.map +1 -1
  339. package/dist/commands/resolveTestId.js +2 -3
  340. package/dist/commands/resolveTestId.js.map +1 -1
  341. package/dist/commands/screenshot.d.ts +1 -1
  342. package/dist/commands/screenshot.d.ts.map +1 -1
  343. package/dist/commands/snapshot.d.ts +1 -1
  344. package/dist/commands/snapshot.d.ts.map +1 -1
  345. package/dist/commands/start.d.ts.map +1 -1
  346. package/dist/commands/start.js +6 -28
  347. package/dist/commands/start.js.map +1 -1
  348. package/dist/commands/startShared.d.ts.map +1 -1
  349. package/dist/commands/startShared.js +2 -1
  350. package/dist/commands/startShared.js.map +1 -1
  351. package/dist/commands/throttle.d.ts +3 -3
  352. package/dist/commands/throttle.d.ts.map +1 -1
  353. package/dist/commands/throttle.js +2 -3
  354. package/dist/commands/throttle.js.map +1 -1
  355. package/dist/commands/trace.d.ts.map +1 -1
  356. package/dist/commands/trace.js +2 -2
  357. package/dist/commands/trace.js.map +1 -1
  358. package/dist/commands/watcherNativeHost.d.ts.map +1 -1
  359. package/dist/commands/watcherNativeHost.js +4 -1
  360. package/dist/commands/watcherNativeHost.js.map +1 -1
  361. package/dist/commands/watcherPrune.d.ts.map +1 -1
  362. package/dist/commands/watcherPrune.js +3 -3
  363. package/dist/commands/watcherPrune.js.map +1 -1
  364. package/dist/commands/watcherSession.d.ts.map +1 -1
  365. package/dist/commands/watcherSession.js +2 -1
  366. package/dist/commands/watcherSession.js.map +1 -1
  367. package/dist/commands/watcherStatus.d.ts +1 -1
  368. package/dist/commands/watcherStatus.d.ts.map +1 -1
  369. package/dist/commands/watcherStatus.js +5 -0
  370. package/dist/commands/watcherStatus.js.map +1 -1
  371. package/dist/commands/watcherStop.d.ts.map +1 -1
  372. package/dist/commands/watcherStop.js +2 -2
  373. package/dist/commands/watcherStop.js.map +1 -1
  374. package/dist/config/configContext.d.ts +27 -0
  375. package/dist/config/configContext.d.ts.map +1 -0
  376. package/dist/config/configContext.js +57 -0
  377. package/dist/config/configContext.js.map +1 -0
  378. package/dist/config/loadConfig.d.ts.map +1 -1
  379. package/dist/config/loadConfig.js +3 -2
  380. package/dist/config/loadConfig.js.map +1 -1
  381. package/dist/eval/evalClient.d.ts.map +1 -1
  382. package/dist/eval/evalClient.js +2 -1
  383. package/dist/eval/evalClient.js.map +1 -1
  384. package/dist/extension/dist/background/service-worker.js +465 -448
  385. package/dist/extension/dist/background/service-worker.js.map +4 -4
  386. package/dist/extension/dist/popup/popup.js +279 -234
  387. package/dist/extension/dist/popup/popup.js.map +4 -4
  388. package/dist/extension/manifest.json +1 -1
  389. package/dist/internal.d.ts +22 -0
  390. package/dist/internal.d.ts.map +1 -0
  391. package/dist/internal.js +22 -0
  392. package/dist/internal.js.map +1 -0
  393. package/dist/output/io.d.ts +15 -9
  394. package/dist/output/io.d.ts.map +1 -1
  395. package/dist/output/io.js +21 -2
  396. package/dist/output/io.js.map +1 -1
  397. package/dist/registry.d.ts +1 -4
  398. package/dist/registry.d.ts.map +1 -1
  399. package/dist/registry.js +4 -25
  400. package/dist/registry.js.map +1 -1
  401. package/dist/runtime-code/format.d.ts.map +1 -1
  402. package/dist/runtime-code/format.js +2 -1
  403. package/dist/runtime-code/format.js.map +1 -1
  404. package/dist/session/runSession.d.ts +15 -0
  405. package/dist/session/runSession.d.ts.map +1 -0
  406. package/dist/session/runSession.js +184 -0
  407. package/dist/session/runSession.js.map +1 -0
  408. package/dist/session/sessionArgv.d.ts +42 -0
  409. package/dist/session/sessionArgv.d.ts.map +1 -0
  410. package/dist/session/sessionArgv.js +224 -0
  411. package/dist/session/sessionArgv.js.map +1 -0
  412. package/dist/session/sessionDispatch.d.ts +21 -0
  413. package/dist/session/sessionDispatch.d.ts.map +1 -0
  414. package/dist/session/sessionDispatch.js +137 -0
  415. package/dist/session/sessionDispatch.js.map +1 -0
  416. package/dist/session/stdioCapture.d.ts +33 -0
  417. package/dist/session/stdioCapture.d.ts.map +1 -0
  418. package/dist/session/stdioCapture.js +56 -0
  419. package/dist/session/stdioCapture.js.map +1 -0
  420. package/dist/skill/argus/SKILL.md +29 -0
  421. package/dist/skill/argus/reference/SESSION.md +153 -0
  422. package/dist/watchers/queryParams.d.ts +11 -9
  423. package/dist/watchers/queryParams.d.ts.map +1 -1
  424. package/dist/watchers/queryParams.js +63 -86
  425. package/dist/watchers/queryParams.js.map +1 -1
  426. package/dist/watchers/requestWatcher.d.ts +7 -25
  427. package/dist/watchers/requestWatcher.d.ts.map +1 -1
  428. package/dist/watchers/requestWatcher.js +9 -6
  429. package/dist/watchers/requestWatcher.js.map +1 -1
  430. package/dist/watchers/resolveWatcher.d.ts.map +1 -1
  431. package/dist/watchers/resolveWatcher.js +9 -2
  432. package/dist/watchers/resolveWatcher.js.map +1 -1
  433. package/package.json +9 -5
  434. package/dist/time.d.ts +0 -3
  435. package/dist/time.d.ts.map +0 -1
  436. package/dist/time.js +0 -19
  437. package/dist/time.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ /** Text a single request wrote to each stream. */
2
+ export type CapturedStdio = {
3
+ stdout: string[];
4
+ stderr: string[];
5
+ };
6
+ /** Handle returned by {@link installStdioCapture}. */
7
+ export type StdioCapture = {
8
+ /**
9
+ * Run `body` with its stdout/stderr redirected into `sink`.
10
+ *
11
+ * The sink travels with the async context, not with wall-clock time: a command that
12
+ * outlives its watchdog keeps writing into its own (already abandoned) sink instead of
13
+ * corrupting whichever request is running by then.
14
+ */
15
+ run: <T>(sink: CapturedStdio, body: () => Promise<T>) => Promise<T>;
16
+ /** Write straight to the real stdout, past the capture. Used for the JSONL responses themselves. */
17
+ writeStdout: (text: string) => void;
18
+ /** Restore the original stream writers. */
19
+ restore: () => void;
20
+ };
21
+ /**
22
+ * Redirect every stdout write made inside a request into that request's own buffer.
23
+ *
24
+ * The session's contract is that stdout carries nothing but its JSONL responses, and the
25
+ * ~200 commands it dispatches all reach stdout through their own `Output` closures — plus a
26
+ * handful of direct `process.stdout.write` calls. Patching the stream is what makes that
27
+ * contract hold for all of them at once, including plugin commands this file has never seen.
28
+ *
29
+ * stderr is captured *and* mirrored: the response carries it so a host can report a failure
30
+ * without a second channel, and a human tailing the session's stderr still sees it live.
31
+ */
32
+ export declare const installStdioCapture: () => StdioCapture;
33
+ //# sourceMappingURL=stdioCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdioCapture.d.ts","sourceRoot":"","sources":["../../src/session/stdioCapture.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,oGAAoG;IACpG,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAOD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAkBtC,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ /**
3
+ * Redirect every stdout write made inside a request into that request's own buffer.
4
+ *
5
+ * The session's contract is that stdout carries nothing but its JSONL responses, and the
6
+ * ~200 commands it dispatches all reach stdout through their own `Output` closures — plus a
7
+ * handful of direct `process.stdout.write` calls. Patching the stream is what makes that
8
+ * contract hold for all of them at once, including plugin commands this file has never seen.
9
+ *
10
+ * stderr is captured *and* mirrored: the response carries it so a host can report a failure
11
+ * without a second channel, and a human tailing the session's stderr still sees it live.
12
+ */
13
+ export const installStdioCapture = () => {
14
+ const storage = new AsyncLocalStorage();
15
+ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
16
+ const originalStderrWrite = process.stderr.write.bind(process.stderr);
17
+ process.stdout.write = createCapturingWrite(storage, originalStdoutWrite, (sink) => sink.stdout, false);
18
+ process.stderr.write = createCapturingWrite(storage, originalStderrWrite, (sink) => sink.stderr, true);
19
+ return {
20
+ run: (sink, body) => storage.run(sink, body),
21
+ writeStdout: (text) => {
22
+ originalStdoutWrite(text);
23
+ },
24
+ restore: () => {
25
+ process.stdout.write = originalStdoutWrite;
26
+ process.stderr.write = originalStderrWrite;
27
+ },
28
+ };
29
+ };
30
+ const createCapturingWrite = (storage, original, select, mirror) => {
31
+ const forward = original;
32
+ return ((chunk, encoding, callback) => {
33
+ const sink = storage.getStore();
34
+ if (!sink) {
35
+ return forward(chunk, encoding, callback);
36
+ }
37
+ select(sink).push(decodeChunk(chunk, encoding));
38
+ if (mirror) {
39
+ forward(chunk, encoding);
40
+ }
41
+ const done = typeof encoding === 'function' ? encoding : callback;
42
+ if (typeof done === 'function') {
43
+ ;
44
+ done();
45
+ }
46
+ return true;
47
+ });
48
+ };
49
+ const decodeChunk = (chunk, encoding) => {
50
+ if (typeof chunk === 'string') {
51
+ return chunk;
52
+ }
53
+ const bufferEncoding = typeof encoding === 'string' ? encoding : 'utf8';
54
+ return Buffer.from(chunk).toString(bufferEncoding);
55
+ };
56
+ //# sourceMappingURL=stdioCapture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdioCapture.js","sourceRoot":"","sources":["../../src/session/stdioCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA6BpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAiB,EAAE;IACrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IACtD,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAgB,CAAA;IACpF,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAgB,CAAA;IAEpF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAEtG,OAAO;QACN,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAA;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAA;QAC3C,CAAC;KACD,CAAA;AACF,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC5B,OAAyC,EACzC,QAAqB,EACrB,MAAyC,EACzC,MAAe,EACD,EAAE;IAChB,MAAM,OAAO,GAAG,QAAsB,CAAA;IAEtC,OAAO,CAAC,CAAC,KAA0B,EAAE,QAAkB,EAAE,QAAkB,EAAW,EAAE;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC/C,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;QACjE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,CAAC;YAAC,IAAmB,EAAE,CAAA;QACxB,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC,CAAgB,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAE,QAAiB,EAAU,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACb,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAA2B,CAAC,CAAC,CAAC,MAAM,CAAA;IAC3F,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -155,6 +155,34 @@ For deeper command lists, use [INSPECT.md](./reference/INSPECT.md). For screensh
155
155
 
156
156
  ---
157
157
 
158
+ ## Session Transport (Many Commands, One Process)
159
+
160
+ Use this when a harness drives a page through many sequential steps. One-shot `argus` pays Node
161
+ startup plus watcher discovery (~100-200ms) per command; `argus session` pays it once and then
162
+ serves JSONL requests on stdin.
163
+
164
+ ```bash
165
+ argus session app
166
+ ```
167
+
168
+ ```json
169
+ {"id": 1, "cmd": "eval", "args": {"expression": "location.href"}}
170
+ {"id": 2, "cmd": "click", "args": {"selector": "button.start"}}
171
+ {"id": 3, "cmd": "quit"}
172
+ ```
173
+
174
+ Responses are one JSON line each, correlated by `id`, carrying the same payload the matching
175
+ `--json` command prints: `{"id": 1, "ok": true, "result": {…}, "durationMs": 8}`. Failures answer
176
+ `ok: false` and the session stays alive. stdout is JSONL only; human output goes to stderr.
177
+
178
+ Daemons (`start`, `chrome start`, `watcher start`), stream tails (`logs tail`, `net tail`,
179
+ `net sse`), and anything reading `--stdin` are refused — run those as their own process.
180
+
181
+ Read [SESSION.md](./reference/SESSION.md) for the full request/response schema, timeout and
182
+ watcher-loss semantics, and a host sketch.
183
+
184
+ ---
185
+
158
186
  ## CDP Quick Start
159
187
 
160
188
  Use CDP for local apps and clean repros where a temp/debuggable browser is acceptable.
@@ -226,3 +254,4 @@ Never treat whole-export row indexes as physical sheet rows: `exportRow` is only
226
254
  - [INJECT.md](./reference/INJECT.md) — Script injection on watcher attach/navigation.
227
255
  - [DIALOG.md](./reference/DIALOG.md) — Browser dialog status and handling.
228
256
  - [PLUGINS.md](./reference/PLUGINS.md) — CLI plugin loading and Google Sheets plugin.
257
+ - [SESSION.md](./reference/SESSION.md) — Long-lived JSONL session transport for automation harnesses.
@@ -0,0 +1,153 @@
1
+ # Session Transport
2
+
3
+ `argus session` serves many commands from one process over stdin/stdout. Use it when a harness
4
+ issues dozens of sequential commands against the same watcher: each one-shot `argus` invocation
5
+ pays Node startup plus watcher discovery (~100-200ms), and the session pays it once.
6
+
7
+ ```bash
8
+ argus session app
9
+ argus session app --request-timeout 30s
10
+ argus session app --reconnect
11
+ ```
12
+
13
+ The watcher id is resolved once and pinned. Every request runs the same Commander action the
14
+ one-shot CLI would run, with `--json` forced on, so payloads match `argus <cmd> --json` byte for
15
+ byte and a host can switch transports without changing how it parses results.
16
+
17
+ ---
18
+
19
+ ## Framing
20
+
21
+ stdin takes one JSON object per line; stdout answers with one JSON object per line and nothing
22
+ else. Human output goes to stderr.
23
+
24
+ The first line is written before any request is read:
25
+
26
+ ```json
27
+ { "type": "ready", "protocolVersion": 1, "argusVersion": "0.4.0", "watcher": { "id": "app", "host": "127.0.0.1", "port": 51733 } }
28
+ ```
29
+
30
+ ### Request
31
+
32
+ | Field | Type | Notes |
33
+ | --------- | ---------------- | ------------------------------------------------------------------ |
34
+ | `id` | string \| number | Optional; echoed on the response. Omit only if you match by order. |
35
+ | `cmd` | string | Command path, space-separated. Aliases work (`js`, `ext`, `wait`). |
36
+ | `args` | object | Named arguments. Mutually exclusive with `argv`. |
37
+ | `argv` | string[] | Raw CLI tokens. Mutually exclusive with `args`. |
38
+ | `timeout` | string \| number | Per-request watchdog (`"30s"`, or milliseconds). `0` disables. |
39
+
40
+ ```json
41
+ {"id": 1, "cmd": "eval", "args": {"expression": "location.href"}}
42
+ {"id": 2, "cmd": "eval-until", "args": {"expression": "window.APP_READY", "totalTimeout": "30s"}}
43
+ {"id": 3, "cmd": "click", "args": {"selector": "button.submit"}}
44
+ {"id": 4, "cmd": "drag", "argv": ["--selector", "canvas", "--pos", "320,240", "--by", "80,-30"]}
45
+ {"id": 5, "cmd": "screenshot", "args": {"out": "./shot.png"}}
46
+ {"id": 6, "cmd": "dom tree", "args": {"selector": "body", "depth": 2}}
47
+ ```
48
+
49
+ `args` keys are resolved against the command's own definition, so anything the CLI accepts is
50
+ reachable:
51
+
52
+ - **Options** match by camelCase name, long flag, or short flag: `totalTimeout`, `total-timeout`,
53
+ and `q` all work.
54
+ - **Positional arguments** match by their declared name (`key`/`value` for `storage local set`,
55
+ `role` for `locate role`) and are filled in declaration order. The leading watcher id is
56
+ injected for you.
57
+ - **An option wins over a positional of the same name.** `{"expression": "…"}` on `eval` becomes
58
+ `--expression`, the spelling the CLI already documents as equivalent to the positional.
59
+ - **Repeatable options** take an array: `{"arg": ["level=10", "mode=fast"]}`.
60
+ - **Switches** take a boolean: `{"all": true}`, `{"await": false}` (which sends `--no-await`).
61
+
62
+ ### Response
63
+
64
+ ```json
65
+ {"id": 1, "ok": true, "result": {"ok": true, "result": "https://app.example/", "type": "string", "exception": null}, "durationMs": 8}
66
+ {"id": 2, "ok": false, "error": {"message": "Total timeout exceeded (30s)", "code": "session_command_failed"}, "exitCode": 1, "durationMs": 30014}
67
+ ```
68
+
69
+ - `result` is the command's `--json` document. A command that streams newline-delimited JSON
70
+ (`eval --interval`) yields an array plus `"stream": true`; output that is not JSON at all comes
71
+ back verbatim as a string plus `"raw": true`.
72
+ - `stderr` is present when the command wrote any, on success or failure. It is also mirrored to
73
+ the session's own stderr, so a human tailing the process still sees it live.
74
+ - `durationMs` is the wall-clock time the CLI spent on the request.
75
+
76
+ ### Control requests
77
+
78
+ | `cmd` | Effect |
79
+ | ------ | ------------------------------------------------------------ |
80
+ | `ping` | Answers `{"pong": true, "watcher": "<id>"}` without any I/O. |
81
+ | `quit` | Answers, then closes the session with exit code 0. |
82
+
83
+ ---
84
+
85
+ ## Semantics
86
+
87
+ **Ordering.** Requests are served strictly in submission order. Pipelining still pays off — the
88
+ host can keep writing while a command is in flight — but responses arrive in the order the
89
+ requests did.
90
+
91
+ **Timeouts.** A request that outlives its watchdog is answered with `session_request_timeout` and
92
+ the session moves on. The abandoned command keeps its own output buffer, so nothing it writes
93
+ later can land in a later response.
94
+
95
+ **Error isolation.** A malformed line, an unknown command, or a failing command answers
96
+ `ok: false` and the session stays up. The `error.code` values specific to this transport are
97
+ `session_invalid_request`, `session_unknown_command`, `session_command_rejected`,
98
+ `session_request_timeout`, and `session_command_failed`; a watcher-side failure carries its own
99
+ code through unchanged.
100
+
101
+ **Watcher loss.** By default the session is fail-fast: after a failed request it probes the
102
+ watcher, and if the watcher is gone it writes a notice to stderr and exits `1`. Pass `--reconnect`
103
+ to keep it alive instead — every request re-resolves the id through the registry, so a watcher
104
+ restarted under the same id (even on a new port) is picked up on the next request.
105
+
106
+ **Shutdown.** `{"cmd": "quit"}` or EOF on stdin exits `0`. Requests still queued on stdin when the
107
+ session exits — after a `quit`, or after watcher loss — are not answered; fail them on the host
108
+ side when the process exits.
109
+
110
+ ---
111
+
112
+ ## Not available in a session
113
+
114
+ Commands that never return on their own, or that would read the stream the transport owns, are
115
+ refused with `session_command_rejected`:
116
+
117
+ - `start`, `chrome start`, `watcher start`, `watcher native-host` — daemons; run them as their own
118
+ process and point the session at the resulting watcher.
119
+ - `logs tail`, `net tail`, `net sse` — stream until interrupted.
120
+ - `session` — no nesting.
121
+ - Any request carrying `--stdin` or a `-` expression. Use `--file` or an inline expression.
122
+
123
+ ---
124
+
125
+ ## Host sketch
126
+
127
+ ```js
128
+ import { spawn } from 'node:child_process'
129
+ import readline from 'node:readline'
130
+
131
+ const proc = spawn('argus', ['session', 'app'], { stdio: ['pipe', 'pipe', 'inherit'] })
132
+ const lines = readline.createInterface({ input: proc.stdout })
133
+ const pending = new Map()
134
+ let nextId = 0
135
+
136
+ lines.on('line', (line) => {
137
+ const message = JSON.parse(line)
138
+ if (message.type === 'ready') return
139
+ pending.get(message.id)?.(message)
140
+ pending.delete(message.id)
141
+ })
142
+
143
+ const run = (cmd, args) =>
144
+ new Promise((resolve) => {
145
+ const id = ++nextId
146
+ pending.set(id, resolve)
147
+ proc.stdin.write(`${JSON.stringify({ id, cmd, args })}\n`)
148
+ })
149
+
150
+ await run('eval-until', { expression: 'window.APP_READY', totalTimeout: '30s' })
151
+ await run('click', { selector: 'button.start' })
152
+ proc.stdin.end()
153
+ ```
@@ -1,3 +1,6 @@
1
+ import type { MatchCase, NetQuery } from '@vforsh/argus-core';
2
+ import { normalizeMatchPatterns } from '@vforsh/argus-core';
3
+ export { normalizeMatchPatterns };
1
4
  type MatchCaseOptions = {
2
5
  ignoreCase?: boolean;
3
6
  caseSensitive?: boolean;
@@ -23,7 +26,8 @@ export declare const appendLogFilterParams: (params: URLSearchParams, options: {
23
26
  }) => {
24
27
  error?: string;
25
28
  };
26
- export declare const appendNetFilterParams: (params: URLSearchParams, options: {
29
+ /** CLI-facing shape of the network filter flags, before validation. */
30
+ export type NetFilterCliOptions = {
27
31
  grep?: string;
28
32
  host?: string[];
29
33
  method?: string[];
@@ -32,21 +36,19 @@ export declare const appendNetFilterParams: (params: URLSearchParams, options: {
32
36
  mime?: string[];
33
37
  scope?: string;
34
38
  frame?: string;
35
- party?: "first" | "third";
39
+ party?: NetQuery['party'];
36
40
  failedOnly?: boolean;
37
41
  minDurationMs?: number;
38
42
  minTransferBytes?: number;
39
- }) => void;
43
+ };
44
+ export declare const appendNetFilterParams: (params: URLSearchParams, options: NetFilterCliOptions) => {
45
+ error?: string;
46
+ };
40
47
  export declare const appendNetIgnoreParams: (params: URLSearchParams, options: {
41
48
  ignoreHost?: string[];
42
49
  ignorePattern?: string[];
43
50
  }) => {
44
51
  error?: string;
45
52
  };
46
- export declare const normalizeMatchPatterns: (match?: string[]) => {
47
- patterns: string[];
48
- error?: string;
49
- };
50
- export declare const resolveMatchCase: (options: MatchCaseOptions) => "sensitive" | "insensitive" | undefined;
51
- export {};
53
+ export declare const resolveMatchCase: (options: MatchCaseOptions) => MatchCase | undefined;
52
54
  //# sourceMappingURL=queryParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAGA,KAAK,gBAAgB,GAAG;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAalI,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,eAAe,EAAE,QAAQ,MAAM,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAW1F,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW9F,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,KACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAwBlB,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB,KACC,IAqCF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAkB7I,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,EAAE,KAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW7F,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,gBAAgB,KAAG,WAAW,GAAG,aAAa,GAAG,SAQ1F,CAAA"}
1
+ {"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAc,sBAAsB,EAAwD,MAAM,oBAAoB,CAAA;AAG7H,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,KAAK,gBAAgB,GAAG;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAkBD,eAAO,MAAM,sBAAsB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAMlI,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,eAAe,EAAE,QAAQ,MAAM,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAQ1F,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW9F,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,KACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAclB,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS,mBAAmB,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAsB7G,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAa7I,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,gBAAgB,KAAG,SAAS,GAAG,SAQxE,CAAA"}
@@ -1,26 +1,34 @@
1
- import { normalizeQueryValue, parseNumber } from '../cli/parse.js';
2
- import { parseDurationMs } from '../time.js';
3
- export const appendAfterLimitParams = (params, options) => {
4
- if (options.after?.trim()) {
5
- params.set('after', options.after.trim());
6
- }
7
- if (options.sinceEpoch?.trim()) {
8
- params.set('sinceEpoch', options.sinceEpoch.trim());
9
- }
10
- const limit = parseNumber(options.limit);
11
- if (limit != null) {
12
- params.set('limit', String(limit));
1
+ import { NET_SCOPES, normalizeMatchPatterns, normalizeQueryValue, parseDurationMs, toSearchParams } from '@vforsh/argus-core';
2
+ import { parseNumber } from '../cli/parse.js';
3
+ export { normalizeMatchPatterns };
4
+ /**
5
+ * Serialize a typed query fragment into an existing `URLSearchParams`.
6
+ *
7
+ * Callers layer route-specific params (`timeoutMs`, `part`, …) around these fragments, so each
8
+ * key is replaced rather than appended to — repeated values within one fragment still stack.
9
+ */
10
+ const applyQuery = (params, query) => {
11
+ const serialized = toSearchParams(query);
12
+ for (const key of new Set(serialized.keys())) {
13
+ params.delete(key);
14
+ for (const value of serialized.getAll(key)) {
15
+ params.append(key, value);
16
+ }
13
17
  }
14
18
  };
19
+ export const appendAfterLimitParams = (params, options) => {
20
+ applyQuery(params, {
21
+ after: options.after,
22
+ sinceEpoch: options.sinceEpoch,
23
+ limit: parseNumber(options.limit),
24
+ });
25
+ };
15
26
  export const appendSinceParam = (params, since) => {
16
27
  const resolved = resolveSinceTimestamp(since);
17
28
  if (resolved.error) {
18
29
  return resolved;
19
30
  }
20
- if (resolved.sinceTs == null) {
21
- return {};
22
- }
23
- params.set('sinceTs', String(resolved.sinceTs));
31
+ applyQuery(params, { sinceTs: resolved.sinceTs ?? undefined });
24
32
  return {};
25
33
  };
26
34
  export const resolveSinceTimestamp = (since) => {
@@ -34,84 +42,51 @@ export const resolveSinceTimestamp = (since) => {
34
42
  return { sinceTs: Date.now() - duration };
35
43
  };
36
44
  export const appendLogFilterParams = (params, options) => {
37
- if (options.levels) {
38
- params.set('levels', options.levels);
39
- }
40
45
  const normalizedMatch = normalizeMatchPatterns(options.match);
41
46
  if (normalizedMatch.error) {
42
- return normalizedMatch;
43
- }
44
- for (const pattern of normalizedMatch.patterns) {
45
- params.append('match', pattern);
46
- }
47
- const matchCase = resolveMatchCase(options);
48
- if (matchCase) {
49
- params.set('matchCase', matchCase);
50
- }
51
- const source = normalizeQueryValue(options.source);
52
- if (source) {
53
- params.set('source', source);
54
- }
47
+ return { error: 'Invalid --match value: empty pattern.' };
48
+ }
49
+ applyQuery(params, {
50
+ levels: options.levels,
51
+ match: normalizedMatch.patterns,
52
+ matchCase: resolveMatchCase(options),
53
+ source: options.source,
54
+ });
55
55
  return {};
56
56
  };
57
57
  export const appendNetFilterParams = (params, options) => {
58
- const grep = normalizeQueryValue(options.grep);
59
- if (grep) {
60
- params.set('grep', grep);
61
- }
62
- appendRepeatedParams(params, 'host', options.host);
63
- appendRepeatedParams(params, 'method', options.method);
64
- appendRepeatedParams(params, 'status', options.status);
65
- appendRepeatedParams(params, 'resourceType', options.resourceType);
66
- appendRepeatedParams(params, 'mime', options.mime);
67
- const scope = normalizeQueryValue(options.scope);
68
- if (scope) {
69
- params.set('scope', scope);
70
- }
71
- const frame = normalizeQueryValue(options.frame);
72
- if (frame) {
73
- params.set('frame', frame);
74
- }
75
- if (options.party) {
76
- params.set('party', options.party);
77
- }
78
- if (options.failedOnly) {
79
- params.set('failedOnly', '1');
80
- }
81
- if (options.minDurationMs != null) {
82
- params.set('minDurationMs', String(options.minDurationMs));
83
- }
84
- if (options.minTransferBytes != null) {
85
- params.set('minTransferBytes', String(options.minTransferBytes));
86
- }
58
+ const scope = resolveNetScope(options.scope);
59
+ if (scope.error) {
60
+ return scope;
61
+ }
62
+ applyQuery(params, {
63
+ grep: options.grep,
64
+ host: options.host,
65
+ method: options.method,
66
+ status: options.status,
67
+ resourceType: options.resourceType,
68
+ mime: options.mime,
69
+ scope: scope.value,
70
+ frame: options.frame,
71
+ party: options.party,
72
+ failedOnly: options.failedOnly,
73
+ minDurationMs: options.minDurationMs,
74
+ minTransferBytes: options.minTransferBytes,
75
+ });
76
+ return {};
87
77
  };
88
78
  export const appendNetIgnoreParams = (params, options) => {
89
79
  const hosts = normalizeRepeatedValues(options.ignoreHost);
90
80
  if (hosts.error) {
91
81
  return hosts;
92
82
  }
93
- for (const value of hosts.values) {
94
- params.append('ignoreHost', value);
95
- }
96
83
  const patterns = normalizeRepeatedValues(options.ignorePattern);
97
84
  if (patterns.error) {
98
85
  return patterns;
99
86
  }
100
- for (const value of patterns.values) {
101
- params.append('ignorePattern', value);
102
- }
87
+ applyQuery(params, { ignoreHost: hosts.values, ignorePattern: patterns.values });
103
88
  return {};
104
89
  };
105
- export const normalizeMatchPatterns = (match) => {
106
- if (!match || match.length === 0) {
107
- return { patterns: [] };
108
- }
109
- const patterns = match.map((value) => value.trim());
110
- if (patterns.some((value) => value.length === 0)) {
111
- return { patterns: [], error: 'Invalid --match value: empty pattern.' };
112
- }
113
- return { patterns };
114
- };
115
90
  export const resolveMatchCase = (options) => {
116
91
  if (options.caseSensitive) {
117
92
  return 'sensitive';
@@ -121,6 +96,17 @@ export const resolveMatchCase = (options) => {
121
96
  }
122
97
  return undefined;
123
98
  };
99
+ /** Reject an unknown `--scope` here rather than round-tripping it to the watcher for a 400. */
100
+ const resolveNetScope = (value) => {
101
+ const normalized = normalizeQueryValue(value);
102
+ if (!normalized) {
103
+ return {};
104
+ }
105
+ if (!NET_SCOPES.includes(normalized)) {
106
+ return { error: `Invalid --scope value: ${value}. Expected one of: ${NET_SCOPES.join(', ')}.` };
107
+ }
108
+ return { value: normalized };
109
+ };
124
110
  const normalizeRepeatedValues = (values) => {
125
111
  if (!values || values.length === 0) {
126
112
  return { values: [] };
@@ -131,13 +117,4 @@ const normalizeRepeatedValues = (values) => {
131
117
  }
132
118
  return { values: normalized };
133
119
  };
134
- const appendRepeatedParams = (params, key, values) => {
135
- const normalized = normalizeRepeatedValues(values);
136
- if (normalized.error) {
137
- return;
138
- }
139
- for (const value of normalized.values) {
140
- params.append(key, value);
141
- }
142
- };
143
120
  //# sourceMappingURL=queryParams.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,15 @@
1
+ import type { ArgusWatcherRequestError, ArgusWatcherRequestInput, ArgusWatcherRequestResult, ArgusWatcherRequestSuccess } from '@vforsh/argus-plugin-api';
1
2
  import type { ErrorResponse, WatcherRecord } from '@vforsh/argus-core';
3
+ import { buildWatcherUrl, formatWatcherTransportError } from '@vforsh/argus-core';
2
4
  import type { Output } from '../output/io.js';
3
- import type { HttpOptions } from '../httpClient.js';
4
5
  /** Input for a one-shot watcher request. */
5
- export type WatcherRequestInput = {
6
- id?: string;
7
- path: string;
8
- query?: URLSearchParams;
9
- method?: HttpOptions['method'];
10
- body?: unknown;
11
- timeoutMs?: number;
12
- returnErrorResponse?: boolean;
13
- };
6
+ export type WatcherRequestInput = ArgusWatcherRequestInput;
14
7
  /** Successful watcher request. */
15
- export type WatcherRequestSuccess<T> = {
16
- ok: true;
17
- watcher: WatcherRecord;
18
- data: T;
19
- };
8
+ export type WatcherRequestSuccess<T> = ArgusWatcherRequestSuccess<T>;
20
9
  /** Failed watcher request (resolve failure or transport error). */
21
- export type WatcherRequestError = {
22
- ok: false;
23
- watcher?: WatcherRecord;
24
- exitCode: number;
25
- message: string;
26
- candidates?: WatcherRecord[];
27
- };
28
- export type WatcherRequestResult<T> = WatcherRequestSuccess<T> | WatcherRequestError;
29
- export declare const buildWatcherUrl: (watcher: Pick<WatcherRecord, "host" | "port">, path: string, query?: URLSearchParams) => string;
30
- export declare const formatWatcherTransportError: (watcher: Pick<WatcherRecord, "id">, error: unknown) => string;
10
+ export type WatcherRequestError = ArgusWatcherRequestError;
11
+ export type WatcherRequestResult<T> = ArgusWatcherRequestResult<T>;
12
+ export { buildWatcherUrl, formatWatcherTransportError };
31
13
  export declare function fetchWatcherJson<T>(watcher: Pick<WatcherRecord, 'host' | 'port'>, input: Omit<WatcherRequestInput, 'id'>): Promise<T>;
32
14
  /**
33
15
  * Resolve a watcher, build a URL, and fetch JSON in one call.
@@ -1 +1 @@
1
- {"version":3,"file":"requestWatcher.d.ts","sourceRoot":"","sources":["../../src/watchers/requestWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAUnD,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,kCAAkC;AAClC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACtC,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,aAAa,CAAA;IACtB,IAAI,EAAE,CAAC,CAAA;CACP,CAAA;AAED,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAA;AAEpF,eAAO,MAAM,eAAe,GAAI,SAAS,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,eAAe,KAAG,MAGtH,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,SAAS,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,OAAO,OAAO,KAAG,MAChC,CAAA;AAEjE,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3I;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAwBxG;AAMD,+GAA+G;AAC/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAAC,CAO7H;AAMD,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CASnF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,EAChE,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CAoBrD"}
1
+ {"version":3,"file":"requestWatcher.d.ts","sourceRoot":"","sources":["../../src/watchers/requestWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAa,MAAM,oBAAoB,CAAA;AACjF,OAAO,EACN,eAAe,EAEf,2BAA2B,EAG3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAa7C,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AAE1D,kCAAkC;AAClC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAA;AAEpE,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AAE1D,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAA;AAIlE,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,CAAA;AAEvD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3I;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CA8BxG;AAMD,+GAA+G;AAC/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAAC,CAO7H;AAMD,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CASnF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,EAChE,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CAoBrD"}