@skrillex1224/playwright-toolkit 2.1.211 → 2.1.212
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/README.md +1 -1
- package/dist/index.cjs +90 -51
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +90 -51
- package/dist/index.js.map +3 -3
- package/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -323,18 +323,18 @@ var fallbackLog = {
|
|
|
323
323
|
error: (...args) => console.error(...args),
|
|
324
324
|
debug: (...args) => console.debug ? console.debug(...args) : console.log(...args)
|
|
325
325
|
};
|
|
326
|
-
var resolveLogMethod = (
|
|
327
|
-
if (
|
|
328
|
-
return
|
|
326
|
+
var resolveLogMethod = (logger13, name) => {
|
|
327
|
+
if (logger13 && typeof logger13[name] === "function") {
|
|
328
|
+
return logger13[name].bind(logger13);
|
|
329
329
|
}
|
|
330
|
-
if (name === "warning" &&
|
|
331
|
-
return
|
|
330
|
+
if (name === "warning" && logger13 && typeof logger13.warn === "function") {
|
|
331
|
+
return logger13.warn.bind(logger13);
|
|
332
332
|
}
|
|
333
333
|
return fallbackLog[name];
|
|
334
334
|
};
|
|
335
335
|
var defaultLogger = null;
|
|
336
|
-
var setDefaultLogger = (
|
|
337
|
-
defaultLogger =
|
|
336
|
+
var setDefaultLogger = (logger13) => {
|
|
337
|
+
defaultLogger = logger13;
|
|
338
338
|
};
|
|
339
339
|
var resolveLogger = (explicitLogger) => {
|
|
340
340
|
if (explicitLogger && typeof explicitLogger.info === "function") {
|
|
@@ -361,8 +361,8 @@ var colorize = (text, color) => {
|
|
|
361
361
|
var createBaseLogger = (prefix = "", explicitLogger) => {
|
|
362
362
|
const name = prefix ? String(prefix) : "";
|
|
363
363
|
const dispatch = (methodName, icon, message, color) => {
|
|
364
|
-
const
|
|
365
|
-
const logFn = resolveLogMethod(
|
|
364
|
+
const logger13 = resolveLogger(explicitLogger);
|
|
365
|
+
const logFn = resolveLogMethod(logger13, methodName);
|
|
366
366
|
const timestamp = colorize(`[${formatTimestamp()}]`, ANSI.gray);
|
|
367
367
|
const line = formatLine(name, icon, message);
|
|
368
368
|
const coloredLine = colorize(line, color);
|
|
@@ -4541,7 +4541,7 @@ var createTemplateLogger = (baseLogger = createBaseLogger()) => {
|
|
|
4541
4541
|
};
|
|
4542
4542
|
var getDefaultBaseLogger = () => createBaseLogger("");
|
|
4543
4543
|
var Logger = {
|
|
4544
|
-
setLogger: (
|
|
4544
|
+
setLogger: (logger13) => setDefaultLogger(logger13),
|
|
4545
4545
|
info: (message) => getDefaultBaseLogger().info(message),
|
|
4546
4546
|
success: (message) => getDefaultBaseLogger().success(message),
|
|
4547
4547
|
warning: (message) => getDefaultBaseLogger().warning(message),
|
|
@@ -4549,8 +4549,8 @@ var Logger = {
|
|
|
4549
4549
|
error: (message) => getDefaultBaseLogger().error(message),
|
|
4550
4550
|
debug: (message) => getDefaultBaseLogger().debug(message),
|
|
4551
4551
|
start: (message) => getDefaultBaseLogger().start(message),
|
|
4552
|
-
useTemplate: (
|
|
4553
|
-
if (
|
|
4552
|
+
useTemplate: (logger13) => {
|
|
4553
|
+
if (logger13) return createTemplateLogger(createBaseLogger("", logger13));
|
|
4554
4554
|
return createTemplateLogger();
|
|
4555
4555
|
}
|
|
4556
4556
|
};
|
|
@@ -4568,7 +4568,7 @@ var DEFAULT_WATERMARK_ROTATE_DEG = -16;
|
|
|
4568
4568
|
var DEFAULT_WATERMARK_CELL_WIDTH = 860;
|
|
4569
4569
|
var DEFAULT_WATERMARK_CELL_HEIGHT = 330;
|
|
4570
4570
|
var DEFAULT_STRIP_LOGO_URL = "https://static.heartbitai.com/geo/icon/favicon.png";
|
|
4571
|
-
var DEFAULT_IP_LOOKUP_URL = "
|
|
4571
|
+
var DEFAULT_IP_LOOKUP_URL = "https://myip.ipip.net/json";
|
|
4572
4572
|
var DEFAULT_LOGO_FETCH_TIMEOUT_MS = 2500;
|
|
4573
4573
|
var DEFAULT_STRIP_ONE_LINE_HEIGHT = 78;
|
|
4574
4574
|
var DEFAULT_STRIP_WRAPPED_MIN_HEIGHT = 108;
|
|
@@ -4615,6 +4615,7 @@ var LOCATION_NETWORK_SUFFIX_PATTERNS = [
|
|
|
4615
4615
|
];
|
|
4616
4616
|
var cachedStripLogoSrcPromise = null;
|
|
4617
4617
|
var cachedEnrichmentByContext = /* @__PURE__ */ new WeakMap();
|
|
4618
|
+
var logger11 = createInternalLogger("Watermarkify");
|
|
4618
4619
|
var normalizeText = (value) => String(value || "").trim();
|
|
4619
4620
|
var toInline = (value, maxLen = 200) => {
|
|
4620
4621
|
const text = normalizeText(value);
|
|
@@ -4682,18 +4683,26 @@ var pickHeaderValue = async (response, names = []) => {
|
|
|
4682
4683
|
}
|
|
4683
4684
|
return "";
|
|
4684
4685
|
};
|
|
4685
|
-
var
|
|
4686
|
+
var parseIpIpJsonResponse = (rawText) => {
|
|
4686
4687
|
const text = normalizeWhitespace(rawText);
|
|
4687
|
-
if (!text)
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4688
|
+
if (!text || !text.startsWith("{") && !text.startsWith("[")) {
|
|
4689
|
+
return null;
|
|
4690
|
+
}
|
|
4691
|
+
try {
|
|
4692
|
+
const payload = JSON.parse(text);
|
|
4693
|
+
const ip = toInline(payload?.data?.ip || payload?.ip, 80);
|
|
4694
|
+
const locationParts = Array.isArray(payload?.data?.location) ? payload.data.location.map((item) => normalizeWhitespace(item)).filter(Boolean) : [];
|
|
4695
|
+
const location = toInline(
|
|
4696
|
+
stripLocationNetworkSuffix(locationParts.join(" ")),
|
|
4697
|
+
80
|
|
4698
|
+
);
|
|
4699
|
+
if (!ip && !location) {
|
|
4700
|
+
return null;
|
|
4701
|
+
}
|
|
4702
|
+
return { ip, location };
|
|
4703
|
+
} catch {
|
|
4694
4704
|
return null;
|
|
4695
4705
|
}
|
|
4696
|
-
return { ip, location };
|
|
4697
4706
|
};
|
|
4698
4707
|
var fillEnrichment = (target, source) => {
|
|
4699
4708
|
if (!target || !source || typeof source !== "object") {
|
|
@@ -4843,10 +4852,16 @@ var resolveWithCustomResolver = async (page, baseMeta, options = {}) => {
|
|
|
4843
4852
|
if (!resolved || typeof resolved !== "object") {
|
|
4844
4853
|
return null;
|
|
4845
4854
|
}
|
|
4846
|
-
|
|
4855
|
+
const enrichment = {
|
|
4847
4856
|
ip: toInline(resolved.ip, 80),
|
|
4848
4857
|
location: toInline(resolved.location, 80)
|
|
4849
4858
|
};
|
|
4859
|
+
if (enrichment.ip || enrichment.location) {
|
|
4860
|
+
logger11.info(`\u81EA\u5B9A\u4E49 resolver \u547D\u4E2D: ip=${enrichment.ip || "-"}, loc=${enrichment.location || "-"}`);
|
|
4861
|
+
} else {
|
|
4862
|
+
logger11.warning("\u81EA\u5B9A\u4E49 resolver \u5DF2\u6267\u884C\uFF0C\u4F46\u672A\u8FD4\u56DE IP/Loc");
|
|
4863
|
+
}
|
|
4864
|
+
return enrichment;
|
|
4850
4865
|
} finally {
|
|
4851
4866
|
controller?.abort();
|
|
4852
4867
|
}
|
|
@@ -4903,6 +4918,7 @@ var resolveWithIpLookup = async (page, options = {}) => {
|
|
|
4903
4918
|
}
|
|
4904
4919
|
const probeScope = await openProbePage(page);
|
|
4905
4920
|
if (!probeScope?.page) {
|
|
4921
|
+
logger11.warning("ipLookup \u8DF3\u8FC7: \u65E0\u6CD5\u521B\u5EFA probe page");
|
|
4906
4922
|
return null;
|
|
4907
4923
|
}
|
|
4908
4924
|
const timeoutMs = Math.max(
|
|
@@ -4911,10 +4927,16 @@ var resolveWithIpLookup = async (page, options = {}) => {
|
|
|
4911
4927
|
);
|
|
4912
4928
|
try {
|
|
4913
4929
|
const probePage = probeScope.page;
|
|
4930
|
+
logger11.info(`ipLookup \u5C1D\u8BD5: url=${DEFAULT_IP_LOOKUP_URL}, timeoutMs=${timeoutMs}`);
|
|
4914
4931
|
const response = await probePage.goto(DEFAULT_IP_LOOKUP_URL, {
|
|
4915
4932
|
waitUntil: "commit",
|
|
4916
4933
|
timeout: timeoutMs
|
|
4917
|
-
}).catch(() =>
|
|
4934
|
+
}).catch((error) => {
|
|
4935
|
+
logger11.warning(`ipLookup \u8BF7\u6C42\u5931\u8D25: url=${DEFAULT_IP_LOOKUP_URL}, error=${error instanceof Error ? error.message : String(error)}`);
|
|
4936
|
+
return null;
|
|
4937
|
+
});
|
|
4938
|
+
const status = response && typeof response.status === "function" ? response.status() : 0;
|
|
4939
|
+
const contentType = normalizeText(await pickHeaderValue(response, ["content-type"]));
|
|
4918
4940
|
let rawText = "";
|
|
4919
4941
|
if (response && typeof response.text === "function") {
|
|
4920
4942
|
rawText = String(await withTimeout(
|
|
@@ -4930,8 +4952,15 @@ var resolveWithIpLookup = async (page, options = {}) => {
|
|
|
4930
4952
|
Math.min(timeoutMs, 500)
|
|
4931
4953
|
) || "");
|
|
4932
4954
|
}
|
|
4933
|
-
|
|
4934
|
-
|
|
4955
|
+
const parsed = parseIpIpJsonResponse(rawText);
|
|
4956
|
+
if (parsed?.ip || parsed?.location) {
|
|
4957
|
+
logger11.info(`ipLookup \u6210\u529F: url=${DEFAULT_IP_LOOKUP_URL}, status=${status || "-"}, contentType=${contentType || "-"}, ip=${parsed.ip || "-"}, loc=${parsed.location || "-"}`);
|
|
4958
|
+
return parsed;
|
|
4959
|
+
}
|
|
4960
|
+
logger11.warning(`ipLookup \u672A\u89E3\u6790\u51FA IP/Loc: url=${DEFAULT_IP_LOOKUP_URL}, status=${status || "-"}, contentType=${contentType || "-"}, preview=${shortenTail(rawText, 120) || "[empty]"}`);
|
|
4961
|
+
return null;
|
|
4962
|
+
} catch (error) {
|
|
4963
|
+
logger11.warning(`ipLookup \u6267\u884C\u5F02\u5E38\uFF0C\u672A\u83B7\u5F97 IP/Loc: ${error instanceof Error ? error.message : String(error)}`);
|
|
4935
4964
|
return null;
|
|
4936
4965
|
} finally {
|
|
4937
4966
|
await probeScope.close().catch(() => {
|
|
@@ -4945,7 +4974,11 @@ var resolveEnrichment = async (page, baseMeta, options) => {
|
|
|
4945
4974
|
ip: toInline(options.ip, 80),
|
|
4946
4975
|
location: toInline(options.location, 80)
|
|
4947
4976
|
};
|
|
4977
|
+
logger11.info(`enrichment \u5F00\u59CB: host=${baseMeta.hostname || "-"}, hasPresetIp=${Boolean(merged.ip)}, hasPresetLoc=${Boolean(merged.location)}, ipLookup=${options.ipLookup !== false}`);
|
|
4948
4978
|
if (!merged.ip || !merged.location) {
|
|
4979
|
+
if (cached?.ip || cached?.location) {
|
|
4980
|
+
logger11.info(`enrichment \u547D\u4E2D\u4E0A\u4E0B\u6587\u7F13\u5B58: ip=${cached.ip || "-"}, loc=${cached.location || "-"}`);
|
|
4981
|
+
}
|
|
4949
4982
|
fillEnrichment(merged, cached);
|
|
4950
4983
|
}
|
|
4951
4984
|
if (!merged.ip || !merged.location) {
|
|
@@ -4968,10 +5001,16 @@ var resolveEnrichment = async (page, baseMeta, options) => {
|
|
|
4968
5001
|
"x-geo-country"
|
|
4969
5002
|
]), 80);
|
|
4970
5003
|
if (!merged.location || isWeakLocationValue(merged.location) && headerLocation) {
|
|
5004
|
+
logger11.info(`enrichment \u4F7F\u7528\u54CD\u5E94\u5934\u8865\u5145 Loc: ${headerLocation || "-"}`);
|
|
4971
5005
|
merged.location = headerLocation || merged.location;
|
|
4972
5006
|
}
|
|
4973
5007
|
}
|
|
4974
5008
|
writeCachedEnrichment(page, merged);
|
|
5009
|
+
if (merged.ip || merged.location) {
|
|
5010
|
+
logger11.info(`enrichment \u5B8C\u6210: ip=${merged.ip || "-"}, loc=${merged.location || "-"}`);
|
|
5011
|
+
} else {
|
|
5012
|
+
logger11.warning("enrichment \u5B8C\u6210: \u672A\u83B7\u5F97 IP/Loc");
|
|
5013
|
+
}
|
|
4975
5014
|
return merged;
|
|
4976
5015
|
};
|
|
4977
5016
|
var buildWatermarkStamp = ({ prompt, captureTime, ip, location }) => {
|
|
@@ -5650,7 +5689,7 @@ var watermarkifyScreenshotBuffer = async (buffer, meta) => {
|
|
|
5650
5689
|
};
|
|
5651
5690
|
|
|
5652
5691
|
// src/share.js
|
|
5653
|
-
var
|
|
5692
|
+
var logger12 = createInternalLogger("Share");
|
|
5654
5693
|
var DEFAULT_TIMEOUT_MS2 = 50 * 1e3;
|
|
5655
5694
|
var DEFAULT_PAYLOAD_SNAPSHOT_MAX_LEN = 500;
|
|
5656
5695
|
var DEFAULT_POLL_INTERVAL_MS = 120;
|
|
@@ -5787,7 +5826,7 @@ var createDomShareMonitor = async (page, options = {}) => {
|
|
|
5787
5826
|
const onMatch = typeof options.onMatch === "function" ? options.onMatch : null;
|
|
5788
5827
|
const onTelemetry = typeof options.onTelemetry === "function" ? options.onTelemetry : null;
|
|
5789
5828
|
let matched = false;
|
|
5790
|
-
|
|
5829
|
+
logger12.info(`DOM \u76D1\u542C\u51C6\u5907\u6302\u8F7D: selectors=${toJsonInline(selectors, 120)}, mode=${mode}`);
|
|
5791
5830
|
const monitor = await Mutation.useMonitor(page, selectors, {
|
|
5792
5831
|
mode,
|
|
5793
5832
|
onMutation: (context = {}) => {
|
|
@@ -5805,12 +5844,12 @@ ${text}`;
|
|
|
5805
5844
|
});
|
|
5806
5845
|
}
|
|
5807
5846
|
if (mutationCount <= 5 || mutationCount % 50 === 0) {
|
|
5808
|
-
|
|
5847
|
+
logger12.info(`DOM \u53D8\u5316\u5DF2\u6355\u83B7: mutationCount=${mutationCount}, mutationNodes=${mutationNodes.length}`);
|
|
5809
5848
|
}
|
|
5810
5849
|
const [candidate] = Utils.parseLinks(rawDom, { prefix }) || [];
|
|
5811
5850
|
if (!candidate) return;
|
|
5812
5851
|
matched = true;
|
|
5813
|
-
|
|
5852
|
+
logger12.success("captureLink.domHit", `DOM \u547D\u4E2D\u5206\u4EAB\u94FE\u63A5: mutationCount=${mutationCount}, link=${candidate}`);
|
|
5814
5853
|
if (onMatch) {
|
|
5815
5854
|
onMatch({
|
|
5816
5855
|
link: candidate,
|
|
@@ -5826,7 +5865,7 @@ ${text}`;
|
|
|
5826
5865
|
return {
|
|
5827
5866
|
stop: async () => {
|
|
5828
5867
|
const result = await monitor.stop();
|
|
5829
|
-
|
|
5868
|
+
logger12.info(`DOM \u76D1\u542C\u5DF2\u505C\u6B62: totalMutations=${result?.totalMutations || 0}`);
|
|
5830
5869
|
return result;
|
|
5831
5870
|
}
|
|
5832
5871
|
};
|
|
@@ -5866,8 +5905,8 @@ var Share = {
|
|
|
5866
5905
|
if (share.mode === "response" && apiMatchers.length === 0) {
|
|
5867
5906
|
throw new Error("Share.captureLink requires share.xurl[0] api matcher when mode=response");
|
|
5868
5907
|
}
|
|
5869
|
-
|
|
5870
|
-
|
|
5908
|
+
logger12.start("captureLink", `mode=${share.mode}, timeoutMs=${timeoutMs}, prefix=${share.prefix}`);
|
|
5909
|
+
logger12.info(`captureLink \u914D\u7F6E: xurl=${toJsonInline(share.xurl)}, domMode=${domMode}, domSelectors=${toJsonInline(domSelectors, 120)}`);
|
|
5871
5910
|
const stats = {
|
|
5872
5911
|
actionTimedOut: false,
|
|
5873
5912
|
domMutationCount: 0,
|
|
@@ -5892,7 +5931,7 @@ var Share = {
|
|
|
5892
5931
|
link: validated,
|
|
5893
5932
|
payloadText: String(payloadText || "")
|
|
5894
5933
|
};
|
|
5895
|
-
|
|
5934
|
+
logger12.info(`\u5019\u9009\u94FE\u63A5\u5DF2\u786E\u8BA4: source=${source}, link=${validated}`);
|
|
5896
5935
|
return true;
|
|
5897
5936
|
};
|
|
5898
5937
|
const resolveResponseCandidate = (responseText) => {
|
|
@@ -5927,7 +5966,7 @@ var Share = {
|
|
|
5927
5966
|
try {
|
|
5928
5967
|
await monitor.stop();
|
|
5929
5968
|
} catch (error) {
|
|
5930
|
-
|
|
5969
|
+
logger12.warning(`\u505C\u6B62 DOM \u76D1\u542C\u5931\u8D25: ${error instanceof Error ? error.message : String(error)}`);
|
|
5931
5970
|
}
|
|
5932
5971
|
};
|
|
5933
5972
|
const onResponse = async (response) => {
|
|
@@ -5940,29 +5979,29 @@ var Share = {
|
|
|
5940
5979
|
stats.responseSampleUrls.push(url);
|
|
5941
5980
|
}
|
|
5942
5981
|
if (stats.responseObserved <= 5) {
|
|
5943
|
-
|
|
5982
|
+
logger12.info(`\u63A5\u53E3\u54CD\u5E94\u91C7\u6837(${stats.responseObserved}): ${url}`);
|
|
5944
5983
|
}
|
|
5945
5984
|
if (!apiMatchers.some((matcher) => url.includes(matcher))) return;
|
|
5946
5985
|
stats.responseMatched += 1;
|
|
5947
5986
|
stats.lastMatchedUrl = url;
|
|
5948
|
-
|
|
5987
|
+
logger12.info(`\u63A5\u53E3\u547D\u4E2D\u5339\u914D(${stats.responseMatched}): ${url}`);
|
|
5949
5988
|
const text = await response.text();
|
|
5950
5989
|
const hit = resolveResponseCandidate(text);
|
|
5951
5990
|
if (!hit?.link) {
|
|
5952
5991
|
if (stats.responseMatched <= 3) {
|
|
5953
|
-
|
|
5992
|
+
logger12.info(`\u63A5\u53E3\u89E3\u6790\u5B8C\u6210\u4F46\u672A\u63D0\u53D6\u5230\u5206\u4EAB\u94FE\u63A5: payloadSize=${text.length}`);
|
|
5954
5993
|
}
|
|
5955
5994
|
return;
|
|
5956
5995
|
}
|
|
5957
5996
|
stats.responseResolved += 1;
|
|
5958
|
-
|
|
5997
|
+
logger12.success("captureLink.responseHit", `\u63A5\u53E3\u547D\u4E2D\u5206\u4EAB\u94FE\u63A5: url=${url}, link=${hit.link}`);
|
|
5959
5998
|
setCandidate("response", hit.link, hit.payloadText);
|
|
5960
5999
|
} catch (error) {
|
|
5961
|
-
|
|
6000
|
+
logger12.warning(`\u63A5\u53E3\u54CD\u5E94\u5904\u7406\u5F02\u5E38: ${error instanceof Error ? error.message : String(error)}`);
|
|
5962
6001
|
}
|
|
5963
6002
|
};
|
|
5964
6003
|
if (share.mode === "dom") {
|
|
5965
|
-
|
|
6004
|
+
logger12.info("\u5F53\u524D\u4E3A DOM \u6A21\u5F0F\uFF0C\u4EC5\u542F\u7528 DOM \u76D1\u542C");
|
|
5966
6005
|
domMonitor = await createDomShareMonitor(page, {
|
|
5967
6006
|
prefix: share.prefix,
|
|
5968
6007
|
selectors: domSelectors,
|
|
@@ -5977,14 +6016,14 @@ var Share = {
|
|
|
5977
6016
|
});
|
|
5978
6017
|
}
|
|
5979
6018
|
if (share.mode === "response") {
|
|
5980
|
-
|
|
6019
|
+
logger12.info(`\u5F53\u524D\u4E3A\u63A5\u53E3\u6A21\u5F0F\uFF0C\u6302\u8F7D response \u76D1\u542C: apiMatchers=${toJsonInline(apiMatchers, 160)}`);
|
|
5981
6020
|
page.on("response", onResponse);
|
|
5982
6021
|
}
|
|
5983
6022
|
const deadline = Date.now() + timeoutMs;
|
|
5984
6023
|
const getRemainingMs = () => Math.max(0, deadline - Date.now());
|
|
5985
6024
|
try {
|
|
5986
6025
|
const actionTimeout = getRemainingMs();
|
|
5987
|
-
|
|
6026
|
+
logger12.start("captureLink.performActions", `\u6267\u884C\u52A8\u4F5C\u9884\u7B97=${actionTimeout}ms`);
|
|
5988
6027
|
if (actionTimeout > 0) {
|
|
5989
6028
|
let timer = null;
|
|
5990
6029
|
let actionError = null;
|
|
@@ -5998,21 +6037,21 @@ var Share = {
|
|
|
5998
6037
|
const actionResult = await Promise.race([actionPromise, timeoutPromise]);
|
|
5999
6038
|
if (timer) clearTimeout(timer);
|
|
6000
6039
|
if (actionResult === "__ACTION_ERROR__") {
|
|
6001
|
-
|
|
6040
|
+
logger12.fail("captureLink.performActions", actionError);
|
|
6002
6041
|
throw actionError;
|
|
6003
6042
|
}
|
|
6004
6043
|
if (actionResult === "__ACTION_TIMEOUT__") {
|
|
6005
6044
|
stats.actionTimedOut = true;
|
|
6006
|
-
|
|
6045
|
+
logger12.warning(`performActions \u5DF2\u8D85\u65F6 (${actionTimeout}ms)\uFF0C\u52A8\u4F5C\u53EF\u80FD\u4ECD\u5728\u5F02\u6B65\u6267\u884C`);
|
|
6007
6046
|
} else {
|
|
6008
|
-
|
|
6047
|
+
logger12.success("captureLink.performActions", "\u6267\u884C\u52A8\u4F5C\u5B8C\u6210");
|
|
6009
6048
|
}
|
|
6010
6049
|
}
|
|
6011
6050
|
let nextProgressLogTs = Date.now() + 3e3;
|
|
6012
6051
|
while (true) {
|
|
6013
6052
|
const selected = share.mode === "dom" ? candidates.dom : candidates.response;
|
|
6014
6053
|
if (selected?.link) {
|
|
6015
|
-
|
|
6054
|
+
logger12.success("captureLink", `\u6355\u83B7\u6210\u529F: source=${share.mode}, link=${selected.link}`);
|
|
6016
6055
|
return {
|
|
6017
6056
|
link: selected.link,
|
|
6018
6057
|
payloadText: selected.payloadText,
|
|
@@ -6024,7 +6063,7 @@ var Share = {
|
|
|
6024
6063
|
if (remaining <= 0) break;
|
|
6025
6064
|
const now = Date.now();
|
|
6026
6065
|
if (now >= nextProgressLogTs) {
|
|
6027
|
-
|
|
6066
|
+
logger12.info(
|
|
6028
6067
|
`captureLink \u7B49\u5F85\u4E2D: remaining=${remaining}ms, domMutationCount=${stats.domMutationCount}, responseMatched=${stats.responseMatched}`
|
|
6029
6068
|
);
|
|
6030
6069
|
nextProgressLogTs = now + 5e3;
|
|
@@ -6032,11 +6071,11 @@ var Share = {
|
|
|
6032
6071
|
await delay2(Math.max(0, Math.min(DEFAULT_POLL_INTERVAL_MS, remaining)));
|
|
6033
6072
|
}
|
|
6034
6073
|
if (share.mode === "response" && stats.responseMatched === 0) {
|
|
6035
|
-
|
|
6074
|
+
logger12.warning(
|
|
6036
6075
|
`\u63A5\u53E3\u76D1\u542C\u672A\u547D\u4E2D: apiMatchers=${toJsonInline(apiMatchers, 220)}, \u54CD\u5E94\u6837\u672CURLs=${toJsonInline(stats.responseSampleUrls, 420)}`
|
|
6037
6076
|
);
|
|
6038
6077
|
}
|
|
6039
|
-
|
|
6078
|
+
logger12.warning(
|
|
6040
6079
|
`captureLink \u8D85\u65F6\u672A\u62FF\u5230\u94FE\u63A5: mode=${share.mode}, actionTimedOut=${stats.actionTimedOut}, domMutationCount=${stats.domMutationCount}, responseObserved=${stats.responseObserved}, responseMatched=${stats.responseMatched}, lastMatchedUrl=${stats.lastMatchedUrl || "none"}`
|
|
6041
6080
|
);
|
|
6042
6081
|
return {
|
|
@@ -6048,7 +6087,7 @@ var Share = {
|
|
|
6048
6087
|
} finally {
|
|
6049
6088
|
if (share.mode === "response") {
|
|
6050
6089
|
page.off("response", onResponse);
|
|
6051
|
-
|
|
6090
|
+
logger12.info("response \u76D1\u542C\u5DF2\u5378\u8F7D");
|
|
6052
6091
|
}
|
|
6053
6092
|
await stopDomMonitor();
|
|
6054
6093
|
}
|