@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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@ricsam/isolate-client",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "type": "commonjs"
5
5
  }
@@ -551,8 +551,10 @@ async function createRuntime(state, options = {}, namespaceId) {
551
551
  }
552
552
  let playwrightHandler;
553
553
  const browserConsoleLogs = [];
554
+ const pageErrors = [];
554
555
  const networkRequests = [];
555
556
  const networkResponses = [];
557
+ const requestFailures = [];
556
558
  const pageListenerCleanups = [];
557
559
  if (normalizedPlaywrightOptions) {
558
560
  playwrightHandler = normalizedPlaywrightOptions.handler;
@@ -567,10 +569,31 @@ async function createRuntime(state, options = {}, namespaceId) {
567
569
  return JSON.stringify(result2);
568
570
  });
569
571
  if (page) {
572
+ const requestIds = new WeakMap;
573
+ let nextRequestId = 1;
574
+ const getRequestId = (request2) => {
575
+ let requestId2 = requestIds.get(request2);
576
+ if (!requestId2) {
577
+ requestId2 = `req_${nextRequestId++}`;
578
+ requestIds.set(request2, requestId2);
579
+ }
580
+ return requestId2;
581
+ };
582
+ const toLocation = (location) => {
583
+ if (!location || !location.url && location.lineNumber == null && location.columnNumber == null) {
584
+ return;
585
+ }
586
+ return {
587
+ url: location.url || undefined,
588
+ lineNumber: location.lineNumber != null ? location.lineNumber + 1 : undefined,
589
+ columnNumber: location.columnNumber != null ? location.columnNumber + 1 : undefined
590
+ };
591
+ };
570
592
  const onConsole = (msg) => {
571
593
  const entry = {
572
594
  level: msg.type(),
573
595
  stdout: msg.text(),
596
+ location: toLocation(msg.location()),
574
597
  timestamp: Date.now()
575
598
  };
576
599
  browserConsoleLogs.push(entry);
@@ -592,9 +615,12 @@ async function createRuntime(state, options = {}, namespaceId) {
592
615
  };
593
616
  const onRequest = (request2) => {
594
617
  const info = {
618
+ requestId: getRequestId(request2),
595
619
  url: request2.url(),
596
620
  method: request2.method(),
597
621
  headers: request2.headers(),
622
+ postData: request2.postData() ?? undefined,
623
+ resourceType: request2.resourceType(),
598
624
  timestamp: Date.now()
599
625
  };
600
626
  networkRequests.push(info);
@@ -606,10 +632,14 @@ async function createRuntime(state, options = {}, namespaceId) {
606
632
  }
607
633
  };
608
634
  const onResponse = (response) => {
635
+ const request2 = response.request();
609
636
  const info = {
637
+ requestId: getRequestId(request2),
610
638
  url: response.url(),
611
639
  status: response.status(),
640
+ statusText: response.statusText(),
612
641
  headers: response.headers(),
642
+ resourceType: request2.resourceType(),
613
643
  timestamp: Date.now()
614
644
  };
615
645
  networkResponses.push(info);
@@ -620,10 +650,44 @@ async function createRuntime(state, options = {}, namespaceId) {
620
650
  });
621
651
  }
622
652
  };
653
+ const onRequestFailed = (request2) => {
654
+ const info = {
655
+ requestId: getRequestId(request2),
656
+ url: request2.url(),
657
+ method: request2.method(),
658
+ failureText: request2.failure()?.errorText || "request failed",
659
+ resourceType: request2.resourceType(),
660
+ timestamp: Date.now()
661
+ };
662
+ requestFailures.push(info);
663
+ if (normalizedPlaywrightOptions.onEvent) {
664
+ normalizedPlaywrightOptions.onEvent({
665
+ type: "requestFailure",
666
+ ...info
667
+ });
668
+ }
669
+ };
670
+ const onPageError = (error) => {
671
+ const entry = {
672
+ name: error.name,
673
+ message: error.message,
674
+ stack: error.stack,
675
+ timestamp: Date.now()
676
+ };
677
+ pageErrors.push(entry);
678
+ if (normalizedPlaywrightOptions.onEvent) {
679
+ normalizedPlaywrightOptions.onEvent({
680
+ type: "pageError",
681
+ ...entry
682
+ });
683
+ }
684
+ };
623
685
  page.on("console", onConsole);
624
686
  page.on("request", onRequest);
625
687
  page.on("response", onResponse);
626
- pageListenerCleanups.push(() => page.removeListener("console", onConsole), () => page.removeListener("request", onRequest), () => page.removeListener("response", onResponse));
688
+ page.on("requestfailed", onRequestFailed);
689
+ page.on("pageerror", onPageError);
690
+ pageListenerCleanups.push(() => page.removeListener("console", onConsole), () => page.removeListener("request", onRequest), () => page.removeListener("response", onResponse), () => page.removeListener("requestfailed", onRequestFailed), () => page.removeListener("pageerror", onPageError));
627
691
  }
628
692
  callbacks.playwright = {
629
693
  handlerCallbackId,
@@ -963,8 +1027,10 @@ async function createRuntime(state, options = {}, namespaceId) {
963
1027
  }
964
1028
  return {
965
1029
  browserConsoleLogs: [...browserConsoleLogs],
1030
+ pageErrors: [...pageErrors],
966
1031
  networkRequests: [...networkRequests],
967
- networkResponses: [...networkResponses]
1032
+ networkResponses: [...networkResponses],
1033
+ requestFailures: [...requestFailures]
968
1034
  };
969
1035
  },
970
1036
  clearCollectedData() {
@@ -972,8 +1038,10 @@ async function createRuntime(state, options = {}, namespaceId) {
972
1038
  throw new Error("Playwright not configured. Provide playwright.handler in createRuntime options.");
973
1039
  }
974
1040
  browserConsoleLogs.length = 0;
1041
+ pageErrors.length = 0;
975
1042
  networkRequests.length = 0;
976
1043
  networkResponses.length = 0;
1044
+ requestFailures.length = 0;
977
1045
  }
978
1046
  };
979
1047
  return {
@@ -1742,4 +1810,4 @@ export {
1742
1810
  connect
1743
1811
  };
1744
1812
 
1745
- //# debugId=743304E0653BD6EF64756E2164756E21
1813
+ //# debugId=80B56E46F0C9D9FF64756E2164756E21