@scenetest/vite-plugin 0.6.0 → 0.7.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.
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +277 -6
- package/dist/dashboard.js.map +1 -1
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +72 -0
- package/dist/middleware.js.map +1 -1
- package/package.json +4 -4
package/dist/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA+5B9C"}
|
package/dist/dashboard.js
CHANGED
|
@@ -35,12 +35,15 @@ export function generateDashboardHtml() {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
header {
|
|
38
|
+
position: sticky;
|
|
39
|
+
top: 0;
|
|
38
40
|
padding: 16px 24px;
|
|
39
41
|
border-bottom: 1px solid var(--border);
|
|
40
42
|
display: flex;
|
|
41
43
|
align-items: center;
|
|
42
44
|
gap: 16px;
|
|
43
45
|
background: var(--bg2);
|
|
46
|
+
z-index: 100;
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
header h1 {
|
|
@@ -91,6 +94,116 @@ export function generateDashboardHtml() {
|
|
|
91
94
|
.connection.connected { background: var(--green); }
|
|
92
95
|
.connection.disconnected { background: var(--red); }
|
|
93
96
|
|
|
97
|
+
/* ─── Replay buttons ─────────────────────────────── */
|
|
98
|
+
.replay-btn {
|
|
99
|
+
display: inline-flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: 5px;
|
|
102
|
+
padding: 4px 12px;
|
|
103
|
+
border: 1px solid var(--border);
|
|
104
|
+
border-radius: 4px;
|
|
105
|
+
background: transparent;
|
|
106
|
+
color: var(--text2);
|
|
107
|
+
font-family: inherit;
|
|
108
|
+
font-size: 12px;
|
|
109
|
+
cursor: pointer;
|
|
110
|
+
transition: all 0.15s;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.replay-btn:hover {
|
|
114
|
+
background: rgba(59, 130, 246, 0.15);
|
|
115
|
+
border-color: var(--blue);
|
|
116
|
+
color: var(--blue);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.replay-btn:disabled {
|
|
120
|
+
opacity: 0.4;
|
|
121
|
+
cursor: not-allowed;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.replay-btn:disabled:hover {
|
|
125
|
+
background: transparent;
|
|
126
|
+
border-color: var(--border);
|
|
127
|
+
color: var(--text2);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.replay-btn .play-icon {
|
|
131
|
+
font-size: 10px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.replay-all-btn {
|
|
135
|
+
margin-left: 12px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.scene-replay-btn {
|
|
139
|
+
margin-left: auto;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.stop-btn, .pause-btn {
|
|
143
|
+
display: none;
|
|
144
|
+
align-items: center;
|
|
145
|
+
gap: 5px;
|
|
146
|
+
padding: 4px 12px;
|
|
147
|
+
border: 1px solid var(--border);
|
|
148
|
+
border-radius: 4px;
|
|
149
|
+
background: transparent;
|
|
150
|
+
color: var(--text2);
|
|
151
|
+
font-family: inherit;
|
|
152
|
+
font-size: 12px;
|
|
153
|
+
cursor: pointer;
|
|
154
|
+
transition: all 0.15s;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.stop-btn:hover {
|
|
158
|
+
background: rgba(239, 68, 68, 0.15);
|
|
159
|
+
border-color: var(--red);
|
|
160
|
+
color: var(--red);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.pause-btn:hover {
|
|
164
|
+
background: rgba(245, 158, 11, 0.15);
|
|
165
|
+
border-color: var(--amber);
|
|
166
|
+
color: var(--amber);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.stop-btn .btn-icon, .pause-btn .btn-icon {
|
|
170
|
+
font-size: 10px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.running .stop-btn, .running .pause-btn {
|
|
174
|
+
display: inline-flex;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* ─── Progress bar ───────────────────────────────── */
|
|
178
|
+
.progress-bar {
|
|
179
|
+
position: absolute;
|
|
180
|
+
bottom: 0;
|
|
181
|
+
left: 0;
|
|
182
|
+
right: 0;
|
|
183
|
+
height: 3px;
|
|
184
|
+
background: var(--border);
|
|
185
|
+
display: none;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.progress-bar.visible {
|
|
189
|
+
display: block;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.progress-bar .progress-fill {
|
|
193
|
+
height: 100%;
|
|
194
|
+
background: var(--blue);
|
|
195
|
+
transition: width 0.3s ease;
|
|
196
|
+
width: 0%;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.progress-bar.done .progress-fill {
|
|
200
|
+
background: var(--green);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.progress-bar.has-failures .progress-fill {
|
|
204
|
+
background: var(--red);
|
|
205
|
+
}
|
|
206
|
+
|
|
94
207
|
main {
|
|
95
208
|
padding: 24px;
|
|
96
209
|
}
|
|
@@ -146,12 +259,44 @@ export function generateDashboardHtml() {
|
|
|
146
259
|
font-size: 12px;
|
|
147
260
|
}
|
|
148
261
|
|
|
262
|
+
/* ─── Scene errors ────────────────────────────────── */
|
|
263
|
+
.scene-errors {
|
|
264
|
+
border: 1px solid var(--border);
|
|
265
|
+
border-top: none;
|
|
266
|
+
background: rgba(239, 68, 68, 0.05);
|
|
267
|
+
padding: 8px 14px;
|
|
268
|
+
display: flex;
|
|
269
|
+
flex-direction: column;
|
|
270
|
+
gap: 4px;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.scene-error-line {
|
|
274
|
+
font-size: 12px;
|
|
275
|
+
color: var(--red);
|
|
276
|
+
display: flex;
|
|
277
|
+
align-items: baseline;
|
|
278
|
+
gap: 8px;
|
|
279
|
+
line-height: 1.4;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.scene-error-line .error-icon {
|
|
283
|
+
flex-shrink: 0;
|
|
284
|
+
font-size: 10px;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.scene-error-line .error-action {
|
|
288
|
+
color: var(--text2);
|
|
289
|
+
flex-shrink: 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.scene-error-line .error-msg {
|
|
293
|
+
word-break: break-word;
|
|
294
|
+
}
|
|
295
|
+
|
|
149
296
|
/* ─── Swim lanes ──────────────────────────────────── */
|
|
150
297
|
.swim-lanes {
|
|
151
298
|
border: 1px solid var(--border);
|
|
152
299
|
border-top: none;
|
|
153
|
-
border-radius: 0 0 8px 8px;
|
|
154
|
-
overflow: hidden;
|
|
155
300
|
}
|
|
156
301
|
|
|
157
302
|
.lane {
|
|
@@ -183,7 +328,6 @@ export function generateDashboardHtml() {
|
|
|
183
328
|
position: relative;
|
|
184
329
|
padding: 6px 8px;
|
|
185
330
|
min-height: 48px;
|
|
186
|
-
overflow: hidden;
|
|
187
331
|
}
|
|
188
332
|
|
|
189
333
|
.action-bar {
|
|
@@ -242,8 +386,9 @@ export function generateDashboardHtml() {
|
|
|
242
386
|
padding: 4px 8px;
|
|
243
387
|
font-size: 11px;
|
|
244
388
|
white-space: nowrap;
|
|
245
|
-
z-index:
|
|
389
|
+
z-index: 50;
|
|
246
390
|
color: var(--text);
|
|
391
|
+
pointer-events: none;
|
|
247
392
|
}
|
|
248
393
|
|
|
249
394
|
/* ─── Assertion markers ───────────────────────────── */
|
|
@@ -344,6 +489,15 @@ export function generateDashboardHtml() {
|
|
|
344
489
|
<body>
|
|
345
490
|
<header>
|
|
346
491
|
<h1><span class="logo">S</span> Scenetest Dashboard</h1>
|
|
492
|
+
<button class="replay-btn replay-all-btn" id="replay-all" onclick="replayAll()">
|
|
493
|
+
<span class="play-icon">▶</span> Replay All
|
|
494
|
+
</button>
|
|
495
|
+
<button class="pause-btn" id="pause-btn" onclick="togglePause()">
|
|
496
|
+
<span class="btn-icon" id="pause-icon">▮▮</span> <span id="pause-label">Pause</span>
|
|
497
|
+
</button>
|
|
498
|
+
<button class="stop-btn" id="stop-btn" onclick="stopRun()">
|
|
499
|
+
<span class="btn-icon">■</span> Stop
|
|
500
|
+
</button>
|
|
347
501
|
<div class="status-bar">
|
|
348
502
|
<div class="stat scenes">
|
|
349
503
|
<span class="label">Scenes:</span>
|
|
@@ -363,6 +517,7 @@ export function generateDashboardHtml() {
|
|
|
363
517
|
</div>
|
|
364
518
|
<div class="connection" id="connection" title="SSE connection"></div>
|
|
365
519
|
</div>
|
|
520
|
+
<div class="progress-bar" id="progress-bar"><div class="progress-fill" id="progress-fill"></div></div>
|
|
366
521
|
</header>
|
|
367
522
|
|
|
368
523
|
<main id="main">
|
|
@@ -420,6 +575,7 @@ export function generateDashboardHtml() {
|
|
|
420
575
|
state.sceneCount = event.sceneCount
|
|
421
576
|
document.getElementById('waiting').style.display = 'none'
|
|
422
577
|
document.getElementById('scenes').innerHTML = ''
|
|
578
|
+
setRunning(true)
|
|
423
579
|
updateStats()
|
|
424
580
|
break
|
|
425
581
|
|
|
@@ -441,6 +597,9 @@ export function generateDashboardHtml() {
|
|
|
441
597
|
state.scenes.push(scene)
|
|
442
598
|
state.currentScene = scene
|
|
443
599
|
renderScene(scene)
|
|
600
|
+
// Auto-scroll to keep the running scene visible
|
|
601
|
+
var sceneEl = document.getElementById('scene-' + (state.scenes.length - 1))
|
|
602
|
+
if (sceneEl) sceneEl.scrollIntoView({ behavior: 'smooth', block: 'start' })
|
|
444
603
|
break
|
|
445
604
|
}
|
|
446
605
|
|
|
@@ -519,6 +678,7 @@ export function generateDashboardHtml() {
|
|
|
519
678
|
state.passCount = event.summary?.assertions?.passed || state.passCount
|
|
520
679
|
state.failCount = event.summary?.assertions?.failed || state.failCount
|
|
521
680
|
document.getElementById('elapsed').textContent = event.duration + 'ms'
|
|
681
|
+
setRunning(false)
|
|
522
682
|
updateStats()
|
|
523
683
|
break
|
|
524
684
|
}
|
|
@@ -536,6 +696,17 @@ export function generateDashboardHtml() {
|
|
|
536
696
|
document.getElementById('elapsed').textContent =
|
|
537
697
|
(Date.now() - state.runStartTime) + 'ms'
|
|
538
698
|
}
|
|
699
|
+
|
|
700
|
+
// Progress bar
|
|
701
|
+
var bar = document.getElementById('progress-bar')
|
|
702
|
+
var fill = document.getElementById('progress-fill')
|
|
703
|
+
if (state.sceneCount > 0) {
|
|
704
|
+
bar.classList.add('visible')
|
|
705
|
+
var pct = Math.round((completed / state.sceneCount) * 100)
|
|
706
|
+
fill.style.width = pct + '%'
|
|
707
|
+
bar.classList.toggle('done', completed === state.sceneCount && state.failCount === 0)
|
|
708
|
+
bar.classList.toggle('has-failures', state.failCount > 0)
|
|
709
|
+
}
|
|
539
710
|
}
|
|
540
711
|
|
|
541
712
|
// Update elapsed timer
|
|
@@ -630,20 +801,59 @@ export function generateDashboardHtml() {
|
|
|
630
801
|
'</div>'
|
|
631
802
|
}
|
|
632
803
|
|
|
804
|
+
const replayDisabled = state.scenes.some(s => s.status === 'running') ? ' disabled' : ''
|
|
805
|
+
const replayFileAttr = scene.file ? ' data-file="' + escapeHtml(scene.file) + '"' : ''
|
|
806
|
+
|
|
807
|
+
// Collect errors from failed actions and scene-level error
|
|
808
|
+
var errors = []
|
|
809
|
+
for (var _a of scene.actions.values()) {
|
|
810
|
+
for (var _act of _a) {
|
|
811
|
+
if (_act.error) {
|
|
812
|
+
errors.push({ action: _act.action, target: _act.target, msg: _act.error })
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
if (scene.error && !errors.some(function(e) { return e.msg === scene.error })) {
|
|
817
|
+
errors.push({ action: null, target: null, msg: scene.error })
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
var errorsHtml = ''
|
|
821
|
+
if (errors.length > 0) {
|
|
822
|
+
var lines = ''
|
|
823
|
+
for (var _e of errors) {
|
|
824
|
+
var actionLabel = _e.action
|
|
825
|
+
? '<span class="error-action">' + escapeHtml(_e.action + (_e.target ? '(' + _e.target + ')' : '')) + '</span> '
|
|
826
|
+
: ''
|
|
827
|
+
lines += '<div class="scene-error-line">' +
|
|
828
|
+
'<span class="error-icon">\\u2717</span> ' +
|
|
829
|
+
actionLabel +
|
|
830
|
+
'<span class="error-msg">' + escapeHtml(_e.msg) + '</span>' +
|
|
831
|
+
'</div>'
|
|
832
|
+
}
|
|
833
|
+
errorsHtml = '<div class="scene-errors" style="border-radius: 0 0 8px 8px;">' + lines + '</div>'
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
var lanesRadius = errors.length > 0 ? '' : ' style="border-radius: 0 0 8px 8px;"'
|
|
837
|
+
|
|
633
838
|
el.innerHTML =
|
|
634
839
|
'<div class="scene-header">' +
|
|
635
840
|
'<span class="icon" style="color:' + statusColor + '">' + statusIcon + '</span>' +
|
|
636
841
|
'<span class="name">' + escapeHtml(scene.name) + '</span>' +
|
|
637
842
|
'<span class="file">' + escapeHtml(scene.file || '') + '</span>' +
|
|
638
843
|
'<span class="duration">' + durationStr + '</span>' +
|
|
844
|
+
'<button class="replay-btn scene-replay-btn"' + replayFileAttr + replayDisabled +
|
|
845
|
+
' onclick="replayScene(this)">' +
|
|
846
|
+
'<span class="play-icon">▶</span> Replay' +
|
|
847
|
+
'</button>' +
|
|
639
848
|
'</div>' +
|
|
640
|
-
'<div class="swim-lanes">' +
|
|
849
|
+
'<div class="swim-lanes"' + lanesRadius + '>' +
|
|
641
850
|
'<div class="time-ruler">' +
|
|
642
851
|
'<div class="lane-label" style="font-size:10px;color:var(--text2)">time</div>' +
|
|
643
852
|
'<div class="ruler-track">' + rulerHtml + '</div>' +
|
|
644
853
|
'</div>' +
|
|
645
854
|
lanesHtml +
|
|
646
|
-
'</div>'
|
|
855
|
+
'</div>' +
|
|
856
|
+
errorsHtml
|
|
647
857
|
}
|
|
648
858
|
|
|
649
859
|
function formatMs(ms) {
|
|
@@ -655,6 +865,67 @@ export function generateDashboardHtml() {
|
|
|
655
865
|
if (!str) return ''
|
|
656
866
|
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"')
|
|
657
867
|
}
|
|
868
|
+
|
|
869
|
+
// ─── Run controls ─────────────────────────────────
|
|
870
|
+
var isPaused = false
|
|
871
|
+
|
|
872
|
+
function setRunning(running) {
|
|
873
|
+
document.querySelectorAll('.replay-btn').forEach(function(btn) {
|
|
874
|
+
btn.disabled = running
|
|
875
|
+
})
|
|
876
|
+
if (running) {
|
|
877
|
+
document.querySelector('header').classList.add('running')
|
|
878
|
+
} else {
|
|
879
|
+
document.querySelector('header').classList.remove('running')
|
|
880
|
+
isPaused = false
|
|
881
|
+
updatePauseButton()
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
function updatePauseButton() {
|
|
886
|
+
document.getElementById('pause-icon').innerHTML = isPaused ? '▶' : '▮▮'
|
|
887
|
+
document.getElementById('pause-label').textContent = isPaused ? 'Resume' : 'Pause'
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
function replayAll() {
|
|
891
|
+
setRunning(true)
|
|
892
|
+
fetch('/__scenetest/replay', {
|
|
893
|
+
method: 'POST',
|
|
894
|
+
headers: { 'Content-Type': 'application/json' },
|
|
895
|
+
body: '{}',
|
|
896
|
+
}).catch(function() {
|
|
897
|
+
setRunning(false)
|
|
898
|
+
})
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
function replayScene(btn) {
|
|
902
|
+
var file = btn.getAttribute('data-file')
|
|
903
|
+
if (!file) return
|
|
904
|
+
setRunning(true)
|
|
905
|
+
fetch('/__scenetest/replay', {
|
|
906
|
+
method: 'POST',
|
|
907
|
+
headers: { 'Content-Type': 'application/json' },
|
|
908
|
+
body: JSON.stringify({ file: file }),
|
|
909
|
+
}).catch(function() {
|
|
910
|
+
setRunning(false)
|
|
911
|
+
})
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
function stopRun() {
|
|
915
|
+
fetch('/__scenetest/stop', { method: 'POST' })
|
|
916
|
+
.then(function() { setRunning(false) })
|
|
917
|
+
.catch(function() { setRunning(false) })
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
function togglePause() {
|
|
921
|
+
fetch('/__scenetest/pause', { method: 'POST' })
|
|
922
|
+
.then(function(r) { return r.json() })
|
|
923
|
+
.then(function(data) {
|
|
924
|
+
isPaused = data.paused
|
|
925
|
+
updatePauseButton()
|
|
926
|
+
})
|
|
927
|
+
.catch(function() {})
|
|
928
|
+
}
|
|
658
929
|
</script>
|
|
659
930
|
</body>
|
|
660
931
|
</html>`;
|
package/dist/dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA65BD,CAAA;AACR,CAAC"}
|
package/dist/middleware.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAelD;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWvG;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAgNzG"}
|
package/dist/middleware.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import path from 'path';
|
|
2
4
|
import { RESOLVED_VIRTUAL_MODULE_ID } from './virtual-module.js';
|
|
3
5
|
import { loadConfig } from './config.js';
|
|
4
6
|
import { EventHub } from './event-hub.js';
|
|
@@ -51,6 +53,8 @@ export function failed(description, context) {
|
|
|
51
53
|
*/
|
|
52
54
|
export function createScenetestMiddleware(server, root) {
|
|
53
55
|
const eventHub = new EventHub();
|
|
56
|
+
let activeReplay = null;
|
|
57
|
+
let paused = false;
|
|
54
58
|
return async (req, res, next) => {
|
|
55
59
|
// ── Dashboard page ──────────────────────────────────────
|
|
56
60
|
if (req.method === 'GET' && req.url === '/__scenetest/dashboard') {
|
|
@@ -86,6 +90,74 @@ export function createScenetestMiddleware(server, root) {
|
|
|
86
90
|
res.end('{"ok":true}');
|
|
87
91
|
return;
|
|
88
92
|
}
|
|
93
|
+
// ── Replay endpoint ──────────────────────────────────────
|
|
94
|
+
if (req.method === 'POST' && req.url === '/__scenetest/replay') {
|
|
95
|
+
let body = '';
|
|
96
|
+
for await (const chunk of req) {
|
|
97
|
+
body += chunk;
|
|
98
|
+
}
|
|
99
|
+
let file;
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(body);
|
|
102
|
+
file = parsed.file;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// No body or invalid JSON — replay all
|
|
106
|
+
}
|
|
107
|
+
// If a replay is already running, kill it first
|
|
108
|
+
if (activeReplay && activeReplay.exitCode === null) {
|
|
109
|
+
activeReplay.kill();
|
|
110
|
+
}
|
|
111
|
+
// Build the CLI args
|
|
112
|
+
const args = [];
|
|
113
|
+
if (file) {
|
|
114
|
+
// file is relative to scenetest/scenes/, resolve to full path
|
|
115
|
+
args.push(path.resolve(root, 'scenetest', 'scenes', file));
|
|
116
|
+
}
|
|
117
|
+
// Spawn the scenetest CLI as a child process
|
|
118
|
+
activeReplay = spawn('npx', ['scenetest', ...args], {
|
|
119
|
+
cwd: root,
|
|
120
|
+
stdio: 'ignore',
|
|
121
|
+
shell: true,
|
|
122
|
+
});
|
|
123
|
+
activeReplay.on('error', () => {
|
|
124
|
+
// Silently ignore spawn errors
|
|
125
|
+
});
|
|
126
|
+
paused = false;
|
|
127
|
+
res.statusCode = 200;
|
|
128
|
+
res.setHeader('Content-Type', 'application/json');
|
|
129
|
+
res.end(JSON.stringify({ ok: true }));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// ── Stop running tests ──────────────────────────────────
|
|
133
|
+
if (req.method === 'POST' && req.url === '/__scenetest/stop') {
|
|
134
|
+
if (activeReplay && activeReplay.exitCode === null) {
|
|
135
|
+
activeReplay.kill();
|
|
136
|
+
activeReplay = null;
|
|
137
|
+
}
|
|
138
|
+
paused = false;
|
|
139
|
+
res.statusCode = 200;
|
|
140
|
+
res.setHeader('Content-Type', 'application/json');
|
|
141
|
+
res.end(JSON.stringify({ ok: true }));
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// ── Pause / resume running tests ────────────────────────
|
|
145
|
+
if (req.method === 'POST' && req.url === '/__scenetest/pause') {
|
|
146
|
+
if (activeReplay && activeReplay.exitCode === null && activeReplay.pid) {
|
|
147
|
+
if (paused) {
|
|
148
|
+
process.kill(activeReplay.pid, 'SIGCONT');
|
|
149
|
+
paused = false;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
process.kill(activeReplay.pid, 'SIGSTOP');
|
|
153
|
+
paused = true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
res.statusCode = 200;
|
|
157
|
+
res.setHeader('Content-Type', 'application/json');
|
|
158
|
+
res.end(JSON.stringify({ ok: true, paused }));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
89
161
|
// ── Assertion RPC (existing) ────────────────────────────
|
|
90
162
|
if (req.method !== 'POST' || req.url !== '/__scenetest/run') {
|
|
91
163
|
return next();
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAqB,CAAA;AAEnE;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,WAAmB,EAAE,SAAkB,EAAE,OAAiC;IAC/F,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACjC,WAAW;YACX,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,WAAmB,EAAE,OAAiC;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,WAAW;YACX,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAqB,EAAE,IAAY;IAC3E,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAA;AACxD,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAqB,CAAA;AAEnE;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,WAAmB,EAAE,SAAkB,EAAE,OAAiC;IAC/F,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACjC,WAAW;YACX,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,WAAmB,EAAE,OAAiC;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,WAAW;YACX,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAqB,EAAE,IAAY;IAC3E,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC/B,IAAI,YAAY,GAAwB,IAAI,CAAA;IAC5C,IAAI,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,wBAAwB,EAAE,CAAC;YACjE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAA;YACzD,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAC9D,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAC/D,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC9B,IAAI,IAAI,KAAK,CAAA;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC9B,wDAAwD;gBACxD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC/B,QAAQ,CAAC,KAAK,EAAE,CAAA;gBAClB,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;YAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QAED,4DAA4D;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAC/D,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC9B,IAAI,IAAI,KAAK,CAAA;YACf,CAAC;YAED,IAAI,IAAwB,CAAA;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC/B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;YAED,gDAAgD;YAChD,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACnD,YAAY,CAAC,IAAI,EAAE,CAAA;YACrB,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,GAAa,EAAE,CAAA;YACzB,IAAI,IAAI,EAAE,CAAC;gBACT,8DAA8D;gBAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAC5D,CAAC;YAED,6CAA6C;YAC7C,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE;gBAClD,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC,CAAA;YAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5B,+BAA+B;YACjC,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,KAAK,CAAA;YACd,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,mBAAmB,EAAE,CAAC;YAC7D,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACnD,YAAY,CAAC,IAAI,EAAE,CAAA;gBACnB,YAAY,GAAG,IAAI,CAAA;YACrB,CAAC;YACD,MAAM,GAAG,KAAK,CAAA;YACd,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,oBAAoB,EAAE,CAAC;YAC9D,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC;gBACvE,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;oBACzC,MAAM,GAAG,KAAK,CAAA;gBAChB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;oBACzC,MAAM,GAAG,IAAI,CAAA;gBACf,CAAC;YACH,CAAC;YACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;YAC7C,OAAM;QACR,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC5D,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC9B,IAAI,IAAI,KAAK,CAAA;QACf,CAAC;QAED,IAAI,OAA4B,CAAA;QAChC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAA;YACvF,OAAM;QACR,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAEnC,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAA;YAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,UAA4F,CAAA;YAE7H,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAIL,CAAA;YAEzB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAyB;oBACrC,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,6BAA6B,EAAE,EAAE;iBACzC,CAAA;gBACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;gBACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACjC,OAAM;YACR,CAAC;YAED,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;YACvE,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAkB,CAAA;YAE5D,gEAAgE;YAChE,MAAM,OAAO,GAAsB,EAAE,CAAA;YAErC,MAAM,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC7C,IAAI,CAAC;oBACH,0DAA0D;oBAC1D,MAAM,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;gBACzD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,MAAM;wBACZ,WAAW,EAAE,GAAG,KAAK,2BAA2B;wBAChD,MAAM,EAAE,KAAK;wBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACrE,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAyB;gBACrC,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,CAAA;YAED,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;YAC/D,MAAM,QAAQ,GAAyB;gBACrC,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAA;YACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnC,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scenetest/vite-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Vite plugin for scenetest - strips assertions in production, injects dev panel",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"@babel/traverse": "^7.24.0",
|
|
41
41
|
"@babel/types": "^7.24.0",
|
|
42
42
|
"magic-string": "^0.30.10",
|
|
43
|
-
"@scenetest/checks": "0.
|
|
44
|
-
"@scenetest/scenes-panel": "0.
|
|
45
|
-
"@scenetest/checks-panel": "0.
|
|
43
|
+
"@scenetest/checks": "0.7.0",
|
|
44
|
+
"@scenetest/scenes-panel": "0.7.0",
|
|
45
|
+
"@scenetest/checks-panel": "0.7.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
|