@skrillex1224/playwright-toolkit 2.1.281 → 2.1.283

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,9 @@ 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));
4712
+ var FORCE_OPTIONS = Object.freeze({ force: true });
4757
4713
  var DesktopCloakHumanize = {
4758
4714
  jitterMs(base, jitterPercent = 0.3) {
4759
4715
  return jitterMs(base, jitterPercent);
@@ -4762,43 +4718,23 @@ var DesktopCloakHumanize = {
4762
4718
  return Boolean(page);
4763
4719
  },
4764
4720
  async humanMove(page, target) {
4765
- if (target == null) {
4766
- return false;
4767
- }
4721
+ if (target == null) return false;
4768
4722
  if (isPoint2(target)) {
4769
4723
  await page.mouse.move(Number(target.x), Number(target.y));
4770
4724
  return true;
4771
4725
  }
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);
4726
+ await resolveTarget(page, target).hover(FORCE_OPTIONS);
4782
4727
  return true;
4783
4728
  },
4784
4729
  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
- };
4730
+ const element = resolveTarget(page, target);
4731
+ if (!element) return { element: null, didScroll: false, restore: null };
4732
+ await element.scrollIntoViewIfNeeded?.();
4733
+ return { element, didScroll: true, restore: null };
4797
4734
  },
4798
- async humanClick(page, target, options = {}) {
4735
+ async humanClick(page, target) {
4799
4736
  if (target == null) {
4800
- const center = getViewportCenter(page);
4801
- await page.mouse.click(center.x, center.y);
4737
+ await page.mouse.click(0, 0);
4802
4738
  return true;
4803
4739
  }
4804
4740
  if (isPoint2(target)) {
@@ -4806,22 +4742,14 @@ var DesktopCloakHumanize = {
4806
4742
  return true;
4807
4743
  }
4808
4744
  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));
4745
+ await page.click(target, FORCE_OPTIONS);
4814
4746
  return true;
4815
4747
  }
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);
4748
+ await target.click(FORCE_OPTIONS);
4821
4749
  return true;
4822
4750
  },
4823
4751
  async randomSleep(baseMs, jitterPercent = 0.3) {
4824
- await waitDesktopJitter(baseMs, jitterPercent);
4752
+ await sleep(baseMs, jitterPercent);
4825
4753
  },
4826
4754
  async simulateGaze(page, baseDurationMs = 2500) {
4827
4755
  const durationMs = jitterMs(baseDurationMs, 0.4);
@@ -4832,77 +4760,44 @@ var DesktopCloakHumanize = {
4832
4760
  100 + Math.random() * Math.max(120, viewport.width - 200),
4833
4761
  100 + Math.random() * Math.max(120, viewport.height - 200)
4834
4762
  );
4835
- await waitDesktopJitter(600, 0.5);
4763
+ await sleep(300, 0.5);
4836
4764
  }
4837
4765
  },
4838
- async humanType(page, selector, text, options = {}) {
4839
- if (typeof selector === "string") {
4840
- await page.type(selector, text, typeOptionsFrom(options));
4841
- return;
4842
- }
4843
- await selector.type(text, typeOptionsFrom(options));
4766
+ async humanType(page, selector, text) {
4767
+ const target = resolveTarget(page, selector);
4768
+ await target.click(FORCE_OPTIONS);
4769
+ await page.keyboard.type(text);
4844
4770
  },
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));
4851
- return true;
4852
- }
4853
- if (typeof targetOrKey === "string") {
4854
- await page.press(targetOrKey, key, pressOptionsFrom(pressOptions));
4855
- return true;
4856
- }
4857
- if (typeof targetOrKey?.press === "function") {
4858
- await targetOrKey.press(key, pressOptionsFrom(pressOptions));
4771
+ async humanPress(page, targetOrKey, maybeKey) {
4772
+ if (typeof maybeKey !== "string") {
4773
+ await page.keyboard.press(targetOrKey);
4859
4774
  return true;
4860
4775
  }
4861
- await page.keyboard.press(key, pressOptionsFrom(pressOptions));
4776
+ await resolveTarget(page, targetOrKey).click(FORCE_OPTIONS);
4777
+ await page.keyboard.press(maybeKey);
4862
4778
  return true;
4863
4779
  },
4864
4780
  async humanClear(page, selector) {
4865
4781
  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());
4782
+ await page.fill(selector, "", FORCE_OPTIONS);
4879
4783
  return;
4880
4784
  }
4785
+ await selector.fill("", FORCE_OPTIONS);
4881
4786
  },
4882
4787
  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
- }
4788
+ await this.simulateGaze(page, Math.min(baseDuration, 900));
4890
4789
  },
4891
4790
  async naturalScroll(page, direction = "down", distance = 300, baseSteps = 5) {
4892
4791
  const steps = Math.max(1, Number(baseSteps) || 1);
4893
- const stepDistance = (Number(distance) || 0) / steps;
4894
- const sign = direction === "down" ? 1 : -1;
4792
+ const delta = (Number(distance) || 0) / steps * (direction === "down" ? 1 : -1);
4895
4793
  for (let index = 0; index < steps; index += 1) {
4896
- await page.mouse.wheel(0, stepDistance * sign);
4897
- await waitDesktopJitter(60 + index * 20, 0.3);
4794
+ await page.mouse.wheel(0, delta);
4795
+ await sleep(60 + index * 20, 0.3);
4898
4796
  }
4899
4797
  }
4900
4798
  };
4901
4799
  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
- };
4800
+ var callDelegate2 = (method, page, args) => resolveDelegate2(page)[method](page, ...args);
4906
4801
  var CloakBrowserHumanize = {
4907
4802
  jitterMs(base, jitterPercent = 0.3) {
4908
4803
  return jitterMs(base, jitterPercent);
@@ -4921,8 +4816,7 @@ var CloakBrowserHumanize = {
4921
4816
  },
4922
4817
  randomSleep(pageOrBaseMs, maybeBaseMs, maybeJitterPercent) {
4923
4818
  if (isPageLike2(pageOrBaseMs)) {
4924
- const delegate = resolveDelegate2(pageOrBaseMs);
4925
- return delegate.randomSleep(maybeBaseMs, maybeJitterPercent);
4819
+ return resolveDelegate2(pageOrBaseMs).randomSleep(maybeBaseMs, maybeJitterPercent);
4926
4820
  }
4927
4821
  return DesktopCloakHumanize.randomSleep(pageOrBaseMs, maybeBaseMs);
4928
4822
  },
@@ -6748,7 +6642,7 @@ var Mutation = {
6748
6642
  const overallTimeout = options.timeout ?? 180 * 1e3;
6749
6643
  const onMutation = options.onMutation;
6750
6644
  const pollInterval = 500;
6751
- const sleep = (ms) => new Promise((resolve) => {
6645
+ const sleep2 = (ms) => new Promise((resolve) => {
6752
6646
  setTimeout(resolve, ms);
6753
6647
  });
6754
6648
  const truncate = (value, max = 800) => {
@@ -6940,7 +6834,7 @@ var Mutation = {
6940
6834
  const deadline = Date.now() + overallTimeout;
6941
6835
  let lastState = state2;
6942
6836
  while (Date.now() < deadline) {
6943
- await sleep(pollInterval);
6837
+ await sleep2(pollInterval);
6944
6838
  lastState = await buildState();
6945
6839
  if (!lastState?.hasMatched) {
6946
6840
  continue;