@vforsh/argus-watcher 0.3.0 → 0.4.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 (489) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/artifacts.d.ts +9 -5
  3. package/dist/artifacts.d.ts.map +1 -1
  4. package/dist/artifacts.js +22 -6
  5. package/dist/artifacts.js.map +1 -1
  6. package/dist/buffer/LogBuffer.d.ts +14 -10
  7. package/dist/buffer/LogBuffer.d.ts.map +1 -1
  8. package/dist/buffer/LogBuffer.js +15 -40
  9. package/dist/buffer/LogBuffer.js.map +1 -1
  10. package/dist/buffer/NetBuffer.d.ts +0 -6
  11. package/dist/buffer/NetBuffer.d.ts.map +1 -1
  12. package/dist/buffer/NetBuffer.js +0 -12
  13. package/dist/buffer/NetBuffer.js.map +1 -1
  14. package/dist/cdp/accessibility.d.ts.map +1 -1
  15. package/dist/cdp/accessibility.js +4 -4
  16. package/dist/cdp/accessibility.js.map +1 -1
  17. package/dist/cdp/authCookieShapes.d.ts +26 -0
  18. package/dist/cdp/authCookieShapes.d.ts.map +1 -0
  19. package/dist/cdp/authCookieShapes.js +41 -0
  20. package/dist/cdp/authCookieShapes.js.map +1 -0
  21. package/dist/cdp/{auth.d.ts → authCookies.d.ts} +11 -15
  22. package/dist/cdp/authCookies.d.ts.map +1 -0
  23. package/dist/cdp/authCookies.js +186 -0
  24. package/dist/cdp/authCookies.js.map +1 -0
  25. package/dist/cdp/authPageState.d.ts +28 -0
  26. package/dist/cdp/authPageState.d.ts.map +1 -0
  27. package/dist/cdp/authPageState.js +62 -0
  28. package/dist/cdp/authPageState.js.map +1 -0
  29. package/dist/cdp/authSnapshot.d.ts +16 -0
  30. package/dist/cdp/authSnapshot.d.ts.map +1 -0
  31. package/dist/cdp/authSnapshot.js +47 -0
  32. package/dist/cdp/authSnapshot.js.map +1 -0
  33. package/dist/cdp/browserCookies.d.ts.map +1 -1
  34. package/dist/cdp/browserCookies.js +18 -111
  35. package/dist/cdp/browserCookies.js.map +1 -1
  36. package/dist/cdp/cdpValues.d.ts +12 -0
  37. package/dist/cdp/cdpValues.d.ts.map +1 -0
  38. package/dist/cdp/cdpValues.js +18 -0
  39. package/dist/cdp/cdpValues.js.map +1 -0
  40. package/dist/cdp/connection.d.ts +42 -6
  41. package/dist/cdp/connection.d.ts.map +1 -1
  42. package/dist/cdp/connection.js +57 -5
  43. package/dist/cdp/connection.js.map +1 -1
  44. package/dist/cdp/dom/info.d.ts.map +1 -1
  45. package/dist/cdp/dom/info.js +3 -3
  46. package/dist/cdp/dom/info.js.map +1 -1
  47. package/dist/cdp/dom/mutate.d.ts +109 -0
  48. package/dist/cdp/dom/mutate.d.ts.map +1 -0
  49. package/dist/cdp/dom/mutate.js +174 -0
  50. package/dist/cdp/dom/mutate.js.map +1 -0
  51. package/dist/cdp/dom/selector.d.ts +1 -1
  52. package/dist/cdp/dom/selector.d.ts.map +1 -1
  53. package/dist/cdp/dom/selector.js +10 -10
  54. package/dist/cdp/dom/selector.js.map +1 -1
  55. package/dist/cdp/dom/tree.js +2 -2
  56. package/dist/cdp/dom/tree.js.map +1 -1
  57. package/dist/cdp/dom.d.ts +2 -10
  58. package/dist/cdp/dom.d.ts.map +1 -1
  59. package/dist/cdp/dom.js +1 -5
  60. package/dist/cdp/dom.js.map +1 -1
  61. package/dist/cdp/editor.d.ts +36 -0
  62. package/dist/cdp/editor.d.ts.map +1 -1
  63. package/dist/cdp/editor.js +32 -5
  64. package/dist/cdp/editor.js.map +1 -1
  65. package/dist/cdp/eval.d.ts.map +1 -1
  66. package/dist/cdp/eval.js +18 -56
  67. package/dist/cdp/eval.js.map +1 -1
  68. package/dist/cdp/ffmpeg.d.ts +37 -0
  69. package/dist/cdp/ffmpeg.d.ts.map +1 -0
  70. package/dist/cdp/ffmpeg.js +98 -0
  71. package/dist/cdp/ffmpeg.js.map +1 -0
  72. package/dist/cdp/ignoreList.d.ts.map +1 -1
  73. package/dist/cdp/ignoreList.js +2 -1
  74. package/dist/cdp/ignoreList.js.map +1 -1
  75. package/dist/cdp/keyboard.d.ts.map +1 -1
  76. package/dist/cdp/keyboard.js +2 -3
  77. package/dist/cdp/keyboard.js.map +1 -1
  78. package/dist/cdp/locate.js +37 -2
  79. package/dist/cdp/locate.js.map +1 -1
  80. package/dist/cdp/mouse.d.ts.map +1 -1
  81. package/dist/cdp/mouse.js +15 -50
  82. package/dist/cdp/mouse.js.map +1 -1
  83. package/dist/cdp/networkBody.d.ts.map +1 -1
  84. package/dist/cdp/networkBody.js +8 -11
  85. package/dist/cdp/networkBody.js.map +1 -1
  86. package/dist/cdp/networkCapture.d.ts.map +1 -1
  87. package/dist/cdp/networkCapture.js +9 -18
  88. package/dist/cdp/networkCapture.js.map +1 -1
  89. package/dist/cdp/networkRealtimeCapture.d.ts.map +1 -1
  90. package/dist/cdp/networkRealtimeCapture.js +8 -17
  91. package/dist/cdp/networkRealtimeCapture.js.map +1 -1
  92. package/dist/cdp/pageIndicator.d.ts.map +1 -1
  93. package/dist/cdp/pageIndicator.js +4 -27
  94. package/dist/cdp/pageIndicator.js.map +1 -1
  95. package/dist/cdp/pageState.d.ts +66 -0
  96. package/dist/cdp/pageState.d.ts.map +1 -0
  97. package/dist/cdp/pageState.js +75 -0
  98. package/dist/cdp/pageState.js.map +1 -0
  99. package/dist/cdp/protocol.d.ts +630 -0
  100. package/dist/cdp/protocol.d.ts.map +1 -0
  101. package/dist/cdp/protocol.js +15 -0
  102. package/dist/cdp/protocol.js.map +1 -0
  103. package/dist/cdp/recording.d.ts.map +1 -1
  104. package/dist/cdp/recording.js +13 -127
  105. package/dist/cdp/recording.js.map +1 -1
  106. package/dist/cdp/redaction.d.ts +4 -1
  107. package/dist/cdp/redaction.d.ts.map +1 -1
  108. package/dist/cdp/redaction.js +4 -10
  109. package/dist/cdp/redaction.js.map +1 -1
  110. package/dist/cdp/remoteObject.d.ts +9 -3
  111. package/dist/cdp/remoteObject.d.ts.map +1 -1
  112. package/dist/cdp/remoteObject.js.map +1 -1
  113. package/dist/cdp/scenarioBridge.d.ts.map +1 -1
  114. package/dist/cdp/scenarioBridge.js +2 -2
  115. package/dist/cdp/scenarioBridge.js.map +1 -1
  116. package/dist/cdp/screenshot.js +2 -2
  117. package/dist/cdp/screenshot.js.map +1 -1
  118. package/dist/cdp/selectBestFrame.d.ts +8 -1
  119. package/dist/cdp/selectBestFrame.d.ts.map +1 -1
  120. package/dist/cdp/selectBestFrame.js +8 -3
  121. package/dist/cdp/selectBestFrame.js.map +1 -1
  122. package/dist/cdp/storage.d.ts.map +1 -1
  123. package/dist/cdp/storage.js +2 -11
  124. package/dist/cdp/storage.js.map +1 -1
  125. package/dist/cdp/text-filter.d.ts.map +1 -1
  126. package/dist/cdp/text-filter.js +2 -11
  127. package/dist/cdp/text-filter.js.map +1 -1
  128. package/dist/cdp/tracing.d.ts.map +1 -1
  129. package/dist/cdp/tracing.js +16 -39
  130. package/dist/cdp/tracing.js.map +1 -1
  131. package/dist/cdp/visualCapture.d.ts.map +1 -1
  132. package/dist/cdp/visualCapture.js +7 -9
  133. package/dist/cdp/visualCapture.js.map +1 -1
  134. package/dist/cdp/watcher.d.ts +2 -0
  135. package/dist/cdp/watcher.d.ts.map +1 -1
  136. package/dist/cdp/watcher.js +2 -10
  137. package/dist/cdp/watcher.js.map +1 -1
  138. package/dist/cdp/watcherEvents.d.ts +27 -3
  139. package/dist/cdp/watcherEvents.d.ts.map +1 -1
  140. package/dist/cdp/watcherEvents.js +46 -29
  141. package/dist/cdp/watcherEvents.js.map +1 -1
  142. package/dist/deferred.d.ts +14 -0
  143. package/dist/deferred.d.ts.map +1 -0
  144. package/dist/deferred.js +16 -0
  145. package/dist/deferred.js.map +1 -0
  146. package/dist/emulation/EmulationController.d.ts +7 -0
  147. package/dist/emulation/EmulationController.d.ts.map +1 -1
  148. package/dist/emulation/EmulationController.js +31 -75
  149. package/dist/emulation/EmulationController.js.map +1 -1
  150. package/dist/errors.d.ts +29 -0
  151. package/dist/errors.d.ts.map +1 -0
  152. package/dist/errors.js +31 -0
  153. package/dist/errors.js.map +1 -0
  154. package/dist/events.d.ts +3 -52
  155. package/dist/events.d.ts.map +1 -1
  156. package/dist/http/endpoints.d.ts +54 -0
  157. package/dist/http/endpoints.d.ts.map +1 -0
  158. package/dist/http/endpoints.js +75 -0
  159. package/dist/http/endpoints.js.map +1 -0
  160. package/dist/http/httpUtils.d.ts +47 -3
  161. package/dist/http/httpUtils.d.ts.map +1 -1
  162. package/dist/http/httpUtils.js +75 -29
  163. package/dist/http/httpUtils.js.map +1 -1
  164. package/dist/http/router.js +2 -2
  165. package/dist/http/router.js.map +1 -1
  166. package/dist/http/routes/authCookies.d.ts.map +1 -1
  167. package/dist/http/routes/authCookies.js +7 -93
  168. package/dist/http/routes/authCookies.js.map +1 -1
  169. package/dist/http/routes/defineDomTargetRoute.d.ts +3 -5
  170. package/dist/http/routes/defineDomTargetRoute.d.ts.map +1 -1
  171. package/dist/http/routes/defineDomTargetRoute.js +2 -3
  172. package/dist/http/routes/defineDomTargetRoute.js.map +1 -1
  173. package/dist/http/routes/defineExtensionRoute.d.ts +30 -0
  174. package/dist/http/routes/defineExtensionRoute.d.ts.map +1 -0
  175. package/dist/http/routes/defineExtensionRoute.js +33 -0
  176. package/dist/http/routes/defineExtensionRoute.js.map +1 -0
  177. package/dist/http/routes/defineRoute.d.ts +8 -8
  178. package/dist/http/routes/defineRoute.d.ts.map +1 -1
  179. package/dist/http/routes/defineRoute.js +11 -13
  180. package/dist/http/routes/defineRoute.js.map +1 -1
  181. package/dist/http/routes/domSelectorRoute.d.ts.map +1 -1
  182. package/dist/http/routes/domSelectorRoute.js +4 -7
  183. package/dist/http/routes/domSelectorRoute.js.map +1 -1
  184. package/dist/http/routes/extensionTarget.d.ts +11 -0
  185. package/dist/http/routes/extensionTarget.d.ts.map +1 -0
  186. package/dist/http/routes/extensionTarget.js +8 -0
  187. package/dist/http/routes/extensionTarget.js.map +1 -0
  188. package/dist/http/routes/getAuthCookies.js +1 -1
  189. package/dist/http/routes/getAuthCookies.js.map +1 -1
  190. package/dist/http/routes/getAuthState.js +1 -1
  191. package/dist/http/routes/getAuthState.js.map +1 -1
  192. package/dist/http/routes/getExtensionDiagnostics.d.ts.map +1 -1
  193. package/dist/http/routes/getExtensionDiagnostics.js +5 -9
  194. package/dist/http/routes/getExtensionDiagnostics.js.map +1 -1
  195. package/dist/http/routes/getExtensionTabs.d.ts.map +1 -1
  196. package/dist/http/routes/getExtensionTabs.js +10 -16
  197. package/dist/http/routes/getExtensionTabs.js.map +1 -1
  198. package/dist/http/routes/getLogCursor.js +1 -1
  199. package/dist/http/routes/getLogCursor.js.map +1 -1
  200. package/dist/http/routes/getLogs.d.ts.map +1 -1
  201. package/dist/http/routes/getLogs.js +8 -8
  202. package/dist/http/routes/getLogs.js.map +1 -1
  203. package/dist/http/routes/getNet.js +2 -2
  204. package/dist/http/routes/getNet.js.map +1 -1
  205. package/dist/http/routes/getNetRequest.js +3 -3
  206. package/dist/http/routes/getNetRequest.js.map +1 -1
  207. package/dist/http/routes/getNetRequestBody.d.ts.map +1 -1
  208. package/dist/http/routes/getNetRequestBody.js +8 -7
  209. package/dist/http/routes/getNetRequestBody.js.map +1 -1
  210. package/dist/http/routes/getNetRequests.js +2 -2
  211. package/dist/http/routes/getNetRequests.js.map +1 -1
  212. package/dist/http/routes/getNetSse.js +2 -2
  213. package/dist/http/routes/getNetSse.js.map +1 -1
  214. package/dist/http/routes/getNetTail.d.ts.map +1 -1
  215. package/dist/http/routes/getNetTail.js +3 -3
  216. package/dist/http/routes/getNetTail.js.map +1 -1
  217. package/dist/http/routes/getNetWebSocketConnection.d.ts.map +1 -1
  218. package/dist/http/routes/getNetWebSocketConnection.js +8 -8
  219. package/dist/http/routes/getNetWebSocketConnection.js.map +1 -1
  220. package/dist/http/routes/getNetWebSockets.js +2 -2
  221. package/dist/http/routes/getNetWebSockets.js.map +1 -1
  222. package/dist/http/routes/getStatus.d.ts.map +1 -1
  223. package/dist/http/routes/getStatus.js +3 -0
  224. package/dist/http/routes/getStatus.js.map +1 -1
  225. package/dist/http/routes/getTail.js +7 -7
  226. package/dist/http/routes/getTail.js.map +1 -1
  227. package/dist/http/routes/getTargets.d.ts.map +1 -1
  228. package/dist/http/routes/getTargets.js +5 -10
  229. package/dist/http/routes/getTargets.js.map +1 -1
  230. package/dist/http/routes/logEpochQuery.d.ts +8 -1
  231. package/dist/http/routes/logEpochQuery.d.ts.map +1 -1
  232. package/dist/http/routes/logEpochQuery.js +18 -28
  233. package/dist/http/routes/logEpochQuery.js.map +1 -1
  234. package/dist/http/routes/netFilters.d.ts +10 -0
  235. package/dist/http/routes/netFilters.d.ts.map +1 -1
  236. package/dist/http/routes/netFilters.js +41 -28
  237. package/dist/http/routes/netFilters.js.map +1 -1
  238. package/dist/http/routes/netMock.d.ts.map +1 -1
  239. package/dist/http/routes/netMock.js +3 -116
  240. package/dist/http/routes/netMock.js.map +1 -1
  241. package/dist/http/routes/netRequestLookup.js +3 -13
  242. package/dist/http/routes/netRequestLookup.js.map +1 -1
  243. package/dist/http/routes/postAttach.d.ts.map +1 -1
  244. package/dist/http/routes/postAttach.js +8 -18
  245. package/dist/http/routes/postAttach.js.map +1 -1
  246. package/dist/http/routes/postAuthStateLoad.d.ts.map +1 -1
  247. package/dist/http/routes/postAuthStateLoad.js +2 -17
  248. package/dist/http/routes/postAuthStateLoad.js.map +1 -1
  249. package/dist/http/routes/postCodeEdit.d.ts.map +1 -1
  250. package/dist/http/routes/postCodeEdit.js +2 -10
  251. package/dist/http/routes/postCodeEdit.js.map +1 -1
  252. package/dist/http/routes/postCodeGrep.d.ts.map +1 -1
  253. package/dist/http/routes/postCodeGrep.js +2 -10
  254. package/dist/http/routes/postCodeGrep.js.map +1 -1
  255. package/dist/http/routes/postCodeList.d.ts.map +1 -1
  256. package/dist/http/routes/postCodeList.js +2 -7
  257. package/dist/http/routes/postCodeList.js.map +1 -1
  258. package/dist/http/routes/postCodeRead.d.ts.map +1 -1
  259. package/dist/http/routes/postCodeRead.js +2 -13
  260. package/dist/http/routes/postCodeRead.js.map +1 -1
  261. package/dist/http/routes/postDetach.d.ts.map +1 -1
  262. package/dist/http/routes/postDetach.js +8 -18
  263. package/dist/http/routes/postDetach.js.map +1 -1
  264. package/dist/http/routes/postDialog.d.ts.map +1 -1
  265. package/dist/http/routes/postDialog.js +5 -13
  266. package/dist/http/routes/postDialog.js.map +1 -1
  267. package/dist/http/routes/postDomAdd.d.ts.map +1 -1
  268. package/dist/http/routes/postDomAdd.js +3 -31
  269. package/dist/http/routes/postDomAdd.js.map +1 -1
  270. package/dist/http/routes/postDomFill.d.ts.map +1 -1
  271. package/dist/http/routes/postDomFill.js +2 -10
  272. package/dist/http/routes/postDomFill.js.map +1 -1
  273. package/dist/http/routes/postDomFocus.d.ts.map +1 -1
  274. package/dist/http/routes/postDomFocus.js +2 -0
  275. package/dist/http/routes/postDomFocus.js.map +1 -1
  276. package/dist/http/routes/postDomHover.d.ts.map +1 -1
  277. package/dist/http/routes/postDomHover.js +2 -0
  278. package/dist/http/routes/postDomHover.js.map +1 -1
  279. package/dist/http/routes/postDomInfo.d.ts.map +1 -1
  280. package/dist/http/routes/postDomInfo.js +3 -3
  281. package/dist/http/routes/postDomInfo.js.map +1 -1
  282. package/dist/http/routes/postDomKeydown.d.ts.map +1 -1
  283. package/dist/http/routes/postDomKeydown.js +2 -27
  284. package/dist/http/routes/postDomKeydown.js.map +1 -1
  285. package/dist/http/routes/postDomModify.d.ts.map +1 -1
  286. package/dist/http/routes/postDomModify.js +4 -19
  287. package/dist/http/routes/postDomModify.js.map +1 -1
  288. package/dist/http/routes/postDomRemove.d.ts.map +1 -1
  289. package/dist/http/routes/postDomRemove.js +5 -5
  290. package/dist/http/routes/postDomRemove.js.map +1 -1
  291. package/dist/http/routes/postDomScroll.d.ts.map +1 -1
  292. package/dist/http/routes/postDomScroll.js +5 -27
  293. package/dist/http/routes/postDomScroll.js.map +1 -1
  294. package/dist/http/routes/postDomScrollTo.d.ts.map +1 -1
  295. package/dist/http/routes/postDomScrollTo.js +2 -30
  296. package/dist/http/routes/postDomScrollTo.js.map +1 -1
  297. package/dist/http/routes/postDomSetFile.d.ts.map +1 -1
  298. package/dist/http/routes/postDomSetFile.js +2 -17
  299. package/dist/http/routes/postDomSetFile.js.map +1 -1
  300. package/dist/http/routes/postDomTree.d.ts.map +1 -1
  301. package/dist/http/routes/postDomTree.js +3 -3
  302. package/dist/http/routes/postDomTree.js.map +1 -1
  303. package/dist/http/routes/postEmulation.d.ts.map +1 -1
  304. package/dist/http/routes/postEmulation.js +3 -47
  305. package/dist/http/routes/postEmulation.js.map +1 -1
  306. package/dist/http/routes/postEval.d.ts.map +1 -1
  307. package/dist/http/routes/postEval.js +2 -7
  308. package/dist/http/routes/postEval.js.map +1 -1
  309. package/dist/http/routes/postLocate.d.ts.map +1 -1
  310. package/dist/http/routes/postLocate.js +5 -17
  311. package/dist/http/routes/postLocate.js.map +1 -1
  312. package/dist/http/routes/postRecord.d.ts.map +1 -1
  313. package/dist/http/routes/postRecord.js +4 -66
  314. package/dist/http/routes/postRecord.js.map +1 -1
  315. package/dist/http/routes/postReload.d.ts.map +1 -1
  316. package/dist/http/routes/postReload.js +2 -1
  317. package/dist/http/routes/postReload.js.map +1 -1
  318. package/dist/http/routes/postScreenshot.d.ts.map +1 -1
  319. package/dist/http/routes/postScreenshot.js +2 -32
  320. package/dist/http/routes/postScreenshot.js.map +1 -1
  321. package/dist/http/routes/postSnapshot.d.ts.map +1 -1
  322. package/dist/http/routes/postSnapshot.js +2 -10
  323. package/dist/http/routes/postSnapshot.js.map +1 -1
  324. package/dist/http/routes/postThrottle.d.ts.map +1 -1
  325. package/dist/http/routes/postThrottle.js +2 -15
  326. package/dist/http/routes/postThrottle.js.map +1 -1
  327. package/dist/http/routes/postTraceStart.d.ts.map +1 -1
  328. package/dist/http/routes/postTraceStart.js +2 -1
  329. package/dist/http/routes/postTraceStart.js.map +1 -1
  330. package/dist/http/routes/postTraceStop.d.ts.map +1 -1
  331. package/dist/http/routes/postTraceStop.js +2 -1
  332. package/dist/http/routes/postTraceStop.js.map +1 -1
  333. package/dist/http/routes/postVisibility.d.ts.map +1 -1
  334. package/dist/http/routes/postVisibility.js +2 -7
  335. package/dist/http/routes/postVisibility.js.map +1 -1
  336. package/dist/http/routes/storage.d.ts.map +1 -1
  337. package/dist/http/routes/storage.js +2 -16
  338. package/dist/http/routes/storage.js.map +1 -1
  339. package/dist/http/server.d.ts +9 -36
  340. package/dist/http/server.d.ts.map +1 -1
  341. package/dist/http/server.js.map +1 -1
  342. package/dist/index.d.ts +3 -1
  343. package/dist/index.d.ts.map +1 -1
  344. package/dist/index.js +1 -0
  345. package/dist/index.js.map +1 -1
  346. package/dist/internal.d.ts +18 -0
  347. package/dist/internal.d.ts.map +1 -0
  348. package/dist/internal.js +16 -0
  349. package/dist/internal.js.map +1 -0
  350. package/dist/native-messaging/control-session-manager.d.ts +3 -12
  351. package/dist/native-messaging/control-session-manager.d.ts.map +1 -1
  352. package/dist/native-messaging/control-session-manager.js +13 -32
  353. package/dist/native-messaging/control-session-manager.js.map +1 -1
  354. package/dist/native-messaging/pendingRequests.d.ts +31 -0
  355. package/dist/native-messaging/pendingRequests.d.ts.map +1 -0
  356. package/dist/native-messaging/pendingRequests.js +47 -0
  357. package/dist/native-messaging/pendingRequests.js.map +1 -0
  358. package/dist/native-messaging/session-manager.d.ts +35 -31
  359. package/dist/native-messaging/session-manager.d.ts.map +1 -1
  360. package/dist/native-messaging/session-manager.js +54 -86
  361. package/dist/native-messaging/session-manager.js.map +1 -1
  362. package/dist/native-messaging/types.d.ts +6 -211
  363. package/dist/native-messaging/types.d.ts.map +1 -1
  364. package/dist/native-messaging/types.js +5 -3
  365. package/dist/native-messaging/types.js.map +1 -1
  366. package/dist/net/NetMockController.d.ts.map +1 -1
  367. package/dist/net/NetMockController.js +7 -5
  368. package/dist/net/NetMockController.js.map +1 -1
  369. package/dist/net/NetMockInterception.d.ts +2 -1
  370. package/dist/net/NetMockInterception.d.ts.map +1 -1
  371. package/dist/net/NetMockInterception.js +4 -3
  372. package/dist/net/NetMockInterception.js.map +1 -1
  373. package/dist/net/filtering.d.ts +2 -2
  374. package/dist/net/filtering.d.ts.map +1 -1
  375. package/dist/net/filtering.js.map +1 -1
  376. package/dist/runtime/shutdownLatch.d.ts +16 -0
  377. package/dist/runtime/shutdownLatch.d.ts.map +1 -0
  378. package/dist/runtime/shutdownLatch.js +17 -0
  379. package/dist/runtime/shutdownLatch.js.map +1 -0
  380. package/dist/runtime/watcherIndicator.d.ts +45 -0
  381. package/dist/runtime/watcherIndicator.d.ts.map +1 -0
  382. package/dist/runtime/watcherIndicator.js +62 -0
  383. package/dist/runtime/watcherIndicator.js.map +1 -0
  384. package/dist/runtime/watcherInject.d.ts +25 -1
  385. package/dist/runtime/watcherInject.d.ts.map +1 -1
  386. package/dist/runtime/watcherInject.js +48 -6
  387. package/dist/runtime/watcherInject.js.map +1 -1
  388. package/dist/runtime/watcherServices.d.ts.map +1 -1
  389. package/dist/runtime/watcherServices.js +44 -57
  390. package/dist/runtime/watcherServices.js.map +1 -1
  391. package/dist/runtime/watcherSetup.d.ts +3 -0
  392. package/dist/runtime/watcherSetup.d.ts.map +1 -1
  393. package/dist/runtime/watcherSetup.js +2 -0
  394. package/dist/runtime/watcherSetup.js.map +1 -1
  395. package/dist/sourcemaps/resolveLocation.d.ts +14 -5
  396. package/dist/sourcemaps/resolveLocation.d.ts.map +1 -1
  397. package/dist/sourcemaps/resolveLocation.js +10 -68
  398. package/dist/sourcemaps/resolveLocation.js.map +1 -1
  399. package/dist/sourcemaps/sourceMappingUrl.d.ts +27 -0
  400. package/dist/sourcemaps/sourceMappingUrl.d.ts.map +1 -0
  401. package/dist/sourcemaps/sourceMappingUrl.js +57 -0
  402. package/dist/sourcemaps/sourceMappingUrl.js.map +1 -0
  403. package/dist/sourcemaps/sourcemapResolver.d.ts +30 -0
  404. package/dist/sourcemaps/sourcemapResolver.d.ts.map +1 -0
  405. package/dist/sourcemaps/sourcemapResolver.js +152 -0
  406. package/dist/sourcemaps/sourcemapResolver.js.map +1 -0
  407. package/dist/sources/cdp-source.d.ts.map +1 -1
  408. package/dist/sources/cdp-source.js +3 -2
  409. package/dist/sources/cdp-source.js.map +1 -1
  410. package/dist/sources/extension-control-source.d.ts.map +1 -1
  411. package/dist/sources/extension-control-source.js +9 -3
  412. package/dist/sources/extension-control-source.js.map +1 -1
  413. package/dist/sources/extension-delegating-session.d.ts +19 -8
  414. package/dist/sources/extension-delegating-session.d.ts.map +1 -1
  415. package/dist/sources/extension-delegating-session.js +4 -0
  416. package/dist/sources/extension-delegating-session.js.map +1 -1
  417. package/dist/sources/extension-frame-runtime.d.ts +2 -1
  418. package/dist/sources/extension-frame-runtime.d.ts.map +1 -1
  419. package/dist/sources/extension-frame-runtime.js +37 -17
  420. package/dist/sources/extension-frame-runtime.js.map +1 -1
  421. package/dist/sources/extension-frame-snapshot.d.ts +31 -0
  422. package/dist/sources/extension-frame-snapshot.d.ts.map +1 -0
  423. package/dist/sources/extension-frame-snapshot.js +73 -0
  424. package/dist/sources/extension-frame-snapshot.js.map +1 -0
  425. package/dist/sources/extension-frame-state.d.ts +3 -17
  426. package/dist/sources/extension-frame-state.d.ts.map +1 -1
  427. package/dist/sources/extension-frame-state.js +5 -30
  428. package/dist/sources/extension-frame-state.js.map +1 -1
  429. package/dist/sources/extension-session-events.d.ts +5 -2
  430. package/dist/sources/extension-session-events.d.ts.map +1 -1
  431. package/dist/sources/extension-session-events.js +7 -4
  432. package/dist/sources/extension-session-events.js.map +1 -1
  433. package/dist/sources/extension-source.d.ts.map +1 -1
  434. package/dist/sources/extension-source.js +49 -23
  435. package/dist/sources/extension-source.js.map +1 -1
  436. package/dist/sources/extension-target-recovery.d.ts.map +1 -1
  437. package/dist/sources/extension-target-recovery.js +3 -6
  438. package/dist/sources/extension-target-recovery.js.map +1 -1
  439. package/dist/sources/types.d.ts +5 -0
  440. package/dist/sources/types.d.ts.map +1 -1
  441. package/dist/sources/types.js +0 -5
  442. package/dist/sources/types.js.map +1 -1
  443. package/dist/startWatcherRuntime.d.ts.map +1 -1
  444. package/dist/startWatcherRuntime.js +31 -134
  445. package/dist/startWatcherRuntime.js.map +1 -1
  446. package/dist/stickyController.d.ts +51 -0
  447. package/dist/stickyController.d.ts.map +1 -0
  448. package/dist/stickyController.js +64 -0
  449. package/dist/stickyController.js.map +1 -0
  450. package/dist/throttle/ThrottleController.d.ts +1 -0
  451. package/dist/throttle/ThrottleController.d.ts.map +1 -1
  452. package/dist/throttle/ThrottleController.js +20 -61
  453. package/dist/throttle/ThrottleController.js.map +1 -1
  454. package/dist/visibility/VisibilityController.d.ts +9 -12
  455. package/dist/visibility/VisibilityController.d.ts.map +1 -1
  456. package/dist/visibility/VisibilityController.js +28 -36
  457. package/dist/visibility/VisibilityController.js.map +1 -1
  458. package/package.json +6 -2
  459. package/dist/cdp/auth.d.ts.map +0 -1
  460. package/dist/cdp/auth.js +0 -349
  461. package/dist/cdp/auth.js.map +0 -1
  462. package/dist/cdp/dom/fill.d.ts +0 -23
  463. package/dist/cdp/dom/fill.d.ts.map +0 -1
  464. package/dist/cdp/dom/fill.js +0 -59
  465. package/dist/cdp/dom/fill.js.map +0 -1
  466. package/dist/cdp/dom/insert.d.ts +0 -19
  467. package/dist/cdp/dom/insert.d.ts.map +0 -1
  468. package/dist/cdp/dom/insert.js +0 -30
  469. package/dist/cdp/dom/insert.js.map +0 -1
  470. package/dist/cdp/dom/modify.d.ts +0 -50
  471. package/dist/cdp/dom/modify.d.ts.map +0 -1
  472. package/dist/cdp/dom/modify.js +0 -100
  473. package/dist/cdp/dom/modify.js.map +0 -1
  474. package/dist/cdp/dom/remove.d.ts +0 -17
  475. package/dist/cdp/dom/remove.d.ts.map +0 -1
  476. package/dist/cdp/dom/remove.js +0 -27
  477. package/dist/cdp/dom/remove.js.map +0 -1
  478. package/dist/cdp/dom/setFile.d.ts +0 -21
  479. package/dist/cdp/dom/setFile.d.ts.map +0 -1
  480. package/dist/cdp/dom/setFile.js +0 -25
  481. package/dist/cdp/dom/setFile.js.map +0 -1
  482. package/dist/cdp/dom/types.d.ts +0 -16
  483. package/dist/cdp/dom/types.d.ts.map +0 -1
  484. package/dist/cdp/dom/types.js +0 -2
  485. package/dist/cdp/dom/types.js.map +0 -1
  486. package/dist/sources/extension-log-events.d.ts +0 -15
  487. package/dist/sources/extension-log-events.d.ts.map +0 -1
  488. package/dist/sources/extension-log-events.js +0 -101
  489. package/dist/sources/extension-log-events.js.map +0 -1
@@ -1,30 +1,54 @@
1
+ import { getErrorCode } from '../errors.js';
1
2
  import http from 'node:http';
3
+ import { formatError } from '@vforsh/argus-core';
2
4
  export const respondJson = (res, body, status = 200) => {
3
5
  const payload = JSON.stringify(body);
4
6
  res.statusCode = status;
5
7
  res.setHeader('Content-Type', 'application/json');
6
8
  res.end(payload);
7
9
  };
10
+ /**
11
+ * Send an `ok: false` failure envelope.
12
+ *
13
+ * The only way a route should build one. Routes used to hand-roll the object literal without a
14
+ * `satisfies ErrorResponse`, so their `code` was an unchecked string and a rename of an
15
+ * {@link ArgusErrorCode} member would not have broken them — the typed `code` parameter here closes
16
+ * that hole for every caller at once. `undefined` is allowed only because an arbitrary thrown error
17
+ * may not map to a known code (see {@link respondError}).
18
+ */
19
+ export const respondApiError = (res, status, code, message) => {
20
+ respondJson(res, { ok: false, error: { message, code } }, status);
21
+ };
8
22
  export const respondInvalidMatch = (res, message) => {
9
- respondJson(res, { ok: false, error: { message, code: 'invalid_match' } }, 400);
23
+ respondApiError(res, 400, 'invalid_match', message);
10
24
  };
11
25
  export const respondInvalidMatchCase = (res) => {
12
- respondJson(res, { ok: false, error: { message: 'Invalid matchCase value', code: 'invalid_match_case' } }, 400);
26
+ respondApiError(res, 400, 'invalid_match_case', 'Invalid matchCase value');
13
27
  };
14
28
  export const respondInvalidBody = (res, message) => {
15
- respondJson(res, { ok: false, error: { message, code: 'invalid_request' } }, 400);
29
+ respondApiError(res, 400, 'invalid_request', message);
16
30
  };
17
31
  export const respondInvalidJson = (res) => {
18
- respondJson(res, { ok: false, error: { message: 'Invalid JSON body', code: 'invalid_json' } }, 400);
32
+ respondApiError(res, 400, 'invalid_json', 'Invalid JSON body');
19
33
  };
20
34
  export const respondPayloadTooLarge = (res) => {
21
- respondJson(res, { ok: false, error: { message: 'Request body too large', code: 'payload_too_large' } }, 413);
35
+ respondApiError(res, 413, 'payload_too_large', 'Request body too large');
22
36
  };
23
37
  export const respondError = (res, error) => {
24
- const message = formatError(error);
25
- const code = resolveErrorCode(error);
26
- respondJson(res, { ok: false, error: { message, code } }, 500);
27
- };
38
+ respondApiError(res, 500, getErrorCode(error), formatError(error));
39
+ };
40
+ /**
41
+ * Read and parse a JSON request body.
42
+ *
43
+ * An absent or empty body yields `{}` rather than an error: `defineJsonRoute` hands the
44
+ * result straight to a protocol schema, which rejects it with a real per-field message.
45
+ * This used to be a documented gotcha ("routes must validate required fields explicitly")
46
+ * because the empty object was cast to the route's body type and reached the handler
47
+ * unvalidated; the schema layer now owns that proof.
48
+ *
49
+ * @returns The parsed body, or `null` when a response has already been sent (oversized
50
+ * payload or malformed JSON).
51
+ */
28
52
  export const readJsonBody = async (req, res) => {
29
53
  const chunks = [];
30
54
  let size = 0;
@@ -58,14 +82,54 @@ export const readJsonBody = async (req, res) => {
58
82
  return null;
59
83
  }
60
84
  };
85
+ /**
86
+ * Read a numeric query param that always resolves to a number.
87
+ *
88
+ * Absent or non-numeric values fall back to `fallback`; in-range values are clamped
89
+ * into `[min, max]`. Use {@link optionalNumber} when "absent" must stay distinguishable
90
+ * from a real value — this function cannot express it.
91
+ */
61
92
  export const clampNumber = (value, fallback, min, max) => {
93
+ const parsed = value == null ? Number.NaN : Number(value);
94
+ if (!Number.isFinite(parsed)) {
95
+ return fallback;
96
+ }
97
+ return clampToRange(parsed, min, max);
98
+ };
99
+ /**
100
+ * Read an optional numeric query param.
101
+ *
102
+ * Returns `undefined` when the param is absent or non-numeric, so callers can tell
103
+ * "not provided" from a provided `0`. Provided values are clamped into `[min, max]`.
104
+ */
105
+ export const optionalNumber = (value, min, max) => {
62
106
  if (value == null) {
63
- return fallback ?? 0;
107
+ return undefined;
64
108
  }
65
109
  const parsed = Number(value);
66
110
  if (!Number.isFinite(parsed)) {
67
- return fallback ?? 0;
111
+ return undefined;
112
+ }
113
+ return clampToRange(parsed, min, max);
114
+ };
115
+ /**
116
+ * Read an optional positive-integer query param (buffer ids and other 1-based handles).
117
+ *
118
+ * Unlike {@link optionalNumber} this rejects rather than clamps: fractional, negative,
119
+ * zero, and unsafe-integer values all yield `undefined` so a bad id can never be
120
+ * silently coerced into a valid lookup.
121
+ */
122
+ export const optionalPositiveInt = (value) => {
123
+ if (!value) {
124
+ return undefined;
68
125
  }
126
+ const parsed = Number(value);
127
+ if (!Number.isSafeInteger(parsed) || parsed < 1) {
128
+ return undefined;
129
+ }
130
+ return parsed;
131
+ };
132
+ const clampToRange = (parsed, min, max) => {
69
133
  if (min != null && parsed < min) {
70
134
  return min;
71
135
  }
@@ -149,22 +213,4 @@ export const normalizeTimeout = (value) => {
149
213
  }
150
214
  return parsed;
151
215
  };
152
- const resolveErrorCode = (error) => {
153
- if (!error || typeof error !== 'object') {
154
- return undefined;
155
- }
156
- if ('code' in error && typeof error.code === 'string') {
157
- return error.code;
158
- }
159
- return undefined;
160
- };
161
- const formatError = (error) => {
162
- if (!error) {
163
- return 'unknown error';
164
- }
165
- if (error instanceof Error) {
166
- return error.message;
167
- }
168
- return String(error);
169
- };
170
216
  //# sourceMappingURL=httpUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../src/http/httpUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../src/http/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,WAAW,EAA0D,MAAM,oBAAoB,CAAA;AAExG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,GAAwB,EAAE,IAAO,EAAE,MAAM,GAAG,GAAG,EAAQ,EAAE;IACtG,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACpC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAA;IACvB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;IACjD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAwB,EAAE,MAAc,EAAE,IAAgC,EAAE,OAAe,EAAQ,EAAE;IACpI,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAA0B,EAAE,MAAM,CAAC,CAAA;AAC1F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAQ,EAAE;IACtF,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAwB,EAAQ,EAAE;IACzE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,CAAC,CAAA;AAC3E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAQ,EAAE;IACrF,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAwB,EAAQ,EAAE;IACpE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAQ,EAAE;IACxE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,wBAAwB,CAAC,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAwB,EAAE,KAAc,EAAQ,EAAE;IAC9E,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAyB,EAAE,GAAwB,EAA2B,EAAE;IAClH,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,QAAQ,GAAG,SAAS,CAAA;IAE1B,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,KAAK,CAAC,MAAM,CAAA;YACpB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACrB,sBAAsB,CAAC,GAAG,CAAC,CAAA;gBAC3B,OAAO,IAAI,CAAA;YACZ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAChC,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAA;IACV,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,CAAA;IACV,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAE,QAAgB,EAAE,GAAY,EAAE,GAAY,EAAU,EAAE;IACzG,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,GAAY,EAAE,GAAY,EAAsB,EAAE;IACtG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAsB,EAAE;IAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,GAAY,EAAE,GAAY,EAAU,EAAE;IAC3E,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACjC,OAAO,GAAG,CAAA;IACX,CAAC;IAED,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACjC,OAAO,GAAG,CAAA;IACX,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAoB,EAA0B,EAAE;IAC3E,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAA;IAEjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,OAAO,MAAoB,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAsC,EAAE;IAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,aAAa,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACtD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAe,EAA0C,EAAE;IACjG,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;QAClE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,SAAsC,EAAwC,EAAE;IACxI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACV,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,0BAA0B,OAAO,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;QAC9E,CAAC;IACF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAsB,EAAE;IAC/E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAE,QAAiB,EAAW,EAAE;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAA;IAChB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACtE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA"}
@@ -1,11 +1,11 @@
1
- import { respondJson } from './httpUtils.js';
1
+ import { respondApiError } from './httpUtils.js';
2
2
  import { watcherRoutes } from './routes/index.js';
3
3
  const routes = new Map(watcherRoutes.map((route) => [`${route.method} ${route.path}`, route]));
4
4
  /** Dispatch an incoming request to the matching route handler, or respond 404. */
5
5
  export const dispatch = (req, res, url, ctx) => {
6
6
  const entry = routes.get(`${req.method} ${url.pathname}`);
7
7
  if (!entry || (entry.extensionOnly && !ctx.sourceHandle)) {
8
- respondJson(res, { ok: false, error: { message: 'Not found', code: 'not_found' } }, 404);
8
+ respondApiError(res, 404, 'not_found', 'Not found');
9
9
  return;
10
10
  }
11
11
  void entry.handler(req, res, url, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAyC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAEtI,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,GAAQ,EAAE,GAAiB,EAAQ,EAAE;IAClH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACxF,OAAM;IACP,CAAC;IACD,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAyC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAEtI,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,GAAQ,EAAE,GAAiB,EAAQ,EAAE;IAClH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACnD,OAAM;IACP,CAAC;IACD,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"authCookies.d.ts","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAoH9D,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,iBAAiB,wBAQ5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,wBAQ3B,CAAA"}
1
+ {"version":3,"file":"authCookies.d.ts","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAiB9D,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,iBAAiB,wBAQ5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,wBAQ3B,CAAA"}
@@ -1,102 +1,16 @@
1
- import { normalizeCookieDomainFilter, normalizeCookieSameSite, } from '@vforsh/argus-core';
2
- import { clearAuthCookies, deleteAuthCookie, inspectAuthCookie, setAuthCookie } from '../../cdp/auth.js';
1
+ import { authCookieClearRequestSchema, authCookieDeleteRequestSchema, authCookieGetRequestSchema, authCookieSetRequestSchema, } from '@vforsh/argus-core';
2
+ import { clearAuthCookies, deleteAuthCookie, inspectAuthCookie, setAuthCookie } from '../../cdp/authCookies.js';
3
3
  import { defineJsonRoute } from './defineRoute.js';
4
- const CLEAR_SCOPES = new Set(['origin', 'site', 'domain', 'browserContext']);
5
- const validateCookieGetPayload = (payload) => {
6
- const identityError = validateCookieIdentityPayload(payload);
7
- if (identityError) {
8
- return identityError;
9
- }
10
- if (payload.includeValue != null && typeof payload.includeValue !== 'boolean') {
11
- return 'includeValue must be a boolean';
12
- }
13
- return null;
14
- };
15
- const validateCookieDeletePayload = (payload) => validateCookieIdentityPayload(payload);
16
- const validateCookieSetPayload = (payload) => {
17
- if (!payload.cookie || typeof payload.cookie !== 'object') {
18
- return 'cookie is required';
19
- }
20
- const identityError = validateCookieIdentityPayload(payload.cookie);
21
- if (identityError) {
22
- return identityError;
23
- }
24
- if (typeof payload.cookie.value !== 'string') {
25
- return 'cookie.value must be a string';
26
- }
27
- if (typeof payload.cookie.secure !== 'boolean') {
28
- return 'cookie.secure must be a boolean';
29
- }
30
- if (typeof payload.cookie.httpOnly !== 'boolean') {
31
- return 'cookie.httpOnly must be a boolean';
32
- }
33
- if (typeof payload.cookie.session !== 'boolean') {
34
- return 'cookie.session must be a boolean';
35
- }
36
- if (payload.cookie.expires !== null && (typeof payload.cookie.expires !== 'number' || !Number.isFinite(payload.cookie.expires))) {
37
- return 'cookie.expires must be a finite number or null';
38
- }
39
- if (payload.cookie.sameSite !== null && payload.cookie.sameSite !== undefined && typeof payload.cookie.sameSite !== 'string') {
40
- return 'cookie.sameSite must be a string or null';
41
- }
42
- if (payload.cookie.sameSite && !normalizeCookieSameSite(payload.cookie.sameSite)) {
43
- return 'cookie.sameSite must be one of: Strict, Lax, None';
44
- }
45
- if (payload.cookie.session && payload.cookie.expires != null) {
46
- return 'cookie.expires must be null when cookie.session is true';
47
- }
48
- if (!payload.cookie.session && payload.cookie.expires == null) {
49
- return 'cookie.expires is required when cookie.session is false';
50
- }
51
- if (normalizeCookieSameSite(payload.cookie.sameSite) === 'None' && !payload.cookie.secure) {
52
- return 'cookie.secure must be true when cookie.sameSite is None';
53
- }
54
- return null;
55
- };
56
- const validateCookieClearPayload = (payload) => {
57
- if (!CLEAR_SCOPES.has(payload.scope)) {
58
- return 'scope must be one of: origin, site, domain, browserContext';
59
- }
60
- if (payload.scope === 'domain' && !normalizeCookieDomainFilter(payload.domain)) {
61
- return 'domain is required when scope is "domain"';
62
- }
63
- if (payload.scope !== 'domain' && payload.domain != null && typeof payload.domain !== 'string') {
64
- return 'domain must be a string when provided';
65
- }
66
- if (payload.sessionOnly != null && typeof payload.sessionOnly !== 'boolean') {
67
- return 'sessionOnly must be a boolean';
68
- }
69
- if (payload.authOnly != null && typeof payload.authOnly !== 'boolean') {
70
- return 'authOnly must be a boolean';
71
- }
72
- return null;
73
- };
74
4
  const createAuthCookieRoute = (options) => defineJsonRoute({
75
5
  method: 'POST',
76
6
  path: `/${options.endpoint}`,
77
- parseBody: true,
7
+ bodySchema: options.bodySchema,
78
8
  endpoint: options.endpoint,
79
- validate: options.validate,
80
9
  handle: ({ ctx, body: payload }) => options.run(payload, ctx),
81
10
  });
82
- const validateCookieIdentityPayload = (payload) => {
83
- if (typeof payload.name !== 'string' || payload.name.trim() === '') {
84
- return 'name is required';
85
- }
86
- if (typeof payload.domain !== 'string' || payload.domain.trim() === '') {
87
- return 'domain is required';
88
- }
89
- if (typeof payload.path !== 'string' || payload.path.trim() === '') {
90
- return 'path is required';
91
- }
92
- if (!payload.path.startsWith('/')) {
93
- return 'path must start with "/"';
94
- }
95
- return null;
96
- };
97
11
  export const cookieGetRoute = createAuthCookieRoute({
98
12
  endpoint: 'auth/cookies/get',
99
- validate: validateCookieGetPayload,
13
+ bodySchema: authCookieGetRequestSchema,
100
14
  run: (payload, ctx) => inspectAuthCookie(ctx.cdpSession, {
101
15
  ...payload,
102
16
  readBrowserCookies: ctx.readBrowserCookies,
@@ -104,7 +18,7 @@ export const cookieGetRoute = createAuthCookieRoute({
104
18
  });
105
19
  export const cookieSetRoute = createAuthCookieRoute({
106
20
  endpoint: 'auth/cookies/set',
107
- validate: validateCookieSetPayload,
21
+ bodySchema: authCookieSetRequestSchema,
108
22
  run: (payload, ctx) => setAuthCookie(ctx.cdpSession, {
109
23
  ...payload,
110
24
  readBrowserCookies: ctx.readBrowserCookies,
@@ -112,7 +26,7 @@ export const cookieSetRoute = createAuthCookieRoute({
112
26
  });
113
27
  export const cookieDeleteRoute = createAuthCookieRoute({
114
28
  endpoint: 'auth/cookies/delete',
115
- validate: validateCookieDeletePayload,
29
+ bodySchema: authCookieDeleteRequestSchema,
116
30
  run: (payload, ctx) => deleteAuthCookie(ctx.cdpSession, {
117
31
  ...payload,
118
32
  readBrowserCookies: ctx.readBrowserCookies,
@@ -120,7 +34,7 @@ export const cookieDeleteRoute = createAuthCookieRoute({
120
34
  });
121
35
  export const cookieClearRoute = createAuthCookieRoute({
122
36
  endpoint: 'auth/cookies/clear',
123
- validate: validateCookieClearPayload,
37
+ bodySchema: authCookieClearRequestSchema,
124
38
  run: (payload, ctx) => clearAuthCookies(ctx.cdpSession, {
125
39
  ...payload,
126
40
  readBrowserCookies: ctx.readBrowserCookies,
@@ -1 +1 @@
1
- {"version":3,"file":"authCookies.js","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,2BAA2B,EAC3B,uBAAuB,GAUvB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAElG,MAAM,wBAAwB,GAAG,CAAC,OAA6B,EAAiB,EAAE;IACjF,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAA;IAC5D,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAA;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/E,OAAO,gCAAgC,CAAA;IACxC,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAAC,OAAgC,EAAiB,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAA;AAE/H,MAAM,wBAAwB,GAAG,CAAC,OAA6B,EAAiB,EAAE;IACjF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,oBAAoB,CAAA;IAC5B,CAAC;IAED,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnE,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAA;IACrB,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,+BAA+B,CAAA;IACvC,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,iCAAiC,CAAA;IACzC,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,mCAAmC,CAAA;IAC3C,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,kCAAkC,CAAA;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjI,OAAO,gDAAgD,CAAA;IACxD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9H,OAAO,0CAA0C,CAAA;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClF,OAAO,mDAAmD,CAAA;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAC9D,OAAO,yDAAyD,CAAA;IACjE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAC/D,OAAO,yDAAyD,CAAA;IACjE,CAAC;IACD,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3F,OAAO,yDAAyD,CAAA;IACjE,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CAAC,OAA+B,EAAiB,EAAE;IACrF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,4DAA4D,CAAA;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,OAAO,2CAA2C,CAAA;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChG,OAAO,uCAAuC,CAAA;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC7E,OAAO,+BAA+B,CAAA;IACvC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvE,OAAO,4BAA4B,CAAA;IACpC,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAA2C,OAIxE,EAA0B,EAAE,CAC5B,eAAe,CAAsB;IACpC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;CAC7D,CAAC,CAAA;AAEH,MAAM,6BAA6B,GAAG,CAAC,OAA0D,EAAiB,EAAE;IACnH,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpE,OAAO,kBAAkB,CAAA;IAC1B,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxE,OAAO,oBAAoB,CAAA;IAC5B,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACpE,OAAO,kBAAkB,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,0BAA0B,CAAA;IAClC,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,wBAAwB;IAClC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;QACjC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,wBAAwB;IAClC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7B,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAoD;IACzG,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,2BAA2B;IACrC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAkD;IACtG,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,0BAA0B;IACpC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"authCookies.js","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAWA,OAAO,EACN,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,qBAAqB,GAAG,CAA2C,OAIxE,EAA0B,EAAE,CAC5B,eAAe,CAAsB;IACpC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;CAC7D,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE,0BAA0B;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;QACjC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE,0BAA0B;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7B,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAoD;IACzG,QAAQ,EAAE,qBAAqB;IAC/B,UAAU,EAAE,6BAA6B;IACzC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAkD;IACtG,QAAQ,EAAE,oBAAoB;IAC9B,UAAU,EAAE,4BAA4B;IACxC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { ProtocolSchema } from '@vforsh/argus-core';
1
2
  import type { HttpRequestEventMetadata } from '../server.js';
2
3
  import type { DomNodeHandle } from '../../cdp/dom/selector.js';
3
4
  import type { WatcherRouteDefinition } from './defineRoute.js';
@@ -25,11 +26,8 @@ type DomTargetRouteInput<TBody extends DomTargetRequestBody, TExtra extends obje
25
26
  * `all` is false.
26
27
  */
27
28
  action: string;
28
- /**
29
- * Extra body validation, run after the shared selector/ref/all checks.
30
- * Returns an error message to respond 400 `invalid_request`, or null.
31
- */
32
- validate?: (payload: TBody) => string | null;
29
+ /** Schema that validates this route's body, including the shared target fields. */
30
+ bodySchema: ProtocolSchema<TBody>;
33
31
  /**
34
32
  * Run the DOM action against the resolved handles. Receives both the
35
33
  * "filtered" handles (subject to `text`/`all`) and `allHandles` for routes
@@ -1 +1 @@
1
- {"version":3,"file":"defineDomTargetRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,mBAAmB,CAAC,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,IAAI;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC9C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,MAAM,GAAG,IAAI,CAAA;IAC5C;;;;;;;;OAQG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,UAAU,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CACtI,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,EAC7F,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KACvC,sBA6BA,CAAA"}
1
+ {"version":3,"file":"defineDomTargetRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,mBAAmB,CAAC,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,IAAI;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC9C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACjC;;;;;;;;OAQG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,UAAU,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CACtI,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,EAC7F,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KACvC,sBA4BA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { resolveElementTargets } from '../../cdp/dom/selector.js';
2
2
  import { defineJsonRoute } from './defineRoute.js';
3
- import { respondMissingElementRef, respondMultipleMatches, respondTargetResolutionError, validateDomTargetBody } from './domSelectorRoute.js';
3
+ import { respondMissingElementRef, respondMultipleMatches, respondTargetResolutionError } from './domSelectorRoute.js';
4
4
  /**
5
5
  * Build a `WatcherRouteDefinition` for routes that resolve an element target
6
6
  * (selector/ref + text/all/wait) and perform a DOM action.
@@ -12,9 +12,8 @@ import { respondMissingElementRef, respondMultipleMatches, respondTargetResoluti
12
12
  export const defineDomTargetRoute = (input) => defineJsonRoute({
13
13
  method: input.method ?? 'POST',
14
14
  path: input.path,
15
- parseBody: true,
15
+ bodySchema: input.bodySchema,
16
16
  endpoint: input.endpoint,
17
- validate: (payload) => validateDomTargetBody(payload) ?? input.validate?.(payload) ?? null,
18
17
  handle: async ({ res, ctx, body: payload }) => {
19
18
  const all = payload.all ?? false;
20
19
  const resolved = await resolveElementTargets(ctx.cdpSession, ctx.elementRefs, {
@@ -1 +1 @@
1
- {"version":3,"file":"defineDomTargetRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AA2C7I;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,KAAyC,EAChB,EAAE,CAC3B,eAAe,CAAgD;IAC9D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;IAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI;IAC1F,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7E,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACxC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAC1D,CAAC;IACD,WAAW,EAAE,4BAA4B;CACzC,CAAC,CAAA"}
1
+ {"version":3,"file":"defineDomTargetRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AAwCtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,KAAyC,EAChB,EAAE,CAC3B,eAAe,CAAgD;IAC9D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;IAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7E,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACxC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAC1D,CAAC;IACD,WAAW,EAAE,4BAA4B;CACzC,CAAC,CAAA"}
@@ -0,0 +1,30 @@
1
+ import type { CdpSourceHandle } from '../../sources/types.js';
2
+ import { defineJsonRoute, type JsonRouteHandlerInput, type WatcherRouteDefinition } from './defineRoute.js';
3
+ /** The optional members of {@link CdpSourceHandle} that only an extension-backed source provides. */
4
+ export type ExtensionCapability = {
5
+ [K in keyof CdpSourceHandle]-?: undefined extends CdpSourceHandle[K] ? NonNullable<CdpSourceHandle[K]> extends (...args: never[]) => unknown ? K : never : never;
6
+ }[keyof CdpSourceHandle];
7
+ /** The capability method itself, with its optionality resolved. */
8
+ type ExtensionCapabilityFn<K extends ExtensionCapability> = NonNullable<CdpSourceHandle[K]>;
9
+ type ExtensionRouteInput<TBody, TResponse extends object, TCapability extends ExtensionCapability> = {
10
+ method: 'GET' | 'POST';
11
+ path: string;
12
+ bodySchema?: Parameters<typeof defineJsonRoute<TBody, TResponse>>[0]['bodySchema'];
13
+ /** The source-handle method this route needs. Absent on the active source means 400 `not_available`. */
14
+ capability: TCapability;
15
+ handle: (input: JsonRouteHandlerInput<TBody> & {
16
+ capability: ExtensionCapabilityFn<TCapability>;
17
+ }) => Promise<TResponse | void> | TResponse | void;
18
+ };
19
+ /**
20
+ * Build a route that only an extension-backed source can serve.
21
+ *
22
+ * Capability used to be checked three times per request — the `extensionOnly` route flag, the
23
+ * router's `sourceHandle` presence check, and a per-method `if (!ctx.sourceHandle?.x)` in the
24
+ * handler — because the handle expresses capability as method optionality. This owns the third
25
+ * check, the shared "Not available" response, and the shared `extension_action_failed` error
26
+ * mapping, and hands the handler a method it does not have to re-narrow.
27
+ */
28
+ export declare const defineExtensionRoute: <TBody = undefined, TResponse extends object = object, TCapability extends ExtensionCapability = ExtensionCapability>(input: ExtensionRouteInput<TBody, TResponse, TCapability>) => WatcherRouteDefinition;
29
+ export {};
30
+ //# sourceMappingURL=defineExtensionRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineExtensionRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineExtensionRoute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE3G,qGAAqG;AACrG,MAAM,MAAM,mBAAmB,GAAG;KAChC,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,GAAG,SAAS,SAAS,eAAe,CAAC,CAAC,CAAC,GACjE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACpE,CAAC,GACD,KAAK,GACN,KAAK;CACR,CAAC,MAAM,eAAe,CAAC,CAAA;AAExB,mEAAmE;AACnE,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,KAAK,mBAAmB,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,EAAE,WAAW,SAAS,mBAAmB,IAAI;IACpG,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAClF,wGAAwG;IACxG,UAAU,EAAE,WAAW,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG;QAAE,UAAU,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;CAClJ,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAChC,KAAK,GAAG,SAAS,EACjB,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAE7D,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,KACvD,sBAkBA,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { formatError } from '@vforsh/argus-core';
2
+ import { respondApiError } from '../httpUtils.js';
3
+ import { defineJsonRoute } from './defineRoute.js';
4
+ /**
5
+ * Build a route that only an extension-backed source can serve.
6
+ *
7
+ * Capability used to be checked three times per request — the `extensionOnly` route flag, the
8
+ * router's `sourceHandle` presence check, and a per-method `if (!ctx.sourceHandle?.x)` in the
9
+ * handler — because the handle expresses capability as method optionality. This owns the third
10
+ * check, the shared "Not available" response, and the shared `extension_action_failed` error
11
+ * mapping, and hands the handler a method it does not have to re-narrow.
12
+ */
13
+ export const defineExtensionRoute = (input) => defineJsonRoute({
14
+ method: input.method,
15
+ path: input.path,
16
+ bodySchema: input.bodySchema,
17
+ extensionOnly: true,
18
+ handle: (handlerInput) => {
19
+ const capability = handlerInput.ctx.sourceHandle?.[input.capability];
20
+ if (!capability) {
21
+ return respondNotAvailable(handlerInput.res);
22
+ }
23
+ return input.handle({ ...handlerInput, capability });
24
+ },
25
+ handleError: (res, error) => {
26
+ respondApiError(res, 400, 'extension_action_failed', formatError(error));
27
+ return true;
28
+ },
29
+ });
30
+ const respondNotAvailable = (res) => {
31
+ respondApiError(res, 400, 'not_available', 'Not available');
32
+ };
33
+ //# sourceMappingURL=defineExtensionRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineExtensionRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineExtensionRoute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,eAAe,EAA2D,MAAM,kBAAkB,CAAA;AAuB3G;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAKnC,KAAyD,EAChC,EAAE,CAC3B,eAAe,CAAmB;IACjC,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,UAAU,CAAmD,CAAA;QACtH,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3B,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,yBAAyB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACxE,OAAO,IAAI,CAAA;IACZ,CAAC;CACD,CAAC,CAAA;AAEH,MAAM,mBAAmB,GAAG,CAAC,GAAwB,EAAQ,EAAE;IAC9D,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;AAC5D,CAAC,CAAA"}
@@ -11,16 +11,16 @@ export type WatcherRouteDefinition = {
11
11
  type JsonRouteInput<TBody, TResponse extends object> = {
12
12
  method: 'GET' | 'POST';
13
13
  path: string;
14
- bodySchema?: ProtocolSchema<TBody>;
15
- parseBody?: boolean;
16
14
  /**
17
- * Route-specific body validation, run after schema parsing and before the
18
- * request event is emitted. Return an error message to respond 400
19
- * `invalid_request`, or null when the body is valid. Prefer `bodySchema`
20
- * when a protocol schema exists; use this for validation rules that a
21
- * schema cannot express.
15
+ * Schema that parses and validates the request body.
16
+ *
17
+ * This is the only way to read a body. There used to be a `parseBody: true` escape
18
+ * hatch that handed the route an unvalidated payload already typed as `TBody` — the
19
+ * type parameter was a lie until a hand-written `validate` closure re-proved it, and
20
+ * ~450 LOC of per-route `typeof` checks and casts grew in that gap. Omit this and the
21
+ * handler receives no body at all.
22
22
  */
23
- validate?: (body: TBody) => string | null;
23
+ bodySchema?: ProtocolSchema<TBody>;
24
24
  endpoint?: HttpRequestEventMetadata['endpoint'];
25
25
  extensionOnly?: boolean;
26
26
  handle: (input: JsonRouteHandlerInput<TBody>) => Promise<TResponse | void> | TResponse | void;
@@ -1 +1 @@
1
- {"version":3,"file":"defineRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK5D,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,IAAI;IACtD,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IAC7F,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IAC1C,GAAG,EAAE,IAAI,CAAC,eAAe,CAAA;IACzB,GAAG,EAAE,IAAI,CAAC,cAAc,CAAA;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,KAAK,CAAA;CACX,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,SAAS,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EACnF,OAAO,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,KACrC,sBAsCD,CAAA"}
1
+ {"version":3,"file":"defineRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK5D,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,IAAI;IACtD,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IAC7F,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IAC1C,GAAG,EAAE,IAAI,CAAC,eAAe,CAAA;IACzB,GAAG,EAAE,IAAI,CAAC,cAAc,CAAA;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,KAAK,CAAA;CACX,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,SAAS,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EACnF,OAAO,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,KACrC,sBAmCD,CAAA"}
@@ -7,19 +7,17 @@ export const defineJsonRoute = (input) => ({
7
7
  path: input.path,
8
8
  extensionOnly: input.extensionOnly,
9
9
  handler: async (req, res, url, ctx) => {
10
- const shouldReadBody = input.bodySchema != null || input.parseBody === true;
11
- const rawBody = shouldReadBody ? await readJsonBody(req, res) : undefined;
12
- if (shouldReadBody && rawBody == null) {
13
- return;
14
- }
15
- const parsedBody = input.bodySchema?.parse(rawBody);
16
- if (parsedBody && !parsedBody.ok) {
17
- return respondInvalidBody(res, formatProtocolValidationIssues(parsedBody.issues));
18
- }
19
- const body = (parsedBody?.value ?? rawBody);
20
- const validationError = input.validate?.(body);
21
- if (validationError) {
22
- return respondInvalidBody(res, validationError);
10
+ let body = undefined;
11
+ if (input.bodySchema) {
12
+ const rawBody = await readJsonBody(req, res);
13
+ if (rawBody == null) {
14
+ return;
15
+ }
16
+ const parsed = input.bodySchema.parse(rawBody);
17
+ if (!parsed.ok) {
18
+ return respondInvalidBody(res, formatProtocolValidationIssues(parsed.issues));
19
+ }
20
+ body = parsed.value;
23
21
  }
24
22
  if (input.endpoint) {
25
23
  emitRequest(ctx, res, input.endpoint);
@@ -1 +1 @@
1
- {"version":3,"file":"defineRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoCxC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAuC,EACd,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;QAC3E,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,YAAY,CAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClF,IAAI,cAAc,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACvC,OAAM;QACP,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YAClC,OAAO,kBAAkB,CAAC,GAAG,EAAE,8BAA8B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QAClF,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,KAAK,IAAI,OAAO,CAAU,CAAA;QACpD,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACjE,IAAI,QAAQ,EAAE,CAAC;gBACd,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC3B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAM;YACP,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;CACD,CAAC,CAAA"}
1
+ {"version":3,"file":"defineRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoCxC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAuC,EACd,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,SAAkB,CAAA;QAC7B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAM;YACP,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,kBAAkB,CAAC,GAAG,EAAE,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9E,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,KAAK,CAAA;QACpB,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACjE,IAAI,QAAQ,EAAE,CAAC;gBACd,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC3B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAM;YACP,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;CACD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domSelectorRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAGjC,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,eAAe,KAAG,MAAM,GAAG,IAYzE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,IAYlG,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,KAAG,IAYhF,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,OAAO,OAAO,KAAG,OAavF,CAAA"}
1
+ {"version":3,"file":"domSelectorRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAGjC,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,eAAe,KAAG,MAAM,GAAG,IAYzE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,IAYlG,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,KAAG,IAYhF,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,OAAO,OAAO,KAAG,OAQvF,CAAA"}
@@ -1,4 +1,5 @@
1
- import { respondJson } from '../httpUtils.js';
1
+ import { hasErrorCode } from '../../errors.js';
2
+ import { respondApiError, respondJson } from '../httpUtils.js';
2
3
  /**
3
4
  * Validate the shared DOM target body shape (exactly one of selector/ref, plus
4
5
  * an optional `all` toggle). Returns an error message, or null when valid.
@@ -34,15 +35,11 @@ export const respondMissingElementRef = (res, ref) => {
34
35
  }, 400);
35
36
  };
36
37
  export const respondTargetResolutionError = (res, error) => {
37
- if (!error || typeof error !== 'object') {
38
- return false;
39
- }
40
- const code = 'code' in error ? error.code : undefined;
41
- if (code !== 'invalid_ref') {
38
+ if (!hasErrorCode(error, 'invalid_ref')) {
42
39
  return false;
43
40
  }
44
41
  const message = error instanceof Error && error.message ? error.message : 'Unknown or stale element ref. Run argus snapshot or locate again.';
45
- respondJson(res, { ok: false, error: { message, code: 'invalid_ref' } }, 400);
42
+ respondApiError(res, 400, 'invalid_ref', message);
46
43
  return true;
47
44
  };
48
45
  //# sourceMappingURL=domSelectorRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domSelectorRoute.js","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAQ7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAwB,EAAiB,EAAE;IAChF,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC1F,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC3E,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,4CAA4C,CAAA;IACpD,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,uBAAuB,CAAA;IAC/B,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;IACzG,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,oBAAoB,OAAO,+BAA+B,MAAM,cAAc;YACvF,IAAI,EAAE,kBAAkB;SACxB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAQ,EAAE;IACvF,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,iCAAiC,GAAG,uCAAuC;YACpF,IAAI,EAAE,aAAa;SACnB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAwB,EAAE,KAAc,EAAW,EAAE;IACjG,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,KAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mEAAmE,CAAA;IAC7I,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC7E,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"domSelectorRoute.js","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAQ9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAwB,EAAiB,EAAE;IAChF,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC1F,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC3E,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,4CAA4C,CAAA;IACpD,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,uBAAuB,CAAA;IAC/B,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;IACzG,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,oBAAoB,OAAO,+BAA+B,MAAM,cAAc;YACvF,IAAI,EAAE,kBAAkB;SACxB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAQ,EAAE;IACvF,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,iCAAiC,GAAG,uCAAuC;YACpF,IAAI,EAAE,aAAa;SACnB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAwB,EAAE,KAAc,EAAW,EAAE;IACjG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mEAAmE,CAAA;IAC7I,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IACjD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA"}