testplane 9.1.1 → 9.2.1

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 (261) hide show
  1. package/build/package.json +2 -2
  2. package/build/src/base-testplane.d.ts +17 -1
  3. package/build/src/base-testplane.js +43 -9
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +3 -0
  6. package/build/src/browser/browser.js +4 -2
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/cdp/selectivity/testplane-selectivity.js +19 -19
  9. package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
  10. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +2 -2
  11. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +2 -2
  12. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +52 -84
  13. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +4 -1
  14. package/build/src/browser/commands/assert-view/index.js +25 -2
  15. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  16. package/build/src/browser/existing-browser.js +8 -1
  17. package/build/src/browser/existing-browser.js.map +1 -1
  18. package/build/src/browser/history/index.d.ts +4 -2
  19. package/build/src/browser/history/index.js +146 -67
  20. package/build/src/browser/history/index.js.map +1 -1
  21. package/build/src/browser/new-browser.js +1 -1
  22. package/build/src/browser/new-browser.js.map +1 -1
  23. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +5 -0
  24. package/build/src/browser/screen-shooter/elements-screen-shooter.js +102 -55
  25. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  26. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +4 -0
  27. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +29 -7
  28. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  29. package/build/src/browser-pool/basic-pool.d.ts +4 -3
  30. package/build/src/browser-pool/basic-pool.js +39 -7
  31. package/build/src/browser-pool/basic-pool.js.map +1 -1
  32. package/build/src/browser-pool/caching-pool.d.ts +3 -2
  33. package/build/src/browser-pool/caching-pool.js +19 -7
  34. package/build/src/browser-pool/caching-pool.js.map +1 -1
  35. package/build/src/browser-pool/index.d.ts +2 -1
  36. package/build/src/browser-pool/index.js +8 -4
  37. package/build/src/browser-pool/index.js.map +1 -1
  38. package/build/src/browser-pool/limited-pool.d.ts +5 -1
  39. package/build/src/browser-pool/limited-pool.js +42 -4
  40. package/build/src/browser-pool/limited-pool.js.map +1 -1
  41. package/build/src/browser-pool/per-browser-limited-pool.d.ts +2 -2
  42. package/build/src/browser-pool/per-browser-limited-pool.js +2 -1
  43. package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -1
  44. package/build/src/browser-pool/types.d.ts +8 -0
  45. package/build/src/cli/commands/config/index.js +7 -3
  46. package/build/src/cli/commands/config/index.js.map +1 -1
  47. package/build/src/cli/commands/install-deps/index.js +46 -38
  48. package/build/src/cli/commands/install-deps/index.js.map +1 -1
  49. package/build/src/cli/commands/list-browsers/index.js +15 -11
  50. package/build/src/cli/commands/list-browsers/index.js.map +1 -1
  51. package/build/src/cli/commands/list-tests/index.js +25 -21
  52. package/build/src/cli/commands/list-tests/index.js.map +1 -1
  53. package/build/src/cli/commands/selectivity-merge-dumps/index.js +12 -5
  54. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -1
  55. package/build/src/cli/index.js +10 -6
  56. package/build/src/cli/index.js.map +1 -1
  57. package/build/src/config/defaults.d.ts +5 -0
  58. package/build/src/config/defaults.js +4 -0
  59. package/build/src/config/defaults.js.map +1 -1
  60. package/build/src/config/index.d.ts +6 -4
  61. package/build/src/config/index.js +60 -19
  62. package/build/src/config/index.js.map +1 -1
  63. package/build/src/config/options.js +26 -0
  64. package/build/src/config/options.js.map +1 -1
  65. package/build/src/config/types.d.ts +19 -0
  66. package/build/src/constants/process-messages.d.ts +3 -0
  67. package/build/src/constants/process-messages.js +4 -1
  68. package/build/src/constants/process-messages.js.map +1 -1
  69. package/build/src/events/async-emitter/index.d.ts +38 -0
  70. package/build/src/events/async-emitter/index.js +248 -5
  71. package/build/src/events/async-emitter/index.js.map +1 -1
  72. package/build/src/events/index.d.ts +3 -0
  73. package/build/src/events/index.js +1 -0
  74. package/build/src/events/index.js.map +1 -1
  75. package/build/src/index.d.ts +2 -1
  76. package/build/src/profiler/analysis/aggregator.d.ts +19 -0
  77. package/build/src/profiler/analysis/aggregator.js +229 -0
  78. package/build/src/profiler/analysis/aggregator.js.map +1 -0
  79. package/build/src/profiler/analysis/analyzers.d.ts +10 -0
  80. package/build/src/profiler/analysis/analyzers.js +1228 -0
  81. package/build/src/profiler/analysis/analyzers.js.map +1 -0
  82. package/build/src/profiler/analysis/compact.d.ts +5 -0
  83. package/build/src/profiler/analysis/compact.js +46 -0
  84. package/build/src/profiler/analysis/compact.js.map +1 -0
  85. package/build/src/profiler/analysis/finding-order.d.ts +4 -0
  86. package/build/src/profiler/analysis/finding-order.js +28 -0
  87. package/build/src/profiler/analysis/finding-order.js.map +1 -0
  88. package/build/src/profiler/analysis/outliers.d.ts +6 -0
  89. package/build/src/profiler/analysis/outliers.js +49 -0
  90. package/build/src/profiler/analysis/outliers.js.map +1 -0
  91. package/build/src/profiler/analysis/policy-v1.d.ts +71 -0
  92. package/build/src/profiler/analysis/policy-v1.js +43 -0
  93. package/build/src/profiler/analysis/policy-v1.js.map +1 -0
  94. package/build/src/profiler/collectors/module-graph.d.ts +14 -0
  95. package/build/src/profiler/collectors/module-graph.js +99 -0
  96. package/build/src/profiler/collectors/module-graph.js.map +1 -0
  97. package/build/src/profiler/collectors/pool-observer.d.ts +9 -0
  98. package/build/src/profiler/collectors/pool-observer.js +40 -0
  99. package/build/src/profiler/collectors/pool-observer.js.map +1 -0
  100. package/build/src/profiler/manager.d.ts +55 -0
  101. package/build/src/profiler/manager.js +343 -0
  102. package/build/src/profiler/manager.js.map +1 -0
  103. package/build/src/profiler/output/console.d.ts +6 -0
  104. package/build/src/profiler/output/console.js +443 -0
  105. package/build/src/profiler/output/console.js.map +1 -0
  106. package/build/src/profiler/output/json.d.ts +2 -0
  107. package/build/src/profiler/output/json.js +24 -0
  108. package/build/src/profiler/output/json.js.map +1 -0
  109. package/build/src/profiler/retention/operation-store.d.ts +22 -0
  110. package/build/src/profiler/retention/operation-store.js +110 -0
  111. package/build/src/profiler/retention/operation-store.js.map +1 -0
  112. package/build/src/profiler/retention/policy-v1.d.ts +22 -0
  113. package/build/src/profiler/retention/policy-v1.js +49 -0
  114. package/build/src/profiler/retention/policy-v1.js.map +1 -0
  115. package/build/src/profiler/retention/result-budget.d.ts +2 -0
  116. package/build/src/profiler/retention/result-budget.js +117 -0
  117. package/build/src/profiler/retention/result-budget.js.map +1 -0
  118. package/build/src/profiler/retention/serialized-budget.d.ts +5 -0
  119. package/build/src/profiler/retention/serialized-budget.js +58 -0
  120. package/build/src/profiler/retention/serialized-budget.js.map +1 -0
  121. package/build/src/profiler/retention/streaming-statistics.d.ts +38 -0
  122. package/build/src/profiler/retention/streaming-statistics.js +191 -0
  123. package/build/src/profiler/retention/streaming-statistics.js.map +1 -0
  124. package/build/src/profiler/retention/top-k.d.ts +13 -0
  125. package/build/src/profiler/retention/top-k.js +57 -0
  126. package/build/src/profiler/retention/top-k.js.map +1 -0
  127. package/build/src/profiler/runtime/async-activity.d.ts +19 -0
  128. package/build/src/profiler/runtime/async-activity.js +113 -0
  129. package/build/src/profiler/runtime/async-activity.js.map +1 -0
  130. package/build/src/profiler/runtime/bootstrap-probe.d.ts +42 -0
  131. package/build/src/profiler/runtime/bootstrap-probe.js +91 -0
  132. package/build/src/profiler/runtime/bootstrap-probe.js.map +1 -0
  133. package/build/src/profiler/runtime/clock.d.ts +17 -0
  134. package/build/src/profiler/runtime/clock.js +15 -0
  135. package/build/src/profiler/runtime/clock.js.map +1 -0
  136. package/build/src/profiler/runtime/event-observer.d.ts +4 -0
  137. package/build/src/profiler/runtime/event-observer.js +142 -0
  138. package/build/src/profiler/runtime/event-observer.js.map +1 -0
  139. package/build/src/profiler/runtime/noop.d.ts +20 -0
  140. package/build/src/profiler/runtime/noop.js +37 -0
  141. package/build/src/profiler/runtime/noop.js.map +1 -0
  142. package/build/src/profiler/runtime/runtime.d.ts +95 -0
  143. package/build/src/profiler/runtime/runtime.js +1343 -0
  144. package/build/src/profiler/runtime/runtime.js.map +1 -0
  145. package/build/src/profiler/runtime/types.d.ts +88 -0
  146. package/build/src/profiler/runtime/types.js +3 -0
  147. package/build/src/profiler/runtime/types.js.map +1 -0
  148. package/build/src/profiler/sanitize.d.ts +15 -0
  149. package/build/src/profiler/sanitize.js +194 -0
  150. package/build/src/profiler/sanitize.js.map +1 -0
  151. package/build/src/profiler/schema/index.d.ts +1 -0
  152. package/build/src/profiler/schema/index.js +18 -0
  153. package/build/src/profiler/schema/index.js.map +1 -0
  154. package/build/src/profiler/schema/v1.d.ts +281 -0
  155. package/build/src/profiler/schema/v1.js +3 -0
  156. package/build/src/profiler/schema/v1.js.map +1 -0
  157. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js +30 -0
  158. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js.map +1 -1
  159. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  160. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +31 -6
  161. package/build/src/runner/browser-env/vite/browser-modules/types.js +8 -8
  162. package/build/src/runner/browser-env/vite/browser-modules/types.js.map +1 -1
  163. package/build/src/runner/browser-env/vite/plugins/generate-index-html.d.ts +7 -1
  164. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js +28 -6
  165. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js.map +1 -1
  166. package/build/src/runner/browser-env/vite/server.js +17 -1
  167. package/build/src/runner/browser-env/vite/server.js.map +1 -1
  168. package/build/src/runner/browser-env/vite/socket.js +4 -0
  169. package/build/src/runner/browser-env/vite/socket.js.map +1 -1
  170. package/build/src/runner/browser-env/vite/types.d.ts +9 -7
  171. package/build/src/runner/browser-env/vite/types.js +8 -8
  172. package/build/src/runner/browser-env/vite/types.js.map +1 -1
  173. package/build/src/runner/browser-env/vite/utils.js +9 -2
  174. package/build/src/runner/browser-env/vite/utils.js.map +1 -1
  175. package/build/src/runner/browser-runner.d.ts +3 -1
  176. package/build/src/runner/browser-runner.js +4 -2
  177. package/build/src/runner/browser-runner.js.map +1 -1
  178. package/build/src/runner/index.d.ts +3 -1
  179. package/build/src/runner/index.js +7 -4
  180. package/build/src/runner/index.js.map +1 -1
  181. package/build/src/runner/test-runner/index.d.ts +2 -1
  182. package/build/src/runner/test-runner/index.js +2 -2
  183. package/build/src/runner/test-runner/index.js.map +1 -1
  184. package/build/src/runner/test-runner/insistant-test-runner.d.ts +2 -1
  185. package/build/src/runner/test-runner/insistant-test-runner.js +3 -2
  186. package/build/src/runner/test-runner/insistant-test-runner.js.map +1 -1
  187. package/build/src/runner/test-runner/regular-test-runner.d.ts +9 -3
  188. package/build/src/runner/test-runner/regular-test-runner.js +77 -16
  189. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  190. package/build/src/signal-handler.js +14 -5
  191. package/build/src/signal-handler.js.map +1 -1
  192. package/build/src/test-reader/index.d.ts +2 -1
  193. package/build/src/test-reader/index.js +19 -10
  194. package/build/src/test-reader/index.js.map +1 -1
  195. package/build/src/test-reader/mocha-reader/index.d.ts +2 -1
  196. package/build/src/test-reader/mocha-reader/index.js +41 -24
  197. package/build/src/test-reader/mocha-reader/index.js.map +1 -1
  198. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +2 -2
  199. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -1
  200. package/build/src/test-reader/mocha-reader/utils.d.ts +2 -0
  201. package/build/src/test-reader/mocha-reader/utils.js +18 -2
  202. package/build/src/test-reader/mocha-reader/utils.js.map +1 -1
  203. package/build/src/test-reader/test-object/hook.d.ts +4 -2
  204. package/build/src/test-reader/test-object/hook.js +3 -1
  205. package/build/src/test-reader/test-object/hook.js.map +1 -1
  206. package/build/src/test-reader/test-parser.d.ts +2 -1
  207. package/build/src/test-reader/test-parser.js +48 -4
  208. package/build/src/test-reader/test-parser.js.map +1 -1
  209. package/build/src/testplane.d.ts +6 -2
  210. package/build/src/testplane.js +82 -27
  211. package/build/src/testplane.js.map +1 -1
  212. package/build/src/types/index.d.ts +4 -1
  213. package/build/src/types/index.js.map +1 -1
  214. package/build/src/utils/exit-code.d.ts +1 -0
  215. package/build/src/utils/exit-code.js +28 -0
  216. package/build/src/utils/exit-code.js.map +1 -0
  217. package/build/src/utils/module-observer-registry.d.ts +43 -0
  218. package/build/src/utils/module-observer-registry.js +257 -0
  219. package/build/src/utils/module-observer-registry.js.map +1 -0
  220. package/build/src/utils/processor.js +1 -0
  221. package/build/src/utils/processor.js.map +1 -1
  222. package/build/src/utils/workers-registry.d.ts +48 -1
  223. package/build/src/utils/workers-registry.js +162 -4
  224. package/build/src/utils/workers-registry.js.map +1 -1
  225. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js +15 -1
  226. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js.map +1 -1
  227. package/build/src/worker/browser-env/runner/test-runner/index.js +20 -0
  228. package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
  229. package/build/src/worker/index.js +39 -1
  230. package/build/src/worker/index.js.map +1 -1
  231. package/build/src/worker/runner/browser-pool.d.ts +3 -2
  232. package/build/src/worker/runner/browser-pool.js +5 -3
  233. package/build/src/worker/runner/browser-pool.js.map +1 -1
  234. package/build/src/worker/runner/caching-test-parser.d.ts +6 -1
  235. package/build/src/worker/runner/caching-test-parser.js +40 -4
  236. package/build/src/worker/runner/caching-test-parser.js.map +1 -1
  237. package/build/src/worker/runner/index.d.ts +10 -9
  238. package/build/src/worker/runner/index.js +52 -6
  239. package/build/src/worker/runner/index.js.map +1 -1
  240. package/build/src/worker/runner/sequence-test-parser.d.ts +4 -1
  241. package/build/src/worker/runner/sequence-test-parser.js +17 -3
  242. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  243. package/build/src/worker/runner/simple-test-parser.d.ts +3 -1
  244. package/build/src/worker/runner/simple-test-parser.js +4 -2
  245. package/build/src/worker/runner/simple-test-parser.js.map +1 -1
  246. package/build/src/worker/runner/test-runner/execution-thread.d.ts +20 -2
  247. package/build/src/worker/runner/test-runner/execution-thread.js +37 -2
  248. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  249. package/build/src/worker/runner/test-runner/hook-runner.d.ts +1 -1
  250. package/build/src/worker/runner/test-runner/hook-runner.js +4 -4
  251. package/build/src/worker/runner/test-runner/hook-runner.js.map +1 -1
  252. package/build/src/worker/runner/test-runner/index.d.ts +8 -7
  253. package/build/src/worker/runner/test-runner/index.js +36 -25
  254. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  255. package/build/src/worker/runner/test-runner/types.d.ts +8 -1
  256. package/build/src/worker/testplane-facade.js +63 -4
  257. package/build/src/worker/testplane-facade.js.map +1 -1
  258. package/build/src/worker/testplane.d.ts +6 -0
  259. package/build/src/worker/testplane.js +7 -1
  260. package/build/src/worker/testplane.js.map +1 -1
  261. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testplane",
3
- "version": "9.1.1",
3
+ "version": "9.2.1",
4
4
  "description": "Tests framework based on mocha and wdio",
5
5
  "main": "build/src/index.js",
6
6
  "files": [
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "scripts": {
21
- "browsers:launch": "docker run -it --rm --network=host $(which colima >/dev/null || echo --add-host=host.docker.internal:0.0.0.0) yinfra/html-reporter-browsers",
21
+ "browsers:launch": "docker run -it --rm --network=host --shm-size=2g $(which colima >/dev/null || echo --add-host=host.docker.internal:0.0.0.0) ghcr.io/gemini-testing/browsers/chromium:126.0",
22
22
  "build": "tsc --build && npm run build-bundles && npm run copy-static",
23
23
  "copy-static": "copyfiles 'src/browser/client-scripts/**/*.js' 'src/**/[!cache]*/autogenerated/**/*.json' build",
24
24
  "build-node-bundle": "esbuild ./src/bundle/cjs/index.ts --outdir=./build/src/bundle/cjs --bundle --format=cjs --platform=node --target=ES2021",
@@ -2,12 +2,26 @@ import { Config } from "./config";
2
2
  import { AsyncEmitter, InterceptedEvent, Events, InterceptHandler, Interceptor } from "./events";
3
3
  import Errors from "./errors";
4
4
  import { ConfigInput } from "./config/types";
5
+ import { ProfilerManager } from "./profiler/manager";
6
+ import { BootstrapProbe } from "./profiler/runtime/bootstrap-probe";
7
+ import type { ProcessRef } from "./profiler/schema";
8
+ interface ProfilerSetupOptions {
9
+ runId?: string;
10
+ process?: ProcessRef;
11
+ /** Amount added to local wall-clock timestamps to align them with the main process. */
12
+ clockOffsetMs?: number;
13
+ /** Estimated maximum error of the supplied clock alignment. */
14
+ clockUncertaintyMs?: number;
15
+ }
5
16
  export declare abstract class BaseTestplane extends AsyncEmitter {
6
17
  protected _interceptors: Interceptor[];
7
18
  protected _config: Config;
8
19
  protected _initEventEmited: boolean;
20
+ protected _bootstrapProbe: BootstrapProbe;
21
+ protected _profiler: ProfilerManager;
9
22
  private _pendingConfig?;
10
- static create<T extends BaseTestplane>(this: new (config?: string | ConfigInput) => T, config?: string | ConfigInput): Promise<T>;
23
+ private _pendingProfilerOptions?;
24
+ static create<T extends BaseTestplane>(this: new (config?: string | ConfigInput) => T, config?: string | ConfigInput, bootstrapProbe?: BootstrapProbe, profilerOptions?: ProfilerSetupOptions): Promise<T>;
11
25
  protected constructor(config?: string | ConfigInput);
12
26
  protected _setup(): Promise<void>;
13
27
  /** @note Only the first call returns a promise to wait for INIT handlers to complete, subsequent calls return immediately to avoid deadlocks */
@@ -15,8 +29,10 @@ export declare abstract class BaseTestplane extends AsyncEmitter {
15
29
  get config(): Config;
16
30
  get events(): Events;
17
31
  get errors(): typeof Errors;
32
+ profileCliCommand<T>(command: string, action: () => T | Promise<T>): Promise<T>;
18
33
  intercept(event: InterceptedEvent, handler: InterceptHandler): this;
19
34
  abstract isWorker(): boolean;
20
35
  protected _setLogLevel(): void;
21
36
  protected _loadPlugins(): void;
22
37
  }
38
+ export {};
@@ -11,10 +11,21 @@ const events_1 = require("./events");
11
11
  const errors_1 = __importDefault(require("./errors"));
12
12
  const typescript_1 = require("./utils/typescript");
13
13
  const repl_module_hooks_1 = require("./utils/repl-module-hooks");
14
+ const manager_1 = require("./profiler/manager");
15
+ const bootstrap_probe_1 = require("./profiler/runtime/bootstrap-probe");
16
+ const event_observer_1 = require("./profiler/runtime/event-observer");
14
17
  class BaseTestplane extends events_1.AsyncEmitter {
15
- static async create(config) {
18
+ static async create(config, bootstrapProbe = new bootstrap_probe_1.BootstrapProbe(), profilerOptions = {}) {
16
19
  const instance = new this(config);
17
- await instance._setup();
20
+ instance._bootstrapProbe = bootstrapProbe;
21
+ instance._pendingProfilerOptions = profilerOptions;
22
+ try {
23
+ await instance._setup();
24
+ }
25
+ catch (error) {
26
+ await instance._profiler?.finalizeSetupError(error);
27
+ throw error;
28
+ }
18
29
  return instance;
19
30
  }
20
31
  constructor(config) {
@@ -25,13 +36,33 @@ class BaseTestplane extends events_1.AsyncEmitter {
25
36
  this._pendingConfig = config;
26
37
  }
27
38
  async _setup() {
28
- (0, repl_module_hooks_1.registerReplModuleHooks)();
29
- (0, typescript_1.registerTransformHook)(this.isWorker());
30
- this._config = await config_1.Config.create(this._pendingConfig);
39
+ const transformPhase = this._bootstrapProbe.startPhase("testplane.phase.transform-setup", "Set up transforms");
40
+ try {
41
+ (0, repl_module_hooks_1.registerReplModuleHooks)();
42
+ (0, typescript_1.registerTransformHook)(this.isWorker());
43
+ transformPhase.end();
44
+ }
45
+ catch (error) {
46
+ transformPhase.end("failed");
47
+ throw error;
48
+ }
49
+ this._config = await config_1.Config.create(this._pendingConfig, this._bootstrapProbe);
31
50
  this._pendingConfig = undefined;
32
- (0, typescript_1.updateTransformHook)(this._config);
33
- this._setLogLevel();
34
- this._loadPlugins();
51
+ this._profiler = new manager_1.ProfilerManager(this._config, this._bootstrapProbe, {
52
+ process: this._pendingProfilerOptions?.process ??
53
+ { type: this.isWorker() ? "worker" : "master", pid: process.pid },
54
+ runId: this._pendingProfilerOptions?.runId,
55
+ clockOffsetMs: this._pendingProfilerOptions?.clockOffsetMs,
56
+ clockUncertaintyMs: this._pendingProfilerOptions?.clockUncertaintyMs,
57
+ });
58
+ this._pendingProfilerOptions = undefined;
59
+ this._profiler.setResultEmitter(result => this.emitAndWait(events_1.MasterEvents.PROFILER_RESULT, result));
60
+ this.setEventObserver((0, event_observer_1.createProfilerEventObserver)(this._profiler, this._config));
61
+ this._profiler.runtime.withSpan("testplane.phase.plugins", { name: "Load plugins" }, () => {
62
+ (0, typescript_1.updateTransformHook)(this._config);
63
+ this._setLogLevel();
64
+ this._loadPlugins();
65
+ });
35
66
  }
36
67
  /** @note Only the first call returns a promise to wait for INIT handlers to complete, subsequent calls return immediately to avoid deadlocks */
37
68
  async _emitInitEventOnce() {
@@ -39,7 +70,7 @@ class BaseTestplane extends events_1.AsyncEmitter {
39
70
  return;
40
71
  }
41
72
  this._initEventEmited = true;
42
- await this.emitAndWait(events_1.MasterEvents.INIT);
73
+ await this._profiler.runtime.withSpan("testplane.phase.init", { name: "Initialize Testplane" }, () => this.emitAndWait(events_1.MasterEvents.INIT));
43
74
  }
44
75
  get config() {
45
76
  return this._config;
@@ -50,6 +81,9 @@ class BaseTestplane extends events_1.AsyncEmitter {
50
81
  get errors() {
51
82
  return errors_1.default;
52
83
  }
84
+ async profileCliCommand(command, action) {
85
+ return this._profiler ? this._profiler.profileOperation(`cli:${command}`, action) : action();
86
+ }
53
87
  intercept(event, handler) {
54
88
  this._interceptors.push({ event, handler });
55
89
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAgF;AAChF,iEAAoE;AAGpE,MAAsB,aAAc,SAAQ,qBAAY;IAMpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAEf,MAA6B;QAE7B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAExB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAjBF,kBAAa,GAAkB,EAAE,CAAC;QAElC,qBAAgB,GAAY,KAAK,CAAC;QAiBxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,MAAM;QAClB,IAAA,2CAAuB,GAAE,CAAC;QAC1B,IAAA,kCAAqB,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAA,gCAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,gJAAgJ;IACtI,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAC,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAY,EAAE,qBAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,KAAuB,EAAE,OAAyB;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAIS,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,CAAC;IACL,CAAC;IAES,YAAY;QAClB,wBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;CACJ;AA1ED,sCA0EC"}
1
+ {"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,14 @@ import { AsyncEmitter } from "../events";
4
4
  import { BrowserConfig } from "../config/browser-config";
5
5
  import type { Callstack } from "./history/callstack";
6
6
  import type { WdProcess, WebdriverPool } from "../browser-pool/webdriver-pool";
7
+ import type { ProfilerRuntimeLike } from "../profiler/runtime/types";
7
8
  export type BrowserOpts = {
8
9
  id: string;
9
10
  version?: string;
10
11
  state?: Record<string, unknown>;
11
12
  emitter: AsyncEmitter;
12
13
  wdPool?: WebdriverPool;
14
+ profiler?: ProfilerRuntimeLike;
13
15
  };
14
16
  export type BrowserState = {
15
17
  testXReqId?: string;
@@ -32,6 +34,7 @@ export declare class Browser {
32
34
  protected _wdPool?: WebdriverPool;
33
35
  protected _wdProcess: WdProcess | null;
34
36
  protected _exitError?: Error;
37
+ protected _profiler: ProfilerRuntimeLike;
35
38
  /** This Promise is awaited after test is finished. Can be used for cleanup.
36
39
  Right now is used to wait for time travel snapshots to finish collecting */
37
40
  protected _snapshotsPromiseRef: history.PromiseRef;
@@ -35,6 +35,7 @@ const history = __importStar(require("./history"));
35
35
  const stacktrace_1 = require("./stacktrace");
36
36
  const commands_1 = require("./history/commands");
37
37
  const runStep_1 = __importDefault(require("./commands/runStep"));
38
+ const noop_1 = require("../profiler/runtime/noop");
38
39
  const CUSTOM_SESSION_OPTS = [
39
40
  "outputDir",
40
41
  "agent",
@@ -68,6 +69,7 @@ class Browser {
68
69
  this._customCommands = new Set();
69
70
  this._wdPool = opts.wdPool;
70
71
  this._emitter = opts.emitter;
72
+ this._profiler = opts.profiler ?? noop_1.noopProfilerRuntime;
71
73
  }
72
74
  setHttpTimeout(timeout) {
73
75
  if (timeout === null) {
@@ -91,8 +93,8 @@ class Browser {
91
93
  (0, stacktrace_1.enhanceStacktraces)(this._session);
92
94
  }
93
95
  _addHistory() {
94
- if (this._config.saveHistoryMode !== config_1.SAVE_HISTORY_MODE.NONE) {
95
- const initHistoryResult = history.initCommandHistory(this._session, this._config);
96
+ if (this._config.saveHistoryMode !== config_1.SAVE_HISTORY_MODE.NONE || this._profiler.isEnabled(3)) {
97
+ const initHistoryResult = history.initCommandHistory(this._session, this._config, this._profiler);
96
98
  this._callstackHistory = initHistoryResult.callstack;
97
99
  this._snapshotsPromiseRef = initHistoryResult.snapshotsPromiseRef;
98
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.readTestFileWithTestplaneDependenciesCollecting = exports.addTestplaneSelectivityPngDependency = exports.runWithTestplaneDependenciesCollecting = exports.getCollectedTestplanePngDependencies = exports.getCollectedTestplaneJsDependencies = exports.enableCollectingTestplaneDependencies = exports.disableCollectingTestplaneDependencies = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
- const module_1 = require("module");
9
8
  const async_hooks_1 = require("async_hooks");
10
9
  const fs_cache_1 = require("./fs-cache");
11
10
  const debug_1 = require("./debug");
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- const TypedModule = module_1.Module;
11
+ const module_observer_registry_1 = require("../../../utils/module-observer-registry");
14
12
  const testDependenciesStorage = new async_hooks_1.AsyncLocalStorage();
15
13
  const testFileDependenciesRamCache = new Map();
16
14
  const testFileLocks = {};
17
15
  let disableCollectingDependenciesCb = null;
16
+ let dependencyRegistration = null;
18
17
  const disableCollectingTestplaneDependencies = () => {
19
18
  if (disableCollectingDependenciesCb) {
20
19
  disableCollectingDependenciesCb();
@@ -26,24 +25,23 @@ const enableCollectingTestplaneDependencies = () => {
26
25
  if (disableCollectingDependenciesCb) {
27
26
  return;
28
27
  }
29
- const originalResolveFileName = TypedModule._resolveFilename;
30
28
  disableCollectingDependenciesCb = () => {
31
- TypedModule._resolveFilename = originalResolveFileName;
29
+ dependencyRegistration?.dispose();
30
+ dependencyRegistration = null;
32
31
  };
33
- TypedModule._resolveFilename = function () {
34
- // eslint-disable-next-line prefer-rest-params
35
- const result = originalResolveFileName.apply(this, arguments);
36
- try {
37
- const store = disableCollectingDependenciesCb ? testDependenciesStorage.getStore() : null;
38
- const relPath = result && path_1.default.isAbsolute(result) ? path_1.default.relative(process.cwd(), result) : null;
39
- if (store && relPath) {
40
- const posixRelPath = path_1.default.sep === path_1.default.posix.sep ? relPath : relPath.replaceAll(path_1.default.sep, path_1.default.posix.sep);
41
- store.jsTestplaneDeps?.add(posixRelPath);
32
+ dependencyRegistration = module_observer_registry_1.moduleObserverRegistry.register({
33
+ onResolve: ({ resolved }) => {
34
+ try {
35
+ const store = disableCollectingDependenciesCb ? testDependenciesStorage.getStore() : null;
36
+ const relPath = resolved && path_1.default.isAbsolute(resolved) ? path_1.default.relative(process.cwd(), resolved) : null;
37
+ if (store && relPath) {
38
+ const posixRelPath = path_1.default.sep === path_1.default.posix.sep ? relPath : relPath.replaceAll(path_1.default.sep, path_1.default.posix.sep);
39
+ store.jsTestplaneDeps?.add(posixRelPath);
40
+ }
42
41
  }
43
- }
44
- catch { } // eslint-disable-line no-empty
45
- return result;
46
- };
42
+ catch { } // eslint-disable-line no-empty
43
+ },
44
+ });
47
45
  };
48
46
  exports.enableCollectingTestplaneDependencies = enableCollectingTestplaneDependencies;
49
47
  const getCollectedTestplaneJsDependencies = () => {
@@ -59,7 +57,9 @@ exports.getCollectedTestplanePngDependencies = getCollectedTestplanePngDependenc
59
57
  const runWithTestplaneDependenciesCollecting = (fn) => {
60
58
  (0, exports.enableCollectingTestplaneDependencies)();
61
59
  const store = { jsTestplaneDeps: new Set(), pngTestplaneDeps: new Set() };
62
- return testDependenciesStorage.run(store, fn).finally(() => {
60
+ return testDependenciesStorage
61
+ .run(store, () => dependencyRegistration.run(fn))
62
+ .finally(() => {
63
63
  // After "fn" completion, "store" is reachable in CDP ping interval callback, so it never GC-removed
64
64
  // Thats why we do it manually. It is enough, and set remains unchanged, if used
65
65
  delete store.jsTestplaneDeps;
@@ -1 +1 @@
1
- {"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@
3
3
  },{}],2:[function(require,module,exports){
4
4
  "use strict";var __extends=this&&this.__extends||function(){var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])})(t,e)};return function(t,e){function o(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}}();exports.__esModule=!0,exports.OutsideOfViewportError=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),OutsideOfViewportError=function(r){function t(t){var e=r.call(this,'Can not capture element, because it is completely outside of viewport with no intersection. Try to set "captureElementFromTop=true" assertView option to scroll to it before capture.')||this;return e.name="OutsideOfViewportError",e.errorCode=_isomorphic_1.BrowserSideErrorCode.OUTSIDE_OF_VIEWPORT,e.debugLog=t,e}return __extends(t,r),t}(Error);exports.OutsideOfViewportError=OutsideOfViewportError;
5
5
  },{"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],3:[function(require,module,exports){
6
- "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),s=r[t];r[t]=r[i],r[i]=s}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,s=0,n=0;s<r.length;s++){for(;n+1<r.length&&r[n+1]-r[s]<=o;)n++;n-s+1>i-t+1&&(t=s,i=n)}var a=r.slice(t,i+1),c=Math.floor(a.length/2);return a.length%2==1?a[c]:(a[c-1]+a[c])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var s=i.element.getBoundingClientRect(),n=i.rect;s.width<=0||s.height<=0||Math.abs(s.width-n.width)>1||Math.abs(s.height-n.height)>1||o.push(s.top-n.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function scrollBy(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollBy"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementBy)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function scrollTo(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollTo");i("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementToOffset)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function getCaptureState(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"getCaptureState"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,operations_1.computeIgnoreAreas)(o),u=(0,operations_1.computeSafeArea)(e,a,i),_=(0,operations_1.computeCaptureSpecs)(e,i),m=_.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s)}}),f=(0,operations_1.computeScrollOffset)(a),d=(0,operations_1.computeViewportOffset)(),h=computeActualShift(),v=null===h?null:(0,_isomorphic_1.fromCssToDeviceNumber)(h,s);return i("scrollOffset:",f),{captureSpecs:m,ignoreAreas:p.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),s),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(d),s),anchorShift:v,readableSelectorToScrollDescr:l,debugLog:i()}})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),n=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),n=!0)}var c=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(s),o),elementPositionsProbe:c,pixelRatio:o,pointerEventsDisabled:n}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:s}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){var o=(0,operations_1.computePixelRatio)(e.usePixelRatio),r=(0,operations_1.computeViewportSize)(),t=(0,operations_1.computeViewportOffset)(),i=(0,operations_1.computeDocumentSize)(),s=(0,operations_1.computeCanHaveCaret)();e.disableAnimation&&(0,operations_1.disableAnimations)();var n=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),a=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),a=!0),{viewportSize:(0,_isomorphic_1.fromCssToDevice)(r,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(t),o),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(i,o)),ignoreAreas:n.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)}),canHaveCaret:s,pixelRatio:o,pointerEventsDisabled:a}})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var s=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(s){t.push(s);for(var n=s.querySelectorAll("*"),a=0;a<n.length;a++)t.push(n[a])}}var c=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),l=sampleRandom(c,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=l.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var t=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,r).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var i=(0,operations_1.computePixelRatio)(o.usePixelRatio),s=o.selectorToScroll?lib.queryFirst(o.selectorToScroll):null,n=null!==s&&void 0!==s?s:(0,scroll_1.getCommonScrollParent)(e),a=(0,operations_1.computeIgnoreAreas)(o.ignoreSelectors),c=(0,operations_1.computeCaptureSpecs)(e,r),l=(0,operations_1.computeViewportSize)(),p=(0,operations_1.computeViewportOffset)(),u=(0,operations_1.computeSafeArea)(e,n,r),_=(0,operations_1.computeScrollOffset)(n),m=(0,operations_1.computeDocumentSize)(),f=(0,operations_1.computeCanHaveCaret)(),d=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),d=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var h=(0,_isomorphic_1.getCoveringRect)(c.map(function(e){return e.full})),v=(0,_isomorphic_1.getBottom)(h)>(0,_isomorphic_1.getBottom)(u);v&&(r("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",h,"safeArea:",u),(0,operations_1.disablePointerEvents)(),d=!0)}return r("scrollOffset:",_),{ignoreAreas:a.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),i)}),captureSpecs:c.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),i),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),i),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),i)}}),viewportSize:(0,_isomorphic_1.fromCssToDevice)(l,i),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(p),i),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),i),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(m,i)),canHaveCaret:f,pixelRatio:i,pointerEventsDisabled:d,debugLog:r(),readableSelectorToScrollDescr:t,scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(_,i)}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
6
+ "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),n=r[t];r[t]=r[i],r[i]=n}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,n=0,s=0;n<r.length;n++){for(;s+1<r.length&&r[s+1]-r[n]<=o;)s++;s-n+1>i-t+1&&(t=n,i=s)}var a=r.slice(t,i+1),l=Math.floor(a.length/2);return a.length%2==1?a[l]:(a[l-1]+a[l])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var n=i.element.getBoundingClientRect(),s=i.rect;n.width<=0||n.height<=0||Math.abs(n.width-s.width)>1||Math.abs(n.height-s.height)>1||o.push(n.top-s.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function getCurrentPixelRatio(){return(0,operations_1.computePixelRatio)()}function scrollBy(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollBy"),a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementBy)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function scrollTo(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollTo");s("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementToOffset)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function getViewportState(e,o){var r=(0,operations_1.computePixelRatio)(e,o);return{viewportSize:(0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeViewportSize)(),r),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)((0,operations_1.computeViewportOffset)()),r),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeDocumentSize)(),r)),pixelRatio:r}}function getCaptureStateUnsafe(e,o,r,t,i,n){var s=getViewportState(t,i),a=r?lib.queryFirst(r):null,l=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(l),p=r?a?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),u=(0,operations_1.computeIgnoreAreas)(o),_=(0,operations_1.computeSafeArea)(e,l,n),m=(0,operations_1.computeCaptureSpecs)(e,n),d=(0,operations_1.computeScrollOffset)(l),f=computeActualShift();return n("scrollOffset:",d),__assign(__assign({},s),{captureSpecs:m.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s.pixelRatio),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s.pixelRatio),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s.pixelRatio)}}),ignoreAreas:u.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s.pixelRatio)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(_),s.pixelRatio),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(d,s.pixelRatio),anchorShift:null===f?null:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s.pixelRatio),readableSelectorToScrollDescr:p})}function getCaptureState(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"getCaptureState"),a=getCaptureStateUnsafe(e,o,r,t,i,s);return __assign(__assign({},a),{debugLog:s()})})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var s=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),s=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),s=!0)}var l=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(n),o),elementPositionsProbe:l,pixelRatio:o,pointerEventsDisabled:s}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:n}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){e.disableAnimation&&(0,operations_1.disableAnimations)();var o=getViewportState(e.usePixelRatio,e.pixelRatioOverride),r=(0,operations_1.computeCanHaveCaret)(),t=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),i=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),i=!0),__assign(__assign({},o),{ignoreAreas:t.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o.pixelRatio)}),canHaveCaret:r,pointerEventsDisabled:i})})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var n=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(n){t.push(n);for(var s=n.querySelectorAll("*"),a=0;a<s.length;a++)t.push(s[a])}}var l=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),c=sampleRandom(l,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=c.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r,t=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var i=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,t).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var n=getCaptureStateUnsafe(e,null!==(r=o.ignoreSelectors)&&void 0!==r?r:[],o.selectorToScroll,o.usePixelRatio,o.pixelRatioOverride,t),s=(0,operations_1.computeCanHaveCaret)(),a=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),a=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var l=(0,_isomorphic_1.getCoveringRect)(n.captureSpecs.map(function(e){return e.full})),c=(0,_isomorphic_1.getBottom)(l)>(0,_isomorphic_1.getBottom)(n.safeArea);c&&(t("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",l,"safeArea:",n.safeArea),(0,operations_1.disablePointerEvents)(),a=!0)}return __assign(__assign({},n),{canHaveCaret:s,pointerEventsDisabled:a,readableSelectorToScrollDescr:i,debugLog:t()})}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.getCurrentPixelRatio=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.getCurrentPixelRatio=getCurrentPixelRatio,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
7
7
  },{"../shared/logger":16,"./../shared/lib.compat.js":15,"./operations":5,"./utils/descriptions":7,"./utils/dom":8,"./utils/pseudo-element-rect":10,"./utils/scroll":11,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],4:[function(require,module,exports){
8
8
  "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){n===undefined&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){n===undefined&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t};exports.__esModule=!0;var implementation=__importStar(require("./implementation")),globalObj="undefined"==typeof window?globalThis:window;globalObj.__geminiCore||(globalObj.__geminiCore={}),globalObj.__geminiCore[__geminiNamespace]=implementation;
9
9
  },{"./implementation":3}],5:[function(require,module,exports){
10
- "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e){return void 0===e&&(e=!0),!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
10
+ "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e,t){return void 0===e&&(e=!0),!1===e?1:t||(window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1)}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
11
11
  },{"./../shared/lib.compat.js":15,"./errors/outside-of-viewport":2,"./utils/clip-rect":6,"./utils/descriptions":7,"./utils/dom":8,"./utils/element-rect":9,"./utils/pseudo-element-rect":10,"./utils/scroll":11,"./utils/trusted-types":12,"./utils/user-agent":13,"./utils/z-index":14,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],6:[function(require,module,exports){
12
12
  "use strict";function getViewportRect(){return{top:0,left:0,width:window.innerWidth,height:window.innerHeight}}function hasOverflowClipping(e){return"visible"!==e.overflow||"visible"!==e.overflowX||"visible"!==e.overflowY}function getAbsoluteContainingBlocks(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);){if("absolute"===getComputedStyle(n).position){var i=(0,dom_1.findContainingBlock)(n);t.push({absoluteAncestor:n,containingBlock:i})}n=n.parentElement}return t}function getFixedAncestors(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);)"fixed"===getComputedStyle(n).position&&t.push(n),n=n.parentElement;return t}function escapesOverflowClippingViaAbsoluteContainingBlocks(e,t){return t.some(function(t){var n=t.absoluteAncestor,i=t.containingBlock;return!(n===e||!lib.contains(e,n))&&(i!==e&&lib.contains(i,e))})}function escapesOverflowClippingViaFixedAncestors(e,t){return t.some(function(t){return t!==e&&lib.contains(e,t)})}function getClipRect(e,t){for(var n=getViewportRect(),i=getAbsoluteContainingBlocks(e),o=getFixedAncestors(e),r=n,l=e.parentElement;l&&!(0,scroll_1.isRootLikeElement)(l);){var s=getComputedStyle(l);if("contents"!==s.display){if(hasOverflowClipping(s)){if(escapesOverflowClippingViaAbsoluteContainingBlocks(l,i)||escapesOverflowClippingViaFixedAncestors(l,o)){l=l.parentElement;continue}var c=(0,element_rect_1.getBoundingClientContentRect)(l);null===t||void 0===t||t("intersecting with:",(0,descriptions_1.getReadableElementDescriptor)(l),"contentBox:",c);var u=(0,_isomorphic_1.getIntersection)(r,c);if(!u)return null===t||void 0===t||t("no intersection found for:",(0,descriptions_1.getReadableElementDescriptor)(l)),{top:r.top,left:r.left,width:0,height:0};r=u}l=l.parentElement}else l=l.parentElement}return r}var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){i===undefined&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&("get"in o?t.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===undefined&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t};exports.__esModule=!0,exports.getClipRect=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../../shared/lib.compat.js")),element_rect_1=require("./element-rect"),scroll_1=require("./scroll"),dom_1=require("./dom"),descriptions_1=require("./descriptions");exports.getClipRect=getClipRect;
13
13
  },{"./../../shared/lib.compat.js":15,"./descriptions":7,"./dom":8,"./element-rect":9,"./scroll":11,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],7:[function(require,module,exports){