@scenetest/vite-plugin 0.11.0 → 0.13.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/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/panels/observer/audio.d.ts +81 -0
- package/dist/panels/observer/audio.d.ts.map +1 -0
- package/dist/panels/observer/audio.js +296 -0
- package/dist/panels/observer/audio.js.map +1 -0
- package/dist/panels/observer/auto.d.ts +10 -0
- package/dist/panels/observer/auto.d.ts.map +1 -0
- package/dist/panels/observer/auto.js +11 -0
- package/dist/panels/observer/auto.js.map +1 -0
- package/dist/panels/observer/fs-viewer.d.ts +20 -0
- package/dist/panels/observer/fs-viewer.d.ts.map +1 -0
- package/dist/panels/observer/fs-viewer.js +536 -0
- package/dist/panels/observer/fs-viewer.js.map +1 -0
- package/dist/panels/observer/fullscreen.d.ts +24 -0
- package/dist/panels/observer/fullscreen.d.ts.map +1 -0
- package/dist/panels/observer/fullscreen.js +701 -0
- package/dist/panels/observer/fullscreen.js.map +1 -0
- package/dist/panels/observer/history.d.ts +41 -0
- package/dist/panels/observer/history.d.ts.map +1 -0
- package/dist/panels/observer/history.js +307 -0
- package/dist/panels/observer/history.js.map +1 -0
- package/dist/panels/observer/index.d.ts +33 -0
- package/dist/panels/observer/index.d.ts.map +1 -0
- package/dist/panels/observer/index.js +128 -0
- package/dist/panels/observer/index.js.map +1 -0
- package/dist/panels/observer/panel.d.ts +12 -0
- package/dist/panels/observer/panel.d.ts.map +1 -0
- package/dist/panels/observer/panel.js +461 -0
- package/dist/panels/observer/panel.js.map +1 -0
- package/dist/panels/observer/render.d.ts +109 -0
- package/dist/panels/observer/render.d.ts.map +1 -0
- package/dist/panels/observer/render.js +760 -0
- package/dist/panels/observer/render.js.map +1 -0
- package/dist/panels/observer/state.d.ts +57 -0
- package/dist/panels/observer/state.d.ts.map +1 -0
- package/dist/panels/observer/state.js +187 -0
- package/dist/panels/observer/state.js.map +1 -0
- package/dist/panels/observer/styles.d.ts +6 -0
- package/dist/panels/observer/styles.d.ts.map +1 -0
- package/dist/panels/observer/styles.js +1706 -0
- package/dist/panels/observer/styles.js.map +1 -0
- package/dist/panels/observer/types.d.ts +102 -0
- package/dist/panels/observer/types.d.ts.map +1 -0
- package/dist/panels/observer/types.js +5 -0
- package/dist/panels/observer/types.js.map +1 -0
- package/dist/panels/observer/utils.d.ts +45 -0
- package/dist/panels/observer/utils.d.ts.map +1 -0
- package/dist/panels/observer/utils.js +101 -0
- package/dist/panels/observer/utils.js.map +1 -0
- package/dist/panels/recorder/auto.d.ts +10 -0
- package/dist/panels/recorder/auto.d.ts.map +1 -0
- package/dist/panels/recorder/auto.js +11 -0
- package/dist/panels/recorder/auto.js.map +1 -0
- package/dist/panels/recorder/capture.d.ts +18 -0
- package/dist/panels/recorder/capture.d.ts.map +1 -0
- package/dist/panels/recorder/capture.js +218 -0
- package/dist/panels/recorder/capture.js.map +1 -0
- package/dist/panels/recorder/index.d.ts +41 -0
- package/dist/panels/recorder/index.d.ts.map +1 -0
- package/dist/panels/recorder/index.js +208 -0
- package/dist/panels/recorder/index.js.map +1 -0
- package/dist/panels/recorder/panel.d.ts +55 -0
- package/dist/panels/recorder/panel.d.ts.map +1 -0
- package/dist/panels/recorder/panel.js +284 -0
- package/dist/panels/recorder/panel.js.map +1 -0
- package/dist/panels/recorder/reverse-selector.d.ts +31 -0
- package/dist/panels/recorder/reverse-selector.d.ts.map +1 -0
- package/dist/panels/recorder/reverse-selector.js +116 -0
- package/dist/panels/recorder/reverse-selector.js.map +1 -0
- package/dist/panels/recorder/styles.d.ts +5 -0
- package/dist/panels/recorder/styles.d.ts.map +1 -0
- package/dist/panels/recorder/styles.js +300 -0
- package/dist/panels/recorder/styles.js.map +1 -0
- package/dist/panels/recorder/types.d.ts +51 -0
- package/dist/panels/recorder/types.d.ts.map +1 -0
- package/dist/panels/recorder/types.js +15 -0
- package/dist/panels/recorder/types.js.map +1 -0
- package/dist/strip.d.ts.map +1 -1
- package/dist/strip.js +6 -3
- package/dist/strip.js.map +1 -1
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +5 -2
- package/dist/transform.js.map +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reverse selector resolution: given a DOM element, produce a scenetest selector string.
|
|
3
|
+
*
|
|
4
|
+
* This is the inverse of resolveSelector() in @scenetest/cli.
|
|
5
|
+
* Instead of selector → element, it goes element → selector.
|
|
6
|
+
*
|
|
7
|
+
* Algorithm:
|
|
8
|
+
* 1. Starting from the target element, find the first addressable attribute
|
|
9
|
+
* 2. Walk up ancestors collecting addressable tokens to build a unique path
|
|
10
|
+
* 3. Return the space-separated selector string (parent child grandchild)
|
|
11
|
+
*/
|
|
12
|
+
import { SELECTOR_ATTRIBUTES } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Elements that are part of the recorder UI and should be ignored
|
|
15
|
+
*/
|
|
16
|
+
const RECORDER_PANEL_ID = 'scenetest-recorder';
|
|
17
|
+
const OBSERVER_PANEL_ID = 'scenetest-panel';
|
|
18
|
+
/**
|
|
19
|
+
* Get the best scenetest selector token for a single element.
|
|
20
|
+
* Returns the attribute value from the highest-priority attribute found,
|
|
21
|
+
* or null if the element has no addressable attributes.
|
|
22
|
+
*/
|
|
23
|
+
function getElementToken(el) {
|
|
24
|
+
for (const attr of SELECTOR_ATTRIBUTES) {
|
|
25
|
+
const value = el.getAttribute(attr);
|
|
26
|
+
if (value) {
|
|
27
|
+
return { token: value, attr };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if a selector token uniquely identifies an element within a parent scope.
|
|
34
|
+
*/
|
|
35
|
+
function isUniqueInScope(token, scope) {
|
|
36
|
+
const selector = SELECTOR_ATTRIBUTES
|
|
37
|
+
.map(attr => `[${attr}="${CSS.escape(token)}"]`)
|
|
38
|
+
.join(', ');
|
|
39
|
+
const matches = scope.querySelectorAll(selector);
|
|
40
|
+
return matches.length === 1;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a DOM element to a scenetest selector string.
|
|
44
|
+
*
|
|
45
|
+
* Walks up from the element collecting addressable tokens until
|
|
46
|
+
* the path uniquely identifies the element.
|
|
47
|
+
*
|
|
48
|
+
* @returns The selector string, or null if the element can't be addressed
|
|
49
|
+
*/
|
|
50
|
+
export function reverseSelector(element) {
|
|
51
|
+
// Don't resolve elements inside the recorder or observer panels
|
|
52
|
+
if (isInsidePanel(element)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const tokens = [];
|
|
56
|
+
let current = element;
|
|
57
|
+
// Walk up from the target, collecting addressable ancestor tokens
|
|
58
|
+
while (current && current !== document.body && current !== document.documentElement) {
|
|
59
|
+
const info = getElementToken(current);
|
|
60
|
+
if (info) {
|
|
61
|
+
tokens.unshift(info.token);
|
|
62
|
+
// Check if the path so far is unique from document root
|
|
63
|
+
if (tokens.length === 1 && isUniqueInScope(info.token, document)) {
|
|
64
|
+
return tokens.join(' ');
|
|
65
|
+
}
|
|
66
|
+
// With multiple tokens, check if the full path is likely unique
|
|
67
|
+
if (tokens.length >= 2) {
|
|
68
|
+
// For nested selectors, we have enough context
|
|
69
|
+
return tokens.join(' ');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
current = current.parentElement;
|
|
73
|
+
}
|
|
74
|
+
// If we collected any tokens, return them
|
|
75
|
+
if (tokens.length > 0) {
|
|
76
|
+
return tokens.join(' ');
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Find the nearest addressable ancestor (or self) for an element.
|
|
82
|
+
* Useful when the clicked element itself has no selector but a parent does.
|
|
83
|
+
*/
|
|
84
|
+
export function nearestAddressable(element) {
|
|
85
|
+
let current = element;
|
|
86
|
+
while (current && current !== document.body && current !== document.documentElement) {
|
|
87
|
+
if (getElementToken(current)) {
|
|
88
|
+
return current;
|
|
89
|
+
}
|
|
90
|
+
current = current.parentElement;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if an element is inside the recorder or observer panel
|
|
96
|
+
*/
|
|
97
|
+
function isInsidePanel(element) {
|
|
98
|
+
let current = element;
|
|
99
|
+
while (current) {
|
|
100
|
+
if (current.id === RECORDER_PANEL_ID || current.id === OBSERVER_PANEL_ID) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
current = current.parentElement;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get a human-readable description of why an element can't be addressed.
|
|
109
|
+
* Used to show warnings when clicking unaddressable elements.
|
|
110
|
+
*/
|
|
111
|
+
export function explainUnaddressable(element) {
|
|
112
|
+
const tag = element.tagName.toLowerCase();
|
|
113
|
+
const text = element.textContent?.slice(0, 30) || '';
|
|
114
|
+
return `<${tag}>${text ? ` "${text}..."` : ''} has no aria-label, data-testid, or other addressable attribute`;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=reverse-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-selector.js","sourceRoot":"","sources":["../../../src/panels/recorder/reverse-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS styles for the recorder sidebar panel
|
|
3
|
+
*/
|
|
4
|
+
export declare const recorderStyles = "\n#scenetest-recorder {\n position: fixed;\n top: 0;\n left: 0;\n width: 360px;\n height: 100vh;\n background: #0f0f1a;\n border-right: 2px solid #4a4a6a;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;\n font-size: 12px;\n color: #e0e0e0;\n z-index: 999998;\n display: flex;\n flex-direction: column;\n box-shadow: 4px 0 24px rgba(0,0,0,0.4);\n}\n#scenetest-recorder.collapsed {\n width: 48px;\n}\n#scenetest-recorder.collapsed .recorder-header-title,\n#scenetest-recorder.collapsed .recorder-actions,\n#scenetest-recorder.collapsed .recorder-lines,\n#scenetest-recorder.collapsed .recorder-footer {\n display: none;\n}\n#scenetest-recorder.collapsed .recorder-header {\n flex-direction: column;\n padding: 12px 8px;\n gap: 8px;\n}\n\n/* Push app content right when recorder is open */\n#scenetest-recorder:not(.collapsed) ~ *,\n#scenetest-recorder:not(.collapsed) ~ #scenetest-panel {\n /* Can't push siblings reliably; app should use the CSS var */\n}\n\n/* Header */\n.recorder-header {\n padding: 12px 16px;\n background: #1a1a2e;\n border-bottom: 1px solid #4a4a6a;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n.recorder-header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.recorder-header-title {\n font-weight: 600;\n color: #a0a0ff;\n font-size: 13px;\n}\n.recorder-rec-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #f87171;\n animation: rec-pulse 1.2s ease-in-out infinite;\n}\n.recorder-rec-dot.paused {\n background: #6a6a8a;\n animation: none;\n}\n@keyframes rec-pulse {\n 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.4); }\n 50% { opacity: 0.6; box-shadow: 0 0 0 6px rgba(248, 113, 113, 0); }\n}\n.recorder-toggle-btn {\n background: none;\n border: 1px solid #4a4a6a;\n color: #a0a0a0;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n flex-shrink: 0;\n}\n.recorder-toggle-btn:hover {\n background: #3a3a5a;\n color: #e0e0e0;\n}\n\n/* Actions bar */\n.recorder-actions {\n padding: 8px 16px;\n background: #151528;\n border-bottom: 1px solid #3a3a5a;\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n flex-wrap: wrap;\n}\n.recorder-btn {\n background: none;\n border: 1px solid #4a4a6a;\n color: #a0a0a0;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 11px;\n font-family: inherit;\n transition: all 0.15s;\n}\n.recorder-btn:hover {\n background: #3a3a5a;\n color: #e0e0e0;\n}\n.recorder-btn.active {\n background: #4a4a6a;\n color: #fff;\n}\n.recorder-btn.danger:hover {\n background: #3a1a1a;\n color: #f87171;\n border-color: #f87171;\n}\n.recorder-btn.primary {\n background: #2a2a6a;\n color: #a0a0ff;\n border-color: #6a6aaa;\n}\n.recorder-btn.primary:hover {\n background: #3a3a8a;\n color: #c0c0ff;\n}\n\n/* Lines container */\n.recorder-lines {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n.recorder-empty {\n padding: 40px 20px;\n text-align: center;\n color: #6a6a8a;\n line-height: 1.6;\n}\n.recorder-empty-icon {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n/* Individual DSL line */\n.recorder-line {\n padding: 6px 16px;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n border-bottom: 1px solid #1a1a2e;\n transition: background 0.1s;\n cursor: default;\n min-height: 28px;\n}\n.recorder-line:hover {\n background: #1a1a2e;\n}\n.recorder-line:hover .recorder-line-delete {\n opacity: 1;\n}\n.recorder-line-number {\n color: #4a4a6a;\n font-size: 10px;\n min-width: 20px;\n text-align: right;\n padding-top: 2px;\n user-select: none;\n flex-shrink: 0;\n}\n.recorder-line-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.recorder-line-text {\n word-break: break-word;\n line-height: 1.5;\n}\n\n/* Syntax highlighting for DSL */\n.recorder-action {\n color: #c792ea;\n font-weight: 500;\n}\n.recorder-selector {\n color: #82aaff;\n}\n.recorder-value {\n color: #c3e88d;\n}\n.recorder-prefix {\n color: #6a6a8a;\n user-select: none;\n}\n\n/* Delete button */\n.recorder-line-delete {\n opacity: 0;\n background: none;\n border: none;\n color: #6a6a8a;\n cursor: pointer;\n font-size: 14px;\n padding: 0 4px;\n transition: all 0.1s;\n flex-shrink: 0;\n}\n.recorder-line-delete:hover {\n color: #f87171;\n}\n\n/* New line animation */\n.recorder-line.new {\n animation: line-slide-in 0.2s ease-out;\n}\n@keyframes line-slide-in {\n from {\n opacity: 0;\n transform: translateX(-10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n/* Assertion annotation */\n.recorder-annotation {\n padding: 3px 16px 3px 46px;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n animation: annotation-fade-in 0.3s ease-out;\n}\n.recorder-annotation.pass {\n color: #4ade80;\n}\n.recorder-annotation.fail {\n color: #f87171;\n background: rgba(248, 113, 113, 0.05);\n}\n.recorder-annotation-icon {\n font-size: 10px;\n flex-shrink: 0;\n}\n.recorder-annotation-text {\n font-style: italic;\n}\n@keyframes annotation-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* Warning toast */\n.recorder-warning {\n padding: 4px 16px 4px 46px;\n font-size: 11px;\n color: #f59e0b;\n display: flex;\n align-items: center;\n gap: 6px;\n animation: annotation-fade-in 0.3s ease-out;\n}\n.recorder-warning-icon {\n flex-shrink: 0;\n}\n\n/* Footer */\n.recorder-footer {\n padding: 10px 16px;\n background: #1a1a2e;\n border-top: 1px solid #4a4a6a;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n.recorder-line-count {\n color: #6a6a8a;\n font-size: 11px;\n}\n";
|
|
5
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/panels/recorder/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc,qxLAuS1B,CAAA"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS styles for the recorder sidebar panel
|
|
3
|
+
*/
|
|
4
|
+
export const recorderStyles = `
|
|
5
|
+
#scenetest-recorder {
|
|
6
|
+
position: fixed;
|
|
7
|
+
top: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
width: 360px;
|
|
10
|
+
height: 100vh;
|
|
11
|
+
background: #0f0f1a;
|
|
12
|
+
border-right: 2px solid #4a4a6a;
|
|
13
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
|
|
14
|
+
font-size: 12px;
|
|
15
|
+
color: #e0e0e0;
|
|
16
|
+
z-index: 999998;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
box-shadow: 4px 0 24px rgba(0,0,0,0.4);
|
|
20
|
+
}
|
|
21
|
+
#scenetest-recorder.collapsed {
|
|
22
|
+
width: 48px;
|
|
23
|
+
}
|
|
24
|
+
#scenetest-recorder.collapsed .recorder-header-title,
|
|
25
|
+
#scenetest-recorder.collapsed .recorder-actions,
|
|
26
|
+
#scenetest-recorder.collapsed .recorder-lines,
|
|
27
|
+
#scenetest-recorder.collapsed .recorder-footer {
|
|
28
|
+
display: none;
|
|
29
|
+
}
|
|
30
|
+
#scenetest-recorder.collapsed .recorder-header {
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
padding: 12px 8px;
|
|
33
|
+
gap: 8px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Push app content right when recorder is open */
|
|
37
|
+
#scenetest-recorder:not(.collapsed) ~ *,
|
|
38
|
+
#scenetest-recorder:not(.collapsed) ~ #scenetest-panel {
|
|
39
|
+
/* Can't push siblings reliably; app should use the CSS var */
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Header */
|
|
43
|
+
.recorder-header {
|
|
44
|
+
padding: 12px 16px;
|
|
45
|
+
background: #1a1a2e;
|
|
46
|
+
border-bottom: 1px solid #4a4a6a;
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: space-between;
|
|
49
|
+
align-items: center;
|
|
50
|
+
flex-shrink: 0;
|
|
51
|
+
}
|
|
52
|
+
.recorder-header-left {
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
gap: 10px;
|
|
56
|
+
}
|
|
57
|
+
.recorder-header-title {
|
|
58
|
+
font-weight: 600;
|
|
59
|
+
color: #a0a0ff;
|
|
60
|
+
font-size: 13px;
|
|
61
|
+
}
|
|
62
|
+
.recorder-rec-dot {
|
|
63
|
+
width: 10px;
|
|
64
|
+
height: 10px;
|
|
65
|
+
border-radius: 50%;
|
|
66
|
+
background: #f87171;
|
|
67
|
+
animation: rec-pulse 1.2s ease-in-out infinite;
|
|
68
|
+
}
|
|
69
|
+
.recorder-rec-dot.paused {
|
|
70
|
+
background: #6a6a8a;
|
|
71
|
+
animation: none;
|
|
72
|
+
}
|
|
73
|
+
@keyframes rec-pulse {
|
|
74
|
+
0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.4); }
|
|
75
|
+
50% { opacity: 0.6; box-shadow: 0 0 0 6px rgba(248, 113, 113, 0); }
|
|
76
|
+
}
|
|
77
|
+
.recorder-toggle-btn {
|
|
78
|
+
background: none;
|
|
79
|
+
border: 1px solid #4a4a6a;
|
|
80
|
+
color: #a0a0a0;
|
|
81
|
+
width: 28px;
|
|
82
|
+
height: 28px;
|
|
83
|
+
border-radius: 4px;
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
font-size: 14px;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
transition: all 0.15s;
|
|
90
|
+
flex-shrink: 0;
|
|
91
|
+
}
|
|
92
|
+
.recorder-toggle-btn:hover {
|
|
93
|
+
background: #3a3a5a;
|
|
94
|
+
color: #e0e0e0;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Actions bar */
|
|
98
|
+
.recorder-actions {
|
|
99
|
+
padding: 8px 16px;
|
|
100
|
+
background: #151528;
|
|
101
|
+
border-bottom: 1px solid #3a3a5a;
|
|
102
|
+
display: flex;
|
|
103
|
+
gap: 6px;
|
|
104
|
+
flex-shrink: 0;
|
|
105
|
+
flex-wrap: wrap;
|
|
106
|
+
}
|
|
107
|
+
.recorder-btn {
|
|
108
|
+
background: none;
|
|
109
|
+
border: 1px solid #4a4a6a;
|
|
110
|
+
color: #a0a0a0;
|
|
111
|
+
padding: 4px 10px;
|
|
112
|
+
border-radius: 4px;
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
font-size: 11px;
|
|
115
|
+
font-family: inherit;
|
|
116
|
+
transition: all 0.15s;
|
|
117
|
+
}
|
|
118
|
+
.recorder-btn:hover {
|
|
119
|
+
background: #3a3a5a;
|
|
120
|
+
color: #e0e0e0;
|
|
121
|
+
}
|
|
122
|
+
.recorder-btn.active {
|
|
123
|
+
background: #4a4a6a;
|
|
124
|
+
color: #fff;
|
|
125
|
+
}
|
|
126
|
+
.recorder-btn.danger:hover {
|
|
127
|
+
background: #3a1a1a;
|
|
128
|
+
color: #f87171;
|
|
129
|
+
border-color: #f87171;
|
|
130
|
+
}
|
|
131
|
+
.recorder-btn.primary {
|
|
132
|
+
background: #2a2a6a;
|
|
133
|
+
color: #a0a0ff;
|
|
134
|
+
border-color: #6a6aaa;
|
|
135
|
+
}
|
|
136
|
+
.recorder-btn.primary:hover {
|
|
137
|
+
background: #3a3a8a;
|
|
138
|
+
color: #c0c0ff;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Lines container */
|
|
142
|
+
.recorder-lines {
|
|
143
|
+
flex: 1;
|
|
144
|
+
overflow-y: auto;
|
|
145
|
+
padding: 8px 0;
|
|
146
|
+
}
|
|
147
|
+
.recorder-empty {
|
|
148
|
+
padding: 40px 20px;
|
|
149
|
+
text-align: center;
|
|
150
|
+
color: #6a6a8a;
|
|
151
|
+
line-height: 1.6;
|
|
152
|
+
}
|
|
153
|
+
.recorder-empty-icon {
|
|
154
|
+
font-size: 32px;
|
|
155
|
+
margin-bottom: 12px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Individual DSL line */
|
|
159
|
+
.recorder-line {
|
|
160
|
+
padding: 6px 16px;
|
|
161
|
+
display: flex;
|
|
162
|
+
align-items: flex-start;
|
|
163
|
+
gap: 8px;
|
|
164
|
+
border-bottom: 1px solid #1a1a2e;
|
|
165
|
+
transition: background 0.1s;
|
|
166
|
+
cursor: default;
|
|
167
|
+
min-height: 28px;
|
|
168
|
+
}
|
|
169
|
+
.recorder-line:hover {
|
|
170
|
+
background: #1a1a2e;
|
|
171
|
+
}
|
|
172
|
+
.recorder-line:hover .recorder-line-delete {
|
|
173
|
+
opacity: 1;
|
|
174
|
+
}
|
|
175
|
+
.recorder-line-number {
|
|
176
|
+
color: #4a4a6a;
|
|
177
|
+
font-size: 10px;
|
|
178
|
+
min-width: 20px;
|
|
179
|
+
text-align: right;
|
|
180
|
+
padding-top: 2px;
|
|
181
|
+
user-select: none;
|
|
182
|
+
flex-shrink: 0;
|
|
183
|
+
}
|
|
184
|
+
.recorder-line-content {
|
|
185
|
+
flex: 1;
|
|
186
|
+
min-width: 0;
|
|
187
|
+
display: flex;
|
|
188
|
+
flex-direction: column;
|
|
189
|
+
gap: 2px;
|
|
190
|
+
}
|
|
191
|
+
.recorder-line-text {
|
|
192
|
+
word-break: break-word;
|
|
193
|
+
line-height: 1.5;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* Syntax highlighting for DSL */
|
|
197
|
+
.recorder-action {
|
|
198
|
+
color: #c792ea;
|
|
199
|
+
font-weight: 500;
|
|
200
|
+
}
|
|
201
|
+
.recorder-selector {
|
|
202
|
+
color: #82aaff;
|
|
203
|
+
}
|
|
204
|
+
.recorder-value {
|
|
205
|
+
color: #c3e88d;
|
|
206
|
+
}
|
|
207
|
+
.recorder-prefix {
|
|
208
|
+
color: #6a6a8a;
|
|
209
|
+
user-select: none;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* Delete button */
|
|
213
|
+
.recorder-line-delete {
|
|
214
|
+
opacity: 0;
|
|
215
|
+
background: none;
|
|
216
|
+
border: none;
|
|
217
|
+
color: #6a6a8a;
|
|
218
|
+
cursor: pointer;
|
|
219
|
+
font-size: 14px;
|
|
220
|
+
padding: 0 4px;
|
|
221
|
+
transition: all 0.1s;
|
|
222
|
+
flex-shrink: 0;
|
|
223
|
+
}
|
|
224
|
+
.recorder-line-delete:hover {
|
|
225
|
+
color: #f87171;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* New line animation */
|
|
229
|
+
.recorder-line.new {
|
|
230
|
+
animation: line-slide-in 0.2s ease-out;
|
|
231
|
+
}
|
|
232
|
+
@keyframes line-slide-in {
|
|
233
|
+
from {
|
|
234
|
+
opacity: 0;
|
|
235
|
+
transform: translateX(-10px);
|
|
236
|
+
}
|
|
237
|
+
to {
|
|
238
|
+
opacity: 1;
|
|
239
|
+
transform: translateX(0);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/* Assertion annotation */
|
|
244
|
+
.recorder-annotation {
|
|
245
|
+
padding: 3px 16px 3px 46px;
|
|
246
|
+
font-size: 11px;
|
|
247
|
+
display: flex;
|
|
248
|
+
align-items: center;
|
|
249
|
+
gap: 6px;
|
|
250
|
+
animation: annotation-fade-in 0.3s ease-out;
|
|
251
|
+
}
|
|
252
|
+
.recorder-annotation.pass {
|
|
253
|
+
color: #4ade80;
|
|
254
|
+
}
|
|
255
|
+
.recorder-annotation.fail {
|
|
256
|
+
color: #f87171;
|
|
257
|
+
background: rgba(248, 113, 113, 0.05);
|
|
258
|
+
}
|
|
259
|
+
.recorder-annotation-icon {
|
|
260
|
+
font-size: 10px;
|
|
261
|
+
flex-shrink: 0;
|
|
262
|
+
}
|
|
263
|
+
.recorder-annotation-text {
|
|
264
|
+
font-style: italic;
|
|
265
|
+
}
|
|
266
|
+
@keyframes annotation-fade-in {
|
|
267
|
+
from { opacity: 0; }
|
|
268
|
+
to { opacity: 1; }
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* Warning toast */
|
|
272
|
+
.recorder-warning {
|
|
273
|
+
padding: 4px 16px 4px 46px;
|
|
274
|
+
font-size: 11px;
|
|
275
|
+
color: #f59e0b;
|
|
276
|
+
display: flex;
|
|
277
|
+
align-items: center;
|
|
278
|
+
gap: 6px;
|
|
279
|
+
animation: annotation-fade-in 0.3s ease-out;
|
|
280
|
+
}
|
|
281
|
+
.recorder-warning-icon {
|
|
282
|
+
flex-shrink: 0;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/* Footer */
|
|
286
|
+
.recorder-footer {
|
|
287
|
+
padding: 10px 16px;
|
|
288
|
+
background: #1a1a2e;
|
|
289
|
+
border-top: 1px solid #4a4a6a;
|
|
290
|
+
display: flex;
|
|
291
|
+
justify-content: space-between;
|
|
292
|
+
align-items: center;
|
|
293
|
+
flex-shrink: 0;
|
|
294
|
+
}
|
|
295
|
+
.recorder-line-count {
|
|
296
|
+
color: #6a6a8a;
|
|
297
|
+
font-size: 11px;
|
|
298
|
+
}
|
|
299
|
+
`;
|
|
300
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/panels/recorder/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuS7B,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the scene recorder
|
|
3
|
+
*/
|
|
4
|
+
export interface DslLine {
|
|
5
|
+
/** Unique id for this line */
|
|
6
|
+
id: number;
|
|
7
|
+
/** The DSL action text (e.g., "click submit-button") */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Timestamp when the action was recorded */
|
|
10
|
+
timestamp: number;
|
|
11
|
+
/** Whether this line has been "played" / confirmed */
|
|
12
|
+
played: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface AssertionAnnotation {
|
|
15
|
+
/** Which DSL line this annotation is attached to (by id) */
|
|
16
|
+
afterLineId: number;
|
|
17
|
+
/** Pass or fail */
|
|
18
|
+
type: 'pass' | 'fail';
|
|
19
|
+
/** The assertion description */
|
|
20
|
+
description: string;
|
|
21
|
+
/** Timestamp */
|
|
22
|
+
timestamp: number;
|
|
23
|
+
}
|
|
24
|
+
export interface RecorderState {
|
|
25
|
+
/** Whether we're currently recording */
|
|
26
|
+
recording: boolean;
|
|
27
|
+
/** Accumulated DSL lines */
|
|
28
|
+
lines: DslLine[];
|
|
29
|
+
/** Assertion annotations between lines */
|
|
30
|
+
annotations: AssertionAnnotation[];
|
|
31
|
+
/** Next line id counter */
|
|
32
|
+
nextId: number;
|
|
33
|
+
/** Whether an input is currently being typed into (debounce) */
|
|
34
|
+
pendingInput: PendingInput | null;
|
|
35
|
+
}
|
|
36
|
+
export interface PendingInput {
|
|
37
|
+
/** The target element */
|
|
38
|
+
element: HTMLElement;
|
|
39
|
+
/** The resolved selector */
|
|
40
|
+
selector: string;
|
|
41
|
+
/** Current value */
|
|
42
|
+
value: string;
|
|
43
|
+
/** Debounce timer */
|
|
44
|
+
timer: ReturnType<typeof setTimeout>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Selector attribute in priority order
|
|
48
|
+
*/
|
|
49
|
+
export declare const SELECTOR_ATTRIBUTES: readonly ["aria-label", "id", "data-testid", "data-name", "data-key", "name"];
|
|
50
|
+
export type SelectorAttribute = typeof SELECTOR_ATTRIBUTES[number];
|
|
51
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/panels/recorder/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B;IAC5B,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,0CAA0C;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAA;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,+EAOtB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the scene recorder
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Selector attribute in priority order
|
|
6
|
+
*/
|
|
7
|
+
export const SELECTOR_ATTRIBUTES = [
|
|
8
|
+
'aria-label',
|
|
9
|
+
'id',
|
|
10
|
+
'data-testid',
|
|
11
|
+
'data-name',
|
|
12
|
+
'data-key',
|
|
13
|
+
'name',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/panels/recorder/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgDH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,IAAI;IACJ,aAAa;IACb,WAAW;IACX,UAAU;IACV,MAAM;CACE,CAAA"}
|
package/dist/strip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;
|
|
1
|
+
{"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,GAAG,IAAI,CA0L3F"}
|
package/dist/strip.js
CHANGED
|
@@ -5,7 +5,10 @@ import MagicString from 'magic-string';
|
|
|
5
5
|
// Handle ESM/CJS interop for @babel/traverse
|
|
6
6
|
// Cast through any because @types/babel__traverse@7.28+ types the default export as a namespace, not a function
|
|
7
7
|
const traverse = (typeof _traverse === 'function' ? _traverse : _traverse.default);
|
|
8
|
-
// All scenetest packages that should be stripped
|
|
8
|
+
// All scenetest packages that should be stripped. '@scenetest/checks' also
|
|
9
|
+
// covers its subpath entries (./react, ./vue, ./solid, ./svelte, ./runtime);
|
|
10
|
+
// the standalone checks-* names are the pre-0.12 framework binding packages,
|
|
11
|
+
// kept so apps still on them keep stripping cleanly.
|
|
9
12
|
const SCENETEST_PACKAGES = [
|
|
10
13
|
'@scenetest/checks',
|
|
11
14
|
'@scenetest/checks-react',
|
|
@@ -14,10 +17,10 @@ const SCENETEST_PACKAGES = [
|
|
|
14
17
|
'@scenetest/checks-svelte',
|
|
15
18
|
];
|
|
16
19
|
/**
|
|
17
|
-
* Check if a module source is a scenetest package
|
|
20
|
+
* Check if a module source is a scenetest package (or a subpath of one)
|
|
18
21
|
*/
|
|
19
22
|
function isScenetestPackage(source) {
|
|
20
|
-
return SCENETEST_PACKAGES.
|
|
23
|
+
return SCENETEST_PACKAGES.some((pkg) => source === pkg || source.startsWith(pkg + '/'));
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
26
|
* Strip all scenetest imports and function calls from source code.
|
package/dist/strip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip.js","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAsB,MAAM,eAAe,CAAA;AACzD,OAAO,SAA4B,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,WAAW,MAAM,cAAc,CAAA;AAEtC,6CAA6C;AAC7C,gHAAgH;AAChH,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAiB,CAAC,OAAO,CAGjF,CAAA;AAcT,
|
|
1
|
+
{"version":3,"file":"strip.js","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"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"}
|
package/dist/transform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB;IACjB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;IAClD,2BAA2B;IAC3B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB;IACjB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;IAClD,2BAA2B;IAC3B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,GAAG,IAAI,CA4KxG"}
|
package/dist/transform.js
CHANGED
|
@@ -75,7 +75,9 @@ export function transformAssertions(code, options = {}) {
|
|
|
75
75
|
if (!code.includes('serverCheck')) {
|
|
76
76
|
return null;
|
|
77
77
|
}
|
|
78
|
-
// All scenetest packages
|
|
78
|
+
// All scenetest packages. '@scenetest/checks' also covers its framework
|
|
79
|
+
// subpaths (./react etc.); the checks-* names are the pre-0.12 binding
|
|
80
|
+
// packages, kept for apps still importing from them.
|
|
79
81
|
const SCENETEST_PACKAGES = [
|
|
80
82
|
'@scenetest/checks',
|
|
81
83
|
'@scenetest/checks-react',
|
|
@@ -83,6 +85,7 @@ export function transformAssertions(code, options = {}) {
|
|
|
83
85
|
'@scenetest/checks-solid',
|
|
84
86
|
'@scenetest/checks-svelte',
|
|
85
87
|
];
|
|
88
|
+
const isScenetestSource = (source) => SCENETEST_PACKAGES.some((pkg) => source === pkg || source.startsWith(pkg + '/'));
|
|
86
89
|
// Track imported serverCheck name
|
|
87
90
|
let serverCheckLocalName = null;
|
|
88
91
|
// Parse with Babel
|
|
@@ -115,7 +118,7 @@ export function transformAssertions(code, options = {}) {
|
|
|
115
118
|
traverse(ast, {
|
|
116
119
|
ImportDeclaration(path) {
|
|
117
120
|
const source = path.node.source.value;
|
|
118
|
-
if (!
|
|
121
|
+
if (!isScenetestSource(source)) {
|
|
119
122
|
return;
|
|
120
123
|
}
|
|
121
124
|
for (const specifier of path.node.specifiers) {
|
package/dist/transform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
|