@skrillex1224/playwright-toolkit 2.1.233 → 2.1.234
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/browser.js +1 -0
- package/dist/browser.js.map +2 -2
- package/dist/index.cjs +57 -18
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +57 -18
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -312,6 +312,7 @@ var ActorInfo = {
|
|
|
312
312
|
name: "\u901A\u4E49\u5343\u95EE",
|
|
313
313
|
domain: "www.qianwen.com",
|
|
314
314
|
path: "/chat",
|
|
315
|
+
device: Device.Mobile,
|
|
315
316
|
share: {
|
|
316
317
|
mode: "response",
|
|
317
318
|
prefix: "https://www.qianwen.com/share/chat/",
|
|
@@ -469,6 +470,9 @@ function createInternalLogger(moduleName, explicitLogger) {
|
|
|
469
470
|
// src/internals/screenshot.js
|
|
470
471
|
var import_delay = __toESM(require("delay"), 1);
|
|
471
472
|
|
|
473
|
+
// src/internals/constants.js
|
|
474
|
+
var PageRuntimeStateKey = "__playwright_toolkit_runtime_state__";
|
|
475
|
+
|
|
472
476
|
// src/internals/viewport.js
|
|
473
477
|
var toPositiveInt = (value) => {
|
|
474
478
|
const number = Math.round(Number(value) || 0);
|
|
@@ -505,6 +509,7 @@ var SUPPORTED_TYPES = /* @__PURE__ */ new Set(["png", "jpeg", "webp"]);
|
|
|
505
509
|
var EXPANDED_SCROLLABLE_CLASS = "__pk_expanded__";
|
|
506
510
|
var DEFAULT_MAX_HEIGHT = 8e3;
|
|
507
511
|
var DEFAULT_SETTLE_MS = 1e3;
|
|
512
|
+
var DEFAULT_MOBILE_SETTLE_MS = 50;
|
|
508
513
|
var toPositiveNumber = (value, fallback = 0) => {
|
|
509
514
|
const n = Number(value);
|
|
510
515
|
if (!Number.isFinite(n) || n <= 0) return fallback;
|
|
@@ -527,6 +532,7 @@ var normalizeQuality = (value, type) => {
|
|
|
527
532
|
if (rounded < 0 || rounded > 100) return void 0;
|
|
528
533
|
return rounded;
|
|
529
534
|
};
|
|
535
|
+
var resolvePageDevice = (page) => normalizeDevice(page?.[PageRuntimeStateKey]?.device);
|
|
530
536
|
var buildFullPageClip = (metrics, viewport, maxClipHeight) => {
|
|
531
537
|
const contentSize = metrics && typeof metrics === "object" ? metrics.contentSize || null : null;
|
|
532
538
|
const width = Math.max(1, Math.ceil(viewport.width || contentSize?.width || 1));
|
|
@@ -543,7 +549,7 @@ var buildFullPageClip = (metrics, viewport, maxClipHeight) => {
|
|
|
543
549
|
};
|
|
544
550
|
};
|
|
545
551
|
var expandScrollableContent = async (page, options = {}) => {
|
|
546
|
-
return await page.evaluate(({ className, forceScrollableHeight, visibleOnly }) => {
|
|
552
|
+
return await page.evaluate(({ className, forceScrollableHeight, visibleOnly, expandDocumentElements }) => {
|
|
547
553
|
const body = document.body;
|
|
548
554
|
const root = document.documentElement;
|
|
549
555
|
const scrollingElement = document.scrollingElement;
|
|
@@ -568,8 +574,8 @@ var expandScrollableContent = async (page, options = {}) => {
|
|
|
568
574
|
if (Number(style.opacity) === 0) return false;
|
|
569
575
|
return rect.width > 0 && rect.height > 0;
|
|
570
576
|
};
|
|
571
|
-
const rememberOriginalBoxStyles = (el) => {
|
|
572
|
-
if (!el || isDocumentElement(el) || el.classList.contains(className)) {
|
|
577
|
+
const rememberOriginalBoxStyles = (el, { includeDocumentElement = false } = {}) => {
|
|
578
|
+
if (!el || !includeDocumentElement && isDocumentElement(el) || el.classList.contains(className)) {
|
|
573
579
|
return;
|
|
574
580
|
}
|
|
575
581
|
el.dataset.pkOrigOverflow = el.style.overflow;
|
|
@@ -582,6 +588,19 @@ var expandScrollableContent = async (page, options = {}) => {
|
|
|
582
588
|
el.dataset.pkOrigMaxHeightPriority = el.style.getPropertyPriority("max-height") || "";
|
|
583
589
|
el.classList.add(className);
|
|
584
590
|
};
|
|
591
|
+
const expandDocumentElementsToHeight = (height) => {
|
|
592
|
+
if (!expandDocumentElements) return;
|
|
593
|
+
const targetHeight = Math.ceil(Number(height) || 0);
|
|
594
|
+
if (targetHeight <= 0) return;
|
|
595
|
+
[root, body, scrollingElement].forEach((el) => {
|
|
596
|
+
if (!el) return;
|
|
597
|
+
rememberOriginalBoxStyles(el, { includeDocumentElement: true });
|
|
598
|
+
el.style.setProperty("overflow", "visible", "important");
|
|
599
|
+
el.style.setProperty("height", `${targetHeight}px`, "important");
|
|
600
|
+
el.style.setProperty("min-height", `${targetHeight}px`, "important");
|
|
601
|
+
el.style.setProperty("max-height", "none", "important");
|
|
602
|
+
});
|
|
603
|
+
};
|
|
585
604
|
const isScrollableY = (el, style, rect) => {
|
|
586
605
|
if (!el || el.scrollHeight <= el.clientHeight + 1) {
|
|
587
606
|
return false;
|
|
@@ -717,38 +736,61 @@ var expandScrollableContent = async (page, options = {}) => {
|
|
|
717
736
|
}
|
|
718
737
|
});
|
|
719
738
|
maxHeight = Math.max(maxHeight, measureDocumentScrollHeight(), measureExpandedRenderedBottom());
|
|
739
|
+
if (expandDocumentElements) {
|
|
740
|
+
for (let pass = 0; pass < 2; pass += 1) {
|
|
741
|
+
expandDocumentElementsToHeight(maxHeight);
|
|
742
|
+
maxHeight = Math.max(maxHeight, measureDocumentScrollHeight(), measureExpandedRenderedBottom());
|
|
743
|
+
}
|
|
744
|
+
}
|
|
720
745
|
return Math.ceil(maxHeight);
|
|
721
746
|
}, {
|
|
722
747
|
className: EXPANDED_SCROLLABLE_CLASS,
|
|
723
748
|
forceScrollableHeight: options.forceScrollableHeight !== false,
|
|
724
|
-
visibleOnly: options.visibleOnly !== false
|
|
749
|
+
visibleOnly: options.visibleOnly !== false,
|
|
750
|
+
expandDocumentElements: options.expandDocumentElements === true
|
|
725
751
|
});
|
|
726
752
|
};
|
|
727
753
|
var prepareExpandedFullPageScreenshot = async (page, options = {}) => {
|
|
728
754
|
const originalViewport = await resolveCurrentViewportSize(page);
|
|
729
755
|
const maxHeight = toPositiveInteger(options.maxHeight, DEFAULT_MAX_HEIGHT);
|
|
730
|
-
const
|
|
756
|
+
const preserveViewport = options.preserveViewport ?? resolvePageDevice(page) === Device.Mobile;
|
|
757
|
+
const defaultSettleMs = preserveViewport ? DEFAULT_MOBILE_SETTLE_MS : DEFAULT_SETTLE_MS;
|
|
758
|
+
const requestedSettleMs = Math.max(0, Number(options.settleMs ?? defaultSettleMs) || 0);
|
|
759
|
+
const settleMs = preserveViewport ? Math.min(requestedSettleMs, DEFAULT_MOBILE_SETTLE_MS) : requestedSettleMs;
|
|
731
760
|
const maxScrollHeight = await expandScrollableContent(page, {
|
|
732
761
|
forceScrollableHeight: options.forceScrollableHeight,
|
|
733
|
-
visibleOnly: options.visibleOnly !== false
|
|
762
|
+
visibleOnly: options.visibleOnly !== false,
|
|
763
|
+
expandDocumentElements: preserveViewport
|
|
734
764
|
});
|
|
735
765
|
const targetHeight = Math.min(maxScrollHeight, maxHeight);
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
766
|
+
let viewportResized = false;
|
|
767
|
+
if (!preserveViewport) {
|
|
768
|
+
await page.setViewportSize({
|
|
769
|
+
width: originalViewport.width,
|
|
770
|
+
height: targetHeight
|
|
771
|
+
});
|
|
772
|
+
viewportResized = true;
|
|
773
|
+
}
|
|
740
774
|
if (settleMs > 0) {
|
|
741
775
|
await (0, import_delay.default)(settleMs);
|
|
742
776
|
}
|
|
743
777
|
return {
|
|
744
778
|
originalViewport,
|
|
745
779
|
maxScrollHeight,
|
|
746
|
-
targetHeight
|
|
780
|
+
targetHeight,
|
|
781
|
+
preserveViewport,
|
|
782
|
+
viewportResized
|
|
747
783
|
};
|
|
748
784
|
};
|
|
749
785
|
var restoreExpandedFullPageScreenshot = async (page, state = {}) => {
|
|
750
786
|
await page.evaluate((className) => {
|
|
751
|
-
|
|
787
|
+
const targets = new Set([
|
|
788
|
+
...document.querySelectorAll(`.${className}`),
|
|
789
|
+
document.documentElement,
|
|
790
|
+
document.body,
|
|
791
|
+
document.scrollingElement
|
|
792
|
+
].filter((el) => el?.classList?.contains(className)));
|
|
793
|
+
targets.forEach((el) => {
|
|
752
794
|
el.style.setProperty("overflow", el.dataset.pkOrigOverflow || "", el.dataset.pkOrigOverflowPriority || "");
|
|
753
795
|
el.style.setProperty("height", el.dataset.pkOrigHeight || "", el.dataset.pkOrigHeightPriority || "");
|
|
754
796
|
el.style.setProperty("min-height", el.dataset.pkOrigMinHeight || "", el.dataset.pkOrigMinHeightPriority || "");
|
|
@@ -764,7 +806,7 @@ var restoreExpandedFullPageScreenshot = async (page, state = {}) => {
|
|
|
764
806
|
el.classList.remove(className);
|
|
765
807
|
});
|
|
766
808
|
}, EXPANDED_SCROLLABLE_CLASS);
|
|
767
|
-
if (state?.originalViewport) {
|
|
809
|
+
if (state?.originalViewport && state?.viewportResized) {
|
|
768
810
|
await page.setViewportSize(state.originalViewport);
|
|
769
811
|
}
|
|
770
812
|
};
|
|
@@ -1262,9 +1304,6 @@ var ProxyMeterRuntime = {
|
|
|
1262
1304
|
getProxyMeterSnapshot
|
|
1263
1305
|
};
|
|
1264
1306
|
|
|
1265
|
-
// src/internals/constants.js
|
|
1266
|
-
var PageRuntimeStateKey = "__playwright_toolkit_runtime_state__";
|
|
1267
|
-
|
|
1268
1307
|
// src/runtime-env.js
|
|
1269
1308
|
var BROWSER_PROFILE_SCHEMA_VERSION = 1;
|
|
1270
1309
|
var rememberedRuntimeState = null;
|
|
@@ -7379,11 +7418,11 @@ var resolveScreenshotWatermarkifyMeta = async (page, options = {}) => {
|
|
|
7379
7418
|
watermark: options.watermark,
|
|
7380
7419
|
strip: options.strip,
|
|
7381
7420
|
stripLogoSrc,
|
|
7382
|
-
device:
|
|
7421
|
+
device: resolvePageDevice2(page)
|
|
7383
7422
|
};
|
|
7384
7423
|
};
|
|
7385
7424
|
var buildFontFamily = () => 'MiSans, "SF Pro Display", "PingFang SC", "Helvetica Neue", Arial, sans-serif';
|
|
7386
|
-
var
|
|
7425
|
+
var resolvePageDevice2 = (page) => normalizeDevice(page?.[PageRuntimeStateKey]?.device);
|
|
7387
7426
|
var findStripSegment = (segments, kind) => {
|
|
7388
7427
|
const found = Array.isArray(segments) ? segments.find((segment) => segment?.kind === kind) : null;
|
|
7389
7428
|
return found && typeof found === "object" ? found : {};
|