@skrillex1224/playwright-toolkit 2.1.281 → 2.1.282

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.
package/dist/index.js CHANGED
@@ -4707,53 +4707,8 @@ var resolveDeviceFromPage3 = (page) => normalizeDevice(page?.[PageRuntimeStateKe
4707
4707
  var isMobilePage = (page) => resolveDeviceFromPage3(page) === Device.Mobile;
4708
4708
  var isPageLike2 = (value) => value && typeof value === "object" && typeof value.evaluate === "function";
4709
4709
  var isPoint2 = (value) => value && typeof value === "object" && Number.isFinite(Number(value.x)) && Number.isFinite(Number(value.y));
4710
- var resolveNativeTarget2 = (page, target) => typeof target === "string" ? page.locator(target).first() : target;
4711
- var getViewportCenter = (page) => {
4712
- const viewport = page?.viewportSize?.() || { width: 1365, height: 900 };
4713
- return {
4714
- x: Math.round(viewport.width / 2),
4715
- y: Math.round(viewport.height / 2)
4716
- };
4717
- };
4718
- var readViewportScroll = async (page) => await page.evaluate(() => ({ x: window.scrollX, y: window.scrollY })).catch(() => ({ x: 0, y: 0 }));
4719
- var getTargetBox = async (target) => {
4720
- if (!target || typeof target.boundingBox !== "function") {
4721
- return null;
4722
- }
4723
- return await target.boundingBox().catch(() => null);
4724
- };
4725
- var clickOptionsFrom = (options = {}) => {
4726
- const nextOptions = {
4727
- force: true
4728
- };
4729
- if (options.timeout != null) {
4730
- nextOptions.timeout = options.timeout;
4731
- }
4732
- return nextOptions;
4733
- };
4734
- var typeOptionsFrom = (options = {}) => {
4735
- const nextOptions = {};
4736
- if (options.timeout != null) {
4737
- nextOptions.timeout = options.timeout;
4738
- }
4739
- if (options.baseDelay != null) {
4740
- nextOptions.delay = Math.max(0, Number(options.baseDelay) || 0);
4741
- }
4742
- return nextOptions;
4743
- };
4744
- var pressOptionsFrom = (options = {}) => {
4745
- const nextOptions = {};
4746
- if (options.timeout != null) {
4747
- nextOptions.timeout = options.timeout;
4748
- }
4749
- if (options.holdDelay != null) {
4750
- nextOptions.delay = Math.max(0, Number(options.holdDelay) || 0);
4751
- }
4752
- return nextOptions;
4753
- };
4754
- var waitDesktopJitter = async (baseMs, jitterPercent = 0.3) => {
4755
- await delay4(jitterMs(baseMs, jitterPercent));
4756
- };
4710
+ var resolveTarget = (page, target) => typeof target === "string" ? page.locator(target).first() : target;
4711
+ var sleep = (base, jitter = 0.3) => delay4(jitterMs(base, jitter));
4757
4712
  var DesktopCloakHumanize = {
4758
4713
  jitterMs(base, jitterPercent = 0.3) {
4759
4714
  return jitterMs(base, jitterPercent);
@@ -4762,43 +4717,23 @@ var DesktopCloakHumanize = {
4762
4717
  return Boolean(page);
4763
4718
  },
4764
4719
  async humanMove(page, target) {
4765
- if (target == null) {
4766
- return false;
4767
- }
4720
+ if (target == null) return false;
4768
4721
  if (isPoint2(target)) {
4769
4722
  await page.mouse.move(Number(target.x), Number(target.y));
4770
4723
  return true;
4771
4724
  }
4772
- const resolvedTarget = resolveNativeTarget2(page, target);
4773
- if (typeof resolvedTarget?.hover === "function") {
4774
- await resolvedTarget.hover(clickOptionsFrom());
4775
- return true;
4776
- }
4777
- const box = await getTargetBox(resolvedTarget);
4778
- if (!box) {
4779
- return false;
4780
- }
4781
- await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
4725
+ await resolveTarget(page, target).hover();
4782
4726
  return true;
4783
4727
  },
4784
4728
  async humanScroll(page, target) {
4785
- const resolvedTarget = resolveNativeTarget2(page, target);
4786
- if (!resolvedTarget) {
4787
- return { element: null, didScroll: false, restore: null };
4788
- }
4789
- const before = await readViewportScroll(page);
4790
- await resolvedTarget.scrollIntoViewIfNeeded?.();
4791
- const after = await readViewportScroll(page);
4792
- return {
4793
- element: resolvedTarget,
4794
- didScroll: before.x !== after.x || before.y !== after.y,
4795
- restore: null
4796
- };
4729
+ const element = resolveTarget(page, target);
4730
+ if (!element) return { element: null, didScroll: false, restore: null };
4731
+ await element.scrollIntoViewIfNeeded?.();
4732
+ return { element, didScroll: true, restore: null };
4797
4733
  },
4798
- async humanClick(page, target, options = {}) {
4734
+ async humanClick(page, target) {
4799
4735
  if (target == null) {
4800
- const center = getViewportCenter(page);
4801
- await page.mouse.click(center.x, center.y);
4736
+ await page.mouse.click(0, 0);
4802
4737
  return true;
4803
4738
  }
4804
4739
  if (isPoint2(target)) {
@@ -4806,22 +4741,14 @@ var DesktopCloakHumanize = {
4806
4741
  return true;
4807
4742
  }
4808
4743
  if (typeof target === "string") {
4809
- await page.click(target, clickOptionsFrom(options));
4810
- return true;
4811
- }
4812
- if (typeof target?.click === "function") {
4813
- await target.click(clickOptionsFrom(options));
4744
+ await page.click(target);
4814
4745
  return true;
4815
4746
  }
4816
- const box = await getTargetBox(target);
4817
- if (!box) {
4818
- return false;
4819
- }
4820
- await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
4747
+ await target.click();
4821
4748
  return true;
4822
4749
  },
4823
4750
  async randomSleep(baseMs, jitterPercent = 0.3) {
4824
- await waitDesktopJitter(baseMs, jitterPercent);
4751
+ await sleep(baseMs, jitterPercent);
4825
4752
  },
4826
4753
  async simulateGaze(page, baseDurationMs = 2500) {
4827
4754
  const durationMs = jitterMs(baseDurationMs, 0.4);
@@ -4832,77 +4759,49 @@ var DesktopCloakHumanize = {
4832
4759
  100 + Math.random() * Math.max(120, viewport.width - 200),
4833
4760
  100 + Math.random() * Math.max(120, viewport.height - 200)
4834
4761
  );
4835
- await waitDesktopJitter(600, 0.5);
4762
+ await sleep(300, 0.5);
4836
4763
  }
4837
4764
  },
4838
- async humanType(page, selector, text, options = {}) {
4765
+ async humanType(page, selector, text) {
4839
4766
  if (typeof selector === "string") {
4840
- await page.type(selector, text, typeOptionsFrom(options));
4767
+ await page.type(selector, text);
4841
4768
  return;
4842
4769
  }
4843
- await selector.type(text, typeOptionsFrom(options));
4770
+ await selector.type(text);
4844
4771
  },
4845
- async humanPress(page, targetOrKey, maybeKey, options = {}) {
4846
- const hasTarget = typeof maybeKey === "string";
4847
- const key = hasTarget ? maybeKey : targetOrKey;
4848
- const pressOptions = hasTarget ? options : maybeKey || options;
4849
- if (!hasTarget) {
4850
- await page.keyboard.press(key, pressOptionsFrom(pressOptions));
4772
+ async humanPress(page, targetOrKey, maybeKey) {
4773
+ if (typeof maybeKey !== "string") {
4774
+ await page.keyboard.press(targetOrKey);
4851
4775
  return true;
4852
4776
  }
4853
4777
  if (typeof targetOrKey === "string") {
4854
- await page.press(targetOrKey, key, pressOptionsFrom(pressOptions));
4778
+ await page.press(targetOrKey, maybeKey);
4855
4779
  return true;
4856
4780
  }
4857
- if (typeof targetOrKey?.press === "function") {
4858
- await targetOrKey.press(key, pressOptionsFrom(pressOptions));
4859
- return true;
4860
- }
4861
- await page.keyboard.press(key, pressOptionsFrom(pressOptions));
4781
+ await targetOrKey.press(maybeKey);
4862
4782
  return true;
4863
4783
  },
4864
4784
  async humanClear(page, selector) {
4865
4785
  if (typeof selector === "string") {
4866
- if (typeof page.clear === "function") {
4867
- await page.clear(selector, clickOptionsFrom());
4868
- return;
4869
- }
4870
- await page.fill(selector, "", clickOptionsFrom());
4871
- return;
4872
- }
4873
- if (typeof selector?.clear === "function") {
4874
- await selector.clear(clickOptionsFrom());
4875
- return;
4876
- }
4877
- if (typeof selector?.fill === "function") {
4878
- await selector.fill("", clickOptionsFrom());
4786
+ await page.fill(selector, "");
4879
4787
  return;
4880
4788
  }
4789
+ await selector.fill("");
4881
4790
  },
4882
4791
  async warmUpBrowsing(page, baseDuration = 3500) {
4883
- const durationMs = jitterMs(baseDuration, 0.4);
4884
- const startedAt = Date.now();
4885
- while (Date.now() - startedAt < durationMs) {
4886
- await this.simulateGaze(page, 240);
4887
- await this.naturalScroll(page, Math.random() > 0.4 ? "down" : "up", 160, 3);
4888
- await waitDesktopJitter(250, 0.35);
4889
- }
4792
+ await this.simulateGaze(page, Math.min(baseDuration, 900));
4890
4793
  },
4891
4794
  async naturalScroll(page, direction = "down", distance = 300, baseSteps = 5) {
4892
4795
  const steps = Math.max(1, Number(baseSteps) || 1);
4893
- const stepDistance = (Number(distance) || 0) / steps;
4894
- const sign = direction === "down" ? 1 : -1;
4796
+ const delta = (Number(distance) || 0) / steps * (direction === "down" ? 1 : -1);
4895
4797
  for (let index = 0; index < steps; index += 1) {
4896
- await page.mouse.wheel(0, stepDistance * sign);
4897
- await waitDesktopJitter(60 + index * 20, 0.3);
4798
+ await page.mouse.wheel(0, delta);
4799
+ await sleep(60 + index * 20, 0.3);
4898
4800
  }
4899
4801
  }
4900
4802
  };
4901
4803
  var resolveDelegate2 = (page) => isMobilePage(page) ? MobileHumanize : DesktopCloakHumanize;
4902
- var callDelegate2 = (method, page, args) => {
4903
- const delegate = resolveDelegate2(page);
4904
- return delegate[method](page, ...args);
4905
- };
4804
+ var callDelegate2 = (method, page, args) => resolveDelegate2(page)[method](page, ...args);
4906
4805
  var CloakBrowserHumanize = {
4907
4806
  jitterMs(base, jitterPercent = 0.3) {
4908
4807
  return jitterMs(base, jitterPercent);
@@ -4921,8 +4820,7 @@ var CloakBrowserHumanize = {
4921
4820
  },
4922
4821
  randomSleep(pageOrBaseMs, maybeBaseMs, maybeJitterPercent) {
4923
4822
  if (isPageLike2(pageOrBaseMs)) {
4924
- const delegate = resolveDelegate2(pageOrBaseMs);
4925
- return delegate.randomSleep(maybeBaseMs, maybeJitterPercent);
4823
+ return resolveDelegate2(pageOrBaseMs).randomSleep(maybeBaseMs, maybeJitterPercent);
4926
4824
  }
4927
4825
  return DesktopCloakHumanize.randomSleep(pageOrBaseMs, maybeBaseMs);
4928
4826
  },
@@ -6748,7 +6646,7 @@ var Mutation = {
6748
6646
  const overallTimeout = options.timeout ?? 180 * 1e3;
6749
6647
  const onMutation = options.onMutation;
6750
6648
  const pollInterval = 500;
6751
- const sleep = (ms) => new Promise((resolve) => {
6649
+ const sleep2 = (ms) => new Promise((resolve) => {
6752
6650
  setTimeout(resolve, ms);
6753
6651
  });
6754
6652
  const truncate = (value, max = 800) => {
@@ -6940,7 +6838,7 @@ var Mutation = {
6940
6838
  const deadline = Date.now() + overallTimeout;
6941
6839
  let lastState = state2;
6942
6840
  while (Date.now() < deadline) {
6943
- await sleep(pollInterval);
6841
+ await sleep2(pollInterval);
6944
6842
  lastState = await buildState();
6945
6843
  if (!lastState?.hasMatched) {
6946
6844
  continue;