@browserbasehq/orca 3.4.0-preview-4 → 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 (765) 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/launch/local.d.ts +2 -7
  4. package/dist/cjs/lib/v3/launch/local.js +47 -7
  5. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  6. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  7. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  8. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  9. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  10. package/dist/cjs/lib/v3/types/public/api.d.ts +283 -0
  11. package/dist/cjs/lib/v3/types/public/api.js +50 -3
  12. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  13. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  14. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  15. package/dist/cjs/lib/v3/v3.js +2 -47
  16. package/dist/cjs/lib/v3/v3.js.map +1 -1
  17. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  18. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  19. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  20. package/dist/esm/lib/v3/launch/local.js +48 -8
  21. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  22. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  23. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  24. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  25. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  26. package/dist/esm/lib/v3/types/public/api.d.ts +283 -0
  27. package/dist/esm/lib/v3/types/public/api.js +48 -1
  28. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  29. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  30. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  31. package/dist/esm/lib/v3/v3.js +2 -47
  32. package/dist/esm/lib/v3/v3.js.map +1 -1
  33. package/package.json +4 -5
  34. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  35. package/dist/cjs/tests/cache-variables.test.js +0 -221
  36. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  37. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  38. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  39. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  40. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  41. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  42. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  43. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  44. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  45. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  46. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  47. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  48. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  49. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  50. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  51. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  52. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  53. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  54. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  55. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  56. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  57. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  58. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  59. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  60. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  61. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  62. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  63. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  64. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  65. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  66. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  67. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  68. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  69. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  70. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  71. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  72. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  73. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  74. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  75. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  76. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  77. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  78. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  79. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  80. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  81. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  82. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  83. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  84. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  85. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  86. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  87. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  88. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  89. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  90. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  91. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  92. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  93. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  94. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  95. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  96. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  97. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  98. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  99. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  100. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  101. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  102. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  103. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  104. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  105. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  106. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  107. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  108. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  109. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  110. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  111. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  112. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  113. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  114. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  115. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  116. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  117. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  118. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  119. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  120. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  121. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  122. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  123. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  124. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  125. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  126. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  127. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  128. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  129. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  130. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  131. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  132. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  133. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  134. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  135. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  136. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  137. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  138. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  139. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  140. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  141. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  142. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  143. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  144. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  145. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  146. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  147. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  148. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  149. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  150. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  151. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  152. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  153. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  154. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  155. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  156. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  157. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  158. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  159. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  160. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  161. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  162. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  163. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  164. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  165. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  166. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  167. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  168. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  169. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  170. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  171. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  172. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  173. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  174. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  175. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  176. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  177. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  178. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  179. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  180. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  181. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  182. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  183. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  184. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  185. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  186. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  187. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  188. package/dist/cjs/tests/integration/testUtils.js +0 -188
  189. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  190. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  191. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  192. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  193. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  194. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  195. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  196. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  197. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  198. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  199. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  200. package/dist/cjs/tests/integration/v3.config.js +0 -11
  201. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  202. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  203. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  204. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  205. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  206. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  207. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  208. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  209. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  210. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  211. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  212. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  213. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  214. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  215. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  216. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  217. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  218. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  219. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  220. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  221. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  222. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  223. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  224. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  225. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  226. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  227. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  228. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  229. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  230. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  231. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  232. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  233. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  234. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  235. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  236. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  237. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  238. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  239. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  240. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  241. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  242. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  243. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  244. package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.d.ts +0 -1
  245. package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.js +0 -87
  246. package/dist/cjs/tests/unit/anthropic-cua-triple-click.test.js.map +0 -1
  247. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  248. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -135
  249. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  250. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  251. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  252. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  253. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  254. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  255. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  256. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  257. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -69
  258. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  259. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  260. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  261. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  262. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  263. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  264. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  265. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  266. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  267. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  268. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  269. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  270. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  271. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  272. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  273. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  274. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  275. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  276. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  277. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  278. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  279. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  280. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  281. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  282. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  283. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  284. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  285. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  286. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  287. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  288. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  289. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  290. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  291. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  292. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  293. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  294. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  295. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  296. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  297. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  298. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  299. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  300. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  301. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  302. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  303. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  304. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  305. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  306. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  307. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  308. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  309. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  310. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  311. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  312. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  313. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  314. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  315. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  316. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  317. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  318. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  319. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  320. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  321. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  322. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  323. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  324. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  325. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  326. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  327. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  328. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  329. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  330. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  331. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  332. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  333. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  334. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  335. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  336. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  337. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  338. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  339. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  340. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  341. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  342. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  343. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  344. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  345. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  346. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  347. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  348. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  349. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  350. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  351. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  352. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  353. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  354. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  355. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  356. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  357. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  358. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  359. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -339
  360. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  361. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  362. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  363. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  364. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  365. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  366. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  367. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  368. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  369. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  370. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  371. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  372. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  373. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  374. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  375. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  376. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  377. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  378. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  379. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  380. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -127
  381. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  382. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  383. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  384. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  385. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  386. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -933
  387. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  388. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  389. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  390. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  391. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  392. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  393. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  394. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  395. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  396. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  397. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  398. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  399. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  400. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  401. package/dist/esm/tests/cache-variables.test.js +0 -219
  402. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  403. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  404. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  405. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  406. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  407. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  408. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  409. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  410. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  411. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  412. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  413. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  414. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  415. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  416. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  417. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  418. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  419. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  420. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  421. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  422. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  423. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  424. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  425. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  426. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  427. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  428. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  429. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  430. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  431. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  432. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  433. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  434. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  435. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  436. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  437. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  438. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  439. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  440. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  441. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  442. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  443. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  444. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  445. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  446. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  447. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  448. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  449. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  450. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  451. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  452. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  453. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  454. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  455. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  456. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  457. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  458. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  459. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  460. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  461. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  462. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  463. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  464. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  465. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  466. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  467. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  468. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  469. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  470. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  471. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  472. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  473. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  474. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  475. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  476. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  477. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  478. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  479. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  480. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  481. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  482. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  483. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  484. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  485. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  486. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  487. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  488. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  489. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  490. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  491. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  492. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  493. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  494. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  495. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  496. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  497. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  498. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  499. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  500. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  501. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  502. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  503. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  504. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  505. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  506. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  507. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  508. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  509. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  510. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  511. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  512. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  513. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  514. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  515. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  516. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  517. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  518. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  519. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  520. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  521. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  522. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  523. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  524. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  525. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  526. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  527. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  528. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  529. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  530. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  531. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  532. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  533. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  534. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  535. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  536. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  537. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  538. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  539. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  540. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  541. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  542. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  543. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  544. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  545. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  546. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  547. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  548. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  549. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  550. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  551. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  552. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  553. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  554. package/dist/esm/tests/integration/testUtils.js +0 -178
  555. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  556. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  557. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  558. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  559. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  560. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  561. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  562. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  563. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  564. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  565. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  566. package/dist/esm/tests/integration/v3.config.js +0 -7
  567. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  568. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  569. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  570. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  571. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  572. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  573. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  574. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  575. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  576. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  577. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  578. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  579. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  580. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  581. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  582. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  583. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  584. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  585. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  586. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  587. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  588. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  589. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  590. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  591. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  592. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  593. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  594. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  595. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  596. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  597. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  598. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  599. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  600. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  601. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  602. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  603. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  604. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  605. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  606. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  607. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  608. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  609. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  610. package/dist/esm/tests/unit/anthropic-cua-triple-click.test.d.ts +0 -1
  611. package/dist/esm/tests/unit/anthropic-cua-triple-click.test.js +0 -82
  612. package/dist/esm/tests/unit/anthropic-cua-triple-click.test.js.map +0 -1
  613. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  614. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -133
  615. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  616. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  617. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  618. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  619. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  620. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  621. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  622. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  623. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -67
  624. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  625. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  626. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  627. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  628. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  629. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  630. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  631. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  632. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  633. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  634. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  635. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  636. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  637. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  638. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  639. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  640. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  641. package/dist/esm/tests/unit/cookies.test.js +0 -909
  642. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  643. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  644. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  645. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  646. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  647. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  648. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  649. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  650. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  651. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  652. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  653. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  654. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  655. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  656. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  657. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  658. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  659. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  660. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  661. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  662. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  663. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  664. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  665. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  666. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  667. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  668. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  669. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  670. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  671. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  672. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  673. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  674. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  675. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  676. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  677. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  678. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  679. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  680. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  681. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  682. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  683. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  684. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  685. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  686. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  687. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  688. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  689. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  690. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  691. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  692. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  693. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  694. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  695. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  696. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  697. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  698. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  699. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  700. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  701. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  702. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  703. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  704. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  705. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  706. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  707. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  708. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  709. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  710. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  711. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  712. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  713. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  714. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  715. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  716. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  717. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  718. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  719. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  720. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  721. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  722. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  723. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  724. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  725. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -337
  726. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  727. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  728. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  729. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  730. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  731. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  732. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  733. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  734. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  735. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  736. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  737. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  738. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  739. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  740. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  741. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  742. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  743. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  744. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  745. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  746. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -125
  747. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  748. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  749. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  750. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  751. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  752. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -898
  753. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  754. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  755. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  756. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  757. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  758. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  759. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  760. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  761. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  762. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  763. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  764. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  765. 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