@browserbasehq/orca 3.4.0-preview-3 → 3.4.0-preview-5

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 (785) hide show
  1. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  2. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  3. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  4. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  5. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  6. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  7. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  8. package/dist/cjs/lib/v3/launch/local.js +47 -7
  9. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  10. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  11. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  12. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  13. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  14. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  15. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  16. package/dist/cjs/lib/v3/types/public/api.d.ts +283 -0
  17. package/dist/cjs/lib/v3/types/public/api.js +50 -3
  18. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  19. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  20. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  21. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  22. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  23. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  24. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  25. package/dist/cjs/lib/v3/v3.js +2 -47
  26. package/dist/cjs/lib/v3/v3.js.map +1 -1
  27. package/dist/cjs/lib/version.d.ts +1 -1
  28. package/dist/cjs/lib/version.js +1 -1
  29. package/dist/cjs/lib/version.js.map +1 -1
  30. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  31. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  32. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  33. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  34. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  35. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  36. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  37. package/dist/esm/lib/v3/launch/local.js +48 -8
  38. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  39. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  40. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  41. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  42. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  43. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  44. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  45. package/dist/esm/lib/v3/types/public/api.d.ts +283 -0
  46. package/dist/esm/lib/v3/types/public/api.js +48 -1
  47. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  48. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  49. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  50. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  51. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  52. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  53. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  54. package/dist/esm/lib/v3/v3.js +2 -47
  55. package/dist/esm/lib/v3/v3.js.map +1 -1
  56. package/dist/esm/lib/version.d.ts +1 -1
  57. package/dist/esm/lib/version.js +1 -1
  58. package/dist/esm/lib/version.js.map +1 -1
  59. package/package.json +8 -8
  60. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  61. package/dist/cjs/tests/cache-variables.test.js +0 -221
  62. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  63. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  64. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  65. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  66. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  67. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  68. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  69. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  70. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  71. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  72. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  73. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  74. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  75. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  76. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  77. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  78. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  79. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  80. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  81. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  82. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  83. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  84. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  85. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  86. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  87. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  88. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  89. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  90. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  91. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  92. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  93. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  94. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  95. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  96. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  97. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  98. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  99. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  100. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  101. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  102. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  103. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  104. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  105. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  106. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  107. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  108. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  109. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  110. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  111. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  112. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  113. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  114. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  115. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  116. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  117. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  118. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  119. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  120. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  121. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  122. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  123. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  124. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  125. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  126. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  127. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  128. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  129. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  130. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  131. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  132. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  133. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  134. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  135. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  136. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  137. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  138. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  139. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  140. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  141. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  142. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  143. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  144. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  145. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  146. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  147. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  148. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  149. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  150. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  151. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  152. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  153. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  154. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  155. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  156. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  157. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  158. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  159. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  160. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  161. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  162. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  163. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  164. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  165. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  166. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  167. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  168. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  169. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  170. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  171. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  172. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  173. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  174. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  175. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  176. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  177. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  178. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  179. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  180. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  181. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  182. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  183. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  184. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  185. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  186. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  187. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  188. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  189. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  190. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  191. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  192. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  193. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  194. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  195. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  196. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  197. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  198. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  199. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  200. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  201. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  202. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  203. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  204. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  205. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  206. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  207. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  208. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  209. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  210. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  211. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  212. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  213. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  214. package/dist/cjs/tests/integration/testUtils.js +0 -188
  215. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  216. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  217. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  218. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  219. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  220. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  221. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  222. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  223. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  224. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  225. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  226. package/dist/cjs/tests/integration/v3.config.js +0 -11
  227. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  228. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  229. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  230. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  231. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  232. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  233. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  234. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  235. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  236. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  237. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  238. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  239. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  240. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  241. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  242. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  243. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  244. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  245. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  246. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  247. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  248. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  249. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  250. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  251. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  252. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  253. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  254. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  255. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  256. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  257. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  258. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  259. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  260. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  261. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  262. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  263. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  264. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  265. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  266. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  267. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  268. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  269. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  270. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  271. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -135
  272. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  273. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  274. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  275. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  276. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  277. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  278. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  279. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  280. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -69
  281. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  282. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  283. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  284. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  285. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  286. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  287. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  288. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  289. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  290. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  291. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  292. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  293. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  294. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  295. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  296. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  297. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  298. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  299. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  300. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  301. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  302. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  303. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  304. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  305. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  306. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  307. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  308. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  309. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  310. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  311. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  312. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  313. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  314. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  315. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  316. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  317. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  318. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  319. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  320. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  321. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  322. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  323. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  324. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  325. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  326. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  327. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  328. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  329. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  330. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  331. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  332. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  333. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  334. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  335. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  336. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  337. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  338. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  339. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  340. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  341. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  342. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  343. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  344. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  345. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  346. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  347. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  348. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  349. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  350. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  351. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  352. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  353. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  354. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  355. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  356. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  357. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  358. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  359. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  360. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  361. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  362. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  363. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  364. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  365. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  366. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  367. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  368. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  369. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  370. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  371. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  372. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  373. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  374. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  375. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  376. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  377. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  378. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  379. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  380. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  381. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  382. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  383. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  384. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  385. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  386. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  387. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  388. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  389. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  390. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  391. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  392. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  393. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  394. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  395. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  396. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  397. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  398. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  399. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  400. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  401. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  402. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  403. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  404. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  405. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  406. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  407. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  408. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  409. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -933
  410. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  411. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  412. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  413. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  414. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  415. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  416. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  417. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  418. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  419. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  420. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  421. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  422. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  423. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  424. package/dist/esm/tests/cache-variables.test.js +0 -219
  425. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  426. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  427. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  428. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  429. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  430. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  431. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  432. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  433. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  434. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  435. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  436. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  437. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  438. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  439. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  440. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  441. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  442. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  443. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  444. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  445. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  446. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  447. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  448. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  449. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  450. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  451. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  452. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  453. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  454. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  455. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  456. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  457. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  458. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  459. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  460. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  461. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  462. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  463. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  464. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  465. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  466. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  467. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  468. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  469. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  470. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  471. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  472. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  473. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  474. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  475. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  476. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  477. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  478. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  479. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  480. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  481. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  482. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  483. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  484. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  485. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  486. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  487. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  488. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  489. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  490. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  491. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  492. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  493. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  494. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  495. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  496. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  497. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  498. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  499. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  500. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  501. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  502. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  503. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  504. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  505. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  506. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  507. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  508. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  509. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  510. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  511. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  512. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  513. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  514. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  515. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  516. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  517. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  518. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  519. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  520. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  521. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  522. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  523. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  524. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  525. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  526. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  527. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  528. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  529. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  530. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  531. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  532. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  533. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  534. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  535. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  536. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  537. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  538. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  539. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  540. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  541. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  542. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  543. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  544. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  545. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  546. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  547. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  548. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  549. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  550. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  551. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  552. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  553. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  554. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  555. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  556. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  557. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  558. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  559. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  560. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  561. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  562. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  563. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  564. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  565. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  566. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  567. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  568. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  569. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  570. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  571. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  572. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  573. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  574. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  575. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  576. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  577. package/dist/esm/tests/integration/testUtils.js +0 -178
  578. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  579. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  580. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  581. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  582. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  583. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  584. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  585. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  586. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  587. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  588. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  589. package/dist/esm/tests/integration/v3.config.js +0 -7
  590. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  591. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  592. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  593. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  594. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  595. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  596. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  597. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  598. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  599. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  600. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  601. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  602. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  603. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  604. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  605. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  606. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  607. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  608. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  609. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  610. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  611. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  612. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  613. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  614. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  615. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  616. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  617. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  618. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  619. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  620. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  621. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  622. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  623. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  624. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  625. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  626. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  627. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  628. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  629. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  630. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  631. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  632. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  633. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  634. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -133
  635. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  636. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  637. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  638. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  639. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  640. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  641. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  642. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  643. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -67
  644. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  645. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  646. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  647. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  648. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  649. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  650. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  651. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  652. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  653. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  654. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  655. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  656. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  657. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  658. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  659. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  660. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  661. package/dist/esm/tests/unit/cookies.test.js +0 -909
  662. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  663. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  664. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  665. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  666. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  667. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  668. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  669. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  670. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  671. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  672. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  673. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  674. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  675. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  676. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  677. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  678. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  679. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  680. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  681. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  682. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  683. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  684. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  685. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  686. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  687. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  688. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  689. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  690. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  691. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  692. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  693. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  694. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  695. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  696. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  697. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  698. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  699. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  700. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  701. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  702. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  703. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  704. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  705. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  706. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  707. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  708. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  709. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  710. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  711. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  712. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  713. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  714. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  715. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  716. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  717. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  718. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  719. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  720. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  721. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  722. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  723. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  724. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  725. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  726. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  727. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  728. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  729. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  730. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  731. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  732. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  733. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  734. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  735. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  736. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  737. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  738. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  739. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  740. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  741. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  742. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  743. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  744. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  745. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  746. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  747. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  748. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  749. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  750. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  751. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  752. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  753. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  754. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  755. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  756. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  757. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  758. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  759. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  760. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  761. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  762. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  763. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  764. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  765. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  766. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  767. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  768. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  769. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  770. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  771. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  772. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -898
  773. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  774. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  775. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  776. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  777. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  778. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  779. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  780. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  781. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  782. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  783. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  784. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  785. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,909 +0,0 @@
1
- import { beforeEach, describe, expect, it } from "vitest";
2
- import { filterCookies, normalizeCookieParams, cookieMatchesFilter, } from "../../lib/v3/understudy/cookies.js";
3
- import { MockCDPSession } from "./helpers/mockCDPSession.js";
4
- function makeCookie(overrides = {}) {
5
- return {
6
- name: "sid",
7
- value: "abc123",
8
- domain: "example.com",
9
- path: "/",
10
- expires: -1,
11
- httpOnly: false,
12
- secure: false,
13
- sameSite: "Lax",
14
- ...overrides,
15
- };
16
- }
17
- /** Convert our Cookie type into the shape CDP's Storage.getCookies returns. */
18
- function toCdpCookie(c) {
19
- return {
20
- name: c.name,
21
- value: c.value,
22
- domain: c.domain,
23
- path: c.path,
24
- expires: c.expires,
25
- httpOnly: c.httpOnly,
26
- secure: c.secure,
27
- sameSite: c.sameSite,
28
- size: c.name.length + c.value.length,
29
- session: c.expires === -1,
30
- priority: "Medium",
31
- sameParty: false,
32
- sourceScheme: "Secure",
33
- sourcePort: 443,
34
- };
35
- }
36
- describe("filterCookies", () => {
37
- const cookies = [
38
- makeCookie({ name: "a", domain: "example.com", path: "/", secure: false }),
39
- makeCookie({
40
- name: "b",
41
- domain: ".example.com",
42
- path: "/app",
43
- secure: true,
44
- }),
45
- makeCookie({ name: "c", domain: "other.com", path: "/", secure: false }),
46
- makeCookie({
47
- name: "d",
48
- domain: "sub.example.com",
49
- path: "/",
50
- secure: false,
51
- }),
52
- ];
53
- it("returns all cookies when urls is empty", () => {
54
- expect(filterCookies(cookies, [])).toEqual(cookies);
55
- });
56
- it("filters by domain (exact host match)", () => {
57
- const result = filterCookies(cookies, ["http://example.com/"]);
58
- const names = result.map((c) => c.name);
59
- expect(names).toContain("a");
60
- // "b" (.example.com) domain-matches but is secure — excluded on http://
61
- expect(names).not.toContain("b");
62
- expect(names).not.toContain("c");
63
- expect(names).not.toContain("d");
64
- });
65
- it("filters by domain (dot-prefixed domain matches on https)", () => {
66
- const result = filterCookies(cookies, ["https://example.com/app/settings"]);
67
- const names = result.map((c) => c.name);
68
- expect(names).toContain("a"); // example.com domain match, path "/" prefix
69
- expect(names).toContain("b"); // .example.com domain match + secure + https
70
- });
71
- it("filters by domain (subdomain matches dot-prefixed domain)", () => {
72
- const result = filterCookies(cookies, ["http://sub.example.com/"]);
73
- const names = result.map((c) => c.name);
74
- // "a" (example.com) → prepend dot → .example.com → matches .sub.example.com
75
- expect(names).toContain("a");
76
- // "b" (.example.com) domain-matches sub.example.com but is secure — excluded on http://
77
- expect(names).not.toContain("b");
78
- expect(names).toContain("d"); // sub.example.com matches exactly
79
- expect(names).not.toContain("c");
80
- });
81
- it("filters by path prefix", () => {
82
- const result = filterCookies(cookies, ["https://example.com/app/settings"]);
83
- const names = result.map((c) => c.name);
84
- expect(names).toContain("a"); // path "/" is a prefix of "/app/settings"
85
- expect(names).toContain("b"); // path "/app" is a prefix of "/app/settings"
86
- });
87
- it("excludes secure cookies for non-https URLs", () => {
88
- const result = filterCookies(cookies, ["http://example.com/app/page"]);
89
- const names = result.map((c) => c.name);
90
- expect(names).toContain("a");
91
- expect(names).not.toContain("b"); // secure cookie, http URL
92
- });
93
- it("allows secure cookies on loopback addresses regardless of protocol", () => {
94
- const cases = [
95
- { domain: "localhost", url: "http://localhost/" },
96
- { domain: "127.0.0.1", url: "http://127.0.0.1/" },
97
- { domain: "[::1]", url: "http://[::1]/" },
98
- ];
99
- for (const { domain, url } of cases) {
100
- const cookie = makeCookie({ name: "loop", domain, secure: true });
101
- const result = filterCookies([cookie], [url]);
102
- expect(result).toHaveLength(1);
103
- expect(result[0].name).toBe("loop");
104
- }
105
- });
106
- it("matches against multiple URLs (union)", () => {
107
- const result = filterCookies(cookies, [
108
- "http://example.com/",
109
- "http://other.com/",
110
- ]);
111
- const names = result.map((c) => c.name);
112
- expect(names).toContain("a");
113
- expect(names).toContain("c");
114
- });
115
- it("returns empty array when no cookies match any URL", () => {
116
- const result = filterCookies(cookies, ["http://nomatch.dev/"]);
117
- expect(result).toHaveLength(0);
118
- });
119
- it("returns empty array when cookie list is empty", () => {
120
- const result = filterCookies([], ["http://example.com/"]);
121
- expect(result).toHaveLength(0);
122
- });
123
- it("does not match a sibling subdomain against a host-only domain", () => {
124
- // Cookie for "api.example.com" should NOT match "www.example.com"
125
- const apiCookie = makeCookie({ name: "api", domain: "api.example.com" });
126
- const result = filterCookies([apiCookie], ["http://www.example.com/"]);
127
- expect(result).toHaveLength(0);
128
- });
129
- it("does not match a parent domain against a more specific cookie", () => {
130
- // Cookie for "sub.example.com" should NOT match "example.com"
131
- const subCookie = makeCookie({ name: "sub", domain: "sub.example.com" });
132
- const result = filterCookies([subCookie], ["http://example.com/"]);
133
- expect(result).toHaveLength(0);
134
- });
135
- it("does not match when path does not prefix the URL path", () => {
136
- const deepCookie = makeCookie({
137
- name: "deep",
138
- domain: "example.com",
139
- path: "/admin",
140
- });
141
- const result = filterCookies([deepCookie], ["http://example.com/public"]);
142
- expect(result).toHaveLength(0);
143
- });
144
- it("does not match when cookie path is a string prefix but not a path boundary", () => {
145
- // "/foo" should NOT match "/foobar" — only "/foo", "/foo/", "/foo/bar"
146
- const cookie = makeCookie({
147
- name: "boundary",
148
- domain: "example.com",
149
- path: "/foo",
150
- });
151
- expect(filterCookies([cookie], ["http://example.com/foobar"])).toHaveLength(0);
152
- expect(filterCookies([cookie], ["http://example.com/foo"])).toHaveLength(1);
153
- expect(filterCookies([cookie], ["http://example.com/foo/bar"])).toHaveLength(1);
154
- });
155
- it("matches root path against any URL path", () => {
156
- const rootCookie = makeCookie({
157
- name: "root",
158
- domain: "example.com",
159
- path: "/",
160
- });
161
- const result = filterCookies([rootCookie], ["http://example.com/deeply/nested/page"]);
162
- expect(result).toHaveLength(1);
163
- });
164
- it("handles URL with port numbers", () => {
165
- const c = makeCookie({ name: "port", domain: "localhost", path: "/" });
166
- const result = filterCookies([c], ["http://localhost:3000/api"]);
167
- expect(result).toHaveLength(1);
168
- });
169
- it("handles URL with query string and fragment", () => {
170
- const c = makeCookie({ name: "q", domain: "example.com", path: "/" });
171
- const result = filterCookies([c], ["http://example.com/page?q=1&r=2#section"]);
172
- expect(result).toHaveLength(1);
173
- });
174
- it("throws CookieValidationError for malformed URL", () => {
175
- const c = makeCookie({ name: "a", domain: "example.com" });
176
- expect(() => filterCookies([c], ["not-a-valid-url"])).toThrow(/Invalid URL passed to cookies\(\)/);
177
- });
178
- });
179
- describe("normalizeCookieParams", () => {
180
- it("passes through cookies with domain+path", () => {
181
- const input = [
182
- { name: "a", value: "1", domain: "example.com", path: "/" },
183
- ];
184
- const result = normalizeCookieParams(input);
185
- expect(result[0].domain).toBe("example.com");
186
- expect(result[0].path).toBe("/");
187
- expect(result[0].url).toBeUndefined();
188
- });
189
- it("derives domain, path, and secure from url", () => {
190
- const input = [
191
- { name: "a", value: "1", url: "https://example.com/app/page" },
192
- ];
193
- const result = normalizeCookieParams(input);
194
- expect(result[0].domain).toBe("example.com");
195
- expect(result[0].path).toBe("/app/");
196
- expect(result[0].secure).toBe(true);
197
- expect(result[0].url).toBeUndefined();
198
- });
199
- it("sets secure to false for http urls", () => {
200
- const input = [
201
- { name: "a", value: "1", url: "http://example.com/" },
202
- ];
203
- const result = normalizeCookieParams(input);
204
- expect(result[0].secure).toBe(false);
205
- });
206
- it("throws when neither url nor domain+path is provided", () => {
207
- expect(() => normalizeCookieParams([{ name: "a", value: "1" }])).toThrow(/must have a url or a domain\/path pair/);
208
- });
209
- it("throws when both url and domain are provided", () => {
210
- expect(() => normalizeCookieParams([
211
- { name: "a", value: "1", url: "https://x.com/", domain: "x.com" },
212
- ])).toThrow(/should have either url or domain/);
213
- });
214
- it("throws when both url and path are provided", () => {
215
- expect(() => normalizeCookieParams([
216
- { name: "a", value: "1", url: "https://x.com/", path: "/" },
217
- ])).toThrow(/should have either url or path/);
218
- });
219
- it("throws for invalid expires (negative, not -1)", () => {
220
- expect(() => normalizeCookieParams([
221
- { name: "a", value: "1", domain: "x.com", path: "/", expires: -5 },
222
- ])).toThrow(/invalid expires/);
223
- });
224
- it("allows expires of -1 (session cookie)", () => {
225
- const result = normalizeCookieParams([
226
- { name: "a", value: "1", domain: "x.com", path: "/", expires: -1 },
227
- ]);
228
- expect(result[0].expires).toBe(-1);
229
- });
230
- it("allows a positive expires timestamp", () => {
231
- const future = Math.floor(Date.now() / 1000) + 3600;
232
- const result = normalizeCookieParams([
233
- { name: "a", value: "1", domain: "x.com", path: "/", expires: future },
234
- ]);
235
- expect(result[0].expires).toBe(future);
236
- });
237
- it("throws for about:blank url", () => {
238
- expect(() => normalizeCookieParams([{ name: "a", value: "1", url: "about:blank" }])).toThrow(/Blank page/);
239
- });
240
- it("throws for data: url", () => {
241
- expect(() => normalizeCookieParams([
242
- { name: "a", value: "1", url: "data:text/html,hi" },
243
- ])).toThrow(/Data URL/);
244
- });
245
- it("throws CookieValidationError for malformed url", () => {
246
- expect(() => normalizeCookieParams([{ name: "a", value: "1", url: "not-a-url" }])).toThrow(/Cookie "a" has an invalid url/);
247
- });
248
- it("throws when sameSite is None but secure is false", () => {
249
- expect(() => normalizeCookieParams([
250
- {
251
- name: "a",
252
- value: "1",
253
- domain: "x.com",
254
- path: "/",
255
- sameSite: "None",
256
- secure: false,
257
- },
258
- ])).toThrow(/sameSite: "None" without secure: true/);
259
- });
260
- it("throws when sameSite is None and secure is omitted (undefined)", () => {
261
- // CDP defaults secure to false when omitted, so the browser will reject it.
262
- expect(() => normalizeCookieParams([
263
- { name: "a", value: "1", domain: "x.com", path: "/", sameSite: "None" },
264
- ])).toThrow(/sameSite: "None" without secure: true/);
265
- });
266
- it("does NOT throw when sameSite is None and secure is true", () => {
267
- const result = normalizeCookieParams([
268
- {
269
- name: "a",
270
- value: "1",
271
- domain: "x.com",
272
- path: "/",
273
- sameSite: "None",
274
- secure: true,
275
- },
276
- ]);
277
- expect(result[0].sameSite).toBe("None");
278
- expect(result[0].secure).toBe(true);
279
- });
280
- it("derives root path from URL with no trailing path segments", () => {
281
- const result = normalizeCookieParams([
282
- { name: "a", value: "1", url: "https://example.com" },
283
- ]);
284
- // URL("https://example.com").pathname is "/", lastIndexOf("/") + 1 = 1 → "/"
285
- expect(result[0].path).toBe("/");
286
- });
287
- it("handles URL with port number", () => {
288
- const result = normalizeCookieParams([
289
- { name: "a", value: "1", url: "https://localhost:3000/api/v1" },
290
- ]);
291
- expect(result[0].domain).toBe("localhost");
292
- expect(result[0].path).toBe("/api/");
293
- expect(result[0].secure).toBe(true);
294
- });
295
- it("handles URL with query string (ignores query)", () => {
296
- const result = normalizeCookieParams([
297
- { name: "a", value: "1", url: "https://example.com/page?q=1" },
298
- ]);
299
- expect(result[0].domain).toBe("example.com");
300
- expect(result[0].path).toBe("/");
301
- });
302
- it("normalises multiple cookies in a single call", () => {
303
- const result = normalizeCookieParams([
304
- { name: "a", value: "1", url: "https://one.com/x" },
305
- { name: "b", value: "2", domain: "two.com", path: "/" },
306
- { name: "c", value: "3", url: "http://three.com/y/z" },
307
- ]);
308
- expect(result).toHaveLength(3);
309
- expect(result[0].domain).toBe("one.com");
310
- expect(result[1].domain).toBe("two.com");
311
- expect(result[2].domain).toBe("three.com");
312
- expect(result[2].secure).toBe(false);
313
- });
314
- it("does not mutate the original input array", () => {
315
- const input = [
316
- { name: "a", value: "1", url: "https://example.com/app" },
317
- ];
318
- const frozen = { ...input[0] };
319
- normalizeCookieParams(input);
320
- expect(input[0]).toEqual(frozen);
321
- });
322
- it("preserves optional fields that are explicitly set", () => {
323
- const result = normalizeCookieParams([
324
- {
325
- name: "full",
326
- value: "val",
327
- domain: "x.com",
328
- path: "/p",
329
- expires: 9999999999,
330
- httpOnly: true,
331
- secure: true,
332
- sameSite: "Strict",
333
- },
334
- ]);
335
- const c = result[0];
336
- expect(c.httpOnly).toBe(true);
337
- expect(c.secure).toBe(true);
338
- expect(c.sameSite).toBe("Strict");
339
- expect(c.expires).toBe(9999999999);
340
- });
341
- it("allows expires of 0 (epoch — effectively expired)", () => {
342
- // 0 is a positive-ish edge case; browsers treat it as already expired
343
- const result = normalizeCookieParams([
344
- { name: "a", value: "1", domain: "x.com", path: "/", expires: 0 },
345
- ]);
346
- expect(result[0].expires).toBe(0);
347
- });
348
- it("throws on the first invalid cookie in a batch", () => {
349
- expect(() => normalizeCookieParams([
350
- { name: "ok", value: "1", domain: "x.com", path: "/" },
351
- { name: "bad", value: "2" }, // missing url/domain+path
352
- ])).toThrow(/Cookie "bad"/);
353
- });
354
- it("includes cookie name in every error message", () => {
355
- const cases = [
356
- () => normalizeCookieParams([{ name: "NAMED", value: "1" }]),
357
- () => normalizeCookieParams([
358
- { name: "NAMED", value: "1", url: "https://x.com/", domain: "x" },
359
- ]),
360
- () => normalizeCookieParams([
361
- { name: "NAMED", value: "1", url: "about:blank" },
362
- ]),
363
- () => normalizeCookieParams([
364
- {
365
- name: "NAMED",
366
- value: "1",
367
- domain: "x.com",
368
- path: "/",
369
- sameSite: "None",
370
- secure: false,
371
- },
372
- ]),
373
- ];
374
- for (const fn of cases) {
375
- expect(fn).toThrow(/NAMED/);
376
- }
377
- });
378
- });
379
- describe("cookieMatchesFilter", () => {
380
- const cookie = makeCookie({
381
- name: "session",
382
- domain: ".example.com",
383
- path: "/app",
384
- });
385
- it("matches when all filters match (exact strings)", () => {
386
- expect(cookieMatchesFilter(cookie, {
387
- name: "session",
388
- domain: ".example.com",
389
- path: "/app",
390
- })).toBe(true);
391
- });
392
- it("does not match when name differs", () => {
393
- expect(cookieMatchesFilter(cookie, { name: "other" })).toBe(false);
394
- });
395
- it("does not match when domain differs", () => {
396
- expect(cookieMatchesFilter(cookie, { domain: "other.com" })).toBe(false);
397
- });
398
- it("does not match when path differs", () => {
399
- expect(cookieMatchesFilter(cookie, { path: "/other" })).toBe(false);
400
- });
401
- it("matches with regex name", () => {
402
- expect(cookieMatchesFilter(cookie, { name: /^sess/ })).toBe(true);
403
- expect(cookieMatchesFilter(cookie, { name: /^nope/ })).toBe(false);
404
- });
405
- it("matches with regex domain", () => {
406
- expect(cookieMatchesFilter(cookie, { domain: /example\.com$/ })).toBe(true);
407
- expect(cookieMatchesFilter(cookie, { domain: /^other/ })).toBe(false);
408
- });
409
- it("matches with regex path", () => {
410
- expect(cookieMatchesFilter(cookie, { path: /^\/app/ })).toBe(true);
411
- });
412
- it("undefined filters match everything", () => {
413
- expect(cookieMatchesFilter(cookie, {})).toBe(true);
414
- expect(cookieMatchesFilter(cookie, { name: undefined })).toBe(true);
415
- });
416
- it("requires ALL filters to match (AND logic)", () => {
417
- // name matches but domain does not
418
- expect(cookieMatchesFilter(cookie, { name: "session", domain: "wrong.com" })).toBe(false);
419
- });
420
- it("handles global regex lastIndex correctly", () => {
421
- const re = /sess/g;
422
- re.lastIndex = 999;
423
- expect(cookieMatchesFilter(cookie, { name: re })).toBe(true);
424
- });
425
- it("exact string does not do substring matching", () => {
426
- // filter name "sess" should NOT match cookie name "session"
427
- expect(cookieMatchesFilter(cookie, { name: "sess" })).toBe(false);
428
- });
429
- it("regex can do substring matching", () => {
430
- // regex /sess/ SHOULD match cookie name "session" (substring)
431
- expect(cookieMatchesFilter(cookie, { name: /sess/ })).toBe(true);
432
- });
433
- it("works with all three regex filters combined", () => {
434
- expect(cookieMatchesFilter(cookie, {
435
- name: /^session$/,
436
- domain: /example/,
437
- path: /^\/app$/,
438
- })).toBe(true);
439
- // One of three fails
440
- expect(cookieMatchesFilter(cookie, {
441
- name: /^session$/,
442
- domain: /example/,
443
- path: /^\/wrong$/,
444
- })).toBe(false);
445
- });
446
- it("empty string filter only matches empty cookie property", () => {
447
- const emptyPathCookie = makeCookie({
448
- name: "x",
449
- domain: "a.com",
450
- path: "",
451
- });
452
- expect(cookieMatchesFilter(emptyPathCookie, { path: "" })).toBe(true);
453
- expect(cookieMatchesFilter(cookie, { path: "" })).toBe(false);
454
- });
455
- it("is called once per cookie (no cross-contamination between calls)", () => {
456
- const c1 = makeCookie({ name: "alpha", domain: "a.com", path: "/" });
457
- const c2 = makeCookie({ name: "beta", domain: "b.com", path: "/x" });
458
- const filter = { name: "alpha", domain: "a.com" };
459
- expect(cookieMatchesFilter(c1, filter)).toBe(true);
460
- expect(cookieMatchesFilter(c2, filter)).toBe(false);
461
- });
462
- });
463
- describe("V3Context cookie methods", () => {
464
- // We test V3Context methods by constructing a minimal instance with a mock
465
- // CDP connection. V3Context.create() requires a real WebSocket, so we build
466
- // one via type-casting a MockCDPSession into the `conn` slot.
467
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
468
- let V3ContextClass;
469
- beforeEach(async () => {
470
- const mod = await import("../../lib/v3/understudy/context.js");
471
- V3ContextClass = mod.V3Context;
472
- });
473
- function makeContext(cdpHandlers) {
474
- const mockConn = new MockCDPSession(cdpHandlers, "root");
475
- // V3Context stores the connection as `conn` (readonly). We create an
476
- // object with the real prototype so we get the actual method implementations.
477
- const ctx = Object.create(V3ContextClass.prototype);
478
- // Assign the mock connection
479
- Object.defineProperty(ctx, "conn", { value: mockConn, writable: false });
480
- return ctx;
481
- }
482
- function getMockConn(ctx) {
483
- return ctx.conn;
484
- }
485
- describe("cookies()", () => {
486
- it("returns all cookies from Storage.getCookies", async () => {
487
- const cdpCookies = [
488
- toCdpCookie(makeCookie({ name: "a", domain: "example.com" })),
489
- toCdpCookie(makeCookie({ name: "b", domain: "other.com" })),
490
- ];
491
- const ctx = makeContext({
492
- "Storage.getCookies": () => ({ cookies: cdpCookies }),
493
- });
494
- const result = await ctx.cookies();
495
- expect(result).toHaveLength(2);
496
- expect(result.map((c) => c.name)).toEqual(["a", "b"]);
497
- });
498
- it("filters by URL when provided as string", async () => {
499
- const cdpCookies = [
500
- toCdpCookie(makeCookie({ name: "a", domain: "example.com" })),
501
- toCdpCookie(makeCookie({ name: "b", domain: "other.com" })),
502
- ];
503
- const ctx = makeContext({
504
- "Storage.getCookies": () => ({ cookies: cdpCookies }),
505
- });
506
- const result = await ctx.cookies("http://example.com/");
507
- expect(result).toHaveLength(1);
508
- expect(result[0].name).toBe("a");
509
- });
510
- it("filters by URL when provided as array", async () => {
511
- const cdpCookies = [
512
- toCdpCookie(makeCookie({ name: "a", domain: "example.com" })),
513
- toCdpCookie(makeCookie({ name: "b", domain: "other.com" })),
514
- ];
515
- const ctx = makeContext({
516
- "Storage.getCookies": () => ({ cookies: cdpCookies }),
517
- });
518
- const result = await ctx.cookies(["http://other.com/"]);
519
- expect(result).toHaveLength(1);
520
- expect(result[0].name).toBe("b");
521
- });
522
- it("defaults sameSite to Lax when CDP returns undefined", async () => {
523
- const cdpCookie = {
524
- ...toCdpCookie(makeCookie()),
525
- sameSite: undefined,
526
- };
527
- const ctx = makeContext({
528
- "Storage.getCookies": () => ({ cookies: [cdpCookie] }),
529
- });
530
- const result = await ctx.cookies();
531
- expect(result[0].sameSite).toBe("Lax");
532
- });
533
- it("returns empty array when browser has no cookies", async () => {
534
- const ctx = makeContext({
535
- "Storage.getCookies": () => ({ cookies: [] }),
536
- });
537
- const result = await ctx.cookies();
538
- expect(result).toEqual([]);
539
- });
540
- it("maps all CDP cookie fields to our Cookie type", async () => {
541
- const cdpCookie = toCdpCookie(makeCookie({
542
- name: "full",
543
- value: "v",
544
- domain: ".test.com",
545
- path: "/p",
546
- expires: 1700000000,
547
- httpOnly: true,
548
- secure: true,
549
- sameSite: "Strict",
550
- }));
551
- const ctx = makeContext({
552
- "Storage.getCookies": () => ({ cookies: [cdpCookie] }),
553
- });
554
- const result = await ctx.cookies();
555
- expect(result[0]).toEqual({
556
- name: "full",
557
- value: "v",
558
- domain: ".test.com",
559
- path: "/p",
560
- expires: 1700000000,
561
- httpOnly: true,
562
- secure: true,
563
- sameSite: "Strict",
564
- });
565
- });
566
- it("strips extra CDP fields (size, priority, etc.) from result", async () => {
567
- const cdpCookie = toCdpCookie(makeCookie({ name: "stripped" }));
568
- const ctx = makeContext({
569
- "Storage.getCookies": () => ({ cookies: [cdpCookie] }),
570
- });
571
- const result = await ctx.cookies();
572
- const keys = Object.keys(result[0]);
573
- expect(keys).not.toContain("size");
574
- expect(keys).not.toContain("priority");
575
- expect(keys).not.toContain("sourceScheme");
576
- expect(keys).not.toContain("sourcePort");
577
- });
578
- it("calls Storage.getCookies exactly once per invocation", async () => {
579
- const ctx = makeContext({
580
- "Storage.getCookies": () => ({ cookies: [] }),
581
- });
582
- await ctx.cookies();
583
- await ctx.cookies("http://example.com");
584
- const calls = getMockConn(ctx).callsFor("Storage.getCookies");
585
- expect(calls).toHaveLength(2);
586
- });
587
- });
588
- describe("addCookies()", () => {
589
- it("sends all cookies in a single Storage.setCookies call", async () => {
590
- const ctx = makeContext({
591
- "Storage.setCookies": () => ({}),
592
- });
593
- await ctx.addCookies([
594
- { name: "a", value: "1", domain: "example.com", path: "/" },
595
- { name: "b", value: "2", domain: "other.com", path: "/" },
596
- ]);
597
- const calls = getMockConn(ctx).callsFor("Storage.setCookies");
598
- expect(calls).toHaveLength(1);
599
- expect(calls[0].params).toMatchObject({
600
- cookies: [
601
- { name: "a", domain: "example.com" },
602
- { name: "b", domain: "other.com" },
603
- ],
604
- });
605
- });
606
- it("derives domain/path/secure from url", async () => {
607
- const ctx = makeContext({
608
- "Storage.setCookies": () => ({}),
609
- });
610
- await ctx.addCookies([
611
- { name: "a", value: "1", url: "https://example.com/app/page" },
612
- ]);
613
- const calls = getMockConn(ctx).callsFor("Storage.setCookies");
614
- expect(calls[0].params).toMatchObject({
615
- cookies: [
616
- { name: "a", domain: "example.com", path: "/app/", secure: true },
617
- ],
618
- });
619
- });
620
- it("throws when Storage.setCookies fails", async () => {
621
- const ctx = makeContext({
622
- "Storage.setCookies": () => {
623
- throw new Error("CDP failure");
624
- },
625
- });
626
- await expect(ctx.addCookies([
627
- { name: "bad", value: "x", domain: "example.com", path: "/" },
628
- ])).rejects.toThrow(/Failed to set cookies \["bad"\]/);
629
- });
630
- it("throws for sameSite None without secure", async () => {
631
- const ctx = makeContext({
632
- "Storage.setCookies": () => ({}),
633
- });
634
- await expect(ctx.addCookies([
635
- {
636
- name: "x",
637
- value: "1",
638
- domain: "example.com",
639
- path: "/",
640
- sameSite: "None",
641
- secure: false,
642
- },
643
- ])).rejects.toThrow(/sameSite: "None" without secure: true/);
644
- });
645
- it("does nothing when passed an empty array", async () => {
646
- const ctx = makeContext({
647
- "Storage.setCookies": () => ({}),
648
- });
649
- await ctx.addCookies([]);
650
- const calls = getMockConn(ctx).callsFor("Storage.setCookies");
651
- expect(calls).toHaveLength(0);
652
- });
653
- it("sends all cookie fields to CDP (including optional ones)", async () => {
654
- const ctx = makeContext({
655
- "Storage.setCookies": () => ({}),
656
- });
657
- await ctx.addCookies([
658
- {
659
- name: "full",
660
- value: "val",
661
- domain: "x.com",
662
- path: "/p",
663
- expires: 9999999999,
664
- httpOnly: true,
665
- secure: true,
666
- sameSite: "Strict",
667
- },
668
- ]);
669
- const calls = getMockConn(ctx).callsFor("Storage.setCookies");
670
- expect(calls[0].params).toEqual({
671
- cookies: [
672
- {
673
- name: "full",
674
- value: "val",
675
- domain: "x.com",
676
- path: "/p",
677
- expires: 9999999999,
678
- httpOnly: true,
679
- secure: true,
680
- sameSite: "Strict",
681
- },
682
- ],
683
- });
684
- });
685
- it("error message includes all cookie names when batch fails", async () => {
686
- const ctx = makeContext({
687
- "Storage.setCookies": () => {
688
- throw new Error("CDP failure");
689
- },
690
- });
691
- await expect(ctx.addCookies([
692
- { name: "alpha", value: "1", domain: "a.com", path: "/" },
693
- { name: "beta", value: "2", domain: "b.com", path: "/" },
694
- ])).rejects.toThrow(/Failed to set cookies \["alpha", "beta"\]/);
695
- });
696
- });
697
- describe("clearCookies()", () => {
698
- const cdpCookies = [
699
- toCdpCookie(makeCookie({ name: "session", domain: "example.com", path: "/" })),
700
- toCdpCookie(makeCookie({ name: "_ga", domain: ".example.com", path: "/" })),
701
- toCdpCookie(makeCookie({ name: "pref", domain: "other.com", path: "/settings" })),
702
- ];
703
- it("uses atomic Storage.clearCookies when called with no options", async () => {
704
- const ctx = makeContext({
705
- "Storage.clearCookies": () => ({}),
706
- });
707
- await ctx.clearCookies();
708
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
709
- expect(clearCalls).toHaveLength(1);
710
- // Should NOT have fetched or re-set anything
711
- const getCalls = getMockConn(ctx).callsFor("Storage.getCookies");
712
- expect(getCalls).toHaveLength(0);
713
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
714
- expect(setCalls).toHaveLength(0);
715
- });
716
- it("clears and re-adds only non-matching cookies (name filter)", async () => {
717
- const ctx = makeContext({
718
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
719
- "Storage.clearCookies": () => ({}),
720
- "Storage.setCookies": () => ({}),
721
- });
722
- await ctx.clearCookies({ name: "_ga" });
723
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
724
- expect(clearCalls).toHaveLength(1);
725
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
726
- expect(setCalls).toHaveLength(1);
727
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
728
- expect(kept).toEqual(["session", "pref"]);
729
- });
730
- it("clears and re-adds only non-matching cookies (domain filter)", async () => {
731
- const ctx = makeContext({
732
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
733
- "Storage.clearCookies": () => ({}),
734
- "Storage.setCookies": () => ({}),
735
- });
736
- await ctx.clearCookies({ domain: "other.com" });
737
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
738
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
739
- expect(kept).toEqual(["session", "_ga"]);
740
- });
741
- it("clears and re-adds only non-matching cookies (regex name)", async () => {
742
- const ctx = makeContext({
743
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
744
- "Storage.clearCookies": () => ({}),
745
- "Storage.setCookies": () => ({}),
746
- });
747
- await ctx.clearCookies({ name: /^_ga/ });
748
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
749
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
750
- expect(kept).toEqual(["session", "pref"]);
751
- });
752
- it("applies AND logic across multiple filters", async () => {
753
- const ctx = makeContext({
754
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
755
- "Storage.clearCookies": () => ({}),
756
- "Storage.setCookies": () => ({}),
757
- });
758
- await ctx.clearCookies({ name: "session", domain: "example.com" });
759
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
760
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
761
- expect(kept).toEqual(["_ga", "pref"]);
762
- });
763
- it("does nothing when filter matches no cookies", async () => {
764
- const ctx = makeContext({
765
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
766
- "Storage.clearCookies": () => ({}),
767
- "Storage.setCookies": () => ({}),
768
- });
769
- await ctx.clearCookies({ name: "nonexistent" });
770
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
771
- expect(clearCalls).toHaveLength(0);
772
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
773
- expect(setCalls).toHaveLength(0);
774
- });
775
- it("clears without re-adding when filter matches all cookies", async () => {
776
- const ctx = makeContext({
777
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
778
- "Storage.clearCookies": () => ({}),
779
- "Storage.setCookies": () => ({}),
780
- });
781
- await ctx.clearCookies({ name: /.*/ });
782
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
783
- expect(clearCalls).toHaveLength(1);
784
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
785
- expect(setCalls).toHaveLength(0);
786
- });
787
- it("handles regex that matches multiple cookies", async () => {
788
- const ctx = makeContext({
789
- "Storage.getCookies": () => ({
790
- cookies: [
791
- toCdpCookie(makeCookie({ name: "_ga_ABC", domain: "example.com", path: "/" })),
792
- toCdpCookie(makeCookie({ name: "_ga_DEF", domain: "example.com", path: "/" })),
793
- toCdpCookie(makeCookie({ name: "_gid", domain: "example.com", path: "/" })),
794
- toCdpCookie(makeCookie({ name: "session", domain: "example.com", path: "/" })),
795
- ],
796
- }),
797
- "Storage.clearCookies": () => ({}),
798
- "Storage.setCookies": () => ({}),
799
- });
800
- await ctx.clearCookies({ name: /^_ga/ });
801
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
802
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
803
- expect(kept).toContain("_gid");
804
- expect(kept).toContain("session");
805
- expect(kept).not.toContain("_ga_ABC");
806
- expect(kept).not.toContain("_ga_DEF");
807
- });
808
- it("regex domain filter combined with path filter", async () => {
809
- const ctx = makeContext({
810
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
811
- "Storage.clearCookies": () => ({}),
812
- "Storage.setCookies": () => ({}),
813
- });
814
- await ctx.clearCookies({ domain: /example/, path: "/settings" });
815
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
816
- expect(clearCalls).toHaveLength(0);
817
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
818
- expect(setCalls).toHaveLength(0);
819
- });
820
- it("clearCookies with empty options object uses atomic clear (same as no args)", async () => {
821
- const ctx = makeContext({
822
- "Storage.clearCookies": () => ({}),
823
- });
824
- await ctx.clearCookies({});
825
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
826
- expect(clearCalls).toHaveLength(1);
827
- });
828
- it("clears and re-adds only non-matching cookies (path filter)", async () => {
829
- const ctx = makeContext({
830
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
831
- "Storage.clearCookies": () => ({}),
832
- "Storage.setCookies": () => ({}),
833
- });
834
- await ctx.clearCookies({ path: "/settings" });
835
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
836
- expect(clearCalls).toHaveLength(1);
837
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
838
- expect(setCalls).toHaveLength(1);
839
- const kept = (setCalls[0].params?.cookies).map((c) => c.name);
840
- expect(kept).toEqual(["session", "_ga"]);
841
- expect(kept).not.toContain("pref");
842
- });
843
- it("throws when Storage.getCookies fails during filtered clear", async () => {
844
- const ctx = makeContext({
845
- "Storage.getCookies": () => {
846
- throw new Error("CDP getCookies failure");
847
- },
848
- "Storage.clearCookies": () => ({}),
849
- "Storage.setCookies": () => ({}),
850
- });
851
- await expect(ctx.clearCookies({ name: "session" })).rejects.toThrow(/CDP getCookies failure/);
852
- // clearCookies and setCookies should never have been called
853
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
854
- expect(clearCalls).toHaveLength(0);
855
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
856
- expect(setCalls).toHaveLength(0);
857
- });
858
- it("throws when Storage.clearCookies fails during filtered clear", async () => {
859
- const ctx = makeContext({
860
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
861
- "Storage.clearCookies": () => {
862
- throw new Error("CDP clearCookies failure");
863
- },
864
- "Storage.setCookies": () => ({}),
865
- });
866
- await expect(ctx.clearCookies({ name: "session" })).rejects.toThrow(/CDP clearCookies failure/);
867
- // setCookies should never have been called — cookies are untouched
868
- const setCalls = getMockConn(ctx).callsFor("Storage.setCookies");
869
- expect(setCalls).toHaveLength(0);
870
- });
871
- it("throws when Storage.setCookies fails during re-add, cookies are already wiped", async () => {
872
- const ctx = makeContext({
873
- "Storage.getCookies": () => ({ cookies: [...cdpCookies] }),
874
- "Storage.clearCookies": () => ({}),
875
- "Storage.setCookies": () => {
876
- throw new Error("CDP setCookies failure");
877
- },
878
- });
879
- await expect(ctx.clearCookies({ name: "session" })).rejects.toThrow(/cookie jar is now empty/);
880
- // clearCookies WAS called — cookies are gone
881
- const clearCalls = getMockConn(ctx).callsFor("Storage.clearCookies");
882
- expect(clearCalls).toHaveLength(1);
883
- });
884
- });
885
- describe("cookies() sameSite mapping", () => {
886
- it("passes through valid sameSite values as-is", async () => {
887
- for (const sameSite of ["Strict", "Lax", "None"]) {
888
- const cdpCookie = { ...toCdpCookie(makeCookie()), sameSite };
889
- const ctx = makeContext({
890
- "Storage.getCookies": () => ({ cookies: [cdpCookie] }),
891
- });
892
- const result = await ctx.cookies();
893
- expect(result[0].sameSite).toBe(sameSite);
894
- }
895
- });
896
- it("does not normalize lowercase sameSite values from CDP", async () => {
897
- // CDP may return lowercase values; the current implementation casts
898
- // without normalizing, so "none" passes through as-is.
899
- const cdpCookie = { ...toCdpCookie(makeCookie()), sameSite: "none" };
900
- const ctx = makeContext({
901
- "Storage.getCookies": () => ({ cookies: [cdpCookie] }),
902
- });
903
- const result = await ctx.cookies();
904
- // This documents the current behavior: lowercase is NOT normalized.
905
- expect(result[0].sameSite).toBe("none");
906
- });
907
- });
908
- });
909
- //# sourceMappingURL=cookies.test.js.map