@haibun/web-playwright 1.59.0 → 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 +24 -46
  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 -216
  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
@@ -0,0 +1,72 @@
1
+ import { ArtifactDisplay } from './artifactDisplayBase.js';
2
+ import { disclosureJson } from '../disclosureJson.js';
3
+ import { SequenceDiagramGenerator } from './sequenceDiagramGenerator.js'; // Import the actual type
4
+ export class JsonArtifactHTTPTrace extends ArtifactDisplay {
5
+ artifact;
6
+ placementTarget;
7
+ static generatorInstance = null;
8
+ static sequenceDiagramParentElement = null;
9
+ constructor(artifact) {
10
+ super(artifact); // type is 'json/http/trace' by default
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
+ // Potentially fall back to 'details' if generator fails to init, or handle error appropriately
24
+ // For now, we'll let it proceed, and render will show an error if generator is null.
25
+ }
26
+ }
27
+ }
28
+ get diagramGenerator() {
29
+ return JsonArtifactHTTPTrace.generatorInstance;
30
+ }
31
+ deriveLabel() {
32
+ return '⇄ Trace';
33
+ }
34
+ async render(container) {
35
+ // Clear placeholder
36
+ container.innerHTML = '';
37
+ // Always append the JSON details for the current event to the container
38
+ const preElement = document.createElement('pre');
39
+ preElement.classList.add('haibun-message-details-json'); // Keep this class for styling JSON
40
+ preElement.appendChild(disclosureJson(this.artifact.trace));
41
+ container.appendChild(preElement);
42
+ // Update sequence diagram if it's the target and visible
43
+ // The sequence diagram itself is a separate element in the DOM, not inside this container.
44
+ if (this.placementTarget === 'haibun-sequence-diagram' && this.diagramGenerator) {
45
+ if (this.artifact.httpEvent !== 'route') {
46
+ const seqDiagElement = document.getElementById('sequence-diagram');
47
+ // Check if the sequence diagram element is actually visible in the layout
48
+ if (seqDiagElement && seqDiagElement.offsetParent !== null) {
49
+ try {
50
+ await this.diagramGenerator.update();
51
+ }
52
+ catch (error) {
53
+ console.error("Error updating sequence diagram:", error);
54
+ // Optionally display an error within the trace container as well
55
+ const errorP = document.createElement('p');
56
+ errorP.className = 'haibun-artifact-error';
57
+ errorP.textContent = `Error updating sequence diagram: ${error.message}`;
58
+ container.appendChild(errorP);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ else if (!this.diagramGenerator) {
64
+ console.error("SequenceDiagramGenerator instance not available for JsonArtifactHTTPTrace");
65
+ const errorP = document.createElement('p');
66
+ errorP.className = 'haibun-artifact-error';
67
+ errorP.textContent = 'Sequence diagram generator not available.';
68
+ container.appendChild(errorP);
69
+ }
70
+ }
71
+ }
72
+ //# 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;AAO3D,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;CA0B1D"}
@@ -0,0 +1,36 @@
1
+ import { generateMermaidGraph } from "../graph/generateMermaidGraph.js";
2
+ import { ArtifactDisplay } from "./artifactDisplayBase.js";
3
+ import mermaid from 'mermaid';
4
+ mermaid.initialize({ maxTextSize: 900000, maxEdges: 5000 });
5
+ let instanceCounter = 0;
6
+ export class ResolvedFeaturesArtifactDisplay extends ArtifactDisplay {
7
+ artifact;
8
+ placementTarget = 'details';
9
+ constructor(artifact) {
10
+ super(artifact);
11
+ this.artifact = artifact;
12
+ }
13
+ async render(container) {
14
+ // The artifact is already typed as TArtifactResolvedFeatures due to the constructor
15
+ if (!this.artifact.resolvedFeatures || this.artifact.resolvedFeatures.length === 0) {
16
+ container.innerHTML = '<p>No resolved features to display.</p>';
17
+ return;
18
+ }
19
+ const mermaidGraphLines = await generateMermaidGraph(this.artifact.resolvedFeatures);
20
+ const mermaidGraph = mermaidGraphLines.join('\n');
21
+ const graphSvgId = `mermaid-graph-svg-${instanceCounter++}-${Date.now()}`;
22
+ container.innerHTML = ''; // Clear placeholder
23
+ try {
24
+ const { svg, bindFunctions } = await mermaid.render(graphSvgId, mermaidGraph);
25
+ container.innerHTML = svg;
26
+ if (bindFunctions) {
27
+ bindFunctions(container);
28
+ }
29
+ }
30
+ catch (error) {
31
+ console.error('Error rendering Mermaid graph:', error);
32
+ container.innerHTML = `<p class="haibun-artifact-error">Error rendering graph: ${error.message}</p>`;
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=resolvedFeaturesArtifactDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvedFeaturesArtifactDisplay.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAE5D,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,MAAM,OAAO,+BAAgC,SAAQ,eAAe;IAG7C;IAFb,eAAe,GAAG,SAAS,CAAC;IAErC,YAAsB,QAAmC;QACxD,KAAK,CAAC,QAAQ,CAAC,CAAC;QADK,aAAQ,GAAR,QAAQ,CAA2B;IAEzD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAsB;QACzC,oFAAoF;QACpF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpF,SAAS,CAAC,SAAS,GAAG,yCAAyC,CAAC;YAChE,OAAO;QACR,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,qBAAqB,eAAe,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAE1E,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,oBAAoB;QAE9C,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC9E,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC;YAE1B,IAAI,aAAa,EAAE,CAAC;gBACnB,aAAa,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,SAAS,CAAC,SAAS,GAAG,2DAA4D,KAAe,CAAC,OAAO,MAAM,CAAC;QACjH,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,32 @@
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 mermaidContainerId;
9
+ private parentElement;
10
+ private currentDiagramString;
11
+ constructor(id: string, parentElement: HTMLElement);
12
+ private ensureMermaidContainer;
13
+ private addParticipant;
14
+ private resetDiagramState;
15
+ private buildDiagramString;
16
+ generateDiagramFromHistory(): void;
17
+ processSingleEvent(trace: THTTPTraceContent, httpEvent: TArtifactHTTPTrace['httpEvent'], filters?: {
18
+ request: {
19
+ method: string[];
20
+ accept: string[];
21
+ };
22
+ response: {
23
+ type: string[];
24
+ };
25
+ }): void;
26
+ getDiagram(): string;
27
+ getNeedsUpdate(): boolean;
28
+ setNeedsUpdate(value: boolean): void;
29
+ update(): Promise<void>;
30
+ }
31
+ export declare function skipEvent(filters: any, httpEvent: any, serverName: any, { requestingURL, headers }: THTTPTraceContent): boolean;
32
+ //# sourceMappingURL=sequenceDiagramGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequenceDiagramGenerator.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/sequenceDiagramGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAwBpG,qBAAa,wBAAwB;IACpC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,gBAAgB,CAA+B;IACpD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,oBAAoB,CAAM;gBAEtB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW;IAOlD,OAAO,CAAC,sBAAsB;IAWjC,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAQtB,OAAO,CAAC,kBAAkB;IAOtB,0BAA0B,IAAI,IAAI;IAsClC,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,OAAO;;;;;;;;KAAc,GAAG,IAAI;IAuGrH,UAAU,IAAI,MAAM;IAKjB,cAAc,IAAI,OAAO;IAKzB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIjC,MAAM;CA+CnB;AACD,wBAAgB,SAAS,CAAC,OAAO,KAAA,EAAE,SAAS,KAAA,EAAE,UAAU,KAAA,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,iBAAiB,WAkCtG"}