@haibun/web-playwright 1.73.0 → 1.74.1

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 (131) hide show
  1. package/build/cycles.d.ts.map +1 -1
  2. package/build/cycles.js +14 -0
  3. package/build/cycles.js.map +1 -1
  4. package/build/domains.d.ts +4 -0
  5. package/build/domains.d.ts.map +1 -0
  6. package/build/domains.js +13 -0
  7. package/build/domains.js.map +1 -0
  8. package/build/interactionSteps.d.ts +2 -187
  9. package/build/interactionSteps.d.ts.map +1 -1
  10. package/build/interactionSteps.js +101 -126
  11. package/build/interactionSteps.js.map +1 -1
  12. package/build/monitor/MonitorHandler.d.ts +2 -1
  13. package/build/monitor/MonitorHandler.d.ts.map +1 -1
  14. package/build/monitor/MonitorHandler.js +20 -15
  15. package/build/monitor/MonitorHandler.js.map +1 -1
  16. package/build/monitor/controls.d.ts.map +1 -1
  17. package/build/monitor/controls.js +6 -0
  18. package/build/monitor/controls.js.map +1 -1
  19. package/build/monitor/graph/generateMermaidGraph.d.ts.map +1 -1
  20. package/build/monitor/graph/generateMermaidGraph.js +29 -54
  21. package/build/monitor/graph/generateMermaidGraph.js.map +1 -1
  22. package/build/rest-playwright.d.ts +58 -18
  23. package/build/rest-playwright.d.ts.map +1 -1
  24. package/build/rest-playwright.js +40 -57
  25. package/build/rest-playwright.js.map +1 -1
  26. package/build/twin-page.d.ts +24 -0
  27. package/build/twin-page.d.ts.map +1 -0
  28. package/build/twin-page.js +158 -0
  29. package/build/twin-page.js.map +1 -0
  30. package/build/web-playwright.d.ts +75 -205
  31. package/build/web-playwright.d.ts.map +1 -1
  32. package/build/web-playwright.js +27 -14
  33. package/build/web-playwright.js.map +1 -1
  34. package/package.json +4 -3
  35. package/web/monitor.html +191 -190
  36. package/build/monitor/LogEntry.d.ts +0 -4
  37. package/build/monitor/LogEntry.d.ts.map +0 -1
  38. package/build/monitor/LogEntry.js +0 -4
  39. package/build/monitor/LogEntry.js.map +0 -1
  40. package/build/monitor/artifactDisplayBase.d.ts +0 -2
  41. package/build/monitor/artifactDisplayBase.d.ts.map +0 -1
  42. package/build/monitor/artifactDisplayBase.js +0 -2
  43. package/build/monitor/artifactDisplayBase.js.map +0 -1
  44. package/build/monitor/artifactDisplays/MermaidDiagram.d.ts +0 -22
  45. package/build/monitor/artifactDisplays/MermaidDiagram.d.ts.map +0 -1
  46. package/build/monitor/artifactDisplays/MermaidDiagram.js +0 -199
  47. package/build/monitor/artifactDisplays/MermaidDiagram.js.map +0 -1
  48. package/build/monitor/artifactDisplays/htmlArtifactDisplay.d.ts +0 -9
  49. package/build/monitor/artifactDisplays/htmlArtifactDisplay.d.ts.map +0 -1
  50. package/build/monitor/artifactDisplays/htmlArtifactDisplay.js +0 -31
  51. package/build/monitor/artifactDisplays/htmlArtifactDisplay.js.map +0 -1
  52. package/build/monitor/artifactDisplays/imageArtifactDisplay.d.ts +0 -9
  53. package/build/monitor/artifactDisplays/imageArtifactDisplay.d.ts.map +0 -1
  54. package/build/monitor/artifactDisplays/imageArtifactDisplay.js +0 -17
  55. package/build/monitor/artifactDisplays/imageArtifactDisplay.js.map +0 -1
  56. package/build/monitor/artifactDisplays/jsonArtifactDisplay.d.ts +0 -9
  57. package/build/monitor/artifactDisplays/jsonArtifactDisplay.d.ts.map +0 -1
  58. package/build/monitor/artifactDisplays/jsonArtifactDisplay.js +0 -18
  59. package/build/monitor/artifactDisplays/jsonArtifactDisplay.js.map +0 -1
  60. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.d.ts +0 -14
  61. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.d.ts.map +0 -1
  62. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.js +0 -72
  63. package/build/monitor/artifactDisplays/jsonArtifactHTTPTrace.js.map +0 -1
  64. package/build/monitor/artifactDisplays/mermaidDiagram.d.ts +0 -22
  65. package/build/monitor/artifactDisplays/mermaidDiagram.d.ts.map +0 -1
  66. package/build/monitor/artifactDisplays/mermaidDiagram.js +0 -199
  67. package/build/monitor/artifactDisplays/mermaidDiagram.js.map +0 -1
  68. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.d.ts +0 -9
  69. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.d.ts.map +0 -1
  70. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.js +0 -36
  71. package/build/monitor/artifactDisplays/resolvedFeaturesArtifactDisplay.js.map +0 -1
  72. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.d.ts +0 -32
  73. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.d.ts.map +0 -1
  74. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.js +0 -299
  75. package/build/monitor/artifactDisplays/sequenceDiagramGenerator.js.map +0 -1
  76. package/build/monitor/artifactDisplays/speechArtifactDisplay.d.ts +0 -9
  77. package/build/monitor/artifactDisplays/speechArtifactDisplay.d.ts.map +0 -1
  78. package/build/monitor/artifactDisplays/speechArtifactDisplay.js +0 -38
  79. package/build/monitor/artifactDisplays/speechArtifactDisplay.js.map +0 -1
  80. package/build/monitor/artifactDisplays/videoArtifactDisplay.d.ts +0 -9
  81. package/build/monitor/artifactDisplays/videoArtifactDisplay.d.ts.map +0 -1
  82. package/build/monitor/artifactDisplays/videoArtifactDisplay.js +0 -22
  83. package/build/monitor/artifactDisplays/videoArtifactDisplay.js.map +0 -1
  84. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.d.ts +0 -9
  85. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.d.ts.map +0 -1
  86. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.js +0 -30
  87. package/build/monitor/artifactDisplays/videoStartArtifactDisplay.js.map +0 -1
  88. package/build/monitor/htmlArtifactDisplay.d.ts +0 -2
  89. package/build/monitor/htmlArtifactDisplay.d.ts.map +0 -1
  90. package/build/monitor/htmlArtifactDisplay.js +0 -2
  91. package/build/monitor/htmlArtifactDisplay.js.map +0 -1
  92. package/build/monitor/imageArtifactDisplay.d.ts +0 -2
  93. package/build/monitor/imageArtifactDisplay.d.ts.map +0 -1
  94. package/build/monitor/imageArtifactDisplay.js +0 -2
  95. package/build/monitor/imageArtifactDisplay.js.map +0 -1
  96. package/build/monitor/jsonArtifactDisplay.d.ts +0 -2
  97. package/build/monitor/jsonArtifactDisplay.d.ts.map +0 -1
  98. package/build/monitor/jsonArtifactDisplay.js +0 -2
  99. package/build/monitor/jsonArtifactDisplay.js.map +0 -1
  100. package/build/monitor/jsonArtifactHTTPTrace.d.ts +0 -2
  101. package/build/monitor/jsonArtifactHTTPTrace.d.ts.map +0 -1
  102. package/build/monitor/jsonArtifactHTTPTrace.js +0 -2
  103. package/build/monitor/jsonArtifactHTTPTrace.js.map +0 -1
  104. package/build/monitor/mermaidDiagram.d.ts +0 -22
  105. package/build/monitor/mermaidDiagram.d.ts.map +0 -1
  106. package/build/monitor/mermaidDiagram.js +0 -199
  107. package/build/monitor/mermaidDiagram.js.map +0 -1
  108. package/build/monitor/resolvedFeaturesArtifactDisplay.d.ts +0 -2
  109. package/build/monitor/resolvedFeaturesArtifactDisplay.d.ts.map +0 -1
  110. package/build/monitor/resolvedFeaturesArtifactDisplay.js +0 -2
  111. package/build/monitor/resolvedFeaturesArtifactDisplay.js.map +0 -1
  112. package/build/monitor/sequenceDiagramGenerator.d.ts +0 -32
  113. package/build/monitor/sequenceDiagramGenerator.d.ts.map +0 -1
  114. package/build/monitor/sequenceDiagramGenerator.js +0 -299
  115. package/build/monitor/sequenceDiagramGenerator.js.map +0 -1
  116. package/build/monitor/speechArtifactDisplay.d.ts +0 -2
  117. package/build/monitor/speechArtifactDisplay.d.ts.map +0 -1
  118. package/build/monitor/speechArtifactDisplay.js +0 -2
  119. package/build/monitor/speechArtifactDisplay.js.map +0 -1
  120. package/build/monitor/videoArtifactDisplay.d.ts +0 -2
  121. package/build/monitor/videoArtifactDisplay.d.ts.map +0 -1
  122. package/build/monitor/videoArtifactDisplay.js +0 -2
  123. package/build/monitor/videoArtifactDisplay.js.map +0 -1
  124. package/build/monitor/videoStartArtifactDisplay.d.ts +0 -2
  125. package/build/monitor/videoStartArtifactDisplay.d.ts.map +0 -1
  126. package/build/monitor/videoStartArtifactDisplay.js +0 -2
  127. package/build/monitor/videoStartArtifactDisplay.js.map +0 -1
  128. package/build/test-constants.d.ts +0 -7
  129. package/build/test-constants.d.ts.map +0 -1
  130. package/build/test-constants.js +0 -11
  131. package/build/test-constants.js.map +0 -1
@@ -1,199 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"mermaidDiagram.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/mermaidDiagram.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,36 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,32 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,299 +0,0 @@
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 = true; // Start with true, assume an update is needed initially
24
- diagramLines = ['sequenceDiagram'];
25
- pageNames = {};
26
- pageCounter = 1;
27
- participantAdded = {};
28
- mermaidContainerId;
29
- parentElement;
30
- currentDiagramString = ''; // Store the last successfully rendered/generated diagram
31
- constructor(id, parentElement) {
32
- this.mermaidContainerId = `mermaid-container-${id}`;
33
- this.parentElement = parentElement;
34
- this.ensureMermaidContainer();
35
- this.currentDiagramString = this.buildDiagramString(); // Initialize with empty diagram
36
- }
37
- ensureMermaidContainer() {
38
- let container = this.parentElement.querySelector(`#${this.mermaidContainerId}`);
39
- if (!container) {
40
- container = document.createElement('div');
41
- container.id = this.mermaidContainerId;
42
- container.className = 'mermaid'; // Add class for mermaid to target
43
- this.parentElement.appendChild(container);
44
- }
45
- }
46
- // Add participant declaration if not already added
47
- addParticipant(alias, name) {
48
- if (!this.participantAdded[alias]) {
49
- let insertIndex = 1;
50
- for (let i = this.diagramLines.length - 1; i >= 1; i--) {
51
- if (this.diagramLines[i].startsWith('participant ')) {
52
- insertIndex = i + 1;
53
- break;
54
- }
55
- }
56
- this.diagramLines.splice(insertIndex, 0, `participant ${alias} as ${name}`);
57
- this.participantAdded[alias] = true;
58
- }
59
- }
60
- resetDiagramState() {
61
- this.diagramLines = ['sequenceDiagram'];
62
- this.pageNames = {};
63
- this.pageCounter = 1;
64
- this.participantAdded = {};
65
- // No: this.needsUpdate = true; // Don't set here, compare diagram strings later
66
- }
67
- buildDiagramString() {
68
- if (this.diagramLines.length <= 1) {
69
- return 'sequenceDiagram'; // Canonical empty diagram
70
- }
71
- return this.diagramLines.join("\n");
72
- }
73
- generateDiagramFromHistory() {
74
- // const oldDiagramString = this.buildDiagramString(); // Not needed with currentDiagramString logic
75
- this.resetDiagramState(); // Resets diagramLines
76
- if (window.haibunLogData) {
77
- const httpTraceEvents = window.haibunLogData.filter(entry => entry.messageContext?.artifact?.artifactType === 'json/http/trace' &&
78
- entry.messageContext.artifact.httpEvent !== 'route');
79
- for (const logEntry of httpTraceEvents) {
80
- // Ensure messageContext and artifact are defined before trying to cast and access httpEvent
81
- if (logEntry.messageContext && logEntry.messageContext.artifact) {
82
- const artifact = logEntry.messageContext.artifact;
83
- if (artifact && artifact.trace && typeof artifact.trace === 'object') {
84
- this.processSingleEvent(artifact.trace, artifact.httpEvent);
85
- }
86
- }
87
- }
88
- }
89
- // const newDiagramString = this.buildDiagramString(); // Not needed with currentDiagramString logic
90
- // Revised logic for needsUpdate:
91
- // processSingleEvent will set it to true if it adds anything.
92
- // Here, we compare the generated diagram with the *last rendered* one.
93
- const finalDiagram = this.buildDiagramString();
94
- if (finalDiagram === this.currentDiagramString) {
95
- this.needsUpdate = false; // No change from what's current (or last attempted render)
96
- }
97
- else {
98
- this.needsUpdate = true; // It has changed
99
- }
100
- // Special case: if finalDiagram is empty and currentDiagramString was also empty, it's still false.
101
- // This case is covered if currentDiagramString was 'sequenceDiagram' and finalDiagram is also 'sequenceDiagram'.
102
- // If needsUpdate was false (meaning currentDiagramString was successfully rendered or was the initial empty state)
103
- // and finalDiagram is the same, it remains false.
104
- }
105
- // Renamed from processEvent to avoid confusion, as processEvent might imply adding a single new event
106
- processSingleEvent(trace, httpEvent, filters = jsonFilters) {
107
- this.needsUpdate = true; // Set flag immediately
108
- const { requestingPage, requestingURL, method, status, statusText, headers } = trace;
109
- // Use URL hostname as the server participant
110
- let serverAlias = 'UnknownServerAlias'; // Default if URL is missing
111
- let serverName = 'UnknownServer';
112
- if (requestingURL) {
113
- try {
114
- const url = new URL(requestingURL);
115
- serverName = url.hostname;
116
- if (url.hostname === 'localhost' && url.port) {
117
- serverName = `${url.hostname}:${url.port}`;
118
- }
119
- // Handle empty hostname (e.g., for about:blank)
120
- if (serverName) {
121
- // Alias should be fully sanitized (lowercase, no dots, colons, hyphens)
122
- serverAlias = serverName.toLowerCase().replace(/[.:-]/g, '');
123
- }
124
- else {
125
- serverAlias = 'sourcealias'; // For data URIs or similar with no hostname
126
- serverName = 'Source';
127
- }
128
- }
129
- catch (e) {
130
- serverAlias = 'invalidurlalias';
131
- serverName = 'InvalidURL';
132
- }
133
- }
134
- this.addParticipant(serverAlias, serverName); // serverName will have original casing and port if localhost
135
- if (skipEvent(filters, httpEvent, serverName, trace)) {
136
- return;
137
- }
138
- let pageAlias = 'UnknownPageAlias';
139
- let pageParticipantName = 'UnknownPage';
140
- if (requestingPage) { // requestingPage is the pageId
141
- const existingAlias = this.pageNames[requestingPage];
142
- if (!existingAlias) {
143
- // Use requestingPage directly for alias and name if it's the first time.
144
- // Alias should be sanitized, name should be original
145
- pageAlias = requestingPage.toLowerCase().replace(/[.-]/g, ''); // Sanitize for alias, ensure lowercase
146
- pageParticipantName = requestingPage; // Use as is for display name
147
- // If still generic after sanitization (e.g. empty string if requestingPage was just '.')
148
- // or if the sanitized alias is empty.
149
- if (!pageAlias.trim()) {
150
- pageAlias = `Page${this.pageCounter}`; // Fallback to numbered alias
151
- // pageParticipantName remains `requestingPage` unless it was also problematic,
152
- // but `requestingPage` itself is used as the key in `this.pageNames`
153
- // so it should generally be usable as a display name.
154
- // If `requestingPage` was, for example, just ".", `pageParticipantName` would be ".".
155
- // Mermaid might handle this, or it might look odd.
156
- // For consistency, if alias needs fallback, name might too if it was also problematic.
157
- // However, the tests expect `requestingPage` to be used as the name.
158
- }
159
- this.pageNames[requestingPage] = pageAlias;
160
- this.addParticipant(pageAlias, pageParticipantName); // pageParticipantName has original casing
161
- this.pageCounter++;
162
- }
163
- else {
164
- pageAlias = existingAlias;
165
- const participantLine = this.diagramLines.find(line => line.startsWith(`participant ${pageAlias} as `));
166
- if (participantLine) {
167
- pageParticipantName = participantLine.substring(participantLine.indexOf(' as ') + 4);
168
- }
169
- else {
170
- pageParticipantName = pageAlias; // Fallback
171
- }
172
- }
173
- }
174
- else {
175
- // Fallback if no requestingPage ID is available
176
- pageAlias = 'ClientPage';
177
- pageParticipantName = 'Client Page';
178
- this.addParticipant(pageAlias, pageParticipantName);
179
- }
180
- if (method && requestingURL) {
181
- const message = sanitizeMermaidContent(`${method} ${shortenURI(requestingURL)}`); // Removed boolean argument
182
- this.diagramLines.push(`${pageAlias}->>${serverAlias}: ${message}`);
183
- // Notes for headers
184
- if (headers) {
185
- if (headers.referer) {
186
- const note = shortenURI(sanitizeMermaidContent(`Referer: ${headers.referer}`));
187
- this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
188
- }
189
- if (headers["accept"]) {
190
- const note = sanitizeMermaidContent(`Accept: ${headers["accept"]}`);
191
- this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
192
- }
193
- if (headers["content-type"]) {
194
- const note = sanitizeMermaidContent(`Content-type: ${headers['content-type']}`);
195
- this.diagramLines.push(`Note right of ${pageAlias}: ${note}`);
196
- }
197
- }
198
- }
199
- if (status) {
200
- const message = sanitizeMermaidContent(`${status} ${statusText || ''}`);
201
- this.diagramLines.push(`${serverAlias}-->>${pageAlias}: ${message}`);
202
- }
203
- }
204
- getDiagram() {
205
- return this.buildDiagramString();
206
- }
207
- // Getter for testing purposes
208
- getNeedsUpdate() {
209
- return this.needsUpdate;
210
- }
211
- // Setter for testing purposes, to simulate rendering having occurred.
212
- setNeedsUpdate(value) {
213
- this.needsUpdate = value;
214
- }
215
- async update() {
216
- this.generateDiagramFromHistory(); // This will set needsUpdate based on comparison with currentDiagramString
217
- const mermaidContainer = this.parentElement.querySelector(`#${this.mermaidContainerId}`);
218
- if (!mermaidContainer) {
219
- console.error("Mermaid container not found for ID:", this.mermaidContainerId);
220
- // needsUpdate might be true, but we can't render. It should remain true.
221
- return;
222
- }
223
- // Only update the DOM and render if necessary
224
- // Also check if the container is empty but an update is needed (e.g. first run, or diagram changed to empty)
225
- if (!this.needsUpdate && mermaidContainer.querySelector('svg')) {
226
- return; // Already rendered and no update needed
227
- }
228
- const diagramToRender = this.getDiagram();
229
- try {
230
- mermaid.initialize({ maxTextSize: 900000, startOnLoad: false }); // Added startOnLoad: false
231
- mermaidContainer.innerHTML = '';
232
- const insert = `<pre class="mermaid">${diagramToRender}</pre>`;
233
- mermaidContainer.insertAdjacentHTML('beforeend', insert);
234
- const mermaidElement = mermaidContainer.querySelector('.mermaid');
235
- if (mermaidElement) {
236
- await mermaid.run({ nodes: [mermaidElement] });
237
- console.log("Mermaid diagram rendered.");
238
- this.currentDiagramString = diagramToRender; // Update current string after successful render
239
- this.needsUpdate = false;
240
- }
241
- else {
242
- console.error("Mermaid pre element not found after insert.");
243
- mermaidContainer.innerHTML = `<pre>Error: Could not find .mermaid element for rendering.</pre>`;
244
- // needsUpdate remains true as render failed to initiate
245
- }
246
- }
247
- catch (e) {
248
- console.error("Failed Mermaid diagram definition:\\\\n", diagramToRender);
249
- console.error("Error rendering Mermaid diagram:", e);
250
- const detailedError = (typeof e === 'object' && e !== null && 'str' in e) ? e.str : null;
251
- const errorMessage = detailedError || (e instanceof Error ? e.message : String(e));
252
- mermaidContainer.innerHTML = `<pre>Error rendering Mermaid diagram:\\\\n\\\\n${errorMessage}\\\\n\\\\n--- Diagram Definition ---\\n${diagramToRender}</pre>`;
253
- // Even on error, we consider this "render attempt" complete.
254
- // Setting currentDiagramString to the one that failed, and needsUpdate to false prevents re-looping on a bad diagram.
255
- this.currentDiagramString = diagramToRender;
256
- this.needsUpdate = false;
257
- }
258
- }
259
- }
260
- export function skipEvent(filters, httpEvent, serverName, { requestingURL, headers }) {
261
- if (!serverName) {
262
- // console.info('No server name found, skipping result.');
263
- return true;
264
- }
265
- if (requestingURL === 'about:blank') {
266
- // console.info('Requesting URL is about:blank, skipping result.');
267
- return true;
268
- }
269
- if (httpEvent === 'request') {
270
- if (headers && headers.accept) {
271
- const acceptHeader = headers.accept;
272
- if (!filters.request.accept.some(filterValue => acceptHeader.includes(filterValue))) {
273
- // console.info('qx', acceptHeader, filters.request.accept);
274
- return true;
275
- }
276
- else {
277
- // console.info('qY', acceptHeader, filters.request.accept);
278
- }
279
- }
280
- }
281
- else if (httpEvent === 'response') {
282
- if (headers && headers['content-type']) {
283
- const contentTypeHeader = headers['content-type'];
284
- if (!filters.response.type.some(filterValue => contentTypeHeader.includes(filterValue))) {
285
- // console.info('px', contentTypeHeader);
286
- return true;
287
- }
288
- else {
289
- // console.info('pY', contentTypeHeader);
290
- }
291
- }
292
- }
293
- else {
294
- console.warn(`Unknown HTTP event type: ${httpEvent}`);
295
- return true;
296
- }
297
- return false;
298
- }
299
- //# sourceMappingURL=sequenceDiagramGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sequenceDiagramGenerator.js","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/sequenceDiagramGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { TArtifactSpeech } from '@haibun/core/build/lib/interfaces/logger.js';
2
- import { ArtifactDisplay } from './artifactDisplayBase.js';
3
- export declare class SpeechArtifactDisplay extends ArtifactDisplay {
4
- protected artifact: TArtifactSpeech;
5
- readonly placementTarget = "details";
6
- constructor(artifact: TArtifactSpeech);
7
- render(container: HTMLElement): void;
8
- }
9
- //# sourceMappingURL=speechArtifactDisplay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"speechArtifactDisplay.d.ts","sourceRoot":"","sources":["../../../src/monitor/artifactDisplays/speechArtifactDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,qBAAa,qBAAsB,SAAQ,eAAe;IAI1C,SAAS,CAAC,QAAQ,EAAE,eAAe;IAF/C,QAAQ,CAAC,eAAe,aAAa;gBAEf,QAAQ,EAAE,eAAe;IAMxC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CA0B9C"}