@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.cjs
CHANGED
|
@@ -8169,7 +8169,10 @@ var buildWatermarkifyRenderHtml = ({ imageSrc, overlaySvg, width, height, imageH
|
|
|
8169
8169
|
</html>
|
|
8170
8170
|
`;
|
|
8171
8171
|
};
|
|
8172
|
-
var
|
|
8172
|
+
var normalizeWatermarkifyRenderMode = (value) => {
|
|
8173
|
+
return String(value || "default").trim().toLowerCase() === "cloakbrowser" ? "cloakbrowser" : "default";
|
|
8174
|
+
};
|
|
8175
|
+
var composeScreenshotBufferWithBrowser = async (page, buffer, overlaySvg, imageInfo = {}, options = {}) => {
|
|
8173
8176
|
if (!page || typeof page.context !== "function") {
|
|
8174
8177
|
logger14.warning("watermarkify \u6D4F\u89C8\u5668\u5408\u6210\u8DF3\u8FC7: \u7F3A\u5C11\u53EF\u7528 page");
|
|
8175
8178
|
return buffer;
|
|
@@ -8193,15 +8196,35 @@ var composeScreenshotBufferWithBrowser = async (page, buffer, overlaySvg, imageI
|
|
|
8193
8196
|
height: viewportHeight
|
|
8194
8197
|
}).catch(() => {
|
|
8195
8198
|
});
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8199
|
+
const renderMode = normalizeWatermarkifyRenderMode(options.mode);
|
|
8200
|
+
if (renderMode === "cloakbrowser") {
|
|
8201
|
+
const renderHtml = buildWatermarkifyRenderHtml({
|
|
8202
|
+
imageSrc: `data:${imageInfo.mimeType || "image/png"};base64,${buffer.toString("base64")}`,
|
|
8203
|
+
overlaySvg,
|
|
8204
|
+
width: safeWidth,
|
|
8205
|
+
height: safeHeight,
|
|
8206
|
+
imageHeight: safeImageHeight
|
|
8207
|
+
});
|
|
8208
|
+
await renderPage.goto("about:blank", {
|
|
8209
|
+
waitUntil: "commit"
|
|
8210
|
+
}).catch(() => {
|
|
8211
|
+
});
|
|
8212
|
+
await renderPage.evaluate((html) => {
|
|
8213
|
+
document.open();
|
|
8214
|
+
document.write(html);
|
|
8215
|
+
document.close();
|
|
8216
|
+
}, renderHtml);
|
|
8217
|
+
} else {
|
|
8218
|
+
await renderPage.setContent(buildWatermarkifyRenderHtml({
|
|
8219
|
+
imageSrc: `data:${imageInfo.mimeType || "image/png"};base64,${buffer.toString("base64")}`,
|
|
8220
|
+
overlaySvg,
|
|
8221
|
+
width: safeWidth,
|
|
8222
|
+
height: safeHeight,
|
|
8223
|
+
imageHeight: safeImageHeight
|
|
8224
|
+
}), {
|
|
8225
|
+
waitUntil: "load"
|
|
8226
|
+
});
|
|
8227
|
+
}
|
|
8205
8228
|
await renderPage.waitForFunction(() => {
|
|
8206
8229
|
const image = document.getElementById("pk-base-image");
|
|
8207
8230
|
return image instanceof HTMLImageElement && image.complete && image.naturalWidth > 0 && image.naturalHeight > 0;
|
|
@@ -9136,7 +9159,7 @@ var buildWatermarkifySvg = (meta, imageWidth, imageHeight) => {
|
|
|
9136
9159
|
</svg>
|
|
9137
9160
|
`;
|
|
9138
9161
|
};
|
|
9139
|
-
var watermarkifyScreenshotBuffer = async (buffer, meta, page = null) => {
|
|
9162
|
+
var watermarkifyScreenshotBuffer = async (buffer, meta, page = null, options = {}) => {
|
|
9140
9163
|
const hasWatermark = meta?.watermark?.enabled !== false && normalizeText(meta?.watermarkText);
|
|
9141
9164
|
const hasStrip = meta?.strip?.enabled !== false && Array.isArray(meta?.stripSegments) && meta.stripSegments.length > 0;
|
|
9142
9165
|
if (!Buffer.isBuffer(buffer) || !meta || !hasWatermark && !hasStrip) {
|
|
@@ -9157,7 +9180,7 @@ var watermarkifyScreenshotBuffer = async (buffer, meta, page = null) => {
|
|
|
9157
9180
|
if (!overlaySvg) {
|
|
9158
9181
|
return buffer;
|
|
9159
9182
|
}
|
|
9160
|
-
return await composeScreenshotBufferWithBrowser(page, buffer, overlaySvg, outputImageInfo);
|
|
9183
|
+
return await composeScreenshotBufferWithBrowser(page, buffer, overlaySvg, outputImageInfo, options);
|
|
9161
9184
|
};
|
|
9162
9185
|
|
|
9163
9186
|
// src/internals/compression.js
|
|
@@ -9755,6 +9778,7 @@ var Share = {
|
|
|
9755
9778
|
* @param {number} [options.maxBytes] 默认 5MiB,返回 base64 超过后会压缩
|
|
9756
9779
|
* @param {'jpeg'|'jpg'} [options.type] 压缩输出格式,默认 jpeg
|
|
9757
9780
|
* @param {boolean|Object} [options.compression] 传 false 可关闭压缩
|
|
9781
|
+
* @param {'default'|'cloakbrowser'} [options.mode] 截图水印合成模式,默认 default
|
|
9758
9782
|
* @returns {Promise<string>} base64 image
|
|
9759
9783
|
*/
|
|
9760
9784
|
async captureScreen(page, options = {}) {
|
|
@@ -9775,7 +9799,9 @@ var Share = {
|
|
|
9775
9799
|
...screenshotWatermarkify,
|
|
9776
9800
|
capturedAt
|
|
9777
9801
|
});
|
|
9778
|
-
outputBuffer = await watermarkifyScreenshotBuffer(rawBuffer, watermarkifyMeta, page
|
|
9802
|
+
outputBuffer = await watermarkifyScreenshotBuffer(rawBuffer, watermarkifyMeta, page, {
|
|
9803
|
+
mode: options.mode === "cloakbrowser" ? "cloakbrowser" : "default"
|
|
9804
|
+
});
|
|
9779
9805
|
}
|
|
9780
9806
|
return await compressImageBufferToBase64(outputBuffer, compression);
|
|
9781
9807
|
}
|