@geometra/proxy 1.19.15 → 1.19.17
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/dom-actions.d.ts +24 -3
- package/dist/dom-actions.d.ts.map +1 -1
- package/dist/dom-actions.js +550 -21
- package/dist/dom-actions.js.map +1 -1
- package/dist/geometry-ws.d.ts +2 -0
- package/dist/geometry-ws.d.ts.map +1 -1
- package/dist/geometry-ws.js +40 -7
- package/dist/geometry-ws.js.map +1 -1
- package/dist/index.js +11 -70
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +26 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +110 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +25 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { installDomObserver, startGeometryWebSocket } from './geometry-ws.js';
|
|
2
|
+
import { formatProxyFatalError, launchProxyRuntime, parseHttpPageUrl } from './runtime.js';
|
|
4
3
|
const READY_SIGNAL_TYPE = 'geometra-proxy-ready';
|
|
5
4
|
function printUsage() {
|
|
6
5
|
console.error(`Usage: geometra-proxy <url> [--port <n>] [--width <n>] [--height <n>] [--headless] [--headed] [--slow-mo <ms>]
|
|
@@ -27,19 +26,6 @@ function envRequestsReadyJson() {
|
|
|
27
26
|
const v = (process.env.GEOMETRA_PROXY_READY_JSON ?? '').toLowerCase();
|
|
28
27
|
return v === '1' || v === 'true' || v === 'yes';
|
|
29
28
|
}
|
|
30
|
-
function parseHttpPageUrl(raw) {
|
|
31
|
-
let parsed;
|
|
32
|
-
try {
|
|
33
|
-
parsed = new URL(raw);
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
throw new Error(`Invalid URL: ${raw}`);
|
|
37
|
-
}
|
|
38
|
-
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
39
|
-
throw new Error(`Unsupported URL protocol: ${parsed.protocol}. geometra-proxy only opens http:// or https:// pages.`);
|
|
40
|
-
}
|
|
41
|
-
return parsed.toString();
|
|
42
|
-
}
|
|
43
29
|
function parsePortArg(raw) {
|
|
44
30
|
const n = Number(raw ?? '');
|
|
45
31
|
if (Number.isInteger(n) && n >= 0 && n <= 65535)
|
|
@@ -59,13 +45,6 @@ function emitReadySignal(wsUrl, pageUrl) {
|
|
|
59
45
|
return;
|
|
60
46
|
process.stdout.write(`${JSON.stringify({ type: READY_SIGNAL_TYPE, wsUrl, pageUrl })}\n`);
|
|
61
47
|
}
|
|
62
|
-
function formatProxyFatalError(err) {
|
|
63
|
-
const base = err instanceof Error ? err.message : String(err);
|
|
64
|
-
if (/Executable doesn't exist|playwright install chromium|browserType\.launch/i.test(base)) {
|
|
65
|
-
return `${base}\nInstall Chromium with: npx playwright install chromium`;
|
|
66
|
-
}
|
|
67
|
-
return base;
|
|
68
|
-
}
|
|
69
48
|
function parseArgs(argv) {
|
|
70
49
|
let url = '';
|
|
71
50
|
let port = 3200;
|
|
@@ -119,73 +98,35 @@ async function main() {
|
|
|
119
98
|
process.exit(1);
|
|
120
99
|
}
|
|
121
100
|
const url = parseHttpPageUrl(rawUrl);
|
|
122
|
-
const launchOpts = { headless: !headed };
|
|
123
|
-
if (slowMo > 0)
|
|
124
|
-
launchOpts.slowMo = slowMo;
|
|
125
|
-
const browser = await chromium.launch(launchOpts);
|
|
126
|
-
const page = await browser.newPage();
|
|
127
|
-
await page.setViewportSize({ width, height });
|
|
128
|
-
let listeningWsUrl = port === 0 ? '' : `ws://127.0.0.1:${port}`;
|
|
129
|
-
let resolveListening;
|
|
130
|
-
let rejectListening;
|
|
131
|
-
const listeningPromise = new Promise((resolve, reject) => {
|
|
132
|
-
resolveListening = resolve;
|
|
133
|
-
rejectListening = reject;
|
|
134
|
-
});
|
|
135
101
|
const mode = headed ? 'headed (visible window)' : 'headless';
|
|
136
102
|
const pace = slowMo > 0 ? `, slowMo ${slowMo}ms` : '';
|
|
137
103
|
console.error(`[geometra-proxy] Chromium ${mode}${pace}`);
|
|
138
104
|
console.error(`[geometra-proxy] Loading ${url} …`);
|
|
139
|
-
const
|
|
105
|
+
const runtime = await launchProxyRuntime({
|
|
106
|
+
url,
|
|
140
107
|
port,
|
|
141
|
-
|
|
108
|
+
width,
|
|
109
|
+
height,
|
|
110
|
+
headed,
|
|
111
|
+
slowMo,
|
|
142
112
|
debounceMs: 50,
|
|
143
|
-
onListening(
|
|
144
|
-
|
|
145
|
-
resolveListening?.(listeningWsUrl);
|
|
146
|
-
resolveListening = undefined;
|
|
147
|
-
rejectListening = undefined;
|
|
148
|
-
console.error(`[geometra-proxy] WebSocket listening on ${listeningWsUrl}`);
|
|
113
|
+
onListening(wsUrl) {
|
|
114
|
+
console.error(`[geometra-proxy] WebSocket listening on ${wsUrl}`);
|
|
149
115
|
},
|
|
150
116
|
onError(err) {
|
|
151
117
|
const message = formatProxyFatalError(err);
|
|
152
118
|
console.error('[geometra-proxy] error:', message);
|
|
153
|
-
if (!listeningWsUrl) {
|
|
154
|
-
rejectListening?.(new Error(message));
|
|
155
|
-
rejectListening = undefined;
|
|
156
|
-
resolveListening = undefined;
|
|
157
|
-
}
|
|
158
119
|
},
|
|
159
120
|
});
|
|
160
|
-
const
|
|
161
|
-
const wsUrl = await listeningPromise;
|
|
121
|
+
const wsUrl = runtime.wsUrl;
|
|
162
122
|
console.error(`[geometra-proxy] Ready. Connect MCP with geometra_connect({ url: "${wsUrl}" })`);
|
|
163
123
|
emitReadySignal(wsUrl, url);
|
|
164
|
-
await navigation;
|
|
165
|
-
await hub.flushExtract();
|
|
166
|
-
await installDomObserver(page, hub.scheduleExtract);
|
|
167
|
-
page.on('domcontentloaded', () => {
|
|
168
|
-
void installDomObserver(page, hub.scheduleExtract)
|
|
169
|
-
.then(() => {
|
|
170
|
-
hub.scheduleExtract();
|
|
171
|
-
})
|
|
172
|
-
.catch(err => {
|
|
173
|
-
const message = formatProxyFatalError(err);
|
|
174
|
-
console.error('[geometra-proxy] observer reinstall failed:', message);
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
124
|
let shuttingDown = false;
|
|
178
125
|
const shutdown = async () => {
|
|
179
126
|
if (shuttingDown)
|
|
180
127
|
return;
|
|
181
128
|
shuttingDown = true;
|
|
182
|
-
|
|
183
|
-
await hub.close();
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
/* ignore */
|
|
187
|
-
}
|
|
188
|
-
await browser.close();
|
|
129
|
+
await runtime.close();
|
|
189
130
|
process.exit(0);
|
|
190
131
|
};
|
|
191
132
|
process.on('SIGINT', () => void shutdown());
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Browser, type Page } from 'playwright';
|
|
2
|
+
import { type GeometryWsHub } from './geometry-ws.js';
|
|
3
|
+
export interface ProxyRuntimeHandle {
|
|
4
|
+
browser: Browser;
|
|
5
|
+
page: Page;
|
|
6
|
+
hub: GeometryWsHub;
|
|
7
|
+
pageUrl: string;
|
|
8
|
+
wsUrl: string;
|
|
9
|
+
closed: boolean;
|
|
10
|
+
close: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export interface LaunchProxyRuntimeOptions {
|
|
13
|
+
url: string;
|
|
14
|
+
port: number;
|
|
15
|
+
width?: number;
|
|
16
|
+
height?: number;
|
|
17
|
+
headed?: boolean;
|
|
18
|
+
slowMo?: number;
|
|
19
|
+
debounceMs?: number;
|
|
20
|
+
onListening?: (wsUrl: string) => void;
|
|
21
|
+
onError?: (err: unknown) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function parseHttpPageUrl(raw: string): string;
|
|
24
|
+
export declare function formatProxyFatalError(err: unknown): string;
|
|
25
|
+
export declare function launchProxyRuntime(options: LaunchProxyRuntimeOptions): Promise<ProxyRuntimeHandle>;
|
|
26
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEjG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,GAAG,EAAE,aAAa,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAM1D;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+FxG"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { chromium } from 'playwright';
|
|
2
|
+
import { installDomObserver, startGeometryWebSocket } from './geometry-ws.js';
|
|
3
|
+
export function parseHttpPageUrl(raw) {
|
|
4
|
+
let parsed;
|
|
5
|
+
try {
|
|
6
|
+
parsed = new URL(raw);
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
throw new Error(`Invalid URL: ${raw}`);
|
|
10
|
+
}
|
|
11
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
12
|
+
throw new Error(`Unsupported URL protocol: ${parsed.protocol}. geometra-proxy only opens http:// or https:// pages.`);
|
|
13
|
+
}
|
|
14
|
+
return parsed.toString();
|
|
15
|
+
}
|
|
16
|
+
export function formatProxyFatalError(err) {
|
|
17
|
+
const base = err instanceof Error ? err.message : String(err);
|
|
18
|
+
if (/Executable doesn't exist|playwright install chromium|browserType\.launch/i.test(base)) {
|
|
19
|
+
return `${base}\nInstall Chromium with: npx playwright install chromium`;
|
|
20
|
+
}
|
|
21
|
+
return base;
|
|
22
|
+
}
|
|
23
|
+
export async function launchProxyRuntime(options) {
|
|
24
|
+
const pageUrl = parseHttpPageUrl(options.url);
|
|
25
|
+
const launchOpts = { headless: options.headed !== true };
|
|
26
|
+
if (options.slowMo && options.slowMo > 0)
|
|
27
|
+
launchOpts.slowMo = options.slowMo;
|
|
28
|
+
const browser = await chromium.launch(launchOpts);
|
|
29
|
+
const page = await browser.newPage({
|
|
30
|
+
viewport: {
|
|
31
|
+
width: options.width ?? 1280,
|
|
32
|
+
height: options.height ?? 720,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
let resolveListening;
|
|
36
|
+
let rejectListening;
|
|
37
|
+
const listeningPromise = new Promise((resolve, reject) => {
|
|
38
|
+
resolveListening = resolve;
|
|
39
|
+
rejectListening = reject;
|
|
40
|
+
});
|
|
41
|
+
let resolveBeforeInput;
|
|
42
|
+
let rejectBeforeInput;
|
|
43
|
+
const beforeInput = new Promise((resolve, reject) => {
|
|
44
|
+
resolveBeforeInput = resolve;
|
|
45
|
+
rejectBeforeInput = reject;
|
|
46
|
+
});
|
|
47
|
+
let wsUrl = options.port === 0 ? '' : `ws://127.0.0.1:${options.port}`;
|
|
48
|
+
let closed = false;
|
|
49
|
+
const reportError = (err) => {
|
|
50
|
+
options.onError?.(err);
|
|
51
|
+
if (!wsUrl) {
|
|
52
|
+
rejectListening(new Error(formatProxyFatalError(err)));
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const hub = startGeometryWebSocket({
|
|
56
|
+
port: options.port,
|
|
57
|
+
page,
|
|
58
|
+
debounceMs: options.debounceMs ?? 50,
|
|
59
|
+
beforeInput,
|
|
60
|
+
onListening(port) {
|
|
61
|
+
wsUrl = `ws://127.0.0.1:${port}`;
|
|
62
|
+
resolveListening(wsUrl);
|
|
63
|
+
options.onListening?.(wsUrl);
|
|
64
|
+
},
|
|
65
|
+
onError: reportError,
|
|
66
|
+
});
|
|
67
|
+
const refreshObservers = () => {
|
|
68
|
+
void installDomObserver(page, hub.scheduleExtract)
|
|
69
|
+
.then(() => {
|
|
70
|
+
hub.scheduleExtract();
|
|
71
|
+
})
|
|
72
|
+
.catch(reportError);
|
|
73
|
+
};
|
|
74
|
+
page.on('domcontentloaded', refreshObservers);
|
|
75
|
+
const initialNavigation = page.goto(pageUrl, { waitUntil: 'domcontentloaded', timeout: 60_000 });
|
|
76
|
+
void initialNavigation
|
|
77
|
+
.then(async () => {
|
|
78
|
+
resolveBeforeInput();
|
|
79
|
+
await hub.flushExtract();
|
|
80
|
+
})
|
|
81
|
+
.catch(err => {
|
|
82
|
+
rejectBeforeInput(err);
|
|
83
|
+
reportError(err);
|
|
84
|
+
});
|
|
85
|
+
const listeningWsUrl = await listeningPromise;
|
|
86
|
+
const close = async () => {
|
|
87
|
+
if (closed)
|
|
88
|
+
return;
|
|
89
|
+
closed = true;
|
|
90
|
+
try {
|
|
91
|
+
await hub.close();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* ignore */
|
|
95
|
+
}
|
|
96
|
+
await browser.close();
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
browser,
|
|
100
|
+
page,
|
|
101
|
+
hub,
|
|
102
|
+
pageUrl,
|
|
103
|
+
wsUrl: listeningWsUrl,
|
|
104
|
+
get closed() {
|
|
105
|
+
return closed;
|
|
106
|
+
},
|
|
107
|
+
close,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export interface GeometrySnapshot {
|
|
|
26
26
|
treeJson: string;
|
|
27
27
|
}
|
|
28
28
|
export declare const PROXY_PROTOCOL_VERSION: 1;
|
|
29
|
+
export type ClientChoiceType = 'select' | 'group' | 'listbox';
|
|
29
30
|
export type ClientEventMessage = {
|
|
30
31
|
type: 'event';
|
|
31
32
|
eventType: string;
|
|
@@ -56,6 +57,12 @@ export type ClientResizeMessage = {
|
|
|
56
57
|
requestId?: string;
|
|
57
58
|
protocolVersion?: number;
|
|
58
59
|
};
|
|
60
|
+
export type ClientNavigateMessage = {
|
|
61
|
+
type: 'navigate';
|
|
62
|
+
url: string;
|
|
63
|
+
requestId?: string;
|
|
64
|
+
protocolVersion?: number;
|
|
65
|
+
};
|
|
59
66
|
export type ClientCompositionMessage = {
|
|
60
67
|
type: 'composition';
|
|
61
68
|
eventType: 'onCompositionStart' | 'onCompositionUpdate' | 'onCompositionEnd';
|
|
@@ -66,6 +73,7 @@ export type ClientCompositionMessage = {
|
|
|
66
73
|
export type ClientFileMessage = {
|
|
67
74
|
type: 'file';
|
|
68
75
|
paths: string[];
|
|
76
|
+
fieldId?: string;
|
|
69
77
|
x?: number;
|
|
70
78
|
y?: number;
|
|
71
79
|
fieldLabel?: string;
|
|
@@ -78,6 +86,7 @@ export type ClientFileMessage = {
|
|
|
78
86
|
};
|
|
79
87
|
export type ClientSetFieldTextMessage = {
|
|
80
88
|
type: 'setFieldText';
|
|
89
|
+
fieldId?: string;
|
|
81
90
|
fieldLabel: string;
|
|
82
91
|
value: string;
|
|
83
92
|
exact?: boolean;
|
|
@@ -86,32 +95,45 @@ export type ClientSetFieldTextMessage = {
|
|
|
86
95
|
};
|
|
87
96
|
export type ClientSetFieldChoiceMessage = {
|
|
88
97
|
type: 'setFieldChoice';
|
|
98
|
+
fieldId?: string;
|
|
89
99
|
fieldLabel: string;
|
|
90
100
|
value: string;
|
|
91
101
|
query?: string;
|
|
102
|
+
choiceType?: ClientChoiceType;
|
|
92
103
|
exact?: boolean;
|
|
93
104
|
requestId?: string;
|
|
94
105
|
protocolVersion?: number;
|
|
95
106
|
};
|
|
96
107
|
export type ClientFillField = {
|
|
108
|
+
kind: 'auto';
|
|
109
|
+
fieldId?: string;
|
|
110
|
+
fieldLabel: string;
|
|
111
|
+
value: string | boolean;
|
|
112
|
+
exact?: boolean;
|
|
113
|
+
} | {
|
|
97
114
|
kind: 'text';
|
|
115
|
+
fieldId?: string;
|
|
98
116
|
fieldLabel: string;
|
|
99
117
|
value: string;
|
|
100
118
|
exact?: boolean;
|
|
101
119
|
} | {
|
|
102
120
|
kind: 'choice';
|
|
121
|
+
fieldId?: string;
|
|
103
122
|
fieldLabel: string;
|
|
104
123
|
value: string;
|
|
105
124
|
query?: string;
|
|
106
125
|
exact?: boolean;
|
|
126
|
+
choiceType?: ClientChoiceType;
|
|
107
127
|
} | {
|
|
108
128
|
kind: 'toggle';
|
|
129
|
+
fieldId?: string;
|
|
109
130
|
label: string;
|
|
110
131
|
checked?: boolean;
|
|
111
132
|
exact?: boolean;
|
|
112
133
|
controlType?: 'checkbox' | 'radio';
|
|
113
134
|
} | {
|
|
114
135
|
kind: 'file';
|
|
136
|
+
fieldId?: string;
|
|
115
137
|
fieldLabel: string;
|
|
116
138
|
paths: string[];
|
|
117
139
|
exact?: boolean;
|
|
@@ -128,6 +150,7 @@ export type ClientListboxPickMessage = {
|
|
|
128
150
|
exact?: boolean;
|
|
129
151
|
openX?: number;
|
|
130
152
|
openY?: number;
|
|
153
|
+
fieldId?: string;
|
|
131
154
|
fieldLabel?: string;
|
|
132
155
|
query?: string;
|
|
133
156
|
requestId?: string;
|
|
@@ -161,12 +184,13 @@ export type ClientWheelMessage = {
|
|
|
161
184
|
requestId?: string;
|
|
162
185
|
protocolVersion?: number;
|
|
163
186
|
};
|
|
164
|
-
export type ParsedClientMessage = ClientEventMessage | ClientKeyMessage | ClientResizeMessage | ClientCompositionMessage | ClientFileMessage | ClientSetFieldTextMessage | ClientSetFieldChoiceMessage | ClientFillFieldsMessage | ClientListboxPickMessage | ClientSelectOptionMessage | ClientSetCheckedMessage | ClientWheelMessage | {
|
|
187
|
+
export type ParsedClientMessage = ClientEventMessage | ClientKeyMessage | ClientResizeMessage | ClientNavigateMessage | ClientCompositionMessage | ClientFileMessage | ClientSetFieldTextMessage | ClientSetFieldChoiceMessage | ClientFillFieldsMessage | ClientListboxPickMessage | ClientSelectOptionMessage | ClientSetCheckedMessage | ClientWheelMessage | {
|
|
165
188
|
type: string;
|
|
166
189
|
protocolVersion?: number;
|
|
167
190
|
};
|
|
168
191
|
export declare function isKeyMessage(msg: ParsedClientMessage): msg is ClientKeyMessage;
|
|
169
192
|
export declare function isResizeMessage(msg: ParsedClientMessage): msg is ClientResizeMessage;
|
|
193
|
+
export declare function isNavigateMessage(msg: ParsedClientMessage): msg is ClientNavigateMessage;
|
|
170
194
|
export declare function isClickEventMessage(msg: ParsedClientMessage): msg is ClientEventMessage;
|
|
171
195
|
export declare function isCompositionMessage(msg: ParsedClientMessage): msg is ClientCompositionMessage;
|
|
172
196
|
export declare function isFileMessage(msg: ParsedClientMessage): msg is ClientFileMessage;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAED,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,iFAAiF;IACjF,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACxE,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,EAAE,YAAY,CAAA;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -5,6 +5,9 @@ export function isKeyMessage(msg) {
|
|
|
5
5
|
export function isResizeMessage(msg) {
|
|
6
6
|
return msg.type === 'resize' && 'width' in msg && 'height' in msg;
|
|
7
7
|
}
|
|
8
|
+
export function isNavigateMessage(msg) {
|
|
9
|
+
return msg.type === 'navigate' && 'url' in msg && typeof msg.url === 'string';
|
|
10
|
+
}
|
|
8
11
|
export function isClickEventMessage(msg) {
|
|
9
12
|
return msg.type === 'event' && 'eventType' in msg && msg.eventType === 'onClick' && 'x' in msg && 'y' in msg;
|
|
10
13
|
}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED