@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.js CHANGED
@@ -6275,7 +6275,7 @@ function useCaptchaMonitor(page, options) {
6275
6275
  let isStopped = false;
6276
6276
  let isHandling = false;
6277
6277
  let frameHandler = null;
6278
- let domFrameHandler = null;
6278
+ let exposedFunctionName = null;
6279
6279
  const triggerDetected = async () => {
6280
6280
  if (isStopped || isHandling) return;
6281
6281
  isHandling = true;
@@ -6287,16 +6287,12 @@ function useCaptchaMonitor(page, options) {
6287
6287
  };
6288
6288
  const cleanupFns = [];
6289
6289
  if (domSelector) {
6290
- const exposedFunctionName = `__c_d_${uuidv4().replace(/-/g, "_")}`;
6290
+ exposedFunctionName = `__c_d_${uuidv4().replace(/-/g, "_")}`;
6291
6291
  const cleanerName = `__c_cleaner_${uuidv4().replace(/-/g, "_")}`;
6292
- const installDomMonitor = ({ selector, callbackName, cleanerName: cleanupName }) => {
6292
+ page.exposeFunction(exposedFunctionName, triggerDetected).catch(() => {
6293
+ });
6294
+ page.addInitScript(({ selector, callbackName, cleanerName: cleanupName }) => {
6293
6295
  (() => {
6294
- if (typeof window[cleanupName] === "function") {
6295
- try {
6296
- window[cleanupName]();
6297
- } catch {
6298
- }
6299
- }
6300
6296
  let observer = null;
6301
6297
  const checkAndReport = () => {
6302
6298
  const element = document.querySelector(selector);
@@ -6322,7 +6318,7 @@ function useCaptchaMonitor(page, options) {
6322
6318
  }
6323
6319
  };
6324
6320
  if (document.readyState === "loading") {
6325
- window.addEventListener("DOMContentLoaded", mountObserver, { once: true });
6321
+ window.addEventListener("DOMContentLoaded", mountObserver);
6326
6322
  } else {
6327
6323
  mountObserver();
6328
6324
  }
@@ -6333,41 +6329,9 @@ function useCaptchaMonitor(page, options) {
6333
6329
  }
6334
6330
  };
6335
6331
  })();
6336
- };
6337
- const installArgs = {
6338
- selector: domSelector,
6339
- callbackName: exposedFunctionName,
6340
- cleanerName
6341
- };
6342
- const domMonitorReady = (async () => {
6343
- await page.exposeFunction(exposedFunctionName, triggerDetected);
6344
- await page.addInitScript(installDomMonitor, installArgs);
6345
- await page.evaluate(installDomMonitor, installArgs).catch(() => {
6346
- });
6347
- logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
6348
- })().catch((error) => {
6349
- if (isStopped) {
6350
- return;
6351
- }
6352
- logger12.warn(`DOM \u76D1\u63A7\u521D\u59CB\u5316\u5931\u8D25 (${domSelector}): ${error?.message || error}`);
6353
- });
6354
- domFrameHandler = async (frame) => {
6355
- if (frame !== page.mainFrame() || isStopped) {
6356
- return;
6357
- }
6358
- await domMonitorReady;
6359
- if (isStopped) {
6360
- return;
6361
- }
6362
- await page.evaluate(installDomMonitor, installArgs).catch(() => {
6363
- });
6364
- };
6365
- page.on("framenavigated", domFrameHandler);
6332
+ }, { selector: domSelector, callbackName: exposedFunctionName, cleanerName });
6333
+ logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
6366
6334
  cleanupFns.push(async () => {
6367
- if (domFrameHandler) {
6368
- page.off("framenavigated", domFrameHandler);
6369
- }
6370
- await domMonitorReady;
6371
6335
  try {
6372
6336
  await page.evaluate((name) => {
6373
6337
  if (window[name]) {
@@ -6398,10 +6362,10 @@ function useCaptchaMonitor(page, options) {
6398
6362
  return {
6399
6363
  stop: async () => {
6400
6364
  logger12.info("\u6B63\u5728\u505C\u6B62\u9A8C\u8BC1\u7801\u76D1\u63A7...");
6401
- isStopped = true;
6402
6365
  for (const fn of cleanupFns) {
6403
6366
  await fn();
6404
6367
  }
6368
+ isStopped = true;
6405
6369
  }
6406
6370
  };
6407
6371
  }