@ricsam/isolate-client 0.1.26 → 0.1.27

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.
@@ -602,8 +602,10 @@ async function createRuntime(state, options = {}, namespaceId) {
602
602
  }
603
603
  let playwrightHandler;
604
604
  const browserConsoleLogs = [];
605
+ const pageErrors = [];
605
606
  const networkRequests = [];
606
607
  const networkResponses = [];
608
+ const requestFailures = [];
607
609
  const pageListenerCleanups = [];
608
610
  if (normalizedPlaywrightOptions) {
609
611
  playwrightHandler = normalizedPlaywrightOptions.handler;
@@ -618,10 +620,31 @@ async function createRuntime(state, options = {}, namespaceId) {
618
620
  return JSON.stringify(result2);
619
621
  });
620
622
  if (page) {
623
+ const requestIds = new WeakMap;
624
+ let nextRequestId = 1;
625
+ const getRequestId = (request2) => {
626
+ let requestId2 = requestIds.get(request2);
627
+ if (!requestId2) {
628
+ requestId2 = `req_${nextRequestId++}`;
629
+ requestIds.set(request2, requestId2);
630
+ }
631
+ return requestId2;
632
+ };
633
+ const toLocation = (location) => {
634
+ if (!location || !location.url && location.lineNumber == null && location.columnNumber == null) {
635
+ return;
636
+ }
637
+ return {
638
+ url: location.url || undefined,
639
+ lineNumber: location.lineNumber != null ? location.lineNumber + 1 : undefined,
640
+ columnNumber: location.columnNumber != null ? location.columnNumber + 1 : undefined
641
+ };
642
+ };
621
643
  const onConsole = (msg) => {
622
644
  const entry = {
623
645
  level: msg.type(),
624
646
  stdout: msg.text(),
647
+ location: toLocation(msg.location()),
625
648
  timestamp: Date.now()
626
649
  };
627
650
  browserConsoleLogs.push(entry);
@@ -643,9 +666,12 @@ async function createRuntime(state, options = {}, namespaceId) {
643
666
  };
644
667
  const onRequest = (request2) => {
645
668
  const info = {
669
+ requestId: getRequestId(request2),
646
670
  url: request2.url(),
647
671
  method: request2.method(),
648
672
  headers: request2.headers(),
673
+ postData: request2.postData() ?? undefined,
674
+ resourceType: request2.resourceType(),
649
675
  timestamp: Date.now()
650
676
  };
651
677
  networkRequests.push(info);
@@ -657,10 +683,14 @@ async function createRuntime(state, options = {}, namespaceId) {
657
683
  }
658
684
  };
659
685
  const onResponse = (response) => {
686
+ const request2 = response.request();
660
687
  const info = {
688
+ requestId: getRequestId(request2),
661
689
  url: response.url(),
662
690
  status: response.status(),
691
+ statusText: response.statusText(),
663
692
  headers: response.headers(),
693
+ resourceType: request2.resourceType(),
664
694
  timestamp: Date.now()
665
695
  };
666
696
  networkResponses.push(info);
@@ -671,10 +701,44 @@ async function createRuntime(state, options = {}, namespaceId) {
671
701
  });
672
702
  }
673
703
  };
704
+ const onRequestFailed = (request2) => {
705
+ const info = {
706
+ requestId: getRequestId(request2),
707
+ url: request2.url(),
708
+ method: request2.method(),
709
+ failureText: request2.failure()?.errorText || "request failed",
710
+ resourceType: request2.resourceType(),
711
+ timestamp: Date.now()
712
+ };
713
+ requestFailures.push(info);
714
+ if (normalizedPlaywrightOptions.onEvent) {
715
+ normalizedPlaywrightOptions.onEvent({
716
+ type: "requestFailure",
717
+ ...info
718
+ });
719
+ }
720
+ };
721
+ const onPageError = (error) => {
722
+ const entry = {
723
+ name: error.name,
724
+ message: error.message,
725
+ stack: error.stack,
726
+ timestamp: Date.now()
727
+ };
728
+ pageErrors.push(entry);
729
+ if (normalizedPlaywrightOptions.onEvent) {
730
+ normalizedPlaywrightOptions.onEvent({
731
+ type: "pageError",
732
+ ...entry
733
+ });
734
+ }
735
+ };
674
736
  page.on("console", onConsole);
675
737
  page.on("request", onRequest);
676
738
  page.on("response", onResponse);
677
- pageListenerCleanups.push(() => page.removeListener("console", onConsole), () => page.removeListener("request", onRequest), () => page.removeListener("response", onResponse));
739
+ page.on("requestfailed", onRequestFailed);
740
+ page.on("pageerror", onPageError);
741
+ pageListenerCleanups.push(() => page.removeListener("console", onConsole), () => page.removeListener("request", onRequest), () => page.removeListener("response", onResponse), () => page.removeListener("requestfailed", onRequestFailed), () => page.removeListener("pageerror", onPageError));
678
742
  }
679
743
  callbacks.playwright = {
680
744
  handlerCallbackId,
@@ -1014,8 +1078,10 @@ async function createRuntime(state, options = {}, namespaceId) {
1014
1078
  }
1015
1079
  return {
1016
1080
  browserConsoleLogs: [...browserConsoleLogs],
1081
+ pageErrors: [...pageErrors],
1017
1082
  networkRequests: [...networkRequests],
1018
- networkResponses: [...networkResponses]
1083
+ networkResponses: [...networkResponses],
1084
+ requestFailures: [...requestFailures]
1019
1085
  };
1020
1086
  },
1021
1087
  clearCollectedData() {
@@ -1023,8 +1089,10 @@ async function createRuntime(state, options = {}, namespaceId) {
1023
1089
  throw new Error("Playwright not configured. Provide playwright.handler in createRuntime options.");
1024
1090
  }
1025
1091
  browserConsoleLogs.length = 0;
1092
+ pageErrors.length = 0;
1026
1093
  networkRequests.length = 0;
1027
1094
  networkResponses.length = 0;
1095
+ requestFailures.length = 0;
1028
1096
  }
1029
1097
  };
1030
1098
  return {
@@ -1789,4 +1857,4 @@ function handleClientWsClose(isolateId, payload, state) {
1789
1857
  }
1790
1858
  }
1791
1859
 
1792
- //# debugId=27BD5708C6169B9164756E2164756E21
1860
+ //# debugId=AC39B45BA041D32964756E2164756E21