@haibun/web-playwright 3.1.3 → 3.3.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 (109) hide show
  1. package/build/BrowserFactory.d.ts +11 -11
  2. package/build/BrowserFactory.d.ts.map +1 -1
  3. package/build/BrowserFactory.js +40 -46
  4. package/build/BrowserFactory.js.map +1 -1
  5. package/build/PlaywrightEvents.d.ts +2 -2
  6. package/build/PlaywrightEvents.d.ts.map +1 -1
  7. package/build/PlaywrightEvents.js +41 -23
  8. package/build/PlaywrightEvents.js.map +1 -1
  9. package/build/cycles.d.ts.map +1 -1
  10. package/build/cycles.js +82 -36
  11. package/build/cycles.js.map +1 -1
  12. package/build/interactionSteps.d.ts +40 -51
  13. package/build/interactionSteps.d.ts.map +1 -1
  14. package/build/interactionSteps.js +32 -51
  15. package/build/interactionSteps.js.map +1 -1
  16. package/build/rest-playwright.d.ts +25 -22
  17. package/build/rest-playwright.d.ts.map +1 -1
  18. package/build/rest-playwright.js +16 -17
  19. package/build/rest-playwright.js.map +1 -1
  20. package/build/twin-page.d.ts +1 -1
  21. package/build/twin-page.d.ts.map +1 -1
  22. package/build/twin-page.js +4 -8
  23. package/build/twin-page.js.map +1 -1
  24. package/build/web-playwright.d.ts +18 -37
  25. package/build/web-playwright.d.ts.map +1 -1
  26. package/build/web-playwright.js +60 -79
  27. package/build/web-playwright.js.map +1 -1
  28. package/package.json +12 -7
  29. package/build/monitor/MonitorHandler.d.ts +0 -52
  30. package/build/monitor/MonitorHandler.d.ts.map +0 -1
  31. package/build/monitor/MonitorHandler.js +0 -176
  32. package/build/monitor/MonitorHandler.js.map +0 -1
  33. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.d.ts +0 -9
  34. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.d.ts.map +0 -1
  35. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.js +0 -27
  36. package/build/monitor/artifactDisplays/HtmlArtifactDisplay.js.map +0 -1
  37. package/build/monitor/artifactDisplays/ImageArtifactDisplay.d.ts +0 -9
  38. package/build/monitor/artifactDisplays/ImageArtifactDisplay.d.ts.map +0 -1
  39. package/build/monitor/artifactDisplays/ImageArtifactDisplay.js +0 -17
  40. package/build/monitor/artifactDisplays/ImageArtifactDisplay.js.map +0 -1
  41. package/build/monitor/artifactDisplays/JsonArtifactDisplay.d.ts +0 -8
  42. package/build/monitor/artifactDisplays/JsonArtifactDisplay.d.ts.map +0 -1
  43. package/build/monitor/artifactDisplays/JsonArtifactDisplay.js +0 -26
  44. package/build/monitor/artifactDisplays/JsonArtifactDisplay.js.map +0 -1
  45. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.d.ts +0 -13
  46. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.d.ts.map +0 -1
  47. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.js +0 -47
  48. package/build/monitor/artifactDisplays/JsonArtifactHTTPTrace.js.map +0 -1
  49. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.d.ts +0 -9
  50. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.d.ts.map +0 -1
  51. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.js +0 -147
  52. package/build/monitor/artifactDisplays/ResolvedFeaturesArtifactDisplay.js.map +0 -1
  53. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.d.ts +0 -32
  54. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.d.ts.map +0 -1
  55. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.js +0 -258
  56. package/build/monitor/artifactDisplays/SequenceDiagramGenerator.js.map +0 -1
  57. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.d.ts +0 -9
  58. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.d.ts.map +0 -1
  59. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.js +0 -19
  60. package/build/monitor/artifactDisplays/SpeechArtifactDisplay.js.map +0 -1
  61. package/build/monitor/artifactDisplays/VideoArtifactDisplay.d.ts +0 -9
  62. package/build/monitor/artifactDisplays/VideoArtifactDisplay.d.ts.map +0 -1
  63. package/build/monitor/artifactDisplays/VideoArtifactDisplay.js +0 -21
  64. package/build/monitor/artifactDisplays/VideoArtifactDisplay.js.map +0 -1
  65. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.d.ts +0 -9
  66. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.d.ts.map +0 -1
  67. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.js +0 -16
  68. package/build/monitor/artifactDisplays/VideoStartArtifactDisplay.js.map +0 -1
  69. package/build/monitor/artifactDisplays/artifactDisplayBase.d.ts +0 -20
  70. package/build/monitor/artifactDisplays/artifactDisplayBase.d.ts.map +0 -1
  71. package/build/monitor/artifactDisplays/artifactDisplayBase.js +0 -40
  72. package/build/monitor/artifactDisplays/artifactDisplayBase.js.map +0 -1
  73. package/build/monitor/controls.d.ts +0 -13
  74. package/build/monitor/controls.d.ts.map +0 -1
  75. package/build/monitor/controls.js +0 -349
  76. package/build/monitor/controls.js.map +0 -1
  77. package/build/monitor/disclosureJson.d.ts +0 -3
  78. package/build/monitor/disclosureJson.d.ts.map +0 -1
  79. package/build/monitor/disclosureJson.js +0 -353
  80. package/build/monitor/disclosureJson.js.map +0 -1
  81. package/build/monitor/graph/feature-bases.d.ts +0 -5
  82. package/build/monitor/graph/feature-bases.d.ts.map +0 -1
  83. package/build/monitor/graph/feature-bases.js +0 -36
  84. package/build/monitor/graph/feature-bases.js.map +0 -1
  85. package/build/monitor/graph/generateMermaidGraph.d.ts +0 -11
  86. package/build/monitor/graph/generateMermaidGraph.d.ts.map +0 -1
  87. package/build/monitor/graph/generateMermaidGraph.js +0 -314
  88. package/build/monitor/graph/generateMermaidGraph.js.map +0 -1
  89. package/build/monitor/graph/graphUtils.d.ts +0 -3
  90. package/build/monitor/graph/graphUtils.d.ts.map +0 -1
  91. package/build/monitor/graph/graphUtils.js +0 -26
  92. package/build/monitor/graph/graphUtils.js.map +0 -1
  93. package/build/monitor/graph/mermaidGraphLinks.d.ts +0 -3
  94. package/build/monitor/graph/mermaidGraphLinks.d.ts.map +0 -1
  95. package/build/monitor/graph/mermaidGraphLinks.js +0 -26
  96. package/build/monitor/graph/mermaidGraphLinks.js.map +0 -1
  97. package/build/monitor/messages.d.ts +0 -14
  98. package/build/monitor/messages.d.ts.map +0 -1
  99. package/build/monitor/messages.js +0 -359
  100. package/build/monitor/messages.js.map +0 -1
  101. package/build/monitor/monitor.d.ts +0 -25
  102. package/build/monitor/monitor.d.ts.map +0 -1
  103. package/build/monitor/monitor.js +0 -599
  104. package/build/monitor/monitor.js.map +0 -1
  105. package/build/monitor/test-utils.d.ts +0 -9
  106. package/build/monitor/test-utils.d.ts.map +0 -1
  107. package/build/monitor/test-utils.js +0 -70
  108. package/build/monitor/test-utils.js.map +0 -1
  109. package/web/monitor.html +0 -3715
@@ -1,314 +0,0 @@
1
- import { sanitize, formatLabel } from './graphUtils.js';
2
- import { getBaseLocations } from './feature-bases.js';
3
- export async function generateMermaidGraphAsMarkdown(resolvedFeatures, showVariables = true, registeredOutcomes) {
4
- const graphLines = await generateMermaidGraph(resolvedFeatures, showVariables, registeredOutcomes);
5
- return graphLines.join('\n');
6
- }
7
- export async function generateMermaidGraph(resolvedFeatures, showVariables = true, registeredOutcomes) {
8
- const graphLines = ['graph TD'];
9
- // Normalize outcome keys for fuzzy matching (handles "Is logged in" vs "Is logged in as {user}")
10
- const normalizedRegisteredOutcomes = new Map();
11
- if (registeredOutcomes) {
12
- for (const [k, v] of Object.entries(registeredOutcomes)) {
13
- const nk = String(k).toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
14
- normalizedRegisteredOutcomes.set(nk, v);
15
- // Also index variant with placeholders stripped for fuzzy matching
16
- if (String(k).includes('{')) {
17
- const stripped = String(k).replace(/\{[^}]+\}/g, '').toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
18
- if (stripped && stripped !== nk)
19
- normalizedRegisteredOutcomes.set(stripped, v);
20
- }
21
- }
22
- }
23
- const waypointMapFromRegistered = new Map();
24
- if (normalizedRegisteredOutcomes.size) {
25
- let wpIdx = 0;
26
- for (const [nk, entry] of normalizedRegisteredOutcomes.entries()) {
27
- const wpId = `wp_registered_${wpIdx++}`;
28
- const outcomeLabel = nk;
29
- waypointMapFromRegistered.set(nk, {
30
- id: wpId,
31
- label: outcomeLabel,
32
- proof: entry.proofStatements?.[0],
33
- sourcePath: entry.proofPath,
34
- });
35
- }
36
- }
37
- const baseLocations = getBaseLocations(resolvedFeatures);
38
- baseLocations.forEach(basePath => {
39
- const basePathStr = String(basePath);
40
- graphLines.push(` base_${sanitize(basePathStr)}(${formatLabel(basePathStr)})`);
41
- });
42
- const envVars = new Set();
43
- for (const f of resolvedFeatures) {
44
- for (const step of f.featureSteps) {
45
- for (const { origin: source, value } of Object.values(step.action.stepValuesMap || {})) {
46
- if (source === 'env' && typeof value === 'string')
47
- envVars.add(value);
48
- }
49
- }
50
- }
51
- if (envVars.size) {
52
- graphLines.push(' subgraph ENV [Environment Variables]');
53
- envVars.forEach(v => graphLines.push(` env_${sanitize(v)}([${formatLabel(v)}])`));
54
- graphLines.push(' end');
55
- }
56
- const { getBackgroundFeatures } = await import('./feature-bases.js');
57
- const backgrounds = getBackgroundFeatures(resolvedFeatures);
58
- if (backgrounds.size) {
59
- graphLines.push(' subgraph BACKGROUNDS [Backgrounds]');
60
- backgrounds.forEach(bgPath => {
61
- graphLines.push(` bg_${sanitize(bgPath)}[${formatLabel(bgPath)}]`);
62
- });
63
- graphLines.push(' end');
64
- }
65
- const baseToStepLinks = [];
66
- const featureFirstNodeId = new Map();
67
- const activityMap = new Map();
68
- const waypointMap = new Map();
69
- const proofMap = new Map();
70
- const ensureSteps = [];
71
- resolvedFeatures.forEach((feature, featureIdx) => {
72
- const featureId = `f_${sanitize(feature.path)}_${featureIdx}`;
73
- graphLines.push(` subgraph ${featureId} [${formatLabel(feature.path)}]`);
74
- const baseId = `base_${sanitize(feature.base)}`;
75
- baseToStepLinks.push({ baseId, featureId });
76
- let scenarioIdx = 0;
77
- let currentScenarioId = null;
78
- let currentActivityKey = null;
79
- let previousStepActualId = null;
80
- let previousStepIsInScenario = false;
81
- let firstNodeCaptured = false;
82
- feature.featureSteps.forEach((step, stepIdx) => {
83
- let skipEmitThisStep = false;
84
- const actionNamePart = sanitize(step.action.actionName);
85
- const actionLower = String(step.action.actionName).toLowerCase();
86
- const label = formatLabel(step.in);
87
- const normalized = label.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
88
- const newStepId = `s_${featureIdx}_${actionNamePart}_${stepIdx}`;
89
- const indent = currentScenarioId ? ' ' : ' ';
90
- const currentStepIsInCurrentScenario = !!currentScenarioId;
91
- const currentIsProof = actionLower.includes('proof') || actionLower === 'proof';
92
- if (step.action.actionName === 'scenarioStart') {
93
- if (currentScenarioId)
94
- graphLines.push(' end');
95
- currentScenarioId = `sc_${++scenarioIdx}`;
96
- graphLines.push(` subgraph ${currentScenarioId} [${formatLabel(step.in)}]`);
97
- previousStepActualId = null;
98
- }
99
- else {
100
- if (/^activity\s*:/i.test(step.in)) {
101
- const m = step.in.match(/^Activity:\s*(.+)$/i);
102
- const activityName = m ? m[1].trim() : step.in;
103
- const activityKey = activityName.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
104
- currentActivityKey = activityKey;
105
- if (!activityMap.has(activityKey)) {
106
- const actId = `act_${featureIdx}_${activityMap.size}`;
107
- activityMap.set(activityKey, { id: actId, label: activityName });
108
- }
109
- previousStepIsInScenario = currentStepIsInCurrentScenario;
110
- skipEmitThisStep = true;
111
- }
112
- if (actionLower.includes('activity')) {
113
- const activityKey = normalized;
114
- if (!activityMap.has(activityKey)) {
115
- const actId = `act_${featureIdx}_${activityMap.size}`;
116
- activityMap.set(activityKey, { id: actId, label });
117
- }
118
- currentActivityKey = activityKey;
119
- }
120
- else {
121
- if (!skipEmitThisStep) {
122
- graphLines.push(`${indent}${newStepId}[${label}]`);
123
- }
124
- if (!firstNodeCaptured) {
125
- featureFirstNodeId.set(featureId, newStepId);
126
- firstNodeCaptured = true;
127
- }
128
- if (previousStepActualId) {
129
- if (currentStepIsInCurrentScenario === previousStepIsInScenario) {
130
- const prevIsProof = proofMap && Array.from(proofMap.values()).some(p => p.id === previousStepActualId);
131
- const connector = (prevIsProof || currentIsProof) ? '-.->' : '==>';
132
- graphLines.push(`${indent}${previousStepActualId} ${connector} ${newStepId}`);
133
- }
134
- }
135
- previousStepActualId = newStepId;
136
- if (step.path !== feature.path) {
137
- if (backgrounds.has(step.path)) {
138
- graphLines.push(`${indent}${newStepId} -.-> bg_${sanitize(step.path)}`);
139
- }
140
- else {
141
- console.warn(`Background step path "${step.path}" not found in backgrounds set.`);
142
- }
143
- }
144
- if (actionLower === 'ensure' || actionLower.includes('ensure') || step.in.toLowerCase().includes('ensure')) {
145
- let outcomeKey = undefined;
146
- try {
147
- const sa = step.action;
148
- const ov = sa.stepValuesMap?.outcome;
149
- if (ov && (typeof ov.term === 'string' && ov.term.trim().length > 0)) {
150
- outcomeKey = ov.term.trim();
151
- }
152
- }
153
- catch {
154
- // ignore
155
- }
156
- // Fallback: parse the ensure line to extract the inner statement (e.g., 'ensure Task completed' -> 'Task completed')
157
- // Also handle compound statements like 'every X in Y is ensure Z'
158
- if (!outcomeKey) {
159
- // Try direct ensure pattern
160
- let m = step.in.match(/^ensure\s+(.+)$/i);
161
- if (m) {
162
- outcomeKey = m[1].trim();
163
- }
164
- else {
165
- // Try compound pattern: 'every ... is ensure OutcomeName'
166
- m = step.in.match(/\sis\s+ensure\s+(.+)$/i);
167
- if (m)
168
- outcomeKey = m[1].trim();
169
- }
170
- }
171
- ensureSteps.push({ sourceId: newStepId, label, outcomeKey });
172
- }
173
- if (actionLower.includes('waypoint') || actionLower.includes('waypointed') || actionLower === 'waypoint') {
174
- const match = step.in.match(/^waypoint\s+(.+?)\s+with\s+(.+)$/i);
175
- const outcome = match ? match[1].trim() : step.in;
176
- const proof = match ? match[2].trim() : undefined;
177
- const wpKey = outcome.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
178
- waypointMap.set(wpKey, { id: newStepId, label: outcome, parentActivityKey: currentActivityKey ?? undefined, proof, sourcePath: step.path });
179
- }
180
- if (actionLower.includes('proof') || actionLower === 'proof') {
181
- const pfKey = normalized;
182
- proofMap.set(pfKey, { id: newStepId, label });
183
- }
184
- if (showVariables && step.action.stepValuesMap && step.action.actionName !== 'scenarioStart') {
185
- const definedScenarioVarsForStep = new Set();
186
- Object.entries(step.action.stepValuesMap).forEach(([name, sv]) => {
187
- const { origin: source, value } = sv;
188
- if (value == null)
189
- return;
190
- if (source === 'env' && typeof value === 'string') {
191
- graphLines.push(`${indent}${newStepId} -.-> env_${sanitize(value)}`);
192
- return;
193
- }
194
- if (Array.isArray(value))
195
- return;
196
- const displayVal = typeof value === 'number' ? String(value) : value;
197
- const scenarioVarNodeId = `sv_${featureIdx}_${actionNamePart}_${stepIdx}_${sanitize(name)}`;
198
- if (!definedScenarioVarsForStep.has(scenarioVarNodeId)) {
199
- graphLines.push(`${indent}${scenarioVarNodeId}([${formatLabel(name + ' = ' + displayVal)}])`);
200
- definedScenarioVarsForStep.add(scenarioVarNodeId);
201
- }
202
- graphLines.push(`${indent}${newStepId} -.-> ${scenarioVarNodeId}`);
203
- });
204
- }
205
- }
206
- }
207
- previousStepIsInScenario = currentStepIsInCurrentScenario;
208
- });
209
- if (currentScenarioId)
210
- graphLines.push(' end');
211
- graphLines.push(' end');
212
- if (!firstNodeCaptured)
213
- featureFirstNodeId.set(featureId, null);
214
- });
215
- // Merge inline waypoints with pre-registered ones (pre-registered take precedence)
216
- const mergedWaypointMap = new Map(waypointMapFromRegistered);
217
- for (const [k, v] of waypointMap.entries()) {
218
- if (!mergedWaypointMap.has(k)) {
219
- mergedWaypointMap.set(k, v);
220
- }
221
- }
222
- const renderedProofs = new Set();
223
- let proofsStarted = false;
224
- const usedWaypoints = new Set();
225
- if (ensureSteps.length || mergedWaypointMap.size) {
226
- for (const ens of ensureSteps) {
227
- if (!ens.outcomeKey || normalizedRegisteredOutcomes.size === 0)
228
- continue;
229
- const nk = ens.outcomeKey.toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim();
230
- let regEntry = normalizedRegisteredOutcomes.get(nk);
231
- let wpKey;
232
- if (regEntry) {
233
- wpKey = nk;
234
- }
235
- else {
236
- // Fuzzy match: strip placeholders and try substring matching
237
- for (const candidate of normalizedRegisteredOutcomes.keys()) {
238
- const candStripped = candidate.replace(/\{[^}]+\}/g, '').replace(/[^a-z0-9]+/g, ' ').trim();
239
- const nkStripped = nk.replace(/\{[^}]+\}/g, '').replace(/[^a-z0-9]+/g, ' ').trim();
240
- if (candStripped && nkStripped && (candStripped === nkStripped || candStripped.includes(nkStripped) || nkStripped.includes(candStripped))) {
241
- wpKey = candidate;
242
- regEntry = normalizedRegisteredOutcomes.get(candidate);
243
- break;
244
- }
245
- }
246
- }
247
- if (!regEntry || !wpKey)
248
- continue;
249
- let foundWpKey;
250
- for (const candidateWpKey of mergedWaypointMap.keys()) {
251
- const cand = candidateWpKey;
252
- const candStripped = cand.replace(/\{[^}]+\}/g, '').replace(/[^a-z0-9]+/g, ' ').trim();
253
- const wpKeyStripped = wpKey.replace(/\{[^}]+\}/g, '').replace(/[^a-z0-9]+/g, ' ').trim();
254
- if (cand === wpKey || cand.includes(wpKey) || wpKey.includes(cand) || candStripped === wpKeyStripped || candStripped.includes(wpKeyStripped) || wpKeyStripped.includes(candStripped)) {
255
- foundWpKey = candidateWpKey;
256
- break;
257
- }
258
- }
259
- if (!foundWpKey)
260
- continue;
261
- const wp = mergedWaypointMap.get(foundWpKey);
262
- usedWaypoints.add(wp.id);
263
- graphLines.push(` ${ens.sourceId} -.-> ${wp.id}`);
264
- const proofText = (regEntry && regEntry.proofStatements && regEntry.proofStatements.length > 0)
265
- ? regEntry.proofStatements[0]
266
- : (wp.proof || undefined);
267
- if (proofText) {
268
- if (!proofsStarted) {
269
- graphLines.push(' subgraph PROOFS [Proofs]');
270
- proofsStarted = true;
271
- }
272
- const proofId = `proof_${wp.id}_${sanitize(proofText)}`;
273
- if (!renderedProofs.has(proofId)) {
274
- graphLines.push(` ${proofId}[${formatLabel(proofText)}]`);
275
- renderedProofs.add(proofId);
276
- }
277
- graphLines.push(` ${wp.id} -.-> ${proofId}`);
278
- }
279
- }
280
- }
281
- // Group waypoints by source file for organized display (only used waypoints)
282
- const wpBySource = new Map();
283
- for (const [, v] of mergedWaypointMap.entries()) {
284
- if (!usedWaypoints.has(v.id))
285
- continue;
286
- const source = v.sourcePath || v.proof || 'registered';
287
- const arr = wpBySource.get(source) || [];
288
- arr.push({ id: v.id, label: v.label });
289
- wpBySource.set(source, arr);
290
- }
291
- if (usedWaypoints.size > 0 || wpBySource.size > 0) {
292
- graphLines.push(' subgraph WAYPOINTS [Waypoints]');
293
- for (const [source, items] of wpBySource.entries()) {
294
- const subId = `wps_${sanitize(String(source))}`;
295
- graphLines.push(` subgraph ${subId} [${formatLabel(String(source))}]`);
296
- for (const item of items) {
297
- graphLines.push(` ${item.id}[${formatLabel(item.label)}]`);
298
- }
299
- graphLines.push(' end');
300
- }
301
- graphLines.push(' end');
302
- }
303
- if (proofsStarted)
304
- graphLines.push(' end');
305
- const resolvedBaseToStepLinks = baseToStepLinks.map(({ baseId, featureId }) => {
306
- const firstNode = featureFirstNodeId.get(featureId);
307
- if (firstNode)
308
- return ` ${baseId} --> ${firstNode}`;
309
- return ` ${baseId} --> ${featureId}`;
310
- });
311
- graphLines.push(...resolvedBaseToStepLinks);
312
- return graphLines;
313
- }
314
- //# sourceMappingURL=generateMermaidGraph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateMermaidGraph.js","sourceRoot":"","sources":["../../../src/monitor/graph/generateMermaidGraph.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const sanitize: (text: string) => string;
2
- export declare const formatLabel: (text: string) => string;
3
- //# sourceMappingURL=graphUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphUtils.d.ts","sourceRoot":"","sources":["../../../src/monitor/graph/graphUtils.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,MAOvC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAK1C,CAAC"}
@@ -1,26 +0,0 @@
1
- const normalizeForDisplay = (input) => {
2
- if (input === undefined || input === null)
3
- return '';
4
- let s = String(input).normalize('NFC');
5
- s = s.replace(/\p{Cc}|\p{Cf}/gu, '');
6
- s = s.replace(/[\u{FFFD}]/gu, '');
7
- s = s.replace(/\s+/g, ' ').trim();
8
- return s;
9
- };
10
- export const sanitize = (text) => {
11
- const s = normalizeForDisplay(text || '');
12
- if (!s)
13
- return 'empty_sanitized_string';
14
- const replaced = s.replace(/[^\p{L}\p{N}_-]+/gu, '_');
15
- const collapsed = replaced.replace(/_+/g, '_').replace(/^_|_$/g, '');
16
- if (!/^[A-Za-z]/.test(collapsed))
17
- return `id_${collapsed}`;
18
- return collapsed;
19
- };
20
- export const formatLabel = (text) => {
21
- const raw = normalizeForDisplay(text === undefined || text === null ? ' ' : String(text));
22
- const escaped = raw.replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/`/g, '#96;');
23
- const finalLabel = escaped === '' ? ' ' : escaped;
24
- return `"${finalLabel}"`;
25
- };
26
- //# sourceMappingURL=graphUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphUtils.js","sourceRoot":"","sources":["../../../src/monitor/graph/graphUtils.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC;QAAE,OAAO,wBAAwB,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3D,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAChD,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9G,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IAClD,OAAO,IAAI,UAAU,GAAG,CAAC;AAC7B,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function getEnvVarLinks(featureSteps: any): any[];
2
- export declare function getScenarioVars(featureSteps: any): any[];
3
- //# sourceMappingURL=mermaidGraphLinks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mermaidGraphLinks.d.ts","sourceRoot":"","sources":["../../../src/monitor/graph/mermaidGraphLinks.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,YAAY,KAAA,SAW1C;AAED,wBAAgB,eAAe,CAAC,YAAY,KAAA,SAY3C"}
@@ -1,26 +0,0 @@
1
- export function getEnvVarLinks(featureSteps) {
2
- const links = [];
3
- featureSteps.forEach((step, stepIndex) => {
4
- if (step.action && step.action.named && step.action.named.what) {
5
- const match = /^\{(.+?)\}$/.exec(step.action.named.what);
6
- if (match) {
7
- links.push({ stepIndex, envVar: match[1] });
8
- }
9
- }
10
- });
11
- return links;
12
- }
13
- export function getScenarioVars(featureSteps) {
14
- const links = [];
15
- featureSteps.forEach((step, stepIndex) => {
16
- if (step.action && step.action.named && step.action.named.what) {
17
- const what = step.action.named.what;
18
- if (!/^\{.+\}$/.test(what)) {
19
- const varName = what.replace(/^"|"$/g, '');
20
- links.push({ stepIndex, varName });
21
- }
22
- }
23
- });
24
- return links;
25
- }
26
- //# sourceMappingURL=mermaidGraphLinks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mermaidGraphLinks.js","sourceRoot":"","sources":["../../../src/monitor/graph/mermaidGraphLinks.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,YAAY;IACzC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,YAAY;IAC1C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,14 +0,0 @@
1
- import { TMessageContext } from '@haibun/core/monitor';
2
- import { LogComponent, ArtifactDisplay } from './artifactDisplays/artifactDisplayBase.js';
3
- export declare class LogEntry extends LogComponent {
4
- private detailsSummary;
5
- private messageContent;
6
- constructor(level: string, timestamp: number, message: string, messageContext?: TMessageContext);
7
- }
8
- export declare class LogMessageContent extends LogComponent {
9
- readonly artifactDisplays: ArtifactDisplay[];
10
- private artifactContainers;
11
- constructor(message: string, messageContext?: TMessageContext);
12
- private renderSpecialPlacementArtifact;
13
- }
14
- //# sourceMappingURL=messages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/monitor/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqI,eAAe,EAAoD,MAAM,sBAAsB,CAAC;AAK5O,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAW1F,qBAAa,QAAS,SAAQ,YAAY;IACzC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,cAAc,CAAoB;gBAE9B,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,eAAe;CAiD/F;AAYD,qBAAa,iBAAkB,SAAQ,YAAY;IAClD,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAM;IAClD,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,eAAe;YAwI/C,8BAA8B;CA4B5C"}