@geometra/proxy 1.63.2 → 1.64.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/types.d.ts CHANGED
@@ -25,8 +25,19 @@ export interface GeometrySnapshot {
25
25
  /** `JSON.stringify(tree)` for deciding frame vs patch. */
26
26
  treeJson: string;
27
27
  }
28
- export declare const PROXY_PROTOCOL_VERSION: 1;
28
+ export declare const PROXY_PROTOCOL_VERSION: 2;
29
29
  export type ClientChoiceType = 'select' | 'group' | 'listbox';
30
+ /**
31
+ * Stable authored DOM key emitted by the proxy extractor.
32
+ *
33
+ * - `id:<id>` identifies an element by its authored `id`.
34
+ * - `name:<tag>:<type-or-default>:<name>` identifies an element by its
35
+ * authored tag / type / name tuple.
36
+ *
37
+ * `fieldId` remains Geometra's schema/cache identity. `fieldKey` is the
38
+ * browser-side exact locator that should be tried before label heuristics.
39
+ */
40
+ export type ClientFieldKey = string;
30
41
  export type ClientEventMessage = {
31
42
  type: 'event';
32
43
  eventType: string;
@@ -74,6 +85,7 @@ export type ClientFileMessage = {
74
85
  type: 'file';
75
86
  paths: string[];
76
87
  fieldId?: string;
88
+ fieldKey?: ClientFieldKey;
77
89
  x?: number;
78
90
  y?: number;
79
91
  fieldLabel?: string;
@@ -87,6 +99,7 @@ export type ClientFileMessage = {
87
99
  export type ClientSetFieldTextMessage = {
88
100
  type: 'setFieldText';
89
101
  fieldId?: string;
102
+ fieldKey?: ClientFieldKey;
90
103
  fieldLabel: string;
91
104
  value: string;
92
105
  exact?: boolean;
@@ -100,8 +113,10 @@ export type ClientSetFieldTextMessage = {
100
113
  export type ClientSetFieldChoiceMessage = {
101
114
  type: 'setFieldChoice';
102
115
  fieldId?: string;
116
+ fieldKey?: ClientFieldKey;
103
117
  fieldLabel: string;
104
118
  value: string;
119
+ optionIndex?: number;
105
120
  query?: string;
106
121
  choiceType?: ClientChoiceType;
107
122
  exact?: boolean;
@@ -111,12 +126,14 @@ export type ClientSetFieldChoiceMessage = {
111
126
  export type ClientFillField = {
112
127
  kind: 'auto';
113
128
  fieldId?: string;
129
+ fieldKey?: ClientFieldKey;
114
130
  fieldLabel: string;
115
131
  value: string | boolean;
116
132
  exact?: boolean;
117
133
  } | {
118
134
  kind: 'text';
119
135
  fieldId?: string;
136
+ fieldKey?: ClientFieldKey;
120
137
  fieldLabel: string;
121
138
  value: string;
122
139
  exact?: boolean;
@@ -125,21 +142,27 @@ export type ClientFillField = {
125
142
  } | {
126
143
  kind: 'choice';
127
144
  fieldId?: string;
145
+ fieldKey?: ClientFieldKey;
128
146
  fieldLabel: string;
129
147
  value: string;
148
+ optionIndex?: number;
130
149
  query?: string;
131
150
  exact?: boolean;
132
151
  choiceType?: ClientChoiceType;
133
152
  } | {
134
153
  kind: 'toggle';
135
154
  fieldId?: string;
155
+ fieldKey?: ClientFieldKey;
136
156
  label: string;
137
157
  checked?: boolean;
138
158
  exact?: boolean;
139
159
  controlType?: 'checkbox' | 'radio';
160
+ contextText?: string;
161
+ sectionText?: string;
140
162
  } | {
141
163
  kind: 'file';
142
164
  fieldId?: string;
165
+ fieldKey?: ClientFieldKey;
143
166
  fieldLabel: string;
144
167
  paths: string[];
145
168
  exact?: boolean;
@@ -157,6 +180,7 @@ export type ClientListboxPickMessage = {
157
180
  openX?: number;
158
181
  openY?: number;
159
182
  fieldId?: string;
183
+ fieldKey?: ClientFieldKey;
160
184
  fieldLabel?: string;
161
185
  query?: string;
162
186
  requestId?: string;
@@ -175,9 +199,12 @@ export type ClientSelectOptionMessage = {
175
199
  export type ClientSetCheckedMessage = {
176
200
  type: 'setChecked';
177
201
  label: string;
202
+ fieldKey?: ClientFieldKey;
178
203
  checked?: boolean;
179
204
  exact?: boolean;
180
205
  controlType?: 'checkbox' | 'radio';
206
+ contextText?: string;
207
+ sectionText?: string;
181
208
  requestId?: string;
182
209
  protocolVersion?: number;
183
210
  };
@@ -222,6 +249,7 @@ export type ParsedClientMessage = ClientEventMessage | ClientKeyMessage | Client
222
249
  type: string;
223
250
  protocolVersion?: number;
224
251
  };
252
+ export declare function isClientFieldKey(value: unknown): value is ClientFieldKey;
225
253
  export declare function isKeyMessage(msg: ParsedClientMessage): msg is ClientKeyMessage;
226
254
  export declare function isResizeMessage(msg: ParsedClientMessage): msg is ClientResizeMessage;
227
255
  export declare function isNavigateMessage(msg: ParsedClientMessage): msg is ClientNavigateMessage;
@@ -238,4 +266,6 @@ export declare function isListboxPickMessage(msg: ParsedClientMessage): msg is C
238
266
  export declare function isSetCheckedMessage(msg: ParsedClientMessage): msg is ClientSetCheckedMessage;
239
267
  export declare function isScreenshotMessage(msg: ParsedClientMessage): msg is ClientScreenshotMessage;
240
268
  export declare function isPdfGenerateMessage(msg: ParsedClientMessage): msg is ClientPdfGenerateMessage;
269
+ /** Return an actionable wire-level error before a malformed message reaches Playwright. */
270
+ export declare function clientMessageValidationError(msg: ParsedClientMessage): string | null;
241
271
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,64 +1,322 @@
1
- export const PROXY_PROTOCOL_VERSION = 1;
1
+ export const PROXY_PROTOCOL_VERSION = 2;
2
+ const COMMON_MESSAGE_KEYS = new Set(['type', 'requestId', 'protocolVersion']);
3
+ const SET_CHECKED_MESSAGE_KEYS = new Set([
4
+ ...COMMON_MESSAGE_KEYS,
5
+ 'label',
6
+ 'fieldKey',
7
+ 'checked',
8
+ 'exact',
9
+ 'controlType',
10
+ 'contextText',
11
+ 'sectionText',
12
+ ]);
13
+ const FILL_FIELDS_MESSAGE_KEYS = new Set([...COMMON_MESSAGE_KEYS, 'fields']);
14
+ const MESSAGE_KEYS = {
15
+ event: new Set([...COMMON_MESSAGE_KEYS, 'eventType', 'x', 'y']),
16
+ key: new Set([...COMMON_MESSAGE_KEYS, 'eventType', 'key', 'code', 'shiftKey', 'ctrlKey', 'metaKey', 'altKey']),
17
+ resize: new Set([...COMMON_MESSAGE_KEYS, 'width', 'height', 'capabilities']),
18
+ navigate: new Set([...COMMON_MESSAGE_KEYS, 'url']),
19
+ composition: new Set([...COMMON_MESSAGE_KEYS, 'eventType', 'data']),
20
+ file: new Set([...COMMON_MESSAGE_KEYS, 'paths', 'fieldId', 'fieldKey', 'x', 'y', 'fieldLabel', 'exact', 'strategy', 'dropX', 'dropY']),
21
+ setFieldText: new Set([...COMMON_MESSAGE_KEYS, 'fieldId', 'fieldKey', 'fieldLabel', 'value', 'exact', 'typingDelayMs', 'imeFriendly']),
22
+ setFieldChoice: new Set([...COMMON_MESSAGE_KEYS, 'fieldId', 'fieldKey', 'fieldLabel', 'value', 'optionIndex', 'query', 'choiceType', 'exact']),
23
+ fillOtp: new Set([...COMMON_MESSAGE_KEYS, 'value', 'fieldLabel', 'perCharDelayMs']),
24
+ listboxPick: new Set([...COMMON_MESSAGE_KEYS, 'label', 'exact', 'openX', 'openY', 'fieldId', 'fieldKey', 'fieldLabel', 'query']),
25
+ selectOption: new Set([...COMMON_MESSAGE_KEYS, 'x', 'y', 'value', 'label', 'index']),
26
+ wheel: new Set([...COMMON_MESSAGE_KEYS, 'deltaX', 'deltaY', 'x', 'y']),
27
+ screenshot: new Set(COMMON_MESSAGE_KEYS),
28
+ pdfGenerate: new Set([...COMMON_MESSAGE_KEYS, 'html', 'format', 'landscape', 'margin', 'printBackground']),
29
+ };
30
+ const FILL_FIELD_KEYS = {
31
+ auto: new Set(['kind', 'fieldId', 'fieldKey', 'fieldLabel', 'value', 'exact']),
32
+ text: new Set(['kind', 'fieldId', 'fieldKey', 'fieldLabel', 'value', 'exact', 'typingDelayMs', 'imeFriendly']),
33
+ choice: new Set(['kind', 'fieldId', 'fieldKey', 'fieldLabel', 'value', 'optionIndex', 'query', 'exact', 'choiceType']),
34
+ toggle: new Set([
35
+ 'kind',
36
+ 'fieldId',
37
+ 'fieldKey',
38
+ 'label',
39
+ 'checked',
40
+ 'exact',
41
+ 'controlType',
42
+ 'contextText',
43
+ 'sectionText',
44
+ ]),
45
+ file: new Set(['kind', 'fieldId', 'fieldKey', 'fieldLabel', 'paths', 'exact']),
46
+ };
47
+ function asRecord(value) {
48
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
49
+ ? value
50
+ : null;
51
+ }
52
+ function isFiniteNumber(value) {
53
+ return typeof value === 'number' && Number.isFinite(value);
54
+ }
55
+ function isOptionalBoolean(value) {
56
+ return value === undefined || typeof value === 'boolean';
57
+ }
58
+ function isOptionalFiniteNumber(value) {
59
+ return value === undefined || isFiniteNumber(value);
60
+ }
61
+ function isOptionalTrimmedString(value) {
62
+ return value === undefined || (typeof value === 'string' && value.length > 0 && value === value.trim());
63
+ }
64
+ function isTrimmedNonEmptyString(value) {
65
+ return typeof value === 'string' && value.length > 0 && value === value.trim();
66
+ }
67
+ export function isClientFieldKey(value) {
68
+ if (!isTrimmedNonEmptyString(value))
69
+ return false;
70
+ if (value.startsWith('id:')) {
71
+ try {
72
+ return decodeURIComponent(value.slice(3)).trim().length > 0;
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ }
78
+ if (!value.startsWith('name:'))
79
+ return false;
80
+ const parts = value.split(':');
81
+ if (parts.length < 4 || !parts[1] || !parts[2])
82
+ return false;
83
+ try {
84
+ return decodeURIComponent(parts.slice(3).join(':')).trim().length > 0;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ function hasOnlyKeys(record, allowed) {
91
+ return Object.keys(record).every(key => allowed.has(key));
92
+ }
93
+ function hasValidCommonFields(record) {
94
+ return isOptionalTrimmedString(record.requestId) && isOptionalFiniteNumber(record.protocolVersion);
95
+ }
96
+ function isClientFillField(value) {
97
+ const field = asRecord(value);
98
+ if (!field || !isTrimmedNonEmptyString(field.kind))
99
+ return false;
100
+ if (field.fieldId !== undefined && !isTrimmedNonEmptyString(field.fieldId))
101
+ return false;
102
+ if (field.fieldKey !== undefined && !isClientFieldKey(field.fieldKey))
103
+ return false;
104
+ if (!isOptionalBoolean(field.exact))
105
+ return false;
106
+ if (field.kind === 'auto') {
107
+ return hasOnlyKeys(field, FILL_FIELD_KEYS.auto) && isTrimmedNonEmptyString(field.fieldLabel) &&
108
+ (typeof field.value === 'string' || typeof field.value === 'boolean');
109
+ }
110
+ if (field.kind === 'text') {
111
+ return hasOnlyKeys(field, FILL_FIELD_KEYS.text) && isTrimmedNonEmptyString(field.fieldLabel) && typeof field.value === 'string' &&
112
+ isOptionalFiniteNumber(field.typingDelayMs) && isOptionalBoolean(field.imeFriendly);
113
+ }
114
+ if (field.kind === 'choice') {
115
+ return hasOnlyKeys(field, FILL_FIELD_KEYS.choice) && isTrimmedNonEmptyString(field.fieldLabel) && typeof field.value === 'string' &&
116
+ (field.optionIndex === undefined || (isFiniteNumber(field.optionIndex) && Number.isInteger(field.optionIndex) && field.optionIndex >= 0)) &&
117
+ isOptionalTrimmedString(field.query) &&
118
+ (field.choiceType === undefined || field.choiceType === 'select' || field.choiceType === 'group' || field.choiceType === 'listbox');
119
+ }
120
+ if (field.kind === 'toggle') {
121
+ return hasOnlyKeys(field, FILL_FIELD_KEYS.toggle) && isTrimmedNonEmptyString(field.label) && isOptionalBoolean(field.checked) &&
122
+ (field.controlType === undefined || field.controlType === 'checkbox' || field.controlType === 'radio') &&
123
+ isOptionalTrimmedString(field.contextText) && isOptionalTrimmedString(field.sectionText);
124
+ }
125
+ if (field.kind === 'file') {
126
+ return hasOnlyKeys(field, FILL_FIELD_KEYS.file) && isTrimmedNonEmptyString(field.fieldLabel) && Array.isArray(field.paths) && field.paths.length > 0 &&
127
+ field.paths.every(isTrimmedNonEmptyString);
128
+ }
129
+ return false;
130
+ }
2
131
  export function isKeyMessage(msg) {
3
- return msg.type === 'key' && 'eventType' in msg && 'key' in msg && 'code' in msg;
132
+ const record = asRecord(msg);
133
+ return !!record && record.type === 'key' &&
134
+ hasOnlyKeys(record, MESSAGE_KEYS.key) &&
135
+ (record.eventType === 'onKeyDown' || record.eventType === 'onKeyUp') &&
136
+ typeof record.key === 'string' && typeof record.code === 'string' &&
137
+ typeof record.shiftKey === 'boolean' && typeof record.ctrlKey === 'boolean' &&
138
+ typeof record.metaKey === 'boolean' && typeof record.altKey === 'boolean' &&
139
+ hasValidCommonFields(record);
4
140
  }
5
141
  export function isResizeMessage(msg) {
6
- return msg.type === 'resize' && 'width' in msg && 'height' in msg;
142
+ const record = asRecord(msg);
143
+ return !!record && record.type === 'resize' && hasOnlyKeys(record, MESSAGE_KEYS.resize) &&
144
+ isFiniteNumber(record.width) && isFiniteNumber(record.height) &&
145
+ (record.capabilities === undefined || (!!asRecord(record.capabilities) && hasOnlyKeys(record.capabilities, new Set(['binaryFraming'])) &&
146
+ isOptionalBoolean(record.capabilities.binaryFraming))) && hasValidCommonFields(record);
7
147
  }
8
148
  export function isNavigateMessage(msg) {
9
- return msg.type === 'navigate' && 'url' in msg && typeof msg.url === 'string';
149
+ const record = asRecord(msg);
150
+ return !!record && record.type === 'navigate' && hasOnlyKeys(record, MESSAGE_KEYS.navigate) &&
151
+ isTrimmedNonEmptyString(record.url) && hasValidCommonFields(record);
10
152
  }
11
153
  export function isClickEventMessage(msg) {
12
- return msg.type === 'event' && 'eventType' in msg && msg.eventType === 'onClick' && 'x' in msg && 'y' in msg;
154
+ const record = asRecord(msg);
155
+ return !!record && record.type === 'event' && hasOnlyKeys(record, MESSAGE_KEYS.event) && record.eventType === 'onClick' &&
156
+ isFiniteNumber(record.x) && isFiniteNumber(record.y) && hasValidCommonFields(record);
13
157
  }
14
158
  export function isCompositionMessage(msg) {
15
- return msg.type === 'composition' && 'eventType' in msg && 'data' in msg;
159
+ const record = asRecord(msg);
160
+ return !!record && record.type === 'composition' && hasOnlyKeys(record, MESSAGE_KEYS.composition) &&
161
+ (record.eventType === 'onCompositionStart' || record.eventType === 'onCompositionUpdate' || record.eventType === 'onCompositionEnd') &&
162
+ typeof record.data === 'string' && hasValidCommonFields(record);
16
163
  }
17
164
  export function isFileMessage(msg) {
18
- return msg.type === 'file' && 'paths' in msg && Array.isArray(msg.paths);
165
+ const record = asRecord(msg);
166
+ return !!record && record.type === 'file' && hasOnlyKeys(record, MESSAGE_KEYS.file) &&
167
+ Array.isArray(record.paths) && record.paths.length > 0 &&
168
+ record.paths.every(isTrimmedNonEmptyString) &&
169
+ (record.fieldId === undefined || isTrimmedNonEmptyString(record.fieldId)) &&
170
+ (record.fieldKey === undefined || isClientFieldKey(record.fieldKey)) &&
171
+ isOptionalFiniteNumber(record.x) && isOptionalFiniteNumber(record.y) &&
172
+ isOptionalTrimmedString(record.fieldLabel) && isOptionalBoolean(record.exact) &&
173
+ (record.strategy === undefined || record.strategy === 'auto' || record.strategy === 'chooser' || record.strategy === 'hidden' || record.strategy === 'drop') &&
174
+ isOptionalFiniteNumber(record.dropX) && isOptionalFiniteNumber(record.dropY) && hasValidCommonFields(record);
19
175
  }
20
176
  export function isSetFieldTextMessage(msg) {
21
- return (msg.type === 'setFieldText' &&
22
- 'fieldLabel' in msg &&
23
- typeof msg.fieldLabel === 'string' &&
24
- 'value' in msg &&
25
- typeof msg.value === 'string');
177
+ const record = asRecord(msg);
178
+ return !!record && record.type === 'setFieldText' && hasOnlyKeys(record, MESSAGE_KEYS.setFieldText) &&
179
+ isTrimmedNonEmptyString(record.fieldLabel) &&
180
+ typeof record.value === 'string' &&
181
+ (record.fieldId === undefined || isTrimmedNonEmptyString(record.fieldId)) &&
182
+ (record.fieldKey === undefined || isClientFieldKey(record.fieldKey)) &&
183
+ isOptionalBoolean(record.exact) && isOptionalFiniteNumber(record.typingDelayMs) &&
184
+ isOptionalBoolean(record.imeFriendly) && hasValidCommonFields(record);
26
185
  }
27
186
  export function isSetFieldChoiceMessage(msg) {
28
- return (msg.type === 'setFieldChoice' &&
29
- 'fieldLabel' in msg &&
30
- typeof msg.fieldLabel === 'string' &&
31
- 'value' in msg &&
32
- typeof msg.value === 'string');
187
+ const record = asRecord(msg);
188
+ return !!record && record.type === 'setFieldChoice' && hasOnlyKeys(record, MESSAGE_KEYS.setFieldChoice) &&
189
+ isTrimmedNonEmptyString(record.fieldLabel) &&
190
+ typeof record.value === 'string' &&
191
+ (record.fieldId === undefined || isTrimmedNonEmptyString(record.fieldId)) &&
192
+ (record.fieldKey === undefined || isClientFieldKey(record.fieldKey)) &&
193
+ (record.optionIndex === undefined || (isFiniteNumber(record.optionIndex) && Number.isInteger(record.optionIndex) && record.optionIndex >= 0)) &&
194
+ isOptionalTrimmedString(record.query) && isOptionalBoolean(record.exact) &&
195
+ (record.choiceType === undefined || record.choiceType === 'select' || record.choiceType === 'group' || record.choiceType === 'listbox') &&
196
+ hasValidCommonFields(record);
33
197
  }
34
198
  export function isFillFieldsMessage(msg) {
35
- return msg.type === 'fillFields' && 'fields' in msg && Array.isArray(msg.fields);
199
+ const record = asRecord(msg);
200
+ return !!record && record.type === 'fillFields' && hasOnlyKeys(record, FILL_FIELDS_MESSAGE_KEYS) &&
201
+ Array.isArray(record.fields) && record.fields.length > 0 &&
202
+ record.fields.every(isClientFillField) && hasValidCommonFields(record);
36
203
  }
37
204
  export function isFillOtpMessage(msg) {
38
- return (msg.type === 'fillOtp' &&
39
- 'value' in msg &&
40
- typeof msg.value === 'string');
205
+ const record = asRecord(msg);
206
+ return !!record && record.type === 'fillOtp' && hasOnlyKeys(record, MESSAGE_KEYS.fillOtp) &&
207
+ isTrimmedNonEmptyString(record.value) &&
208
+ isOptionalTrimmedString(record.fieldLabel) && isOptionalFiniteNumber(record.perCharDelayMs) &&
209
+ hasValidCommonFields(record);
41
210
  }
42
211
  export function isSelectOptionMessage(msg) {
43
- return (msg.type === 'selectOption' &&
44
- 'x' in msg &&
45
- 'y' in msg &&
46
- typeof msg.x === 'number' &&
47
- typeof msg.y === 'number');
212
+ const record = asRecord(msg);
213
+ return !!record && record.type === 'selectOption' && hasOnlyKeys(record, MESSAGE_KEYS.selectOption) &&
214
+ isFiniteNumber(record.x) && isFiniteNumber(record.y) &&
215
+ (record.value === undefined || typeof record.value === 'string') &&
216
+ (record.label === undefined || typeof record.label === 'string') &&
217
+ (record.index === undefined || (isFiniteNumber(record.index) && Number.isInteger(record.index) && record.index >= 0)) &&
218
+ (record.value !== undefined || record.label !== undefined || record.index !== undefined) && hasValidCommonFields(record);
48
219
  }
49
220
  export function isWheelMessage(msg) {
50
- return msg.type === 'wheel';
221
+ const record = asRecord(msg);
222
+ return !!record && record.type === 'wheel' && hasOnlyKeys(record, MESSAGE_KEYS.wheel) && isOptionalFiniteNumber(record.deltaX) &&
223
+ isOptionalFiniteNumber(record.deltaY) && isOptionalFiniteNumber(record.x) && isOptionalFiniteNumber(record.y) &&
224
+ (record.deltaX !== undefined || record.deltaY !== undefined) && hasValidCommonFields(record);
51
225
  }
52
226
  export function isListboxPickMessage(msg) {
53
- return msg.type === 'listboxPick' && 'label' in msg && typeof msg.label === 'string';
227
+ const record = asRecord(msg);
228
+ return !!record && record.type === 'listboxPick' && hasOnlyKeys(record, MESSAGE_KEYS.listboxPick) &&
229
+ isTrimmedNonEmptyString(record.label) &&
230
+ isOptionalBoolean(record.exact) && isOptionalFiniteNumber(record.openX) && isOptionalFiniteNumber(record.openY) &&
231
+ (record.fieldId === undefined || isTrimmedNonEmptyString(record.fieldId)) &&
232
+ (record.fieldKey === undefined || isClientFieldKey(record.fieldKey)) &&
233
+ isOptionalTrimmedString(record.fieldLabel) && isOptionalTrimmedString(record.query) && hasValidCommonFields(record);
54
234
  }
55
235
  export function isSetCheckedMessage(msg) {
56
- return msg.type === 'setChecked' && 'label' in msg && typeof msg.label === 'string';
236
+ const record = asRecord(msg);
237
+ return !!record && record.type === 'setChecked' && hasOnlyKeys(record, SET_CHECKED_MESSAGE_KEYS) &&
238
+ isTrimmedNonEmptyString(record.label) &&
239
+ (record.fieldKey === undefined || isClientFieldKey(record.fieldKey)) &&
240
+ isOptionalBoolean(record.checked) && isOptionalBoolean(record.exact) &&
241
+ (record.controlType === undefined || record.controlType === 'checkbox' || record.controlType === 'radio') &&
242
+ isOptionalTrimmedString(record.contextText) && isOptionalTrimmedString(record.sectionText) &&
243
+ hasValidCommonFields(record);
57
244
  }
58
245
  export function isScreenshotMessage(msg) {
59
- return msg.type === 'screenshot';
246
+ const record = asRecord(msg);
247
+ return !!record && record.type === 'screenshot' && hasOnlyKeys(record, MESSAGE_KEYS.screenshot) && hasValidCommonFields(record);
60
248
  }
61
249
  export function isPdfGenerateMessage(msg) {
62
- return msg.type === 'pdfGenerate';
250
+ const record = asRecord(msg);
251
+ return !!record && record.type === 'pdfGenerate' && hasOnlyKeys(record, MESSAGE_KEYS.pdfGenerate) &&
252
+ (record.html === undefined || typeof record.html === 'string') &&
253
+ (record.format === undefined || record.format === 'A4' || record.format === 'Letter') &&
254
+ isOptionalBoolean(record.landscape) && isOptionalTrimmedString(record.margin) &&
255
+ isOptionalBoolean(record.printBackground) && hasValidCommonFields(record);
256
+ }
257
+ const KNOWN_CLIENT_MESSAGE_TYPES = new Set([
258
+ 'event',
259
+ 'key',
260
+ 'resize',
261
+ 'navigate',
262
+ 'composition',
263
+ 'file',
264
+ 'setFieldText',
265
+ 'setFieldChoice',
266
+ 'fillFields',
267
+ 'fillOtp',
268
+ 'listboxPick',
269
+ 'selectOption',
270
+ 'setChecked',
271
+ 'wheel',
272
+ 'screenshot',
273
+ 'pdfGenerate',
274
+ ]);
275
+ /** Return an actionable wire-level error before a malformed message reaches Playwright. */
276
+ export function clientMessageValidationError(msg) {
277
+ const record = asRecord(msg);
278
+ if (!record || typeof record.type !== 'string')
279
+ return 'Invalid client message: expected an object with a string type';
280
+ const valid = isClickEventMessage(msg) || isKeyMessage(msg) || isResizeMessage(msg) ||
281
+ isNavigateMessage(msg) || isCompositionMessage(msg) || isFileMessage(msg) ||
282
+ isSetFieldTextMessage(msg) || isSetFieldChoiceMessage(msg) || isFillFieldsMessage(msg) ||
283
+ isFillOtpMessage(msg) || isListboxPickMessage(msg) || isSelectOptionMessage(msg) ||
284
+ isSetCheckedMessage(msg) || isWheelMessage(msg) || isScreenshotMessage(msg) || isPdfGenerateMessage(msg);
285
+ if (valid)
286
+ return null;
287
+ if (!KNOWN_CLIENT_MESSAGE_TYPES.has(record.type)) {
288
+ return `Unsupported client message type "${record.type}"`;
289
+ }
290
+ if (record.type === 'setChecked') {
291
+ if (!isTrimmedNonEmptyString(record.label)) {
292
+ return 'Invalid setChecked message: label must be a trimmed, non-empty string';
293
+ }
294
+ const unknownKeys = Object.keys(record).filter(key => !SET_CHECKED_MESSAGE_KEYS.has(key));
295
+ if (unknownKeys.length > 0) {
296
+ return `Invalid setChecked message: unknown field(s): ${unknownKeys.join(', ')}`;
297
+ }
298
+ if (record.fieldKey !== undefined && !isClientFieldKey(record.fieldKey)) {
299
+ return 'Invalid setChecked message: fieldKey must be id:<id> or name:<tag>:<type-or-default>:<name>';
300
+ }
301
+ }
302
+ if (record.type === 'fillFields') {
303
+ const unknownTopLevelKeys = Object.keys(record).filter(key => !FILL_FIELDS_MESSAGE_KEYS.has(key));
304
+ if (unknownTopLevelKeys.length > 0) {
305
+ return `Invalid fillFields message: unknown field(s): ${unknownTopLevelKeys.join(', ')}`;
306
+ }
307
+ if (Array.isArray(record.fields)) {
308
+ for (let index = 0; index < record.fields.length; index++) {
309
+ const field = asRecord(record.fields[index]);
310
+ if (!field || typeof field.kind !== 'string' || !(field.kind in FILL_FIELD_KEYS))
311
+ continue;
312
+ const allowed = FILL_FIELD_KEYS[field.kind];
313
+ const unknownKeys = Object.keys(field).filter(key => !allowed.has(key));
314
+ if (unknownKeys.length > 0) {
315
+ return `Invalid fillFields message: fields[${index}] has unknown field(s): ${unknownKeys.join(', ')}`;
316
+ }
317
+ }
318
+ }
319
+ }
320
+ return `Invalid client message "${record.type}": payload does not match the proxy protocol`;
63
321
  }
64
322
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geometra/proxy",
3
- "version": "1.63.2",
3
+ "version": "1.64.0",
4
4
  "description": "Chromium proxy (headed by default) — stream live DOM geometry as Geometra WebSocket frames for MCP and clients",
5
5
  "license": "MIT",
6
6
  "type": "module",