@haibun/web-playwright 1.58.1 → 1.60.0

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 (181) hide show
  1. package/build/cycles.d.ts +4 -0
  2. package/build/cycles.d.ts.map +1 -0
  3. package/build/cycles.js +83 -0
  4. package/build/cycles.js.map +1 -0
  5. package/build/interactionSteps.d.ts +221 -0
  6. package/build/interactionSteps.d.ts.map +1 -0
  7. package/build/interactionSteps.js +515 -0
  8. package/build/interactionSteps.js.map +1 -0
  9. package/build/monitor/LogEntry.d.ts +4 -0
  10. package/build/monitor/LogEntry.d.ts.map +1 -0
  11. package/build/monitor/LogEntry.js +4 -0
  12. package/build/monitor/LogEntry.js.map +1 -0
  13. package/build/monitor/MonitorHandler.d.ts.map +1 -1
  14. package/build/monitor/MonitorHandler.js +25 -51
  15. package/build/monitor/MonitorHandler.js.map +1 -1
  16. package/build/monitor/artifactDisplayBase.d.ts +2 -0
  17. package/build/monitor/artifactDisplayBase.d.ts.map +1 -0
  18. package/build/monitor/artifactDisplayBase.js +2 -0
  19. package/build/monitor/artifactDisplayBase.js.map +1 -0
  20. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.d.ts +9 -0
  21. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.d.ts.map +1 -0
  22. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.js +31 -0
  23. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.js.map +1 -0
  24. package/build/monitor/artifactDisplays/ImageArtifactDisplay.d.ts +9 -0
  25. package/build/monitor/artifactDisplays/ImageArtifactDisplay.d.ts.map +1 -0
  26. package/build/monitor/artifactDisplays/ImageArtifactDisplay.js +17 -0
  27. package/build/monitor/artifactDisplays/ImageArtifactDisplay.js.map +1 -0
  28. package/build/monitor/artifactDisplays/JsonArtifactDisplay.d.ts +9 -0
  29. package/build/monitor/artifactDisplays/JsonArtifactDisplay.d.ts.map +1 -0
  30. package/build/monitor/artifactDisplays/JsonArtifactDisplay.js +18 -0
  31. package/build/monitor/artifactDisplays/JsonArtifactDisplay.js.map +1 -0
  32. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.d.ts +14 -0
  33. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.d.ts.map +1 -0
  34. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.js +69 -0
  35. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.js.map +1 -0
  36. package/build/monitor/artifactDisplays/MermaidDiagram.d.ts +22 -0
  37. package/build/monitor/artifactDisplays/MermaidDiagram.d.ts.map +1 -0
  38. package/build/monitor/artifactDisplays/MermaidDiagram.js +199 -0
  39. package/build/monitor/artifactDisplays/MermaidDiagram.js.map +1 -0
  40. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.d.ts +9 -0
  41. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.d.ts.map +1 -0
  42. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.js +38 -0
  43. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.js.map +1 -0
  44. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.d.ts +32 -0
  45. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.d.ts.map +1 -0
  46. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.js +258 -0
  47. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.js.map +1 -0
  48. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.d.ts +9 -0
  49. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.d.ts.map +1 -0
  50. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.js +19 -0
  51. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.js.map +1 -0
  52. package/build/monitor/artifactDisplays/VideoArtifactDisplay.d.ts +9 -0
  53. package/build/monitor/artifactDisplays/VideoArtifactDisplay.d.ts.map +1 -0
  54. package/build/monitor/artifactDisplays/VideoArtifactDisplay.js +21 -0
  55. package/build/monitor/artifactDisplays/VideoArtifactDisplay.js.map +1 -0
  56. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.d.ts +9 -0
  57. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.d.ts.map +1 -0
  58. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.js +17 -0
  59. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.js.map +1 -0
  60. package/build/monitor/artifactDisplays/artifactDisplayBase.d.ts +20 -0
  61. package/build/monitor/artifactDisplays/artifactDisplayBase.d.ts.map +1 -0
  62. package/build/monitor/artifactDisplays/artifactDisplayBase.js +40 -0
  63. package/build/monitor/artifactDisplays/artifactDisplayBase.js.map +1 -0
  64. package/build/monitor/artifactDisplays/htmlArtifactDisplay.d.ts +9 -0
  65. package/build/monitor/artifactDisplays/htmlArtifactDisplay.d.ts.map +1 -0
  66. package/build/monitor/artifactDisplays/htmlArtifactDisplay.js +31 -0
  67. package/build/monitor/artifactDisplays/htmlArtifactDisplay.js.map +1 -0
  68. package/build/monitor/artifactDisplays/imageArtifactDisplay.d.ts +9 -0
  69. package/build/monitor/artifactDisplays/imageArtifactDisplay.d.ts.map +1 -0
  70. package/build/monitor/artifactDisplays/imageArtifactDisplay.js +17 -0
  71. package/build/monitor/artifactDisplays/imageArtifactDisplay.js.map +1 -0
  72. package/build/monitor/artifactDisplays/jsonArtifactDisplay.d.ts +9 -0
  73. package/build/monitor/artifactDisplays/jsonArtifactDisplay.d.ts.map +1 -0
  74. package/build/monitor/artifactDisplays/jsonArtifactDisplay.js +18 -0
  75. package/build/monitor/artifactDisplays/jsonArtifactDisplay.js.map +1 -0
  76. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.d.ts +14 -0
  77. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.d.ts.map +1 -0
  78. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.js +72 -0
  79. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.js.map +1 -0
  80. package/build/monitor/artifactDisplays/mermaidDiagram.d.ts +22 -0
  81. package/build/monitor/artifactDisplays/mermaidDiagram.d.ts.map +1 -0
  82. package/build/monitor/artifactDisplays/mermaidDiagram.js +199 -0
  83. package/build/monitor/artifactDisplays/mermaidDiagram.js.map +1 -0
  84. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.d.ts +9 -0
  85. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.d.ts.map +1 -0
  86. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.js +36 -0
  87. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.js.map +1 -0
  88. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.d.ts +32 -0
  89. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.d.ts.map +1 -0
  90. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.js +299 -0
  91. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.js.map +1 -0
  92. package/build/monitor/artifactDisplays/speechArtifactDisplay.d.ts +9 -0
  93. package/build/monitor/artifactDisplays/speechArtifactDisplay.d.ts.map +1 -0
  94. package/build/monitor/artifactDisplays/speechArtifactDisplay.js +38 -0
  95. package/build/monitor/artifactDisplays/speechArtifactDisplay.js.map +1 -0
  96. package/build/monitor/artifactDisplays/videoArtifactDisplay.d.ts +9 -0
  97. package/build/monitor/artifactDisplays/videoArtifactDisplay.d.ts.map +1 -0
  98. package/build/monitor/artifactDisplays/videoArtifactDisplay.js +22 -0
  99. package/build/monitor/artifactDisplays/videoArtifactDisplay.js.map +1 -0
  100. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.d.ts +9 -0
  101. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.d.ts.map +1 -0
  102. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.js +30 -0
  103. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.js.map +1 -0
  104. package/build/monitor/graph/feature-bases.d.ts +5 -0
  105. package/build/monitor/graph/feature-bases.d.ts.map +1 -0
  106. package/build/monitor/graph/feature-bases.js +36 -0
  107. package/build/monitor/graph/feature-bases.js.map +1 -0
  108. package/build/monitor/graph/generateMermaidGraph.d.ts +4 -0
  109. package/build/monitor/graph/generateMermaidGraph.d.ts.map +1 -0
  110. package/build/monitor/graph/generateMermaidGraph.js +142 -0
  111. package/build/monitor/graph/generateMermaidGraph.js.map +1 -0
  112. package/build/monitor/graph/graphUtils.d.ts +3 -0
  113. package/build/monitor/graph/graphUtils.d.ts.map +1 -0
  114. package/build/monitor/graph/graphUtils.js +16 -0
  115. package/build/monitor/graph/graphUtils.js.map +1 -0
  116. package/build/monitor/graph/mermaidGraphLinks.d.ts +3 -0
  117. package/build/monitor/graph/mermaidGraphLinks.d.ts.map +1 -0
  118. package/build/monitor/graph/mermaidGraphLinks.js +31 -0
  119. package/build/monitor/graph/mermaidGraphLinks.js.map +1 -0
  120. package/build/monitor/htmlArtifactDisplay.d.ts +2 -0
  121. package/build/monitor/htmlArtifactDisplay.d.ts.map +1 -0
  122. package/build/monitor/htmlArtifactDisplay.js +2 -0
  123. package/build/monitor/htmlArtifactDisplay.js.map +1 -0
  124. package/build/monitor/imageArtifactDisplay.d.ts +2 -0
  125. package/build/monitor/imageArtifactDisplay.d.ts.map +1 -0
  126. package/build/monitor/imageArtifactDisplay.js +2 -0
  127. package/build/monitor/imageArtifactDisplay.js.map +1 -0
  128. package/build/monitor/jsonArtifactDisplay.d.ts +2 -0
  129. package/build/monitor/jsonArtifactDisplay.d.ts.map +1 -0
  130. package/build/monitor/jsonArtifactDisplay.js +2 -0
  131. package/build/monitor/jsonArtifactDisplay.js.map +1 -0
  132. package/build/monitor/jsonArtifactHTTPTrace.d.ts +2 -0
  133. package/build/monitor/jsonArtifactHTTPTrace.d.ts.map +1 -0
  134. package/build/monitor/jsonArtifactHTTPTrace.js +2 -0
  135. package/build/monitor/jsonArtifactHTTPTrace.js.map +1 -0
  136. package/build/monitor/messages.d.ts +9 -21
  137. package/build/monitor/messages.d.ts.map +1 -1
  138. package/build/monitor/messages.js +83 -217
  139. package/build/monitor/messages.js.map +1 -1
  140. package/build/monitor/monitor.d.ts +9 -4
  141. package/build/monitor/monitor.d.ts.map +1 -1
  142. package/build/monitor/monitor.js +8 -18
  143. package/build/monitor/monitor.js.map +1 -1
  144. package/build/monitor/resolvedFeaturesArtifactDisplay.d.ts +2 -0
  145. package/build/monitor/resolvedFeaturesArtifactDisplay.d.ts.map +1 -0
  146. package/build/monitor/resolvedFeaturesArtifactDisplay.js +2 -0
  147. package/build/monitor/resolvedFeaturesArtifactDisplay.js.map +1 -0
  148. package/build/monitor/sequenceDiagramGenerator.d.ts +32 -0
  149. package/build/monitor/sequenceDiagramGenerator.d.ts.map +1 -0
  150. package/build/monitor/sequenceDiagramGenerator.js +299 -0
  151. package/build/monitor/sequenceDiagramGenerator.js.map +1 -0
  152. package/build/monitor/speechArtifactDisplay.d.ts +2 -0
  153. package/build/monitor/speechArtifactDisplay.d.ts.map +1 -0
  154. package/build/monitor/speechArtifactDisplay.js +2 -0
  155. package/build/monitor/speechArtifactDisplay.js.map +1 -0
  156. package/build/monitor/test-utils.d.ts +9 -0
  157. package/build/monitor/test-utils.d.ts.map +1 -0
  158. package/build/monitor/test-utils.js +70 -0
  159. package/build/monitor/test-utils.js.map +1 -0
  160. package/build/monitor/videoArtifactDisplay.d.ts +2 -0
  161. package/build/monitor/videoArtifactDisplay.d.ts.map +1 -0
  162. package/build/monitor/videoArtifactDisplay.js +2 -0
  163. package/build/monitor/videoArtifactDisplay.js.map +1 -0
  164. package/build/monitor/videoStartArtifactDisplay.d.ts +2 -0
  165. package/build/monitor/videoStartArtifactDisplay.d.ts.map +1 -0
  166. package/build/monitor/videoStartArtifactDisplay.js +2 -0
  167. package/build/monitor/videoStartArtifactDisplay.js.map +1 -0
  168. package/build/web-playwright.d.ts +78 -77
  169. package/build/web-playwright.d.ts.map +1 -1
  170. package/build/web-playwright.js +12 -571
  171. package/build/web-playwright.js.map +1 -1
  172. package/package.json +9 -5
  173. package/web/monitor.html +261 -260
  174. package/build/monitor/monitorHandler.d.ts +0 -16
  175. package/build/monitor/monitorHandler.d.ts.map +0 -1
  176. package/build/monitor/monitorHandler.js +0 -108
  177. package/build/monitor/monitorHandler.js.map +0 -1
  178. package/build/monitor/vite.config.d.ts +0 -4
  179. package/build/monitor/vite.config.d.ts.map +0 -1
  180. package/build/monitor/vite.config.js +0 -91
  181. package/build/monitor/vite.config.js.map +0 -1
@@ -29,55 +29,26 @@ export class MonitorHandler {
29
29
  await this.waitForMonitorPage();
30
30
  await this.monitorPage.goto(pathToFileURL(monitorLocation).toString(), { waitUntil: 'networkidle' });
31
31
  await this.inMonitor((monitorLoc) => {
32
- document.body.dataset.haibunRuntime = 'true';
33
32
  const base = document.createElement('base');
34
33
  base.href = `${monitorLoc}/`;
35
34
  document.head.appendChild(base);
36
35
  }, resolve(this.monitorLoc));
37
36
  this.subscriber = {
38
37
  out: (level, message, messageContext) => {
39
- capturedMessages.push({ level, message, messageContext });
40
- if (!this.monitorPage || this.monitorPage.isClosed()) {
41
- console.error("Monitor page closed, cannot send logs.");
42
- return;
43
- }
44
- try {
45
- // this is async but we don't need to wait for it
46
- void this.inMonitor((entry) => {
47
- // This code runs in the browser context (monitor.html)
48
- if (window.receiveLogData) {
49
- // Parse the context string back into an object inside the browser.
50
- const contextObject = entry.messageContextString ? JSON.parse(entry.messageContextString) : undefined;
51
- window.receiveLogData({
52
- level: entry.level,
53
- message: entry.message,
54
- messageContext: contextObject,
55
- timestamp: entry.timestamp
56
- });
57
- }
58
- else {
59
- throw Error('window.receiveLogData not defined in monitor page');
60
- }
61
- }, {
62
- // Data being sent from Node.js to the browser
63
- level,
64
- message,
65
- messageContextString: messageContext ? JSON.stringify(messageContext) : undefined,
66
- timestamp: Date.now()
67
- });
68
- }
69
- catch (e) {
70
- // Specific check for the serialization error
71
- if (e instanceof Error && e.message.includes('Unexpected value')) {
72
- console.error('Error sending log to monitor via evaluate: Serialization failed. Check the structure of messageContext.', e.message);
73
- console.error('Problematic messageContext object before stringify:', messageContext);
74
- }
75
- else if (e instanceof Error && !e.message.includes('Target page, context or browser has been closed')) {
76
- console.error('Error sending log to monitor via evaluate:', e.message);
77
- }
78
- throw (e);
79
- }
80
- },
38
+ const logEntry = {
39
+ level,
40
+ message,
41
+ messageContext,
42
+ timestamp: Date.now()
43
+ };
44
+ capturedMessages.push(logEntry);
45
+ // this is async but we don't need to wait for it
46
+ void this.inMonitor((entry) => {
47
+ // This code runs in the browser context (monitor.html)
48
+ window.receiveLogData(JSON.parse(entry));
49
+ // following is passed to the context
50
+ }, JSON.stringify(logEntry));
51
+ }
81
52
  };
82
53
  }
83
54
  async writeMonitor() {
@@ -86,20 +57,23 @@ export class MonitorHandler {
86
57
  return;
87
58
  }
88
59
  await sleep(500); // Allow final rendering
89
- await this.inMonitor(() => {
90
- delete document.body.dataset.haibunRuntime;
91
- });
92
- const content = await this.monitorPage.content();
60
+ const content = (await this.monitorPage.content()) + `
61
+ <script>
62
+ window.haibunStaticPage = true;
63
+ window.haibunCapturedMessages = ${JSON.stringify(capturedMessages, null, 2)};
64
+ document.getElementById('haibun-log-display-area').innerHTML = '';
65
+ </script>
66
+ `;
93
67
  await this.inMonitor(() => {
94
68
  const base = document.querySelector('base');
95
69
  if (base) {
96
70
  base.parentNode?.removeChild(base);
97
71
  }
98
72
  });
99
- const outHtml = join(this.monitorLoc, 'monitor.html');
100
- const monitorPath = actualURI(outHtml);
101
- this.world.logger.info(`Wrote monitor HTML to ${monitorPath}`);
102
- await this.storage.writeFile(outHtml, content, EMediaTypes.html);
73
+ const outHtmlFile = join(this.monitorLoc, 'monitor.html');
74
+ const monitorPath = actualURI(outHtmlFile);
75
+ this.world.logger.info(`Writing monitor HTML to ${monitorPath}`);
76
+ await this.storage.writeFile(outHtmlFile, content, EMediaTypes.html);
103
77
  const outMessages = join(this.monitorLoc, 'monitor.json');
104
78
  await this.storage.writeFile(outMessages, JSON.stringify(capturedMessages, null, 2), EMediaTypes.html);
105
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MonitorHandler.js","sourceRoot":"","sources":["../../src/monitor/MonitorHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonitorHandler.js","sourceRoot":"","sources":["../../src/monitor/MonitorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=artifactDisplayBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactDisplayBase.d.ts","sourceRoot":"","sources":["../../src/monitor/artifactDisplayBase.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=artifactDisplayBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifactDisplayBase.js","sourceRoot":"","sources":["../../src/monitor/artifactDisplayBase.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { TArtifactHTML } from "@haibun/core/build/lib/interfaces/logger.js";
2
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
3
+ export declare class HtmlArtifactDisplay extends ArtifactDisplay {
4
+ protected artifact: TArtifactHTML;
5
+ readonly placementTarget = "details";
6
+ constructor(artifact: TArtifactHTML);
7
+ render(container: HTMLElement): void;
8
+ }
9
+ //# sourceMappingURL=HtmlArtifactDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlArtifactDisplay.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/HtmlArtifactDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,qBAAa,mBAAoB,SAAQ,eAAe;IAE3C,SAAS,CAAC,QAAQ,EAAE,aAAa;IAD7C,QAAQ,CAAC,eAAe,aAAa;gBACf,QAAQ,EAAE,aAAa;IAGtC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAoB3C"}
@@ -0,0 +1,31 @@
1
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
2
+ export class HtmlArtifactDisplay extends ArtifactDisplay {
3
+ artifact;
4
+ placementTarget = 'details';
5
+ constructor(artifact) {
6
+ super(artifact);
7
+ this.artifact = artifact;
8
+ }
9
+ render(container) {
10
+ container.innerHTML = ''; // Clear placeholder
11
+ const iframe = document.createElement('iframe');
12
+ iframe.style.border = 'none';
13
+ iframe.style.width = '100%';
14
+ iframe.style.height = '80vh';
15
+ // TArtifactHTML is a union, check for the 'html' property for direct content
16
+ if ('html' in this.artifact && typeof this.artifact.html === 'string') {
17
+ iframe.srcdoc = this.artifact.html;
18
+ }
19
+ else if ('path' in this.artifact && typeof this.artifact.path === 'string') {
20
+ // If it has a path, this display class isn't equipped to load it.
21
+ // Log a warning and show an error in the iframe.
22
+ console.warn(`HtmlArtifactDisplay received artifact with path: ${this.artifact.path}. This display expects direct HTML content.`);
23
+ iframe.srcdoc = '<p class="haibun-artifact-error">Error: Artifact is a path, but direct HTML content was expected.</p>';
24
+ }
25
+ else {
26
+ iframe.srcdoc = '<p class="haibun-artifact-error">Error: HTML content not available or in an unexpected format.</p>';
27
+ }
28
+ container.appendChild(iframe);
29
+ }
30
+ }
31
+ //# sourceMappingURL=HtmlArtifactDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlArtifactDisplay.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/HtmlArtifactDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAEjC;IADb,eAAe,GAAG,SAAS,CAAC;IACrC,YAAsB,QAAuB;QAC5C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADK,aAAQ,GAAR,QAAQ,CAAe;IAE7C,CAAC;IACM,MAAM,CAAC,SAAsB;QACnC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,oBAAoB;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAE7B,6EAA6E;QAC7E,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC,CAAC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9E,kEAAkE;YAClE,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,oDAAoD,IAAI,CAAC,QAAQ,CAAC,IAAI,6CAA6C,CAAC,CAAC;YACzH,MAAM,CAAC,MAAM,GAAG,uGAAuG,CAAC;QAClI,CAAC;aAAM,CAAC;YACE,MAAM,CAAC,MAAM,GAAG,oGAAoG,CAAC;QACzH,CAAC;QACP,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACD"}
@@ -0,0 +1,9 @@
1
+ import { TArtifactImage } from '@haibun/core/build/lib/interfaces/logger.js';
2
+ import { ArtifactDisplay } from './artifactDisplayBase.js';
3
+ export declare class ImageArtifactDisplay extends ArtifactDisplay {
4
+ protected artifact: TArtifactImage;
5
+ readonly placementTarget = "details";
6
+ constructor(artifact: TArtifactImage);
7
+ render(container: HTMLElement): void;
8
+ }
9
+ //# sourceMappingURL=ImageArtifactDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageArtifactDisplay.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/ImageArtifactDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,qBAAa,oBAAqB,SAAQ,eAAe;IAEzC,SAAS,CAAC,QAAQ,EAAE,cAAc;IAD9C,QAAQ,CAAC,eAAe,aAAa;gBACf,QAAQ,EAAE,cAAc;IAIvC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAM9C"}
@@ -0,0 +1,17 @@
1
+ import { ArtifactDisplay } from './artifactDisplayBase.js';
2
+ export class ImageArtifactDisplay extends ArtifactDisplay {
3
+ artifact;
4
+ placementTarget = 'details'; // This artifact is always placed in details
5
+ constructor(artifact) {
6
+ super(artifact); // type is 'image' by default from TArtifactImage
7
+ this.artifact = artifact;
8
+ // Element creation is deferred to render method
9
+ }
10
+ render(container) {
11
+ const imgElement = document.createElement('img');
12
+ imgElement.alt = 'Screen capture artifact'; // Default alt text
13
+ imgElement.src = this.artifact.path;
14
+ container.replaceChildren(imgElement); // Clear placeholder and add image
15
+ }
16
+ }
17
+ //# sourceMappingURL=ImageArtifactDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageArtifactDisplay.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/ImageArtifactDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAE/B;IADb,eAAe,GAAG,SAAS,CAAC,CAAC,4CAA4C;IAClF,YAAsB,QAAwB;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iDAAiD;QADhD,aAAQ,GAAR,QAAQ,CAAgB;QAE1C,gDAAgD;IACpD,CAAC;IACM,MAAM,CAAC,SAAsB;QAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC,mBAAmB;QAC/D,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,kCAAkC;IAC7E,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ import { TArtifactJSON } from "@haibun/core/build/lib/interfaces/logger.js";
2
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
3
+ export declare class JsonArtifactDisplay extends ArtifactDisplay {
4
+ protected artifact: TArtifactJSON;
5
+ readonly placementTarget = "details";
6
+ constructor(artifact: TArtifactJSON);
7
+ render(container: HTMLElement): void;
8
+ }
9
+ //# sourceMappingURL=JsonArtifactDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonArtifactDisplay.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/JsonArtifactDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,qBAAa,mBAAoB,SAAQ,eAAe;IAExC,SAAS,CAAC,QAAQ,EAAE,aAAa;IAD7C,QAAQ,CAAC,eAAe,aAAa;gBACf,QAAQ,EAAE,aAAa;IAItC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAM9C"}
@@ -0,0 +1,18 @@
1
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
2
+ import { disclosureJson } from "../disclosureJson.js";
3
+ export class JsonArtifactDisplay extends ArtifactDisplay {
4
+ artifact;
5
+ placementTarget = 'details'; // This artifact is always placed in details
6
+ constructor(artifact) {
7
+ super(artifact); // type is 'json' by default from TArtifactJSON
8
+ this.artifact = artifact;
9
+ // Element creation is deferred to render method
10
+ }
11
+ render(container) {
12
+ const preElement = document.createElement('pre');
13
+ preElement.classList.add('haibun-message-details-json');
14
+ preElement.appendChild(disclosureJson(this.artifact.json || {}));
15
+ container.replaceChildren(preElement); // Clear placeholder and add json content
16
+ }
17
+ }
18
+ //# sourceMappingURL=JsonArtifactDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonArtifactDisplay.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/JsonArtifactDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAE9B;IADb,eAAe,GAAG,SAAS,CAAC,CAAC,4CAA4C;IAClF,YAAsB,QAAuB;QACzC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,+CAA+C;QAD9C,aAAQ,GAAR,QAAQ,CAAe;QAEzC,gDAAgD;IACpD,CAAC;IACM,MAAM,CAAC,SAAsB;QAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACxD,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,yCAAyC;IACpF,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ import { TArtifactHTTPTrace } from '@haibun/core/build/lib/interfaces/logger.js';
2
+ import { ArtifactDisplay } from './artifactDisplayBase.js';
3
+ import { SequenceDiagramGenerator } from './SequenceDiagramGenerator.js';
4
+ export declare class JsonArtifactHTTPTrace extends ArtifactDisplay {
5
+ protected artifact: TArtifactHTTPTrace;
6
+ readonly placementTarget: 'details' | 'haibun-sequence-diagram';
7
+ private static generatorInstance;
8
+ private static sequenceDiagramParentElement;
9
+ constructor(artifact: TArtifactHTTPTrace);
10
+ get diagramGenerator(): SequenceDiagramGenerator | null;
11
+ deriveLabel(): string;
12
+ render(container: HTMLElement): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=JsonArtifactHTTPTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonArtifactHTTPTrace.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/JsonArtifactHTTPTrace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,qBAAa,qBAAsB,SAAQ,eAAe;IAK7C,SAAS,CAAC,QAAQ,EAAE,kBAAkB;IAJlD,QAAQ,CAAC,eAAe,EAAE,SAAS,GAAG,yBAAyB,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAyC;IACzE,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAA4B;gBAEjD,QAAQ,EAAE,kBAAkB;IAkBlD,IAAW,gBAAgB,IAAI,wBAAwB,GAAG,IAAI,CAE7D;IAEM,WAAW,IAAI,MAAM;IAIf,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAoC1D"}
@@ -0,0 +1,69 @@
1
+ import { ArtifactDisplay } from './artifactDisplayBase.js';
2
+ import { disclosureJson } from '../disclosureJson.js';
3
+ import { SequenceDiagramGenerator } from './SequenceDiagramGenerator.js';
4
+ export class JsonArtifactHTTPTrace extends ArtifactDisplay {
5
+ artifact;
6
+ placementTarget;
7
+ static generatorInstance = null;
8
+ static sequenceDiagramParentElement = null;
9
+ constructor(artifact) {
10
+ super(artifact);
11
+ this.artifact = artifact;
12
+ this.placementTarget = document.querySelector('#sequence-diagram') ? 'haibun-sequence-diagram' : 'details';
13
+ if (!JsonArtifactHTTPTrace.sequenceDiagramParentElement) {
14
+ JsonArtifactHTTPTrace.sequenceDiagramParentElement = document.getElementById('sequence-diagram');
15
+ }
16
+ if (this.placementTarget === 'haibun-sequence-diagram' && JsonArtifactHTTPTrace.sequenceDiagramParentElement && !JsonArtifactHTTPTrace.generatorInstance) {
17
+ try {
18
+ // Use a fixed ID for the generator, as there's one sequence diagram display area
19
+ JsonArtifactHTTPTrace.generatorInstance = new SequenceDiagramGenerator('main-sequence', JsonArtifactHTTPTrace.sequenceDiagramParentElement);
20
+ }
21
+ catch (error) {
22
+ console.error("Failed to initialize SequenceDiagramGenerator:", error);
23
+ }
24
+ }
25
+ }
26
+ get diagramGenerator() {
27
+ return JsonArtifactHTTPTrace.generatorInstance;
28
+ }
29
+ deriveLabel() {
30
+ return '⇄ Trace';
31
+ }
32
+ async render(container) {
33
+ container.innerHTML = '';
34
+ // Always append the JSON details for the current event to the container
35
+ const preElement = document.createElement('pre');
36
+ preElement.classList.add('haibun-message-details-json');
37
+ preElement.appendChild(disclosureJson(this.artifact.trace));
38
+ container.appendChild(preElement);
39
+ // Update sequence diagram if it's the target and visible
40
+ // The sequence diagram itself is a separate element in the DOM, not inside this container.
41
+ if (this.placementTarget === 'haibun-sequence-diagram' && this.diagramGenerator) {
42
+ if (this.artifact.httpEvent !== 'route') {
43
+ const seqDiagElement = document.getElementById('sequence-diagram');
44
+ // Check if the sequence diagram element is actually visible in the layout
45
+ if (seqDiagElement && seqDiagElement.offsetParent !== null) {
46
+ try {
47
+ await this.diagramGenerator.update();
48
+ }
49
+ catch (error) {
50
+ console.error("Error updating sequence diagram:", error);
51
+ // Optionally display an error within the trace container as well
52
+ const errorP = document.createElement('p');
53
+ errorP.className = 'haibun-artifact-error';
54
+ errorP.textContent = `Error updating sequence diagram: ${error.message}`;
55
+ container.appendChild(errorP);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ else if (!this.diagramGenerator) {
61
+ console.error("SequenceDiagramGenerator instance not available for JsonArtifactHTTPTrace");
62
+ const errorP = document.createElement('p');
63
+ errorP.className = 'haibun-artifact-error';
64
+ errorP.textContent = 'Sequence diagram generator not available.';
65
+ container.appendChild(errorP);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=JsonArtifactHTTPTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonArtifactHTTPTrace.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/JsonArtifactHTTPTrace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { TArtifactHTTPTrace, THTTPTraceContent } from '@haibun/core/build/lib/interfaces/logger.js';
2
+ export declare class SequenceDiagramGenerator {
3
+ private needsUpdate;
4
+ private diagramLines;
5
+ private pageNames;
6
+ private pageCounter;
7
+ private participantAdded;
8
+ private addParticipant;
9
+ processEvent(trace: THTTPTraceContent, httpEvent: TArtifactHTTPTrace['httpEvent'], filters?: {
10
+ request: {
11
+ method: string[];
12
+ accept: string[];
13
+ };
14
+ response: {
15
+ type: string[];
16
+ };
17
+ }): void;
18
+ getDiagram(): string;
19
+ update(): Promise<void>;
20
+ }
21
+ export declare function skipEvent(filters: any, httpEvent: any, serverName: any, { requestingPage, requestingURL, method, status, statusText, headers }: THTTPTraceContent): boolean;
22
+ //# sourceMappingURL=MermaidDiagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MermaidDiagram.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/MermaidDiagram.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AA0BpG,qBAAa,wBAAwB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,gBAAgB,CAA+B;IAGvD,OAAO,CAAC,cAAc;IAOf,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,OAAO;;;;;;;;KAAc,GAAG,IAAI;IAwF/G,UAAU,IAAI,MAAM;IAGd,MAAM;CAsCnB;AACD,wBAAgB,SAAS,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,UAAU,KAAA,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,iBAAiB,WAkClJ"}
@@ -0,0 +1,199 @@
1
+ import mermaid from 'mermaid';
2
+ import { shortenURI } from '@haibun/core/build/lib/util/index.js';
3
+ // Helper function for sanitization
4
+ const sanitizeMermaidContent = (message) => {
5
+ let sanitized = message.replace(/"/g, "'"); // Replace double quotes
6
+ // IMPORTANT: Escape semicolon FIRST to avoid breaking other entities
7
+ sanitized = sanitized.replace(/;/g, '#59;');
8
+ sanitized = sanitized.replace(/\(/g, '#40;');
9
+ sanitized = sanitized.replace(/\)/g, '#41;');
10
+ sanitized = sanitized.replace(/,/g, '#44;');
11
+ return sanitized;
12
+ };
13
+ const jsonFilters = {
14
+ request: {
15
+ method: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
16
+ accept: ['application/json'],
17
+ },
18
+ response: {
19
+ type: ['application/json'],
20
+ },
21
+ };
22
+ export class SequenceDiagramGenerator {
23
+ needsUpdate = false;
24
+ diagramLines = ['sequenceDiagram']; // Initialize with diagram type
25
+ pageNames = {};
26
+ pageCounter = 1;
27
+ participantAdded = {}; // Track added participants
28
+ // Add participant declaration if not already added
29
+ addParticipant(alias, name) {
30
+ if (!this.participantAdded[alias]) {
31
+ this.diagramLines.splice(1, 0, `participant ${alias} as ${name}`); // Insert after 'sequenceDiagram'
32
+ this.participantAdded[alias] = true;
33
+ }
34
+ }
35
+ processEvent(trace, httpEvent, filters = jsonFilters) {
36
+ this.needsUpdate = true; // Set flag immediately
37
+ const requestingPage = trace.requestingPage;
38
+ const requestingURL = trace.requestingURL;
39
+ const method = trace.method;
40
+ const status = trace.status;
41
+ const statusText = trace.statusText;
42
+ const headers = trace.headers;
43
+ // Use URL hostname as the server participant
44
+ let serverAlias = 'UnknownAlias'; // Default if URL is missing
45
+ let serverName = 'Unknown';
46
+ if (requestingURL) {
47
+ try {
48
+ const url = new URL(requestingURL);
49
+ serverName = url.hostname;
50
+ // Handle empty hostname (e.g., for about:blank)
51
+ if (serverName) {
52
+ serverAlias = serverName.replace(/[.-]/g, '');
53
+ if (!serverAlias) {
54
+ serverAlias = 'HostAlias'; // Fallback alias if replacement results in empty string
55
+ }
56
+ }
57
+ }
58
+ catch (e) {
59
+ serverAlias = 'InvalidURLAlias';
60
+ }
61
+ }
62
+ this.addParticipant(serverAlias, serverName);
63
+ if (skipEvent(filters, httpEvent, serverName, trace)) {
64
+ return;
65
+ }
66
+ if (requestingPage && requestingURL) {
67
+ let pageAlias = this.pageNames[requestingPage];
68
+ if (!pageAlias) {
69
+ let pageName = `Browser Page ${this.pageCounter}`;
70
+ let baseAlias = '';
71
+ try {
72
+ // Try to get hostname from the current URL for a better name
73
+ const url = new URL(requestingURL);
74
+ const hostname = url.hostname;
75
+ if (hostname && requestingURL !== 'about:blank') {
76
+ baseAlias = hostname.replace(/[.-]/g, '');
77
+ if (!baseAlias)
78
+ baseAlias = 'Host'; // Fallback if hostname becomes empty
79
+ pageName = `${hostname} ${this.pageCounter}`;
80
+ }
81
+ else {
82
+ // Fallback for about:blank or empty hostname
83
+ baseAlias = 'Page';
84
+ }
85
+ }
86
+ catch (e) {
87
+ // Fallback for invalid URL
88
+ baseAlias = 'Page';
89
+ }
90
+ // Ensure unique alias by appending counter
91
+ pageAlias = `${baseAlias}${this.pageCounter}`;
92
+ this.pageNames[requestingPage] = pageAlias;
93
+ this.addParticipant(pageAlias, pageName);
94
+ this.pageCounter++;
95
+ }
96
+ if (method) {
97
+ const message = sanitizeMermaidContent(`${method} ${shortenURI(requestingURL)}`);
98
+ this.diagramLines.push(`${pageAlias}->>${serverAlias}: ${message}`);
99
+ if (headers && headers.referer) {
100
+ const note = shortenURI(sanitizeMermaidContent(`Referer: ${headers.referer}`));
101
+ this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
102
+ }
103
+ if (headers && headers["accept"]) {
104
+ const note = sanitizeMermaidContent(`Accept: ${headers["accept"]}`);
105
+ this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
106
+ }
107
+ if (headers && headers["content-type"]) {
108
+ const note = sanitizeMermaidContent(`Content-type: ${headers['content-type']}`);
109
+ this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
110
+ }
111
+ }
112
+ if (status) {
113
+ // Sanitize response message
114
+ const message = sanitizeMermaidContent(`${status} ${statusText || ''}`);
115
+ this.diagramLines.push(`${serverAlias}-->>${pageAlias}: ${message}`);
116
+ }
117
+ }
118
+ // this.needsUpdate = true; // Moved to the beginning
119
+ }
120
+ getDiagram() {
121
+ return this.diagramLines.join("\n");
122
+ }
123
+ async update() {
124
+ // Only update the DOM and render if necessary
125
+ if (!this.needsUpdate) {
126
+ return;
127
+ }
128
+ const mermaidContainer = document.getElementById('sequence-diagram');
129
+ if (mermaidContainer) {
130
+ let diagramDefinition = ''; // Declare outside try
131
+ try {
132
+ diagramDefinition = this.getDiagram(); // Assign inside try
133
+ mermaid.initialize({ maxTextSize: 900000 });
134
+ // Ensure container is empty before rendering
135
+ mermaidContainer.innerHTML = '';
136
+ // Insert the diagram definition for Mermaid to process
137
+ const insert = `<pre class="mermaid">${diagramDefinition}</pre>`;
138
+ mermaidContainer.insertAdjacentHTML('beforeend', insert);
139
+ await mermaid.run({ nodes: [mermaidContainer.querySelector('.mermaid')] });
140
+ console.log("Mermaid diagram rendered.");
141
+ this.needsUpdate = false; // Reset flag only after successful render
142
+ }
143
+ catch (e) {
144
+ console.error("Failed Mermaid diagram definition:\n", diagramDefinition); // Log failing definition
145
+ console.error("Error rendering Mermaid diagram:", e);
146
+ const detailedError = (typeof e === 'object' && e !== null && 'str' in e) ? e.str : null;
147
+ const errorMessage = detailedError || (e instanceof Error ? e.message : String(e));
148
+ mermaidContainer.innerHTML = `<pre>Error rendering Mermaid diagram:\n\n${errorMessage}\n\n--- Diagram Definition ---\n${diagramDefinition}</pre>`;
149
+ // Optionally reset needsUpdate here too, or leave it true to retry later? Resetting for now.
150
+ this.needsUpdate = false;
151
+ }
152
+ }
153
+ else {
154
+ console.warn("Sequence diagram container not found.");
155
+ // Reset flag even if container not found to avoid repeated attempts
156
+ this.needsUpdate = false;
157
+ }
158
+ }
159
+ }
160
+ export function skipEvent(filters, httpEvent, serverName, { requestingPage, requestingURL, method, status, statusText, headers }) {
161
+ if (!serverName) {
162
+ // console.info('No server name found, skipping result.');
163
+ return true;
164
+ }
165
+ if (requestingURL === 'about:blank') {
166
+ // console.info('Requesting URL is about:blank, skipping result.');
167
+ return true;
168
+ }
169
+ if (httpEvent === 'request') {
170
+ if (headers && headers.accept) {
171
+ const acceptHeader = headers.accept;
172
+ if (!filters.request.accept.some(filterValue => acceptHeader.includes(filterValue))) {
173
+ // console.info('qx', acceptHeader, filters.request.accept);
174
+ return true;
175
+ }
176
+ else {
177
+ // console.info('qY', acceptHeader, filters.request.accept);
178
+ }
179
+ }
180
+ }
181
+ else if (httpEvent === 'response') {
182
+ if (headers && headers['content-type']) {
183
+ const contentTypeHeader = headers['content-type'];
184
+ if (!filters.response.type.some(filterValue => contentTypeHeader.includes(filterValue))) {
185
+ // console.info('px', contentTypeHeader);
186
+ return true;
187
+ }
188
+ else {
189
+ // console.info('pY', contentTypeHeader);
190
+ }
191
+ }
192
+ }
193
+ else {
194
+ console.warn(`Unknown HTTP event type: ${httpEvent}`);
195
+ return true;
196
+ }
197
+ return false;
198
+ }
199
+ //# sourceMappingURL=MermaidDiagram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MermaidDiagram.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/MermaidDiagram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { TArtifactResolvedFeatures } from "@haibun/core/build/lib/interfaces/logger.js";
2
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
3
+ export declare class ResolvedFeaturesArtifactDisplay extends ArtifactDisplay {
4
+ protected artifact: TArtifactResolvedFeatures;
5
+ readonly placementTarget = "details";
6
+ constructor(artifact: TArtifactResolvedFeatures);
7
+ render(container: HTMLElement): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=ResolvedFeaturesArtifactDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolvedFeaturesArtifactDisplay.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW3D,qBAAa,+BAAgC,SAAQ,eAAe;IAGvD,SAAS,CAAC,QAAQ,EAAE,yBAAyB;IAFzD,QAAQ,CAAC,eAAe,aAAa;gBAEf,QAAQ,EAAE,yBAAyB;IAI5C,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB1D"}