@skrillex1224/playwright-toolkit 2.1.278 → 2.1.279

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
@@ -4711,38 +4711,13 @@ var buildActionOptions = (options = {}) => {
4711
4711
  if (options && options.timeout != null) {
4712
4712
  actionOptions.timeout = options.timeout;
4713
4713
  }
4714
- if (options && options.force != null) {
4715
- actionOptions.force = options.force;
4716
- }
4714
+ actionOptions.force = true;
4717
4715
  const humanConfig = buildTypingHumanConfig(options);
4718
4716
  if (humanConfig) {
4719
4717
  actionOptions.human_config = humanConfig;
4720
4718
  }
4721
4719
  return actionOptions;
4722
4720
  };
4723
- var getErrorMessage = (error) => {
4724
- if (typeof error === "string") return error;
4725
- if (error && typeof error.message === "string") return error.message;
4726
- return String(error ?? "");
4727
- };
4728
- var isPointerEventsCoveredError = (error) => {
4729
- const message = getErrorMessage(error).toLowerCase();
4730
- return message.includes("pointer_events") && (message.includes("covered by") || message.includes("receiving events"));
4731
- };
4732
- var withPointerEventsForceFallback = async (label, options, operation) => {
4733
- try {
4734
- return await operation(options);
4735
- } catch (error) {
4736
- if (options?.force || !isPointerEventsCoveredError(error)) {
4737
- throw error;
4738
- }
4739
- logger7.warn(`${label}: cloakbrowser pointer_events check failed, retrying with force=true (${getErrorMessage(error)})`);
4740
- return await operation({
4741
- ...options || {},
4742
- force: true
4743
- });
4744
- }
4745
- };
4746
4721
  var ensureDesktopHumanized = async (page) => {
4747
4722
  if (!page || typeof page !== "object") {
4748
4723
  throw new Error("Humanize requires a Playwright page");
@@ -4820,55 +4795,53 @@ var humanMoveToPoint = async (page, point) => {
4820
4795
  };
4821
4796
  var doDesktopHumanClick = async (page, target, options = {}) => {
4822
4797
  await ensureDesktopHumanized(page);
4823
- return await withPointerEventsForceFallback("humanClick", options, async (effectiveOptions = {}) => {
4824
- if (target == null) {
4825
- const cursor = page._humanCursor || { x: 0, y: 0 };
4826
- await page.mouse.click(cursor.x || 0, cursor.y || 0);
4798
+ if (target == null) {
4799
+ const cursor = page._humanCursor || { x: 0, y: 0 };
4800
+ await page.mouse.click(cursor.x || 0, cursor.y || 0);
4801
+ return true;
4802
+ }
4803
+ if (isPoint2(target)) {
4804
+ return humanMoveToPoint(page, target).then(async () => {
4805
+ await page.mouse.click(Number(target.x), Number(target.y));
4827
4806
  return true;
4828
- }
4829
- if (isPoint2(target)) {
4830
- return humanMoveToPoint(page, target).then(async () => {
4831
- await page.mouse.click(Number(target.x), Number(target.y));
4832
- return true;
4833
- });
4834
- }
4835
- const throwOnMissing = effectiveOptions.throwOnMissing !== false;
4836
- if (typeof target === "string") {
4837
- if (!throwOnMissing) {
4838
- const existingHandle = await page.$(target);
4839
- if (!existingHandle) {
4840
- return false;
4841
- }
4842
- await existingHandle.click(buildActionOptions(effectiveOptions));
4843
- return true;
4807
+ });
4808
+ }
4809
+ const throwOnMissing = options.throwOnMissing !== false;
4810
+ if (typeof target === "string") {
4811
+ if (!throwOnMissing) {
4812
+ const existingHandle = await page.$(target);
4813
+ if (!existingHandle) {
4814
+ return false;
4844
4815
  }
4845
- await page.click(target, buildActionOptions(effectiveOptions));
4816
+ await existingHandle.click(buildActionOptions(options));
4846
4817
  return true;
4847
4818
  }
4848
- const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, target, { throwOnMissing });
4849
- try {
4850
- if (!resolvedTarget) {
4851
- return false;
4852
- }
4853
- if (typeof resolvedTarget.click === "function") {
4854
- await resolvedTarget.click(buildActionOptions(effectiveOptions));
4855
- return true;
4856
- }
4857
- const box = await resolvedTarget.boundingBox?.();
4858
- if (!box) {
4859
- if (throwOnMissing) {
4860
- throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5143\u7D20\u4F4D\u7F6E");
4861
- }
4862
- return false;
4863
- }
4864
- await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
4819
+ await page.click(target, buildActionOptions(options));
4820
+ return true;
4821
+ }
4822
+ const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, target, { throwOnMissing });
4823
+ try {
4824
+ if (!resolvedTarget) {
4825
+ return false;
4826
+ }
4827
+ if (typeof resolvedTarget.click === "function") {
4828
+ await resolvedTarget.click(buildActionOptions(options));
4865
4829
  return true;
4866
- } finally {
4867
- if (typeof dispose === "function") {
4868
- await dispose();
4830
+ }
4831
+ const box = await resolvedTarget.boundingBox?.();
4832
+ if (!box) {
4833
+ if (throwOnMissing) {
4834
+ throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5143\u7D20\u4F4D\u7F6E");
4869
4835
  }
4836
+ return false;
4870
4837
  }
4871
- });
4838
+ await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
4839
+ return true;
4840
+ } finally {
4841
+ if (typeof dispose === "function") {
4842
+ await dispose();
4843
+ }
4844
+ }
4872
4845
  };
4873
4846
  var CloakBrowserHumanize = {
4874
4847
  jitterMs(base, jitterPercent = 0.3) {
@@ -4895,7 +4868,7 @@ var CloakBrowserHumanize = {
4895
4868
  return false;
4896
4869
  }
4897
4870
  if (typeof resolvedTarget.hover === "function") {
4898
- await resolvedTarget.hover();
4871
+ await resolvedTarget.hover({ force: true });
4899
4872
  return true;
4900
4873
  }
4901
4874
  const box = await resolvedTarget.boundingBox?.();
@@ -4997,24 +4970,22 @@ var CloakBrowserHumanize = {
4997
4970
  return await MobileHumanize.humanType(page, selector, text, options);
4998
4971
  }
4999
4972
  await ensureDesktopHumanized(page);
5000
- await withPointerEventsForceFallback("humanType", options, async (effectiveOptions = {}) => {
5001
- const actionOptions = buildActionOptions(effectiveOptions);
5002
- if (typeof selector === "string") {
5003
- await page.type(selector, text, actionOptions);
5004
- return;
4973
+ const actionOptions = buildActionOptions(options);
4974
+ if (typeof selector === "string") {
4975
+ await page.type(selector, text, actionOptions);
4976
+ return;
4977
+ }
4978
+ const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, selector, { throwOnMissing: true });
4979
+ try {
4980
+ if (!resolvedTarget || typeof resolvedTarget.type !== "function") {
4981
+ throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 type()");
5005
4982
  }
5006
- const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, selector, { throwOnMissing: true });
5007
- try {
5008
- if (!resolvedTarget || typeof resolvedTarget.type !== "function") {
5009
- throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 type()");
5010
- }
5011
- await resolvedTarget.type(text, actionOptions);
5012
- } finally {
5013
- if (typeof dispose === "function") {
5014
- await dispose();
5015
- }
4983
+ await resolvedTarget.type(text, actionOptions);
4984
+ } finally {
4985
+ if (typeof dispose === "function") {
4986
+ await dispose();
5016
4987
  }
5017
- });
4988
+ }
5018
4989
  },
5019
4990
  async humanPress(page, targetOrKey, maybeKey, options = {}) {
5020
4991
  if (isMobilePage(page)) {
@@ -5032,38 +5003,36 @@ var CloakBrowserHumanize = {
5032
5003
  });
5033
5004
  return true;
5034
5005
  }
5035
- return await withPointerEventsForceFallback("humanPress", pressOptions, async (effectiveOptions = {}) => {
5036
- if (typeof targetOrKey === "string") {
5037
- await page.press(targetOrKey, key, buildActionOptions(effectiveOptions));
5006
+ if (typeof targetOrKey === "string") {
5007
+ await page.press(targetOrKey, key, buildActionOptions(pressOptions));
5008
+ return true;
5009
+ }
5010
+ const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, targetOrKey, {
5011
+ throwOnMissing: pressOptions.throwOnMissing !== false
5012
+ });
5013
+ try {
5014
+ if (!resolvedTarget) {
5015
+ return false;
5016
+ }
5017
+ if (typeof resolvedTarget.press === "function") {
5018
+ await resolvedTarget.press(key, buildActionOptions(pressOptions));
5038
5019
  return true;
5039
5020
  }
5040
- const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, targetOrKey, {
5041
- throwOnMissing: effectiveOptions.throwOnMissing !== false
5021
+ await doDesktopHumanClick(page, targetOrKey, {
5022
+ ...pressOptions,
5023
+ reactionDelay: pressOptions.focusDelay ?? 180
5042
5024
  });
5043
- try {
5044
- if (!resolvedTarget) {
5045
- return false;
5046
- }
5047
- if (typeof resolvedTarget.press === "function") {
5048
- await resolvedTarget.press(key, buildActionOptions(effectiveOptions));
5049
- return true;
5050
- }
5051
- await doDesktopHumanClick(page, targetOrKey, {
5052
- ...effectiveOptions,
5053
- reactionDelay: effectiveOptions.focusDelay ?? 180
5054
- });
5055
- await jitterSleep(effectiveOptions.reactionDelay ?? 180, 0.45);
5056
- await page.keyboard.press(key, {
5057
- ...effectiveOptions.keyboardOptions || {},
5058
- delay: jitterMs(effectiveOptions.holdDelay ?? 45, 0.5)
5059
- });
5060
- return true;
5061
- } finally {
5062
- if (typeof dispose === "function") {
5063
- await dispose();
5064
- }
5025
+ await jitterSleep(pressOptions.reactionDelay ?? 180, 0.45);
5026
+ await page.keyboard.press(key, {
5027
+ ...pressOptions.keyboardOptions || {},
5028
+ delay: jitterMs(pressOptions.holdDelay ?? 45, 0.5)
5029
+ });
5030
+ return true;
5031
+ } finally {
5032
+ if (typeof dispose === "function") {
5033
+ await dispose();
5065
5034
  }
5066
- });
5035
+ }
5067
5036
  },
5068
5037
  async humanClear(page, selector) {
5069
5038
  if (isMobilePage(page)) {
@@ -5071,10 +5040,10 @@ var CloakBrowserHumanize = {
5071
5040
  }
5072
5041
  await ensureDesktopHumanized(page);
5073
5042
  if (typeof page.clear === "function") {
5074
- await page.clear(selector);
5043
+ await page.clear(selector, { force: true });
5075
5044
  return;
5076
5045
  }
5077
- await page.fill(selector, "");
5046
+ await page.fill(selector, "", { force: true });
5078
5047
  },
5079
5048
  async warmUpBrowsing(page, baseDuration = 3500) {
5080
5049
  if (isMobilePage(page)) {