@playwright-repl/runner 0.23.0 → 0.24.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/bridge-utils.cjs +4 -0
- package/dist/bridge-utils.cjs.map +1 -1
- package/dist/bridge-utils.d.cts.map +1 -1
- package/dist/compiler/classify.d.ts.map +1 -1
- package/dist/compiler/classify.js +2 -0
- package/dist/compiler/classify.js.map +1 -1
- package/dist/pw-cli.js +3 -6
- package/dist/pw-cli.js.map +1 -1
- package/package.json +4 -3
- package/dist/chrome-extension/background.js +0 -233485
- package/dist/chrome-extension/background.js.map +0 -1
- package/dist/chrome-extension/content/picker.js +0 -279
- package/dist/chrome-extension/content/recorder.js +0 -475
- package/dist/chrome-extension/devtools/console.html +0 -17
- package/dist/chrome-extension/devtools/console.js +0 -44
- package/dist/chrome-extension/devtools/console.js.map +0 -1
- package/dist/chrome-extension/devtools/devtools.html +0 -8
- package/dist/chrome-extension/devtools/devtools.js +0 -7
- package/dist/chrome-extension/devtools/devtools.js.map +0 -1
- package/dist/chrome-extension/icons/dramaturg_icon_128.png +0 -0
- package/dist/chrome-extension/icons/dramaturg_icon_16.png +0 -0
- package/dist/chrome-extension/icons/dramaturg_icon_32.png +0 -0
- package/dist/chrome-extension/icons/dramaturg_icon_48.png +0 -0
- package/dist/chrome-extension/index.css +0 -1333
- package/dist/chrome-extension/index.js +0 -12462
- package/dist/chrome-extension/index.js.map +0 -1
- package/dist/chrome-extension/index2.js +0 -27327
- package/dist/chrome-extension/index2.js.map +0 -1
- package/dist/chrome-extension/manifest.json +0 -46
- package/dist/chrome-extension/modulepreload-polyfill.js +0 -30
- package/dist/chrome-extension/modulepreload-polyfill.js.map +0 -1
- package/dist/chrome-extension/newtab/newtab.html +0 -202
- package/dist/chrome-extension/offscreen/offscreen.html +0 -6
- package/dist/chrome-extension/offscreen/offscreen.js +0 -54
- package/dist/chrome-extension/offscreen/offscreen.js.map +0 -1
- package/dist/chrome-extension/panel/panel.html +0 -16
- package/dist/chrome-extension/panel/panel.js +0 -2210
- package/dist/chrome-extension/panel/panel.js.map +0 -1
- package/dist/chrome-extension/preferences/preferences.html +0 -14
- package/dist/chrome-extension/preferences/preferences.js +0 -102
- package/dist/chrome-extension/preferences/preferences.js.map +0 -1
- package/dist/chrome-extension/settings.js +0 -13
- package/dist/chrome-extension/settings.js.map +0 -1
- package/dist/chrome-extension/sw-debugger-core.js +0 -1127
- package/dist/chrome-extension/sw-debugger-core.js.map +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"manifest_version": 3,
|
|
3
|
-
"name": "Dramaturg",
|
|
4
|
-
"version": "0.21.6",
|
|
5
|
-
"description": "Playwright engineer's companion — console, editor, runner, debugger, and recorder in a Chrome side panel.",
|
|
6
|
-
"permissions": [
|
|
7
|
-
"activeTab",
|
|
8
|
-
"tabs",
|
|
9
|
-
"sidePanel",
|
|
10
|
-
"debugger",
|
|
11
|
-
"storage",
|
|
12
|
-
"windows",
|
|
13
|
-
"offscreen",
|
|
14
|
-
"scripting"
|
|
15
|
-
],
|
|
16
|
-
"host_permissions": [
|
|
17
|
-
"<all_urls>"
|
|
18
|
-
],
|
|
19
|
-
"options_ui": {
|
|
20
|
-
"page": "preferences/preferences.html",
|
|
21
|
-
"open_in_tab": false
|
|
22
|
-
},
|
|
23
|
-
"action": {
|
|
24
|
-
"default_title": "Dramaturg",
|
|
25
|
-
"default_icon": {
|
|
26
|
-
"16": "icons/dramaturg_icon_16.png",
|
|
27
|
-
"32": "icons/dramaturg_icon_32.png",
|
|
28
|
-
"48": "icons/dramaturg_icon_48.png",
|
|
29
|
-
"128": "icons/dramaturg_icon_128.png"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"devtools_page": "devtools/devtools.html",
|
|
33
|
-
"side_panel": {
|
|
34
|
-
"default_path": "panel/panel.html"
|
|
35
|
-
},
|
|
36
|
-
"background": {
|
|
37
|
-
"service_worker": "background.js",
|
|
38
|
-
"type": "module"
|
|
39
|
-
},
|
|
40
|
-
"icons": {
|
|
41
|
-
"16": "icons/dramaturg_icon_16.png",
|
|
42
|
-
"32": "icons/dramaturg_icon_32.png",
|
|
43
|
-
"48": "icons/dramaturg_icon_48.png",
|
|
44
|
-
"128": "icons/dramaturg_icon_128.png"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
(function polyfill() {
|
|
2
|
-
const relList = document.createElement("link").relList;
|
|
3
|
-
if (relList && relList.supports && relList.supports("modulepreload")) return;
|
|
4
|
-
for (const link of document.querySelectorAll('link[rel="modulepreload"]')) processPreload(link);
|
|
5
|
-
new MutationObserver((mutations) => {
|
|
6
|
-
for (const mutation of mutations) {
|
|
7
|
-
if (mutation.type !== "childList") continue;
|
|
8
|
-
for (const node of mutation.addedNodes) if (node.tagName === "LINK" && node.rel === "modulepreload") processPreload(node);
|
|
9
|
-
}
|
|
10
|
-
}).observe(document, {
|
|
11
|
-
childList: true,
|
|
12
|
-
subtree: true
|
|
13
|
-
});
|
|
14
|
-
function getFetchOpts(link) {
|
|
15
|
-
const fetchOpts = {};
|
|
16
|
-
if (link.integrity) fetchOpts.integrity = link.integrity;
|
|
17
|
-
if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
|
|
18
|
-
if (link.crossOrigin === "use-credentials") fetchOpts.credentials = "include";
|
|
19
|
-
else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit";
|
|
20
|
-
else fetchOpts.credentials = "same-origin";
|
|
21
|
-
return fetchOpts;
|
|
22
|
-
}
|
|
23
|
-
function processPreload(link) {
|
|
24
|
-
if (link.ep) return;
|
|
25
|
-
link.ep = true;
|
|
26
|
-
const fetchOpts = getFetchOpts(link);
|
|
27
|
-
fetch(link.href, fetchOpts);
|
|
28
|
-
}
|
|
29
|
-
})();
|
|
30
|
-
//# sourceMappingURL=modulepreload-polyfill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modulepreload-polyfill.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>Dramaturg</title>
|
|
6
|
-
<style>
|
|
7
|
-
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
8
|
-
body {
|
|
9
|
-
min-height: 100vh;
|
|
10
|
-
background: #f5f5f5;
|
|
11
|
-
color: #333;
|
|
12
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
13
|
-
display: flex;
|
|
14
|
-
justify-content: center;
|
|
15
|
-
padding: 60px 20px;
|
|
16
|
-
}
|
|
17
|
-
.page {
|
|
18
|
-
max-width: 720px;
|
|
19
|
-
width: 100%;
|
|
20
|
-
}
|
|
21
|
-
.header {
|
|
22
|
-
text-align: center;
|
|
23
|
-
margin-bottom: 48px;
|
|
24
|
-
}
|
|
25
|
-
.logo {
|
|
26
|
-
width: 96px;
|
|
27
|
-
height: 96px;
|
|
28
|
-
margin-bottom: 16px;
|
|
29
|
-
}
|
|
30
|
-
h1 {
|
|
31
|
-
font-size: 28px;
|
|
32
|
-
font-weight: 500;
|
|
33
|
-
color: #222;
|
|
34
|
-
margin-bottom: 6px;
|
|
35
|
-
}
|
|
36
|
-
.tagline {
|
|
37
|
-
font-size: 14px;
|
|
38
|
-
color: #777;
|
|
39
|
-
}
|
|
40
|
-
.sections {
|
|
41
|
-
display: grid;
|
|
42
|
-
grid-template-columns: 1fr 1fr;
|
|
43
|
-
gap: 24px;
|
|
44
|
-
}
|
|
45
|
-
.section {
|
|
46
|
-
background: #fff;
|
|
47
|
-
border: 1px solid #e0e0e0;
|
|
48
|
-
border-radius: 8px;
|
|
49
|
-
padding: 20px;
|
|
50
|
-
}
|
|
51
|
-
.section h2 {
|
|
52
|
-
font-size: 13px;
|
|
53
|
-
font-weight: 600;
|
|
54
|
-
text-transform: uppercase;
|
|
55
|
-
letter-spacing: 0.5px;
|
|
56
|
-
color: #2a7ab5;
|
|
57
|
-
margin-bottom: 12px;
|
|
58
|
-
}
|
|
59
|
-
.steps {
|
|
60
|
-
list-style: none;
|
|
61
|
-
counter-reset: step;
|
|
62
|
-
}
|
|
63
|
-
.steps li {
|
|
64
|
-
counter-increment: step;
|
|
65
|
-
font-size: 13px;
|
|
66
|
-
line-height: 1.6;
|
|
67
|
-
color: #555;
|
|
68
|
-
padding-left: 24px;
|
|
69
|
-
position: relative;
|
|
70
|
-
margin-bottom: 6px;
|
|
71
|
-
}
|
|
72
|
-
.steps li::before {
|
|
73
|
-
content: counter(step);
|
|
74
|
-
position: absolute;
|
|
75
|
-
left: 0;
|
|
76
|
-
width: 18px;
|
|
77
|
-
height: 18px;
|
|
78
|
-
border-radius: 50%;
|
|
79
|
-
background: #e8f0fe;
|
|
80
|
-
color: #2a7ab5;
|
|
81
|
-
font-size: 11px;
|
|
82
|
-
font-weight: 600;
|
|
83
|
-
display: flex;
|
|
84
|
-
align-items: center;
|
|
85
|
-
justify-content: center;
|
|
86
|
-
top: 2px;
|
|
87
|
-
}
|
|
88
|
-
table {
|
|
89
|
-
width: 100%;
|
|
90
|
-
border-collapse: collapse;
|
|
91
|
-
}
|
|
92
|
-
td {
|
|
93
|
-
font-size: 13px;
|
|
94
|
-
padding: 4px 0;
|
|
95
|
-
vertical-align: top;
|
|
96
|
-
}
|
|
97
|
-
td:first-child {
|
|
98
|
-
color: #8a6b3e;
|
|
99
|
-
font-family: "Cascadia Code", "Fira Code", "Consolas", monospace;
|
|
100
|
-
white-space: nowrap;
|
|
101
|
-
padding-right: 12px;
|
|
102
|
-
width: 120px;
|
|
103
|
-
}
|
|
104
|
-
td:last-child {
|
|
105
|
-
color: #666;
|
|
106
|
-
}
|
|
107
|
-
.kbd {
|
|
108
|
-
display: inline-block;
|
|
109
|
-
font-family: "Cascadia Code", "Fira Code", "Consolas", monospace;
|
|
110
|
-
font-size: 12px;
|
|
111
|
-
color: #8a6b3e;
|
|
112
|
-
}
|
|
113
|
-
.shortcut-row {
|
|
114
|
-
display: flex;
|
|
115
|
-
justify-content: space-between;
|
|
116
|
-
font-size: 13px;
|
|
117
|
-
padding: 3px 0;
|
|
118
|
-
}
|
|
119
|
-
.shortcut-label {
|
|
120
|
-
color: #666;
|
|
121
|
-
}
|
|
122
|
-
.links {
|
|
123
|
-
text-align: center;
|
|
124
|
-
margin-top: 32px;
|
|
125
|
-
font-size: 13px;
|
|
126
|
-
color: #999;
|
|
127
|
-
}
|
|
128
|
-
.links a {
|
|
129
|
-
color: #2a7ab5;
|
|
130
|
-
text-decoration: none;
|
|
131
|
-
}
|
|
132
|
-
.links a:hover {
|
|
133
|
-
text-decoration: underline;
|
|
134
|
-
}
|
|
135
|
-
.version {
|
|
136
|
-
color: #aaa;
|
|
137
|
-
margin-left: 12px;
|
|
138
|
-
}
|
|
139
|
-
</style>
|
|
140
|
-
</head>
|
|
141
|
-
<body>
|
|
142
|
-
<div class="page">
|
|
143
|
-
<div class="header">
|
|
144
|
-
<img class="logo" src="../icons/dramaturg_icon_128.png" alt="Dramaturg">
|
|
145
|
-
<h1>Dramaturg</h1>
|
|
146
|
-
<p class="tagline">Playwright engineer's companion — console, editor, runner, and recorder in a Chrome side panel</p>
|
|
147
|
-
</div>
|
|
148
|
-
|
|
149
|
-
<div class="sections">
|
|
150
|
-
<div class="section">
|
|
151
|
-
<h2>Getting Started</h2>
|
|
152
|
-
<ol class="steps">
|
|
153
|
-
<li>Click the Dramaturg icon to open the side panel</li>
|
|
154
|
-
<li>Navigate to a webpage — it auto-attaches</li>
|
|
155
|
-
<li>Use keyword commands or Playwright API in the console</li>
|
|
156
|
-
<li>Record actions, pick elements, or write scripts in the editor</li>
|
|
157
|
-
</ol>
|
|
158
|
-
</div>
|
|
159
|
-
|
|
160
|
-
<div class="section">
|
|
161
|
-
<h2>Quick Reference</h2>
|
|
162
|
-
<table>
|
|
163
|
-
<tr><td>goto</td><td>Navigate to URL</td></tr>
|
|
164
|
-
<tr><td>click</td><td>Click element by ref</td></tr>
|
|
165
|
-
<tr><td>fill</td><td>Type into input field</td></tr>
|
|
166
|
-
<tr><td>snapshot</td><td>Show accessibility tree</td></tr>
|
|
167
|
-
<tr><td>screenshot</td><td>Capture page image</td></tr>
|
|
168
|
-
<tr><td>select</td><td>Choose dropdown option</td></tr>
|
|
169
|
-
<tr><td>verify-text</td><td>Assert text on page</td></tr>
|
|
170
|
-
<tr><td>help</td><td>Show all commands</td></tr>
|
|
171
|
-
</table>
|
|
172
|
-
</div>
|
|
173
|
-
|
|
174
|
-
<div class="section">
|
|
175
|
-
<h2>Keyboard Shortcuts</h2>
|
|
176
|
-
<div class="shortcut-row"><span class="shortcut-label">Run script</span> <span class="kbd">Ctrl+Enter</span></div>
|
|
177
|
-
<div class="shortcut-row"><span class="shortcut-label">Multi-line input</span> <span class="kbd">Shift+Enter</span></div>
|
|
178
|
-
<div class="shortcut-row"><span class="shortcut-label">History navigation</span> <span class="kbd">↑ / ↓</span></div>
|
|
179
|
-
<div class="shortcut-row"><span class="shortcut-label">Accept ghost text</span> <span class="kbd">Tab</span></div>
|
|
180
|
-
</div>
|
|
181
|
-
|
|
182
|
-
<div class="section">
|
|
183
|
-
<h2>Playwright API</h2>
|
|
184
|
-
<table>
|
|
185
|
-
<tr><td>page</td><td>Active browser tab</td></tr>
|
|
186
|
-
<tr><td>context</td><td>Browser context</td></tr>
|
|
187
|
-
<tr><td>expect</td><td>Playwright assertions</td></tr>
|
|
188
|
-
</table>
|
|
189
|
-
<div style="margin-top: 8px; font-size: 12px; color: #999;">
|
|
190
|
-
Use <span class="kbd">await</span> for async methods.<br>
|
|
191
|
-
Type <span class="kbd">help js</span> for full API reference.
|
|
192
|
-
</div>
|
|
193
|
-
</div>
|
|
194
|
-
</div>
|
|
195
|
-
|
|
196
|
-
<div class="links">
|
|
197
|
-
<a href="https://github.com/nicobailon/playwright-repl">GitHub</a>
|
|
198
|
-
<span class="version">v0.16.2</span>
|
|
199
|
-
</div>
|
|
200
|
-
</div>
|
|
201
|
-
</body>
|
|
202
|
-
</html>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html><head><meta charset="utf-8"><title>Bridge Executor</title> <script type="module" crossorigin src="../offscreen/offscreen.js"></script>
|
|
3
|
-
<link rel="modulepreload" crossorigin href="../modulepreload-polyfill.js">
|
|
4
|
-
</head>
|
|
5
|
-
<body></body>
|
|
6
|
-
</html>
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import "../modulepreload-polyfill.js";
|
|
2
|
-
let ws = null;
|
|
3
|
-
let reconnectTimer = null;
|
|
4
|
-
function connect(port) {
|
|
5
|
-
try {
|
|
6
|
-
ws = new WebSocket(`ws://localhost:${port}`);
|
|
7
|
-
ws.onmessage = async (e) => {
|
|
8
|
-
const msg = JSON.parse(e.data);
|
|
9
|
-
try {
|
|
10
|
-
const runtimeMsg = {
|
|
11
|
-
type: "bridge-command",
|
|
12
|
-
command: msg.command,
|
|
13
|
-
scriptType: msg.type,
|
|
14
|
-
language: msg.language
|
|
15
|
-
};
|
|
16
|
-
if (msg.includeSnapshot) runtimeMsg.includeSnapshot = true;
|
|
17
|
-
const result = await chrome.runtime.sendMessage(runtimeMsg);
|
|
18
|
-
if (ws?.readyState === WebSocket.OPEN) {
|
|
19
|
-
ws.send(JSON.stringify({ id: msg.id, ...result }));
|
|
20
|
-
}
|
|
21
|
-
} catch (err) {
|
|
22
|
-
if (ws?.readyState === WebSocket.OPEN) {
|
|
23
|
-
ws.send(JSON.stringify({ id: msg.id, text: String(err), isError: true }));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
ws.onclose = () => {
|
|
28
|
-
reconnectTimer = setTimeout(() => connect(port), 3e3);
|
|
29
|
-
};
|
|
30
|
-
ws.onerror = () => {
|
|
31
|
-
};
|
|
32
|
-
} catch {
|
|
33
|
-
reconnectTimer = setTimeout(() => connect(port), 3e3);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
chrome.runtime.sendMessage({ type: "get-bridge-port" }).then((port) => {
|
|
37
|
-
connect(port || 9876);
|
|
38
|
-
});
|
|
39
|
-
chrome.runtime.onMessage.addListener((msg) => {
|
|
40
|
-
if (msg.type === "bridge-port-changed") {
|
|
41
|
-
if (reconnectTimer) clearTimeout(reconnectTimer);
|
|
42
|
-
if (ws) {
|
|
43
|
-
ws.onclose = null;
|
|
44
|
-
ws.close();
|
|
45
|
-
}
|
|
46
|
-
connect(msg.port);
|
|
47
|
-
}
|
|
48
|
-
if (msg.type === "recorded-action" || msg.type === "recorded-fill-update" || msg.type === "element-picked-raw" || msg.type === "pick-cancelled") {
|
|
49
|
-
if (ws?.readyState === WebSocket.OPEN) {
|
|
50
|
-
ws.send(JSON.stringify({ _event: true, ...msg }));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=offscreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"offscreen.js","sources":["../../src/offscreen/offscreen.ts"],"sourcesContent":["// ─── CLI Bridge (offscreen document) ──────────────────────────────────────────\r\n// Maintains a WebSocket connection to the MCP/CLI bridge server.\r\n// Relays commands to the service worker for execution via chrome.runtime messaging.\r\n// This runs independently of the side panel — MCP works without the panel open.\r\n\r\nlet ws: WebSocket | null = null;\r\nlet reconnectTimer: ReturnType<typeof setTimeout> | null = null;\r\n\r\nfunction connect(port: number) {\r\n try {\r\n ws = new WebSocket(`ws://localhost:${port}`);\r\n\r\n ws.onmessage = async (e) => {\r\n const msg = JSON.parse(e.data as string) as {\r\n id: string;\r\n command: string;\r\n type?: 'command' | 'script';\r\n language?: 'pw' | 'javascript';\r\n includeSnapshot?: boolean;\r\n };\r\n\r\n try {\r\n const runtimeMsg: Record<string, unknown> = {\r\n type: 'bridge-command',\r\n command: msg.command,\r\n scriptType: msg.type,\r\n language: msg.language,\r\n };\r\n if (msg.includeSnapshot) runtimeMsg.includeSnapshot = true;\r\n const result = await chrome.runtime.sendMessage(runtimeMsg);\r\n\r\n if (ws?.readyState === WebSocket.OPEN) {\r\n ws.send(JSON.stringify({ id: msg.id, ...result }));\r\n }\r\n } catch (err) {\r\n if (ws?.readyState === WebSocket.OPEN) {\r\n ws.send(JSON.stringify({ id: msg.id, text: String(err), isError: true }));\r\n }\r\n }\r\n };\r\n\r\n ws.onclose = () => {\r\n reconnectTimer = setTimeout(() => connect(port), 3000);\r\n };\r\n\r\n ws.onerror = () => {};\r\n } catch {\r\n reconnectTimer = setTimeout(() => connect(port), 3000);\r\n }\r\n}\r\n\r\n// Ask the SW for the bridge port (offscreen docs can't access chrome.storage)\r\nchrome.runtime.sendMessage({ type: 'get-bridge-port' }).then((port: number) => {\r\n connect(port || 9876);\r\n});\r\n\r\n// Listen for port changes and recording/picker events from the SW\r\nchrome.runtime.onMessage.addListener((msg) => {\r\n if (msg.type === 'bridge-port-changed') {\r\n if (reconnectTimer) clearTimeout(reconnectTimer);\r\n if (ws) { ws.onclose = null; ws.close(); }\r\n connect(msg.port as number);\r\n }\r\n\r\n // Forward recording/picker events to the bridge client (VS Code)\r\n if (msg.type === 'recorded-action' || msg.type === 'recorded-fill-update' ||\r\n msg.type === 'element-picked-raw' || msg.type === 'pick-cancelled') {\r\n if (ws?.readyState === WebSocket.OPEN) {\r\n ws.send(JSON.stringify({ _event: true, ...msg }));\r\n }\r\n }\r\n});\r\n\r\nexport {};\r\n"],"names":[],"mappings":";AAKA,IAAI,KAAuB;AAC3B,IAAI,iBAAuD;AAE3D,SAAS,QAAQ,MAAc;AAC3B,MAAI;AACA,SAAK,IAAI,UAAU,kBAAkB,IAAI,EAAE;AAE3C,OAAG,YAAY,OAAO,MAAM;AACxB,YAAM,MAAM,KAAK,MAAM,EAAE,IAAc;AAQvC,UAAI;AACA,cAAM,aAAsC;AAAA,UACxC,MAAM;AAAA,UACN,SAAS,IAAI;AAAA,UACb,YAAY,IAAI;AAAA,UAChB,UAAU,IAAI;AAAA,QAAA;AAElB,YAAI,IAAI,gBAAiB,YAAW,kBAAkB;AACtD,cAAM,SAAS,MAAM,OAAO,QAAQ,YAAY,UAAU;AAE1D,YAAI,IAAI,eAAe,UAAU,MAAM;AACnC,aAAG,KAAK,KAAK,UAAU,EAAE,IAAI,IAAI,IAAI,GAAG,OAAA,CAAQ,CAAC;AAAA,QACrD;AAAA,MACJ,SAAS,KAAK;AACV,YAAI,IAAI,eAAe,UAAU,MAAM;AACnC,aAAG,KAAK,KAAK,UAAU,EAAE,IAAI,IAAI,IAAI,MAAM,OAAO,GAAG,GAAG,SAAS,KAAA,CAAM,CAAC;AAAA,QAC5E;AAAA,MACJ;AAAA,IACJ;AAEA,OAAG,UAAU,MAAM;AACf,uBAAiB,WAAW,MAAM,QAAQ,IAAI,GAAG,GAAI;AAAA,IACzD;AAEA,OAAG,UAAU,MAAM;AAAA,IAAC;AAAA,EACxB,QAAQ;AACJ,qBAAiB,WAAW,MAAM,QAAQ,IAAI,GAAG,GAAI;AAAA,EACzD;AACJ;AAGA,OAAO,QAAQ,YAAY,EAAE,MAAM,mBAAmB,EAAE,KAAK,CAAC,SAAiB;AAC3E,UAAQ,QAAQ,IAAI;AACxB,CAAC;AAGD,OAAO,QAAQ,UAAU,YAAY,CAAC,QAAQ;AAC1C,MAAI,IAAI,SAAS,uBAAuB;AACpC,QAAI,6BAA6B,cAAc;AAC/C,QAAI,IAAI;AAAE,SAAG,UAAU;AAAM,SAAG,MAAA;AAAA,IAAS;AACzC,YAAQ,IAAI,IAAc;AAAA,EAC9B;AAGA,MAAI,IAAI,SAAS,qBAAqB,IAAI,SAAS,0BAC/C,IAAI,SAAS,wBAAwB,IAAI,SAAS,kBAAkB;AACpE,QAAI,IAAI,eAAe,UAAU,MAAM;AACnC,SAAG,KAAK,KAAK,UAAU,EAAE,QAAQ,MAAM,GAAG,IAAA,CAAK,CAAC;AAAA,IACpD;AAAA,EACJ;AACJ,CAAC;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<script type="module" crossorigin src="../panel/panel.js"></script>
|
|
6
|
-
<link rel="modulepreload" crossorigin href="../modulepreload-polyfill.js">
|
|
7
|
-
<link rel="modulepreload" crossorigin href="../index.js">
|
|
8
|
-
<link rel="modulepreload" crossorigin href="../sw-debugger-core.js">
|
|
9
|
-
<link rel="modulepreload" crossorigin href="../index2.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="../settings.js">
|
|
11
|
-
<link rel="stylesheet" crossorigin href="../index.css">
|
|
12
|
-
</head>
|
|
13
|
-
<body>
|
|
14
|
-
<div id="root"></div>
|
|
15
|
-
</body>
|
|
16
|
-
</html>
|