@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.cjs CHANGED
@@ -4735,53 +4735,9 @@ var resolveDeviceFromPage3 = (page) => normalizeDevice(page?.[PageRuntimeStateKe
4735
4735
  var isMobilePage = (page) => resolveDeviceFromPage3(page) === Device.Mobile;
4736
4736
  var isPageLike2 = (value) => value && typeof value === "object" && typeof value.evaluate === "function";
4737
4737
  var isPoint2 = (value) => value && typeof value === "object" && Number.isFinite(Number(value.x)) && Number.isFinite(Number(value.y));
4738
- var resolveNativeTarget2 = (page, target) => typeof target === "string" ? page.locator(target).first() : target;
4739
- var getViewportCenter = (page) => {
4740
- const viewport = page?.viewportSize?.() || { width: 1365, height: 900 };
4741
- return {
4742
- x: Math.round(viewport.width / 2),
4743
- y: Math.round(viewport.height / 2)
4744
- };
4745
- };
4746
- var readViewportScroll = async (page) => await page.evaluate(() => ({ x: window.scrollX, y: window.scrollY })).catch(() => ({ x: 0, y: 0 }));
4747
- var getTargetBox = async (target) => {
4748
- if (!target || typeof target.boundingBox !== "function") {
4749
- return null;
4750
- }
4751
- return await target.boundingBox().catch(() => null);
4752
- };
4753
- var clickOptionsFrom = (options = {}) => {
4754
- const nextOptions = {
4755
- force: true
4756
- };
4757
- if (options.timeout != null) {
4758
- nextOptions.timeout = options.timeout;
4759
- }
4760
- return nextOptions;
4761
- };
4762
- var typeOptionsFrom = (options = {}) => {
4763
- const nextOptions = {};
4764
- if (options.timeout != null) {
4765
- nextOptions.timeout = options.timeout;
4766
- }
4767
- if (options.baseDelay != null) {
4768
- nextOptions.delay = Math.max(0, Number(options.baseDelay) || 0);
4769
- }
4770
- return nextOptions;
4771
- };
4772
- var pressOptionsFrom = (options = {}) => {
4773
- const nextOptions = {};
4774
- if (options.timeout != null) {
4775
- nextOptions.timeout = options.timeout;
4776
- }
4777
- if (options.holdDelay != null) {
4778
- nextOptions.delay = Math.max(0, Number(options.holdDelay) || 0);
4779
- }
4780
- return nextOptions;
4781
- };
4782
- var waitDesktopJitter = async (baseMs, jitterPercent = 0.3) => {
4783
- await (0, import_delay4.default)(jitterMs(baseMs, jitterPercent));
4784
- };
4738
+ var resolveTarget = (page, target) => typeof target === "string" ? page.locator(target).first() : target;
4739
+ var sleep = (base, jitter = 0.3) => (0, import_delay4.default)(jitterMs(base, jitter));
4740
+ var FORCE_OPTIONS = Object.freeze({ force: true });
4785
4741
  var DesktopCloakHumanize = {
4786
4742
  jitterMs(base, jitterPercent = 0.3) {
4787
4743
  return jitterMs(base, jitterPercent);
@@ -4790,43 +4746,23 @@ var DesktopCloakHumanize = {
4790
4746
  return Boolean(page);
4791
4747
  },
4792
4748
  async humanMove(page, target) {
4793
- if (target == null) {
4794
- return false;
4795
- }
4749
+ if (target == null) return false;
4796
4750
  if (isPoint2(target)) {
4797
4751
  await page.mouse.move(Number(target.x), Number(target.y));
4798
4752
  return true;
4799
4753
  }
4800
- const resolvedTarget = resolveNativeTarget2(page, target);
4801
- if (typeof resolvedTarget?.hover === "function") {
4802
- await resolvedTarget.hover(clickOptionsFrom());
4803
- return true;
4804
- }
4805
- const box = await getTargetBox(resolvedTarget);
4806
- if (!box) {
4807
- return false;
4808
- }
4809
- await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
4754
+ await resolveTarget(page, target).hover(FORCE_OPTIONS);
4810
4755
  return true;
4811
4756
  },
4812
4757
  async humanScroll(page, target) {
4813
- const resolvedTarget = resolveNativeTarget2(page, target);
4814
- if (!resolvedTarget) {
4815
- return { element: null, didScroll: false, restore: null };
4816
- }
4817
- const before = await readViewportScroll(page);
4818
- await resolvedTarget.scrollIntoViewIfNeeded?.();
4819
- const after = await readViewportScroll(page);
4820
- return {
4821
- element: resolvedTarget,
4822
- didScroll: before.x !== after.x || before.y !== after.y,
4823
- restore: null
4824
- };
4758
+ const element = resolveTarget(page, target);
4759
+ if (!element) return { element: null, didScroll: false, restore: null };
4760
+ await element.scrollIntoViewIfNeeded?.();
4761
+ return { element, didScroll: true, restore: null };
4825
4762
  },
4826
- async humanClick(page, target, options = {}) {
4763
+ async humanClick(page, target) {
4827
4764
  if (target == null) {
4828
- const center = getViewportCenter(page);
4829
- await page.mouse.click(center.x, center.y);
4765
+ await page.mouse.click(0, 0);
4830
4766
  return true;
4831
4767
  }
4832
4768
  if (isPoint2(target)) {
@@ -4834,22 +4770,14 @@ var DesktopCloakHumanize = {
4834
4770
  return true;
4835
4771
  }
4836
4772
  if (typeof target === "string") {
4837
- await page.click(target, clickOptionsFrom(options));
4838
- return true;
4839
- }
4840
- if (typeof target?.click === "function") {
4841
- await target.click(clickOptionsFrom(options));
4773
+ await page.click(target, FORCE_OPTIONS);
4842
4774
  return true;
4843
4775
  }
4844
- const box = await getTargetBox(target);
4845
- if (!box) {
4846
- return false;
4847
- }
4848
- await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
4776
+ await target.click(FORCE_OPTIONS);
4849
4777
  return true;
4850
4778
  },
4851
4779
  async randomSleep(baseMs, jitterPercent = 0.3) {
4852
- await waitDesktopJitter(baseMs, jitterPercent);
4780
+ await sleep(baseMs, jitterPercent);
4853
4781
  },
4854
4782
  async simulateGaze(page, baseDurationMs = 2500) {
4855
4783
  const durationMs = jitterMs(baseDurationMs, 0.4);
@@ -4860,77 +4788,44 @@ var DesktopCloakHumanize = {
4860
4788
  100 + Math.random() * Math.max(120, viewport.width - 200),
4861
4789
  100 + Math.random() * Math.max(120, viewport.height - 200)
4862
4790
  );
4863
- await waitDesktopJitter(600, 0.5);
4791
+ await sleep(300, 0.5);
4864
4792
  }
4865
4793
  },
4866
- async humanType(page, selector, text, options = {}) {
4867
- if (typeof selector === "string") {
4868
- await page.type(selector, text, typeOptionsFrom(options));
4869
- return;
4870
- }
4871
- await selector.type(text, typeOptionsFrom(options));
4794
+ async humanType(page, selector, text) {
4795
+ const target = resolveTarget(page, selector);
4796
+ await target.click(FORCE_OPTIONS);
4797
+ await page.keyboard.type(text);
4872
4798
  },
4873
- async humanPress(page, targetOrKey, maybeKey, options = {}) {
4874
- const hasTarget = typeof maybeKey === "string";
4875
- const key = hasTarget ? maybeKey : targetOrKey;
4876
- const pressOptions = hasTarget ? options : maybeKey || options;
4877
- if (!hasTarget) {
4878
- await page.keyboard.press(key, pressOptionsFrom(pressOptions));
4879
- return true;
4880
- }
4881
- if (typeof targetOrKey === "string") {
4882
- await page.press(targetOrKey, key, pressOptionsFrom(pressOptions));
4883
- return true;
4884
- }
4885
- if (typeof targetOrKey?.press === "function") {
4886
- await targetOrKey.press(key, pressOptionsFrom(pressOptions));
4799
+ async humanPress(page, targetOrKey, maybeKey) {
4800
+ if (typeof maybeKey !== "string") {
4801
+ await page.keyboard.press(targetOrKey);
4887
4802
  return true;
4888
4803
  }
4889
- await page.keyboard.press(key, pressOptionsFrom(pressOptions));
4804
+ await resolveTarget(page, targetOrKey).click(FORCE_OPTIONS);
4805
+ await page.keyboard.press(maybeKey);
4890
4806
  return true;
4891
4807
  },
4892
4808
  async humanClear(page, selector) {
4893
4809
  if (typeof selector === "string") {
4894
- if (typeof page.clear === "function") {
4895
- await page.clear(selector, clickOptionsFrom());
4896
- return;
4897
- }
4898
- await page.fill(selector, "", clickOptionsFrom());
4899
- return;
4900
- }
4901
- if (typeof selector?.clear === "function") {
4902
- await selector.clear(clickOptionsFrom());
4903
- return;
4904
- }
4905
- if (typeof selector?.fill === "function") {
4906
- await selector.fill("", clickOptionsFrom());
4810
+ await page.fill(selector, "", FORCE_OPTIONS);
4907
4811
  return;
4908
4812
  }
4813
+ await selector.fill("", FORCE_OPTIONS);
4909
4814
  },
4910
4815
  async warmUpBrowsing(page, baseDuration = 3500) {
4911
- const durationMs = jitterMs(baseDuration, 0.4);
4912
- const startedAt = Date.now();
4913
- while (Date.now() - startedAt < durationMs) {
4914
- await this.simulateGaze(page, 240);
4915
- await this.naturalScroll(page, Math.random() > 0.4 ? "down" : "up", 160, 3);
4916
- await waitDesktopJitter(250, 0.35);
4917
- }
4816
+ await this.simulateGaze(page, Math.min(baseDuration, 900));
4918
4817
  },
4919
4818
  async naturalScroll(page, direction = "down", distance = 300, baseSteps = 5) {
4920
4819
  const steps = Math.max(1, Number(baseSteps) || 1);
4921
- const stepDistance = (Number(distance) || 0) / steps;
4922
- const sign = direction === "down" ? 1 : -1;
4820
+ const delta = (Number(distance) || 0) / steps * (direction === "down" ? 1 : -1);
4923
4821
  for (let index = 0; index < steps; index += 1) {
4924
- await page.mouse.wheel(0, stepDistance * sign);
4925
- await waitDesktopJitter(60 + index * 20, 0.3);
4822
+ await page.mouse.wheel(0, delta);
4823
+ await sleep(60 + index * 20, 0.3);
4926
4824
  }
4927
4825
  }
4928
4826
  };
4929
4827
  var resolveDelegate2 = (page) => isMobilePage(page) ? MobileHumanize : DesktopCloakHumanize;
4930
- var callDelegate2 = (method, page, args) => {
4931
- const delegate = resolveDelegate2(page);
4932
- return delegate[method](page, ...args);
4933
- };
4828
+ var callDelegate2 = (method, page, args) => resolveDelegate2(page)[method](page, ...args);
4934
4829
  var CloakBrowserHumanize = {
4935
4830
  jitterMs(base, jitterPercent = 0.3) {
4936
4831
  return jitterMs(base, jitterPercent);
@@ -4949,8 +4844,7 @@ var CloakBrowserHumanize = {
4949
4844
  },
4950
4845
  randomSleep(pageOrBaseMs, maybeBaseMs, maybeJitterPercent) {
4951
4846
  if (isPageLike2(pageOrBaseMs)) {
4952
- const delegate = resolveDelegate2(pageOrBaseMs);
4953
- return delegate.randomSleep(maybeBaseMs, maybeJitterPercent);
4847
+ return resolveDelegate2(pageOrBaseMs).randomSleep(maybeBaseMs, maybeJitterPercent);
4954
4848
  }
4955
4849
  return DesktopCloakHumanize.randomSleep(pageOrBaseMs, maybeBaseMs);
4956
4850
  },
@@ -6776,7 +6670,7 @@ var Mutation = {
6776
6670
  const overallTimeout = options.timeout ?? 180 * 1e3;
6777
6671
  const onMutation = options.onMutation;
6778
6672
  const pollInterval = 500;
6779
- const sleep = (ms) => new Promise((resolve) => {
6673
+ const sleep2 = (ms) => new Promise((resolve) => {
6780
6674
  setTimeout(resolve, ms);
6781
6675
  });
6782
6676
  const truncate = (value, max = 800) => {
@@ -6968,7 +6862,7 @@ var Mutation = {
6968
6862
  const deadline = Date.now() + overallTimeout;
6969
6863
  let lastState = state2;
6970
6864
  while (Date.now() < deadline) {
6971
- await sleep(pollInterval);
6865
+ await sleep2(pollInterval);
6972
6866
  lastState = await buildState();
6973
6867
  if (!lastState?.hasMatched) {
6974
6868
  continue;