@skrillex1224/playwright-toolkit 2.1.275 → 2.1.276
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 +39 -13
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +39 -13
- package/dist/index.js.map +2 -2
- package/index.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8141,7 +8141,10 @@ var buildWatermarkifyRenderHtml = ({ imageSrc, overlaySvg, width, height, imageH
|
|
|
8141
8141
|
</html>
|
|
8142
8142
|
`;
|
|
8143
8143
|
};
|
|
8144
|
-
var
|
|
8144
|
+
var normalizeWatermarkifyRenderMode = (value) => {
|
|
8145
|
+
return String(value || "default").trim().toLowerCase() === "cloakbrowser" ? "cloakbrowser" : "default";
|
|
8146
|
+
};
|
|
8147
|
+
var composeScreenshotBufferWithBrowser = async (page, buffer, overlaySvg, imageInfo = {}, options = {}) => {
|
|
8145
8148
|
if (!page || typeof page.context !== "function") {
|
|
8146
8149
|
logger14.warning("watermarkify \u6D4F\u89C8\u5668\u5408\u6210\u8DF3\u8FC7: \u7F3A\u5C11\u53EF\u7528 page");
|
|
8147
8150
|
return buffer;
|
|
@@ -8165,15 +8168,35 @@ var composeScreenshotBufferWithBrowser = async (page, buffer, overlaySvg, imageI
|
|
|
8165
8168
|
height: viewportHeight
|
|
8166
8169
|
}).catch(() => {
|
|
8167
8170
|
});
|
|
8168
|
-
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
|
|
8172
|
-
|
|
8173
|
-
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
|
|
8171
|
+
const renderMode = normalizeWatermarkifyRenderMode(options.mode);
|
|
8172
|
+
if (renderMode === "cloakbrowser") {
|
|
8173
|
+
const renderHtml = buildWatermarkifyRenderHtml({
|
|
8174
|
+
imageSrc: `data:${imageInfo.mimeType || "image/png"};base64,${buffer.toString("base64")}`,
|
|
8175
|
+
overlaySvg,
|
|
8176
|
+
width: safeWidth,
|
|
8177
|
+
height: safeHeight,
|
|
8178
|
+
imageHeight: safeImageHeight
|
|
8179
|
+
});
|
|
8180
|
+
await renderPage.goto("about:blank", {
|
|
8181
|
+
waitUntil: "commit"
|
|
8182
|
+
}).catch(() => {
|
|
8183
|
+
});
|
|
8184
|
+
await renderPage.evaluate((html) => {
|
|
8185
|
+
document.open();
|
|
8186
|
+
document.write(html);
|
|
8187
|
+
document.close();
|
|
8188
|
+
}, renderHtml);
|
|
8189
|
+
} else {
|
|
8190
|
+
await renderPage.setContent(buildWatermarkifyRenderHtml({
|
|
8191
|
+
imageSrc: `data:${imageInfo.mimeType || "image/png"};base64,${buffer.toString("base64")}`,
|
|
8192
|
+
overlaySvg,
|
|
8193
|
+
width: safeWidth,
|
|
8194
|
+
height: safeHeight,
|
|
8195
|
+
imageHeight: safeImageHeight
|
|
8196
|
+
}), {
|
|
8197
|
+
waitUntil: "load"
|
|
8198
|
+
});
|
|
8199
|
+
}
|
|
8177
8200
|
await renderPage.waitForFunction(() => {
|
|
8178
8201
|
const image = document.getElementById("pk-base-image");
|
|
8179
8202
|
return image instanceof HTMLImageElement && image.complete && image.naturalWidth > 0 && image.naturalHeight > 0;
|
|
@@ -9108,7 +9131,7 @@ var buildWatermarkifySvg = (meta, imageWidth, imageHeight) => {
|
|
|
9108
9131
|
</svg>
|
|
9109
9132
|
`;
|
|
9110
9133
|
};
|
|
9111
|
-
var watermarkifyScreenshotBuffer = async (buffer, meta, page = null) => {
|
|
9134
|
+
var watermarkifyScreenshotBuffer = async (buffer, meta, page = null, options = {}) => {
|
|
9112
9135
|
const hasWatermark = meta?.watermark?.enabled !== false && normalizeText(meta?.watermarkText);
|
|
9113
9136
|
const hasStrip = meta?.strip?.enabled !== false && Array.isArray(meta?.stripSegments) && meta.stripSegments.length > 0;
|
|
9114
9137
|
if (!Buffer.isBuffer(buffer) || !meta || !hasWatermark && !hasStrip) {
|
|
@@ -9129,7 +9152,7 @@ var watermarkifyScreenshotBuffer = async (buffer, meta, page = null) => {
|
|
|
9129
9152
|
if (!overlaySvg) {
|
|
9130
9153
|
return buffer;
|
|
9131
9154
|
}
|
|
9132
|
-
return await composeScreenshotBufferWithBrowser(page, buffer, overlaySvg, outputImageInfo);
|
|
9155
|
+
return await composeScreenshotBufferWithBrowser(page, buffer, overlaySvg, outputImageInfo, options);
|
|
9133
9156
|
};
|
|
9134
9157
|
|
|
9135
9158
|
// src/internals/compression.js
|
|
@@ -9727,6 +9750,7 @@ var Share = {
|
|
|
9727
9750
|
* @param {number} [options.maxBytes] 默认 5MiB,返回 base64 超过后会压缩
|
|
9728
9751
|
* @param {'jpeg'|'jpg'} [options.type] 压缩输出格式,默认 jpeg
|
|
9729
9752
|
* @param {boolean|Object} [options.compression] 传 false 可关闭压缩
|
|
9753
|
+
* @param {'default'|'cloakbrowser'} [options.mode] 截图水印合成模式,默认 default
|
|
9730
9754
|
* @returns {Promise<string>} base64 image
|
|
9731
9755
|
*/
|
|
9732
9756
|
async captureScreen(page, options = {}) {
|
|
@@ -9747,7 +9771,9 @@ var Share = {
|
|
|
9747
9771
|
...screenshotWatermarkify,
|
|
9748
9772
|
capturedAt
|
|
9749
9773
|
});
|
|
9750
|
-
outputBuffer = await watermarkifyScreenshotBuffer(rawBuffer, watermarkifyMeta, page
|
|
9774
|
+
outputBuffer = await watermarkifyScreenshotBuffer(rawBuffer, watermarkifyMeta, page, {
|
|
9775
|
+
mode: options.mode === "cloakbrowser" ? "cloakbrowser" : "default"
|
|
9776
|
+
});
|
|
9751
9777
|
}
|
|
9752
9778
|
return await compressImageBufferToBase64(outputBuffer, compression);
|
|
9753
9779
|
}
|