@skrillex1224/playwright-toolkit 3.0.6 → 3.0.8

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
@@ -6303,7 +6303,7 @@ function useCaptchaMonitor(page, options) {
6303
6303
  let isStopped = false;
6304
6304
  let isHandling = false;
6305
6305
  let frameHandler = null;
6306
- let domFrameHandler = null;
6306
+ let exposedFunctionName = null;
6307
6307
  const triggerDetected = async () => {
6308
6308
  if (isStopped || isHandling) return;
6309
6309
  isHandling = true;
@@ -6315,16 +6315,12 @@ function useCaptchaMonitor(page, options) {
6315
6315
  };
6316
6316
  const cleanupFns = [];
6317
6317
  if (domSelector) {
6318
- const exposedFunctionName = `__c_d_${(0, import_uuid.v4)().replace(/-/g, "_")}`;
6318
+ exposedFunctionName = `__c_d_${(0, import_uuid.v4)().replace(/-/g, "_")}`;
6319
6319
  const cleanerName = `__c_cleaner_${(0, import_uuid.v4)().replace(/-/g, "_")}`;
6320
- const installDomMonitor = ({ selector, callbackName, cleanerName: cleanupName }) => {
6320
+ page.exposeFunction(exposedFunctionName, triggerDetected).catch(() => {
6321
+ });
6322
+ page.addInitScript(({ selector, callbackName, cleanerName: cleanupName }) => {
6321
6323
  (() => {
6322
- if (typeof window[cleanupName] === "function") {
6323
- try {
6324
- window[cleanupName]();
6325
- } catch {
6326
- }
6327
- }
6328
6324
  let observer = null;
6329
6325
  const checkAndReport = () => {
6330
6326
  const element = document.querySelector(selector);
@@ -6350,7 +6346,7 @@ function useCaptchaMonitor(page, options) {
6350
6346
  }
6351
6347
  };
6352
6348
  if (document.readyState === "loading") {
6353
- window.addEventListener("DOMContentLoaded", mountObserver, { once: true });
6349
+ window.addEventListener("DOMContentLoaded", mountObserver);
6354
6350
  } else {
6355
6351
  mountObserver();
6356
6352
  }
@@ -6361,41 +6357,9 @@ function useCaptchaMonitor(page, options) {
6361
6357
  }
6362
6358
  };
6363
6359
  })();
6364
- };
6365
- const installArgs = {
6366
- selector: domSelector,
6367
- callbackName: exposedFunctionName,
6368
- cleanerName
6369
- };
6370
- const domMonitorReady = (async () => {
6371
- await page.exposeFunction(exposedFunctionName, triggerDetected);
6372
- await page.addInitScript(installDomMonitor, installArgs);
6373
- await page.evaluate(installDomMonitor, installArgs).catch(() => {
6374
- });
6375
- logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
6376
- })().catch((error) => {
6377
- if (isStopped) {
6378
- return;
6379
- }
6380
- logger12.warn(`DOM \u76D1\u63A7\u521D\u59CB\u5316\u5931\u8D25 (${domSelector}): ${error?.message || error}`);
6381
- });
6382
- domFrameHandler = async (frame) => {
6383
- if (frame !== page.mainFrame() || isStopped) {
6384
- return;
6385
- }
6386
- await domMonitorReady;
6387
- if (isStopped) {
6388
- return;
6389
- }
6390
- await page.evaluate(installDomMonitor, installArgs).catch(() => {
6391
- });
6392
- };
6393
- page.on("framenavigated", domFrameHandler);
6360
+ }, { selector: domSelector, callbackName: exposedFunctionName, cleanerName });
6361
+ logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
6394
6362
  cleanupFns.push(async () => {
6395
- if (domFrameHandler) {
6396
- page.off("framenavigated", domFrameHandler);
6397
- }
6398
- await domMonitorReady;
6399
6363
  try {
6400
6364
  await page.evaluate((name) => {
6401
6365
  if (window[name]) {
@@ -6426,10 +6390,10 @@ function useCaptchaMonitor(page, options) {
6426
6390
  return {
6427
6391
  stop: async () => {
6428
6392
  logger12.info("\u6B63\u5728\u505C\u6B62\u9A8C\u8BC1\u7801\u76D1\u63A7...");
6429
- isStopped = true;
6430
6393
  for (const fn of cleanupFns) {
6431
6394
  await fn();
6432
6395
  }
6396
+ isStopped = true;
6433
6397
  }
6434
6398
  };
6435
6399
  }