@geometra/server 1.16.0 → 1.18.1
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/binary-frame.d.ts +20 -5
- package/dist/binary-frame.d.ts.map +1 -1
- package/dist/binary-frame.js +70 -12
- package/dist/binary-frame.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/protocol.d.ts +63 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +61 -13
- package/dist/protocol.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/dist/binary-frame.d.ts
CHANGED
|
@@ -3,8 +3,22 @@ import { Buffer } from 'node:buffer';
|
|
|
3
3
|
export declare const BINARY_FRAME_MAGIC: Buffer<ArrayBuffer>;
|
|
4
4
|
/** Maximum UTF-8 payload bytes representable in the v1 length field (inclusive). Keep in sync with `@geometra/client` `MAX_V1_PAYLOAD_BYTES`. */
|
|
5
5
|
export declare const MAX_V1_PAYLOAD_BYTES = 4294967295;
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Input slice for v1 GEOM binary frames: a whole backing buffer (`ArrayBuffer` or `SharedArrayBuffer`)
|
|
8
|
+
* or any `ArrayBufferView` into a larger store — same contract as `BinaryFrameBytes` in `@geometra/client`.
|
|
9
|
+
*/
|
|
10
|
+
export type BinaryFrameBytes = ArrayBuffer | SharedArrayBuffer | ArrayBufferView;
|
|
11
|
+
/**
|
|
12
|
+
* True if data looks like a v1 binary envelope (GEOM + version 1). Does not verify that the declared
|
|
13
|
+
* UTF-8 payload length fits the view — use {@link decodeBinaryFrameJson} for full validation.
|
|
14
|
+
* Accepts a root `ArrayBuffer` / `SharedArrayBuffer` or any `ArrayBufferView` (e.g. `Uint8Array` subarray,
|
|
15
|
+
* `DataView`, other typed arrays) so callers can probe frames embedded in a larger store without copying.
|
|
16
|
+
* `null` / `undefined` yield `false`. Plain objects that are not real `ArrayBufferView` instances also yield
|
|
17
|
+
* `false` (no numeric coercion).
|
|
18
|
+
* Inconsistent `(buffer, byteOffset, byteLength)` tuples that would make `Uint8Array` throw `RangeError`
|
|
19
|
+
* yield `false` instead of throwing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isBinaryFrameBuffer(data: BinaryFrameBytes): boolean;
|
|
8
22
|
/**
|
|
9
23
|
* Wrap UTF-8 JSON bytes in a binary envelope for WebSocket binary frames.
|
|
10
24
|
*
|
|
@@ -13,11 +27,12 @@ export declare function isBinaryFrameBuffer(data: Buffer | Uint8Array): boolean;
|
|
|
13
27
|
export declare function encodeBinaryFrameJson(jsonUtf8: string): Buffer;
|
|
14
28
|
/**
|
|
15
29
|
* Decode JSON string from a v1 binary envelope.
|
|
16
|
-
* Bytes after `header + payloadLength` are ignored so callers may pass a longer buffer.
|
|
17
|
-
* Accepts
|
|
30
|
+
* Bytes after `header + payloadLength` are ignored so callers may pass a longer backing buffer.
|
|
31
|
+
* Accepts a root `ArrayBuffer` / `SharedArrayBuffer` or any `ArrayBufferView` with the same semantics as
|
|
32
|
+
* `decodeBinaryFrameJson` in `@geometra/client`.
|
|
18
33
|
*
|
|
19
34
|
* @throws {Error} When the buffer is not a v1 GEOM frame (`Not a GEOM binary frame`).
|
|
20
35
|
* @throws {Error} When the declared payload length exceeds available bytes (`Truncated binary frame payload`).
|
|
21
36
|
*/
|
|
22
|
-
export declare function decodeBinaryFrameJson(data:
|
|
37
|
+
export declare function decodeBinaryFrameJson(data: BinaryFrameBytes): string;
|
|
23
38
|
//# sourceMappingURL=binary-frame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-frame.d.ts","sourceRoot":"","sources":["../src/binary-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,qBAAwC,CAAA;AAIvE,iJAAiJ;AACjJ,eAAO,MAAM,oBAAoB,aAAc,CAAA;AAE/C,
|
|
1
|
+
{"version":3,"file":"binary-frame.d.ts","sourceRoot":"","sources":["../src/binary-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,qBAAwC,CAAA;AAIvE,iJAAiJ;AACjJ,eAAO,MAAM,oBAAoB,aAAc,CAAA;AAE/C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAA;AA0ChF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAwBnE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAapE"}
|
package/dist/binary-frame.js
CHANGED
|
@@ -5,15 +5,70 @@ const FRAME_VERSION = 1;
|
|
|
5
5
|
const HEADER_BYTES = 9;
|
|
6
6
|
/** Maximum UTF-8 payload bytes representable in the v1 length field (inclusive). Keep in sync with `@geometra/client` `MAX_V1_PAYLOAD_BYTES`. */
|
|
7
7
|
export const MAX_V1_PAYLOAD_BYTES = 0xffff_ffff;
|
|
8
|
-
|
|
8
|
+
function isRootArrayBufferLike(data) {
|
|
9
|
+
return ((typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) ||
|
|
10
|
+
(typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer));
|
|
11
|
+
}
|
|
12
|
+
function resolveFrameBytes(data) {
|
|
13
|
+
if (isRootArrayBufferLike(data)) {
|
|
14
|
+
return { buffer: data, byteOffset: 0, byteLength: data.byteLength };
|
|
15
|
+
}
|
|
16
|
+
return { buffer: data.buffer, byteOffset: data.byteOffset, byteLength: data.byteLength };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* True when `[byteOffset, byteOffset + byteLength)` lies within `buffer.byteLength` so
|
|
20
|
+
* `Uint8Array` / `DataView` construction cannot throw `RangeError`.
|
|
21
|
+
* Rejects non-integer offsets/lengths (typed array lengths must be integers).
|
|
22
|
+
*/
|
|
23
|
+
function binaryFrameBytesFitBuffer(buffer, byteOffset, byteLength) {
|
|
24
|
+
if (!Number.isInteger(byteOffset) || byteOffset < 0)
|
|
25
|
+
return false;
|
|
26
|
+
if (!Number.isInteger(byteLength) || byteLength < 0)
|
|
27
|
+
return false;
|
|
28
|
+
try {
|
|
29
|
+
const bufLen = buffer.byteLength;
|
|
30
|
+
if (typeof bufLen !== 'number' || !Number.isFinite(bufLen) || bufLen < 0)
|
|
31
|
+
return false;
|
|
32
|
+
if (byteOffset > bufLen)
|
|
33
|
+
return false;
|
|
34
|
+
return byteLength <= bufLen - byteOffset;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* True if data looks like a v1 binary envelope (GEOM + version 1). Does not verify that the declared
|
|
42
|
+
* UTF-8 payload length fits the view — use {@link decodeBinaryFrameJson} for full validation.
|
|
43
|
+
* Accepts a root `ArrayBuffer` / `SharedArrayBuffer` or any `ArrayBufferView` (e.g. `Uint8Array` subarray,
|
|
44
|
+
* `DataView`, other typed arrays) so callers can probe frames embedded in a larger store without copying.
|
|
45
|
+
* `null` / `undefined` yield `false`. Plain objects that are not real `ArrayBufferView` instances also yield
|
|
46
|
+
* `false` (no numeric coercion).
|
|
47
|
+
* Inconsistent `(buffer, byteOffset, byteLength)` tuples that would make `Uint8Array` throw `RangeError`
|
|
48
|
+
* yield `false` instead of throwing.
|
|
49
|
+
*/
|
|
9
50
|
export function isBinaryFrameBuffer(data) {
|
|
10
|
-
if (data
|
|
51
|
+
if (data == null)
|
|
52
|
+
return false;
|
|
53
|
+
const { buffer, byteOffset, byteLength } = resolveFrameBytes(data);
|
|
54
|
+
// Mistyped non-view objects can yield undefined fields; `undefined < 9` is false in JS, so guard explicitly.
|
|
55
|
+
if (buffer == null ||
|
|
56
|
+
typeof byteOffset !== 'number' ||
|
|
57
|
+
!Number.isFinite(byteOffset) ||
|
|
58
|
+
byteOffset < 0 ||
|
|
59
|
+
typeof byteLength !== 'number' ||
|
|
60
|
+
!Number.isFinite(byteLength) ||
|
|
61
|
+
byteLength < HEADER_BYTES) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!binaryFrameBytesFitBuffer(buffer, byteOffset, byteLength))
|
|
11
65
|
return false;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
66
|
+
const u8 = new Uint8Array(buffer, byteOffset, byteLength);
|
|
67
|
+
return (u8[0] === 0x47 &&
|
|
68
|
+
u8[1] === 0x45 &&
|
|
69
|
+
u8[2] === 0x4f &&
|
|
70
|
+
u8[3] === 0x4d &&
|
|
71
|
+
u8[4] === FRAME_VERSION);
|
|
17
72
|
}
|
|
18
73
|
/**
|
|
19
74
|
* Wrap UTF-8 JSON bytes in a binary envelope for WebSocket binary frames.
|
|
@@ -33,8 +88,9 @@ export function encodeBinaryFrameJson(jsonUtf8) {
|
|
|
33
88
|
}
|
|
34
89
|
/**
|
|
35
90
|
* Decode JSON string from a v1 binary envelope.
|
|
36
|
-
* Bytes after `header + payloadLength` are ignored so callers may pass a longer buffer.
|
|
37
|
-
* Accepts
|
|
91
|
+
* Bytes after `header + payloadLength` are ignored so callers may pass a longer backing buffer.
|
|
92
|
+
* Accepts a root `ArrayBuffer` / `SharedArrayBuffer` or any `ArrayBufferView` with the same semantics as
|
|
93
|
+
* `decodeBinaryFrameJson` in `@geometra/client`.
|
|
38
94
|
*
|
|
39
95
|
* @throws {Error} When the buffer is not a v1 GEOM frame (`Not a GEOM binary frame`).
|
|
40
96
|
* @throws {Error} When the declared payload length exceeds available bytes (`Truncated binary frame payload`).
|
|
@@ -43,12 +99,14 @@ export function decodeBinaryFrameJson(data) {
|
|
|
43
99
|
if (!isBinaryFrameBuffer(data)) {
|
|
44
100
|
throw new Error('Not a GEOM binary frame');
|
|
45
101
|
}
|
|
46
|
-
const
|
|
102
|
+
const { buffer, byteOffset, byteLength } = resolveFrameBytes(data);
|
|
103
|
+
const dv = new DataView(buffer, byteOffset, byteLength);
|
|
47
104
|
const len = dv.getUint32(5, true);
|
|
48
|
-
const maxPayload =
|
|
105
|
+
const maxPayload = byteLength - HEADER_BYTES;
|
|
49
106
|
if (len > maxPayload) {
|
|
50
107
|
throw new Error('Truncated binary frame payload');
|
|
51
108
|
}
|
|
52
|
-
|
|
109
|
+
const jsonBytes = new Uint8Array(buffer, byteOffset + HEADER_BYTES, len);
|
|
110
|
+
return new TextDecoder('utf-8').decode(jsonBytes);
|
|
53
111
|
}
|
|
54
112
|
//# sourceMappingURL=binary-frame.js.map
|
package/dist/binary-frame.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-frame.js","sourceRoot":"","sources":["../src/binary-frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,OAAO;AAE/E,MAAM,aAAa,GAAG,CAAC,CAAA;AACvB,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,iJAAiJ;AACjJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"binary-frame.js","sourceRoot":"","sources":["../src/binary-frame.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export type { TexturaServer, TexturaServerOptions, ServerTransportMetrics } from
|
|
|
3
3
|
export { diffLayout, CLOSE_AUTH_FAILED, CLOSE_FORBIDDEN } from './protocol.js';
|
|
4
4
|
export type { ServerMessage, ServerDataMessage, ClientMessage, LayoutPatch } from './protocol.js';
|
|
5
5
|
export { encodeBinaryFrameJson, decodeBinaryFrameJson, isBinaryFrameBuffer, MAX_V1_PAYLOAD_BYTES, } from './binary-frame.js';
|
|
6
|
+
export type { BinaryFrameBytes } from './binary-frame.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACjG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACjG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -82,6 +82,52 @@ export type ClientMessage = (VersionedMessage & {
|
|
|
82
82
|
capabilities?: {
|
|
83
83
|
binaryFraming?: boolean;
|
|
84
84
|
};
|
|
85
|
+
})
|
|
86
|
+
/**
|
|
87
|
+
* Attach local file(s) to a file input. Implemented by `@geometra/proxy` (Playwright);
|
|
88
|
+
* the native Textura server responds with `error` — not applicable to DOM-free apps.
|
|
89
|
+
*
|
|
90
|
+
* `paths` are absolute paths on the machine that runs the browser (the proxy process).
|
|
91
|
+
* With `x`/`y`, the proxy clicks first to trigger a native file chooser; without them,
|
|
92
|
+
* it attaches to the first `input[type=file]` in any frame.
|
|
93
|
+
*/
|
|
94
|
+
| (VersionedMessage & {
|
|
95
|
+
type: 'file';
|
|
96
|
+
paths: string[];
|
|
97
|
+
x?: number;
|
|
98
|
+
y?: number;
|
|
99
|
+
strategy?: 'auto' | 'chooser' | 'hidden' | 'drop';
|
|
100
|
+
dropX?: number;
|
|
101
|
+
dropY?: number;
|
|
102
|
+
})
|
|
103
|
+
/**
|
|
104
|
+
* Choose an option on a native `<select>` after focusing it (click `x`,`y` on the control).
|
|
105
|
+
*/
|
|
106
|
+
| (VersionedMessage & {
|
|
107
|
+
type: 'selectOption';
|
|
108
|
+
x: number;
|
|
109
|
+
y: number;
|
|
110
|
+
value?: string;
|
|
111
|
+
label?: string;
|
|
112
|
+
index?: number;
|
|
113
|
+
})
|
|
114
|
+
/**
|
|
115
|
+
* ARIA listbox / `role=option` (Headless UI, React Select, etc.). Implemented by `@geometra/proxy`.
|
|
116
|
+
*/
|
|
117
|
+
| (VersionedMessage & {
|
|
118
|
+
type: 'listboxPick';
|
|
119
|
+
label: string;
|
|
120
|
+
exact?: boolean;
|
|
121
|
+
openX?: number;
|
|
122
|
+
openY?: number;
|
|
123
|
+
})
|
|
124
|
+
/** Mouse wheel / scroll delta at optional viewport coordinates. */
|
|
125
|
+
| (VersionedMessage & {
|
|
126
|
+
type: 'wheel';
|
|
127
|
+
deltaX?: number;
|
|
128
|
+
deltaY?: number;
|
|
129
|
+
x?: number;
|
|
130
|
+
y?: number;
|
|
85
131
|
});
|
|
86
132
|
/** A patch describing a change to a single node's geometry. */
|
|
87
133
|
export interface LayoutPatch {
|
|
@@ -93,7 +139,14 @@ export interface LayoutPatch {
|
|
|
93
139
|
}
|
|
94
140
|
/**
|
|
95
141
|
* Coalesce multiple patches on the same path (last write wins per field).
|
|
96
|
-
* Paths are keyed
|
|
142
|
+
* Paths are keyed with `JSON.stringify` so distinct index sequences never alias (e.g. `[0, 1]` vs `[0.1]` would
|
|
143
|
+
* both stringify to `"0.1"` under a naive `join('.')` key).
|
|
144
|
+
* Entries with a missing or non-array `path` (including `null` list slots), or paths that `JSON.stringify`
|
|
145
|
+
* rejects (`BigInt` segments, circular arrays, etc.), are skipped so corrupt hand-built batches cannot throw.
|
|
146
|
+
* `x` / `y` apply when the incoming value is a finite primitive `number`. `width` / `height` additionally require
|
|
147
|
+
* `>= 0` (IEEE `−0` counts as non-negative) so negative sizes from corrupt streams cannot overwrite good dimensions
|
|
148
|
+
* or produce coalesced patches the GEOM v1 client rejects. JSON `null`, `NaN`, `±Infinity`, boxed numbers, and other
|
|
149
|
+
* garbage are ignored per field (last valid write still wins).
|
|
97
150
|
*/
|
|
98
151
|
export declare function coalescePatches(patches: LayoutPatch[]): LayoutPatch[];
|
|
99
152
|
/**
|
|
@@ -104,6 +157,15 @@ export declare function coalescePatches(patches: LayoutPatch[]): LayoutPatch[];
|
|
|
104
157
|
* only uses patches when the UI tree JSON is unchanged (`createServer` sends full `frame` messages
|
|
105
158
|
* whenever the tree changes), so callers should not rely on this function across structural layout
|
|
106
159
|
* mismatches.
|
|
160
|
+
*
|
|
161
|
+
* When `prev` and `next` are the same object reference (including a shared child subtree), returns
|
|
162
|
+
* `[]` immediately without walking — safe for immutable layout snapshots.
|
|
163
|
+
*
|
|
164
|
+
* Non-array `children` on either side (corrupt snapshots / bad deserialization) is treated as `[]` for
|
|
165
|
+
* subtree pairing so patch generation does not throw; root `x`/`y`/`width`/`height` are still compared.
|
|
166
|
+
*
|
|
167
|
+
* `NaN` on a field compares equal to `NaN` on the same field (no patch) so repeated corrupt geometry
|
|
168
|
+
* does not spam patches; changing a field from `NaN` to a finite number (or vice versa) still diffs.
|
|
107
169
|
*/
|
|
108
170
|
export declare function diffLayout(prev: ComputedLayout, next: ComputedLayout, path?: number[]): LayoutPatch[];
|
|
109
171
|
export {};
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,gEAAgE;AAChE,eAAO,MAAM,eAAe,OAAO,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,SAAmB,GAChC,OAAO,CAIT;AAED,UAAU,gBAAgB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GACrB,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAC/E,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,GAC9D,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,iBAAiB,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/E,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,WAAW,GAAG,SAAS,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAC,GACF,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,kBAAkB,CAAA;IAC5E,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,GACF,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,YAAY,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC3C,CAAC,CAAA;AAEN,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,gEAAgE;AAChE,eAAO,MAAM,eAAe,OAAO,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,SAAmB,GAChC,OAAO,CAIT;AAED,UAAU,gBAAgB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GACrB,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAC/E,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,GAC9D,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,iBAAiB,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/E,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,WAAW,GAAG,SAAS,CAAA;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAC,GACF,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,kBAAkB,CAAA;IAC5E,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,GACF,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,YAAY,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC3C,CAAC;AACJ;;;;;;;GAOG;GACD,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AACJ;;GAEG;GACD,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,cAAc,CAAA;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AACJ;;GAEG;GACD,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AACJ,mEAAmE;GACjE,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;CACX,CAAC,CAAA;AAEN,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAsBrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,cAAc,EACpB,IAAI,GAAE,MAAM,EAAO,GAClB,WAAW,EAAE,CAuCf"}
|
package/dist/protocol.js
CHANGED
|
@@ -27,27 +27,62 @@ export function isProtocolCompatible(peerVersion, currentVersion = PROTOCOL_VERS
|
|
|
27
27
|
return false;
|
|
28
28
|
return peerVersion <= currentVersion;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* True when two layout scalars are unchanged for diffing.
|
|
32
|
+
*
|
|
33
|
+
* Uses `===` for ordinary numbers (so `+0` and `-0` still compare equal like `!==` would).
|
|
34
|
+
* Treats `NaN` as equal to `NaN` so corrupt snapshots that repeat non-finite geometry do not emit
|
|
35
|
+
* perpetual patches (`NaN !== NaN` in JS would otherwise always look "changed").
|
|
36
|
+
*/
|
|
37
|
+
function sameLayoutScalar(a, b) {
|
|
38
|
+
if (Number.isNaN(a) && Number.isNaN(b))
|
|
39
|
+
return true;
|
|
40
|
+
return a === b;
|
|
41
|
+
}
|
|
42
|
+
/** Only finite primitive numbers merge; `null`, `NaN`, `±Infinity`, and non-numbers are ignored per field. */
|
|
43
|
+
function isFinitePatchNumber(value) {
|
|
44
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
45
|
+
}
|
|
46
|
+
/** Finite primitive `number` with `>= 0` for layout width/height (matches GEOM v1 client patch validation). */
|
|
47
|
+
function isNonNegativePatchDimension(value) {
|
|
48
|
+
return isFinitePatchNumber(value) && value >= 0;
|
|
49
|
+
}
|
|
30
50
|
/**
|
|
31
51
|
* Coalesce multiple patches on the same path (last write wins per field).
|
|
32
|
-
* Paths are keyed
|
|
52
|
+
* Paths are keyed with `JSON.stringify` so distinct index sequences never alias (e.g. `[0, 1]` vs `[0.1]` would
|
|
53
|
+
* both stringify to `"0.1"` under a naive `join('.')` key).
|
|
54
|
+
* Entries with a missing or non-array `path` (including `null` list slots), or paths that `JSON.stringify`
|
|
55
|
+
* rejects (`BigInt` segments, circular arrays, etc.), are skipped so corrupt hand-built batches cannot throw.
|
|
56
|
+
* `x` / `y` apply when the incoming value is a finite primitive `number`. `width` / `height` additionally require
|
|
57
|
+
* `>= 0` (IEEE `−0` counts as non-negative) so negative sizes from corrupt streams cannot overwrite good dimensions
|
|
58
|
+
* or produce coalesced patches the GEOM v1 client rejects. JSON `null`, `NaN`, `±Infinity`, boxed numbers, and other
|
|
59
|
+
* garbage are ignored per field (last valid write still wins).
|
|
33
60
|
*/
|
|
34
61
|
export function coalescePatches(patches) {
|
|
35
62
|
const byPath = new Map();
|
|
36
63
|
const order = [];
|
|
37
64
|
for (const patch of patches) {
|
|
38
|
-
|
|
65
|
+
if (patch == null || !Array.isArray(patch.path))
|
|
66
|
+
continue;
|
|
67
|
+
let key;
|
|
68
|
+
try {
|
|
69
|
+
key = JSON.stringify(patch.path);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
39
74
|
if (!byPath.has(key)) {
|
|
40
75
|
byPath.set(key, { path: [...patch.path] });
|
|
41
76
|
order.push(key);
|
|
42
77
|
}
|
|
43
78
|
const next = byPath.get(key);
|
|
44
|
-
if (patch.x
|
|
79
|
+
if (isFinitePatchNumber(patch.x))
|
|
45
80
|
next.x = patch.x;
|
|
46
|
-
if (patch.y
|
|
81
|
+
if (isFinitePatchNumber(patch.y))
|
|
47
82
|
next.y = patch.y;
|
|
48
|
-
if (patch.width
|
|
83
|
+
if (isNonNegativePatchDimension(patch.width))
|
|
49
84
|
next.width = patch.width;
|
|
50
|
-
if (patch.height
|
|
85
|
+
if (isNonNegativePatchDimension(patch.height))
|
|
51
86
|
next.height = patch.height;
|
|
52
87
|
}
|
|
53
88
|
return order.map(k => byPath.get(k));
|
|
@@ -60,33 +95,46 @@ export function coalescePatches(patches) {
|
|
|
60
95
|
* only uses patches when the UI tree JSON is unchanged (`createServer` sends full `frame` messages
|
|
61
96
|
* whenever the tree changes), so callers should not rely on this function across structural layout
|
|
62
97
|
* mismatches.
|
|
98
|
+
*
|
|
99
|
+
* When `prev` and `next` are the same object reference (including a shared child subtree), returns
|
|
100
|
+
* `[]` immediately without walking — safe for immutable layout snapshots.
|
|
101
|
+
*
|
|
102
|
+
* Non-array `children` on either side (corrupt snapshots / bad deserialization) is treated as `[]` for
|
|
103
|
+
* subtree pairing so patch generation does not throw; root `x`/`y`/`width`/`height` are still compared.
|
|
104
|
+
*
|
|
105
|
+
* `NaN` on a field compares equal to `NaN` on the same field (no patch) so repeated corrupt geometry
|
|
106
|
+
* does not spam patches; changing a field from `NaN` to a finite number (or vice versa) still diffs.
|
|
63
107
|
*/
|
|
64
108
|
export function diffLayout(prev, next, path = []) {
|
|
109
|
+
if (prev === next)
|
|
110
|
+
return [];
|
|
65
111
|
const patches = [];
|
|
66
112
|
const patch = { path };
|
|
67
113
|
let changed = false;
|
|
68
|
-
if (prev.x
|
|
114
|
+
if (!sameLayoutScalar(prev.x, next.x)) {
|
|
69
115
|
patch.x = next.x;
|
|
70
116
|
changed = true;
|
|
71
117
|
}
|
|
72
|
-
if (prev.y
|
|
118
|
+
if (!sameLayoutScalar(prev.y, next.y)) {
|
|
73
119
|
patch.y = next.y;
|
|
74
120
|
changed = true;
|
|
75
121
|
}
|
|
76
|
-
if (prev.width
|
|
122
|
+
if (!sameLayoutScalar(prev.width, next.width)) {
|
|
77
123
|
patch.width = next.width;
|
|
78
124
|
changed = true;
|
|
79
125
|
}
|
|
80
|
-
if (prev.height
|
|
126
|
+
if (!sameLayoutScalar(prev.height, next.height)) {
|
|
81
127
|
patch.height = next.height;
|
|
82
128
|
changed = true;
|
|
83
129
|
}
|
|
84
130
|
if (changed)
|
|
85
131
|
patches.push(patch);
|
|
86
|
-
const
|
|
132
|
+
const prevChildren = Array.isArray(prev.children) ? prev.children : [];
|
|
133
|
+
const nextChildren = Array.isArray(next.children) ? next.children : [];
|
|
134
|
+
const maxChildren = Math.max(prevChildren.length, nextChildren.length);
|
|
87
135
|
for (let i = 0; i < maxChildren; i++) {
|
|
88
|
-
const prevChild =
|
|
89
|
-
const nextChild =
|
|
136
|
+
const prevChild = prevChildren[i];
|
|
137
|
+
const nextChild = nextChildren[i];
|
|
90
138
|
if (prevChild && nextChild) {
|
|
91
139
|
patches.push(...diffLayout(prevChild, nextChild, [...path, i]));
|
|
92
140
|
}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAEjC,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAA+B,EAC/B,cAAc,GAAG,gBAAgB;IAEjC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC1C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAClF,OAAO,WAAW,IAAI,cAAc,CAAA;AACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAEjC,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAA+B,EAC/B,cAAc,GAAG,gBAAgB;IAEjC,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC1C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAClF,OAAO,WAAW,IAAI,cAAc,CAAA;AACtC,CAAC;AA+GD;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS;IAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnD,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,8GAA8G;AAC9G,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED,+GAA+G;AAC/G,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QACzD,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QAClD,IAAI,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACtE,IAAI,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU,CACxB,IAAoB,EACpB,IAAoB,EACpB,OAAiB,EAAE;IAEnB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAE5B,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,CAAA;IACnC,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAChB,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAChB,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAA;AAWtE,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAA;AAE9D,OAAO,KAAK,EAAiB,aAAa,EAAqB,MAAM,eAAe,CAAA;AAGpF,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,iBAAiB,CAAA;AAEtD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,mFAAmF;IACnF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IACjE,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAC9D;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,kFAAkF;IAClF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,MAAM,IAAI,IAAI,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACtD,4BAA4B;IAC5B,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAET;AA8BD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,SAAS,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,WAAW,CAAA;AAWtE,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAA;AAE9D,OAAO,KAAK,EAAiB,aAAa,EAAqB,MAAM,eAAe,CAAA;AAGpF,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,iBAAiB,CAAA;AAEtD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,mFAAmF;IACnF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAA;IACjE,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAC9D;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAA;IACrB,kFAAkF;IAClF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,MAAM,IAAI,IAAI,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACtD,4BAA4B;IAC5B,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAET;AA8BD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,SAAS,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CA+SxB"}
|
package/dist/server.js
CHANGED
|
@@ -239,6 +239,17 @@ export async function createServer(view, options = {}) {
|
|
|
239
239
|
prevLayout = null;
|
|
240
240
|
computeAndBroadcast();
|
|
241
241
|
}
|
|
242
|
+
else if (msg.type === 'file' ||
|
|
243
|
+
msg.type === 'selectOption' ||
|
|
244
|
+
msg.type === 'listboxPick' ||
|
|
245
|
+
msg.type === 'wheel') {
|
|
246
|
+
const errorMsg = {
|
|
247
|
+
type: 'error',
|
|
248
|
+
message: `Client message type "${msg.type}" is not supported on the native Textura server (DOM-free layout). Use @geometra/proxy for DOM automation (files, listbox, select, wheel).`,
|
|
249
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
250
|
+
};
|
|
251
|
+
ws.send(JSON.stringify(errorMsg));
|
|
252
|
+
}
|
|
242
253
|
}
|
|
243
254
|
catch {
|
|
244
255
|
// Ignore malformed messages
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geometra/server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.1",
|
|
4
4
|
"description": "Server-side layout engine with WebSocket geometry streaming",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"prepublishOnly": "npm run build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@geometra/core": "^1.
|
|
37
|
+
"@geometra/core": "^1.18.1",
|
|
38
38
|
"ws": "^8.18.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|