testplane 9.0.0-rc.4 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/build/package.json +11 -11
  2. package/build/src/base-testplane.d.ts +6 -2
  3. package/build/src/base-testplane.js +18 -5
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +2 -0
  6. package/build/src/browser/browser.js +8 -4
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/calibrator.js +19 -17
  9. package/build/src/browser/calibrator.js.map +1 -1
  10. package/build/src/browser/camera/index.d.ts +6 -2
  11. package/build/src/browser/camera/index.js +18 -14
  12. package/build/src/browser/camera/index.js.map +1 -1
  13. package/build/src/browser/camera/utils.d.ts +11 -1
  14. package/build/src/browser/camera/utils.js +27 -1
  15. package/build/src/browser/camera/utils.js.map +1 -1
  16. package/build/src/browser/cdp/connection.d.ts +2 -39
  17. package/build/src/browser/cdp/connection.js +73 -353
  18. package/build/src/browser/cdp/connection.js.map +1 -1
  19. package/build/src/browser/cdp/constants.d.ts +0 -10
  20. package/build/src/browser/cdp/constants.js +1 -11
  21. package/build/src/browser/cdp/constants.js.map +1 -1
  22. package/build/src/browser/cdp/domains/css.d.ts +14 -6
  23. package/build/src/browser/cdp/domains/css.js +4 -0
  24. package/build/src/browser/cdp/domains/css.js.map +1 -1
  25. package/build/src/browser/cdp/domains/debugger.d.ts +1 -1
  26. package/build/src/browser/cdp/domains/fetch.d.ts +163 -0
  27. package/build/src/browser/cdp/domains/fetch.js +51 -0
  28. package/build/src/browser/cdp/domains/fetch.js.map +1 -0
  29. package/build/src/browser/cdp/domains/network.d.ts +290 -0
  30. package/build/src/browser/cdp/domains/network.js +75 -0
  31. package/build/src/browser/cdp/domains/network.js.map +1 -0
  32. package/build/src/browser/cdp/domains/page.d.ts +378 -0
  33. package/build/src/browser/cdp/domains/page.js +114 -0
  34. package/build/src/browser/cdp/domains/page.js.map +1 -0
  35. package/build/src/browser/cdp/emitter.d.ts +2 -1
  36. package/build/src/browser/cdp/emitter.js +2 -2
  37. package/build/src/browser/cdp/emitter.js.map +1 -1
  38. package/build/src/browser/cdp/error.d.ts +14 -20
  39. package/build/src/browser/cdp/error.js +29 -32
  40. package/build/src/browser/cdp/error.js.map +1 -1
  41. package/build/src/browser/cdp/index.d.ts +6 -0
  42. package/build/src/browser/cdp/index.js +21 -6
  43. package/build/src/browser/cdp/index.js.map +1 -1
  44. package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
  45. package/build/src/browser/cdp/selectivity/constants.js +3 -1
  46. package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
  47. package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +13 -3
  48. package/build/src/browser/cdp/selectivity/css-selectivity.js +211 -62
  49. package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
  50. package/build/src/browser/cdp/selectivity/fs-cache.d.ts +12 -0
  51. package/build/src/browser/cdp/selectivity/fs-cache.js +122 -0
  52. package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
  53. package/build/src/browser/cdp/selectivity/hash-provider.d.ts +1 -0
  54. package/build/src/browser/cdp/selectivity/hash-provider.js +5 -3
  55. package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
  56. package/build/src/browser/cdp/selectivity/hash-reader.d.ts +2 -3
  57. package/build/src/browser/cdp/selectivity/hash-reader.js +39 -26
  58. package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -1
  59. package/build/src/browser/cdp/selectivity/hash-writer.d.ts +2 -2
  60. package/build/src/browser/cdp/selectivity/hash-writer.js +16 -62
  61. package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -1
  62. package/build/src/browser/cdp/selectivity/index.d.ts +6 -2
  63. package/build/src/browser/cdp/selectivity/index.js +147 -24
  64. package/build/src/browser/cdp/selectivity/index.js.map +1 -1
  65. package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +11 -4
  66. package/build/src/browser/cdp/selectivity/js-selectivity.js +200 -87
  67. package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
  68. package/build/src/browser/cdp/selectivity/json-utils.d.ts +5 -0
  69. package/build/src/browser/cdp/selectivity/json-utils.js +19 -9
  70. package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
  71. package/build/src/browser/cdp/selectivity/merge-dumps/index.d.ts +2 -0
  72. package/build/src/browser/cdp/selectivity/merge-dumps/index.js +28 -0
  73. package/build/src/browser/cdp/selectivity/merge-dumps/index.js.map +1 -0
  74. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.d.ts +2 -0
  75. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js +39 -0
  76. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js.map +1 -0
  77. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.d.ts +2 -0
  78. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js +129 -0
  79. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js.map +1 -0
  80. package/build/src/browser/cdp/selectivity/modes.d.ts +4 -0
  81. package/build/src/browser/cdp/selectivity/modes.js +11 -0
  82. package/build/src/browser/cdp/selectivity/modes.js.map +1 -0
  83. package/build/src/browser/cdp/selectivity/runner.d.ts +5 -0
  84. package/build/src/browser/cdp/selectivity/runner.js +114 -22
  85. package/build/src/browser/cdp/selectivity/runner.js.map +1 -1
  86. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +1 -1
  87. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -1
  88. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +1 -1
  89. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
  90. package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +3 -1
  91. package/build/src/browser/cdp/selectivity/testplane-selectivity.js +64 -13
  92. package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
  93. package/build/src/browser/cdp/selectivity/types.d.ts +6 -0
  94. package/build/src/browser/cdp/selectivity/types.js.map +1 -1
  95. package/build/src/browser/cdp/selectivity/used-dumps-tracker.d.ts +7 -0
  96. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js +25 -0
  97. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js.map +1 -0
  98. package/build/src/browser/cdp/selectivity/utils.d.ts +18 -9
  99. package/build/src/browser/cdp/selectivity/utils.js +111 -34
  100. package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
  101. package/build/src/browser/cdp/types.d.ts +214 -0
  102. package/build/src/browser/cdp/utils.d.ts +0 -6
  103. package/build/src/browser/cdp/utils.js +1 -6
  104. package/build/src/browser/cdp/utils.js.map +1 -1
  105. package/build/src/browser/client-scripts/calibrate.js +2 -2
  106. package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
  107. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +10 -10
  108. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +10 -10
  109. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
  110. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
  111. package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
  112. package/build/src/browser/commands/assert-view/index.js +23 -3
  113. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  114. package/build/src/browser/commands/openAndWait.js +23 -26
  115. package/build/src/browser/commands/openAndWait.js.map +1 -1
  116. package/build/src/browser/commands/restoreState/index.js +19 -8
  117. package/build/src/browser/commands/restoreState/index.js.map +1 -1
  118. package/build/src/browser/commands/saveState/index.d.ts +1 -2
  119. package/build/src/browser/commands/saveState/index.js +8 -12
  120. package/build/src/browser/commands/saveState/index.js.map +1 -1
  121. package/build/src/browser/commands/switchToRepl.js +27 -9
  122. package/build/src/browser/commands/switchToRepl.js.map +1 -1
  123. package/build/src/browser/existing-browser.d.ts +2 -0
  124. package/build/src/browser/existing-browser.js +15 -0
  125. package/build/src/browser/existing-browser.js.map +1 -1
  126. package/build/src/browser/history/index.d.ts +8 -1
  127. package/build/src/browser/history/index.js +41 -17
  128. package/build/src/browser/history/index.js.map +1 -1
  129. package/build/src/browser/history/rrweb.d.ts +3 -1
  130. package/build/src/browser/history/rrweb.js +122 -27
  131. package/build/src/browser/history/rrweb.js.map +1 -1
  132. package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
  133. package/build/src/browser/new-browser.d.ts +1 -1
  134. package/build/src/browser/new-browser.js +6 -12
  135. package/build/src/browser/new-browser.js.map +1 -1
  136. package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
  137. package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
  138. package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
  139. package/build/src/browser/screen-shooter/debug.d.ts +3 -0
  140. package/build/src/browser/screen-shooter/debug.js +25 -0
  141. package/build/src/browser/screen-shooter/debug.js.map +1 -0
  142. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
  143. package/build/src/browser/screen-shooter/elements-screen-shooter.js +127 -75
  144. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  145. package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
  146. package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
  147. package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
  148. package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
  149. package/build/src/browser/screen-shooter/operations/index.js +3 -1
  150. package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
  151. package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
  152. package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
  153. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +2 -0
  154. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +133 -0
  155. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
  156. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
  157. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
  158. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  159. package/build/src/browser/types.d.ts +6 -4
  160. package/build/src/browser/wsdriver/compression.d.ts +5 -0
  161. package/build/src/browser/wsdriver/compression.js +79 -0
  162. package/build/src/browser/wsdriver/compression.js.map +1 -0
  163. package/build/src/browser/wsdriver/constants.d.ts +11 -0
  164. package/build/src/browser/wsdriver/constants.js +15 -0
  165. package/build/src/browser/wsdriver/constants.js.map +1 -0
  166. package/build/src/browser/wsdriver/debug.d.ts +2 -0
  167. package/build/src/browser/wsdriver/debug.js +9 -0
  168. package/build/src/browser/wsdriver/debug.js.map +1 -0
  169. package/build/src/browser/wsdriver/error.d.ts +18 -0
  170. package/build/src/browser/wsdriver/error.js +36 -0
  171. package/build/src/browser/wsdriver/error.js.map +1 -0
  172. package/build/src/browser/wsdriver/index.d.ts +23 -0
  173. package/build/src/browser/wsdriver/index.js +261 -0
  174. package/build/src/browser/wsdriver/index.js.map +1 -0
  175. package/build/src/browser/wsdriver/request.d.ts +10 -0
  176. package/build/src/browser/wsdriver/request.js +58 -0
  177. package/build/src/browser/wsdriver/request.js.map +1 -0
  178. package/build/src/browser/wsdriver/response.d.ts +3 -0
  179. package/build/src/browser/wsdriver/response.js +111 -0
  180. package/build/src/browser/wsdriver/response.js.map +1 -0
  181. package/build/src/browser/wsdriver/types.d.ts +71 -0
  182. package/build/src/browser/wsdriver/types.js +27 -0
  183. package/build/src/browser/wsdriver/types.js.map +1 -0
  184. package/build/src/browser-pool/basic-pool.js +3 -1
  185. package/build/src/browser-pool/basic-pool.js.map +1 -1
  186. package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
  187. package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
  188. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
  189. package/build/src/cli/constants.d.ts +1 -0
  190. package/build/src/cli/constants.js +1 -0
  191. package/build/src/cli/constants.js.map +1 -1
  192. package/build/src/cli/index.js +3 -5
  193. package/build/src/cli/index.js.map +1 -1
  194. package/build/src/config/browser-options.js +11 -3
  195. package/build/src/config/browser-options.js.map +1 -1
  196. package/build/src/config/defaults.d.ts +7 -2
  197. package/build/src/config/defaults.js +10 -5
  198. package/build/src/config/defaults.js.map +1 -1
  199. package/build/src/config/index.d.ts +10 -6
  200. package/build/src/config/index.js +67 -42
  201. package/build/src/config/index.js.map +1 -1
  202. package/build/src/config/types.d.ts +59 -14
  203. package/build/src/config/types.js +15 -5
  204. package/build/src/config/types.js.map +1 -1
  205. package/build/src/config/utils.d.ts +2 -2
  206. package/build/src/config/utils.js +11 -6
  207. package/build/src/config/utils.js.map +1 -1
  208. package/build/src/constants/config.d.ts +0 -1
  209. package/build/src/constants/config.js +1 -2
  210. package/build/src/constants/config.js.map +1 -1
  211. package/build/src/constants/png.d.ts +1 -0
  212. package/build/src/constants/repl.d.ts +2 -0
  213. package/build/src/constants/repl.js +6 -0
  214. package/build/src/constants/repl.js.map +1 -0
  215. package/build/src/dev-server/index.d.ts +1 -1
  216. package/build/src/dev-server/index.js +1 -1
  217. package/build/src/dev-server/index.js.map +1 -1
  218. package/build/src/globals.d.ts +7 -0
  219. package/build/src/globals.js +10 -0
  220. package/build/src/globals.js.map +1 -0
  221. package/build/src/image.d.ts +6 -1
  222. package/build/src/image.js +56 -2
  223. package/build/src/image.js.map +1 -1
  224. package/build/src/index.d.ts +3 -13
  225. package/build/src/index.js +5 -1
  226. package/build/src/index.js.map +1 -1
  227. package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
  228. package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
  229. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  230. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
  231. package/build/src/runner/index.js +1 -0
  232. package/build/src/runner/index.js.map +1 -1
  233. package/build/src/runner/suite-monitor.d.ts +1 -1
  234. package/build/src/runner/test-runner/regular-test-runner.js +2 -2
  235. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  236. package/build/src/signal-handler.d.ts +2 -2
  237. package/build/src/signal-handler.js +24 -11
  238. package/build/src/signal-handler.js.map +1 -1
  239. package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
  240. package/build/src/test-reader/test-parser.js +3 -3
  241. package/build/src/test-reader/test-parser.js.map +1 -1
  242. package/build/src/testplane.d.ts +4 -5
  243. package/build/src/testplane.js +20 -10
  244. package/build/src/testplane.js.map +1 -1
  245. package/build/src/types/globals.d.ts +16 -0
  246. package/build/src/types/globals.js +3 -0
  247. package/build/src/types/globals.js.map +1 -0
  248. package/build/src/types/index.d.ts +2 -3
  249. package/build/src/utils/crypto.d.ts +1 -0
  250. package/build/src/utils/crypto.js +2 -1
  251. package/build/src/utils/crypto.js.map +1 -1
  252. package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
  253. package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
  254. package/build/src/utils/repl-instrumentation/index.js +46 -0
  255. package/build/src/utils/repl-instrumentation/index.js.map +1 -0
  256. package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
  257. package/build/src/utils/repl-instrumentation/typescript.js +307 -0
  258. package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
  259. package/build/src/utils/repl-module-hooks.d.ts +1 -0
  260. package/build/src/utils/repl-module-hooks.js +111 -0
  261. package/build/src/utils/repl-module-hooks.js.map +1 -0
  262. package/build/src/utils/workers-registry.d.ts +2 -2
  263. package/build/src/utils/workers-registry.js +1 -0
  264. package/build/src/utils/workers-registry.js.map +1 -1
  265. package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
  266. package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
  267. package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
  268. package/build/src/worker/runner/browser-pool.js +4 -1
  269. package/build/src/worker/runner/browser-pool.js.map +1 -1
  270. package/build/src/worker/runner/index.js +6 -3
  271. package/build/src/worker/runner/index.js.map +1 -1
  272. package/build/src/worker/runner/sequence-test-parser.js +5 -7
  273. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  274. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
  275. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
  276. package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
  277. package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
  278. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  279. package/build/src/worker/runner/test-runner/index.d.ts +1 -0
  280. package/build/src/worker/runner/test-runner/index.js +47 -2
  281. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  282. package/build/src/worker/testplane-facade.js +5 -3
  283. package/build/src/worker/testplane-facade.js.map +1 -1
  284. package/build/src/worker/testplane.d.ts +1 -0
  285. package/build/src/worker/testplane.js +4 -1
  286. package/build/src/worker/testplane.js.map +1 -1
  287. package/build/src/ws-connection/constants.d.ts +13 -0
  288. package/build/src/ws-connection/constants.js +17 -0
  289. package/build/src/ws-connection/constants.js.map +1 -0
  290. package/build/src/ws-connection/error.d.ts +52 -0
  291. package/build/src/ws-connection/error.js +84 -0
  292. package/build/src/ws-connection/error.js.map +1 -0
  293. package/build/src/ws-connection/index.d.ts +83 -0
  294. package/build/src/ws-connection/index.js +397 -0
  295. package/build/src/ws-connection/index.js.map +1 -0
  296. package/build/src/ws-connection/utils.d.ts +6 -0
  297. package/build/src/ws-connection/utils.js +9 -0
  298. package/build/src/ws-connection/utils.js.map +1 -0
  299. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/cdp/error.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAG7C,MAAa,QAAS,SAAQ,KAAK;IAI/B,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAgE;QAClG,IAAI,YAAY,GAAG,OAAO,CAAC;QAE3B,IAAI,IAAI,EAAE,CAAC;YACP,YAAY,IAAI,kBAAkB,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACZ,YAAY,IAAI,uBAAuB,SAAS,EAAE,CAAC;QACvD,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,CAAC;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,cAAc;QACV,2BAA2B;QAC3B,6BAA6B;QAC7B,qDAAqD;QACrD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACxG,CAAC;CACJ;AA5BD,4BA4BC;AAED,MAAa,eAAgB,SAAQ,QAAQ;IACzC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAiD;QAC7E,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,0BAAc,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AAND,0CAMC;AAED,MAAa,4BAA6B,SAAQ,QAAQ;IACtD,YAAY,EACR,OAAO,GAAG,oCAAoC,EAC9C,SAAS,MACuC,EAAE;QAClD,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,0BAAc,CAAC,qBAAqB,EAAE,SAAS,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtC,CAAC;CACJ;AATD,oEASC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/cdp/error.ts"],"names":[],"mappings":";;;AAAA,qDAOmC;AAEnC,MAAa,QAAS,SAAQ,eAAO;IACjC,WAAW;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAJD,4BAIC;AAED,MAAa,+BAAgC,SAAQ,sCAA8B;CAAG;AAAtF,0EAAsF;AACtF,MAAa,uBAAwB,SAAQ,8BAAsB;CAAG;AAAtE,0DAAsE;AACtE,MAAa,4BAA6B,SAAQ,mCAA2B;CAAG;AAAhF,oEAAgF;AAChF,MAAa,yBAA0B,SAAQ,gCAAwB;CAAG;AAA1E,8DAA0E;AAC1E,MAAa,sBAAuB,SAAQ,6BAAqB;CAAG;AAApE,wDAAoE;AAEpE,MAAa,eAAgB,SAAQ,eAAO;IACxC,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,2BAA2B;QAC3B,6BAA6B;QAC7B,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;IAC9E,CAAC;CACJ;AAXD,0CAWC"}
@@ -7,6 +7,9 @@ import { CDPDebugger } from "./domains/debugger";
7
7
  import { CDPRuntime } from "./domains/runtime";
8
8
  import { CDPDom } from "./domains/dom";
9
9
  import { CDPCss } from "./domains/css";
10
+ import { CDPNetwork } from "./domains/network";
11
+ import { CDFetch } from "./domains/fetch";
12
+ import { CDPPage } from "./domains/page";
10
13
  export declare class CDP {
11
14
  private readonly _connection;
12
15
  readonly target: CDPTarget;
@@ -15,6 +18,9 @@ export declare class CDP {
15
18
  readonly runtime: CDPRuntime;
16
19
  readonly dom: CDPDom;
17
20
  readonly css: CDPCss;
21
+ readonly network: CDPNetwork;
22
+ readonly fetch: CDFetch;
23
+ readonly page: CDPPage;
18
24
  static create(browser: Browser): Promise<CDP | null>;
19
25
  constructor(connection: CDPConnection);
20
26
  request<T = Record<string, unknown>>(method: CDPRequest["method"], params?: CDPRequest["params"] | null, cdpSessionId?: CDPSessionId | null): Promise<T>;
@@ -8,6 +8,9 @@ const debugger_1 = require("./domains/debugger");
8
8
  const runtime_1 = require("./domains/runtime");
9
9
  const dom_1 = require("./domains/dom");
10
10
  const css_1 = require("./domains/css");
11
+ const network_1 = require("./domains/network");
12
+ const fetch_1 = require("./domains/fetch");
13
+ const page_1 = require("./domains/page");
11
14
  class CDP {
12
15
  static async create(browser) {
13
16
  // "isChrome" is "true" when automationProtocol is "devtools"
@@ -26,6 +29,9 @@ class CDP {
26
29
  this.runtime = new runtime_1.CDPRuntime(connection);
27
30
  this.dom = new dom_1.CDPDom(connection);
28
31
  this.css = new css_1.CDPCss(connection);
32
+ this.network = new network_1.CDPNetwork(connection);
33
+ this.fetch = new fetch_1.CDFetch(connection);
34
+ this.page = new page_1.CDPPage(connection);
29
35
  this._connection.onEventMessage = this._onEventMessage.bind(this);
30
36
  }
31
37
  async request(method, params, cdpSessionId) {
@@ -41,22 +47,31 @@ class CDP {
41
47
  const [domain, method] = cdpEventMessage.method.split(".", 2);
42
48
  switch (domain) {
43
49
  case "Target":
44
- this.target.emit(method, cdpEventMessage.params);
50
+ this.target.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
45
51
  break;
46
52
  case "Profiler":
47
- this.profiler.emit(method, cdpEventMessage.params);
53
+ this.profiler.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
48
54
  break;
49
55
  case "Debugger":
50
- this.debugger.emit(method, cdpEventMessage.params);
56
+ this.debugger.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
51
57
  break;
52
58
  case "Runtime":
53
- this.runtime.emit(method, cdpEventMessage.params);
59
+ this.runtime.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
54
60
  break;
55
61
  case "DOM":
56
- this.dom.emit(method, cdpEventMessage.params);
62
+ this.dom.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
57
63
  break;
58
64
  case "CSS":
59
- this.css.emit(method, cdpEventMessage.params);
65
+ this.css.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
66
+ break;
67
+ case "Network":
68
+ this.network.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
69
+ break;
70
+ case "Fetch":
71
+ this.fetch.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
72
+ break;
73
+ case "Page":
74
+ this.page.emit(method, cdpEventMessage.params, cdpEventMessage.sessionId);
60
75
  break;
61
76
  }
62
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/cdp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/cdp/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
1
  export declare const WEBPACK_PROTOCOL = "webpack://";
2
+ export declare const SELECTIVITY_CACHE_DIRECTIRY = "testplane-selectivity-cache";
3
+ export declare const SELECTIVITY_CACHE_READY_SUFFIX = "-ready";
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WEBPACK_PROTOCOL = void 0;
3
+ exports.SELECTIVITY_CACHE_READY_SUFFIX = exports.SELECTIVITY_CACHE_DIRECTIRY = exports.WEBPACK_PROTOCOL = void 0;
4
4
  exports.WEBPACK_PROTOCOL = "webpack://";
5
+ exports.SELECTIVITY_CACHE_DIRECTIRY = "testplane-selectivity-cache";
6
+ exports.SELECTIVITY_CACHE_READY_SUFFIX = "-ready";
5
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAC5D,QAAA,8BAA8B,GAAG,QAAQ,CAAC"}
@@ -1,14 +1,24 @@
1
1
  import type { CDP } from "..";
2
2
  import type { CDPSessionId } from "../types";
3
+ import type { SelectivityMapSourceMapUrlFn } from "../../../config/types";
3
4
  export declare class CSSSelectivity {
4
5
  private readonly _cdp;
5
- private readonly _sessionId;
6
+ private readonly _cdpSessionId;
7
+ private readonly _wdSessionId;
6
8
  private readonly _sourceRoot;
9
+ private readonly _mapSourceMapUrl;
7
10
  private _cssOnStyleSheetAddedFn;
8
- private _stylesSourceMap;
9
- constructor(cdp: CDP, sessionId: CDPSessionId, sourceRoot?: string);
11
+ private readonly _stylesSourceMap;
12
+ private readonly _styleSheetIdToSourceMapUrl;
13
+ private readonly _coverageResult;
14
+ constructor(cdp: CDP, cdpSessionId: CDPSessionId, wdSessionId: string, sourceRoot: string, mapSourceMapUrl: SelectivityMapSourceMapUrlFn | null);
10
15
  private _processStyle;
16
+ private _ensureStylesAreLoading;
17
+ private _waitForLoadingStyles;
18
+ private _saveSessionCache;
19
+ private _loadSessionCache;
11
20
  start(): Promise<void>;
21
+ takeCoverageSnapshot(): Promise<void>;
12
22
  /** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
13
23
  stop(drop?: boolean): Promise<Set<string> | null>;
14
24
  }
@@ -9,103 +9,252 @@ const node_path_1 = __importDefault(require("node:path"));
9
9
  const node_url_1 = require("node:url");
10
10
  const constants_1 = require("../../../error-snippets/constants");
11
11
  const utils_1 = require("./utils");
12
+ const fs_cache_1 = require("./fs-cache");
13
+ const debug_1 = require("./debug");
12
14
  class CSSSelectivity {
13
- constructor(cdp, sessionId, sourceRoot = "") {
15
+ constructor(cdp, cdpSessionId, wdSessionId, sourceRoot, mapSourceMapUrl) {
14
16
  this._cssOnStyleSheetAddedFn = null;
15
17
  this._stylesSourceMap = {};
18
+ this._styleSheetIdToSourceMapUrl = {};
19
+ this._coverageResult = [];
16
20
  this._cdp = cdp;
17
- this._sessionId = sessionId;
21
+ this._cdpSessionId = cdpSessionId;
22
+ this._wdSessionId = wdSessionId;
18
23
  this._sourceRoot = sourceRoot;
24
+ this._mapSourceMapUrl = mapSourceMapUrl;
19
25
  }
20
- _processStyle({ header: { styleSheetId, sourceURL, sourceMapURL } }) {
21
- if (!this._sessionId) {
26
+ _processStyle({ header: { styleSheetId, sourceURL, sourceMapURL } }, cdpSessionId) {
27
+ if (!this._cdpSessionId || cdpSessionId !== this._cdpSessionId) {
22
28
  return;
23
29
  }
24
- if (!sourceURL || !sourceMapURL) {
30
+ if (!sourceMapURL || sourceURL.startsWith("chrome-error://")) {
25
31
  this._stylesSourceMap[styleSheetId] ||= null;
26
32
  return;
27
33
  }
28
- this._stylesSourceMap[styleSheetId] ||= (0, utils_1.fetchTextWithBrowserFallback)((0, node_url_1.resolve)(sourceURL, sourceMapURL), this._cdp.runtime, this._sessionId);
29
- }
30
- async start() {
31
- const cssOnStyleSheetAdded = (this._cssOnStyleSheetAddedFn = this._processStyle.bind(this));
32
- this._cdp.css.on("styleSheetAdded", cssOnStyleSheetAdded);
33
- await Promise.all([
34
- this._cdp.target.setAutoAttach(this._sessionId, { autoAttach: true, waitForDebuggerOnStart: false }),
35
- this._cdp.dom
36
- .enable(this._sessionId)
37
- .then(() => this._cdp.css.enable(this._sessionId))
38
- .then(() => this._cdp.css.startRuleUsageTracking(this._sessionId)),
39
- ]);
40
- }
41
- /** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
42
- async stop(drop) {
43
- if (drop) {
44
- this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
45
- return null;
34
+ if (this._stylesSourceMap[styleSheetId]) {
35
+ return;
46
36
  }
47
- const coverage = await this._cdp.css.stopRuleUsageTracking(this._sessionId);
48
- // If we haven't got "styleSheetAdded" event for the script, pull up styles + source map manually
49
- coverage.ruleUsage.forEach(({ styleSheetId }) => {
37
+ let sourceMapResolvedUrl = (0, node_url_1.resolve)(sourceURL, sourceMapURL);
38
+ if (!URL.canParse(sourceMapResolvedUrl)) {
39
+ this._stylesSourceMap[styleSheetId] ||= null;
40
+ return;
41
+ }
42
+ const mapResult = this._mapSourceMapUrl
43
+ ? this._mapSourceMapUrl({ type: "css", sourceUrl: sourceURL, sourceMapUrl: sourceMapResolvedUrl })
44
+ : true;
45
+ if (!mapResult) {
46
+ this._stylesSourceMap[styleSheetId] ||= null;
47
+ return;
48
+ }
49
+ if (mapResult !== true) {
50
+ this._styleSheetIdToSourceMapUrl[styleSheetId] = sourceMapResolvedUrl = mapResult;
51
+ }
52
+ // Embedded source maps are not cached on file system because of their large cache key
53
+ if ((0, utils_1.isDataProtocol)(sourceMapResolvedUrl)) {
54
+ this._styleSheetIdToSourceMapUrl[styleSheetId] = null;
55
+ this._stylesSourceMap[styleSheetId] ||= (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
56
+ }
57
+ else {
58
+ this._styleSheetIdToSourceMapUrl[styleSheetId] = sourceMapResolvedUrl;
59
+ this._stylesSourceMap[styleSheetId] ||= (0, fs_cache_1.hasCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl).then(isCached => {
60
+ return isCached
61
+ ? true
62
+ : (0, utils_1.fetchTextWithBrowserFallback)(sourceMapResolvedUrl, this._cdp.runtime, this._cdpSessionId)
63
+ .then(data => (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapResolvedUrl, data)
64
+ .then(() => true)
65
+ .catch(err => {
66
+ (0, debug_1.debugSelectivity)(`Couldn't offload asset from "${sourceMapResolvedUrl}" to fs-cache: %O`, err);
67
+ return data;
68
+ }))
69
+ .catch((err) => err);
70
+ });
71
+ }
72
+ }
73
+ // If we haven't got "styleSheetAdded" event for the script, pull up styles + source map manually
74
+ _ensureStylesAreLoading(ruleUsage) {
75
+ ruleUsage.forEach(({ styleSheetId }) => {
50
76
  if (Object.hasOwn(this._stylesSourceMap, styleSheetId)) {
51
77
  return;
52
78
  }
53
- const scriptSourcePromise = this._cdp.css
54
- .getStyleSheetText(this._sessionId, styleSheetId)
55
- .then(res => res.text)
56
- .catch((err) => err);
57
- this._stylesSourceMap[styleSheetId] ||= scriptSourcePromise.then(sourceCode => {
79
+ this._stylesSourceMap[styleSheetId] ||= (async () => {
80
+ // In case SourceMapUrl was restored from session-cache, but SourceMap itself wasn't
81
+ if (this._styleSheetIdToSourceMapUrl[styleSheetId]) {
82
+ const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
83
+ const cachedSourceMap = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl);
84
+ if (cachedSourceMap) {
85
+ return cachedSourceMap;
86
+ }
87
+ const sourceMap = await (0, utils_1.fetchTextWithBrowserFallback)(sourceMapUrl, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
88
+ if (!(sourceMap instanceof Error)) {
89
+ (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl, sourceMap).catch(() => { });
90
+ }
91
+ return sourceMap;
92
+ }
93
+ const sourceCode = await this._cdp.css
94
+ .getStyleSheetText(this._cdpSessionId, styleSheetId)
95
+ .then(res => res.text)
96
+ .catch((err) => err);
58
97
  if (sourceCode instanceof Error) {
59
98
  return sourceCode;
60
99
  }
61
100
  const sourceMapsStartIndex = sourceCode.lastIndexOf(constants_1.CSS_SOURCE_MAP_URL_COMMENT);
62
101
  const sourceMapsEndIndex = sourceCode.indexOf("*/", sourceMapsStartIndex);
102
+ // Source maps are not generated for this source file
63
103
  if (sourceMapsStartIndex === -1) {
64
- return new Error("Source maping url comment is missing");
104
+ return null;
65
105
  }
66
106
  const sourceMapURL = sourceMapsEndIndex === -1
67
107
  ? sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length)
68
108
  : sourceCode.slice(sourceMapsStartIndex + constants_1.CSS_SOURCE_MAP_URL_COMMENT.length, sourceMapsEndIndex);
69
- const isSourceMapEmbedded = new node_url_1.URL(sourceMapURL).protocol === "data:";
70
109
  // If we encounter css stylesheet, that was not reported by "styleSheetAdded"
71
110
  // We can only get sourcemaps if they are inlined
72
111
  // Otherwise, we can't resolve actual sourcemaps url because we dont know css styles url itself.
73
- if (!isSourceMapEmbedded) {
112
+ if (!(0, utils_1.isDataProtocol)(sourceMapURL)) {
74
113
  return new Error([
75
114
  `Missed stylesheet url for stylesheet id ${styleSheetId}.`,
76
- "Switching to inline sourcemaps for CSS will help",
115
+ "Looks like Chrome Devtools 'styleSheetAdded' event was lost",
116
+ "It could happen due to network instability",
117
+ "Switching to inline sourcemaps for CSS will help at the cost of increased RAM usage",
77
118
  ].join("\n"));
78
119
  }
79
- return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this._sessionId);
80
- });
120
+ return (0, utils_1.fetchTextWithBrowserFallback)(sourceMapURL, this._cdp.runtime, this._cdpSessionId).catch((err) => err);
121
+ })();
81
122
  });
82
- const totalDependingSourceFiles = new Set();
83
- const grouppedByStyleSheetCoverage = (0, lodash_1.groupBy)(coverage.ruleUsage, "styleSheetId");
84
- const styleSheetIds = Object.keys(grouppedByStyleSheetCoverage);
85
- await Promise.all(styleSheetIds.map(async (styleSheetId) => {
86
- const sourceMapString = await this._stylesSourceMap[styleSheetId];
87
- if (!sourceMapString) {
88
- return;
123
+ }
124
+ async _waitForLoadingStyles() {
125
+ await Promise.allSettled(Object.values(this._stylesSourceMap));
126
+ }
127
+ async _saveSessionCache() {
128
+ const sessionCache = {};
129
+ for (const styleSheetId in this._styleSheetIdToSourceMapUrl) {
130
+ const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
131
+ const sourceMap = await this._stylesSourceMap[styleSheetId];
132
+ sessionCache[styleSheetId] = {
133
+ sourceMapUrl,
134
+ sourceMap: sourceMap instanceof Error ? sourceMap.message : sourceMap,
135
+ isError: sourceMap instanceof Error,
136
+ };
137
+ }
138
+ return (0, fs_cache_1.setCachedSelectivityFile)(fs_cache_1.CacheType.CssSessionCache, this._wdSessionId, JSON.stringify(sessionCache), {
139
+ overwrite: true,
140
+ }).catch(err => {
141
+ (0, debug_1.debugSelectivity)(`Couldn't save session cache for session '%s': %O`, this._wdSessionId, err);
142
+ });
143
+ }
144
+ async _loadSessionCache() {
145
+ const sessionCacheString = await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.CssSessionCache, this._wdSessionId);
146
+ if (!sessionCacheString) {
147
+ return;
148
+ }
149
+ let sessionCache = null;
150
+ try {
151
+ sessionCache = JSON.parse(sessionCacheString);
152
+ }
153
+ catch (err) {
154
+ (0, debug_1.debugSelectivity)("CSS Session cache is invalid JSON for session '%s': %O", this._wdSessionId, err);
155
+ }
156
+ if (!sessionCache) {
157
+ return;
158
+ }
159
+ for (const styleSheetId in sessionCache) {
160
+ const cachedData = sessionCache[styleSheetId];
161
+ this._styleSheetIdToSourceMapUrl[styleSheetId] = cachedData.sourceMapUrl;
162
+ if (!cachedData.isError) {
163
+ this._stylesSourceMap[styleSheetId] = Promise.resolve(cachedData.sourceMap);
89
164
  }
90
- if (sourceMapString instanceof Error) {
91
- throw new Error(`CSS Selectivity: Couldn't load source maps for stylesheet id ${styleSheetId}: ${sourceMapString}`);
165
+ else {
166
+ // If source map url was received, we can try to restore cache
167
+ // If cache can't be restored, session should be considered as broken
168
+ if (!cachedData.sourceMapUrl) {
169
+ const originalError = cachedData.sourceMap;
170
+ const errorMessage = [
171
+ "Selectivity: session is broken. Couldn't restore source map from previous test:",
172
+ "\t- " + originalError.split("\n").pop(),
173
+ ].join("\n");
174
+ // Not throwing the error right away because we might not need
175
+ this._stylesSourceMap[styleSheetId] = Promise.resolve(new Error(errorMessage));
176
+ }
92
177
  }
93
- const rawSourceMap = (0, utils_1.patchSourceMapSources)(JSON.parse(sourceMapString), this._sourceRoot);
94
- // We could check "if stylesheet was used" with utils.extractSourceFilesDeps
95
- // But we dont, because if stylesheet was not used, it could be used after change
96
- // So its safe to think "if stylesheet was loaded, it was used"
97
- rawSourceMap.sources.forEach(sourceFilePath => {
98
- // "Each entry is either a string that is a (potentially relative) URL", so we are using posix.jojn
99
- // https://tc39.es/ecma426/#sec-source-map-format
100
- // Except for file path with protocol ("turbopack://", "file://")
101
- const sourceRootBasedPath = (0, utils_1.hasProtocol)(sourceFilePath)
102
- ? sourceFilePath
103
- : node_path_1.default.posix.join(rawSourceMap.sourceRoot || "", sourceFilePath);
104
- totalDependingSourceFiles.add(sourceRootBasedPath);
105
- });
106
- }));
107
- this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
108
- return totalDependingSourceFiles;
178
+ }
179
+ }
180
+ async start() {
181
+ const cssOnStyleSheetAdded = (this._cssOnStyleSheetAddedFn = this._processStyle.bind(this));
182
+ this._cdp.css.on("styleSheetAdded", cssOnStyleSheetAdded);
183
+ const [startTrackingResult, loadSessionCacheResult] = await Promise.all([
184
+ this._cdp.css.startRuleUsageTracking(this._cdpSessionId).catch((err) => err),
185
+ this._loadSessionCache().catch((err) => err),
186
+ ]);
187
+ if (startTrackingResult instanceof Error) {
188
+ throw startTrackingResult;
189
+ }
190
+ if (loadSessionCacheResult instanceof Error) {
191
+ (0, debug_1.debugSelectivity)("Couldn't load session cache for session '%s': %O", this._wdSessionId, loadSessionCacheResult);
192
+ }
193
+ }
194
+ async takeCoverageSnapshot() {
195
+ const coveragePart = await this._cdp.css.takeCoverageDelta(this._cdpSessionId);
196
+ this._ensureStylesAreLoading(coveragePart.coverage);
197
+ await this._waitForLoadingStyles();
198
+ this._coverageResult.push(...coveragePart.coverage);
199
+ }
200
+ /** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
201
+ async stop(drop) {
202
+ try {
203
+ if (drop) {
204
+ return null;
205
+ }
206
+ const coverageLastPart = await this._cdp.css.stopRuleUsageTracking(this._cdpSessionId);
207
+ const coverageStyles = [...this._coverageResult, ...coverageLastPart.ruleUsage];
208
+ this._ensureStylesAreLoading(coverageLastPart.ruleUsage);
209
+ const totalDependingSourceFiles = new Set();
210
+ const grouppedByStyleSheetCoverage = (0, lodash_1.groupBy)(coverageStyles, "styleSheetId");
211
+ const styleSheetIds = Object.keys(grouppedByStyleSheetCoverage);
212
+ await Promise.all(styleSheetIds.map(async (styleSheetId) => {
213
+ const sourceMap = await this._stylesSourceMap[styleSheetId];
214
+ const sourceMapUrl = this._styleSheetIdToSourceMapUrl[styleSheetId];
215
+ if (!sourceMap) {
216
+ return;
217
+ }
218
+ if (sourceMap instanceof Error) {
219
+ throw new Error([
220
+ `CSS Selectivity: Couldn't load source maps for stylesheet id ${styleSheetId}:`,
221
+ String(sourceMap),
222
+ ].join("\n"));
223
+ }
224
+ if ((0, utils_1.isCachedOnFs)(sourceMap) && !sourceMapUrl) {
225
+ throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
226
+ }
227
+ const sourceMapString = (0, utils_1.isCachedOnFs)(sourceMap)
228
+ ? await (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
229
+ : sourceMap;
230
+ if (!sourceMapString) {
231
+ throw new Error(`CSS Selectivity: fs-cache is broken for ${sourceMapUrl}`);
232
+ }
233
+ const rawSourceMap = (0, utils_1.patchSourceMapSources)(JSON.parse(sourceMapString), this._sourceRoot);
234
+ // We could check "if stylesheet was used" with utils.extractSourceFilesDeps
235
+ // But we dont, because if stylesheet was not used, it could be used after change
236
+ // So its safe to think "if stylesheet was loaded, it was used"
237
+ rawSourceMap.sources.forEach(sourceFilePath => {
238
+ // Ignore generated postcss styles:
239
+ // https://github.com/postcss/postcss/blob/eae46db765d752cf8f40c4fa2b0b85030079c43d/lib/map-generator.js#L122
240
+ if (sourceFilePath === "<no source>") {
241
+ return;
242
+ }
243
+ // "Each entry is either a string that is a (potentially relative) URL", so we are using posix.jojn
244
+ // https://tc39.es/ecma426/#sec-source-map-format
245
+ // Except for file path with protocol ("turbopack://", "file://")
246
+ const sourceRootBasedPath = (0, utils_1.hasProtocol)(sourceFilePath)
247
+ ? sourceFilePath
248
+ : node_path_1.default.posix.join(rawSourceMap.sourceRoot || "", sourceFilePath);
249
+ totalDependingSourceFiles.add(sourceRootBasedPath);
250
+ });
251
+ }));
252
+ await this._saveSessionCache();
253
+ return totalDependingSourceFiles;
254
+ }
255
+ finally {
256
+ this._cssOnStyleSheetAddedFn && this._cdp.css.off("styleSheetAdded", this._cssOnStyleSheetAddedFn);
257
+ }
109
258
  }
110
259
  }
111
260
  exports.CSSSelectivity = CSSSelectivity;
@@ -1 +1 @@
1
- {"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/css-selectivity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const CacheType: {
2
+ readonly TestFile: "t";
3
+ readonly Asset: "a";
4
+ readonly CssSessionCache: "cs";
5
+ };
6
+ type CacheTypeValue = (typeof CacheType)[keyof typeof CacheType];
7
+ export declare const hasCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<boolean>;
8
+ export declare const getCachedSelectivityFile: (cacheType: CacheTypeValue, key: string) => Promise<string | null>;
9
+ export declare const setCachedSelectivityFile: (cacheType: CacheTypeValue, key: string, utf8Contents: string, { overwrite }?: {
10
+ overwrite?: boolean | undefined;
11
+ }) => Promise<void>;
12
+ export {};