safari-devtools-mcp 1.2.0 → 1.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.
- package/README.md +15 -0
- package/build/src/bin/safari-devtools-mcp.d.ts +7 -0
- package/build/src/bin/safari-devtools-mcp.d.ts.map +1 -1
- package/build/src/bin/safari-devtools-mcp.js +17 -1
- package/build/src/bin/safari-devtools-mcp.js.map +1 -1
- package/build/src/index.d.ts +5 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +33 -80
- package/build/src/index.js.map +1 -1
- package/build/src/tools/console.d.ts +1 -13
- package/build/src/tools/console.d.ts.map +1 -1
- package/build/src/tools/console.js +85 -67
- package/build/src/tools/console.js.map +1 -1
- package/build/src/tools/cookies.d.ts +1 -20
- package/build/src/tools/cookies.d.ts.map +1 -1
- package/build/src/tools/cookies.js +129 -111
- package/build/src/tools/cookies.js.map +1 -1
- package/build/src/tools/css.d.ts +1 -6
- package/build/src/tools/css.d.ts.map +1 -1
- package/build/src/tools/css.js +52 -45
- package/build/src/tools/css.js.map +1 -1
- package/build/src/tools/input.d.ts +1 -63
- package/build/src/tools/input.d.ts.map +1 -1
- package/build/src/tools/input.js +311 -253
- package/build/src/tools/input.js.map +1 -1
- package/build/src/tools/network.d.ts +1 -13
- package/build/src/tools/network.d.ts.map +1 -1
- package/build/src/tools/network.js +85 -67
- package/build/src/tools/network.js.map +1 -1
- package/build/src/tools/page-content.d.ts +1 -11
- package/build/src/tools/page-content.d.ts.map +1 -1
- package/build/src/tools/page-content.js +104 -83
- package/build/src/tools/page-content.js.map +1 -1
- package/build/src/tools/pages.d.ts +1 -30
- package/build/src/tools/pages.d.ts.map +1 -1
- package/build/src/tools/pages.js +244 -202
- package/build/src/tools/pages.js.map +1 -1
- package/build/src/tools/screenshot.d.ts +1 -6
- package/build/src/tools/screenshot.d.ts.map +1 -1
- package/build/src/tools/screenshot.js +73 -65
- package/build/src/tools/screenshot.js.map +1 -1
- package/build/src/tools/script.d.ts +1 -6
- package/build/src/tools/script.d.ts.map +1 -1
- package/build/src/tools/script.js +41 -33
- package/build/src/tools/script.js.map +1 -1
- package/build/src/tools/scroll.d.ts +1 -10
- package/build/src/tools/scroll.d.ts.map +1 -1
- package/build/src/tools/scroll.js +50 -40
- package/build/src/tools/scroll.js.map +1 -1
- package/build/src/tools/snapshot.d.ts +1 -11
- package/build/src/tools/snapshot.d.ts.map +1 -1
- package/build/src/tools/snapshot.js +79 -68
- package/build/src/tools/snapshot.js.map +1 -1
- package/build/src/tools/storage.d.ts +1 -17
- package/build/src/tools/storage.d.ts.map +1 -1
- package/build/src/tools/storage.js +116 -98
- package/build/src/tools/storage.js.map +1 -1
- package/build/src/tools/types.d.ts +11 -1
- package/build/src/tools/types.d.ts.map +1 -1
- package/build/src/tools/types.js +3 -1
- package/build/src/tools/types.js.map +1 -1
- package/package.json +7 -8
package/build/src/tools/pages.js
CHANGED
|
@@ -3,233 +3,275 @@
|
|
|
3
3
|
* Mirrors chrome-devtools-mcp tool names: list_pages, select_page, close_page, new_page, navigate_page, resize_page
|
|
4
4
|
*/
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
|
|
7
|
-
export const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
type: 'text',
|
|
62
|
-
text: error instanceof Error ? error.message : String(error),
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
isError: true,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
// ---- new_page ----
|
|
70
|
-
export const newPageSchema = {
|
|
71
|
-
url: z.string().describe('URL to load in a new page.'),
|
|
72
|
-
};
|
|
73
|
-
export const newPage = async (params, driver) => {
|
|
74
|
-
const result = await driver.newPage(params.url);
|
|
75
|
-
let text = `Opened new page with URL: ${params.url}`;
|
|
76
|
-
if (result.warning) {
|
|
77
|
-
text += `\n\n⚠️ ${result.warning}`;
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
content: [{ type: 'text', text }],
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
// ---- navigate_page ----
|
|
84
|
-
export const navigatePageSchema = {
|
|
85
|
-
type: z
|
|
86
|
-
.enum(['url', 'back', 'forward', 'reload'])
|
|
87
|
-
.optional()
|
|
88
|
-
.describe('Navigate the page by URL, back or forward in history, or reload.'),
|
|
89
|
-
url: z.string().optional().describe('Target URL (only type=url)'),
|
|
90
|
-
};
|
|
91
|
-
export const navigatePage = async (params, driver) => {
|
|
92
|
-
const type = params.type || (params.url ? 'url' : undefined);
|
|
93
|
-
if (!type && !params.url) {
|
|
94
|
-
return {
|
|
95
|
-
content: [
|
|
96
|
-
{ type: 'text', text: 'Either URL or a type is required.' },
|
|
97
|
-
],
|
|
98
|
-
isError: true,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
try {
|
|
102
|
-
switch (type || 'url') {
|
|
103
|
-
case 'url':
|
|
104
|
-
if (!params.url) {
|
|
105
|
-
return {
|
|
106
|
-
content: [
|
|
107
|
-
{
|
|
108
|
-
type: 'text',
|
|
109
|
-
text: 'A URL is required for navigation of type=url.',
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
isError: true,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
await driver.navigate(params.url);
|
|
116
|
-
return {
|
|
117
|
-
content: [
|
|
118
|
-
{
|
|
119
|
-
type: 'text',
|
|
120
|
-
text: `Successfully navigated to ${params.url}.`,
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
};
|
|
124
|
-
case 'back':
|
|
125
|
-
await driver.goBack();
|
|
6
|
+
import { defineTool } from './types.js';
|
|
7
|
+
export const tools = [
|
|
8
|
+
defineTool({
|
|
9
|
+
name: 'list_pages',
|
|
10
|
+
description: 'Get a list of pages (tabs) open in Safari.',
|
|
11
|
+
slimDescription: 'List open pages.',
|
|
12
|
+
schema: {},
|
|
13
|
+
handler: async (_params, driver) => {
|
|
14
|
+
const pages = await driver.listPages();
|
|
15
|
+
const lines = pages.map(p => ` pageId=${p.pageId} ${p.isSelected ? '* ' : ' '}${p.title} (${p.url})`);
|
|
16
|
+
let text = `Open pages (* = selected):\n${lines.join('\n')}`;
|
|
17
|
+
const warnings = pages.filter(p => p.warning).map(p => p.warning);
|
|
18
|
+
if (warnings.length > 0) {
|
|
19
|
+
text += `\n\n⚠️ ${warnings.join('\n')}`;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
content: [{ type: 'text', text }],
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
}),
|
|
26
|
+
defineTool({
|
|
27
|
+
name: 'select_page',
|
|
28
|
+
description: 'Select a page as context for future tool calls.',
|
|
29
|
+
slimDescription: 'Select a page.',
|
|
30
|
+
schema: {
|
|
31
|
+
pageId: z
|
|
32
|
+
.number()
|
|
33
|
+
.describe('The ID of the page to select. Call list_pages to get available pages.'),
|
|
34
|
+
},
|
|
35
|
+
handler: async (params, driver) => {
|
|
36
|
+
await driver.selectPage(params.pageId);
|
|
37
|
+
const pages = await driver.listPages();
|
|
38
|
+
const lines = pages.map(p => ` pageId=${p.pageId} ${p.isSelected ? '* ' : ' '}${p.title} (${p.url})`);
|
|
39
|
+
return {
|
|
40
|
+
content: [
|
|
41
|
+
{
|
|
42
|
+
type: 'text',
|
|
43
|
+
text: `Selected page ${params.pageId}.\n\nOpen pages (* = selected):\n${lines.join('\n')}`,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
defineTool({
|
|
50
|
+
name: 'close_page',
|
|
51
|
+
description: 'Closes a page by its ID. The last open page cannot be closed.',
|
|
52
|
+
slimDescription: 'Close a page.',
|
|
53
|
+
schema: {
|
|
54
|
+
pageId: z
|
|
55
|
+
.number()
|
|
56
|
+
.describe('The ID of the page to close. Call list_pages to list pages.'),
|
|
57
|
+
},
|
|
58
|
+
handler: async (params, driver) => {
|
|
59
|
+
try {
|
|
60
|
+
await driver.closePage(params.pageId);
|
|
126
61
|
return {
|
|
127
62
|
content: [
|
|
128
63
|
{
|
|
129
64
|
type: 'text',
|
|
130
|
-
text: `
|
|
65
|
+
text: `Closed page ${params.pageId}.`,
|
|
131
66
|
},
|
|
132
67
|
],
|
|
133
68
|
};
|
|
134
|
-
|
|
135
|
-
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
136
71
|
return {
|
|
137
72
|
content: [
|
|
138
73
|
{
|
|
139
74
|
type: 'text',
|
|
140
|
-
text:
|
|
75
|
+
text: error instanceof Error ? error.message : String(error),
|
|
141
76
|
},
|
|
142
77
|
],
|
|
78
|
+
isError: true,
|
|
143
79
|
};
|
|
144
|
-
|
|
145
|
-
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
}),
|
|
83
|
+
defineTool({
|
|
84
|
+
name: 'new_page',
|
|
85
|
+
description: 'Open a new tab and load a URL.',
|
|
86
|
+
slimDescription: 'Open new tab with URL.',
|
|
87
|
+
schema: {
|
|
88
|
+
url: z.string().describe('URL to load in a new page.'),
|
|
89
|
+
},
|
|
90
|
+
handler: async (params, driver) => {
|
|
91
|
+
const result = await driver.newPage(params.url);
|
|
92
|
+
let text = `Opened new page with URL: ${params.url}`;
|
|
93
|
+
if (result.warning) {
|
|
94
|
+
text += `\n\n⚠️ ${result.warning}`;
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
content: [{ type: 'text', text }],
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
}),
|
|
101
|
+
defineTool({
|
|
102
|
+
name: 'navigate_page',
|
|
103
|
+
description: 'Go to a URL, or back, forward, or reload.',
|
|
104
|
+
slimDescription: 'Navigate to URL or back/forward/reload.',
|
|
105
|
+
schema: {
|
|
106
|
+
type: z
|
|
107
|
+
.enum(['url', 'back', 'forward', 'reload'])
|
|
108
|
+
.optional()
|
|
109
|
+
.describe('Navigate the page by URL, back or forward in history, or reload.'),
|
|
110
|
+
url: z.string().optional().describe('Target URL (only type=url)'),
|
|
111
|
+
},
|
|
112
|
+
handler: async (params, driver) => {
|
|
113
|
+
const type = params.type || (params.url ? 'url' : undefined);
|
|
114
|
+
if (!type && !params.url) {
|
|
146
115
|
return {
|
|
147
116
|
content: [
|
|
148
|
-
{ type: 'text', text: '
|
|
117
|
+
{ type: 'text', text: 'Either URL or a type is required.' },
|
|
149
118
|
],
|
|
119
|
+
isError: true,
|
|
150
120
|
};
|
|
151
|
-
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
switch (type || 'url') {
|
|
124
|
+
case 'url':
|
|
125
|
+
if (!params.url) {
|
|
126
|
+
return {
|
|
127
|
+
content: [
|
|
128
|
+
{
|
|
129
|
+
type: 'text',
|
|
130
|
+
text: 'A URL is required for navigation of type=url.',
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
isError: true,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
await driver.navigate(params.url);
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{
|
|
140
|
+
type: 'text',
|
|
141
|
+
text: `Successfully navigated to ${params.url}.`,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
};
|
|
145
|
+
case 'back':
|
|
146
|
+
await driver.goBack();
|
|
147
|
+
return {
|
|
148
|
+
content: [
|
|
149
|
+
{
|
|
150
|
+
type: 'text',
|
|
151
|
+
text: `Successfully navigated back to ${await driver.getCurrentUrl()}.`,
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
};
|
|
155
|
+
case 'forward':
|
|
156
|
+
await driver.goForward();
|
|
157
|
+
return {
|
|
158
|
+
content: [
|
|
159
|
+
{
|
|
160
|
+
type: 'text',
|
|
161
|
+
text: `Successfully navigated forward to ${await driver.getCurrentUrl()}.`,
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
};
|
|
165
|
+
case 'reload':
|
|
166
|
+
await driver.reload();
|
|
167
|
+
return {
|
|
168
|
+
content: [
|
|
169
|
+
{
|
|
170
|
+
type: 'text',
|
|
171
|
+
text: 'Successfully reloaded the page.',
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
default:
|
|
176
|
+
return {
|
|
177
|
+
content: [
|
|
178
|
+
{
|
|
179
|
+
type: 'text',
|
|
180
|
+
text: `Unknown navigation type: ${type}`,
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
isError: true,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
152
188
|
return {
|
|
153
189
|
content: [
|
|
154
|
-
{
|
|
190
|
+
{
|
|
191
|
+
type: 'text',
|
|
192
|
+
text: `Navigation failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
193
|
+
},
|
|
155
194
|
],
|
|
156
195
|
isError: true,
|
|
157
196
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
};
|
|
172
|
-
// ---- resize_page ----
|
|
173
|
-
export const resizePageSchema = {
|
|
174
|
-
width: z.number().describe('Page width'),
|
|
175
|
-
height: z.number().describe('Page height'),
|
|
176
|
-
};
|
|
177
|
-
export const resizePage = async (params, driver) => {
|
|
178
|
-
await driver.resizePage(params.width, params.height);
|
|
179
|
-
return {
|
|
180
|
-
content: [
|
|
181
|
-
{
|
|
182
|
-
type: 'text',
|
|
183
|
-
text: `Resized page to ${params.width}x${params.height}.`,
|
|
184
|
-
},
|
|
185
|
-
],
|
|
186
|
-
};
|
|
187
|
-
};
|
|
188
|
-
// ---- handle_dialog ----
|
|
189
|
-
export const handleDialogSchema = {
|
|
190
|
-
action: z
|
|
191
|
-
.enum(['accept', 'dismiss'])
|
|
192
|
-
.describe('Whether to dismiss or accept the dialog'),
|
|
193
|
-
promptText: z
|
|
194
|
-
.string()
|
|
195
|
-
.optional()
|
|
196
|
-
.describe('Optional prompt text to enter into the dialog.'),
|
|
197
|
-
};
|
|
198
|
-
export const handleDialog = async (params, driver) => {
|
|
199
|
-
// Safari WebDriver handles alerts via the driver's switchTo().alert() API
|
|
200
|
-
try {
|
|
201
|
-
const d = await driver.ensureDriver();
|
|
202
|
-
const alert = await d.switchTo().alert();
|
|
203
|
-
if (params.promptText) {
|
|
204
|
-
await alert.sendKeys(params.promptText);
|
|
205
|
-
}
|
|
206
|
-
if (params.action === 'accept') {
|
|
207
|
-
await alert.accept();
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
}),
|
|
200
|
+
defineTool({
|
|
201
|
+
name: 'resize_page',
|
|
202
|
+
description: "Resizes the selected page's window so that the page has specified dimensions.",
|
|
203
|
+
slimDescription: 'Resize page viewport.',
|
|
204
|
+
schema: {
|
|
205
|
+
width: z.number().describe('Page width'),
|
|
206
|
+
height: z.number().describe('Page height'),
|
|
207
|
+
},
|
|
208
|
+
handler: async (params, driver) => {
|
|
209
|
+
await driver.resizePage(params.width, params.height);
|
|
208
210
|
return {
|
|
209
211
|
content: [
|
|
210
|
-
{
|
|
212
|
+
{
|
|
213
|
+
type: 'text',
|
|
214
|
+
text: `Resized page to ${params.width}x${params.height}.`,
|
|
215
|
+
},
|
|
211
216
|
],
|
|
212
217
|
};
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
218
|
+
},
|
|
219
|
+
}),
|
|
220
|
+
defineTool({
|
|
221
|
+
name: 'handle_dialog',
|
|
222
|
+
description: 'If a browser dialog was opened, use this command to handle it.',
|
|
223
|
+
slimDescription: 'Accept or dismiss a dialog.',
|
|
224
|
+
schema: {
|
|
225
|
+
action: z
|
|
226
|
+
.enum(['accept', 'dismiss'])
|
|
227
|
+
.describe('Whether to dismiss or accept the dialog'),
|
|
228
|
+
promptText: z
|
|
229
|
+
.string()
|
|
230
|
+
.optional()
|
|
231
|
+
.describe('Optional prompt text to enter into the dialog.'),
|
|
232
|
+
},
|
|
233
|
+
handler: async (params, driver) => {
|
|
234
|
+
try {
|
|
235
|
+
const d = await driver.ensureDriver();
|
|
236
|
+
const alert = await d.switchTo().alert();
|
|
237
|
+
if (params.promptText) {
|
|
238
|
+
await alert.sendKeys(params.promptText);
|
|
239
|
+
}
|
|
240
|
+
if (params.action === 'accept') {
|
|
241
|
+
await alert.accept();
|
|
242
|
+
return {
|
|
243
|
+
content: [
|
|
244
|
+
{
|
|
245
|
+
type: 'text',
|
|
246
|
+
text: 'Successfully accepted the dialog.',
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
await alert.dismiss();
|
|
253
|
+
return {
|
|
254
|
+
content: [
|
|
255
|
+
{
|
|
256
|
+
type: 'text',
|
|
257
|
+
text: 'Successfully dismissed the dialog.',
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
return {
|
|
265
|
+
content: [
|
|
266
|
+
{
|
|
267
|
+
type: 'text',
|
|
268
|
+
text: `No open dialog found or error handling dialog: ${error instanceof Error ? error.message : String(error)}`,
|
|
269
|
+
},
|
|
270
|
+
],
|
|
271
|
+
isError: true,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
}),
|
|
276
|
+
];
|
|
235
277
|
//# sourceMappingURL=pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/tools/pages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/tools/pages.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,5 @@
|
|
|
6
6
|
* fullPage screenshots natively. Element screenshots are supported via UIDs.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
|
|
10
|
-
export declare const takeScreenshotSchema: {
|
|
11
|
-
uid: z.ZodOptional<z.ZodString>;
|
|
12
|
-
filePath: z.ZodOptional<z.ZodString>;
|
|
13
|
-
};
|
|
14
|
-
export declare const takeScreenshot: ToolHandler;
|
|
9
|
+
export declare const tools: import("./types.js").ToolDef<z.ZodRawShape>[];
|
|
15
10
|
//# sourceMappingURL=screenshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/tools/screenshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,KAAK,+CA8EjB,CAAC"}
|