@checkly/playwright-core 1.48.21 → 1.48.22-beta

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.
Files changed (164) hide show
  1. package/lib/cli/cli.js +61 -0
  2. package/lib/common/debugLogger.js +90 -0
  3. package/lib/generated/recorderSource.js +1 -1
  4. package/lib/server/recorder/java.js +4 -36
  5. package/lib/server/trace/recorder/tracing.js +22 -17
  6. package/lib/vite/{traceViewer/assets/codeMirrorModule-B7Z3vq11.js → recorder/assets/codeMirrorModule-CR6kB851.js} +1 -1
  7. package/lib/vite/recorder/assets/{index-Bxxcmxlu.js → index-BcaUAUCW.js} +2 -2
  8. package/lib/vite/recorder/index.html +1 -1
  9. package/lib/vite/traceViewer/assets/codeMirrorModule-75b0ca4f.js +24 -0
  10. package/lib/vite/traceViewer/assets/codeMirrorModule-CNHvVrFd.js +16437 -0
  11. package/lib/vite/traceViewer/assets/{codeMirrorModule-BdBhzV6t.js → codeMirrorModule-CpGx_S8D.js} +2 -2
  12. package/lib/vite/traceViewer/assets/codeMirrorModule-SomGa-Da.js +16443 -0
  13. package/lib/vite/traceViewer/assets/codeMirrorModule-c1454a2e.js +24 -0
  14. package/lib/vite/traceViewer/assets/codeMirrorModule-c9bb9834.js +24 -0
  15. package/lib/vite/traceViewer/assets/{codeMirrorModule-BqcXH1AO.js → codeMirrorModule-cc2329e4.js} +11 -1256
  16. package/lib/vite/traceViewer/assets/codeMirrorModule-d2cc7db0.js +15579 -0
  17. package/lib/vite/traceViewer/assets/codeMirrorModule-da915a35.js +15586 -0
  18. package/lib/vite/traceViewer/assets/{codeMirrorModule-U6XMqGkV.js → codeMirrorModule-f03b1a3e.js} +661 -1519
  19. package/lib/vite/traceViewer/assets/codeMirrorModule-f333a775.js +24 -0
  20. package/lib/vite/traceViewer/assets/{codeMirrorModule-V7N6ppkd.js → codeMirrorModule-uWDlVSQz.js} +2 -2
  21. package/lib/vite/traceViewer/assets/{codeMirrorModule-Dx6AXgMV.js → codeMirrorModule-yboVpgC0.js} +2 -1248
  22. package/lib/vite/traceViewer/assets/{inspectorTab-BPzVEZSf.js → inspectorTab-B4ynvyY9.js} +18 -8
  23. package/lib/vite/traceViewer/assets/{inspectorTab-BABZNwlH.js → inspectorTab-Dw0Gnh1T.js} +18 -8
  24. package/lib/vite/traceViewer/assets/{inspectorTab-DpvLVMq5.js → inspectorTab-Ywa000c9.js} +16 -6
  25. package/lib/vite/traceViewer/assets/{workbench-BcgGQnKb.js → workbench-CROk6Fcc.js} +2 -2
  26. package/lib/vite/traceViewer/assets/{workbench-ByyWxoT8.js → workbench-CfXOj3eT.js} +2 -2
  27. package/lib/vite/traceViewer/assets/{workbench-DhqI6jeL.js → workbench-D9CTkv-4.js} +2 -2
  28. package/lib/vite/traceViewer/assets/{workbench-I4s6sWjN.js → workbench-DNolpp3y.js} +1 -1
  29. package/lib/vite/traceViewer/assets/workbench-dnZM5a7x.js +1473 -0
  30. package/lib/vite/traceViewer/assets/wsPort-54626118.js +18361 -0
  31. package/lib/vite/traceViewer/assets/{workbench-Crj6jzdv.js → wsPort-57f274c6.js} +4308 -5066
  32. package/lib/vite/traceViewer/assets/wsPort-762c6840.js +64 -0
  33. package/lib/vite/traceViewer/assets/wsPort-85286e61.js +18361 -0
  34. package/lib/vite/traceViewer/assets/wsPort-98e00a94.js +64 -0
  35. package/lib/vite/traceViewer/assets/{wsPort-EUvw-dwH.js → wsPort-CAXygIGt.js} +3 -3
  36. package/lib/vite/traceViewer/assets/{workbench-Bjkiwcr1.js → wsPort-cc0077b5.js} +4046 -4623
  37. package/lib/vite/traceViewer/assets/wsPort-edfeeb7d.js +64 -0
  38. package/lib/vite/traceViewer/assets/wsPort-ee2830d7.js +64 -0
  39. package/lib/vite/traceViewer/assets/{workbench-C5OQh9VX.js → wsPort-peeLnQhT.js} +985 -1540
  40. package/lib/vite/traceViewer/assets/xtermModule-443332e6.js +9 -0
  41. package/lib/vite/traceViewer/assets/xtermModule-60687b6b.js +6410 -0
  42. package/lib/vite/traceViewer/codeMirrorModule.5d0f417c.css +1 -0
  43. package/lib/vite/traceViewer/codeMirrorModule.eb494ea9.css +344 -0
  44. package/lib/vite/traceViewer/codicon.79f233d0.ttf +0 -0
  45. package/lib/vite/traceViewer/{embedded.27BGR_eD.js → embedded.6N1v7bZ1.js} +4 -3
  46. package/lib/vite/traceViewer/{embedded.DTjd2aiy.js → embedded.BaqdbLsy.js} +4 -3
  47. package/lib/vite/traceViewer/{embedded.SsjKHrxC.js → embedded.CwwTDBzP.js} +4 -3
  48. package/lib/vite/traceViewer/{embedded.Zu332ZC1.js → embedded.DeCrOtlO.js} +2 -2
  49. package/lib/vite/traceViewer/embedded.i_k4ceMJ.js +106 -0
  50. package/lib/vite/traceViewer/index.1a1fe659.css +1 -0
  51. package/lib/vite/traceViewer/index.1b525c1c.js +181 -0
  52. package/lib/vite/traceViewer/index.55e65778.js +181 -0
  53. package/lib/vite/traceViewer/{index.6KJ-JQ0L.js → index.5nqVcfiC.js} +2 -2
  54. package/lib/vite/traceViewer/{index.C0EgJ4oW.js → index.5ooko4n7.js} +21 -36
  55. package/lib/vite/traceViewer/index.76e9f312.css +124 -0
  56. package/lib/vite/traceViewer/{index.Dz3icWJV.js → index.Bugo2TbS.js} +4 -3
  57. package/lib/vite/traceViewer/{index.PqcsvBxQ.js → index.BzvnAP7t.js} +4 -3
  58. package/lib/vite/traceViewer/{index.CLxsp2W_.js → index.CM_h9lHr.js} +2 -2
  59. package/lib/vite/traceViewer/{index.yxAwzeWG.js → index.CY13pBr8.js} +4 -3
  60. package/lib/vite/traceViewer/index.DblJtEW_.js +197 -0
  61. package/lib/vite/traceViewer/index.a265fbdb.js +2 -0
  62. package/lib/vite/traceViewer/index.c9f6fa8f.js +2 -0
  63. package/lib/vite/traceViewer/index.d86e70ca.js +181 -0
  64. package/lib/vite/traceViewer/index.decad628.js +2 -0
  65. package/lib/vite/traceViewer/index.e8730524.js +181 -0
  66. package/lib/vite/traceViewer/index.ed9a3c58.js +2 -0
  67. package/lib/vite/traceViewer/{recorder.BufKu9Hp.js → recorder.3Xfrl_zV.js} +3 -2
  68. package/lib/vite/traceViewer/{recorder.am-MV-DQ.js → recorder.Db1aK_DY.js} +3 -2
  69. package/lib/vite/traceViewer/{recorder.7Wl6HrQl.js → recorder.uj3cfoMf.js} +3 -2
  70. package/lib/vite/traceViewer/uiMode.08ab2d90.js +4 -0
  71. package/lib/vite/traceViewer/uiMode.0d0d667b.js +4 -0
  72. package/lib/vite/traceViewer/uiMode.216233d5.js +1484 -0
  73. package/lib/vite/traceViewer/{uiMode.DVWUEIHq.css → uiMode.2c31018f.css} +88 -188
  74. package/lib/vite/traceViewer/uiMode.3ff70f7d.js +4 -0
  75. package/lib/vite/traceViewer/uiMode.4d0a45af.js +1484 -0
  76. package/lib/vite/traceViewer/uiMode.66eb0ce2.js +1484 -0
  77. package/lib/vite/traceViewer/uiMode.8b41a49d.css +1 -0
  78. package/lib/vite/traceViewer/uiMode.8d080c01.js +1486 -0
  79. package/lib/vite/traceViewer/uiMode.BKrDfnAk.js +1725 -0
  80. package/lib/vite/traceViewer/uiMode.BMYUvsRh.js +1725 -0
  81. package/lib/vite/traceViewer/{uiMode.BZoFj6zV.js → uiMode.BVpTBGoe.js} +4 -3
  82. package/lib/vite/traceViewer/uiMode.BWhJCEE9.js +1725 -0
  83. package/lib/vite/traceViewer/uiMode.Bg9fACTB.js +1725 -0
  84. package/lib/vite/traceViewer/{uiMode.CpC2B27N.js → uiMode.CYBsUhm_.js} +2 -2
  85. package/lib/vite/traceViewer/{uiMode.Dlo9s_YX.js → uiMode.DCSdxlAq.js} +4 -3
  86. package/lib/vite/traceViewer/{uiMode.wsGnVMQK.js → uiMode.DtleKuGI.js} +4 -3
  87. package/lib/vite/traceViewer/uiMode.UamAvOMX.js +1725 -0
  88. package/lib/vite/traceViewer/uiMode.bBcXYWNF.js +1725 -0
  89. package/lib/vite/traceViewer/uiMode.ca6ec898.js +4 -0
  90. package/lib/vite/traceViewer/{uiMode.iq7CyYy7.js → uiMode.e-PLonGl.js} +2 -2
  91. package/lib/vite/traceViewer/uiMode.e_-GuqEi.js +1725 -0
  92. package/lib/vite/traceViewer/uiMode.f1YADWIl.js +1724 -0
  93. package/lib/vite/traceViewer/uiMode.kHsXCfV8.js +1490 -0
  94. package/lib/vite/traceViewer/{workbench.B3X2QtYa.css → wsPort.162042f9.css} +63 -315
  95. package/lib/vite/traceViewer/{workbench.wuxQoE2z.css → wsPort.997c92cf.css} +145 -335
  96. package/lib/vite/traceViewer/wsPort.9c9a6767.css +1 -0
  97. package/lib/vite/traceViewer/xtermModule.125f4259.css +191 -0
  98. package/lib/vite/traceViewer/xtermModule.6428296b.css +32 -0
  99. package/package.json +1 -1
  100. package/lib/vite/recorder/assets/codeMirrorModule-d0KhC1qL.js +0 -24
  101. package/lib/vite/traceViewer/assets/codeMirrorModule-5yiV-3wl.js +0 -16831
  102. package/lib/vite/traceViewer/assets/codeMirrorModule-C6p3E9Zg.js +0 -24
  103. package/lib/vite/traceViewer/assets/codeMirrorModule-Ca-1BNel.js +0 -24
  104. package/lib/vite/traceViewer/assets/codeMirrorModule-CcviAl53.js +0 -16831
  105. package/lib/vite/traceViewer/assets/codeMirrorModule-CqYUz5ms.js +0 -24
  106. package/lib/vite/traceViewer/assets/codeMirrorModule-DS3v0XrQ.js +0 -24
  107. package/lib/vite/traceViewer/assets/codeMirrorModule-DZoSgqUd.js +0 -24
  108. package/lib/vite/traceViewer/assets/codeMirrorModule-EhKN7Okm.js +0 -16449
  109. package/lib/vite/traceViewer/assets/codeMirrorModule-MzSmL4X2.js +0 -24
  110. package/lib/vite/traceViewer/assets/codeMirrorModule-T_sdMrbM.js +0 -24
  111. package/lib/vite/traceViewer/assets/inspectorTab-BHcfR9dD.js +0 -64
  112. package/lib/vite/traceViewer/assets/inspectorTab-Bbgq0hgt.js +0 -64
  113. package/lib/vite/traceViewer/assets/inspectorTab-DhBbZz8I.js +0 -64
  114. package/lib/vite/traceViewer/assets/workbench-B13nfocr.js +0 -9
  115. package/lib/vite/traceViewer/assets/workbench-BwodYCgl.js +0 -19119
  116. package/lib/vite/traceViewer/assets/workbench-C43LWZEX.js +0 -72
  117. package/lib/vite/traceViewer/assets/workbench-DZqNXdoV.js +0 -9
  118. package/lib/vite/traceViewer/assets/workbench-DrQjKdyE.js +0 -72
  119. package/lib/vite/traceViewer/assets/workbench-Pa1v1Ojh.js +0 -72
  120. package/lib/vite/traceViewer/assets/workbench-caTaZnzx.js +0 -72
  121. package/lib/vite/traceViewer/assets/workbench-gtYcQBNA.js +0 -9
  122. package/lib/vite/traceViewer/assets/workbench-u2lRPMOT.js +0 -72
  123. package/lib/vite/traceViewer/assets/xtermModule-CZ7sDYXB.js +0 -6529
  124. package/lib/vite/traceViewer/embedded.BBZ9gQEw.js +0 -104
  125. package/lib/vite/traceViewer/embedded.BQq6Psnz.js +0 -104
  126. package/lib/vite/traceViewer/embedded.BVDVQOzc.js +0 -2
  127. package/lib/vite/traceViewer/embedded.Bn8Ptzv6.js +0 -2
  128. package/lib/vite/traceViewer/embedded.CorI3dFX.js +0 -104
  129. package/lib/vite/traceViewer/embedded.CvhnUgIi.js +0 -2
  130. package/lib/vite/traceViewer/embedded.D27cnKiB.js +0 -104
  131. package/lib/vite/traceViewer/embedded.D4lqGydT.js +0 -2
  132. package/lib/vite/traceViewer/embedded.DPqrDeET.js +0 -2
  133. package/lib/vite/traceViewer/embedded.DbzY7Q8w.js +0 -2
  134. package/lib/vite/traceViewer/embedded.Dxe2heQk.js +0 -2
  135. package/lib/vite/traceViewer/embedded.f-PLGsBT.js +0 -2
  136. package/lib/vite/traceViewer/index.B7aiTMfZ.js +0 -2
  137. package/lib/vite/traceViewer/index.B8dgQwuN.js +0 -2
  138. package/lib/vite/traceViewer/index.BGj8jY3H.js +0 -2
  139. package/lib/vite/traceViewer/index.BSak5QT9.js +0 -2
  140. package/lib/vite/traceViewer/index.BrT2kfuc.js +0 -2
  141. package/lib/vite/traceViewer/index.CB297BuW.js +0 -2
  142. package/lib/vite/traceViewer/index.CUpI-BFe.js +0 -195
  143. package/lib/vite/traceViewer/index.DkRbtWVo.js +0 -195
  144. package/lib/vite/traceViewer/index.DsjmhbB6.js +0 -195
  145. package/lib/vite/traceViewer/index._cX8k4co.js +0 -2
  146. package/lib/vite/traceViewer/index.pMAN88y-.js +0 -2
  147. package/lib/vite/traceViewer/recorder.C88JDknq.js +0 -2
  148. package/lib/vite/traceViewer/recorder.Ch-WHviK.js +0 -2
  149. package/lib/vite/traceViewer/recorder.POd-toIn.js +0 -2
  150. package/lib/vite/traceViewer/uiMode.2tr9k625.js +0 -5
  151. package/lib/vite/traceViewer/uiMode.BEZVCe5O.js +0 -5
  152. package/lib/vite/traceViewer/uiMode.C4nbcio6.js +0 -1730
  153. package/lib/vite/traceViewer/uiMode.D-tg1Oci.js +0 -1730
  154. package/lib/vite/traceViewer/uiMode.D3cNFP6u.css +0 -1
  155. package/lib/vite/traceViewer/uiMode.DKjMBMlc.js +0 -1730
  156. package/lib/vite/traceViewer/uiMode.DVrL7a1K.js +0 -10
  157. package/lib/vite/traceViewer/uiMode.DdtUZZVS.js +0 -5
  158. package/lib/vite/traceViewer/uiMode.Dg9oJCQU.js +0 -10
  159. package/lib/vite/traceViewer/uiMode.DwZAzstF.js +0 -10
  160. package/lib/vite/traceViewer/uiMode.O07awP3T.js +0 -10
  161. package/lib/vite/traceViewer/uiMode.gGHHTsyL.js +0 -1730
  162. package/lib/vite/traceViewer/uiMode.jY2s-9ps.js +0 -10
  163. package/lib/vite/traceViewer/workbench.DjbIuxix.css +0 -1
  164. package/lib/vite/traceViewer/workbench.DyTpxWVb.css +0 -1
@@ -0,0 +1,181 @@
1
+ import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxs, a as jsx, T as ToolbarButton, t as toggleTheme, W as Workbench, b as applyTheme, d as reactDomExports } from "./assets/wsPort-cc0077b5.js";
2
+ const workbenchLoader = "";
3
+ const WorkbenchLoader = () => {
4
+ const [isServer, setIsServer] = reactExports.useState(false);
5
+ const [traceURLs, setTraceURLs] = reactExports.useState([]);
6
+ const [uploadedTraceNames, setUploadedTraceNames] = reactExports.useState([]);
7
+ const [model, setModel] = reactExports.useState(emptyModel);
8
+ const [progress, setProgress] = reactExports.useState({ done: 0, total: 0 });
9
+ const [dragOver, setDragOver] = reactExports.useState(false);
10
+ const [processingErrorMessage, setProcessingErrorMessage] = reactExports.useState(null);
11
+ const [fileForLocalModeError, setFileForLocalModeError] = reactExports.useState(null);
12
+ const processTraceFiles = reactExports.useCallback((files) => {
13
+ const blobUrls = [];
14
+ const fileNames = [];
15
+ const url = new URL(window.location.href);
16
+ for (let i = 0; i < files.length; i++) {
17
+ const file = files.item(i);
18
+ if (!file)
19
+ continue;
20
+ const blobTraceURL = URL.createObjectURL(file);
21
+ blobUrls.push(blobTraceURL);
22
+ fileNames.push(file.name);
23
+ url.searchParams.append("trace", blobTraceURL);
24
+ url.searchParams.append("traceFileName", file.name);
25
+ }
26
+ const href = url.toString();
27
+ window.history.pushState({}, "", href);
28
+ setTraceURLs(blobUrls);
29
+ setUploadedTraceNames(fileNames);
30
+ setDragOver(false);
31
+ setProcessingErrorMessage(null);
32
+ }, []);
33
+ const handleDropEvent = reactExports.useCallback((event) => {
34
+ event.preventDefault();
35
+ processTraceFiles(event.dataTransfer.files);
36
+ }, [processTraceFiles]);
37
+ const handleFileInputChange = reactExports.useCallback((event) => {
38
+ event.preventDefault();
39
+ if (!event.target.files)
40
+ return;
41
+ processTraceFiles(event.target.files);
42
+ }, [processTraceFiles]);
43
+ reactExports.useEffect(() => {
44
+ const params = new URL(window.location.href).searchParams;
45
+ const newTraceURLs = params.getAll("trace");
46
+ setIsServer(params.has("isServer"));
47
+ for (const url of newTraceURLs) {
48
+ if (url.startsWith("file:")) {
49
+ setFileForLocalModeError(url || null);
50
+ return;
51
+ }
52
+ }
53
+ if (params.has("isServer")) {
54
+ connect({
55
+ onEvent(method, params2) {
56
+ if (method === "loadTrace") {
57
+ setTraceURLs(params2.url ? [params2.url] : []);
58
+ setDragOver(false);
59
+ setProcessingErrorMessage(null);
60
+ }
61
+ },
62
+ onClose() {
63
+ }
64
+ }).then((sendMessage) => {
65
+ sendMessage("ready");
66
+ });
67
+ } else if (!newTraceURLs.some((url) => url.startsWith("blob:"))) {
68
+ setTraceURLs(newTraceURLs);
69
+ }
70
+ }, []);
71
+ reactExports.useEffect(() => {
72
+ (async () => {
73
+ if (traceURLs.length) {
74
+ const swListener = (event) => {
75
+ if (event.data.method === "progress")
76
+ setProgress(event.data.params);
77
+ };
78
+ navigator.serviceWorker.addEventListener("message", swListener);
79
+ setProgress({ done: 0, total: 1 });
80
+ const contextEntries = [];
81
+ for (let i = 0; i < traceURLs.length; i++) {
82
+ const url = traceURLs[i];
83
+ const params = new URLSearchParams();
84
+ params.set("trace", url);
85
+ if (uploadedTraceNames.length)
86
+ params.set("traceFileName", uploadedTraceNames[i]);
87
+ const response = await fetch(`contexts?${params.toString()}`);
88
+ if (!response.ok) {
89
+ if (!isServer)
90
+ setTraceURLs([]);
91
+ setProcessingErrorMessage((await response.json()).error);
92
+ return;
93
+ }
94
+ contextEntries.push(...await response.json());
95
+ }
96
+ navigator.serviceWorker.removeEventListener("message", swListener);
97
+ const model2 = new MultiTraceModel(contextEntries);
98
+ setProgress({ done: 0, total: 0 });
99
+ setModel(model2);
100
+ } else {
101
+ setModel(emptyModel);
102
+ }
103
+ })();
104
+ }, [isServer, traceURLs, uploadedTraceNames]);
105
+ return /* @__PURE__ */ jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
106
+ event.preventDefault();
107
+ setDragOver(true);
108
+ }, children: [
109
+ /* @__PURE__ */ jsxs("div", { className: "hbox header", children: [
110
+ /* @__PURE__ */ jsx("div", { className: "logo", children: /* @__PURE__ */ jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
111
+ /* @__PURE__ */ jsx("div", { className: "product", children: "Playwright" }),
112
+ model.title && /* @__PURE__ */ jsx("div", { className: "title", children: model.title }),
113
+ /* @__PURE__ */ jsx("div", { className: "spacer" }),
114
+ /* @__PURE__ */ jsx(ToolbarButton, { icon: "color-mode", title: "Toggle color mode", toggled: false, onClick: () => toggleTheme() })
115
+ ] }),
116
+ /* @__PURE__ */ jsx("div", { className: "progress", children: /* @__PURE__ */ jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) }),
117
+ /* @__PURE__ */ jsx(Workbench, { model }),
118
+ fileForLocalModeError && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
119
+ /* @__PURE__ */ jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
120
+ /* @__PURE__ */ jsxs("div", { style: { paddingTop: 20 }, children: [
121
+ /* @__PURE__ */ jsxs("div", { children: [
122
+ "1. Click ",
123
+ /* @__PURE__ */ jsx("a", { href: fileForLocalModeError, children: "here" }),
124
+ " to put your trace into the download shelf"
125
+ ] }),
126
+ /* @__PURE__ */ jsxs("div", { children: [
127
+ "2. Go to ",
128
+ /* @__PURE__ */ jsx("a", { href: "https://trace.playwright.dev", children: "trace.playwright.dev" })
129
+ ] }),
130
+ /* @__PURE__ */ jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
131
+ ] })
132
+ ] }),
133
+ !isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
134
+ /* @__PURE__ */ jsx("div", { className: "processing-error", children: processingErrorMessage }),
135
+ /* @__PURE__ */ jsx("div", { className: "title", children: "Drop Playwright Trace to load" }),
136
+ /* @__PURE__ */ jsx("div", { children: "or" }),
137
+ /* @__PURE__ */ jsx("button", { onClick: () => {
138
+ const input = document.createElement("input");
139
+ input.type = "file";
140
+ input.multiple = true;
141
+ input.click();
142
+ input.addEventListener("change", (e) => handleFileInputChange(e));
143
+ }, children: "Select file(s)" }),
144
+ /* @__PURE__ */ jsx("div", { style: { maxWidth: 400 }, children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." })
145
+ ] }),
146
+ isServer && !traceURLs.length && /* @__PURE__ */ jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsx("div", { className: "title", children: "Select test to see the trace" }) }),
147
+ dragOver && /* @__PURE__ */ jsx(
148
+ "div",
149
+ {
150
+ className: "drop-target",
151
+ onDragLeave: () => {
152
+ setDragOver(false);
153
+ },
154
+ onDrop: (event) => handleDropEvent(event),
155
+ children: /* @__PURE__ */ jsx("div", { className: "title", children: "Release to analyse the Playwright Trace" })
156
+ }
157
+ )
158
+ ] });
159
+ };
160
+ const emptyModel = new MultiTraceModel([]);
161
+ (async () => {
162
+ applyTheme();
163
+ if (window.location.protocol !== "file:") {
164
+ if (window.location.href.includes("isUnderTest=true"))
165
+ await new Promise((f) => setTimeout(f, 1e3));
166
+ if (!navigator.serviceWorker)
167
+ throw new Error(`Service workers are not supported.
168
+ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);
169
+ navigator.serviceWorker.register("sw.bundle.js");
170
+ if (!navigator.serviceWorker.controller) {
171
+ await new Promise((f) => {
172
+ navigator.serviceWorker.oncontrollerchange = () => f();
173
+ });
174
+ }
175
+ setInterval(function() {
176
+ fetch("ping");
177
+ }, 1e4);
178
+ }
179
+ reactDomExports.render(/* @__PURE__ */ jsx(WorkbenchLoader, {}), document.querySelector("#root"));
180
+ })();
181
+ //# sourceMappingURL=index.1b525c1c.js.map
@@ -0,0 +1,181 @@
1
+ import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxs, a as jsx, T as ToolbarButton, t as toggleTheme, W as Workbench, b as applyTheme, d as reactDomExports } from "./assets/wsPort-54626118.js";
2
+ const workbenchLoader = "";
3
+ const WorkbenchLoader = () => {
4
+ const [isServer, setIsServer] = reactExports.useState(false);
5
+ const [traceURLs, setTraceURLs] = reactExports.useState([]);
6
+ const [uploadedTraceNames, setUploadedTraceNames] = reactExports.useState([]);
7
+ const [model, setModel] = reactExports.useState(emptyModel);
8
+ const [progress, setProgress] = reactExports.useState({ done: 0, total: 0 });
9
+ const [dragOver, setDragOver] = reactExports.useState(false);
10
+ const [processingErrorMessage, setProcessingErrorMessage] = reactExports.useState(null);
11
+ const [fileForLocalModeError, setFileForLocalModeError] = reactExports.useState(null);
12
+ const processTraceFiles = reactExports.useCallback((files) => {
13
+ const blobUrls = [];
14
+ const fileNames = [];
15
+ const url = new URL(window.location.href);
16
+ for (let i = 0; i < files.length; i++) {
17
+ const file = files.item(i);
18
+ if (!file)
19
+ continue;
20
+ const blobTraceURL = URL.createObjectURL(file);
21
+ blobUrls.push(blobTraceURL);
22
+ fileNames.push(file.name);
23
+ url.searchParams.append("trace", blobTraceURL);
24
+ url.searchParams.append("traceFileName", file.name);
25
+ }
26
+ const href = url.toString();
27
+ window.history.pushState({}, "", href);
28
+ setTraceURLs(blobUrls);
29
+ setUploadedTraceNames(fileNames);
30
+ setDragOver(false);
31
+ setProcessingErrorMessage(null);
32
+ }, []);
33
+ const handleDropEvent = reactExports.useCallback((event) => {
34
+ event.preventDefault();
35
+ processTraceFiles(event.dataTransfer.files);
36
+ }, [processTraceFiles]);
37
+ const handleFileInputChange = reactExports.useCallback((event) => {
38
+ event.preventDefault();
39
+ if (!event.target.files)
40
+ return;
41
+ processTraceFiles(event.target.files);
42
+ }, [processTraceFiles]);
43
+ reactExports.useEffect(() => {
44
+ const params = new URL(window.location.href).searchParams;
45
+ const newTraceURLs = params.getAll("trace");
46
+ setIsServer(params.has("isServer"));
47
+ for (const url of newTraceURLs) {
48
+ if (url.startsWith("file:")) {
49
+ setFileForLocalModeError(url || null);
50
+ return;
51
+ }
52
+ }
53
+ if (params.has("isServer")) {
54
+ connect({
55
+ onEvent(method, params2) {
56
+ if (method === "loadTrace") {
57
+ setTraceURLs(params2.url ? [params2.url] : []);
58
+ setDragOver(false);
59
+ setProcessingErrorMessage(null);
60
+ }
61
+ },
62
+ onClose() {
63
+ }
64
+ }).then((sendMessage) => {
65
+ sendMessage("ready");
66
+ });
67
+ } else if (!newTraceURLs.some((url) => url.startsWith("blob:"))) {
68
+ setTraceURLs(newTraceURLs);
69
+ }
70
+ }, []);
71
+ reactExports.useEffect(() => {
72
+ (async () => {
73
+ if (traceURLs.length) {
74
+ const swListener = (event) => {
75
+ if (event.data.method === "progress")
76
+ setProgress(event.data.params);
77
+ };
78
+ navigator.serviceWorker.addEventListener("message", swListener);
79
+ setProgress({ done: 0, total: 1 });
80
+ const contextEntries = [];
81
+ for (let i = 0; i < traceURLs.length; i++) {
82
+ const url = traceURLs[i];
83
+ const params = new URLSearchParams();
84
+ params.set("trace", url);
85
+ if (uploadedTraceNames.length)
86
+ params.set("traceFileName", uploadedTraceNames[i]);
87
+ const response = await fetch(`contexts?${params.toString()}`);
88
+ if (!response.ok) {
89
+ if (!isServer)
90
+ setTraceURLs([]);
91
+ setProcessingErrorMessage((await response.json()).error);
92
+ return;
93
+ }
94
+ contextEntries.push(...await response.json());
95
+ }
96
+ navigator.serviceWorker.removeEventListener("message", swListener);
97
+ const model2 = new MultiTraceModel(contextEntries);
98
+ setProgress({ done: 0, total: 0 });
99
+ setModel(model2);
100
+ } else {
101
+ setModel(emptyModel);
102
+ }
103
+ })();
104
+ }, [isServer, traceURLs, uploadedTraceNames]);
105
+ return /* @__PURE__ */ jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
106
+ event.preventDefault();
107
+ setDragOver(true);
108
+ }, children: [
109
+ /* @__PURE__ */ jsxs("div", { className: "hbox header", children: [
110
+ /* @__PURE__ */ jsx("div", { className: "logo", children: /* @__PURE__ */ jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
111
+ /* @__PURE__ */ jsx("div", { className: "product", children: "Playwright" }),
112
+ model.title && /* @__PURE__ */ jsx("div", { className: "title", children: model.title }),
113
+ /* @__PURE__ */ jsx("div", { className: "spacer" }),
114
+ /* @__PURE__ */ jsx(ToolbarButton, { icon: "color-mode", title: "Toggle color mode", toggled: false, onClick: () => toggleTheme() })
115
+ ] }),
116
+ /* @__PURE__ */ jsx("div", { className: "progress", children: /* @__PURE__ */ jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) }),
117
+ /* @__PURE__ */ jsx(Workbench, { model }),
118
+ fileForLocalModeError && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
119
+ /* @__PURE__ */ jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
120
+ /* @__PURE__ */ jsxs("div", { style: { paddingTop: 20 }, children: [
121
+ /* @__PURE__ */ jsxs("div", { children: [
122
+ "1. Click ",
123
+ /* @__PURE__ */ jsx("a", { href: fileForLocalModeError, children: "here" }),
124
+ " to put your trace into the download shelf"
125
+ ] }),
126
+ /* @__PURE__ */ jsxs("div", { children: [
127
+ "2. Go to ",
128
+ /* @__PURE__ */ jsx("a", { href: "https://trace.playwright.dev", children: "trace.playwright.dev" })
129
+ ] }),
130
+ /* @__PURE__ */ jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
131
+ ] })
132
+ ] }),
133
+ !isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) && /* @__PURE__ */ jsxs("div", { className: "drop-target", children: [
134
+ /* @__PURE__ */ jsx("div", { className: "processing-error", children: processingErrorMessage }),
135
+ /* @__PURE__ */ jsx("div", { className: "title", children: "Drop Playwright Trace to load" }),
136
+ /* @__PURE__ */ jsx("div", { children: "or" }),
137
+ /* @__PURE__ */ jsx("button", { onClick: () => {
138
+ const input = document.createElement("input");
139
+ input.type = "file";
140
+ input.multiple = true;
141
+ input.click();
142
+ input.addEventListener("change", (e) => handleFileInputChange(e));
143
+ }, children: "Select file(s)" }),
144
+ /* @__PURE__ */ jsx("div", { style: { maxWidth: 400 }, children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." })
145
+ ] }),
146
+ isServer && !traceURLs.length && /* @__PURE__ */ jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsx("div", { className: "title", children: "Select test to see the trace" }) }),
147
+ dragOver && /* @__PURE__ */ jsx(
148
+ "div",
149
+ {
150
+ className: "drop-target",
151
+ onDragLeave: () => {
152
+ setDragOver(false);
153
+ },
154
+ onDrop: (event) => handleDropEvent(event),
155
+ children: /* @__PURE__ */ jsx("div", { className: "title", children: "Release to analyse the Playwright Trace" })
156
+ }
157
+ )
158
+ ] });
159
+ };
160
+ const emptyModel = new MultiTraceModel([]);
161
+ (async () => {
162
+ applyTheme();
163
+ if (window.location.protocol !== "file:") {
164
+ if (window.location.href.includes("isUnderTest=true"))
165
+ await new Promise((f) => setTimeout(f, 1e3));
166
+ if (!navigator.serviceWorker)
167
+ throw new Error(`Service workers are not supported.
168
+ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);
169
+ navigator.serviceWorker.register("sw.bundle.js");
170
+ if (!navigator.serviceWorker.controller) {
171
+ await new Promise((f) => {
172
+ navigator.serviceWorker.oncontrollerchange = () => f();
173
+ });
174
+ }
175
+ setInterval(function() {
176
+ fetch("ping");
177
+ }, 1e4);
178
+ }
179
+ reactDomExports.render(/* @__PURE__ */ jsx(WorkbenchLoader, {}), document.querySelector("#root"));
180
+ })();
181
+ //# sourceMappingURL=index.55e65778.js.map
@@ -1,4 +1,4 @@
1
- import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, W as Workbench, a as applyTheme, b as reactDomExports } from "./assets/wsPort-EUvw-dwH.js";
1
+ import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, W as Workbench, a as applyTheme, b as reactDomExports } from "./assets/wsPort-CAXygIGt.js";
2
2
  const WorkbenchLoader = () => {
3
3
  const [isServer, setIsServer] = reactExports.useState(false);
4
4
  const [traceURLs, setTraceURLs] = reactExports.useState([]);
@@ -177,4 +177,4 @@ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.
177
177
  }
178
178
  reactDomExports.render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}), document.querySelector("#root"));
179
179
  })();
180
- //# sourceMappingURL=index.6KJ-JQ0L.js.map
180
+ //# sourceMappingURL=index.5nqVcfiC.js.map
@@ -1,5 +1,4 @@
1
- import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, W as Workbench, a as applyTheme, c as createRoot } from "./assets/workbench-C5OQh9VX.js";
2
- import { T as TestServerConnection, W as WebSocketTestServerTransport } from "./assets/testServerConnection-D-tXL3sj.js";
1
+ import { M as MultiTraceModel, r as reactExports, c as connect, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, W as Workbench, a as applyTheme, b as reactDomExports } from "./assets/wsPort-peeLnQhT.js";
3
2
  const WorkbenchLoader = () => {
4
3
  const [isServer, setIsServer] = reactExports.useState(false);
5
4
  const [traceURLs, setTraceURLs] = reactExports.useState([]);
@@ -30,21 +29,6 @@ const WorkbenchLoader = () => {
30
29
  setDragOver(false);
31
30
  setProcessingErrorMessage(null);
32
31
  }, []);
33
- reactExports.useEffect(() => {
34
- const listener = async (e) => {
35
- var _a;
36
- if (!((_a = e.clipboardData) == null ? void 0 : _a.files.length))
37
- return;
38
- for (const file of e.clipboardData.files) {
39
- if (file.type !== "application/zip")
40
- return;
41
- }
42
- e.preventDefault();
43
- processTraceFiles(e.clipboardData.files);
44
- };
45
- document.addEventListener("paste", listener);
46
- return () => document.removeEventListener("paste", listener);
47
- });
48
32
  const handleDropEvent = reactExports.useCallback((event) => {
49
33
  event.preventDefault();
50
34
  processTraceFiles(event.dataTransfer.files);
@@ -66,16 +50,18 @@ const WorkbenchLoader = () => {
66
50
  }
67
51
  }
68
52
  if (params.has("isServer")) {
69
- const guid = new URLSearchParams(window.location.search).get("ws");
70
- const wsURL = new URL(`../${guid}`, window.location.toString());
71
- wsURL.protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
72
- const testServerConnection = new TestServerConnection(new WebSocketTestServerTransport(wsURL));
73
- testServerConnection.onLoadTraceRequested(async (params2) => {
74
- setTraceURLs(params2.traceUrl ? [params2.traceUrl] : []);
75
- setDragOver(false);
76
- setProcessingErrorMessage(null);
77
- });
78
- testServerConnection.initialize({}).catch(() => {
53
+ connect({
54
+ onEvent(method, params2) {
55
+ if (method === "loadTrace") {
56
+ setTraceURLs(params2.url ? [params2.url] : []);
57
+ setDragOver(false);
58
+ setProcessingErrorMessage(null);
59
+ }
60
+ },
61
+ onClose() {
62
+ }
63
+ }).then((sendMessage) => {
64
+ sendMessage("ready");
79
65
  });
80
66
  } else if (!newTraceURLs.some((url) => url.startsWith("blob:"))) {
81
67
  setTraceURLs(newTraceURLs);
@@ -115,12 +101,11 @@ const WorkbenchLoader = () => {
115
101
  }
116
102
  })();
117
103
  }, [isServer, traceURLs, uploadedTraceNames]);
118
- const showFileUploadDropArea = !!(!isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage));
119
104
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vbox workbench-loader", onDragOver: (event) => {
120
105
  event.preventDefault();
121
106
  setDragOver(true);
122
107
  }, children: [
123
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hbox header", ...showFileUploadDropArea ? { inert: "true" } : {}, children: [
108
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hbox header", children: [
124
109
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "logo", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: "playwright-logo.svg", alt: "Playwright logo" }) }),
125
110
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "product", children: "Playwright" }),
126
111
  model.title && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: model.title }),
@@ -128,7 +113,7 @@ const WorkbenchLoader = () => {
128
113
  /* @__PURE__ */ jsxRuntimeExports.jsx(ToolbarButton, { icon: "color-mode", title: "Toggle color mode", toggled: false, onClick: () => toggleTheme() })
129
114
  ] }),
130
115
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "progress", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "inner-progress", style: { width: progress.total ? 100 * progress.done / progress.total + "%" : 0 } }) }),
131
- /* @__PURE__ */ jsxRuntimeExports.jsx(Workbench, { model, inert: showFileUploadDropArea, showSettings: true }),
116
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Workbench, { model }),
132
117
  fileForLocalModeError && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "drop-target", children: [
133
118
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Trace Viewer uses Service Workers to show traces. To view trace:" }),
134
119
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { paddingTop: 20 }, children: [
@@ -144,9 +129,9 @@ const WorkbenchLoader = () => {
144
129
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "3. Drop the trace from the download shelf into the page" })
145
130
  ] })
146
131
  ] }),
147
- showFileUploadDropArea && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "drop-target", children: [
148
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "processing-error", role: "alert", children: processingErrorMessage }),
149
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", role: "heading", "aria-level": 1, children: "Drop Playwright Trace to load" }),
132
+ !isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "drop-target", children: [
133
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "processing-error", children: processingErrorMessage }),
134
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: "Drop Playwright Trace to load" }),
150
135
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "or" }),
151
136
  /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => {
152
137
  const input = document.createElement("input");
@@ -154,7 +139,7 @@ const WorkbenchLoader = () => {
154
139
  input.multiple = true;
155
140
  input.click();
156
141
  input.addEventListener("change", (e) => handleFileInputChange(e));
157
- }, type: "button", children: "Select file(s)" }),
142
+ }, children: "Select file(s)" }),
158
143
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { maxWidth: 400 }, children: "Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally." })
159
144
  ] }),
160
145
  isServer && !traceURLs.length && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "drop-target", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "title", children: "Select test to see the trace" }) }),
@@ -190,6 +175,6 @@ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.
190
175
  fetch("ping");
191
176
  }, 1e4);
192
177
  }
193
- createRoot(document.querySelector("#root")).render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}));
178
+ reactDomExports.render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}), document.querySelector("#root"));
194
179
  })();
195
- //# sourceMappingURL=index.C0EgJ4oW.js.map
180
+ //# sourceMappingURL=index.5ooko4n7.js.map
@@ -0,0 +1,124 @@
1
+ /*
2
+ Copyright (c) Microsoft Corporation.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ .drop-target {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ flex: auto;
22
+ flex-direction: column;
23
+ background-color: var(--vscode-editor-background);
24
+ position: absolute;
25
+ top: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ left: 0;
29
+ z-index: 100;
30
+ line-height: 24px;
31
+ }
32
+
33
+ body .drop-target {
34
+ background: rgba(255, 255, 255, 0.8);
35
+ }
36
+
37
+ body.dark-mode .drop-target {
38
+ background: rgba(0, 0, 0, 0.8);
39
+ }
40
+
41
+ .drop-target .title {
42
+ font-size: 24px;
43
+ font-weight: bold;
44
+ margin-bottom: 30px;
45
+ }
46
+
47
+ .drop-target .processing-error {
48
+ font-size: 24px;
49
+ color: #e74c3c;
50
+ font-weight: bold;
51
+ text-align: center;
52
+ margin: 30px;
53
+ }
54
+
55
+ .drop-target input {
56
+ margin-top: 50px;
57
+ }
58
+
59
+ .drop-target button {
60
+ color: rgb(255, 255, 255);
61
+ background-color: rgb(0, 122, 204);
62
+ padding: 8px 12px;
63
+ border: none;
64
+ margin: 30px 0;
65
+ cursor: pointer;
66
+ }
67
+
68
+ .progress {
69
+ flex: none;
70
+ width: 100%;
71
+ height: 3px;
72
+ margin-top: -3px;
73
+ z-index: 10;
74
+ }
75
+
76
+ .inner-progress {
77
+ background-color: var(--vscode-progressBar-background);
78
+ height: 100%;
79
+ }
80
+
81
+ .header {
82
+ display: flex;
83
+ background-color: #000;
84
+ flex: none;
85
+ flex-basis: 48px;
86
+ line-height: 48px;
87
+ font-size: 16px;
88
+ color: #cccccc;
89
+ }
90
+
91
+ .workbench-loader {
92
+ contain: size;
93
+ }
94
+
95
+ .workbench-loader .header .toolbar-button {
96
+ margin: 12px;
97
+ padding: 8px 4px;
98
+ }
99
+
100
+ .workbench-loader .logo {
101
+ margin-left: 16px;
102
+ display: flex;
103
+ align-items: center;
104
+ }
105
+
106
+ .workbench-loader .logo img {
107
+ height: 32px;
108
+ width: 32px;
109
+ pointer-events: none;
110
+ flex: none;
111
+ }
112
+
113
+ .workbench-loader .product {
114
+ font-weight: 600;
115
+ margin-left: 16px;
116
+ flex: none;
117
+ }
118
+
119
+ .workbench-loader .header .title {
120
+ margin-left: 16px;
121
+ overflow: hidden;
122
+ text-overflow: ellipsis;
123
+ text-wrap: nowrap;
124
+ }
@@ -1,5 +1,5 @@
1
- import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, a as applyTheme, c as createRoot } from "./assets/inspectorTab-BPzVEZSf.js";
2
- import { W as Workbench } from "./assets/workbench-DhqI6jeL.js";
1
+ import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, a as applyTheme, c as createRoot } from "./assets/inspectorTab-CHcHvp_a.js";
2
+ import { W as Workbench } from "./assets/workbench-D9CTkv-4.js";
3
3
  import { T as TestServerConnection, W as WebSocketTestServerTransport } from "./assets/testServerConnection-D-tXL3sj.js";
4
4
  const WorkbenchLoader = () => {
5
5
  const [isServer, setIsServer] = reactExports.useState(false);
@@ -98,6 +98,7 @@ const WorkbenchLoader = () => {
98
98
  params.set("trace", url);
99
99
  if (uploadedTraceNames.length)
100
100
  params.set("traceFileName", uploadedTraceNames[i]);
101
+ params.set("limit", String(traceURLs.length));
101
102
  const response = await fetch(`contexts?${params.toString()}`);
102
103
  if (!response.ok) {
103
104
  if (!isServer)
@@ -193,4 +194,4 @@ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.
193
194
  }
194
195
  createRoot(document.querySelector("#root")).render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}));
195
196
  })();
196
- //# sourceMappingURL=index.Dz3icWJV.js.map
197
+ //# sourceMappingURL=index.Bugo2TbS.js.map
@@ -1,5 +1,5 @@
1
- import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, a as applyTheme, c as createRoot } from "./assets/inspectorTab-DpvLVMq5.js";
2
- import { W as Workbench } from "./assets/workbench-BcgGQnKb.js";
1
+ import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, a as applyTheme, c as createRoot } from "./assets/inspectorTab-B4ynvyY9.js";
2
+ import { W as Workbench } from "./assets/workbench-CROk6Fcc.js";
3
3
  import { T as TestServerConnection, W as WebSocketTestServerTransport } from "./assets/testServerConnection-D-tXL3sj.js";
4
4
  const WorkbenchLoader = () => {
5
5
  const [isServer, setIsServer] = reactExports.useState(false);
@@ -98,6 +98,7 @@ const WorkbenchLoader = () => {
98
98
  params.set("trace", url);
99
99
  if (uploadedTraceNames.length)
100
100
  params.set("traceFileName", uploadedTraceNames[i]);
101
+ params.set("limit", String(traceURLs.length));
101
102
  const response = await fetch(`contexts?${params.toString()}`);
102
103
  if (!response.ok) {
103
104
  if (!isServer)
@@ -193,4 +194,4 @@ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.
193
194
  }
194
195
  createRoot(document.querySelector("#root")).render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}));
195
196
  })();
196
- //# sourceMappingURL=index.PqcsvBxQ.js.map
197
+ //# sourceMappingURL=index.BzvnAP7t.js.map
@@ -1,5 +1,5 @@
1
1
  import { M as MultiTraceModel, r as reactExports, j as jsxRuntimeExports, T as ToolbarButton, t as toggleTheme, a as applyTheme, c as createRoot } from "./assets/inspectorTab-DOc4D3cX.js";
2
- import { W as Workbench } from "./assets/workbench-I4s6sWjN.js";
2
+ import { W as Workbench } from "./assets/workbench-DNolpp3y.js";
3
3
  import { T as TestServerConnection, W as WebSocketTestServerTransport } from "./assets/testServerConnection-D-tXL3sj.js";
4
4
  const WorkbenchLoader = () => {
5
5
  const [isServer, setIsServer] = reactExports.useState(false);
@@ -194,4 +194,4 @@ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.
194
194
  }
195
195
  createRoot(document.querySelector("#root")).render(/* @__PURE__ */ jsxRuntimeExports.jsx(WorkbenchLoader, {}));
196
196
  })();
197
- //# sourceMappingURL=index.CLxsp2W_.js.map
197
+ //# sourceMappingURL=index.CM_h9lHr.js.map